diff --git a/.gitignore b/.gitignore index 6b7e1a4..d7a02f8 100644 --- a/.gitignore +++ b/.gitignore @@ -1,5 +1,3 @@ -mat/ -figures/ ltximg/ slprj/ matlab/slprj/ diff --git a/figs/rotating_3dof_model_schematic_rdc.pdf b/figs/rotating_3dof_model_schematic_rdc.pdf index b7084ef..4fed948 100644 Binary files a/figs/rotating_3dof_model_schematic_rdc.pdf and b/figs/rotating_3dof_model_schematic_rdc.pdf differ diff --git a/figs/rotating_3dof_model_schematic_rdc.png b/figs/rotating_3dof_model_schematic_rdc.png index ab562ea..18563b7 100644 Binary files a/figs/rotating_3dof_model_schematic_rdc.png and b/figs/rotating_3dof_model_schematic_rdc.png differ diff --git a/figs/rotating_3dof_model_schematic_rdc.svg b/figs/rotating_3dof_model_schematic_rdc.svg index 1bcd0c4..1bcc76c 100644 Binary files a/figs/rotating_3dof_model_schematic_rdc.svg and b/figs/rotating_3dof_model_schematic_rdc.svg differ diff --git a/figs/rotating_bode_plot_coupling.pdf b/figs/rotating_bode_plot_coupling.pdf new file mode 100644 index 0000000..60c1e2a Binary files /dev/null and b/figs/rotating_bode_plot_coupling.pdf differ diff --git a/figs/rotating_bode_plot_coupling.png b/figs/rotating_bode_plot_coupling.png new file mode 100644 index 0000000..8e921ad Binary files /dev/null and b/figs/rotating_bode_plot_coupling.png differ diff --git a/figs/rotating_bode_plot_direct.pdf b/figs/rotating_bode_plot_direct.pdf new file mode 100644 index 0000000..b8fd42a Binary files /dev/null and b/figs/rotating_bode_plot_direct.pdf differ diff --git a/figs/rotating_bode_plot_direct.png b/figs/rotating_bode_plot_direct.png new file mode 100644 index 0000000..05e45f3 Binary files /dev/null and b/figs/rotating_bode_plot_direct.png differ diff --git a/figs/rotating_bode_plot_direct.svg b/figs/rotating_bode_plot_direct.svg new file mode 100644 index 0000000..af32913 Binary files /dev/null and b/figs/rotating_bode_plot_direct.svg differ diff --git a/figs/rotating_campbell_diagram_imag.pdf b/figs/rotating_campbell_diagram_imag.pdf new file mode 100644 index 0000000..dcb7ac2 Binary files /dev/null and b/figs/rotating_campbell_diagram_imag.pdf differ diff --git a/figs/rotating_campbell_diagram_imag.png b/figs/rotating_campbell_diagram_imag.png new file mode 100644 index 0000000..0040b30 Binary files /dev/null and b/figs/rotating_campbell_diagram_imag.png differ diff --git a/figs/rotating_campbell_diagram_real.pdf b/figs/rotating_campbell_diagram_real.pdf new file mode 100644 index 0000000..e97455d Binary files /dev/null and b/figs/rotating_campbell_diagram_real.pdf differ diff --git a/figs/rotating_campbell_diagram_real.png b/figs/rotating_campbell_diagram_real.png new file mode 100644 index 0000000..ec3c7ab Binary files /dev/null and b/figs/rotating_campbell_diagram_real.png differ diff --git a/figs/rotating_comp_techniques_compliance.pdf b/figs/rotating_comp_techniques_compliance.pdf new file mode 100644 index 0000000..ef821dc Binary files /dev/null and b/figs/rotating_comp_techniques_compliance.pdf differ diff --git a/figs/rotating_comp_techniques_compliance.png b/figs/rotating_comp_techniques_compliance.png new file mode 100644 index 0000000..0f794f2 Binary files /dev/null and b/figs/rotating_comp_techniques_compliance.png differ diff --git a/figs/rotating_comp_techniques_dampled_plants.pdf b/figs/rotating_comp_techniques_dampled_plants.pdf index 89dcee2..d3b2de9 100644 --- a/figs/rotating_comp_techniques_dampled_plants.pdf +++ b/figs/rotating_comp_techniques_dampled_plants.pdf @@ -3,7 +3,7 @@ 1 0 obj << /Producer (Apache FOP Version 2.4.0-SNAPSHOT: PDFDocumentGraphics2D) -/CreationDate (D:20230222104231+01'00') +/CreationDate (D:20240416183145+02'00') >> endobj 2 0 obj @@ -213,19 +213,19 @@ endobj 36 0 obj << /Type /ExtGState -/CA 0.2509804 +/CA 0.14901961 >> endobj 37 0 obj << /Type /ExtGState -/CA 0.2509804 +/CA 0.14901961 >> endobj 38 0 obj << /Type /ExtGState -/CA 0.2509804 +/CA 0.14901961 >> endobj 39 0 obj @@ -249,37 +249,37 @@ endobj 42 0 obj << /Type /ExtGState -/CA 0.14901961 +/CA 0.2509804 >> endobj 43 0 obj << /Type /ExtGState -/CA 0.14901961 +/CA 0.2509804 >> endobj 44 0 obj << /Type /ExtGState -/CA 0.14901961 +/CA 0.2509804 >> endobj 45 0 obj << /Type /ExtGState -/CA 0.14901961 +/CA 0.2509804 >> endobj 46 0 obj << /Type /ExtGState -/CA 0.14901961 +/CA 0.2509804 >> endobj 47 0 obj << /Type /ExtGState -/CA 0.14901961 +/CA 0.2509804 >> endobj 48 0 obj @@ -645,133 +645,133 @@ endobj 108 0 obj << /Type /ExtGState -/CA 0.2509804 +/CA 0.14901961 >> endobj 109 0 obj << /Type /ExtGState -/CA 0.2509804 +/CA 0.14901961 >> endobj 110 0 obj << /Type /ExtGState -/CA 0.2509804 +/CA 0.14901961 >> endobj 111 0 obj << /Type /ExtGState -/CA 0.2509804 +/CA 0.14901961 >> endobj 112 0 obj << /Type /ExtGState -/CA 0.2509804 +/CA 0.14901961 >> endobj 113 0 obj << /Type /ExtGState -/CA 0.2509804 +/CA 0.5019608 >> endobj 114 0 obj << /Type /ExtGState -/CA 0.2509804 +/CA 0.5019608 >> endobj 115 0 obj << /Type /ExtGState -/CA 0.2509804 +/CA 0.5019608 >> endobj 116 0 obj << /Type /ExtGState -/CA 0.2509804 +/CA 0.5019608 >> endobj 117 0 obj << /Type /ExtGState -/CA 0.14901961 +/CA 0.5019608 >> endobj 118 0 obj << /Type /ExtGState -/CA 0.14901961 +/CA 0.5019608 >> endobj 119 0 obj << /Type /ExtGState -/CA 0.14901961 +/CA 0.5019608 >> endobj 120 0 obj << /Type /ExtGState -/CA 0.14901961 +/CA 0.5019608 >> endobj 121 0 obj << /Type /ExtGState -/CA 0.14901961 +/CA 0.2509804 >> endobj 122 0 obj << /Type /ExtGState -/CA 0.5019608 +/CA 0.2509804 >> endobj 123 0 obj << /Type /ExtGState -/CA 0.5019608 +/CA 0.2509804 >> endobj 124 0 obj << /Type /ExtGState -/CA 0.5019608 +/CA 0.2509804 >> endobj 125 0 obj << /Type /ExtGState -/CA 0.5019608 +/CA 0.2509804 >> endobj 126 0 obj << /Type /ExtGState -/CA 0.5019608 +/CA 0.2509804 >> endobj 127 0 obj << /Type /ExtGState -/CA 0.5019608 +/CA 0.2509804 >> endobj 128 0 obj << /Type /ExtGState -/CA 0.5019608 +/CA 0.2509804 >> endobj 129 0 obj << /Type /ExtGState -/CA 0.5019608 +/CA 0.2509804 >> endobj 130 0 obj @@ -915,567 +915,392 @@ endobj 153 0 obj << /Type /ExtGState -/CA 0.2509804 +/CA 0.14901961 >> endobj 154 0 obj << /Type /ExtGState -/CA 0.2509804 +/CA 0.14901961 >> endobj 155 0 obj << /Type /ExtGState -/CA 0.2509804 +/CA 0.14901961 >> endobj 156 0 obj << /Type /ExtGState -/CA 0.2509804 +/CA 0.14901961 >> endobj 157 0 obj << /Type /ExtGState -/CA 0.2509804 +/CA 0.14901961 >> endobj 158 0 obj << /Type /ExtGState -/CA 0.2509804 +/CA 0.14901961 >> endobj 159 0 obj << /Type /ExtGState -/CA 0.2509804 +/CA 0.14901961 >> endobj 160 0 obj << /Type /ExtGState -/CA 0.2509804 +/CA 0.14901961 >> endobj 161 0 obj -<< -/Type /ExtGState -/CA 0.2509804 ->> +<< /Length 162 0 R /Filter /FlateDecode >> +stream +xܽ,9WSd|GH%$g*"^;=5ŻV>++"a;l?s'_<}I?1ގRkGor1wOx?_K׎(?H3Y/#ğG%'bzoGډt zJcG>0?܅t s%]]Bޅn9C{r.t(G{ r#Z(#yGЮw!22鹍 ]t襵]]¸ޅn"ԼqfqݚnG]zK-[]udȣ>\)[@Z]ubzGzKŔ9N<އ1(H>\n9/biytEcVmeytecVHG>亾t]JfY~aVGp]JncUWGp]Jo9,aytץd"Gp]Je<އR2pҲ<އR2vkѺz%cVVeyt%c)bY*O\,Ӫ,q%cWeyt%cb8֣4~>\rʪ,d,β<އ뒱_EAɢ}])8@:pH>ӡszTmmΫz:.w]iIDȗ"gbK;CQq)}\]vև|k!vh>LO.Ẵ>x(bK;Ca~rH;C>&'>юQ>LO.}8d8bևsKwu #"'TiyrI&'؟I&'TliyrI&'T$b>Q U"-O.3-~&cID\ÇR1]"O.C]"O.C.'o>)<0=؇b:v4?؇bD\ÇR1]"O.Ce`D\ÇRHD\gR1I>|&țDZ\gR1IϤb}H˓}L*^7<؇Ϥ"&DZ\gR1ԡ %b>M>,O.39JUiЋLa~rPJ[;0=؇d <؇d|\Çr2]>O.F$}('sb>J?TmH}P*ϼ<؇bȻD\ÇR1D\ÇR˓}P*U܉}P*yyrIaN&cC$?la~pIĶ;|lq =L>־|&{zgM$.3Xw7o;>m`~pI_.g0MFkx\Y~6=څMvCrkOizp z~ݔ>AN|Zۄj>wnسO M vh<`V8 ~!\iԮ.+UᑁrΕsikw!iϴ/4p="7,1\ט/7}s~]JW0j[ǯ6Evֵͦs"־uo2uoto2tf~e~d~?voqoqorpoo2oonomoRmg~7wMFdo7-x4^~%R>-x+im+)U_O)^6567hj8a o?xߊ1΍XJkƥ1^iƷs`xK_2sZV[qn")[QũO+^i,x㗞Ok(^i|4Y+i יkĩ%^I[Ҧ0N-~X7~ㅦ$ɇ%z[ũk/^h.^h:J|XmBӿt~Xf7UⅦqVX7RZrQ%+t VPd_ +&.*'^賊Wc VJ/FM2ŢrK iVItm4o8OMtk4oNQtk15oMjK6]n\͓tk[l YZrl.ӵF׼1ݚj|ӵFؼ!/ݚtkQ6o(Kjoa+]nGckwmp7 Wcn07 Wnn5 wcoްn5It-Cp Y[nzӵa6]rRӭ3ݚj$*ӵa1ݚj4ӭ̙hKDBrV#ukQ9oQuk9oHQuk9oPuk:Oԭoy F鼡=]nӭF!;ݚjӵF뼡8ݚjvӭ{אLIsbkwv^SƿJ6؝WԥFRݯ5 um>5giQ<ZԵo ȳHW.-<,Eγ|V~UuR|7t=|*)ߍ,v7/mų(b Ơqsci'Ks%+KSn?8_~7SO5M+Ĩn#ˊx)6pܦƭ4^Q9=-O=7?tnwsS>8 ^UǠ?W/؟6n޴7~=^_]`M,_;q|OR +1h>r/?6;߾iR!;7_j3[I)~MQ^Hp|zfovhxsClrIbH|8lА6ۃۃyN1mXCd9QbiDbkD8k!iHfCF/rh@ #B9J Ti31bz0| 9H9Ҏڎ_r;SɥBd$E(̗o}EMeC{ݐSk[G6 mH1d`FQ0MF<|Pz8XLap/lؐc)),۰FCG8'Og:#PY#DGjH'n#zujCMV,}kL]2ʢ&6PxS/ $S9N&bWq^1GhGXoU_Y9ä Y҃Lz2{!Ȑ9̢4>\%WD<>5kSAfņ(e1ANO"|8~ *ӘϟΪ'xݯG!xyG-#(1j@C'ѡ, w8d9l$@ȯd=Jz$PstdEϡ0A^ +Hfpr:%_S,QElSAs؃!)$s/s؃H*҉QagDx<ˎ!8Tx= QZL9M# 2LZqD9LJ{X& !lP-eK7$"WrH_9C=(_~XLlAbo=KZJ-G^&$o%A +~P`i;8 D'B&y8f?e*S=l Eq9$ʁo;z}dΓHD>rZyCE޲A:);2,0Gz(6b/4 h2;($M<~B% vwo֖̿D"8TL'`4PkvxnQpџdeze;jr\8l!3Y=e 1[AL$r8$gqFW^6TE&RL=@|:AYީ$) +Nu}名6L +dֹE'k̾*YW2J{ (zeGGےIo 7[Ɗ)O2`6ǸR|)k7C'nfHe},۱eeAĹĈQjy.磮"۲u2TeX4,*]vO?BgךPs 4PHvHWdP eE%9w҈6Țm2/v9s?ʱQLM,$^(ڣ) Rl1&zZ#Nt_oi6B]+9lJ|Fee:2%>!j8}7찖ŽkGc-{Kx1$2x',ʔ8$N.S/ %g.v|Ӌ!q$f\'R6ϼߢ:6G<I( +0޻&.?QG܋dml]jbb$@R3^qQ-D_rj% ghmAQYB:!|~X)G%2(р䐈!;ɖuf/bi (@6\} +"2&d!/& O>T* 9 fAr7ۋCK137B+ /"> +)/rEp2t{!*asN|W":9bˣ;]Ǯ.{ZHE9`s/PA$O6ѩ{|ħd@؉T5U )CP+RY  Tgbnx\S uB y1ֿ$!FN\-qagSe? +^;ebC@=e,^|GُFA2] -:b="wxX(-)nsd#edZ7d"S^Hb7PX ths4_-O ^g̀$<bEK [vֿöB2ajy;dvﻡU૝e/u`&~9_{2e]X"AeEګG$QAE&ĕob&A6`]\ѨU&6,(*:Aj):P{[b-wy[{eZ)Z7dp%z$8.b@b[DL[rD;6 +ֻ7b{č?lWx,bŋ1ō_- A8v|Qs[Z{|xw#[b˾IEĈGeYɶ!|9lW]M2{CP!bֺh*M(qYVu0umͽ1mW(f1D^Aja(k]$z`eZt;(S Ԗfm |^+i}slxeڥ{,L՗5!"Dg+>se]j n{Q6~+Cģt̞C2l0Jd$3gL[)JIxòJjMO ig-;z63T4rvhps]#Mbˊ$ 1tᎥkvEH2cؐҾWxY$,$stXoQ1%zDXMVP!D*6Jb1QMVl& FHf+6*( :/TI{ۧI;\$ +sӷj[8e%["8r19J=$P5 {%f\qƳ_E[.@օMq"f$emgZIre<@r^C\n4sL=K.tWHH%M'g)Z%V|sM:j! \+>pcK=Uinͤw MLQ lƐ4w7;'^Ċgr[\ _0qm躙X"8S]Q M'.l'1qw[{ܤeT"cn*ڽ(J}pNDC9yo』&eB{M d";X":Iy_y|JM*_Zdh f +H_AcۣE=f 0qP? +LCES'PGa;lua$30?RyDڠ/`"MDZ)&"BbNj%Lu/Ӎ$jעf@&x3al-o7Q7JOyrc'&?FY?!pz'g 3BGX2|>NhZ"8Dhl VCpt /RNf zx ~!YUpvAd;+^`JDE> A"nZM`ɉM5VvLU F(Ev"y"n#T@EKQu|Q!Yk""r. "EF9]0] g+k9Q#Xޔ| .iL%v;R*@YS2Y'19I0KIfzGTQvXdƔE׻ Cbn\VG5Uz܎'ղ[*PcXowTRQ̽h ]t \ 8D̡/ +BӢdd"KokG5?DעA0VݩZ/9C?MԹIQÅP0XCjdP +%8u@r,~ڍgc"[niM@9E3xA\ BhE _@H!l*ڤYU'ypma +$+GԖIAmɢ8FXZEAm[ +8wen +e +)/ bƉh &ٱ5 kh9^*lEu%F}LAE@L/ Hc7 =?̻ջ+9`Vc1QE9)p^zXCsOsO\^̲7nEB(Æ6KoE[ /vx91\($r9^8t,Cc: 1paSFazJꑐ!0aYۢĨ +w%,SoA@% D 8GE5s创nر)pnUtbW%@=W+X< Ah, Gura0}/Y?,9CNH1Qu?T** ~'}srg +;q*~Wn< 0W3v ;u<"FKdi!FG{d7wO 5Yax|m֊v3)5Y sgV%F>+"Y ) rjdg~dWk 7(?rq4m7iN8Ujd84&qʖ/1EնWIL{DTTímFUHBb*#E> >۽'{TD5".JZ .QmaUד-DyڹC)cr-s-Zn9NH6 5/MVh^"f?c(zB0gB(`vWpvm$טCfHf5kDK@#QT}hk2WF_ ٺvڃ6d[գqrU98!M,W"Г#!G EH+-+F 8ϰZ0B.ɲPqѼ/ِp&MhJ QkI +)e`K(L6"izxC&a ,>uChP֔E#HMg6*{mot>(7 sLHh-YkȵGGsdK +\(&U 0Nԁ{E݅] SHʢ\aYɇ#yMF@NH?Bܴts'LɌk^3kdsmNA~Lc]>b"6ZrkՂBQzNTBH}M1Ԍl^( +\Mx 5+ xTˆ u?$q {̩)2kY$uh#; y 24޷| !H3IP3GwHfO +L AMik#WLo$md&c,]H)_6LחSĄcsu''x˪^6H!`+T~ 27"EN~g{9ADh?ZDZ 0ͨŊ^r*D ,}0\8Ȯ (5qUd#Ɖ ѕdot텑#zZvn-xc>qz$什>"~W{jǑޑH^r 6#2&1$Oh+&G8aSsY{BVa#MM"C`dp0I`g)}I|S hIHÍj9$kfð9ELjG1fy2"O=g&9 볋Q XI!Q1p <#5P"a;CJ:)gB+vx,74):E(&kAf;s$Ίq^Bs̒ PLhlu,wÑ/x[<k,BFD^K96dq`KȖf\04QĪWMD LsZ8'%*4Z%X%tD@eU^ViQgXVȎYRJ .RR~IC>տ +0DTbYnD rŀECbIΎ(P" 91>8X +Iņ~, ?ꬩq;@?d7a;Y7AtΠy +C);upKC0!LXŶ;uDDվ?=*ʿ`ؗ7:D& <PHC 1LW9 a,QH#Җ(}0!`$FvMwMD:w% DzVs.E]![ vHa tLXӶbX&>Ţo!]`$,"d{9H2",7R+`Q&6V#XY1GE±VH"I2e箓\Qdf0{Oq',rJBrO K׈OE0Q+ý//؂mO\1bM8 5\EBv0bXƏ+DH{S)o +6~"?` sUBCr-qٰA"NH׆K2c*khÈ7@ I!qDh}de#=0pA!d-l*{ `r_)uڂ$Sȋse`cw=PV[bouGeF dP%0X +!=R~ `EUcMHo2j)mT oFB18Xr<1W̦_ˈ/8O1K? Dhuk+i[vD IKTe#H("0s6U8q <4+)9u茇ɗ73c@el.+BC M"9("04@s:#n#$9F-S%5ƌwY/:DqRkTUؐӄ?QcI>:ȑ/ +qā UlYy eA,rPUnX7,U-rbq0%+ے^`D@}B# I9z0*p^}}/*`!-;LZ1jPk6("Yk1*?(gO>j=_K'caoikҜ00|U6?iZ;NgMm+1az=W#!Iԗ6ip(B6w O +q 8c2؊V'B*&֪X'#4 + Fq^OfV%dޛC[H'Ђ +v3uSA2@`>%( +euz0f5 xˏJ8ǑDeVC5gQW=Xps0ɏrh F8hI춆Vk]YӓPSe&OjjY{(J=.7SQkikD<, 2 +C-SbP+)\Z6ÎJܐlФEj)deceɠ'"rb#BffM=YO-4b& 4&B,{> Y5(Hji#WcN4!ۇtX^qp5bd+QȠ׊u WBl8IWLJN(6Y`KLFEYP2$ Fƒa&'CJ j .4:DV: !XL!0|\.*nɦ6Ub0PF/3&`]dĝj2uZKPl^ d03E3R;`hCG{TD2LNw/?d X?I`XʄJRvX +&l 륾~5lNY8(` 4` JeT9QsC|V4E&^sH[!"'_{^4y +Dx\.*o+ TUfHXLlʉ G'8mrj={إ]mOU$Vnc$_@g X_HY5kJNf9艝?lTȌƢ\Wp=P&úBj9‐ͦ{)mņ+֓A&9Q aj-KUzK\;]T5޲+6"W!_oDoZT(5ҫbb?qw#A0Yz +YU0DG-U?Ɋ]NaV4_0grbaf'`{:d`"PBWzRsYNBdҍ 8˝c`T&գ",]↴I1J@/_c<yEiF Jbuj=a3Y+WU{Tr K'4}Ttii+}Z"&٧T@ 'gՓ +Q>d%RzRS>9kkf\ 'T@$&Y$@|ߨd#wJӵVj* w?yB}TT#:]LM`Y@(^kh<@$X31 S,T>J/zSEUi&ՅC:&K$J7ַ +5}SO^*r$ژ\]x2Ɓ5Rա'1E{p +HcLL~ɲSEӬ*JL?}# +Z"G*= hT@Dy8LL8yR>+/V%v":$20_JL ib* Jbj&s񠕘(7b* Q-n%R:oj|LTLi 3.! +T@?vrL"0T\P  +M[ 7UԺꓭTDan@Mq"lhq1 +X=8쥙*j2]zRSyMsTlk)5㳚j4 +2SS^ROҪ3v'5Ub'BMaEL<{k"Yfj*5LMD{x妊Z8{M5b[V+7ḏrSy}B2d8DNRqIN5v%|htΕ + EU +Qޗa0T1.{ye̤F UbjPEFdQ"PEʻY(5IX9(ѻh{k1wYr+CеsXPVK= UMzs UR,}e*S_j2Ti1 U KԾjPb Gf +b֬"QEM$$Uo'Փs$i+W*MU99䨲j(4sT 3SRq8JܭQ54„|Xg:bq򲅣j X9]T#ds,O'EEmfJI ەjhľ׹oUђND5sT(krT"R=84")PeȬJ12z'*tKe + O)(;DT zvTIcm檲q8+DUW؃ +`3[BibbR^8U)R=e #F,$VF+T.gF,~s%,XN +M/X`XIZhln%Y7c)EOٱ3MX@SօKc 2v bhٱ Mqc ;LE=!L Y`8L9,eo IV"/&,aRɱKwG~BFߜyb O} )F6e-SǤ̔EɜS U0Թ؃+ $2Ɉ ~.lYfne +ZL6ٲH\8J+[iŊ ,|YA TD%ΌY`QH2r.Y*3kl6KPsBK-YR[8s`D F4: Lzpg)J$)x!ϲ܍IvEɚD4`F؃?+-ɒ R2${wA!ruԙ΅ mA3[g-M%l3X %],4Z$`w=x N9iiTI cɗRf9.\ZP'8LY ¦A3ŗe)1iZZ,f덙ZbIǣJEe\]גsn=4_A3܍RkEMiNN8SkQ+da֊vu2Wj-,h"*$qseӺPkAtbW3!#ru']9뜔baJүiXʄj шfb-BM1;X+)8=AWb--hXTX+)#b!JKJE,hy+U`lV!";X+iDfb-Z +5 XRX=Wb-b1kQINaB-piY +47b-3$k%eF&f-r'Ĭ@Zskp€[q(8rkZ[ -ZU:­ŝf'֓[JPƑ­ŕ[[kpۢ3rߩρiZ\BLSj/Z( +]Zz(Xȵ^ Z+U4ӕY 9I&jGUzyp;Qk6o53keJԜFq5jWr-tp\+N>7r-[]YɵOT~mMZ޸knvFU,yB7rr-ď,+Ab;V6VlΌ|bVZsvɵϪ\:P\kS7b7r-ѱ\k]`,\fr޲j",sLZJ#Dj Q[[ܕ]ڞx暳rZbs^39⾑k!xZ$lZ徐kKԫ_wZ$sqbOzέuZI3Jw[+i'ݸ>NE J%=kG&v-1N]ĮH~Z-lL+V{0-ZPhݱ\Ӂk$Zɵǖmm^\ d>a!"P&ir]@\Kϔq2ZpU-DŶf#Zȵ+.7[WbB:yZTb`֪Zrt4KDY^sk\Z-X4ʭ4d)Zkj[+Em$#Z4\ :6k$Ik%*qkt+&-Z B-ZIY i#"# 6r-^Qݸʢ,Z;pxFURFH4_ $a x;εk4䅠;Vcr'ZȵDeTX2-'D5Ȓ@F5(7r-δ%ML{POYɵh*&v-هi8^KdL_鵂rcB%x0Z\w"ߐk!(ٛZߜl?kX&n-.,v[ g+WQkq!ߴnZ#y +Z ܜl֢ma܂άE >!ka"fkWf-jb(s1ZiWfF +Yr~%![vb-(!5kiIhcVG1Ja/Zb&dʫqL%S;̕\?:j +6j ܚydT:/Xynٿ^-bwo8j ѱjuDC-+٩vZAbjA0wT!Ql'YHziƪUTZFm=jBK}KEpU?8A +qjz& V'7Z OѬ VZKf#Z'pj9OS lZxq䷤Zb7/ZrLNi,T[H8 Rl#"ml&R@|/Zd[H:ŧMXhʫZ%ج8jo9}g/ZfV~{wV-4:)}V4XoZ8n)j-_Y/ZUPjewR̆z!6ZmTmac V JbXV'.'6R-XRt7R-܋'lZFzAFE>BEFJU~ BUQY NHxh*O V);y\,ZT +*WZ-bB;|=TVl*dB2ho}Zp^~ߙ{_h`jNjTSZ7˯Z9 W{"9-NY9_(z?l7J-r((R_(lj-ZT0jqy[XSlg"[qa;vF--hkQ+r`[Rkb)RZɶ0jb 3je2l[+,QnL0ji [/Z\9 .Rjiy|mZ2mZ JAU^)F]GZ0JE/8( N؜^8ʣ+VowZ"≥yǩ%48jX{/8zwu"I?=VN-}pj- ՈIRji٫QjL?(3DPjQ3wZR˔(~BPXWF-2C-T #yRTRjQ7wZ\rfZѣ[ҢFӵSjɤDc;V"$+{gZ)W*CT/jiM*ujdμZ%LkİQ6&f-+_۩:DeP;QZ^@NSfr-2%] U5 =Ӽ3B:Tz[Y&ʰePسc Ml4$[`ydKQYH3˖A,4l$N͖Aijh@'OLeXհ=&-1x`-r3זb 7:2HŪ--d[q~D\-^6*oji τ[?lug-^؃r˰r B8Le) X pX''-UpeŴj"2,{Poig瘹 D⼐o&lT3s [[O [bO-C42o)m609-qf2HCNb8e%qaf2hl#i+%3aTJĥML\De.g..+8CQ2˰ ,=ظ܂:."tGñb'# Kd \RrΪu 'ue7r)֩V+axCV.r2%g>r)V7=3s~sRP&r.Îeʼnf+8R, 50|SN5t)&3k.ӱGa*G H {tv;} +$xÂ&.<&QaQfX'f.;q٦[3WaL֥l٣֥FuY-+$|]mrn2Rycb˝Kjn.u&. *E5qv)V;˙0 +8]ڥ\{mb`TgtαKd$=M]!cqbqp/;`e ->}f䟙K!%h.+F]}E+}b b β1x)&h1gRf?f +/+ƅIM^Z&i\X#'aRhmГKr[ 3bkLe-3K3ryYyMd^ZV,v_ؼB%˪t^ +Ubb^abonb +NűjrFi2sz)ױbDΌ5z)]dˬ em^Q6mf٦^ +AAd3b:)DultK13brfe7fn/+K!m]9JK Mt|@/|_U8'P3Qk)S='W׊Gcl¯FsIVՅl5gپcyf/'Ʃf/w*l_ziXWN)' ؓ닋\s6&g]Zb\k <[YI/T_K8 =:'JͲzR})ǃ7/PBqgZ,ǒV/ + zAFEFӭ3QHvr=ޖ4]ȣдz}QJE.(i{|u75|OM#R$fg9]5}&Fa7<>x"T8VKū:ŚyU!/xP^/qj_yy=xhGr_x2W1Ɣ6|5- 9u F|-Qrt¶鋢EDepI(6ZD(_\_9* 45x$:2.o\_ ~h4XZVѡ'ח VMh"Ip}Pz=4y:JEi^~!b[d_M4XȾ+ۗ״nLl_ nG7vljsl_@r:i4+8E@nרKl_ +}cRuV/mRݗO =龀(ԕK[]c*ؾ:^Vgeb؃+4}dɏz}ʾ}麨'LIotV/]mjLE˰=쫰Y˵}Ql⛖vp}qٙQ}1<ժT_2TTVFv9w/T_%qL_ ۙA~L_CY:vS}yt6ۨH<9p" *S}3RN"P}%**٨jN/Q}1jnP}Ŕ=uڍ/{B%l\_dz9 6NWDG׍+)H|Dv닣Bsv/:f՗5omW/J ԏt^lڝޙMبYYnbddt+W~RҪL_%{rEUSr/L_XzqM1~`\XOzc !+`t&R/?T5Hm|~-^(&ŢQ^Hث.^H(bky0vV/ש^X>%d_3N}YH [XL?HVV/*JlD ++a4!NfñՋ|5z|/gnd ϵo%_"4L7^?;ZTUK=ʼ$T"C^HFP/=mv@,[k KM!"ᵀz1Gn+T Řz1n]Ϧ}f*>^ی,J'eUװusP&VڰMcڎ>"Rޱzw&^+8Ћ=ׂa#K9E/:_ze@VR4B_D/N`:ы6g%ka%znEB&k%lP^ qxs啽HuIgZxHz껓kŇ,Y:WAőxDzrk7^@HILz[:-gY}YeHbN{raAjͶ3bvPi$67'Fjbk jU84<ItOM/482beY^KÙUYEDQzq]\ͦk16LdӋ~B{>ͦGC9(2#ҍ7^jH/E'O_茢TRlA$z9(,ziavso6ES'^ +[%P`zAv8<`{4^2ŕrGvVmPH̼@/Y[wQbǻzHEORu̠;^ ,Ցj(z-^l˫z$OΫyCa ^ WnSSUTus`mA/]=lT=/ys+{^dLu(pڵ5y-f^K(lxXmXf/˝8vNdžG΋ o9/k%΋.Nע@4% ly!גּR΋SM[3~qAZ^`ƼsEuļl?NZdy|nx*hsqļ.,\0/>.ZݞLZi<1/fp0a^E]ʘC1v>}1/6%׶ڬy+|`if⼈888mS3s^s +/8/vg΋`~s^ptkEΦ yX?ʨyU}?{H6h^HмXҼmְϤy:3wV4/dzZּ"eڭ8Jeko˫H|z-Y^FS~-/X-/hyBC&ˋSKZ\dyѬP,7#tvghP\\#-DW5 8[^R l<|BǧDuuCbV"E/ O-"fqN͠C>@7Xu@fxzmOA41GK%fЫ]7t\zU{/ZmpܠE/F9^Gw?@/B͠z]6^/Ы= 9^O5^VZ@z_3t3emaz zm\CL7^=x%glxmf1^vw/ѫ-S|96^2-kUD/tg nY,kIZnG/ ?Q%^WӓlM赔A/BO߀^z*6^qoz,z1#j_#1ы!`jI/M?_׻-Az_tԤ/H/0}>H,zǵҫ-'ҫW|u 223_W{A͢{WFѫ&I/ 4^zGҋN"@K1zm$j饧jWoLށ>T/{ݽ6^y:u_{m`ڛ@Ťj?ͮz_{mtDZ׫;]/N nW?xrC Mnͮnv.E6^Z[>=lxmt8m5^4k^]m׫G~^wq}^OkYCG_-Fիx~Ɨ9]z1o5xmTziDb}>Ql/h[mFu(^UÛT/_?9z*޼6^UvWqRC@jҲfKFϷez\e'VUOի_>UՕ/׫8zUG >\j'hg x {m؋Tث {M%^a?aCc8‡nbj+OƟVn~M?\}^= :;z_|^}^Nlԇ뵿z˯m_E2d`]/kSCe>X/b Wdzmpf ׺8zEh*Ezk`RIğ^H~U/یxUe/իK:]R8z?K|a>T/?Tȭ^OիGWY SkQٟ^4_^P/jgۥRhz] f>SӫtcMS꟦WQv?gzKbz-_3MW=ϟ^ֿYUU򪗟z矉zy$-7>P/W:?PQml_]zw)^y,E[QR ptx2Ea۰W~lx)/E6_^Y<,JtyfY'cu6¹oJlvCPrf(D +pnx.^Y'!Lj=O)'5鋢uƽY ϠfQbtBᄂfY aO:-ڠ(YT<*S(vѝ'Yx-^PfQ֥O[bN2C-K?6aJ lie̅ٝHx]gǬgO,K&Z?=<+TxFJx>6VҋgQ!xbӞϢt^GSE<7O['otE=R'= i/ϢL}eߴ^Y3LdpثY~E:u[) +ZbT YUL3Zrus, +Z2Zaǵ~ WY)Z`?U-ZTnJ$&b_֏b Q21ӂ6OEA2[E׾ h)Q,hq%}xܝʂZ 5"j"E)2e#y g jkOF>&M|Wݮ>kô?gU~>,.. ~Fds2G,SY8,"魔,(C["g10#cv[+Z;V:5-&&4Y0~A$6F?M'#xEoh& ZuoF;L(hY*VL~$iq9Zm:̈́=j]E-(($hY|\ Z1EwK3 HPڅݲbm_Ȁ̯gxDC=C,~ *Ie?CjgzR9Z@il[Yв.2Oh1 IE+Abvyp;zgJYj1n"wA fBeŤ!‘ЂԦ5Zx:t"S - ֹ:o -mYr$}@hky^AːV +=}\~O_A +{-Y nG0p2~[?:YdDs6n┇ G%@AK&j|f@Co bc%@KOAE`qSdHݰZxgKQՖ,hAv]+ Z'iGA=^{YbwG-V]-&BW%ZUN3dB8%Z hX-ZL&j)Z%Y"œbO +[R0Xܜvٹ%B:˥o9ZO*Dhh`"7nH aW&rޝEʄ9Rm%$Z+ ТcЪ| y\PuY- Z}j'|FAAЪ^RGB+YKucwgV-q V*q 8c/d Z6%~T箒ECaY^ Ñde!kմ@hgrDh*5Z8Z"R2l"PcΓœ ->yS] +fg?Tb{V6檊#SQ̯%vR,wjPl^uW hLkhq>OVI"&ZRv}Xd;)Zdr-aE׀=ů]NE뺕bhe=DG w#.r9"Z PݫSfO9/3*Z$&h݆JJgEKCѢ#QIOjE:'Ekխh_څhYFs]>j%F'?ʟ2q 82Z5nNN+Ê#Ũܭ#"pQh?ù)Vzb]Ph1Խ33ZvH܊ hY>"ԮhvrTڷSrPH}IHv&+Z +r-DE},Ehռ aʭ{l6hk WfCc\Ci\ -e0z - Tj"{iۇU9'QS2L3!ZDu)Z+ ܁Т ˵ZBl.dBkvy"ld5:ZĞ hqӿJߞv~Ӹ-rл/ Z; r@-d@wxC$g@h:ȀAY v hDQ/ ZK*] +TJaDвbZNBHIDhQkW2[񰇰g$.E* Z5V]pQajbjZAbI鯚,97۽ӳ@6V zEn/)Yϲ)XIϢ/x8gFMևZ%agR tz;҃sru,BXt:x>m7YtfZ#=j G%=s_.Y͸pг1땵uJ[(Y53%ɤgqfe?IҳC"iE=A{{-U-FVQϪ㽒aﵟE x˗řMl^ zM )u=YvׂeQ$a~=؊ָgг +ϝ,?ŚUY%WME +bEs]ϲ>7Y +AhMqҙϢv,:N;Z8dn&,7;ȰZ/hղ,%жVg9Yvpn,.\g-q!Rŕ3E492nA%?&c.g[_ʾ,CHCϪ,xh޼,.$7,Ϫ B,@FMݽ-5d@v&YwgѶrmY0g1x5Y1k3fҳhڔMŒŮ z{-Y+g[Iϲgr*Yܯ{4Y M'ϡMgij[F]rkϲjAψg<բ~ b)tk\d/fҳnZnxftZjhalx*L-*|F׷&>=wb ­Z"ywigtǠ>,MZmH1W 'EHR~.G޴v:`aiHnbkEh֪ˉϢŏgO>] |ZwtֆCבb0aSǦςf~k[Sվ՞ju2Y'!jv8N?'Emŀ?~R^ppagNZm0YpW,h, A>YvUuwDVIn%>k빘gjk泖[E:!q³NN7F=!sO|xgXR|{8Y/uҳXEoJԜ߳Ǥg<_(-qֳsz-Yfȣu{{> +jtQij|:iY\?Yڿؼ yP$gѯz+vrGȘߋf93Y~$pFFNg8ZhpdB̘[ΞjzvjpG +y,6#R&9؆~Aj7rkg+z59"YjO,(g+!yڥ=o>YetV+YuN]t֪3Yɺ2a#3f:']eZtHnftCC)~?Dgγ&:&L|Y~Ѫ⫝̸SBۉZAgj 6~gIhⶩ_}s:gt}>,mNke> II|Vx-Y3y3YU|YL.4Y\W|?~V%m͹W~V{p8gqUY(KG2Ep#{3/@@Q<Zk"2~ bP[zXVv"(@rGDEM +-@WgA݆G&A4y{ +='Aˏ'A#šf?kݾF@},7bNŵ@rFЪkY\I2zm4|ZVuhhVZi ̀k(L >^.r$h??ޣ}K"fA NςX΄V"+Ni$lTAk[EbC]m[zx&Ak׮&A˰O?~fp"/?Yx]Q?^}g-Qֿ>6|jdvZ?hmWG>-oޭ@ @kUcUtjЧ^&+ZvoWv5"C*O@k[V=ZD- h,hwboYC`qn#1sgYf gQQ\(Y4Rh{K(,;YleLYϲ3bnۄ|=6,JP#{hU__YТT.ً-voϴ %%?DZ\ wGER[v[`(+*/2Z^z-6BoGv0iQ;RӅ4QZ=:ZZB) Ӫ6XՂeiYmRO洨,?59<-jGԲ]=7Y^QfmbdjY01ZH&UASբ6EMNV#;U-"g+kU{ڲMTֲ˒Tzuy,ЫkQc| +ş:Zwܤ7=-hos*[-:a3xǂ>ٲDFkEmaE܉⨇nhlY%@[EX{AڲvꜨ-˻fv],X[oe\j i[ս's[mH'oZ;jVܟv9|2e>ſ~uuSh]$؋kșW2J9E˱h{Q[WE+kECZEU 2hc|YDPZ[y <_]/w$onGE X-8_҇{텾OH2'ZV*/}d/^fd}Y;}{w1V`}Q#ϖOv%Zmw] Rӿ"~ ~ЩUf$lN&64>_x2 iO\ +/jĄY-_6Ѿy^{/jUn|9EuL}/R- + K7OqVmj>2W&ZHQ׼NjXF׋Q#DF=%x1R3frp&A`\AYT' Z*#fF7>4՜UIQ.cd`S +AtD4cn +HXH;UŎ6"erc,`mI&n6yElO!ޑDoĂٍ('`..DIDٍ_^JF)3`|qbx@oI?H,YCPi>D1[`kDzhQ#˭8VQ1j%g٢*fqI5GpdiW̢',}uY-b_4h1jYT'[a`9z MpWKŨ˻cmV w'4c|:Ղ=F-<&|LAVx>f{m HEQ iI =v}.] ,1veӺ; 5NV&Z{K!)dT"CV.>2jYQkά=DfVHbȨK'"dsy#vr!4zdEZ5@2kZ,ҫ=zv28۱}Fɨή *USY2;JVE-LfSm^4d2j\c&2t{9ip2;ګj]h<۵zɊFHYl\{X&ߓ2jo2NtZ2j;XQ)+䑭:SƉ%U~B2̓2;9(\Je +'둽TǪUdʨǴVfDZdO,'sevKzWF Nu$_Z!U],$ pߥKf5bpe6==ZVlsk-OnV ]hٞͦh26!mv^ߓ2W3et +w2fbV%?-x\Ƭ .u^e%m1h1etIx ^kVöL28VtDiZxh_,dsFt^bZFK ̷^e6g>h rs~.,"etl+X-eSwJFVC -i2ԋDlezWϳYF^'Yyz퇖NY-cCn)u-eCG2bW [-co=JWEdl(Nq-#}>mj-k9y-cwN=3f$v۔Ѳjf1Y~hY=qMɭE&Ss^epV(ZF +-dj#dL]hX1EUKEVUK0FXDy&UzBHoOgZO42gxY,1LESRڋ”CxhYQֵ:"2V~;}-f P$YF2b2­7/OdY @\8̴L1RWVٝ3elz _U"YVgJ]ZV >Y`]2 DO2tK5eUm-A,~(fNXEl1 ZkDNXjuYH,ѣ^[fuG`u0xe4}qĕ1Bqҫq&Lǀ+ca'[eVHqN*&TDjEr{rbtCQĔPp-(e5+FxE<$"2w$xZR?OƾS>Q'4'k!_]l2KEK/MP4LX`K/LƎ͸nD^4\z\F%#\U0Db*ߝU*aOD_J N &aaz(-ϭ^zM2+)J$OI).Tkl ;VqXT,bҫF]UM #cV">-Rd<4%2>c9wxip2eďm\XڏZ~P&~y#?T;c,؅m=cZmu cg^ d,h2L%092fO"Bfқ jد^ +nq!#E3] ƙ( 2 Ji첈]njEm2q)dOx!+EO~Cg@lZ/fDlD>_mEvF.u_: +e{0+rQ(I!\-2R9W!uX!'i6VˢB@%W]R8[[-*dvgٝ~ +wMG] +wMH +g{$iv9nԢBSfEA?&2 +%*d$lRKA!ՌjQ!c~}Y!cgGϛEUTq2D^juJ{"lB_$24O":;$2 vH$Q#Zâo{u,?W?Y"$v%(2KEO"qeC"~b"~rHY sc"S|5^Zaug$2o(}ժI^vQ"SԴBs{%2'e]I"r)&IdѯW"~:bA"kmsp YC?CaA"~~2 +=4J%8)$Y??eH0$2)'Kd!vQ"~8' jcDf 3?Hdҩ?PȬ&@bȨ])2k'KÕHYC?w2E&:u٪8D}S'#Eܾ-LWmn|: k$YK? .Z: bȨ-DYGDYG?4g"mQK6|,="RdBE?c-2k_ӯ,2Ee.){-2KnC9\"m^dÂ~U+,2 mu?BȨ]WDO,Ru5'FFG?i w]%yoL'LwiU;'?Eu[hy-2J2Ց"]:s(qz꥗"(&Y^ f*F/"m}RdόLѷЭXsȪSӧ+RdZ޲~%%͙+y.m⥂DVGDY,#.|zw47Idko QcIkDf|NDf=D̚_{ AdK ϏѽQ:DFCY+_"DF?? ?e,|!ӟ9Ec!`VZ`n+fd,}V#CF?GyeȔjOy=^ ȐEaÉ!ԍA-#CF?/2KDeVa!۟vQYb,T0j!۟C i6 Fv%  2h޽2d6 ۓe`l/u`ȨR/WCF!39z*92dte鹧!!̐Qq}WthYzQ;7 .9dEQ2JljbK YT$ˁ^rY~Q6Uzʓjþ$y9MzCF͒ YsJ+ҹM1!I0{Bf϶zwTlP݄Ma$N'ajS=Y.ZpȘdVQ~fť[cC(cE[G!vaD1v;3:d8[V1C.Nݐ2q]%9d@W}]t. 9;.^9d V wҞ3@d=* 2_ qw{3DvtV+Bd2H2DƑ_{`ދ _"-y!3+REKڻQs.k9J^pH1('1dcnj [TdۺR 2CF:u ]RDCf"CF4[WCvs<2mDK !#x$30d܊'{q+>;d1xD 1zQbӏC&t[pȨY!9d6@x\Zpl,&^,Q7`8DFf +Y5x1|RSDF}j"c⟠ͼc /QcpV0Bd%XdtQ!F!c.aiZ'cY`LXg K  F&U32d|.xeLv_k3d6p ːB[ʇI 5P!!BcnB!BfC *L +C qZPȨ1t)D\M$l 4Ɖ!ch!fBFW'+d,I!>˫{w$MˈΓB7>>Y![o{zBF@h!t[ϋ݈LC[JtY/ d6@60V@Ș\1Ю7V 5}V5Q'#d6nN~Ԑ2*!J562&dlU; [B &%dɪ^1ǰ'#dR2&_lBV bdYiVғ2j!fv U m!pӔ)(єD#)C4UЁp8ij1/)c4k3/)c뢾LA:Kx[kW&e(1wk0<26O~)cM22y^Hؠym(126f~+3HXz%le4}~LhU$el.Oou6&262VNl$eݮ^RZ+#)c3 { mV$Rh_\r 5{*Z0et&2bx oZ>є)ve_2B4eѺJLN >ɔ y~{)Cm4GSƦ;dS}]t6)c{FTF@["626%TFSqQ͗ɔ}L^2e]o`P/^ Mק㯔Ƽ 5 FSf YcLoCS4|d&SZgdPѤn:S.gv)C{]726Ap[.2Ըk)C]ؒ)cjmo/ %P}(CYU9NI(C\JiI4o(Sȷpe$K 5ƻ+=žEI;^2쀝G 3<;DzC$ ʰU;VIY-6_ ʬvi(ʰF(Ca}O;(C"#W~p<'N#.$Oƒ,DJdL.Vact%r2$I,;:q2\)s2l3'E2s2: ;wf~=_dHѬ*<E?I$e* ڏ@ݱ5*EKQ~ 롊be8ep&26aD\QBK?QZdAVL5_azȌ"(B'7#(S }jQF^/s{'ʰ[^!?Ȣ-I-EDQCtCєrПA!n f^Q^l+EQϗF>7gQsJ$ЉMMeM&%2t?B$2YdhHbS̤ 5\ehrhuq'2L@KO =. %Qp_VH%[p.2tß\eUFI졋O(SLG:EfӸo'дH(CnDP,yʞNL6'a|a/ )#.)zQ"(Ak?PQVI(CA;(SpC/EPX<ɓgEq9/kK]Oa,Uw>qϜ OwNDNG9Yko=ILdL&lTq27^q2t@ݞ vm%Nѕn} 'C;}̜ zVLZuKfMҲh1ڻV1젡#&\Q:16n ߾{L0:w2&P0fjQBZdz7?a2vNU`!dˮ)jm&Cm1ڏaBGZ09upP[{FNm7Z= ³U&C!8w +(q2hv֔ndaCXId^q26k9Ce亽dlR-V Z~LaVjpdm895LdgdC'Vvnd(!I,O ve)+͜LvU*duo"'O\<}<R9*5]9 w#k2 ';d(S7i2VD 2ſ,j2tlÜ4jnJRN }gE쥟&C/}&C-1/&Ciy-2&C^EJ2c2ԘI"&CvOeLZ9Zd(q{1b#C b 52fLjv!-)ݫdXsբ%Slqk?Kjy*z?Y2VcTyɒQ +ђQMzCdh-^A29!V 劐'H^v%>$d^Q2W}&2%cڝJ( ?hɨy){_ 3P20@k?J>;|բ%cڍuMI 57iEɒ3Y F}+lहPh؅7o%C`Bdkb]NEKƮ}\d쒹X բ%C_Ē, #"$Y2vA hp_?,j$M(h4c2v#ioqeL ^$LZ[mgLoiU3^q寧%c:X2v,ogbhX~5nLOd(E3aɒnErM^i2 +.i2: u'I~֣ HIaD$.3*i2ؘ5jܔK +ejJ*JD_>I) -3{;y=b {dϞbν/=VGo'ck?L*NMۈْ|QhOʔMSd1Pfj,-00^z-;t$pIU^%S"gdd엥06_;0Nͨ:4d8rv9^1ڟ`]~ g b(X:a2}3&Z-`2"re1ˇVo"&c'{LfcͺΘkɐی3Z2 oqdKv͖L3Sa9\"&QfRdُLaO L{mdV.&/Z-a2%S9;3P23NdlNk?KZA8?RLrd*r,j:1U`m< eMIQΚn^i24siq+i2>vXݙ2lI0fL)^z-ֽ#ɔ [ AJDJDM>̔LUrDXfexgpj$$K>7H_hЌ͖ܱMdhT譒,ӫ6ⵟ%CK%S0{qX/-i21.YGNF$OF:(c\&QƺLUӹm"es%%SZ{mJoABeԗQ*ٻY#YX1s]nѕ>{LF3eSnt-cL(+!2^ui_.2־ cS xm5V5k_%2EM92&- ݞy8 YDa&7Y$bƦ Jg^baЏXrddzMTBRflm퉙&z1#>hQXAB3 F 4c2}!G1’^u&m&4p3p34WN6)?ǻvޅqdΣN"9c^i"3>2֞s$"DtƆh_\g 5m&vez@Zpg?#l`X+Flgi=c/m.FUgiFˎX%1*k?fc5Z/n-'_&џa dɟ2V1~2:+G:%fpvpK%3<g xɟ1!ϟ!0O*FpYݎN{ng R?Cgt)p,3?ù 0>]8/Vz9?C + i v:Mg8U'3x@Vb&!a 3`cU?É ɟ9]Cg23\ obhLeI$f}߬Rpggh@椬?{"3\%i+`O.2>s wdL  3/>.[Ȉ<~qtt`s2R2SiI!'c#sQ-3\oLtw]?՚љugmЬɒ>sZu(ӄϐQzg,$>3v!ooZ =Imݥ G]3i:QK )n53$kp.AgH>֙ +wy^3\EZ)314V^3ts7PrghplfWKeNY-3Dn{[9"7HG{93[V' ~`po}?3;3(*!34-XHLglZgPggHSnA mCٝ!%w)q&p0>V\=/evx;FvFIעRhDvY!kk?uFq޴ZRg8#qR@gv6\ꩅ1Fh@gtXS2mDFb{oFgq8޼v!.,QkWG`?/ +q `Ksv9C8|vL2g\ z\d挵#9cͳ⤳9C dؐӤׂ9C{I83vN +=9 + 1kwe9sIsi׫7ȗM gX~'6j-LvIǮ~Lb g@Fyk?rLg gſ`d\^3MKW}9ć XaVK s4^ #i`dX3ݕ 挍ׂ9CdNFҘ.:wЙХ83v ]t>\jt5=rЙnUm|ou@FgoE$g'n ѽj8S6g8&h\%sKkg0g+J]4g*݄fzidp.29pnə*䌙a -6oAh:wZ$sF{H9`LI4g.o̙f$s3b1̙ŕhZ$$sfc29Cwr%rQ ,^ O\ g<9ErAD#6of-trۗ$!acA!f) 9m7pqPK )Roę(Ӻ: +ε c^ &L23 Ut:363O'pŹ؟'3/XrhZg6{cvogY6Y-g# \əU:>əA4%r椷]eșU pQҵhg\ʕ;]83.+jQȗ8ݺ%qƦB؞235DJ G_OsF[s]5z)rޣksw$g88>79eX+בQegrF3]w E9r33l+-oș8HX8rFO Hΰ}H\ ə4$DZFrfe ghXl43@ lδ[4}j̙\#J9'9:ag} 13Tĉ!֪p"g_'63E9sNu9L>3:s3u+a{Dg܌*>3n +T?y&t'~ftΠjQԙvQ= wdgؼ;mqkɝ+›(EM噽nNjgy κ33tkNgNL[#Ű5ɞ ג=sVggd`=Cw։h0%ў!URbdϴ=c{-3(ޘ33LhNȝ'xg +۠ډ:23pG]z#<)lў9==CϢ,ɞi7lgzЏ23/}g-* +mgNL@Q!>KD3\ W GwS=L oKWډa Ín<Ly-3$d E?;QˏܙKc +ג;iatg.^J ȇr&wC~sݙ 鋋Ï;ٝل&Xmtg6ow}03SH3;Å)9ΜΜ<1bbgاfv%i;cVݙPΐز23sgRy[wݥuZvgkglgxf53exYn9|g||3Μ j5gv%uRguQ-5Yj`lΰIRcFoÈ43l] 13^zU]OL$1Uxϝy\W'vf줺2NhXn{<^36=\Mg$3<ۦ nR">=< M<_Nsٞ+N )Ч=c +L;mݗ36&~d9iHX3.1&=c"Cpm(ï=JH YvE_DwNwn"kB,3-zj B;2q d5`)飕HNk6ZsfJ b;vɞv:s(33UaF=tZ{Ϟm'3E]gbY=ٞ1zMg{+931w/=cZٞAsud}RƴRZgLcwgaג!k>A$Y[8UZJRL>+k?~JpЕDљzqfϐFbs2?Ci:Y%ڏ;oX_~ qr8eg4aTkghXg}cP56izSF| "?cD0l؞M|e~qZ)b]"?=Ӏ,Cc4Bkf~DZ3?~ƈ=Zj SI xgTe9%{Fc`ש_gn >=63$Wtnծ^ +z+VK I(63%Rqgx`H=3k=cz?#>s!HeCgfR>s,'k9m6ӏ|;ZgNehFׯ 9ԭ3A9R!'2g|زzrڀH~m鵀Xv3>Cj/|nGnWrJX 2RٞaP.= ,/=Cfׂ=Ͱݷ IjZgȘaѡSgv&$<?cϰs]EfiPIgjw{gxP_ 3`xmUOgH =s^ 7E6:Zx-3ܯ~L:3~]q=c9*%{ff!q{ٞ@;3%X-3zٙY&vч}s&3roQ$VؙBjQ?dWvt63ӱQ))nRgȚٵ73ʼn%u ]HQ~3`WL#;SXjikxbg +[ٙ8X;S3}ֻ2yw'i; d(sӕIaKANTfgjVڗZ-35NLeTL>C82 k=g0Vٶg +/ +}|XzzAW6Fs0,CMJ3ڦa#X;}F#ZB!Z@FQA!q3& EO 'هvgkg'389WLrqm?38ԛ3)r^gv|Zqڝ>z +K7̮ɂHTm!cu." ~&  ?Luğ!fߵ^|w`6@3 m ~&)z@fM>F74þ4h @uYq3c" 4:A@#@4˔d& ݘ أ^ 4=6L +;hY-+YT6hh +$mc)3 fbmin0Sm!@Рޱhx ZD,9d%А2{4A4 Mz!D )Ku^4ÜMFO[ 4TSĠ-뿁VFU\4i^r토C/b$3z&MǓAћ.  8Җ M 5cNT 4xeYEBCo5Ch([^l|ۀ1 -l9F +!E> 4%ZQj r +{хA B9lδ + Ӱ8A[B#Cv +M2}DId+J U+<+TlnByB +MN " + ޥFJfZ)4X佻6QhI==d56yphCYPVݵCC`i ͉%+fۼW 2P`3Vx%V}+ZI4x{ n+ -;(YñLZP4x7Cf /23헯(rDoL(@ȁ?+2 +hj&?(yqM( $АZJ 0o ī̃DSn+:}]H4ENYH4ldX6h) L!%ٳCm{`h gobh(/+ 6'n3[Дxu_94D}]|h8nA.+f룝DFǪFssm"< vCC7ZxphZ 'BjzhhLuhdYDÔ lTaEd +zE,a\E=eʄᜤ k&/+F~~XY4QUh?x'&FܓECڨ5+Fڤ0mֽ!)+fsF#Zm0L*D٬ݾr0蘕F#a'uZp4ʗvC8ۡhtm\Ọͮ<̣9K8D\8+jVN)ç4@.VM O dMZw +q +885l\a4T{=My^&:Tf /FSFCۮlM0[Xà0ќMY0õV gw<`4Ĝ/|hdOlUYa4bGAzhPo8hhBiFcȂѐ\X47\*+ƐgM%,y%@t>Eo$ȾtD/O HLhECKvCOXU0V-yhjlzhX|h*L笌́ ?coV lyA9OMomr][Q4[ RD3:hݵDѼ!DCƫiOMm_h6/{=][I4F;hjW$ێDC? ɚY94Uqmdb_phƳȔ ihnBvKf-&_qh Fʡ T{rhb%84V`ɿ4^ahB=14E/14E;#04e'=^bhF+ KhD-*yhDiDC䝈~ =t8A4-/x[I4H UI4HE;e(}7 )dتFD{_ rA v N. ېN b‘oDnw Zj&6?dDA0F]hIƚ-$JD9$X̃:hlu{9I4(deʍDc+p'h+ɼW?I4HhDM$MODuYhwyQ];A4?;0A4Pg,>1hd=J^2h4g3ߌk' f1' Y9A4nyqѐD(5A4!gXw Z; %QDc I_WD&FbFb,Xk'F ;-r& 1Hvh4̛vcѠFɢ :`p3k&vh:{O,bl?vN$Yzwnu,,NIX& B#XP4l-匢.vʄ醩NP4 XP42pj EC)EsJwc}&=%4hGޙDC3B@h3hcAtwB Eq%s(C:D(6څ!~( +(fh4|۬ጢ(GVbf`RԟEC6YA>$,jr7hYNE!9Dwtm vh:ve:)7he ӍFCAؾU4!M-Ch4ch4a ݺq0/|nrh8zXl,thHZaS%0zӬf@e0玖ZfN0ŵF5Th:B `4ZK-'hpojţeɚYxF˺>h&gΣ|'=MûOQ;>g >]@MA94ӧ/ixǠ57GM@I40HCu4(]'L@D)HS5j2 +&g" #5E*="M=H8FJ;4Lc!T?XL. 1itj/:܉4Gzv"h~BsMD֊dq.." 1J܉4$b<4i< 8w" Ȝ-&Tmik*=i0 HC/ X5Tum4;S<1'"ME73F3㷚D^,Zw9i +U9~N!Ww:sih߽X4"lsw"橈ymݿiW F`vgҔ|OL +2DܝIq3&& rd>w(MOd4`YZ 5AiSw@4ZaIC49V:#ih8ICILBp3"jBҐ +EO2!i_F]gI +mkНf3iAmL-wb2%FkVyWnfҨl13iDkD7-,Vv>4d;ot윑4vg &8 4^ăQN6+DzCDZi (۠\D%x;SDd-v84Yc&4~H[ɱiƥJ^;d9|޵ H*;siw ICcH;TN_LvQihFkmTjbڅ&Tvdd',M֐Kݪ478cixDWKWzXN;KCi<%."4F-9&k~(̥vĥrP5;4 _ m'*9WΥ!6`&ku~4پod:M` if` R*eĥa26pdBd]\P1k\^KĎ]Aݹ4FchEYj̥ڜ5qit̚;&}ۨm<6n'.vqih G왋KZ}ل47P펥E #OXIaUm5zf3TwuvЋC4>Qi`tDSwީ4ogJnrʙJC0w̝JCu#ꀂ5?4t/nJ L -k&k2PaQ6Ai2Md9`kPȂɖ9l`rINOP–rh J+c F13X4/6GMTtd%eP0I]oY~;C{ҨVz҈&/tiL\4 4ԼGKu44t%-5qi0"c(Kᡜ4łth`n]Q'0 ٻbj4H0$^Ki4Ix A WLCp?ݝL,-!h&Ӡ.23fih$gwϝKDZ\:UhRJ1f͍K$34KÉX\Mx0KX4 ?v Lԧe !n%AD'0 53id4{ AU7ihF3&i(v/70  %d=Q ?NAKN82 M7-4iHIPmMd4lv.2 5Ӌ2i9' Ti>L}رTiAr&09$NgMBa+vxAοڞd&Y Rr'hjEDAko/Na6w2Mr#hIr'Ӡv':&_D$Ӱl4\3YukF[ AOO2Mxt&$@ݷUit)\Ea{"J`.'2 R׊Ea7^L.L;3ӓLÆN]d=Ĉ*Nc +kFm|v MFu4@{EFkw冦>ZיMfFda$l`k.4 e0M%JJtwM'^hbJ[siԚ&8ϻif] M!W4z bY MAeo?si8l4lNh4dhB, +6i8_Y3c([8'0 =&zyɚ!IJU`lĥѳzݹ4\4=sai6#K-lp'nd1sw, ?Te45A; MXQ4k&} KGP7X팥ګٮwҨ ǂṧ`CX4䕇., 59*6߾&, .95si浹v,\{Zg.M}g.Q$ܹ4E)vidԭ=̥G[V,/QfDZu 8qit\5mť޻=sqiAN̥a1Ƃ4z]4CNŋey6{-Ysqis-{;K8 ]f. FX4&. q!@`ŇεKCjjw. !Z'. mX4C2qi襊ڪ'.M&J 6M@4x债64Qit|c0٪>',4E;/=4č;= 1Qi + Vg abd:H!^i9( H$sAi4ZAGqX7I6Ci\'.PFoPbEF JælIcc'wƤ隸t<3ihx6KF4tn`sIC 4nMDI#!z&T6RNa45ń!mvGҐ봝qI +:\OHF#fMsw$ iet|Iu4d)ofPѥDpƤ-Ncn&&Ml;/X4SvT_0ilY+RnLR%ɗ/4zQPik2U, E 4%v(6X~mݱ4ԀZhĚ K'MM~LX;HZ4whjxY]XrS5ɱ`i"cfI3URVw. i>{b̥a?X4$'sz+74L\9Ț&O#ep,r`¥otc*^4nVcP|cTM*9ai-JKú{F, $I3$8&fp\~KC-FȚ42O!@TK|MX +hd҄4+4- +’䂥SR=g, &鳪ڄ7[4a.[KSJcWjgKt6wFam/4䦄Q@i"8K( F} +c O/Nwvj\-W߭õK%Uۜ ђW(AM`DJ&h?Tz\4W'L\7s}+&!K vLݸ4KnKCFl恪MXOD U4Ȭ4u4\4ܪ+rh7*MS:uLTPDcvtz]b5U3@ފܟ4kuL*> KCHhh K$odҰX4l,S9* wMAQiUqTک FV;'LTMNJ)'jJH^YحHu4l삥%/WKGKٺ&, /Yb 4ciH'_22. I൧2si( !sz++&hc5r\4/dk2 aI3es"ӤPpišvF89si(G#C4čmd>Wt8`ي0 m`lqk70 3S^46uh֒ؓNdXWLp9_Lsf ]3ȞkF&W,d +εX4Z \4A?&jV\&i3i(4i\D!CJ&2 ;MO2MVcLaT_s<4R4,ϞJE$Wd6uDyi|vG&4tV4 : L9S峀i<0)M`ss<4emO. U[4#*M\^hPҔ+/ my^. :/%ypivYIRY4;2;'f'EF>4}7`ivz$biF/AۻKS[y=48r~' ۀTWʓJS4KCA\O, fTF\4b>tx;46sid4dG\uri(^4~$3@ɂV,M4#01 Fިu9X ibilebi&ˊ ]?6ciFKC8E(VKC !XcOX4ލrdٺҔ@wtm{'Tz&Y?4UH,Mm x`ivf΂8⁥, ׭tBnXW{rm0s{_`i%iҐW䉐O, 3+f>/4 ۃTbbLϟ%V*Ml Ix%PP|ԞP xx) ( pɪP^ * 6/V* ["6SiT[4bF7)W,k7,28f+O.Mƽri$f\9`hPv;ʥc=\ɥu Lv\7e\sgݬ\ `m{piF\j\7;iY4,!xdO2 dtLCoi_ۯ[W_8yw`rIɥRkHyB_U2?{GSg2_'OZ eۓ<< gpP;@47 _[z-Kg}ڀgV}U5?;pȫzs.wl}~}'J5\|(5ـR!WwyrЕ +2;oGqpz|z|?0=>?V.e۟#Ko]N N7RW8.>".#6T X /졝UDyg_&7^יzӋñ{+%9~sHE_4u_??Z0S|=YTϯ>Jon_u`?'}=7?1:h xˢxXI7Ka-kteOQsy_3x}?1>`}?0>`}?1>3`}vyWm}.lwÿhDk`"~j'g_cߟ~|"6;113ßߜ\`.~z$so\`.~??wYlυd|u07y˫?y: |_~e]՝,׎s/M|Ԣ +Ov.߅v^O߹PL .]į!8Դ;w~]d;|*71;wQ~d.]o܅Yq?}.KLE]Г;ue5wrj:ӟs__9eOWNJQ~ӟs__9D! %`x]5=sZ/?}.vj4ӟs__;bwk'I2(4&/߹ڽa-?}.rjl[L]ZOWNE̹ZL]|}ԪٺIMkO߹TyٺI:o/߹dٶI^>ӟs__9 e;w3mO߸m-?}.r` &kO߹rʫyZ]3|zףaa/^sūR_?|ΰ9þv+7.r &7.H0*~傋4n2^7\_uぽZM|B ZC|yxӊVIbK^{͹]r{ɱދͫ l4~yyyy?ۼ ؼԼh}6{/pл/8Л/л/ϻ/ϻ/Xϻ/ /ytݗqxGz? ⿉   <oBPw_7Aw_7Ѧw_7a_қ/һ/һ/ zoXQco}{H}GV{/>y{5i/k[/H}dk~#e͗_sh/&?{5?~H~DG{/f>~{5/94^%|GB[/ /H!~DG{/f?{55-˯94^~M~/r{G#_R$^|M5~dk#_oUH4~ď ^~#~sFb-.}l^qPڑe>;a5+І/y/{=:A/ne/ =Vǽ5hw?@/_V)Q( /\OqAa_^ʟ_.XI?t~;V#̆w /\\a8>@5_G yđz ZL}{aɆK~QVW?\lP?#c1&# 0[6 WѠ[H$K.QA-1Klt%JR_φ GԷśeW@R zL88/I\W<_D+?=|3,^̇m_s8N7̲.kF'pŵFK<>ʗ +;a )yOߪp(Vrme^zZ7ceKĤ9kbyW1t1~_)?;P)^: ȟ,|v sO?ݹ y/K'Ǿ<?O Ͽ#r?LȬC. 1]$1/bM/o '*49NjxaUe8{^MCW; e F-`џ?Ag. +V/.q{^3dHW.4g.ؿXhl&U[ `YCa6 0P.'Ԥ6`)i)I%~{|Je{jQKr0PC@_p.Iu+/lM!=XxȧB6ʟ F|Q/a(k٤R r %`d[)R祰XhU$V䔜CS`ri@j1S'c; [n㹃ʻT白=6E˯؃'ˀ\yx1}|{]`\dA^&|CƢL/@K2: ɾ+-1MAѦ1yMA7i?LS2\K)=/ +5ɛo)T{έ;;$mڊZ Amk}kFE2UZ\t'L|h`Wijj2tf 59dȫ=A{ZNF(t}C3vdDn#Tj?#Zd$cɿ&Vfeok7Z4X~.3ST ]ֲḿbhePQgӆ2w2*?-Y냙!N Hgך<|k!?Fc +hLlú/cd9=dw)c  <<}`}SOeMVѲ9M .Aۖ?1]+;1 !f;A|''wZdW[>M܍b~&R +C2C@N[4/NOb:Sg(bj Z( 0Sft\E΋c"n!ۜilqrizDTeX=LdR?_dSOG9 n̄,_QÃW> XuM=7 'nژ +E!p>r6O kesAD5YvyA\c._L+H>zs$yjkW2}f?NqZIhl"`Knnc6}TZcS+PX~ YM{i!kqHZڤZЉd(ƌonZ%ո ..$h1d7i[!g@yК;^0Ck1vrGuC#X8 l7 DbN)*,r*)p{|j9>pM-árxdrm&7 /wno]4~:kZSFDeڻ{r[5~@bk:, A-V1X2VU#TYAHl6v;—wyzA1dhüqa%6XsIwyۘ FVya2ǭV*Y) M!d“ fصVe>U_/Uy+c.̫͓ѿ Z#2]vSaeUˑIm̅. .zfIwsVddd9DmqL|TA7c7n5Y.+Sv/>GǷU@,vb%M6yM,nxk#~A|ܛKLCDV4]}\u%vͺ͙}ves Fpnh2D7i+B;=\*5٭?pw˟|OR19z%9/HZlj2GR\ +.a>6$fLq(0e6|Z$k2j?f\oE}\4e<1jvi7R*S&qnA󗳁y(2}+e8R܇#(ˏ۔R}$0U]u~y˾RW{r(ƲL G|&F%윔!yNNh2 ܶߦ }g$/sYdB 10C$G~bdx;1ecRO1Ė{*@eI58ZReGSFsA֭m%5 f[!%ߦdɩ_^+GmLyi4"0F c*z-&v.3$QU]^iG@{~BߦXb6LDˆQ,e?i8)qMJ_$M mf*s}PLC*[I/ =r͓&U5"M#8A!ڇL֨Ӫ\8itzpi90-`6w2.[l,eiclqbJ<}r~Jݞs $91d]3Qam*2q&׊tzAGCIpfZA&oRO@mf,/޲:&H1\l2CȀ8vr8I<4NViњ9M!c<8M^ 9Ĕ~AH#:kpMY.$N^Bva̘NP sǤFZo"m.q=AvmAB%wiŗ(ۓ6|`b7MI$hdKAا2j1M dٴdq=AHq1G-vv "Q* Ryxh&0ؤ탃Uah=Wi*6+].d~!4#ZI"id +#oE539R7[ d C46jzж"BgW[m*Y|tM.NhYEdHtbo/Dy^hEYM{a}TKHqb-]Q4yfhF#͓B7#<& U4٨Dy7=S{v8#>IJ"n&?H.a߶t Џjs>ZC!姖.B:2Wd3kq{mAjI3\~ +52޲AQ\̡+Q|[8갏y*z +T| wI6D6٠ +h?ʋ-2Vs^=δY5|2SkYnٯjes&";TvMnqyvj󓱼Y="&,~ j;[1$} MS"硉u'#yb6ijG9p 2*,ə϶_$bdmR,Z}mh"DZPtwJ }.YwIP5Is,/`9yZ&hF4rAҴ(Z&Y$08&`Wܣ}]|Ƥ}$⾱Sd+ \2;3Z"Hd$ E%R# 5.. a~kihb>AmH[Cq&i? ȗiXzBu fl0\m *LŌq +!QI59h}v s-$saѓϊqMTM/8mXee#Z@ءmvyU 0_\;g,[1~ٮL]%f4 gW=ɞ.i N^$ ,>>0-[}vM6V :|}ɞ!l~49%l#%\>M#(*(e?x(4AWY4MO%\8Eq%'l&5=`w)2e8h]5҂]PMT7XRBirf?ɻ yDdUfLh9@ׅ6U2ES+q9{3)^O<4*%pF`Q% ( m5j!%d5xW>Y(rIi'&eu]Hy!j_1KnV-Kr@l,aM#Mܟ)p~h%̫&kN΢Egl-3)%!R@p'xTD8Ypܑao4ycLu(%=ض\{㬗)#1} +92@#[X +c\=r# SNVx{hhֻih mɲgwoE :Q +c&S4BԔپV򡹻tװ)գnirdmCݏUh?1-b^g4NG >mahwM-8 \'\D"*g1a5RHkU*m14Mg +QѦiҞ +|}n*vk$hbjbbKi+oV6N&"?k+&]v?}%ǦgR M+/51B ۰KWJ +/Sk&Ѕ +*ڙҏVGk7f&]{&Vu?B#RZÐ)TPR`ʳ%#e1ʎA?zoC2nmH#v+TPQQ&a630Q"]wjkyfq̈́Q}iPI.psyI&@4_e|Q=:q'ixZ6Ӿ)-gB7-~F%Xv8Fy]Xq+>zg,$J UvDshGKccS:9~~>4Zˡuy%ZcZR,fW ӪŮL9jlQv3[ VFYjZxL)v^uhd4W% "UsrYlyhQ=[ܺ(~t-V7^X#ahKw3^G/%BѺuwHdlN(Gd<4"jTNyZkM!hI[Lw{w͚,lCڐ6r~1@g=U0{vʧpCoB?]d)hE+HrI#FFg? ܺd= 0i8m5Ovl(dnK_=vuOmtO AuO,lpkLtJ\&=g${/DL$i̻FèiYxZ&)$#ib%9M,Ldž2(AtA^<&9H}hU0;e|mq>׭5~=%V]㼿{VMt-. h}X:8,=(h&L?E2U~egĄ Qsm%FNê$x3Lk'=4϶(Ve'hb6@T4[>4K}MsavVkfyqs-’v +Ku,t!-7B.4svKRG@(iqGqAvJi_[8 +Prt;'k eF)])]A_?hZƁjŜJjIɵBiWęWHby,B+z~ۂ +Sa-etʦv}si4~ݼChVq~.P\ecKVТkM{Ӏlkd0]fP9iRp*<nc3sd [TiQǪZ̹ghONvܖ}.)[=ls.ײ?.5cphcjqvhU-ֆM_zeQ>%1]Fn0 sӝJQՖCS5zFӪV5S%CV3!;S5sxֽFhVljNm#B~Q[&5"ϥb.\͆q64ya@׾0e$>y4sk۠tO4z\D]e|UM|-<]44y[vlP%m>] d6krЩ~4J=?F8M偺uDJ #bӮoykIjsVF !?\yH= *fG'fZ@9AFWRGw<2m e?iG}+iYE5]|r)N̑C ЬaxfW]+}i7:Mڊqbڙ֖;5T*4U\#ZT-N63Ȼ.в!Y'a:^k3z1%vm d[?ET,4zazF*Y"?F1ڙUQiID;tZ`SF\ɝh$F9(ǵ> +\ ޽TNbLc$є]Û2?Th*Rf9^gw\*eUuO8(J)F:0MbB ݛkgّkjFam,]akh\Fh`H.`C+)k䊓 I~609R\([-))?MLV?w;c5Q vVZVS@jjh9lz+чSF%sRq_7RI^!Hr9q7OSp>׺埔"*uSlJi'kٽK5FUة `k#[N?mz6X{٩eo64-8BJ66jgTaY_`⣔ciʨݍHJ;̰D.Mʚ8ae>#h#4xJ+)lbQ4VֈEmMp}npQ##kt7: ==B+$=?.20ړVuGcҾVVh Vocyca!q<*#g#mgwV(pf՞<@18{ʐvXehvguj%ibu=XcaA`ϙU흏Udf`.TsֱШihL7X֌*Cϵ U5O=rFufTE.TY3sx +3O.șTFDo'RYuK9Rv0/k֝&RZ)#-mn.NZ4B眜SF$);)3Ԍ1aʐd3+ى)vgSF1i^I8sȹW᝸gNy' awRL wR'  /{y4g(nѵTΤ2R +qn1ɦoMfPU)'ز[&N'u͑HfmQk}12K(eh+pyr#?8) +uRF[Iiڙjiɮ]](eZ.^r”i&v\2u^d;0\n)CwRgb |֢ΐ2HI)ext|2A6 )YhL;B2Zt;fo?p.Wow̤2QWIe]Oq"iCP 2Kr-.RYYHe vW.Pr'RMP̥ T@0 TFotq˹V H=gN% SLgP^To4[ Z?8ϵ TU(Ae=(Wv"< [\׉TFVYO0ڍTgD*#9ͧfR1v'R(*@NjwR(, v +kwRiWD*#!keϤ2VݺΤ2X0L*Aޞ23L}_N2$at^םTF +36n,ʼnTK͚.R.wHwf+#ػHeƙTFݍe'R)D* {{wR06A*CiN*ڋpHehVvд@SIeڔC`@eH*tO *cQd]M &P6a|R)C~sĔ%t! SCd񌶗O24Yhn SִE9eha8e֐Ě\vrв}8eh4xTF{N2mG)@@e2NP͘%7N244oAe:e3,iP;n3 MF T K'L6n,;Ysʒ9Ghr┡q,;L;tS)C#t!q甡j P6eqʐSFyM2$; M6MwM2d=vNLNh7LRݍ6҉)Ks\͝RV#O2mz#GPZv<N)C +V{xPU(ehX砵zsU2JSFwLRݥSFka8eG7S;9eڦCL{Z')CunWsʒ?)C֫)BZ)C20Aehr@eIC-8bє s2meS5D)S{7cE]2^d6 *wJyzmST#1L1ڠ!)SЮ R,BN28mt턔,Q*2m YkRR;y ͼ!ehS)SK];!eh2Ɍr̐24|; +n2mEAʴf%3 y.k'L5ty,nȠXFtcvdeIw%(C }Feift!eڹ+ZkRD~ 6vV.Rٗx% pR\;!ehrSj7HZpRZK!)c'8b%-c~@Tc'Jh0RQ)wLJv;N)/0QʴEI)S b W)eINOA)C+wG(eI@ %#Idm6|L23RDUuFϝRF7z)eh2FgމRdD)S!k>Qܿ~ݍR4( zRV.D)C#P,i0RҺLmv%irW+ݥe>q=)TUՠz#㻹DywGh^Jx J5_6J5E>2j6zT6ݥm}dʨبQ.92'rl@(<2jl]FO^Lٝ7ccL)FXSG}Ȕ)p=4QӖ2j862epk`ʨqx|:Sv(jG`ʨY?Li2(ו:SFtOLqy12eJ_:e$޺>:eJ}2);}TFL)j߶* a&LSL{2J7HJ*#=ٍPKWN%W2joY]Kʨo0@eԔ3!o55fkYʨ*#t!w[.5ŘY|Q@yl*@eC]8Q#)Q268eJuZ;eԈkSFGۺKSf1gJ'^P\2RTP5@eJX:C2Be`CZWmC:He8z^RXϾ;2jnTF_ kK ) u R%%HeșHQr׶)f*z{6UFmXt~tB>Ll2ź^G +XѭԾ߀Q%bed֗& X"_t&Z}yZrYS+u&LQ[Gʨ8tʨĻ{sen?UmĨ˵ VFtڠQѽk]+;PZtp(a⥮X2M#:WFh;%re*K8>x2j+#HQ^Z"X ?6 2m3,#:edB2jxsȦeLVPbrk7'Z)JHA,#v[,Ss]:V{2v=ڷŲeϳh$ n bi~bEGo$FQW]2Q\ޜ,>- ,8c,#'Y{`O]`Y +`Z؂9e=},eԮR"XFQnqp˨k΄ `W6Gfֵc#XFryُ`zG4ͻc^b{ XL2j\:T2b{wF"e= ۻWmbr9 b~-Q,#ӷo*(Q38޸XFޒ7e뫳2j{V|eķJ6edKn,;߱Qcs8H9eD `5B_o˨ѻXFdL{LG2J7227Xv(`{Q_H,#aVQ;Qc9ОGJ2jtԍ`B\١Wi٫W:WF0q^WFL)+#2j}DSֹ22"P+FPveb6pe$/ o/un=hZ%JHUU+V-3heԮ\~6G}~ԨǼ1[h,~lQC)dqkʨa\HVvtHr[m|MJVf+;tqp%reg[Z+vg3peC.Tò))VzI2,;4dԎXXFg$,2QpfV+4tXF)2j:fuWmeʨل冏^١(+#z+t~j/Wvh&Xn7^R+Zyykex?je" +0ayb\١@XQ#V?+;VWF6, +#Jʔн-m(MO7e2j>{{exXlD^QAKoC Fڵ~`*^ZGf8yEF$$^ԂXƩ}bif],S?JlQYbW[bt6e<2:Db2zbˤjX!4kb٢2vߍb=ȵ{DVק}9eJM,ŪfBwj4u_(`^e),)X; fhܻݫEZY;e4wY^q}'0#XF'9I7;,m`vH0,[Ԫxj$l݁F>XyAF?x>֭G~yT2ntU2JW Smhv +`:Dٔw{\]Dzdp#X-7#XC485kGʣYFdeDkJ@˸-ݼe4'.ejj-0i$lI}v?t0hSv),[%Q2ZN{QmD˔y?-HЗDho[8Q"Zځ$25Yj[Iff2 ٽe +r-e􆭊[e~kF-D.NPK"rH$s)K$h:/bfect$˘ /"YeM0mNd٪s~~k/YFrfHq([?/YRRfYF%ej-2XoA hj%e$][%e\B$8;fr#Y+)d=Wr.d٪#YJp}l$Hucٿ`яea}fL0Vi.N BAvfZ{5˘i2֫v:eL-etq5etq-˪Ȗ(~pFͳ?6etxkL-[ulJ/[ƒإgk4˖!x,wi˖}[9VRmdVͰ>72 _bFLK2:Y[Fv>%eH)v-[5`AlO5Ζ`h,-#͆-K[FHf9:6et1.e>ހ)|iE-9nL|mO(p slZO6y&m]%~.XhmʙѸj]& +.A~du~e{A-et韄.Cdkv-e\PmjmފxWJx3G`vϳ{%v+vFlc%D˪`1HA/zM * /- eR| El2Ӷ-DFbjKIzHǡ< FL?x:Z\VzmWj}.Ss;;e~m^lӐE= О2j??(.۔Cm6ƎI3 e6Jlh+=̨QmltkbD˨Ne,6eOs#]Fmafm^{Z7fJ.IF=F,eƶHܒ2j2e=#e8pA.elAyBj]),v.eq[]f2-;c]FOh]ߠ$ڛv2z^55,\׵S\F4k\&dM5eԴbX˔Hkh\Fz?C.!q|˨]!DHmҴo쵚M +?22jϲ<`'Y?>e| ).2&51x7˨9.۴nQIv~t($eꓲz\Itz^HQ{TbT t^Lٜk\Iip4[o:^{m8*I.Nܞ<2jrP.c t6F:lL to>^.ji:+:Q/I.fGN\i8d(F1(Q ]/uswX6&>2J?A.(@.]\FmU QYW^v}o4m5e/6e]R\r%DlžwK(Kb 6[WRZ˔CY.vCvr٦W2:7=^{2j,ej ׽}8ELS$}(e:Y2HQ߅Ũb}eҫQ{nZ!nȖQ֒2FdIJR˨]l…}$Z}nu[F82--☃W^œ16eZ;\t˨y j[F^l[FEGfn,[ C%ey6gS[8a\^{2jd eT^{#eE.lfM n5=J2jEҪn&wLQsBF-v jW16QzSV[iK{Qp~;eԘ1ElT6l%e:Q?-\ZiuFoo-f!^c]`-[e@(yQˀm,$ұ$lS]h5׈QhQR"=Jgl-;I ˨2jui.G,VI:ez2jOfsPz Q4˨ի+4ez,,$F jf2jEo^{2$$l7U6ZzD(Ջ^2 h77*eR#Zпml{Nј^'pJZ)h^iIf5zвM3)ۈQ;8ͲMYI%2Jף ?,)s66e* 'eަɲM D2j=fMO6˨uiFWlm]^2Ǝ-yfYFmE,Sb=:,۔+ڎYFI!.f5\ѲM'ZF5hB hmR +}9 2jh}m--3ҹ55eԴgOh٦zoT˨m=4ElT˨9kT˨GDҹ?~2j2m.=, +YƉ0xa ?bhJ[xo[(&=Dɻ 4-d[AX=lagӍlg ^drzrd.7Me F 9enkk%lE$OȖq-8/ lt2^|Nֆl:p.8{`-#@(42jZpXk{xmpˮdeO/ l9B˦Z`ˤq$-SǥT l{{l)]uq(e_zd˔6#[Fi~ܦ +' [tpbUa4l`I9mLdp䕒2e(w emkKl) C#[vj=Ėz<}d dg[F'Z8#[vuR`4n{-Sa[F[]k ngJ薝gs6e˶Q[vroQ[Fgi6Qg[Fm~?ZKr(ջ'REj/\F~M2jLG2j| +pzGfQBpz4*ѾQmvn~|83#ep e&,[$e꺰A.Tt٫2?e(itW.fKk\.C"\v+4Q۸rmy˨{mc"Q.fZT\˨}'e8Ι.J˨m/VZ%eՈLlT^FFLzjK +z-ǚJ˨Zڷb,Q/SzeXaXS˨m8_^=AV zX {^r^Fmީ2xWan5~2լ9_/v{JbI~jg~jc_`F`ҵzATm7$L> 3jؼH0SM%fXw^jK̬v`f5k,I0DL^{ 3 Ze03{*0sjg 0˺+k/a݆af0y%Tm$Lm 3}Jz(A4TI 3}*25affaI.ls3]lk/`q&3]N=%$LӦJtaWR浗0FpT 3yy5tOa>n{Df$L ;Pڋi!8Ǿ怘iNbf릺5* fZ]ƀiC"bc%!fZ = fZ,Cdg3-Ή԰{L@0pw/ fz0Q_^LB=jw@DU"bFl~^z3jѱsTn횘UbFj1fwFČC-3j^bmk/b}zhi3,-2fV֑03f(Ǜ/#fƱb[%Yfh-*$ˌ7,Ve3qJmlhiseFl,3a\Ƅ+S5V[8ˌzUQnI؋k2cAZJe䌙ѾE3Ӂe%af"fSω`6c?(6kd/K#csҽ \\(Q2#">]iDɌù$3$3!! ٢C@_ƌv6XL 52f +vڈYHGLaFJ ǠN4,5fBظ[S^ތ3BW +j*]`h@SI*g1C|skPԗw"`sCh}`1_`F?ksQ0#FŒ.daFNU}|&fRBv yـ3yH[BOmW@b%rmK!b_2f~7h(q AQ?j_(9 ~B At6;e/,/S\kM~O#f2%\_u;dl{J$l%wA"_yv쵁/ەN%2pB8e#j@r=ėPܽ6eiB˘@i/I/#Taoȗ1`>2"?/cיVf_ƙit_/P2#:V2DkTe3et(쟼 +F |r[]:sg&G|˗Z|,etnC/d$/Sϯ^ 2piB٠_59e C[(^F~3qW/äR;kA/dK֋mUP_'rI|4h |ǀ;{q4e<՗_ƳH'2e"Y/2MWw^f2%"hkQZ^OHz70脭gG IJ#vzrYgpIz@/2;JjA/[paI/ ,G6z z>W-eb˘'o7eD |Ğo207>2FxL9^Nz8>%Q/x+X)&Ფ;^{ۍˬir5^vSX rr#2޴ / )0r /[^U4e<$xex٪ժ%y唈qudʄmJ[^5T]Lx3LOz-eG]U72gK\=(eR(^FGNxM8e=~5,e?^ao)Kׂ^/YA/Scؓ^6?MzZ~̌e9܄zjը-L+}jA/ez Y/3^fyf 6 xAk5e\^Fgz;;el)[/̇^g֮]ffteͲ]0e옋1e@k.e퉻}f]vOITׂ]>on.7 k.Yl\c] +ITlUs?Eds'&A.e n)5tjLY=d17e_۶ZO貍d s'U'LիlSj.c[L&vkvmN/uHvY?>,]v2ed5 vnl *.=Oe l1eW۞*]<`ޙZˮ,3^^ofQB!-3_Vv=euuڿK|*D_mZfL拏2ƶ( |٪nȲ_;v{o&ҝׂ_xm7<4et@/IRo2eu-ؐ/c6jmDǧ_FbO/Awϒ_V?٪?eO'wYOv||^ |f\G.e'N|Y] s/c17_2X=$Y/nȗL&u%l#ʸ̗fFlDY4FZk&sG2sZ'fz~N]D yPu2EK~٭Y9_V8_F˕<赑/{ꍑ)2_vÒ/׾s,/w.e̗޷J˘|6K2Z /;hėq/e̗|Vz{4ȅՐFˮ5ey-e\R1eobY8g /lL]h;]vokӪ]wi̓]FPB&df{-eg]Xř^m%ݱe/jHˀɭ pꟀf!/E ʬcZˎ48e;f,S-eÜxq5urZjY/3fQ/C}]oNzPL ' ݗE_#k~2OZҶ܊zYu߶U^FL)Lz]?G^ƳctėzmDۗz\ಛՆ%f7x sIpٹJ/ʇ[v[[vYd\fIvf^,kevQݤ-p[LarUfz$[̇ZcT?Բ浤Vv`~ٲ`lok-.#`K/_l _jӞ9>2L/l=2eaQԲ_lY'?29-k-kno{/4í>ܲ%pYoۙ ̎q'\x-ed.k#.a>.{mw.{/l>26%~ -{zZvZvZv)h/鵄р\lY&E,s_|eˬeZ֦ԲԲS 2.|eWhSi +jYן>2)jɅ_jی;jNÇZkDZvyZq_h7c}eN}eEdY{ldVdYɲXBObA&XȲGZOhoIKD/Lj,k&3Yӽc>̲,<$,/]%2EyrYK=}e4lRei/%>Բ-ŖOR>ݲvp-/ʟnWMn^no|ewPlۦ|e|e~2"6eŖmɖɺ*lYˠbDS`˚jɖ#‡Z;ײZ_mMh{BFe$5-k-h~#[E&lOlu-[e-̖'LaX^jY{}e|ege[[~e~e&7[،.-jY{Pgt2@-ZFj3Z6G -۬ -kO$_fY?2%/n,[9,kYdY.f]*ʿ7 \Ͳ72ZSw%}e6[>Ѳz;ZH/>Բ-2e$ղYVΧZ{DR<_em[c/7C%)@˼ߢeނy(Y!fVͲخ?`#YY,oe/ٿ2Ϣ$%ghY-LמQ ?40bQ/ ZcVOZQ[g-K f۟ YFBRk#YÜ6۟L1r%H-0"Yvڷ vԖpzXb.Q,#ˣ.]Gs3,#vo{F,㘼]JWgdYyʬU,ٔ1[fi*=6FLM +j*cD+Ƙ T&d|#26N,dfDUFsΜ*{62M2MgCRՂU2.kpX`=tJ}*cwY*?cZ*{{*cm&~LgR; " Rw{ēTw22FyxmXd6[22 20#Jeڮ?ߘ ]ѷ T=޸$pXKyR?+Y*ֿkTA_d&c׼k]*{F{!IelZReMI*Soue.JeTfj%@ۯ7Bekc2)0KrʨLpʄ$C1~GA*v0Z"Szܜ2z.W/I){4åQmTʨlkRhLt9QO(){4LHǀ)_SFMk^FYb#ב)T?m2jQiιGLP﯈N٣N 6_SFͮЫ^1im )'4**0e8nȔyj#SNlȔQӟn)xSF ڊLqmdʐW5Hex(IdݮA*{4jx[,Gu(onYmʨے2ږW} +N>L10JeDA*Ƭɯ!f/Tmh!Y*qcxϯY?)P5N2=<>0:e$El')E.jgrhUSFͬN3wtʨ?[䔱fQ:eԎiH=V{^LޑQ{`d:=$ڻG WESx[3*Wt g[KHIP.ROwP+eؿ{2XrIPgUj#TFzq}/xOʨǻuʈ` mq g33F<2#؃kzQcEۺE2jH){f{uʨ=~-/)#B4jS1Fȩ'fJ 7fZ26[8MIN:eԘs蔑 fSF}Pmtʨ]?۰+){CNzޝPN[J٣c3t9*eh;"edk[KJ^QV^z2JO JFg- 924T2 ?hQ;(#tmD<%ewJ"-< 6e\ )(C^Z dp`6e6KT)(;|,e(#{۪ɦ2|7A]ZʩZ .d.QX25Ca0X04ܷd$ZF0UQF>/ J2~r`qZFO'Vض8ƕ2ׇ(#Vi("[(cGw)&C5&c5MGVH`w}<eg h`rwׂQN{ F+C*v/Zi FCY(j'?c&6f0ND(=C(YZv{.P.43Pv(QM'gPvrDhZ&8Y(Kt- e+vDϝD yn(dj )k]) ͫWx!RU Ι)# MSD̔q`b\R^{]bz9=(Z01eIEyp*4]}2Ϟ얠E`w'' +m2\,d7o2<68eM]Nɖ}69e\Hsn䔑h ^2޷y)Zmpxr\[nrNME)c8)); +l?w߂SFZ*KNI֞ #{m))SÝ='zװ1iW~sJVʴ#hWJ3[)I)CI)4kA)#gbR;^@7)RFK);uٍ2"e:osR6)RFneFv~{R8-n!!ePHY}{_/!e-)xVvdK)JF8e@7,etzm0ʈGԚ2b2=5eB7̝zK(j|HNQv_dl;D~]P~7 e4xkWx.DJ\]! B"lSZφQFzr;G>aQ6lOiϞMuLHgl>fJ25HX|HbD6 e:pnڀ}G$T|oDiDQʶ2:pveGRF٥@|HF?BU +D/2>2=~ erg)E`SǮ)[Ռے RF^2:,([Z&{B4"xH=7!ei.JFʶ7ǮdLYʏ%l#"R FK`"Qk"CQAQDi-v\FF'L)'lWeو(>Nʎ1& e\ڙ+I(;XTg(Sfut<8eJ~[ DYKّ@"xo赁(;i l"QFQv~ DB$]:/L3 *6ev/ D.t92j:_6e\[h2 OG,PFfL= BϚ),q@pq_xEGTC-OFٝPFVi4ʸӋJ(h``1I H٭OEk"RWRv )#&^wRƣ Kf%+e䰜)1)e4l-:*e켾<91)e,ZhBذgo/22ROY L٣(&tS)CNp_R*99e֙K)&2ԑ2z~82e=W e aiD) t%K ^ɞq>nSR^2t)SGV}Eh@ʘWs})[꒑2mL! FJ+UFך Hx<R !j?Y)i"i{JQ)۴ `)SWKUML6&.$3ܒ9,)chQ *cxb]=R`~ s&^_X.گ2.ZoMrjG+:e4|חik)Q*SY P60eUT N6 S2N}}USn_rvE*zrCs:';eu7,8e7+'QSfu%LoS M()㪏)c/f?t();un)dhK N-Z@rru :eldL(Wk癜KSRSV-{=3e?vmo82SvĔYf)ev8WqN٩gNGL66|W2U&;4Tkfq26KR&׹zdNE-k 'msV"UvG߉*3 [|Re!f0M8ʸ-;v~.SRY}? kA*_xH܍N2 TPILR֘(i$z*c;jg *8O#fs&:RFv2AK9Sڽ4T#Be!24Ae^ PY}>T7AeUQ{](^&0)F,9e۝;Ae7=?Nd86o32:~vD1AeC= ;Q2.2N,(Y*_>T (WmSTI*cX>"UUj DkZ/RD#e&* *_U6t*;oi,QeW2ߚ/ĵxSD];}FeD3UfA%'gCVTT5u*6cel2[e!e JVD|?ՒU*C;5*T VnXo``UV9s*2 4&Ze1 flmYfLWǷTFwc&7kdI*H%Ke^ Rb2UF3iUFb'NTYbCkƩ%~3LށZʮRORORY}kXTb! Y*=e췿dژL2<2o~2:2Win wڊ$SeZ'9Q2&py.P-Qeɶ{mV*ק*6[Tel\#Dҥ- 5Ie + Ie\u?ݼ6Hej\| =BT>/oJV6dqSC)ZeӎU~QՂU6OVY]5Yeu6,Xe{-he}`wپf6Y2EhO̔W&W'/}̕ p Wvp72ܽt;{euX䕝IZl+^ s؛^Y2;ױvIΧIL\0WWWV??2J\٥PCWFVdp&%N`.3'Ls Wf54*yeO^Y~6+W_㾒WviEWvWvk`k$߷%ze=4+ӆ7Xv_nsK^}+̓WXe_2%[O=2mEd?2XKF I,{uχX(z> +112235 endobj 163 0 obj -<< -/Type /ExtGState -/CA 0.2509804 ->> +[161 0 R] endobj 164 0 obj << -/Type /ExtGState -/CA 0.2509804 ->> -endobj -165 0 obj -<< -/Type /ExtGState -/CA 0.2509804 ->> -endobj -166 0 obj -<< -/Type /ExtGState -/CA 0.2509804 + /Resources 165 0 R + /Type /Page + /MediaBox [0 0 243 225] + /CropBox [0 0 243 225] + /BleedBox [0 0 243 225] + /TrimBox [0 0 243 225] + /Parent 166 0 R + /Contents 163 0 R >> endobj 167 0 obj -<< -/Type /ExtGState -/CA 0.2509804 ->> -endobj -168 0 obj -<< -/Type /ExtGState -/CA 0.2509804 ->> -endobj -169 0 obj -<< -/Type /ExtGState -/CA 0.2509804 ->> -endobj -170 0 obj -<< -/Type /ExtGState -/CA 0.14901961 ->> -endobj -171 0 obj -<< -/Type /ExtGState -/CA 0.14901961 ->> -endobj -172 0 obj -<< -/Type /ExtGState -/CA 0.14901961 ->> -endobj -173 0 obj -<< -/Type /ExtGState -/CA 0.14901961 ->> -endobj -174 0 obj -<< -/Type /ExtGState -/CA 0.14901961 ->> -endobj -175 0 obj -<< -/Type /ExtGState -/CA 0.14901961 ->> -endobj -176 0 obj -<< -/Type /ExtGState -/CA 0.14901961 ->> -endobj -177 0 obj -<< -/Type /ExtGState -/CA 0.14901961 ->> -endobj -178 0 obj -<< -/Type /ExtGState -/CA 0.14901961 ->> -endobj -179 0 obj -<< -/Type /ExtGState -/CA 0.14901961 ->> -endobj -180 0 obj -<< -/Type /ExtGState -/CA 0.14901961 ->> -endobj -181 0 obj -<< /Length 182 0 R /Filter /FlateDecode >> -stream -x,7إ$I0`ْ3A#a3<}"YIf^UWy/?d0"+,u]k}?WL?c9-$,_۲ռ_E -d׿ֿI5ꚫÒ?H_aˏ\- ?wǭB,ki{c[/lǸןwxܸG۶O?75l!l{M#J=ިn[>޸q(1ןwxܴǪ9{*kuoӛҶK9I=_zsV*#Z[>ӛR-RZ\|́?WYG҂k;ӛ^s/oM+V1qshl?ҍןs5V){-*~zsV^TUb~z\oZOo)I;n!Bןsd'뭜ӛr Ez(7\oejp񪇟sU6Wm[97\s"]6POo*>v-ڔY=kҏҐ4[>\u];[oُW=k.{7\o+[oӛj [ןsVXh7\ocN?9zQdc<ӛұE ?9z8 V2o>7VG99fӛzkۏiUÞ݅Ygӛæ>9ᠹ4i@vsן68l"Wx ;a >Zae@ԒMl3K咳[>wGjA&y<;Qh!N,=>wzG%J_~yg'86)M;yW/ ZcE&b;~')[܎u坁`?1p#?3,&QFq坁uP/ 3]|Ae 3tUO1tUQ1?UI>wJ%?2_g*(R5ÞΠ?SI󢏶5ϴɺ~yg騔d] 3uClG_yg(ỵu1?Q!O;?Qr;Fb坁6Y/ Cf%NUw~ZaY?3ϴRly,_gz*R=nu.?5#V>={<xkݱB^~xkݯ?S??5-+w72iq3]`O*™(q;?%{3Q;Zǫe3=ui.-P#ث߼1g]}cߥ\}c[}c1#⠏}/vOfcM/8S ͙~Dˆs4 0⩷=~ǯ?{+Л]WM WM7]WMWۚ_7_w]mWMYWMEWM1WMWM Wo﯌7FMWM7]mWMYWMEWM1WMWM w1W1S1S1S1S1W1&;#}9W]4cc+c+c+c+c+c+c+c/pKa8I2M~aĩh #N %~Ĺ\ #NM$綒_q95xcȹFZFM$0ߟ]}aĹ=ܰ #N})N_qjH9ˆS'ʹ7FZPM)0{rFǮS??mr?$Mm-F_qg9w#΍,֖_q`9ˆSʹFzV],0Ԭrn_.so_qn9ˆS'̹7FZ`M10rs??r>So7;^~aĿϳƈS+͹q9wˆS̹Ff}40.sn>s/85Ȝ[f~aĩ3+ #^pp( -uyx?pTV?R STAx8ݞz1uH5O[x##,F_Y,3?S |c)VKyj:I۶C~!*ӐtY`ȱU8'M[?rh: A۳C~Ҩ!*ӐtSdȡ{4}T>7cz-mXDZ>i06`CW!?icqOگ~2nuƫe򓖫 9tC/'C^NfszOZ`:I{C~ҵ!.㐟k`ȱ?8'Z?2ҤG'C_ug`ȱ8'}Y?҇u펬 {X?ޫXua`ȱ8'W?r:IO4'>cqO~2d9QO\iN|aQuުGӆk"|Զ!ï5ld_>j믃5idȡ)4Y?"|Ԙ!D%'C:Q3l/a` G X?:QO"|t!_>jɐC{i~r G-V?A~2Lu򃶪q ##k? UCY?N'Y?0r+_a`˭ ½C_;\h'V? _[N~C)w-y]T?rm:y/7RM;~Y2؟,bl* ~ә%S8r^b1t;/_H;xy/_HV ;dvOg#\P0`; |q/$$ c~!#u/^p_1:^^1|V 8PM_G ;̄iD܄q/& Ncaod'Nc~'0'Lc~'p$(`q/d(`Žc~!Ev 9 -/H_HRxY -/_HSx~NaJT -*a?[~ F 8ra/$+È_Vc|;0;(vg,\P8B ;m~|aZpJ"_"/j|W~Ejyu/|W|sFHi^菿ƫd%x-ҋqzKۋ%ыQ>H9?h`߽@ʮɖi{.&ʣŸnhM.q̰boZ#m[n/Gm5B1b[ʶ^ګA ).Ũ[rhQǯ=ՠӗuRx5Ҙ)=b˱|KnƲWo7_l_b;# - KdVwMx(ޟaKj,ixҽR-/Ae9i&E3ﲞNt;*wʤ{c,SU4b<]/&#sZ>^-9ݯ| -W22mCJg4hLʷI2Mᩘ[HW/zcudҽZfdCt~;t,Ss&\M~x5,-U{2ieR.-ǵmRIi#kHKqqI~5'2w.3$oQ&+4޽eչtRˤˮ4{2ieͿzI'M5OX֥s}kˤ |H7Ա,):eR0/it ])܆PMV!RwԱ6oZ9o"ˇ]&mw'pIsƗ ieWGˤVÞP82q_.2Ά2){.L9e >DXf9Qg[TѪJ2y1OT\ - v{]XveY%2ӋyʤFZO[2&]eRELzNH8CKOSIJiO".r6eLzI˟:9@IגdFwqfЦ)tR>ER2-b{z0,D/(>WSVdO#(I5VI`2FM&M^zʤ5doL_擓iIGOޛlT4ʴ]14PbJo5vF|ZOY~!ipE6/SVL&EUǧ YFӑ鲥. ˽IoFWmQg|2z.)-O_*g~>Šm2)bFxA&Pe=277}uIrxN1CȊlLO[65*@ OGX+԰ܪZΗ\j8rN[j{A(`R!Oq)&GNPiA2:ʕ;}4e]&pnOҰgUe9e9>&_(q~UIk|@M%R 61e9ע7;Vfyg -CF|iGl\a=趟KYo ڋ砪.e1>J&`;]R~}C&͞bu\fp㍝+Yά>F`2,e6Ii=fvںHӛFyywd >\M"徟,VRĻ~Z@]j[!O -Vϯ@ܕ<9Xg݋<93^9V";(zsIERN;Zo,nLsN[=8f|o 7NiC2|I܍CF&tzh4$g8K<|c7vh,RN[f$9$k+xu|1Eg''n֔r^2Q[i] -JhZyc>M&,Yih4TNG."{~ф$e% ^UX uh.i]_ʇ0$ʘΒDf>yX}f/tC@&[H -X.vʯOp2ZpŢȺv<ܪUZ]fzs'[1 TO_fH^|8)#/;9qA.+2m'}iN'{Z0~4/zNr|iM!L;f~~r|$[a5Kj,%*w iD'2H4&k5*u[Lt隻hdeI k%KqԎLa1RɜdMHOT%w"%F[q$dƢ&\40 HA$.Z-G0ˤu]M,bJ]ey&Vmʇ+ a$\bO(%֛d$mկ)5,_H!I]-HkǓfG'7D=Vt'B9-WW/QJ!wYMspfs3H,}ӊN8qf ?iEG2ibY2D!COxc,ٟOMf2)[]}'H)qMLUNXKlk]]&UkSj&VdbV^ -*r|`8&eH R&]"u|Hh;ۣˏbq^eAm -+pw'!ɍ߭mz2H/c߶,ķC]&YK񰣣vڟNe\jmJgQq/AWt{v]s̲&P z9lzH:)}ʕW уdhj#Ͱ&pd:LF$I,2E4+W,vz"Uu4$ O8hvٞCߙɬknajW&L92^Je'_ND2W|зk|PK[s^Aޜ^`4[7'[ʷ۾4f~e(Vw" ?_<-f9s+:t#HZF/I-v#=hР%/ܯ0Tt^ GEtGJ>CNxFM3t#cdzj5igXqȝ1.hK7K]JU.#ܹc辱6 oɟ'Я=[Aq͍76ys0L6;@u{=<틫[sRqwi1э pgZSnezݜBR峍o&8MhE*!v#{ ҭ2KίW0֛)hgZ8[+!j }82'qdEVɺejhY%YӸ߈̗.ۥ%9pRefJ/Javn{FW{ߚC -:ys}~MZ!Ys~ /d& -`Sݦ41ُ{7X0 -&*ԊRHg){76"?.kҐ25786YA)D,f*\Gp7CVfޭ Oܼ@DKs P_RVdʁD' k* GiMi0E&UV6 H{i9L?li+ ɺn7/Cڴ%EJէxReۖqq+2NmATQKjKj+ț7)Ȥ/.^_[dRE9:M9sTF>aɉ;0:@S&е,lc"֍fvEALəL\6>Ȉz#0i¢zUJ[nwsY#9m eǭOѺk8][ɛ lꭻ4em.ҋ20 Q8 1!\ydA.V0RF|稛kDO)tn"1~M(ajboSx[A+.a)oN&\%.Kj'oNQ}Tl ~\,tӃh] OΜ 黋8ۭțӺ%]|BH3'?<=w ,$`~D2w՜cɂ\wQ+r -}+H"[gT1 %ֈ'J]L&U,M]JAҴ0RG× -4?2͠O6%\:ȅ)_ ʗK8%!c_wrLz\u/َ]Zf?+.F@ӣ_Q347pd&-\43v,.";dz+*/A^g5=i&]i!wZ,ȳ$<_ZWZ|7aW̡|{G~@KdouY,O2w*AKC+ÞJ]&k۲I {FR--j%wH~^9VUNex,*>r'pޙ FWyȚ5 嚬x.u4^sKǓ*"OJnVVn?3 - ;q"[&!G9aɚ^l vyV*gڅxymr2=aW$!Qn\HՖj=GKރ3u3[(P*GZf)e6Tko#Zǖ3'L$3?.D{(*D3|h&jryŕeiHAzU>)}54p!xk24dmv(gKrcQ&a '0&F|߂J"c2JSKʚMz@iů)RΜWdFOWIoʛLV1m5.D7grWM_2[Ii>-Wtew4pmikj=\#x8ɤ:5 ٫_>ݦ}!pЂgbP6my}Kdgxdھ&۽*DLRg1$,h݀LEm<]ֈ%;d -2/.-/f$prMejȦd>td`}*DR1MLjXv]QNŔDtO}2!3-&ayZfd>-(f*caS+Ya-2' D7qNki2ia:pN Ed7ޑI ;̧!;ҠXE۩rgd]'pctkZPH + g al27~dfE6^ LQ &~JiE2DMdeN־揦V&ReSSO#yw20W\]b; Th7tN9xb7""~ i?|}??%BAmVDÈR#LFDp985YĀƕ*Eac .t\ldžʜ`'NKwOgyp2jnxQӞ,S9 F$ח`^DTq<]s:9:ؙ%UBHNVĦ_$˔˸ rH@&Q:kf[ˁ#+Z}f,LlbRY.ٵCUCӍz~]2㴡Ms24g8ޗر׸ tW_˱!>"L<9Kϴd~=(5|Mes*:cVEUU]Dh#xQ3%i&ڹW/B?"6{NqۧBlfM Y |0-80d5ѰJV^8KݼTkw1lj|c72bVk0%3z~.OfPDF"]>gK<>4 |ڋXb󐗳AʖϒMovYymW r3O*AR)uk"˒ dxHR&6Yuqs3nscPsўHҦ9输n\54CIL9_U\r:ed=VFkVnZ2H9^Lb[6BE& O26w&$%BnVpGfYڲZ&S*ah6쓔T5e4Ų[;ssIFS+1%Պ&67玲TH-zxmIj6g -_%ODsBI՚ X+58x3GJ{j7 OaLrġ*zRw/ !6,jznV?(~]2$[oۘGL-j5Ԯo([x.HӿjD`!98]5'@ȗ6y_~%Bl2rQw3q5'DEC%7;)ļŹ%KF`$W -?Sߙk5S ZX&t'$biȽ@auOW8θKz /8%qu1Y]ݻLk&L$hv?'&+:3(:BT;73HD\-7{=X >UtvЖ,+d'f헌$"H۪2oV-+X3'.XtvfLi8eNaP{LǑA1,!R2.蓸{.1Z:j?*]ko -Qkm!,ՑԱ."jV -N0}ZHeߜ띐"OznG]v\@;TՌ;)hZ?;e`'+x6M2/I)Ӑb34 ϓbxdl?2HL-]K)k+MFzf={DslDd|hAzҧf#yaml7 ]/H -'B2YbGvX&{3dz]-)Z{-d͎GȏcO/tQ&WB*َMNnuI5?9tَHF(= ^H8}&VVI<43 f2Fȁad (|mGVJyCdqEieBdnZQsŽ#A&a=i)y0te$$O: - d*@2Y~ԠBL3hC\Y+P yNji 4X\j/xDFEJAG]z pxk!=LzE0$dvFf]RkgA;թPy8GVdzja}k҃ȍ;i)""Mh_Y( 7D.Elfq}練ncy'l6r>lh/;(Q Y#kS,6Phr\Mz#6+5Uq ho&d}CM_E;*#Q#h(xM˶y4gh:`qq֩!P -^j@zNiGCRI0m[Ӑգɚ7@áfdV9R(>DvDHZG^,PbovQQ|)˟y<^-#Ȥ[MQ -#'U4BG';pܧBXg,ASlYMFcUNeO[pd -#X$_LVyIV[ƞ.axkKkri@FK d;727U7&m&VM&"d{2Hef";s#BvxBqd }|3FMG%g1[[݌JDe*+c#NwI&!r]ɐf?4KZw$2)lO@ZfB -RV|Ðd-QNSn02~pUNU2͵dd6PF(x6WĚ}iLfzhbk"(:̜<AF]064w T]ݼK(Al@4q@'׍;9Czh3'NUMT_D`:.~ST - 쫕U*Ɇcy&2HH6"sJ4JsbI7oaWhRϞ:LW?es’MDpp掬mTM#4*8< -&w%Dz1l9pM,JBSlm;Z֛Co#L;Л#b.F%$MV%Fvlq}? inm; FWuQ6sx!IQܱ]F_ LX95XV] ׫rtc&܂Wڞ ûlv= OUɴ,I^/2]&LWצJbNnAʥU < Ac4]’GW&d~hWF#?FΆ_~6Mɴ)2bgjApH^ ۂȴ#7ifia6 [g)޾,oBu^-)$#m&=z?l2]o[@ra n3k滑q %iZ>9\X"[/a}jE˸V۳LcZ҅F/t!&~&'v/AF|5&V2KBX]F-&#CfG2ӖdJK&Ǝdb7sv~7;^?Kf%%^'Yf2/Zhq [$c얖!G}J~Y]pIh\ dR2VZA +| ۤ!,W|HlD4́*ZSN8 -,{?zHDIE&J 4JNBϿG9Lpݚ -)^ JCʑY,>!26o6d!e dt&e7Ө52nϤ./< dMFwl -2-0Kd2Mְh}Ze,Tkr;;co]:A"e&B|ԓhcqz!ÍQ{4ڠVkθo,mHjED;L I6\=1u,d\=sMD2ʆe"3eweHu,@d&r㐍!sYˌ!sPB梐 (dneɳ' -f_dZwL2P(d.O2&(d.uee2y B7d; 2m9d0\VD"sY Ef2`\#sˍFf2m]o,BNˊ7d.[D$3a9]d.ls1ɐ\e:QLFKKe&.8)6rLF {+#e(d&}>T2Jf2 5PLfeˍJ2QˍJfYD&&<$sY;k`qt/$3fOL2qe~:!Ld" IfcBŸd&;&$ɢ<ܐd& =\:LZH +"Z/Nd&W6cs$_ D2OX'"&"(8 L$3Q Hfr!#'wHf2m>\d&)F Xl#dYJDyd&K/xdȬĶxd&;\ۉGf2>QFɨ!u#3Y>oLF=#3}q6Ȑekxd&gyd&dFh9LFwK&7LFBYn<2Yr㑙#KG<21;Wlwd#j=xe䑙HcnͿ#3Y\#=v7LF#3`ۗdpbu%^Z5LFcy <2#,ѥsGf(v#d tÑlݼ]#CHyLf]dkCG"yd&C);zk!c$3Yn_0Lu$Cϼ /d6J >$r0L[܈dw9L$2# Y܀d&@# i./d&頯HGdzc Yho,zÉGYPuL# qvd#KV;i䑙,0GLZn8vÑ!%FU,Y܉V# }fƁGf2}+ un~#K}ɐ:g! @2ɆqT$CI H] H4# Yxĉ] }j@2dҲh3ɐ@Hf`@D5Zn@2d;xހd!7穌@2dr +' "4ɐYɐy!$KF 2Χd(+ܗGܾ<g نGk+ɐa;ɐ7Hf)[0ɐ+\f""kK\H&9־D2d[ɐD,7"Y|HfQ҉HkܴHF3"!&:ɐу" 0ɐi{tb%];#l@!NosD%kz:ud!31ɒuOFdT  6 hêp$3}G H2*Ij/dVe^Z9e&YˍIkd1e Y 1ȏ<# YSdh;prtaQ@*du1Ȑ9oɢ-OF %G 14H,RՖۤdtwI_C=ɐq]d3ɠ0hYl}H,˩ H,q~+ Y̬:xdeҙc tN<2dU/xd&4dxd65>)X2ɐ13`<!^0ɐћ"6تYnD2drD$cSD2W#a G"ț oz GcNGY˜qC# BG†yd?cIˍGJ/Gf*3_y5r㑱 BM204a9شGƎd7Ȱ-~ [f c͏'vM82l[isGក:lY"g G'ǝ82b$qd?1rYr$ Hi n:@2hة\̂ -03]6P -?5ɬ*,MgL@2bted{U9!q$RZzr#%jb D2 -" Dҍ(r#YCW:l їbgD2Kt]$IfG_ *5i!KG$wd#h fdd68ֆi6KqiGY8ƉGF3\z.<2Krek[ndBYZ}_PdL# Xx.(fk'(2\gxBQtZrC*ΙA})u_(X%3 s+tH"O}g'HdRӭyuD@܍Dv.$2M"Gb i EF7YY]lS S`W%]f"vEF>n$ }`ymށeYd*ycWY3 xA:O,2dVKh`8kad,-<Ș>FuA6S^!_ -#mM&A9Ȑi2Ȓ=XG=adVtHF³ #8ci`dMzqxك; -#C4A E"p팩FFU|/`dփ=add糃|42BS+MXӝF `ZZ42d yIFӃ{"H#3Ye9ƫ Y%Fl;Z$42dGJF:Ȑ;# G؀#Kv;3:]&82z7<2k+fJWc陁dVLUɐH$#XFeW"2Ykge]d\3il$! -*޿|$IhJI,wT8H2of{IFB 9':1VIҳu$K8qd"!)Sv% vtlIh13ɒ6Odr/ߟdEݜdV~$dL2$p $5-&Gw$'(,Y=5eDц,Y$C$#O강f$2bʮL2\cf% $CvԅL2jI^0ɨ u$C'~wW(ze# N-I~ P䧏Vv4C&ۤ,B,OJ5/ݮJFE"dIkgǝ L2zPIlǂ.H2GxWI Z߄F$s,H2q޳H2KdD%'X$㤆\d|[ rvErP2rVړnw(~wOdU݃r %KzJ6#'Puq %KҳG*. bɲ[f*Yև`d0—@%Kdx/I,d눰+̚UՍHF#t@#|H둞D2sdcow -=wrqF//d>gA$ë2:u -$KƅsvđqGd?;AgKѣ:p?695m1x&[&i?[']qdo@=qd=h`pd픶 l3v_:ߐe%]e;'?"!˼KqH,&3b3qC4lYFtppڈ,U=!,G1#7dY^Ci^dnAr YF"~́Yf}M6o}>"˰d# h=m@EIgȲ%ˍXXFjn IJDKD,۬skD,; l G q⻼ 5edz%r'WL2K' =F2!ˈGx dY1Hz 2߈e-AqtʕXFy^p#G q@jg 2s 9s؄,W]Y(/3Zn2/T\k YF_ll { FbqD,vGJ IJ ʿ UyHf"uksL,1UfdF 2ڝyS&d;e(pӾ`VO,;Y/e;е&f w'f,2BPzki ZVZz -AaA ZF.{<`|*qR<7AhkٻNQ=F-KGŝZFyi&p7jYve[Fa)7[V!\~3O4ـ-()./e5JY&l:lZVƸO|q\sf hS-fha݀&jY ]e $9jpF-.k}Բ3^@ˈ|ZƝx,]Y#4,*:md֏_P" u-cԲmv}/e2-ٓ<;hҾ |u z-Fso ZіZSݫfhXi}-ӚX^0z2Yf>AȲo YWȲ}=ސe+ClB; bY#gb\5wOoIJ'ހepgMIJB!7`},bz,üw,Xiid?X^ -I Nů9=2R6_֟}^qv#eu;,C XƁV?,{s,@ ,Wfa܁e2@On,PyxXvVU܁e>Xv{2[+`Y[vm^o2b+xzW缿L N^*HniRSͼ+S: l=sn+[+:$l[+`I}q ,._^˨w`}X'+U+`;,#we},{"HȲ|4$#˒&M2&!h.^4#ˊS28kǒM2`8,*wd76!W9!6 ,7ZYV I!ˈ ȲJ}kNȲMz,+tL˺Z2k:c`u.3Y]e]OveuYOe..s,3RwxJusuM ^"kel-2˺,yY/s8r bGG .JL4\Yˮ2qhu5;e&;I -.sY#je]z{\j}fpXfpH.s1#ef-3:a,Ws$uˌ.s=0Lwgtd;of@#Gr8w]2 ]2=vˢ(Ft_vDl58Ռ.3,(J2#e,ve,WQ2cue8Pe.xʞ2y /3/ej~,0Yfx(Ik^e.C9\bef,B$rev>.sYIe.ڶse.qbWxV,eLGϮ2h /s*xR蠧+E%2^&e.~^fz˶7^Helezgnr/e.@[2Yn 2$w~䖹l뽦Fn"e料5|2=e.63ek]2Ze䖹 ĕS2sLFH[ )GlBޏز{t2m 3`\dUˌ-3Ys[#+{Ė,k',2e,3eReƖ,P42De̴ˮ2eHI [梭C jok -1+dzn 2mހad=ޙe." +dY2Lj2cWfփ30LFS+dѪƗYГPGfH+d+e.n~+ Y%3d24@L]fhd)1BL&mZf2N; --sYn28[rv4n2p@-Cƙb]Ϯ25&{bLV[?e&1ܱe&_uŖU2Ym\Zflznj-3L-3m}^eH[f2Ft[f[f^:cL&ﵳ#dr%=nĖԤʮ2wlY @-3d'dxe&],fj@IhWjɴ -RL&6Pː5{ԴԲ/3du*[f2m{/Wl8Jl-CF' 2 lɲԎ_J-3e& ^J;aHJNe&]e&5a>bL2aLDd[Lt'2u/qƖklh[LQ2-3Q2#!sĖ%?2e4_-3I:bi#d&r[L*;N#daՏ2qk!y\2d;2+ju~\<¨ 3dZ5ː- \f:o]e䥗株\f2Kː쁔\,tuLGw%Ke)-.3Y2.Kc{.3Y\]v%^&y! owu3`q,3 7l"͗P|Ke&#ܷ[-3 vS']e&^3,)Kz]e-'# I{Ɩ% -‹Zf" -ޢx!Ӭ xeeƖ!6޾K2dt5i[̚O:e`) Y"=e%beȈ6uˀ-K޵B@'t]eeȬ̡>Wn"Le:j%ccI3p%'Z-3 -C#,g2dRPrː# :ezh!b9a!Gnwlq2R9R>ؕZZμe8q*k[fjY2QM8rːshqIusːY n2zv!sƀ΁\,\lk+k7rw$!(wZؕ\f?:b !K}Yd-]ejt%k[fr9Eg]e־ݻn2d$v$![-rˀ.vK{!,\f X7.C,A/yYO3#k!l}B 2Kc8m! wezs2efp=w-_&p2N,+6c}r1뻵L2;3%|-2KY[fmMuЀ-8gYar 2dA^5r˒[7㘩e e ht20<&2S\eZNe/2o z3ǑY捧eޯ:xY;ˌ,c%t e< ˬvoZ0#ˬz2y!eߩe7@Z(bWf"N:2ˬ9q2ˬ_8g`gBͫˌ,CDBWEȲdEixG!3O׼"h1{*2!m~N[eS62ZŞWd"mfȲdMuH/(ˌ,$\0L"ˬ?3dhdY$bo,3,a $g@![%5/3̈ Č,w vE!-Y#v;X%M#&WD0v'5ʬ]άREs:Bfr'p`eH VFVeheV ~'X*F?=`e'ڢ8mΖ}[ ݈S=}vQч`e&}c5[ˍU[<'UfZȉU"W*~qz0 SxͶ@e, 25o6p:^k?93lDz -h08edmz,'ln2Aj|S.//8ejUwgNN=qQqәS_ٙSun/8e!Y3 /̜2Q\)c6fɴɼ┑ݐ))#:ER+SS'N:,fWNYck"0e 4|vMKLn̝GLY40ed[I!pʌ^9&)wÔer؄)Ӳ#,/0eln}Ie4Q37w%qDFJrdnN2;2!ze ģw7Fzb%KeM%?eSwZ?.7DYٻk:E8F{y8^.fnmd7 jQU_ծ3##, Qg[65I;edDHV( {jQͨbCV"ʬ_jC$L%6 -Qfc M D!.Wt -DEL<5qp2eh?[-QޱDncrO@as1ZZ"ld찰Y((# ~T㕈2 Q6 ),!e wߚ2"}%)el&( J[V41 SF' SXbȜd(+3e$+UY ` *cVTFBetwj_mo*[yXYpPb߷j*#{ά7`,܎=̈́r*(2[SFsK:.9bR*Q,)eNu9Js JPrۇRFi*eĕ7݂rlJewa0$-+eyp_Y2~mPʬfڠmNM^_ew,!et׽HA,ELRF^ΫV26AʹMf ܌o1Rh:o2^=Nu Jm.JymPʈvFפmE"6dKW!x -Dz~BM|Z4U&C}(cM6eE~<26eKW= ʸmQڶz1lLQm6S2O?2n+Q{֮C!v]/o2V_2 VQPƘ~BUIjI1|F /}*Pv4eI\ƥYU -x7NVP2.PF"62Z!H[vSe?2cOYMQ6 I56{B\1{ݟZ2VhQFJ((cle(72oXR*RN)+([~7(;<_!KF4(%uS@\aha([HGÊQuRC^Q֯ -@xj)ۙSX܀1b0Ad)_˒2v8"e||7+Ri\ 7BRJKRKJ⥬owȠј26*R1XAx^y@/K-FlQLRnv6,!eNdC +HoK"RF9R_ezڗRxaQ)XңRjrʬ!HSL 2NI -Mu2bM?e澤Tl!#o\Ol P٢oxtkgm|v P``d*¢F*a?2f}\͎Pz m*#C)F2v69:e(|tʞP/_.xڇS/ N̠g)#frlpf6 -T/$ۮn*[.k/h_P{<:e[\2KԪS/]/kpʬ|oNӔ)nӾTS2>yOL;){"wpt l. fglH*5I 1O[T ,*T kPYm>2;ln)y(%T*[})O\l锱?ѠHdE)G0+JY^=찐1OxuʮELF"2eȔJdHE60eLe#SLt)OwĐʔ='`d68el58eoJSv>_NBotf{=۷SxNѾ-h#SzSvH9dʦKY_Lz_LfoZSv٢};eԾ2l~:e_WhS6)ͣ}:eAޗSMJ1rʦ)[4:YoԪS$|9e}OSfWQTvzT[Gʞ/?HʦkZVDd}@e7PT_}25}KeT_R}lSΧTyoL۪P o`js#Tƌ*; *Ӄ7T~K*=K*ӛ[*]ʮ%C*[tYWz 'T6f#TvxJoPƒU,6>2[~}AelA-NN|9eֻھp2C*{*_Rc}Hev־ݭa0>Y]ܟTUĹQeOUFZپ -v7^?2?vʞCO̧Uȷ_VyUI줵V&be%V +[W+s +o~je{ŞOlw* /4:Ze|V~V%I:Q2fViƽ`e Vv,K2Z+jfy_X٦X.oVw`,V6u!Vrʴ+cev0V6)foo -+_+뿯߱T7в ,iUYP)XYdU6~TY)E"TVJ)+Ȕ RCMY)ZTO)ZTj)*eSj-*eZJYElZJYEւR6~JY%֢RVkQ)RVkQ)Zj-Je^JRYE֢TVjI*k?ւTVKQ*(Z+Rj-JeZRXIe2ՄT֢T6~TYE"UVk*hUVk*hZj-Ze^#qUԒUVk*hUVk*hZj-Ze^;a9+Zj-becJ)aeZXjˤmVVk+Rj-bec퇕ymUj-beȲ#j-e^;4=ɲZdYElȲZd^>-eɲZdXe2՞tLZ$KR4˼B6eͲZ fXe^;?ͲZfYEL5gYVj- -4eѲC˼O -ZT˼[Bˆ-+.ZT˼1Y-k?khY)E"YK15,HvjdYEk>Nɲ#˼fJyI6J-eY'sfXe^ss2e^cͲZfjdւY9dy2yLw6kI"[4˼D?e^;nGY6~f5ŒVf[Q.Ek*2/bܪVFY+Yje2۴yVyT{ԬymSOsʼvJ\j($qe^#UkK[TcL3re^SVʼkT2/AWyO3VZ+Vp,be^Ռ*+be^쪕HfkHY+je^eAdjE9,HIXZTekr3Vyp(ae=4qʼfwD( +ӒUQ2d+߶jvjyϲUUs U[7DYߧ2ՔW2yV]T{ lҽުUbgL]*SF$ks3Uک#,dKV2$Y Vj22Rg|S28T_[T⭯ VJ+V24V2.F|ZTؤ2m {FLVT{lX*S S0WTc^ YTP6ceՇ޳ + +S]MZj:Zj4 7Zjǩ쬕9#W|#WfWֈpT#GWTLW+SZUK^ ^28b[T#K蕩yW\YV2+S NZT{앩֟{dEJY~TZ픠he*XTtSXC*SF*S#2U}EjLׇ%U9)8SeV[2HmB7Um7jYͶsV2լUL{UpYʬo+SMvsj+n>beट%beV#~djvUfsJ2^d"QeVuR-Re3Ufaj3U[#UF{ξWTj\ejq:q2ո%T4<*UY*u9be=+!2o*n?ZeV?^2͡e"ˬF5J-Enbdj34"Yf5sFjLJdXYf~`Bˬf;eVbB,F誫j2ˬ6Xfjڜ2+-ieVzY/YD(Y޸ --j42+O,_FˬvrY늖QoTFˬ cBˬV2i?Zf?EKJjmपeV3Q?gTˬ[NjN6`uwPˬv>ޙ2j|2+mfXYu1NhLj\2IKjtܪZF}j?jկ22+;I-t-TVˬW>eVo\W,[]%jPLlծő -FOdQ.ڮ1JY— t%V.)ܺ%sIt(eV,m}etCk+k0o= vӽˊ]F2on\m]vӼV.S2/.Wmr$TqU.9y3 pKJ.泟e/hQ2غYIveRTˌzg]fd_]P&NghQ$dZ/$Ԭv2]Gv-CB˨AIxπj(igdQ#0dERE.3]ҿedKXK0z+xZ~΄q}̈́]Υ^gĶe4>@Yf¿H6eiq?eYbB2Ku[7e\>mlgdm]f+er-eH_ޟv2[V#IfNH]m*] ,tC%l9.[+mV½v]S*]֯!eDDӭFlBY]qz]vBOhe(FOee:vm_x٩6eVԧ^FکhA/oo]`_2¼|[v2?"Mzޔu0e`_v7M/clGX 3uIT&̸2f fe[:@ʈ (2(!f|͏z#m"#flkم>T3?fBb[ADQ l=]? f -sT3vv++)ffZ/jQ1[yϰµbrLJZ@v8fvH025c>-=,Af'1Dڗe "ǧ~2E`H̸C}Ꝑ1#R,zp8ݧ3#8f4Y~Y@b cn?kf̬-ƌ=LbFD΃%L̇셢|:AQ,f5'R3PAS_saam`x]if8@]P3Wb;4/3j |(f$ y>RYP8x#lb6'/"foZdÌ@M l?1uy#*bC%ČQUioW3O,@,͌(Cˌq8 5hbƚn7ʷ5 bF{6|Ĭm<Ō"ƍl~ٙ7(f+ڛ(CĬ_X["flmlMA'@LqH{3ZKgXb nX͜ $JfX?Ax^,Kf`wmeL]OOYs)2(Mb] wdʌ#e_Dlc A]LUe¬BYw_NY-Rff͂ʬ?.BAIz,Nw }HfE28T xόD"qnWCv%lD$3Γ$vw ٮġOȌs2;/gP2#MnBf 2wp7(Cftstΐ<OdFϢ"lBf aTȌñ -! 3˟ΐuF/Lǖ'dD~\ -PA2cϯ2cV!3ۤ4}8f#I,3fk'c*c91{3 GwbͮA1cjaT 3>."|ƌY-1cTb̦w\~`v1Ο22fM ].veŌQ] pʘq4;JXmcF@Ƭ4ʘp\ƌbYH.zT3i/cF)bd؈M/˜3:0ftadhНkP~ -w50f\ *c5Řhk1t"0fqb%Y6={~ʘ)}ρ1wYb̞MFnI1y90fzKWf%lOĬ?ulL,1{Z3IU[Bfv$_N8{MG|9f2kutE5@fӰLk Bf;? -%3H1Hf}iw+[oHL ].` q>Md&F_W%3IЪLcT1JfϖdD}Hf%ydưd6@&]Hf2UnjjFǬ5 lL~E=VYv~1ӑcuT:8f}):fel}@fMb[ -dkdt~IfDlz8ey]Qdvپ$|ߣdƲyU%k@K̔,If3.Jf@1 -پ$3!J/wRd6is|tNZlǪbF߂1 S}0?ժa@aN~2fOl}&F_D̘O_nD~`Ev}f6q߮f> / ޿ 3}fO'aȗ`8LQlK0CU(ϭn.#`68fq nJ~٢\Q/c7ou7ebڗ^?>2oV{*2>Y?$ zY_.-FnA]F̻2sd#ed2M:e@_v01_?Y,|tۂ/cPo/LTȗ:=YeUeOjЧ^zv߼e}e}aSȗ{?LEVu*e|o5Dl|侮 Z'̮)^&e\B$z2'I"]Fˮgd٥H}"?e?32j=^FmI}I/ 4 -[Iz55g+z]xT2n>ll]KZ˨WDQoeܳX$X^Z^g QP-evWJimI.-%ev?E .>~YaQ; 6UFTٲahܸ~`Ve3e42[܈2 {@2eԶ用e n-Qt׳ArlY,'l]&Ial l~NXbVAGlY*l-hI e*eޡ–"leʛ:[Fkw %ig>ev|jE$–T:2{خ:2 쏘HĖC̹שȖAשSL}ǀQ#PE̞h;3elF8,G7Z`B2K58@?I iP,FѭD&ROYZ*ΡɆBeV2{fvdޅ!+ep}G,Ɩs,[ɕ-e8\52 V.B",jv V+d+0կSHQxt?mq2۪c2elqO2A#˨pfĜZ+d2 _ELؼ=(d5rd]Ndm dBVeF+b;P$l5qFe6]Xf^k_ ) ,e5oqQI,=ו2jl e-GdV[.`rELߦkNlPiXFm'ozq<-e%i֧+c>=bxeIWFieo 2jEĕz=' +'"se/ڡ -Wf 2J?i2/\QxZ;n_ -VF| -OXh/$2vmvvm-Zeh/9fMUfX JV[V2j;~툕Qv!bev:N.he]Vf'KlգТTVFm,^I+cHb%[ _`߰q?Fx:'Q[XfG by'OMVk9[!˨-o -Yf Os!˨YWs$,^@j,age?1|O!˨2ĒXXWwˬɃ7&XF9K.b5\h(D~ad$e ً2ebPE{֒I,$Qh_G3{2phԶ},Qk`DˬgROrbUI,^!5J_͚N`qW\`=K*~2j[HF' `=RA,%&ewŹz -b~U Y/h(Q#w֗I,eRW̤ -YFm&j -YF=Kd5_e%{y1ˬ5sC%!eSM-p.ex:YFm79eǢOy (iڶjYf]2'H BQ]*e㶚SVT"{yKHYe_0:d%p6BYf-4eKQy>XkNys2j -|/: Mbe֬J X;qIb52ʣl$;4E(FSQBz\Qcʺ3 -X;l22jE;8.ŎEu" -Xg7`f,v<0,=2̟_˸Vmw.eH<.YXfט}JH`&nݙIJ[='e蠱L-aؒYfI\ d%7ZYF ks evQb-%F?0kD~'H2h,fYFm>g"f[Yfۆ,evI(f*fM:.$q f{Fodq /t*n2eށb٭`d YBM),d='V p`Q܂zab{%ZFmZo{,h%z#Vu$]"ZFNk)h52-el`2jR2jtRAXE|LKQ;v&eV>_EtYH]ZjoMI-}I-FԢ礖yUe+j5: P!˨ 1%O)ZI_߶Ϊ'l9ï#jg2XMzвZ~LDt'SZP,4IBT~2*dYdmAˬOGl?%e$t/2j4e_LL;eaxQә.-ߋV}#YF~!ɲh SU"NW"YF8,},#p>kk,sL2د#q&,X &~ VQ,\'?.b,#ေZ Zf[%ˈۑD%З22ke4Ln&H֠]&9'$>eψyB3Yfπz+Yv#8?i$1FA DY# \&qQn,I:_dx4Hb:aP4d8=A_c}Y,sv]'F[iIxkpn,]l.]eO.et?]ˠ~sY,jLD)$̚IhۖIJ˺n-4U#+ GI,#&͇f}/2Nﱁ)V_zhHhĘ-S$сk$I,;g;Ԁ26NB$" Z&Y譊ev9,>)i7Z&(Q,P!Y,nN''_f^!^Q,&Ӥ((vxxnP#CY,#O ,#N3Xfm^8/=fˈv#Lf]|Q[&cGE&Voj,H4MZؓA dvMZ[6]Mm2!wl2w*dbpum̎}M~L8.9^l܎-'wMY?X>p2: al2kn|H6_dVH2$7LF_ 7/ &̺o d4Г(mh +RvrYOVȒY N,ZMIKffKNw.ZqɬɎ?d6֟Uw% mۚ\27.Vwϥx٘tS .)wKf=='W1dFc\KerV`23`2>X*5n~㼞 Gɬ)8S`2ߋk,pXqɬ,99%qxsKt򮎳Y -2Wi':|7m?0Wa#&ckyj?\o2ILU Umx;G͠ddk &#I.mOdM 4K_i2"dl1χLƳfIZP~27d +j2vr[xP(ټo30dL˥ X#]*Mf6תLf ~cydV{,)<}\,NBZn^1L2g}_LFGqU&㱁(hQ&c/Xs -2W+2HՊLǡwKɨ3LLi#bVL̴_LfW׮1|w+0vYXMl̢quT wrhKU@tVK:W4|+.nO,U8$p*/G (+ -짒1@2ST/1,dŎDԤ)k%Ć*VP2 fbN$dO~PZ.VP2FVP2FGW%c [ %DlձfM -Jƈԩ } -J4#-%kp4L,%E)iĒY0"$L9oJb,v/ -b %O1(%YXU r'aZ^H%ci^͈!\2v'#d6t蒭v|%cة'I.M; e&/&~󤊤14/$\R,Yj?KL*3md,XT2晎^*L@U2f{*e0JWoE%cdi~΋JfAĢ@XPVK.~+*,-o6SRldU"7%d|[,(dL%y1/pz - -*SII𾨒Qi1K01t#UdKa1ī%[A]1{4v?Bd=SÅ%v -K1yt\ߊJ +Q%ch%7&LGr/dL͌ePRý*1G.(j1̱d(EZP2f}{Jl03A%[- ,W{U2-mpqkE%[ sT2f'J4u]/dГTT2ƇVc6Q%[gm&񡙽pEZcJLC’wim^Jƈ -*jlnJ -?u6dԘښ49XVhO,G!C~ِ96=d6%tOTibZ|Q v#ʭ!!Q‚JƐ9[1 D%Qm3v@bYP"y*>x~R6T’QݻKYHZarlbpɘ2~+K!yj 0>I`2}8Ŝ`2j]`2,O ٸ'q-ۡ1R|LP"p~1줤m:UI(ٛۗ&cZc6]#Lf3=hsڡL0;-m6/?! &cngD)> &cp ?K0~UY,9d O &cr 9LQ`2&wXz6FɘY,]LlrgjLFN`f;7n&ctzɘׁG~mz] m&>/^Zdm@l݊Mf9ONl<$1VВLl[ .27Ⱥd2og!Ud2oh]ԉ2w}e͎Nm#e雃.GI&]jYٴ<"m߿af - 2#6of0څsd2oNq{ɘ*e2fl{d2flq 1d3$ِ -R,LFKQ&cPqjLƜ24dD1J\X!>pҊNF WOf4*(d6M;M5 &pȄ,f(%=2t(9=F9jzi;%y{h#'=VdXv{ɰɫzGń۶,6r2F+=>dvPM%DzX&{; 'oj}5Pc)_u@t<~x%f -lpώހIkVKc&ֽ.=үBKcj4 4JvA{{dXKڭ=ҹ xenDzXP4bܾGQ,tO%lr ݣ$vEǒX.-e rb6'((=֓y1=?H{,"+=ߩH{,s{,ig ބ'7{~JC7,߃DF+r5ZowyI &>cjQ,at{m?;=ԤV_dPGD.fQNtb8;5i,"?k8 -c)D["Cm}  -cbtL,vL"P؈xVj]cGA!Rz,XH x8c)-ic)-+yܣ#6f5kþ\=rϧO-%:jڊC gʱ=3v7vC"S1k` ,It{q?5ϑj!lぽ~ɓ=}&z)9PO{1Գj,=g^Ipb~Hp3cؐw)=2#+=?QeWt[{MED r%fN%ޑYlM4%ǤRJkk -Cm[y[6y͔jC8:=P-D=tb!lڊxޙgDz]ClSs|=QE~~CcJ 1̊Iz-7Dme&KzF%#ɣw+|}e$.=2kˣr_,/& -eiv |9B"C u|b{&?.L|~m7J.|E QM|E¬ -:mL}*O|eފVݵP#yur&=Y+z~?cy1 ﱼSXP{}}.xU!L^#kZAפLEG}QǪ0?sO{ld}lka@vi Kº|O|sj=EMRIwwo.D7kW6`z:m8i4=1 -`p@=?6 k =tku&=,2jVO|d 67*3Y6paoV*EYɧIA{=tqHv}leGaO]{M;=mÍY׾H Q%ZO N\cYy{}_'ح=6YEn2=MmpgJˋWca98j*=܈}rp{fbX7mP$?9&Jlo{:2{5Ь~;J*Nd=Ïuσc Wx3xydW?=J')z-lUjQ{f%]̨Xr\z0Lz5Z$ŜvɪV["`٤̖DVa_{lIJC9?nOzkN{X$+Lz^1_{,,حU廊P%l'=/?=ozu7=1t虁h+5z/mrV{F6=L)ZZР.e(=<.C,*=T͏ﱑ~ -3[~'!mGtކ[j|}@4=[+~C"ZuS{==!wm{ XZji[9=н(?=?Ã4Z >jqLDI|56+&M/Tg{qxc-|{?aF'r'Dzfj xi}ScQ}zv6aTLd{,Q6Nx;2c{>cMP[ 8\ -z5ڰwOΎz{L'c xXUg-6=wqnkyEF&#svi'=:<<=z|eۖO+z5.EQ퀛,4{5#cDqj1=3BºRY{lqsz{(L%=襾irvY(3zdrl~/C-&~)_Q}^nΥx$P#pݕtjdMvGmsj%LqD/Y{UowiFᨖE/ lBiMWoI{ r P# rl{7eGJ˫#'vnc O rOy{{Thc%BȖY|NZ{%/YÏ+3 =V -c5 rlݤ$ڟ<=VwУc5vԳj. %j "X>F'z GJ) (XȨV+hZ_hl:HNtXQѣDX].tjk6->=E\(1%=YcrJ'BV-C&j vzEGΧ=VcM{ e=V#i(=v[|=V1"XKP(%=iiEqyn{N<=Vc]<X4KG%e& r3D-`?MPG$ǶHحrWoHX|eFEGw߅hZ@=7?*'vK_\=Z[X2c+)EJEJ# D9DjblZ{pW`rˬy&hƋǟc%zKv[{l1I@ÂcBrW։UbOc_i{l|i{g&Vӵr{F+"c+ze x= IxOU*=0Lxn;*ç_\a_j x+þkKӚχac"cd?.L\ܜznqyzϢHY -fP$8~^cV=pv",&=6fg7H1wUV.Ya΢9cd]cLzQ/z^Iz)(Ĝnh1=B2Ǣ'5)N==Lpkza5 ɫznoq=[ـz<97R{؆ޘQ=3[6ĩάG_3[Ǣ,qWq Y,v]I|A -ié81hCjtC,|Wzol|+0\UH|m+hU簳#;o9ih{h⪭=Wk{#'3ֽVck9l3i@ e]R{@F{N7|VO{8Ik O|ioۮGpX`i%s_F&F%wh8#=8gǿֆ '͇ #X "!}1x>ոP}Dbq_}{IFMFӇQnEԇ{ZT1#և:lD>8 [&MVEGsR'/cp/j,> CD&\8%ۇ k}6>ˠ(lwG?>EM/艴|RM}grG#&+k1*w|*c t*2>%g(ߧهI -=">LnmDƮ,i](@V`SOVETEǜժ>f?:Ht*>[?9,Fu|lU _|fD׮h? 8 =v=ȅ1LyW9=R.emGPV|lFk9=1a>o90fP)#W͇-ou$%K7hWyc@˳X4kYaFU*Iь;5kI|S p"&|p"/:̘[*ֳgP1n=D0OT|YU̇I_k@|cd5$L-Geˇc:ZegA]U#fkmYmdyYfgMg?[> -{81#0zmT|C|6v}ۭb>l0#ܧV1Ͳ# -4(*9?a>Lp{M}1:Ue ޳ -s>fAf7a*G_u,p{Z>n&"CWOC,Ko;[_i2,/},X>EW|djlUˇLah9ט-u۵![>u{+)P>A -/a]f $4M:)Щ/Q>x71P>v8?JS|.oY"#NzkΑ8e|ZK2atΎTKgP{|g5N޸ll)Uwޞ) -sD̯-vg/(mhˇ~G| c$v ʇӈs&ʇY+ʇa+ Ѓ7@>{zh})3>p Ǒ~@S M+Ƈ 67ުC!M,+'R9r|ئ gLJ4ӖS0~hu;J‰5\ȇ4C>^Lm|TxC+ ,m|جٓԃk cef|lJNA1z~Н -2ɲ/X :cIX!H{̖X|<͸@>X~X }H>K^ϒn0Á3%xLJ9_  :l٬wf>`98>@B=8>8>KXeY-߫g߽_>n-E?W rQC9i~_J>+[|XS "Ab.PCJ$Zw wq#pu%;>\6lKDOr|g a[.Rs.9)}G7h˪ՂpKgvgic%젫Ѳ:>2xv_ ]&=iӛƇˌR,!F?j(>f.5'Sـ^߲ć)Q -RlDܗ?1w383)~ >$ӓ 7Z -w MSCpgs0|vGn}j*>uoBNk* y$|p |h{޸MwJSKO -᳽aCϮ#AYЎX|xyVGhba p08C]f;7~ԆZg ->ٗIdAQ!><+6Uy>\'nÝMUO|CUQ'fX5PȀf>HO|xL9+c)}‹*sg(i| WgY4(ؾi/ gS9#C -ӿ!㟄wE,O‡? pm||xZyZJ!{A(Eyu>(*F=Oߍԉ%j|^ց`|4; ->׻ 2 ->9>d͗o#QQܾ_H<1O<5>8~$|!^F§ޗFg}kg}zIO|4)n ->@ԣA*0FDvoj˦ƨPrͺdž{,b]wNe/n'>()lc$|hIR =Y̕a=}\DЍe3OEdӕP|r*U‡.>z]≂Dڅ\Z|k2ƓsIoOT|@~U)>iH2*>4QsnHV|LzsX*'dć _UǬIE/>zhWvN(>6K(dИ/嘠J$| {Z΄l׽p"n#> T 4ų0QwKB|hS,UW ءSF6|lnRדC+<ӽh0u?DgÇ"{\ IKaӯ _z:Q3ۃ~es>%Ç< ]Fdj0=Ů&l0hwy4|l`#]P4|haV;asf*@D4|~YEDgӟ2Îfa5ah>l0ѯbe/ 1;a@~$ G:\Ȋ6;Mq'(>N2CZ ND|ogk$">9$Qlk<RuX>0{<Yj)Q5+>ppJ)Ku١YH=?Ň<@.:BȊkO>Kg"] EŇufFU|l:O}Cݡ@v?*lzؚr'ćl}6/e0V?Vuو`y&,7eaZfl:8Eć6WT m dćN̾0fx~zG:#><9+ ldÇ|V tгi2|$c4}WXĺ=;!}} "mvCj}o.eǞHl]ܜ<):>6ٯóЉdjs4F2|mퟥCx{ֳc֫;6Ia!H!"Z|h=*cYggr!& ->L̮,' ->bo2I8r >y]P3C A2CKS 2|-C&MD0d HHjhf>Q'bJljm)zk&gV)pWg$ FhXu IR 7f$|fؑ"OZMW  B&|h[!D‡v(N:eg dH\Lb- T‡Z XϹD/)%>|G곜r9 ̈́39yg=>4Y؟>@!gri(">)0όD[bsCmކPp+*>frb'21>f.E+ف̬:(BgT|ls8=;%@%nEK(;̓cxPKсvsZQ|ӥ$ćnDWRc,5;|0G >YQ3 >%AlAB|Dr\Gt YZ D@~JϢp'>&.of2|LUV 5s2|LoH>F c`vH𡶫sjiĈJ 4} g3\T hd_>K-֋.Y(FT( V jˮ V Vcb-Yd: -;-R(,pdBn^e3_[>,lvê}X}PiPfQl{;aoCmcL_=',AҮ:zNbBvuvEiP$=N|=El9j o:=Ԗ#=6^pX*(=GyXS{WFVh@NVw=<H~M̗([ Fa1p)P*XF{:FMTDǚ=/ȶ?A̽ ~1sob8CsfL^oƉ~ N1O~#S 8nj~[N36]ӪÄaa4$0Ûq(ѻs&|HlLU‡Ty<(>ќ(py6CL=?&;kk׫$t"0Hh6U]XC\)Azx~_0\tډ~4mt%?"=DX߳+ܬUQNY;a%G&S!=t巋VI~i] LsZL5YR'~bU/Nsy|H 9V3y>x%@0<)U(n~7,$5d[u|/>%وw=6A6PiT04V֣x~i B'իhsAl-16aLeCl(DvEH'|8$3EKϭ>ƪ3?l"|_*sX h^&|l_\a*#r&t#$ >ݴ# ->t7D,S@xi|ܵN;l|/T]Y$4Z| V0?*{|loSWI|vK9iujE𱴒8 >l,#- >t9&CF(>| 2Y΄MNыV Mv sei8KSw"|v3t*gIP:ai@'3C:?Q -~(xgD7i Њ;*è%Bq` 'ć ">$xF|jyČvMmĹ">Gh?)٪c@ ωX[au?fT|Ԣ1IpI nE!2c&*CW=?#-mSNQV|&yZWQI!w}3m/H]u4c#C|'۞ylI?h0L:Pcv,&>5ݎH s8E,=6.CC"c&.Z{8غ&UڤVKnbEOQm|أ6.'VǤ@< p=f6ڔ'70m=XW?`=outz|p_N|!ii#߳J~ƤY+=-U/=䖌@ gmk8Sb{Ď򓞨PkE]>}7}w CLThU7Y7׮>{r`{|< D> s{ذfc{ y^Cݏ3cj; .7=H?E{ ܞΆBجJLC̦=sW~fx =F!yB%08=ZJSxnCZfm{8tfg͘JB>Fsm]rY1i[/gNw[ C 0}CCco=fg=LKi:ht{{mOo64 HKdhglûzUL,6;=Z ,E'="yG5{p6'!ezF -C]vq~>EY!. -()F wm72߿[cpP!)uٹ9H{/Dɏm7=σüls=ȊnlNC1Sٶ5pffORpbÉ`fm>=F̧kedX,Au/'Y=4PXCC;Q!ob0tiak{=]&fkf4NNf[=1Rob0tfMWɉC'E0#ynƍFta|/ =LQmAhWf3&&fjo.a2gOo SY=#{h֌\!҂ًWd3\f[ly20ك-!--XB85dK2Gf3Ƽ0{Rk-@#Ql*&hMzMR1Q'x{"t=lAwӵLaj VW:{ˎ"L -Q-&73x39ec=ϊ&x<ՙ{>{,gm!y`Wa_9cf{5=v:%`P2r&xUbWޓXv#Y9f6Cgzi3nlrX->{".9{(}Л`T1&v^.3g`Lt{vԑE=O4=ɤhBy\=<]Oj {xTv_=|"v a#L_=̷,7ar?=ӆ{[Y=]c?{PLC8d{xep-Z$ zS~z+V J1[=LW`d6j-fP(l0T${o4t|W++hr.X-eu{" lg.OrԢ^aO+?|Gk9mA|{`a\N>U-l=M>{XC:V~OAax_Xu&|j.rlTaߛA~|963i1+ϩ6'Oc<|Xq(J+i%% `k+>G }SDg,n/ E>0Wc=uᓢ'+n %}d-ieXq DD;:=2|dpxf+[ >PX>P)f`="|r>yBms;@1 'H1O@C>M>A>|GOUwG=@aXNt §A|@ArgA06]5Oۤ>{dz3C|7m:Ybex]3çCn>a2|©f+ yS#;%=2|)pl = -a#=>%>iGV3g3:o2 >PEUD~ld3>S|N~+ŧO`{8BYiG= >'dO?C|7xT?1|ferj5{`(C@0X,ORG-z2]sDx֢ |a k{F4's{F|" >Çg^6Q>9IgO]i >{Q'ɖOR|bCR|yyQ~#]!'gvGÀ`=+Oet' #Pǧ9Z<8>Pk{òO4p6{ 9=|X"8' H?\A>xz@>~Sy`O ]A>NA>@>~|OD5'"GjXͯ"|5Uϩ|_ExGOP4^{:K$@_S|NuZ)>pS|u 9.0>WLlPAMx3;:X7DQ1p<7cM-equnhDZjZ(>tύC.{0EkEĘ8;ǚ^10>UFxmʰ9܀^F4`|cZƇ2jEsX|J,1:6A|( -~)™0>`2`|,zj|e.xe5:|eZtɇ̕Fsɇ.IZw[\tȇpPƷA>vL/C3o If)ZM$ʘkdOʚCTǎ~@׼|(ٔP^w{X_7|(Id C;[:H>Z{*əH>MT|'Dk h{ jݺ h{{;'ZgءowOެ÷{|uf۵|dK@>րqP c +C7ȍCλ'O4MA>-|PfY&*s@>i}D1VŔmPvSEu C١ޓ@>ю8/@>qʖwPFoR#vJh =C+SpnЍCIڼ[Yq5OPjǚ& w L,Wk -wn#ȇxyC CqSA>LLq -C|(i{hk0Gew7mxd@>[e= T{'*ԎPN2$hÄ Ȅ|(3v'Pc)0PaD$0w#P {m"P=;ɇjiF l77|ǚqoʇ2xPc@PM(f"q cyw7e0{$ěU6@aRTaYLX>0L=|UY7|,?KxP:in0$O `> N~ke- 0|F/Q0'=|Xnj{>|U7^TScq 0rsT h-X>։؎,b_f#!Νs/6ƻ|.s;f\G+i><3$?#4|l z9Pwd\I#2D/%B@g5pY>bl32 :b`?|.s5a>0D`>a>j|uNa>9N7P>vI܈^6#ڤhfvp6|lo<:sF38 JcY>,GGHŸI| |w $S-ew}@TĘFtG0z52|Xi`i(/KV8|$?Q>ռz)x4|5gn~wCXF۳2{+6 j0c-(gD0#پ,m9| ]Y59|xntW&fPBM9F: rP>!τ8a wq8j7|Tp4|X\ևE{aº5ޝc=wf0 DqaM>:a ,0CD޹|.ka瀽zCjطC(bQxG0 -i(&t(ѩ̍KǕیaR̮ mFDdMB{wcd2|XaB=WVC7|%W]Ǻ|ؙ?g?&n3ˇYEFphBE 0 +|uO#}vUݫ@3̇Gx5Sqbd8E;͇i^j*=|3I<6iU^Z͇\t;w&o%KwǸ}0c*ۤ“Ї ] @e7e,1Q6qP mAGJ"g C؞:}(6>YwULC}PX~;'Xr֛9,`χ2tcj 0ύmN&e0f,6}er7݀>e7ˍC'XXr}eϾu9UiAz!Dc+}f`POv3ۄOŊ҇vT)a>Q@7Z,\>ر҇2/RpG6{c9H,͍61}(c ORmdИ^50}(IC7e~ j!40}([GCú f#5nOg^G* v$i>eo|"ʋCA ;7*ӫ5,&epx+ c >@}-˲;GΔ7>ڂB9Fz}ޠ>reԇN&NT`g;:P}55|~wP312j<'5&eCc#7yOcYvCk&LH.|50}3 ;o eՁg`PtTa %sgPjT-Ot/9}wgP֗m,U~>OgLfg9ݙ>170}+H>E70}((ø Ls8;ԇ_A|խ;b{Xx9  -޿p+֋d>&I84PFO!r /ˇe~k ta$'ޡ>ͪ &w P`mk "ܠ>UˣnPAt2Aԇ"Eݡ> bڛ Pky& mVRwerg0Ԏ{ש0|M OPi!J>>jmGE%pNkpcPҫ_C{mCA@}(c>PP$FhPv$ls쥲O0d0~wVܡ>Ӻߡ>v -Oi?ՏaXhYLC'6B{`Pჸ6welYwG\:HqAmHʘm&C[R>q:F)dD=C+n>A5zC k/%m<ʘfHgx><͊n<r{ǚ1CrgPvIw ֝c A'تmk`PƦe Lkh{ܐ><؞҇2҇2z9 H֯#}%QC+fw@PQeDчvCY"=AZXV4 C?mb0mýOnL  Y - RcF ptǍC[&ecMth:ܡ>sav[z3}(/cTIw2gm4 Äޚ#Xj^yDy(؀ !}u~C O@.4L&dA61},aK'E+30}(-ΘGLʘx7 ي'E'cR+>P}ܩ>2mPOjPF:Det!Oc8Q}%)k>{bP{MzP¸e\C}w"&e±ܡ>IC 8pe@X=Z6"},3r bOt7e":,kzH0[@w%̫`km"0cлg7e$A~ݝC߿G9na?C0vUށ>;mn<fedw<ʘIbXoyw;ЇC~w,k>vJnZK|T;ч2@j>bExP`PEPPP;U%{OD?>5A ]s'TےG&EY#D{ DMGD#ч23}%чo~<}(M}x詚gDvO,d \U2RSbPmfE1|D^n9hݑÐ ˤhPJdCwwe'Hc=sN=}l<y}>=&3}ؤ^c~QR>&<sbhl>_KoPfǯm H1(%I8%#}(crjDBd9VN >]ęI5LXlތ`d#Ǵ<L.B L*+&;i`P1U]F'wC|HMWl4ͦ'e,]u1@}l3mCh6(f€ܡ>WlxnP`/LEu c{s c{ze>BVzyqXaN&"~P=$Q}>’ j6P}dWDcec>f :T>fC@Xp:ύC#uWݵMT YNU,w YDuNSNc~ٲMT젧QnT=u>JFRˆ>HՇ2T]65)>;Ǽè]~>FAo>rTu\MXCTvw{S}_G7) P{#LPe.oԇ -~`L(>NJ)#af}5Pv+aE&X0amU #HfSsgV LZc6rfaG7goa 9ݙ>4XuHaraN#OCaVLPScݒ* Eac2 m3Շ;ԇh.s$01;w;8#ԇ<:5FٔZc=HN1* VX#iGSܪCfP//>zw>{ X&k.]ٗzPh)1jw -v*lDkp(p7Uٶ@},E.a3@}h#r`\l}Rm LjջnT&I:\`{KN>30}2U'[D( m ҧX{}p37rʈa3k~l38c`6#}ƒ%#҇vU>6!}UX }:>!}ؼۂ!%[ma"O_odXZwAycϔ&u.g HƜ -)ߒݑ>"j-x@X'ʪ>n3 ۂԄ9-[O>fܷ߉cm(3@}uʎq>xZ ԇJ03uYbȶ@}eYP1KhXIM_>xg*>Vژ҇s'iD}Ls"X&<}qDᙣ|zȄa실 1 }h[ÈC0a@:/MHkZcNj&j:"}3CauxFTyib0aK81}.?JA Հa5Gn9'X 'Zo9"}h5Dn襡 ч>њNDla]͉|ʤWϧ~ dχ زF;)XJph٨kaYF'9 sfXv5}xUϦfeЇvnm!XxA'dʹ}mas'!աj#χ;q>֌y&Oyv{BƊCu\^h:N@vajDӞʻ}0TDQnDU۶_ D~㽰S} BQNp&OI~ @a~7G>\AGqM4QxEL&l}FOL @fuš>)${μ>1YVB9-*H9WnbIܡlC>f#@mlk@(r&5>I*)l>c$ @VX $?XQڌ@!Y'ꩾ3!-<)LSf\ ߆Ha7]>Z_>KÍ`<LowщYSN-Lfzݴgi9y$7Ja;Fp>$&I3i068kHcwT]fg 0X>Kpa>պj}NoA}jMO~QdgO:TCOλ-`-Eer{P+<}{;u{KQsz-`|ڲ?}n ώI>\^} -gU룢3H3ׇ&]>GLm8s޻uFe2c}Jċ룾Oq'>ai-PQԧxOI|4C}yP*Z>8SCsa -c :afυ̼ÝfW>LA?^dԓOP@}h$-ThopP}ՕcA3TK6k&%v؞>13էQG3Շ z3S}=P}ŚX>-osZ74'EeN7Q}TUA2S}b )Ok}[g`p -iPc^@}nWW4PH}nogSP@}l=A}dNl ԧef 9 ^Ck͸b}2<cx5хf+Lʓ]w2S}Tڞ> i 0}I uf0}<=1}.kTIG - kHל>`9snÞL؞>&'OT3#'޳{0F\+֧Aܫsr=#S|*>a}^\üњZ>TsVȥF`hkJ#ϱByO=t?q?7\?q}V?6l٠/_A?>5?owv]6Tk~wш b] ek1OC6n"9ϐwgץͅ˗߸|P{sq6(/o\MZ|Lo\N4Y߸vgϋy0B{ ׸6xFegu]wk(/Ϯ k]PVMx^+g-4`řxFm͙0ҶGncm̓ir2Ml8~1:qAeOCma_]UӪ7oL.v]_'3׷?f-qyfr=\?qd z>٪l?15}{1A=-@&~a!3ﬗ'MN%}m!C ƲDea}j²>a}`βZv?U8*WgU1 *Uc~;*WUX0,oOBOg/. B?/-WiRq)>9?՜}mWxroaxڿq?~0R*1x^([ `&LOÇ#Y=' p|hbrIֲ}ӷ>~>Ar|=tI\r4o>5$&χfNA˺|˷Na`;&=oChچCmVب?}{J?ė-؇C?eJ٭?eLS\¼}ӷ.c&AC˘ID osMKx ß=uHW'?eRY|lCˬ3`됯?}{2v;Zos]jK?}ws]ƶabffos]&[\Aos]>V}ӷ.ˇpEx@I|Ͳ!Yoq c.a̗z~4 Q$u18~˘_c̯~2'oӣ[p-c~ea̯N2Go㷌š[-c~qL1?=~Lj_ e}w[c~u18n~˘_3e/2'o#1:~˘_\e/N2Go3w[T=#~~1̽c/ξ1Wo1[|-c~q18~˘_ee1rAN(,Q'~?R?a̹:e)XyØsYRc.(KƜ Qڔ79E)q*=YQ0\sa̯ε0RԼa̹e)vyØsIR1Z cE,K]ƜW79խ̕,?RaO1\T˼a̹&f)1b> cU0KaƜ_79׽,0os.xYj`0\c/B0RVTڼa̹f)yØs!R[1 - cΥ3K5,e4osg1T%μa̯r1\TK-R1". c7KAƜnJ79,%8os.Yjo0\aݼa1r;&nK^Γ4C0{G 8뜴u=vU?:fc}#F_zf_h-x^uG{>F/}O͈ٞ"{>O`ϾA(21Wί^5CNnX,wŇbL[O?y?|wѿ?/o+|R֙O|ȑ -XBdI |*}[1.r.;TJdbODjOgAl s}OZdzDc ^' ?_~gsu蓮?7…Ϸ-WzcAIyaOZ`BzI>e?őF(0 b6KH(!?5r07`s0?j-Q`oMX݇-ug> /Wġ?{*!yc>َ.废_^WO -}'ï/{v?}MD¯ ~ߺ/b3~ϕ xo4?߰J~5<:~$ahbV Hx} QܜR oG}a'gwF5|yxxwF%>@#>=ꃋ+WAPǏʠ1}3_Y>z%0A) -`zkOin\;@{op4SR gEǾt5tĂ5)BB*1ײ_%2W<Ȧ\e =>gdd}_dG9|6hOb3UFQ -*î?kOO0^Ǖc.b80x{*V[/.'Ul87LBNICHL"x'Q -M=VkȘa3U?Xݑ>[vDZf^QQ{xZsEXxťu;Vu\U?ip GZ1+KYE #zb&8|PayK$:, -%SUZO EI);hmر:˅yRVp {Ze#bA33|o2ۏxr}]d vq=W;c~};C}'0w}ad~䚞dx+prڳÎNuOD2bgZePO2njm*X 0w}Y*W2:||gxU\"0^ùʪ̩euOb鱈2x|e> -OL- v+2hbJ\e±0ϻI -|_*CfaA _iS IGrmU%B^ 0TXe1 3p)s^A$Z%鹌]*Vq! ޱ53m2hIcA΄H]Ƅb.|+ qAc/z\M}a&F*"s]}4.Ⲋ=&XeP`%kxACQ<.g,v`<1~sAcd|̫F__<_: jb\-`bA t 2tU5- Y2l!,kپ!@͟IsA c,c]VSJ.ÃcwW&>c9_fWҍ@,؍,9X'&eg2ȵʠ3lE98#g޽ɠa!am<_YwLM-\r ƃe2h ?v(BaRwN|2aXCx 6YMտ. VKv% -pM{ݓN觕M z?U10C,ݓ.\t.)4iF1eXsrF1ð *;N11;8æE V&&S% p%FM<%.E]m,h8hauA |ݘxN(ZS7#7% %x1)ÿh~Mv#KjK _=n`WuAgޭ5wAg2'Dr0F0G/h )7¼ް -(̊D/VY oeE2(|ɜ9Vr,!C7EVf}"SswfN8eEԆ&11}%Xh^7ݛQdQtY{ZVY~\rnF&9<Vdה[@pV4v |9u+~L=S0ˑ$;?vP07H(;tk hb%kbaLk^dDfLY}[Z.\Vxb2hbxdiJLqfb",C)M)u+;gf>`3᎗S\vseǃ&pX*um{%X$չUp|fH*xe&4qaHXvL41<췂tzrhNl׬eOXfA .^37E8q'iOz A -F5 ^NP¥aDcde TxS&c/\l"?pã Z悱ޮI <D9 k?u95O?jaJ._j"p;Í`P"P46}dX#,KxVE}Q$(C`#emxS| |v -g ?2B2ذ:bRF(J2Y.X]ycdvZh3#f?0(v4|fNdɛIdk"(jgɛ(3yɔ튌z:Rf\fb-jOI&žwW%]#?횾CC&݄=}Q+`xeT*O$MĆ̳h34fdvz6>R=̼6x7 nHve:N+];?xp4b/;idj j!j_ LY_4<ֈ:e+,j#nP Hi3QaϥgKg)^K[j];J}]%î^ܦG0wiD -#?x[ܧOl+2Xws.惝~PPBg`Rd516yO= \bƃ"V_0.b~*VM̜2 3"LM̓P=H2b=.hIz0Kï1FY;}N۬(;3XLSX$[ᅖ. -PvYI=o랎>\zeyQG p-{ޣ`9eڸpE|g?tZ͉֟4zPdb Md5Ojy(֒c(¸WqKNJԒE1ӡ@(QίáK -A -8h|:*.:؃T]z̒=԰ *ɠ7M5 ?H&9R-]3A*fK.Evdvy3|K`evM)@b-Wldp.0 >H^d)~QE|2"d +X\Sü$.٤Obݶ/Sr?ˁwΓC|3ʠe^"&mO,t/}䲦MTR&00D*G? \GW}8aj:85( {' fg53N38ƦitKi5)96aqS4*QɠRtPU &p4<w6 i1 ˆ*yETC:e56Q2a&`%+G*Nd$\fE,T=zK*er ai# yگN_>q Ҏ! 'r؛,~N&DPymfL# zJ$7/f)exKe0ii?O= cQɠ/.@~b)vtRX*R_(Oirx6-ፙeYE&Jwm' {\jYS"b|\ =̧'^K cӛpv!)<?qiŠO8sd2ߵɱ M{LDMxra 2?e]|yLwuvxyÚ?jjU+X9dtޥCr=ɔMVi*pm2K -XdYj&;X- <9P>N.~+Vږ ?&KxGm&Pkj2K,Yrl&z%1fHLJD"\ o$0#Y̊I>'u,UeMƙ_mԼ-dl뇒g؛Vfuc2IhZdyk4D2ehzxvL[dG?0 i'ɸlÓ-F2|L3f_ɘ?cK.-B&:\I|YdionPp~0 yZ:1ۼKiE 4E{Q_' ᰬF!Y8HA3+('M XNY!7eiB{5拚E pV"k2@hL^Egyϒ)dP&peP2\Q]/Zl;U1dYʋ`|!Yz1>>oėQOyvYW2v+0A£6H k!_mKvǀwz}9e/KK0G]G8NR/Eϥχ…gPƊGNev;m kji+PP?|'Y4=z537j]k•kd:]fٸ 6Y2+`d-eUau`6Ce2B!M$ }Yp MXqt ;`?&V@gHV[L~T*̱Mus"+]<鷂x? WVYob6[^rȞ K <ܔ P ->GR Ѥ2J"w)J5UyKQ";n]hj[/YYv̙$/wЈg;rCejØ<5K_j `)bF.~DY_Ƶd^Lf֮>d>(#]- lȶ cl.uwb6F -ϯnEw 4jٲIUK6XiL&;` OfA+71$ĉ*F m만Q(m v)(J̢{-#\]H(#߭dg ~> 6+F6MHMde-M7kb߬cOV|'Jwv+ q͏,2hlMe-f<\m0YaWl@Z%;Z,x#mfJP<.~(p`5(*fϫ]y e%5SvdlN"ܢ""гt@(; >U{R3EI57dR CM>=3xB_o[`A~FRё -T7`PTe[7+n)0]awy.&cst9 .ɔ]_nSDɜrsv%z>[Xea|q)jgS k%4 -a(E*_MVxo薌ky{+A3\V -|Ű%^U& /pzf˒W*5Q{7VU*ѹ^S2K 7bv#ޣ` ڍպE3˵~q%BXXŌ[*K:j۵S.!O%cp1nnzωh6n2X]m~@wI9.,}63vl'5YRʘa5:ޢ,0RQCc"3eEzhH&w-; ۧQF7R#%~V}4$9g#(/,lgvY՟t*^|읝j?,E뮨FQ3,Xde:#l|D5Q dپ%bfo)hrR nNei"(dv+Lң6k݋^@\NA}}ilǫE"?E+7)U,VGˤƹZ&Selmщɪ8r.zn)Sdb-Mf+eǭE^IeT}.hC$~26fP.Q0>="3ؚfOB]j|y*R{= -?pdIv :/h#<)g 2`}kj/W:ͳahf^&{0(5d缒QTɬ9\쩤McRe@a bMnPUvFe;mwyf¤34˨++Xlyd:# ZBXѬY%3,UPd M=a -,#LRNɠv1M0B~ء_'" -.((4eW"MǕQY-e*ৌYf,J{i5H1P]^r7YŨ؁Aj== SRx5ȋۄKJg9¹0hƗ4(clo+ٵYel}HZE;Z(&+0=@=*L,˯^ V0ˬCɞl`Y$3L2L!6̲ U ,}YFބe LZ.=Ka.91nE ~|Z,vl8n.2eCÅ[aI[,2j!px׀E3 K '+p - #-+^!-+,Բ -jYf|-3M̼W-## :iZe[-csfl*ef_-ZQP[eز۩-w jܲ[||)r]<eй򢒌2hZg ]dq -_N2zC ]FXo 2ॖ7A ܷ\FYmfS 2+4) f2( \Xe̙-`"QBͩ5.c_l\ƞ^'(7NI;LN2pih"8.ۂ.̣ ^Co5l.!tkB+.tewta==hBYL22"H.cɣr_\F'r?:f$ .2AB.c'n!1aelM =# -2Mץp.c*'gx.2:L}el$R:˸keˈ|Rֲ-2k[i#ŜInC!G5<˘ イ&p;@w,.;ͣ&pqeǽ.cr'pW.べ2T{eNe-t9qH} e_g։-#1n2,&p2%oL2:鞇ch:zq+@dYèԲMB>dželV0jVU8RHmaa{//el"_;1efY>X'h>%NԲd n =xP­O- n%h[6B#ukX[_m'lg,MH[YN_R&ll1b–k[- -<4RhD->j!{j=Ow1@f=@-`@-c?5e(t1QgN2 -ХZtUFN2z,Z dz&hY'Nв5jkEȿ-2k yyrQibn3F=(;aNkz5؀-ccԹO2Q2۶`Xo -z[fEr-cdg2Ύd䖝i zd%k5Ҵ-cbY3?NزdfE2ó^'l;`VtdYgN23-2k–Y1[>ok2KP/Z̶tn-#(] pY\y].-2 nۋ -16Pڛ,27ڀ-ۛeepM24H.9n:e1n -e<0/0؀ŲY5.:]e'"߉\6ڣ2?V -8˘Z.+.c..*(wdW!/c{l ^f_8=a1 ,R ^Fs\^vY'ˍ2q#N;jDseBK 9ˮ;bb]< n+&vegKm2R GvS\Kn3{ ی.q~vg;qka4,Ժ'Oe/c/,,z;86eh.afv+2efOGvrFz%]H/Rdgz6_aH/cZew`S9ɩPhZH/AhP+e,TMFzYdH2ˢ#ȡ'a1u֟e4۠lcud^jbe 'ۡt'wxG9<^ivse[ -Gtjo}0hvV÷2vi{#PL.aDU3,ZӹΏeњ~ƎeLV+=rdrWeD el4~~qeh{H/J=Gz TZn3,ZLKbe l#xj 2ZDbEېv 2ھ9d]9"eAL/2 h T3?H1:zYԱwe2Qhgב2ʮO^X"4"_- -9(ޓkyev&6(u*xٿtd/v⟼/neL|meVLWA|L/e2(teUKhӭ!2(NqE#c#3-*p/;(4mY_FY{/+#2JǴ2_q=xkDeѺe1Ԉ/L0(_~ -eL6>fzep(H/c#,^ftzk^Ɔ4lA^ݻ2^^--e͜e:]~6ˢ%(]ƈN4Ȋ.3Fv2vaFpCm #:# 0؈խm1wFpO7ѝ[vڧ߽ba5gn޾rNc/&e+M2x;ܲ fQ" 03شŌ̲2/YPe$Pu=‹{g1AO Zf]rNOCۍ)M2ägh) wf2=yd1 -z 2xJ52˸u=;B跟 2._ Yf]z,;JR 2aع˩촒O׵2v>{,c5[xO,; vϙeܘȯY2Wb,jk37Vf+/eddPeAI,cV>#ˈye|2a$reDz(2HX39GpW}BG`YÖZ;˒Ub( =ʘr+c]I+Kʹyef8Ci1g`;ysm&4^\pF}c7d P;+&ܑe+o7 ˘U2#XrSe|e[];m (5m$[ H,K\:fb3R/FeJYfbae,^ )#,0_jÙe졽+AeeIfe4'L4"xfPznD֌Yʈ,c?]qYfcQވ,>=7xDeێcDeKfk,˖OTe3.GdYVSDe4|e&28C,QzoYc !vG`&IYFdDUOj,[EYVwy@1IeVēXfmH,cEa$HL3_qӁXfH,aZ#N,VF2jzL,NmGbzߓXڬye^?P41ʊWvPye;+,2;rb•K;5ήv2wqe ܏ ~䕱%`C,Ӫ:ٮie{Eo6 Z#G]2&4jFb5LE.gbu?:ˈkAgbeByxXFg^:z;/*ٍXl3pXf} U?vrrUnj;\ygQvKXelZ>('VeWf`e;[;"yɁUF5w*c}xHe_(Redx~ Qvc^YTFfk(6(VIR[Y/;d?;V2ZPe!ԦUF gB*)̀GLTeN_ޝJ~*BJ9/ߌ R)jhaW}js@2Mk*nal(A+ؘ< Tye;1v^2{eBa0AASnW&hmf cJ;^@I^Z8aGa @wl.9\U`+X={e7:3 ^Cn0vϰLԇ/wqe{GǕAhm8Lqqeo<& FĕaL%"f c.~Y2 lHǕO 2ӟM\Ʀ a Zp^\ka Efv^3^L \ ̌x'X 'Qe0v0X8L Xk $X'-*lӂU`㼙Uۂ>U&TL*l22,4.ɒ8+ed䄍cR&m`!LHN^I_?2$ 2T#n'P#RPD pHr#YIű)CtfSUbHێ>8I.{ C2["?BA aƌS۠%*ehœ ^DN)1,ⷬbplVʐPzbߚnF{L -FSNU)T{5nR2~~жRcNeVʪl5*eսRpLYeUH)ǔU 51eXߣ3e< a -on3QV%ˇ툔!w7R1RBIJ&m IEsJ6R&f2SRVv2=fy }R&'h2lB6wE %}IL <'ò(NH :qI>dߍdiƗ ՝G'C:d_s8ä(Ro'i'ùj0dX"Ҳߠh Q҇e٧Z)G j^'2Pd:N΂N$):N1_=u2_N&9l dM鎹&CwnE R)#d #dxlvZp29DE. '^'C%lwLY̊6Y_S$kaas??d9N6-NuYdJE'v&dzpɶm8dT|6d^yWi '([%宿{TXdUB'b:Y},F(dp,d`m' r 'k_Ma.2q9 'ka8YοɰiPk(Ov_dS>f%U]&l$.˼O@Ag)1Zeݗ>11?Ip> N>ٱWH>X-K@!B4Y"PUF?$b,2@فbn$H)' %EPևk:e&y6(x@Y'lL<3PE!?O~] Prq (;˺HM(+{ IQv -AQ6r'쫙LB1NPdKN@I$ uZi&@YЬf(e,1**qElف'ۑDQ < bhA' I'ݩI'۱Q'd1(d;[9tAaMՙI'لi _rɦuQ'_,p2vDq]j8Gu L:vJ48d/tL:ٮe!Ǽ1`;dwȜN_#3d;2:~-xK3O3d$E /-aLŅMJjYdS%do?܈h{6KpV)M6ˏ 8&>pp2Lƭ$dE\0mV&Ø9 1/dҎjՁ&PGG)MwM}&Cy4%dAb'lÒf'Kɘws0p2ڿ_p 4N8tYgbɰyS'Øs8:. %J6$!d(`VM2MZh&Fd{0[8K6XA0ƒl2aQMI7}`!AM%&Ã`CG&Z1ۚ 6{ 667xlĻ]GfJz֑z CxLgVL&3E{L96dR>wi2U"M|%d;id_?p2 P'!{ c |3; c֌Ɉ<q27POCr8p84-C'\yL4*d+|uMKd2 [8a{ c;ֹ|8LX["N/&dC{kYm9L -PWeqɘS}2ݘ_j`$DZ>ư }2}dh?'/t2)%]N1$1d2]:Ɣ*Q'T -N~k06R -dN&UůxLFԬa?MtT_אf cBk0ԧ?>ƾdlcP0/'x$3O&O!K<ޣ֗0Kd?̓aO6EO& -b!\%d#W a_c=O&C|!a_bڐ}21>H_%q|2[ɤQ0vKp+'1}IGZ=P1D6e;> -@Y=MZ"P&(olɘDFLJwx24>#lDWO&CPdr$yw@n&/EL9 c_ɤsgyLܣO1'|2,dC9O&cZ|2 }':alzLv&'DL&l0֟M/۹=O&ceLƴ*d2Y*bc`̓mKǓqhuϓű'_r2diz)0Cddsdl3zL>f|2Vd'xю7bog}2'{MO{O&idXAƓ}2>zLpcdDݛ&yLCr<(Clw3P&MMףq(Ys1P&=M'(Q24XzʤDIOD; D8DshIMaR7pؼQDYՇ7%_Q63$3ԺbF-F uo5l_o!(C˺2`_2F%ga=aojH(q5G ;n/'uΚʄ[B|@@UK@f\a=FBrBeCڈD?e.KBTP Bx _71s@|N Z2djhFJ]-(| zLò=RH>)ce5LH*6#e #eH;b!挔 Z</Z|TIʾu*CUAbZXĔهY~)e\MJU-M çy /F uFx A}x*$ 4?ȵ2AuՉ)c>?)CfSĔ%5&6m L_#)keOȔ{#9edWCA/BeQ.n%ۨ,•鸔& VC2NNYc* ]pNJ0C *C͛< *cYa*hIyˎ2TX"T6:BVPQ,VP.[`*GnD-2Oe锍 eMӀ쓝{l%rPp_6湲[ZkF}e+_+ ϊ+ȕ_Aʦ}F+yUV\6 No^W ,O^vNK^rM\Y M:EI\ƦrʰgwJG>Zʞ[rE?\qd0-I+CicB+C,kU\LVXXQXY{5#Q"V*A''?o6.)8ae. "be'x)4;ceBC*!r +Ye8+`hZE^V&cE |$KXYw 3 -Xr{}+*<Vv^>fi[QVҵGkO&L 9Xk%U*zUUvLI҂*Ċ*/]LTl/Se"Q,PeSZ^hFZوZie&-2SOZC,;ZwֹTE\Ygoz'OO ?qeW553qe_qu?L+L,ӟ#e8cc.Xk -,6_ee;wL}\f) ulX ̖+LFE:e`Ο(o,!xT{"]ƙHu>amI!_Dd]vYIkD ]O_r%eD/ݷHt%쪯=^vEzJ x%E"^֯-cJx~-07_r0j }In,ݲk""\FkJpYx˦m\6! .sWs\& Z\mc+U?T$\#MHrIr&ZFB.NM!Ze:K}F./N}GElj-2+_eSVyo:ʂ.i]v}J.cͬHE2J+e׶D]_w˦D77je,e,ը,FLn8.˱@TU#]vo$ k6Ur rӲ?pګN.W3?vI]C*q.Iz.u& KR2Oo{0]:VHtBxː,qT+eԼ,2L81e9u]Nt{\v_tB.fcN.FS(U6/eHpu' -=1eE NJzj2$ J -ØՂZVqgA-CE%ezX,2)*-w2{ek| eRS;|fI .GL뛴eMOp,$8e2&wQ0dD0֯eQ.R12=z*5e2ߘ. v]=\()n<#amY{-v[19ʥ~ܲ&}2#;> m0nv0w~ř-c%tz c|xgLFgˤ !.ǖa2D cرVP˱e{[JgˤJ%e;/QKd0vxLGևgˤ@6e/Jl6yV22^.>^.i]FLj?eO)>\1J_G r4eRV)N.Xx^\֤)N.j!N^.y9$tT< -yUR.C#vuuvw9L -#C̝hah-K]TeRQe.Ӭ5e{:e(ahaE2)D.XhD$]&nj0bMeRY-fexZN.ؐ=]&2I.js2i`IiCf0?2)C=Ys2$c]1m.C)߽DLWWϿ]1aԚ2 }.=:m]&eĚ}t}2.XF CT_eR/MQ.CzM%eRK>Cpwx9m˚B!2  -2jJ-k,~Y2۵гeR;Ҁ[ew5ծDL~.ik Iyn'.kҙg'`.C-~.E2)ݽ,e^U"\&p;K\e%eh eXgw/aLkf c߄e2TnFrgcˤpWG\120eR{>c2ݙ#eEB \&23{Ls_.[E%erɏ-:Xyf c^--ju.rfD.ht͞FI{ c`W]C]&կǩa.cY.:svԪZˤUjctKNO'HS2)}yLJ@3e(lJ#eR2c3]x2H -7ˈ6P*h%Q.D6 -GL* GˤYˤOs p2)C2^>ˤ%eC^D.v$; {psعe\-ᩑ-~Gzoٲ&Iqlf0fRdPPJ 𔆡$ zw2Fh i9=[6Oܳe?6e2 Z 2tj2 eÀaC -;BǀZkgsBp|՟S#hG W -p[%j@NphY$D>=DǢY&uW5̙eYv(M~l6N^`_o{Rg^-ܠ!MJB`8f 0eCt(x n hw;eTI~]Y*2f̩eKuWː;yEԲ&!cׄŀ$C™KzL,dв[vC!e6%$ A6WS" eB%в[^o_e2p\Xl0p0e'jy0L>e3[Y lG ׍,}K`! 3fc^[ 6 !Aj92oaj,O ױe)2īs(gTa A-ĠI-!Z<!ʹiOf 8Kl+SlvD[-0e}E[ Q`22Z2L UYF\eH3da⠥O -{ZYvG,ñp=eHz,2Ͻ͡erfݎ-CI2Gpٮx@wv0$T}Yvڶ'P+$ nt,Id>nΓe2RPY bYCf,zUuY=Yn0Osf'KD bhFhj ,Àm2l)o2RGpmG,䩅,CM`@DoXo!EYBY&KWݔ@%e +z;heVq,SV=SSV=V.>ΕpZ<2<9ƹqʰ^kʄ&ǀۨw+Cky+Dy`pʡ{i2ğÔ"Otc{u2-V2ј I$I yA*Î%)Zy chN:Qe8oTg|*ZF+xTʠ-cAFЀo:!T#I}@2 L(!PeRe`*2_Ǜ2m2쨺VYx&+Vv\dfJ=VDɯ簲*!2lY$¼VƢ1CZen*G +Cɾit[P7zV&p29j:m+CJz E-V;yLGwVVf&lrMV?[e8?t.Peb|}yUmUbb6\37NQeHHfD 1A*;朘$atU>JtYe~$Tg<@au UbrT S*?t.2,ڥhnʞ~$Yeڿ-|PsK VN5>Xe`a?m2Dj+IpDMaC*{,{Ai`3GIŘ/avDB\*@I >Peh\T26+{JT^F-2Jn@ISS+PeﭽY*2(Pe( -Oa2@?/aS#JT{T TRVnX @Gxe!i+B*v% T|Q*o P %W42)CD+2L6k N+jҙ!n?X%ҶSvdς)Cx ]N(INjP{kD q%ReJQeM06SeVxgyQey;G5ѼE驲& wV擨<;}-Ye}q/<2g] хO-*,2n` VKLVz6欲WH*C"8FL,nLҁCU VmCFU~9[e|y˟YeYPo[Ȓ2R>5lʎ6Qeǭ2 0U"U֧bT,$IeSbEʮk:I*Ï_Yr2ı쬡OT٭IzeAMay*{P]D!?I9U6ЙL{jmVsTUIVG`Z?㗟ʚ42I#UTfO`\ :`Tb rX6ED 9z2me `bk:.z^eRps2u^^ϝx3GWVQ%~?#zeko \'bW6-'y)]^. = .peZCV-pe}ɷ6peN$lRc\VR uyVP+CCSaeD yd)2l,O`Y_ SO`Yr$5mE) j\e] d^7[&lK,`#Y"YyuL"˦D*CD},gYY7l-Ȳ7fY7%"YvJݗ` Yg&-2<|F#elвg~-n'KJfYqTmIfG'LY&& YvO]$\ Ɖ  -,C> -endobj -187 0 obj << /Type /FontDescriptor - /FontName /EAAAAA+mwa_cmr10 - /FontBBox [-43 -250 1008 750] - /Flags 33 - /CapHeight 683 - /Ascent 750 - /Descent -250 - /ItalicAngle 0 - /StemV 0 - /MissingWidth 500 - /FontFile2 188 0 R - /CIDSet 189 0 R ->> -endobj -188 0 obj -<< - /Length1 9376 - /Length 190 0 R - /Filter /FlateDecode ->> -stream -xZ tTyf43E2Hmhh$hAh$/H @v#` qCC0c8qLNjB89iкi:9qq޽wwJ84׶'iRpcˮ̵DZx|xfdR\g#΃L@JP𿅢9|p6qѩ󗛕?0ؿ09^3}/#S3D[7҄w#3ӳ;n-N?>4'? @ - -nvGgo/̳v=Kނ_p"pp -NCp`Fa#t@+4C#ʡEF321R:JߤԗgԯMtrL#qopŏpqշ\ -\\P< g(< 0ai4xx, i5jUB|R!I%%_Q[ps) }>NCqp+nyVWԨ`q*ت#\o#L<\0xӂ?ρ%k]'`шQN)u:m9ߛrl7qmO:+o~ Cjy 0꤈+ΖT7 ܑ*f uuEX[5NAlcVQf%y=Z@ 헪%5 l~V"l7wy=F]pzy=mަ/_փxЧз͢q$xoI/ }U ~<g\/^ģĿPj/z@?)zlH¹z 7a?E\ #SvIL{seh -% 2}jaQ[j)sNNEG_<[˼K 7(X{0UNbpj0 SK8$1v+ݹ>ٯl/_Sk-+Ɵu0UG T|VCU0n/q0-(Ar $^v} - eZ)uЗF/ (a?^xB_oIN5ȝ H [7JR"LZCtDn/z!2d`kü!| fg&qnFEYJFGhfG1Dlz]&cM$KE!9%H/ -Z,')-2 -JTIQ;AvwI =%.(=dd܄nm`ho~|Pdw?Q^:P^,)ɜk3˨u-,ddoY^yG_g07 ZTj$98:iqPq41dDtI@0Y "=RPf-jLvf ݵb@6A{ٞQ.}iK$"8ݼTH>О1ڑU򍁁Y"1i_nԆs_bwONΜ;=ʃrƔgVM777gZ ޼J4:V9&)/l޾Jo ǎMn|j|[AJ+I倢2M rB)HqTh*B/D3G[;ttˡDž ݖ*?]uwt=]һ@"sȃQ[1/\ G'|Fn7)$'$bh'1R+g,IA[AD`RpW<.&ZOjaZZ{H(s[Vꩭ}:|&ZBdr l| v$r2VO8#8Jd^0k,E)D?*n((á<ܷootf`F/3U"%#Gұ -w)K- p>5UhhjzZ^E؍#ZX幼LBj}j_)j*ʃ>0$%3d4"\ -MLL"|R zEsU($bt _6PgSbՓ¯Mta[ܖ7q@mX+y-k 468/R=tP Z)aMNk9EMJY iW3ex`@ |Ű`{wncٺ~[k)DK})& }3zL K;lkN/ƧQ&/0R0Hg% E뤩X"QDDOIҏŊ󳭱݇U,AAT8]Zy<@N !䥎=}wX@{} AEW$ZEM oOYzi KEJ:)QqD$~>WN"I@2ELK޲Bp9:8@ -!pH*k!G u}|5ʙ/la@޺NoB[R|zU Q +v vA` 5|]`5W_%(Jz[?8E{k,)3ؽo >_늽o ?|h~wO{M 7_&uct7=w^su(E'NxעdPI"v!l:3ou蟈GW..R_~:Mi1R!G7򙥏.Z L5pjaʻVޙDܿĹP7N/S*URR9^TxSrbOIXi1Rʈ$ڲi j=M*7njt?~ɏ 8JKcNuz+_8>_"5<ڸ3a]ar/]x &tBJ)nP`5.MGLYGOZ4 Yvef)-wK]-z~ۃU'FvnW T&yzb_ z D\v!Ps+7'"J?6/!:dDB)Rrv#h0gF Ȁ)w:.ضD>e {ʆ4|isѡ0 (2~g7~XQT8 -CÏsCV%PR,o)Rڪmn:%-xT6lJ""`B6#S8ΰ4*'\N! imWio^?թDrrМJ*GbΪǶTRAH7>>6Q;CLN_rH{v /{Jrݏ6Y(ȜZFyow;g=gYYS6{oƋ{g*),9y{yL,E -^HIٽd9J"'F`P%5N`Sўe#Q9wk❢C8b}(zY3bw[Grkh*Fznj;ڎeFgRBU @8dVRվjUUb s0hT<U5&+4LT)\81>8}2'Z>Sku1jjRД,=2:<AĮQ !BVYc14.%&kBU1kb6l -C/ F4^,_IěM0Rj}s G4mMލdzɮǿ^qta}cf{j}@z}7)1XQ&U? z:8&:N'U'}EX)_A蔔)V489ICkl"3:8G8e~Хlz:΀aRK43hån(zDKl=bIS*/HLNK葠ψC?S <6ArPeYsO=joxVv-]yت~*{ɼ`dOyg;w?YZr!KFiHQ* rvmVbs8D+7%GO4M83 h$?P(O,C>W%P˧r2LQ/QAXͱ's$S*dfJ"u y47Lj(<2K25T ,V>dȓHsT|êelЈ)<,ێAr(1#$ZQп0\@:αR9fU {J GU>)b{Wc\ĉCmūTɪ;V5N-,@P~`0H$Jc4|k9A6AM$7ǝdUfҝEJeLd8p4.t\XIljhCP0#J4qpO -OX]9lwwl{ejڞ~F=8Q[mJ{~XDƣvm4/l~a->6ZSd=De?U7|O2y}@,I83Za^Jr -فtv] 8l)O#rVNo勫r7 1|\tÝd[X?Nێ>WY\AZrk6\;6~ܞ_͎٬b/.m\'?mugsb~Oq2SNF8sS8u?SX~] -ǜ_!0yXl,\}/Yo -,~g,~ -j9_ؼ~~^~]~& [wZ<b:un Tc'.q"))ͱ66VKHBYwMȰwEosMAN2쓬g[ll_;]Ku酇^ -endstream -endobj -190 0 obj -6735 -endobj -189 0 obj -<< /Length 191 0 R /Filter /FlateDecode >> -stream -xk`x -endstream -endobj -191 0 obj -20 -endobj -192 0 obj -<< - /Type /Font - /Subtype /Type0 - /BaseFont /EAAAAA+mwa_cmr10 - /Encoding /Identity-H - /ToUnicode 193 0 R - /DescendantFonts [194 0 R] ->> -endobj -194 0 obj -<< /Type /Font -/BaseFont /EAAAAA+mwa_cmr10 -/CIDToGIDMap /Identity -/Subtype /CIDFontType2 -/CIDSystemInfo << /Registry (Adobe) /Ordering (UCS) /Supplement 0 >> -/FontDescriptor 187 0 R -/DW 0 -/W [ 0 [365 500 500 500 500 500 916 500 500 555 276 388 555 555 443 276 833 500 750 276 776 625 360 651 776 750 680 735 763 722 500 555 276 500 391 526 443 526 394 333 500 500 555 ] ] ->> -endobj -193 0 obj -<< /Length 195 0 R /Filter /FlateDecode >> -stream -x]n E -"N(RR}i?qjƈ8}1wHE0; nw$0M thػTfbJfh"Du(eϞ#>.Ɏ-= -K<,p=$4GΦlf <˽AtY'Kh0o i؊K9Ķ3?MwqlHy^HT4HJUՉ*ιՠ5@ h m"c 9%t*ЩEBgɑЩ9:N'SßNŧC^D]d wiH *)ךF5jHxZCk]q=W9|PRTJD0[p~J6bkzzIϻ{ -endstream -endobj -195 0 obj -419 -endobj -196 0 obj -<< - /Type /FontDescriptor - /FontName /EAAAAB+mwb_cmsy10 + /FontName /EAAAAA+mwb_cmsy10 /FontBBox [11 -215 942 727] /Flags 33 /CapHeight 0 @@ -1484,14 +1309,14 @@ endobj /ItalicAngle 0 /StemV 0 /MissingWidth 500 - /FontFile2 197 0 R - /CIDSet 198 0 R + /FontFile2 168 0 R + /CIDSet 169 0 R >> endobj -197 0 obj +168 0 obj << /Length1 1968 - /Length 199 0 R + /Length 170 0 R /Filter /FlateDecode >> stream @@ -1501,54 +1326,54 @@ E mbkoԊ$?< N]w~p endstream endobj -199 0 obj +170 0 obj 1292 endobj -198 0 obj -<< /Length 200 0 R /Filter /FlateDecode >> +169 0 obj +<< /Length 171 0 R /Filter /FlateDecode >> stream xk endstream endobj -200 0 obj +171 0 obj 9 endobj -201 0 obj +172 0 obj << /Type /Font /Subtype /Type0 - /BaseFont /EAAAAB+mwb_cmsy10 + /BaseFont /EAAAAA+mwb_cmsy10 /Encoding /Identity-H - /ToUnicode 202 0 R - /DescendantFonts [203 0 R] + /ToUnicode 173 0 R + /DescendantFonts [174 0 R] >> endobj -203 0 obj +174 0 obj << /Type /Font -/BaseFont /EAAAAB+mwb_cmsy10 +/BaseFont /EAAAAA+mwb_cmsy10 /CIDToGIDMap /Identity /Subtype /CIDFontType2 /CIDSystemInfo << /Registry (Adobe) /Ordering (UCS) /Supplement 0 >> -/FontDescriptor 196 0 R +/FontDescriptor 167 0 R /DW 0 /W [ 0 [750 776 ] ] >> endobj -202 0 obj -<< /Length 204 0 R /Filter /FlateDecode >> +173 0 obj +<< /Length 175 0 R /Filter /FlateDecode >> stream x]Pj0+l CԒX}q z0h[lE^X gBpjV& :G:g} endstream endobj -204 0 obj +175 0 obj 234 endobj -205 0 obj +176 0 obj << /Type /FontDescriptor - /FontName /EAAAAC+mwa_cmmi10 + /FontName /EAAAAB+mwa_cmmi10 /FontBBox [-34 -250 1047 750] /Flags 33 /CapHeight 683 @@ -1557,90 +1382,195 @@ endobj /ItalicAngle 0 /StemV 0 /MissingWidth 500 - /FontFile2 206 0 R - /CIDSet 207 0 R + /FontFile2 177 0 R + /CIDSet 178 0 R >> endobj -206 0 obj +177 0 obj << - /Length1 2604 - /Length 208 0 R + /Length1 2920 + /Length 179 0 R /Filter /FlateDecode >> stream -xV}L޻{lgcAi06!PR{ 0؍ YEQhmYVm݄HUmeQ*Z'I4U!egVsƉuw}Bhqwgy&gVťT-Χ/\rcE;+cC9c TPDz\QFI`.B,[?ށ?|Lvy?KɌ0p(:0Bp"7/WYE] 7{2\o -p00p apB 6hj=2'Oߧw5,@W85r]{}^afi%ɋ 9WKo#[pބa~"Rx- -\KuX™5`3KY6wpGڹwX!lji׈km&[?#ȵ\>ɏw.gW8  VFh M@[D WZlkma=,Sv,3pttH'5{oRQYaevj$RcHFF'V[-@W <Fjt+4C:fJ"F½?@MXά\k;:sh5WR+bFhCK ^,ZZc`b?Ѱ;wP3sVq5TApwO=jc܉V eٿ!:h53~Y`Z9F@Hc㌺vok՗ n5Xn#[ oNJA/G{h/K`qlQ_=۩ ,VlI90~hVxKkW 0U -}O>Х{ڧ(d[Ϸy#3\Ft[ﬔ/ύML}s_~ߕ{Ԛɫ+G=uzLÿ½A^:9ڟocQ#ogVn -f!?9Y?Wtx 0<|C -S3>,s9;9~f `p-|#8 o=c f@ 0Ls_(` -%Q;$( 0fQ+`PC[<@2{$a "֎'0($!x\xEM -#ռ5lټ95V<3skDܷ2PXie̥Y4Gh1څUfqm)9X"vsa%L#.qTIeUؗJ[VgKYW3dFq0H&,'3 Nh|5X gI_yIrr&Nzkǭ8nK(WR\VY 锏eVnH ڷy;Dmeu=j,)dZ(Jx\4*lp/@ +xV}L[?} /ym?y6 Iрژ`B@fmeiS4E[4=PViunҪlڦ۴(RIMghZ׭~ι;k PO W92jG&wTNM(Ïcׯǧ~{@ +_&Y>*e>xPnHĚdzcԠu+Scsp~IX*mWP~zq.YX#s񹑴A9rp=l fG09z=^&%W2\o 58g` +&aa V?x ؤUGMeS.{}}=͞dY=g9fҟз +]ET3A^  ? {pE>o"ex5bsrYpq8w20~&cYX_TXjxehm |hYF$Z@h1hn +&EUH?T͊_jl7rHQ^%t, ؤB7,(LH *Xj#*`769jMFFDx/BKQ9{9CUPI.*t(63%[ТF(6C".((W*jwF ƄonjXJY*(c"3 +%Ja[dzav ##5 ,, +}XྈI6\ +BH .nJn&gD ~ѳa 4 &oi[Zt&)Ф_#vco/9jZvO|~X܍ncyEF–z=LFuՂz;z>9(ҪΘ_#FNO[;?>5ޱ`z֭kULQ|mK]={ U76r̫bfOt+Lhjq}KĔI~'YPLgGXJа6{pS֯e3sm ;MTWfn"5$H +pzM4kKxa4L:+jmtק_ o,Q^]RkDqXf. (NT]Ge1.j layNJ7?}T1,9kehq6Tu8wg3R|HQ1}bj(3<};ϾXǚͥW^:\\y|Be@f/stD<_l‡rF +sqjo+:H6 ͬs:-lAk#OZ8[vk{\]h%\-G|<uS{P\5ɧ ӵmqQ R{aTVlws0jo{b(x{'ʊ\TRPͮ} >g.vT_r0ӫc{a$EpȎn7a*6+` `O$ u=Xqx};48jЙ yBy39- EFKDc +'iGA|"Y&/149<30 XZPۊ:bbxR@q?>$zf+9]jT29)sX$ZclW.f?FOlCeFc0 xҧL'P9I +va0> +178 0 obj +<< /Length 180 0 R /Filter /FlateDecode >> stream -xk` +x, + endstream endobj -209 0 obj -13 +180 0 obj +16 endobj -210 0 obj +181 0 obj << /Type /Font /Subtype /Type0 - /BaseFont /EAAAAC+mwa_cmmi10 + /BaseFont /EAAAAB+mwa_cmmi10 /Encoding /Identity-H - /ToUnicode 211 0 R - /DescendantFonts [212 0 R] + /ToUnicode 182 0 R + /DescendantFonts [183 0 R] >> endobj -212 0 obj +183 0 obj << /Type /Font -/BaseFont /EAAAAC+mwa_cmmi10 +/BaseFont /EAAAAB+mwa_cmmi10 /CIDToGIDMap /Identity /Subtype /CIDFontType2 /CIDSystemInfo << /Registry (Adobe) /Ordering (UCS) /Supplement 0 >> -/FontDescriptor 205 0 R +/FontDescriptor 176 0 R /DW 0 -/W [ 0 [365 520 502 ] ] +/W [ 0 [365 520 502 276 622 ] ] >> endobj -211 0 obj -<< /Length 213 0 R /Filter /FlateDecode >> +182 0 obj +<< /Length 184 0 R /Filter /FlateDecode >> stream -x]Pj0 +t=,N^@I)mipl954QCRfA;g#w:M8€uEU*o5P$99ằv&H9 -'N'%k@W[5A*$F,nen/o~TQߒI0*ˇaC5ǒvM̻9(ep:P +x]j0 y +Y\@I)0Ҵrjhl8}m9PO%Yb]{+ z0MQ ;.f +m 8FYhJnWxY,w Q%赙 wXM|h$rw3<^F9)>7PWJ\蹙ZFkS9jTCDU|3DOeꊪR4zQ1g] eg endstream endobj -213 0 obj -241 -endobj -186 0 obj -<< /Type /Pages -/Count 1 -/Kids [184 0 R ] >> -endobj -214 0 obj -<< - /Type /Catalog - /Pages 186 0 R - /Lang (x-unknown) ->> +184 0 obj +253 endobj 185 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 186 0 R + /CIDSet 187 0 R +>> +endobj +186 0 obj +<< + /Length1 9088 + /Length 188 0 R + /Filter /FlateDecode +>> +stream +xZ tSי۴ږd-ElK.ɻ]0xxllc[쉓@ ! 4 I;rRJFa4Ӧ4)IIҜLtfRf2N&IC,iΌ{{~ph/Jddh=,9N`ŶiJArNEL8~Á\/c16kVS3[}/N໖o>8=،PGgg"n->sd?Na!21R:NߤԧGԯ 4K,rD%4qoqpͷq7\ +|g2\P< g<9Q bB<< +aV 봩*%9Iˤeh2rl蘽n[{9s>nCYpn1ynOԫdP uYgi h'-1>h~&:mşg޳o0NKXLlA[cK{̃=|/>8du57q!Pb]Ak[mL(~O{]ZLˊ5Bw֌mk2==1^S{xŔi>qbf[,P:{ 5ᆅ:c-=z>/>W#By|k>oMLѯh![flH/),|=^Cxy /Ϥ~^HFI~ _4*~5_С78My, f7`Đ@3+/K(zc2Maa,ZbU % cOn`^G ЛNTG(CNbpj0 SK$$5xj<~_E"Nx Ip-S\^PHn5׆ݥ`EΟ%HUnb6(nHl@!x +X.2)Erm3) +n}KG.ZkY ӬIQ0#C2.wy?bo}0?/=G7N xyE/J 䐙2!J}v"¶&WIjyk9k+6hNm.I-UQd.a|Ϡ$LB ?m,./V6WwfIt}ylm)C#!m#7>>I~][V]gN9ٲpkõhsf^gN(wʭ#\iT.GUY@(JNIF>%fAyyT?Atb]@A*Lkͯ[uq7crçr !0u[b(PE^NiTT͢d&-ovCd:Y!)*ȣ9d2LrU4JxXK7xL(UL@Ɛpowq='2yy={d#W4ceyȖ։c|rU]_[[{dt뷢=gJeM_B%Jv yf)3RR%* a441d]f`m SE~uo-2Hت_ {WMnxq, +"5ťqhœQW6܊2G [_ '_ V~l4o}2}54Dd.j nBy+_BϑM8mV/34LlTZHT@$(_ދޠF;፤wH&U=E-8..)yOIf,h˯ȺSẩï}bS^35|Ow8Q8Zۗu]xngԠ,K>|5lPUJiI͕"IskMI1,#T%Y֒5kUS=Vuz4#稭S4y1a{Wv$hƈ;ЁЗd~K%.+[hHĪOզ|He4k-1;8{O/tdLS㙙8/ 9jڐɿ.4ix.ѕ9x|mUvQ{Owm'k|mO?>ٰI*̉kCQ;E&M&ni2l6JArESGQmԉ^%8.H, T5ZkIN6x)i-{1PBEXjZ>c_Oa56bIg(ݔ0J%#tղ$3m H񼦩[kL$ u~ pQ榯!3mh}&u򴄤PKKSF!IdB!pOI!JmaYԋ޼p +bWT]_?P~''GKol8|5z t`)1Vݾ)ELL_JWL1)]KDG2H^c G9?SX0,`+:/yT}ݶZnMSyYPɔ+ kuՀ*QSyP*6lLAR9#5 Rhbeh`7x(ZB! feP @PGWO>:ɁZv>2ݍNVO]6,l~5䂀O@WUkZɿ]Fa|mjA)y2өbͶu"gڤtղ|N2ح:1P y1,X4Gޜ:xonJdJ!2^Gɢgm!;{~o>Geiף}E01B +Yh45Kd Jh!IX|={Ѿj0T(( +[+OF˗e +!d4#þW$esQBtXׂ99g6  +5!d15Qoೀ2z0P4̑8qR 5HJX'y<#0WmưT49%yNO~bLx^A>2+d*:;+EN+e&2$x:o %P"P;pGDPX09*gTQ|zg Cʰuzg4R[ O iZ N "KQ4;c +1ơ]#k9)ryoqZ9K2Ҡ7/w;xo g-d:jȷ' .}Pkܹwoo~ו t|76=ObXWcOnx您<@5P +5`OT MɠD>,ա"bfq:(p5eHFx"v+^KgǏt JS(tK%jXAwߥٌ|u%傊Ppzp6ʉModLƛ #DcMH9*;!h j=C*c*{#CΊ +#a=w=ed.//,3r\@w29Y)z0+RiJc@e&K,l[(8DiU^mCPPj7MbzSL)4rÔ#*Nto/T}|[R ^ T^ vZ$+eMLziQt:ucSKc~H,R[o-}uq .x2pYZʳtV-8b :7+HAո 41kd-J=i0dA,u _>r;/M;=%Ԧ?{Ş6LP{7N2AӋ;#P(k% v NZ@>ل( WH:|tM!#G""(MT a"KF,9C]Ije_~b\Yž#}Z5IɦS'vr}~TX ܐÑԐ "Q5Ivq,WsiC ((2~7zzǿW]V0݆{u}m]zD>ȶc-P~A.e鸁E6R)m!dQRL$IlKV-/&Fvp Fy$A5%a?-6cZQ:=}HNSR)\L_Uytͫ]}߅M*+uνATNOvu䒥MɅm[~s#O]C>C._&rHgN+"m2 9?pO |c~{m; rCK5xkKT#A[t5u^/ 7?{+!dl_!QGBA(;ۡMf2#2֟*jv"h,&k=)V?ke99eyC [UFN/4]QK|wi?D(.zBAx?#zwPn0Mrl*YVjsPԺ߱!9<3 w9 cI{НW{SZriϯsftl6Ϥ +Q2XՋ\pP,|J5:py٧_i޺Ub6[K}~5|GJ2HrAFNNJ!RWPF|GYMHɈ7:1~'A#|l;qéx|G-4hJmM7o>=Z!éQ37dxSo +#*UFw݀ڜR=).-f\ɻ:VL5VLm]m,m (?h0TF +x Ov[u*;tZ>/C\:h?vYJO.U\!6`K%R&*$*n8 aWN*Z{SOsp;T<λ<{oNn:ĵ}3=' +hGh\}}0Ρ3-67d]yᮯOݷxĽF{6v7sDOc$T9' [*dEN0IJlĕr=]`a:w`<Z#1i_yi^牁/%Rh_8ad@W3O6J!__ h^!~%znsJ!Ko?R,5PSOH5+3.R@pxuU6I'.w@ nW ؇Dp DXk 矱 khx"y¼V3Aai74Pů) υ-ȾIzl YҊ|ŕ=Dߚh8>hcE@&,$y8 I_mbI)H&Չ6]6]6 &r2p(q1%C u0|g +۫1Y`-L ` F`0V#+EGp={,9WLh<*~؊#a|ïgf;GvYs,ee%^K`d|ʲ:ϲvp*ٓgE,#{F + +WϬ4l3SS#[wlZ֌06#i_aznp靅%݈gBWi!U> +stream +xk`x +endstream +endobj +189 0 obj +20 +endobj +190 0 obj +<< + /Type /Font + /Subtype /Type0 + /BaseFont /EAAAAC+mwa_cmr10 + /Encoding /Identity-H + /ToUnicode 191 0 R + /DescendantFonts [192 0 R] +>> +endobj +192 0 obj +<< /Type /Font +/BaseFont /EAAAAC+mwa_cmr10 +/CIDToGIDMap /Identity +/Subtype /CIDFontType2 +/CIDSystemInfo << /Registry (Adobe) /Ordering (UCS) /Supplement 0 >> +/FontDescriptor 185 0 R +/DW 0 +/W [ 0 [365 500 500 500 500 500 916 500 500 555 276 388 555 555 443 276 833 500 750 276 776 625 360 651 776 750 680 735 763 722 500 555 276 391 526 443 526 394 333 500 500 555 ] ] +>> +endobj +191 0 obj +<< /Length 193 0 R /Filter /FlateDecode >> +stream +x]j0E +-E%v!PR +^A~-SC- ^+TǑfFwJSe%nPXhf5t̆ ;5E +ߪ&Η8Q_v`l%cɇ3Nƶzhij7uʶ_˺{ҰGFR׺'8J{nfԠi"W+m_'v|DwI5ju +=iA2P ATT*b=@AP(ogɡS@5N(:h 2ZBTqȏCC܃3G]xB\u1.C ?JTI "!:r(rVzCcמgSh-c5% 8zQ(Qw/Cu +endstream +endobj +193 0 obj +414 +endobj +166 0 obj +<< /Type /Pages +/Count 1 +/Kids [164 0 R ] >> +endobj +194 0 obj +<< + /Type /Catalog + /Pages 166 0 R + /Lang (x-unknown) +>> +endobj +165 0 obj << /Font << - /F218 192 0 R - /F220 201 0 R - /F221 210 0 R + /F270 172 0 R + /F271 181 0 R + /F268 190 0 R >> /ProcSet [/PDF /ImageB /ImageC /Text] /ExtGState << @@ -1803,31 +1733,11 @@ endobj /GS157 158 0 R /GS158 159 0 R /GS159 160 0 R - /GS160 161 0 R - /GS161 162 0 R - /GS162 163 0 R - /GS163 164 0 R - /GS164 165 0 R - /GS165 166 0 R - /GS166 167 0 R - /GS167 168 0 R - /GS168 169 0 R - /GS169 170 0 R - /GS170 171 0 R - /GS171 172 0 R - /GS172 173 0 R - /GS173 174 0 R - /GS174 175 0 R - /GS175 176 0 R - /GS176 177 0 R - /GS177 178 0 R - /GS178 179 0 R - /GS179 180 0 R >> >> endobj xref -0 215 +0 195 0000000000 65535 f 0000000015 00000 n 0000000145 00000 n @@ -1865,191 +1775,171 @@ xref 0000001833 00000 n 0000001886 00000 n 0000001939 00000 n -0000001992 00000 n -0000002045 00000 n -0000002098 00000 n -0000002151 00000 n -0000002204 00000 n -0000002257 00000 n -0000002311 00000 n -0000002365 00000 n +0000001993 00000 n +0000002047 00000 n +0000002101 00000 n +0000002154 00000 n +0000002207 00000 n +0000002260 00000 n +0000002313 00000 n +0000002366 00000 n 0000002419 00000 n -0000002473 00000 n -0000002527 00000 n -0000002581 00000 n -0000002634 00000 n -0000002687 00000 n -0000002740 00000 n -0000002793 00000 n -0000002846 00000 n -0000002899 00000 n -0000002952 00000 n -0000003005 00000 n -0000003058 00000 n -0000003111 00000 n -0000003164 00000 n -0000003217 00000 n -0000003270 00000 n -0000003323 00000 n -0000003376 00000 n -0000003429 00000 n -0000003482 00000 n -0000003535 00000 n -0000003588 00000 n -0000003641 00000 n -0000003694 00000 n -0000003747 00000 n -0000003800 00000 n -0000003853 00000 n -0000003906 00000 n -0000003959 00000 n -0000004012 00000 n -0000004065 00000 n -0000004118 00000 n -0000004171 00000 n -0000004224 00000 n -0000004277 00000 n -0000004330 00000 n -0000004383 00000 n -0000004436 00000 n -0000004489 00000 n -0000004542 00000 n -0000004595 00000 n -0000004648 00000 n -0000004701 00000 n -0000004754 00000 n -0000004807 00000 n -0000004860 00000 n -0000004913 00000 n -0000004966 00000 n -0000005019 00000 n -0000005072 00000 n -0000005125 00000 n -0000005178 00000 n -0000005231 00000 n -0000005284 00000 n -0000005337 00000 n -0000005391 00000 n -0000005445 00000 n -0000005499 00000 n -0000005553 00000 n -0000005607 00000 n -0000005661 00000 n -0000005715 00000 n -0000005769 00000 n -0000005823 00000 n -0000005877 00000 n +0000002472 00000 n +0000002525 00000 n +0000002578 00000 n +0000002631 00000 n +0000002684 00000 n +0000002737 00000 n +0000002790 00000 n +0000002843 00000 n +0000002896 00000 n +0000002949 00000 n +0000003002 00000 n +0000003055 00000 n +0000003108 00000 n +0000003161 00000 n +0000003214 00000 n +0000003267 00000 n +0000003320 00000 n +0000003373 00000 n +0000003426 00000 n +0000003479 00000 n +0000003532 00000 n +0000003585 00000 n +0000003638 00000 n +0000003691 00000 n +0000003744 00000 n +0000003797 00000 n +0000003850 00000 n +0000003903 00000 n +0000003956 00000 n +0000004009 00000 n +0000004062 00000 n +0000004115 00000 n +0000004168 00000 n +0000004221 00000 n +0000004274 00000 n +0000004327 00000 n +0000004380 00000 n +0000004433 00000 n +0000004486 00000 n +0000004539 00000 n +0000004592 00000 n +0000004645 00000 n +0000004698 00000 n +0000004751 00000 n +0000004804 00000 n +0000004857 00000 n +0000004910 00000 n +0000004963 00000 n +0000005016 00000 n +0000005069 00000 n +0000005122 00000 n +0000005175 00000 n +0000005228 00000 n +0000005281 00000 n +0000005334 00000 n +0000005388 00000 n +0000005442 00000 n +0000005496 00000 n +0000005550 00000 n +0000005604 00000 n +0000005658 00000 n +0000005712 00000 n +0000005766 00000 n +0000005821 00000 n +0000005876 00000 n 0000005931 00000 n -0000005985 00000 n -0000006039 00000 n -0000006093 00000 n -0000006147 00000 n -0000006201 00000 n -0000006255 00000 n -0000006310 00000 n +0000005986 00000 n +0000006041 00000 n +0000006095 00000 n +0000006149 00000 n +0000006203 00000 n +0000006257 00000 n +0000006311 00000 n 0000006365 00000 n -0000006420 00000 n -0000006475 00000 n -0000006530 00000 n -0000006584 00000 n -0000006638 00000 n -0000006692 00000 n -0000006746 00000 n -0000006800 00000 n -0000006854 00000 n -0000006908 00000 n -0000006962 00000 n -0000007016 00000 n -0000007070 00000 n -0000007124 00000 n -0000007178 00000 n -0000007232 00000 n -0000007286 00000 n -0000007340 00000 n -0000007394 00000 n -0000007448 00000 n -0000007502 00000 n -0000007556 00000 n -0000007610 00000 n -0000007664 00000 n -0000007718 00000 n -0000007772 00000 n -0000007826 00000 n -0000007880 00000 n -0000007934 00000 n -0000007988 00000 n -0000008042 00000 n -0000008096 00000 n -0000008150 00000 n -0000008204 00000 n -0000008258 00000 n -0000008312 00000 n +0000006419 00000 n +0000006473 00000 n +0000006527 00000 n +0000006581 00000 n +0000006635 00000 n +0000006689 00000 n +0000006743 00000 n +0000006797 00000 n +0000006851 00000 n +0000006905 00000 n +0000006959 00000 n +0000007013 00000 n +0000007067 00000 n +0000007121 00000 n +0000007175 00000 n +0000007229 00000 n +0000007283 00000 n +0000007337 00000 n +0000007391 00000 n +0000007445 00000 n +0000007499 00000 n +0000007553 00000 n +0000007607 00000 n +0000007661 00000 n +0000007715 00000 n +0000007769 00000 n +0000007823 00000 n +0000007877 00000 n +0000007931 00000 n +0000007985 00000 n +0000008039 00000 n +0000008093 00000 n +0000008147 00000 n +0000008201 00000 n +0000008256 00000 n +0000008311 00000 n 0000008366 00000 n -0000008420 00000 n -0000008474 00000 n -0000008528 00000 n -0000008582 00000 n -0000008636 00000 n -0000008690 00000 n -0000008744 00000 n -0000008798 00000 n -0000008852 00000 n -0000008906 00000 n -0000008960 00000 n -0000009014 00000 n -0000009068 00000 n -0000009122 00000 n -0000009177 00000 n -0000009232 00000 n -0000009287 00000 n -0000009342 00000 n -0000009397 00000 n -0000009452 00000 n -0000009507 00000 n -0000009562 00000 n -0000009617 00000 n -0000009672 00000 n -0000009727 00000 n -0000119382 00000 n -0000119406 00000 n -0000119433 00000 n -0000133664 00000 n -0000133525 00000 n -0000119631 00000 n -0000119886 00000 n -0000126741 00000 n -0000126719 00000 n -0000126839 00000 n -0000126859 00000 n -0000127412 00000 n -0000127018 00000 n -0000127909 00000 n -0000127930 00000 n -0000128182 00000 n -0000129594 00000 n -0000129572 00000 n -0000129681 00000 n -0000129700 00000 n -0000130091 00000 n -0000129860 00000 n -0000130403 00000 n -0000130424 00000 n -0000130680 00000 n -0000132679 00000 n -0000132657 00000 n -0000132770 00000 n -0000132790 00000 n -0000133185 00000 n -0000132950 00000 n -0000133504 00000 n -0000133587 00000 n +0000008421 00000 n +0000008476 00000 n +0000008531 00000 n +0000008586 00000 n +0000008641 00000 n +0000120954 00000 n +0000120978 00000 n +0000121005 00000 n +0000135296 00000 n +0000135157 00000 n +0000121203 00000 n +0000121455 00000 n +0000122867 00000 n +0000122845 00000 n +0000122954 00000 n +0000122973 00000 n +0000123364 00000 n +0000123133 00000 n +0000123676 00000 n +0000123697 00000 n +0000123953 00000 n +0000126214 00000 n +0000126192 00000 n +0000126308 00000 n +0000126328 00000 n +0000126731 00000 n +0000126488 00000 n +0000127062 00000 n +0000127083 00000 n +0000127338 00000 n +0000133977 00000 n +0000133955 00000 n +0000134075 00000 n +0000134095 00000 n +0000134644 00000 n +0000134254 00000 n +0000135136 00000 n +0000135219 00000 n trailer << - /Root 214 0 R + /Root 194 0 R /Info 1 0 R - /ID [<8565BA8FE3E03839C5960B206161D4A2> <8565BA8FE3E03839C5960B206161D4A2>] - /Size 215 + /ID [ ] + /Size 195 >> startxref -136637 +137929 %%EOF diff --git a/figs/rotating_comp_techniques_dampled_plants.png b/figs/rotating_comp_techniques_dampled_plants.png index 73128be..b4fc7cb 100644 Binary files a/figs/rotating_comp_techniques_dampled_plants.png and b/figs/rotating_comp_techniques_dampled_plants.png differ diff --git a/figs/rotating_comp_techniques_root_locus.pdf b/figs/rotating_comp_techniques_root_locus.pdf index 087c285..97defb1 100644 Binary files a/figs/rotating_comp_techniques_root_locus.pdf and b/figs/rotating_comp_techniques_root_locus.pdf differ diff --git a/figs/rotating_comp_techniques_root_locus.png b/figs/rotating_comp_techniques_root_locus.png index 648f36f..c948c3f 100644 Binary files a/figs/rotating_comp_techniques_root_locus.png and b/figs/rotating_comp_techniques_root_locus.png differ diff --git a/figs/rotating_comp_techniques_root_locus.svg b/figs/rotating_comp_techniques_root_locus.svg new file mode 100644 index 0000000..0103ce2 Binary files /dev/null and b/figs/rotating_comp_techniques_root_locus.svg differ diff --git a/figs/rotating_comp_techniques_root_locus_zoom.svg b/figs/rotating_comp_techniques_root_locus_zoom.svg new file mode 100644 index 0000000..1feac61 Binary files /dev/null and b/figs/rotating_comp_techniques_root_locus_zoom.svg differ diff --git a/figs/rotating_comp_techniques_transmissibility.pdf b/figs/rotating_comp_techniques_transmissibility.pdf new file mode 100644 index 0000000..0795e70 Binary files /dev/null and b/figs/rotating_comp_techniques_transmissibility.pdf differ diff --git a/figs/rotating_comp_techniques_transmissibility.png b/figs/rotating_comp_techniques_transmissibility.png new file mode 100644 index 0000000..b395bea Binary files /dev/null and b/figs/rotating_comp_techniques_transmissibility.png differ diff --git a/figs/rotating_iff_bode_plot_effect_rot_coupling.pdf b/figs/rotating_iff_bode_plot_effect_rot_coupling.pdf new file mode 100644 index 0000000..ea6687e --- /dev/null +++ b/figs/rotating_iff_bode_plot_effect_rot_coupling.pdf @@ -0,0 +1,1542 @@ +%PDF-1.4 +% +1 0 obj +<< +/Producer (Apache FOP Version 2.4.0-SNAPSHOT: PDFDocumentGraphics2D) +/CreationDate (D:20240416112647+02'00') +>> +endobj +2 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +3 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +4 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +5 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +6 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +7 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +8 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +9 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +10 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +11 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +12 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +13 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +14 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +15 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +16 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +17 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +18 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +19 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +20 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +21 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +22 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +23 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +24 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +25 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +26 0 obj +<< +/Type /ExtGState +/CA 0.14901961 +>> +endobj +27 0 obj +<< +/Type /ExtGState +/CA 0.14901961 +>> +endobj +28 0 obj +<< +/Type /ExtGState +/CA 0.14901961 +>> +endobj +29 0 obj +<< +/Type /ExtGState +/CA 0.14901961 +>> +endobj +30 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +31 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +32 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +33 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +34 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +35 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +36 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +37 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +38 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +39 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +40 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +41 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +42 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +43 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +44 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +45 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +46 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +47 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +48 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +49 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +50 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +51 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +52 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +53 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +54 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +55 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +56 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +57 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +58 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +59 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +60 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +61 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +62 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +63 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +64 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +65 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +66 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +67 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +68 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +69 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +70 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +71 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +72 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +73 0 obj +<< +/Type /ExtGState +/CA 0.14901961 +>> +endobj +74 0 obj +<< +/Type /ExtGState +/CA 0.14901961 +>> +endobj +75 0 obj +<< +/Type /ExtGState +/CA 0.14901961 +>> +endobj +76 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +77 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +78 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +79 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +80 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +81 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +82 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +83 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +84 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +85 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +86 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +87 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +88 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +89 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +90 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +91 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +92 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +93 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +94 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +95 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +96 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +97 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +98 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +99 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +100 0 obj +<< +/Type /ExtGState +/CA 0.14901961 +>> +endobj +101 0 obj +<< +/Type /ExtGState +/CA 0.14901961 +>> +endobj +102 0 obj +<< +/Type /ExtGState +/CA 0.14901961 +>> +endobj +103 0 obj +<< +/Type /ExtGState +/CA 0.14901961 +>> +endobj +104 0 obj +<< +/Type /ExtGState +/CA 0.14901961 +>> +endobj +105 0 obj +<< +/Type /ExtGState +/CA 0.14901961 +>> +endobj +106 0 obj +<< +/Type /ExtGState +/CA 0.14901961 +>> +endobj +107 0 obj +<< +/Type /ExtGState +/CA 0.14901961 +>> +endobj +108 0 obj +<< +/Type /ExtGState +/CA 0.14901961 +>> +endobj +109 0 obj +<< /Length 110 0 R /Filter /FlateDecode >> +stream +xώ,9巯' H3 4f%a$ыz}ynE?TsIwFW:s;ُ_EY(cfZjǑ )}_ᯙJm_W]uja{7?ٓvd{ao_?O_~~Y.:_ՃG/wޅy~n<5"ۏ^B} 9^gy^BcZW܅zjL-|ua]w~r׻!z@?z .\|ta]H}hl>nYq#t͆GuYfg94}Xz^8|a}xD||ՖQՇGuY]ZYī^FҚnGo=އGu+A;JMW֟ރ׍d+{ؿf{l}ƽGXl# lgO>?zȆ6ژ^6Ai/n=xB4O}f E>\Ϋփ􎧔>ZW[zƋ=u|w}?Xz{pqt|ޣg[9ʹtSR1<({SfSdV>>a gsg~bްr}s~aɋ}xTiO^~}dM]xzҷSyuaɋ}xT}F;[>gl O^g#s9'#>g#yͦ̀k>?yYɜ˛-9_bɋ}xJ}b ƵUn?yoZdȌ9>i%b5O^ÛV2 q֫O^{v2[IeƎ>g'-jB>g'OY~N޿ ч'/=;z⎣;p߳n(am=x>f,Q}^]X~b޳vx*9]g'/=rbe؇cJվy*߰>iݰbɋ}x>Чz'/=8c]X{qKPZ؆/=x-I9JL/=xlff^{}<7pPQXb޳θ'ginI*?xYz|LиB^{v/ӵ}tVf؃wTh ot{8M/ಉĘ8sk֟؃Fl (-?xVk{O'T4Wxw$/:6?]|?]|m]SF +E΀'m->Զ>k.ŀlg~?d~?d~?e~?d~?d~?d~?d~?l˟mOInnnYnO nniog~?m~qC맛ߏml=>'OuOm?=}"粿6T\Ɵ +K>SIsg*{.p8Ɵk +?Ss9g|#lOmNr?> ~Z7> ~?D?S%SigKj?Ss1g9|BlOņ凟m?>~駺J6ݙ} :K~^9{.OMx%n,mykCc􅻹~Ka[ZZ,>+\pf kS/ةҥwL_i|/*ƟI,+}tkzWG+$}[\\6f ?YBOuko^5^ ?UYJ{I{/4T6fQ+E[U^}5^ S/4To6f ?YqBOkoRZF 5k^L^U+g̽tmrҷ[۟>[?UmYBO%ko֮SE4nWN]~LԵS~OKo^6^E MkJO߬AM?՜.MY|B{{U/}*5^+t;Ug!x+o^P6^e+VIoߜ_Gjg"ſp~6Vpo_ ?/pk_xh +½F>ɸ/ăO4r}{v7/D{ qGcȿ6 S#Bj7H/|O4 S&b5x/{(]7٘/{*?3>O½F)|j_( +?]-hkiE{yo_X?cqoQ_h' g#??kI~5hOýƛR4pk1D[㟍:8h'=h'Sᓱ矤O'OF4ɋdzUhO>W93۶KdnQzվR8?Y/Km >fTG<|jWmj~͔>'?_{Gюok9G?xOV>O2;T0FΓqʰ-ҏ7;އCiuyF{9KSViit|Qǧ1FO54_j6lojgt6yLUK,ϖR͝6S9i}6Gs͑yϳ3=/ 4{ǿ>?Yc_^u+`se[ie\. :{tqomTQ|bmy':jN$OۂicAufoYd ʳ_šaنggl39޿yVKd@J/y3EPC'rm%z*fiyV_:׺qX9[Lds}8lZvAh#BMG9 \G :uG!]Æ e Aٳƫӟ/Rr:s&8:u(II*žr +촷nF&Wya3z~o6sy0n0"F-I8DPJ6u:p쵬+m6 6V2#V2;rنﭝ#o3&Ѽ;b$XV?,liHǙ?a6cql2jVΰ) ;I$%>V + kېn;"C׿}[z7Xi@t*-g +֓֋0VzA~gͅNdV^&A6Rl@)lv'? (<yf~S׬+q52A_lU_0sqji0H636LCX#gseaVX1Cوd0`6{de3;7'&3Qfa֧TaYQhea'71bS ٌ0SC0:ElQAĔQfYj z 5ؔNm0}hI闫9;a$A̋-Ql+wLU[] +l#\[0Jv=<`Dwk߾0d1[x@zNJmL=nSP3d;Ni61O$ >yXgfs6 is݌wŦax( aߙqj(o!?&2d ϴm<4Ŷ3qutφaPzn؄cޅ[16Y=ln6Z'f䳀dڴGf;cF`]m:sP[ۮг=Oa3ɿwdBݎg`gWpvd?4~#_\;5~i75?<6gw7SmmdS7.mGO6yY]/i^JIV6>iN|N\Df)_澭fό% vbd>42 Mcp_la+4'drL{`6#3R6˓/䄥Sg{06ZiM6l&6b Ҧӟiέ=MHc̿Kd}rf&9SXq{\g`>Ht]&hoJ(cg{>s=f~j7gby6@e M{$6[)#^&,5 j6SCCwygl%0;3I21v;xlaCgl,2a*ܣ6{3WK{^mr42Hg0W# }65O=`f#Aҹ0l$m%ޮ}Mg ?tGM4vo4GZ lc3ˍW݄l'w+Y^m-fƦOf|m ή1ڠmì;k\↫l}b5T'CWeZ9ߞuS`O2 2I~6mЙkg.%0[hV&#ܰ^m8xwaWH|x0splK90;׳Nϳ0 +.& flL[f\|dm UòEUI+& 37q +l#d&_X&E/Zdֆ li~PcE ;`vV]z=鿗XشhTQleu%OSlfmm36+uQf0Eaw;wa,&.6[`ZmeYoK lǹ,A٩3Ⱦ!~%(@Xl'vQc6p-#Gw1;mΊ!po4g/̘0z{ܨª9yDlnޜnۘOafrml mvb㊾%o qJڦj>ײ% sEYdB+̦~. pv Öof{mU>Y5vfl͐dHv^8 36ܣ阙 ^5l[8UbL2v;Fk'Ak c [쳏Mp,twer@kf*i*4#.mL&g[? .Ul|._:D۱Nl5:4v[ ϶6p-&}$E Nl`:z& l,dcinbi9z,̚P Rc6upO]{R6Gچ`>ُS 92fj>.˄]E%|Y0պL֖Tcګ[k^$6t|j찵6]UlڧN)f >-C^Hٚ'fOӚ yD*ʱIa*#"f T(crTlKοd-Mӟh^Y& u(4L΍`6\+}F_*aҳBu31DPbڛƍ=87hA-MC 4bsG ;!/qDf=W8\ȰF2{%yoܶqJ~L0r旜wWhH$Ka6[7FάlẆ[#1㇞f'mBng`}HM1etiާy]F9 B vraĂ i=1e[EAAwœ[9O&lX.`H=g_wE.y޺4S`&3ļi0G7ce_(l-̶s[lm}Ї0;5%0yLw0"okӃ&G{>poV0rfy{lډ_=f a5`[5o)ؾdVL23aTSm/`vWA3rBB0 2vHd3M,6srf&0.la֖=5+pa `+u\#MsjDmmO v?`234lΌa{aԓ'|7>NXP-gKK= y.vM4gDRqG1A8j +.)`vP7'43pDfvL]!ƯsQvL{َ`"ϰ^sek6ŧ0[ + Es5Tucش/dgeFMd6pH.!qv YyҢ̑̒Ĺl {Zh Îk_r0Bpw0.Tgn0Mᆧe⟶X}ٛ<i6VU|6J` Ŏ t0PHisdvt,k1`MVS5;f:N&ѓ }Awb`fͿM̅ûb[!F:Ϋƥ4zxZ)0p->+v:ΌFe0< 'f拶mD%w_SCWSՏj;i͟o&f5H9;F1Wt1ܔaͶr6lEz??6!~΢hl}c32j-}r!g;̷ +]+FZ{hdCQqȬ wB#rfOl}%eo,%uEuxn$Yi7u"uƟ(7*FŽ{0l%2O 3jm|g`6?a;?|~;gPv uys8Nv +D_qf&`9s`xM!F~$e^xSqbN4$Зa5OgڞVlS櫹RH{PL e~B@\"V֠P035b:3aF3LaҜ| +3O;GkWmN(YJ`a=BDOn2kwh>AT\DnT7*W ӟ9)K㦇k9dݎ=lZM, L23O2j>vj%ϝ{"gMB W;-˕ĨVH~~˶& S~ G0SAMa؜44 M9Z`ڥA $4`6lQrLf(p[jG 4YEQW.gnG)Vd?Nd1ndY2倝"FpfA|ꋨȤrsbΜF1QNV0IfSpIQYg[ƚ3P9[qYP0O:uzP ^aRcg/.l#o-L^F7O,.b"uGFT03 +9s6ӕ2) —P"i^BK۞D0*E>?= L/Nd>)jY9lZGy|RNG j9z5iI"\f܊ zRЅGcI4ӯc٘O2afa=`k?ȒN+39\Df hEMT7$EqǕe6=e.Ib0fLd~ ۰cmJ (- +e99ɳj:Sc{+α0t>UrdzN|F +[/񆙭S=A'aCrf6Ehh:2nNJ87a6ޙ0t܏hȉ6"Z#ԋ֪rRYDD"ͯ㙘4me&󞬙#89~Dmwv"d$=Tr#sR- 8`m8(tF.2;藽 +801@rX)(s JRv@T,w[bGRIH_+!E=?&a4 +ƒ?`5U2Hĥ΀50??r\ȍ90tµ­{E= L"$KI #$vT"z5 ]'w!A%ԝ$Cr ܿbآB-j(.] :/:{V.q+"LI2_+Smsa $5s3'! G:1)l86k1Iٔ_g"^-)&qUl39f `',^] +Nj5Q+qsL-2䆝;]:LʴSɘczAZJcVRjGڐdS<(_d{Pb sI/2!t8ve +SRtnLfh##+u*#17C[R  s-æ7#ݍ WcUb]T,;}yAJsYMr<;kR 3[N)CI @[_x04cÜRU6&UOvրe5\O>fʻ1X35}؀8t+\毐Ƅr6y :Q.չNB}iWIq` X*)5_eMwfSlpd!j)N8D[.!#ą7 [`0V s}:Wج/?B 0j8nI{/%{Rblz//C j9f; ?["@D^q '[flۈ2\Ѐ߶/OtӦ83(+cz}'c\&ʕ\y8pxfC9cPإCI!E_*3U(Q@.$gpQ^<{J#v'0h& +`9KܚzԖd;iH=3mq+i*i߄3L#va6줤HS3\%@oٕFo 2/ʲ{052+ +R;jhن{`Sj̈́td?O1gY4375r:mۂWoNO<5__*z(\}v vTyf@1!"4W&sFDzl 崨>d59CfdnΔ@CWFak\JJwo)S7իbX[yEOdi#M&Wq:=*9i**l^\>`؎/ +-8jʉѵҶtOLʐ  )^o.ESDH{PظʄD>p34yU18$<]0 f $3- :Tqq ;|~:Mȡߓyt CNg%!.H 'Ohޔ0 GNpi8R\A%2XP^uH=5_9uC@hcsj0RF0U(gT% f`&:b5E;鉁#*3ÂHEtxs [əF4ei)g: SjlWSg8ӳ`v> +TvVn ozΚ f<~Ϣ$W +F$ (R9zc4S x_5p}x--t:NHwD}%*?_6 CnK% +~ϐ ljbPV߸UxrƇUL]N ۬^Vv yBք<ߓ2YE~@c*R>1&\'3[l쑿pH]$?vפ)_ܣPp6D%M"BCLO$+_O$~'#ƦMrPLtw6mCeLE:6m`z&9tn,$o\$3O$kλwiٓ6HS`&mNi8*Iw738'>1hS'Adp,$/6ʼXI6KNixm'qb[5t8q/.3U %Q X0>V.hqIDcL<ŢON$1F('F{>OEE[ID,= -EDD8cѕED<|SI2XWyϨֿ$"2b]DD_T +[IDd<*0 ^듀YH~.$"u;> 3O^ +zI( V]=ID.B6y.Z_. <F.OYdT'!1 íN2.ȼ _Z:fON q7KiS'!&MGDmW'Z +$J'E~IA붫pD^ɓPgT=ɓDGN2`AKNy{R'[NB[wMd(%^K!OBۭ6/ < vl]˓P$OBf 5McȀVm$ HA`uSl[IRKWGVu"S'!;-?6uJ؂Ko$+3ѦN1~\I2$*N‡ͺF8P֗CX료sW'!"$h_y'ue|6uȎUヷ29vubPNUh6u.VΨI=$NrIDu줳'q1߉_7q':F$":/8ݮ?I( [8 07?sn$x^<`} +n7q)JФޞI->Nşi^'uR/ۮNU;]DKkn$]w#AvmڑUs r&U6UOr݃TI^^tR& T`kTmlbjP {$ lPDM6I( z".IB%gi$H&4wIE{+o$>WYIdBHbS$zj" r<IpzI[G/6E6Mqݟ{HTq.C$IXJTpKKl$aZ%Igo$&tܯwI-zI$"b6[o$oKb$)*[Uzy%I[n&IµH{%!͈LJiDIFhm$e75Ij*a( GIvXzDIHhm$Ep9(IJG34WVQD(I!wQv+ B n%6r/h%.-j9B$IQQz$)[$ y~$H%I?ʺ$B&l$TSı'M$C]DEk<6UXN2\.J2PTI(^E_Ujx.|D{{%tI|*. v)Ƿ@!ڄIK]kEl%@Nm%)%h.IQz2 . u=pi7]ȸQʮKBi k, < +p{R%V5TIDmjWYUI%&%VUJt{`YzpݞdI l/* I*i(pUM!ͱ|>ti7UKc]}W%!p6U9ħP:YUI8ߺ=dtZa*IV+5H UDbɪJdk{JeE*3/A䪻3ŗ^UI "*IS( y6T iH^Yw$ѡI$콇I): h'Dvl$}#LVQ.sMyPI=DID 2( N.{XEem?d#*eI5yn$Y)8U \]l-; !h$A5ITQK%!D(( tr9"ַ]Ӥ4&6QR؈ɦIFv"`8JL!KBl. {%nO$xUDy}sF4c%AyU(bNɒ/$ ;?eITU8$ѿTIHv +o*DЪJ"^ަJT~{$R! M|o$fR,y(/UI`vC{VzݞTIr׮JBy$$Szُ7J(X ˞$P^^"'IxU;o$hNv,$, z(PДIXdNOc^I#]`cS$aBtKH@y\#E{ҮH={^gn$Iiu:H"Vp^p$!Kv0n$Iѽho$9T''MCB92vML.t5ID&^ Ir5z!\ktK$2ڼn^ص+@t)K Sg'o$1,UInJB.Cj%!#SD<)|]B5-VUW37QXr $U{7'Q7IB& v2GتIBRLs$\_԰]DJ۾G$=PS[C(ѱv'&EI$.H7Qd Uv%ȵZEI#A{( Q+^ٵd_I* w6>%H7UBb䟢$+DI(FUvQ}Hu$!;7& 1DB& z7& Dmߩ7M.E +E^EI0\:ЦI2u _CqG wEjBzM$F@" > 6AOF f?O':ZH `S#$ \ѪEZ$x R$C&-XHs%D|%J,:$x!w% ?Q,"$0@ +W?4H(ɢAl]aѷM z(2$ID| C $9`' +$xU"a)tdǢDE)i6zEdЇ[HHǦSv97HNJI0"ĸ&Hԡ9*H1F$I`y3ͦI݉\]$dey'U$Bx; {`K +NwU0]}֮$zAUD݌\`w]%Va}"^ַ)5"-ᘬ$Iw_3_I +[MO ě<\1MD$%JJ3IP*95DOFg׽UΥPEBZ?JH2qMn<~)> J '|UV'p1U +Lg*QBKcQ($,#O±q9S. < \8ɦNBP ǎUB/NVm{6 É[0Dž=I6<1ѓUL"6I$܁rSOu.=#: MMDIIYIHtHXI؊o !NB>,U񼋓psE(nO$]/$Ues{'b󺋓4l߻:IS]bS'ר/[wy&Z: 1{J: i$]P'\?h$7qI.2ۓ:ػٙVyaWIBiS'0@ئNBdFI(lIDQXאYIh' [IqWR=лɓ(v%a|II+,wZMdw&x'Q,j˓x\ G_[IeWU:%%# d(i闦PB݀+ɛJ܉S3,> +%CmW(!ezUD"=(LǪPiT)+ +%=^PVcBIW%CrW(!,ܻxC1rI?J҈]bzJ#=J8YLv.E*΀ +%$!y}{'ys{'&-CcSv'O@OY'>lZNߔ6})$hW/>ɐEPYNۿx3~{'e?I4 ?vy"k'/J$`#-$Ddœ?IT#j˓F< ZI> nHx$bRXIqAϗr]DD.CDĢPXIgsQ'؋"`ITe Aa:8mNBE,]uSxED伔+,$WF"NuRrl'lkIĺLh!ŧ^I|-ۮN"Ri2*C +٠zA~Qeg٠,-m?|xUD$óntC!t j{Xu(: qnhDD)Xx>9z&nx.z]7H4 +$M#+l iGW (\\nHȌ{ <"o ¢LlN_+lAJJAP{eizi=t(x%5(7 +nOA$M'D}-nAYl^]m]7zR=tfnRv]7E ` "_P1 nxs.j AQ9㑫lv !M6(+;} }3 };e +CV6 i+s ";Uzs1v lQOhPR~x%hI[ݞ4YxnOAtg $N(~~]3dhqU3HC3J*D~]=$;tMM2!F,e6 Wj%x]33FDa=6͠8 +%{hKaS B~ԦIJ8z\aS \/A9~oU  [Uٰ#qV ]mA\B]6R=lŅY6 "lgeWqM6e ,Vw Il+}^B ,WmS NBVc f%z [U0Gxڷ' fԺ +vՠ$A)ʉlPMύ&XUO g|ۓlDSĎAd:lt4s(C7Qv P$s9Otʬ v z.D\ ؂7٠C)Xw Q=?~QCllA'DBgU uݞTHlA U@ՠC8ðnAPyj-ʕQtf'{=ʏ\C5NbRz.ln6 RkYn7 Ill,QS6|Ab<o "hlrJX*. QE,Bpq*$wzz^C8~eO lW궫mW 6 ]E5Ht0 W'_U:9eW QL6)޶Ïjq66 l-A@9[K9A=$P=!l(at\bU 9p;-d'&>A`4C gQ KM1Hu آ$sLsnAbA)W 0{t+%98ɠ$Y[wsU2H-cv"ЧZDhBzS P?;&ľw:K +-A`FM85eAՙb݅؛u:.L]f 'M<8$n#A`SJҒ_mA8A\@gJN/#atXx.V`sM:d3pR -K'i۔0Y +͌\rJr$ݥT<vg+(; $&RCf:&oN-qΣ:M>S}|Ύ݆*F1Bٚ-AUm߄-lKrޑM>Ͽ~llA)#"J+u@eKe +7N5Ng/ +B + \"]A]P`URx(b +B`\DyElpUAH[M߹W !0Tt?r5-!/٪!D%]CȉiU>kJg ծ>Kܰ]Fpt..!)S&!q2a>( $/Ci-U@?#t>V!фe~RÊzg#8ג* D3ٟ [{L?ۮ D s~*Ѣ A[|EAx*el +B`)]AHDh]U$EA̜zǛq_{UZO + PMB(i$vRUف``4v5*9gB`SC8:īkm:1ECHw$Sh-B`v٢b\ M8v !'e`swuMCu䧆3lȡjgUB huzMBl $;E ! Ch|=N<V !0qinscnBbKD|BoB&!V]C " !̞^,q|/eQǛPmW/6!_-q%I!P]UE6q) Ut;`eQkfUEHf=Nt׾ᴬ"B6X/)l=m u^'UDH׹#%t#}*"F\"7˔R%"D`zB@1'4 }"m䘾"B`Pd+Tĺ`! T`9<5tSx2q-*B`6{!"D2=[hSNq7aS""9TF:Q*"ロbȪ"P8"$ZzߝV! !볨)A%+R%"D e!0Е%7!Y10*"Vzj( 8W ?|l*B`d!ev!|l3 MDHyAfco"B`!m"Bym~$SPwbS[2 +]E\EpUEue4H!r"UFJ{H : MF,2j#-xoCRsJ*ذꛌXPX-2Bdɑ>q2B`@rGw"6!q_ͼ%eD/_eU)5^a"$4"ol2[STyۅȌ$2i |%/BBaV )Tyߘ!!EOR]pJg?D[ٰ + )5@X-Dy]H(ivv"cז99 Z뉫} !괍YǝKY +ܔHd> $$K +LZh,JB$G%!RY[H3P'Z g#X5g"MKx0.!UKTz[f]bJ&4 hZBTt%DeBeoPR޴.Ԩ.?$UG2,G n^PAtʪm4(I qˍ %hjZ+C:uC⍔z*#NENU- j>qu`n;nv"c֟"5D7,ӁOe|& +hӊ*.ÌZ~U { +4QꈟAZs(;@^cei=66Т*A@2Yٽd6DCLǸArmd\@Z'Dkb_ɊZ 5qbEQ- +0n OFQ!b5u jU۶i׬+H-8곘H>ѧ^Hۥp "ZXF2ٯgˀ켡jj oǣTv5m 3C  a2R|yT4v{ +@L'4rk HvW{ {=p@h HA  + 2 1)d4OJ"3HK0[@Xe<6崒(_py7'@Zf{@cR@l\,` :OE DUSQY@ۦm|+U @K D2ܱᭀb<`Mb.Xu_R-H7 IA +(]6U.XlGmZwj )$9(Ίӊ":"ï{rAm]Iy2H#';n6,U 42Ov f3Y@۩O\ SzBbyR(l \0D̽v GYf[@sl^@d2p:=8ėkZᧀ/8{_lhBk J)f5H-#l e-v,pl7,l v965dIA:9)h -˵ Dp2#yo+"Kvd7(Óuz +SA"qZ"bs N@ LwiMh àufV@qfB'/Mh Υ*g6YQ!tbiVR@Hocj2,mvhAjxJXZWX eZPWݏ+-Hح] +XPc$2,Hg + vQ^aq2-eIBA "ݍn;T 4~ZTiA$c,3҂6D҂l] ZBO+ ^ W7\ +ZؙMv +ZS(SaAH̗v( ֻ‚Orinmvt`AlV-ÂH)Ս݊ܮ,HL,+'`]aA:{ ,HLdz "m%e +M] Vн{UXewZH;Q .hWa i\eSA:^uJF8vA:֌Kpda3~WA:nz)-27c[ +7tע8%en4h( |l ]Ac#7ct*ܠ]I> H2zxlVA{pغJRCw~|>:3D|AGVpЮ6ci*8hӟf{ JVyAnwVQ$i>fAr򄲙Af>a Wi9-q#u0HkulI ,d j0d* !i.u5#d`seUPN( 5'`(L R| L T[Aj:pN +2H1\{AAdv#0?8`>#08[- RH=~SA hpZ@ b᝴ {! ZMJ Z,ZY b+_;~ ݛi~/]{AKVyBlЪAwPAdm 4b\zA{L `xv 4sT "=o: Ҵ +d9 CdbЪ[\ +`$ o;MzAMӱjt?3P 0 +mzس桰D + "!ݴ YcfSҶ5Jg{w-A˺t9̢H==9sQXρ8:v -?l. 4@RAjq22 uZ 6NSAȽL+Ȩ ~ǡ !R-𡄕lB ,7]+1dO(oO&)v]~J Ɓd vG2( $F>22e 4gTdnvoAWOak'3۫ v`)WwHak +f޿! +3, -T -&Fks7J ՆgXF TiĦ'V[A]͞YYe`ߔSDjUL zdj׋Ć(, L ":o-A$)#9VVb;[b7͊^At.Oy_%)_YSAӄ4l'vL*0Znt~A=8 ؼGfdPSGEM, RhÞ \tؔd=AT;kjD jZ>0|֧%rU&07< *0H s+ǭ= 4lW3_* -h jj7+(ZڱI -ޙ +1H7DarS J BwmUA&K67O *׿ ꐞ ĸkx F Bxk?= eɴƣ= e2? Rn؃$S~wadBd;g$:34JH25f$$S;*Lς$S ~SdB` \\d"V]dH$(8L$S+sy%"GP8И;UKD2=<M'q!Vd!9%HFyHFQ $SsY&IDe[&xnZdhx +hlUCc,PUC=4V1v(P2n +ma]|[_f!QvXzCaqIjM%(٪&9P245H%[J6lO3L WP2_@ԧ6[*LOeݝ˒d/2h +L}[L2x#3ԧ_nO%)L2= _(1AfS?57-1ԩ_VX?0ԩF=2 -dUp v&g}dhdR:$CيR$S~[w>ZbUq{&yw7JP2k2L-=P2?ǰ;C4B"_ߺ(P25?{1dRY?;VQPdj\JfCS dj֏ AKP2w^VdHB|`ɪsua殉IFyۭ=L2Mګ2(0$CHl7bBa)d|`-xYܟKL2K~sA! 6Vdh;UeI~j5We?-L٬-$S7>L2u_]kLsefG$gkQ3KL2Eiԍ@dh/&=[{dG}7w)3?~J2LppPQF]dNp[B?$S?H":9$fzɌWEQZ8G%$c9,!8s#$ClLJx,fKH2Vc +,7ǖdjsmI|Hf(D2M!f"[f!akLǰiL2u\{dwO;\{dIAԎk7 ׍Xdh2, 0H^30RU&dLe&١ǝjZfJ^nhaЯeM&I??7,d$g2xs$$AR* v-dSRf`jJF ^Pd" %g%S ([e*֔ &e(>҃$fg CV.3r6%÷z%xe/Bu}Zp8`cK}FB&{s!QIs} lhN]?XdJx2+ : H LL6Bfu>W!a8w4A s #ع(B&#cc &0Iޥ9K+ɆJgLFʩSL5`!o2(R3yLF1]&ceɆ{Jd2L跭'L64w͵XE̓oQ0fhlބ%FF%h0UK@SւKFb%.^Rp6D׋KF]%:Ɠ\2,dB`F%›Ud.te.Ca\2L̲ M]tҿ^\2]L,ׂK6X>:`2Y)hٸlVXxza ܘ^Qd'vǂM+`5r|dQU+E'ܴ Gl%_/4x\amyAhl>( MFŊaᬰ&c){Ma7~,dpB ":;x딌&=T#ZXyU48JXԱP8CXSL!yWG2jlܨd>4 cL@x,_d]SL&:zSn21{fvRdx?6%*d2@1ͩeLwmNd`a +&ӚsG0Y߲7\]sL)0Rd]m +&fwLF`~dCB&Ra"Q_ +TˉXLvlA:+ɰՙȴ &#y-`2u᠇l.`2JQɺa{Lĵ +e0&T7|,=c+`26hn +j˚>dlpdz>0n#VDRdj@{2mX2ʗy+zC)ZA+X2YKKy:`H~?1-v-c ?Z`ȧ,y(T2:dJ% Iv8}+Sɴp]lJT22hfa*rֲRv&#JL%#MÁdL%d8],S('5a"JƗŘ릠e*ٮNjJ%7=|.T2LZLٴVd{ 7% P2~fYː] (V2^WdX Z^%c +LҨ7[>0X`]/"7ǣlW,)*H2IFyGgzW (a+ p +"8%8.7v,d$SD2[dJ߸`q.i$۴Êl: UL2Bs3kl#cutZaQdGj+$N{5p2L2WAeQ(wKfm!8x0VaQ|t1ia)B#+ L|^L2mϬ21K~ +9 wik$4tYƍ $S5g+$۴7#Oiv >vSyd.<2!_Ƞ nj8']Ȅ7,xdj<2TOV+<6N呱<#<2)A[ YSaT\/vPWdȨ#lRq#/p L3*mUd~gHT .|0$KC_g u +ܦ ]@2!Z\  7HY +xuܰYx/I}I,2U6dwm-aUSᐱm%ͥCvj%kC4gՕB>cd0Iۻdygi%.e2P&)P797bMMbzǦn_>6Nō 3| j<[FBrKz g=yLaޠ 'ر=]c) PnmWc#^ n<vKo >P E˸1i9mDzv S-g.2jkUhфD M7 vy.:?sgQ@=% p8/3+jƍ7fd6cue0>OiI^_ֵpL|LdO^6^9ڨ8SbgA/)meٳ5Vt|+~p2 +=RT–q09Zy;'UKBUm2XbtEjθif2̘eT{+H+ʚpCVvbӰM=*L]ڂlYe:f*rcP}ʠ26 9e'ghpmE`4z fJ V]AdsFis7,#p]Nr%F٪T#/ exӵRz +;M+U kLlp攱*os\ +LWSoNEK2]`*#^L|D+ӵbWK]Kxe45k[{evA2] ˧d1L>0˴]'eh&TeZ0u-S,sn8-=2-c0?xepu ),2c  cU +lUv.S&$(/#[8VLя @Y2l*‡Qf+qIo`%T!fZ2F:+3䑦t큘GVcd٪%|3iL2S8'孶$3$ӡDe{ `˭2=']͵ff{bK43aW~k̈$ژyf"pVSVSZfNԼ +Ѭi,4I*Hm_fԋޞ׋i)Ӵ4ނ-J+fՖi֔FȭJwXe=ݯz1W3YBc;V2͚Vr4coE +Ӭ^k‚5ÒĜ9pjT{?׋jio3B|Զ4+Ԍ,=zAͨ'b1o +5l^XݵQ392Ԍ%ق=C5zf"2l#'YLM`7XXfmJa#ӌybq`p`bTq0(R@[@sfhAѝ +lh2yxP*ig3DEQ \LC㦝%bnҌ١ƺ8 ͨ?j_2Rj΁/ԼK֕hYXfyii02Ҍ82c*Ҍtbsf]Dv;DN£a,|33L5? qhkhf^"A? =Gg*ьC&]KD3eiHqfEa *Ќr + SfU. +q-4}zwЌ}'q4B͏hfvNfDtfXT*lDK:™*Ό)CF%ٌzH %~'f{x̔밎Ȳ3Fp8&?ޱY&ċgVZGJZQB nԫ4;խ)gFt۸Xyffau#:l8ˣؼ"Upfgy)+ PZ̴̨ėnUaK\i>Z،[u|3˂gFY όm +Lac:^/zw<3 +T3a♑՝Vxfh;++&rn8׊3=JCL<3<34%T<3)6*l(m^pfH_Wpf OeXřQW/83C5\ƙM, Js*L=fw)/VPY_/4N{ +ˌ~ 7Gp`YZ{Rf׋eefgTP˔ ezeƓ/ d+KU^ 3vdư"/ndpt4nW[ #ڲpl'>{] njA]U +njRxVׂc|!KH\8fA쮝3nۡ1c論9fTJ +\ 6>[k1cy!Y[^8fP܉׋c|*njUT:tm,3LW$3]RjD2C#Br/2*It큙i- r#C9̈hE#όI2K83-ypf, ũOڃ3Sji30+o-pfDTK83(Mo)pff8#6 gF,ƍx(zm6MTRA  d\:wǒe{P1-̮8 n™m:/Q^ř/c(~e٦sM83-cl3#Ŝl1,<3 +7p`hfTLh*ai1fj_fZɫ)7,f>3wg!Cƒ3X5։fSƮH,3NXz8' ?B2#Cq^dF:V7_If1X^AfjvFK3]d|/cԵ#wcf"RAfبf Lb~VW K$3)\yg(WBak-f2Sʎ+e$P㮠 n2Ãf%٪P(3ea%}AfF+03(Vaf$@7\&l͹fsoe!ʢY 3#K\ %LLnU,3JtˌON#@I r* L5g_FF=f^] MQI 3H3LX9-t#g"5N<3,6-L-MtxfN<3%/F^<3};}\/Yf*L#}mݹdgKug5:̆rǀk3c]igƋ3lֵ]/Xqf\fvgƻ@ 83ލ fFurfF\I7R͌ t@sf6S8{bSi5q] gL3c\c$ׂfv)z4E3#vpä 3c+|,3c+|BXn`Yx]wgQov3W gcafcWQY_eEm3oO-03J|3C;p?wdQZɰCsF5s(Q?ׅ|3̌~`fZ@OΗVu./UѢ(J2k3elaX2CHbQ#?V$yeˌ:xyV-@}('v3^aK 32mw{ +L963kVTv;"Ukw~{tg]fK2[tkіRofsp +3#ooYzf,Zifl#tWS٢M 3[Fv}03; 3#ٴq7 NL@f桺ޗlըp[m_̴fFRJfI>Raf0srr3b3zdltf\afZ>oqq"yVfM@gv,59/I9- !?7FZ5!خDNT /.WZ???˰w/c=r;~6m5;M,Rxȗ;,u//Lrc;b7J:SZJ6d\B?rm_˒՟x؁al^]|?_r~/'|?}x +q3 *ҧ?b[~g ޿]Ͽ?O޿ ?ܟ}Nr4So כ._e?oO.oO߸+Wq?ܟ}vզkd!so'lr7/I~ɖ$/|v? e.] 漟] ]6ofZpyY޷7 /G͞g7.)ƀ–2tsJ7حbH˳?'o'(`{}Axϵ-vq @[X=߸7qZ7~&o'|M߸7{L&rob. ^sXOM߸7~7n}&f 7o"7Ml CI?&JoV^ys7n%Uh +Dn(Go7/iai7Q~&>?bbTM߸Ϗ{vM#&8C&RoGLʐBdct7n%9XjCnhIy37n%U{s7n%7OM߸Ϗ#?-|~$9sNW4Mc~~DS:VO|zt/R{($>0߹{csW~o\bnً߹vIMT\?^kfib7 .a_7^~ K#=}"?_l_|_ j_|:}Şk_5kӗ^ì1k] SW\_}_~ŗnW__}_~w՗Ů_W^W۵_}_l~E՗_W۲_}_l~&W_/w?b/ޯ/vy|g/=ݯ+ҋ8 >^FʨͮY[0_{wˇL/90_{wˇ엯;C^!k/Nlŗ^CF͇$;Cz^E!k/ΟR9!k/ΙFg|H˿d>|gsvܜw^!Ok/N'|˿Sp>d|7|;C&^}Wߗ$Aj +Q˖}v\@%$S5E` +{ z +{=-87 }@abS/-*wÁ'v?܏ĭJW]y#faM{ֳ/鳲_:Y/ܺmlD?p;2'.$o ;GO_3]O\pzLk'׃o ߏ/fjHXءmN_w`K8~K,\b/0?_b +2_Mr +ǟ( lb+:S+|qGAҕG}g8!3~Ϋt>^+n:A~#WpՕow +}=0Qt<҂O[<'|ɥ*tO|rV?/BO\l Okž\"k\gR.UHԘ}CK1{Qrt uv׿Y`=U/ۜ~Q};?Ys~x=c^s|?*7. ]^']u'.'hPVWvO/'/}~z?~so~_!854X%“~ζ!rfipSgbAxj ?^*t;s]u -?t +ӏ_3\ٟMGv/TG.ʟh; #&bów>rG!11h !o>"2cLNdD fEx P2z𮣟w6F5n-xh9zvʇ<pmFKoYH/c_bX\!e4 f$|"zl+i4.;ػ @(OLMgvlq_KBp㶠d.}k3-pKM@T}ےx;m^irM35A~-5z :3p2&ϙMtqv 6@-)?ZX]",' C&0( +5+5aY1f^I^ }7lIB}qbcosV7)ZV$S9ddLhs@5idM2Fݢ6#}:AɯM0;9Rḿi6;5Z/h Gal^y%9R ܩG2Hh \ET$:v%dRb41i)jPEeX:`d洧:ARg&fӥ?v׌wIKKU^أI~i`A&, F̩!o̩m=/xmJ:H*5ٝFdh_]yٲH9D"z9%%KmLu2&5dHZpLK*6)Q50]G YKJMSfǬ:d0䖚ecˬ5+ GeŖ\σgqbTKLublΑKƉ7qlt@؎:,6c$OgtVi#Єs12Lh{0v_jU,OE܄ ֘V!(̘V8hLxPY{QZIVS5i6=.Đie3 -sMY@EJqA4{:&fe]dj[ 㾼{jWdGKM}jHMǮIq[2:LG ᩼!b8fj?CbΒ&ej.Ye3:}ۍ,ibK Rނy"vo5:."35ذ+}qOM1i6( ɰַ S{[Fj:7_=gI}%c}EM5JCNnݐ4S+/1tHȼ?w?hGӔ0-B}D_\ao[j⇗!.H^ &}~&0};LGj ZGsԜJ8.s_xވAyFvlIYEv4eO(Oܦ,is_I<.XS9y x~#>(Cenq_2<@gOM:GI&斚n_H%S/i"^/d# V2N,_JEjK/]is%Mh?m/ijk2L>c.&Ykrn]XtIS7vy,%(KI)qCާ'gzlMO+ibE5%>e-+!h:7Y8AB&!j%LDoI Re!?r VmR 1ǻ[$t{Ѥ%a[j- ʸur.K81Վ<2[K&^܃ -gIAsk4*5NL䩂%aX4Ʉ$3GܖSV-:KH%#Do|rS$CF|N:Kq,ë<0OgrZiA¨dsVRS:{|NӫR|ex%@8iܨI6gjA#d1w8ڎA(ql[N^Cl/%P[?-%:KB7%M^6`{㈮ZI_ c28Gcw65Iye4ల4AYn/vd|Wg4I-E,s26taMeA-DBϽK観Όqr/%[c)EoI;y?M28H'JNM69Ń%GoIٙOFyH%ޢ>EHH7?(%q@Ŧ=>'cw:Soc24|g@Ӕ.X}%.nT".,hD? d2ep?ȦTjcep% Z-58%Q.&SӔٱ)9拧&6dNY:MrAS8%A-5u[DDn2pf}1y%txBwI[y3UDnC˔SZx%M'GqJj'/+  yHMbI%c8%_٣ϗ4`@AdE,k/iqJ"wNR3Kd {,!K87َ0,ax1ɆJSUGIpG4ɄA.Mܽ -K9eaN#591bźIJmDI21J/3HM') GDns4#Htۢs"ݣ$rw955qJ>Swzj:@'K"7Jgj-`=K&cePL%,+xd8&%L[]E.JvHIձ=>(h] ZS~I88!AzIDi7'^sMM2?_["7?멉IeTgj >(㄄R>M2NH"wvκI%ㄬ-RGׄzDv :%<\ۢIbI Yi_p#?'5 !}o;K3mԖEDFR~t&GlBtDMVlZ0 1#ԑ<2ImJmi M8|NB7Nx{%n^m`&Ix-5ɍ"+7D>qpH-\ZlyמS:> 2=V ~|lJ&+N|2lia%22p$zƂy<{_R $Ɯ05UFӈtYl<S٦$hI٦E值X280D/[8ȓ̹t ZEɪԢDXSoҞ7iIa[=5dXa<$?m|S-5I8>eၡdl8i~dx7,LM>iDye| 5bL55=Vw  g/ d17Z/ȜO%#2g=LDId12m;BDͺi!XFISk + 0"ʡibb[$l#UzFC%uEI$1LM2 &#L?5#ʑWC&A+4(]_'ֱ';wmduY|'o_$%-K&C\3k`e)OeԒ$iW2>$O/ dʐuS'eRjUGKضO$F[d"ʡ׿q-5FסfOli0_+Osj:FIub'n&NZ%H τmz4IE^|P rh:G[m~qdIб4ECgNuęK rgZ/'l%<JƁhEI&Mkj:99GGU,(9u_SStDIF8>*&YFI&ck4y0b gމ&=y7;8Ru_351H[/'loKM'#d%n*AnduEQ']B75q2HȔY +jKM\>NvR̈́(Ѝh< ǔX9H&"],iM !3:';w{jP}Zd߹:KY(=Ԗp`>M2FȬGCS8f|}o>&e2FXLKM Q&'w$9F|SdYF%71H\*OY"t䦼:gp[d|tc6gM*~RvdJ`S$hE_Q%'Ov]eH#d_+"9Fs4iZ&G;4Li;b~\PF[&zthS$eޚ4Hei )1R 3N=PmݺIq 9Pkj!xpź&ydq=D9S54dlX%҈p2s?&? `(UnIqA2~/iaK}7I𶒧M"|P7؋' +9Ori-#aTǑ,㱢:^J$5Sөɓ[\˳M24hVזZ$8+ Y%DuD4[سl5Uh2nJH>%0&2H"TQQM$r:qn=SOɦO&c(sJD5qEccwu%(S'QM'W{O  +4IئWD94:=PeX4KM2>W2ДܤUtuבgj"iAMۼ$c#/$~y&dc M2YȲ=/*㬐gMM  d" `KMMI6y?%MD*/Jl_Sܩ,{0 +ΰ=#ʑ){Wkx(&5YZWaŽstJ(䎒`ی+8!ffv׈rm^pId$t dE▚d}r:qZ^ϗh[2vDA3MK=Nu&#fG<_5&&O?+-8"ʁZ(#ؖNyg$t 8FHI`4搏aw78!5 4QQݣ&A,>e#q2Ў\5 4I<_ȑ*4@]c'_q- 1(ㄬ=5y\\QƉ/ҦdxQ!7W355u\YK+Tȑ]"72E\''YJ^g@fmaP"78}/p"C)ZN &%iڱet$o<-AF XuhU9&1R|A\g;tD4Ddkd4^GTZdowrgI:$J[|_*5:4#BD:4ՌAD="XnKĢg6NR njHgP"KD:4U[AD,2>25etRwʗTO^=y-*1ur'?,Jd"5I_ )%r$#7Ք^uh.vydfYLM2ysM2:ȭD A9.hؒ̿bE(+ oG(e eL/ro/(e~\ͲHзj(N/g)X\9I#}YMdt/)2rI Iˎ%MxR$OR \cNUJzYV/u\/*plQ-Xp2Mam\cz[49>^>Wikax^%+<] + , Kr~\ '2t_z9Zڵ&3MGk|QT嘼(e2asB/3Af1sfQaLHnv-,\}יi;58k;e3:Ce4߇klfZ8J3M}ͮeIl],i2QSKs{\L[1Tj5\ 5׎&bfڦnh2ts VLbm*oi23m׺\%֧@$+(^pYV23M^-cknG3Ԕ!ںhyLzʹ]4+d9$47ߜiZϙfˁ5=^Vtjٓ4YB؛^Lz@}\LeWf\/:d%#Q L ؙB +Qw- L=elg vÝk7zYݙ5OzyޙiVr\LDzIZƦZSmDiu-L~c(ϴ :晴 +RsM~Zx虶c\13ZzbVO^4.>{3e`>z9& k{I%IV|L=)¤ϴ˭4Wkagy\տϤIEKagکCO5ְ6Kajf]WUsejڦ@ˇմCKv!jiٙ4^ +^^IDlUL[Ma7[MƏb֗\s5RiiV5xUQӫifq,_USjvN{ i6]/7X6Iw4;^Y6UbU⇴Y8ƚvUHC$Kd^f*Vhe{Y2Z] +Y+^ }j^yp,hMzyњ{}.Ҫ%˝ִCm,M-jW5m0 kU[9lM8zY٪K5MSO] s[zܪ&`g֤{%]/\&[P%'\<^iUi4^^ɋmb<ͱvx*^U]IiɪYj0Y5 Tɪkݭ=*+쥬G'i璻J3)fYnf7},*~˪|z*gr`Vmqs-Uw;*cg՛Y5*ZtQMU֬mftTSYuSGZSKY5Y25ڮ宅ٳj$YMUյpVZvlU/j]Q$Y'Ѫ;ZEI3Z}%G5V9^EZq'U;iզ/ղj͵0n:iiZ5NZXNFF{Z5Y0 ju-QeK*ͩ2[5s%^*Mݙs-d)zYy\5+PV-6Yp4X͵ W򜯗mJ8`WmS8Ţݵ0Wm +Y\5CW4 5v _/q՞>4eC6DGplLڡaj١eU}Y)jټm>\]AЊjZJ{58W̯NCU9 \ s՞ j!Ils-UۛgU[t(䲉g6=h2yYNWkRPG۹ L]}U\Uѭ[ {u4Y=M>yU ב_/ub _,ю+\bW ){ƻTa|,J,6n˯a b#n1nWMf3pqpGIOÊ;і[=U;Sj&e5.(zVwdx0Ɂj2bߴ9%ʖM +u,Hrm]^&hnrJQ~k|C% Oղ}< xjfB})ޭpˣAvG2ƲռYӫX<}rΥ{^PuW:辪=Vlv#ٗM(5^h2./~8#YIٲm`w}w=dT7{&7==ۣ;ZVœ!}S;:ߣM6>;Tژ>Z#1qw)*N)&hlwE͇CuM}ٻ},ZB‡C߆V-kJ⳸hoQ-w7կ{]ZM51eZvG5LsvhV)Smka֔Z8r)y]j&([]UJ?=eJ@18Ǖm;\ eys @n*e@{J] R@3^FLY:ڮUCO /UӴh#tT?򴃕hvh2o@>;~XqU5ؿ[hePM&aaPlfL)ر4ꭸBh׋[@&ߠFL +2Z ׂh0վA땂6`K>W[M{ +wЃS72oJ?8uv+*ԁqC81pF8>2 y284tm 2a KzZ*I(ِU8UZt- +'HV+mhů w`gXC.+zL*NV:jGgַU TMZq_a3aeHr@]ywJ6NG +Qƪ{)V@n%V\MvdPW-N~ΈJ/-VL{ϯaUKMv-^bہYj+qU.Vet>R nSzj*;belw]HOe^I'#G{X JDf׋/ڜzdZMpдR!N,=N׋An]Saԫ MJ[U<G_8XSƳHV^VpUKwkA@QQEYߧ=.iuڛRh^ZP.b^hd.fK@c7t-/B 2|^D W FJͤ&}nzQYh + ᷒h}ʨ #fYx>@2ac@<jm@!ӗ+| $ˑ[4U}jza9,q9':-ן;4{+M5?h &Sjꁦý͌@TLYQ8h~v#WR[)vZ+rל0a}sj/xڊh~P",n~N4trԪ9Hny}S q'vqa]4{tv@zڧ&ǭoP+7sPCIƑZi5ԿJn}=p(ٯjwшPgePߘ9W'B|&%.XdlAtj2ʫ1c[_}j!jV4j^2Qg#fP1@JrftDh +lDB ܇<[ 5Lbp"Id-VKB fljh:c$L`Nc %l~ ]VY 'tb)Ik8PݓnEl͏$/2?f>*)ɵyL?v(Lѝ&YI %vZ C\+ޔdqQX '.9 넚^=Oeu1j6vd^RF3PւBIRvW7(j=PO\`%J+PceFVHX@ +A$)Fm +5i)7Pjg\׈T1MFT+d*Բ&:6U6.lͩU8bzWS6X"q|K +7P [ֿu+\$AӾZ+ syB|c_&[|2!`gհ gU,jZFP_ndfx4r(I~Bo-- GB8Nmeg*l $um%ϕB &FY ߻R\<Ɵ!ɕ$+΅_Q*]8DFB}<ۅ2=k.0VPB^ŭڴc=/TnB ;|1J&A+}zx [ڇVK\Ej0ԐY$pt C`:~ C ofa?\X9 5/e%Pwl(%GPidu1Ԗ7aƒlB7phPZ,-"1t3gL2z]dp2NvRmޟH7̬[&XlJ81:șa' RfIfh+Z>+Hf$ +{Ɍyd_A2F2׆2׆2+2wC)赑̆絑n=7If%"dy^2<}W̤Xk^2<(}W>+Hf󊎙MM yE aCG쳾"d^2ׇI>+BfOL_a}W.=Qf)3If)3ٷ-ey^2{Hf%3N귭d69d6H6yE㼢d$o Oٓm gll +yOU;"dv2dm! +٧yEӼd)&絑&絑&絑0ė%Hf|њ^&adq^Q28(iwKQfgdM4n#I]Bf}9k23;Ҷ$Fj2;dV5k͞ dV5Vj2Dl *R YrhU}Z>+Jful$36KkKf}-exKPf).ږ2sZ,Pf%zM2K:'6Y_CK! h-Wgδ13lEO1~t5'FN3qAc+yLFN3753>I-hfvYd^#g^3KEmڎ3gm8}=Ҷ53 kfC3뗡R̆-,[FE,-́+Xf@?,Lt,32{?g1d̰ j.rf hqfgpY9*l4~F3;bll;#6;fƹF3+c,jf}uƪfVZsY9 7󹰌tY$?DfVF3+t-g6UI']Ic/gA3m͓΍gƦ tgֿ7ۉg&):s3T̰T9zfzBvٍM5rh(rMQ4hj1lΛFԩ%'kc4Im@mtہfɪ4P@ZT֚ޑĶޤCQ4àhDBہf/l4~>6YE[jlހfu$EЌPZrY$4@)~kwVʹm<,S7QhAƲ,K5+/!푏zQ4 Z$2㸴dI3/i{$ʹϧHvֆ43Kk4J,!finHQI5 =fY״D3j;ь&֜h_mY C-sZl܈f'cwN4;G?F4l h-m'!wh6(W:`3fŶpՊ{9L#1\kN3,%saBC3RGif_v#,9 OTHf6ЂfDˬ# +?2{ Se,3d#(,3 {,"t-γ0S̪1K-Pfߨq6dD޼T ci2Chɫv0c 3lq d&--2K"hAfYr ̘ƶ2w N2˜=n;ɬzz$S$3fhIf$Hf2ʓ$4vQ2+:vd7h2C/h2ӌtvNMdD^"dv'Z7Bg9=lF3n 9R6)D2\vY|_Ȭb5I+@fEk2+1+8K;08f u93FYIȖƙpA{Ǭd3,jVs"~u52fg{ŘEo; gA #c-wmǘ6bP9 K^"cvN ccvcҚc# ?1j17q_k15Ntޑ|qq3Pt6Y=1D5u̮qmm]l6lxϵ d6]z6ٓac^#ddVV 3 w=GL5L2 GLS1ϊxa$0fLj1f#=>mØU<(f ꠘ$3%ݲt3@GkV1Ù'bv!eãkΠq}]f{1+en;Ĭ0Qko3`Zs=26-Zsٜ, f}MyQ;B6Y1j1y +EĬ33v^C*{llb; ({}UQ1cˠ,cVҫ}dK[ma.(>jz:q6K<3fל5c]V v% U.G +_CfyW z03tsԬcdԃˤhZG/8fvpí1CoLa n`̖-1{&Tf~U=՞< YL1ì dDĬ|t@\5. f_#JD̮%DĬ_u'?"f1 ߌ+x1ŐGj 3(kg zHר i! Y_<ǩ%4wB#̀Ӛ!Q9 k͗S0Â򩼪x¬E#5G16B'~Fflt`0v؜tO$k0kmf8q.a0Cka>y@h 3 ~FBa`pI;,KXȈk7~G+!(TsYsY.č@,;RrmY‰3ma4x3C Y^at73,Sӝ-a,o0˒=œsO}1Z[ 3;K0;V~3fK'<x3$+ /~va9ɔ ofW#f|jf%8El٦ }̥ $0ÚLz%[ 8O\-њ!^Y2ufϨ ǡp}ԐNyǖ `3 +AV0֛4J`9,Iލ`3> i3`ݬ`l LZ[3KJ*V0ßY3L5eЗ} +fo- fh`vP0Fx\0E씙"&6 Y6Z Sî$ uw_&re>fd2 ~cL9m/ʩo'_&jǀ _z7/Cfw> Ǧ H/##ҧ>).ipzw`/Cċe8m_U|^ 3w3{^ouA*=?a=8 _t +IW0p`/}5s=w);#38FS@t!fZ SkF1o!LA1n3lUWe4aS[TdW8HYT[b=zfJ^Pդ-`A1{93iq-*9Ŭ?J{jA1;$:WskHaTЀdaPhĖ 1тaʠ 0v mR+G֒A:KcGmE̦"b*!5:>1{k/"f!8Ճف @#gZpw etkzmP/7ze`~VI/ht2Gk}2!12"e8Tˮ2n L~Y+'bu e'z$,Y}',IrseaMiA1{m"c EƬ51ƌWR L0f tjØ!ʚȘE+(f/3*I-(f^Zsܻ0fI&o=31;T1{dNOZ1{K1Vs̸5瘝cOp ٤y1CX]cF[]k1K-{ƌQYk1{p,Z`ʭ* DcVKa̾kd̤)5i1f&ܢ5%Z$SK1ۣ[p̎nj7Ԣc6g7Ya9 (rlGnV dT!{ m g|97wRّcU,8fiznjm͝˝c6cvn1;njmԐVp@8P6li8fc^l瘝Ӛs{VgȬLfo#>,UmK]AvY_;l(3Vyl^7Qf)sblCLc)s\"e0Ym)3$r͎2lޝd6Ԁdy`ڶ٩|Wd6Yd̎ (恕y +֪5axm'qx~H՚wngj[njmzҾs̐~٣S,U=&dvI髹q2S>9f0]ruR0liG͎15oϘaŻgt%Q{l8f\2KT~L' {U""d{dFͣm3]Uk:fIIvyǬ@u1:fyXe1@֚uH1xђ@cHf/U3- D,z!ĭBYȬ?oe,![2+}nfzplI,T2c03kBfȤ? Uh +Y_EiM{xiY°zk^2K/vd6"ݢcb)5]+~7#E,q!3>y,JVrYNӑe ș2%y`e2aa"72.+o2}[HQȬ?_ ϋY=dQ"2}A^4d`ћ2s6Bf/2箰*Bf2*^d?'sd0ët}:$3ZY~ l[ YA2CJf##IGm#}-Q2m#qhJfB$3,KKfYdzQ2o,eњ̾Es̸ٲ̲Yd&Td6Ys'U Y dpjBfz2|1#doX+Zvi2tVCfHdgF~R@fl#!3\ZVVY0.?LbhgȌJҚoc2l #GXPx YӬ06xى(p^dv il d֯%3LX)p {=fLB&z~ tfv#mf¼=6jzfCb'xfKz̐GH;xfKz̖|=3 +NYlgl=6zfrZ[=GOF4æ+8h#VͰv_ͰV(ԣj46Y_Yjf @TM?'5 !;/!}"1j-fK{F֌h:m+Y<+ui͈f73'h?h^aMy "hnW9sY,8+;hU)ƒfȄ'n\&k4å (i&ۗi!ƱTݯeH~Uy d@yӚ!'mΞ4Cä@x9Ҭ?"xxpg4C@&>+Rs3livs_ӑf;4 yJ4L7nΕ3.-f_x{Ϥq41vݱfbt(fpWڊf޹tf =G9 ksڣO73b<4Pxٍյ>:Ɗ>Mp WIk4{fOܙ 853xfhGk3 +[9dҚ̈́Kex|!Ь?jIV={fс=؊g +3C]y{6_<3Z2srNj3{y#|jl3{p[~g93<2KOْp83d sf%4 M YU 9AB W3C(b%3{𰮀 {qcf'1~CN-cfhס͆2{*)ff{lNh h!}D{_>kޔGxЯ)89 [˖2:O^T2p> Az(3 Sf{(3 [IGQfrKTy ,3LLBlTrY)Ւ9앣Kr"2,*vϖ2sؐӜdV@ CYe,*o'sުd_/42XG'9ȬBe!@f8Kp*7*!kSkc3&aLZ[3Z?K:f8|c!3xsZ 3L;fm1Ô| u~c8Dmi32we̐3E_ǘ!Y!1gr&y ig cjxWǘ9^c0%(c,l47e/Z lZ[3';8f<vkmqs3LIRY!60,1C^qlarY^rcsg=*'ݛw$ [x'h3lPS095t!b?ҚY2FhmA0#{@e bH[ G/y\b&F73,Co h0 Pwf[FKk awY15̐Q-6Ba#f 30 3Rft+yZ95Kjcf~g 3 +OBWf27!> =8)%N4'a3ڜ`]?_f:JoJaӠGa +_0 Fo 34w{Qf/rMg V y|K̤eze34EG̤D}3<"QQ #ZC%ϼXKSefmX8 3r#E9 }/<b-!cU(C1jr?T2m5=#va>VìJaCV  f3a1}| 5e 30Jsk܏4xLrGTPoL=!<j=`&!z@ڜ`NƲ``ɣ_Ӳp` f}909M@,Z3Ԫ]7g!59LZq6J[f]a=G,aVN`Ĕpl3tALPf LnN0n4!X[3ʁm +``5&+I(š;[0CIft&`&z2[LPg fUTǴ*aoF PÓ0C-JI1( 5 a6h 3e~r06S$d믌#4s,`&ׅP{OBNfRSY zǛ.0څPIXKsPUZIA-}~j(&/5T/phIIQeUkk36E vKi0RfR2Y8Kα̤&9?PufRD0;+ `hN-4鋲fR{qO.ZxfR+rSI $kVL>H In/R=oƩLjO.Pb>n/Z (d2Oj+_&eeRˤ _&%6痡Vj/f2)=cFfa3}*IsRZ3=cC0C["I)A+I_*)y̤&Yk`&5I# +f7[`&"mNZ3v#IM> 5427 +fR̤t#?( +fR{K>%(:%l%̤4`&%;4YY \Qz괄ʔqVLJ$fRd,#$[$0F a&5)3Z 1Pӹ 3Ь?A 6WVmAJ(\09 ڂd-j_qbMlj2*>Ǘ@|8:e2h!r~jD7_Lp~j*Laf=;̰C0CpE ۓ~{e/C f26lnal_fg3D ַ)KrE `ڝfy/CIeAڵd 52;e}" Ek]Zِ.C 11vjelZ %g/o؜]sv4vY-1eelBye 29 5t?wP{Les:}14V 5gv}cʃj 5e=*i.@k(+].  ]&GhSPCRp.NCTŨ ]VeczF.CڰKz9AҜ\&rjasrKk\Vqe\7$ee2yd.YJgtYm`.g{Yst6`=a*޷ceBs.C\[ e(NK s5tdKReB4N ]&h,wfS.X”y\vI8ҟQroV3\Sӽi"˰qJeZ %'TQ[2܂g`ǩ.C/m y7.v'WCannː@] {#2Y.êOZ2CNːfk 3pD׃.DNemO.{OZ3pQpفZ3pYw9,q_\Hj!k^.{*9SdE9Y/NJe KK\|QA.FA_>\`S/a8n22\|7;S![84LptwZ˰k=$ȅeKYϴn٭Z3n6\vHpe[&V\( 2NLexĭ 2=jYشߢ\= #њʤMh-fƨw^YY,S=XHQ,Wк(8߈eje bY39glLnIJ;qۊe"e,o+i(d2rXNlto2INW&ayz ^YӴxe.Wv^v˕K0w6\Y!re3ݴȕG\٤s#Wm~g|is+3++Cd?+ϥ̠\ټGpePV-pe[KodM5ze10fzeԖWWoM~O7^Y܀e:!l|`S~ Xnٌ-뗗aNQˊ߃e Z2` %ElnD<#Dq,+;~,[t!`BpJj,+`iɀeX\yXk++2 G{eE e}^;g,90XY,èl#Zˊ,_-J8 [L^js^,ὲ¹Gk+S9FeOL eO%d7.2Ldg :2,5,e2LlE [ 4TfŲ^JIJ21X(s `Y_+4v^Y2|\IJZ3bYaI=Xk I/[A,#CtXVσ nŲGl/mbl6 +`B"T>yeDݥErh֌Wk}iU^Yh}+ó<Ͷȕɖ>WVdc>p.@k+C0 OA+Cg32"BkF+5^[ +v3?^+[sZYAEke6;U +ZY +ZTspA++DS+ieE䴲~17V6'G[ +u2$OjN+C`AV)i+9 #i'QɎWVAϕaRY\YAAKseފ}y(X{6f2jcMK+ü!vQ\&fe2&'z׆24yTXY_=+ɣΒ9sXZN[1o\j9 k= +\NuhseE5y3;pe}J'I\@T\Y9w +W\YY++"WV$eϕ_/W4;5GWxLJ9N/+C2LFq:׎+CD@ mRۢW/l+7ͯ+ɜ{/= 蕝UK^<\;Ľ>1sex֞suTV04}Zى1^‚VkF} Q7V?y[K:+;_mBk+; !4[ʐFpj994紲"/nV{7Rhjed:UVƖcHf+lH\6A 24=Fk+Ê S\V{ڣ2<iOmlɨ \ٟ5sedjs\ىatl~1`d\ɬ5Õ z{v\: tjpeȻV+#6he8N4p>; 9N+ !kke'XqZ)r5!T~ie}& V~AWseד?Wtњpʨ+;ҢW-+̣q+12h.3kW^h+}l2kIy,7bWkn\ j^NNིs"9E9ogW%>7sE,Л*7fPL\2L2A+[zV 5^ V$^_bs^+C`_ae(l ZYiVXzUƠ[9=(XRi+É!氲|N[e5cMM29fdUʲ8y,/ G`DU5Jk+"ā``eY_|V2&2dcy?i5G]ʸ[v%lK-Je힫M/-@jE4n1iHe~u-@eWl,҈2l*ÀRK*K>j$̈́*C X魲t~y*-Zeih ZU@M VY[ ^Rc?7(WTxeȷTmym\tY a75k0$ãZZ2j[%+yP{eؘC5F+{{3}΂ep&2D'D !:VBړ> qQ+CgAQ[2 pDjiʎogy ǖ#n2lUщ2YsÁe?9xJڊ!Yѯe=KR,?F-0nSpJ)&>9Y 5n[%}jf0Q $I^jj-~U-C;Zæaق".Z8Gέjj^V },2ԾJ˖yl [zYj2n1nYO<5e1]K[9q2jJbu=jjv,wtPR-C ߭[&[2ʖҗwÖIrĪe(%U-CƆU˰0͉<#ܲe'˖vcòee,-CMcfcPg1/-C 422M\5疡q2MY 5(wK㖡uFZe}FudF nY_V e Ŀ_?e!}e21oDk\X2n岲:HdAˍ\Vr!FN.CrmKɓ-tTN; N-e(r 2+\ݗieeȽmSk\-r"=QV.+èˊlb)+VF0z[GPW( ]I~Re(i0uR,]IR3tYTLqtD.˿PYk ]gBҖ.C픴'-tdPC5x.CZ[2ݯ+.C 3-]&۪Uw^ڜvxjIff2R8˷`v=i0C4/=3ܨ .5'!h ^00SrA0Wт`/X.fj7 fK`̘CKn +fx^0^0ãA^ fp2ކQf2 Sm뗡X_GalCb_֕iș^f{`l g^\ R 7 م FS:F6KtԚ0Me/uq"_V$_V lU%,^W GjQ/òDC^V/CK 64Pe8z2{OTbvvLf/鲂Z".C]VX!OCfZ˸De؏~2[˖a@RV0[|\]6wZ˖)Zo ]N`W\< v"فkY.ԡ^˖@ +nUk.C@'Ek.[P@"]g˰r|K{ ˃ Of@}.`7e0Tɸ&$Y2~N__VƔx~v|dܯE o;x Ř"ːH6er3cI 72L"_Vx6j/뫫y~6U|8(<2hzzYbFkV/N^VÛS4`Zjea}(z[Gye#mwfEK|ً&._/~&_Dlʷ(r0< !\Ww9փ_v~i/Cҏ̿s~? ? UW-f6$`=l}Gx[`߁Kw /A2y[iP0[wqX9f fx`xL5p3ˎJf2~iT`A0cG0N/aV5`V&|hPN0ȚtMo͟f>֖0zt9LVs#frKy/>YLVwԬ`&n\p4/$q0C_3<\BJfx,+=vtg=vb7[0 YLO0+/JKa+K0¤*ΛPұII-klL ^6 3k=i*x%j\8 ٸm *!"0rhrZ+aVeX 319 5 +}-Y 09> 3fImAV1LʢNԈb&tzbFp$`LzkU__O1C?2(fk#> /u V }Gd3 3Y)fh9YWtWV12ޙl3RQ)$Z^yS)O1ѣf36.J-D ?[K6 +ҫ1tr}ݜcf˻1 +_0hr345Ϙ?9m3-˘wN(fL.~bD\,c4:f<Uf8LGUa-?dU-BȏGJdƀS9/ IQ3BfȨaЫ3f}1CWLl3 }t9\^5V vX13)f葽cIP+fh4Aߦ֌b3?s~M%+̸Wk1ˇ;f8|ծdžUq ǘѡmҁ1;u 5A fwDb3<ⓠ5)R[];fzԢ2+zբc߇1+tN i5Gقc{h_!Z2Lݼzl k(3y a-#@)N)el A9)s,34~̐( +-bf}op\L$,Ɉ4r"g w'A938 3+P"gvc.rfW@,g w Gk6u8 Yʵy aͬ59B4{Fͬ!YLS YA$(A3;6Y_J/{L.r,fDҙY?w^3fQ)RYM=lϬ5-kYg3CI9xfleF8 ;ʱ:4C'A2zЌhƑ=hvp虽\*K{f'y YyGX2Gچ3; 93?̐q(K9AG,s%jfŹꈙUy [_3;te'v؛ifeJD,@IϟV3íwXG,Ϥș}*}'VNyfg3è\7g忭gs=3Ym&2[3m<3 +YYuk3;138:h4}S4!kT,c-h6#6Y/=4}EV>-xf<<Ӥgvˬo=T{f}-m[lvF,bthVm +"iߖ3+URduLmpfڎG +endstream +endobj +110 0 obj +83429 +endobj +111 0 obj +[109 0 R] +endobj +112 0 obj +<< + /Resources 113 0 R + /Type /Page + /MediaBox [0 0 243 225] + /CropBox [0 0 243 225] + /BleedBox [0 0 243 225] + /TrimBox [0 0 243 225] + /Parent 114 0 R + /Contents 111 0 R +>> +endobj +115 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 116 0 R + /CIDSet 117 0 R +>> +endobj +116 0 obj +<< + /Length1 1968 + /Length 118 0 R + /Filter /FlateDecode +>> +stream +xU]hWdj~VlTdc.JI5%[ddv3l\@%VRP|"E&yhb +Eh+BK>(g&Z[sιw=  w#ʡOfH#9iodp?*M7ߚ.,L|+?Js9NFHޞ#EVɛrŹvd䪂5I\8Yێ~di([fwHpgJVyn-4c/͚%KF= =+6q*>yx'2Qa'؆HU_um8"oBYGa1>2.RO]Fq#1M ֆ낵5U~(LB'emꈪ,wȼhs"LJUNUY} vMJI9#k4Jˆ]J&GF#Ԗiu.r}аqp4bK#94*w[;lv#̙bw)*9*_Ӳh$m^7㚪 J6/kˌ.2lAvVb !y-hZݙ-Q0YۜفΰHU!+W4Jb9$%i5f KOUȤtJ7UUU:}πs.H.?ڒ-2GGTIsaL >nM# EB3z)$|TXnnt1_ ;β\;r70ŭF$$KS&;=վvn~;uIo{Q9 FG\ ѽ( ]|?+ObTSa0OzQ˾i&֐tr0Ca}aBՋY1ho8Uz`PMɣ@x1zVLT\]?i'leW2i4)FYM=.w$Pf<'+$ib$J1PVia6?R> +stream +xk +endstream +endobj +119 0 obj +9 +endobj +120 0 obj +<< + /Type /Font + /Subtype /Type0 + /BaseFont /EAAAAA+mwb_cmsy10 + /Encoding /Identity-H + /ToUnicode 121 0 R + /DescendantFonts [122 0 R] +>> +endobj +122 0 obj +<< /Type /Font +/BaseFont /EAAAAA+mwb_cmsy10 +/CIDToGIDMap /Identity +/Subtype /CIDFontType2 +/CIDSystemInfo << /Registry (Adobe) /Ordering (UCS) /Supplement 0 >> +/FontDescriptor 115 0 R +/DW 0 +/W [ 0 [750 776 ] ] +>> +endobj +121 0 obj +<< /Length 123 0 R /Filter /FlateDecode >> +stream +x]Pj0+l CԒX}q z0h[lE^X gBpjV& +:G:g} +endstream +endobj +123 0 obj +234 +endobj +124 0 obj +<< + /Type /FontDescriptor + /FontName /EAAAAB+mwa_cmmi10 + /FontBBox [-34 -250 1047 750] + /Flags 33 + /CapHeight 683 + /Ascent 750 + /Descent -250 + /ItalicAngle 0 + /StemV 0 + /MissingWidth 500 + /FontFile2 125 0 R + /CIDSet 126 0 R +>> +endobj +125 0 obj +<< + /Length1 2328 + /Length 127 0 R + /Filter /FlateDecode +>> +stream +xV{lSU{i]l[/kbnrM†@l]niױ a QD-F "bL4h+5Qc:b||w9`lߴq(wwĸ<5bht8%8 MGC+߻ь YrZ䰽%]&XO+f60&Ӄ% d;RQ|(^Eѱ莴!{Wر*vewf31qO$|˸gNǣxq#!D}nE;ZьFuC%i3ƯeO|/Wg1i@̊?ߊq0)x"{j\%w6.-s +^^9R L^ɜʇH (i=)܋؏`ONv-%]XRVzbn[T\TX`pIsAyz Psu@p>HuFQ]`Aǟ\PnlEeb&wq=j5ˆTt9:LoU6T#w kMn`kUiHl +^Jrj3ǑF_r.6M)rzb 4.m <8T + I*bsVѕ0m$lB\ш)ZXTWxHu|uD99^gqZS kF` bS +:$QݗTwQZb:C߃h!D6[evYg-ӎ9Q Yts=gAs$t9k\NWH+l!=bg/]StʤmVzDѿZW U-5іTPztEݹ63ee(\FlEޢvWuy u!mlYNAE:=W57ZkPVڴ5JJ:ÚV;#M^oaayȦ Kk=4ҹ:Zi>Y=RO>=Ņw{VYHߑS]zkoٕjoؘ2;Ndw.JsK s?BK{~yޅ|K, +v[LX@zm0]?\& +ZqNչA&[:mάxF"֒픭y,?yac/籅H&u1ebR&;["#y,>ؓyl!%(cH`qCF-yPC}&A5$x辉7rwzt2OGrol"T5*$')$Hw9'T*#lNn~v4lޤ>?s&7T N܂y}~??hOʺF\]*iMn+9)7pX5+bǑzwүS +endstream +endobj +127 0 obj +1626 +endobj +126 0 obj +<< /Length 128 0 R /Filter /FlateDecode >> +stream +xL +endstream +endobj +128 0 obj +12 +endobj +129 0 obj +<< + /Type /Font + /Subtype /Type0 + /BaseFont /EAAAAB+mwa_cmmi10 + /Encoding /Identity-H + /ToUnicode 130 0 R + /DescendantFonts [131 0 R] +>> +endobj +131 0 obj +<< /Type /Font +/BaseFont /EAAAAB+mwa_cmmi10 +/CIDToGIDMap /Identity +/Subtype /CIDFontType2 +/CIDSystemInfo << /Registry (Adobe) /Ordering (UCS) /Supplement 0 >> +/FontDescriptor 124 0 R +/DW 0 +/W [ 0 [365 276 622 ] ] +>> +endobj +130 0 obj +<< /Length 132 0 R /Filter /FlateDecode >> +stream +x]Pj0 +t=,JJ!nK~c˩B~43 ];AWF0iůF+U@|YB$-k8#}H\ +MFnW7a gtJUzH6n$c|nf\׸ZjyF%leT%TQͨdϼ3ZRV^ s ޸ +endstream +endobj +132 0 obj +239 +endobj +133 0 obj +<< + /Type /FontDescriptor + /FontName /EAAAAC+mwb_cmr10 + /FontBBox [-43 -205 984 740] + /Flags 33 + /CapHeight 0 + /Ascent 740 + /Descent -205 + /ItalicAngle 0 + /StemV 0 + /MissingWidth 500 + /FontFile2 134 0 R + /CIDSet 135 0 R +>> +endobj +134 0 obj +<< + /Length1 2164 + /Length 136 0 R + /Filter /FlateDecode +>> +stream +xUolSUk; cu&WƆ 8mbK: +D BaNC@$hL?"/bB u1 rs{!mTV15* ^!m[wb@n.H{{z)+r Ir](zƟm$/"c!(cq(:'2B ɶH",2{p *N=<9R ɧ~/<|ru`ߝc]$'y),! ܒOLqaX-f?&~/0pgp'. ؁^BZтFgPF%&[Eɐ}Rdo6!)Lsʣ| /,ʊq"ޠ(UZE\9c _`8awk~E1ʩ1slt9A؄FXaHFLW4#Pu{vH5Jb.ey Cb0]k mn7|;xL~Bu{T%ս/U1eeGъ"[`K+#"V \^ʝv:M}8s5a09+ڷB-dnt e:'±N=zllBRj9T/*9%Hc4ͦy,f21s)/3199rت4Hߖ"40Kc 鿆Wձ~Kuv)iE &AZFphD(\dK:s;:KFӕ]cB.?ֶr +endstream +endobj +136 0 obj +1500 +endobj +135 0 obj +<< /Length 137 0 R /Filter /FlateDecode >> +stream +xk`d +endstream +endobj +137 0 obj +11 +endobj +138 0 obj +<< + /Type /Font + /Subtype /Type0 + /BaseFont /EAAAAC+mwb_cmr10 + /Encoding /Identity-H + /ToUnicode 139 0 R + /DescendantFonts [140 0 R] +>> +endobj +140 0 obj +<< /Type /Font +/BaseFont /EAAAAC+mwb_cmr10 +/CIDToGIDMap /Identity +/Subtype /CIDFontType2 +/CIDSystemInfo << /Registry (Adobe) /Ordering (UCS) /Supplement 0 >> +/FontDescriptor 133 0 R +/DW 0 +/W [ 0 [750 722 ] ] +>> +endobj +139 0 obj +<< /Length 141 0 R /Filter /FlateDecode >> +stream +x]Pj0+l ťCP' K+GPKb-ƅ.13ð:g#ycc&B +aѺA[wķd(DqpXz ;@|iӫF_h/!.B=t_~)'>N'95 Ԍ- t#2UTMv77`S6FUBeYY%o㈨r j!4}? +endstream +endobj +141 0 obj +235 +endobj +142 0 obj +<< + /Type /FontDescriptor + /FontName /EAAAAD+mwa_cmr10 + /FontBBox [-43 -250 1008 750] + /Flags 33 + /CapHeight 683 + /Ascent 750 + /Descent -250 + /ItalicAngle 0 + /StemV 0 + /MissingWidth 500 + /FontFile2 143 0 R + /CIDSet 144 0 R +>> +endobj +143 0 obj +<< + /Length1 6924 + /Length 145 0 R + /Filter /FlateDecode +>> +stream +xY tוߴZŲh$ZȲEe[,6`f^[4$!]m9LIRL$ 4i;9meL:LN3is(/$M޽{PA!zmiEZm=]7kQ$[NR~u"*-8vT`G&L'dȟG~~bje{'秉 d"o?9PǦff@5a|z֝@m䋀)dB!'{ }cϓW-xn@ +.pNI`! +u `߲/)`̛雴/jJP.$/2I[Mup^*|o$J((>H LL( KB z]VVef(rT± M\k8nnY\A7vΧm#%/IFty=nJH=zЎ2?F{er8|ۊ`Y-<8Sm5e=Rͥ/?ghOGK5V{=/@ +ǛRtcdIB8bBWnM-ܩiL5SkMQhJYXFb^ϷA( bLǣ6ݩa?5(n9x=>Ӑҕx!Oȳ\,I @[r71lbPce,Æy@uƚy Z}(ۅ@JkHT\؟^)$2-tB Z'~Uj1u +jBǁv +yrpFBh$2’,v7K@AAYW =u`$@< +ɝ\P5K +,`f$J]  t)uvQ6ܠeTj^Gq*mrmwyы kwL`Q{ɗIRƑWw8ſZW$,{f_{Bw {婀X8+Φ32ʰYĭTb"IE^](fR鸞U)XQ$tGPDI`g9*ALJEUx_g}%FE@SiX+2Rmx~U&l|a6IUrUj"^\2S\'o$nd;_.K:ݤߧ?piTC + 8OU,%4S,s؀ 54IDG+a[U%پJ4Fg@?;]·zRGlykqkkZ{aVh֖֮glcDxËɆTK]U\SS<1r5\֖oW;nBWj>AECX 7aRd:A$jwzi q*Rs4)5eDv.aJH[H +ʘj6uz4#Zpt}W4VV}qcIDgD 8"K`|"$Pt V!H?cđ%3eNS4Z.DOOLmn:;u3JWCC+rW[>i,ؼo.7[;50ث}_N"[aO,^ +TrZ+!YJŽ +f{>_"D0a1rLP7;fMr (;7x[>ZKFO>ƇUq3Z,M|w98B!úh8|=v}'P5KuS̙SAJʼtdki= q,%Q?pK/ilsXwp9\ʵ>l=S#X 篴󩈈i1~ LfW=, +Œ\ 6b^"oWQzWʈ(XoPKi2Oq$S 9QvjMٝW?Y^h{QH_5LKv n[uݯƝr1GF[p -c9EELƐ/3 +910} )B] ە#dϧGueЙt^yC3#3?;gk980_:<̤6qLEPQa@=JmV*$\d:>FM@){!cHbM\!7tJf:XR>uct!¹ )Lg4*&XLcU{U@G3JV[\N +gvIgælʉΜbOxzϩ˥ݟ[,CTTrglLۙz UhYi*c$R(+.CG "uVh#p#PÕ +cb2U4] +H66jt%1mT +\.0ӚL4?ܴ=th[HjvnhDs߻7vwBHZͿݠ13e~Vde^Q]b2n[΢F +XjI0a`ZceH=u/3Zh הKP]t(N͢WK(H6dtE $jn7aY蕮-;TQ(`):{?>8wmrSkW ?rkݶֽ-;Hp?78Xq|SӮ֕5+:1jm]Ui m +ow`QP +PK8:剔e4npkXеKAQHi>*W74p 7@>v׉ag"O<{ %(};.Hn鯞Bpބ5PoMxkBݚ4[S̆Oݚwm צO|<,gv>~2OJVW>a~<@mn6x&U@=奖H)L* {IK|]1WE q|v`fC .j{wj93H{ 4+̵B bt.Qπ 5DIaJTڀ5[-.ݗw<_'\)DEE[Y KpIrWŷXi +2I"McEAzvf!Z9.4LCv(lo3PrƿJ ~9H\jVa%EGq0 pf]!V@3RVAG)V; 4NM'wn5[ʫ+=he?D&&,´K]Chʩ~K6h汬5<0mB9&Qr&7 N(GRl+Dyq:xqV*Z m.| + +o.ouZ^= ͗h@b\23$c .ݾݰGkss +endstream +endobj +145 0 obj +5063 +endobj +144 0 obj +<< /Length 146 0 R /Filter /FlateDecode >> +stream +xk`(dh\*^0_ +endstream +endobj +146 0 obj +20 +endobj +147 0 obj +<< + /Type /Font + /Subtype /Type0 + /BaseFont /EAAAAD+mwa_cmr10 + /Encoding /Identity-H + /ToUnicode 148 0 R + /DescendantFonts [149 0 R] +>> +endobj +149 0 obj +<< /Type /Font +/BaseFont /EAAAAD+mwa_cmr10 +/CIDToGIDMap /Identity +/Subtype /CIDFontType2 +/CIDSystemInfo << /Registry (Adobe) /Ordering (UCS) /Supplement 0 >> +/FontDescriptor 142 0 R +/DW 0 +/W [ 0 [365 500 500 500 916 500 500 555 276 388 555 555 443 276 750 500 276 776 500 651 391 526 443 526 394 333 500 500 680 555 ] ] +>> +endobj +148 0 obj +<< /Length 150 0 R /Filter /FlateDecode >> +stream +x]n0E +/EERUbчJb, !R-8;k{KRvdѧeE#kZ, d%V[vl"\H]P%cїF;kzb%aV_Rj2:#}&̻EήTNԎΥ?߳!x {EWڜb7yo>ɐV7&*o8{8RPXgೀk|3gg>0w ?p@ {DA \zJ˝.6u[7Mo,h +endstream +endobj +150 0 obj +364 +endobj +114 0 obj +<< /Type /Pages +/Count 1 +/Kids [112 0 R ] >> +endobj +151 0 obj +<< + /Type /Catalog + /Pages 114 0 R + /Lang (x-unknown) +>> +endobj +113 0 obj +<< + /Font << + /F270 120 0 R + /F271 129 0 R + /F272 138 0 R + /F268 147 0 R +>> + /ProcSet [/PDF /ImageB /ImageC /Text] + /ExtGState << + /GS1 2 0 R + /GS2 3 0 R + /GS3 4 0 R + /GS4 5 0 R + /GS5 6 0 R + /GS6 7 0 R + /GS7 8 0 R + /GS8 9 0 R + /GS9 10 0 R + /GS10 11 0 R + /GS11 12 0 R + /GS12 13 0 R + /GS13 14 0 R + /GS14 15 0 R + /GS15 16 0 R + /GS16 17 0 R + /GS17 18 0 R + /GS18 19 0 R + /GS19 20 0 R + /GS20 21 0 R + /GS21 22 0 R + /GS22 23 0 R + /GS23 24 0 R + /GS24 25 0 R + /GS25 26 0 R + /GS26 27 0 R + /GS27 28 0 R + /GS28 29 0 R + /GS29 30 0 R + /GS30 31 0 R + /GS31 32 0 R + /GS32 33 0 R + /GS33 34 0 R + /GS34 35 0 R + /GS35 36 0 R + /GS36 37 0 R + /GS37 38 0 R + /GS38 39 0 R + /GS39 40 0 R + /GS40 41 0 R + /GS41 42 0 R + /GS42 43 0 R + /GS43 44 0 R + /GS44 45 0 R + /GS45 46 0 R + /GS46 47 0 R + /GS47 48 0 R + /GS48 49 0 R + /GS49 50 0 R + /GS50 51 0 R + /GS51 52 0 R + /GS52 53 0 R + /GS53 54 0 R + /GS54 55 0 R + /GS55 56 0 R + /GS56 57 0 R + /GS57 58 0 R + /GS58 59 0 R + /GS59 60 0 R + /GS60 61 0 R + /GS61 62 0 R + /GS62 63 0 R + /GS63 64 0 R + /GS64 65 0 R + /GS65 66 0 R + /GS66 67 0 R + /GS67 68 0 R + /GS68 69 0 R + /GS69 70 0 R + /GS70 71 0 R + /GS71 72 0 R + /GS72 73 0 R + /GS73 74 0 R + /GS74 75 0 R + /GS75 76 0 R + /GS76 77 0 R + /GS77 78 0 R + /GS78 79 0 R + /GS79 80 0 R + /GS80 81 0 R + /GS81 82 0 R + /GS82 83 0 R + /GS83 84 0 R + /GS84 85 0 R + /GS85 86 0 R + /GS86 87 0 R + /GS87 88 0 R + /GS88 89 0 R + /GS89 90 0 R + /GS90 91 0 R + /GS91 92 0 R + /GS92 93 0 R + /GS93 94 0 R + /GS94 95 0 R + /GS95 96 0 R + /GS96 97 0 R + /GS97 98 0 R + /GS98 99 0 R + /GS99 100 0 R + /GS100 101 0 R + /GS101 102 0 R + /GS102 103 0 R + /GS103 104 0 R + /GS104 105 0 R + /GS105 106 0 R + /GS106 107 0 R + /GS107 108 0 R +>> +>> +endobj +xref +0 152 +0000000000 65535 f +0000000015 00000 n +0000000145 00000 n +0000000197 00000 n +0000000249 00000 n +0000000301 00000 n +0000000353 00000 n +0000000405 00000 n +0000000457 00000 n +0000000509 00000 n +0000000561 00000 n +0000000614 00000 n +0000000667 00000 n +0000000720 00000 n +0000000773 00000 n +0000000826 00000 n +0000000879 00000 n +0000000932 00000 n +0000000985 00000 n +0000001038 00000 n +0000001091 00000 n +0000001144 00000 n +0000001197 00000 n +0000001250 00000 n +0000001303 00000 n +0000001356 00000 n +0000001409 00000 n +0000001463 00000 n +0000001517 00000 n +0000001571 00000 n +0000001625 00000 n +0000001678 00000 n +0000001731 00000 n +0000001784 00000 n +0000001837 00000 n +0000001890 00000 n +0000001943 00000 n +0000001996 00000 n +0000002049 00000 n +0000002102 00000 n +0000002155 00000 n +0000002208 00000 n +0000002261 00000 n +0000002314 00000 n +0000002367 00000 n +0000002420 00000 n +0000002473 00000 n +0000002526 00000 n +0000002579 00000 n +0000002632 00000 n +0000002685 00000 n +0000002738 00000 n +0000002791 00000 n +0000002844 00000 n +0000002897 00000 n +0000002950 00000 n +0000003003 00000 n +0000003056 00000 n +0000003109 00000 n +0000003162 00000 n +0000003215 00000 n +0000003268 00000 n +0000003321 00000 n +0000003374 00000 n +0000003427 00000 n +0000003480 00000 n +0000003533 00000 n +0000003586 00000 n +0000003639 00000 n +0000003692 00000 n +0000003745 00000 n +0000003798 00000 n +0000003851 00000 n +0000003904 00000 n +0000003958 00000 n +0000004012 00000 n +0000004066 00000 n +0000004119 00000 n +0000004172 00000 n +0000004225 00000 n +0000004278 00000 n +0000004331 00000 n +0000004384 00000 n +0000004437 00000 n +0000004490 00000 n +0000004543 00000 n +0000004596 00000 n +0000004649 00000 n +0000004702 00000 n +0000004755 00000 n +0000004808 00000 n +0000004861 00000 n +0000004914 00000 n +0000004967 00000 n +0000005020 00000 n +0000005073 00000 n +0000005126 00000 n +0000005179 00000 n +0000005232 00000 n +0000005285 00000 n +0000005338 00000 n +0000005393 00000 n +0000005448 00000 n +0000005503 00000 n +0000005558 00000 n +0000005613 00000 n +0000005668 00000 n +0000005723 00000 n +0000005778 00000 n +0000005833 00000 n +0000089340 00000 n +0000089363 00000 n +0000089390 00000 n +0000104290 00000 n +0000104151 00000 n +0000089588 00000 n +0000089840 00000 n +0000091252 00000 n +0000091230 00000 n +0000091339 00000 n +0000091358 00000 n +0000091749 00000 n +0000091518 00000 n +0000092061 00000 n +0000092082 00000 n +0000092338 00000 n +0000094084 00000 n +0000094062 00000 n +0000094174 00000 n +0000094194 00000 n +0000094589 00000 n +0000094354 00000 n +0000094906 00000 n +0000094927 00000 n +0000095179 00000 n +0000096799 00000 n +0000096777 00000 n +0000096888 00000 n +0000096908 00000 n +0000097297 00000 n +0000097067 00000 n +0000097610 00000 n +0000097631 00000 n +0000097886 00000 n +0000103069 00000 n +0000103047 00000 n +0000103167 00000 n +0000103187 00000 n +0000103688 00000 n +0000103346 00000 n +0000104130 00000 n +0000104213 00000 n +trailer +<< + /Root 151 0 R + /Info 1 0 R + /ID [<0A88CF898839E6FEF1DE05C473000758> <0A88CF898839E6FEF1DE05C473000758>] + /Size 152 +>> +startxref +106055 +%%EOF diff --git a/figs/rotating_iff_bode_plot_effect_rot_coupling.png b/figs/rotating_iff_bode_plot_effect_rot_coupling.png new file mode 100644 index 0000000..47aa0df Binary files /dev/null and b/figs/rotating_iff_bode_plot_effect_rot_coupling.png differ diff --git a/figs/rotating_iff_bode_plot_effect_rot_direct.pdf b/figs/rotating_iff_bode_plot_effect_rot_direct.pdf new file mode 100644 index 0000000..d358145 Binary files /dev/null and b/figs/rotating_iff_bode_plot_effect_rot_direct.pdf differ diff --git a/figs/rotating_iff_bode_plot_effect_rot_direct.png b/figs/rotating_iff_bode_plot_effect_rot_direct.png new file mode 100644 index 0000000..4e98422 Binary files /dev/null and b/figs/rotating_iff_bode_plot_effect_rot_direct.png differ diff --git a/figs/rotating_iff_effect_kp.pdf b/figs/rotating_iff_effect_kp.pdf index 640f1ec..2c99505 100644 --- a/figs/rotating_iff_effect_kp.pdf +++ b/figs/rotating_iff_effect_kp.pdf @@ -3,7 +3,7 @@ 1 0 obj << /Producer (Apache FOP Version 2.4.0-SNAPSHOT: PDFDocumentGraphics2D) -/CreationDate (D:20230227152053+01'00') +/CreationDate (D:20240416162433+02'00') >> endobj 2 0 obj @@ -459,19 +459,19 @@ endobj 77 0 obj << /Type /ExtGState -/CA 0.2509804 +/CA 0.14901961 >> endobj 78 0 obj << /Type /ExtGState -/CA 0.2509804 +/CA 0.14901961 >> endobj 79 0 obj << /Type /ExtGState -/CA 0.2509804 +/CA 0.14901961 >> endobj 80 0 obj @@ -519,19 +519,19 @@ endobj 87 0 obj << /Type /ExtGState -/CA 0.14901961 +/CA 0.2509804 >> endobj 88 0 obj << /Type /ExtGState -/CA 0.14901961 +/CA 0.2509804 >> endobj 89 0 obj << /Type /ExtGState -/CA 0.14901961 +/CA 0.2509804 >> endobj 90 0 obj @@ -621,420 +621,268 @@ endobj 104 0 obj << /Type /ExtGState -/CA 0.2509804 +/CA 0.14901961 >> endobj 105 0 obj << /Type /ExtGState -/CA 0.2509804 +/CA 0.14901961 >> endobj 106 0 obj << /Type /ExtGState -/CA 0.2509804 +/CA 0.14901961 >> endobj 107 0 obj << /Type /ExtGState -/CA 0.2509804 +/CA 0.14901961 >> endobj 108 0 obj << /Type /ExtGState -/CA 0.2509804 +/CA 0.14901961 >> endobj 109 0 obj << /Type /ExtGState -/CA 0.2509804 +/CA 0.14901961 >> endobj 110 0 obj << /Type /ExtGState -/CA 0.2509804 +/CA 0.14901961 >> endobj 111 0 obj -<< -/Type /ExtGState -/CA 0.2509804 ->> +<< /Length 112 0 R /Filter /FlateDecode >> +stream +xˮ$ϲ5O^K[3k3@ x}3pLve.U?*~177G:'?~zI>_w#6IWlQc?E?gw?onrC.W/"#|'Կs9q-?oߩ[+gGowb/o]B*]>z~1\Rm9n}TfO^kjn߹G9{k-FgZ>zv) a.n8o}.UjIk VAGk?R<?zg|rQ/SVMlǹ4,sV}G/6Sۇы ?oы ?qq|b\dis=\>zx*-z'/6UzGы ?ouы ?ocxņߟj(^>zsln5lef^VM}7Fv9/4,B)1H_ҷ|6iF[ ؚ<ky䥖ߟiܿk +GZ~; jy䥖1hC+0-O/&Z,䥖߷ey=RIr<$YK-o'iQ%{"+<RJr%6oϟ/01GCٷO^rYn c|"z>哗ZFj{W'/9,Ⱦ.#VK-n ]WbycL|R˿Bg[$Mg^>yaڎ2G-O0u2IY;K-n ɳA-ϟPQGqZrN9Fޝ-ϟңz8[>y_a)P|\>y_ab^K-r s=_Kry[z铗Z h)ΖO^j3坦,9kϟ/g#~{JӞ?y`}r/7U/k:Ux/nwN)KnC,yuv7sav#2={/yo^jwVXc4RJ.G?z {^jwsV߭-v^jw3VC,K8s?xWE(ʆ/*e?t +3#TG%iv7_}KvCkxRyady|R`[:ZluXo:ow{_j]ϺvY{9ڵ?y8eK[;bhj>}V#;]xݻ?Ҏhl^l`=HaGXj>҄^l +r_ؖϹO-u x@x?~?~?D~?~?~P&MFJFM)T3!L3!D3!<#)43!,3!$3!3nSgCgCgiэiiOQiit}{1^pfq<:zskҾͭ)KNo7e*{ܚ.zsKbҶ덭H7f!{k2_ongw5i3ܥ}2}_onSw5;i֜}Wכ<[ӾͭM74_ondؚ[5iivs[nݾM +o&Bj;Sa+G +r?Zz&ީO/'1>9<_ȃ|<9_z60kz1$rhr˅|+)&$ɷir~[|' &״whrw|+&Dw2irp[|'&Զɷrhri|+&dɷX,irM_[|'&׼wޱlքɷ2irT[|'e&wr~o2.M~d&ʋ{-nn򭄸w\&Ʉ{-mnw\Sޖ&}{-mn򭤷w\ܖ&v{%mi4w\ږo{-mnĶ7&h{5miTכRצa{5gmn7\Z{ϱfM Fkz;yj ~%M z[[po4 z[[oo4& Fk;n7M Fk^; no4& qd[o/)l +F.t];Ilo7M|4$( Ov''uԶF?U~RBmm~'ӶF?Y~,}Ojmm~\'O*~H|̏і6?e~,6?cUx -M~X mmgns\K8?][Ώ֖&?w~6ck-M~XVmmNJjk@?S۶XGm[a9=GldY׿oW&gEݼE-ptRIr.9|oR8d`'˷V38HVRnQt-3)0ae97$V!y(/șd.#~{*lUj=O"u1dO]} uj66^Sߥא`mCnw3BSͥ,f2g~zdY7J0b܊$_P6%nR6dYk$GGGg&ɯz)<LJMQWܢ$&/=g hNlM Cq*5J{Q1ʋtIk&owҙ$h2_PziQ=P)*}M#u|cDgaNF\1VS[mr[y<`|ȭddkk\!eQƵ_R6N2Gj +Td,"&ˍk*ҞsȜ?f/ SJ,eU.ՖryXsvIxo%J'ɞJf! XIv2CLvyhTZq!- [~M:g*WFpĜgwRU Y5Y*lkH~*2ȩgnbeVd*TQ]+_Jb6<%Ef>ylXe'&*W+3,>#5[j/2u+#eջÜ˨e1ګ2ٍvZm06d=62f՚LҧZe*5SL2S,2P]%TdA{a9d~ub! \)K`ZhJK缟0.o P`O>Ų,ͿWeT)_cIn%=Y-;|~pM&94UMtjb ^,r&W>ȃe~.6d4C61[f]<{.Xy2gDZhbvC}hAäVO-bk +F OF=kw2Mu%ikiJUuz$[s,ƞ3MFBiV}3Ș{Y>xjXq"Nh8{bqj}ՈbΜՑ. bz`qx+;m 85ƺX{v/2Y>ό'#A$Yl?VⓋ\H]cQ)ExZMf8zb$o]QzyC#?D1Wd5mb5`&lJ!찙z2_HeO$֝|fA*Clh_)QɐNd}$E?1fl;5$fpڒښhSǠa5@_Q}ސkPMt iPvjb6`$v~XC&V1Ltɝh c?i+{YSqm`ͯ)kOWTr%ۯ%fhe*i:^Eks뗅CSv+ s0Y9:ituyAٯ)=NnԾ' |hU51.eںk25*5+[A7X2eڛ:=FfGӰݖWMRW?tvvRjE& f"+XgGwm&d"+iA&vE +K^Van"ơ&[}]^_ҡ R!k` w? +{~M=O+2U85w2lMkm;-"b9G2*?0Zd^t$2vICM2٭V{1K25f!DGNlwpd=rNZc)v+U[WM?]ЂJ`6UAWͮY6@:ƟsN-乊e{.Ɵ/* W?iً{oȼ!Sj*خXm=Vd-o'ü`NMCc&Uެ \|>U^`Wb{G||2CvMҷR[,H1M*߱k2騆 +- |O'4^{'6\E|gt5U2dֱ] >v0x4ud-K+;N+MGx:v+jq 4t~ĩ{R5l]c)t&6 EpQ`Ҙj?569WI /i:<^?G>VdżcذjlG)lת[zn1ǟ9]]57쒘ށ&qdբѤdIL6Y*pθ}YSM^GP,울Z kFhb~N-]SJXA띬pb_!f)vnT"Wlq-QMLhbh5ح 񌧎8ԋbHR +M6M>tS*5+FU5YχX=Y5p0'XLibr{\'0kRK|ܛQ_4լ4y`"3t95S#@FjvMT#I8ȴn"?$GY+YpJϖ>nrn)u]e#@QϾn\Ӊm]0TV[ /&n}Mv !%&@8Wأk$;`NgPpq*G0/ܩE%`ԣOF8wZ3pZRMg}Їtֿm%=Hv/s#4D_:~T'BõkX _Z@127Th Z~&dL"iz!hל|jR/g6ځa8D2}c.㬚LSMɆz0sbp%%l^ $/:KG $KG2ne4hhE6wOn@8=h0t(d.,eI'-b_!A=1AJjx:-UK~Sej=C!(&d=+BkL2)&e')4<'EDh9&+74:HZyV5V,9˽j{A#@fO3$qEV;Yla +*Ҫۭ8!rw$qޘ#4x0яO:E51 qO!8dD&VYvwEN.c!TԱ/[z{bdRTK {Ġ +>Yy'EQ5X9{!>+ό&\~Wh~ʏFDdpkQb{5M'3Qq9 Ҥ VIBARF{Zz4ۤ;F)_#}E!^N'OME~x A+XbkH`V-O1B*2F]1B|B#nhXY52K0)Z +#!'dfkm.?uI`yV,gcٚ0󻂄D*#@lÃgpQ%w,5dAV"?|/ÎZCމ|[vG &B^wE vyZM(B4;U%olg:$\~2YTHxj *eBʰ / ͚DwKvˇb1BCv:M!BqN&F#Bˎʛz]#@(g[2Ј0k12bwL SZ{@&Hd&ZD5Yz7{ + 3AH_ ~s –m;@([aS1}^"2vGFWӰieE1 5?ANd53\P- pb|)Br{3XLS7vXb/񳰰!0)qOwVH^B*QO!B1X]Kxh jz K=&j\L0ߺ .+DHs+brb-L!B',v̟ / щ!.[q1ۉ\nIʪaZF BF`GhvɤB2r')]DFH8 $ A]4"O6YǾ$-Dhյ!{@Tc OMw +J`H,JW)k2hc w]7*"CӠߎ1qlle͉SV.`!Y"8΄ sEEdhY !$tgP-hWԯcBtd #2αlB&evvE3!&^Nٛq!dLH]oJr20#5W5Dw!n"$R +"Dv!d˜f >C r(&9ѥI\Îl0"ƒlNx!Nј>y++H"B*?CG4S­T~zpZ-^!<QW2qTN޺XY}O bIew9Kw kBcCŃ޿+F(b=^{p + 4=Ե#d`µ;F( Lʀat/ _`g +^yrk#fũvL1Bi|77S?2|at6M:+j;!]!BAuj +z|zQǀȀ޺kwP؇V-k]5b2hD4h,^ѝk$_SZH+!kCC + +ğy.]BdzTR`މf1دOc?GyRmY)}q +)cATu)֙] ny(W'GU=NV86Fpٝ=>96quJOx<&㰓nB3[n+4"}26 +sFfugdO |V#{p"ᬛ Y +{Ng]"/ZeS"T(=tq߫MİQ YObg5WOCv#bJ%+efhOwP>IYT4D-20 +g Ny_e-cq-20H-%#]^RQwZ|;#wd=nNfg š%Z&u۷## YC;v9Z6{w$dfX7+b'DC2>_uڑy1D3p=UCY(%M;V'S-bot̓LvxHy2H.;2Rt +A/ A:(LB&:ѡ/Eyu +)fb٪ؖRHlN)bSJrhF+8j6$CvΏoG D]GAiGQmg`Ne֢xElg\tM%+ՂtT= +i/A9X$7BqM*Kӊ9(m*Eai,eɕ]rݔI.x cvHW<2QU)8UQ*|k:LDze JKW,ѿfmkg(Ŭmv5#q_&NU3~3l5\L ačl)zpiHB2Usx=Gijm}Lbp;FqGobwd3b9E>Jwyw~C`X }C@ƙvߐ| oRcoHg`+M~>t" + 7Y-L(d\KW K~y ݤrݐ"F'k.]Q7MùLPJ [@E)ЪNI+.r}팺^Lw=3 2/H#py ASs( H_1ۗ.gڔfg:+2KnZjS{emߪwLB]8z53xK&DQQ׌TJ K$tB!UY4,5Y@F~쌐AKT& H48 +AJ2ǙX7D)18tSc89Ud+6FBBSg6)$Y$vl HE!dfYc$L/y8^Z$?[!$bfHsӉ:i3L] K⊉AMAnTwD \HWD &|י̖ѝ¡֫KW< e/3q#UlbwvF u͒*9?2KžUݼLvqXE3+jg)[a0T +29duQ>)$Ͽ\`*%m&HR')b + "AHj AD;A%xZfd~AE<"EAx g(8ۋҹ*7gg 梹|ɸ(Y[ {AMQm]tL%fX+Wpy]V?+gd/ +>4;' +;ԂRuWo  gv-;3fk)(RuT:2#k_!TtN׽~G,f@-+3w_~UO. ғ64\+UG3/+ n, }.j}D J%K^WZ/7UV_B +\1H|RHv3Jan|5}l%7C |T9䫡JЈLV*yA_&NWnWhVڛWh}vu:ge_ -)X}m+4"c(쫡q^s=WM)RB&f_WHZͿ6Hmk7 +nR J drjwaxh @[\WhIs 4ӯ-`_ɤԺk3JFttYIƺ+۠&·WhY⊿}ZWhYX.g_M>k,+4bP._!ջHLҝ4fE$-7Я,(@+C}ѯt* C+4r_1cg_!}~6ZԈ B7< +Tc QWC vïj<+jhŢ޵ [~f=~>)zZ7Oz_Nd_'¯(KoJB;/WĞЯ*.+hЯ(+BB~thif>ʾZE{'gc_#}&]Jz̾2IEv|>x}&[Whd`e_0¾B#P +`, J4FF¾V uFZ + f]nE_ wYkwe^KP@ -+4b3S?V7jNۜP q~6n +BxF +l+sؕ{pWjG]į{Fz5]W%xP{5t-|5דuBf-+4ZbB٨ + 'ZWhWJ\ڽXWHUUWZurfTC՟|FΕ|)g|9fw7X7JǪ+4j ;c!_zk9V7jYԈȵq"BMNjuA 螅|Qn5ƛQkV3 +y8;j&_G YW-Sc;VwaZ!16Q5g#_ =|:k&_ MCDJvc0}܎S e'eA_yWH؃d%Wf\lXW8zc? +`܅m'}vtB]W9MkF_4gF_ pW劾B#DQG lhKݹr ++5|a_iQRʼn \¾ʰh1A jdF2nf_!I/xd_ &e-R9+jyn+\ofb8 qvXX>̾GiX ]W]Il]Wj:1|M L6 n>.쫮4_~v׵隣>I+4ȣ8kf_i[_rnU]-(}+3ba_Z^)+ +oxd^5--yEeodyQmf^/ɢ#t\WTܺIW"6v3 +Lv 3 %ˀl|_W;ļ,W[YWWvsgƼRTf蕞#d4A4S+'azLp@v<-+BݠWei{^Qe4^Hz⬧+-ZxM+^U Jge^a%@~¼b=!ߵyżCuyŞ"3l̫ȲfiG5*\ZW#ɼ~j*/yU5^ bxw Fx0F)ȼ %ڭ̫p-gc^QFM:53*Ljiؾ71(3dyUMg)yEVZW\Aȼ$! ˺ZWUɮīC#8GUXr|?WZfbѠ7̚&#s_WP8i0押fZ&<Bkz"dE^)I;YW]٣:+ +LտRtjwxEm:YyWd(37Ms BxEL?' xUU*8rmxU4O +G.ަ w dـWdDR|kU]*+-zDn7Yx J"$gG^BqrڐW- m + е;,Ļ^φRzV{A^g#^THtrB*Z XW8+# +H 6="PU3!؍*sA^ u牬+;NZWc7s(=xsxż\OFbtxg !+JM xANʻѫVU%J&{+N`̚wEX7QzwZpWV] +VȇUpWSc#v<]Z 슿f"3Pڴvp Mt+=vc]E pƺ"'XxF8gtEnBUVUDV-]i%]efkgui #*kɈ-UuE]) Iڍ' gG]Qpgn+nS_ʺ"gPuš'åux!;@ vqpaM+̀b~vU "Rh)fUqm]a.p&vE%릸6(EdB7î:o}@ vE'~ⷹ®@="bo+- )dсZv%\euB"Ozbi'j]yЮPrFK6 pMiWQs࠯vt-1d/+rl+ +s4#*08V7Js%kwPPM~kT3*Q%_./DGveudH.M%a]uF@Hr+J"`'̸6o=6ܕS%6zd3J+B]S3 +ָ@+s5g]vU8RvEջ J*UV'2UYXFYTW0FW3Se#h-+uhk y<+J M+6ZmiW"mf+N(Ό'+N Ӯ:\iW(}o]Aɢ~36ؕ\RK4(ε va+[Ac<®(I4`b3n+7;bwԕ2^XW2sxi/eb]KNy<6^bŹvU{[[V֕{Wu5(`'*1N+cXK3R_B6ؕpwؕH_ ;J+X~N +òZ%&ﴫAM0'J a|E`W+ذӮd'<ЮݧӮOtJJfC ]|f'찫vWOaW$Hg6U`W [ +8-[r]i)J;=u]^%z`] D W*a 3@늘Z+. v%o&称+403y]XF +(eXfj\98i]I8S6UCuDv%$i<9u˼_@uE+$8˯`-+J3qg]qxu8!ke]DΌӓ6^Pn+K~`]5ƺZ?e]htˆrwG;V `#v^ƺj\'jA]r,2uEAw+ u%V/!,+SZQW f^uU)0`IL; +أt҄Y8Eͨ+¤)j +q9yV +n쨫8R:>N*z6ҕlQ@"%w)XjhSU;j t%@ .VU9UVUpi&]%i+" =uEj#v줫h>mҕ]VHWv줫b#]u@@V{#]HL,|IWY 3Ux@]qӝ0G+dUw֕LLq7XWU+6;ʺj<)ʫsi]iG]ZY\YPW[PW}?,;jR̺_~ uPWÎTPW a u%4HWrg']Fpi!]5tE#vw-jtEtqN-wup uUW uŖRUFRJͷ; +ZR(v +٪+]Z@WKwUֿsՁ6+1m9Wpi\&`Hs5X%-+2,sEr!Ε,s=bgO1Wc3`צhsqo|<ߞvuÒm+zU3YW|UefԎ,L6o+1;pC]Jn8p9)X jmŧ ep:XW䔮uŸ/6w9YWx6s#;Jf76֕13ag]q]PWcx5GV'oOIWlIW՝YȺIYWuy[J~W7#*S;Ү~Hv=؟Ӯ(isgFbc vt9)vL)|]C]Qy'j]5+*$Z-+6`WQ) +gI;J}*rVU 銱ޭdRGUm!EFڞ0xvU +Bx2.U+4ZTtU̕toWUL\vE#PEJ-ee]=𵳮6K ^YWE+Xqu2( +yjj+Edp|+ u4@) ka]i1v+7®0!d vUXz+ +''S,&zLWUGAXװv1h B*\whW(Ck.}+Ӯ޺֭+BMd+m4IV w]1y˟$J$ךk 0/oJ`%T[hWtX(Ҵ~4!%#Jk> vE>_8g1Z +s,n++mU(j+BIVx] )þ;l]q= +7+Ү83BҠh|=ٵvOͫ+9u>]oX!vUzpvU4euiWZ?;xhNo+ +`,?;"$j8]k]JH޲ЮuvE:vI^(w]x wŞ DT2gi]U"c$ M+B`WV8 "T vѪ,gFJgQ֟voj pm]KvEr/M+ ⑹@ vU)o+PWvE-y%mW5fՍp&O`WO`W +w xP3슜P k®89sq\`WaCh `WVVvEYcpvEV,-T&U\6< 0 +"|>AX՟60N"'cv Uc%2{+JSl' k]O)Svy-+ʊ՛i5{+*Aײ}%^4ܵx <>:+JA]WݗpwřW1Wλ\5bNwE#y餍wSZ 晴$'ͼ+h)MƤ{XR6񮈹Q҈P J$gϠ[yWT Fʻ‰<|ώ¦K㮈d8d]./b$wYbqC4Ѯhbd] 8pm]a}]q +&ӻ6TaB"Z vՕp'+-ΩMn-,h슽ƬvpXWj} MYW[J󩶰H +HL8Пu5-ۼ)#ǘ;+늀 늙DN+tĮ®(AƊZ`Wuҕ{ jvؕ4մvR(\hWi9\ڕ@sm]Vy] .ƎBY .M+p]mT\{z]p̂RM!Я92a ն3 + 7z=5*>:v,+P;қUSTŶ:+ ǽ-9i^v֖YWh<!+DQ+CTt^y xVd^V\j +ML`kWd"M+?]Gz]%>(w!c gZ7*!3AgZ=u{]|gޕRd NyyWh,wK~XxWh!g+$=voWhk÷ۜWh꠬ xF9f初WHIObun&^)w)uIB+A`ՎXW y(RWhbNx'1LBDžx2dvpbQfZ)DB&rD%ӹUYWh<|&ZSI{ ^)V@ŋh+UUwm\xF3*cB&Wʸ!>޵ ,iSM+ +;64&S'WM+4YWyVg!^E-D{C3 + o"JAO=d/Un xW* x6FW\C)fvEM:h x$s$j xhG`d~Vޕ6M0'ޕ5]&ܕ4Lnק`Zw5yH w <4?S915ѮkЮ/*Ю g,ÅvjSqW w,]!BPg|#[T.ܕBaLfĦx{|% g3 +NRI$xL@xL*^.tQF^͑)K>2ٌ;#s]WUwWW +HRv0E3DZhG. aHGObדU:0YSe3'´ ppd"3*,/,͋$ۛAYdʾ"k7(U~P#k "ɺRF VP=iX( giy ( gfP" J +x(P;(\5ˁI\AYHTҰxeiU 3̶ *Rc:mΠ,LAvBۂʂqH>5Z#*ةphςHH2uٵ]Hj;äfTSķkFg+*bϰo *r * f"E[ -,$Ʊ Uʂwxǟ!XʪD uU ŖU˷A8dkeQTEhX}Emӊ/JD0 *A/vò `Wbg饗X[; G²*66ò0?U_aYɣi7,!ٕUa.geUޠEumeim%_<]`Y o`Y^]sei?n,܉CZNAxV#Z@\IҚhYPz +- ˰:?-@cjfZYTbt*EBsx b[0mXh4;,`e]+ ʂ:je=Xh5Eke].B*$ꑿL˂}u㲊:*U%\V!>ln0^g\+.K4V[pYb4jDL跣^w\NmeIb;j!faȂaɶ1n2Z^F +rYĬNM] ExǐG  kELy]Y@` 00Lk4JY0} Btup%rmE8~kvmfqȼj34 :KgvCy!fhV戒rТLAY[34]c,dX +¥ubl0A:c + vu8ef \Ҫ<]S~6hN!ï, k<"FњhVW~OzfQjyn,*oyfQRpBROXǩM,0FXYU7Zggfa0)7dVQ9dfV ?+ݐYZJ6fƒXYJ[j 2 s|y 2KW?ZY { S4ÐL 2xNөݱE)j)똌6##4"t#fb^5-,柄𮙘rਉ%̶\,bŵ IeĬfb{c-yR&b3Eum"fQ +b"f%fT) ]Y#=kفY[i40 EUIEe^-gee}@n,ղ؆ˢ_=6!llihv%8S6XFZ`Y/O`YEh9e++(ɣuò"};NR9'E3' M ' ev^ɺ:r%rv,ðޜ,,0NpViE_>zlo+(ԭd{oPFF O] ʒ)uHAY%!7( .Mz}L_,@|kΤ,>E_ͤG ) cW\z?ݨȣD@xjFeɭdTzD& T։Ǽ3* ['-'T +` (7- Ď'ZV ʭ,F00Ă҉<ٳxpKV . IôθS 3.+.,!R\vDfe5xY}ЃU]޼,4Sf^b;OhA,(2 ̒;4wYYMs07+,L30 @qފjm1P 4W>Mդ2 %mt7&,:X{FfiyN9-,PWgEf%m0ǂŽSc rn_Yg%k.?j,̢Y QBbnڅFY(`brUYӮMBNzY] e,q$ԎZNa^g^J3/ ~d޼ Ѳ5y^yY T~ /KS<˽P(fbe]wa]yY$Hkek.fZl]Z0&4Ӳ2pB?]Ҳ!ciYU7te +  I- Z֍_Ѳ"aL7ӲthYp03XhY]fhezL-Kz, +h!+-K˪ ^zӲntlhYςu7⯴,YhY6-l&ZALz㲰je]J5 ˒HO(,< "в`4:_hY1鬴tK' nӮW\Vb&\֍+tMz㲀j1BBtqޤ7-Κ$je%lzeDz}+-KciY܇q޴,s>ɤ- hj΃+-#8ѯ,2K\g޸ +a$ve5#%ka@w\,,,Oo͸XyeaKf=5ZzjT,8cu U2&Z.rQ-+5Iiea_2L˪ѷWԕaf$`ݕuۤVJm~\xYP /,֔7/K\8,T?Jke) W^V' pY8u&քB)4HZ. xseanV^\ƅ$V`VxY y` /K:%}ke!aaae]B-/ 2Ke+0 F +ZY@y4 +0KbW`QifUgVb6~LBκuh ++1q߭,y2\Y21 ;ِ^ob3Kػô&b +/҂4@`қuML|-,:s- 00Bbة kSgfi:lfuNVb%Si"f +yv 1 ÀT 1 e%J 1 WbʇgVd -Rod!$LmȬ2q 2 G07m-̬ dţk}2 RiAfTL,6'-b!fU S1ZkIjfI1K\!/}!fa{%fue_-,y8̒94e&f}o1(\@faJa9aVdV~"+d~Qf4!WiAf0`Jzjv+2KaiEfIG7Ԃ̺` a  + sY0ͬYVVdLJWdVFV@G+2K^p;p d9kEf](TFfgn% +2 X N߷ ,hWdWiFf +'H5iBfvmY2n,Wq5 +rsX]Y2% ,$[Y/ ̂&sWEf: Ȭ +>c[Y*V23o]KfIMYYtD-,e!WhVG]I4K&dbfpvX@~Y8Sd]pfU,) ̬U`fr!oZYFiefa40.IȖZYWA.0Pߑ̒8zef"ꖙռT@fFsDD̲":a +Ȭf#WdV\ڭҝ,|Wb7,QNb-,JjӚY'5#zՂ𦼙Y0Գ<{df!į;0b1d1U0s^Y/Zu@f]ɵr@fAj҄̂{1u"\MYH)/ cb+0'b~YnfQs.̬"."k2",uCfgΙbEf,pO,,г +X$f5lbV>p1K$<c9Y~YJ0BLYRW(R+.eiҪV\5ZqY;Hkes]yoBW-|pk{;[hjӨab2`:wZ~!wMo_ޟ_ft ~]Ghf͌֫EO b#Kɪ׎@TOEbH<2~/Gyn'/#w(1U:x?''M_7E`qJ5/7~[\Ȳ֚~ӗο4ʅbscɦrFHg`tQ2Z~˗np=Aͺwk-Mo)%MkO_nQp’MO妯oG-z/7cN&76}X5/7ctwf?}p0Pez/7cE-O_nG3X.z/7 ``dŢ|Ցiw]Q}ٙ&VN:4 \@Q>#@KWׂz )+Р<_,z84:$@D;nDr*Z`޹ R-4esXZwR.N_MT; χkg +ߦlwyakQOtu3l;Pٗ8Hmgavuȡ|hGTӰ?w(kWMz7e<Y w1ޫ,*JKG˨L;.HwI4Pz.ZD&=%q[7 9U3-ʁ PoB;1sjQp]ʺ˥l2ܦ*h)&th. ̇ $: ,RLWyw13xwRI ޕ-J6`dڙw.aZ}wD54L;Giށ3.:H BL3tJG3HBr?;ddmLsV'vu5*U]uLMJT@;KG?- iU9x&J3ThU!tOv2= ]ƅsfT(<"~6XxYU80<ӴZjC3M"XiIk9A}PRZ;M*JAs~yxt.hg"xDF3I' Ә4\<5]PD4,Q=[(՚$FܟMs4IY6v +˴3M> ^ȝ(bŒno]]g~+hZ3- hLGcSLQ\OɓQM'OB^[w'[\;B.죊Ra4@vTije4 pSc\L *,O&UG ;y *uiW"b- sFЖb&Rک<ԋw$bfs˚Vi^kGy<M<Ӏ "k$iGMBQ f,DަaQ.bطtl"Ye]õ3 k} (*>\CsyeUJϓ_$/4Y<>I\7A~Rz$m4bUCwWܙ& ~7WreÁ(nF,7\׵#(r"ABoŵOap+dJ4@ɨ忊11MSg1mL+R+Jӓ[k9n?rH`^9ߓ7rb9Qϴ|z )>#֎r|3MiN&Hl_uk`j1{&|=sՌp|7o|*Y$i,&5R} ><]N5q]a} d>y3Lj9~RYGIXdK}h򓅰|~%2w.CfOV&2TkJ P gf@AcG7pU;rKIM4}(4G)3M"H1ƆS3 BŚ+2 (e3k2Ih$k& iͩFy-E{.&+rY;ŽU#LBl5hCY3RwV1v5?=~i{xZw_I"3?ĦW,2Yj$RX<%(K^=[a?x0 >z&61 ߼N$KL6dW# 2Fkϴ?hY|g߬"Cö *RNO$nȂwǴuFi@E65U;|\Ci$ZW5"*ThGMCt20wMFi ŗTpY^RM; |ČL; gа4iH.jB;#Ypx|g/V"ߠ%%\/2N0Y bDCoN@)H̿V's/8n (_9=r!G*)CiSG 9pL+ֹ>I \L>_H|w2Y38I=U^?.ڍibr:8!ni`׃v)\\BSwT8>j 8вav35dmMӕvޑ24%!@A. +NS$>7֗|ݔ]M >~C3LCfBD5͝ Z*حk2:r+9#'dG@VM'_HZȍ4$0"!#]YiT2~u'PJL>IDPIG 1]e$׽i؃\X|@A3!>Ӱf,L∈]g\LC~vQ™)?.5N6 ~d<8^ٝ$q)?tKxM A>rVHTSN%왃:r~H?.J^薞hyٵ&SYyMa~pmpaUi?'m iVӤYLq 05BU+ϴK5^K4| +JԿ,l! M>^Dn?wTqe# +}⒉udF vl-5 I|Y_]ݵdRo~ yc*\2Ci< ߇H]0L3uF l3I+41Aor8a鷌l ۻe_ z tzB&؋uIDL".:!|QK 56 ݧ "HM zq^SOv5jI3k)ޚ,%Ry+>F!QOr26Oe $?щ̣ ~-v9HFb5ٽ#-ٌn1xKd5q g~-f57@|ORiAHI\*v$Li:RJHIuIs Ӽ>L+:\7 {R6ysSM?LT4XW7H 3ZS45 I\MFFO֊_F;ٴ7(!H98 %?A$R} 4/ZݙȗZ%殠ч>>lZ\/gB|HwYXMCD,jsO&#'1L^ +orF [&o5gMA~%¼OHv]A:rQbZ$4a@U&sU +HAҸu~H;~- U^o55љwY_FY7e +}c1!+od{F?؂t84 MA,d{YA;SeAOR-Nȏ MSPd P5V6Po>#Ђoz l.j$Bkݯrc 4xjKYH +r}ooPBRq 2 Eom2_ V4$9LNpAOڐ"S#h9HlJF]1ο/躅d֍M,fW"Dٴ$ܼG `zT *i^7+zt!̯S"vfjvX. +}owc;k5mr!OkАx"_V{ Y2~24&`پ;}&w4(Aqeu9t}CА}!C*jGgkpk6}juvЯ[/M+JpQ ZZbWtfh]A:[S+Ti=H&@$9ۃbo9=(Ws$ԻnAQ9e0av*a46ۥ`$ypfJ8q[GJH3 t[JH$C"{R~Y'L2e?Zl +@TA(Gq$| ] *H-@NN{9_º4&a sɍȺ͝?|WŴDęy!` KH !'Cjr{)5>{'݃P=S +3m2eQd gܭ}ZV}Z(^Pm͖HS/ Q&Ul G |$*UkbI 2e/:Q30RoP_|CH-B*W&Pc>ʮŷh@ޖQUQYj"8P{[2EmY RI]h@zd]Pԕjgצ"$c̓ &ήZB^2oPFwYkMBGH4]Suu!e% +5d^!$$;HB[q&1A|&V}^BCm!0v'{` +{~oNTCwf +,;̮U~R t/Ѿ.{&f;yU{;,7IhUBjQM?Kozp.qa7!4d|KAH> +&ÜMA!au+9g4r1meOKASM,oKX\Dž_UV,a%h?HNOArOePÍnwy{YQd~ϼ;d4 &1{Pm-U:? |,?\U9!װH[~diݾ.yw2X{M BVyJtQlW腁6a;4CqvŷpEEㅙ3HunWٿC#=*" Y:^amĨajs-ёΎ4u;H<:E2fe@^m4SA lZܾj8cbkx$Vl9k!֪= %2C.$ +e==!-bZد}jbZƁg.[mQr9oj;3Q{0'X 1 d'b1L&&3xŨHatH$$A9iَ栆ecT]4iR'sP9:'h/5@,4%$hpTP{= HA8:d'6M $R㈊Z?m5h~؈*qf;{V{ۃ[i=yLG_Em:qiT 8d0VU y)gT4o?,:a-"v(BAk3?WIOhrسew?ow;An M{كNg{d&wzd.Nu2!K 4v6ZAbM'x\d`sECmA<^. Ԋԟ%aS^}RztxDsl?/Y+5"7esց"eosKE/2^Ijܘ6 I`1ӓ4U ADJ ηAH]?̄ta^KA͓?S#&D. ܣHᏊ-N|&.CHSb*f+rG v9< <7gC ZRByܟLk|t]Hl$ѱ{GoP&ӔGľlŬZUa%uvPWp2!֒jаٴ=. /g"dBzR3;e'+tJ(S(;GJi #+=Nn"LB2;\UT^$~.b`0:5e 3?i?mdhvodX26+K~Y Djnr$,dI +ZC ,^˞+\^! wS[Wyj $=`,~;- fח0hݏ;Iz5m0>wh St<[H'ң4 ~W\{0PܰӬZ~A$g\{a?2 o$>ʌ)kHu_sw4V +"o3ogѴ|3r鼅>An!$w&>7 kM"S1AZ>9H^4ɤtKEcJTi|!y&a+t>zpC Msk4+8hQ ՘P< ?, >,Pi>@UCCw kjT &] kj"H7HY(^ˍU]y>JS fH5a +'g+Z4pW~AqMCݠ+iY]\ `" FNW>wRëH3H5 UTM݀٩.p ld<92z6AɨWjqpEϝAGx^g`{& H4xGz7Hs>6A:<} R Fۃoa rLUGI.ĊVdjd6mXTX jþ 'F5=;kc RMzk6Av[vARLܦN<0'. o5XN?M&a}>wmxTB9.k!OiRXNxT+1%Oo5E/AtאbWBA* .uQf*HDq >Yknv0hхWiH7Z3t*5?u = 5n$Y+iF :-XQgPRH(DIY56dČ`7ͼ#= J6:4 _50 ؐ"rWj`mиbq@٥TN/ d'ѐsWj6w4yۇDqQ&{hXG_pS!} +vqDI"fCO:Ql®ц6LA$\e`(P?Z~*\A$*Vuj]A1n`y&'<1#MiT ZSW:ɘx]ݴa Fj]mA8[f}H{vc _uTMv= jذlșʊ֝l-w" jfۦ`/~H3}4zq"D hqm8qn}H؎ᦍ]?hDm/ؐsg5N@ϝAlUTJfg ʷ,q7c GhڨDmmXHML g}A;jqηiݳІ5 H2N5eժirjqU;o5No]e%ooQ~_Go;2ٴ &ϝ &.!Em-= j# mɗ @7PfEi6.@+Ҳeh2g7 ٻ7J9H9dдo9'Ն2;A͗6;4sQ7LF[Om؃Tf!D Ài3 a&_fsoHշzsZhDM~ ?fӆ=֑3_"7ɋ1QCi'$jq.CVw5ݦtxϬ;ʎ45D:%a&d񘃨0d95\idፆԟ^A0Q?ɬSO_2q" j*:;rRIX=A j ŋjIAZ՛Z 43Xv'9Z17W`Jz惚4AU_VI{hwaQ(hD3ߑTS$B=4tc)jNR? p14d5H5 RYX#ŃL2 {vW_Vk$m&`4!Z{Te,Y2`SHHȖ~}O&N6x2.aIPzz=́Oֵq% >Y 䩮aLOކN L+_d։džN&K2@e3,RdBcC'ˇ:Yl1m2::S-?ɞbN&9:S*y&{6S&?ɞ*Ns]{8|6G8}RV8d1d&CwMl2d8ĄNddL"˛&T&MfLz|l2|6؂&t;~lFel'f2vWyX:p`@&{UdW@&{Ud2 ĵgC& ki3  td2 +u@&r$eRf4:Mqhg+ L.,l26Y),Ml2$a Mff6٫&{Ul2 rO^h?&{NE4-fkEe[e}6h2LV=x6G4Ytlٌ&+M6e@Y_ڊ&+Z6^e0Yڊ& >&4̠Ph3d,4N$jDɜc&CgM<d ZdS]=M&3^lWQ&{l2PdILlRKad#d") i3Lfp2ld㱇/p2~!jL`Օ" 6CR$[*NVCSl `oC`ynrD:S?ɞZOZ}yfst `1'z4̽']>O&RO| O@"L'!r|20{Y= ɘɰ0gɀ`$"D>s+ɰm(e"f@Y%ZՆ +{@vO3M_P*xF@ + XeJ1ʪ}6-eueQ(aQ7ɥPZôP"L&nH(zz$P;aP\@$2>B[2YJBYK! c;&̈́2وuP0 #BfC@jl!ht(;leMG6 +(G@:2bi3Ls+eɹ2d H< eB1m&Q )ʚ[/" >Z#]~/BLerV^ 8V5=Om +(+<e*![e؃P="L"9Vm%k@(ȃʐ 켽(2IP&ޠj+{um&qp?lN2i&aP2X>*ʺy?P|>@DB#φO<*!d!'|c5|2T*>YhqmIy;Ok۽OQe+LOv`A|:"Eaaa';QP{0f>7=|2MnsYdzd8T8OvOOc|2?>Y?>R응OCq<F<+LVɉ[MN2H': Hvi?W't21J'{/L,dHfjēxuē+cO&@6ɮZ2m] nf1m]ixV:\QV>dN&/Ƕ"NO@B'90i=%" @'v+Lft2V8مl] +'&'4Ͼ]φN&QmD:uVp2:ZdWf8|6vN' +p2 d(sMvÓMv9n 4mݣFݲhמN #E:ٝmdbpdݥ["8Q"pp7d2 wɔpqmdwCo'g'{Ο<A3bx2/ƿZd%3d7Ưd3 _}oO#F<-kyYd驋d'q+Lji([eɀM2,ެ2:ʒA?P^X-ʒT[ewZe KƲ`k`&@YrW'$=,e.} + 8e(KE@h|i,0Py?D,e))<6"}jalF[e"u@2/me7C?P&%Ť P&ZRUD %3_e fP&' [7k+@Y5iYeq ${dՐLeK@l9(Cq}%ሯT SM6J(KyX,iefN+L4;e0urV>H%8,y"i)|2b[>އAVN(D:3_dB_:YRN֫G:YoWmɘo{`+/wE.d]K'W8Y[| ,#8M,hzqDU+#ٰ*W6PΎ'"Lޓ&Chat&zɦlۓdpl2eM&üMɴMbdHMI20mFI@wd2C!dO5H&Ctm&I@[uL&p`2:Zdl撡Kƀ|%{ʒD0v,>Zd7VnLf;l0Dk3mad&+ǰά`2 ݼ4r?LVz Lu[m%k :M d28{X FdzϑLs,UMcd3f4DZAapclEc2 ]G" V4twM&`>#gd$t2bNf:Ob"L߼i#t&T[dod쁁NE9yZd 0N(+ ׬NPj%`"LqhImd +'\jNV5 +'`3$p2tZd2tV^l2[Y ..̸FZdp@9nH!yeu8z&I3LهdRN&E{~LNִPk3Sd2Axd[MV*)c ̖/&p2O~6ppKn1z6iiJKYdH$,N+K 82܈Ld'^i3D}!:lYd/Xoal+̘Aɴ Nv L` +0MV6^&֠wMۭLf8\F:j+mNTd5 -cœ z%GOֻnκH'ۉOƍn+V>YjXIi'Yt_dh'tN[I]]Z'˺RL{wT9g{+ zXL!ʐn \%4[kLPcYe2 2V@te[D@Yѝf(H(k!ʲʎt] eL%B(‚lʺle:`G+Y(֛ m 2-(A~QҘǞQ Q&EH&9DH$Rn e+ywRP[=H).H)kMv2صJDBg t:b2Bʪ_vjt(sQE)622mExРEDY62YʒsX %uʀ(eʲd0 Z$i+ SL- O"̽]M(-lpQ72e09lEal(;Dmuv/ԴQv%",;~(‹;Dyz(N ʊD8oe!ACQ60QwbU6Hv%PVqL@]D@OAʮ䔞 6PEg(kž ui A"~V@e~v{lT"2v(B62"+F,]tq62F-Lzp!d eZTe Z 2-%V@~![e| +{I(ϟʘ5leM^.7aʼ +jaf2/Y|" `fB(.̵'5w0e!ʿe0ٲ|D(C=Ң]*B*#y e2ng2evL[ ezJ@(ldd"rfC(kdq#V7x$HH(sBec|aWVD'% pLe(YCDUk+LzKv ي(DJ 0q`ci LM"Jى|O2it1p!pJ)s Jm|v 4PvR#ŴS& +;L{7Qi);T9e ErtVN}yl8e|l8e*g2j)8?sb,bN͘2XN/6 LCELm %|aj6SuŔFF]+ za(x]Dٝm3""PG9+"ʴ#i\Q LbӰgQv(؎P&Q"V~DY7FPvמQNLbFcFm` aYpQfV= ̟1|_a)+ eՑ ;H=)en=PNB6<;J36K'{J*f:#L;LVe)cNo)ˬE]vdG)N,8eLw2w @en;RJ6{Rih +@e,yi LIr?29[NY6SƅݞSVan;ÔČ) KLJ;W+S0i#m $# *3DN)N9e.eZޜ2q&7 cM{؛Tf?7 ~̠2Sf +,JzqL攙TTf,zLxpX7RwTY*3 +*3l͏TfRboPI~LV%*3ɣ7$b|(5uQe&06ƲUfZoTiMUfUPe&+1LS.i/jӼht+ƖTf'Rip&4>34?MFu9Lͷ7$Rrq(@e&I TfZG2^.#X63LCY$d܋SfaˉSF v74+0aLꝥ&Li̴b']&Li\a̴dg01}fJiG^2|QLk3ySLsRf['Ji̔2Js^2SH(3:33LL2ӲX'Fi\ ~fFj(3 e]2Ӻey]͉QfZ4 !Xx(v˿{1L;(3M7LsFIOb1fQ;ݟ81L6(3J`eV߄(3MnB!L̴b5A&Di~#T:Re$ZsQf'eԴt2m L}7$=Fk@φͽe$^6jQqeDlŵ(34?FQB&74qeԴR^2d F}QF^ф(3 e;_6DKG5 QF- QfZq.QF ed74i5fT+RCؾe*5D-% L+Fye.eU;4!ʨnF"ӚѺ'Fi~cbQy3L ٵjtQMmbQX6y>Zq)3M>}oH{ e!LF{[H RF@I+^2Հn;@!epyCʨUm e>i5"|Cʨ3CL͡h/Hg ei5'HifQغIQFMs*e8gFVR(3hʳ9σCܛPFILO2jKބ2jX"Q/M#PҭD(D(fnL(&C oBjxv-ʨli57aN2J27ʨI:B"Q+ӟPF-%PFMO eFy"拀D($` @teԴmQ+e PFIeF19Js_ل(&?_k~iL2hM QF>3ΔݴA(ƺTedxePڳ8ʨILwPF@&Q2E(eTÃHv-muZg&&B5-{xʨeOO2՚lE(&ɸxʨIȓ{ Vm̄2j2 S=1ʨ%=>3Ll1*'ZRI(:AʨϬ!e*ˋN2jY e*/`{ eYUjHz\mbgTL2j+O2N;;e*aNG{R rH5X,l@Tڃ'?ސ26uvq )&# e]Zm2mT"R^M)S ҐL5r|QT{J(eP0Vg?6ML5zn”A>^99PaQdjVGݴaTՠ&Lji8e'̡3a %V"KRD&LVlbF-"=.,7L<[ddXۿ9ez~\~.38ez*Vsp5;i-4NL28W%SմTy~Җ3,=P~=2o"lg L+M 4QTrPTY);t)CՍDnڴ hWTm(lSvU fr2Y n)C}Lp0⠂J %8)ڭ#c7ɂ)S+FnVSVd'b50eC߽ǔU2kebPL1^$`֑'l/U[8e'iVNY<21m”a_VLvE-)0eȤà)CELLrL00e2b SV=5Kق)vvĴ S6",k>S̀~j%0)]deVILU֨0tg({&D܏~wD<|ijʤT8BY~B3V_6rUsVBJ ~" tlP8 ʛ6dn 'xĐ]n%䬇U[e(X'ʐL3T +(yl Bw^"rXQqz(u%BM2A2ԶR&sx;9#H3" 2mk%@2$+2|2IZe&릯2x|((u~gDspD 'v*({EDjrgeұl3*P}!l%ᖍ`P(PXe;Xec[H({ÑP&A!UKV-pL{PVe (#ʸߙL eA8ye(GD +xRD W8DqleBVFg0ʼg( apAd d>:N{2oQ&i=, 4BE@ɀln(C5 F衷][eV@Qnͩ200WFYSmeIWoI@ԫ1VH ϶B5zc6@)+:Jf>oIŊ/)CjhR&|RV YeQEQ}jFYz,Q&]b"02jVFLe*|62-NFf`ho(C)~` dMeP"$eQZ eu2{hf$IאoصP&XPGB7< e L ASm}{Di;Ÿ (daS@a+ڵ2? Cw<D,D4W@|D@^nUs.dM0 $",5hey&$RjP&Nª`$&@YǐeJPeUdf@Y3Jf!]w_{@S:et2y'`Leϙ(CJڂ(Z4lI/.=}(ʰ+ACf@Y"ʴP|MrI/ +(pJ(+4ʊw+ vf@||ma=W/epT  OB6 XP~q,J(CB+,/Bzy+L#di@(kRP. "6mxSYeyeP&CDQ!eѽ~@IcD@(&1"L:,HD[eo]Qv*F6#dJ+ + ~FGD2EHeO!eV>@X݃H*M FH『2\(eϑH):RUfJj8RTJٴSBu-25D?}62,ZY+ '2TfJYJ^gC)W@){DY8(\e]>̲j>Ln6GD9leGq|ق( eMO N +xQXͤQ&K"̺g( df JJ"leeH-B g(>/DBfJH/[ eהfU72B(Yɘ8PVi3[VB٩}*B@GB^G6X %Ooe% e8߆P=XPӴPƭpVBY>نPtڎPv߬Ȼ!;# GQ&}ș(oXwQ&klQvl!|9l!T-',da]Ze#r2׸26`(VPv$e(˾):>Ym LV@Yw[P&wyq(2TF@Y@Yeϫle0c .ʚʺN `:B":x(oG(Fe~_OvY-Pv^P +ɴP/e2mVh(x gG((B*̑oe1;XkC( P&Pv0gG(S!pC(VkC(cpZ I ߬PVleU~D,8tle,#L>A(;FjVF&`~le LO?"L<00e*̎Qvۜc9N, $8 .Ǘ,;Da)L2NQu6\TQV> +59548 endobj 113 0 obj -<< -/Type /ExtGState -/CA 0.2509804 ->> +[111 0 R] endobj 114 0 obj << -/Type /ExtGState -/CA 0.14901961 ->> -endobj -115 0 obj -<< -/Type /ExtGState -/CA 0.14901961 ->> -endobj -116 0 obj -<< -/Type /ExtGState -/CA 0.14901961 + /Resources 115 0 R + /Type /Page + /MediaBox [0 0 243 187] + /CropBox [0 0 243 187] + /BleedBox [0 0 243 187] + /TrimBox [0 0 243 187] + /Parent 116 0 R + /Contents 113 0 R >> endobj 117 0 obj -<< -/Type /ExtGState -/CA 0.14901961 ->> -endobj -118 0 obj -<< -/Type /ExtGState -/CA 0.14901961 ->> -endobj -119 0 obj -<< -/Type /ExtGState -/CA 0.14901961 ->> -endobj -120 0 obj -<< -/Type /ExtGState -/CA 0.14901961 ->> -endobj -121 0 obj -<< -/Type /ExtGState -/CA 0.14901961 ->> -endobj -122 0 obj -<< -/Type /ExtGState -/CA 0.14901961 ->> -endobj -123 0 obj -<< /Length 124 0 R /Filter /FlateDecode >> -stream -xĽ͎3˖7Wh*30 X$@z&hdC6 @Y+ɳbu:>k332b?_}>o?{9][/5_ۦ/7e/?a M[/W?hR|or?`OjjCi1g>_Zofcjr޻^>?6(N:.Jj'Q Ųeu%m(>?qPdj C]_ۚJ>wotj>HXgʲL'Qdr{C?M$Wꄖe:?ۥb۵BK۱OپK׍wlߊejk>>[OU+>?۷L]7viN'Q+&y6IrR|;sQkx Og;{ :Z9wl1uwle*u:?۹Br9x;͟\{ġwl --7=ϟ|Gv.U\2tj>wl~Hqwl -^p(>?۹ﻮoxO;I:?N;׆Wj3}?ܹ6ٔqo2-wl{7>\{S[~(>}?۹;Ki OŧOg;.HͶaN|Gv={~(>?۹vYѱʖmrE\(ε@[P|;s2f~KqOgεGٔ5΄C(ε,Ds=v()툁L|Gv.]+)cm?ڟ[?Q]Kvlp"|Gݫ\=:?۱Jﺧ$M響gU>?۫rGvTNa) q<wjn_ش|꾵QC*Vy}?ۡʽղQi{#MN乽s?wWKm{;j&PWsOJYOSwv)Hm8J-B˟9?a<}L{-S)m3}}Ky>Ho!q{o~ʥ?k?*OhS}Gt8#:P:>O2OS Gt#:Pz(?\Bʭ?O't:T(?tBߗsDJ?e%8{]72}?>}}sOw|@܋77a.M헳ږr1>on\۸[::Nŧ}}KO|@ܹ7wl.~͝}s?3s>o7w.>[:?Ws~_96wv.o}S+|@)'^_AIhY {z/}KzRV**ivK~⾾O:?qciI'ۛ&wN*Y;o[yg4rj5¹}wN#;*E-靖Zvo4shLͺwvԤ#KO7TwQ9/*~C<| s.wTN]7P9*}G黨|Sn7Tݽw|0I[o;zgr]TʹwVN?;*EuSwTN=7w# <|U sk&7TMwڃQ9/*h ~C<|%S f7-s6wTNm7Q95.*h}C;| sv7Tw}Q95.*h}C;|S3wBSwTN 7Zy`4~" : -O -¹KxRNw:P8u -©'xFwnY}W8O~C<{;~u=w.97w^}vsSU/FΪ>z1}vdՋd3ggz1nvV|ՋIOX2Ջ^:?SC璵t~"kbikz1vՋd^ ]t~ŬYrW/.:?ybBW/:?z1vՋ$^L]t~ YRX/f.:?bIgzU+8Lǚu~ bmgdlT֋^̳]t~2(I'Y/.:?bY/f:?z1v֋^ ]t~NŜYZ/F.:?b:iizQ?HĜٚ4~ u;i@j:vu[n] -?us;)u\s03\k)LeP=xRsdͿru:Jxh 29SXK)n?bUtm_nwlCihO(gz+q ub{yI~AѰ̓jWzjeŦeg>V='6l.w43Â-Oo?&lŊXwoBj"O7G> ?R/2ŏ._$~|+SZK!{Z맴: rLZz}J*?>WZ~B=?}J.Hkx~Zuz]JI|ˇD2~CJSлZ)-IiAۇ–SWګ̅/t9N.2U}&d8mԫ;Kl`~zs[Sm2%{t&vѦg+tko9v[ɔLY襨knZ&ӿZr}b@:D!%2]63m4rw ǔY[ܥѿ󸗉+4I7bmw!2diGo[؃~' tE. -I]n9)j+~ג EfQ+.v8պ?r2Y.y#g}Ow*Z5uI,:e2=o2|MewYmdhQ -%{t}==Z.+X)<nUK梜Xvw9?Z,lJu\@ҽ-V{+e./t_ɛ-L;1CJDBi$&ۓ^<_FA[>V,WfۑLbq.EΦآd6D(ie]Q程bj.kGK(CV/:fxMwRoOo]Y6EYz']ѿX6\ߓVqu]"P}czvwe!Rwj/2s1gv,{&K [nAxUr+|W!o-si{$v\ޱ:cªImi9}K2ӛLe,%G~Nrum1xː5mf z:Ti븖]pii]5~I5le^9N ћ~=sdE;@>~TTewLb9zQ_IEuw&z`EwQiA=!&nKgyie_GruiLN_#ueQg'ːe֥?Xv=X^(&NE, lm@*^)g6/q"7$î -%>IjЕkg[֏[5r101Aʚ:|. N9 >Q&lH?X%}:ț2]~ًLW-l76%B-i?%Ӟ~SjlWswV^f[g=.#A~Cw1DQ/n=w@E9'W/n4U;ɋL;M&kt贐9cldzlu`mtjed+.KE5ۓr2EV߿l8l^\ rIִ:Z1"`-w ErJ5ܱ$r.X֛%V6;rSiCnZuD* cXN-:d,{9L&c(~Ǵd?ytٲ5?WZad,!m;δթ.(#nm'g2j0d8,XYF -e') -d&* -G!P-d-ˏw> -}K6rۨtW}lGw QQ[.;1u06dRd2:zͱ7N[N jET]] d/kkmy}GC!*Cʸ6\lAm}Bq`߯]IG[KXuOJ]0y鍓0 -^cˮ SYQuJl2YQ+e+ar -2vpFE,@mu:> V'Åcl8r[éƿL7Iwt)5wd(B@5|汎1^i gA6=VL-yLRICQH;wU_?dI?lj[[_lq˜P~Ն;8VGv-p)ML]lߔsU+:]]$o<,ÊUX_LW!n~;NC#ǟmXqǻ,ElG'H Ioz$Xmprdч'7Wy_YFDZ<[36<|kIgL\Y,:7߫֬ݜ Du'S/!VBC&[c' b{GLg,0dhf{6I''ɢmrLIb -D.&oɲLm*rm,^mi4~$e$&Jaald\Hx\D]\\n[(dTbhCdYHt*=BL>zh; Ɏ8,k_v 68dr_ d:I6ndwT/ʒLFYlHbe,en&akoXo_7lzbe,Ր5 5?Ó%GA3@YmsaX< L/A!Š&dN=sW-t7NPWp]|;Qr 2,rI ~l33.`a,0-riI&~mQ\,V n$eDO[=3e2ZU{]_ dFWD>ypg])>|@Y4 "NgoOlbD*6 _WdyN:!kDE&k=ԩ@`$9zJ""m>kV‘vBUiybeCA=]D΂N@dٙas#[MƕwH!B Dyzft>9vk~ǣJȚT!]E#pH+C&!+Yfߨ eCԏYuY&SQ?,!"_f$v<hQcn"9oTk3@d軧B'Pc2}K@%BY䍴 P0et_=v% u(mƘR_a2L=JͦJэi -rcruڔu)x--Ô|;xEЈGzv3#*Wdڃ,IF\{9'=txruq`,u d;yޱJvvɸ{ hTޯKjiuXG8n>dUH8*MKؐQF%5] g-R-ЬYJf2Y+%۾m8/LQLyƉ,U [ɾả.n+ 4ik2'r!%SŸl~ :J&^KT+w2,BR6YVH*i+ 5&T+d;6۝td:DFnΎt8VҐ56"{N' (Cp7'[W?#t/.\n? F=flC)),_p}26liv6<=wb.[~}7ȴ&fk:ٷVk2d:Cyo~#(;C3&Gw'j4YzHɴz,`/`{ٴaqdZ_FF7%. Q!ƟZ{2 c U%b10׽8%*' -N{zʄ˝-->6+&/ϱ26Ε!#iˉ]h&ҳ&g_4 J8e2o6j+K )t[%Vթ6 aL]f ob96rq;:a aG)?(CgDM1y} ;L6$! 9 -wD_fFQĥit.wmn&z@BTP &R:cMEu]6wS\ WIb4-X읔oq #KxZl07*2Yva%zf#Ґu 1D\X -@odXVMC?xE"PtOGG%YW wlfn" ɫaL7LvDFi'.&_ڼt:Cs.伬f63r&K:94;tgBZȪk3qXҠ&srY.ncpC# - "]c o}YoQ]M&.چ,E-"攌~Q$[sddFi,&#྇LaET=B[mEzLwBF = -fr; -|ߒIڃ0YO8e({OL3O_;O.JW#㍱2+ɺK9B?qXLƿ6nXkFoDWikVȇf~xIXʝ˯&ǎdD\6In|EpN=>ImqKd=rlAodJ"=!K+9nIi^0J!pyQP=]r6!2ً:uT)ʙlO/Q?dzٮn"6( -v-3AFwWC!rril~6"W뫚+JL&"2w|S{*03F^ݿ[m=C&ߒQ,Bc2 -l(ۼ/qAVCiNǧ-ʢH%ɴ CLk]f.%x"-f2Ƞs)Aqz@v"ʺg uTer6#ќ!b5}ez(fʤNm9tLU*[|_Y|dz^2Z!R֝($iTA%ъb22 mj.RvW'JEq&xӧd7t$N -*{v=9Y|gO 7ʰlwdFվI`2ZYnQqǚ7vd,J,~jPxX [*XM82X;HKK߭KyO;,]AlL7Kurjt{oOoL&HbY:G(͇ejƻm:RkYͯR=+?(2&J+Cg1.!b2r h8VhZd跌6L'B4*sKy]I5MbMC5=0d'\&vtNx;˙6?{q^|$hԐD3+]ݬTF%>dH !iiOƜ"*mimF2ǻ/%ZMFZ&AgneNb*Z$MEtJwPiUkgB`zlJPdҮ![[Yf!޽ -OgmĴ5o@5צuBB}? cׯ`@~~P/᯻ yT|V.]Ud4HP,vy Ewaρ^?'AEdxǝ#2rL|^Τ`2\\ĐȶpzIݟtfٙlsDKC>`7r'vN t%wdC-|~i4S02$2%>9 #ɷ!gCQGk2ji;SRz}!n5NjRdTCѱFDJb#mnɤeYQ7+D֋j.yE02rN|0). h^"V4m_evGqu߳* 'f*:ҡfuB֩Gg ,P4^Zzs43ֵgʲo>bR9.#nf0":ȶBa|'ot#Gޟiӛv -zXOPC|M5dTt>_3L`9B čfkkB;zѦhLǟ7"Y_et>c@nff|J6sjvۥt̒WC0hjW ]V"2scCϲfNOBF>jĤ~PǛOێP|@4Srt@bsP*OH} Ȯ 9hWVO[cbrNo#tC(.н>6W3'8<-2~7KEaL3Ed%A~j6XWǷl;AZhk[>.>-Z9oVlSo7ʒ!p -K?Ӄc nxLy -}Z)ZX*jjhߥ0@u>$X!QXM ?6|Fl[13EpQ#"@/[Y.)zu|7%V!F3x fm=\hfTlFv= g3c;&DdŪ 6,Zmh0.ddxU( [dzLu!);FF!#8h.T)nY2ugPs-O*22V7GV[; wEP2y1]5.̶t'4 ORd${lc6N+rD q잏zqdwoB" UѳrYb#k:^4g!6io5yUmм_s>JOjC aLȩmCmՎ~UE62UBpA1LEc-7G?Iӿs٨7FeLOG+̬vח_3d T)Y '= ~Mu҅a.̶.54Lc(iGj{3qeX. -RTnd\l`gpG+t!ۙ"N!aFw~Vk v&${a;aQGNp jt޽?>ꑋ[P45_C֒ٹکZ!{gev>i`ȾJcM b95lmyֶCt˯}Ct0e(@g4 *\Jg -MFaRsXYE|.cp%PHX"J}/aSd$a2ܹ#YZ;%Նi=a|XY ue6uAWVLbW:>/ }^t|cdlaXJ_u3zەg+my>0YR -{)x^76#-A۫Wt}]3 -qWeo2*B \X ph#ŻkK+ELet,iqzM~tpPW -}|#C}<72jYj6lG#\c@Q[NxIǂUŵ5+ޑrM -\6N#a.w;e"gTd⸺Pg.ct5L&p\&p,v~%ň2R -ac Y; 2  !,F֘`I `.^D\ z%^ˤ1T)YdcNrtC{)xǗP%]w!ђ"wR.zЦuޛ\FC cI"Ǘ>4ywk#{E%BCƾY6AGqd\FOA&zd)*wr^tV\ -XΌ˫^T4r).nАgT;| 2kLߘ|W!.fR693>v,eh~@ʶn.R Twn"2La*jd!adIzv} $N.6d2[COY+\J[2SL?!cSm0w<BCykw{l y9Ǎx^ḧ́F~X޽[e< -a+[GL,*Y?=g463ec8ɰ.cd -3 ^ٶpm:ӏ~C]% s. qk̲efH:YI`suUGK^%knf4)bgҐќ̄Tc/li;!e+"`*w -uYTSBNm+itcU]>XY.ܭomX^ubW*Bwv}Z(~r"Y`QYYOI2S 76/jt/b8qkoLRFgg,{f-d LK*1:PRDtȈj7Іvd= -ł= cO|O=O/>z=A LD6A3er2מPPg7;yu\A㷚<ڛ6a9;I_- $ܚR&d$JiLCs|܆\价OWgCƁchA&FFn}k]rZʐ8VXг;m}\C#Cs%_ZPLFϝXc*n΅ct!c\i~Q?d!}Ί2f# -\F$YfjM(ȺeMfWix]FxvAC$6_ft%rd6m/B3 y,Am`;Ly'4ELĞ:"w܆<3uQ.a4c ލ]t9edM.P4e\n~&=w"D (huQ("mh#E؇CFm:wJj)X/:bdEt;<{CF/Kj$!}|#.iÖbT X^B_Lfo`ǘe99}Ž!h v 33t ;DLC7n4$ԱfQZ1dzcy!ӛ:f21D_бf3晼:F:4Luؙ9f]tcc!OC$;'D!BkҢʉdg2"xn1d ,v"{Pǚ=2*:gJ3# -&b>d_1dw:옰Xc3Xc()ncʈ;ZscXc,R1d7tY\ -'L1;=Xc6Dбgǣڏ9 gcȾfX1dy` u Y,^XcͦtXc6Y^;SLjtb3u Y51 -=gt1dIψc0Q -:h@+0D\v!=5C CfDL1d>/ Cg5w<X]4#Ǭ"g9Cf~r̆%~,1Ih 3ٙ82_8LOpRp 0aCCFh<q &8p"5fLn8,:cFmrcN.yILCVLwcLCCXcȶcLpR&~q̺<2Ð}ǐR8 r\8֬+tO1dTx LCcK~'cȲ|,1DY =Ɛ mμfdgXR~ug2J'oQ =4;|!*ى6;u5;x!o+f2*&| j9ƚGXXcȂg8 j)7`SΨ1dp2Ɛ/ggX3Yq{,f2+}ƚ!XPcd8f3CTӾȈw<S L7OhΠڿ 4Vm|{,j`J@ctB/L1dz7Acvqgm['7ƪva!O1y7±`gҘUk 57_&X1 r&U fbf;LcI Π1D43zW #MֳmCCIݜ@c6b~xIccc!Ua"4V-9AگLC44}>mΤ1dZZM4Fc9c"!}6Τ1^Bkgf2+ DcL1zc'i J;*7^Ɛ鱎=xFMԭ9Bf}]5,1lBQg[A Pי5am?xb_JuׅO1d2 ̰1"M1Fx3lƪ%~;'#~6VtL{acikY 8=#3kV+47f֘U;?!3k C'X1_g֘52Y;k 66Yc Jۘ?ƪZcam4ƐX->l}f17s:t[Cά1+כڕ5lfcf1/'Mp5FlX"<2&^45`*T>y,1 -$8@M1fPV1ƨ'x<`4l@8'>YcQA9?qb_1Fr%zEU8(Ϩ1dms3jiBKPc(C(}oPcXt}I>XNT"Ψ1dc'֘ BJ5V:n`.o˙5VmM1Z/66%:^C>Hd_Jz~$c mIl DuMv{,1j3mڠic0C^jXhcV"cwzgm0:Қ3m!t;?&PagN1c6؊4@CgN -xϸ1Vθ1 nA"7F6k*g.nZX2YcqoX<3*n&qcu7fN1k`3nH6yfȾpcLbul3o m>H{U"SztUFG.6<ۧ6?f3)q7fa+o^hZ;ƘA'NyRct̢2Џo̪%27V̜?AoABrkg;o߼n捑EK>ǬZgFv"PmqX}5L+Vjc!Fc!٘cHFzs`ycatۉ9FQ~ -cŊm0љ9V菅9FH购N1f<21iჳ sؠ=L&q`0؉9F6asN1+.03cDd$:#iL뀇c̥fʞ̱BV?+N .;3H_vgXp;d_1ug 0A -š#+tD0:F5Ao 1o##p:f;@+t0gX14+[cts{m fm1Oб}#&X!j:V^~fITwpLfe9:`M1F2!``~&)3s).P bbQSl)M1Z3 5 9fb\c#Ǭ R@M1G -M1_2-Cc+1fgX2M6"ƊIۊKV=jgX6wctvvbM1"28>KbFQ* ktȱd5V1X3rqZciP3q)A4cR5ǘI$s3q,z^t'c< ݯ1cU40EwT%qy;6D -#c jmmc_Ng|Tl^t9G;t pJ1B\#e$;`lln"cDP)sacyWXᴁd8.R;D,mEEд,4#Ǭzgcs9sITu[coܭUcE$~4!Ǣ813_ttV#koE_o+tւ1C0̢бn!A]c46ȝɇB):[BMf2F[бF.h&N$t ҳlԊ0 u\&1OVrcf1 -C+'XQXc@^03{zȾc1␝cB11Q:g?י8T<v8ܙ8f󑝛c>6HegX !!B vk3<1{|&B30i}N1++sqΑc6IJ{[ނ=5v9Xf# -k? 9V|6MȱbX Xy1fkXV,3u;xBK|A#h5Q &5QǢBZ:&|8>3t.K<38W}$RWtux=9?A(`ڀcVƥcȶ@HEŃyPǘ [kSK3}$&ly+uV꘍e &:f_ cL-b]zz :Ƥt-hFP`mgQh1+uhG" $:< M1B!cl^[y:͡^PLj32D3w}יcf3cX<9f69f'گ3sRPXch)_/c;<M-btj%&czAB-9\™9f}F9kbesG~N16l'oM1˜O#WˁcD#3۾@Ǩ%:F Ii們:W2Jp t/eQ 3)&cOud3t,+t*A%\cXkc -c=V蘡/F܅9fkf! cFcRaU :֭8}uac_v0 -o.)tQY'\cc>ObCXXcF - t v5 t.y<:F^Vw]cw,/1"}e}f0xM`9V{0אǕ9Ff0)0+tL;xM1, Xc乷 ;EF\cX9,vO2 :fyd=:wg,[c3_̘: t}AfM 7c>xd sc" "  -Y$y&Â!0Z" M1˖[d tprU8}jf1u&'tM^qA8+q͇?V 1Bwmp+qLG% Y%q O%s!e5q> ßc%pIXN[ " PAK^ic̽K>Zx.Yc4:+k >|5(^Yc]`f͚ywf7Kʺ]Yc$00dgX$ACTVXf謰1`/ac`?N1V6F`6նW14bޮ1z$zذ6F#\Ycƴbs {eE -9W@.2،W̨1߳9zWԘN*)s,͂.P#p4ݮ1UWW;lE5N5jM]ۊ 54+=CI G/1j͓ k,SN֘nUW/Xc6kǏ5+5-̈5!̻dd $7 +Z| @_Yc1A[XcVaveqzљ5F0VZXc6GuvLѹƌά1BO+]i֘ (*\Xc7rveΎ kl1fWXoӛs|ͬ1iܮ1ZXc̥5Fp3p jѝ5} cLGC4d*+j nW#\@ͬ1:Q6+kF^kf@ە5065|$cfXۍ52^66Z5]6ҥ -6~k[XcpS#]WC<0T:AZXcK1&*5sFݮ1ܜSG֘5vr"z>AYaca - j;kUWXM#2u6Va|Q{C~1 cicVg̀^pcJC8ƈ3\qcB[qcyn?3nP7Ɔ|87\|j7VY`/19%H^xcd]}8F/8iW1NA1Fzڕ7Fz1]ycl7FF`L8ư} -΅7 :` o,놗"[yc#/xk1n{)WXRyGyJBiXSC6n:/1}7~yWޘҾ {nX-Ə17FxP7FgP9/1~!2Yyc#^hˎQx\qczx/1#-'/pcC6/Ws?11kWX/TǘJ86N+d,7^kXʏ1=b7(-(uGlQ_hrͅ7o:7_(nu#7s{fA1r-ޘnGw1L;)7VGQ7Ə+nt+S}{x.[qcuȕ6F< mw\ic`|?eu5Qnhcy;sWϱX1?1G3mcr\;b3nLTƘEWX"iOa7F1]pcx{)6WX27Źg nL`Y]qc)e6qUh m,CV( mb_y1r!^X%QqEX -#xA5z{+T+jL6p[+j[Qcc\QcœvEw+jNWy댚@Ɗ01QZ^Pcj dqD5 ~?d3jQ[uׅ5Ɗ k[Qcŧ!^o5E%iLPyAd\Jج -.1=q^IcG ИehM -.%F").14Ƙ:?1.b|^ƈT%WҘJ[Ic:8]Icg\Hc 6C/Fͱ+i,\4FAQ1_Kf%k~?gCnGn֭E8X -1>eQA*c3nF/ӳ&>ZX4"m5ư%L6".O>Vb9pAdh4لx Z`c60!j m,Zȩ8Ȗo mCvY7g(L>l*b,]hcdPz}ůJj9kQF~A6e3m,{ -&9]ʝ3s7?y -cT;.1:HH؜5Ƣ%x7F[q/ %{b}1G6^hc6h!m޽}}vUnuick64h -k6Ƭ|sD9Tf)fʹ1ZC1-o/hYhc GB'Y6Kf=FgJ^=<ƈqcBK{`XicԳ b6F mRNJKzw%LĘ ޘO1h3LC8b'ޘU18F:5rD xs& ={{1ZN"H gF1#^e3rI[/ȱIz1 !"ɦ@M1#&c6|9F*=fЌbg X2n`'u@c8#ǒ.cwA%G /13!qRȱd) r2Lj/>.̱d,N=VU tsak`ׯǴ:FO@הcz'n1{T wMc6gH?VeĂ;Ƒ9 ;fcf< i3wuf'űW3x>f+<W|Pc%xc?2 hyfL[cqbLc:݆tCk666O1` -mcA!kdncV6ǐXp1ç =֬R&Xΐl}=uvF5kw93ǚ}s"5q`hcOcjq:ǐQ{Xc"_b{ [Ǹ䞼cp,93hU{.|bQlhE&Xip}L1ٵ3Nf%^Xc I9 {yc:[8ǚaeXc ^}m!vf!Xc,DŽ/1f^ǚ3|< -Z |2|A3;,#hò1bQ3zضfw+ /xEN9c1g&Q -K{ƀ-Xc6}SfX.>= x--'c3rfE 7t>qȾcDLcL*,1kە;ƹRa10 vSacdg<>XccNCbL7(fד1rcc i";ƩYB_c \N\;̳c\cQj@xܱq;Ƅ5~SRzTl4Aǘٶ;be3tScg6A:t4'"Mбnxc I:֩,tcgfEWjcV{b3sʌXc38wg%qy,1kzN'c|cTʞ0c9Fes37#3r۸HXct#9XczńD91٫'2o9A+58QEQ}.D.=q Y$樍8QUͫ5' -C$!S3N1d08+: 7pFWWO1CѴs&2zL1HFX,%xcѧi9_!iDŽ~s*C&Go&da'`$ʐӰbΰ1H% -8ƐUh``cpc ";#Y l h64]iV 6=Uq6ΰ1H*CvEXN1#]^07ƀ1&`c)vL1GydMv>q7<`c0 ?C'򅲞`c6>`t[Pc@J/p 2=xBA1y3ʏM[Pcz43g {n.;q#i6gKC3~Sr_!oq\N13F F=@ /tV7&Șϩ׺o9AZlVJcM\vM42mt7ce,$2>GORȟ3e?k=;SC&%F^0Q DM+IIaaN cWψL1^NGxWƘ[Nc|?À|bא 1 sN|~/1q9=3c5EXgƘ6qc,EAc23Aczn|cNZM1 c +7!m8+b R800Pag5tynj%JW<q1F6c Q 3c GVX+6=Acd%)c .=C!e3dޥ|l][l 2fX֟dp[!c 20AldF2_{:;Ai"L1sG3d B|&5g9r|1rX)cKNDeyEWV9?S Yf;1Ʋ=W91!cIScEc+= #ŐMLqSΌL#U]gXf6@c=V;=-τDۏ?3a DXlVgcLQ ;ƬJ#VJQxm}0aAge30Px0C=d_14tzwFQBn*gX"]dgKߝcVoS9b,naj3b +j{gX4gKa3cnOdH~#j X(Zw!cFcߜH0AH*|e!c'ڇ/jo+&Ș,]";`a g+hbhːnƌlMvƌa37 <3f]+{*/(c!t{,i3ĕQ̈2ƶ"de &Pcʣ} p)cOM3e _ʼ g)ctDgX``9~1cKmv%Yv,y=E@v7_@4UM[xH0;ݷ -Uyse41cpBF'f '10c !SkM{cpZ/0c)CL̠1 `AcJCbrB>@c4{^@c8o`{,RDIoΘpVk8cHǶbqup<{x_%R,nx11;%ϒ4gةQjCGf4pGC4:ɆC6/'BZJiϿ{Bx" 9c9"g 54Om4!ÐAc,9X*ƻMP z24鏶;}1t 71,*8)#䰥oƌa+x 3Q3eyf =bƘ33ytS2B7g!IhhRO2$д2-#25KACPek1좧K1&,1PT -z̐X0@dB 2eCCzƘ&]O5XUY2؄G)͵O/|cZW\chT c5rӍ絛cʗb7K>cGk7O Ԅ"&!I cda 395̈́1[c(ǣk6=U30ܩ'L;>+\Og˜[bՅ0Gc<ʅ0VeWOa&e&X5!~nΌ1dG༂zf&?` -Y:ӦZ0ޓ(w:QWC3dM|1481x⋡}_vEi705ª6P3YG'2ƺv@u1&XCWInbhtdzMxǗnfrr_ =ьaǷ /LWQ@ ^ 6Rqނ lL/} #^RAsb&XӾ8`‹5u-x1saʂSc.,|1+q3_icC6Ű&8wN|[a-C<݊bGYY3_ A4ŲzC3\ 6Őd\ [V1b8drj\T& Xo?^bKaz'a[ 7]mf!U{-rvƍh2M١nAƬޚbUq}03PBvl.h1gob8 G,=,WQ Z ]2Z/}D!d1l8-*M`1L ,7+ b<{xk)ɉ4{i -ޅ-M`10s5k+#0yq&X}+WX~TC\1[""C:c<,\1MWM\1\؀1L3W +W=#wrMXL:t3*Cx\1cC+;8=Ϝb(oӓdJ[CT|˖/&e:Pb]yh1g轲p,+[b< ɮamPvjp1,ؚb -9ݔ.-ol1C#(y 3[ - -na_[ N6h1`ueP,ӝYLn J#:6Ub'yӆ,JØ,TqbZw9,0ՠ YLPJԱ>d1A,~?Е,&k0BLFfl8a'n")^'SY ph5bg]Vz-&bZbH9قu&F|,6zq/`1+6Zbbn,]=3:\,Yb -Cx X,`1VwW;p01"W:¼+V3\կG-\1iM\1'98WLApҕrXb%Ov,Dھ"X+X,!ie{ X 9MV;?,pl3X ?l dC` -2<.у.l$Lb"}VX9؀L.Qy8Al7ie9GXAAb]lđ.\lib8aaB.V.Vbib V~ -3*-p14#6а="[,B?Ε,ЊNOZ `4؊ýAb,5|Ñ^,,rob -VXC.PكjV7`1e\:6ǓX'JC2 nY5s0ސ_+Y{.Jhd1Y!&{k%۶ -Bsgwbaj^Jޠd*b¢X^bBbwCWb[ =ZbuX1IR"Vl`kŊib:hD!bJHɾ֑*y`Pdً>bN6zbG#U LU[8؁%Rvڌl|׈X1U$D<͋\ kVXnVɯV _FN 96c~U+&7V+wX1؂ȏT1oDvqm#UL.j,XG?P 2;=:gD۲R?LG1يX b(+6.۽T*Ebź[b%U)pΧF%|\1j=,pToG^3ŐĔHÄO@ -%^;f"Y A!0:d1xH;%C Y<@CILS$X>biמ,&?R\$Y -h1djbx8E_;la l1q{mb(g ZLĎl=_[WCxjbKoC+'DD!{Wb^l1"\ 9FܹvD¥:Ĝ9K3\L(܃#\ }=*Q`.֭W`x-X󱁋!Q-\" .4;q;_ϿdCO+C]oxcC+{i -ɈːȨF|߯?g ?u$ph"/-㡛?0Z\iyUbl|_b^Hm if/r8' 4TzYx6go6$|?)޿ y|D*]~Z>`5'\ ;b"Q/V n ˤfoe42K5w4/ߞ7OG& GހgN^ -2>@RGðvq_#i_-yjoֳw7w-ٚџg[Դuf{4. o7hcAD:/~f0Kzk -{_8?3D~lhJoj~gh򶹊 _F6Am3DCb6OUڟood"8K6];k3-Ӆq双v0t:s2m`{7w\~8[ ҩO*b zhOgskdioU0G=8io&S<Ə&cO9 >O9y/Fe|5 -nV9-[+<|E=}N!w/o?p?N~# RMW'~4h?l%ۯmj srxaM<]0s%!hsQ\CSuQ; hXѕvca0SheݓݹhT4M߻f1zjCw8Nͫ7nBfzj3V;yC>(ͭI!ڧW)@TOqDLcI%4Bƫ'mGuY -_9N|,푆v>t}UvwsMRϔez#=h&#4YmFSJ U lyx3[v iz 8GӦ:J ܿ[CsѮC fhگ,ҵs?\5@9߹74moڊ|_ܳį,_2Meh OHd@*w@d*rd{~^XאCEQ^'X8.b&[cej|)h0kEZ 0K PǮh= yasǺr렁V kVЦ۵jU8%(U\>D#_3ye[ow r\VF..6]kYQEgAb11Ѯ$9:Y.Pʕ!,^|E?YHT)Cr\"#ף)Z粣"ݙ+jQ|p02z+Vz/#[. 1, -G~>w4 d=@C}8<ϝKlx{S-}ecɭv=uX5 70Mg{.h]Z. փi~!mOq&]9.n3ȃG 4#d(~uڔ^{#]b[>!d-p=Aai,d>ߩEՒ\Q $DdCݛ+o xrm Me|G -k.Y~$WV2,F‰v4*z2Ȥ;85(U-unWMk  Rs]-8w S -i⪡ɥGPZ "uNxB`)SɵgfƵ=ihb3?~oi{y$b1'Wk28tY.[T ؖڸϛ^D44d`0Xj\7l5Y1:4%+RMK=\[κjb0gyk)'S $Z{tXh<+Ҡ.5.?Xy)6 HhCK}~Ngǟ ^K{Oz`߻:XxE0]'&5:jC5TcOnXS4 `s=K\_$>6B -ց|V^}M fzpEZ5mJU[fgLr8 Fc$Kh:Š'Ґ ,&cU ,G$ p#+WT4qMU4%У,fTsaMM:q|8eCy6{=]1 t[H`bԾkesU "(eR xw\LV`@PI2eLHruL,ʣ]&3\M.*XܪK)?K\9!6^2*4vdf&e).~Q 8`l0%2ks+!arj&VlNs9!o:焽{F>>4+(K=+]-{#_Xs̡aմYJO0V7jvOA.%5Rbb,W"l_Hx&.N\=Gs;{^a2!㉁` $=,1xb2AS/0P (cJO0b -M.mZ_m8ek7 lǓ 6`V;/daMNE*TtQ 7P_D- /t/jElls?MWNІݟp`,D,3}y0-URXOO_lAPjL5-: 6Hrc\-q -fFȗM;bc@'rɓ;5]+_<.erq4wr\*82VOuҥeQ5l|!~\w[̨ Yt @+³na3 .beq $. C)gM"FuAId _OK5 2eLC,x{\J>M6COk8yCF>g0Q@2ݒi]lcKLrH/.rׇS ~× h'sDoۿ"pgX˲~O$K0%O+ -|gVejHV.R&a 74N$_gR'eG/.&MA3b& ZQꅹ0@V'F/ gc4?e5qzz"YbMTs)V@]fGЎׯo`SsY܄V|;G@6Vu1j\|?SeP2pk4}/OSM6^g3|8|? 1U^yx zk4Ry5c<'k)iІAMJ˺b AS\"څ6QCF"ew\o0ai\es/Uu7ME\n*œ^:偨)4phJUM8O6_?te̾:&QPKmV1_xgCwh8I5O -BHC|6≬n5j7᫇L*]a3,l&rRˇZO_2C酼:M)o_V^G&;5 -M꼙&/'N,p׳c7*3 V.~ibq}i dUYnL/ÂkGU7!1=ǃb6tOt .d>.]!?5Y(*F)zInhb)#a! \/A*iҦa_8eH4.Oa&xٶtX>&73U\ڤ/͒K J_ZSyyZ)jmnCo 95ح#v.^ɾϙ.NdrsCYqg_6ZQix5 -Hx/A%eCvb;C0xm˭Aޝ7t=‡V 0ܞ0lv&qgЛZϥ$=YRlC$P}鰮& X `k]#DMSzZ'Se 1 -}hgY7lm'!$#gq N\iwG >\ǧtܛ񄰆OH<1x?4 kLHOK1Mvr U:8U^|#B40kkZ N1eB ӜJd&}p2 cYa9lJ[@YJt8 ;68ybIa#V,ph F:HQ4Yy,z<_Lw]SQCī'A|n)] 0C6jW[bpgj:,lv@CZ*L-g{aPZYdyclEqdGi'w%[)Z.~N,eSk)>Ni`fOLH)%&sSOjfC;#-h`$ '/x&Ʋg+u;a-9181@L)2=)>6.kYrx'XzNeXز#8HkgL6 [:MKs+ q+.x:xbсL>V^CnJb-TttJ.ֲ8&նsKω'vb&RH^&,kym<=b9,K_3W_|'_~!Ӝ/tݶ$yK  -PLPY|m;GCt^p.+n΍&IBZ)X MCMBS7OE>)3MqT/so3^jqA W\@Y吹`W^Z*<1 ¸=' U9@M$I=&,S**{254aCܙwLM.{CfX=mHI&s}X?HU 2Y@E_!r! yQ,IC{Ylިܠ 4y07Hb!hԛ2`,&M%U<+?+Vhcc6c3iȄ<SVڗkn"9('H 2MV~e(dmVl-zQfk273P -ԍ4VExAY֞pbui%4`70 Zd@[;plJ~Rf`h?eO[Z3"C]fZljak(QMeyrwG1X˕5EeysW]uUNBv~!hZfnu sq(ڎ#885x7L{U]`QPYj}ا\FLئ. vS0grg[g2j]+zyb1eӺ-b@`07zxeׅ ;􂶏^wAzR&4=ڰCZ?1b#kDE~b+TxÒ7Bb@1d Zj?4t(y (+8V##_/[l>-Đ} ݳk{_BN~dRPg4t -`-hjMcF"cky>,Ŝ#zʢOVe+#˗! XT.CC1|8+=m֡ͬg -qNdZwm!4-ω,ZCne>i[zd V -L4 j%?JA_&p+3lfG۞nxkZ\F yλdUVxc{콄*WWbnˊ 6L3@Yb+P~Y":.dACۦ^6Sfb &7,3I*ijdnh(/Rv 7!Frľč~j:91A gFۭ|u,+ZDaUC,T&t]^kTҬ0hٛٓ&nG^ E wr8yn,ӺڶޑsZaELٓw%9䶭d'rU0!V^8*^6=ehz1G51-@pg)7GL,^E-[ Icnh'3p~ި2AQ@E/7bRBU 1=}D -*vHUѦI>Y0@oc&/NLfv/Mlf|]RL"YkyV):o,3V"׻*Ú~╠Uej'5T+vp2G+/2jKbR??ਠyqDl\S,4CԐah!Yz4P%IC`.6uGzv<'@B:ȏb,$8:8]'_f_R?1rd-'=]ab| D~]31yT!|:|=eU/9Rse]H Թm0j1u~yV 鹇w( -p8;@C#//x}?5Q8-ZE_SZjK[E_i9GO^dTx / -e -o]8| -:? {<Z W`eWZRU5WKcR$Y1/d 2ʳ1CqEM,ӁFJl㪡Ot$]e~Z? yi׬jǍ~U <&{yիCD\=hɥs(9+nbimlfB@--\4y^e[Q槎< !xd-b)H$4X?"7Q f෕KptDu5kȹAgh{;ocJ9c6hɞcmQ 4TsV-̯3:KQ;#fB´6g.CAUjhXKC0J]:?MxKUT\_i(Lë`8;Z($zZEǫ2:$4j,2h8~Uܽ11+wM` (1:4:mPc>ڭu~9v "&W,2ДjY^Iu~U#t35 3u=y^.!oԂu~BkqThũj9^QqQj.FguyMM^Kj'UUZbPw,˖KAMR,yzqqQE#gE٩6,.^'c- -6VMք dybe4H;U{fh2C;OvDwC5 's.UMC\Q'o6[OlUzV(=T!]ye*}2[QW9VXr\w_(*ͧ@C']'T\Qي6J_ޅS>"ƃ?cUbj އl]( +Y鞾O|9,kĴ -h 4=U؜0S%;4 qL6ҪB5 C;?Bװ$:PA(9B~< % `,#h<{ -?@WlM(CxG`)>;Pxx$PQݧ[y'Ž36Qx*iUO$htͥCT/d/@*&G"fuyHej>t6lpXzPQ''+dO}~?B$S@P' ?VS$v8HVDGukaqۑ7O$އg(-A|-V[RWQڧʋf{]8 -M˶mzSZlc O "^Ms~h-B55gi~8Ack[ZӃbsP'ɨ2qY1^-4jdojHaE%QC. ~X6`j9mh{&hìj 1\bhQt 9/P'Kr>S])qҮ5~Xm<\%蝧V.{K Y=ɔy\UռA 41ڴMi=Ce_IX WZҌq&uiUZWAf2RM51o ]E$Xl8PfRCa]6\կ8 -}XVkܒV;4pDՖ}ѵP@!i}751ڎBej9 J Ji)2FCh ,g -< -1?rM&3>fp\TUyl^Ug[@CaյFj]vt7|S޽97=;N@o˖Ό4=yƓ[mаGk/%ՒfwV̑&: r-r,oӤlS@fVT7M҃[$7MO7*j}tj(Rӿ]f~6T5 PlDMѡ[j#Ĩ!|Nɚedijk(M66ᾁO'feL9kϰ}8N/6XwC_2m\^^ݴEd>ECmwtOTՈV#uԼ PqaõÍƆ"? ڛ)XDO )5ak>ӀڰT@:!41İpm0 - 5th6^i8U8dC8:?6}ezo@xb %~lk&21YjŪiIW s2P]C2rr7;J1;=(+N~SE\iמc -?¶)bceЩ ^j9LmxD%>:\[,yPSxKGTvi;=߳4w)=e } E$6ce7VeTme5|"=:;_yn)yY>YḚ8@)SwOhj(‡f.S -/Ʀɀz]3.]O\^ ؐԐNRSZ }$\Ce,.Vn=}:|8/Z\ϮҾׅ֚ʘLEbctPqSL 0;* ]KZBACI' kcgUД,_G{M iy}OjObCa_n-Kh8,h`wr~b20,`Js-O!4Fˮc>vm$Azj1shɢ6`j!|ë4[TgiCWi8 2l=f t;5/34q X q*=Ҿ!+b.>Zohpd̬) zЊfPÔKPMLz}#!WNABz@C&| -~~iײfFc|Vӫ;M5Z2`0.ٹ/Vvw+f:J1+B) S{NaWv^ASݫw..$g-)jb*g 7];jL\[fhnh{&2x㉘ˏbm@q=0.o/mr9eg MW<-qlf$вki~:QW1 mج3 )pSleLp%@85 [Yy 856u0ץ3Y^$4=nFUǓ$[WM=>,]'W:55I<MjuАͣ)\PW?\:m@im0(<]hįVy!b&מ`Wn(fgJ@1;^b&yu3oqo(fn{N3Y'yr_37b&;u3uѾ73Q*_3g1R')fv 'C{C1W3N&(%0PFa&׉bVrav1нA;Gٻ~D;G4mF;GY@n-w#0eM_aiwD!I6ꪭ3Lpc++ ,i{0{DlѬ -0+0f -J %8VYz`&_ɪ/׻qV~Mc?M PX8f-rT[f<0þ68/K{QC 2DԵRv <-.F_62;Pm嗥'-d⌲_&3623bM1E[fɮdi*@``F"@+LWe=u#c'`&?F` -`aM"kY'bVٻ3d;GZ峑afPZfxyy,fzofw3f8ja?4#zj# "Ŵa&;14Vٻo`G.a&7 3~ei59Qavt`y/{0ch0A')0Zfd[G٥H{e{0bavfM[@d 34:I 0{frG"hVN'Xfq\|KULf>2̘C0td" {aVƕ`f`vY>iIp`&NFs3B3J0{"A˴`|ٻ8!H0 t$!5H;9VE p4Gl$!9f8f,7)9<`BEjVb`%#˳# 8k%p# +`2c )J0Z=ϭwH0(M~n%aQneO0{C0,Wm%/,;̲&2@*:tm\QEJ0{S ,7Yfi3OI>[ f7Vm!a\&̲6Q>M fZBȷ2>&"pe` m0+1Lf*b ̱`V>`V -0+'W`VwBt{YѾ;`V0+oN&~xKs_V/I3 ~YAmelKXe: -2Xu"Ϥ_VM`'w0C;j`&>կ{0+M ŷ/+֒d" - z`Vߑ_&9D~:;xp_˪ɴ`V.7 -L kU z-+Nk# V~ƫ]i3L찱`&Vi 3`u:ٰ`&{qbU`f Ѝ3mn6P1vVY՘`+眄3p73YH3Ms[ f+(3T)e3 &GY}"¬3'a֔gaiaGc1mì=]"ìA7 7#2ZbJf{=(0̔ė$0lvfr0c.\+Ì 3oso fdDL!fe3W7 7'<@U_BZ{+LF"1 cCb&R16@̘6u6CSr!fhb4GH+L;?N굁u fLR̺|35=zG1lQ0l)f=tG1 -Ŭ_^D)fz -(f5tLnDJlFYGGC~ -1CLuĬg1 Ygk1-aEu fk1C 1y0--B̺2[!f}TG8YYak13k1O鵡yb>2VH!l#lh˨bv^Z!fbbY|x+L]P(fC߄Q_0rb_bq|:+`8PpLЕbIy>b_W f~ft,@?Y@wS1c@n 3tEk1;QLl6 -1;OmJ1;MlDt㪿b̞ L c, 3&(0f ,`N48h3*a1n(쬲cvOW٩ |-31. 3њ, #1Iffn`t`N+`N#0fHV=wXcb=7cvyDވbvbWmGGR -3ҡ3D4Gٛ9f̖%,3s͸4cA` -3mMBeC ̂cfN l# DlF/Ō8V8H1b/1ͳ",toft_7 3y]#ìkj+L Εavf!Ӕ`V.³CVTJ! 4{C0+f1Q#"̊썘 -31: fZMܑ`T"L&u3q 1H_;̐@[3XV -3Xu̷S0COݕ7 -sY+~f@0cn`Prqf]8ŒGa !&0̺-0a(B0`T6Cذ;6A̺'D#!Nb8M3Y4|y"&@4Т{1ݚXDI#,jbb&fwp -3Ɋ" $Pmc1KhŨ_<,̣# ԭȜ+ zߨP̀dA)fM٩7Z)fɻDYbVYbK׽%owo fJ fpm 3{ĶBn`H1cp~J1ÏfEa}(f T[)ftF0luّa&+ Ła&L+bkA[DC) 䒺"*"N) f@0j( -6Fi !̚lQ fCGډrqFIѫ̼fOC/)d_6ѵj3 ZfD!h7LfU-3dWFǯ\ f2Ž ;_̼Xda%"Fc 2)Ve7/'˞^uK" APzr3zz}s+LWˤ^&.BenDx/heMq=ݴ^֞^&@2Y~72$2eCL_Fޗ_s_f}p6[e]2Lep'N",L,ƶ_&ϘrpA/^&^a7˰^ZeOGėWE|8 W22_֎ 2Pomw//c _&VT\euR 2pCV~YAx3oYegAV~ٻ<24V_fT[e7%uٴ_Vw̏2$$ K`ִ䳕`: K<#l<`Fֳ!"LOډ j+L~F0d fi f'4ЬY`wfB=s!R `+,J0cVY0@07щ3x}+ݥB05 -ME^`{C0{C0ӝD f꘲ayC v}#٥o[ffi3lȪqLvOzv0nAa=("1.L^.ADF0C^FZ[f8fZUYfU"qhD=L`̼!56m"1bfg̊6$l%=݃):'@fR$%{C0[;@B6<{3sdgV5rpf^PzoifsfA̚9%;Oy(z2j7,3effje=c=̝2;}߰2[YwD,~oaf,03[jw,3+LݠD(3FuPfA}DY} 2ٰ$̆evYYf(Ӥ{3ڽNh3n -3as3c03u>M[`f!\,̪ϲ3d3C%as-ʬX[WR7gq̊[g8f scvZ]cGcfc&/ۥm0f1b̮M^6rYb4`; ̒-Ƭkg{1(ݎbVt7l&,V>!1fr2b̚go8fuqrg@t1˺89fG9k1v~%o1f;,;cֻ63=1f,owc2{#p#ሁd֒ -7$3GY^rdduw$G;3-l?5陶jdY9w@fo@fu=n1 ]yn1q8f3ɺw39ft1;p̞< ccV9fW3cV.8fvܶØؗ1f͒v3ă7Aa1ӤZ=el1fOadOk=Up̞ \-l85rđ($n8f62~9f#3 c֍d5k;\n1cx1|1 -Ey8f݊a S;^{YӿɬrG2C!ڒ0  aAȬ˵ n8fֽ8f,מc6ӎcl8fwm9fIr;(fQ̬v1{ ;Yׂ=ĬXÈ b3lG?A1Ka̺ {6ʯ=́;Y=;Y`bw3=̳v3;v°_d!ЉYW$֞a*Y;w 302 [Uf`;B^{dS7 3r0̜*a_1zu0sav!BBz!fC̒eal f]rPX彧WA8bfȭ{ f[~0s,W~0C} \LbCt bf|BLOI*1s bf -L3jO&13;af̶˴aQF>f&y03 M3`Cs3.+f%=!Ls}By054Ą|g3ӌt~ LL afۡ3441L|b03-YJ03afwfԞ -OIڸO 3Xg{ 3ӬA'o5!L<+f&p7~LK0N3;?f~bQ{'iN՞f=1L3pBs0303I030f}03 g03Y 3psbV4fe}N 3ӮӠG3<;cq bFj bfZS{Vs20̴b613{64bF͂* 13=ALɻ4 fetbfgO3γR`QB9 3ӺYq̴jaf}0L󼮉afZ26f0n",9w"V]D03 6 L03R&JbXf"`fZω`f]{fyʉ`f*˩}̨!6LX/3)6LK|L:<˨'̴fݓ&~i䗙[M2Ns&~5=e:M{eUki6L+M2Ӓ'~i~*=˨n/3K3'~ie/3L{Q v◙{旙fe'|IeԺ}3\FɱeԊE.2jLHx3OTQClOpa}T#{dxeԞ׉\FxǬ\FMn'r+[f"Q{2JO; ]2_>e$Ot5ft5L.t3'r5}3WvteԞS \F 3d"Q{!'r'36w6-f's-3\?e=3%w?[F<v2) ړ?a˨ 랱eUr2jx;ړ -SI{-V=<2q˨%Zgnj QzR&n5[e'pjL#+ei{n.2;2[<9o▩.ge!2,uNnj<|}rTW3x-S>e4 -\C}LN2S;qX/K䖱;qXh n[WL2VĪ [uq -2O㪉Z4 kiYj`32-Z;DL2#@wib&h6ⰸkUm ?Z0΁D-;1q -2S72DW.ԲYPХG>I -Ӟ=,в #-8+@XCe-Wh;ZL@ i L?#-CUh|~o2keT2ZhYaU3?@`YOYep` L)c -Բ@-,l?Բ [j* B@-CVh.@Nc2ye|+ n]V+@ː B.44`B-C~jٓ%deeIKy 6вSZe2VhZ8[q%4/FZeGBP">@ -@OhCkk)qhY#Zǝ-KhjgYw@) -Y&L 2t,{n߆YD>0-cYk-츈в 'Z&yb LhYbUc -S,Y B40g2d+ 2Pka!0V2 ̲ne,ueXhfٓ"2p#de26Ȳ'`zLqwȲaY&\YvȲ# Ɩ ̲(#"ơ meb\CuM|ye]I[e nʁXCn[6L~Y "6"9 zcY&2[d8|e/aVdy -Ȳe6#EdhgY=d}2+$-Fe -;]iZdhYW;Zfi3="=#-뽛=e]pƑ2$_ܲ.K\WpY]2jpqn[|+pY2[e A%+PHV@-KO6Ua"3&@d׿6CBPeZt̲Dj+V[e2cвVYj+L,}4# +s`]^em8,,[72osoexTgQ`=4@d]K2fcd̲<[+YVWd CYV2YJY&.1^YVϑYV@!f(2Gjl#jYfL-T[e{j+j L^._[fMe͹Z֞6Z֐nC8`Pv[fi ز~ز^q " tq[W%/`+U[erY:yĖ[|:m 6q.;r}xWl-`-#.ܑ[N[o-E[vr زe |]Wj8J-])Zuoehcl@-C)FjV<2 [ehXs`[` 0O" 9|= Z2y= QFQ-i i \Pހ˚vu%l erS̳ಧcBBVnBdܲ)^`Mܲ --1ID\VQny);EpD\9^ސˬi3 gF -2kJ.+m72CXlprY_*p( \ֲ7ހn%e`3px,.c}\&wŚnŵO*pːpOYebX{-KLzn1[&(vy+,j[&[e*(p˼ֽᖵe[Vz2$l[6N[6LB䖡H-KxJnEj+,3-+DnY%vuoeF0muMs˴ʂswh4'p 7^6ʺ2慗3{.;(=6=f6X/Oӆ2l$k0l4?jv1`.Oz o. |&y˪Ԋe.;]tqLkq,k7]tٚHz}Uefth!gtُtٮ89" jHe0e4ˢJe5md-]Ggrtپ.*lDie3s]Fgڦ\.S٪n \Od˶Z>\I᲻-_&{.^~Ve\eז2h#t_/kp6eK߂_i2Sk}F?|D/9_vHz/t_v2" fzv9feǹh|U:ėJ=ė}l _MoT/> -endobj -129 0 obj << /Type /FontDescriptor - /FontName /EAAAAA+mwa_cmr10 - /FontBBox [-43 -250 1008 750] - /Flags 33 - /CapHeight 683 - /Ascent 750 - /Descent -250 - /ItalicAngle 0 - /StemV 0 - /MissingWidth 500 - /FontFile2 130 0 R - /CIDSet 131 0 R ->> -endobj -130 0 obj -<< - /Length1 6912 - /Length 132 0 R - /Filter /FlateDecode ->> -stream -xY tՕߴږd-E%E,ĎxbNNVVHJs2C3JNaZ&J-e pri'=C Q@KQ߷O5,׬+)\0Ov9ItIFK$6 iAdxsmy  ߴtA JDYiDx*h-K"ӓ$Y>y$~ ~1BL\ >֋ {@ye2`qXs2Wol6VO޿z_WyY2Vxhm]L}YIcoe[9{䙜wy>GI&2LρBa͢b3&EZQ#CNR)9]>#E< ⧘(j+A[IN%8EǍb7Grf -@=nPY`Ò6BeRRDt]nۏ!qО/bZbX;P]XT}eϺsv\gcό"/:kZjEEt'MQ#ueë[#&Wd/{Pj%lpMδR1[KhPZUX,1( @qVKAljy)hC+g9lqESEeȏ䏋gOyc.4((FPTID?Sc"Oݦ|ށz29e[mҺ鍹^BoߏOLii>3us%kJraЊUgO7 OwxZ}e ^eve,w7X]WX^'; 6o667Ohbr*~ca -hug(rJ%اDF}A`S %JrsӐҎv)и$4PkoĢ|ޖwÔT1w={1ß}9$Ky7LʻI3JJlbef)˔8f!d&0?~1#B/Og;XU+ZkJ#_&Th:?>T}]ÅyhC+W0*e4`.5^' -K+I]wR;1Hc~"q"+髫m%jR~ LXhU-Wrl.C.Sgdfh EOr+guJ~AEĿ;сوJ~?x*cwsIG -ȿva>+q'qw]mK_+R~j =y9L^r)3@ri؟g6r# a3eE䥴`K&17~íņ5J3侘g};{ߺatˆd3gFNƍ$0J as>C2wv5<*KLDa z$b:>|C܃bLؗO岨 *?Cɪs8F~4G4)sII'PL^BxL1JET7Xfs7nJ0ɔaULI6XLZ=$EXu0w9}tkڢJ 4c,Q>_厎IG(Gf;S:x%W_Es:dJu i*;H bH!_F25tU򘻴K -?m)?=5a4f|'4j3YYڌl<)~Epm\P.`ThPՌ\v\B4XN;0UI%bm#!]WaYԧIUF(&;BHfźm-8F|+{o]{neLkV1 :\7v|LqV++?x>et1Ci@1n$KJ廲ň~6|RDž\|J(t(%ovVUw Η:p̬1 MwM55As|nZ%'Sǝ4 .䊴Jb֫y^Nf2y,KY]P^l@. ɂR *v3Bƒ;Zg5⅝ ;6g'䬜Y.2y3sb29wG&bU?jݺUa**Rzf#=aU8RZR.p"T咣`]Uze+kJK̴FUز -+ tjHH&\SJKš1Euĉά8東ͧGjRc͍h<o շR ئ$lZ2G{gJH~9~8j&[jvɘ}};Orpď65fra)wҠ`bpߡCj=݁}/ե%b:P*䕞b&P2mm520OpwLJjhOkit&$RђOZҽlݾu}S=}'?dO:<^wZCx77d[aAd/ -F⾩v^ٜQ?/˷rN'^ƥh?C}R'D9KRM 1zvHPDŽ[Eni fh^\g Dfe[/68Ƀ-O'Ih#QWtpXH34m4Kc49.[yHå}DNA["C"@:/,_9gi"- S0 qF`V=4A=ˠU z%R+ =X#+:6#9Lg!ZYJ{K{ŝBԎ7Dĝa+J3"iGoFZ eUU^kd`ftºo]=06NLX;e3֎]{e呁S-S;hijbbxu _9n31I097y2"Eɶngfcx]뭿>Kj%|Fh(󗕔ڦ*>b|?mU ν1=M6(+=iAxy\&h -endstream -endobj -132 0 obj -5041 -endobj -131 0 obj -<< /Length 133 0 R /Filter /FlateDecode >> -stream -xk`2dh\*^0_ -endstream -endobj -133 0 obj -20 -endobj -134 0 obj -<< - /Type /Font - /Subtype /Type0 - /BaseFont /EAAAAA+mwa_cmr10 - /Encoding /Identity-H - /ToUnicode 135 0 R - /DescendantFonts [136 0 R] ->> -endobj -136 0 obj -<< /Type /Font -/BaseFont /EAAAAA+mwa_cmr10 -/CIDToGIDMap /Identity -/Subtype /CIDFontType2 -/CIDSystemInfo << /Registry (Adobe) /Ordering (UCS) /Supplement 0 >> -/FontDescriptor 129 0 R -/DW 0 -/W [ 0 [365 500 500 500 500 916 500 500 555 276 388 555 555 443 276 750 500 276 776 651 391 526 443 526 394 333 500 500 680 555 ] ] ->> -endobj -135 0 obj -<< /Length 137 0 R /Filter /FlateDecode >> -stream -x]]k0+r]uR/~@L^;aZX'999yK\vdɇUE#kZ وV[un4=ˠғJƒO3nf'45ZseKVԑsdt&WidG, >R{Q;;-4@kT䤹8Ӌzc[ݨVy9y&@)2PA)h(נCCt)@D#@J)sD 99 Y 93r"kșNG]c(xlv^dpJevrKo &| MGkhqeWx)r -endstream -endobj -137 0 obj -363 -endobj -138 0 obj -<< - /Type /FontDescriptor - /FontName /EAAAAB+mwb_cmsy10 + /FontName /EAAAAA+mwb_cmsy10 /FontBBox [11 -215 942 727] /Flags 33 /CapHeight 0 @@ -1043,14 +891,14 @@ endobj /ItalicAngle 0 /StemV 0 /MissingWidth 500 - /FontFile2 139 0 R - /CIDSet 140 0 R + /FontFile2 118 0 R + /CIDSet 119 0 R >> endobj -139 0 obj +118 0 obj << /Length1 1968 - /Length 141 0 R + /Length 120 0 R /Filter /FlateDecode >> stream @@ -1060,54 +908,54 @@ E mbkoԊ$?< N]w~p endstream endobj -141 0 obj +120 0 obj 1292 endobj -140 0 obj -<< /Length 142 0 R /Filter /FlateDecode >> +119 0 obj +<< /Length 121 0 R /Filter /FlateDecode >> stream xk endstream endobj -142 0 obj +121 0 obj 9 endobj -143 0 obj +122 0 obj << /Type /Font /Subtype /Type0 - /BaseFont /EAAAAB+mwb_cmsy10 + /BaseFont /EAAAAA+mwb_cmsy10 /Encoding /Identity-H - /ToUnicode 144 0 R - /DescendantFonts [145 0 R] + /ToUnicode 123 0 R + /DescendantFonts [124 0 R] >> endobj -145 0 obj +124 0 obj << /Type /Font -/BaseFont /EAAAAB+mwb_cmsy10 +/BaseFont /EAAAAA+mwb_cmsy10 /CIDToGIDMap /Identity /Subtype /CIDFontType2 /CIDSystemInfo << /Registry (Adobe) /Ordering (UCS) /Supplement 0 >> -/FontDescriptor 138 0 R +/FontDescriptor 117 0 R /DW 0 /W [ 0 [750 776 ] ] >> endobj -144 0 obj -<< /Length 146 0 R /Filter /FlateDecode >> +123 0 obj +<< /Length 125 0 R /Filter /FlateDecode >> stream x]Pj0+l CԒX}q z0h[lE^X gBpjV& :G:g} endstream endobj -146 0 obj +125 0 obj 234 endobj -147 0 obj +126 0 obj << /Type /FontDescriptor - /FontName /EAAAAC+mwa_cmmi10 + /FontName /EAAAAB+mwa_cmmi10 /FontBBox [-34 -250 1047 750] /Flags 33 /CapHeight 683 @@ -1116,14 +964,14 @@ endobj /ItalicAngle 0 /StemV 0 /MissingWidth 500 - /FontFile2 148 0 R - /CIDSet 149 0 R + /FontFile2 127 0 R + /CIDSet 128 0 R >> endobj -148 0 obj +127 0 obj << /Length1 3492 - /Length 150 0 R + /Length 129 0 R /Filter /FlateDecode >> stream @@ -1146,55 +994,55 @@ _U _`+Wd endstream endobj -150 0 obj +129 0 obj 2555 endobj -149 0 obj -<< /Length 151 0 R /Filter /FlateDecode >> +128 0 obj +<< /Length 130 0 R /Filter /FlateDecode >> stream x 5@ endstream endobj -151 0 obj +130 0 obj 17 endobj -152 0 obj +131 0 obj << /Type /Font /Subtype /Type0 - /BaseFont /EAAAAC+mwa_cmmi10 + /BaseFont /EAAAAB+mwa_cmmi10 /Encoding /Identity-H - /ToUnicode 153 0 R - /DescendantFonts [154 0 R] + /ToUnicode 132 0 R + /DescendantFonts [133 0 R] >> endobj -154 0 obj +133 0 obj << /Type /Font -/BaseFont /EAAAAC+mwa_cmmi10 +/BaseFont /EAAAAB+mwa_cmmi10 /CIDToGIDMap /Identity /Subtype /CIDFontType2 /CIDSystemInfo << /Registry (Adobe) /Ordering (UCS) /Supplement 0 >> -/FontDescriptor 147 0 R +/FontDescriptor 126 0 R /DW 0 /W [ 0 [365 520 502 776 877 776 276 622 ] ] >> endobj -153 0 obj -<< /Length 155 0 R /Filter /FlateDecode >> +132 0 obj +<< /Length 134 0 R /Filter /FlateDecode >> stream x]j0 :NCv!0rB>c+B^>,Y>F޽Qgx͡(Ai6YNܭs5Ujq 97e{Cy^_M{ŹɇFњ5/½ !WP\ g'$zaF<\h5\)G-DE> endobj -157 0 obj +136 0 obj << /Length1 2164 - /Length 159 0 R + /Length 138 0 R /Filter /FlateDecode >> stream @@ -1220,68 +1068,160 @@ x n:mGR4W֋]NV{wEyKҷ!r1Z:x=2oK5UO>hD(\dK:s;:KFӕ]cB.?ֶr endstream endobj -159 0 obj +138 0 obj 1500 endobj -158 0 obj -<< /Length 160 0 R /Filter /FlateDecode >> +137 0 obj +<< /Length 139 0 R /Filter /FlateDecode >> stream xk`d endstream endobj -160 0 obj +139 0 obj 11 endobj -161 0 obj +140 0 obj << /Type /Font /Subtype /Type0 - /BaseFont /EAAAAD+mwb_cmr10 + /BaseFont /EAAAAC+mwb_cmr10 /Encoding /Identity-H - /ToUnicode 162 0 R - /DescendantFonts [163 0 R] + /ToUnicode 141 0 R + /DescendantFonts [142 0 R] >> endobj -163 0 obj +142 0 obj << /Type /Font -/BaseFont /EAAAAD+mwb_cmr10 +/BaseFont /EAAAAC+mwb_cmr10 /CIDToGIDMap /Identity /Subtype /CIDFontType2 /CIDSystemInfo << /Registry (Adobe) /Ordering (UCS) /Supplement 0 >> -/FontDescriptor 156 0 R +/FontDescriptor 135 0 R /DW 0 /W [ 0 [750 722 ] ] >> endobj -162 0 obj -<< /Length 164 0 R /Filter /FlateDecode >> +141 0 obj +<< /Length 143 0 R /Filter /FlateDecode >> stream x]Pj0+l ťCP' K+GPKb-ƅ.13ð:g#ycc&B aѺA[wķd(DqpXz ;@|iӫF_h/!.B=t_~)'>N'95 Ԍ- t#2UTMv77`S6FUBeYY%o㈨r j!4}? endstream endobj -164 0 obj +143 0 obj 235 endobj -128 0 obj +144 0 obj +<< + /Type /FontDescriptor + /FontName /EAAAAD+mwa_cmr10 + /FontBBox [-43 -250 1008 750] + /Flags 33 + /CapHeight 683 + /Ascent 750 + /Descent -250 + /ItalicAngle 0 + /StemV 0 + /MissingWidth 500 + /FontFile2 145 0 R + /CIDSet 146 0 R +>> +endobj +145 0 obj +<< + /Length1 6856 + /Length 147 0 R + /Filter /FlateDecode +>> +stream +xY tS畾mZm-bY^Xm-^dYxmo,66xb $HHB0iN$ +NɴN@Ӵi3.di3v9l6F׻ +@Pa`!nCqY})A: +ם"{4~cz$^Ή']/  E, `#U(y# s3_|Sޣ4*]ß^]M驙;uX?gx7O @9Cx1ٛH;ϰyi|ށ:$<<Ox{``F6X1hZ0 `%eɿ's~sosr6`-{22L/a=8.56&}/p×2\x +1xN1 aAG䥚CDLFC^դUJ\& .l'O8wl.4u.$m.5%,I`O>/K0E~_ lbJ.\s6t)9m%g ekI\ h[|ӊPφngb :wO{ҒNo^$I "'lFٖ`暜M't#93*QV-y4I|'DdŚ$xg#mlL2>[H耿B#1qYǃx.1Fg[HaDd[xGtMn)}W0!2~ ?wPhjPPS\zR'4h't{z:J9C|E k.˸_]\f"+.e%A]QƖ3ܫ5$GrȡC&@!W`o6g}>8D斩ypA8[UlF¬ШjP2L:3:82G[/~HX_C:$q<(Ncx"+xEn/,& +K"sV;f5LC VV]p~ܑהlݟl3cƉjOaUUh}`ASsh`Cھu=kAe}=G6A_.g( #$lwkFyh-1"2q\PP0ˣ:ޮczPYN)0k@'=w]\^ #v$g$ x + 幨\U*w{E`QX9[%azsNk}W?33g[N]}|^\54*{͹-m#Viv[ܚЦkk *}{C~z;qs)vk)ϯa&P6F#P*Te>}/@%2*Srz)U\Ɣvt˩%ږ^{]S$-UO6L^8\=}kl+?9TsC"hG;G0)el4bF^ׇ /K']IS#R8j0Dk=*{q"5+km%RX`S#Wr,-.C.Wgd3hɲ EOr+uIuIEſ=ډbJ~7t:SS̕}#:[8pP +|V_+MVw;;IJ"$f3S-ph@0ri؟vq# i7eE䥴`O&6?–/=uJ7漐w}ѷ-q>V UTYdkώw(/E,y "@N2;yX*M2b淾k¾@."(9S”/TQ@t:+KHχu\؝ʗYNyB2Qwfg{`ZeaaezxpEP=oxo/.G^ز*??d?egxTu!WRVAt2;`ߝciR3ByQ2 f+VH58d| +5{hIրw3?}UzY5+y6{DdrwVٗLtʹ? UU~Ʃ+\f8vӵ]뿞=),*>#ֹ>}P˥z"U%"2RةT$i[Cf7CQ- +Cyٹ}AE箄R/3i/Ǖd6@JƧYҽ󹁾l۾}صS=3/H*2^͍h;ԁR_xsl[W.lϏ?gmcSxTOLdkd[7.IXa*Ţ%7kE FoD^JM- jťF%beijEaf WSZZ~UahE|n3lt}ѓ%wj:_-DZzCJiʨtGbt0ѝ#B[iee803:a[ό l [@IiYꩵ]tijbbx.myn+1I09?uR"Ev^gBν{[.4% dh( ۦkv)g6Wa> +stream +xk`2dh\*^0_ +endstream +endobj +148 0 obj +20 +endobj +149 0 obj +<< + /Type /Font + /Subtype /Type0 + /BaseFont /EAAAAD+mwa_cmr10 + /Encoding /Identity-H + /ToUnicode 150 0 R + /DescendantFonts [151 0 R] +>> +endobj +151 0 obj +<< /Type /Font +/BaseFont /EAAAAD+mwa_cmr10 +/CIDToGIDMap /Identity +/Subtype /CIDFontType2 +/CIDSystemInfo << /Registry (Adobe) /Ordering (UCS) /Supplement 0 >> +/FontDescriptor 144 0 R +/DW 0 +/W [ 0 [365 500 500 500 500 916 500 500 555 276 388 555 555 443 276 750 500 276 776 651 391 526 443 526 394 500 500 680 555 ] ] +>> +endobj +150 0 obj +<< /Length 152 0 R /Filter /FlateDecode >> +stream +x]Kk0+. BRp\B!ߘ:Ѐ/xZ>XnYN+K0[I[w"fS }mvkqTلJƢ2NvaG54Ud;}ckV1?ԓ{Fחڼ=J劺i9{bŞ> +/Kids [114 0 R ] >> endobj -165 0 obj +153 0 obj << /Type /Catalog - /Pages 128 0 R + /Pages 116 0 R /Lang (x-unknown) >> endobj -127 0 obj +115 0 obj << /Font << - /F218 134 0 R - /F220 143 0 R - /F221 152 0 R - /F222 161 0 R + /F270 122 0 R + /F271 131 0 R + /F272 140 0 R + /F268 149 0 R >> /ProcSet [/PDF /ImageB /ImageC /Text] /ExtGState << @@ -1394,23 +1334,11 @@ endobj /GS107 108 0 R /GS108 109 0 R /GS109 110 0 R - /GS110 111 0 R - /GS111 112 0 R - /GS112 113 0 R - /GS113 114 0 R - /GS114 115 0 R - /GS115 116 0 R - /GS116 117 0 R - /GS117 118 0 R - /GS118 119 0 R - /GS119 120 0 R - /GS120 121 0 R - /GS121 122 0 R >> >> endobj xref -0 166 +0 154 0000000000 65535 f 0000000015 00000 n 0000000145 00000 n @@ -1489,18 +1417,18 @@ xref 0000004010 00000 n 0000004063 00000 n 0000004116 00000 n -0000004169 00000 n -0000004222 00000 n -0000004275 00000 n -0000004328 00000 n -0000004381 00000 n -0000004434 00000 n -0000004487 00000 n -0000004540 00000 n -0000004593 00000 n -0000004646 00000 n -0000004700 00000 n -0000004754 00000 n +0000004170 00000 n +0000004224 00000 n +0000004278 00000 n +0000004331 00000 n +0000004384 00000 n +0000004437 00000 n +0000004490 00000 n +0000004543 00000 n +0000004596 00000 n +0000004649 00000 n +0000004702 00000 n +0000004755 00000 n 0000004808 00000 n 0000004861 00000 n 0000004914 00000 n @@ -1516,74 +1444,62 @@ xref 0000005446 00000 n 0000005500 00000 n 0000005554 00000 n -0000005608 00000 n -0000005662 00000 n -0000005716 00000 n -0000005770 00000 n -0000005824 00000 n -0000005878 00000 n -0000005932 00000 n -0000005986 00000 n -0000006040 00000 n -0000006094 00000 n -0000006149 00000 n -0000006204 00000 n -0000006259 00000 n -0000006314 00000 n -0000006369 00000 n -0000006424 00000 n -0000006479 00000 n -0000006534 00000 n -0000006589 00000 n -0000068326 00000 n -0000068349 00000 n -0000068376 00000 n -0000084234 00000 n -0000084095 00000 n -0000068574 00000 n -0000068829 00000 n -0000073990 00000 n -0000073968 00000 n -0000074088 00000 n -0000074108 00000 n -0000074609 00000 n -0000074267 00000 n -0000075050 00000 n -0000075071 00000 n -0000075323 00000 n -0000076735 00000 n -0000076713 00000 n -0000076822 00000 n -0000076841 00000 n -0000077232 00000 n -0000077001 00000 n -0000077544 00000 n -0000077565 00000 n -0000077821 00000 n -0000080496 00000 n -0000080474 00000 n -0000080591 00000 n -0000080611 00000 n -0000081026 00000 n -0000080771 00000 n -0000081370 00000 n -0000081391 00000 n -0000081643 00000 n -0000083263 00000 n -0000083241 00000 n -0000083352 00000 n -0000083372 00000 n -0000083761 00000 n -0000083531 00000 n -0000084074 00000 n -0000084157 00000 n +0000005609 00000 n +0000005664 00000 n +0000005719 00000 n +0000005774 00000 n +0000005829 00000 n +0000005884 00000 n +0000005939 00000 n +0000065565 00000 n +0000065588 00000 n +0000065615 00000 n +0000081426 00000 n +0000081287 00000 n +0000065813 00000 n +0000066065 00000 n +0000067477 00000 n +0000067455 00000 n +0000067564 00000 n +0000067583 00000 n +0000067974 00000 n +0000067743 00000 n +0000068286 00000 n +0000068307 00000 n +0000068563 00000 n +0000071238 00000 n +0000071216 00000 n +0000071333 00000 n +0000071353 00000 n +0000071768 00000 n +0000071513 00000 n +0000072112 00000 n +0000072133 00000 n +0000072385 00000 n +0000074005 00000 n +0000073983 00000 n +0000074094 00000 n +0000074114 00000 n +0000074503 00000 n +0000074273 00000 n +0000074816 00000 n +0000074837 00000 n +0000075092 00000 n +0000080214 00000 n +0000080192 00000 n +0000080312 00000 n +0000080332 00000 n +0000080829 00000 n +0000080491 00000 n +0000081266 00000 n +0000081349 00000 n trailer << - /Root 165 0 R + /Root 153 0 R /Info 1 0 R - /ID [<817EC9ADB938550CD0E933B839978DFC> <817EC9ADB938550CD0E933B839978DFC>] - /Size 166 + /ID [ ] + /Size 154 >> startxref -86237 +83225 %%EOF diff --git a/figs/rotating_iff_effect_kp.png b/figs/rotating_iff_effect_kp.png index 89e1d4c..0f55a6a 100644 Binary files a/figs/rotating_iff_effect_kp.png and b/figs/rotating_iff_effect_kp.png differ diff --git a/figs/rotating_iff_hpf_damped_plant_effect_wi_coupling.pdf b/figs/rotating_iff_hpf_damped_plant_effect_wi_coupling.pdf index 47fd2c0..03d8faf 100644 Binary files a/figs/rotating_iff_hpf_damped_plant_effect_wi_coupling.pdf and b/figs/rotating_iff_hpf_damped_plant_effect_wi_coupling.pdf differ diff --git a/figs/rotating_iff_hpf_damped_plant_effect_wi_coupling.png b/figs/rotating_iff_hpf_damped_plant_effect_wi_coupling.png index de2fd08..44813d9 100644 Binary files a/figs/rotating_iff_hpf_damped_plant_effect_wi_coupling.png and b/figs/rotating_iff_hpf_damped_plant_effect_wi_coupling.png differ diff --git a/figs/rotating_iff_hpf_damped_plant_effect_wi_plant.pdf b/figs/rotating_iff_hpf_damped_plant_effect_wi_plant.pdf new file mode 100644 index 0000000..a34b127 Binary files /dev/null and b/figs/rotating_iff_hpf_damped_plant_effect_wi_plant.pdf differ diff --git a/figs/rotating_iff_hpf_damped_plant_effect_wi_plant.png b/figs/rotating_iff_hpf_damped_plant_effect_wi_plant.png new file mode 100644 index 0000000..60dd3e3 Binary files /dev/null and b/figs/rotating_iff_hpf_damped_plant_effect_wi_plant.png differ diff --git a/figs/rotating_iff_hpf_effect_wi_compliance.pdf b/figs/rotating_iff_hpf_effect_wi_compliance.pdf index 6dfd74e..a18626a 100644 Binary files a/figs/rotating_iff_hpf_effect_wi_compliance.pdf and b/figs/rotating_iff_hpf_effect_wi_compliance.pdf differ diff --git a/figs/rotating_iff_hpf_effect_wi_compliance.png b/figs/rotating_iff_hpf_effect_wi_compliance.png index 52d2fa8..e83ee33 100644 Binary files a/figs/rotating_iff_hpf_effect_wi_compliance.png and b/figs/rotating_iff_hpf_effect_wi_compliance.png differ diff --git a/figs/rotating_iff_hpf_nass_optimal_gain_md.pdf b/figs/rotating_iff_hpf_nass_optimal_gain_md.pdf new file mode 100644 index 0000000..aedc633 Binary files /dev/null and b/figs/rotating_iff_hpf_nass_optimal_gain_md.pdf differ diff --git a/figs/rotating_iff_hpf_nass_optimal_gain_md.png b/figs/rotating_iff_hpf_nass_optimal_gain_md.png new file mode 100644 index 0000000..a949a05 Binary files /dev/null and b/figs/rotating_iff_hpf_nass_optimal_gain_md.png differ diff --git a/figs/rotating_iff_hpf_nass_optimal_gain_pz.pdf b/figs/rotating_iff_hpf_nass_optimal_gain_pz.pdf new file mode 100644 index 0000000..e1b6892 Binary files /dev/null and b/figs/rotating_iff_hpf_nass_optimal_gain_pz.pdf differ diff --git a/figs/rotating_iff_hpf_nass_optimal_gain_pz.png b/figs/rotating_iff_hpf_nass_optimal_gain_pz.png new file mode 100644 index 0000000..83ad3ca Binary files /dev/null and b/figs/rotating_iff_hpf_nass_optimal_gain_pz.png differ diff --git a/figs/rotating_iff_hpf_nass_optimal_gain_vc.pdf b/figs/rotating_iff_hpf_nass_optimal_gain_vc.pdf new file mode 100644 index 0000000..952531d Binary files /dev/null and b/figs/rotating_iff_hpf_nass_optimal_gain_vc.pdf differ diff --git a/figs/rotating_iff_hpf_nass_optimal_gain_vc.png b/figs/rotating_iff_hpf_nass_optimal_gain_vc.png new file mode 100644 index 0000000..3beedae Binary files /dev/null and b/figs/rotating_iff_hpf_nass_optimal_gain_vc.png differ diff --git a/figs/rotating_iff_hpf_optimal_gain.pdf b/figs/rotating_iff_hpf_optimal_gain.pdf index bee3888..e6a3b7f 100644 Binary files a/figs/rotating_iff_hpf_optimal_gain.pdf and b/figs/rotating_iff_hpf_optimal_gain.pdf differ diff --git a/figs/rotating_iff_hpf_optimal_gain.png b/figs/rotating_iff_hpf_optimal_gain.png index 1c9ae97..f659d76 100644 Binary files a/figs/rotating_iff_hpf_optimal_gain.png and b/figs/rotating_iff_hpf_optimal_gain.png differ diff --git a/figs/rotating_iff_kp_added_hpf_damped_plant.pdf b/figs/rotating_iff_kp_added_hpf_damped_plant.pdf index c18acbb..a143340 100644 Binary files a/figs/rotating_iff_kp_added_hpf_damped_plant.pdf and b/figs/rotating_iff_kp_added_hpf_damped_plant.pdf differ diff --git a/figs/rotating_iff_kp_added_hpf_damped_plant.png b/figs/rotating_iff_kp_added_hpf_damped_plant.png index 08d2e68..d6eb753 100644 Binary files a/figs/rotating_iff_kp_added_hpf_damped_plant.png and b/figs/rotating_iff_kp_added_hpf_damped_plant.png differ diff --git a/figs/rotating_iff_kp_added_hpf_effect_damping.pdf b/figs/rotating_iff_kp_added_hpf_effect_damping.pdf index 9d761ec..5170a5b 100644 Binary files a/figs/rotating_iff_kp_added_hpf_effect_damping.pdf and b/figs/rotating_iff_kp_added_hpf_effect_damping.pdf differ diff --git a/figs/rotating_iff_kp_added_hpf_effect_damping.png b/figs/rotating_iff_kp_added_hpf_effect_damping.png index 7930db8..6a1eb72 100644 Binary files a/figs/rotating_iff_kp_added_hpf_effect_damping.png and b/figs/rotating_iff_kp_added_hpf_effect_damping.png differ diff --git a/figs/rotating_iff_kp_nass_optimal_gain.pdf b/figs/rotating_iff_kp_nass_optimal_gain.pdf index 940e41a..6db27cb 100644 Binary files a/figs/rotating_iff_kp_nass_optimal_gain.pdf and b/figs/rotating_iff_kp_nass_optimal_gain.pdf differ diff --git a/figs/rotating_iff_kp_nass_optimal_gain.png b/figs/rotating_iff_kp_nass_optimal_gain.png index be51a5f..f0bd311 100644 Binary files a/figs/rotating_iff_kp_nass_optimal_gain.png and b/figs/rotating_iff_kp_nass_optimal_gain.png differ diff --git a/figs/rotating_iff_kp_optimal_gain.pdf b/figs/rotating_iff_kp_optimal_gain.pdf index 7b19af3..50e6726 100644 Binary files a/figs/rotating_iff_kp_optimal_gain.pdf and b/figs/rotating_iff_kp_optimal_gain.pdf differ diff --git a/figs/rotating_iff_kp_optimal_gain.png b/figs/rotating_iff_kp_optimal_gain.png index 5136661..6d72ccc 100644 Binary files a/figs/rotating_iff_kp_optimal_gain.png and b/figs/rotating_iff_kp_optimal_gain.png differ diff --git a/figs/rotating_iff_kp_root_locus.pdf b/figs/rotating_iff_kp_root_locus.pdf index dd2af4d..b81e2e9 100644 Binary files a/figs/rotating_iff_kp_root_locus.pdf and b/figs/rotating_iff_kp_root_locus.pdf differ diff --git a/figs/rotating_iff_kp_root_locus.png b/figs/rotating_iff_kp_root_locus.png index 992c652..1b533a8 100644 Binary files a/figs/rotating_iff_kp_root_locus.png and b/figs/rotating_iff_kp_root_locus.png differ diff --git a/figs/rotating_iff_kp_root_locus.svg b/figs/rotating_iff_kp_root_locus.svg new file mode 100644 index 0000000..5f95b27 Binary files /dev/null and b/figs/rotating_iff_kp_root_locus.svg differ diff --git a/figs/rotating_iff_kp_root_locus_effect_kp.pdf b/figs/rotating_iff_kp_root_locus_effect_kp.pdf index f081718..da7d559 100644 Binary files a/figs/rotating_iff_kp_root_locus_effect_kp.pdf and b/figs/rotating_iff_kp_root_locus_effect_kp.pdf differ diff --git a/figs/rotating_iff_kp_root_locus_effect_kp.png b/figs/rotating_iff_kp_root_locus_effect_kp.png index 00b0f85..cf1393c 100644 Binary files a/figs/rotating_iff_kp_root_locus_effect_kp.png and b/figs/rotating_iff_kp_root_locus_effect_kp.png differ diff --git a/figs/rotating_iff_kp_root_locus_effect_kp.svg b/figs/rotating_iff_kp_root_locus_effect_kp.svg new file mode 100644 index 0000000..182db49 Binary files /dev/null and b/figs/rotating_iff_kp_root_locus_effect_kp.svg differ diff --git a/figs/rotating_iff_modified_loop_gain.pdf b/figs/rotating_iff_modified_loop_gain.pdf index 861f0e6..7cab45e 100644 Binary files a/figs/rotating_iff_modified_loop_gain.pdf and b/figs/rotating_iff_modified_loop_gain.pdf differ diff --git a/figs/rotating_iff_modified_loop_gain.png b/figs/rotating_iff_modified_loop_gain.png index c52f9ae..be8b79b 100644 Binary files a/figs/rotating_iff_modified_loop_gain.png and b/figs/rotating_iff_modified_loop_gain.png differ diff --git a/figs/rotating_iff_root_locus_hpf.pdf b/figs/rotating_iff_root_locus_hpf.pdf index c48c0e2..63ed71d 100644 Binary files a/figs/rotating_iff_root_locus_hpf.pdf and b/figs/rotating_iff_root_locus_hpf.pdf differ diff --git a/figs/rotating_iff_root_locus_hpf.png b/figs/rotating_iff_root_locus_hpf.png index 82fb651..6354094 100644 Binary files a/figs/rotating_iff_root_locus_hpf.png and b/figs/rotating_iff_root_locus_hpf.png differ diff --git a/figs/rotating_iff_root_locus_hpf_large.pdf b/figs/rotating_iff_root_locus_hpf_large.pdf new file mode 100644 index 0000000..c2ae792 Binary files /dev/null and b/figs/rotating_iff_root_locus_hpf_large.pdf differ diff --git a/figs/rotating_iff_root_locus_hpf_large.png b/figs/rotating_iff_root_locus_hpf_large.png new file mode 100644 index 0000000..0335fd0 Binary files /dev/null and b/figs/rotating_iff_root_locus_hpf_large.png differ diff --git a/figs/rotating_iff_root_locus_hpf_large.svg b/figs/rotating_iff_root_locus_hpf_large.svg new file mode 100644 index 0000000..0b68650 Binary files /dev/null and b/figs/rotating_iff_root_locus_hpf_large.svg differ diff --git a/figs/rotating_iff_root_locus_hpf_zoom.pdf b/figs/rotating_iff_root_locus_hpf_zoom.pdf new file mode 100644 index 0000000..12a918c Binary files /dev/null and b/figs/rotating_iff_root_locus_hpf_zoom.pdf differ diff --git a/figs/rotating_iff_root_locus_hpf_zoom.png b/figs/rotating_iff_root_locus_hpf_zoom.png new file mode 100644 index 0000000..c06eee2 Binary files /dev/null and b/figs/rotating_iff_root_locus_hpf_zoom.png differ diff --git a/figs/rotating_nano_hexapod_dynamics_md.pdf b/figs/rotating_nano_hexapod_dynamics_md.pdf new file mode 100644 index 0000000..4e5892b Binary files /dev/null and b/figs/rotating_nano_hexapod_dynamics_md.pdf differ diff --git a/figs/rotating_nano_hexapod_dynamics_md.png b/figs/rotating_nano_hexapod_dynamics_md.png new file mode 100644 index 0000000..e5d7afc Binary files /dev/null and b/figs/rotating_nano_hexapod_dynamics_md.png differ diff --git a/figs/rotating_nano_hexapod_dynamics_pz.pdf b/figs/rotating_nano_hexapod_dynamics_pz.pdf new file mode 100644 index 0000000..a38d79b Binary files /dev/null and b/figs/rotating_nano_hexapod_dynamics_pz.pdf differ diff --git a/figs/rotating_nano_hexapod_dynamics_pz.png b/figs/rotating_nano_hexapod_dynamics_pz.png new file mode 100644 index 0000000..f53fd93 Binary files /dev/null and b/figs/rotating_nano_hexapod_dynamics_pz.png differ diff --git a/figs/rotating_nano_hexapod_dynamics_vc.pdf b/figs/rotating_nano_hexapod_dynamics_vc.pdf new file mode 100644 index 0000000..32898e4 Binary files /dev/null and b/figs/rotating_nano_hexapod_dynamics_vc.pdf differ diff --git a/figs/rotating_nano_hexapod_dynamics_vc.png b/figs/rotating_nano_hexapod_dynamics_vc.png new file mode 100644 index 0000000..c088176 Binary files /dev/null and b/figs/rotating_nano_hexapod_dynamics_vc.png differ diff --git a/figs/rotating_nass_damped_plant_comp_md.pdf b/figs/rotating_nass_damped_plant_comp_md.pdf new file mode 100644 index 0000000..3603c64 --- /dev/null +++ b/figs/rotating_nass_damped_plant_comp_md.pdf @@ -0,0 +1,1608 @@ +%PDF-1.4 +% +1 0 obj +<< +/Producer (Apache FOP Version 2.4.0-SNAPSHOT: PDFDocumentGraphics2D) +/CreationDate (D:20240416231006+02'00') +>> +endobj +2 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +3 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +4 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +5 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +6 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +7 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +8 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +9 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +10 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +11 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +12 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +13 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +14 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +15 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +16 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +17 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +18 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +19 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +20 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +21 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +22 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +23 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +24 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +25 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +26 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +27 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +28 0 obj +<< +/Type /ExtGState +/CA 0.14901961 +>> +endobj +29 0 obj +<< +/Type /ExtGState +/CA 0.14901961 +>> +endobj +30 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +31 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +32 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +33 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +34 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +35 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +36 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +37 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +38 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +39 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +40 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +41 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +42 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +43 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +44 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +45 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +46 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +47 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +48 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +49 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +50 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +51 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +52 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +53 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +54 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +55 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +56 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +57 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +58 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +59 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +60 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +61 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +62 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +63 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +64 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +65 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +66 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +67 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +68 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +69 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +70 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +71 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +72 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +73 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +74 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +75 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +76 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +77 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +78 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +79 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +80 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +81 0 obj +<< +/Type /ExtGState +/CA 0.14901961 +>> +endobj +82 0 obj +<< +/Type /ExtGState +/CA 0.14901961 +>> +endobj +83 0 obj +<< +/Type /ExtGState +/CA 0.14901961 +>> +endobj +84 0 obj +<< +/Type /ExtGState +/CA 0.14901961 +>> +endobj +85 0 obj +<< +/Type /ExtGState +/CA 0.5019608 +>> +endobj +86 0 obj +<< +/Type /ExtGState +/CA 0.5019608 +>> +endobj +87 0 obj +<< +/Type /ExtGState +/CA 0.5019608 +>> +endobj +88 0 obj +<< +/Type /ExtGState +/CA 0.5019608 +>> +endobj +89 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +90 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +91 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +92 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +93 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +94 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +95 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +96 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +97 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +98 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +99 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +100 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +101 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +102 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +103 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +104 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +105 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +106 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +107 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +108 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +109 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +110 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +111 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +112 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +113 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +114 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +115 0 obj +<< +/Type /ExtGState +/CA 0.14901961 +>> +endobj +116 0 obj +<< +/Type /ExtGState +/CA 0.14901961 +>> +endobj +117 0 obj +<< +/Type /ExtGState +/CA 0.14901961 +>> +endobj +118 0 obj +<< +/Type /ExtGState +/CA 0.14901961 +>> +endobj +119 0 obj +<< +/Type /ExtGState +/CA 0.14901961 +>> +endobj +120 0 obj +<< /Length 121 0 R /Filter /FlateDecode >> +stream +x,98/?0h$]@,fn$Hw2sw23RK:'D22t:Is[o+>Uc֬^ ~{J_ _[?}˟r۾_7 +Hh?_?ʯU_-W5V M P^6f.q[| [髤~]u} oq ׺fJ5s o~ _o)} oa~ }t'/|UӕRG/zW+^OO| ˷PNl*;`NʟCXXQS( s$**ףayEOz8,ϱX_ECϼƉFX,^oxXQS(sl.6sl*6cd} OņzϱP^96?1>džbCy=FV R[G1>LJCy=Fz۵[%&hV{iNhY_y-t%d;\+<, ы7zӛ_sFk&G/On"R=}o7Q/<7>z&^yr5{n"|M&WW&G/{A\9jO^sCsx'r~2zы7^,~!qp{522a*|M+K_xma87>z&ދ+r:śx/V b&G/ě f|śx3V1?:OxoJ X(>z&ތ Tm"?7?z&ތ)^S^:7>z&ދJdTn'ߋBW&G/{WB(߾ ы7^.j1 ы7^ $szn}M1}fߋyլы7^̽" ы7^DUj+|M#3&+G/ě1oaܛ1bitLы7f,a>z&ތe|- +~ ы7fLkƥNśx/Fb a?yދ3} ohIJZ})ɋ^\H۰)c[px E) i])O^l\g#""c(9r|n}-#r|YoWzj͝>O^cJ;4{F/ĽYƄ^-ӲYL^-ܫWKgB+^?}WdwǸn,0I4_]TxSr4aҼ6O7O77tO7TO74O777ϟnXϟnϟnoiΟnΟn͟nwxo)n1 lc@tt@xϕt@tt@xϋpayٌ-5k$wdf䳍?|<֩~J +7K<kS?CmcUgmÍ"ԏ6^v@)(Eem)\@y,+},4pc!cig{)lx4~pRq$nPpRq D? '%Em)\8y,:},Clզn1\HihX81)}WsO$lWÏLחvz83ojGhoZGhoDjCSo͚W,2ͿYmR_i7fK?߫-ex,&wͿ[URe_j>ߪ$q54X4zcoW~,Y1R%j_i87fK?߫{/e7k̢ 4ES obW>ͿYRu +_Y=V-=Z{E4XeCCeyhW?5W_iܷfY+?֑,(i㡂7f)K?Ԏ+"Ǫq/5P/p}Jq%/5P#X:?XJ]o֧xVe ?߬I"t{/4X~ +}UCɹo,6wYuBe7_h5f+~vjcQyب}XNު+Br{/-c yX7UKB"u[UbÇI+4c=AMwq +~PM~h]zg~HI96tc=Awq*?zql]?BgK=w?{rl]?,?4C>AZw qr!?z%c:A<9dc=A096q"ɱw G~FI?z#;4y:v<Y9gGC=z\Ym94gGc=zVYU94g=g^G56j?y_gG֍X xD\R+)?딿*hFO-]x~eVMύO5:0CSvg?y}M&H~z,K~g?4o?h^wCǞCCm,\?64Z[wO"hm6Gb0BSߥ٘Y~h|ͫw^kl6XiOU wEO7Ք]RYn<~dЅߖ6V&N]e. [+/9^!6SkYBvXmDR;ŧ!;W =`ݯ͞f5 s+ŰH3ҺaWx2o  @G0ûǓC{s'sL5u<7f6R%׍TϽ7SÌlX<tk#sZT w ^C%8 ~uM4`ʅg~ 0 kUҁM4 ϣ<  =0^`0B!6S>XC4?=͍ N+rA( t\z0 "񿾱6 O#=}˚x,0 K(ϯ1̮:9ȑ6Ix6"oq^‚vcNy 1 ׎7jcvk { CD/n/ mlufA Ɛp,M[Ld0,qtPkc?')XŌ4uk,co C a?֝6{Ja{+,gH]708.keM& c#Y*n_;9HPe +7w$6,1c2g U$$\Ǭt0mOBAMYSĖD+,R!C 5*j#e1,9O涊!ñ.Vtjvh%Mȫa2Sbcf؅wdu cO~1۵Ũ,tA@Jm8. e 6XMvb 3 6xbU{ѫ7V۫LĐreM) 3j +%4Y,;.n2ؽ (G*0 xl)-ؔfXMW${/p%$K'Øc8OHiCʻ؅Ĕ2o^t;G*sٚ\/ Cx:3'v џSbѮ{>0~ԄXZ6&5~vw`;2eX70dk:nRM..ǵVnOSK\e dM_?|.vt/`2a)Z_+0&ov]XC10LE4֜5MfCffC']p{;س.x&7^>ග9-t8ViC +Ƶ~듙%:2! dMtr%eVWt(sͻ,XƳǞo t*Ő@ _Xu{^k]b%0Xw 35W2_ cO\m S/*ML#a]c¾Z됌0 V_v1|3<+ǔs(YӮ7s0|h#Nlp֢%wp/ØȠwuT0>>jD)Nd܌S&,5A\˘K$[M.v+:\z&MSjsLnxf=kR]cDxm;`CXU5ϱl&\MźX`!eס'q֙nqr"=mP$2\#5>i2ftKtYC֥qBj0/eJVn]ٴf5S1^pF6":GQ (EX4*vۗ-gK $uea5 TR@Ӝ:Ε;v!4] cvK|3:ϥ 0\{D=k}e0P9 M}!wG-ۑl)["Unx +S_;4  QP '[;WK𦑩jZ0[^^e,+.I]Ve٢?]pX˖u}\vq0kZ2Eb`{>x'+e7&5: cGf`ot,xf2L"!d"545isXUp@첾?MkW:'.;<^^?cOUrVlc۞൸f^G-7ڰ:Sɱ>]W~eƅA G[_eX.;:i2')TOڥGhV6A rlx'lfC]+Tؑ`S.C+,-eksB Yc=P3HxRk*U/ ĠB +bXe\^do]9b0[+9bPaF +_5%-Ixω e#I~!]]/dxAcuia1^PNScwO./j7ӺXt5 s G$15uX5%2x!%[2EAcH ⺆=h#]ܜU7anp@cOH7 + vJҷ3WB˹[בY7MŢg\%p8bi? BX;r~A29Ss_Fj.mb=5nS- f5` ' l ln `N r|<7P6ts*nc]beܠ +(dH0 b:!-xfdװlp 7* Ì&ʰe˚A\[L!59 N+蜲iMX} L5^A:8ICGq^(pā 8b9V Iz0&OS22qjoS0OjFA{d>2! [@ZnjPf(,<ǩ.\8@ BݧC^I#K1@ \cE \AMJM3rJv32zQ5%RHge*7A75H2 qR1El^A75(shO Prnn*^!]Lx(ABVm 8(m. (.ZJA\ OBͰ=f=Efb vD(JUMB3(MٴRhv3QfgO1f!EH*Z1Vj-1*F 9# O ThI0eu2XtEސa75: z7vA\3ӛĠsa!%]q4nb0,eҸA7/r<xAĜRU14]%3;-)tɮ.7AHO.uAmO bӂf 5t c{ #U-*t56]$Q`)e?J AW%mp5%c]EiU=y&5 x>o(GN;>GZBf)QhZ9_󀖜R$=tx@@ .l1V<eKix>7̃ C׽FVAo޳|X57ʹ)6#gMvjA].ƔgB,|B n2Ku`*ͽt{0i:#GLt]=7+2Q~bgE#j=K?5q@\"@CK&{TUX߃QSvhL J#2 @FOO rt|-k+Fa`}ځ{V2BW `+KGOpeHG\̏q JĔCs +9emfpovs,Hn7M=٠t{reɆqW<Bx@.I[yc7w܃ۡ  "hk34B\!{M-vbL`) +; #qEĿG?XnH\SQKJ`ȪkLT u֔"Qrb@QBt{rOKJ-홋yrE& -]٢Ct 4SkP`^q{XnKC0hB1jMB`@GIS{w)@+#E,`unҒbԞkQ]=EY@ G| `t,^qC醑_eb QtnqqٛYnă{WSM=sf cg+QZ=%@R,e@̽84Jj2$x`. ӝS\bBE =\tҫ(rO[- d?ףr;d@v&yv02kTW#&`'S +hdRR6ǐ+=i_$5{,y)rEQo1B2 +/dyG&KVnvW{LvO*<81#%3<+ ַ䪷=. +@d|UvOr+I%b +@qLUφk`p[V*i@?̝q.{x.'b}.j LT1šTON̪|2?N٥^ԦX!G9Cnv*Ϛz(pc$ iW5v0N펺.nv`QyvŪ^u02ťb ĸĂ3`sɤx3V +0jX .tAYFuFIW{Ni]{ bA~̟G®1{'`2'́#m`H!((%3} `R ;q&K@#R9BB< =2kc\;]UGLnU} +vFژ#6W"άl=01j=$YqvM܊1=AC8{UO9F=ajeUwճ{1-<)`62vk4vk2{<ᕗ:nuVct} <,+݃*FVWO!\i:zr14]WcNhqW3{=׹(8rp3G9rpߏݦ{TM*i$2fOgq Ψ44I?"9HgS!uc yX>d44Ɨ,ƢDMP=G:K1{q]\Ú_ys5XzΰC!v)IS{H. V‚ʅy&p5f:rܘNUO!|{X'صsv5ziؿC0ٳ16򏰼9WpF+m.GZQ_>yCL,xRzei=B3d'_-CX7A(;ibTބˍ/h#UO;",Yڞ!얜Uzbqz=d +6it)Bn\4Gۙ=BƨȺXfhUcBzAC-tY,u@PSF0!Ê-HGZW ;!et)>Bn koC`!YC_Eb<ˇfC!_T4_$QVSIy ߨsMKī/]0g^0%/1n94Ucid@xtbȕ=.!`99\&[4z4?ʭZZru]nq~`USØ~Duϙ+ +5.]z1d$RӨ5^H5o!PsK$ۯs!P$ưKx0ÚlHG +fwU!Tv?'l`P3YkD?O @HPC@$;t)נz +>UOtq ,ZGB{i@< b.ZJa:lipL 2>HZqX*آ2'ݦaDr4׾j=U;ɪDlUAd<2TzrҖ3$ɺD9D1 ?2 &}٥ijAxMC'e̟-!TC"Sϥ5A`5G8nANNкzv1zv-̱?SɤސXg>C:YӃH(FwÔl봷32uvADN\?ix "WABF_xd)#sr3-7Ca*!DkcŰ"Ɯ. G"$c.l7Sz qEH(6L"$B>"Y(B:˭ULz1jsΪ] #Gh0',)B:FR)Bd bv(BB4FǨ` Ae%c+':0 A`U=!b蕋;Ԃ!rqj!b\6Fg<ƀ뗺:cHsc%vGR2EX*IQeÎ7T]Ɏ1\#;ZۖXIQ 9Ya!bB:^ɰS)syLKrjq&鸒]!9#t{`zfrmzX.Iz1bx^H Iqi1XcFֶIBnfsz1$iCXI PaG\]d0?yIm/vGE#@m^u=wac@NRۖPf1zL2Km? ;BRvw$<&jӮJvG%Lj1) Z428IFM3#bBOc̔x1 tβayLj E'81Uـ9bL7vԅy2z1Yڽ1>RGIp#FET5cR>iz^]HR7-&8IE&txͺZUr}G1b y B*E -xpՅRJ,ɲѓdr^\H0Zo<&%X`P߰~$t;0*O?+K cyv#Tu7XT~^]HwLH0+.DFe4/4i1LjN㿣1W'1)Zb7Q00-$[OHLeG[H +U{[ $`k@Qq +cCT}0mxe!tn C7>6G<4aGZX%WlkGRh&?.ݘ|;xSbQ"ƣksAUI2}wDyW*3e!fM4W"6s ac0%+ c*-sB|ӱ"5V}dSxX\NYr(_NYH15'xQ6=YL.Î[O악MZƎ1M +ݫ/%$rsLDF2H KT,LDf !0Β/;#C,)䴅5d; pBYyQ%|<\<#Κ)VLʣUvzb7Ȏv ݰ#.$EܩMs[ݼ#`\Ӥʰw$ԦY9}!B鿞M8ufIYG]*m ݬ#9!~h:&z>,&41$n7N]!Un+SYPd!nt(:Cr2H~\NiSL䴑1k^yQO9!S,C;rC<.-bL1X8'1bc̄:cĚ(:;FivS:$1,#)H*jt|80 +kxG";4OŎ1jlsg<Ƴn.(ebM;t̓񘜟ߥ?xLyL[cAw4#o%{w$)xy1bJRD3v#Y`6vyG-gxKKLjM͋ g;;vDqߋxm=Ysh1b%=,H@F۔֥ 7'?DC`K'y+A/1h`UtLSk1ntU cE4l:&.lӛ@/ϙԣ]}2C,QaAzG,,v+tL4]j{1bF!cRxblLjOMX!$咞|Ǥxp}Ǥ?v6&e!c@DFcZFvuËf[Au!T"kv$;DR#o&M٢՞LhMؓ1K3tiNvd%kS-kۇm1BUkA73(A"G]'ނ]lLj5s;6f7*QiVD͈ŬIKݰ$_iº^H#PwnnD.=m1iīnC S^c81X\֧'1ܼt&clj;F .;IXWQ΋'&A<&S5OnxB1I h1vAdHB481Krcq#EmLK7$STALp!p1bYho3r|6r `"ME<=9X[PF1fz1 ǨOz%1f zٯ?[]$5ŨےJ|ؒcVu2+~/410㲭ay1jtevǸ–x~ |4O<줺ry+.xMҽo=FຽoDHav{M!ت>Zs6v[ q۔Ӽ ٍ}cGA,q.u.*k`=F:z^1"ZHPf<6[IZ7v[B2`zLdkZ*CH;`=F^ur͟[ ju]mc$w; +c$+o1!(w#)}Ǥ&ǺwO!fo!SRvBB@*u1I1 BBbI+b2!36u;#AFab?eGH!k]:Y"mn)G"ŕ2 &VH =4'!sC#Mdfi"$$x S*!7gv;!)by6$c$F%݂# vԇ{ $"$}:d=ʋEkM&NY<aǜL,1ԣHZs )@L  ^x2H&珫=oCbe(eM>g&e$/.eS/Fv\#`Wz2FLȥwp)Lj$یRIjP3`S&4qw(6eegz)=D%ؔpK\fsT.e u.ewSuAM36cnv۔JM*4Xlʦn2V: SJYv)#˦/(->e ]}h&Ȓ-K >e~Y q>8qe6 >eKc_6JSvi.v|.I)^dO-M'1:Sƃ;Fe\W"G0*;8q'tlTv;DvtB݄O2-!Og^]dU2SYe؂U+sK'2nbJ;#/q;RkPaǫlom>yq5ۋN bM v=ΎWl_=qߕS"/~d7%( n[H<əiRD<@o Uy*Cϙv"[,Z9),"y=v e_YɹՕdo }{*7kw/ET*i7@*#FsV# ie +v +KV* +^eyܲQWr Y)y>o=b_>dX{()”oʔr"8ܴX,X%“Wliro?qR A\a\&GBhaw4+b"WPoVm=S7=[bD7(CDBʽg AX*85_#eJג@RHa7#ӆAfU{QX֒ɪL]4O 2I SDoU&gd!6>qO蹛`}#fcC7!qIqr*<}m #_NBp*5q@Lf:te T GE]XCNq ;!HS.*QxAΔN (fIU Qgq+*(*z2[2"XR4Ve?;X.7mcvd'#We*L5nNe*E<ĄU&KmZmGvspUyj{2YOnmU& `n_(A%yVX$)JhUtB +6fǪXi@s xFEMS ;:qϢĕq*#}ҏq*ѩLq2ҸR3*#F^32U׭ $T6@ΩLgb-S1>͡ͱ8ow˱dJvʥbީLM&*Dv)=& Fe2ÉFe:lKpQVak DR)'\Ysؠ ׹ QZ0.S3vYxZ4lYׂgAZ0"i-StzkFNmR7> n_ǓMHzkbߋӾb)UUMD +WŰ֍5]h_jdX,ׂq?-p}шklM~vįe`כ 'Z"X-}ɦ r1 pح}Ή_ 6}:3j)[4@8PVh7 ] 5h-b}J}tzk&OMai_ p(R7ٛBgTAà}=-h +g ߸R{ 2.u#F(51RByk&5xuˋ_ F⿙Z7b̷Tu+"(~-WIƾdI`NU)^Z hu`[:k(L׺MI}a֍DBM܉_ Fף޷ c+M*Օ ;no: կzIO׺J= wn%nm'kb&`U>GZ Ӿϧ/t#\5A_&` ;kf}ů#= _&ԔT +N pi!Ɍ/uMo_ė Mԯ%~^ZND +קM* V>nqf2N-į s=_ "vn!IX&鵯Р#}-',2/}-l5Kc-VZkT#n#}'S[y<1蔺 6I[1{ ,=`\Ysa^R7* +nKY5 ;ׂ`Pׂh_ N6ׂQŜG}`i9vį؈GbůcnNM0PS&MXowׂaҹG_ MiӮMxlS/v# `jscGZ0`-naX+vK`536/-҂UM0 %y bla#~-۲<ԫ_+FiҴU[Zûuz)9ůs{Byk4/vSSS&;׊q[z_ ԍկk,Pydaa(^Z1z<!֫dPV ƪ=KHANį.v׊I +ttj2fn2GZ=^$!:n$!}ׅNQ9kH'!Z2ŰSf] +K=GHz2O9k"~/¤]E<ezkÕ{Ű~c +IbƶjdUS 9B&5K45n#pIaGZlepML)cZ7 :vdc9 +GZ!] d]Nip6XO:_v񂗿|LY ;n +IK(ꐂ`{ Gf i3m;kMBu=I^!_kF!x΁$܎RIZE >@[2kW릉+M4;pqpY]J#[;pҗn֦'kMR $PuAZga$DCׂqnkʉDpQkt-U֖v!BՓ@?mRnЩt밑쥯u5LU rv[veOJG^Z̛;(_~îM9.L;tn}Qlܾα8_ +支uKIa]*Jәt-D=@.s2y;u6ʲPX+t F +6Td1H,*Ek?kXbڎٵ%O`<+_3 '8Žŀ"9H0YN_[tzd [ڑQuzRc|"9YjvnQ"ڑT'rw$!Q֎SF*UXc$ 9jOl`'TyJרz-'GŰ@ Dz-}AI:>=z-F~$oQZLu$#/S5(Ђx%ͱiA{2 5"vqT̲!҂X˵ZS2ULx3҂a<DSMm/Ђłҹ1G b-E KM; FVPd_6"+ ە-XAGEI!umakG cY4v^sҭ(zД?hA=}Qte"ԑjz"-yP5H w>?҂$̊"/#׌y#DքPcm VcDHZvhAxxTԏ$Ђ&mn&DN(o߫^=r jG6/,L9&=6a ^3'K~FDq)\̠%}F^›_AP9b /ht[6&+^ڑ'nk*jOt'oa[3YxfQ$ oxZ2}u$GZ=M-3r"hA%飖7/IJ/2 4+>8uhlB4mށ$Us %֖yA25~jtOQ&ҀQi^~I52 "mmJG7˨z]`j%^1z-DĺB U +-}(Fe`/tN6vXJ+/q 4Q6USiTFĹsnbgTaՋ^ ;ykz&NPɼtӂ ^T519jӅF|@GX^\\y_v|*6AU~y ck)K%Î51zF^X@2l-}$E6oXpvݵA;K2uͼ +*#2QTU9",;onPW>A9M! 6-i}?`.Zަ1ʲ2شٷ +6 TmDnFh*" ̃8 +6d9`naN[R%Lzkc^烊:lz_P A^,-gAE]TGl}La-MFXd6Wb +Ixl!UƓΑ5 ļK>LӂWVU*G[H繫xпV)ʑQ-\RР(vf׿&u[UvX +78`cё16 `Cd ;ĜRSP&6ikk\k'y>BC'cVӿ:1M7j&JTnR3M|0i4/-,tj\&䯅N+%L BOC{йAZX虃[ZHm9IAL5USkaaGZ(APS fܪ)Ab{ksw:Yzz'#H#@6d∁$&B='~$9Mi_ )OBAls;j_K^(8kb]&důq&@ T{/Yg -Bܽ1a~-9?Z,7A7}kk(Z+zV'Ty-Î51Fo@ +SSeiV>:tEԯ1g/gԯIN?ޫ_4~M ҃:M3DV9i/-TrPy ˾f1IFSJ;J5oPͅ~MtU- +jߛ ; 7Ttի_S~M)}M X!-O(?uׄ5Tתzr51xRŝ8;lqN#H}Gxd_a@8}vVEe̔9 m¯o5'` sW+G[ZG~_N~<Eq7<7$}* [u/fIi~]IVMZ*;@xL aq}dBV #f?ipoD5} +Zvqϐ&Znq~_baf @w"_-3}3؂` 'XBFphVh=ãrsrno=@hL3%ڂF'|>I{A_M8Ӛ,A)|*k4'Xr,D_U_E_;ֿ^fnߕ&ZpAro}⭧%Hp`~6\8.=?/k4w(|p>N +7|ƌ^U2 TZs<@bO?]{ +zX,K~DxN_}zX0¥mO=[_5h|f[5KK \ dBÈbO;DJZ_cވA7h#eر96ہd{-w9?{-w7YoΓ+6zJVZ}ha($_fΖi^~ l<@!_1yt[_# }qb3 N 7qN m{>^72p^A2pۤ?QQu‰b +#䘻Ck4,?B~ ׍.ف-O 4'5_+MGڴ_)`!ԦL | gz? BV95d B:~{G!_1.BUmo75hh~{zf1WFeǶ+K ٱ/{NjϏ~|'H7Mj,A'"f B;&~㳸'4btxyPO,%)NziW%HkƜ[a R( װ_%D$KPvڗxʋ6%s΅?GI 46~LAh٪'!c- +ͻKY}]NYM\i=cI}l +"4?LA7qhxOa +F#  z)6LArOSvS.dęq/\A+ErhFm]Ah7 +Mw) |!=Ae|Ξ M1 "3Bmmѽ'&/ ҏB ?gS #L)?:XpLAr@+98:ݳ# k  OwZN_fG m;zv`=XgG:k8z#d DS0eKDz%HFgNocf̞-Aؒqg1^S/GʳM]ώ \ɻs'[h8(#I;"/BUVM ͖ YeXIÆ#Z=ˢ8i Bsg/% XH( Kе+SwZ1Qʖ 4vA#%[.mϙ-A,/PKy)u4GJ[ɳm5fOrho_mfOڽr$G3/{8޳'H6mbmx3% +ۓmi;# /9" rc[O$[=@[$aeOWklY=9l!fc?foNXt^Lu+Ar6L#]&MGů`Q#к4 A(nx憠Kq? m0 w{~dKW<g0,OY`a;T2?įf a.fhgI)LKOYP^}h3LEnUHvKv$$pćJYsh-fh1Ҍ0S%ڲISn* f*޵`&x5M9 l㸪`&C2`"W@s~m*w]&LcaJ/C)0ĹL#)dL$tC#szNl^ m؜^VŒ^vYRh3 .|Hhe:'IKb~Je:Μ]HhG"x2Al=|sZh2ټb% M_._ +F`"1yd0lHH2OH"&.e Me9f8ytE|F>$?GeA\) mt#l҉޲]_#K,tK+Q% xd JKeh@fӉđ% Ͷ^/˦M'wh2AR Nq\o{V{Oxf93Tdxi≐#Rt~Ev#BzJtx]&aA?t"#쉊#]&Z_.ׂzY?Gٌ.ãakj{nNt"g{#qz쑏HN}Rt"4!Kڠc?eXS^r#  N% 'F {2N_i`b hՌt) xyf>:nbeb`ţE٭q&B(й"Sx6jњe"2ŵM"9O3xDQoّі[dGҶ @7 KLS3j}FXv$mc25zhP$/넸U2/kq$m HD^ߟ%{jvU~Ȕ("*;WQ&meD !ba3r+-j-rrvًvy[EnƭG5qD.{RڹBYWGu9Fd7~"L,3^Nh8E&qߎW2OҲX(JfFniQjCW0^'kOOfʌ"y;U^'")3^S;(zYٍ֛]RgQb1r1^Ȍ"ʟ6'h5]%>]FE{DD.˗N-D(s]rtj>jv(zyibQ}G@٢ڢQRR#22U(ghRj/tP mŗM[3%m'QO|Ԥ;VS6y{\e/mTF/l_, ׫9Rqx=Rr٣3N@hE&u7y +TfbC[f/H(ftتe QdOݚ_F_xe-DΌl#+痽 +^{o_ʓ QEq 6]Q/iz'q^9^' 72[+_?2Zl^_Ʊ= (K,#E 4j~i'+ȣ!S*.ulC/{U(c\/3I_*=Zքtbw%8'C`NFO') +Xj~!/']%42W6CQ Em6lϴE=[-2^IĺƗqBo^~g2{-@ ?P7jxM4˰&\rhPDoDGL(z؍EtOvmt>Ga y']:Xudpw[g<}G\(2z8/DB_2ڽZs˰~ g?|FT.{U]cH܏C[e3˿B. Ƽ{e76L5%-E(ɢ(n貛̾'A#(2{}ZEY&iX%ǃP +ȇqHWmߝyWlGIeL(2 4)bj4ݒ[<˘)FZ1R {iNo;Vx*7@zikzvn%[8E^`PX "ǒ eTt+5;9jvTX.caG%LemNS:R}-N֦69diMk82«]n˱\5kVxy>Vx]v /c (["$ Gh+ m2@]f7 -}neuDX.cG},Jv$#m^v+$a4272cZ26ٶd"/csλGi/ӆ(nd2 +%l_F!׭2j$So(s 0u+rH. f6g_M0rt^J m%Qq7JKΕ?%w3fܝS̨5M3rē]r?:FtV0dgO ~5Œ$c񌘲a&${H}f*g=f3AfZ3Je fG<`F &Q>`hdcC% 6B%GwoG{kcKiբ$ +Md]3/n[Wf:a_037PS+蚿?fd"]3N(Ζ#V"#VgзoEG۷C%Œs+%Œq.ҲA k_G8-"HA\ B$SD1=fW(GbQ1n`?#)fR}brC|A%Ōj%+[!Bgmv}LV#<В?/D 3 `>͒? |qٻ]3̰n$xwqߡ:z݁m5 g +Yw$E{&RHM^??, f߲؃NYAOeʆ`ψ"K mad3׃_;fROR1/В9mҫ9nd4bʒ9eCKWL]3܊;˼"ZG]m$QSW>!fLl#l2r줘WaP]a&4&h0>ixC!f=m;2ڣݍՔ3ً]BdYV 1s4x*" +" +]!'%Ls9LsFX"3IWCTE&,nstS)fhSwE +9bV5,4%LM7b}1 +r_M1ҮyeH)fV)"J~DFE;&uEI1S :7t39J]'̛lKϒExG(vJ1SV&IYS +iv-ﱻ*"Ft!deb8XE;ՄAfdϒa۽rؒ %|TEvʹ4I,eYE|E#dG 1S_ 1S?5 % w*ĢKYC!fj`WDz"^|g5$TxEM+}3"Dzl,+vJѸN6i +_Q̼/E+R iY--ӊ +G0&\#~~i&Q-j1I˴"l|iC["9uVd +^NΆdZ"tU$Q!'*R$1Yj#l ++so[2 +4/w mO$7+V9'B+x<&`FŞ'2h 2G:[A\5?f3 I?K u?!st> Jʻ +VDP~ZQ86E+YHGآ)n;3DUO/ ;wQcEeb"9y`&ණWT!#_ ChE2RFh o%Lńm%=e`md3653H? + >IL0я#*?eЉKjVPEڽ <`6\"(XPEl$vF`&3mmvN 0C|QEor"4,NO2IKflr 0ޘ6!M3^7["%7r|hxAcehqT?UD"z2mVg8UXEzw>GFb`@#lNhGF/Cb$ WUtZġt42mm"["Xs6N"5 +lJݱ6̴WR%z hvc!@fk+$5*mF5хFiE,'_l B{&Ц51%L+n*rkTr`!cSrt˚ foIY__/kjQ6д'!=#6ȴSj_2_wRJ|a{PiJ|˸0~_;_j+i,"R|YShwdM[Vk#_r=vkNeM-<>2-hj]/cmaA4jC 8j0Cc/mSk:l7i :h~5 qDаhnfZp Bf2Q_M2KX6^7X`O~/2; 5E +Ⱦ Ę˴؏|ОHi ma>sʦ1W6yJ0cv'-E!=[u6mA>Sx9f}Bfh8duKmA]_0Lڲ1nalfh^W2417B=UKfv'RrY' ޖ\Ac6!Y;8}#&giėKfhTd 3#Z>4ق4U1h#lv2P>av_~+Hm m$ +BÛz7 fM$il +bo;Dh"(f1EG0Cmxշ1`uF#P 1`nlЦ)YD"8EiHaal>qeGgA__0'5d1 MlBMC/qBsě 33,tc(bd¨9VF;˒aQ#~af}6 A0@|$a@%|}|f]>L~ #6BA~ 4 3=.YrJû/b03HK!fgGS3l3%~ŊWSlx{[fd~aRt/9vH"-9peGfL)fh^ b-`D잲'H7#1dKxݯFe0_0C#k'e +u6ȚjAw` Q֒vp3wIނfh@vt6MkA(jh9JmhQMx>֓`-µܨƲa4wn5Sڃ86NFXOTg'Zm<(թFaZ єVa-p jUC%kjUkw|{2ZTV&;҉`- UMxeua-=>eBXKrZ + +bja- [ևZn?Ek׈i pnUC["Z + J͍jH찎 f/$g4h/}jhnBkiv =ѹO}kXKcSnc-̪wl![pvu TjSCk.w!)R{3ZA3^X=Nki,7d.&q=9NXeI }064Q3=9#txmp v|XKvC[mjh Wf4B [ԉc-񠽔65NcZU4[ɱnFSC{8ҨE)+=զsjdeJZiuZL~0Ҙ# "c򟟡N5Y!c8ҩс3pX)% Zڭ c->ҩִmj*ZZ'kթFǤ̱'eEd<ըv%UYN54lɱY8hy1N5yln 6_TkJ\7٩ wTCyr@&Y#kUN5E)jHsB kiW}jMY?k]c2.*}jhz{XK;SCҧmSS0 >>54vwW>:VI}jM@ +tnSba8 Z Ҧfk7ҦfȮҦFc VjS yVڥǷlec RkU)m"WwG3ZgnjSCb>k-A}ШW ݇ҥf+ңF9@e54{գv0R)(}V*S= -8bf(=jhxb,գ 7btxzPHEM|٣<޿k k~xKźi3?db)8[5ƉܥfKpT5! +ރ\)hDIR2pfRkokOwC[mjh4;^7ԚXr/(ׯBFbCZ}jh,c)֬A'YԚŘV֝LT-եt]aX5pÿ0W5ڵxO }msFQ\ܧƒmeGK:k+R ֜0h:BhYXxz1 ڻEC[ k4b[X!QjkUbfpW5N /P̰F;Qڬ5_5Z4_l(MRHGkyn2MԤ̯V3+ڴe7bW~5Vj4A/jeh͍-ůFۘ@j/Fs4¯Fë6 Ι_=&cEʅhb=_l1\)k4 Wp/ Z # $sj47_6Malz "рlmT>^ݳT:h!݃ЛH_|75;VЅaM'wZ霬h&O m15\M*H kN$=֋a ӹm1I +hڿ ' b* +ĚζBM/5 h m1@GœWޞ鈯 k4fuS2u-ŰFk>g5;kHaԗ`X7ulk 2nDt(h+mT(Mk4\ZbM}Ӧ]!h$EeX#Fib=ibMl=Kk48zR(hW3pOXApDXcymi6b>F'O2ZĺS7EN~DX1_ U/v V*9/k4@nkӘmrn"ϡp67k4sb)k$d5 +H Z4WF#ö^k4tX#,yk4Z͛)HfyGyXzQh)rWUXsFz=,ŰFKo-5ݲݭ0a-n * k4< hb. k4N kiQbaXǾ` Z4 ZB[k4n?ki} KEXγi Zz!5QC[kixe5Chv1m!β "Xt\?] fqAXKKA#a-o: +Z_no ki<_~RnZo'uh c-sx]XvYc-2oI.9i\ڟAC[ V1z{;f5cQ0zm 8bbР[}1kp?xKo,k49SA{\C[k txtu1A9;N53Z#>>&ou ~$Z8֚al Juq4uԫB[kMuܩ9*G$W5SΧxYk«^dݼcEF5,0Zp` RFquSUncew:7hņc 5H4vizڦ͹c!Aʂ>P)ZC ~bb̀OsXPy@^X A]. J!`T(h U'wrfkm8 qqv`}zQmGj< wk4R}3C[k6VA,ߟA^km`q0qɦ 98{u0CߪEgd͇ޙn|/ kW#, E_I:pj-RM$k^Jo?$k#E@tU'P3sh25x?::̊w`?HGl{Hĉ-NlHDGb+Ä;BT/V)׾C!dW7xz:(Nn5!d78ez= _9V-B㏀H7Ki!t+bS pcQAmW|ʯ 謑}_AgҤnuo3ƺq@bk0<AuRK,P  %ͬ_Bp잎xug[%Z ZrqX%#,~u|9chcR}:PhI B,܃\BaiX7W>R!֍@[Qۀ_/uS&{3~/NbЖA!bC! dPz4}|d,!321d#LB[g[d[N'G°\+)=|;6y_uk{c]"ԑ bPf%ޡ°4S2NA݆B)=MI9cXA]p`0C[.N#uA^ h 8<|+bprs)YƚBW5]<1PUA{x.TTE?J S8]13ûlye&3eO^q1W5;8;:gK m9lkruXة 뮢*G.ePo cҪCFsv18;$kPB̍WSf5-a;xԓcfovFs b6q/qrtm B0ݒAQ/0hvYi`e]F{F|Uq ѓKx9@뉱FK2f`q 1{CBƨKvMћ/2-ZmЖO`}ϩ-cCߴb× k$T\B, ðF}80ђѹ@e)~8 tv #:8RlݘF Xn +]B49]_X#6eb-+r@јؑ!ogC[&C X#a3 FռPlwKVLBPQ$tZuXJ%8Iˠ'0vTXcRvMp /Ʊ8ae|/6ç=BZ6![lVk4# +Zhv]0hb:LvkD- d-a@M%&d9/>o t/8W\B:۠fgi7[mIm=RYH$k$Fm!Yh}sBb!eS(UЦKȤq k{J k4w:uҾ k958dd>e5=q$t,mC˳I՗@sO(kٳ;A~\Qh<5]Ѓb:1݇6Q9)e-ﶽI ̲w6!S9_WYxie`܃_XH9N G v[ȼ-#ì۞HKdq/[.!$f=aY#<~^`r|ޣGq1 iEL\}Y>0k4XQݙfFji$tr m̳Fcu/ў g|zknX凜 F;m~ȟh|Xm/nMХGgshglh-/7SDkyCOenc;P|Bp1IF;<*{nh)|w}-$Zā̳Fi h%zb2 [_@k$VGT3O8 :%>aMgl3h|623pFhaMg'z?bZk"2ZrxU55 F H"NӆxZ.rZ eYX]i.xKoI+@kq -V Bə/m=]gt؂h*-xٲ?>{ %MưZi+*ؽ9 WhXWhPOO_xl6ݱh-xOPV/{._Z+] [x.zpC ũu=Asx. Zvq[؇B;gބSx֊8|&Z^ +mgy0ۂ Y+Zp֊?K~1 Ӭe;Ѭe궕_Y&>R2B 2{-_hhTJ golNx ,'k}'CVl*ޒZhhgXfme99yd7z&Zm[o_^hֲnZzZl&eYV*Ԫ~M5Z'l B!;c,릎8ZUuS+,kfi 5ڥB YP.Ѭmr2ͦC55hz kZ JvR5I6_-m3 VyB 4?X{|]̂{ {q5Hgh>  ʂeA5q/9~9➅">{(ov#26 T]ZU7Fqa+֞s4Eq)(Y8C. Bli%0:ﱒpl'K=ˡfwT{Xn42J|< +kM$,Oe9[Ɖz/ݙ5~yлRKt3cϚ^q`w:pʏjOa RLډጿ 䃶-Gkv-۳p ^P5W?%דm){*N}_ly Wɩeyoo% š$9PVd{490m1!qS[v,ۼ31m9Ęmyڌ1Sm?1fh>1fhͧĘGc4!5{Dy3Q;EN:Tzi"Բ ;59"+c*sU>)fz߬mܝMHTIOa  \R̄N}5 >lBR0c?n-^BSt}btl2BB;Y})&.FDqXGB1a[3IpSOĘ@\ Ufw|:9fH&c,+1f:90;A/ǘC4g@3HF8RcD:@ ^399Ld"&Ęٍk1өsƟM8/9fhgץkMPK%bsN^=H95>#qsN4_mMPtȁ?ك\%̏-V1C~ёG6stzqVrЮq>9f:^ݦ䘡orK{hӄ$kO^110-c&bwf3Fc& +Y#4yلfoN1)sWsОOZ1_1e&Pi!<_rn#3:?9f~o+)ل,8F#b&@̘"n)LLl+ mw3û~5Ŭ)\a))fJ|knh- :_I1CU9OhS% -WC9rRͷ {h3LAUbF{=J+/bK6$.c>SÉ@3H4E +I1f){1"HA(Bh~ȉTܜ]}H+J˚pm 3lk3&b&N3yPU}H$7d3٥?x#,QoRe{#pN!lFA_!!nB<6CloȽ8JNTR"98 1CR|Hz!BI+>$JF"G"'2 }[Zv_ 1C` )z%G0ڂڂ<.mN1{죃i3@+l{DeHˁïDdbrپՃ2"= )zLV 1PɈ#-.C^ >HOjH c6*|@_FKM{-Fѫ4[jˊiQџڷ,xyy8*fDAhF\'c%}>R2a}(|"3j 'zu=2>}qDm?t_v/>Bd#l99'+v?o f` `W8`< m4Xm-4 6Vڷ&=4`j39uAF&OV#Heη_/ gB&͹_9f#GT2\@}T[sk2M>n9jE}D2z͗Ɨݘt&5[⾏ܩ_97\=`"ӎ٨e~bs/ؖu2p/o +e%*ƶXnUqʍun%qX_vk/?SeT|_k|pJk_&Aڊ/|_6E&)xWnD2Ȓ_vct`}Xy!d3KF(_!b&헬'RIDwD 1=2X3\qrkI4ѭ2#l )#d5Oft+l".[_o6ѭ1,l"4^ 3F.fhloI +G3T3VT 13E6wh+ 2ԄDLH 1C)r1TBp{FlcbvkIbvkM1C̝ڂi>@3|SP*bbkNS)Ov#,goQTH|YD'kr+J6a$Ĩ3$:"(#akšZK̓-9 ic)8ߟ 34򷽦R3̤"GNY0r4' 3_ٖqZx}3\ófvDY0a6-'솹a mE駶h߆DN4|"˯2V{H+L? fhp|} fhtw$3r[5?Ь fh]3E!Qܿf@[DxrR0_.GzoMɷj}'Jm[(3 !zZDw~ϡ3 do&.''!-<sUM0CxDX0c6dx1aFKoM0c&/W5AXsB[p"c%LSz= $icD'ϘjVMT#l% 6fSn3]ml|ZD,K[DhOWM'Vm`2UJ*l"\uM5-A%_Ɗ;M^p<VI/C#O\jzgγ^MNF +5[^vllT,%LDmk +-iCdB0“LPw@m6tbXM/cAs ]o{2%Ox٭52v(26F#(A˨(мVte Vwnep.S$|?eg+"mXW˨&q`$yDԨe78ju.~u\DԽ>Z5Z&Hep\FU~㉯`=$QC\;\FqmjrݛUrr?H-eTOmU~Kr[䲧 1h%^eԍoN_2 +7T^oGKR{h+́3Kr٣,q2(3o~Jrƒ^JrET(1H'[e@h1VrÔ!_]y [LC7^F4^9adw28\v /d đ3.IeT|klA meqg{y[36S?e Gٲqx΃\ՂW'/_9WgXxrq +jp嬃dfI/{DW 8Q8sߟ2J]EBmqM9ekxEJC.$H+elyuxifQÂ]YDZk|A&Y2cU* \* y6kKWlAMT{BKklA@쑉]F>+63ĐT +meaŠL?etOWhgez)c3ɒ)$RN) b nMF:Y2i۪eTH8R{ .Fge/љoL#tg5 ']Ѧ5 w\'%NZN話e7Hy*[p R[Wc˰5ڌDHP#Jl[Q#,^NaGk -S׈)d"ngOjnclzTt[1LOWjL[ؼ(eh6߁d*e!CrfI,yJb,~Of\ݻ5 _MY&32/e %Le5[iF,SUV1%Nu<H3v)L7]' dxERm-%Le*82"ݫ*Kd Lhy#zh3d ȈrOfc{W[DRF-ScAYwc3 2(B-8`6\#|lf;iY)LMa?YgMDپͪWaѼv+YB")24D18юr֯fIfu63T"-&w hlB@<~3_,Cٍ2(uo>:lF { +hu8c d2mۃ'L'%Ep"= 'd\D;KA+en#-6Kd6E/Q˄X5ǜX +7 톂CMs3 2h~XpQS.le uDPKۼ"[D9L[0Qx(p"rOaWFܞ-%LxFX+CS_~|ʴIgȜW&#i)Lq7Keh71qPDQ}a1N +nsXf^Hj)yer8"5;m".*ŕi +葖D'73҂=8۸D'&kf2md1{(2qRƔVDXüYTjvS+kkmƕi㹑6iN#ʩĕi{IX'#2+e O- +D1B96qRXeBq El㛂_+%ntmF2t&(l?qeh7%ȷ,"fQW&ܛ Wl` tP)kڄ]#I))O[=Xf_n=A$ٖ$ Q) ^O)Mq.S鳤Rؘ;0'ibmSh3Gצ$:.6-j/eh)Gpg,c?}lZ@;طiAnfd6 xN>fdf]I&G0O -H4j9 ZH3uK6#lKڢմk4i狥Ȳ&hO~5L5_2-,L즦qz)LKs62u9`|xNJfVd?1sfX{#9rfVc232XW3˴_Ά/)ˮ`sfYSq̋YET\+(Mkhӊg(ei1_3nA` V.wg\=Y$gh3LK{MkP@LGh  +q3eZ3Rd9ϕYjFj,Jbu2=VQRj DgN-cuEUr!=f 鿳f# Mi>B2=ͦ3j̖A]L6S4SyI-cZݮٔ\Rk&KjܓYrjy}dѥ2@GJjYS|g2t1堪Zd3L3`"߯Ɩ2f$#ah-LH+9iF3%Lۓۇ Bz_\!2`b2M;7?.eL%櫮 B,ڝ1Pr4}\~o3l斡yAśq6Alu\-c8WPQ) nzGh3L9YQAhC ^{$ιes=0u@ٝ}Ah~/K 0&OಮmAeɶ x˶ ;e +_7_ 2ƴci˶ il +ByRI-c! tfnk-!% I/tV(i'\f{hĀ1{QjI.`1% H(2$g0yӲ3xH̯=yg3ezv~-x˿xRG-#h9-Lj4 '"'-H7/sx(hmj-BD;6mA]5[Н)6EX +-m`;q<ZֻR\A5dV7L-Cm43Ц/f&i6|A6[ÚCtC<G%ˏZv?^7}A~kG2L-CGzۅ6S˸Ц3HUOf ɺkoC!ۿ{ֺߠWƍJ2PWtE'\Wd5iЎph|uh6T2:Cң&-1Cң*Ш8mIbWJ_աi7jRfö2:$(rkp<zCcOr?ۂա|\zh_ ᜛\ۄ V4Y%~uhgd~uhؠ̯v<jSs餶#-Cpծh䌯:7~/mjX;1CQ,(l휛v {SKį cʀ^O~ktWv{JW4'悯 _WyDT.5l2C{.54.&:CN.wIWf_3:؃zKt[3ӫC;ޖԤ[$x~uhكCԤ¯Ͷt]Ԥ٥̯Ҩ&/o +.иVWf_hɯvHuUKkowwWKA- +5uաQ(ի&2)-_ 6^7֮ğUs-k!X arf5iZ&5ۤakS~_EXIɆCvm'fDvG!X뉰}Tդٯ83%#]耂vͮ{KyS֡Uk='5|v5m `iW=uAjR5@N{j@CCZj|fܭ&|6֫YM3jYM[v@ܬ&.$i;7I'63]k`[դ}> k`i97I;V4L`_f5i[f5it5du97IQ9ժ&[դxժ& XAXQ jUv3\V5iB}9PZդaf +ZZzդt녰?"]uo:IT׭f5iDTHM|ށ^j8*4Va--_EXKa-'-שY V䛗*Z]~hVr0f5i'4^ ki7.-Űn~[Hl"ɩ^jN7ի&,qhWM=n kipUդՉҬի&c9C[j̽j`;m}ly97]"EXK{eլ&M ZIbWդ=3+w!Wܭ&-ueVt VFEXK{Yhty?qEXKcX9VÚ4R4y5i@T5}հ&K0հ&m&KÚ4>f}H_Mm;#N$Ii0~5iπuSc7PS֤]x(^j3 VjvXK^b-~p8(M|[ZPa.߿ki4ڢXK{obĥe51λ/ ZI Zڻ=9HՋbf?swkiO)֒貊"SwZ9*ZNk$,ͧF{\%Q꾆@hc( kiT2zqt±Q4ؙcFjĕc- N/ +Z ܿBXXtkiYSy_YKc m}} Q@&5p%NYa?d-F3d5;Md-nx + %]aTIhX*YH.=EF{v_̚F A.ȺrZMA k4,]n/$kin*$$@ +Ghd-3nLF߃=IHwZHnA$k$຃S*Zڃ2ƽCF> ʙd-M\$k4Z"YQA֍c a)$ki-eZY#`e5Z㋿H@ޙpVHh]N8 YmV@ HtYB[$k4{3BV +Q)W9F{a,XXC5RP  ıF!%ki+U@h6m@c/uӪ~G_uegk k&n F{r%; X9 \̧o mXQoTX#uN cfUFDn2ts0h7ΩA^ zUhbrD+Bn>> Xz|R8h}Acd;±nNc+±FQNʱFt1H>_0hv_ڊ ma)c:r䊱FsWsHbt;C[kkgB[k4GbbDsЙbi[5b8k48.k~(j ` F +_5oru?$Q+&(-ooh`FQs&XX5I hv>EPa"Hk4Π"޵8q!XBFlJF~tEnkvh/OXIX7۶ { X7q4Qtp~5:3^hܽw03o1~u"Xs$=" ZE"XF^h`-"O јݥ_֍W!-5mn*aͿFW&kkތn^?Yks m!le'd4e)kv^Al8B[&|MnO.  +X:4ꇖA6ljatzn<t=q{IEXu:T'{?[Y2]V=&haX7ek,dxbXu0Do}AEİFAm 6~bݔmQ<%{mD=S +.m-E +L[=b6/QXb݄bC[k46ј^Ao_g:-Fn_5B&V~r1T`mm-5TiUP +:m -'n +FeZ2ZN*kHH"['EnM tSs=#8bRy:-5m9okKt)ROI@0 ْ=4ck^_"V0#2W: P'dArq1ruU0 H9NQ + C!ZXE8fobw5 +=R + =c]9Y=N03HZ+;IN [#5bs[NP=fg:` tjw54*-k5ot餎w54L~=l @wZZI]X'R3ә9NΜ1Z2k]4;ruU'ߞ|AnwkXW`g-]hiJFbStv3NYSFQK9ڄ` f>D> +c #NakDs54Dsq4 [vZ:Y7VfmqĸA ѻGO8khi֐+[N t"A'k?eR r`QH$!(N:_^+~?)R(B7evHG5#ahigpu99Prxfp=M@k(+1څ8vh:9 )ZY1 BZ><8:N`pK;b5hCKIy^ZL}P,f'YC2h A@p1jr2ZD V5z^ )څ?u~dZhmm:/MG?yۃR:9m5&ZCgaH^WZL6P}b'&ZC¹1N )^Ah-&;hm?fHVv D $J2@kh',}1}b54dUKHEr;Bڦ4?V1ZMzLKJФ}!cR=BR}hdz(/N&+<^ЀVv1eZö/WIhI18zPН/1+:dZi +(y&kn}{PTNoT ְmiQۙФWѥO;mYlTn + % +'ХCܜHj  +`{V9S:[J4>lJVxOj;ZR,;A.S?9+ B dhriRyNVmZ}.= %SBiZg ?q@9Ij GeShre{+}@ɘ +hriŇA.S$Rc@r5#ݪZDkjsxjmRӓjj)ډz|cC財4ʔh Ƿܢ^ONdAc'\B׎=y=z'ZC6R54eGD z(IQY'MЖor[PhMb`OJVdZ(Qۉְ|MDk(h g&ϓME 2(9Z}kIh%dBp8cv#Z+|1v2Y+ynaJtzZ6-B^'Y+zU ҬIԤӬ]0kXK2B"YCb1ɤm@"O]97)zua'YCC~٪q +G}!h `! >9iì^۸vvOV?86,2Y\ =aG-|P!kKhR,Ҭpf! 4khFJNj"UhhLi֊_J]kOԱ#ǶCDb-4kxkbYJiYݤ-DZ;O|rZc 4ku|hY)l;9)_i9 hbyȳw.PyФ](j %.;Ϯ`6vkcR[`hvں"fMqj떿9<9؃%Y[w V[jABwKS54Z+Z2t)It2vÃ芕ʳ|>5&ZCK!mC59ar9Թ SaRZ1wZA!Zx̭"վ@ +!hj 5CCxC;p nAb9T`dvHf :i gt J~R, @E}fZKsJV%Tj;Z]ږ?m4T9R"dbNީp[#&[.بTkh8⠤&_7ZQ-<"geFjbvSt6GH;]GHԉ-u^7DZcp+IHMB._Z4 5MBRDG9jp 5Dx*hɢtfyl"X6!Cbw 4mzG1%oZ5[KKLhŀ[}Af@Bqvqɖ.ZBfmc[ymt i/Jݳ(ڍ WGCM7&!,քIK +\.,Jyo(bxz 3 GH) v3$=Hm&=C#$/橚%=j"ļH!n=j"t,MB博zh(ByX\ļD ;K>EMB6fkkpMɻ{&{FC-!&jM!䭪4ЉYLCGI7^m2Wk, y߱̎C>6"*Hf9(QBkB+ y/ܓ/:BT rfZBca]\BޣuGxQ|hRzVN{6NFÌ-{#gKȉxO[yUsSi{ئ +V%}=u!Fκ-1zA3ȼG2:_Tn}r[h48<Ŏ5Wi gRcn yCf^"T{2$$= +t?rFޣ@ L˄Gno BT!CȼChdna$h}WɭAG\j.{Z}.֯yĸfȼG "G84Ff GG "hH-AQfޟ}.m̔/Ge{-A>0ߔSj8 $,ۜ,AE6yC>GJS2Ilbޣ[B9ure#0,h2WoKb*mޕ\ y;4Z`sSh2yZ@-Oɷ?2{͝k-ﵐn0B "I{XZ*(֜iyx} 4 JLDkR145lo04Kt.r"ޣR--T6MGsӪ +YKXb [|rr,H{8O*hInҘYU9z Z8IlHhj7Հc=*Aؠ #ireʸ InBRo$tBr"{veT̡ル9S5t^4lK{lbK{ ldg5wN"X_}*n= ؎I-,AșhƧ4?IVJ7~bdpWKω *8VH27g,Ss܆L{}&ڽ@} N8$.+3j6Ǭz[-{" ZpP'Nho&@dTQ43h2VٔBlX?EλbJ43=ĉXYNA43l&Xs`hv-i$eiuі7Ljss ź$0C" ewgc𰈍E:Vgmy$mdNB3g3EY%WhҼOn&Yc, i!qi1.*\,]Iv sFJ؅ 5QW'}D3=ˍK&[mz{| g@mB= 4#[- і4:<.&af/.u2|IXtby# IOD3;{ED##ْR'd?hKٳ¤c4L[ S/(" *%$cEFUh1H ;Y,D[Hx1n[vV=-<*͠`8O^,iZa]x2%ai%x+ cMds 6'pRܖ"h24'ֲ[q>h2ج%ShCn$h:iTZ}^;۩EU.ˆn#4C6 iU|,!&Sk%-AP4<Y%&h@3H(B], +]j)Da_C_uv;୸F+9pX 'Hڋgbvyf5c{, I8}}.fvt~uvd$oD0pB>@pfp2X^N3'1{Y0nE#aKjn9ga=`sYg3ӝ3F8xf3gkev,>'e +ax:#ao|LXH-Ҙ"lE1Hw GaCL#oy/H'Wvj/qX91IS#6dD!ّN/deP43hif$G:1l! G“4o͍3 _ۖt0qfgJGr#a "[ю3`8ƙiV>wt#a{`ɵ;{v#ᝐxa3ӭs9uy" z86#n="'3r>H/|2 QN83hhNBHt"cXD3v#9l0q\hffaq6#Ϗ$)Fm+[Hsߴ#k%ۑ.OJIqf;l4N%7փԂ -L`L)&H+`ipgdBN@%#6LT8tXf2tZ0#z"N-Oaf0}*p30L*dod3~-4_A_3̠5T5Efv۠hfM(=Xv{PQ͎c}2 <,-_g/4hբ ?j +Ít<3ubm4taEx:(<3i= 3S%A"ibO2Lc40S89Ah >dFLo`u96#!-C(D3ͼXV$AD4]xX'3aLye_%ͪf/LD3^:Q[n;eP8XDzeץ( U N.nC,k_ ZWKwF`gBAăL8%^ "͠atnH3MkFOhW%%ORSTIm3͠;ۺ4TiL:%+UVtے},4ObA [wv.Fm "=4Z$cFo +Bt%5`^ZmJҚqjFmS1' RB$SK?s8$!lXaAjamuL5SϿnvnORS:Y-'OH>0QAf^\v-]1niHKA71 7T3Em1$BvtyvJ;6'S͔P(Q`Rl=9Q͔IDvݓCie!H8lԝfʸQ& n"(,/"!5{k BaXӊR6A[a(M{uFA7{5!͔ +`'Y.xD4$@M4Sq2ВAP4' aagAH.2 4AÌcXPS"A>RD3Cl_"' !/2,ߛ6 ҄d_ Bom gbnN;b*uyfp4lZ-B+ynh+ÕQ9@34閙fVmRZh4 .h4ƌr&!mh 닔d&C'"=Z&NMBUWy f&OZp~2LGDXEpfsǖFYU,mɂqȑe{[ L㺟]4))8*83zOFr /$@s' ځ% YEհ?idy${=D$ g+@;m2Ӭ*(4SM:~YbL*#Ċns2ua%4S fE2)gX'ߴ4SbUT`5-z[ iV-v{ޱ:hV,2qg7H+Z?fzr^zSAԦdY1DEU'k$?fzm$$Ekvo"=Ǚ%j5 Hǵ# -NBAPv"][LABWiqY!6h B$28Z4-䟌4S IFh ph\VsVr%[j,gi:63Ikno&ODt2vX'M)a' #F㵢3IEXt<mrsBN0z -.уm z6TZ*%աTInv;s78kr3Kݲ W5m RL43ӵ6X"E +xf#Qm B(/[D+EO$1V4&s "Py-%<3]l+%̴((sBVj/I*:2*e(L虮91@/.J{خTǁIgf8oBRD +1r\)Ha'9: 43-JWj9V AE{faCA6jf&"L@}A@"N$%4kd +|T3&:ˆ$-Q}A-T9g1?-eſ1^,3~[3|>cA8a*430% j3H9{yoΠ3OqE8I#/,3;sz@Mbi CM,3-P( W5h/®ݹIvEq ee:ָhA8V#NXfvL5jeGؤFb+jNs&6Xfz5N# 3d /&k@^qE~)9 B ffe5 +C~ R(چA+yg)7Nz1qҰ\PA8໘ I03=3,0{~i}'WA8<v[ҕlr 3*X&CbƅDj7hAL \?`fzls"L˽AJ*VFL2-ػ2JYe aLRH,3:JPfZK eDdeL,3 אL2ΎYf"3&J@yx'J2Npr;*x|4E.:hfJ H[^}8v!knc`diq9m4G:2JLXZ|ʏ%sF*H/f1uvJ 3ӊ  3<)L 43-˚OLJAx i`ftAG  ff(4o + ȡ"|tPBT fR8'0-) 0348Uw^vi)/'Pj 43hgʙΙAF`4 u jIDN43 <|YN .U>f"C&X:l̴8Xf#rk;hNhK 52C2d&4t&}g %hBe9IbAè2roS{bA?C~Wq-0t#U c&2aq;2 ncec$Nj;dc0 e0N 1UnƢP!hUp8l0pʀ$7͒K# *E4B‚?ȆT- gYT-t2 4 fc" -Tq#/&tafp*qcu-O͍ h2bQ,3:"̠uA%cF{4YEw HxafqD#Lǜbf īif:5̠`YRKO؁P5 t6E%41jf6 m[Ωd Bc:{dH%r R؆ms]2U0A}?з# 3~GA?w'̴o5FXAŘ36ay,m:ub? G{u2RaffmZp9/6rn$t`fd6mwL, 3`fF:O3vQBhPS&p`fڍH#sn!H 03,16 /6;eW4A!18 fM~f/%YSH;u*=Hk]4ᕁߒ2&w-CBN39Aذ`cl28]{̬Xu" RcMu`ٶiۗJЫhv:# f K03hUCж=>f- ,0afa[jz_^Fw4'vbu VUt˕چ5={,*JR;]lAxRt'6QYfxZ2wPA*BmIޙOfACN`.HxZwy_sݺ}kcWM}G_;uWQ}kM}ny#]|C<^*3zkW!?xm3v3zVkw<~'u_Dgcv_G +5uJB,\]._N!NPOc?~/B߮ooWߢPU~v}}~W[?oքy^f VaGj{ q$0ܟ8;+LTA+ +(K.8_0 ϟ%W1?&4?_XN|CCB5fQ;@>UЈ Mz]k +|] |#{\05Ѿ1^UO~ٵxW/ {uף}:K%w@_o> A)0,}80,/`d. ʵ?z6"xߢ[T-*g fC?ſ4JE6OU.F|@2te!gXcWU1Jz_%_tUD?kPK4uz|UqX?XeWOT˥RyuA7\a'u 1E0k.MEmQA3.D@jikRh7ɹ=%I)] (A ժci *3 |R,k&]1#&7fۚ['AHMA-pT^T RjgRCၗ8,]B!1zd +F(QJMЩi +!Me15%RӀ9ZZe:TRj01Go5-F1,4b,NmCJMm ,鳮] (1*)D8kȇ9JkL^*N)]]K:nRkN D(ϸ֍R"%$}R rnW%RKkBEa!]$H)umUH1ҝCHXd`a BlԐWc Rj\;tխa夶S )[j)QJC"Ǔ*1дq8U)H q Fm#J]C$.5J`7}pFfkcTFRrqa !]dh!Z${ !ɰd)[CX] )2!V{BRJm2YR*}kANmR[L/!%ڲb1V5vմ):!55 1ci|5!{azPA`RCsK76Dh&&".jc^RiYzY!0]kAK$RCY"lfGYy&PaaŴj*5AyRST)"ީU@,BYHft0Z}LRjWP0|ƒcPUUujx\,[:*E#43J#4I&LŞP@R[]֕4Bjp%$ŚuƑTJ< 0R"9"m̵k4BP~ZM0۰Rj`3`a=} '5,:4BӤ;дuDXiD֍GX)5)O4BӀy6+}%Jy8B@8MqysRj\.jVJM6GhE#TmrumJUHVJc㔔GhĕڝGh5ąCR3iVJ.jwi~^#4: W"Դ^R۴RjBjTJmpbAd(!JMJ]-6Z4(TJm\]"4AԼߎRJoRjH9iRS +k֛A3N_jγ,SjsF_+SJ/rS kR-;N +QJI^>+7wQ*?&X.!bMi#JMr詚(5MqM FUH(U%)mRӮcDH)ެֈRJ(dbzNm3w2Jg?x2GF)5 \یRդOttO8% +̆ QjT(68XQ%jkjQz.:8mD)5kkRӴܘԀ(S5(.J 8?v]"4Zm1J9P:JG9<sQJ hFm#JMQ˧"Jg \|x(ϵp#(5mJ_kMR36GχmHi +Ԛs҆{Ga\B!Gn*BJ-lP;×k(I\ksXL(X9w1@#FD)p(%"J)FY( 9.(gċqKDRW9ȪP*՚j(F"JD6 Agx0#tv KFEm3J <#ԴURJZtnA ëu~N(2- )JcBJkmHi>ڦRw6tH)N?+ߟ@JiEJ)5/$>Vd 1ˑR:~_ RjA%RJMM T9_\'tV@c16V\89:= SꚼSjB)H/J k+E ۠Rj>KmJM;;W +/㔮-{u82 hAM)OmBAQRV˟ DP·M1*[\[0AdA1ʿ4זW^^bKDR@6T թa}<^W9`aQjl!ADr6jQj ˚DI ZA,dݣR۔Rz"j{!ujXfaD-ك%i-)PJU"+TDjP^c?Axi=WQo=Ax)5pĕ i)}uOw|m}ۨmHi:taS%? |tQKZkm5QJU1RJ* &J 3j֧9HɅJs Z'PA2~cZݘRh2wJGr]+A3Hi}ZA`MRh9%kPŌ֜Mύ_5HVjS +mlkr}ZPz֠sjRmJ5qJUk2[7HLèg#(煕 i|tj0ەޠVY `EAZ] y-է7evǢ5H~ k>A[ZI'vK0\ 8Oo + A&𝵭5H&`[_Ԓ5a6] ഻է5tC-YP*ʤ梖ART$AՇͼAd%o´N [6`SH.9d$e:ؑ=A|FOk4M;d WG3%k6Q¨vfkИdAZ4mvJ6zZqtv6zZZq"\&OsL4A`nԢ9HF]>Ac07.Ai9b.BA-9Jxzf{иi ʻe B cHe%\ Yt36.$Z.6J!$L\ۙB@wZChk jp`YM\vޭfҌ{/GCD+qZ[]NhRM!~S>!"SpJVSӺ'9GJնhjJ}jc6}BoFjR&ϋ>!Vui253ClYMH5ۜpK&6/ãMh rysMB&-Tny*&=h]a@l:k=B/zLs|fs?n&!=^hڽ{}j $BMBɀYI: (`FοlIhMaMBVDi]ԩsna+|4 Ɉǿ)5Lmj{ҝLLДa*`%i0t>6!Ӵ^omBaOߞ +}jk1t !#' 6]B/LxL.!]]ThϙKH5l:tj%d4e5Nt &5U.!XMg6~s ʧvU2j!vc4PPZPiDR;9o(dZmB<~($='TRjX?֙053m)d,S˦a/ @԰oBR U` V!J{BM'6Z=5RoI{ZL?J;D$8poUHwyIIyzsh\6m; Rj)dZ)܁it +N<5ߐkt +9f͡S{Zt +*&t +>ڹ9-kZwgN!j8b%8-."dޣN N!&Xa-:L& +XNSȤx)kn;5tqRn6ܶ +QrRV!Ӥ|DfjҭU'\дmR 4&*DBzBۤGBv28EiᩔQR(嗫R'"Z%?ߢSȴ]qE~mQH7'I [Oj0 +/Amq-L(*5!|Wn!wXJQv}BMuj|Bhϒ4`Xvi-Z0 +QOV 5vckM^6!tV;mA6!d6h!5=کm5ym.lBd6!t SMH=Eg&(d+-ڄGOh-LCmaj Q>I>!Ӧ:DL? ݧջB !m2ivۄTS BZc2oMhzyV'ixǢKH5 P\BaQ;u7S# +%UxX%i.s/Nd2mqϠ%jRpLB16j0 ФkVv6 PW-LC'V&!ۍ& woFj20sK.!N淶2m.;fҒKH5dimFi+ђMȴ9-ڄLb]MhrK>\2MH4,6![riZ6^4j 뀁!JMH4wOH+|qONe^i0 +$ZI($ڶ4 +i˿Sh)$m4:o]F-YD^̧Uh7ӒUh!%%BZ`ȘՄW +qͦPV!R3ZFf2QP +& r-Yl֯O*$;6+>F-yD߆WrmWH͵(OB4C,dŅO{h٧f!i C*B86F!SiM&n;BORB/[a2;F?6Ct +' vu5 tz#!LN ͋lFfLN/EC zBWti8,tl:\4pRԵgr zwrQݰ' {g"S0?5ú'}/C=]f"=YcO7]$ GV" hfb,+ş )X'T]dVͤ H>f0Im GvM- I6'B/P SKd3# ߰jI-ͤDpԋl2=f.آޟd3c6LGvQm}/<]ͲLfBi:G1La m))dl;REﰞ`3)͎y7׬@-am=f?ƚɠm/TH* @#m]/YiӋk[~adX+f;d<]dM?PіšI)STj1oىh|qpfрOTHo/𓨥",ߟ9<ËF7}s|ɐ"#/x \qGfC"%^4}fys&k>s<}s.~fsgvєMkn]_\3~r|r.8<Ë]5 +"Rxj bm8, ^{/N%'EĚ-iRxĚkz`0cxP0%%f#82l`::aGьË&8{EHqz^j:~^4bk6te @j! G Q EC Iypt''E:5f탥k]H9@fzL7E.gAe4r2y̪7P4ݟKx3,W%9GmCGQj7Lq^d +uڍ6 $uhD6[#om+ph+&2 +)rm+ڍ6q"L +N_lOŸyGl01\ v |B"*tL\381auػf  1E4=-F-T'ghR_\I` e7liYx`uz枻 6i&| 6CxiGliqfe.8`2+Dc6V%B~iE&l3Z`BmIۓ~f}E6oDA3|umIڬW;C hR N m+9642fҝbZms4'W^ LٚhUF.͠uuȏ'7%YG^'RہED# !ՂA#|?d4GYE!m0چA$YGPdImC7oXyAH0߻LA3y  ,+5zw/App|" mZf~שJ-/ hr6&nàA5e4:.AAаX؉! {u vu\3;QiLd3i;lԶ94cA.92䛣AAԳm&sM=+Z0AQmsPn#TtABQ% %!K~2٬7lflMF6M ;$lFf=$)Df> ֘;1dmhf&$s4_Aր0Av,'͠!xX5wICkOFAk7v I/f`&ΐ@6Sċ tL\ V\3h`撸f>Ղ5H +[ܹfїvA!Ij #y%,aТ- Q͠ɻ| dP&~2 ډ _"19!$feFDc4rsjM"l3Q4fN?T3hRN'T3[@A.en A!}tgmk@˶5H)[ h(|&Zɠu@TuWڥyԶ5ZOFk4l GfkL]_AZ +A\ܧAҞ~grqno$L|qA2U$M /!S-Fn4A֩msr׈OfAᎻ iBxaaD?` ,:tFA.BARbgd&@"AXrCMh ܄LD3)'~/T'4)Fg Ơn#S h'WBcAP)*ͤkEnh{6jh&R@}:hA{=% f]=#8K)m$uO&uxFm> ,Y@3H/K'(>hNٴ>!/hh&Z.i%|< u~/hpf{u뜜0G{BRp$2 x i&r j;r˪ADY)ODžm jyA6G;5D&S<gi"hܵB]AH3QIAĜSۉ"ʢ?t+f] 3R ڴ0Am#͠!CWE  -4ۀ!jhxFv-lGtfm˦iFgKc\J1EІO0?gMKAR30M׺yf*\SƜ"h ScW-Aúfb5Ǚu8o_jCH7pfp.Ǡ ѤIR M{p.ulOƙ3Ive3NX(:.|Rgrή(ۡYoQ5!&gQ݂Vtf^B+Eg8PM 6Tm㱡3ӿM5l{8˦lZemEI졌g&`cZޮMbt,>38 Vdb۰^٦,"6ufyiTtfd43-6 ġ +MF~]jPb3Ls Xlfx5mfezf:1fFo-i3dmBK6lfm^i3۴Bi38}BQp̶;clVef&1NSP0h,6eތ[lfxݴQLbՇy,̶4OTi!LB˰<6Uf}ZTr-6vJwUeq.veY炵}zl(sǦLb}jlɌR?51-&E2PULfc %PMfX%fl]$fT$㦓,3oLb+1IGaFH92[l:̚fe3;D MYcv}q2KdEɴr"1#N+pQ,k@j1kZ$JUcִ^7eԘBƲƌ-YM3 ++%o83bx=65fˆ1pM؂{i."Og3ȬȌإcSdFYȌh@vOz1KVb2Ј[4uݔMX2u]ЎK1 twlؙN^5u=!^7CfYKR̈=2P̺;&3BJMfIm5Tۺ =6Mf=LɌ=dFcjAZɦL~DZLf؛fwM1Uw&3Tr̺v>&3bœMf]1^_5t{xl]j2lX 9Ɍ̔6Ɍ6ê=4MfĞA}&3Mv-&WY?=fi2#vM1YmXdUV{l̈qb2#Q# (d~'EdqϫȌc~[Eftm>|Ȭ+yIȬ+cb2\SWMf([63}l2PIpw1sF2üG[Lfwɲ6jëɌXrYtI|(&b2#F{ul̈=ZfɬCk̈odF,?b2l@ST1DM1YƮ-: i?*&3b] 4ҔYdAju)2#ظ_wT\V:w{9ȌscSd9ѐ!Ou†u`=6Ef;JWɌ}Cc( `.+MBGUVE +?Zzy@E +NlfݿHa`%#Y_m.4*Ha Vs%0]V"c076:hX07-Ha*v.&QQY̺fi99pdl899̣99૑BW!˅()X" +7&!Q5G[V{{GroBz" +wmg% +R;&aV SX0VdBSX3. +S9)T0[5~La_ +p(d +oɋ23.b]²Dҳi-tKL wg +U1*uU +l=8\Իl*,cf(@/yWT0k[²Bcpza +S&~=C0/VV ~Nvne +֨<Liw>s+@-c +@ +w8 Haj+QXf0KޗC~ +nė/PoM)/P8{#W0[@aCTϖ!GVD(#>=f(듀K+P)q +v(|v'(,7NK@N]xjw4^OhBUc(̬pEQ; Os?@a^gP +s(n\J +S7VA+ +-ZfrE{K-@avߜ5 +O -@aڪ{] <@Pn .@a*T +zZV&(|>~%b0KIA,_b}뱂fG ),"1kA +S$y@]¤N)t=[GGD +_jj+H+LareZb,&s(,w3EHu"wݗ),K*RMLR 08_`ZXxYF X`;ǦP^`(y„ H[hօ&YaЄMDJf;#Dz16%"[_;Y`E=l@L`y-0aoU0M;5}3]`%,>x&9}.,-s|a o +[YTfrXb Cr7 ?K(aWE(x,9xAP]B>JUu! tᦐ95d,B&Bק͠$y5V% NX +p" U? ]I¤ OxY>uS%c'L43&y crҖ']F^fz{ ^ʾ(L 3U6T02A4Z/k+Bzs] +Qze+Daen͑5x̹D\^09KT0CzKD^3KDvEVpcaP5{ wzt S-3ʄ02X  658aV>/[p 8au6 '|d2O 0G7Qxd1;'^8])jfr!gۮVrVJ,:( fb(|sC)|#+Roa +ߺ=&SȲe04`wYZLb f1ȉ0ʐ=8`-LaVro{eb + 6pb +zynJ=zTUz{#Ve +퍣3 Fv7TLFW lpB ++1ujۂ&/#se{ RBVz+hc)G 8d +Xe˹6Ţo+Ro,I&D;p)LhlZW[º[\·^UTȟYCF +S)L*û- +RRMq&RXEod HaJwd1X% +S$DGo-ܠ(L掛y! +kUím! +A2t! +oūxX% +o#4Še(\D=J0 +RX̴woMHaHr0&&XB +R >)L :NHa +Ge +%Ҟc)qڳ[NsA +|  RxpɈ'߂XR1aA +Sq~y,!sCh0{(\š.ܢ9#~zZM9DΡM'Uc)ɯ^E=]_wH];i3^9B0w0Xb +*ηBuU&T# TMGvT6Թ[lX +sVn +æ2UD98QONq` +h&жPIm*|*Wo[L AzLTa'_оB +ӏ%0ۯGUKTalt +5V€e%0IN+L戳Oc>VGXY, +V{^`amXmݲQ Xloa],|x/T}3YCY4d0C,L]bŽ0X̙, xyL1A13Y yz$ ˘pS9>u'YX;, y&D+YlX¬[H07R\ YXP^%0{{k,5q7",̶40뷒da]45E+V'b'0t +YXrB+ZXBPB Qv8Œ\ Z!O^ |pB 3;{"pܥf!ep]+XX]f Bp Sh"f*jc,Ζ,vBfe`BV+.dὢ Yrx`8wPY +Y yxB&"_Qҕ,gwW'0'c YXg'>f% //tx,uhГ?x(1Bj7X! ӓjo Yadaj4_sx,i/f*Y3 #{l)UrZ`J- Yw'ZQ0 UL"*sA +9m"dI?0gǷ!8VddJ&˜(Dž, yda.p8<͡i02^ÌQIc^ˆ +v%0YPCv~+TtHU0 b\‡V&B2=BMAPa +iɣ*gOxg!*T2=\–*L>ye)Lf;l2叅) r>y|e +DoE +[0jA +} Rm*R}^›d +oxf)Y})ܬyXa +7о[Fae +Kn2;}"]))Xм 9 Ҋk. (,͕(WX! +]~([M@CyZ^‡~#b(|cm@a s.MT(,Nѣ9h ʆW- #Hج4hI>;=FɵXHc3YۼIH ZG)o+NGʕg,rЊ4Wz$jP-Fzꑌ` ?#N}TId+y{F\u|\8< fHm b.WN͸"['쏋Z#5' +43Ʀe`H;Hm7*R-#)0^QOsT#=m$eZd&6bJ+z8rk.Fœ<)h;BYEc=6BvEQ-"ڝ8jQt X_:1Rn +Ic&)hk}-4[FgnL{FϕH4Dbw +FDR$ =kZ.ES6/Eag +"-wx䶬9=&\{EpZ~N Z"e|oICowJSJ/"F%b | YE nc"] nacQȈQ1a- 2H9m\ rKL[,44\[fU" FШFqkI油M2Hc,2`&Z5ICp&L,r12X!f"݉w"f!e*FҘ/2=Heߣ9eb~A,dyk(iIqk4t^akX1n(+oXyU\j-5EhEj$EUmHL,2$}W4Hs%!r$ɒ;͹IY+#?Gbi1غ5ebƞI"r=d 䦺4#IΈ dfed傴yl#!6}$ yK"%7<4E;KIzښ[.Hfԉ,FK,R?zܦ4vcIt^4dd䦒>Bi~l{"r=NoبGڨjYY{ef^;ZGR< H{a"uGFl@4 do!#iL qkz$ut h n.z$]Rl%ݸr$)Ȅ1PB$A4$s$fi ICŖ4I#-3HCdzl TّHܮ+v<%4&?Xd?!*4(ȕHp'ǂX! +I}ɑEmI3Ծm)"iŢp"z/cWyEmͼ"by>!i̎7IeH[#n;-,lG"uYdΆ\DL&=uHM+dvGAaC_i5`Izh!"(Cb"2#uٶCiZ]s"37٫xnj,vyzkäݣ7̴zYdFDKj}t=6=ft뚯lz Mx$#&c**ccZp<6=f/mc@,3Fj8cSc +]355fo>3glϷḧY1㨄pX֘i}Ucdc 5fIJ+k̬z<1Y4fP\ͯP֘{eڭh̴:1L8Ⱪ1+[F1#&#LVK58j14Ǧel eY.rX)3bWyΦŌmb&1PQuĵBT=6,fXUbFϹÁEb&hJG@2˒s@cRQ\JՊ ko f`*c8½9n69E v?d1$ᆯd0#vy &$a-/MLEǘ e/3ݶGPXe5z,/S"A[ f<m\`vk)X2 ķ +h<'?WfYi.+3b({ű ow*_vQ<$_Fh/Yea2Xl>*2K0e_.?FlYeض;$eI`(M2/um̘NiIo+V뚡3(jWJ3$Ob0{0Jb0{#֪0{nG*bQAgEaO(dE\;Eaal:( s3-Iì=ZȦìi>MfR`eʳca֚z +:@<ȂsaFчJn0 Enz,a֔_$0kLOƚ0@m i Vk"K3:̨$Ix0#,9:7%^a,y Gueof:zbQ +UiqUbf'n3_$f4H>7V'x4 jK3Ր1aU17^$f'G2Ari3E_v/c77?2a\!RhǦ -V&2 ~U*F[f= i,ː:_=ܫJ%r,3v[S0 +:Q䑿+0&*0cNJ TWWY:M]|;] f`q(ږX1h.U`*& +XIdW.C K3{ȒLC̰2`FR<[ flS!Q fn?d0cz^(xsEb<X̴󁕂Ō䒌+3h%ScSbX&J(#a)bдu*Pslh:sc]^5fw ƌ?-ޑTUcߖ `]4f.cRy,i6N MjJC%Y5fԀzѪ1kZMڎr1_x\r_htFEcFZ喵L&/YW1jјvYqO'-3-"Cb2lj1;2rB%oV+2j1;3\fqd4%,1 Q<,fѮXb4an_![vj]-f|Ww3,3[,f|!OM^,f|#l˦ŌÑomŌ#7b&9hv-ֲlm%٦7$Wj귇L2pH(lIR%f :$1kthxEbjXu:t5kj1#%,YX"Ȅq՘!j%>ˁX4f@Gdјkpǒ -&7Ecvco{NNN_U4y*=f A~=f$2uTlz[6 }$*2;F& b|Dڨ"Ce}j($9=6Df. 8 g>,2@J"MϪ"3YߙUdG(=$Ud9 ޳4x*{=/3\?+{̰mۧ1C'w(1;Y?7 +o/1ZS3+xN׭u,iX1|"4f!>Sǒƌ,+ #dQŌ QF [,f4He#bvhGK380Xp.+3vPV"w^qPDoq]p1ҩ8.I(e$@t]*28.*rd%fDZ[ʦ8Vmbvnr? >ɚlJYcv2}Ǧl'3y]Q^4fE؏Y4f+|{ĒL{F,eјm<:1tY1khpcOP՘N1C7$[4fa7@XEcƔ({ԘYҘ+uR+3d,3=^-3Vlxˤ1U x^cEcv;oƌDICIcE,5V4f$P%Jls4f,f;5GʦٴuSc'lѪ1?W#U~FNĦŌ|j13MJyY&fҖj137,>b&1X,kn߿K?G@f{Fݢ1y,vljhJ3ƘY3֭l1kZ1Ŭ)$ +ǒƬe՘Ƭ+H31⊛%NdXT:zј1@, 籤1C7r%{A1[wv% Mߪ1c0Wxc&9d_Thou7%ccvqX}{g;Lhl=j0,%Bk,`KC1w3EBڧncF=C)zELe}tZR~zl уF!$gL{*̴9V/MWcqz,j߭@zMl-3jJz̐O3mY1c3kFH19cF{UWhǒL2dHLfqqa2'[LfJn5dkcd,3 @Z-"3'V }R٩Ȍ3+d&;\>XrVLf?7K&3dK{,̸2~L| dveb21*"39cCd9v2!-%f7-O_!'G1jLurm<4fML}rM"3B:Dlл=_5ZPaa9EBZ5Y-Z[x0Z :jdu ǒɬ4/&3zw LnbDۻɌmFGĒLցr{9b2SAcdơġY;% 2^dF%Yxbs<%"3{ԈHqDfPZK"N-l.0[Df Ed&ҫE"2Ԓ(96x@h[cEd& }wXDftWLݕ7LCȌ-s8ΒDn̪+X=f+4Y6z̴Vx1S(k?+63pLd3{4Si3#Ċ͌TǦ m{7$hSfƢ["3q`)̈%{T|23r?23qve̬Y٬UfF]e ˌK)ɌMHj2#cm>z6N7-&_Ǜ>njm|3pR՘5ot鱤1#cƌ[žb֨xh̴c6ƌc>U,i@Ɲhߪ1k$b1S,ܞbIc!@hj-zVTjkCEce}^3W?\^EfZEfm-"3}&GdX\&[Ef2CGd2Wȯ".O̲t-!@+"3\` azα1CiTӨZ-3y6c1)v1mI1٪1;Ҁj|{h̎Mј^h䶟jN)1oj4eߪ1MՖgј],,dW4fJl1'α17*;1PU'z̮<'z.ez̮T1S1r_lUc66߯*lݴhHΊȌ +[ +X3Ef`a2m&H +endstream +endobj +121 0 obj +108705 +endobj +122 0 obj +[120 0 R] +endobj +123 0 obj +<< + /Resources 124 0 R + /Type /Page + /MediaBox [0 0 150 225] + /CropBox [0 0 150 225] + /BleedBox [0 0 150 225] + /TrimBox [0 0 150 225] + /Parent 125 0 R + /Contents 122 0 R +>> +endobj +126 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 127 0 R + /CIDSet 128 0 R +>> +endobj +127 0 obj +<< + /Length1 1968 + /Length 129 0 R + /Filter /FlateDecode +>> +stream +xU]hWdj~VlTdc.JI5%[ddv3l\@%VRP|"E&yhb +Eh+BK>(g&Z[sιw=  w#ʡOfH#9iodp?*M7ߚ.,L|+?Js9NFHޞ#EVɛrŹvd䪂5I\8Yێ~di([fwHpgJVyn-4c/͚%KF= =+6q*>yx'2Qa'؆HU_um8"oBYGa1>2.RO]Fq#1M ֆ낵5U~(LB'emꈪ,wȼhs"LJUNUY} vMJI9#k4Jˆ]J&GF#Ԗiu.r}аqp4bK#94*w[;lv#̙bw)*9*_Ӳh$m^7㚪 J6/kˌ.2lAvVb !y-hZݙ-Q0YۜفΰHU!+W4Jb9$%i5f KOUȤtJ7UUU:}πs.H.?ڒ-2GGTIsaL >nM# EB3z)$|TXnnt1_ ;β\;r70ŭF$$KS&;=վvn~;uIo{Q9 FG\ ѽ( ]|?+ObTSa0OzQ˾i&֐tr0Ca}aBՋY1ho8Uz`PMɣ@x1zVLT\]?i'leW2i4)FYM=.w$Pf<'+$ib$J1PVia6?R> +stream +xk +endstream +endobj +130 0 obj +9 +endobj +131 0 obj +<< + /Type /Font + /Subtype /Type0 + /BaseFont /EAAAAA+mwb_cmsy10 + /Encoding /Identity-H + /ToUnicode 132 0 R + /DescendantFonts [133 0 R] +>> +endobj +133 0 obj +<< /Type /Font +/BaseFont /EAAAAA+mwb_cmsy10 +/CIDToGIDMap /Identity +/Subtype /CIDFontType2 +/CIDSystemInfo << /Registry (Adobe) /Ordering (UCS) /Supplement 0 >> +/FontDescriptor 126 0 R +/DW 0 +/W [ 0 [750 776 ] ] +>> +endobj +132 0 obj +<< /Length 134 0 R /Filter /FlateDecode >> +stream +x]Pj0+l CԒX}q z0h[lE^X gBpjV& +:G:g} +endstream +endobj +134 0 obj +234 +endobj +135 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 136 0 R + /CIDSet 137 0 R +>> +endobj +136 0 obj +<< + /Length1 7616 + /Length 138 0 R + /Filter /FlateDecode +>> +stream +xY tוߴږd-E%Ewy xlH ISrR&Ii;6Ih9M4'9iiqb1e޽ʀBx՚5Liشkږ$D嗛'3T~e,ЊGnm$Nn  =9[ǧgf* +j8ITemCZ./6䎡?t7C2d[s{k. W!)8a8VX- "PUP!B +&~ϿϿspr6^cG1O3L7fwG'v||v1\%߆p.H(< 8JhA`0 KA TVV)rs,H8^oT%=*GLz'|^Ř|71p=d?cƸzGupx{>ρ-kuX֦1?6K_eZ(pRF{{>ϝ;j}嚿J]Z} H <c76ly1Qw~Wb.-J5V wBuk"]]1QGKn88b4ڸ6hbA|Z1:G 흱.q?|^{等>O'ɮ"a%T^ iL8 #-ʩ- [QNSTdȘBDi~R>4 @xJкԗJcdj3ZbC((W"Pcn^(}TIwK֦uڴi^-|; g*CL +ȁB+CV$yLMa=Oa h jG8(6zȓ7fʒ"\ 9l7[sZ?gejkܠíU_i"vF[+ g1=#Ku bڗ.}V{;&Ӊz&U>2f^򷏼ñko3>O:y“~pya'?BEȩ"lEgA Tܜ7W4`6/{ +SKJCn?KPA2S1Ϣ`d&TbaO)OXԹٺiȕ=]V|7;d.p{ ۖ0޳Ĕ{e}!&lɮƩpF⹽\(ҝ +QhRWR/9D W#ߒ +B%xK9o؆D!`BJtawKJ+P:g.f>>I/28t_?o6疗7ۗdsydl{VmCkFĜ;o}~ܲ47) oZQsen],yzm69ӺBt-E AsDk d-@̦ٙ-o2]9-({,Mخq{/{GjSj9ri +أDF=9A`R#9I+A!q;E~RGUSe➦Ǻ#FS*RESJdQ%Vc܏L#jGI)Vuȳl7g-k(_`S=x%/o nuMùYDjWBG0*e 4`&5^B c]qw6 |P󟢤JM۶Wb7\xY.;q,**k+7e@*IR~ +LkU0-Wrt!өP)5)į,Z(Bi-8iS@BZ?UF Sd#aT׎kO:ҖFhM6%OBWUëZfW-mųZBaOVW\r"\{ +M,a,Zߜ@t!AjтMYޘyvna~ftU2 /ƣ8l>`:ٟ]3yb|%e2U3o%tz@ as6Cad2v5<*¶TD)kqmIjȣT ˭W&($flIsy? {K BITI:Y,aZ>+ywf}߁pOcBv=dbH垾 eB$Й{K԰*IX< SBI 3Qtݮ)>Oҙ旨-ڴxȾN2o,3_(~&uYTi +:HzvUg(q8Upۡm'.)t@)bH"h)9 oVruD~*#Do +j9w+' MB%B +|^GўZ+9m޶m&{bhW$BaV5'/"2\* ",.r +ނΕB U6h;+r%9"\lAР`F;2 +(6HF;&7uJGYR~VrΟnA1몙* =g^CΊ +C(P\7T{Z5'&IDF$]*4˂1=M vЋD>^W1vkaL] +g2^lj%*jN=oܜOkgue{ teCa877GӳrYn.EkE~?CIu bLOp앲2laM~tכ/^?[Q~ӿGg6U2!z2x/aø"MW^d;`ϕcQBR"D~NɂRB+5&3wDz~w]mMR[jvׯ k6d, /^J3y엟e2D"ErnuI5;HyGOM4oZ*1Zl%wpl.|HT1rX +.YVc2[U-6aZ">fÅLʖ9fhc' %ƓL$Ogjž3H-y$FfRPF@9YѐxEY< `B"/I;6Qz$~rvI`*_}\P$q/_wg+&\`ƪؖT jwG%yp)15f; HΈM6=A.U)r+OGȱ%yg6 +C' +胉㐅IbLj9a-9rIs^;N{_/++Eyha֡$@GuWNknf}G~L~c*LU~~[]>%C)^ ̒"fFg@NLMi[uV;g13ݑH{ޚC~=[h~_\ N(QolgB_=EqDq%2'NʜTg'2B}ʜ@"9Sw°"\WX,p<1//kP*teEa樼 +[:3T"ͧ|fțJ."r:NUnJp ]Lz(D㖉 :+{{G6nPJY73{DS9г`rZ'`FOkI=XUBC kʖj5+.;Zyf|ē{63:R3N' 6ϟw5JJwn%Ȇ?CS/zBk V2.GQ.zI>4pұPdgXCnNʨ4hj ȅy t;OI܃5ĵX7ٞ/j#.CdpxXPgc,YYⱅ:I@LԺ$%th]3 u;է<㩅@/@=L$Da  +RVWy,"P%zrazƤ&m!%R8jSRkC.vr_\ +MT۶J\i6Qϰ4"X!4D#>zP?11e5>ZTVVO Y+ǢS[vcc6qڔmhjhǮAaQq]֦m4P?166izxb׺bhИ6Bp"B36(x-( m9ֿG)R ݐZ)EEž]`k{g~gܬ]-O}Iul-XyplݙY { +endstream +endobj +138 0 obj +5484 +endobj +137 0 obj +<< /Length 139 0 R /Filter /FlateDecode >> +stream +xk`px| P1 +endstream +endobj +139 0 obj +20 +endobj +140 0 obj +<< + /Type /Font + /Subtype /Type0 + /BaseFont /EAAAAB+mwa_cmr10 + /Encoding /Identity-H + /ToUnicode 141 0 R + /DescendantFonts [142 0 R] +>> +endobj +142 0 obj +<< /Type /Font +/BaseFont /EAAAAB+mwa_cmr10 +/CIDToGIDMap /Identity +/Subtype /CIDFontType2 +/CIDSystemInfo << /Registry (Adobe) /Ordering (UCS) /Supplement 0 >> +/FontDescriptor 135 0 R +/DW 0 +/W [ 0 [365 500 500 500 500 500 916 500 500 555 276 388 555 555 443 276 833 500 750 276 500 651 391 526 443 526 750 443 333 500 680 555 394 ] ] +>> +endobj +141 0 obj +<< /Length 143 0 R /Filter /FlateDecode >> +stream +x]n0E +/E6)TĢ=HX_Hx^ϐ\tKݠjXhf5t̆ ;5E +wKI|p}'+,md,/nlvs\gluzz2KEWKB]S7v>yD` j4ZIs)N~∰Uҭ_@Sf$@)(@9A9kP9tH6о SؐCj9pGϨS3jeAg <@YB'$HAYQ=<9@+ж׭{wQ,E27H_1!Xy05;+re:COaDў +endstream +endobj +143 0 obj +379 +endobj +125 0 obj +<< /Type /Pages +/Count 1 +/Kids [123 0 R ] >> +endobj +144 0 obj +<< + /Type /Catalog + /Pages 125 0 R + /Lang (x-unknown) +>> +endobj +124 0 obj +<< + /Font << /F270 131 0 R /F268 140 0 R >> + /ProcSet [/PDF /ImageB /ImageC /Text] + /ExtGState << + /GS1 2 0 R + /GS2 3 0 R + /GS3 4 0 R + /GS4 5 0 R + /GS5 6 0 R + /GS6 7 0 R + /GS7 8 0 R + /GS8 9 0 R + /GS9 10 0 R + /GS10 11 0 R + /GS11 12 0 R + /GS12 13 0 R + /GS13 14 0 R + /GS14 15 0 R + /GS15 16 0 R + /GS16 17 0 R + /GS17 18 0 R + /GS18 19 0 R + /GS19 20 0 R + /GS20 21 0 R + /GS21 22 0 R + /GS22 23 0 R + /GS23 24 0 R + /GS24 25 0 R + /GS25 26 0 R + /GS26 27 0 R + /GS27 28 0 R + /GS28 29 0 R + /GS29 30 0 R + /GS30 31 0 R + /GS31 32 0 R + /GS32 33 0 R + /GS33 34 0 R + /GS34 35 0 R + /GS35 36 0 R + /GS36 37 0 R + /GS37 38 0 R + /GS38 39 0 R + /GS39 40 0 R + /GS40 41 0 R + /GS41 42 0 R + /GS42 43 0 R + /GS43 44 0 R + /GS44 45 0 R + /GS45 46 0 R + /GS46 47 0 R + /GS47 48 0 R + /GS48 49 0 R + /GS49 50 0 R + /GS50 51 0 R + /GS51 52 0 R + /GS52 53 0 R + /GS53 54 0 R + /GS54 55 0 R + /GS55 56 0 R + /GS56 57 0 R + /GS57 58 0 R + /GS58 59 0 R + /GS59 60 0 R + /GS60 61 0 R + /GS61 62 0 R + /GS62 63 0 R + /GS63 64 0 R + /GS64 65 0 R + /GS65 66 0 R + /GS66 67 0 R + /GS67 68 0 R + /GS68 69 0 R + /GS69 70 0 R + /GS70 71 0 R + /GS71 72 0 R + /GS72 73 0 R + /GS73 74 0 R + /GS74 75 0 R + /GS75 76 0 R + /GS76 77 0 R + /GS77 78 0 R + /GS78 79 0 R + /GS79 80 0 R + /GS80 81 0 R + /GS81 82 0 R + /GS82 83 0 R + /GS83 84 0 R + /GS84 85 0 R + /GS85 86 0 R + /GS86 87 0 R + /GS87 88 0 R + /GS88 89 0 R + /GS89 90 0 R + /GS90 91 0 R + /GS91 92 0 R + /GS92 93 0 R + /GS93 94 0 R + /GS94 95 0 R + /GS95 96 0 R + /GS96 97 0 R + /GS97 98 0 R + /GS98 99 0 R + /GS99 100 0 R + /GS100 101 0 R + /GS101 102 0 R + /GS102 103 0 R + /GS103 104 0 R + /GS104 105 0 R + /GS105 106 0 R + /GS106 107 0 R + /GS107 108 0 R + /GS108 109 0 R + /GS109 110 0 R + /GS110 111 0 R + /GS111 112 0 R + /GS112 113 0 R + /GS113 114 0 R + /GS114 115 0 R + /GS115 116 0 R + /GS116 117 0 R + /GS117 118 0 R + /GS118 119 0 R +>> +>> +endobj +xref +0 145 +0000000000 65535 f +0000000015 00000 n +0000000145 00000 n +0000000197 00000 n +0000000249 00000 n +0000000301 00000 n +0000000353 00000 n +0000000405 00000 n +0000000457 00000 n +0000000509 00000 n +0000000561 00000 n +0000000614 00000 n +0000000667 00000 n +0000000720 00000 n +0000000773 00000 n +0000000826 00000 n +0000000879 00000 n +0000000932 00000 n +0000000985 00000 n +0000001038 00000 n +0000001091 00000 n +0000001144 00000 n +0000001197 00000 n +0000001250 00000 n +0000001303 00000 n +0000001356 00000 n +0000001409 00000 n +0000001462 00000 n +0000001515 00000 n +0000001569 00000 n +0000001623 00000 n +0000001676 00000 n +0000001729 00000 n +0000001782 00000 n +0000001835 00000 n +0000001888 00000 n +0000001941 00000 n +0000001994 00000 n +0000002047 00000 n +0000002100 00000 n +0000002153 00000 n +0000002206 00000 n +0000002259 00000 n +0000002312 00000 n +0000002365 00000 n +0000002418 00000 n +0000002471 00000 n +0000002524 00000 n +0000002577 00000 n +0000002630 00000 n +0000002683 00000 n +0000002736 00000 n +0000002789 00000 n +0000002842 00000 n +0000002895 00000 n +0000002948 00000 n +0000003001 00000 n +0000003054 00000 n +0000003107 00000 n +0000003160 00000 n +0000003213 00000 n +0000003266 00000 n +0000003319 00000 n +0000003372 00000 n +0000003425 00000 n +0000003478 00000 n +0000003531 00000 n +0000003584 00000 n +0000003637 00000 n +0000003690 00000 n +0000003743 00000 n +0000003796 00000 n +0000003849 00000 n +0000003902 00000 n +0000003955 00000 n +0000004008 00000 n +0000004061 00000 n +0000004114 00000 n +0000004167 00000 n +0000004220 00000 n +0000004273 00000 n +0000004326 00000 n +0000004380 00000 n +0000004434 00000 n +0000004488 00000 n +0000004542 00000 n +0000004595 00000 n +0000004648 00000 n +0000004701 00000 n +0000004754 00000 n +0000004807 00000 n +0000004860 00000 n +0000004913 00000 n +0000004966 00000 n +0000005019 00000 n +0000005072 00000 n +0000005125 00000 n +0000005178 00000 n +0000005231 00000 n +0000005284 00000 n +0000005337 00000 n +0000005391 00000 n +0000005445 00000 n +0000005499 00000 n +0000005553 00000 n +0000005607 00000 n +0000005661 00000 n +0000005715 00000 n +0000005769 00000 n +0000005823 00000 n +0000005877 00000 n +0000005931 00000 n +0000005985 00000 n +0000006039 00000 n +0000006093 00000 n +0000006147 00000 n +0000006202 00000 n +0000006257 00000 n +0000006312 00000 n +0000006367 00000 n +0000006422 00000 n +0000115205 00000 n +0000115229 00000 n +0000115256 00000 n +0000125055 00000 n +0000124916 00000 n +0000115454 00000 n +0000115706 00000 n +0000117118 00000 n +0000117096 00000 n +0000117205 00000 n +0000117224 00000 n +0000117615 00000 n +0000117384 00000 n +0000117927 00000 n +0000117948 00000 n +0000118203 00000 n +0000123807 00000 n +0000123785 00000 n +0000123905 00000 n +0000123925 00000 n +0000124438 00000 n +0000124084 00000 n +0000124895 00000 n +0000124978 00000 n +trailer +<< + /Root 144 0 R + /Info 1 0 R + /ID [<0B8CD82853C91456F281C53F8038FB76> <0B8CD82853C91456F281C53F8038FB76>] + /Size 145 +>> +startxref +126971 +%%EOF diff --git a/figs/rotating_nass_damped_plant_comp_md.png b/figs/rotating_nass_damped_plant_comp_md.png new file mode 100644 index 0000000..e81d8e5 Binary files /dev/null and b/figs/rotating_nass_damped_plant_comp_md.png differ diff --git a/figs/rotating_nass_damped_plant_comp_pz.pdf b/figs/rotating_nass_damped_plant_comp_pz.pdf new file mode 100644 index 0000000..2fd9de7 Binary files /dev/null and b/figs/rotating_nass_damped_plant_comp_pz.pdf differ diff --git a/figs/rotating_nass_damped_plant_comp_pz.png b/figs/rotating_nass_damped_plant_comp_pz.png new file mode 100644 index 0000000..6c04d8d Binary files /dev/null and b/figs/rotating_nass_damped_plant_comp_pz.png differ diff --git a/figs/rotating_nass_damped_plant_comp_vc.pdf b/figs/rotating_nass_damped_plant_comp_vc.pdf new file mode 100644 index 0000000..d9f3d2e Binary files /dev/null and b/figs/rotating_nass_damped_plant_comp_vc.pdf differ diff --git a/figs/rotating_nass_damped_plant_comp_vc.png b/figs/rotating_nass_damped_plant_comp_vc.png new file mode 100644 index 0000000..c89d5fe Binary files /dev/null and b/figs/rotating_nass_damped_plant_comp_vc.png differ diff --git a/figs/rotating_nass_effect_direct_forces_md.pdf b/figs/rotating_nass_effect_direct_forces_md.pdf new file mode 100644 index 0000000..53acd39 Binary files /dev/null and b/figs/rotating_nass_effect_direct_forces_md.pdf differ diff --git a/figs/rotating_nass_effect_direct_forces_md.png b/figs/rotating_nass_effect_direct_forces_md.png new file mode 100644 index 0000000..a33f6f3 Binary files /dev/null and b/figs/rotating_nass_effect_direct_forces_md.png differ diff --git a/figs/rotating_nass_effect_direct_forces_pz.pdf b/figs/rotating_nass_effect_direct_forces_pz.pdf new file mode 100644 index 0000000..d92d82d Binary files /dev/null and b/figs/rotating_nass_effect_direct_forces_pz.pdf differ diff --git a/figs/rotating_nass_effect_direct_forces_pz.png b/figs/rotating_nass_effect_direct_forces_pz.png new file mode 100644 index 0000000..e4c902b Binary files /dev/null and b/figs/rotating_nass_effect_direct_forces_pz.png differ diff --git a/figs/rotating_nass_effect_direct_forces_vc.pdf b/figs/rotating_nass_effect_direct_forces_vc.pdf new file mode 100644 index 0000000..8629651 Binary files /dev/null and b/figs/rotating_nass_effect_direct_forces_vc.pdf differ diff --git a/figs/rotating_nass_effect_direct_forces_vc.png b/figs/rotating_nass_effect_direct_forces_vc.png new file mode 100644 index 0000000..a30a9da Binary files /dev/null and b/figs/rotating_nass_effect_direct_forces_vc.png differ diff --git a/figs/rotating_nass_effect_floor_motion_md.pdf b/figs/rotating_nass_effect_floor_motion_md.pdf new file mode 100644 index 0000000..f44a4cf Binary files /dev/null and b/figs/rotating_nass_effect_floor_motion_md.pdf differ diff --git a/figs/rotating_nass_effect_floor_motion_md.png b/figs/rotating_nass_effect_floor_motion_md.png new file mode 100644 index 0000000..b054480 Binary files /dev/null and b/figs/rotating_nass_effect_floor_motion_md.png differ diff --git a/figs/rotating_nass_effect_floor_motion_pz.pdf b/figs/rotating_nass_effect_floor_motion_pz.pdf new file mode 100644 index 0000000..88e4f03 Binary files /dev/null and b/figs/rotating_nass_effect_floor_motion_pz.pdf differ diff --git a/figs/rotating_nass_effect_floor_motion_pz.png b/figs/rotating_nass_effect_floor_motion_pz.png new file mode 100644 index 0000000..956ee50 Binary files /dev/null and b/figs/rotating_nass_effect_floor_motion_pz.png differ diff --git a/figs/rotating_nass_effect_floor_motion_vc.pdf b/figs/rotating_nass_effect_floor_motion_vc.pdf new file mode 100644 index 0000000..af50ac4 Binary files /dev/null and b/figs/rotating_nass_effect_floor_motion_vc.pdf differ diff --git a/figs/rotating_nass_effect_floor_motion_vc.png b/figs/rotating_nass_effect_floor_motion_vc.png new file mode 100644 index 0000000..3ff27c4 Binary files /dev/null and b/figs/rotating_nass_effect_floor_motion_vc.png differ diff --git a/figs/rotating_nass_effect_stage_vibration_md.pdf b/figs/rotating_nass_effect_stage_vibration_md.pdf new file mode 100644 index 0000000..2283dd9 Binary files /dev/null and b/figs/rotating_nass_effect_stage_vibration_md.pdf differ diff --git a/figs/rotating_nass_effect_stage_vibration_md.png b/figs/rotating_nass_effect_stage_vibration_md.png new file mode 100644 index 0000000..67e19a3 Binary files /dev/null and b/figs/rotating_nass_effect_stage_vibration_md.png differ diff --git a/figs/rotating_nass_effect_stage_vibration_pz.pdf b/figs/rotating_nass_effect_stage_vibration_pz.pdf new file mode 100644 index 0000000..40876de Binary files /dev/null and b/figs/rotating_nass_effect_stage_vibration_pz.pdf differ diff --git a/figs/rotating_nass_effect_stage_vibration_pz.png b/figs/rotating_nass_effect_stage_vibration_pz.png new file mode 100644 index 0000000..08c9dc1 Binary files /dev/null and b/figs/rotating_nass_effect_stage_vibration_pz.png differ diff --git a/figs/rotating_nass_effect_stage_vibration_vc.pdf b/figs/rotating_nass_effect_stage_vibration_vc.pdf new file mode 100644 index 0000000..052800b --- /dev/null +++ b/figs/rotating_nass_effect_stage_vibration_vc.pdf @@ -0,0 +1,1119 @@ +%PDF-1.4 +% +1 0 obj +<< +/Producer (Apache FOP Version 2.4.0-SNAPSHOT: PDFDocumentGraphics2D) +/CreationDate (D:20240415232807+02'00') +>> +endobj +2 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +3 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +4 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +5 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +6 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +7 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +8 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +9 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +10 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +11 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +12 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +13 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +14 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +15 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +16 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +17 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +18 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +19 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +20 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +21 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +22 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +23 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +24 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +25 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +26 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +27 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +28 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +29 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +30 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +31 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +32 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +33 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +34 0 obj +<< +/Type /ExtGState +/CA 0.14901961 +>> +endobj +35 0 obj +<< +/Type /ExtGState +/CA 0.14901961 +>> +endobj +36 0 obj +<< +/Type /ExtGState +/CA 0.14901961 +>> +endobj +37 0 obj +<< +/Type /ExtGState +/CA 0.14901961 +>> +endobj +38 0 obj +<< +/Type /ExtGState +/CA 0.14901961 +>> +endobj +39 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +40 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +41 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +42 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +43 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +44 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +45 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +46 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +47 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +48 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +49 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +50 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +51 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +52 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +53 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +54 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +55 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +56 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +57 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +58 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +59 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +60 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +61 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +62 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +63 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +64 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +65 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +66 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +67 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +68 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +69 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +70 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +71 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +72 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +73 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +74 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +75 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +76 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +77 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +78 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +79 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +80 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +81 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +82 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +83 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +84 0 obj +<< +/Type /ExtGState +/CA 0.14901961 +>> +endobj +85 0 obj +<< +/Type /ExtGState +/CA 0.14901961 +>> +endobj +86 0 obj +<< +/Type /ExtGState +/CA 0.14901961 +>> +endobj +87 0 obj +<< /Length 88 0 R /Filter /FlateDecode >> +stream +xM,|+N˖lȆQw<$+owWݮde%-:Zߎ~|?VS+Zg[W׿-ըzR? Ͽ׿/?'M(8V9JEo'~?Җo!{=Zޠ#mzFk)χr&POh-G ׏>hD'ԐFlQoDM?G9z׏>hD':F\>FC.Y:}ЈA#ψ9>'qF1|׏>hD8nE02'oG:H3rbvۍT O̥#3 %k3]ΠG{ l h9g,݌fPֽ~G9qf|6g8(s,݌fP.ER݌fغGӸ~v3>AźD'1OlbUC,Ho,S{&vŜ7ng(r.#g͢,cqf|8rӺBEC);壷,d1|[壷,d_Q͸~v3>ECr#Xoff|6e)m{?qf|6v壷f\?z;xY43g +l\W&m٬l )%B9qf|6rmNGo79TE7f~v#>A{I7ّx.݄f~Y̷qF|6wS㴃݈f:~z)!<ټY9Alc>3L8d$iۍl,XXVވ'o7C c}wul+zkjOMx㧕pF}=ÏsDKO'ȶHFʛ?z 뷼;M#=Վc~[gg >[uJ{̷6(+~'7 ͼwr2v>;A~; 4M' \w<v;A~; 4u[N;i#od|,4D߀I !A~;1 ?|N;'od 7wMv_Ѐ2~6?7[W?Y㐋a'N%ɷo*}|[Eoث{|[o+z|[厽oثx|/_V d/oAZ!߾Vd/ۯ@ ߾Vd/ ^۷~@~^~í^k۷JEF}^]۷ߊeE~z^O۷ʆD~^^A_ C|Xr+J)j${}o~+C&#{E~-<"#{ ~-5#{Ցocz PUֽܜk0H|QI9ҵ翝f)* p∿_~N_?ǿ֟H+{CA~S;~yd~ E!{iEOڎK{evg ;ʑ#{ 盏;973 ߸ß ?\O=wn<7O1ycܡd#ܡ)w |UrܡVo;$yJ-e~sApS?Cڼ3nPR)ݽg\?p~t \ ?ǠL˸{DϸASpHw7M6-ԛNR?V1_-bՔ='rۏ޸K>_O̻SΆgӷk +ro?adgZכ“4`4ym%'ߊujL^qwW62o5`+44`(ymǥ%jVKriE%jVEri$iVzOk8{?.Nj|\6u" `;f^!ҀKEՀ6ҀODӀ*|[=ȥ|*A^qI_}[ע|{k>BN|\' ; KM^qɷ\iw6:o5`+,4 +o5`+)4ڒ8b|^Ue$ ; H^q%ɷ\i w6o5`-úo9Z(z+FՀDҀOkE#ǥ/:|{]?.PZo(w(߫P^nq97nןB~ y}ɻ yX1?/ ㍅[R?i:,,FH94YZA7F1ǚ6#lF|}mSqk :zmms7sneӈs&VuSXϹ+%p7O&QϹk9~z ԻzܕUֶύ[3G;E+H?MTeQ~c҃2N]÷f$;&R[?-0R %{~krݜ؈1NuSTd{7%*9Nnʫ9)d!-|k&1rw +-=Y z?%5E"Qڇ^XC,sicjU&hY8BSGsM&?1+6[PFoF+V5͵:RS=.J'ZKGmrw5K֒b ?]MFs̉kҨ<9kI^:٨qz*Qp K5⩸&&Qw^3~ȖGk +nu-H%.yޖS&R%xrT2Bt͈rCs-khz&j/5`oHX4 cW7=C˱%eUpʣm9kHѵoPP nfCp5:{_ZJEkfy^aڐgoO QG3[u>ѥ|T}o+a0-1?jvm+?bLM8{'P,#M摩%y*5䖇lgHC\0MMiڬ#Q2zAˌY._( +|r q2?Ȭ=\$هs`g騉OUƘZq^S,}͵*R~H )ɢ0w 5vOmmfI[E+y3Af͒t9!K|ɮ 8xrɜŚ#6Ki) +M.hĶ֑"$lǼXŨGrc6+VxGre:NcƂV26Q&r]Ճ-7)ƛlk0)hȪFHm^3=i3h2 CYZ2z} Z G&d5OUl"k#`F*L,& KCNكȴW!4|GLW2f,-\6r oX)u vLgY:pqӰ?mDrm^R,puW$C^G51cbEdf4jqʩRIGVgk7#JDZEޱn`5wd$I#!fG)Gsb-V&4y +_jUM&S؃H_8yᲒeĒ pMN~fQqM<}/CbyJ4k +<4D{d_:D2:LA|EÉ] ]f" ϖɯ?!Ő_SvGr͝j9 ^Db]h2Ӌyqֱ{N&L~,Hirktc~O66b { +o]GznĖSӖ>bԼ#kCI=,}k;h\Ĵ~%5 1mX32ʲmsTq-J$4RS+`kxA͌"%Ã,ldMUn-SMt)&ďYo1KG5Ƶ/Q<|29gAq\O_gZߓ1j[fsn;-0GjȜ8 s:i>N`EФyʣؚie[&뀬&q#HBH&OmxD; 8 ]˲Ohkhee4XRRƆV漦tD\NP2vMYS1Y5 ZN}2Up\lM꽑 +y`Mu:!ZP5EM}fڐjnG,ٯ)/G ]E  Dɿ,:F? L:^2WYdk HKb&>B/I =dfC/ɬV*5yxΏT1N $͕yYƥ;zf~:$dgmQ˸`d`6w⫴Kp$%`~2P;3K0563]2t،73I5$Rt.~I._U/) 3 )v#`9٬2Ě)$^As6%䘖ݮ"1rTM%%b#aIxRk|b0") Ѫyj2nV'Ѽ.C,t0cQ s2MgI/{T~$/JmӺmՊjKef??eEKɯ)lY0 CՑ#ԧցZ7C^2?{H闔a#VY8efrwHbvpIϠXKU,~4+/e1fRgZ5a}E֢S zv5aJ;@ -–,&L8ɈrsWd<|36_b'qH12Myղ2A6?3H"&KH4k&7?dZ8SBz2ㆃ]I5N,(@,uy2kɆ65# @ÂeIPG+Yv3U?㘾=4> ČD_ +J|Zlj~s-"F#ٝQ٬vِsM֛D<};;&dT15y=D˷TϮ2(=\4VȆcjb͵J2n9! i#:)QkwM~L$\2˪RIJ5YZiZYfΘ[bg`]#ϣbv3$d*~(dG$b%g6$;t0-|Exspy};tkhT4r`Cj9R58U+G +:&]kq'/ e[TYx\"`^nM#yqf!ǘd{2?ʆ6&KʸzrMn 0=yj[QٽTr碶cY"lL/`ȋ5b4%d[ ,A ,.Ɓbf%hDVvl!}l;=@mdȮ%;c:əw#N~li4GU^AY + ">;![:a}MkLlz8%Sn_PY{*]LD=tsm-*CG̈FFFa4v8!d\M{%cHlq3O'Y&V *w@ȐK8"npg|!Ͷ4YWӟhZ->) l&D݉Eu% }iK?dWm~]>I86a$fpBe:|D%vI +C 5l,&^,جa \- a=FeY17U*Ą7_~/캹??lg%,d'H el5xi#,6IݙJ-dCt!ER‘?s 6ID +89 ?kR"Ry\6ϫuϩE,BtԪYO Q,qXi'ݮt,8J%uyκ(wxLu׈ uZzA]{%R^QPFa[9xT@e 󸙋LXR*I6ofK#kb5$* !C5e b' FD] DԠE2q]#*5:l)duKb#sINz,,SQwHLw"5w|tc0CBl}JI/feY*Y[UYp0j]FJ#1$#jj(CF,g5bVP&N, U\Kzƪ,6JD{%kޡL]%r,d?τIo$-0s84?gpd$6Wi+K>?Vm#a!2nYBﱠkb>tb}x|#w& PmfdB̥poЬCyzI\e PRHj!鮱"{2wUdsul_,XP3wڨ+5\p%1.Ek|']uptSDkTczv"dhb6"FU7Պ)1A`Y$)Eۜ7*fBMّYcu$8w?'F +)Nɵ{n'ͨň`1VykDÄ#I&W`|xcY-2:")y/y"t]c,OdFO͚@ Jɶ|ąDw +5΋{KؤD& +$8m9/a26D ظ+P5E?JQ5}yv͵FHXbGhܸD,zS=]dn (SRgEcSz-I#F `-\Bԝ;˟?YUGK`[ha}{^w&CAS Zto?῀]iD;O|X Kl!0;Tb^x3~gvlǤ툻ybaE4HCf0e| ͇qwyZ0jD1 npaO4ʵkfh%\44dDҙGo$"0dݝGI,mhg2u'Ct()4xFԥO'Ï*w:q?gws3f.za~A"k{%2eNiVd:eigT]ӡL4+K?:1j8 1LrnDL X߮ֈlo&ByB9&&>'WۿV49zec*Qwz4GS083Iaw j(h8dz a.an8lYx*T"Uv^;4)J&DF=&J53g bxd#v53^]Ǫ&Pjݑ2d}D4ޱdSX=}b0b'/iE3wQ3#:Ф`JEsr9CtdJ8!8d},qB,pŃJĚ([M;˪@/UydۉC#(v=5ݩi/uQ7tߎgd'T4sh" `!cȼu9CmBxәu.bmY EYC}a L~8PkCۦ.r?A 'FSKERؑAJ ηea!%$1XOtMIBVLZLs3q\XiXi +ǠQim',QÓCm 6HFFȵeUMk-9Bs8xg43u-YB8Yk&q5V3pDD1_JP1RڢVf,vWZ> +hȡ,L?t/G)hKhQLT:y0>ZLw$'õݪ,5BқiPK[;hFu&$1 ) lG8) ȶLwԤT_G)%t'^ˉ#/"UEEhQYV40vuXc^s4g΢{&qx bLCg8S˦#y\ 4}WV7 +1JH(S){~f9 &YMR"1zXg!x#Sˌs@:G$v叱kBTR'̦>fJ).)KUYjn.YbTڠdiH(+b^֢Ш +h0=ԉ?tX4IR%٫iE: ؚjA1_ـm=F\805"vV`]m)Izz`0WDJ:sHwp(k{SVX{vLx)2*de}&KGM# lh4 +4\lC?́9' +g!kr :]qB Fc5c*V~6E R8(BJk20t;V6~!C_C)gAJB4!"I Y26@;\m^!aeNpGиQO)_MOݏ\yu^#=NDP$pX3D,U9rD `#\~93)nY%Q !7zӡQW<JiE~gqU3khfn£j(sN:Fj&w-:++l`~vZA ׆uʋt[ 6sP{Ys ŋ֬Ɋ|Q5o8MLA/ܙӟD0VE +CJ;5L+ٞ2qݮ Q%m|ҍuj9< fJ#HύȤs;3UkfpQ0G_,HmڡI bBgD1ѭ-\jt4?C6 %f]rrdG7N"ɻ|aC_G8f_)g2,ҏGq\լOn>K>iݸMdfxr$A6^CSlK;L/\YvJoKAup8aiH]{R:`5-S:Z!jkx+-cwiPMzJswߔNfuX=ӈc4(VX4NtdfaTX\nyr|J? #UնIyqgx,gdպ/' Yl#޵j?aaQ՚[f4=_hc=[ {ϋ+itړi-?taQ/Y=meid@PcgvYq~4 Z9jeM>5W{X* '0A9aX84ÉHHCL2]f: Ҍ\ ͂fI[fAK.{ 4#i4,ؑfA)4+LcᛟpmH3ʛ=ne`Wq7Q N 8kIgkOOCǎ49q [ɲ;L˛sRR]͂VΩfoD@%v!U9l؉f8¡+LJwtB4; Ͱ ++C+hFWOB4#Jً z؉fv`4҅hF~l(yD34#؉fΩ"7{eJ\%+LڅhFIu㔹v!zTڮDMXfՄ-83.˥\pf nr8+qfDDzS{ta(3;3;qӪ#-Ե x}<3<363S\ όyeG-@3e>v,Qxf27\Vͭ@Lp5Eof+L-8W֟'hLZfh^a%=# LC^f-ͬ~KB4e9&DҰcNxWԞP3f6ԞP3u*fѻPIjWhe1⦎q.L3RO '{2X04y)NdyJOp6YhO5&^NvQK& 5Ü+1/P3LLVm\f +QX+ؔڕjF,[Tk' ErYwᚩשd m> r%i@h l4}9$ Z7Kl_fZLЉ(d3/ Lr05Z6 rlK'֮+ #aV_5uYLlOl ،"rXfh+ Qb*v]f%l+Ncf_f7zIQDk'، AZWZ:Ǽ 6Ӆ,p'$bE L$weyOL]fh2P׮xmNt {'LyR֜̓c~52+Ռ:6=fE}?JbS;B5}`jVjF5Ӕ& +MWl&+[pNՕi=fa{i}2?+LiЃ< .@8.P3zV:wq&NЬ8S7YV L=K(&5+Dpfjq8KϯPB^f?^F5+Z{ujFBlu4O|cgQbľUΓgjV)uxUR͈*~A0W+L+X5#`L8Ԃ4iל"ͪ-HźhJ4?V&B4+^fjy%q2OJڂ4k] [vAiA6Y&lA1wKH38"$ש]fZ֖hZy%{vN4+D%8 z'QH+mD3&g'aO{ ѬS,r)S$g(^36X 8=kY" ̰hnRM^`fE f֙f6Yf&a(sLm8̰ Lmr ͌N33$ff3k;̌{;L^]`fIaf=D|3L3F.0z^`fl֬ Lf8!h/03El{ 3wafA703<^afCk;,QlݵfK[ W _QfvC9&mGW%Dm(3-VeF چ23eFOwmGɶOڎ2 DɸRw(< ߙKl>Pf5ewW:qe,pN2/m@ٓxC2;ߐ̂-LvXxEb+̬3ct̂LeɵeAiI^QfOT6mp2-e&Vxܱe*),p^XfkAˌ/N(2kͣoXfT..m,ë估8vkˌW9c,3je6XOws2Bc#;,3-iLWsaµe)5\Xfݎ2ciTc%aaO(3c3;f[\03dК3;n`fj7vY H`f󸁙2]af3@nXfDyƿ2*.;eF=ˌs7,31(2#{̤2?cLkˌ>=3JHn`fa^afbd[opfM83dfޏ;3g|8gvB^qf k;,;f&k^hfj=`f;hf{Vf ᘠ ff%I]`f +3mЮhq3ʄm03`\ujL1}V&tmc͹dvE!1dVdc5ϯun8f䑵 $9f1\9fV ǬE rJ0,!njcvn8f gk;,izcf-,zĩr,ĵcF{vX6Hn8fTAfd|?$ #"s2V>dYXqd G{e;*y[YucD(n( E5c,s2YeǬ;-ٌz8f#yɬhY[DƘǘQIn`̺;&Lv_1.A/uvdZYԄlF2#e$3j Ɍsye# Ȍ(M IVpY 3+eUZ8f(}ܪ3[~cT1l?-3<ٜ +/3 lp[Kyᘝu3v1# .tnbf$-3!;AkQB_b&F#Q(mB1dyc,1h ƌ^s/^l]R._0fTqP Ƭg;PmQד_8f;njٓq\~xsB+1:Gp̼cFn6+?^9f2P0p̨VQa(QWO7Y#:I8[(fuQŌ|5wYSm)fzb$6ziĝbV-b{P?{(-B4~ Ƭȶ3_0fG%ߵcVr;ʎ1+)wYqwk ƬPK3v݇6Yŵ+,B1#<܏y_0f{ ++3fZM!yR(]DpjŌ4Zf ,qߝ8Px $](f00m3#0J1SVEL>3t%v0%~n(fA1c|Dtv[ fjۤ](f +tvB1 35`)\B1Bc2 bjK Č.n5٠>yq_ f r?c ̈V|uX aL1cS F[ f}N]W8.\[(f|gG3]&ڕc&\/3} BU_!fh8j`'L;ɝX fhEِ.=fog0S0t7, 34 +0Cʖғa5\f>εcKpc5p1ӹL1'L縒΍X<;\ fJGIy Čy1#J viTvJjn_!f_^!fz'[GZ!fR-ϵ Č<{+߸\@pn fJvd1ÚQV +1+ñN Le P{u +1L|73Ƭls.3MD] fX5b[ fk҅av]0f?vᘑa]D',xu$\Z@fV/m2,ؖɶL622rVn 36$ƁS,32%&w'Ѷǰ 3Uf  ď`e5îfJJ9& 3SƘfk׼.ړfCޮ4143uPlF3Ӊ̮g+lh%dU+L`+v lhD kUyn.43B<4+a.43مn #Pfu)Q4'd${2&2#[kVi//QfZ9jA˖UQfD̂2 nPfԔ$2ZA${tA2u"oPf.iʌxMoOsAu Pftpz^VY#YKvq`!O̬iiË:û7 fؿȞMɸc7%ьeֈ ˌ/Yh ̌Q[hf.]k$]hf쿞J3)]hf9L ͌*$]hfqj+ͬPIc~B3# +YifZ Ri ͌8c hf$wjnޅfS64uVt8Gyb.43pdOLf4ABE\m4桤a NdمfyaiZWW҈A̒ftcE%R4(u"ĨeFEd N5b2+L[cGU8خt.(z vHfD~pB2cPvۂ2#Fz]PfYLhVr2E:+L䷲8W+gl,njoew$$}V+8 byQf3o;Te&P|2۹F{*k%6[dˌTEVIx| gY2;Xu ف .&SdaS-] 4Zfc/ˬpw &ˬu 2C:4g&H](٪م ]Ee%랢e#ʬ(3(c%.HfDJf8w ߉$iLMhΜlܿv=f V +6ìg +#cba]p3[I2Z[ I28כdd6vٸ6zI2;pL43o.E Y3beͬGKNrܮE ֟2n5b[-3Pe6iU 3kpX4`Y01Ţ,CVV=za KeA)Rډ[83z4;[43?̰$#pZ}̰͇l̒fv(jf]Aى8}fj|S^xR{̰#.J|ez˚YÑV-JTx.~ΊfÁّ 2g]:RcʔElH( x{䙡w.}&0el[\<Af3ZM~>(f̬WQ<3t٤3ÂIJ$Z<3V♝Zg٬oYf8cge 4EЬv,fc +ޝ"hH;ffX-M[W ˠ*/qt4l!NY`͢ b 2Af*ف?EI2C\bdu%]^!=Z%3޷d6yK2ff̞ ӟdI2YPy{! `Yl>v+J٥Zfm4dte6?wRfH[$Ү% kdv_ss,If->$ç(agE2w_ ֍a dVcvr&,2ffvc#pw,1fhМ*KN'"cƂSe1"na]]WLcva- +;fhJ{93j e 2P({+Kم2V ?'"cV6E $8Ʌ1U2cQ2.3wC2۽s~lZYP)m̞*qS$3tGdvEh*2S$3mY/ɌeNeVl뎸-N^dVQl̬o̰~y$3^!ȌÌ,Cf~ 2Ck2dӿ W[!3!*7dpsw,Afh;r oY/ +.YfF1[0=<˘Q/!DfVTee6f1u27evq|̞[чe6.Y٩m/l ٴ2aiRf?-% +jʲevh22C/KY̬bZfW_w~Yfw;e?,sweG̰Rz+ʔjW_[)qvPY֝e e>(3 +u,Sfw,SfK? !5U|If?)kS2C5nO MBc'H3u703喖034V0[֌+f -j 5&{,qfxdXYƢ«خęOϜ3O2;:rftyl玝I񢤙!),hf۞I3C5jf̬3mO"M3=g YvAD̘Yܞ93dv&͌o43dWef]=kfȞT̸PfMMę1#l̐^ߓ83yޠ1&͌M0%jf6Mw3rl̬;`& ^fl̐ᬉ컠1i4if@< +L23Y3CĒIg&Ό-g#gl|\ D &F]3at~/rf4)83dW932xfP(6.xf +n:M!T4qf9qfƇXYefc5cfQ3dlDzz~Xfݥ"df!ž +Q2I=" vQ2^ED=[(!X(!G9l̐=D!3[g ,؞Ȱ E{̐{(!~|2IfP^=$Y̐q%ǾA2CY/%3i[(z:qDɌ(ydz̐}gGk& s3IfXn%3.RqrRfPaH!;Pg юM}6Jf _!Ifp?gNf4=Kf~f̐mvda~d9Ǖ$3d;<$3TFO"o 3D瘅.MTyQōM2=$36hIq)3⻘(3d 2|67& x 뎇eZ)(3d{"ܿoW&ǽ[JN̐q0eeƃ2cAޡ12C&g ٸl74afȞgC3C6l頙!3"kA*gվm_ d̙T?OwUgFQv&qf^d"rf &l'ΌM zM,b8={f3h h3hVs8U*fE4:0hV1E Wױ9Z@q_F;h4X 4ڿ,Ug˂hV$~ve4CN0KZ!___I3T"ܳhD,n6MIf8e'VWlBrhcZYDShvdW"^YQ,>f?l+DͰ}* jn%d. jvc jJ G8plF0Is2f(Mim Doɠ5CXXKJT3>襪,fhdzig$fxͪ١GjOg_鬚*RT1d=RZPͰ`.̒jv@$%l<W rivҢ.쇊&g0f0R6f(g.؄u|+jK84~M3lTfzaPY2ؤl1ͰfuL3,m.m%l !~4Ý-fh{~k4 Wz6ͰŅބiFF` 3iik:NM6>L3dN}fhu{FD@2p8d{f4CxU{E wneieO>h ]KD3fuC+Y4cUnhD͢ZֈC+1ь$1U 1c|͐~̘[=3fcAS̘U|3c{=3fpݫgƌgug={ft 4cvbOe6 4hw^Π3;il͔H׽ͿF3h_ګq45T3ҷsR873'Qf+Jj^4?7f + ++s ͨ0~sElK4izD87mr2p/ً5k_}Ci/jl6 5C!xPcWf0/Pe ?M3DK94ãuil +nmiƻd4~% c4#MrϦoh$ +,F XAIP3O 5:n=fX}>fXnXOvV{}fXF.amevW W޺EՌ޷gՌ;WY3d Vf-kָ)6u +*X\.#hk5F(Y͐9'{]ƍΊ;eklA:]3Zd5f-"y`͸ۣ5֏({Y3s9Y5]]j֬J"#jƒ.?jM3+_5fQ3fػ9A͐=5 EuxF͘ar.pYIM@͘4Ij YuC٣1;-qVP͐UYj;f +^Q͘a+wxWԬ1=fhnC@0f //yh%;j7fP($apG-{D3fY3'ьٸ jhfM1Bǜzyf\Y"Mt#a4c{5t/:9f̰Knm'gόkX%1zͬ s$f=2lq^ [:WY@3Mc#k=d{̘qI{Z&g3#6reΙ1ygEÍ6~93dcLnA=rf\CQoK3g̨Ef0< [;ظ+s͌-2/W)pfn9Kpf\͇F[dg͋{ 11kf8䠙!;PR`3:v13d3cE2ԄŇڄqӡفief 3af_i9Sf8s8.6Qfܨ>SfH`j;SfhYk@q{wzv6vfˌ[9`!ڙh!kΝ2&0h3*Xf3yel D9>DHd1qp:@f{ ۞(Ql'@fդrdƶ7^lcqUwkV3o' >1xL(͎ن6 ,=6Rcu1F*~˰1z䘡;uzat̶͵7gf 1zҌ68f@/&jv̸7lC?sX̰o{6o%3o(;\+{% uI2qe,m@q$̰ߋcZޣ_!3l4y;GOڰڽBf蕏vṵLE >~c[!3_.nldfz\a[z^ ݯpQl #w2ۨ>52*V@̐D֠d +BX!3dh9Cf*>?sd [-AfȌT!L 2C_ Q3`>^Kf 9E >Kh33eb_u)R֨' _uS+;7A2uЩ־mp]NrHfP*жG 77epOC36Kf;Vdg:KA9g/e{?'ך%+A2x8Qdfق" +edz #;8c{d1г0KfO@!\2xsRbda/ߖӵG2c=Kf'[SV~w:HfXf/Q2a  khW&‰,T,:$oYUd6.OOz +EH $Ȯp0g7{c:h3ܸeGȌ]}篛 ;28al +^ʬʡ2cG1plDAa!ā2lNE3ê2M?q +743<_7ifޮT ]Cz3|"jfWf6b簵^6if\CfA3ѭ)]ܮ;_bf8G V){1B;mkW̬ӘP4ifC03Uq`fٱ`f7FG W26XV>jf)i/4~<434sCumT-}l1U]Afգ9j5>kVM43lϘNª]Ϙv03+[ 3+|n2eeVFGGe +|7$(EmE-Be!?/Qf"JPfҾ|_)˖͒YsN Gda5X$3_zG +IDS*u2Yꟲ@j(ɬQ\9 ŒG$ 1/N2kn,@fcxz.PRu^ w2;ѴABv|ձ;z}Cf:]ɒ٘8zU2ckayY2+<-]V,Jf(%^ݜd`E2 Ʊ[m6oZ)345(2eV+fV0 ˘Tw.Sc]0W3ptt-afYRg ~Uf̬ض[Q03=8 'qf(gwOfl3CAI̙l3Ƴ@͌% "jfB.l6efV3nJYe/Âf'Ŏ&ͬF ͷI3@y +b -$,٤L||e F ;$Fd-2rf=3gVPtl̰5އC[81"g kB^άrfӠșah2C! ڪa*2n eu)W2GWk0*oD pf$]#0' +¸d E|  +Ƙ(ͳW2ƦgUO9gd6XyE,8Q#eNX={)34OC`>3${-31Y]ka}}NqQeI׆+`ajeל-3[>;Rf|3efP?xITOYcHW9^)Pf<1ee?al+2;@Xev;=[f؃Cc2[D0QfXaSMYGVh96Qf\2D5օb7& &E $Nˬc2f2Ccߕ2å(3h0*Mϔgl9,PfփŦk2;HH~X̮빺dVF%3 }Ȭ/~!3IuX$1taӬJfl"8Jfl:?sd؟dE[e62[c_$f2cxT9W(VSY1 5va2YL\N$-\d ]/tS6Kfi,Y牒Vo?Hfj+ Oʬ0g2+hP ر-e_)3V{𔮶Pf7II e){2۱ըL̞ZPfl޾K +ϱ2>RfT(3Xi3eef#ehlr(3|gWM"d2CKj - ^x2‹Zfٴ%֞NQdv2O$a_fI2a]" ùd6& CdK;-}rRfn.$Y/}[VAL# ef,Rf:?$R!pd@I˒م[>,eʬrgT) w< in]Y 20./d6v2",@f23xF2,O_)3](jR$@毋ڎճH 2W2/<_ +endstream +endobj +88 0 obj +41206 +endobj +89 0 obj +[87 0 R] +endobj +90 0 obj +<< + /Resources 91 0 R + /Type /Page + /MediaBox [0 0 142 173] + /CropBox [0 0 142 173] + /BleedBox [0 0 142 173] + /TrimBox [0 0 142 173] + /Parent 92 0 R + /Contents 89 0 R +>> +endobj +93 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 94 0 R + /CIDSet 95 0 R +>> +endobj +94 0 obj +<< + /Length1 1968 + /Length 96 0 R + /Filter /FlateDecode +>> +stream +xU]hWdj~VlTdc.JI5%[ddv3l\@%VRP|"E&yhb +Eh+BK>(g&Z[sιw=  w#ʡOfH#9iodp?*M7ߚ.,L|+?Js9NFHޞ#EVɛrŹvd䪂5I\8Yێ~di([fwHpgJVyn-4c/͚%KF= =+6q*>yx'2Qa'؆HU_um8"oBYGa1>2.RO]Fq#1M ֆ낵5U~(LB'emꈪ,wȼhs"LJUNUY} vMJI9#k4Jˆ]J&GF#Ԗiu.r}аqp4bK#94*w[;lv#̙bw)*9*_Ӳh$m^7㚪 J6/kˌ.2lAvVb !y-hZݙ-Q0YۜفΰHU!+W4Jb9$%i5f KOUȤtJ7UUU:}πs.H.?ڒ-2GGTIsaL >nM# EB3z)$|TXnnt1_ ;β\;r70ŭF$$KS&;=վvn~;uIo{Q9 FG\ ѽ( ]|?+ObTSa0OzQ˾i&֐tr0Ca}aBՋY1ho8Uz`PMɣ@x1zVLT\]?i'leW2i4)FYM=.w$Pf<'+$ib$J1PVia6?R> +stream +xk +endstream +endobj +97 0 obj +9 +endobj +98 0 obj +<< + /Type /Font + /Subtype /Type0 + /BaseFont /EAAAAA+mwb_cmsy10 + /Encoding /Identity-H + /ToUnicode 99 0 R + /DescendantFonts [100 0 R] +>> +endobj +100 0 obj +<< /Type /Font +/BaseFont /EAAAAA+mwb_cmsy10 +/CIDToGIDMap /Identity +/Subtype /CIDFontType2 +/CIDSystemInfo << /Registry (Adobe) /Ordering (UCS) /Supplement 0 >> +/FontDescriptor 93 0 R +/DW 0 +/W [ 0 [750 776 ] ] +>> +endobj +99 0 obj +<< /Length 101 0 R /Filter /FlateDecode >> +stream +x]Pj0+l CԒX}q z0h[lE^X gBpjV& +:G:g} +endstream +endobj +101 0 obj +234 +endobj +102 0 obj +<< + /Type /FontDescriptor + /FontName /EAAAAB+mwa_cmmi10 + /FontBBox [-34 -250 1047 750] + /Flags 33 + /CapHeight 683 + /Ascent 750 + /Descent -250 + /ItalicAngle 0 + /StemV 0 + /MissingWidth 500 + /FontFile2 103 0 R + /CIDSet 104 0 R +>> +endobj +103 0 obj +<< + /Length1 3276 + /Length 105 0 R + /Filter /FlateDecode +>> +stream +xV}l[?O;ǎ yq6i:]q'N4NSXUD C"CNb*6ĦL1 Uipwvw{=w}9@@Bx TKbXg2?\˾S̻\K*)}mS_b -ҝg +/ܐD_5IܹW8[U>$v3(>-]braw֑C}@ @ +k2sYqk> !< O0<20 3b0a>BtDP_/Orrqoq^^Nq'N~=N3C "b1꥛E0#:s"lF4S/FF +,zN]pQbp;F00݈CXUi*Q9iC-7"ޙWw}*O"U_Rni.ȁ<8u´*V)3Ky6HH3ʭq;u7L팫mBk4]q-Ezl[3qv}7Z_12V_`@5ȕh$槇C ,GYbW7kt>JHŸab#SSyΡ PԡuV-ESò<Al9P{IZ̊ȓ χd7E #/]RûF~܇x@,&v Y'y "uFUszCWݏ9#4ڍv}Jx!M"kWMxӆ 9hQ%AeE7'i z]f5 W2.א5u;ZSw0hט;>mIUt<(Ok2s}x?aˉL *\W/euuer:zH~ G97ot4%C^w6`ls(;t<ҝ<4:#VG0gCssX(Sm5 V5M3pi d7GD9QBn&ph|rtJeHCТ&k +9 D]y  Dj̼C;ئf ?dJoYE ^B>ӫ{ߖHsy7Hm<HGB۶D͞޾[:vқn +uF%Wo<1Zx4}6O\uL8Y*۵x>9a +5b{t6No1n2}!n "-4Df`ТjE@`A^`šv"7=uM%@oi +K{P) +9 <1T""T=gYre  kq{*wwn9F\]v߈Fؗȃ!x=/+c0Kq2lnn\~KϏ}fve߱*ј\C# +Onx Ng! \ dA-ACK,.`Pj3XWK˘@v1l,c2Q$Z8^,ZHeL@e̠~Y'ʘz2QwYy,Q  !x<ށ4Z* E]5 o>k,{gvo(zᲅ)-z\*SX2\\Nx:|~%1ݑf@$N'.gr2-+@at1 1TK?ai(&玦N>"U2YL].n<>/gpŔIK 8^:}YTge}2 +endstream +endobj +105 0 obj +2382 +endobj +104 0 obj +<< /Length 106 0 R /Filter /FlateDecode >> +stream +xk```e&* +endstream +endobj +106 0 obj +18 +endobj +107 0 obj +<< + /Type /Font + /Subtype /Type0 + /BaseFont /EAAAAB+mwa_cmmi10 + /Encoding /Identity-H + /ToUnicode 108 0 R + /DescendantFonts [109 0 R] +>> +endobj +109 0 obj +<< /Type /Font +/BaseFont /EAAAAB+mwa_cmmi10 +/CIDToGIDMap /Identity +/Subtype /CIDFontType2 +/CIDSystemInfo << /Registry (Adobe) /Ordering (UCS) /Supplement 0 >> +/FontDescriptor 102 0 R +/DW 0 +/W [ 0 [365 520 570 500 488 360 276 ] ] +>> +endobj +108 0 obj +<< /Length 110 0 R /Filter /FlateDecode >> +stream +x]n >,O'x9tqb4qKj%@}a06$ {ޝ=z:0tV ;*fn3x;=JvWxQ@oNSzW~grʡf |F`T R~;s%qzFb@-9Dۿ&0o!*y}IT]UDLtI:}R:)`W%1X 3ґpq,klt ~+ +endstream +endobj +110 0 obj +263 +endobj +111 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 112 0 R + /CIDSet 113 0 R +>> +endobj +112 0 obj +<< + /Length1 6624 + /Length 114 0 R + /Filter /FlateDecode +>> +stream +xY tוߤ_Z,ˋKŋ, [%۲-06X,oxmABBC6$i9L0iJOt:&M&ILғLsz3L-CK,dB?<}o[VdmSh^H(+_?g{&6_@|wb,::p@[&#mg 'f/MI˱} 33s#|=?]'\ĶqOtv1õ6]&ub~naàПCal?"@ +hL%n yv@^_;&"< ,< +=0 S0;" P~

NrCf~;{w)W?໰D-5xSjs7`PaGŏz *Z:KHOSeT± Mp'OZǻ]Ε88ztսbU+VqYIo4e~t8Ur&p, mm4'qڊ14Yɮ>ۻGe".6Gc2٦ hKφRuūGGp$km \.JWrV<CF-+b,M'-"XrᬸZvd<5z ( bYK#.A,qWd扐P{FTbEɂP)d%N-h`WO<8+r&e[.| %.H>=X$XEVby`X$(K0'`Op, XǦbQ#L)e@Fp_&PZ"afWqc߭])2-tBQ-eҤeL v_b^Cl0'# 1K8%GBxҗdeGQJy*ڤB`꩛I'|T.,D[%\?` f% +fځ lWݞKGqrpfJYTS5+TJf1sΧ(.=lw`ϑM7H +y8OI'^yQx޳O~wq6UT٨`&pt)&/'enzK!ϳRIa 9Rj+أGio**jby+)<Ѩө ⩨U<8C}=C;zOI /xez\rdcC[N՗640XODz9L3z̸ܽ'TXB0. +|&R%֜QLs#S9k!FQE"ݢ+JהeqhtQz+xtQX]e&}gkq#V:<0* }_nkk}uK`w&'egRddh%'FV=U w,jgo VuC^ʮ6|)uPryXr\oU|D\Љ[5"T٤23S42o&ҥdР%0Xp:*,&Z+WOBN)2$qKWwsk־'[)D{>#莾sp3nsE2τ mh@.Qt*XZ4"KrmR>#$BQ^yǕ)($-ERIŵ:GjkFR6]Ao+;u܁7b;X׼bCfͱ= k %Pco|p7J[ɳ21F^}_w:Y}E(–ǫ$2,hL ~ 0eMK^NM cwUȞ#f ۉȣ\62lWav60tȉSpꈞlQh +_QѦdHuIݮ$-}5}K5߁Ԟ_N0ߌw%g(( m>-_mrݞà睟JWDmW/znse#L='+xNw[/. +בwSliH!p1I/ Wu )EbeL.3 +U5tlY,)OF( +"Ӥ1k:IH:>tiI@.~gpHW`WN\nLmo-XL >KѦ ˥Ffުk?z\F[`D?H%Ѐ1/VRndO]YJƢh> ?q~ƅ$2{j@ëR,bPL't5NćH+Hp%-/Y[VџlkV8ܐH''_ʱf2W#?o +ĬFItHl2Dg ,WȎLPw/),Y&4j!L}zj۱wɯ.ikK%<ߢ˔rT[7Dd +Nџ%cDLČ+9D;Kݘﰻp3yMJK/}"~!s\ Zh +֔:Jhg}V92 FQ ,2a8%hRZ6HNDuZ}u@t*K'p1ҳ[m<9tmvCsg.gN.8]=wߡ >׷ŝ6ﳻ?7Z+#Tӽ ]!:V@Yt r:+"޴ެrc0Y`'BzZcUxR ;UrT/%W]]]{v5!9|"}5c\ anvſFce7xE0}95X/'<60%)$vƯT3)槬f`I ,ͥ&rst0CʪBO;-!VT]!f_xU T'ϵ553zQ`{{dKxq_ͺ#&};?1Iͼ(O#-!ER}/hۀaJHG-^@yHeHɚToaẜRqH-(96VuU7}0%븵sHV0" HR`~X^,;796fkZ.vj_.̟ki>7wKåMr78+48Z]f26Z;NUTu:ޥAky:$oߘ>uj:E@WIo\ss20$RAej䧮۷M$ m>bhH 9:$^[ +&^uW(* +%[ש|A ^T,ҌBZ$22QVoDFQy>aBUc4:x~bJW_:x޿I<^{{)>>pC]У#EF^NR#h#͢ƨD/lD,k (T2iɇbv V)$^IryiK~J-HmnDu_]'M[;o]wG8w9XBmR*(ղtn)/2 daEXzMz_,R惛/pCq0(^]jd9~#+@ɷFZQ<\3w[+?}1+Xb @K?Ռ:`;m;pe0Ga#Xm; q\add+Z@Jtt[]s2%SȰ;R2S)ADJf!a80<S2>%ߝdrșa `b&a7L~ .GY DcfPnfv<c(5`0"r{58 ׮lЂҞ A+a1Ifq1|nؾEMJ109clsۣ3Eaf-#c cFeѶenh?9i<86j fa ۅz̢9.Ew+GQ8n8D-Dv[[L(XJE Ͼ(wW:]Օk:S@͗i@$SAvӲtyyPv: +endstream +endobj +114 0 obj +4835 +endobj +113 0 obj +<< /Length 115 0 R /Filter /FlateDecode >> +stream +xk`Q`X*8[!^ +endstream +endobj +115 0 obj +20 +endobj +116 0 obj +<< + /Type /Font + /Subtype /Type0 + /BaseFont /EAAAAC+mwa_cmr10 + /Encoding /Identity-H + /ToUnicode 117 0 R + /DescendantFonts [118 0 R] +>> +endobj +118 0 obj +<< /Type /Font +/BaseFont /EAAAAC+mwa_cmr10 +/CIDToGIDMap /Identity +/Subtype /CIDFontType2 +/CIDSystemInfo << /Registry (Adobe) /Ordering (UCS) /Supplement 0 >> +/FontDescriptor 111 0 R +/DW 0 +/W [ 0 [365 500 500 500 500 651 391 443 526 555 555 443 526 276 750 443 276 500 916 500 500 276 388 555 833 500 750 ] ] +>> +endobj +117 0 obj +<< /Length 119 0 R /Filter /FlateDecode >> +stream +x]n0E +/EDTX~uTK> +endobj +120 0 obj +<< + /Type /Catalog + /Pages 92 0 R + /Lang (x-unknown) +>> +endobj +91 0 obj +<< + /Font << + /F270 98 0 R + /F271 107 0 R + /F268 116 0 R +>> + /ProcSet [/PDF /ImageB /ImageC /Text] + /ExtGState << + /GS1 2 0 R + /GS2 3 0 R + /GS3 4 0 R + /GS4 5 0 R + /GS5 6 0 R + /GS6 7 0 R + /GS7 8 0 R + /GS8 9 0 R + /GS9 10 0 R + /GS10 11 0 R + /GS11 12 0 R + /GS12 13 0 R + /GS13 14 0 R + /GS14 15 0 R + /GS15 16 0 R + /GS16 17 0 R + /GS17 18 0 R + /GS18 19 0 R + /GS19 20 0 R + /GS20 21 0 R + /GS21 22 0 R + /GS22 23 0 R + /GS23 24 0 R + /GS24 25 0 R + /GS25 26 0 R + /GS26 27 0 R + /GS27 28 0 R + /GS28 29 0 R + /GS29 30 0 R + /GS30 31 0 R + /GS31 32 0 R + /GS32 33 0 R + /GS33 34 0 R + /GS34 35 0 R + /GS35 36 0 R + /GS36 37 0 R + /GS37 38 0 R + /GS38 39 0 R + /GS39 40 0 R + /GS40 41 0 R + /GS41 42 0 R + /GS42 43 0 R + /GS43 44 0 R + /GS44 45 0 R + /GS45 46 0 R + /GS46 47 0 R + /GS47 48 0 R + /GS48 49 0 R + /GS49 50 0 R + /GS50 51 0 R + /GS51 52 0 R + /GS52 53 0 R + /GS53 54 0 R + /GS54 55 0 R + /GS55 56 0 R + /GS56 57 0 R + /GS57 58 0 R + /GS58 59 0 R + /GS59 60 0 R + /GS60 61 0 R + /GS61 62 0 R + /GS62 63 0 R + /GS63 64 0 R + /GS64 65 0 R + /GS65 66 0 R + /GS66 67 0 R + /GS67 68 0 R + /GS68 69 0 R + /GS69 70 0 R + /GS70 71 0 R + /GS71 72 0 R + /GS72 73 0 R + /GS73 74 0 R + /GS74 75 0 R + /GS75 76 0 R + /GS76 77 0 R + /GS77 78 0 R + /GS78 79 0 R + /GS79 80 0 R + /GS80 81 0 R + /GS81 82 0 R + /GS82 83 0 R + /GS83 84 0 R + /GS84 85 0 R + /GS85 86 0 R +>> +>> +endobj +xref +0 121 +0000000000 65535 f +0000000015 00000 n +0000000145 00000 n +0000000197 00000 n +0000000249 00000 n +0000000301 00000 n +0000000353 00000 n +0000000405 00000 n +0000000457 00000 n +0000000509 00000 n +0000000561 00000 n +0000000614 00000 n +0000000667 00000 n +0000000720 00000 n +0000000773 00000 n +0000000826 00000 n +0000000879 00000 n +0000000932 00000 n +0000000985 00000 n +0000001038 00000 n +0000001091 00000 n +0000001144 00000 n +0000001197 00000 n +0000001250 00000 n +0000001303 00000 n +0000001356 00000 n +0000001409 00000 n +0000001462 00000 n +0000001515 00000 n +0000001568 00000 n +0000001621 00000 n +0000001674 00000 n +0000001727 00000 n +0000001780 00000 n +0000001833 00000 n +0000001887 00000 n +0000001941 00000 n +0000001995 00000 n +0000002049 00000 n +0000002103 00000 n +0000002156 00000 n +0000002209 00000 n +0000002262 00000 n +0000002315 00000 n +0000002368 00000 n +0000002421 00000 n +0000002474 00000 n +0000002527 00000 n +0000002580 00000 n +0000002633 00000 n +0000002686 00000 n +0000002739 00000 n +0000002792 00000 n +0000002845 00000 n +0000002898 00000 n +0000002951 00000 n +0000003004 00000 n +0000003057 00000 n +0000003110 00000 n +0000003163 00000 n +0000003216 00000 n +0000003269 00000 n +0000003322 00000 n +0000003375 00000 n +0000003428 00000 n +0000003481 00000 n +0000003534 00000 n +0000003587 00000 n +0000003640 00000 n +0000003693 00000 n +0000003746 00000 n +0000003799 00000 n +0000003852 00000 n +0000003905 00000 n +0000003958 00000 n +0000004011 00000 n +0000004064 00000 n +0000004117 00000 n +0000004170 00000 n +0000004223 00000 n +0000004276 00000 n +0000004329 00000 n +0000004382 00000 n +0000004435 00000 n +0000004488 00000 n +0000004542 00000 n +0000004596 00000 n +0000004650 00000 n +0000045932 00000 n +0000045954 00000 n +0000045979 00000 n +0000058707 00000 n +0000058571 00000 n +0000046173 00000 n +0000046422 00000 n +0000047831 00000 n +0000047810 00000 n +0000047916 00000 n +0000047934 00000 n +0000048322 00000 n +0000048092 00000 n +0000048633 00000 n +0000048654 00000 n +0000048910 00000 n +0000051412 00000 n +0000051390 00000 n +0000051508 00000 n +0000051528 00000 n +0000051939 00000 n +0000051688 00000 n +0000052280 00000 n +0000052301 00000 n +0000052556 00000 n +0000057511 00000 n +0000057489 00000 n +0000057609 00000 n +0000057629 00000 n +0000058118 00000 n +0000057788 00000 n +0000058550 00000 n +0000058631 00000 n +trailer +<< + /Root 120 0 R + /Info 1 0 R + /ID [<26A883A947828AA38C8399E0A07CB2B8> <26A883A947828AA38C8399E0A07CB2B8>] + /Size 121 +>> +startxref +60107 +%%EOF diff --git a/figs/rotating_nass_effect_stage_vibration_vc.png b/figs/rotating_nass_effect_stage_vibration_vc.png new file mode 100644 index 0000000..46b7ba8 Binary files /dev/null and b/figs/rotating_nass_effect_stage_vibration_vc.png differ diff --git a/figs/rotating_nass_plant_comp_stiffness_md.pdf b/figs/rotating_nass_plant_comp_stiffness_md.pdf new file mode 100644 index 0000000..a341ed5 --- /dev/null +++ b/figs/rotating_nass_plant_comp_stiffness_md.pdf @@ -0,0 +1,1864 @@ +%PDF-1.4 +% +1 0 obj +<< +/Producer (Apache FOP Version 2.4.0-SNAPSHOT: PDFDocumentGraphics2D) +/CreationDate (D:20240415233041+02'00') +>> +endobj +2 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +3 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +4 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +5 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +6 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +7 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +8 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +9 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +10 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +11 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +12 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +13 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +14 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +15 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +16 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +17 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +18 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +19 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +20 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +21 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +22 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +23 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +24 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +25 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +26 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +27 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +28 0 obj +<< +/Type /ExtGState +/CA 0.14901961 +>> +endobj +29 0 obj +<< +/Type /ExtGState +/CA 0.14901961 +>> +endobj +30 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +31 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +32 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +33 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +34 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +35 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +36 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +37 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +38 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +39 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +40 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +41 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +42 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +43 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +44 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +45 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +46 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +47 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +48 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +49 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +50 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +51 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +52 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +53 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +54 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +55 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +56 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +57 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +58 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +59 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +60 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +61 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +62 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +63 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +64 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +65 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +66 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +67 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +68 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +69 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +70 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +71 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +72 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +73 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +74 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +75 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +76 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +77 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +78 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +79 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +80 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +81 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +82 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +83 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +84 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +85 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +86 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +87 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +88 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +89 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +90 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +91 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +92 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +93 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +94 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +95 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +96 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +97 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +98 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +99 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +100 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +101 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +102 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +103 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +104 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +105 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +106 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +107 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +108 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +109 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +110 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +111 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +112 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +113 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +114 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +115 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +116 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +117 0 obj +<< +/Type /ExtGState +/CA 0.14901961 +>> +endobj +118 0 obj +<< +/Type /ExtGState +/CA 0.14901961 +>> +endobj +119 0 obj +<< +/Type /ExtGState +/CA 0.14901961 +>> +endobj +120 0 obj +<< +/Type /ExtGState +/CA 0.14901961 +>> +endobj +121 0 obj +<< +/Type /ExtGState +/CA 0.14901961 +>> +endobj +122 0 obj +<< +/Type /ExtGState +/CA 0.14901961 +>> +endobj +123 0 obj +<< +/Type /ExtGState +/CA 0.5019608 +>> +endobj +124 0 obj +<< +/Type /ExtGState +/CA 0.5019608 +>> +endobj +125 0 obj +<< +/Type /ExtGState +/CA 0.5019608 +>> +endobj +126 0 obj +<< +/Type /ExtGState +/CA 0.5019608 +>> +endobj +127 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +128 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +129 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +130 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +131 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +132 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +133 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +134 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +135 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +136 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +137 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +138 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +139 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +140 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +141 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +142 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +143 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +144 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +145 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +146 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +147 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +148 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +149 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +150 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +151 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +152 0 obj +<< +/Type /ExtGState +/CA 0.14901961 +>> +endobj +153 0 obj +<< +/Type /ExtGState +/CA 0.14901961 +>> +endobj +154 0 obj +<< +/Type /ExtGState +/CA 0.14901961 +>> +endobj +155 0 obj +<< +/Type /ExtGState +/CA 0.14901961 +>> +endobj +156 0 obj +<< +/Type /ExtGState +/CA 0.14901961 +>> +endobj +157 0 obj +<< +/Type /ExtGState +/CA 0.14901961 +>> +endobj +158 0 obj +<< +/Type /ExtGState +/CA 0.14901961 +>> +endobj +159 0 obj +<< +/Type /ExtGState +/CA 0.14901961 +>> +endobj +160 0 obj +<< /Length 161 0 R /Filter /FlateDecode >> +stream +x̽ͮ$;6Oq^O$`lꙠ 0~}&w;B)Nkyr+/-Ŷ{ϩ8䮗^|!T{h\Z;jy +^/(]^ۥ70vE.9oxuҫkX6O)KJ♾Yۙ.*7Śz<ҫ+.'F W%__8غKCrUX8<)KJbSi*ҫwM:y:,ƅJvUKKg)XۥW%_axzeҫT.zN˥W%_aVCg+l:,uϋ1phW^;->Ϋkah뱟+I~x)ڙ/;mLtCsW^+l3o[&E6{z{7`؄)y7#b<[&MSÚ}>kߴ,Jr5CZyFɹZjOjEef`rBo۰KeZ?`DYIcZ{p/?߉>8~Q*?!s>-WzrsSZ"T4b|A1*7 fMgmgDACB93BӘkпo~Fop?#7M퇄}gCB#Bom}Bo{?#7=vM'}g3BӺ!ߵ{g̰^T_YxG 3>!avЃSܓG>L +zpM>#r|Dt"=N +}"㌠O|8"f=Nȇ?>!aO|8#"9?>!aȟ'<߅F?!a\O|8P"=NȇA#>"r8;"F= ȇ@ӂ>"r +8&"gs޸<-O3,I "I[e^vICS&JwVf]0mze:%-+̓ ]WDʈx{ʺ4Їg+. 4f]1T-BM;$4R\svIKMsm%?R\mvIh4캿ӤU֥i_KҮ|ʼ4&jҀ+B'B/F$4Z \vIh4Їg+.Ϣ4luiVWƞ]8lyi%jҨKBï!ggjxKB/f_K#ͮ&wQ=I[e]vEÀUIiD_k3Ү} +4K5/E$4Z \vEUYh> ?ۄ^vISgWD<<[e]|vE㨳U襙gW>9[^vvI#]8lzi%#6Wf]H䵩f2yiٿ"\&qj*+B/]ᵑiW>H[^vItM1i:pxm@ڥDUh_׆]~^vEU֥Ah_F]8lzi%6Wƞ]8lzi%6µQg:xxm٥*_/7W2?UCE9jD>M[D^vAEiWD>LJ[E^vEÈUYiD>F[D^vEd5ri:VWƢ]0myeڥJ_6|(8l _v)/OlC]rvɕߧmf}^kv xwJ>R\="Dsg>]J4`e~D^ DB?PcFjdQI@l2?ivh~D: D3?_mlC.%42|Oh@] %?B?Q]h@T Qg]J4lwC.%τh@ED$B?Ph@< HB?PL6 ϗh?]'J49lw(AJ4݅~D(AJ4`݅~D~(Ѽ3>qȇ]'J4`݅~D]'J4`}HC.%?>@|B?K4d~&4{cׁÏh>S2?PJ4w(AJ4}C.%?>@杨A^6סÏh@N %?B?Q!h@E D$B?P]J4԰BM'J4m7(|D~Dvg]J4k7(|E~Dvg]J4)j*>J4D!?K4hw'%4?_?%ij/|f}o|2DssJ\?x6Q~3;w9DŽmr,oCB}}G_/_?}nf*R|޸~/~3kRR:7`}ANonO;IGOuow^}ǭWѿ#^?}m: YILL? $F~mg/+N^~ċ[ʛo,Ck oooo}{co,`_O\/Sbᐓ/\s?Sh1ՔR'{~3^#p33b[vIjԳ~KQjԒs?I>%5U,u1XҭP?J*Z.^s)R?%0>NҀV;S0,R+j +5Kկg&YZz-mBf:J¯=zp,,>;q\=wLƫA[<9G *J^B he|FbH:ƭb;aZr؁ǎy; +Wc? {@ACzլr,d'0C9c'~VrxYcg?bXôoX?*~c)Ax$'63;>jp.'{wd0?cL5֎8>U^|(x}"qx͎aAev;\WCICnY+oHձp7u|\PİY^>={q kp܃\2=`BGt qaTS{u:0 A}xViE̛0?wb9ؾk˛KRr֣u~7;_s); +t]%ԉq¸w5c1>?²a J\c<԰Bb 79hZadžD軚@xN>T=sޥۃc=Oy\d{8KOxC\Ʊ]Kq or֣C圏%Cry) +x'͡E@[0ӞmHUuLTVCvyiH+[ [rX 'l)ʵ?5Z6%n q}yY1%Sm7A/uʁ! +b ;(;Vht!ɑX;'5m֣> +a>qұNwf +ෞa*Qa8* +X/u8K_bx ~ذ8L_}]TJ_-c 9m:ɱH%qCH$~+(&hVX=xՅ& Wp4cprP^BŎF0> 4q²A)U,;;ƢFrwqWt^[[ vWa +M XxC+;eKecÌ;T`Ure#!°=Œo~9 t|hI`V +qƅJ1\/<4;5v{m=W^ C܉gt_W~$ST*u yػN݊GaCB+ 4-"gX> ;Τ\h@o'L`xuXC\n0:8$%Y=FnP>錸8*#Qɱ +uxfLJ,6,67 <ø܏LapS:S-!e<- L{`е_5gQ*0gaSpqؕfMvWF~òf*0cM;Làa o]^P0,sɀ@!(2g+|WZ^6,ib [t +Xe-s$p`2r{^],1P\<񴅝Kqﶳ6.4'Y<ˢԆ$pX0䗾5yTМApx$ +ER +s@x%2& 1~'}D`ݙmc5/7q=00i˓PL,1e:A Ƃ&F mZ7հS.0agӠͱZs90Na)XנԢUɒxðh:`KPX7' d{}ص0 +M^eN]Z(ΰɃn"7h+)`5ŝZrd) n'xZ1&lb;b`.SǂEW-@j=lXa {S|ȸc#G7 V Guy0;7\|1ɤ7-L ן vmbEjɋŻ}|f  +:ӐZ׆R+0bӲ4$n+Xaz9${Ep /1uLU88Xv묆q/ZY!ՈI^Q*1,qyZU 1'*\`31! {qy8F.:Űs\\I*g{*ز#nax1Cnw=J79VC.&{6VYyv%fL2SE镠Gc\kY`3b'ˡX=0MGX$ 1Zٯ=Z8cCX4ѱu3E2K`M9FK<,˼ECYe`<3L̒*f(69ƤX1b|Qc&ý; 4Hm>6;߰ +-*Gl;bZzѐdc8,\r a|,͈ +ځ17ۣruQ)04-,l&|r=\Au(!Csaز EfK,#PK %Kz1eA꒣ kv1Y|1_ +a<֔ #Y6O&q*>ևX*VT)og|' ;AMAgmMC>Ycd(ؠF?V?g"5A6L/M0j\2# +m0%u5PqĺQ" w-1@wV@1%Ϛ S*ns@}p bq< wsFh@D bs2@g`LMj`Rű &A 4ۅa)k]%uf29vJ+qLU&x)m5E0>O1,6֯R/fiprtK@da˟;Ž4 RDsH~/V?a;5fy'l)Kb0?a٪e@c-2c Zfha53+l&&` Caic`2%,tVd;˟j +).kͦe7| cL4 GcjJe+./XA1F)qx~Yv%l+KLqP0(G$g;flI;h +t?1ΰ* ˟ㇼ;Uf",b.5p2rI˟UV'd-8f{@^] &92b꧂@ʑ'h(_2g,8k7vdrYԝ7OExtQec`&̈E64As=2J7 Ϲc'Y+~*.]O$S.  4i@W"}:dc><v1*Sy~Ve +{g+KӧW`\}|#g-:/ *LAON: t6~rΐfh`)R e>{ࡆ 0Sv!謑ןs:Ja)}1!ZThL8K3,cba|BgrÅ57X!VWP뾘{v9ƈKV>! hCYѳ|^J*l 4i7r}4id΂xrRJaaF& c9c- 4"Z_L0v~HgBaITcpJt{^ᓶ0 T5:f=Dǜ rЀ2km9?AY:@aŔSd`Fd.oh#1?+},WT,`l/ +m[°a0RF+v޿e -YjWBݝ]![\aK;/`f +[Lw2+ǩBx +jI=q<0螮K3ek7LqdW߬|5$0tx^1p!ASVzqB kjk' j%@aj?G0L9K%b $4aN: U?xb$[Ԗb+8~bcp kMDuXfQGC!eK3{,(n0]αxI_J0E&,?s4؍aӲ"L@X07oP1VYh;HlC,}2Yqd?7GBPgEe_Lڰ%)$NdO +ax h`O,TG&ĘnƉԄ‾Xë`MH9Ui R'IJ bx0JxtqVdb*C>+lD;Z33 / ;os=xC)@xlv{خ,_>c>o! :NǬQM3Qq?UꛄqaCAe5|A dJlM,Ș!Fƪ'UU`)obs&V]IZٱ_7KS,Q`1P0:*ǰkd'*S04Z ܕ8lkU,?hֿakEX=i\D`r>VxNca6iݵz7"T$9Hgc४0ب,Uĥؼ+lCwʪ*<؜ Kp +Aɏ1% *C2W@΢AG!d; Y`w f!K)q\Ɏq(? +_̧4cc!++ڽXcPbPC 1| ' kQ9~dEb +-X8-ih(rJb& Lpau ~EV.T:gM%a?}~1d̲&96 59l ͂JŤQ4D%zʂhU 1} 0mln'>+ceBx:r56cs"EQʞyoFI,|b^2҂xv`ʶT6163[C"pf[ m,rsjI,6,2cGyˈq[w*g[~{" zɀ(WJ1?'7Wՙb)x+sdmus,Թ+esSM@VbDbNl?3*[0AͱbMSX̨ c<ո֎:\ʨ%~cY}4'QѪ *2sB6+7%1hM1`fJNmtN&/%Ɛ)$>*\5W jSr6bdb,KʖӶz,XYƙ%T̓%>y +pU,kiP*=Bӓ>U:$}[6 ˯cgq@!/|r6{b($.O?\U%,MeUU 6y,°Xb<*dC4RtJ\t})81aeJ@%+&ƷDW:>ǽÂaiT8Pev,kOE8 AGb 6m$BzRy9; YշCsz?2Z ;=,l2jDZv_ZDk@鼛1Fk;qsvax.O#ی1Z ʰNJ9ʉ 7e9#9FrFxQ,>ɲF1r1k3YeZa1ktdS˟hЬRhMW8rF 9`QΈ0ӂ:;Y)NbC%pRT68KuF:ZN]e;aY{]Xr;h`I 0e&dOY 8[pY)wF LL=<'ґ7cZgF^_'9VwfpX +1qnNf[B0c.igu4^*j5c'a6OwF Hwzyku7N#AXa2 *3-c di|'b'bֆ'1dc>c"c>$X +1^DIU:31 Xd(b8ZjDPXK6ॸa2J,pörVVضaFqXH |զU;l)Hc !sLHeas1ARB?*y%2ۈv:sn%04N;\PMC-u 㗙N$Rs;h3~!L'%E5pNjYl'1vfpL;*Ů8B!iQ%?qxPѽ;e߫j>Nǥx f> 0фeJW7;^72b>]&a%"#XMLV4_YƴSVQ3eNM2B 6w%,#V/OleHHv0IXheUξ>+ ,#DXm',#f͒6cn!,#T8K NWF(3`\mWF|WF,2X&c-39&a!LP)~d,#2e +o)?&cQN·2b=X0j-11|-/fb eB{JMʲV%pc,S_zXBvgK] 1gx8yJXxVu|n1mn}n!,S eM2JΛegUJX+zy",#N'6 U[k0m',cV~$,SBAg?Ì:Ϗ6>7 g[_,+_Z7*5&]ScX]ʈe>IWF ?'-ҕcn>x&_ \sW2b}V)yqd +[ʈeVLT+S=:c񕩗 n]23L+]Fm+#&VO [nt]</_:;ՖauEy5mg,SG_l{e괢=\+c2gjUs.L[6˔#31e+jc,cǓe2;5`M2b'lÃ:+c:נ6˔L0Z GjW26وja,cNc̹˔/=!1ⴘA2)D +cYJJ6,{^ˈ.QcLb:W2bpcᬡ+cϑ=ѦV2b>LXP nuh0)A]^m!,c^sb ˔sg'ehv3gM2b5>c]+a1<,a XL72bu e*`8*ٞˈec1>7Ta%K-e؛Nc+a,8ŁM2g,d+aNX7?SH a!?gyv2bMYtZ rd,j5\l2|_+eڵk*|,SEɾBla,Q1YOgw=煱̛GMX!,XFYrTēXf/qTdɱXfo,bASyeY^>ʲ(وQO;Wʲ(*(lmw2Me1mRcD#wo;e]dzA+eY%DUmc,Ӥse,#.964=W2ɵuLu*^c93b^WN2bѦ)XUce,f + 3+S l|eTm]YԘnM$Lŏ؜`úӕiFUC|phҕ4EV2hFWNʅXA]S2ji蕮1F)62U2'2bt}FWVu \ʢOvVkTBUP±IUJeP; +U!f'JUF,h2W2b'NUFtQw2h@n;U1XR lR[OLerTJro-De,a h%*Sqz!IDeYd*S{ 敨L*GplI3DeD]ko%*c~v2̀R-De8xs!*X)ɶJTF,(m'*SATFora*Sn2 bY703Lcڨ4 >HT.Teึy2umLeb1i\N>2$=Q[62\43:Fmg*Sʉ+ja* 5VXWTv|Kug*X9TF,Lb64MslbTƮf!d*#v)N֍L@6ʈFkc*$F0&S aÚW2M;H3*Svv2bt8;_4 +:[XR'\ej)ݷLaRar!+nks#``L SL~t-!qRf&WZ^d񝍫Xp Wlݸ412bJNLrŜc|dL'\qM2u]2'cV2ͳdWi p*c'' ,~*#sLݡp%Aʵpú9slrX oE۸l'hO\eHNW_k#V293W18ժ725vrG6li?LSS8;2bT\߸ʢccL} U5$>QPxL>IUgX\m*#tp^iOTelc>4JUkNTF!s DLeL]uJTq6Pm!*#vrVqoDeXW|JTNvci.De쀟ȷʸL][ʈfIcLPl+LeDQ S&ܫ872=# X4ܙW20`ZTf *WLe BLGm'*#Ʊ>Qe*|֔3j*\٘4azٱTf#W.Le0إ]"%L,TW SU3+S&sp`-De谿DeEmDe^Y t Q'k5>7ʈy&Q1՘Da QM*dHM2M8]$*d̡L#lݘ4ھ׉2_0i~G'H؈8g&Q1JT&w/crFL򷍩L|-O|c**H?~wWge*'y"\8]YW2CPV29 U!#٤*E,3NwlRgv2NbBUFT_Qq%?=UY<6si\&lU 64בIUUcLCg96eI72JI2[kTl+ #\e Y F7Rq#eNc=RE61`*#z)qCv2$zNRQq96ʤVRyѱAUF(hV +>tW2;־OTe:Xr8ԝ, i*!vO:IU&ܓl0ǿP!{MFUFӊ)O:IU&>o*s+Deӫm䕨L:d{YeoDeU 72Z Q*_vmVDeqc3bJT&IrwPWb7 ITpIgL̅Z!ܗM2F.ޝpe*[ -9}T 0Le~k11aK +w2r8sLeolLe]EsmDwVȍ1hsNSqWsvJ(cw2ykZN6ix@w2nG;FTƍBTQ+QM Vv2/q|gw2$/h%*K,hq{`*3T*k:/TݢLeI3 gw2W,Eu3Eey<3HSY! sؘJWG [NܘTi2w2#oTe#l*cxta*kbTe}%ۈEm}i\MJ>l)cҁpvځW2j/uXvl@SP єEiיXi D!$JS~e)ʇO,e}gc)c2,eQlY`zR0M2;|\G,e{9J:2Idn0\Ih7|v2>XWEo$e}XFR&65,I:|Xe9Ҋv)n4'YIhFBR9mkf`$e ѱRF p(pml)'R&G) MYb)ŭ&M'2HV2M-2є'*N6´}:t) qWNє`&{]ilXi4J/uV24_OFۑ fw2{̻I}6yT㙧\6V2 j>fw2\f񔝚"&Oɮ.ٞS&}l5׎y6pgx,O)h;ONó+O-y*{g?S&Er2Fu)*+i*=LNS-zx큦 ͷYʸ/;K ۚ\XʘS޽o;Xʘ`cuJńCw2:\JRFh <1_KhFR4hIW~8ӚIPliQ72eCl ";IYK~睤-h>5UcU$eFlNR2{{FR?62 ];Ix"HTHXONRJuUV,CFRG4n$e| ؼeк$eg72Mb׌Sŭ$e4tg):8R'KӚvuB9.R:ȠR֗}{`)ܞ6k,eu+jy2YTFRYp Sr"a+OY׀ɹLulLr2{n*ӌ ▉ZT珓Vn;W +pyUf ]U͂62u[ř25wH*cOCgZ[۸}s0i3V25%K [xtb 򰅬̚S$+^s4\.ldeE;9BVH3L"IV=R :&Y:9)V2cx Yc!W2ʄ`2W2C6252u:BU |ݢϷLVLeww~n2CsnLelqĮdeĊ[=D W_h1>"h*#F+ĕ /Tލ$d+YZr,YX`lec! @o;[x\]ote\Qoexb+U 3[1z>ma+ Vv%+#V<;6DԀ3:deĖڭH=Mle$lwـa [ 8zsVFcšVf:o;[½bJWFl)Ŀ4&]+62Qlp'[ʈlQqEtp.d^^ʈQL|dhhfTe)2ZuYqW2bNUF oUYRͦ*96ʈiBMܨʈq'86H^+WYR%}vJVFMDfxT-de- ʈU8Ar6_qܫZW$2Z@62bZcX?X2QbękʈEUAH6ʈNkrꉕ-deIa:z+Y4Jx|ncc[ijѴ퉬MZэS#FVF &JV&kY2;V&r v񕭌p7c,L +tM2'Vn|e +a9JXo-eN(FX#rij +M"a cxr VX&z]JXFtpv2bWce)s#62bu֤p%e܃e|}x`+#ݺXHPFm+[`۞72Q(!#L< \|eBˤ%|eIˋ]˸XE(mA,e-v;61-XF ɉW2́U8ĝZde,gqNXfN2-p l2qbdpXFX{d,#Tc1i~cbʃl2q~䋍cePAV&c1k6ke,˜XFx>;2bc9X&cYf`IXFAGsWƲ1Nz#eY(u &eYքR3EeYtLw,+NYFp>1X&c!M(s,sYo\pl-e8z;Xˈ\ 2c睰HLV,bɱIXF>Al#,#/eh+cXw7n%,#yFXYBMZp c1 r6,F/9+mg,#v謌e9rqɜRepXn,ˌjNYF W,Yq|2Bl;+gY5neY2WҲLߤMҲlj_98ˈT;dTT gYf>'RuO[8ˈW2Bj=ػre+;-Y9ˈ5vʲ׍$v,Q=!efe807ҖeBѱI[FMI[=VeĊ_MڲN'2byv2b-*ߗB[}f)~Q$+m,J_ [h˲,&mfh2y,jq|nҖ5B[eW2b.Noe"8?ZeGne`te:72b->덵,+ۤ[XˈF=3Җ(z2,enΡіt6rlҖeʺl'2b'c-j临g2b@FwlҖk,;ڲ̠}F[F 'ڲ mMI}ؠ-\[Y8]iOz-#OCM2ؔ|%J ;6iˈ<靊w-1lҖӔkؤ-ˌ3jI[F CіliW2b>)i-˚N~'4[rRqӤoYrYOx獷,3f?[F=!iQ8_ԇk _꓍_tZu!sK/e|+wa>Lr:^r So+w!ʍگX S7jvl5dձI^fa5LMTҗ†eeM2le L {0u2 3ቼ ɃmĪQo8B]& Ƈ2eH0f)&s0{b.3-\fs0㕹̰l5̰ᕹL96 L'Y6x.3[2X1(&u4|72àiLX䠩َ̰M2a, 7ٍ,erlrTMf\lL#k۝k.3lVlen.3.l\]&Ƚc0v[Mlr f/ +[ KWy"/@08P6˄ N^f$/ c;y 61k6 N^&+ u%/3 bi+y 6$Y˄C?i!/#Ʊu%/3~eV̰1?m#/I8>|%/v V28R I^& G7oel 6eB^&xYcLlAg˄ٰ "g[ 2r^&1n3fW2Xi^&^L AZ˄My/3,˄˄sցcLf}hJ_fء2+a }AM2a+}1^ї sbLKoPm/3j/v:Om/V8=ї Ê4N_&잇˄Eefy40:rV6/#vtlešv2a{o;0賓W2aql 2aSv6eSUofXHiW2APQ/f|sLvf*iLPYf+0˕LXRU΅Kഐ+ kb}/84-kE٤/dgI_& ]^LX+}0LXa }LOWxl kk#0 F:B`&$M;_ ̄eNR K?$05186 ̄UW3M#gꕿLZMY˄)W2AXliV2a9̋N_fsY)n~_& 6FQv2bf}0N6Oe2k3NgK[˄5y^&lL+ 0u {0 #g{"/Ӹ{=A46˄GEleX84ض2aƕLB2!pl\Fan>&suqۘec.mcL;+٘˄4M&s1`V2a4)k}b.s,2 KFd.9?1 D0H&sLYP %߸˄#{]&,dLRvsqUz0r.V~.fe¬p:6EV36˄f. " {.2AT"2aqmed.WٰˍLfeƅqY]s0;2 :|mg.#ytOve.v2cLXZ.e觻G2 [+sYico;s:_؝LPzLzI]&,2vמ˄QF]&B\؜L) We`zf+u0[M\4 +iuNѕ,XߤCY˄C+s :6ˈLð"+s0 J\m~ s0`00 V\fd2}12A$k uXmvm.C62b6ȹe<u0%ʏAk6˄)tW2A&g5[˂6I]&l!=Z˄ʕLJ|4D˾r 72A%v.Gl.# L-F38&u06?ԂLO0g]˄_R Vؤ.#F=Lk[e8lR cݣ+u ؤ.So;u4ESLS86˄3+}0//З˜؜o/fz>86-F_&,NM2aQ#/ve췝LMSH-e2GA{6˄%2|/5ѹ2qlȝ앾nG_&  }6؄LؠQe˜*Oe}F_& ^e<}+=2aҗ bܣ+}6PFB_&J4+L'XF_&uqd ~8^&sr= Q$/C}&/3EexloLk<_2aNEte2(BY˄"eXy'=e)WC li 9H2b˅$/Fr-e*`W2nP˄R':e|c0Nql c`Ɇ(emr K|+wawޑL#>r.39{rFFզe}J^f, ѥM2ǂmg/3,w sl?_.IzضV, ȍ=H`)rgx曙(? @_fٸU6|eoLf*|]Q,;tVY,/S2{iI%̢5:eNbleѝvemݧggL/g/,ݿJx}91we Bx_bLO2hy/5.%LB.||5E);yM]ci=yxǪ>/SկeH_˴Ɗ _c/Ǚf1|.nW2{Zk )x\2e6, /gѻ9P]2}~yΝz=75y62{sF +_?ML  [8d/SLkݍ˔˛_ݜƦ-i_,/MɽdL{U:2e8D62kyE.&!Z̚-;e֧F#Y!?rusx˼!z)M!~2eÿ\{k,UTI5m2] _ _kt;;eMܪ]0`[el6.dwf.Ӥ9Ie#c`<]fu-vY ڤ]Ӛ?vYcQ(Wqlp؞aGj;AS.Hke˘jr>x3:e>&2]^P ne#İe]m6|Ke ia] +]tZ.cʇz.k0^.kڃtYӃ[tRS *_U2]xqD/]Y|qeg\FTг)]v,e +E.4LMULd[)Bp(w\3} M2R2m92q4Bi"MOG%LqG22fGD3]Fعã]F٦.cύ]x62o?tDL{|+ed\Yt{u=]FaU*2eDWG.h=kU.#l*rv Ǖ0nY.cH62145%LL22 :25 y25=N2v A.&*tsr ]HJ[|.NͼeP\PEO9F)vd%M6[5uqߺ5_ѳm>yTCle̦q.cy{vckѲ6y8a mOu/۸0lec,ۇ.|7ڿ3ee?7E/gK/cJ# +^E5_˘N n +&Xzw^`˴|;leۭO^wzeT#tenU^`ٲ/;le^o%v#.ٓ]6>H.hnhѲ˴+)z.`kAX=eKi{.cT{lelR/ܸvNvϦ]ozƸsvӈ6+hy]#ڃleL*bUqv=VLJ9eL1:]U?tq]=[tuYe&$3]&NndK.cx,- +\ƾ1Ug` \ecݑ-}M+-lDGJMMlH\Ɔ#Vʲ\Ӆqu{Lle:r1ԲƷ=le }G_2:ْv-ǵfUyW\sf"1IBnL71le48vM{Ҳ\Q26oe0 <\a\26yp{e\>%.ZTJupZ\LxZ˺&1ZY:,e}m94EuMȯrYo۳%i]-+0DQ2Nv:Bېlev=W'}2M\ֵ]Nxf岮]de$@}Vqhr>oϖ[^N?EgL{.=nW2Ѵ'?626R2Oled~ledl͌Ėi?he==l6f7*KlŝE̖rŠ̖?/)lf32[k>NQ&[~6Y1e߶XF-ς-#bi -c#<e .S [eLzb Fd weI.c+Oq2\F6;ԋ\N t]B?tٮ/ g.Syq,ed_Gf։.#;92]FFKC˙.c1u.SX\LŃ.j-'i"׷{~ٴivDeDl0mjf,Su dc7{gL rl*e*o4q$lxZ fFχ fedUhY2 +lledc1l-_5ȬdQ:OՓYFF edMsM,f4j2ذBe,SCGKf6"2JyޙMMm8ʖ1g-#{9G-]yʖq:ed}]?lʖuÖ]֡y622&.e3v{l!edÖ y,VfT̖ +W2A2+l L'Ef85̖Q`^R2[Fif +[Fƛ?̖QdT8{NL xu˨LL}.#cp-r*2[rFg-S9W23|,eT&xzܞl7ΓYFG1E:%f{ڞ2~w.YFF{@SI,#R51~$)ޓ"Y,{9$_72sBGXb"Y,ߜKvle* m}U6_%Ș{r?exގg4ledOYF[2n/,vL6ˬ쮺leo[]5B{22u_em7z\gL[t:63e_;-#X!ML_ZF͋ZۈR;h1z?j?63ed%L[ "n!6fl]w*e _frˈ|▩⒲䖑▩EIi_uȞՍY2LԾeDrAJlyedS8?͙-#cʖS˧fL(&[FF 3'%L=pֲT2nmu }-S_Uxi2[lcNlejvėMLgp9pCVԾ1QN?5Tәz4Ѳ]?edm1u62m,֎OdʢUC%L/ܼJdrMooUI,gos8ek ?b"`Zhy,SkߚX2 5p* XF6Q*b%8l\B?/b/<~bz]226;P2uJZjhOXKU,3H~U,# ),ۍ6;:T22x!L C2g,83gf q/eYedf6[VfL ׏LQyn,#c\x\2Y1%Mʛg,#/]N~2>aT5;LC솒2(qdn>*Yg]Kdo J:f|,#㐺oOgȌ[S3YF֩HZe,쒔2WVl>MYFƜvM|lecV22NjW2kL^Fȼ{~X)f+fc +,\1dvufgiV-M?YFlvT&ZFƆ(f0DjlZF6+-ӱ[Vʖq` iIbs<–i&̿ʖ=[a4gy42wFL}7+e:c^XRv}جC&jέ`↓iVdc21Z]gE-Qdziظk;29xhsBˈ:՞61) lٙ"Ķ,#cW2\,#Swl=gh|G9edܘi2Z)GߐΦYF‰BgL'ƽϦXF|ۉ,4Ii|$ݛ(*Tg"AY,#c}YϦXƑ5Zu6evfiMLS"vtt]+#ٹ1b/se:w0g&W[l+>.4P-lredWI +Wm]WF֟eLGO==^SdĕFc4$Rg]tr&2̓43c,2"n622V!%,t{n{CY+W2x|=ZY)K\JafԷ*^DU^*[GV|,SŵD;}M޸;CʔW,ĩzeXzOg+Sv6 W6LLJ\.+;JoPf+SϞMLp3hɕ1ĕeӟuʕV*}V,Z]q2v!K\q#f3]YtbX2epe<̕)чfL_av7\ݷ9k̕~0P̕i A_ZAML#d&Wu 2u@g+%\V׫ʴZ n)82WwreZTze+Ztg+~53WfS"̕i|*{62O<^dwZ-Y_@Ci?eB#Y+s n/Zw5+cW箽W2=ioqGd+!݆&LcO_8k6/bpr*yez.R yeznE+XwWfO?yeXWq̐zeڛI`o"dL{!DDϦX}_˴-3gobs8862 nY,Ӿ +ij3GCY|3˴i6^nXͶ5elmmә,mZ2˴[}222lo,ӾegӬK62w>Y_fF@XI6˴ʓ~2m2f&C2heB@n+(danRF!lr3ճX86?|Mz'ǂX>2Oab2M"Qfs(]$ex$,QClT-a?sL՜]f +geƯoy2Yfc{2oox7du37E1Y-YFOd5T/YF)V;GPg,úG?dOVbdxDq,e^O[yy2MˮR,>+ +YFYy(TS[U,,;5z2?dUEC9ɲk:,"h`jW&h1f/v5ˤx9B1h=#[f-cy,leX鈞-Nq5YFxti,SCʸCv{kL=Br4hkB1RR"4Rqey۷2YW{2mʻXv*ֳEk<,FmY޲\2Yv͸e丢-T5yejE2Z +^вK0l -8)oKY6KCNpЖYvžmeq{,g62Fgj,ct&xһg2k/-fZvP293ed7 le4+ c!.RMY7if,;,}fڇӉTLs*YF[OD,sW8 +Y}âe63ΰVQͲKL_r2U0Z%8,#4>9=%Imd ,E(~, R2Ujle/_'.T>ӝXvk.G~+Xƹ]b3l,n=&*1zvϖXƜ|2uf=[bKX,JUL W_-ld6cY,NF%?d&AB?Rٹ˚2͛.e:Invb$t+ejqle̓d~?b4˲X8I-LceLycb8~qTe׬ =:}XO[2@TRle2cT˞CMAN˘ejk-Ff3f˞N^0Uk-\s\b2+{48S+{DQIw~+ie*ک?\ -.s[|ʞWc }wNP=hLyt2H<Ս̽I2O=ӇAUӉ03"=[\:Q2Hb}^ (uHWFˣes"~ BcXeG~2PLk=XaT*W XُWFɶ-.{e#Vc/Wxhg+{9EClye{7Kh@QcO+{5Ȗ+3?0L^#m2ulyet&2:I|^5^,8Izib]̒J^0zI/{eg_d+#f_Lli*^M?,fL7ʤ2=[U,=Z>2a0ѳ iR^{&LXiDs^ <,eyKf{s,# +9G] +XFjlx$ឆ]"4M,vdcO&Y1tnzML' .gYisjz Yd8v e(7wχd;_%˺z.;UgzeL8Ih# YFv5e Y&aU~oML8R2 r8L1t<L1B=gd&qA),#2ݳIMF=Q,e}nIEg,4ߓX&'MbFuwdS,cY;հ4i#XFh*Z7&g0;by;;MO?*bi\b&mJxz}\hЍPɦXF[2MkuJ^x@^yU`Яze6266{ep5-~<\ke+es G.qedpg+Wg x3"XʄҬ'+Ihg62eL̸ĉV өlWHf+#<~2B:7H^F,^M UUWF蛯ze@0þ?Nodg4X&#&U,3#ήY,B5| ϥ*i=eRA(:X`Ȏ5e.qHwR<OiUfLJev)e2<Htsi=edut1/ނ av'e1EG.ñhGgSƋ@xrX@ڄe/ c\Fv{sv˺h:U P?ek@MV2lv2e-ʶWft6_}fKXaX\-cz621'%Eg[& ler,|۳ɖɱ\qfܱ8LVزnw6ٲ*ǭ,e]l GiZ&"-ZF6bBj}U-!aO${& e3:L'j^B˺_Edqp-#;5qle 㖑nڅ-" +[&h,nM `,e(pC/ +4#\򗛎찝w\qϏ]"-L\ƴzn*{62~L(eh<6fLA'T22H +>_)*qE:2+Y.Ll2lJe;CMetUUo$E-#Y{3eDKh2tun[fK-#3m{ԲP$BQحseMP led lLKuȈꖑv6dz喑~2s8le12.-#{Y2KG-k2]5 ^YfȺyܲ&6Ƴ5~&[nYY=[nL>'-S..#d+!eMh# \F֚ce|leM#Զb \FFӮ \F?*.k +[mqJH_L'ed%Zg{5m:g-4-L@FwU҄jYfhx}ϰɖ[^bˈbSٲFe?lYeFmW:VO-5j3edc%Ԭ}ed ϖ[F6>"\2N0]̖qhe:ZFTZF{ҮjEJ:_22Nq9ASԲ=lw–Ysd-#k҅g-kx_lYʖ--ꎠdLu<ϖ:-Sn_Y-St0Fb~˩)c-j-*ed&leN۝2e|U-S٘𬖑QU;W2efըeʺ6}_&[LOSBl aĖ)cKh-S4^-ML\yY-#yDB-St9YULL_Ul-bZFT˔LFCY- uIj2$*X2eǦOgS-SƠZH3[Fkٕ2e,6[1ZdLmled6e-SΕLYgllf4n[ϸnz۲[ ͱ)3g[jM6eʎvG,e4r]Ėi$?mB|2e׭MLAvpg--#cPi͸-Se3c/Bb˔qeWbˈ.&Le̖)Z[&`-LEh^aFcv˔ms]x Bt2eCN%LYӁ&\FX&;dLf3ev*;ap +gDS.St~b)`.3b<4b(LԲ]E˔Yoٴ˔qh%r{2Ex6eʭgeS/S8E-zTډ{Nz"*f2)jO2I脗)s);mvh,ebü +^l|Yx2= LsާV2ec]))of/S6.L鄗)W7X)ۘٴˈ뮘gLcyki]/S~Sw)e8 +4eX]U?e5L)ϧg/#ci<_˔ųW2e}UL ݀^7Ϧ^]W/SD)׊ Y/Lkӳns9ezeL`ٸ5.~e:,QeJߟ*_ŕ/Lg6&_s;`[|E;%~b-!et/df2T/Sv0 >/L˴ɗY%f̲:Q˔:/az628g,bheeHWi1=eW25U̢9e]A,M^95e{S]qbYvilg.7-jY6~L?$sT죵mjx*^fxmvX<>t%.ulevݘ].kl5l?{levhW2f:N ]Z+|.K;:evix.M)SBY2K;2d2eg_%eZ[2E]p6;iVS˔]6ҳ iuoV_62f.-[]5M6פ 8SWŸ2 :=p ل˴< +u.2{M(e*Oh <ل˴޸2e׺xdLEW2+-X4e*. 3]fmJ.SYz ]z\~3]`cʲ[b.r#G.2=5tN@@2El%eV2]f`ڶ`&^fg,2F:ǧ9/ s.S_ٲa'籲] +f掭Jˬ$&3[ԙÐ[zzsoeM7~۹*˼c.ScxM.t=jL;#tzJ١pKfLM \jIԂ|kt Y=vveQe:-n-#҇ۑ̖*M5GWseMCO=[nO42evYѼem׉7 +>--D)le{mоevx>MleٸheMexHa˚ݞ-˶Y3-c/ $̖1QXW= +[q-e5be]-q sOeLigGfGVld3zW]E˘iK/Z^fA4c5=~xв5*ZƔ51N8-l>R˘§;Wl5~'GҲZZ Ί}Բ},Q2&|b݇jj–m[B4hŖiߌ)-ʩʖm:F8̖mfb˘M5U 7u; ^ٲ͠m–Gh2&zh=[pu;e,\Q%c۬jಭ_3p1墩ѹp'K.cHK lnS貑1Ljs-l:FFmbmkMq*eۙ'Vld#_6v' p͖](WQ25ĵDqc+*]6]Z[g.q?t6)#1b٢[2v'/wjM-Lq/i-lM8pV&+pƤU[le ޡܯD.cn*\L,tFaB2$}nuAѸIpΠݱ^2ou]ox2&F6"uxA +;D{2&rNKh*S]f ~鲑+V7.vn׾?tXQle;'ޞ,G ]VnҲ]\[*Kvٮ5[v3}2+l?R2fԿ0ϖ]f9E{]Sd>ٲvn젾Mlmto^s-v.c!ˣE ^,Tc-Z|ْFtel']tӛcl.c3md.۹T0W_liz~z]aɄO26qQ^=]I)#ne;?kW2y BirlAv3T]Y:[OI`L5ijIl٤˴M{M+t7MledT.tBtyL=Ii_^t7ֶ2~A62.#{f62m &]ML%,DI.#zXNZޏ&\Fy2` +iCU"e .cc<,pY_ +\FvB3_nYpѳ L{߶.f;M)pٮ]dleDmw;Y2 n.Fܠ i+~!_ȬztelSxN<%,ܦeDedtqNճ>S_u˴OnqkdtntȨ>vel Bk-&MheŧY9t-#c~5Iɖ#?-# 72ctE2[] ͦ[n[V,ed̻]░pī2wi_uدg7|{rTבf[vh䖱]jheDc{{622M*[F&~-m?יݣɖ@0ޤP@V2TJYFı :YF6 2w3S³i>JaM|YeVx\W2U8cPLެed(mb,Swқ2JU/-dYW%D풨栢BL#I,Zګ[i1ȸT]#%V}=62=&K62LӅD2d22@ϦY +H?WfU@؍kYȷC,S$,S 1U2@NɖbdTW&["s|e2UAaïedܮtWbȸ[22Cl 2R/Cb{_lUC[-#⫒W2BnAM*!?lJ!F[Nl+tĖ19 QXWݞMY3q-#s=lURއng\;vI-Sc%Dqq޾edtjٛB-SIlƁ_e(@B22]Y-#W#pʖQȦ[F}@62U5gq~-u~ٲsz(%e*)YYe(s9.e( ؃l*J[W220ҳɖ42x}U-2{Y-#+-^VD+e}wT˨1i𽂬Ae5qޯsRTj{+e*5=?"jxW$L&ƿZJQTj??QS28!ML}U-# PҒZFhg~h62"% -%QDžZF6^8~U-#@&[F6V,ֿUIb9e*Eݪb۟,e*EѳSpY&eD}I3[fk2[Jw7ɖ52[JT\ʖui/Pf22jJgVˈ'Fp|U-#qj5q-#boO󾪖ћxV2v,e*S={ 8ed,>'ϕ2T2JVyML& ~-Sb搿 -Sj mULem-#`g-#!qM\N%)Kh&M(,edl.uf$h@5`]:fEԗ,#{4(7!+l,#42"fŚ2d_L+& ?;z˄mșwWz > U/c2NJ|E/c)s.ӥeZ̳4C6e7-U/cuU6ȩS[sv}e/5j1-VPKe/T=|мEZ2j r,ekc>X@X(j*gՖԷM +f}o w +l f7؍en5\sbW099GŅ +f73ƺlf"e>`]-)0Gv5.A% 1˂͡|nefO0) FU0)Z6Ϧ`F qՑ,zMf[[ha +fxsQ095;}̘|=ݻ>ob0Yp<`v3EYn^p@/[~{/Ӭ9E~d ue:unm(ZDݞ-L#ٴ,el$_vS?~8cW&A:mi_FIBq/9Ю]hc/L=/uYopo\-e쒃k +v q?1e}]mο?~ 3-Fl:e/$0ƨixefꁔ-L63fNϖav1ЋeL̘qn,f5o-ŒN/ av1*ѩge0 KnX&.64$lf2mys+'jijģ3-nޯR 3`3lČP&l)fu;[.q+bFtPB5 fT9o Č D3zlǵ(1;v.gavr\vk(5yY9~ 3#?|0MxzMLm ML3T5>#f:a܌i.x: fjf[?YFsS_Eԑ}13bFܩ"f= +bFw8ẍ:5~p93m"1S7q^(ʊha1#C +a:1fj _!1f4?l:{|dԈ1ό5 $ĘiХ2d\Ɍ&w )]dML'$Ъ̘X*y632Ƹ60fԹϒ323cM@ '1 93W b771#m傘iԆ0TBuz #f6ϪPDƛ1A:lJF8BNl"fdϬT4V+Ij`E1Ә/~ɊI9g3V~3G=3fgx +cIe RIfȘjAbgnUS1᥃T4OBNZeL%&LxR8cEM쎟%L8pcE1<8 +K-L'_.!f0wPfÌz8f:?qRQ[ca#ibo6 3uy1!c1#c[RSi"Έt+3{ f:w11#8}=#f:7V>9#fD5MČn>xEv?T3PJbSo/R 34f:iXw? 3NXro3i#A%L':ml*f#IWzhdI1Sڥ6+fdw莢鳃~63"f +cYX]Kz=ٳP̈hbyʒbFH?霑g.'>32ʦ6l:f:7iӬC+'_:t\qtژg@)3c), }'/3fƍ Ępqѭ0fdxCֿP3㫌mvΌ ʘm&cF֨1̘72ٱp63͋elc̘)̘1>1f:}~˜irm\|1Ӊv +6~͌Yd9qu+fKίf~޺;jQRYس)cas}.٣-iݜb6̔m`?J24S^lfd ƹ, 3)W0S}W 38߳i|{q7fG=5fpD̔5zb&63MbaeivXqD4 3eoj$e0'2 3E'licg +``3_ 0dj^n )}~3ͺxmU3`FO6X )c<>k_qflHj(ei\ǸwoFȀ2K' +leD32`!yO`L;p XE> 1 )OlfdvȞ2`l |I2E+K~Fm2es˔IKN)b㲲`FvRfm:R&̔1 u0SFr=kf,)r~##o>-#fa+)ggL}gF̔ u+!fvj4ML;yi)é31S6^c3bff1G63~ l*fv!_Ut 4f-n`L8""ͮ;1S0sh1ӭt*fxll-鮾]3eF_wcEg1x#ٚek͎u(T,IgS2S6A^df:\L%3e肷 D̔րԒ}|k̴zeϔ-CikC$3efk_fՌ\٤lx]ʔU.V-%LO)3=e]ML?VΠ~3!*- wDgL+YFsiWQ̳G613{|C3N HeL8.}m-͌n*J*LU3c}\ .ףgn}\?W™i eLdF$IW0[2sfD|]5Sggs:d(l]83HW93OOi_̨Y`˖hFL64SdCHh4;mHf4s%ͨ j^[[4;$xTI3J''dӌff*֯gK4;QM mfk؋,QOj/b6%ͨ0>?fn*iv!ͨ3`8^L1qkX,q;EWhm\f4*f8ax4e6L hFŸKfoPRh8vz<3IBрrMѨh.4ƎE3hF1ۜ4Si4;UrkU!ivJ:Ne촡h[4Zeiv +̚G!Nv ǚ p!r޻f<,ˤZ_/yD3u\N^fL4٣Ѹw۠gF+ 3=3btjhyf4;l><3{2/3!m-ό&m,oϠ29\@3e:_@3ZXyk?v(mXnьVꓼh`Ih G400,ўLuhfױ@3Xz0)f@hn>z|ha1Xrq٥*hFy@g4)V0.孻y@3K{d 4Y@37؜óqfd Z[0(5׹2haf ,5@3Gn1եzfvQ=3Gꓷzfʾnyf9U™qxh,a)3gƁ$8-q3)v{03M-e[njq$N}(3r׳2J9V)[ǠZf44ٲGV 1i3[fnaFi4Wg蟯ZfuelZ̖eף,S,3f0юVanͳi=rW,3ZNZmmS,Wݮ󈨪C*nex3t30o-Όipf:M™ѣ2w +g+sls*v*S!z.(fpSsFeK3WˌOu2do7hZf+}bKb-ˌh^lM3cKǑ9߂\x[0GT13?{ f5A9#x<[]DZV䊙i}2fj?K\Hexխ`fvy?vn,˩^ f)U3{Y_Ӫ.!:zjC,[{k/}^MٯfG̘w_a"T͌ސv',v#SeΌz83 2u6932]K/1hrfH̘@欙ixP8NI3c~!M͌זf&{IMq~Ϛ:T*Y4%o (#M_;Q43£Y3tD?r4 ½ŗM̬ KXfrƧ!Yfi7WǓ\3fus) fFv#lwd3tiUˌ 論xFnrj4Cwfn,3 Űe&Mˌo:ڤ4-dv,X?x7X4n<&eƄ6:5LO}3嫔ٸݸ +enhRf7lRffg/&eF6驩dLTͭ<&Juu +e)lj$F}YlGS2c*bpmtC7dqq_41>5Kf{*k6=0Kfv[6%&!MLX9[%39<홳wdf{ ٔ(T$3bvޯ8˒vN,٠2[[~2X7;S$32·K+9BLƨ%ɕd&gvʔx'\ 30r%AfQD<׼gȬKdނ$Yg\̺͝O٤Ŀ*eF1w05)QfB^bW)3nwϦeF6mcSyx*`fdvv`fAKٝ3VZ jlbfYle3Ha\ &fFv`fD6`frUv惴3fF6֖4gM̬1fȬ>3#cEC3f& Ez13~Ϙxkۻ؎,izz|ʦӝh v k^_i+OOP᠐X.mk fymr03E1̐F3hJ fF.zwLi&dw, fvRs}lb)df3L$v I^eЛaf +yqfF1ֆhfv03.а^LA`fJaB܂r"R| 3C =FJIfvl̠va)cuUљ?-R`f9v<6YdY7f}CNJ43$%B;<8ڢuu~}{g9(B3Azh! <.3LL?`f@49̺Xt>Zb)_CT'kY4ȩ̐$24o0\[03hܠ[3C? f >$//̠Z4eZJf0"&8g fB_Y옔afh'tXdz3SENO)B{p +ֿ3CsJfB-RYfSYfit[bDsSYf]vM%gNخ-:Yfhdb-,3L622 YgL +eҰ`OdR/:evJ2S"1(S-2Fl dH zG|2SͬJ2SGӈ}*T#o-dH dB=NsMvmqoB&8.Hf4zrOYRl,h>$A~5Hfh3rl_bJ$3 3l(f2kwi*(Ae6H/+p;<:ЌCуPfy/H2Cy#Ш?=QfF{0 4ƍ- 4f` B[(34_5PfS&Tl'Ղ nT wZԵ2C9m?eFOlElj!BЂd&5ԅ$3d5k e64U]2lhCI`smdmEFAQ2L6Z^^ba^sXJage&{W-Ǒ03@e`fCMqqm̆ot*wH03dqifq  ۨAǧHp]S ,찆l޾f6eeo3 U034,9[,1_2C zf *e1T`fhX$Py>efޔv,34K(A)g((34Y}?YfCDevh _İ챻?dQC,sҦE(:X/O 5Ӎf,^EfvM 3WfTiae-3\;,Yf.]\[3(o8\[3Ӵ xP aZ'sBi 5 ƄJ3xKA0sewB0sMZ\L#;\ ++Z5+ `&oUeK]7OFh0sijSf]f.3NeY<`Z$ 4 d-k-k-38/-f. ݫ?`63dnaZ*eKVTiZ \¢(Xd aKK 30K0sK au8W afZ&"\Z̵03 ˴x0s ӵ0s^03M1̥i'BFB̄0smcgi.-KtK3,Q"v.f&/2W"NPe9ǵ/sMvRK2nϭ|iҹvƗD/3m_6_ܯ/3m=~kܮ-~ir{fr`fvfݻ%) 43Tye.`ʢtil͵E/3hknP̤0̵9,Peu= 4\5;̴(=,2 +eu9o2ޜ^eqqw̴# +̴VxkMi +4\&ev_/3COFT^fZ\[peѩ6?eze^f4^dxI4n%LcnELl;L5j̎\N29]f'[2/LӞBv2-L;i6-ti2Ӧ6Ve!ov]ھ2ZJafe%xijڂ6l 4wIx*4b2H4qmK2nR![2diN2Z0$7~42{K2Ӡ^-viħڂ6d /3B @قF 報/3? ^fZ?f ^fUftL![2h uX_3 /3MxiumLP ^fś^fퟟ.3I͗k]{H+(2v=]f?]fM2dviYL-vj|ߒeAHuUb6SL}>3̴e}Se~y +̤ de\fV-d\f|ih/L% 34+P-Lɷe?eI\fZAP2pBeagfm2L5?eR&DA.3͐{-rj4eo8L.3iN\f6RL5RC^rIt\v3exeSe-+.3͝ +.S"erj-piJehᅭL܄K\fL%}[f20c[fڽ-S '3̤Xt-e&kÜe< .3Ii{ \fQ,4bTJ2N-vmYWvpime]ѹQe+I k \fڲ2S>\Q2̴ +L%‡MÉ[f~2͜c Lq maL:V[fy6sL2rTV|,sL36rLR3-njF&C3cTc[f$xe= ̴Kmm\[2Ś-li2v2p9/sL[I-S.24`5qT~▙FC\pTL-Ct9=e-njK%-3 ⚙[ھV-3鞗wnjehZ[X][fڤXswmqT` L[*2,-_e]TnjmZfEteUL-C;R0SLJ@Ta9*ATTc ZfX@-3~-S鰰-S gnjøII2\[2ոUN 2p6pv&2 |=[fŘ[ۇ +L5y?%nJ˂`T–l +L5<[ 4–fEÁ&[2dlj7 sYPᖩ^t8 *qTcv-S +sk-SI^{e*k\asGfrjoW@L%O if[Zi28Yhᖩy#sTr斩,2L%BTNL2զs-SM .C4tw$vaE2L5zeښ0ڨpjsњ +L52Qpj piw"9$ֵ\"w&щ׏Mm}7B.C *Lݯxbeۖ +lSj;o^r٦eUUeh' -\/241^&]e[HKOpO{qy] .C6ւ.(0 E]^tA)M24w%m*|!AvB.ǟ6ڋ.40x2 ȅ9r%NbM0\ze<-g/ ̱0}s\24/2jة2a72w24nXe`\24y Xep.Χk\9) +J.cJp\$;eU24:[d^2lS-۔~n*Zeheh2O_.s62bo\{eh8&p6U[D^eh_]e؝喡aF[F(G}i/ m\G .C0.SCwಭezst{Op<_e, 8-[>ۚQeh7'?r6g^ehDzԩ2\{ezsl/24rܝ n-cOό#env֤<_ehFcp6@sܲM=H-Hb!zmQ-CrX:z~rd$eh22e$# ^nOnنYE\{ehMUmWpm +^p x%QN .kR3 Lui +5-2[b\v[#k/ Ջ,24\vYϓk/F{n\ehW^pM w^ehXYԬJ/2ry[֕l2LwnvTlv |m=E6* vR'ï0B-CV`m+.[fş2nMbؖ O~elf}`]{etcxU2<8g ^l6UYZ)a[B-2& j(oHBߥ249=ZҰ28q`p,p $;7̲MZeqC0,SwR ̸26g,%i+Y62=/]a +Qe8w*2Z)VSamZ ۃQejkH,ݻ'=+ d1<\[2$;e/+w^j٦ [i}]mta^4﮽2Brap .ۦcepf f`]{el%o +lJgrFZ2uVڋ.HKwq\fm$E.#A@.hcv>c/lӰL'mʊ:2 +hQejyEm͵]lz;&dtYSF+iz˰جGݵ]6u\ CȸAU2,1xTeM{{e@AѻSgfܑ} }Wִɟ]=o}zXE\osAcnٮk \ b`ಝ6  .us;Werq|X]j^?2Ze9jfSe;1cm(2Aupz72'0/#>rvL);f/L&{eMREL3l7Yk.].Sv#Fpzkusœ3e*\+ۈbӵ\F/?_e`4U(+䰪-3 + '=)2ʯ P)-#,GEJL\{ex˨4nhZL[Qz.8s4P"62 7-2i&2a4'.C[s(fp5][2o7/ mTK2"[o ,eh$npNlCeOh\F{槂~*L59e\6̬ѧSk ]YOt)Afюer\Hئ6ˈϑBi=-.C"1 ehĝIYetey0jaaH{lfx-xo<[LŐeh/C#`[ma|54OǾ Lo` M״lˈ$rwi4_L/(3_ X}~Ɨ!QEo_F(RRCh/CHT~Ĩeӵ/X(%~%ܗ24b%;O,}[24Z92Lye9Gvi@fU, \[2}z)SfhhnM͵0#mylj8ƹzfH=Шrh=>eHns2M;٪/Ӵ-~MڃmedVk1\!=PS w/Ӕ_FjT/Ӕ 6~$dppiJD(34f `vX80CD3r \( `$D3L/]-$FB0ӔD}S f8|OT${gK 34Xif؉aF`x0C0C i7G0C#<0# 1| 34ʴ崻0C#T3a9s/n-}0H]VG]fh\"%3$J,bRfHlF;HWpHu/B0C;kfhTkB{2wΧ̐x`)[Sf93M `9߆3 휶fhߝf2`wkD34mrfL6fߌ-<¤)s`A^d@&țL0C;($؝ fhLpD][3ɶ Ш]0C*gێ=WSF?و\ aN8avyhwm!Hhd~; 6L!Cɪka +g0LHsצ0Cc8#=3[4R߾ 34 lfH33Ì0CwǣhavUSf'(d@SfHmSfr-J"!,V3k`Fa(d`6坙N]3ATL\"Po2 la)v3 *3~U r̷0#N*`FĽReg 0h|"Ves~`- +0#f6)[39-3bW7k `Fpdzʪ0#lH aFD`Œ,U33x6mn-'u/<ɸF3pe'1#f6(ȲZ1#C[+}il*Lkϵ ٦jlZmmBLbFeUOeQvPIeW0̴ꞛmUuP}еaF(q d~ñTa z=-aF&~( 3.rh/ÌGy!U-3̸bQf?aqMKT MbV-3n\=2a -mAw +L{hư0̴o Nbi8TNZDH\[ ]Æ 40ܞ,L! f?*J0C#+̷`i5_-&۾Hd`12V2 ͦW'%*Z(3՚]Z3 s]E7[3 +햧*3\;"X f:׺fd BAFr}IK`W N94^ %qnf`ME0Cy]Η`OyYSfh;#$idn[aF >wk3ŒwdcFPLߟy*lWc!"Pn&a" fȵ0crKfݺ l!Ʃ[Bum_}ώafe0c%΄0tt"tbĮs߹f]d00Co@ka4,cs"34B; `muJ 3o7|*ÌB]Gf}aWeZ}a2O-Baƚ(i%3u m14/E.{h0C/a7!3NVa)LS6iŒMfۥ0ΖBG~0C8r9/#4CSE2ì[7Qf9.1E7 YWߠԮsbuPfe\fhjV_ fM2˵1<Ϲڙai M 3$r<[s[bA:0#_y:B33кVw]0kК!f;9,A43 io0CJк0Cidw #HPgo 47d O'',$(3 ArzFinʬTFfzYZAu-n ,ZBa~8|7#.Kܮ-9dO"iڈn +ge44`֕rkK `F Z7u-Vdn3?m_G/Cvͳ`vfZ̐.]i>LB[3M(ESfPF| 0CӢ"`Fbh7#ݵ0CmSeH$-/~yMm {SejvWiMigx&l-x%][24jh/Lm22FM\Aq ^6xqI2ˊ3wׂ]F(꟟.CڵEgl˺Vtjceh`#6.2As[h]I v%Z}Jfu`AC[2I{hiZd/$V4nK2InaW:6TM!)9 +.&D/CnqL3TlL3T % LR?3Ψ 9_0fhq>b4c˜/8a̺ށ+34휦b)[(73MWES1fXB7 jY7HqĞ1C;l+n 1Ӵ60fٰ1Cq:}"q,9f:'>s4NJ3.\%2LS.-)$f=/j-3I{^Um 34 _]ScFYn)|%qmNocyk1O嘡]wfVcӁ˸@fhӰLsdSа?wtj dd7^΃Z+[ 3!u.S@fZX%Z]8fZi@W9#th9+t&M7k d&\[ 3XdFQe2* P͉W d)@ +2 ,}Hf3tB}F=̴DFS\K03ei /034ooΓK03-9Z%TeV%o2 JC c:k.tt/m̆efiӶte&~ݵ2ӽ5_Xfhr Pf=ПftSif㦬i"fFA,[43ŷk;\6Eg5΅.43<gVʽ ^!i{tWH̉?8HI fg,=K03!l-0Җ,D3M}lӖf$ l*͐s9UelMf 4ӔW@3mx!ޕf&| +2"iIR}Q2/ʹ/n}L9*D3kkL m{hhձ\ TKD3M95`6~^f9I>ʹ[IV"-D3-6jhPSd\Z@3Mo%D5g쬑f`̣>ʹQK0)L~ot!ieF!-Յ"i]UVH3,S73 ySf"0-JGf^EpP 뀻kh}v*$&tߎ4C۹M:iIb-c ib斐fwZ-ک*[΅4\6ݡY i6Բ/YBiK(4~l 4z}[4<}rOavSi@尰D4ӊ L<}*L \D3kբBia̐ ̮J lʹO= -_䔧D4C7}}G&u5=-ցߎ-uzSfZ[2 8*ʹWﰽh*fH?yffqU +2ЌET[wjiUtg3fk=hgh^0Fw l{gh<&g\[<3Ikɞ3S/mB!]jt3C;mg3S͛3CÆ +2L]dlwiaU-Ǝ*` L8?5ВV!~D34b/ZfhrHl轫g + IB >JĎgmƄ3S%j=3C IK43u{Fܸ f-\[4]uO43$D&b̴|1fv8!}eg3uzP0 3Ҵvfv+׏WUf*ZJ_ +3^Uaf{wmM(2m1X1ys텙Ѹf0ɖo[*̌Df6FWafn*lZK*lZ-YfSTl%'2l9E;{fEWiFMs4?_fla4Qaiƾexi6lΔi4W{._ĒK6n_fI]{."t?~ U;V +ELTGWԭ V!M-^`DIlhW4$ L~]swEe &#C*ҌSѵy͐O|&%Ѫfӌq_xfhX3+Gm@ -a2L!;̦͑Bgd +6gvPp̦ҁk[g65i9{Զ{7ۀ3v^Ѵ3Cjc lh̦H]-FR[g6զp$s +4&iOYЫWfeD34ʚ6.6߻>h&V ͦ:݉hfK4j")֡B4CD3mK4C=c/lj* ) /D3!hFgz7&^2Vk/ljOJ4C{ϳh +ً,@3(4t[3Vhfqz +9vGwe"N834iȲgfrkϊ3Klֶݙ|Xpfz?w;?_pf`L3gg>svP),]3VrfW%R+SifSc6G; Z3Yao43 쥙b]gVNyLݵE3Cߚf6f̼{fvX)fDo 3cH3Ca3ӥ3%p4 3Jr=Gдkx̌Ugb#Y`fl̇f *L(U,3aN +ˌ-ŅfmCe3Og}e?Yf7Bv9|a ˌ,3I#-efueƮr,Kz4eV_fi?fNͨe9FA`v+,3=SYf'fIMS + 6b셙q3@gs텙q`SfAS*U03NfơE8HqX@O Ԁuf1% j*̦ӇM[hg$*L +̈۝W ^1O2ΌXεgyB[dFFɿDbB3#0)rXl9 43trLL3SȻ83ⅻ^TW 'k/03"V^fFԪf?af}}fFԖL&eF x#QYfq]eSrf6ձ߫3LNxS3l.43 Է+0fFC'@4/^|*͌iF_f!!ͨ H3 + tui JYj9[Q{EQfv2ь )qm_>zF(!tيUfTljڋ4ЅdFir{yEV57LeiϪL3*d4SKwf)ɅmfUfn HjF1Eg  55xjvYP3M,@Xf-`P3*P3紜 텚j2Yxfiا2ʹkifuL3-Y+if=fi)fZ+ +)Ui6ݵ`i,/C2Lkre#43R4bN m1ʹ؟4Bk EIH3u6L4JMõ43g!ز4Ӫu@R)H3vYn?i:MfZxJFiafZH3}˪) LX8k"ikDĕB4n YD3xoB#{fgҷ) 4I4SK4CoiM[h9hF2εE4"c??fڰ% h}N1][D37B4^ J42L[ȘfhMZ"i[>u}*L[#Hhh{~ͬ%p%#lH3mkΠ%6J)h +@3ıٷhE|][@3Y#L{RaJ@3swTΞޥʹZ4S ͇.ԩ vP3o 4fp{얁fݽ@32䜦 4m +*ʹ_|:mnhvdfĖfjGq)`n h֝MhZlNhNL)O)@33ssԯPd hm+g2gppf+3S~F l2̬B=d^:aUZf&uzĬԸc +2 3S3jnafj>{%_J.̺eiA[03dyf6-dq`fj{mSafjvj>b`fJ1@^Pf33-43u{t ĵE3S+$\؂ҤȾ]Sd{=?OLA L̤.J%hl)cUK03MڂiBz* mf3SnL}SYf!pdVe$F]~$y{gavn +B)lMOE)F{lB(34sPf]i2}[(3(.d[^v[Ah(3މ-_tFF)EX2L/7[(3P-ԸЎB–L2"%}õE2C#7%<+ %jTYܯ:غHf0Wؑ&d]3 M\+ +LQ-jSAfh4'yqAU)tfX|D23KX2dFu` d:ps?3L+B-W3(MlqРoS9fh$m s̺cջ0d dT-]~, 3(0܄$c)9E*Y>NL)vlN{Af(7FL. 3'@h 345;1k2S6vuH)%<؟ +2S8ʵdD>dRWHS Mn*9fh3`1S 5O˜3\/5s̔2=fTOn>cyV@s8f +@ħrLL'ԋZ(p+}j昡}TZ*3cr̔"'~]O3%0G;(s<3`&f 2CÕMj)EI@fH!K dD=f 2C[̔ AfhX!̔rv[fAGll^:ifhTl\K4O(03$9af' aqUK43T_hf`iR IQD3xr%434n&&+Jv Z-|% X3 ͹͵E37ގ%N*z4A&j3CSn3C =\[@17TI;Wx mohv\ hy[ڂی1RUV!ز92͆sV"ɍ3SxL40h$ 4da 0eX!Mg6Z<34H2LH\l~fvr ♡a3dZ"TѽESyfh2I/p晡QЁkg65G^ Ќ_?ɀK#.% Q?H; FZׁh2?iZ$WM8ZY)?v N^~~c ;8b/-|'?=r~}<':n7M(cMG??vw5u`>6i+G??cE8-?}V31vϏR;YM;WXK~~_ԺMVpŤG?=yM,X5IG??kZ:b,wϏfd>vϏfiS?}^t햁>vϏa3HNk5@4cؿ>u5e ;y;>~}^33ό|ݿ#aۢcqjҏ~~#NG??ő{W9qN1ύv3nPm3 V÷=lO7?3ď&oG &U~|ŴI?&o듩aAp{AT{A8{8 7 !oGoGw X 7 aoe2y1r3q3q3"p4߇޾gܾg۾iп}ˠ5=۰/GpJꏾcЯw 5CAfcȯ94 %Af?0G##-(0~McЯYw 5A?R1ׄG[HǠ_SYoK# 8~(A|T |Ǡ_k>cЯEu2jkGew 5Q-~I|àoBcɫ4O?ʐ+S P`ۻo&ckF;:mk7R{==_n~xMZKnt OI+;./{.7%xs _\Bvxס7 ,[+M>b;%]F8`71ju2BgT?[Fiۮ-l]vOcS\p?n+G5;M?)j\p3s;e5>| 0,wBŘ߬f, W4ϖ @00sWk8?[O(`iweT_C(:o$o{;|n( >WV!,e/<҉u׾hlh~kwSoWEOxåE/..&?uqY{O_ڟsr@7ڙp}{?F(_O1`{+j@e+]vhlJww/5.nb;ܤww!t_&uA>~ lfwv_n 43"Wzi^ļ/( G|%2acqB]d70sk~n(49~ns;\v 8TB

Йk̐zR%o{$FR-'}h[a{6sP2P(&cn5͔vhLl~ni7nvW l][hr1܄}k|5+2mkXdz.ڷcm{Qo|?2>njLf=>71ϙ#k}n: mr}V +i׵)5CnDp:~nw;]QvRt &oՠP`9~n8V{p q;/#4l&!=eQ/V{kᙇvkG]33w)@BHk 70MT8FyX1vɉ(d9.PUk0Zs kmlNVnK_/`PdGp]kOvChB/mn6 15vh/aʉWgmm}kӵX&nZhZsNdc\)xv ۸xplJ.}s2j8w`G?lhaƔ'O%YWm?ey^R*hᶗl/l~3bzok8Wc[[SCf46Ch k@ csplfk#vZ #ؘɌcB1k +(Pu]A ;^ sܘވK6/9c6t=,k< noPdϮLW_eh2ٻi焠FcwaC1NxeD4ykmL$"x$wܱE jPmߌI}Lʜ0M}g '3}r\yǓw1.wkWy|ǻa11G-NW]YSӵ5YKrx p =Bp2Ј^;\.^{\]ݮk +L<Ɠ؀hAkx5<6e;CJxmCs LA@{CyNCh)G6=qͺBp]S;#[WOV[%Gl534y絭Bl#sG/8Оclʝ 1ϰ5ek?L߁{r}?x!61*µ 8bw<&&c]kbyxvpMvc9B!]e{ n#2䡰r,tKe]7tk+l` .6mfԵKvZ؎71+5V-L&\ui!Ӏ Bvk<BqnA]G@"Ak'Of;*@C/AhvZ6Mn1ބ%hm1ǭGI]oZ'/pl 8;=z]te47̐@\k0OIɮ:kJҽsw~5`ʊpMy&F +v +n&G!i\< s $K._6 ŮJ1l7\Kl p|s Xd lRpw",Ɵ$Uo(|4R>޾w%빬B!.MX#ݾ}LXҋ= ǶPm&Cp9cJhɶͯǐu8p8O.鈦Mn=F;71`mDvƒ :Fc4 S{\Pr˒bFܘg5@MIYg ,$ɟ i29mϑG?Z'l='`0=<ksxr6A)"1~Ayi>?wiU/iwS%yz\k)t +m$ h?H6/,5 +n$ y$c{- v>ekpFض^-?2Mά}=7 +VwW`шɝwN 2x$%mYl9hiF$WH7W^6Qp"ik&i eQ]'B +;UQ`&{ +_4`Ƈ3@lwh$kŏ>vBaʼnzc)CٵyE`K./:7m@㶋"omr 6|hwĹOTE1ӓycUڹymMGEN6aX9[wۅG8Z8!Uf6ڪL3 21bn(72m ykT]w8l~ yJ۵>Sid-_+"J=|#q.qt;C#0Bmd//Ӕe7x9NAPMvy_Quծi=:U:cxuíR\?}g7ip"oG~5?Y'Nn?N(٩0>M屽A]]f&_,hyʠ>o%AGfVF `ؾ\Af-iVR>\$Hűi2(z6;;Pe%6%W("8|vѡ-ZJR>dE:vo5QNkBhǼzj F?BA]ZaH&hzܷ]$UP.[@''zEM3;E*.Ysj)ҀQ +L:t"6 +՚ޯi; +lfvTAi@]$&07ݞ)w +X(sw"(tSNLJʑ7D3Aq(njٖsȨvzdZ$v c"d 1"5)DˎmZ6Q%LS-;mӉ&[-ʇvylgtRd dAk24 ıpM6.qͷ1+pd! zv9ڃ{ c,4N:WPP{lj/q:PśE8T~DG lMOry63(5PrؾF*{)M5\㨂Z_)Uhl\56p]91e '/j2'kG5Ѧ!Iyq(M\dQM>?bw'_v'j;mVƞGM0~Ɣϊ\sb/LɛU;4 kK6V}m97i]#ȼ<61ЫNIvڢJfmVdFvⰢi[)GSJm{@֘jrƈ.P\yM)kjF^; +d&mtH5?kx[cu2M;"PqF7G~YU=3 K<]:(SWoG*K;rcG)Z\ʹz)[ט#3WUS';ӶyCĝ_lD WgYp4^RTY}geD%s{0+ +3ӎUKO{OtP5-$l/M*Xv*.L-?xaK RuzF[B O~Xy6s&n2P4iÚMosQ]d3; Z}=lEVi[dvyP(+P*f rV\?wg˖;fr Ki]$w2 OQ%7Sl} ]ʣZ:AC?7]&˩ *La$6Χ?2sTI@l)J85Br/4WPve@WJ~;&+r ƾ@+h|kjJ'PRu`.k3ۊ ΰ}htJDUQ7R9]/nڨ~rnnƔ1m-$s{(mɎuYAVc채nȹPN>5REh.V1 q(5TFϲ9ya-;E:XVMy"$@E |6(jM5 =6]dWT ->D3@dŨ2H~jhVJidwL-)vd1Q~ H5Iߘm)}}!Ӛk_V |A~];m;cE=UPcbSYTAMs^H;nPt@_iu\TZ.L[Vh$CeKiwȋ^Ŀ_j/f;/~H&(cV-mˮ1-n=뛇Qq=YHPkh}~MƏByB]54ōR{Gl 7 zbj[vCS)Ut[؝׶PFmG>Pu)xbɂqw PX8dbb4@MKǼl:5{x=覰$7Pf<jc%c${==Ȉ||m3v<CϸQk3 5-.hz8NiDW_u ˸px y7~yNu +a Yn縑kͲv"Vo;nl\^Y#΢6]Z04{.sY8d{w3=԰kֶsN=8٠c]Ya;,5Y pOSmM/nuho"5z,r|ڱmN6BE-Ǫdk. >NoYPx#׌[6QC7&6;_X-B~y;\'=e!ܐlh:0{==5nؿ{8hCC|P򃶓5DFذwC7;`<4xڽvbcX!O~. +Gpڵj _58U Xo i\e'k8i-vfg5ij0ۍ= ;lnEɢfvBWkx*B ?o Yn֬7'Hj 5 0gpڸ<>|mwDYРXh. +Т!6Hsϰ5]=ѡk$H@4yB\>^ovMZ k Q z|]92iY!RygzP0 YnueyCZ"}7%:}#j;hzLJ6~8]kx/_# +a4 eG;myC67OM3 {"r ({`{bg{5:$=ڸT%+ǃʼn~qɱj3Ŏ?X]Hi>,Q{"W–ks-QX~دj ;vOO < A &˛uF.K̓^ؠD qՍ?{ŷD-FQBx^ڮ32Pß:>ϵavEOO>}Ō]1#9﮿Ex^K8`5{`ı}2wC>8mqqYU0.n[iŅ1eZ6oE jHGgjNum%Zi<= P60KY>+^ǫcǐZ4S6.t'3v_CPa P'zkwq֬K5^^$7"ttG jxj&'5^6#1>ƍe^ c?Hp۱C~u5\CLta{ 5xf({qyc jbfkN?bC hfm +]3}uƻm\|!15~HOF튍3C!W[0X:jHTxb7^<۩jNKFi/$hby_C;){/p臲^+X]cCa=V#n$!duND7jGATax O~&x}ؑzG96OfF }>xrZ4Cv^+)czy>_S=xTZȷih9gC R 4;@ +ר̓$tCu{͗wEHj<(د1y v(|y 0&C7_޸8+sձڃ|kB{|ysxS {7č?nt_q` z,{o>/hu&'?D3{f чU,.ѬYHfܢ"5RXDj0Fb̷N&"rf&zꍄ5t=3ݴ@˲g6/k<6T=淕3Y2gfs]934FvߪY["?*g6.dLepf@o.gW_xfs"xf؊l6=}XDg^Ϭxfi3UNFx-{f+L&R;L~=34 T ߀N ivRUKK%.۰\%ͰPD3\AbUEk_]%ͮ=RJLix]1Ҡivy4Qe2?D QBqw&JB!#olf)5=5G7~Pq+;xv5֌j6wdWL +j6=_ ,3u2A@j4[Q҆jK~PP~S|4kT O +j6Ώ)ZQfΏjnfj6)fY^֠W5WWՌ+ Oٝת:Tqn_ +L\;x5{O&c?Y3{5ah5Kc?s^f2m>5΢Ff{keuͰ0Vu^̠Okywfh9`^^>_/k6>6= bd⚽fz-f/;u\3$N\3 Nq^DNVq 3f/2bGf]'5{ѣϳf᜝ 5~&ڑv%Bʤf?oekʚf/!na}?_uv~q,zc1zk⚽8=fۧ92jf/|R\3Z_E͐Zx^4FpE5b㵩 |fdlv3Ԍk +jv}J +jxoΨٍ̿'F# )iKE(ay ٨eXH3\@5|ݐظjfAyiaf7.٨gX`f v| -Fshbf?΂<fv&3/.܋%cfJW,Q0)n^o4UYxp?9բ,3Jv*e6jˌrs@-yw4ˊe[A?e˱=M- &^poi@c_,3~2<&٭'73m :nb@,Gn_l{p=fjf7"L5[ Fhf76r++kfT&wf[7GΖfvy;P43|ĢځbO͌=RLQ?ѿ{flg)ʙa`2g xWΌˈ$ك923ch1C3nOu3c6e/C83v׎ +gGzf嬥=NJg``T ;d-{f2 Vxf3{=3ZhTk32i^=DY$g%ԽOJܘ=g (x݉3CmƗ83c!u3K*tpfY.b3gڕ3gcAxIY3C Y+ji\43pw[>@4$⪜ف̥ g7W83$.sf*/E3;00Y3; 3f'/nYf$ӔXfx:<+فC2C +,ؗ3e-(3<8OʬO [0g2k#}3SfxYdddp"9 +5+-+KfxH0m%5t:qݾ.KfH{ddX?l +eXk)Ɣʬa o2ó-ƪ\qˬ]ʬv|2cmz8?Wl|yzmQfx$ݯPf ފ(*Z'g6Y3tL8)3k],3rͅ=hj (b8L&8LMY43nW43!ۓ9G[)@8eĹơk- E7ΗU)f]$ laf'V8a^1qiS fvxjW03L-!G, ]ŲeiaevџbaGeڃݩl1zbevZf b&C-~0:Vˌd3G-kQjqpA1b]e2z72;2Sd2{ùZflibPdXf<".cf)r2[f̌Zf/h6b]χ289d2hUr!7t_Y^PfPu-v~˔#TC2ÞuOUC(QX;(3ێ yV) rq֣مàمTR C+\J%3lqrK%LasJ!|SO2n^[͉\lA/ev㙔2pDx vlQfW_&W( >.:K+evȬecAJ]1#Х7`̰K{}dvakW$3ίHf: +=I+6ww|1ɓ:fֺwcL)*!f'bGѰ3&Y#GbBH +b։gߡ8bѿ.#fbG@n?E: >_^F:muĬ3x-fiw'ψY'Ixz"f[S*[jݶY$Ux!_a:V؈O0f aF}cQU3 فuƊa#QP{湻*fmۋb3 /٨$b_Q:O71c& IjY{81FΞQ ju湌2P[]js=e}0"?3s^_ 3D+jgw +f0XSP{-K/f13'J O 5 +:R!kk]+k1Ĩ~s\ )r6̗Ge y&vRԵf>feוLuDND2γ>_2d.;|]p.v+ {B`˶b?eXKe8A.CedžYd.vbqu.tP_ef~d.c&} ?6?bu/_;v->lbxހ -J/c &-^QCwu@ +^1x_:~aQ[xYG}C~Ne-c"%39N-^q+ +Y/ec'.A{-}*t.Le3ip}'[vjyYjuu̓W2n{[{me{}4*ey3ז^F(8w sSe(uw^1'(xj> ۳턵Թu{ie0w:- Ύ@^9w2k.CѸ v%]"bmOΞe %tY9w,leMOP N2]g]fX߁eJ.C-m9]>ז]1..Ce]0e|w )^-j /\/xY/C͞^`fA-  ]j^Yxj1zmeְ69wP;9ڼyd x%>M(z>ڭzSge Y246Mz#gxeL"81cK/cB0=헙2NA2ǥ||n˗1vX˘KB˘/ ɐ- l6`-Oh{|ŗuKGe:-1=B2d菻![~3VBQrTKC2fb182\ +^=YY-e A^[x~ WY4T2K c?e m1zxq^.ew)2"Ǟ/C !W#~noQ /e%W8e&2~YpnDeP)~jopȖ_R\ S"~j}/Cm _PS>-RMU3*- _fL<%x-fh#w0C]NwER6w10c*, gح~z)fؐ=H3l+^GDsW]3py-fHBx/` +`h۞*" 3% m;odZlcbnIոf8oJ6/*!PbDfH$aj qy"vDgr!䳨+%P5RŒfYa]c90/0Cm. 5[إfmm5Pkb6"ay~Y0C Wk0ju\P U o|ÌbuN~x`1̸pWÌ5= aVs1Xkͺaf5k(}K?*kTŒ/Ya_ a_L 3Z=JuC 3գͮf"eOHjÞ_5PwKV)?(6>Uì砰b9 +5P$ ;+Y__5xmf^%EI a0uQnak܄f{W 3maZAj7גagV w+fr +b< {C~1]DQvޯ"fXeD-!fixN=a1jay_FU 3.&&.0rڤJunx +f\F\̸Q +fXYBa +_3+%̸Q{E1Љ0sRaT%Z2pۺI }|pʒa髪aG`-Z 3DE] 3<f70£-ff]2!nz$Q 3-f3~Qg$ =rU0CݎkI0t-T0?jK0F0éj0xmEgnvn?5/U 1@|R ^r0i9:-_36GWn ޺X3La;ӕfHUAg 0C: +zH얡C*ʚfm變ك#-كIx slgH̐tn?+`m3x^>3U0CGNQ}f{J/ݼ^ 3RvE6%؄FQ&x=]HFfqeDW62"%1g-/a|(п^f,[eϤE/>—YSJ _3D +H|jBeުQ2 f>ː1sDm[e :#tXF]60Ulz2]0i`V 9*]!7bD +]reSemD2խ_f?v-+v`铉]֐0\3SS2noL24ɥxٙapYj,bw,/ `6x/`vF}6c̜qߧfItfxo!f}6k?!0^!xJI?x=051RaY*1t_0;(f=a 5pwl<9ec)~ Z|\!sgfzM4}C**a6CYg Lrja~ kBa30CJ,2+`֗="fTli姊0;"Ss ?cwlec02Sy]l癬edz/C̿!e)UidYːa!7g˰~G_͎k]جZ5˰ S?~}/ ~<ڶ(Aw]2,"ԭeKo"_nf+ٹܑa{fL4Y̐~̠*l<̦"a(`6~{^,"*3ql|,HΧGW`m/d"Ӓ%Ѫ`v@̰5W0Kϰ?}{;lG0{| +f#1f'O`?W3I)[3NӘ# V3<,4˱*);ҿW^?g1Ƶ2& {߯a]f0C҅4caff\>?c!e0+b)z(nWfS0aWìs3afӼz5 ӯa|(0YYoilQSìݯfebY]ag:$O*a5!yQrB1Ysb0`?V 30cDn>;&َ}Bea.\]}e+bˆ+鵄1+8/Q&Y_E1Nxǡ*fIܪЅ !"bEO(fnrel?﬑b7gŌ lgb{;$>TlTƟZBղfqD_zf "f1;x"fh6[< *fXNdŌ{[w>Ib/^:fvM YBE1Cl)Z].o)A6j]yñ f{_;V"дY`A.nɮ f 1C@J(W Wئ,;.1]lE M }qc.n1A8쭬$Z"ff&"f0ӎyČ+K +baףO"44{f2fxbhS OL~0-g8e!p?نo%lh0K_5vF"sZ2~gS #OR yPQ 3H[OX*_E̘U3+2T"f- 14+[3@!h fxF-&쫈rI3!1rY3G'Vh?3\k 1훍0C415̐˒71zN`+2h.5˺5Ck0Cc,aF}sfG 3 maz\1 ~=Ѡ&َPv!btEoEA0RU0 ]0]x fe 7LgsmrQl[C_%@#S3n|NKR 3$E^ 3~b^,Nv7j%J;zI!̬qB +aK-j0C,"2E,^ 3!g9_%Liھf8tJͮJ[`Da#b8{?V6ЄȴK0rWl10y[_W 3Dp7jX^K534JB|f=SxZ"̘nZu!XY0c_f {$hČ'Z ČwxZRxb_M rAS@Z?mcO3msf*fx(~ffmا2<(n&BncdlfȾe Knڮ(% 0c3O0۸mV]h@5vn~f8yɾ|09)j!%0ϴϒa7&Ëaf&aaW3.avё=0eap}0Cb0kdD y|dN% O#2A[0m:A9o>a6' bmlT3`yD3ۤe fWNl)&d%\"fX02𳄘u4?Zq~LrUČSO*byebC8KAūb=-ҊlRnFaba}ZY16OGbָY"f !MĬ~C_1kߛ +bӣO3lwjBB|[D38r fG{m +f(-,ĬݳD0>kK0C-jK0Cm= +`}ݾ^ax^ r `U *`1- `:‹TlG +a!PL% H `ƾCL `v\>րW3̰P- 0=KYl0k97f'r諄ٹf)lˊ 6`D!u4 3Df ٺnߦU [oE3<ʒ۽. a1bIZ_%?R~qmO 3W 3$hVZ2̰kf[jo%얫fw0BY"H 3ӠBg<8$"m]FavPfZ{1 ia~P nl<,I%0Ö5waw=avbrZ 3Q0g a^B1*"U01GT0xϯE0Qn fXǒ +0É܌(msf0iJW wXo|]2?0Vo;_1vGfS dq:&Z bweW3c1%R3+F<9 bkqz-!f8A1H,)#fhEf 1k!YdV õE1;90E1vEzNQ̰]᮸=Ṵ8U Љ5`z-1fx.w% Oʘa;ʘau C~1IN_̘#Va:8f=ʘ! +C}vWƌ9{1-j 2 ɽʘ1&XegE1Y^YR̰E 1 ;ya{CER cI絤A-ٝE1E1 CY3ۂ"fetEBFA̰rV f$}0⊧b!zb8- sᙀ1܁?39?ݼ3Xs9f[꘡ym9fVK:fUM% n_q̵=cIѕ1Zcvz|D7ҳcvqgڣђ>1gwjqYu6"q3bcQoqʘm0f0fX?˜ayr*cee*d+}fP }G^R̶>{mIf;OU$3, E2۹BBf;^*x@f6A1^Bf8P- ? Q 3] _ 371vΜx_dffqTlOBfZ̰ݧxYg'SLW +f6ʃP3WNmlC6U3C{j,uf6.ґq$v, %R9[|pfp3Dd$Wlmj"Wh?|"U Lm&Nkl4ãmk%uQE3!NGMDs Gdf㳷 ZЊU4cf8t*pc%獣3堁Va1sܧ@fni] 3w?~楐w̶ɏd Ϫ̬}ɱ"⍋?᱁^ p>#xZ꩒YEdsM-IfC!3LEccKNVqWnj[cqV P*cWB_ḛkv2ƞĘ!آ*fh fσ*a9yRk0>[A3㿲CJ c]Vlfh!R=`g86)oZ +``ݟ*`P<۫ط,w7`zԫBvKk#_f,Z3RV C +K(R"8n )vsT0{u Zggԛ`Ʈ`1˓ +fhsq% x; 3L15A̶6~~}Kb]g^ÌkA1`=MWÌA~6Q q j%Fr5̎|a)_ +W =U["lh'T 9_,Z!0(۲ +fÕ*ęl|15`"a~SEÏ`s+`'fhT 7щlXYr `FsrHfu_Ul/C( ml~z}x//;Ƣxó ČӬ_%8eoNv_D/C,,e]"kK.h'P2._\}DRe|\Frpv\7 [r]2cBi.CO62F2x{met +9e}8.Cj082 +-iIeXOjж?[.!*([vq/^f]ytP{fԊe 7Q ne sP;/ke/Co0x4 nﲖu;~#zEnn%zJeHqPn^˘/ fTүe(IʀjmN/+`yNqv*e(uq^[͉+c+j;#jlp?*fLPK;PXnFEL`x;@3Ԑ4qħ-L~ E*`j~gfgf>zm+jY_nζw9_0嗡6>_/YgꗡW=Wq2|j/P;Ov2:v~2lv3T[/XveyW(D/C6{m]!zj W kMPK.e)|c{n_2(5ŗ^[|j|/6ia?c/Cm◡vQP?^[~䠘R  ƭ _v3-U/C鹂^gӴOg]e1h[vֹxe%e ZP7%U.QڧJT.CmI*2Y.C ]Y.#pؠe1I~SqPǗ!e𶪯e] ˣn5G2,1rPCJ2[xe8pXwꖡfd&{ef'Uy[v3}c8˘0.e\vs~-\'XPxWPr-e9_e]sB!y \ƼK$ڂP;4&H2,b~.#0\ݞu.C-q.C- \Ƒzn47- @ {] T2 +݌=N9S clO2eg(\߯e7T2S*\%aGق&1˨+B`p-Bv<.cOMff]X-vĆ+m{ .4?s]҃ +^Yxj9{me<|| @I: 5\v\Cvvjzfwf'Jg:Td^[rcrjbbe Ŷe4[njM2 ljXV9N"l6,ܲ9ro2□{֖[FMcv[c ^[n08S:28Yׇ-1g-ұ_CvP#e qp,nٿMj;PKr~pFֆBٺGQ +]vszk!2]LpZeevP20#C/leq%6[xAyfdwM7xjxmeKƻt{2Ԟ"Up=vxie(! %ӀM %`U. ^(TG2@)X;Z2"zS lHP 嵄!k /#2/v&B˺4a ơe}%x#e/}xdq% KVR]SUˀK#xDl5e|Ϡ͝ dkZ e8W23 Rː)BB9CDݸ/}Ɨ-"ԝeP_ռ2U I hlelj*]j"j b )˰Be)vFx eLG2>PZS2N[ W2b;ϷsE/CE/q+zE =L]2lcnѦU2Dt#b`^ƾxtW (nvٻίj!Bb!qGkvd.n+ג]yGDoQKvӟU2>ACtr$fZe89E26-[2D2D6k +TP8Οb=⹀ז]]R֤%vún]hf\#vjcM̲e첇KPs4efelc}j=??j^[vS]Zr7Ee6lz7."8e659Egd.C}Q;z v=qjaMe bv0'[jk62nf)ez߫]iɯ-lelO\еeOwe ntps_2PVe0Mqς᮲8 +^Cvv捰e~|qҽƖ.;%K2D"./ÃO/;Qː|0t@m[h9ĜV~yfu /Cxv'/5n4ebag eȓ6k.C@ .vKŧv`o-vHmvsBhQa +S2<qZp嫽<:1o,t΅.e\sLk.CqnU .k^%̂#\{!`_ +ߎI%ɓT2 ],B( W WF +eLᄑeE=.Ls`]Ea(]gT-t߭k.cGw +W2\,,rًv5 w% KQ\N\9:~ג\H2.p}ЕᲗ-}GV \ny\2*rlj^,Vk .cc,-{aX;2k-c7j-4Β[cM2lau?<ݠe8'olܣq^߽2·a!4-ym^ ]V,+- Juˀ޶*nYenhTqy;?nٜ~ݲ +es|zM2Iq|kY}–]gr +[vc'57a`,-a9YD-q +۷쒋eXьa|ۊG-ۭ[yM2 NR2lGVAː)Z=_ ބe.@7jjacb6[Y9DN*$dٽsJaZo<)eoK+YZ9*YGk,À{-2@e䳐e+9BDV;|SFqZ2!>w6Y封`*Zf*Z5Am,dȒW  V Y5˰f,e8xSNͲ]FP2<1p7e |gme=#U$`&xel@|t+C ,^2ƨ~+7 +WXUq^O\T(fe'Ee$$c jUJR(C{Ovʰ"`@i e=l(cxX2,3)u=M7(C0NO]]|21@j)j'$Om=ɰגO?|2s"\d)S'b߯O +dmQįv,3㓁 +rݖtzIgо/tOQ'OV|{=dS`OvpkTmafwLޢaxdhO2j='JW #69Ov"79'Âᠯd1l e fedx/߾T ɞ-fcXB_Q[BWȸe`o: eg;%azu(QelQvx*Q\{۽2ω%0m(1cQ[D&+7ۺK2vH%v?Ra~ +e7^^'-Bq8n e*BGST(;*U(äG BGr +e1VkK( R: 2˘ #/Ke،Ɠ猋Pt^ex:=m,qx;9 H N4E({:*BH8&'B> FD(Q܍y![Qg 3_2F~" @I PÁI\(cϜR =>}W. XýkK(Þ6Pl,u] SO2쑭ʸ' .Eg |ȎuTD1Ĵ(;i>v@ +ʬ{mQe>NZ|2c0+T^߸FPe2ĉ dof);fg}YvNibTڸkQ._JP>=O-brâ1x 3c(G2Ta}*І${f¤Ol됮Tvji|Tv+P{'a{nsٕ Tf*м3jqv +2eS@춇22|e [W=6{gh”]"ə()Çxa.GOZ p˲RA.-lƕp>RvP2 t7Uʸsh_A3ɾohC)?RfRp +emDc(R02- \.1n)>d)RtaAT vuO2\_sɽ2l9ek悖8ex7o=,N7~uʶR Es±@e8c{{ ,Ae [PN ,T *Učoք*Cp3\|őReX4V 1g PeNYJ!>Z-= *Reؽ*dGגTvXh ,TH Zp겎D*cNs[F">w*!ӻגTnٴX2ܝBBa> +endobj +166 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 167 0 R + /CIDSet 168 0 R +>> +endobj +167 0 obj +<< + /Length1 1968 + /Length 169 0 R + /Filter /FlateDecode +>> +stream +xU]hWdj~VlTdc.JI5%[ddv3l\@%VRP|"E&yhb +Eh+BK>(g&Z[sιw=  w#ʡOfH#9iodp?*M7ߚ.,L|+?Js9NFHޞ#EVɛrŹvd䪂5I\8Yێ~di([fwHpgJVyn-4c/͚%KF= =+6q*>yx'2Qa'؆HU_um8"oBYGa1>2.RO]Fq#1M ֆ낵5U~(LB'emꈪ,wȼhs"LJUNUY} vMJI9#k4Jˆ]J&GF#Ԗiu.r}аqp4bK#94*w[;lv#̙bw)*9*_Ӳh$m^7㚪 J6/kˌ.2lAvVb !y-hZݙ-Q0YۜفΰHU!+W4Jb9$%i5f KOUȤtJ7UUU:}πs.H.?ڒ-2GGTIsaL >nM# EB3z)$|TXnnt1_ ;β\;r70ŭF$$KS&;=վvn~;uIo{Q9 FG\ ѽ( ]|?+ObTSa0OzQ˾i&֐tr0Ca}aBՋY1ho8Uz`PMɣ@x1zVLT\]?i'leW2i4)FYM=.w$Pf<'+$ib$J1PVia6?R> +stream +xk +endstream +endobj +170 0 obj +9 +endobj +171 0 obj +<< + /Type /Font + /Subtype /Type0 + /BaseFont /EAAAAA+mwb_cmsy10 + /Encoding /Identity-H + /ToUnicode 172 0 R + /DescendantFonts [173 0 R] +>> +endobj +173 0 obj +<< /Type /Font +/BaseFont /EAAAAA+mwb_cmsy10 +/CIDToGIDMap /Identity +/Subtype /CIDFontType2 +/CIDSystemInfo << /Registry (Adobe) /Ordering (UCS) /Supplement 0 >> +/FontDescriptor 166 0 R +/DW 0 +/W [ 0 [750 776 ] ] +>> +endobj +172 0 obj +<< /Length 174 0 R /Filter /FlateDecode >> +stream +x]Pj0+l CԒX}q z0h[lE^X gBpjV& +:G:g} +endstream +endobj +174 0 obj +234 +endobj +175 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 176 0 R + /CIDSet 177 0 R +>> +endobj +176 0 obj +<< + /Length1 7768 + /Length 178 0 R + /Filter /FlateDecode +>> +stream +xY tS畾mZmKŒlk"»`cW`{ .$M9L2IJNɴN@ӴiRtLڴsI{5kedzik˞]֎5#j:m~wmѭ/WpcEQZ_>J)?qԮ4' {g0.XFil>85E4>u xfNѸ R!<Xgs8oÛpbp <!q+  PU l|?;x9'g5|ļ'$32n& x)to;ߠ\oó $)sxp9Qiie"9lkF>]դUJ\& x/5ZO p4ly/4vm.%,acS>ŘB7bhxYg::8ctƸFǠupDg~π-gm֖ј<n%7. v9b)r\w{>{\;}ếHSZ}$+Bhc67h ߸xA7b!#u2bA$wB}k"==1@[a,8b <~xAZ0G Z`Xxs>n5jIy>./AMYa=K8䓲y93*zFu/9ajl8@*jkiF$/GteԆS !|X :f_O 3EeK_T_d38͋eɾhmZMkkb<<T + n;Ip9(2du +M4֠VpKCRA.!?vp,!R#*h=X`/i`G8+-S\nZ,N/(O1oge@ic3\,c\@߬±{ms&3g&SUO:1\Y\)LgCrE T)M.qkZXZ%ùeZe!I L*2S1Uv;StS-&,JK;{S}\Y5ZS.,k=76+oYjYwNT{ٷs əU +=fj)jw) Btא# +]d Bl&f3[ʚM䵡镳R`TV`{nxBPLܴH.[ @`#}CDpyD`)Cb|yfchhn`lw˜2r6y@vk:33g[N_|њb\X1<"kչS܍+3V_Ir]i˝ 'W䗖{F{oy׎?`ɉ-k(֯b<6PVwR-G.CTʌ}l=JdTؗ0:)`OjEuKnGDMK +iө{[➖޹{#FS*QE9~o\1Fh3|ǥh|Fb#a|/,p2҉dLc4 +dǜh7%s`Xvյ>~ɛ]CU$Țq5_SNyI5<.Xz4HK<-, :tG>L$_*C^ړwB[-UE _&tXdkXPjn\z+[#NR2e0/I ցMƸۇ>(IVvl^SA_sxke'xݍQI9]L_[xVM$_j[*w˕<.3t yJM 3^EP +Z m4}BP@HgʈG?}ʻKl$v0x:kwiMG~6e$u$5M/7jZ]uu ~ ~ž,&MpD4y9v9oN-Y@ !AZт-ZaksS/o<7,~/MIeT2!x<ww͜|pLcٱ7x/Rְ9ry ,G d*NHtP|38U<ޑ.WE4U3!tT"E ٘}=b:þ2P$*" ~ sd\݂$ƫ "mqz!g$AzX",SRڄ)_,XDa650):2E/ٷ)t+~W%rG]UB#RёdYLKW#?%v3uIKJPJ!A8HJDÛG:"~D{K' -7q!H@ <28ީ!:qoN. +ZP0*4(jFDNAUtge + \`TR$tB#%kbB<(V]u XEUjQ~Yؐ94 +G;>.d,ߠ2 95a + jƒ j"p33tΑ@ꀕ7d`%mL@iۻfs*w׍y_ x=ӑ*g2_lH& x,RpI(\rJdDlh}~ +§Ide(&%&5$2[[zO?~y6/^n8߲}y^||5VTu|laF+>ѡV d˦$Bq8??OsҦj"[9dȕuK `_(([W2xܬ1 gMwUUyA7nfJ&DO%4,ѹ1ne|h3*ŬW.J$qR@\b-$dA S2`p莎+mxaWǂu2gVNW(seXO32D"%rnU@nv#ʊmnݲUfʷn T)@N&G4bh\ZTbZt,M͵DbdaKp3/0? DCExMgjŸz,Hv͕"` +#3) (4 &'P~Mo4^Q"%5H)ӑn\/`]kg7Xn21)⋗{ +*I#Xfb#v(Ղ GQM T3,q7f019!㩞~XNÄz@O(jյYDַ'9);2AH7A`q8Tw~ʒQX< $fLz;+D9G4z$~<ҷ>*Q*FQ[9U #KJ/ؖQ<`3!<% kǭtYIbƈa5A,;vpY?nǮw=_QXPQΉC#)ơ^7~ܾ]î +>:Zܽ*zH|i&EIC4 +Fg@NBM%umh^$ۊ*C_=x;.? Pv|'030n=Y]AᤪGV=)<2 $mQ$y7 Eyi'+K"dS:*:SYU\d5*–ɌӐkĚi^N*¥bJp2 O]*X(}"tM:xs֖{wD6kR JY77ldK5зpJZ'`Fa@kI;XUB;U,djVZb*bjr[9|w{W1f^_lpjԱp}jM}PAs O`^Gc/A IkIV|O{{n?Q2;l_d#.CRTpSMMX3Eے}Ǔ}r`> +stream +xk`px| q +endstream +endobj +179 0 obj +20 +endobj +180 0 obj +<< + /Type /Font + /Subtype /Type0 + /BaseFont /EAAAAB+mwa_cmr10 + /Encoding /Identity-H + /ToUnicode 181 0 R + /DescendantFonts [182 0 R] +>> +endobj +182 0 obj +<< /Type /Font +/BaseFont /EAAAAB+mwa_cmr10 +/CIDToGIDMap /Identity +/Subtype /CIDFontType2 +/CIDSystemInfo << /Registry (Adobe) /Ordering (UCS) /Supplement 0 >> +/FontDescriptor 175 0 R +/DW 0 +/W [ 0 [365 500 500 500 500 500 500 916 500 500 555 276 388 555 555 443 276 833 500 750 276 651 391 526 443 526 750 443 333 500 500 680 555 394 ] ] +>> +endobj +181 0 obj +<< /Length 183 0 R /Filter /FlateDecode >> +stream +x]n0E +/E )TĢ5{H ,_Hy ɥzL;J#kZ nوV]un|4=`'-K>0mu_,oNk͍m.u:YCGFgryUvĒgWioԎλ->gK, ,A+9in9qy{V7[ռHx<A(h*@(r :*b#Ij15: Й9GK̡S@gtP& e9jYJO$P P@N7E}bBcҿ{dYxc8-#:ojrΏZ0ct_v +/f +endstream +endobj +183 0 obj +384 +endobj +165 0 obj +<< /Type /Pages +/Count 1 +/Kids [163 0 R ] >> +endobj +184 0 obj +<< + /Type /Catalog + /Pages 165 0 R + /Lang (x-unknown) +>> +endobj +164 0 obj +<< + /Font << /F270 171 0 R /F268 180 0 R >> + /ProcSet [/PDF /ImageB /ImageC /Text] + /ExtGState << + /GS1 2 0 R + /GS2 3 0 R + /GS3 4 0 R + /GS4 5 0 R + /GS5 6 0 R + /GS6 7 0 R + /GS7 8 0 R + /GS8 9 0 R + /GS9 10 0 R + /GS10 11 0 R + /GS11 12 0 R + /GS12 13 0 R + /GS13 14 0 R + /GS14 15 0 R + /GS15 16 0 R + /GS16 17 0 R + /GS17 18 0 R + /GS18 19 0 R + /GS19 20 0 R + /GS20 21 0 R + /GS21 22 0 R + /GS22 23 0 R + /GS23 24 0 R + /GS24 25 0 R + /GS25 26 0 R + /GS26 27 0 R + /GS27 28 0 R + /GS28 29 0 R + /GS29 30 0 R + /GS30 31 0 R + /GS31 32 0 R + /GS32 33 0 R + /GS33 34 0 R + /GS34 35 0 R + /GS35 36 0 R + /GS36 37 0 R + /GS37 38 0 R + /GS38 39 0 R + /GS39 40 0 R + /GS40 41 0 R + /GS41 42 0 R + /GS42 43 0 R + /GS43 44 0 R + /GS44 45 0 R + /GS45 46 0 R + /GS46 47 0 R + /GS47 48 0 R + /GS48 49 0 R + /GS49 50 0 R + /GS50 51 0 R + /GS51 52 0 R + /GS52 53 0 R + /GS53 54 0 R + /GS54 55 0 R + /GS55 56 0 R + /GS56 57 0 R + /GS57 58 0 R + /GS58 59 0 R + /GS59 60 0 R + /GS60 61 0 R + /GS61 62 0 R + /GS62 63 0 R + /GS63 64 0 R + /GS64 65 0 R + /GS65 66 0 R + /GS66 67 0 R + /GS67 68 0 R + /GS68 69 0 R + /GS69 70 0 R + /GS70 71 0 R + /GS71 72 0 R + /GS72 73 0 R + /GS73 74 0 R + /GS74 75 0 R + /GS75 76 0 R + /GS76 77 0 R + /GS77 78 0 R + /GS78 79 0 R + /GS79 80 0 R + /GS80 81 0 R + /GS81 82 0 R + /GS82 83 0 R + /GS83 84 0 R + /GS84 85 0 R + /GS85 86 0 R + /GS86 87 0 R + /GS87 88 0 R + /GS88 89 0 R + /GS89 90 0 R + /GS90 91 0 R + /GS91 92 0 R + /GS92 93 0 R + /GS93 94 0 R + /GS94 95 0 R + /GS95 96 0 R + /GS96 97 0 R + /GS97 98 0 R + /GS98 99 0 R + /GS99 100 0 R + /GS100 101 0 R + /GS101 102 0 R + /GS102 103 0 R + /GS103 104 0 R + /GS104 105 0 R + /GS105 106 0 R + /GS106 107 0 R + /GS107 108 0 R + /GS108 109 0 R + /GS109 110 0 R + /GS110 111 0 R + /GS111 112 0 R + /GS112 113 0 R + /GS113 114 0 R + /GS114 115 0 R + /GS115 116 0 R + /GS116 117 0 R + /GS117 118 0 R + /GS118 119 0 R + /GS119 120 0 R + /GS120 121 0 R + /GS121 122 0 R + /GS122 123 0 R + /GS123 124 0 R + /GS124 125 0 R + /GS125 126 0 R + /GS126 127 0 R + /GS127 128 0 R + /GS128 129 0 R + /GS129 130 0 R + /GS130 131 0 R + /GS131 132 0 R + /GS132 133 0 R + /GS133 134 0 R + /GS134 135 0 R + /GS135 136 0 R + /GS136 137 0 R + /GS137 138 0 R + /GS138 139 0 R + /GS139 140 0 R + /GS140 141 0 R + /GS141 142 0 R + /GS142 143 0 R + /GS143 144 0 R + /GS144 145 0 R + /GS145 146 0 R + /GS146 147 0 R + /GS147 148 0 R + /GS148 149 0 R + /GS149 150 0 R + /GS150 151 0 R + /GS151 152 0 R + /GS152 153 0 R + /GS153 154 0 R + /GS154 155 0 R + /GS155 156 0 R + /GS156 157 0 R + /GS157 158 0 R + /GS158 159 0 R +>> +>> +endobj +xref +0 185 +0000000000 65535 f +0000000015 00000 n +0000000145 00000 n +0000000197 00000 n +0000000249 00000 n +0000000301 00000 n +0000000353 00000 n +0000000405 00000 n +0000000457 00000 n +0000000509 00000 n +0000000561 00000 n +0000000614 00000 n +0000000667 00000 n +0000000720 00000 n +0000000773 00000 n +0000000826 00000 n +0000000879 00000 n +0000000932 00000 n +0000000985 00000 n +0000001038 00000 n +0000001091 00000 n +0000001144 00000 n +0000001197 00000 n +0000001250 00000 n +0000001303 00000 n +0000001356 00000 n +0000001409 00000 n +0000001462 00000 n +0000001515 00000 n +0000001569 00000 n +0000001623 00000 n +0000001676 00000 n +0000001729 00000 n +0000001782 00000 n +0000001835 00000 n +0000001888 00000 n +0000001941 00000 n +0000001994 00000 n +0000002047 00000 n +0000002100 00000 n +0000002153 00000 n +0000002206 00000 n +0000002259 00000 n +0000002312 00000 n +0000002365 00000 n +0000002418 00000 n +0000002471 00000 n +0000002524 00000 n +0000002577 00000 n +0000002630 00000 n +0000002683 00000 n +0000002736 00000 n +0000002789 00000 n +0000002842 00000 n +0000002895 00000 n +0000002948 00000 n +0000003001 00000 n +0000003054 00000 n +0000003107 00000 n +0000003160 00000 n +0000003213 00000 n +0000003266 00000 n +0000003319 00000 n +0000003372 00000 n +0000003425 00000 n +0000003478 00000 n +0000003531 00000 n +0000003584 00000 n +0000003637 00000 n +0000003690 00000 n +0000003743 00000 n +0000003796 00000 n +0000003849 00000 n +0000003902 00000 n +0000003955 00000 n +0000004008 00000 n +0000004061 00000 n +0000004114 00000 n +0000004167 00000 n +0000004220 00000 n +0000004273 00000 n +0000004326 00000 n +0000004379 00000 n +0000004432 00000 n +0000004485 00000 n +0000004538 00000 n +0000004591 00000 n +0000004644 00000 n +0000004697 00000 n +0000004750 00000 n +0000004803 00000 n +0000004856 00000 n +0000004909 00000 n +0000004962 00000 n +0000005015 00000 n +0000005068 00000 n +0000005121 00000 n +0000005174 00000 n +0000005227 00000 n +0000005280 00000 n +0000005333 00000 n +0000005387 00000 n +0000005441 00000 n +0000005495 00000 n +0000005549 00000 n +0000005603 00000 n +0000005657 00000 n +0000005711 00000 n +0000005765 00000 n +0000005819 00000 n +0000005873 00000 n +0000005927 00000 n +0000005981 00000 n +0000006035 00000 n +0000006089 00000 n +0000006143 00000 n +0000006197 00000 n +0000006251 00000 n +0000006306 00000 n +0000006361 00000 n +0000006416 00000 n +0000006471 00000 n +0000006526 00000 n +0000006581 00000 n +0000006635 00000 n +0000006689 00000 n +0000006743 00000 n +0000006797 00000 n +0000006851 00000 n +0000006905 00000 n +0000006959 00000 n +0000007013 00000 n +0000007067 00000 n +0000007121 00000 n +0000007175 00000 n +0000007229 00000 n +0000007283 00000 n +0000007337 00000 n +0000007391 00000 n +0000007445 00000 n +0000007499 00000 n +0000007553 00000 n +0000007607 00000 n +0000007661 00000 n +0000007715 00000 n +0000007769 00000 n +0000007823 00000 n +0000007877 00000 n +0000007931 00000 n +0000007985 00000 n +0000008039 00000 n +0000008093 00000 n +0000008147 00000 n +0000008202 00000 n +0000008257 00000 n +0000008312 00000 n +0000008367 00000 n +0000008422 00000 n +0000008477 00000 n +0000008532 00000 n +0000008587 00000 n +0000125985 00000 n +0000126009 00000 n +0000126036 00000 n +0000135960 00000 n +0000135821 00000 n +0000126234 00000 n +0000126486 00000 n +0000127898 00000 n +0000127876 00000 n +0000127985 00000 n +0000128004 00000 n +0000128395 00000 n +0000128164 00000 n +0000128707 00000 n +0000128728 00000 n +0000128983 00000 n +0000134703 00000 n +0000134681 00000 n +0000134801 00000 n +0000134821 00000 n +0000135338 00000 n +0000134980 00000 n +0000135800 00000 n +0000135883 00000 n +trailer +<< + /Root 184 0 R + /Info 1 0 R + /ID [<9A649991CB3C6CD6995FD577D8B3E6AF> <9A649991CB3C6CD6995FD577D8B3E6AF>] + /Size 185 +>> +startxref +138556 +%%EOF diff --git a/figs/rotating_nass_plant_comp_stiffness_md.png b/figs/rotating_nass_plant_comp_stiffness_md.png new file mode 100644 index 0000000..ce46cd8 Binary files /dev/null and b/figs/rotating_nass_plant_comp_stiffness_md.png differ diff --git a/figs/rotating_nass_plant_comp_stiffness_pz.pdf b/figs/rotating_nass_plant_comp_stiffness_pz.pdf new file mode 100644 index 0000000..5bd9941 --- /dev/null +++ b/figs/rotating_nass_plant_comp_stiffness_pz.pdf @@ -0,0 +1,1887 @@ +%PDF-1.4 +% +1 0 obj +<< +/Producer (Apache FOP Version 2.4.0-SNAPSHOT: PDFDocumentGraphics2D) +/CreationDate (D:20240415233045+02'00') +>> +endobj +2 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +3 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +4 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +5 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +6 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +7 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +8 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +9 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +10 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +11 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +12 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +13 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +14 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +15 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +16 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +17 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +18 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +19 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +20 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +21 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +22 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +23 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +24 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +25 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +26 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +27 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +28 0 obj +<< +/Type /ExtGState +/CA 0.14901961 +>> +endobj +29 0 obj +<< +/Type /ExtGState +/CA 0.14901961 +>> +endobj +30 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +31 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +32 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +33 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +34 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +35 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +36 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +37 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +38 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +39 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +40 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +41 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +42 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +43 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +44 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +45 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +46 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +47 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +48 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +49 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +50 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +51 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +52 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +53 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +54 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +55 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +56 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +57 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +58 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +59 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +60 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +61 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +62 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +63 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +64 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +65 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +66 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +67 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +68 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +69 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +70 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +71 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +72 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +73 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +74 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +75 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +76 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +77 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +78 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +79 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +80 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +81 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +82 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +83 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +84 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +85 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +86 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +87 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +88 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +89 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +90 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +91 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +92 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +93 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +94 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +95 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +96 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +97 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +98 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +99 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +100 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +101 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +102 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +103 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +104 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +105 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +106 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +107 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +108 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +109 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +110 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +111 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +112 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +113 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +114 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +115 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +116 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +117 0 obj +<< +/Type /ExtGState +/CA 0.14901961 +>> +endobj +118 0 obj +<< +/Type /ExtGState +/CA 0.14901961 +>> +endobj +119 0 obj +<< +/Type /ExtGState +/CA 0.14901961 +>> +endobj +120 0 obj +<< +/Type /ExtGState +/CA 0.14901961 +>> +endobj +121 0 obj +<< +/Type /ExtGState +/CA 0.14901961 +>> +endobj +122 0 obj +<< +/Type /ExtGState +/CA 0.14901961 +>> +endobj +123 0 obj +<< +/Type /ExtGState +/CA 0.5019608 +>> +endobj +124 0 obj +<< +/Type /ExtGState +/CA 0.5019608 +>> +endobj +125 0 obj +<< +/Type /ExtGState +/CA 0.5019608 +>> +endobj +126 0 obj +<< +/Type /ExtGState +/CA 0.5019608 +>> +endobj +127 0 obj +<< +/Type /ExtGState +/CA 0.5019608 +>> +endobj +128 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +129 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +130 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +131 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +132 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +133 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +134 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +135 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +136 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +137 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +138 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +139 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +140 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +141 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +142 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +143 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +144 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +145 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +146 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +147 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +148 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +149 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +150 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +151 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +152 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +153 0 obj +<< +/Type /ExtGState +/CA 0.14901961 +>> +endobj +154 0 obj +<< +/Type /ExtGState +/CA 0.14901961 +>> +endobj +155 0 obj +<< +/Type /ExtGState +/CA 0.14901961 +>> +endobj +156 0 obj +<< +/Type /ExtGState +/CA 0.14901961 +>> +endobj +157 0 obj +<< +/Type /ExtGState +/CA 0.14901961 +>> +endobj +158 0 obj +<< +/Type /ExtGState +/CA 0.14901961 +>> +endobj +159 0 obj +<< +/Type /ExtGState +/CA 0.14901961 +>> +endobj +160 0 obj +<< +/Type /ExtGState +/CA 0.14901961 +>> +endobj +161 0 obj +<< /Length 162 0 R /Filter /FlateDecode >> +stream +x̽$˒?O/pD@@ iJIuz}{DzdUwW~%L啙#!?Wʧ+__9ڏV?_?CQz +{"BP_7w__WW a?bHLo k2 4nkaћ}ý~BM>ylov8J%M7 o>jGa -ћ}keix6#94||pj[Go\0~S }Φw-\FLZ-okJ-G+gnkJ7Ԧeѻ;4V8eѻ/LLR끏eѻ;tѰk>z}3%#/G?z}s9{>z}@Xѻ}[GZrx|巷޵|߇>A-,޵|߇QFF]}X>hsEpާ'>z} 31k;;7L`FH`ĵv0kqJI>ASkoHPSDv+(TL Mb ;eIMc-=xe}ILE Gotc򠌁1M2}?iZzLA!ˆ:ʲ|~1Nkl7ꛆb}RRR_-R!>y)[Ѯ^j-RW/}y)FM/}yKme{^*zR Kv\[緸-c>z+W=?kxLϓҟ-d'o eNoe{~,qGo'\[RMOse+>22MrGo +OLwI\֐zLw\[opeO2=So-\_3 ϓ>zasɋU#&w'L^~?1+\~>`wO]u>a"tɋnUI&/AW ܕA0y}E(U&&1 6зvJ9oQFy ;&:aΦl$/ֽ;F/'қ[Gӷ̛O fy'ɉ;Ÿp/xG fm9g$O{'4ov4ojW4o^-;Fh-[F/h;h^J7wj o݋77Lϣʞy[ywn?44W3g--᧞٭}@mvhjv'4od-gnXWu4oL-n@WE4o4-n(-n3o-ԟݩ?iy[ywdyn-?wn?wDneO=y[FO=a[F-I~W4o^4oR-nFWQ4o:-n Ee4 RDc*Be"~vS-;&g-;FRg-ͳ;F"g-[FsvUpvEl3zGџg"署2L-=Iīj7zK>-[&8'vU#%vEm3zG&џ' :(yn?2<~ޑCcmBe44F'vU%~vEl3zGѫΙ7zK-?O9iٿѫ|yKGɫn3yK@ɫ`3yK9ɋR7yG2ɋD7yG+ɫ63yK$h:54o,4o-Ϲ b^|ڭs]l;!}vg{:;gٖK!vv+my*gٶ!ovk˙mf #~iFEnlwha{1OP4_EEڋ$F{^l lwhh]{1拦OP4_EEڋdY[6?@<^L Es sC(/Z6?A|фbg/F?@|xv3拖h>7M_˻oh>A|aEEڋP4_ݍ~c(/z^~Kni/F?@<;^l<䅢EE7'(/F?A|сbC Es7 拮h7{1LNѼL&I{y#疶P4_4PB܍~(/Z^~(qxhF?A|ѮbͳQ6ÏP4_4EE['(/^~nMh/F?@|~bCÝEVfSbY#'(ϭm7h>L~v7s(k7h>M~ܰv7s(-j/fl9h>7ys7}sK.S4^Px玳ퟧh:mSbߧ6Fy3 ;4W饤iK4oCGǏq'7?ӏF}o#>rNߛwy{?~ DW9A}P<~g7bO1';~e#;~xg;=?+UU[so ~eWo|mg˾lz?Z~x?Kzco, {o7K{xc47־ʋ_^| +x'/܍/حfd/`>88Rsp\n)DA!U#~X;:>e\J/ZW1SVs >0n^3!=+˧b'kdV׏+CFcjJ!9QS{tcDӍ/?bTFNCL2ڱo2z_a^^ Xv&H%HV|H(=^!Rg O+Vx}U aN3ZUfXf|dxly'S{q.49/$6b1r̶ +l2+AeǨ([%~yjO&1 k{qYN^j/鼬h!]氜SNe-U#򠺜وXJLFwx0_]/(u ˣដ"t=XaZ^]Zj, q1+Lfxqfk!_al)_NX :d +vK;^\`t`5aNuleRzs*0UwxZuX'LV6:ZFuuF5$.2ٰJ]0u# ?3]œ_]Wx}uعdzab9h20,מkv9U]lh_aV| G]0ipq6R&tb{*+?ՅU788{X}IP9 ewܐ{,ŭ֗P_+ca!OLX79 A#'V֊LZ+ALKƜ +=rLYJ o]!Kn0 ClWX{鴆Sa@,Ns (wͯʘ<<,,)/f2r[㴗F< dbab.s))B,G/0FpX C 4JP{a.ӞǪ-m iXV y 3aX\G|9Ά|yExÔu͆,e!eaX-x,g a%c +-, POc9^ơQ|kw227VZ +27FaX񏳷IJ.%xJul˰-stz{B =[3,VX k t*8/[!`N03ݰi0ier+axEtOu`[t# +;1k1ޱk0{e/wܰa(aÌ_c~>wêtoܯc I^3V^#װ^1O D'Ri +Ceѩ" bTEXvyiK7el-aS1 Y2cB*iO]w262vaah '=8> SAD +G"`q˞ޏB$@kF|Ž0쓎L@csZ+X=5`Ƭe .abN!jp +jl[M [40Ƨ=Ɵɰ'绰XեH!Ezk sO{x|ݠ}9UD +.4026\ALYa gew5LX |F8K^a! \KQ׮ֿ4IqãUp~]쇮A:wu]O k۶E4zo@D|Z 6u:ϩ0H-k O7hz>/쵆Ra ]sՉ!d + [̡2ʷl^Vó'u8˺;I>e:ڗ)c.ab:1M4r 1_gMѮ@XD /yGz#`''t\a]Kryv<3*6a'{K+1]V4%u-10gacwxi.pt_6 :j;]2'ZƲcU`xx=D:_;+s N Uj eC`#`j^M!> +׆azOäAֿoa4aݨ;˹3avq0t +zi f,ex(, 3׵I Ǽl2gl^ krld y]G; ;p ~-1lb6`iaoR*In_7;+80!%amS k\4':΃كD c^7v5S1]3c;a! =&aa ;z+.~sљ|`b,ʺ/X0&eSpiEX찵= MLg61LX1+2)W}z0J91 aao0P>ah +1C̵= +5*1DzX~:X 5]3"4C 7'DaG.?xqкaGtѴ0cq;5A4|*9=-5_M7k"׃X,@ ÞײGbq[ İH!&mSmK*0@<1L#V5e*w-a4MA {Q +/1=381.]ϴտhXb,{v#eEX1\$eѳOr26L%מT0 CPX4qe0OcPȒW Cl3W4{n}ƍb )a#FHmڃa`}1Xc!`0 x4"hBaLs@10bÜC-k0|K>+,a3e#|jL*a'Q24;i!Vs4Lw +1ͨ=2xt˱&ҡ$Q02 ýi&Ϙ$)$Ôe-L{f^ΰ,&vpiY\'4=lԻaN2+B6,w `"7Sa8uVÊgۜ#xi'Zv{GRfAs(j1Zbr,|_={vpyFE#VR43׆NҞJL!@\s`3LBT̳(bM4Ք<`mɣaeF=)Л&i`$iOʃ&ƼKH:&6 +fְһL(@!0+ˌō55t$d="0aGitb5XUh]G"=L0 +VYq"B{$'3W:t!ɘo ~yV]y"6ԡ9O&pʆ f`g^gf*Qt)&Qe!E!>Bwi^C m/ٰ@ +2|R"TZN|PzLlm(Z["jo&AP9mb*G2iV࿜'H2ͫL:bVÄ8#q<5\clt< uT6t}!! +xq.r#D$ ۾aE%FTq:9UKuf?);o3G ~xh&x7G†1l+3'Oa0>.(d&`&,=J$/nymr{$1C#IcEWs@X+ސpRj܅^s~&2O`}`$F$ ä ~0\,| V,y2Oz<&ĉ4_$L"H.t0ńwbO2 w7@#J=8&{bL%A7clHxJKRp\s!H#jPkB) )U<kl@噚*$ +f;ŨrIsBtƒ#uB4J,/ A]1uA$$c~P[fX$ }^1<IXؤ䊘jujQ +S:1FrVc!CՠcK@eҝXT8Hʂambu& eORr2N#U$Ȕn);rƅ `YB%HG]Y)s3@-ØP"- (V :CJhx@a+2`pLQbN'z1'Ձ +b7)w}*l l+TӉ(ؖ% h,+B,ݑqdL VKfAe;)F_B>CҸ &[$#bO<*{5rs +4'6FH#NUl_ٿ/M/mpKEuc2NTǘ&8u!2dn,E*L똦f[V$bI):943Tp3l$Xtp=;2> dhXU<4rnb?2yH~>r $/_B|^gbaQ^:yy hU7=&X&$U6,_%I;m#c:H2"_Oۣh"ؼl:Lr H&s}})[8]Kue=Erf=%TxPx{YJ #Kw9އ.`ۙd=[d>{,m7x>ص qE,2`LSB0|~=#ƍ(qSW2\R +SC0"{8qbɇ$AY+'^ꆛ'.]\Ih1JhZ8d + } >x$!n 5`G>0?L?"Tᶎ'puɜDaILD1=k%? =-?p pG%ºS'IkHnbK3g~ ZJ+apah[S6*R +$. EZ:Hs[ef(@({4mCfMpׄ_5%`;F]a c]N3ǰB6yw2iR-h;=TS0j*1S&mdX&u b$@0Bt&yI ]ԡ2+`Q'RUVV]1V#%R!򉺠B +>^X FU<150[bZe)PXEX gɕ{uRjxYH܏M^xߓ}OȎaEAa! b& +,fl˭Db]*)>6J&o< oaqwN5r ˣ+3䭳Z1a՚#kpXJ UL?#3B&X5$azoh|t6ޗd1dBkǠDZbܜC#Ia%dd(Q%h[;; A8(f-ų$Z*!9q-A%T]<&JR ȅ L",Yu,: &->$,ArXG]#P!B6#q1+V%TEPNC.ƤOD cTHL^`ͺ^f)')z- &F`[!qBA6=RVv &k(z641S4?%K;L(N҈!;4]C*Wd+" G"t1cV,HЊVIZmZrγx,:RXɍ2%Q4㈹IdpͨKTgQ+?2niӕ\=cy+M+Mb' +?Ibyʞ ebx?ݫ#56llS{t +]iQgf{r~}hT´XVoek#K|%:בL]:35Mž1ᝐQe˘X94#0C"èCEUz14Ef)=$fMCS>vrbai$k&ZN oqi-'Ġh916:i&mEK$6時K KӺsy"׵n"Ű%ZNZ@Eˉ!}<wp Dˉ9MX'j9!nL*iS-'VxĖjyza9rbQi[YEwuzz>uUjy쾄j91?dˋ$]&[^䠔<4)[N(0rOVl9 ! Zz-'Ɣ[2MXc;-',Qwdˋl-'5-rbƺ)[ŏzUzeˉu֥?dˉ&d U&8:e -c-/( +ڏ^X<6"SpS-/BbǮZNaKXeکDj9Bʪ^cO&Uˉ1fLMursDJMhi%07rbN]EˉYKсD -.ZN,H-'F>aMhyiTh9n|ǮY^7|^q,/.Bcb9!٠`9! Ot6EtĖ`916Y63]oxzoTM+B(1n,'N^&X^!CW:"I\U:}*jxrBs Y0݄+'BhqJ/WNijȼ^91idMhz0g&XNYS cPi`91M+Qxrbp*+X~,'Hid91wj% %-rfslJ/rbXXNHNJjSP|ѠXNwbBd9sRwֶ+#Q*j^n$d+ClҧR,'&&Ͱ)c}}R^Bd91LPKڼ&YNL +4$ˉ )u$ˉլĎSkLg,'v5MEfIyE0$ 5 ZČE [ĸ}w +UsK" [Ă +)$ <X^)$YN}=$ˉYLIGZicB6j^P2]( |SædyÊs%ˉ5ʶ,'VQwdy?Ű)YNewEĀ$3uɗf9X?|`N'f9!nu!D*&)Sp+'Zi/rb5־gXC+'F2lʉq/j6rbL˕*c9%WN,1geNY+/UTէW+'4rTǮVN+`yrb֕ʉÂMXiԢz/WN,R; i+G%J-rBeVN glj0x62 [j(g}$7rbl4Z95˱ "31\)֝Z91vQʉU:I-rBUy*'-X1q0UNVҹk V}V92F GSUNGSkc_mÖVyVS|i{k 9"yHzZGnSU^5TkczcMXc_Ѡ^. 7rb̳UN(iy*']^ӫk똓Sk[Up]X3ܴ aX*'EsV912y+w1hkS׋ϗR91UTSH@2|TNYoS*'F⬩ +yrB&BD 1᡾TD=*'aXR91w*'PV/TN&*'aK*/DB81p'TNgv^ZѰTNJ^NnUJĄ[*'ĵe +;r68*''c #:ǮTNLFUPbʻ*'Tyatgx'ʉ FIjz5 ZR*–l7rbI0)?UN,%SNrBq*/?kߦUN[JM0UN 78ΦUNb2KkwGIlʉ0h).ha:rb]oOREjB"6 E K3$UN K($W^,prXMsA\92qb7rBj5rj儢y*/rbL[PǰVQma&ӰVNLeK_j‹-^XIz)~zE, [Dsr+'ۙz3YcjOr"lrs84!ɕ˨`9F'9|Jz)XN}c'rbm.]|) j cϿ`^7ˉvr .г/T.,F&TΡNb6r Isܕ9mJ6{rBLm* II:P91aK\~ +!$UNq7mR弽;T91T*JX+]\MZ :N7"bUetP9_y^]\C*߀]78{r 4S&TN29ƛR91n[TNL {rNՔSr|)@}/"=Is1T%O9%U.5,&U.-/UNKFQKr|I>T91*LVn^X"~ΓSe|G^^\,ߤʥj0gx*g!R*'PklR(%cM&UNdؒ*Jvm6r)Y`N޵ijʦ;r)N?_ʄ^H*v*g -FP9 1՞vJR̛+cMrB$5X ¦Tzd +Ďc +/r)c+لʉ$)pʳMvrw:咽PyEgvH݄ʳHY1&T.w.rA0g;rQ"ȩFʉeV [J@jzR9D3{rk*ܪuބʩ MJS\SaIOPv0<锋X:墱D08tE'~N91I2ݦS.r?M-rbs9rbFӧr +PM SHR{$T.Ex_Bt4o*}$ɰ։-r*unM/'TZM qzrESgzV S P94*vdP94ߖ*'7PuVʩ{rM\P9%عxPQon>S\p:yr* V4lɔS}6dʩ*^:ҸUG)JRLy˔5)g.PPJF3IMLȩR4)SN=C)7dE6m˔S_fUJ9ŃyoI[xrov-!I-rQ~É-rєvzrf|?EUcBK2ls@jK;,Rt)"#Z|n"ޢzMmj_ŮRUuS)^%.J!GVeÖJ1v ^ k3R`"HxUG*岨USJșdJNe2wR5Q6R.ßb=T3}M5J9QD{ +/r%6`T ֋8wZủ!5k8ӏ#>vri^}7rMæH9-imkӁzo*izÖF9 V;H9 N<:zDEj?bÖH9J椃ɱzr.XU汋(pybK<\A*E@\L-k)牝̋wګ6"RޥxwrV7VDʻc=." Va*9S߫iA|7r*R VM@PNwR>5YƦR>eZv!c{rlr\6rWRMgc8= `^|(ZRt9-ѼM|lν#{UʥW =.*G+}J9SJJǮR~ԶWHm‚Fdr{zFdkR1(5ʙueٔ6r=lNmS:m/>uOrMF"F|F={\4ʏu?4Y)5x5ʙC/(M`_4ʙ=w7rBcRN\jMy_›H91j iQ.iW:r9/ +% [rP&YfOrɒST:gyrb`_XJ\C+ [X+grNz)?vr90»aKX$;xrXu.xrZ~D~<:~S(;ٚZzrq;z+@9H'gwMүʰOC鱦9Mv/&yьVd^ .QΓuF[$or!&$5mwz@<ƗD(zjF,$ʹ +)Q.ZDF9W>OF$싆-riiF9W{RHEkK +=tÖFy\:aK\. vjKc.Q.i< -rJ)3R}aR%C~ +*=XwaT(g8im +Y Z5oN.6r٩$MXUASN<[϶)%GmYzY%ʳt:](gD.QEan s+Ksgw} F$e˗*M%Q.l%ʙavzr&Z*BÖH9wAԋ3|6?~#U5;A$)27[0G c=1)SL%0٢(vءl] lb**4$HX3j[r@\)հh%Xælih.,j)|cӉէZY9T'6I^T$DNi駹f]RʼnYf<$B% 'Qzh̠߮<vea뻕 iU`VfXM! ̭[a,׭neYػVneI +V2ؔ&g[aA5+3(oVPW Z fee#m [\2xfCլ0nf#լ̰hŭ[bw+3XW[aY)jm\2Vfimn;Yat0l6+3Hfe.[2RU6֬L1JnecoVf>feC] [aF_)Do׬̰)5+3lsZ5̠߫ [2p[ a؏tBned`߮Lrd 纕u%|2r͖E B|#Ɲ +&u+S,h;N߭L1Q)ne_f2f[ޭ02a]bhv ZM\2߬A]aCV2lHfecm3bcoVXQcoVfjVXXV2V{2Œ^e +Qͳ<*il:zhy@,&*S4<^e1l5+3 &6)TgYbL[if̰߬ * [b9ʾ[bKdV͎d[biyVfXa[``u+Sla[b,e}VUu¾YBz ŭWbs٫LAz)&xUX,oU\%\2 lcz)A*S O}2Ŭ*SeG:|2<Vu*SHC=Fe +E6FeiQ`Q`Fe 3)lu*S utVOKa;)siev#[39֩L);)f*Sb|҉Ne!8u*S({KzSisVFlu+Slz黕)a}2 ׭ne~{jjWXT[2l+lh +D]BZvnjWl+SLds#I9<+S̴H{2ŔkW&l):~eI [ K7,S,MְL1 ua`MƢa+2SͼְL2S[2ְL8{o "fabKFiXX-Sӷ,SLeٰղLSٷ,s;,SLjYXz4u,S#e@_:}22ӹcbڂذձLRu,S,͸wX&kQj߱L1lXj|X:)MM?߲LIeTr}2Ū޲L1Ϸ,S,,9߲L0VggbD̾dgb=ˈa,S۩:{e(yYXԲ޳L!EYU,Sl{ 6kD{2Z_=\2a5-S,`C2& ,F{]*Zr5-J},ib6[Mъڶe޺kZOle!i6;[M]%w-S OeE)U[2z:߹L0sb{2DB% }2Ÿ։eĚY5׹LE :)Lt-G}ur}#E[XS7.zk]؊eDy<. h.*yb1Xhk^&v=l5/S Peevl5/S,)w N~߽L1r¼nu/ lM\2Xw/,a{bFˈU[.e ۽ew^&XgQC]V2Œ ֺe +QoF/߼L:e3Z篳wBym*sm#?Nl.l=eݺel/[2[2bP2&R!Ƭ;w`j5l.UOqy@7YV߼L0{we4)Peọzu/ /nZ$^6g^&KU׽X>ʘM|2Y2A48 Y Kݷ/9\2Zw}$ eI]c^&*gV2fڝ 㻗Kke{`CU [A6peN`}`ԙ^}@PD}2xvXG4׾L0ig۳پLpGeĢa}`{lkg׾L ,`4h/ xV2Ⱦ:k_&XZp}@{2b숶ڗ F6lP ߚ Ӧ~ 6U'{27/Α ['J)غ Oq˨F=5eia^&X $w/lJ{2\k׽L X{`/{q@O#߾L0zC"׾L4ۗ %|2Tw/J۷eajXfսLy vvn-׽Lܖ^y^&X0M־IMp[ZôԠo_&X@s˅Ymg2bӓ޾X5"a}`$ {}`v"}`t8۞e:W߽L `qv sˤIۺ F갭${`ExSju/fGK߽L@lz%)&D\{`ύ/u/ IJ[2Tk^ FJ- {1ֽL0v/H:|2c^&}/(eb߽Lήg{`l;lC ߽L4DàսL e^&dut18սLpF{p3<eUd͸\2װսL:R[2BJ[2Ly@%SᛗcXӳ{ l)軗 ˘m|2ȥbe9IeUX5/f-Jy`u$g2\NK4ˈ-޺L= [#U&o]&X8k]FO!Z DaetIˤM;f^ߺL hȳ]&=xl-{ = .߻X:vV2g[2Rk^&=}NּL0,.H#fکea@Uzѕd3{2L&Z İKuv2z޻L f`scw3`b~'Jh3 3b3"/3r]`Ƒ )[\ vϕl_1y}1Epѯ 9_ќw#Tљ$V3J`FW]`6-R/J6,o=l7k2Ȣ/k4r/_@}v&0)8A L`6+B}!j3EoR2IUt Qț lO)f"XfEʚ -Qf`k3 +JT3W`mf@sbp/ +3N`C +3j1r5'uH6ަ0#f0A)[O 8DŹ叕 l|]M`F<=&0GdC].0L7SnV!Jv}.0[дJ`FC<]`IWf`V VRnV3+J`W)lQQ-V32}/&0;+y + 6Iضj` +-`sN)pqIf +3~:̈*Uo3~Fos2몚0㥍|!V3J|btoT a +!+ܘÌ\9졋Iw*>9Ȟ/+f|?os+Y{!26*Af|W6Ì xWÌ_sM3"aƫE{>+9xeaO0#ˌ;n3-'fdosBʱS4fqs+(+{Ә]Wԛ,9lPYrYxvnC,f)],fd5mYD,-f8[\Py3_!Jq_'K⣛njou&Xy87vȨf3NLbұq"iu,VkA4gr۝c!F<cuj=fϋ`{4p ;1"ˏnj˓yFt+\),y̰frGcD֝GӘ[N0h5\#1qz1+c&1n:Ƈ.1Îgnawސ~gIp0Cٻ~K̰3,G,kAU&4.1Ö6i6i]b 7 { X+]d0ŽGd6w=)+̸SSae[f`8FSq0Ú}l8#39sa]g6NrE3-V%f\_[ n1 4[eGq{Z3HFp-xol3>I2H/3,%+YD̟Y̰!Y̐f.gl> l&1[w0-lAƲ2O쓘( ,MbVQ'1[#2|Mbʉf+=Mu/3̺)R}9V# -sǮ;lyEiw!1t>x}3L0۶aZm~0qn +3+)6g) f}l f; e f;R;baq,Z8>8D 7 v.#0yj/NH$sMUK&0ð+&0۱E}\`RlFwP/WBEblg=Nَ +4ʸyy) +6eb*vԧ_ـP)Hc0v # +3n#W~]aGҵ +36K<(an_m +> s<ٮ0[0Z+ a^sa8cƷ;̸2ߢ;n陚l]؟wh%z3J +3HX+J ޳_2dIMC hG`su. ̰boUlM` ] i>ي; +f լ?2mkvيsqM_5/pw}&0 M3{1~$e ^vf+7wʆ'&0Ԏel=WJqq+^p 6b[eX3VːpQ˸ߐiҗͩ5*җahk22066e`s0+?0]e@M2..},b%/cc-V2-e)r[cجe9¾%V2@5yZJG B K1`m ,yL^Voq [.8 L_m򽙾 l>'wޮ/G~e/sԐ MeXI~f6}nTiei֨ iÜ)1Uv 5\C:3υL_ h-f`xS[̀[☬Y؋,%fBEPj3 $I!T3cS$f@;j:#[,%f@(mej$f`sCOLbvLD$f`wg[d)(b-%4R״Nm3eaFb6+2ot _r՛ hDd| 9s~,f`sn1+Sb6O4MFD]'Z~-f`λoݖf1π ,*dg2/7 lAq›lNЃoט]O7 T-f@Xd*[/>ia.Ә!bY%2ټ[%9KӘK A#̚l0>S ѪEk3:qy ,NTlLȃGcf'0Mc"ޛ lGj30l1a)3 D-2Q l.fsF8Bqw(g0Ciua6y;}f39Mf`nMwa|d0/iV]bgY5ة:Q0 &}K}Ķps(rTmSR x7B&R_q_SS!IFMa6R:F7IJa֓KPŽ?30UIo l1!?IP`pʒ'i1Ђ H|i\?b%1oZ{h%f@8vR'd͛,)*+XLb7|'Lo$f`s]4 7+R_30Fp]byPI(=|i*+zW}n1C8JQl0M.b#"T lL`i8+`r&1pؼMb6vlPYPfNFV>G%n1ڷuŷ'T39;R3ˍ=Ue14kqP8RctlHT3{, '2㒲ϛ #ʥU{Tɜ3*I nLYy=O -v|PKTf`SJe[@2''ICTf`q dU3Xdin@+HTfccԜ @ầ} %zl| +sKІ-d7f2X| +f2o󘁡%c7k( 1[D{ړc6Sc3%6vq|'k hi<5fU{Lޮ1Qp_טa Z {=z4f`n=FyVT)|=fXXy}_Kf HYv`>?W30j=f`~yK\wW>{\y<=\1d:11\cfٟ1l" J,Ef`(_5x l Xci[Jdv!tͥ|Kf"3UR}xw l$+-At)V"30!o"3Vn 0M[!7]XLbKV"3044'3ۇaXrGU Ѯq/s%2ÕZ?_N 4!1?7dN[PdgLe6_ЧD f2pK&39Z_&30P?#V&9u" [\X7JN+v;,V&3͙lm:&2&2蚛6[]du'5!tLf` 0MirG|SmoW 5}"OTf 8dnWac]w3AGߴ;g dA.iƂ2Tf`s*3s~ dNˣ23&&3ԓaTҞ@Խ23*{ Ȇ0}x"gPΈZ02᳨9PǑ ,)YJfv P7}Jd23 l^R jh.F2C5>>зTf@8QqSFdP2{ro h3BTf`Weo5Ķe฻ lgXw_eDk'g23eD LQ24Jf6i ).3,2چփoww4e6lN LV2e.+l0+| hQq-Uf@8e*3ySn*3݈|JsV.3G]HsEnLSe~D_rm_DsaA2CoݣUf@HNo*3_a dMf`LAff2X l.3 #LflSD3Od%ɌxV#YɌ픹z mrA֖Xآte23h'ʌmK؆ܡTfl%e5{2C#wuX2Ee-v2[wdey *bK!3II|EXbJ.368'jw)A.ذ<)55a23 `)(T230Mt]fMf~lx(+e%3CM\fl,3 + =4ftƑ9e6'dfhSGjN\fI}239_v{g٣ȰKv6d wQrÌ3BELfSЍ敬df;s>},[tf+ nLA-:3.YMEn3a$n3cB601B&.35m]df`'0sNr;δ̌b-%%+T5b(n^\OJf +썏#e%3*63&bfCӱ{tfH7̩Kי?-3c>mlS8,ޮ3)73cc:z:l>3lΌ9'kv4rUY%rNIRZ3cT˕3pvuMg3Cc2:A|Y&4i9S>v43۩v3cZR59pmͳ*=>3̡Eg ٴf>3X"3)۷H4_g3fsSmf`8!zBBlfUغm634]1鮦f3cӁ$9f(l4Rљ͌QS +z UZ̻,X]]fg<'&3cVVǖ3S,u4Ɲr&3'ߐjy df6Uy "2eUMfL &3EH>&30U9be2cWLf$1tYܵ*֐24cP+s{w\f° ']bcLk;SoDPx<@b2z2;X(͙*3F9} \pNLdƛ&2xɇPỳ6 ,V>eƬC5*rg@zC\Oedŭ*5ʌ]׻UfHrv_i*30 k.3fJ.Ub\f̢D-xDcxs!47Rd4;n2c +|&HIV&3uL&2CR(Caq.2dƔ-[d=blgEfHE9`.2c*Ln&2C/s.2C+uj"30,[Jd -wl`be2c-GJcsDf̾,Md60YDfE^Md` ,{&3DϷ(Mf`+X]e3Τ_71x>xLȌQȬԑDfPbADf`rj"3D6#AuMdM.2&2nz4c@&2c\M-a~"30Y$V"3Dg߈ F\̘s̘-XfiKV"{hzb"3?Gldc@{a\[:β1#nj хY'seŌɾG-fds㢷[DH%Vofu&1OD5/: Č +FQ9sIf`FGuX9(dÌOѺd0S Qh6X9bWif濜.1 D ByX oP7_ye*5f +`+1-b="3NY0l[Lc6E$aV<{5l-f;EZߊYbxY8»]b-z!Gbٞ]b)83g1pŌ++Ȅ4@'1 .1+h3 5Sr`X5 +Jlc߬?ГwasQ5P,fozFaƭL G=>$r;&f8Z %d0PT6b׾Uwsa 9f0vn05/ +n3N(J f؂h+g063ה +3l%8f8!sK댝0J1RE)ahM٧0.Obfئ~飻 [0)̸vMCao$f5뷎{lK$f( @B$juكbsbČ$fvnASB- L-f$WtwWfu)OtJ{+iP2uO eXТ3 ++Yטl M4f`'.2+.%kS4f,, {<2ޙnj{XblvLeQkXzs4YiX)ˍ-YiP_CMcv3V/ca3##>Q טePYؽiv +;{Ҙ \cƂq,f3߱u\n1LKJ3ּ30C&Әžhq^JLcƊ~hY\cFz; KdÌu;oVA̼ؿ9e*fDsv.E42ů]cXiw"}fјAikp"|ƌ ϙ4fdҘ5ޮ1#ƌJ#li̢hΞ3\0c;N,flJNY436ǿbv}1cԚEbe3cS3l3ѯ$fl +kXI8$fCCs]b6iA3ıcGflo >#lÌ`IfľѮ`3vƦ+n[<]a&]g oWe;LOY*د9oOt!Œ-s&tF +iST0cM f@Wͤ- fhč9E|87 `S3?Y La6X;7O -flg9Yؕ>'%RrÌ=XdH3?[6 B;<0Sf30d_ÌcÌ) ;/{I̘5py YN!Ma bhF +3&v0W+, 0=_J`&.o +fb+*.0[TkfUfbs^fbWN\`&Va.0;$n31,w~3Is+ald ;̄Zp L,ӚLPMse?TszcL(ML[6b0 8]a&7 U>(r+خ02fbl0 6fbH&j3Sm.a&vN318Ģ3喏fֲL La&@oW%=r0<0Ôa z0vMLl>ҩLlϰoweovs鴱)̈)/.09(Ck3}&0+- Ė)Y ̂Yfb'0ZL cvJ`&>[2$޲n0;tKL(}.0*&0 vJk31cܬfbifbb%0 vDfb٫fb/eB\9,X\_&9oחeB˂!Qn/f/Pח/;JL+MeG ^&zf/:2˂Ul3Ģt22M2L,׷˂ݗrLlebȟ+{Y+ךL,'o-ln/ Sѝֳm*-o`K@PIJ+˂Kuח oHӗBDj/CD|8ӗhx\_ kjJ_&˂1'/#Re𦋛er,XO`[ľ] 81Sqy|vUue\C˂ņ5˂e7{Y%Zn/#]e0S=lV`CJ. oy*wYZh2`׺ow<,!wr!1>]ledhwt:3p˂ $qb. 6d]7w[>"vq;ue ˂B22.)L]0. 6jf@eDBw2S 4uY0b. JN~+'+uY0g`evvuA*V` +y,L],RJ]F6(J] gzL],ru&k2hb. }D2,eDH=,`,RԦ.#JV. t]],J] Mjru{,ؗ[20̴h(l`Fge0YBe.#K%"\ e[\v\ '>˂ 4˂-bFp~֬e0%ed_KSǦ. WedTs3¡ad [:Lbf. ?L>3pI!n. Vf. 6gam22sE˂vs,op..CVCێc+qbu e 2quEXea nMXFE4a[w .W^-5g%,#ze2/n + H6T|ed8κ+BrȎj2"qlȹt]Qn8]WnloG{i}_?U2-KRVF4?deDHkѴeedvY\TlY㸴+ledIc+#;ov[Y2"1kM2ɬle ;IElleDs,`f+#cKSVwVF*ϜNTkә,Jz 4}2",Fҕš/ued݉!ue`]++#B#+#̭Ȣ{+_|w1vt_مDyWF6/,oȠ];V2 IXrܷWF'>f+#k$WFVmWF!EHԿ2 -΄ed:^+a# Ц.,#v⛰r<买 ϖR3] 3]ق^ߥ, %Uf+#;k291w2e+VCVFrqɬledB'#-n+#c˞Q-18(m22YY)";Kded8sԶʈ22+=6oeedb.+#sr /.+#>fZ}2"GVFmOV2?]22owmqEMVFo5Yk%vqYȆ*.+#.ŖvtlוZc o2+UyUFm,,[9V22n珫luWȊK +*sa\edb*#[l-zhNdedȏf+#C+fKO1]YV]WFIʈX-וyцҕ}m/MWFpU9LWFT*ʀ.DLjued(?tedEܧ+0nP,dB|If22I422,+V4,lyK]\_#F)וte[20wh0!5N'Y^K*fa+#G Ǒte`n&+_œM3qB,}eDEqUWF[A WQWu;}OYʈ e22F ƒ|Dp󕑡ZedhcVwa؜$gz!FIE|sZRXF3n4ab;Y P.*c k(g#.,@2bvcY 2~!Y,e6w}XƋ*3Sn,1k7aj{;fVƲq|bߝe1cIVҲڃriيF3f%-w3FFa/V2~TEAs-ΝeZFYj.W)s@6'X?,e.JZF'֨&-2אgˤeqϔԺ,(ĄޝeslβjӕeD˃FeםeD+gY wG.-bI@VҲtviYgV22G %jb$SP`,6qWrHRaYFvb3f9,#CeEVRZ{,.-#/zJLZFD!=h%-#˪K8^vedޞ\ZyDoosḏoշ;0EZKˈÑA.-#[*4I:ˈ̫22t25b%- +BEӤed g[Kq[t۬e`#VedH"ۭed22T4k؅_Ik22dl22'Dk݀-#Ci25ٶ%f-#cn2Ӗ65Yi%yFnkbns32 ypփBZBs\̷},N(J\3&RiV2]JzJ+oo[qoY_g[5@a[*mK02V )2Tڲ(\?8R[K\[^Ϧ-Éߢk˴0Ѵe\yϋ=&+m֑pҿfҲLKhk2٬e`s&-"6:e\yjIX9˸f՞e`HegۥeX%cJ>2.#,YX˰Jޑ0Z'4iF1Ϻ , +}>2~ Y䌤gԥe\QajaYlv X=BOZ8hNG7iG7iVKhuiI˰båplK`@}}T7iVcz*IVlh9'-cu?8}Ҳ^?Ҳ%4iنBOZ g 6idzT;68qmX/lj2Anٝe͛؎dU֝e;;d"Y#)9RsHA:ʟe;R 2e;02W90rtקer3eHGits 9w +zHb.-c>N8AsiQ8|Hi2|c++{ʺ c.#}b;f%-k_MZ>.)&+igQӫ˝e͡SN[wD92ܸspG7g8$CHeχ>w\ZSC20UH˸zٞlSi2,zQJ-O _Y2.&-C3m)oaHf] lMZaκpCxdsiFNOmʤe`%}1 JZ};έf%-:m29Z*j242l!o:--{"<-v2$-y̋{ND#mI[mμe)tYtG~-5klWR;ӖXW=T-> #m楗ē-wP\ӖJҖq2_foזafWдe;eNH);~e,][37ԫ-#CYh8K:F*mOl2n~ۭed+`Ⲻ KˈΈ 3iـd%-#K29GN, duks/s2/÷)()DۏlKBhgo2^Hw)vgY 8ZF>?2ްkt艕 qI3]Zg/Ң z Y8Zǟf]q8+Y"#&xn-Hroזϥk8o +Aix"js]Ӗ[8EZi"FJKmxm"2J|,?*[i>/j2 [ պ-F Rvҵe|Y_XixrT\ӖFo[#[-˥-d &[G>>Yy9bҴ T"di.3=vLn.yؼSrsإ8zx|gqJ9YpD OXx$o vs'+pOqyn*؇ oYvk&Rf-|yXYxlg/|>&-I6qW l.H4gGΝe<*Bm^d5g 59R=V2 6)·e??20te7A隳,ae`O ;5qg}ug\ϬeSalMYC߮,662 (M_ ˸ ,\J.,L1+î[AOqټ1#e`Qc2햻af.إ塙@)e`Ĥ..@;Xm]⼻b2 +l0C|{\DyuE7s`ލ:]e`H!FS y1KutJjpl2 k2 dK2 <"g.ڐs>ce.CRrL\6_%m2DH&.H&.;t$2 cvqSjV{vq؂7H nFSXypI20EΥe`#MXyvD&yˀb8lF-[r6qـ_#ޚ]Jyˀey +%;XzˀvdVyF./d]۽ecKe`k>{r+SemgM\1iCllHyWuלּecp7?Cܘ-C|=e`Ϯb-\P[6[-s2-[aK% 3oR{l~A_]\6'HC&.\\\6Yc2wNܜ-ѿ{[6>ҽebץ^-`& lm)>m29pCd lWXyyPGr kҝk20`qלּe`*ֵe@i6m˩״e`8CQXib!yiˠnůLic'pvזa(׵egJ[6m Ϝ.ia]if208G[^J[F-K5ື _f [6#-۷h{ hN*Pk*Y`EMF_"f23TXY$rf-Z6a,kZ6švӖb#0 f@Y[][ 6J[8%z5m$s-m"][׺ g|e9umpi/i.K\iRB.͉3l؋&.[̗ȼeZ_мe`W8J[{EUM[oѰaG&4!L,웴 .-؛+iti2s/;KˀpCK N Ln.󡣀K#61.Ūl {97l-ëio!(d񨻷 ,o*(5FGWȾ> Iwo5m-zyC[8m2 $o CBז͡G4+m\oڲB} %oז Nv6^n. +K#20$2 lUe`x ps@^F\v@Ne7|NV2|v2 dO +\Ee`eu3 Nl\?2[obe..ϙ2͏Y)ۆ!T20be.LqE~~\6b,Yw,e؜s>ǡ/ڔe1p\Whьe@m2-M~e`<-捍}, lMFf C%3X6`BNʕe`ZC۔e` ^b,[P/wEd+{=tݔe`=s]Yv*25ce,e+c3Rc.VƲ * bB] TWXef͵ҪZ,ۯN29ZTՔe`ߣ̜es9b ުͼ9(,,LJ1xSV;04aEe`(G"39|(vg@Nͤ,s; lgm2=R1gV20 +tg2elT w]9NBY6.9گ&-CM4g +*ϝeCFowܨPwY,o􈕴 {T4iGZR¥e` βTYwk-Z6EZ-u7k`pߙf-m&v<2k*nֲ@73k]e`1lӖlʭe@;*5Ļ Un-ƙ;ZЖZv3"5Z3ʱ:> lNu٬e,F*)YBxKk2%Me,꒶] +E d|mf-CEZs M[X(29]8pkVn20۩HYX1ܹo20Ԟʹe,lZi2d 돶 .ӵe@船S$f2lQ$V2%z󹶌 ɟ;S[-Z\4 ,ZǷk'Zeo%1riGZ6UOJZAi[5Zsa~F2mQ%5 @rh#{K&mO4miPDM[|]M[*ەJ3m^)Ӗ!J[ƖGlgT4kñGf2vHYk +C_m~)+mS@,V->- _ple@l]~e`'vuqP_)5+q;g..cB%.钿k!ⲝ~Z~e.[Sdy`2lriwL\=8ovJv]K s DSt\ؖ8vq +XSNV2:3ֿvjm޲yGb7o*.xЎ [񖁩[w+o?~Q޲v#Aot}b2y26'e`մvo؅ +W["zi%3m{pwro؆m7;OJ[3h>[N[3ޝּouPdlgjǽe`tn-cavobBG7沝Q+Z4sΌi̿\~mxivu؀~T[.c8X\]6`]]&IVjJ]~gm]]}9zSEHV20iy L=X|k2{7wX'+w[e@"3a3~O7&p%usؘ[7^]}\d}g\7;n.c\UX7!r0e _X0B%.cfbⲝ:ǝ2kpm2FD`Jf208zh2dN<84.(5br20q.cŁb.j5KuC;S1RcEe` ⤴4e`IN]]vG`jJ]6:%2u3A&+u1#^We`5C20uek}L\]4A]Y.bTm︺ )בeeai |\'M\\,؂e,Rʘ Z.fqqsl0讲Ǚ 2eƹ+>e@+&tqv$ߡ3_R>Pqe@Ld2 ћ,҂0%?f2-No1K20T2)e`re`Ʋϕ }[) 5qЗռe@Qh204qz BSlM -c-euosҽeȿ{N =G +[uʼe`;f6溷1]bܔ̼eHzҽe`8I{˘6Шלּe`Ǩ-MYۼe?2si%xef[uoY$ݼeSזyյe`HPPebdyר2> HcΉkCX[ˈѧ2։k$7ޮ-*4mc̴ek\JͣM[ƧNyL[o>i0q+oЮ~[WOoQkՈUi޲xҿ5{x<|| \\Q\..cBAd&.}K-j&.csDe"0Cۋ m7:Me`=n.2ߵ:wqYnWq{LFkq̚..~h2: SV`8%m2&-rŽe;]M\SK..cWe;+mQ1G2bad2orcd22pe2&Zqf {3EYn.CJ_X˘ˀp[\\Ƽ!$\20$?g lM(tqA[?U20,&g lQ.X"Tg>o!-^&.xG"T|J/vsXF*qXS2ye`+;4%C3qs_4)<+qb_2 +)L\v +e b&.˥ʛ&.>ΝO\H۝?2[ o2~-ZQ{-c(/{be`7Zr / +2ďRo2o87kNZ6.i4+k€3.9ǭed|m2 z\abn22B +hwiY0&b%-#$ 5&-#.GIWPhKɱsRĶg2^E$Wo>ly7ĜůqؤeS)&-퇉.-m{3y+kow2LOID_ZF3O&mֲ`],Cz+ZvsU~[,e_ҥed;ʹ,M&ɤedsQw]YFFuiY\'MZF+m2FqriYb%gMZF6aLѝVio2HFX9IZ,#Jw윬eMMZ\ m#YJˈ2j22)j2+.Z&񵘵lh<,b=n-EmAǭe&k-/ o$A+mL72>[ڲx*DM[Ɨ+%Ӗe (זq2M[ƹHIy8_پ'ݽe\Q/2Ϊy"սeͯ^,fx7VŬ1[3y#-c-{sReusϝ Xn._~˸Le\Иe\"q3@V2.Ɏ:h2(f.r﷋˸ݹ҉e\3c dM\5:i3sOf p.LY˸WdSq_v.#e`⃖#٧.CZ~(Wa#{Ra?O³\4Y|RЦ.öwfpr-.Y"sOP!1x>6Οe<[Ke<4RV\kO沛YHe8^sN9۞]]]㪴2膟ze#\|BepΑnn.yrGvavmeAؾh~7m*֝!O[=W[.ZCao .{˰ڽe0D{e(d^Lr Ȧ>_oco724msY&smjZBXR?iPwD3M[0?#{wm惜n̦-^Jh_m˳ڲ(ky\[ ++m; }˸20f-cOڼ+Z>7D?lgf-c޷ri7ܧ|eRd\u&-cW$xh2g"pҥewy6i٠Foul2ւIRҲN;!]Zfw,Zs VI2~5i;?2v}#L8te2ǒnY2vQDf23WShV26ߟiեe˟w-XIί)jN1YIviy2 V2YF *e##e,԰ߌediVhƲSH6c ~n,cD 2glǵ"ڡR@̱!͌ed22[˘A0C1sKk#oPYB +cYOg2`YB!,dy9@K,oh2F}MZ(#]G1.&-c\!*[IՄz$KiY?]Jݤe B41lֲ&S.XY˘wk02fzܬe`NnZT2rAgoז1r\r3̹fuf旹{f/s {õ031x\Kܳ/s)܋&~i8Ne.u~kyu2:]2 <`u~k4LT{旹%=u~kjeIsX2vM,g~k2x}I2{\9d_˥/3.S253[g~i҅e.u/sm w/Svl/gƗVse=\ۚ%N2ӎ28 Y痙 &~kd5:̴(e.B/3T]2[QeJ_Zu^/3o`_ZeZ痙6A_~isl◹i4r2(7__fڹw&E(2"#~◙ي35w6b?$ ui*t\:{&VvjTK36Sflf03M^?3̵.ZGVu;f]_G"Sb=#\[s&34L{ei;[(k03f-f3Ȭw Laefc{FK'jł:4*9̕%af34qui'ڑ13?q f=CL154af:߬3T:|03 +#`dY̴P\3$^ )!f ]d&o.ui"\3Ӽ2)fj^S\ I'ɌեN13Mr)fLK3d$X5J3M "\Fڐ bfj˥:4=SL6QL(f&NqcLR{Ƙkc>xό13ɸ0L13StbfJ2̴.o$V)QT;D13M#24xv(fuЉbfG\vL1S:.cLr7AƘ&#vcL13i cZc|y`L;bsz˜ƒ6$Y}3֦~1Sm t3ӎXgI;9$A83+O3d%gbZՄ uio)fQ2w%QLcfA ST+fWZfL13,圯D13mL1Sm#>7SL)fmkb\l(f&Qm}(SLU)f-L3*sLc[a}pLcx VY瘡#uiIKcǭdiEl昙df, 2S w;Z@fm=&jy$3yL23M~OdSO$38ȭ9Lṳ\cJ@1foK3X_=SL3S:L57(fVJf ])f =STcoubfR ։bځbfu3L>Mb>@bfƪba2L5l31SmQ*3AT[eڏ3 f*-H9-ALE9A ⬇A1SvLcǖ)f5lזLxcTn3L%=3l\]3VX cT#]+R!L5>L%/}Ř9f8:/qTs1S͈uj+95Xeck#_8fhEOnfj2(f*얹R˜&ˏ13L5VTT34Jej9>qT +JY'nfs;-̐8Pʵ0SR!tܬTS?-Hd0C-1:TDuj׏-@d`Z _`,+Gej2-_S&}`f3?;>fv7(73{%P3^3̬;j [I]3U7[3B,%^ۋf3lDD03u3_D^m,ʯP,@2X`yfmjuC{leE2U;5,4XHl +Y|,/&e͞~T)((l>e6TJs_fs6-e~ 1e6]2_fs hbƗ?4Bu|H3L5.2)e62ke^=l-}eч/VA%| 2d|jteڝa]/$%0d_fí<=e6ʬuttl-XƗFjC_ںK2HV\Z◩֞/qsTQL@_C2c=/cFR2 eh:6O/C#;rʉ_FJ 1d _k7J}p—q D{Ɨa/e$ZӜehᢈt—l͵/Cg3L/ӕ>e&M'efz\Ǘ#sL/CO5zuuf[H/C\W' ^f +ZaF24x5R/C[4Ԧ /mvŖ/C9*7B:I xfxBB+uxnǁt2;bb10b)(vG6%vf.=ifv{,eH 3v7tsfff2Uf.c}uvy .cx2 iL5oX8gx٦c#e^&=D/C|CED/MreA=t v:ls:4,e{[Get/ +<˴7K]2FmY13e:'\C$/2[v`ƗvzPyOMLKY5eb M2`l◱7Tu~krxm޿?f pe3s` 8dn fZ٢?&A0[]z"-JeR 0cB~au#0r`M2k`929k`tCd%#0xL3LR-3r^] 1$>7fa0+&;E6f+|lŸfE8 +q0褲v aVk3Ĭb`'ìr1fXڵ1`hk bV/1ۗQ|s@?$-AȮbL|s 1|͵1gbƥaK3{۪; 1'yh-gbOaK(fCgGc#f>11CZ=`dbf#hfYQ^I5At?Z黉su2L礅D%gb b`b}xbqShuS +GL#uc[+; :bQʅL;}PʮP@u1l,j2ƌC"_:L;34%>\1fng M#L1C|L1Ә hȵN1C u{͸0Cat0x}SO Mb۞ aK~gڑPDafˊiȮ-1z=3|g!fI;cP x_R'.tST[T!fȔ==@ebFn3Pf Lf"*:LkS'ZcmiL5Ug&j30SmQ5gwp 3ՎZgz0Syu2f_) 3403{2~nwf 3rK)w3~l0,[gj{dfvҵnvz3jw f{F1WS"␹1SmfvEQKbZG3[ f&J2z1ӎxv=C̬ӱb ЙbaB 7=k8x=STcp6Std͊&+sF3NʮO$L34f+LvG{2Lx4QtM\P̐dD1 3 +_FN3$x)f:c0SФ7q=STA1Ӊr3{9 v#3 9ENհYyŹa.;=mdF=S.A%StLC?z34f XI`āwilwn63 Sۉb8,Qt)ZQD1>V/v-ҍRD1g)fhf(%:La?W(fˬ'NfJ3 %Z 3S4CՑcF73 ıN1+N*3]Z&dO~!fh9(bfkbho_N!fʎUOL3]:hSbD*G!uZL h8/7CЈVB f!fh2T3LW;,At7vXN3Ƭk 1ӝګ,AtX{h!f|!fK4bξ8-At5qgbvpZ:Lw,ÌŻ,!ka a?;~0RF35I񯪉^`Ͳ0ZxՓlhfhbs͎h,mNHj=;uݳ9f%]8HjzOX75;q\U9du,;Pf=;-%Gsݵq+(rÌ-&Cs4'Cs4e g/̆Hklܳ9 0cΆ6Ŭ9VdhOh1 Ѽgr9{r4G3kyw4Z# ;&Gs444bgGZN'Cs$Ǻ9e57lhƔulh.#(Sm ߳9ک9g9AfGs$K0h攡Zw4G.{~%GsR6׺9 &G^-hFRX fGec¾gGs4l7͎Uwcg%;>R,DZDxqj79$h9RM''\r4Gۢ;ӭym:d'r[5Y]h8۶HRö[Wsd!f4G[JZ4Gdi& u7hܳϵh19#Mõ; +ٵhVZw4G#jѼKVBh29QC9Z%#nj鲣9 WLh+L:;8FʆUzX9A.OhsNhu8MhzφhWg24Gn ˔i9Aa -lhɔ,Lh} ͑rqdh&1мp0Oh'?9 +fAȎhԷ)u;9ڦm9&Gj?zZw4GcMgKs3{4GWNhŲݰ #@-'Ss$BdSs4 urԼd7p?:`̧{65GNw`Ւ9ZG޳9<^16zYԼz9g3D65jCяGMMͫ%P4sH2hR)Q:!g_}@%Ssf]]25G3㲇9ROgOs4ϯnjb\~)'Ss4B}f\њD\R;u=Wf<I זyU*VsjɮuW"W-WZXdWs$Y*nbuq2e'쓩9|~ljFo"O敄KST +9 iZ75G&lj-V]V0kjGŵj^IE-ު%Ws4.ˮhL +gWs:{yU06Ϯh ϧy᠔M剓!hu=\͟'8޻gSs}nS:y9y75Gytljfk+Φ敔&џ۲dSs4+sdjRQ}65G۫}LbY9> %<9ؖ5λtGuw6hjHXKgCsݶb͹;WXy74Gq yUDuն{ і|ϼjRMcF+96 +H9'Cs4C56TKhԱ,>gCJ5׺9Q;w24Gc'ϋ&Cs.fB Ѩ1QF׌jm=Uw24uӓ9\̑ړyU4|л9MUI^miq4WMcY9t~hXvv6~h"IG}.I)u?suVT?Q}@g`'?m3G9a]#m]~hd {:rsݳ9;+=m'Y5Ǔ9@rTKh>( Cv4 +X'Kzw4GcMLyUbKwQFkмjLh<ڶcOU ,bgCZtk ]]24G;}v.OCs4&Cs4Ycmd05׺9̛8Y> kb𗓡9ɠe(#l-|л9ZM~-NhuaZW\ć9ZXݳ9ҡQ{|Vg$1/mw?s4аӈm!ÎG'?Jzq +Kf?-[M~hxu3GV?{3GpZ3G[?W k cr3G ?'93P1ۙ`㻩9ZrMv(ۘFyբͼUwx=W+$%ys-5ohv3ZJѨZ|nhJn(&hXyc^YZ(بZ1Gxjy;QQk1Gqju>h:L( < +Jw1q^ :Ep{{ӓy] f s$ ;+[.\}2h,Hڭa0G[qs\"%{da]aa^{0G ' s2 +ye%#,մ?Ւ9ڹʳ}mY9ZMdbglbƿO61췱a~%(l6n<̑~G1a}m C0G[,+[mJH *- Uf sܓy֥g$ s$jq6[㙖yUe={oA0+r9?y#LhQzH:ņV0G y(#h쓁9 +__/GIN'ٿX2_^ٿ\8O/Gk6\U]Wʻgsvy70}.L$sYz}QP|?0Xw;I3fus4QLuܼaty/LYIHcFUJhl`^$C ܓ9Rq>¿cL2\z kZw1G+Z_64)=ۘIXsۘsƼ.xȓ9)׺5䠅x1zP䞯.us$yw1t-v/9lyw1Gwߥ01G8%5ۧJT]M&hr{M̹WMy| O\9 g b^9o1#'sv2EG bnǛ5λc/3lƜbqlc& kmmu$uk6:R.bcߤ#޳9ڶlc`ÛK>: 㞍V:w;؝l%#s4N3#dhf|1-㕺9Z*|R]dd[_bfjZw1ǵQge9,';y:Põb&6]6cfeZr1Q8esF]䉞rM.H۰\ac]ш6ges4*@>ӵZb^VkGcMnGܳ9'ή\̩8=AU ?bAǜKк9<ܕ}Xzc攀յcNq.֧9k!;R>Jސ}̑]lc-|n nce'Vm$`=ۘQƜR`6٘I|925ȻV,klN>8|8EcNeuJ +|Ѽ<"cEޗݳֆS랢MF]>Z.帬6˜ZN>h2[V=kVťc&SP/>{f\覗d#s4ܶ6o^Ǽ܃N\=ѹS]1G2##ѻ9x{1G\?F|gs )?m|B7g9M>c``v\m:~K1Gx=mlcψ}L6hǖz.Iuۘz.N|(9%dllcXzjdc0e.>#mUB6榵\5vV\ɶFUdc>0c|'s K'bH/lѰfuۘs1G;p 3Hĥc.4:A?LK>ʺqFhtW߃e,isVRԵdFQNKuﲓ9~V9U׺9YRNh_8w+s #=ͫ9>e~kkϴv leCI8a es\^Jmv/ @"48*9Ǫ5vyE co23QKfM./G:zrQȺ1q\Z5of=ۙHq\.ng';saMu=VKSղY&@–gWrR1sr3WC'7sّUye7su-;-g7s“i;鼻\q\o׺֎4f8{Q +NV^ʽҸMFpwe@g/s~Lu/s8~2Wó02g/sk+I,͍˲a,rؚ-{'eF/ ʻ9o_:Z){#{2m. :\}wۣEfE+&3s s.!d/s=Z;^j*teΰn@\G[C»֭k5?@fM@vle<[ˤn>[S//3>m +srv2W{^G{.髫\ ̥Re9/O/sx!gSՒIP^RЇ90YëKaQ-h`9C\^'^uxC>/{wmx_xg*VĔrle~C +K1^pk\-Qu|XWZ˃egu\򘋷2cd&ٍ:lucube^ukj 7Z^l\g1߳nW]_y2q={s<^V mfzf\Obn&/s=b׳%eYiou3sMV`1 ̜t }~fUe7kط5_кM-,˻VHK=ۙW3?}<ۙkɲdg/'iʶNvZCC';s$4ߓVfCs70;j;PK/NhÚ2$ݱlhn m"r\m/NP]ehu'?sp6g3WriZ3*ÑN~j2ֿl\Kv3W{|dnjR#wJru'Nܫ`r3Kg$ZW[Sf7s(nv3W"03m#ui3_׺9Z>lnf%?d鼻cFfW8U[g7s*i͡k܌Ćrv3Ws22J;ȑ̫W lfl;fFZ0,f'K \-d>S輛]*lf~z܂Ֆ|D:CfRue3sidƷL{233.u7s4YY-="Ǟ<`\n(n1@v3G=&;s c{3WoIsۙ'ew2w&;s23j=ۙW9~œ +Ų9Z_:BvjP7CդiIu;s5>pr_saDn\}V7?g;sG.\m]njr>FV&^fJCml&;suMlg~j]Wf8~[3WuN5o/?0ۘ Ww\y Hn 8f{64WOp'CsrNlhn]aZ 2:gCs46φ^cLҪ]ie0E?Xq&_uoXrGǩf\4qD/OY%ۿO8_/W]u.{S!?s4ŷY}*A3?Em{Zx wY'dQo[r-|=~׳x|{?W-d>_(92į?9]>񃒞E/ +02=1[WԄS[loϾv_lzqnx*ɳ}JtH2x˵DH:1֫/5 +9bR+2w K7r]QOvUDryIyJz9]Z +1Γdh;۾~m69T%=mZYMz̎uE0hOmooMHk{~$¶!﷍#ts2o;Q ' jmzۿ?aEpÓ,O_oG5QO_nF/#zmzۿ?Qzi|?}(<9u@(N\٢q?}4ml~dZQHL5o;q$ާ韾k>Vmzۿ?qwZBO_o5-,EF*LmkOk׵fBƊ+lg"D,-ly-xqN4EzSv(_km1֮Қ >_slof,j&~5(|KOp~p3F#cpF?LI?/6Ǿ_}OF=Mb4-oiW{]h;k/Ծ_}ODF{M|{~75oiqw4miq/6⾧_}S?zF=b.۷4:o}O^h_v%y;<G'Chl;<Khq0 >'6fw4y8F?';<K'hq-~?_o~Gh3E5~<ϤG4 HF?#%[8|C@hk3 Q͉V|]1@/g$Z[% yi`(K*Rr)3)-ljE^ҾF ~ʧ4io_$[-[r -$8^9**Aݏ TvHM{St_)Yz x¶-lӣgE_oaWKY4PH XQ_g]_oa=|dƮ孁~),D-g~V*X:/gU\_nH@Η%|_nP +C[Dg Xy˥ -OBdOab);04i'v!;#'0[ ٞu': J Ï,V֯-#Jk;+~n?1I<Y߻$ڕsb]^fI89;7_ʗoKn,./k~/7Pt|5oo_՟HE佗0X'[:AtOǪOAM^]TPOK~feΟjz(lwyPTyz_YTnI_..sR,Tz_e{QOor=522fAo-#cj^]_uԶ鳽)q) oJŽ|NT_>\ߴV,) |t4PQ`\[rmֵ,KC{?x7l_> vH8O]z=oZCAk&ٷxKIcڳxmE+)c.OT] н9_xF:rVJ2"}ۉuc-|Z?wa p 6",OESInͯ:3,/pZd{lZ>uYE;E:s9xx|NZ֜]Um_>M^9_cρw;u}k&X&h-,obW *uv:fa1⩹VESj(M iB تh?h/k;Pe5xkM.^? յbK%R{]f7m'ԨoxΦ逦j䣕@7s5`eM8NkZ*27M^R$gI# ޴ݧ7`x_%! +]g﨩:w{j6h0ۉB;] ?4Un@'<,M*=z߳he1H%-R{I(- QSг߳kj4̩/Z첍֚= oU: 7"`Fo$2"ISrK7+C쑀j[C:z,-7q`R{[~]ڤO7Z!тh.klJP3ڻ Ip^OMĢy:i25Xj0^\IVް\ILv֒oGcIq_w-W:'m[p0_Z]C^4[9O)<KySk2TUVG{Y;"S&6ڳ4tZ)oksYVAȑL$Bm_jj/i"#ڮ.5G"&K$x_Ou\M+N}(kJ2M&x7&m,dŲFTFKM}ꤽd)s\%qԠ:ȋVI05Pk0\v{4@o2_=ZKtv㉲>Z"\ T؆khKpȺxjPdAzF%"=37_ƛ,Gĕ?EiI`k7mcRϱ. S&!\͵) 6otUi.蚼ZjVX9l뚣u\ݐڋ~inKImkĮUOmIzL^[蚼ؗkG\J7y@[mk8vYoAVM77i8}x)KO >Z)J#۠4@V>Mf5 › g&m_!J)K'm4%orxk׾i,W=‘ZY)?ƨ4!v"AGT`S-$u_t/&VNE=4}h,k+t  c!IpqR4ob)OR{$@ƥx4"kLSt d0ԆvU#XJhj&Q\Do^ӀiuMwIb*H4'SQ +=ZUf9Gsy( 84!M Ɵp70m.D+|ڲO l{'l7zdxm#gf4ge57x픾#Iwm2j׎T m'ϤdTV5hx.=?w +35 0 #u&LԣCRЪXhM~ȭ):ړ@(7yޥ rʺ5$N[k I\v蠊$Wu i%Vwѹh*E$LNX*# ޜ) 'yZ,4ye1v+-$Zsge.MorMRZxMwO]G{'xר#U.46bVKhOf4tj鲫LC%< WRVKEڵ˯rT10RFk6uʽGsGqɂ:(=$@Q,(68yuXOUWu=9ηH.!%uoOLg|ӥ}I76% tg/ҠlִDmeV:zKRl6鰤l1vVנ/kxMb(n4(ȚNH]ܰўΙ@zqާ[U&?S6Ҡx{GSl@"Jo8`xi>#)F_w28F{5F$RZ\h@2&81+\4uZOȊY.ؖ5TRo9ІH+뉯Oal(2Ķў;FQ!,bΣTo%93hvGMhN^鳖FʯkHE{dX%Jfu[pMY( i]7L;Ɖpo66cI'k5YXM֜L75rbk2Jq:\Xni2|BF'&WVȟu8fЈ* >dgd(hkr1PˢiRؙ% OݓHV銧k Cێͺ P J$`HcYMvyb񱷃7"$i5$]&JU@5YH54e/;yPJ^vՐc0 6j\6@6-v j_ 2CE{2Ku35bXD=[&o S5Lu-D(3Yx(' #O׸2 d܃FFOh <׸m,+ջ~XDxLJLr}gyʾ4We{Ei'/M׋'ȥq͓UGtjtTiњM6ۑGNF+@-5k|%kݗ]uH\zk\]c4ivʯ]crE|#"JdArXCΣJM_Y5lhN-||\E4'a0̧*`f!{d>Ui)2BTN=1MF2n{%vS*h훡V5FM_W!qV]#`"|+d> +QCyu MWg5el&PArйN\)AoI|jK Fb'= ^>ՃCh$s}^U[^'YjVNV=(S^'giZֶ'yeȡH vʗ_mM"+ZX|e7IZFBA&Nyh\(`]csI鉽$>A^zs)FS?9B: k]cDzj缜!?Y O|OM*u;KoOF3 F zD~f8d=#y[kBoUi 6ZDz!D5A9ޭ7V0_eI+s?R۵V֣SSH_%,3;CUk%(!髑dAL髵.ik`#Ͷњ,t4k|eR[86ږjװqohGע"D@ĹaFW߅"I|Ǩ%.n &R8L<"yE 1HR"Y7m˒}4R$o\۠i->wnk:';?Ęuvз> ֤<.ziK{IY-Br#*E$Rj+C7m-jD䲒yŢn?EF[DQڄGޓL瞮&CpȔV"Fc I}MP,47*D\"kC-~H"zJ!]߶bXs۪NîO$=2^" 24_M`)ɋ{֮6dXlqW(ld'pڶqtDғfJxNn|!vPl{$==W1>DžKWp2ĄVd޽;$I&k6\/Tű$d%.H_vWrOǑe|v\G{<{e驫ε~,UVEdq79OWc==8]89<1 \d(ˣ@x#c_~BG֓GSljꙷjr( +qMYl$8ί̥zr#({e:pAyw +*u-(Ȫpۈ%iy4:SɼW,MYM3M|'I?z%_}c5j,9OmɀCϬvi7HyD~$e)fP~qMI~q2O5y˻)O8lsY9OeFX.s{hĦ +=6\= M# K5C少C4q]CI %lJ֥IOjF&ةqEjE;wDŽRc)I֓ :0Ȅ;d=eI-}'ݪn}-zfz_DS{,I{oOmtud?;Kp4YlKќ.'ӫh u4G[e +zH~Wq]6TIȒesdM}7BuIHb|:eH=(8܋'ksl2ڹ +; S1Q/ +OsJǶħFGHH|c}$HmXғ +IQ$>qp5i\) 5 lm.(Ok'͎Uw<]G>*ou͏w$;'6Mrd1|smlcxœkGA֢nĂAxcdLZN2l K{vO{sN+4EcդӲY-F8mDig鿅iq{̸h;h _5kouhWdAg 뮝qnYH~!1ɄuIxyJPLuBxPɢ Ǡ2ǾXV7\Wl/͖~u}1e!I3J\#nl5[ %LV׬J/O$}gṾ'Z#&+~}Ǩ-jo|*uؒ4xaHYXB +[nh{L$VN TtTM'RXS#BGD}:-tYYl&]ՃSiiͭfGWՇ&qV~ '>iK٤Hc'ĈobsI~;mχG4Jkl9Ԩ߽.hX;x2z4JÏ O^c=GՈkI:lv%L]-  j3>r ZIʲ \#{E^E{S`.5]mcZ5?ǪqDud#vDܹl^|Ch!$|2DA22Xr\DKȱ +UhvRB+$6⣎&a!5"clǾ)i +O?B؏uLrTUI%SCrY$InRJKqDhnvkpi"MItf#/ +OԣkoFÒt!i͓0i[WRIm+Kr&lA;"W&'w65LuOmE +<)haE¿J O2pe'h{O?dU4yx2petmFΊ砬WTՎ +Η}ckc!IP#Eu]a|$=L+tةi( έeѫ|ju8hLkd-&1via&/.qZսfJNݎqд(*c+Apj;`L +ךrm#Br+S8f lx|ˋvϯ~ +Ʉ~P VnmtFBJ#:rU^HAfD9+*xDBړ<yPF |M/rُjp°M,+Іv\ѐmB|7/qi'crO +R:qӻRdC@mO4U5fbXH{c%pkn`&<zB֍HzЂòcu6)&{i\.4MյH=cC!JŋN=ȨMŎhM"ad&ewW#_#ic^$ӽ(ҹ_^$>h-ay)j}ETxԒS@ᶄXũ5d(~)o'Kz̺pXX]jW4rdfahfSi t7Ґ@r(VӈUF9z1HH"7lo4r&|U=|%I:F2]uy[D{a' +5.]g4|Z%rZIc +Ȼhdn8pOӉjGk9O#J|@xW.l7WTGEHqعLK4)%>OMLIVN_f+4bvxWbpN e$ko@6ݔQ;ҟ.DI@;V~Ũ?۾Cy څEܡWGvUӚؤWMby=ێ]s~Ho[N#-=qlLIhnVdy}p:.6+ͱX6wO@iWv#zM$Dk=\~ +m1syXůmj$Rt8FN?N+KՋȹ&|N,aЈQJ|^G>o! *kd'#A [wE>D!\>ZyڱnڰB߽ˎ][Ӵ ԏ6n3FV˂.2詚jB&ԡ{H4zh E`AA|#=<(gʓ]bU`< +<(@` O弨U^IbHfrdfhhp+S[ e-UJxxa"EͲ ug5t 84+$dի'AM`׶ڡޞXyd=mGPf66U=+ +xk9SoMdҠ䥕gd3VAYTc_y +iP9BZycʹ9` Zcgt]eWF! : +ZUKIh졆V#c-MfbI={af]]bAIB=HN +iNI^H:Kj4vu=2$d4FfkN2:fM[Ro\WT +;u jžp]^H=*Iͯ{uߔ}\z0MG P^j/4-Z;1J,}G+PQׄ}msC`D vajn: x>4 Q֮Fسڼ>H;\\k3/9Qj?cC5R.HFk-lq\/(v I mkШORwp`rb+E]'aZ; e&ik.8}\ !8\*IZT2~kނda&H:5R1/g3'-Rc@Ec7OG- *8d@6wZ4vId[܉CsO%9F gλ܈F;&+id@"j%ج*l?e4*Ruۧl&ٯ5ܬ +iP_bɝ76mk۴HiPm5:rҤ<]UIZb [4.QNG.H:&E}[J:jM$e)HZаsm _֮~O0jGYP{}ae,,9 ;qj#1I/Ġ)hhu@>d߯覙}% J㪑P|4(GKFeIz˒Ge W\YfZP,ͬ|ʲ u ,iVYʒ%+K',>e$eX6,KIJ}ˆ$eX`Y>yeĕ%VOXY$}*UֵVY=he]{+'lhObY>eYDeY6WOdY>eYD ,',kȲzA ,',kȲ=eYDu ,kȲ=eYDu l0Ȳ} ˲,Y6UOdY>eYD ,'lȲ=eYDeY6TOdОȲ}"˲,Y6pXOdY>eC{"˲,dY>eC{"˲,똩dОȲ}"˲,',id٤} &Y6HSbY>eY%ԃW6iI%^ԃWl>xe A+,Kza *'3^XeC{ʲ +ܧZО}:WO^ОvzeW!M/}ʲ+딦`ОIJ}":Y6NOf 1=eYd ғY6',k̲N[za ,DfY>edMl̲I` ѓY6i̲I` 4ғY6i3Ȳ,}I, l>eA2zʒA+',iZ٠=ie:MlPI ГV6'lz&V6AOZـ=ieA+l~yʒ ϓV֩=OXY>Xed 2ϓU;OTِy} +'l`ty&V6H9OX٠ 3@yu :^e,H`Y 9^xe+l^Yg:#W9O^Y`:Wq/άx+'l'xB+'l {x:+؆'qb/W6 O^(xb , lIJDxI,`l 2Ve4=e2XГW6(^Yĵʘo^jĕuV6,a 'qt6I[QGʹ2%\qe WU i9^pfZ(z+OZYsV66 G'l?ie5(glؿ?iejyʼNڵVv0\AieǢ4*fZ\%wlX?Xek_XeJΘ`Q~yv +COXY4ʆqUv*;*Ye*;Ud @i>Qe/6ʬVؾUs VȃTvfR y=Pep*\Jwae3 +-kV&/W=aeGS}.|sm6OXYOXℒOXYÖ++^e +2 ԵVFR 'X9C &\7ދkLM(Ǵ\VO\Y6hĕeO\Y*} +>L| +ߛtLBeW&Or3hWVFWV<~֭b[u%OZld6J Z!7dI@U&i*+ƚÃUVlVa*+Y96J,'}smbƺUV&&VF UVl,c ~9VVXb:VVv|+x$b:v zeV!%}ʨyz, {+3gW"ORn RLgI*#$wR',>@e2;vʨLT&[&RY5WRYeaT&ϥViI*yTVXTV UV׫">Pel^@U;mBIO'L^mwmBY U&J2I*Q~2',T4v/Y8@絊\IDq4|HTκѓ(;.29/,qV! *CY*{ȗ2T##AI1*ûr>qޙ*Tc)vRKTmlqo.+U ިL59QeM>/ *3 +OaDɋ- 2UVTZUV0O`Y*M&l6l*O RlpVzce1~beoܸj5\Ͱoۼ@&V#̲Vkad +u'VֱVmʠ[YS1o3 +oOZe wY-he LB-keu=s {0~}Vs#aL-M1$@̕W\q \2Wt XFuINPITW$:TL=PfM2Tm j2T k dk *D0Tf< ! ՉJ*ƘAuZwp,@eְZ:*CXKR6Iw<% @` eb Cl|Wyڔi$dd tDu }t! sUgӗ. 12Uqzpx3 /Ieu!y$)0S܊&LR4KPDPJA !LqqB +bL$IՖT&ID U<Ie(b_YiAeHjX/5?jZtʚtwhSN-L’d3\5*Ķ5Ke % %DegʚW=LBc v8)2 E JkHb$^?V[LB0SxوWdPjUR.2;&b$aNK0S3w)[})C8!?j'SZ8#so#S`b_bʐ>VqN#)'S&F |)H>v+s!_rvKN"T&y\;m)FMv tG.LS&7ɷՖS&WF _yr6[)mZ9en!>m,-2I:a2ddurʐg6 nPS^SvNj#/8eJ4KP9Cv B$t2I{ *FGJOE ?Ͼ^\ *C GT&lIPn15?rՖS&_&}唡ց_S& ws2"S)yCVZJJz$+em +fK)_e}I)åby,RJ8uۢRggX)CH-*ew۰Rg㸈gQ)k8EPjK)͢RRONJ٨ CRd{-Jz=KJ٨]ɺU)C۱}Nl!eH;g##exN?k-I\gU1R&J5K- e ykGo5."e ӷN\} )kU#eMPÚ)kg&!eםGfRu~ՖR&rLYCCYm1e.afdA1R^Y^fʲR,5J4ՖRwJV=+ek2CMڵR$(p. (Z#1e/L!9 TkRƂ}Jً Ԯ!I:$ao +jK)A$BJR,hKJR}I)*%ģR&1Xr )eIe~MRjzZ\?Rh["GS0oxZmReY g*s'.G\ّMTj}uUc62^ {.Ye JnZ(nUj+{.Y=~qF pIXك+Vk9Ԧk Um#VHX0>2J~s++UXt * +ApVVxԤ_0R ZGI8m@"ЊZYRn6V&X/aeEбKXY3c ++8ƻ ++FĄ;u~ +Y?*4,KXYŜKfbs,{!} O2AXYŽ#OZmfXmie1uf\VV1u.>,hehy5'+je9杛׬!]A +ĕU."zEWVH3ʞI9WU-ze'BdŕU,䃹*+1{Wv2qehs mke# ̕x992ߨ+ǓWk3W&@SZ_O\!4@jĕ}Be ŖZ|/!Jc- f*nrLTd˰98EFlY-mܲZ,dݲv-e٭_b˪O=~HlYOؚ& ۍ&tXmeU$ W t2^?v˰{uz3eUcw;@*]XWLnY߁MնVJ_rdwE-x_8' Zane}lYE,fL6ELnȖi9 +'[Vٹ-!0 kLv\VצI.0=M[lBϯ].M JrY-Mdl\!HBeE4ϱ\6Xr'tKgƍ]./ufrr'\e~pC;eIWz +4nt`R~.+c˖eFgzY_6~e-o;_2`V$[u51f2 i1`6̼fh$+eGd-5_VaWeo/+e% +N,c䗍mvLko_d]{/;``f>VcZƆH73H\M1Cj%rn3q]1;bVnG;b6VMPwl,-fG̴%Nd1Ƈj`։1o;b6U]7Ny0[/d;a[5wmwZ&Ƅ5cf3;avcǝ0`S`j,]o)]0[h.](?31 f2|Y3MS)f&0lswl5z-z X]qix/]]I-e|`~oːn_vY/{efYΗqf̗y$/ZozXwLQ~vcv0xr_vX/SE엍rwl|7_6{e[txS<|9/;Η8/;ZΙ ee۾;_6.q;I?%2Ƣ2w P2`vz#SAY/ (eL^avt~f}0;f{nm/l|?*zIa6> fa&0mlqGV68a#[ю05Qq,(ޅ3a6 dD۬f #d̒F ʂ fbӮM0p fCE}̀9ΔQu0;Q0T&N6g 3ZFL턙.us,f'ROavJba2av6mYH3tXOelԮ%Ll͘c^-%lڔa6jad6<+fhrsp0fmavv$I!LL:{Y [ͷfxw2f 3!t 3ؙ 39el3V4f9G S}&,tm6b͆jflԊ0l6Ps6fFV#ČjI1K5RRT#Ōj/+fF}Q))fLb{I1bqE73fˎYnc/d/1lpp5Cfޑ!S&{:&1;Wp4;fFxoώ #,>fc\1yN 2>ex!CfqI!ɐiVXpI.^̰;o IP <2;lCfk5̎k&d^Ivl풙ZL%lz%Cf>{.a5)dfGWڲc6#Cfki̴Cf +B &AfӮg;fkyp9,!u,CfvJf50_ddd2$ֱ2,j 2[';d#vlI!~te̊6Lo1d6^@r̤%d _zM2_oH%3%'VcL'\9cOտWd&syIf3,ɎI2JϒXJȷCfN7 e5e=AfgLic6޳9f5gǬ {/3~C1^Rw&>'af3Op͖=)5% S-Y#lFX|;f[oٸ5?M35ߎPoBE̞03p1cY0qF,bf:tafm 3{O6̬ 3kj9tFY重2SJY2ksa7ʬ92C'l<1fx;#,v% AՇ_ 2! 2(e-m69,AfհinWI2붗!n2{OGdcF̤.u J 31Sc ~[-@fhcDŽ+ɱ!{a3^@3aRz<H<cͱ1JN$8Cfh}WIY%Cf]zOdu9m<8Af؀ 2";ZTCf='kŐDTηI@)IbuW{S!th˒Y Zߘ` c' d1H\J,Hfȭ]!,!zQ& 3%.pΒYgkLbJk c 8,3L߇lab' sL2 +21(3^P㰯2RfMڢ@3e$Lr-RfIejTR JrYfMBī5e$w2s{{2CIMJ2QSd#J2C'$٢ЌNjm2eڸdRׄOELuՖd&3%3 5a%6u̒3Dj"ɬ p[+Kfh@;)$ΙA@H̄9,Fj3aaBUPk3CK2/3Ci,936+ӓ93o^"f&D'kf~ap43<2kfę!+λ"{fHQ@3T1h@S>V[vѣ^ !cw'Ь1ͰfPx_# 7 (fxn@C÷ 41,fx96? ͳ5hv"˜^Uy8K43/2n- 9f&6Փ03 6ീa93{f{gmq͚<6-43Z-53䦌`5̰B:'PϚكf kXA53u?ޒAObY3 Wl:R=Ӑ53@8YZ)5Wf\%% J$_w.Lܜa ^'4 ifL¹|J#kI31_}eJgA3 &af:?H3 / fuD1f&8t03T˗43!ɮg-d̙A?ꇟf&exmif/`Țً b53r%LѤ +]jQ36O91*V[{53|%kf/bֆif7;(- 9X3kf/i$p Ab +;ifKѝH&qopԺcf/M/a@R"LQ%K 3{QZmafg4ʘ[e+r\?Fh>Y^,. E٨k3ý}z2fWIvH3M%L*l3#V_0݉k31-wz~Z6N:# 1w qU&aJ-z*@IJ 5m N 4|,B.a.D ;MH^.j>PhI0" fEɺX0C;NudLz&IƇ8FNLN6} *7avkpm9Ɇlqr 3{= 3Z_6#1RJD?u&o34So#ƝxS3tzIelw惞 3w0kDw#Wu.f㕍0C0L&> م ? a }fHo 3D~L Jf{:}ћ34_˚Z-f0PZ&+-@ᨹfF2i΄Ĵk60avy fgnZZmf'_gfqV"sD qYP_&N"ϳZ-f/OO}g\G" +Oa\^`&~Iu34vg #,jK0kEȁ~Q0vhҗQ2s 0^2`va_{5 f/ f8Fg0jg 0;$!Y fxA ?i_CR/+HGNp\_4~/(`$|ˤG-2zߖn/CWl`Ly_p^/^v`{a^cXhJx>ۄav +d}'e@|2^V)B0:sɼ2i/e>=m ey606.CV2{Ltڄ_Ń]6>0.x{m2`oB|b*"\.^rYżAc˪C7\V ̟s*:qeGkQ.Mr5jK.Clsfrڎo]|Y.Q2N29I`fe jA.a$ᔣ{&YЦ"?"}/2LչCH.Is. ;]V~ec;2.C\ 0]m.{2y{L52]ž\d].#^^ tYAO% ’29/>Yd,vVJv^T<]d;X"]&^"V[tj29 .N/]M˫~.̎..\jxܩsv0~20Ў/e-.+#d0etXe˪s4eX&۱Il;GnZC]a J|.Ä;.6d]&i+la/e跛.öIՂ]C.Cܝm# 8vbLTs .}g܎GGLz]EW&]&{KcaH7eן^^ tn%CtY?DaKDiJ-?2 \nIBp2cSM&"' }3-ehÖ~d.k?-z;e2n֯T0 dV.{qry +S<N |.;%A . 얡.owp2vpݲݲ,-e+Wز&$JĖ%7T% 0wAdZ:׽x)eMښmt>egaQbAįZ`^iJdde]Y_bNI(vزCrd}29蜂.e'悋2TKlcOvД[vT72r[Z-V[nFf-CكZ-eLrdZv8bvd ۣ[&abލܲG}=lpqt&eP)bˮ7)0[;bdWĖv=ol#ѷ.è3<$Vxatun!eH2fu a5 lȰ0ˮ2*)32\sqo$e!F`?.2~eOftYXNtN)gS_n,42]؟E1]. ziV[tYk)DW/JtYyDtYi8b +7Mrg%!@r"~eEfbO\W{\=pp qrp:2^}IpLg{nЮvΓVN8D p,eޝ Ws7e83me0]={.xfHtlpxP]]u]wƋ%ɱ~Տ3etf.=>p:p:N?2|W +LY%^6xYJxY+ak /v0KxY]U=JnxS^6>q~e3 /Úٌ.3 SdaF02^[t}˪A^VxYX'^Ҽ*YY2Lda2Q>-4eu7ld2t7ӕ2]gzltYC]]&S'eb]D%;d6]6DK4qߔtE>e .GS#6l|d1JZ-eYF˪9T]2]֘$nje5?:q:xexM+euxDkabu.ݝL.ӸFt)\f{]6~w12!ex7.ajf޼6nvٸ:\}tx$j[(# =iqnpzd!1 /Ñnv6!eX1nmyv"cl}.6l@v}w˰2D(e{&SsN2w]lzXeB:_2]6O.jd!f6j_xC6 Ww 7 mqTe:X8e ++{yw /[ ߎ4q4eGs~^SzunZl^6S4xݫoxmV#L6|udN/qxك ˬxt'+e#d=BkF=g5nx%/W[]Jx̫RI/33_1Q|YhSa|00ao*f]7#̺)# Zʀ:o=}3a"ޙ0C%0r(+_&̺L7j0Cm=.0߯aH[anhEׂa& o 6%֏aZ-?f8ˆYu%a&a #eL>սaJ5/Y-fu"aлtŒasl/fs0C a'KY}D;JY8B;a 'owY-fu_u`S+4G`,ZP{fy`lm 6!`#ÀY'13ܠ`ˀY~^0CA E $ q'&LD0`(S̰p(gP{_N0ae 830f/y9ȀjM !~r2N\~Y)c Dzc /P0O~-O,mV~j]ھ*yeh]DΏz($ i|/CMh- F|` +8eHӳoN'IyH~^:2+wW$ `[e{N^?12(?:%A̩4/CW N+_&iuTa<[f |Jy|1r;Q2-bwE̗!bc7'_}=erY2Fݧ% mmfF_&eyZmeVQ2I_%Z_4==~%J3Ֆ_I~~H̗ P2{[me"}~jXme0nQ|_PN/Cz2I&_䗡fMdV[~OМ2KeYp2I;ñ엡v?~g &z;#`&)k0CMLI0a 5.T3dzmfg H͡B_̚L@j$ fَ$͚# 3.߷e %9 \BP{! f?#PooH}~<Āj3ǑC$YSE A03J̚OA΀jťI\}_"`&yXn- >3ުk_e̍:4v_- 5 hV[jl.9S3Ԛ7ǰ`OLR LS/*`2 f*I0C /:~ȂjM󋭶3I 3i`NNxW13i"d.?f/sΔ-¬)aJLfoV[jmhػŗ 3*j0phՖa&wa%9$ `|f"P{mVj0î+ ʍudLRoiq2P{ffMQZmf  DEH`}x$ f&AP_Z &`DZ#,60aZ2`d,?0oJV[jhb=PF/e:ܷn_2!3R[/C ?藡jFՖ`†uT9(5ٓ@nGP{%YmfrR0>3t"KJږ~Zmf~[ =%Vs "F"PC*i07/ fMoe *E]0C!ςjz9L?%LU4jN2 +jxu;f- 3`" {2aY[%@DP*9HjnXm)f31< ҫuTP +x&)f{hՖbcRP~ψYC@"Y3@3$zܷ֖L( ! }"bD{!f8bVJjMcǭ63/>dLjjx;3cٌ`APY@2b=(黭3&3 f0-1CO^ YCa&tÆf9~f 5ˈ&-ˈYp!fx(7$ rbV%ZbVchWB0x[tI2jĺ0=,Da67X0CJ1#ÄY'aVq0ӥj06awAa L!My<;l†@Ov0\%0^g[Wsa-:~Yŝ`atǓ`E KaLo,i_̰&g3I0)L`}fRт`vK\`t v$VQVe  ϕ Iz~ fM# u]$nN>$s,Ma7`&;uA3ɑi@[:]~aQ6La)"̰0)͂a[acvmٓZ4$? 3I]fyZNY08~_e ,sN,}Kga&9ݚ 3_> 3"6e 6r.V[/OO̰=͆RBV}l[PbO KեB3bcnk-6)d!^lIĸȂaX>LJ 3IK;V:P2cy1f:3fؖF12c_9f="cvV@Ƽ>N'e3Ŋ+Nb&\-V Y1Iyx +ft +JkF*cR1C1CN$ [3 3t@{c}ĦN_f;^T̘ɬ&x~1}S- 2ո[33fk(1#u61űcq1<3$<3l 5cɗ3jwzf@o1zĘj<< =1f:2cvKKj<cOƋlȘ&kzuc +Qj1~1;c;Or̰=c :1x iE\A_fWUe Ŏ&2j` /x 6AaIGd&{ D L4$ˎ%v9f7<ڲcVþȤmd $dl.aCARDG3v|NcVn&%l\a;2cv7⬘!bX1#JA1Cy?Z}1n!K]jA1qOR̪D3NV:7ړb&y3ȋJ`:Yƪ j1Ë\gbmw/3f_h3ɣS;!fr ,B 3Pbv8pV̰Q4Вby% # i3 Zuhy&̰6{^4U$H0{Jn{ͯa+̸6^tP=dž+sE 3< nEr0FًmE-f0 +2fV Fj0{0{ٗ 3, n!fV5INXYR3[b%~H1CãbvʞUV ry##f_%bd}1pcN +bvIڡ10\% i93fW^"T`̐΍=l"cZ \JdP{׬1fH>%njt$@E O 3USm!304IPx9| 3ƍpE]$3QC>̤զd{d&5R$2IfZ^T>IfBAw,HfB+\fP-If./9jjS2uATl$3[#$!$}<]$->߶2Cm܎|(3 ^zAP/,@ x$2P/x~xmRfm#i2(w"e&N1cәMuQH8ߑd2;Uᐩ/Qf dO?)2E3Tܽ2;9HT'dLϢf,bfxdv c$>#hA$ǒdˎdwd_LlIf+o"wF&2#,2;Ӎ<قNIPEYJ^Sd2Y2ÉU99@kA2^xsЉ}uj2+Y;ӽ2Caw)3۾RY[W|_̤xleU 3)CΖ`̖][frwf- cKHȚS ]3{VJ#L?Yiif8[AT"I#{mifUncͬɏ#̚`M>1g&3״3îeG{f؟}y15 a5\a V793N13h.z.-Lc'rK5ƊO#3>ñhdO1323{w3{od ҦÒ/2rfxeK1f03[0cfk@<#KgQ$LԋÏY2C{זds3VՖd&ód6n%8$=WL!LRuԫnL>’-.ǒY% [! 1c3lc s@?]x{8Nd=g$LP:g1C5 cnq1Sc6Tc 6y~A)OD}| |<='|N%:fσ蘡bRr< jme255VM %6ppPsc&Zp܂c&XFXo9fXiv||2:faQb.3Y5@d̤v{Fcڭ+*Uc&5ڒ*2fRӦj1 CdP3CܚȘIƠn2fΈyuB`7`thKB.%tl!fF:È^nq/(fog)eF ~̻r(/)f_{" ĬHW[GwF̱̊k 1+gb  2Q"bhXm!f$p,f`ȆYALQ&O6̄@܌5:F3і1f&%!f8Ȩ)Ov0?<:> +endstream +endobj +162 0 obj +109250 +endobj +163 0 obj +[161 0 R] +endobj +164 0 obj +<< + /Resources 165 0 R + /Type /Page + /MediaBox [0 0 150 300] + /CropBox [0 0 150 300] + /BleedBox [0 0 150 300] + /TrimBox [0 0 150 300] + /Parent 166 0 R + /Contents 163 0 R +>> +endobj +167 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 168 0 R + /CIDSet 169 0 R +>> +endobj +168 0 obj +<< + /Length1 1968 + /Length 170 0 R + /Filter /FlateDecode +>> +stream +xU]hWdj~VlTdc.JI5%[ddv3l\@%VRP|"E&yhb +Eh+BK>(g&Z[sιw=  w#ʡOfH#9iodp?*M7ߚ.,L|+?Js9NFHޞ#EVɛrŹvd䪂5I\8Yێ~di([fwHpgJVyn-4c/͚%KF= =+6q*>yx'2Qa'؆HU_um8"oBYGa1>2.RO]Fq#1M ֆ낵5U~(LB'emꈪ,wȼhs"LJUNUY} vMJI9#k4Jˆ]J&GF#Ԗiu.r}аqp4bK#94*w[;lv#̙bw)*9*_Ӳh$m^7㚪 J6/kˌ.2lAvVb !y-hZݙ-Q0YۜفΰHU!+W4Jb9$%i5f KOUȤtJ7UUU:}πs.H.?ڒ-2GGTIsaL >nM# EB3z)$|TXnnt1_ ;β\;r70ŭF$$KS&;=վvn~;uIo{Q9 FG\ ѽ( ]|?+ObTSa0OzQ˾i&֐tr0Ca}aBՋY1ho8Uz`PMɣ@x1zVLT\]?i'leW2i4)FYM=.w$Pf<'+$ib$J1PVia6?R> +stream +xk +endstream +endobj +171 0 obj +9 +endobj +172 0 obj +<< + /Type /Font + /Subtype /Type0 + /BaseFont /EAAAAA+mwb_cmsy10 + /Encoding /Identity-H + /ToUnicode 173 0 R + /DescendantFonts [174 0 R] +>> +endobj +174 0 obj +<< /Type /Font +/BaseFont /EAAAAA+mwb_cmsy10 +/CIDToGIDMap /Identity +/Subtype /CIDFontType2 +/CIDSystemInfo << /Registry (Adobe) /Ordering (UCS) /Supplement 0 >> +/FontDescriptor 167 0 R +/DW 0 +/W [ 0 [750 776 ] ] +>> +endobj +173 0 obj +<< /Length 175 0 R /Filter /FlateDecode >> +stream +x]Pj0+l CԒX}q z0h[lE^X gBpjV& +:G:g} +endstream +endobj +175 0 obj +234 +endobj +176 0 obj +<< + /Type /FontDescriptor + /FontName /EAAAAB+mwa_cmmi10 + /FontBBox [-34 -250 1047 750] + /Flags 33 + /CapHeight 683 + /Ascent 750 + /Descent -250 + /ItalicAngle 0 + /StemV 0 + /MissingWidth 500 + /FontFile2 177 0 R + /CIDSet 178 0 R +>> +endobj +177 0 obj +<< + /Length1 2604 + /Length 179 0 R + /Filter /FlateDecode +>> +stream +xV}L޻{lgcAi06!PR{ 0؍ YEQhmYVm݄HUmeQ*Z'I4U!egVsƉuw}Bhqwgy&gVťT-Χ/\rcE;+cC9c TPDz\QFI`.B,[?ށ?|Lvy?KɌ0p(:0Bp"7/WYE] 7{2\o +p00p apB 6hj=2'Oߧw5,@W85r]{}^afi%ɋ 9WKo#[pބa~"Rx- +\KuX™5`3KY6wpGڹwX!lji׈km&[?#ȵ\>ɏw.gW8  VFh M@[D WZlkma=,Sv,3pttH'5{oRQYaevj$RcHFF'V[-@W <Fjt+4C:fJ"F½?@MXά\k;:sh5WR+bFhCK ^,ZZc`b?Ѱ;wP3sVq5TApwO=jc܉V eٿ!:h53~Y`Z9F@Hc㌺vok՗ n5Xn#[ oNJA/G{h/K`qlQ_=۩ ,VlI90~hVxKkW 0U +}O>Х{ڧ(d[Ϸy#3\Ft[ﬔ/ύML}s_~ߕ{Ԛɫ+G=uzLÿ½A^:9ڟocQ#ogVn +f!?9Y?Wtx 0<|C +S3>,s9;9~f `p-|#8 o=c f@ 0Ls_(` +%Q;$( 0fQ+`PC[<@2{$a "֎'0($!x\xEM +#ռ5lټ95V<3skDܷ2PXie̥Y4Gh1څUfqm)9X"vsa%L#.qTIeUؗJ[VgKYW3dFq0H&,'3 Nh|5X gI_yIrr&Nzkǭ8nK(WR\VY 锏eVnH ڷy;Dmeu=j,)dZ(Jx\4*lp/@ +endstream +endobj +179 0 obj +1879 +endobj +178 0 obj +<< /Length 180 0 R /Filter /FlateDecode >> +stream +xk` +endstream +endobj +180 0 obj +13 +endobj +181 0 obj +<< + /Type /Font + /Subtype /Type0 + /BaseFont /EAAAAB+mwa_cmmi10 + /Encoding /Identity-H + /ToUnicode 182 0 R + /DescendantFonts [183 0 R] +>> +endobj +183 0 obj +<< /Type /Font +/BaseFont /EAAAAB+mwa_cmmi10 +/CIDToGIDMap /Identity +/Subtype /CIDFontType2 +/CIDSystemInfo << /Registry (Adobe) /Ordering (UCS) /Supplement 0 >> +/FontDescriptor 176 0 R +/DW 0 +/W [ 0 [365 520 502 ] ] +>> +endobj +182 0 obj +<< /Length 184 0 R /Filter /FlateDecode >> +stream +x]Pj0 +t=,N^@I)mipl954QCRfA;g#w:M8€uEU*o5P$99ằv&H9 +'N'%k@W[5A*$F,nen/o~TQߒI0*ˇaC5ǒvM̻9(ep:P +endstream +endobj +184 0 obj +241 +endobj +185 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 186 0 R + /CIDSet 187 0 R +>> +endobj +186 0 obj +<< + /Length1 9400 + /Length 188 0 R + /Filter /FlateDecode +>> +stream +xZ tTymJ}4-4h4fF @!$@BB;6llcrqtL6vR/ +&.uqhݴuXqvsBr(XݦB4wl3: +&x|ӁSL1BT9BMeaHY=ӧpm6)Jp؇" }SXڴob)pCSEXj?up?:cp$F( Q ciz>@:JYt@#h@hC5&E5 +P *@f+-1}NЧ]t+->$K" ħįs#D_}xo7߃+t^@^gi 8zAA=($pA3jaVV)i)rT"14Ey.jM[k6ux=]ն&SO)!uu%p+S^K.GZ<&5p@ٔj}f=̙];e75 'Dj4tmyoZ`z ӫ 'i{M^RPa'Y7nCSoJ֚kwZk[F֤'dZzH"gND0憉c"Օ5֌$kMBJzLu^!%\B\T҈;Lk4흉.{^ܪUւEzy=E¯KWQL\sJ6 9x"$6q! \K /';!B)S)gJmeyE)!\ +y\O!"}!].DHú06(52`}#4!Ձ@ʋ"jߋgH0Dϓ4M_1?DiVJsabm;L: Cn rƵd0$J&UK0irL>%cKuZƬ3gR0FLt1Lw ~2!k83)#‰$HDPkD$CXE]H[e8jY\l@y1s_mʐy_ଋ恷c.q8IL]8'7n}O<Ũ.K'SH䔸حT'<,Jpqa>&FRdTI(r(jWADQg c8|(T" %& +WGc%ջvG"VnɎ杗s+LO3xCGW?3.*zW)xg3?!":gAl*QmR*e`o"Jj)bH)(R09TZ238酳ՒlN%Nk=P뫱`Tx}+:DdKx{ƙvMv[=X#ul^zo+a(Sw3/_?@wZ\qdڹ2h;]|~:\>bkQo w8\6I]62M{\+ts18+hC q^>"/,y(-oY\MUVaD` ;k +"WzjVͲN/5J&/zѨz<dGll^&ˑDaJeOI)Eҡ6"zBA;91!))K>s^JZ /ON]FA/b_8?ϊ% :SHT;NG#z=-}:[޹E~B~5eXBI$؆TPxr2GDQ'[mI&` ^+C)a>RB*2[.DlDs1c`Wa֗qJ?xYRWquG1b,l)\K;ho~jhxw>jN6Vyy#:ْ:\~[QoxewUUCh#?$OY֢pYLhpXS#McE`QQ.B"rJ,bci6+.[3f=b2JdȮ%Np0O❞˓%-Ep2lw_8n*F80,]?皮;  +w_Mf5y:Pjg VbㅦMs64̄ZݍޢpicGVVxc3>L y[?;rdnsU V2,&gT.TD*E`*Vei\,ń wh-CP pRŊϮ\L;5'bXwC"6t>s"YTZԡY[9.qleLdgf1˘F($g'E[{/ags=Q*V - (u[]婫s8K}$R(,4/?")ժ0-; Ji$55> 6=5=}~=]xs== Tu3+*fY`RD'I3gnBKRP a0YdRKxq +qI"ùNg`MK@)9AOp(ZBh%N5A~e>!*4d=,2kZӗu_Ͻ;P9>KK_U뵫yZwr_[_M!%awv&8b\Kb46l6v%X̐/iWY+sU +`,P+y{f#|_=تTB&Ri^fx=вm~ٟ?:mԝ| el{<52P)l!zZ$1Dc%I*HB,tiMbW*JeP ?v85TȸI6 Y8w[5t>.vJL( A 2s %IDZρyy w ;F+wI@*,"Ґ:,Kaʥ'asQ&(MJP.7*<(Oѩş5ҹr GFYDSILIQ1=y:x)#i>I)<mR_B<*}F{07,=qTz_}X*iu3K^d㨨&:M@.^QNpN/S*BGʵ=̺¾>{qtǕF;wVƁ* }:m&^Çg{KM \5ycxg>Nu|/S`$b@IXp ENKش&. ?A24?O`?/.;`( GnӣzGBmZ6<\P蒑Ť$RbŤE0Kx4E,`%G9dj9xnZB7{ lYL<2(Zqe8+W9Hvu'ٸfϭSh^}}M8~+vnTcsSb~w>k +d|otH8}{ +f%#B[a 5Tzggg9g6Uá͍{݅V>]{*{iRb(8aovs2i 8:\*.3TevS¤cC@T4YLHqbF},hx!=#Ĭ!z5.(={?mۿqwc]̨n_udwٓF}i5˄%RV*PFXDah2|_O^o#cFu _0<_w:k9[G8Iq Q& ?*ҘYQzP^Ԍ'ʓJNIҕiD,MK[x6#ModLBU, g1#Eܷp%% s87ԜFJKq.M"(P_^/ݣY<3O ·$}ǦO}CXM3GWNґ6BDBFIX-* +/ vTAiru {S|/ú-G?w)דؾ|+D"M}8 q X@M% +fNOQ +5e Z>)m^0%JJu_ɽ2f9[9ym[(37pn=S4PH~t7]L^Ү܎ñwgD2cX/n:h|39+j +x+l%'5pEJx/vRy'8\Z͙>:Ȟ(.#Oꥱ.!Osm$Cr˜l9"UVh-Ѧpe:7;Vm9eNyۈ{\d4h9ً-l"ÀAɈܨ4Qb u 3bȈ16i5dW!n@p=:ZK&/bV}; ϲXµG-= *fyǻ+s獽/ܞ=xݏ[_ylY#\0kӤRl* 4˔JzM=,KM^!IWm;gi x ` q. V>]$[`ъpMa--Dyb^ļ, a#dHxF摘3RD;fGM2DzpR0D_^F-mJSݨSTfܦDןiJà99o,]{LbpBUӪb%%a?Uk ,Sd(Vl[4t6x BlL8SϠM +BUǿ #3KacּM +O}a}ZPk/yEb 2^|k)gV\yQE8Vñ ([1U~"ɍ#A9MCpeh4 ѯ>]WGÙ=KPcG5>ܺZmw@"tg(<(!yG_Olri75E4*[Mto;ŇDV>v"ޅ^ +endstream +endobj +188 0 obj +6760 +endobj +187 0 obj +<< /Length 189 0 R /Filter /FlateDecode >> +stream +xk`x !7 +endstream +endobj +189 0 obj +20 +endobj +190 0 obj +<< + /Type /Font + /Subtype /Type0 + /BaseFont /EAAAAC+mwa_cmr10 + /Encoding /Identity-H + /ToUnicode 191 0 R + /DescendantFonts [192 0 R] +>> +endobj +192 0 obj +<< /Type /Font +/BaseFont /EAAAAC+mwa_cmr10 +/CIDToGIDMap /Identity +/Subtype /CIDFontType2 +/CIDSystemInfo << /Registry (Adobe) /Ordering (UCS) /Supplement 0 >> +/FontDescriptor 185 0 R +/DW 0 +/W [ 0 [365 500 500 500 500 500 500 916 500 500 555 276 388 555 555 443 276 833 500 750 276 776 625 722 500 555 276 360 651 776 750 680 735 763 391 526 443 526 443 333 500 500 555 394 ] ] +>> +endobj +191 0 obj +<< /Length 193 0 R /Filter /FlateDecode >> +stream +x]j0y +CVBrMN ,琷٦PC~>i%͌Wvä8=O|Ѳ0&; o{lâHǝGUʝT*U?)^̓;Uy5:?:?G*{s^#"ssh.wi_%Z˱^l)=yUe]ox-ӳɤeA*A@tZjP 2&qL5ĠʤL5I` KN#i,HtV "sbDv8]1搋q:$  R"xhdDPCA'! + 򬠓<4Un s%\5᪄GkyȔ0!f%a!uv{15zW<_/hü*~n +endstream +endobj +193 0 obj +425 +endobj +166 0 obj +<< /Type /Pages +/Count 1 +/Kids [164 0 R ] >> +endobj +194 0 obj +<< + /Type /Catalog + /Pages 166 0 R + /Lang (x-unknown) +>> +endobj +165 0 obj +<< + /Font << + /F270 172 0 R + /F271 181 0 R + /F268 190 0 R +>> + /ProcSet [/PDF /ImageB /ImageC /Text] + /ExtGState << + /GS1 2 0 R + /GS2 3 0 R + /GS3 4 0 R + /GS4 5 0 R + /GS5 6 0 R + /GS6 7 0 R + /GS7 8 0 R + /GS8 9 0 R + /GS9 10 0 R + /GS10 11 0 R + /GS11 12 0 R + /GS12 13 0 R + /GS13 14 0 R + /GS14 15 0 R + /GS15 16 0 R + /GS16 17 0 R + /GS17 18 0 R + /GS18 19 0 R + /GS19 20 0 R + /GS20 21 0 R + /GS21 22 0 R + /GS22 23 0 R + /GS23 24 0 R + /GS24 25 0 R + /GS25 26 0 R + /GS26 27 0 R + /GS27 28 0 R + /GS28 29 0 R + /GS29 30 0 R + /GS30 31 0 R + /GS31 32 0 R + /GS32 33 0 R + /GS33 34 0 R + /GS34 35 0 R + /GS35 36 0 R + /GS36 37 0 R + /GS37 38 0 R + /GS38 39 0 R + /GS39 40 0 R + /GS40 41 0 R + /GS41 42 0 R + /GS42 43 0 R + /GS43 44 0 R + /GS44 45 0 R + /GS45 46 0 R + /GS46 47 0 R + /GS47 48 0 R + /GS48 49 0 R + /GS49 50 0 R + /GS50 51 0 R + /GS51 52 0 R + /GS52 53 0 R + /GS53 54 0 R + /GS54 55 0 R + /GS55 56 0 R + /GS56 57 0 R + /GS57 58 0 R + /GS58 59 0 R + /GS59 60 0 R + /GS60 61 0 R + /GS61 62 0 R + /GS62 63 0 R + /GS63 64 0 R + /GS64 65 0 R + /GS65 66 0 R + /GS66 67 0 R + /GS67 68 0 R + /GS68 69 0 R + /GS69 70 0 R + /GS70 71 0 R + /GS71 72 0 R + /GS72 73 0 R + /GS73 74 0 R + /GS74 75 0 R + /GS75 76 0 R + /GS76 77 0 R + /GS77 78 0 R + /GS78 79 0 R + /GS79 80 0 R + /GS80 81 0 R + /GS81 82 0 R + /GS82 83 0 R + /GS83 84 0 R + /GS84 85 0 R + /GS85 86 0 R + /GS86 87 0 R + /GS87 88 0 R + /GS88 89 0 R + /GS89 90 0 R + /GS90 91 0 R + /GS91 92 0 R + /GS92 93 0 R + /GS93 94 0 R + /GS94 95 0 R + /GS95 96 0 R + /GS96 97 0 R + /GS97 98 0 R + /GS98 99 0 R + /GS99 100 0 R + /GS100 101 0 R + /GS101 102 0 R + /GS102 103 0 R + /GS103 104 0 R + /GS104 105 0 R + /GS105 106 0 R + /GS106 107 0 R + /GS107 108 0 R + /GS108 109 0 R + /GS109 110 0 R + /GS110 111 0 R + /GS111 112 0 R + /GS112 113 0 R + /GS113 114 0 R + /GS114 115 0 R + /GS115 116 0 R + /GS116 117 0 R + /GS117 118 0 R + /GS118 119 0 R + /GS119 120 0 R + /GS120 121 0 R + /GS121 122 0 R + /GS122 123 0 R + /GS123 124 0 R + /GS124 125 0 R + /GS125 126 0 R + /GS126 127 0 R + /GS127 128 0 R + /GS128 129 0 R + /GS129 130 0 R + /GS130 131 0 R + /GS131 132 0 R + /GS132 133 0 R + /GS133 134 0 R + /GS134 135 0 R + /GS135 136 0 R + /GS136 137 0 R + /GS137 138 0 R + /GS138 139 0 R + /GS139 140 0 R + /GS140 141 0 R + /GS141 142 0 R + /GS142 143 0 R + /GS143 144 0 R + /GS144 145 0 R + /GS145 146 0 R + /GS146 147 0 R + /GS147 148 0 R + /GS148 149 0 R + /GS149 150 0 R + /GS150 151 0 R + /GS151 152 0 R + /GS152 153 0 R + /GS153 154 0 R + /GS154 155 0 R + /GS155 156 0 R + /GS156 157 0 R + /GS157 158 0 R + /GS158 159 0 R + /GS159 160 0 R +>> +>> +endobj +xref +0 195 +0000000000 65535 f +0000000015 00000 n +0000000145 00000 n +0000000197 00000 n +0000000249 00000 n +0000000301 00000 n +0000000353 00000 n +0000000405 00000 n +0000000457 00000 n +0000000509 00000 n +0000000561 00000 n +0000000614 00000 n +0000000667 00000 n +0000000720 00000 n +0000000773 00000 n +0000000826 00000 n +0000000879 00000 n +0000000932 00000 n +0000000985 00000 n +0000001038 00000 n +0000001091 00000 n +0000001144 00000 n +0000001197 00000 n +0000001250 00000 n +0000001303 00000 n +0000001356 00000 n +0000001409 00000 n +0000001462 00000 n +0000001515 00000 n +0000001569 00000 n +0000001623 00000 n +0000001676 00000 n +0000001729 00000 n +0000001782 00000 n +0000001835 00000 n +0000001888 00000 n +0000001941 00000 n +0000001994 00000 n +0000002047 00000 n +0000002100 00000 n +0000002153 00000 n +0000002206 00000 n +0000002259 00000 n +0000002312 00000 n +0000002365 00000 n +0000002418 00000 n +0000002471 00000 n +0000002524 00000 n +0000002577 00000 n +0000002630 00000 n +0000002683 00000 n +0000002736 00000 n +0000002789 00000 n +0000002842 00000 n +0000002895 00000 n +0000002948 00000 n +0000003001 00000 n +0000003054 00000 n +0000003107 00000 n +0000003160 00000 n +0000003213 00000 n +0000003266 00000 n +0000003319 00000 n +0000003372 00000 n +0000003425 00000 n +0000003478 00000 n +0000003531 00000 n +0000003584 00000 n +0000003637 00000 n +0000003690 00000 n +0000003743 00000 n +0000003796 00000 n +0000003849 00000 n +0000003902 00000 n +0000003955 00000 n +0000004008 00000 n +0000004061 00000 n +0000004114 00000 n +0000004167 00000 n +0000004220 00000 n +0000004273 00000 n +0000004326 00000 n +0000004379 00000 n +0000004432 00000 n +0000004485 00000 n +0000004538 00000 n +0000004591 00000 n +0000004644 00000 n +0000004697 00000 n +0000004750 00000 n +0000004803 00000 n +0000004856 00000 n +0000004909 00000 n +0000004962 00000 n +0000005015 00000 n +0000005068 00000 n +0000005121 00000 n +0000005174 00000 n +0000005227 00000 n +0000005280 00000 n +0000005333 00000 n +0000005387 00000 n +0000005441 00000 n +0000005495 00000 n +0000005549 00000 n +0000005603 00000 n +0000005657 00000 n +0000005711 00000 n +0000005765 00000 n +0000005819 00000 n +0000005873 00000 n +0000005927 00000 n +0000005981 00000 n +0000006035 00000 n +0000006089 00000 n +0000006143 00000 n +0000006197 00000 n +0000006251 00000 n +0000006306 00000 n +0000006361 00000 n +0000006416 00000 n +0000006471 00000 n +0000006526 00000 n +0000006581 00000 n +0000006635 00000 n +0000006689 00000 n +0000006743 00000 n +0000006797 00000 n +0000006851 00000 n +0000006905 00000 n +0000006959 00000 n +0000007013 00000 n +0000007067 00000 n +0000007121 00000 n +0000007175 00000 n +0000007229 00000 n +0000007283 00000 n +0000007337 00000 n +0000007391 00000 n +0000007445 00000 n +0000007499 00000 n +0000007553 00000 n +0000007607 00000 n +0000007661 00000 n +0000007715 00000 n +0000007769 00000 n +0000007823 00000 n +0000007877 00000 n +0000007931 00000 n +0000007985 00000 n +0000008039 00000 n +0000008093 00000 n +0000008147 00000 n +0000008201 00000 n +0000008256 00000 n +0000008311 00000 n +0000008366 00000 n +0000008421 00000 n +0000008476 00000 n +0000008531 00000 n +0000008586 00000 n +0000008641 00000 n +0000117969 00000 n +0000117993 00000 n +0000118020 00000 n +0000132286 00000 n +0000132147 00000 n +0000118218 00000 n +0000118470 00000 n +0000119882 00000 n +0000119860 00000 n +0000119969 00000 n +0000119988 00000 n +0000120379 00000 n +0000120148 00000 n +0000120691 00000 n +0000120712 00000 n +0000120968 00000 n +0000122967 00000 n +0000122945 00000 n +0000123058 00000 n +0000123078 00000 n +0000123473 00000 n +0000123238 00000 n +0000123792 00000 n +0000123813 00000 n +0000124068 00000 n +0000130948 00000 n +0000130926 00000 n +0000131046 00000 n +0000131066 00000 n +0000131623 00000 n +0000131225 00000 n +0000132126 00000 n +0000132209 00000 n +trailer +<< + /Root 194 0 R + /Info 1 0 R + /ID [ ] + /Size 195 +>> +startxref +134919 +%%EOF diff --git a/figs/rotating_nass_plant_comp_stiffness_pz.png b/figs/rotating_nass_plant_comp_stiffness_pz.png new file mode 100644 index 0000000..e5d8980 Binary files /dev/null and b/figs/rotating_nass_plant_comp_stiffness_pz.png differ diff --git a/figs/rotating_nass_plant_comp_stiffness_vc.pdf b/figs/rotating_nass_plant_comp_stiffness_vc.pdf new file mode 100644 index 0000000..c71b8e2 --- /dev/null +++ b/figs/rotating_nass_plant_comp_stiffness_vc.pdf @@ -0,0 +1,1883 @@ +%PDF-1.4 +% +1 0 obj +<< +/Producer (Apache FOP Version 2.4.0-SNAPSHOT: PDFDocumentGraphics2D) +/CreationDate (D:20240415233034+02'00') +>> +endobj +2 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +3 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +4 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +5 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +6 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +7 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +8 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +9 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +10 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +11 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +12 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +13 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +14 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +15 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +16 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +17 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +18 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +19 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +20 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +21 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +22 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +23 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +24 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +25 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +26 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +27 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +28 0 obj +<< +/Type /ExtGState +/CA 0.14901961 +>> +endobj +29 0 obj +<< +/Type /ExtGState +/CA 0.14901961 +>> +endobj +30 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +31 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +32 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +33 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +34 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +35 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +36 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +37 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +38 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +39 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +40 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +41 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +42 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +43 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +44 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +45 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +46 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +47 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +48 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +49 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +50 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +51 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +52 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +53 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +54 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +55 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +56 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +57 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +58 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +59 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +60 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +61 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +62 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +63 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +64 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +65 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +66 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +67 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +68 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +69 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +70 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +71 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +72 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +73 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +74 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +75 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +76 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +77 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +78 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +79 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +80 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +81 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +82 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +83 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +84 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +85 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +86 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +87 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +88 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +89 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +90 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +91 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +92 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +93 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +94 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +95 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +96 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +97 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +98 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +99 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +100 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +101 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +102 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +103 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +104 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +105 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +106 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +107 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +108 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +109 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +110 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +111 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +112 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +113 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +114 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +115 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +116 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +117 0 obj +<< +/Type /ExtGState +/CA 0.14901961 +>> +endobj +118 0 obj +<< +/Type /ExtGState +/CA 0.14901961 +>> +endobj +119 0 obj +<< +/Type /ExtGState +/CA 0.14901961 +>> +endobj +120 0 obj +<< +/Type /ExtGState +/CA 0.14901961 +>> +endobj +121 0 obj +<< +/Type /ExtGState +/CA 0.14901961 +>> +endobj +122 0 obj +<< +/Type /ExtGState +/CA 0.14901961 +>> +endobj +123 0 obj +<< +/Type /ExtGState +/CA 0.5019608 +>> +endobj +124 0 obj +<< +/Type /ExtGState +/CA 0.5019608 +>> +endobj +125 0 obj +<< +/Type /ExtGState +/CA 0.5019608 +>> +endobj +126 0 obj +<< +/Type /ExtGState +/CA 0.5019608 +>> +endobj +127 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +128 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +129 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +130 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +131 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +132 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +133 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +134 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +135 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +136 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +137 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +138 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +139 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +140 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +141 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +142 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +143 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +144 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +145 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +146 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +147 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +148 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +149 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +150 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +151 0 obj +<< +/Type /ExtGState +/CA 0.2509804 +>> +endobj +152 0 obj +<< +/Type /ExtGState +/CA 0.14901961 +>> +endobj +153 0 obj +<< +/Type /ExtGState +/CA 0.14901961 +>> +endobj +154 0 obj +<< +/Type /ExtGState +/CA 0.14901961 +>> +endobj +155 0 obj +<< +/Type /ExtGState +/CA 0.14901961 +>> +endobj +156 0 obj +<< +/Type /ExtGState +/CA 0.14901961 +>> +endobj +157 0 obj +<< +/Type /ExtGState +/CA 0.14901961 +>> +endobj +158 0 obj +<< +/Type /ExtGState +/CA 0.14901961 +>> +endobj +159 0 obj +<< +/Type /ExtGState +/CA 0.14901961 +>> +endobj +160 0 obj +<< /Length 161 0 R /Filter /FlateDecode >> +stream +x̽Ϯ$;7_n%a%W-bM_^麶^MO-XW-b?j$>-j}%WfP.eGѫw`qį^eU>z,&fr#yUﻰtD@\tpGZ~߇ZJ#ioRLPƹPmj}j +)UGZ~߇vH3(gP}}Xj]>NGZ~߇z 1tW-ҐG+'6}ѫa6L8RM[?zaŸl=4",s|mjiw_zJ0UKۥ/+5-;,Ѵ|+Tiy%+3-konW>M/d}ӐMd}e+Ƀܻ̅iz%{,3-AmixḶ̴#i%G]j8c+8~h^*'/~R^hw/|z#zϼKmdg^*f楶^23/zy K:sz%?[O9~T}No;KxG/'K=LГ4׏^2COӜ^?z=u9|1XzK$9哗 kyd~Kw~zVc'/6^23?KL̓KbOszܟyӜ^?z=[9׏^2COidiCiq%?\!d+<2^2CrG/:rG/:4qYTw~)}!䇾2O^23So%?\3'/' )}yP-W|׏^23Odw֏^23OSo%?dXT:G/' ܃L̓rڠ?[!=%^2Cϕ=(>z=Wbg}9qQG/ +S|G/ +ld+<^2Cuӌ'/璀kOy3b<[>yC1Okife5S)g|kκG5\ӫ~ 436^}nvTk/O, 2|,SxU[o_޿cWv|%^Fz!͝Y w2>(OоqS 6b|1jo*i?coh?co*h?c/g?co*g?df?co*f?be?d\'MugMagMMgM9gM%ugM퇌uG]gMgMgMgM퇌uqgM]gMI퇌u5G7^>Փ>mP{=Jxn >6?0ykso {'[kO7ɽyϽ'L|aϽGLu&ó>a'&o >a&o ->brs ?&@1w{{۟Ou[[{Ow[#{k;{|uϽ'Lzܻ|ެ޾&3OWowN#'B?^MtR ?^MtHFv,z|[Goo7Sy'ʼnX-w!V r}ÃXM}d}Àl~bNyuO:pO-V[oN{YjiI[m/-;ՅF[#-hweVB}-{f*wLJ=[mgw:e2Ӽ@l1^zey[[O^oyMS[-2~j{w[m2z hѷZe4 -nvh?[m-ԟݩ?<[mngwڞclVó߻Ze4 Yx[Fo{2~ji~jr7߽Mj~i5H[m)-ni7E[-n -n୎h@[ -gwe)RwL|{[=1zor}[F|;FVou8{譥ffo}&fom&~f 'ϝ$޻Fj[2{-1z}Y[Fo6I{5H{@m5Vk5E{y;&V[o5B{hm^ w{Fj~[;m1zs}[FocZemf ğ槈?=ۧ-6{ߴ[ 0yo|s;&oVL{Ej^ioF[L$[1y놶|-;&omVC{{nÇgkho ϶7Zɽ:[7<{+8ro4;{+77Pot9{k+w5vo7{k3o5{oJ>BnW f(OP4lwh~dE ۛ$FQݍ~n((ތ~ 1U{xn'2S4w[h>k6?@Ffoth7h~@{37ڳ7ȴ~:EYofS4ԟ-Q4w[h>ly7OP4E'(ތ~PP4/qڛ?[vh>A|m~noDhoF?@F~fog7h~#9{3柧h?vng (ߨl~nnokoF?@FfoTjwh~O{3L{g7nohwh~CEڛe"o'(ߨތ~2;Ef3ȧ5O~,iE1ۛ%o'(ތ~t7nojoF?@ѼjoIO~8(F?AFfohwh~#B{377J(l~Y;Es 泴fgM'(bP4Ulwh>n&?A|֭M~,XEYv7D퍱Ìy;gQПh>P4eho?O|֟_Gh?_?y{3x7+3m?)~!!J?~R ߀= +,[W;{?񎿳ww7;?WqoU(6կ"O?3א_|6g뾬d~O4WoxBK{xciXo'7fލ/Pi:t)?/ ]>QS1j)3R;[zY^~Бb833f{Mb)}KՒrY>e55C7Fnjʐ}SVe'J@*CwFՇUe(lL+wO72![ , h_1s!~h_u|C1Zn }5Arx$M-Wm#ل +駄_ +q Jjie" EYˡ-:Jris,筗zɳq>/eY/eIhqX1/ҷ 3˱HQsJ=/KjC\u!C򳚼IG$vQ1.2΋bΎS<źC58986yu@<~HduݑJkq|CJ0oz$23ߜCb#6Ldr5q:ΫꐽHrLgwWܻߵXzώ&ϰ"6T*8Csl2y]ni*܄0<,dXAy aY0WBge`Xm;,1y}pmh!^\%H: :qM`rMs9j ub]fLju/{}$|{Qͧ #;y]G?ʼNL.A&|.<&&S>An]au52edt䬇eVr/uE֯kh2uY|?3$ KڙX-{[kÜ`CV4bbJ(&SVOuAcM''vzLr9qIv$|,d]t(m"k#AI:Nk6 ~E}Y22p Ӟ,CB9:=YCY}+A1sda˰p_q&zn/5"[I'&a `BӞ`YI_8&ۍa`2fow I[c|;%Lxw;m!DnO)>rgvh +=>IbBOL't %cdZA[v[UwLtGq3Mp$vH"߈ &XI36\ʎ$$h6 LUݫduLy6yn$ +abM1%`68LVTd11Kr{ߖL +YZ!b6p/wړG[,|`%=zHupLn=ɜb+zgLZ3#9&]Ynk`6:Dl#79MdҊMwcK?/Gne7#*[C$5),dk=2qj2eꏬ=q-4'/L}}%|Tx.Ն`WNs LĺӞ#5JdVg$G*>+eW=l> &;&p W/%Wn."sq`9@T޲ 6iO1|gRԛE9q =jeU$j} +Aɔ( iO. eYyd`2\ pLn.+U k+C\kd<=فJ'& x]sx=$T_vL{'H\|I?7w{xK0yqL{bK;&[&ܴZ,Lb;Y=2e%MJl/n[ +F:Ji7'?Xɔu[rp,҃cI&J'k32l&KlohLVnmFʮ;Ls29{(v6"14˜ݛL@<۲tLPn/]K`=ۗ2= ` (Rl!:ƶ0j_6={ݘo2]gY8$"~dݗd4ooeI hrCGw2j:p+*dNX2{o}1˷Kpq^&U }}Ӛ(Ys2$d'rLq#N/6 RDў:3|ȫI/.~գJnOv-}'N"5'08&cXnɍ%9~01[ALE]b*.ǭ]1&%*oBBA<0_b09bU +)|b0#_:NF\A?qwݱW 5 kOqe2 TW ⸻mc4fQtr .0qYUYLk'9&+zіxbJ$tķ$I;HENb"ar̝+2Ss{]ԧ`h`s1E[82u}t7'sE`ɤ`?Sh6Gw'͉?Ou#6{bl<dJh8gʖk1s;&,\"L"ӕ kc,99 aK@59Y=4LwC=0ut]h3Gn瘄2i_e3Sw{X;0Lo0dGF𭞔l ĦbEI&cY  J1VpGy- H&:6$Tak4&VyɄT1Mcn+`XJ``+`ӥ`re fGɶWX⠡yT0inN3d'3's#HSH+[V'V<i:2K<=K ash&] ^dpLfeM5_{]1E6<lj 2ۋ$ۂ>xȄlܞxm V,k,!e^y nOƨɄ͖uTH4"bcÚpdI4ȠMܑ'yH Ŧ'YWcd,VaB&Nz]9vy]=ZH0Շڳ#H&5F|W{%n.4"'2CcrC2qԞ`b8\̀PNYJ$"w{ld`u;4UE͓^#3;֓ ؙ5[iO,b5#);&Y΃Xkg&QJͮY+GT[wG^c$e6{2*1cgoϬX)9 cnO_t #,UcD$1,M٥fe& p{ cD Hn(-:ƩenO8Y|LT{fܪ%Rx)==Nu^'csf{N"(r o2u#&YV]'sJ i͘ yAˆnp d%"M)&Zp 7d2Kƨ.Q&3Ofq8\pL{VVb̊dǚŢ.eM*ٞ .CfYssQdIH0P(O@Hw`d:FƜavAY$)1F!5N s6Ĕ)&3V@qPfMx);&p{bM%GR +dgXy"$s;VH8ɬTL~qGr,=/GR[ ?r!%qoȡ: lGa)w| z>?vVcRm$B WW*S54ϊ`Q*tnQ0 {d,jGb͓HdXjy j)Ld ̨anOHԤa07[r{.o I쵺=cDa~0l\(Q1YP{@?,?rJ?(%S{NdTMDHPі$ˮzjFIS$q] 2 e:l:=2,=',bU +Uʤ@m84`bjG!@09ǰEJ'xM枡?q̖(y ~J, e=l@lFEdqo]橝.GO':$kNHv-لߍRC27eVHQ 1$$-#Ϣ*v%f>5$.^k8O$Et(zKXjd#3X )3`GvE{5Wd_E;c-L5%<{ Ӊ7ŽJ͡lT90!2~ ]!!w/D䩈l*Xٌ ~2c BLH~Iǣ[XBYY1t3ȱ$y\.yJ(72 +;b=b0\CpU9R8yF*XF@9,㧛-SIIe)e) [#qhXJ&lxm6CS< WtF)zD^9kĆ֤$ȝr2p HhЄŵQh&C*𞪞 QQzpJZOXLYei+D$;ѕ$jPmkIa1[H_ ^,9"D`}hZ22sEsIтH?ꛅMٍFAeӬd`BM1L9D:Ȣ췧A<#øF~9_T2mNhL"@E m.4{B'PCDUZqu%ˈZ"VKyVyFcc吱b^co*F &R M왳^j M3,!RSBF RU(eyzUːB1"۳CikBYs\hgn$Ū(T<+.~$@ .pXeG 2Q2xC!'TCC }7ȸ ~K +GcS;2N3W~mH7W$\c qQ蔿WHmU>E-kiƽ! W y^# 8Jb0n-0r$/CQ%֒1NUCO/ܔzr. )t Gc[9b,abk;4#Y.ڹ\:̳yK Q!(0veQI2B/DkPhtٗT-rDݜtM@ruW!'%C("jdBΓ7F ՠ4vw4V ey&ds`q~ZP(\9%M֊hSgr6jC07%WR`4NJցfN+2ԠL)E.3J=C3OM,(ޢ6_J8W$~7Pxm逸 +TAK-Fs^(a]euxf;DĢqzr[XZPrҲæF רw`GsYt :S +&6Z#K}1ER3xXWvD]#4ɶ^x ˒$'x}_㼑 +d+w.1^g̀檐LLJ%dt.bz&O +Kz/7X~fӌ5iP^ؾ$%_"U=8MVba +&QG`&%Re[wc_ΩM ;DHFErL3p6lJl&d{YdBث~LXK͒'Ɇ_b?IhL:! ]2a%H]RedϤi[,j<w*G ~&=0j5% f9qL)_RcckX`y]6$:69)Y h\1k6ndCDFâ?RaK,]\d$UFF_ "6' Wt/SCQ@!Q I0h'5-Ұ@NE`ŀX-(% +;e]%`/lШY(WvIYH:3%ET>S Qt] L#vd QBORN) ~?,5JJ**o{ UGYrrzI4SskZqcV+!Iӳc'.jҿ<=]qD9 +\ g*Hɰ+4+F?MO3]X9O@-XR%1P%ZZENZ +//OLQ:P420] ]HQ1?gRўe#8Z[qf6. :jh zMKe2QQf/ABIήƽ8,#rgYC N4Gk/l 3ȴy'A2jB`aeUsbZ $۸іI1?[BW4xy&{|tcp尦5uc#uz +A&>jJ> +ЈJ~8P^` +zw'aa%[N"I D|Ua4zsZ9@J 60Im&C%+ we^G>|SՎPD\y`ϒh bQ0K NFPL$蘳 bd)$xFs;&/ AWU>9a(甈*1f;HP5jq +JƐO *yߣ䘸iyۈ!%Y u#QypZ g}BJD/zseۦ2#2F Zy8*8fWraCVը1_5H왈d#dS_(Fw+>&3 :J LίeQam9_4q /Nj{ib5M^yӛUWl~H [ļcd!Ɍ(#(d#l2Q瘶:Kz{'WPl=FS45[,؆SV VOT ==I1  ]1:y\4I阥hH +Fj-M(s +QZ#vo +MЕD1Ndu(zoTRA_8 wO̘zodì1gw$ +|a>A'y :Āe>]$(a'@G4+9F fmjv]+d#karL`2Wa'`# ʇUl&d25;&1L7-f:ixM =-PZ߄JW5N0~SV`kz{4=v}--noށ}Nf"G%$ VQoV_oO'7ǘ5EFwl5Ě}ΕQKFI/`4Eˇ1N2^_e,lVas>$c<0Qo(BW4o7[3MmYTYjcɁhx,d}Kxdpd94iI?Hn#m>GhR: /MM;gF-3żaFFA1ŠhB`Wj)z6 85@r{yVUUoC5zzIܸvt;xaZ՚o0ZQJk}S,,f␆x0hpdk22C%cQ>{4!lk Rg%^mhe +ՙ&bE A DZC:>VLd &c=PD7GSZ*.Өm|Y]*An~zsڈ y?i`hhk/ǭHea*7ǥퟄ ^5jN)}up I$Nwh'CS  [)9Zd`t-tjÏC!֠egvyCNVgioa ox$'؈A'?9HVZ9CA` .x圆)Vf`}0R=V ˞Axb9Lskjh)!}F;o _N׷;Y S43f`tEKTLbnV=< ^%{]4Սǥ|:&bD=ٚFk~Ps`}U[һHuJ$i_ ˞:]J= ʚF84`]ױfQEKdOU)1⥫b `Aq|#JaHEO\ X i-/tVL)c‚ +a=OcJn)zM~\i;,ɢPXJw5(c+#cB^# F%ʣ5ҎX*Sn2S&$kEepn' }kp!9"ZVd ilzoz~Rl@@.;eފ?UsMw8bQt]&/yNC@W~YQ0k-l!E(=#ØepJT5nKDfhl 2[ ZR"Y?R0ު.F`z9ֵ6+DaBPsQN]4LS(S 9>:(FV{qL]t,Ӊd? &$@'g13JtECx&7-_SQ{؇cJPyý¿EfU#G(;-?^,G^^gT97+}Zv_ۃҨ.Qڂb4f3= EoOiUz^Ckz7r;rc鿾 6Wq\w]/Y&u i ܧv`y2 H\DtÇ H=Y0(~okSӪ޴y +mU4u֕`J XMLiԉ]`Xr3T47׌R򸩂3t iO^*XrKة +F1"(+$=vQ0RkoutC?) +Ff$7QNҷc*+"A띴˂u`I. "{`Tt.WisDDܦ +!0QP=.Q0C DYNqKkU B۳(%ׅ,[E:'Uqț*XϗR* +֕5uCPXE4O`d](mU#R貶y٩ +FlVUN.% +FM T.[Eq"K`DHn`4M-KM5uK4T8Q4(c%vi sl`];ե&QX ]`oZ7M6M qF&fTX  eza&V/s=K]WNv q';oz`*W%ñKXϮ HQtjfsż끱զ4K7=n̨0תƖw.duv8%mSYhq+Uk't遱qG'.90]ˁqܼF}ӰqM6ĩuu.֏6qkA~6F viP&V5F`GuYإFg|v.N V%qk4l FW=`}#ubr`p/$\?ӹˁhӦGs]إ8Nhٚ2֪Ftb4u]`cW, +1.Q0V`% +ƕOML9šEI[E8 l]`%sIDZՆe* + T. +`^8&v)+H&vQFP.q5ՠhCl`tȨ0z -6M0t-O]`N4~ FO~~Vd&l`ioꙛ*F+P7U0RKɂĸ* Fv.Y˻kVY0Uf*=n`0P]/ +[ox(u*]`ȣ-.^54*XSmqc*XLqLb7wUFй\n`ef=7QY b$kzɾiz7M %8 jC[˛TraSD.:񸩂5epGmV5-.򷉂A2=Xi0ۧ% +UqtA|SSɗHsإ +v7U0EVU0(Ž1ս.U0m +qewU08dY +fǰ,xTөuʂq S̻o`0nq^vɂqZm{]`lK6Y0,=`Wd8n'ʂUnlAd8(:7U8MɰKɱK6m^ӱK*ee6uhAҦfإ XV]0TN]BJyS3;t LZb`\ɬٕX“2X +]lU#`-L̲Is4Ai0Qq +yB* VX_.% 7{#M)uIAg7]6jcb44de+g͓7Y0BDKD.YB~#3.Y0ΘH03YtJ^۟`NuMN[)SR#6*7U0ʅ˥%Ph9[% +Vhɮ(EHȎ, &XLyKhgkk)ɂ%֛,ׇ5Tl+hBUMɂ%SɂzJ&ɂ=ɷ,X[?n`EWY]ɂQMyKhT[ejw*;Hx͏U:BnnS+QGc*YDkl`E4Q~R+ږ߅VIB}T,.IM umIVpÔ ;%x% FL R/S.J"?úM|m7`f-Iy.E0PhFo+G`AV)eZ޼jD8 XVbG1L؈[27\kU#M$3y)F-8 'Zl*~>:teIN=0M]ԦVM,[&F6Ur`dm-Ɂilt˪>7j`>ZAl2F5DIUV1>4H_[!ue%P@ȈV%,6yܴ2}kRiilM ,'=NT{#{xq,=&\Clڅk +Z`$%b7-0J,.Xڴyܴ.QűK , b9KFr=Mm] +|>] +,=l͆•Y +dz@T!{M|܄hDuYB`Vʱ%:Sl*nDJ!bNY,+U*Fl=N8b/XҾ"dMyhKbűK?nB`h&>&a%F98=LƩ-vI%s8.)R`ZM +baxM ,Q:LqKUwq!viqbYU}jz]Z`j? M7-l]K3x?M,QB-7M0p/`.x^k$+Z5\&R,iAeFPlf-ar`Pg ۾}rÈٛ&,t6)nn.1FN$L3e$TyĦ?U,*:. |{&vIEFֆ`%(WM00Tib(#<͞Ę7Y0 +c؅CW]0Q9eyF.22m* Lc2XX46m(@LհS XU L5J]\rፏWy0Sla)dDfwn^%”HW DJ}i*oaʧMG?9tVV0Uq} S)!QW0kZ`W+ViZiƫXYч7;\´3=˅)V0P=&VP Am\V +/*ݔºʡ&UoJa]]8yU +)A{ +ҼjyCT}o1K*fWp +ßF]*l(*%F +)7N0bAfr +]ZalR]m +cBOl7Xz%`D3n&9.n{R +M7+ǭd"ح(g $}dúi!dô!ToGpU6dHʳ}dÈld! +.tȆidȝ ]a ?rLK4lv_w Ul $^YE̤DEd"h1ʩ'v on q JUT6ͰL=K3ls*s4ala OU&p=]a8⤍M3?ұ٥0ٱӔ;5Ôj,ya`cXZ$ÔN̛p frd*Z60egb+i;rQ9N0m:'`bX3ìx֞e BȎb`ظM0 ".vbf+U1̚CnST km(ۖwjR}b^ +v*)7_ôc 0%V݋LS1 +ڳX/WtT ۗb*IylaTVE2 FoaRI2 cBPdR3\j fS.go.] OmaU4i ;90%$F X J!BcdڋȮ[$Zة;5ÔZHh\4ô?0gëd0160F;U2L9.Ǭ"FinaLp 0"}8OE2 Ҟ_i&U#ݶݎa3a)n Soau E3LymkA> vj)T;14 !Ӭ$a +\Kc wP+f)5%YǮbŽa`>h ƀ/Vi=N뚆c4z60e!ثhe1V0xkp 8uT SgWٰhe]dPvɆwaJ^kں}a`SMuÔmgN00 +w_up )M W00:(A ) N00To +vl~p]M[|Sˍ7P_dI 'v +QmxYÔ/&4CN00p²U:;t +k +)ڄr,1*"U8S~laaEɹbp$)ή\ %چG5pG$|3)e6i)ѳ˲POaڔI+maU\s9=qCrp&&F{gD3W鰪t70Hփw^wI)]i.~ N K: ^RVb iAYC~`|la?q6#uô[#H70YM-K7n@UV0ETycn6T97visϡMtôhTMG.0m]䠍M7NZC]7 .&v醩2u#>A +uVݰ|zr]72d=إGFP,.6opM8)maa}suM8ك'=7089#Yg.^M4+xI.W ;vipVFqo۪Ɇ]a0dAFQA~60x0G/sQThv?kjXwG=60@Ɲj&|T8TOS5LO=SR Ӧ8Qcj⣚똮aJ=9h$05.0Hl S9%)v -;Pr B2W?vᰡKrF ؅ôSMxp2sw؅@D呪crP.l<+EosSĒMoK9 .Ana+Gzcr:it)i7)Xl\vUtp|۞8ю70=!izS{|x]9N+ vɵy]9Lkl)AX7ͫr05ڤ`R o@ct,Xma0"BK))7ɏ]8 iYnᰆ nfcS6D׆*hs'ᰤekC&Z0 yaj-b*V0'.3B[H4ÔP}؅lQ؅ÔJv\ +y<:v +uznSpcCj(0ch1|pTK _xaI=v0[-rR$q>} 'e04caUN0sraM!/05;pF>vGNY0 ~]paK mǫ(Wk. +De&ojϵM ]`K@>NA0f.BÒtzj`@,S'SDלyR`#O7V$mB`CyР$;t͊W0~a\5Y"KY98պN0 KOp5ݡS H~)l(kE6Jy)<3/  }4o_B$=V/ oؕ@(M0b+ڄh5(Phǔ:eJ+9t~i"yrhe./j7\f +*5w^(Vt} =:SK>)е{ mj)Dba͛֗nZSBԗCWwwbݦD"]PgG1|ja*%)` VGN/]) |ѝMS .n^@jA8\lQ"ry)Dk@eMUً.L;з { %vx^C9r>:ee1SիS`lxNQ/ Ĺ]t&]e::t*zu%̤&)=mz^]兴Cg! eLŮS ["UK%o Z^@=RZPõ`~"hOJ^@͕!/ y<^xuM^mxUFRV/L^_WFvm}_5F*^bkW7Df뫀Pxin \j2hvwѫ#[U O#8rjw +1Ue^tJwH(jQ4"pͲEKH.v{ZdѮs2i;}_6. +R}RR.oOMSK!zy'. lj] +3絊uUeqW.5ij;^*&؅r=uÈբӥ_eZ7UK_$Y$ V.}ujtcu/<%jA;>)teyB@xc;tsMhy\%P4*Υ_e6M- +C(W>kj3uyMRz^|m$:hTD(/6V6Q /WQ-ą$zD(ևZI* ZUvD.IjQ,hB'SRբ>vZJ=TCݻ֡=C[Ud䢎ց7,9.UCUFXVU- 2~ݪEվO5SUQ*utU^ՏGljq0*{j&tj[禴`b]UVU-T9iv k>ibV '9$yZS"xDa (+ƧUL"<Ťk1I̐?m&Xl3債fIBւ>Xڂ@ƦQvGWH L +(ZZ{ + V]EYz;i-Gs=Z,'Z&0Adk1uJ@@'[(Ԋ7ZEsV> -\K}xo-]eVQZ -GVQ<5t-ى:˨-^؇łb*\A̎Ao-^5)k*'ZMBfN,21Zxs l1K%_KdL˨V9?O"ENݙkKd_͕ߒ’;.+$_~mE}"ߓ,:ZEwgk,,Z7OJ9|u f_S}:,"o, Z/3r0A ^^ּx-z<;Ztl RQu[bc *$"o (k[&iy- =>ٛeP-jcJ[x迟''`p8A$`(9lQð lGlQ#&ߝ *'zڊ,[L.E`-}E-j'p9n [Ec%lQU -,wEvz?:L)%`XPMVeyfOA ?fs?VQ뼴-`O?9~J5T&KlQ#@)E{آf#Q lYˎd_K%-v}-W I"i<<|-Ոu,ZVSזeߓدYRmSזߏC1E_K/\AP"-;[k آƪٟ=[No|?5oEieg_w.[*Fvl3kQ_kQOP%x$_KgN__x}-xm[utUtRGaR>,1 [g6#lQAlq -`ZH Z[Z5Ae-`KB-ݧWms[Gbh;l6-+-.,G"UූŽ')hliM:2ٲ7Ⱦh-c]8R4}bBam##4#[\eq@MR +M"SWǕfdTkEl϶urBʔkґkb&`cy-[cll'mz}Jf7ll5׼-"3hǟڿ|\q!G:%3ELQ[MQ A/cibP.[uh8Wb =vƖ7&ĖPݎ[2#I[KlQƎ͈gbKɁk-raR9j3S#EeebKM}~-~c$l#>T#k բe)~".-m4pձiTbUV\ Ė.HdlQ;MPTBdlid%hK5F\q-k + -ۘa<ڒisq-XK\,h[Dwr[*3Ic|T/pEm[dDn スZ]&'tK5Υ}$[c:5-xxm[7[5 k[VbB2Y1 k߲o_ٯݭ poGZ6 .|{kR\ypfgpF71kRV qR{Byeo2/MK̐R+G\:YqiW䵩qهRfJtҵ_n@.]h-Hr*w>m\,ߪ(.ϨMK᪙O{KV-L0$&CՂe&vP&ͥ{c^8%9s\r{)ř2Я {8_ث1F'؋4+n&ث1ホ쥭3$^ +!{5ZxT!tE٫؋mR7O=eQG{q3=b[aעu(z%^;#N_s{)(^/셈/KWSJjTglK̰WUZEMn4-؋8v*^_؋]vk9|z5VvzCa]/5FGi^̥]nFm^vb;`/lԎw-KxEJoN&Kۦ0D-kl27E/Oўi/6XfMH%/i k^$rifTbj~i/6OE~?v#+FQk#3gxH2b_wHRSv%6I{jᤸyi^QH{i KKi'k^ҷH+^[{pv=' Ŷ"j1bo<8^ >V+,./^~hTk LydžO1碽eW%kֹ{(|v: Ht+^{̩9ʧ_kXzm^ڍTL]ҢvE}^f'|עvZhM8 hL"Ve_`D{ih%Je|עgh(uD'ڋxnn m~ݢydD{i#S ?^ZGI" ķ밷sڒlDًf>}75<^q^ǮȁR-6^͌f^ExP~zm^J?d/%O?3!6^޼f|ג#{:OQNסwf렻?5E{,Rm^l>+<^lC лEε/Td/hJecd/ʭX9^l?{*Eًӭ_ Y\Sߵl/&@i l{J| #^MA~l/rq_=x:^ul/ cP7^6o~?JRތq;dm<0y?IgHm_ :94~{Yx9኶ۭY#BNhd{%ɟFr$ڋ#2^̊_Y/OqwkҌ)''KC`^bEQKDȜѧلu/fFY6NEދZ;m}{i +U!FpDKsionjߋR;S?zĘހ{Q{Fߋ}hQb*R-14^ Q=;dMyճj%R̲YEtkd{b t.^T2 |Qt|i嶈|iK _iF앎57%!_̡2sT<?"_!Akv95<"__gQ|1;-gZF +[&[F_i|4/6Qȗf_Yz/YQ9jFLD̙7!_H߭5/{Rt,/&K6/i\@l>P"%@ 1fK#W+"_pQ 'Zc%/]ifQ|Qjl4FP^ǍMKDb k_ܯ,:G㋚R0ҟ,_s/ѻT1X>V0G`aMAǛ5.'MSӠo&lV?ė&kė&k7u%k $Zf2$]̔oWQXkbւL57g[tk_8!4wKE| MKsnQ;_ZiBra)L^5@b~õH|+m/jl&`"Ň\EMėfr}k܍gkbYNuj|2gg*ԫI|n+u"UqGiם@|&Fzze +_E@[z k +_E1̘ba~oUҼ.I [U.^$ߋ=SeP6"U }z佄8؛Egt-^Ҝ};u/ΛJY_ic2^Ԛ^yhr|`&A^&|_-^㱏k=C{Eph/آퟢѯh/jL<sFx~h/&r0v]~,ިh/Ml+^eGghFQHWQd{\M6Ti{iʗr[;ܴйJl/v1}h/AV:Z6ϣC{*$L{mExm^@;^  X$ڋ⋞C{Ɨ-ڋ*C 0mL{mjy,~K&xd/>Gn͇5e/?QHQTCZù${!tk,b1E 6m] d@ {h[B! +o^צ Bv-kp)jMw-ً=Y~h/ k^bͲ2^fD{I8h|2ino ׭D{z=J^EUmQ"x-h"i/ + ׋r&$^앟4S>^Z[n"G֋?dU_KNv4SbثhqN9ڢh%L{%x&eڋ߃h6دI{iFǬ-"En#gh/Z]ըE]5E;-O6j<fJ$ZtIeڷLl |Lm\EVw]D{0{]*ˑi/:XBk[28|ע$֮ ۾KWUIZQdKbfoD{>2&~?W%Uk~H{ /`nڢ^>_K ,C[We0{1p1zѦJX0^)ⴁzUc/#^UMl>^[[͖zm^ٟe#zekҖ=;޾Y/v7c]23U"륁{cof4YaFub~P^zib_#OEKe-B*^X}5Y/j,Pbxcct5 eifp)^b<ƵwMڋ>UE"9<rЉ؛d/J| L5&/NFً;Cz}3qâEc[Eъo4̔}ڤ4LR~h/ 3/iK̾MiͥGڋOCƙBo4/=1^ {Qr\ sɚm{Q#yfd/'|/ 0Q,BgSXTx ne|ل4 cAfW-hٲ'>|IiF'KC94/NdTזEɸaMKAU~0cyx$kMu&F?0 Fq=LU2=I`X,\Ѻc(Yȍh#vY(K==t1h`HvW&,e|Y k`9h(En&& ߆1LiQf6U0ez(Q,9nKW-`vyzxm`W ڴ4X. ^8MGbfS6y0f7j_HvyD?9C445zm9 Ӵ)C)NOJ(X#VǥV=2:a%3٤m iB?'IrWEJ~ibpkbaϯ7hH3p_g Ѯ#s;8hMsLL +GtAvZlcĺ16c" U1j611EIO8ɡf_D|<>&a'Ǩ1CSI`*@VttL3p)I@$UDŽQ,:)d/X\˦B&3CbȐQ|29ɳ|fE3ziwтDn)i$e]#p?j`A*!c+je3GQ; w{i2dzq=aʨ_Q.0d,_4GͣA%1d|S+C*ooWȐ=W\a_`N^ELsQ Xl FN!c,gCvid̐OypԫK=0^Z l[|b )oEk4[{%ד敥q~|R.a裡]؝ I!#U%ĖBFh_=sDR؍l2z͘p)d +8/1<4v߳B{P.o2~ۼ42~+K!u"*UȔ.G-Bvi?v#7*drTqWBFN2&}դEݳ' a _R &.I!p].v%$(M{"#zDFm҂n{#c=` "S7ݒ l081d\.b +،M$)d,y!SB]WBFCezi!d,ndK!{vDhɿ"dF?DD%ڶB0jzBhZnOD !{t껪 cDA0{ׯ(2]_G9٢AIpAȴ"⵩JFP&CLtym:dԘ k";Ɖ Ǵ[kDjs`D֯66~ ͷ[ 5#Yª {??$?}Nl,@d<7 ,@d1ȫ" L/DD,pZȘf ܯ](2DH$ŖDf7D6q1Nv%2v,Jd +nՐDFVXS8ӓ%2_cAkG"kʲ`Jmh@C ߼ 2{2DFȒ!2%(ty-@d;#Ns "c.Ad̚i6#!2)\V)IdY_U9eݽ$21SdTȴI_nfnml%2©)kA"#_N7DFlvCI-L;VI"M1 v]^Z6Ϯc,xKcٓDFFo]D\{^[}]i4Id4춍%\z?{XX6,ic҄Ȍ{N ;ROzm7чПtڄؼr-:dҔ{rԽ`3^[tS6_㇌#:[wmt6gev&yj([]jԖC)Sz!c~߶ Pl9dЁo-L/DA5j"۸p^Q$2$2j4^i$M!WmlIdͣ,qrrڒyb>jI"c?aSY"^ '<)%q~%2OUkA"99|C "#Fk0e"c{aiO#ߪ%ûZlDpʂEmʮ%hXde9NSoEޯE㏟"ҟ=>[dEW9M+UTs8e""dBŪΉdp~lʦ}"+YcUy_N]{JYeL=߆~$2kY"L%e2ʠƕ$2hAL!<*]^ %0DFp&K UY &DTJdB #U}%,u8^^ =yU]ZKQ숞C7 e;P% ZȚuZݧA!R0?g6U2Eƕ{a"#Fͼ(25|ՑL"ewf@{o)2Z^(2OnRS(20W)0L5vXd4=EFG>%{V7.1jw\&[d;8_2EӘ>q hk"՚R|C ,T$2!Jٮ@Rv +Q-Ad8B/^ ٮ^ ^4Q:KdDU&>)K9Y_$XlS ZHd<&#W>D q81p{-HdpR[hvFٛX +)^ +1hl ]Gy-@dz>ax_ۛ%;d +$>tZpiN ^ x7&YCJACfmm|2vgׂCܥS->$DFGnz-@dglW " W9P)Adpš є8?_#A_mܯDF'^W"cĵzDWY<)NV+OOn"cc$q.GNȘ<8Kddҟ%2<[?^ 9_-Qd:Ec}xmRdx+co e"; )Qd$/9^ s";؍1gRd^o,Xdlux) &߯EFSn%L7mÛQ[١&>2L +T/Uͯ"SΗUJ}5Kl)^Z4Zv'Lġ,2uE2w>dg~ mܐ3DCZ~D LD~Oo@d Eb QLDFEIx-@d4"ў8IRۓ 26~92Nx82Λmˋg֙!cOQ2[yl'gadbNfm1d?l=!5]]"3dlCFNs!cBe#ZuԂC(zf(2,82Pbqq6Țv IFmdzf c5'dp/6L.A$ǒm7dva\LY;uYSƖQXs`v돢O [ jp2$_bveP} "CfwCv:q\29iE-{Ctf1#^ sCqں(d ƤS-*dD +١پ[HR/BBh滬)B\\"Cv1Q[ -<"CF(%YBK ~i̐,!;N}òCvodP{uuXc!SN˖C +y\E9,!S3> l!c ]t`r{˳CJ-۝N Y/YrfNڑ2^Cb/zb0D||bNݒ2= d m25g-_?ELWTHtdޒBvm;˨-㡔!- xm)dkbQ!cuXƱݑ:|Hq]rvbױzO3a3*d,Q[ +Y1z JVXXeT:B0IRҟ2tuHcK!#zmB.z)cmA~v3dWf9[ º}$dE04f@FidJ=lZ$. Z 2BiVۦ% 2VX<`]6,ݔ$s ]gL=-/ di؏&VeL1GX l^O3AzhE8%2iD]4O" dyD[]n W_/ +dDUdO~I c]C? #k}dj_b@Fn @mzpnyFmd7~2뙇헋[x~n ޞ?ie^[p1VLwnro Mr1@F_QN٭f;~?ma^[1kDRnڵ]_USĻoH{ []Gmd$@"@ǂ@hT:t ;kK M)Q(=̒ZH`pc@X\ޏ@h}f&Q2~Eq7>-rk {4qg"ȸ׻2GN#,dӐLIoH.Lc\;] 2 ) +x"Ș@ -LC'Q3.xAf= _wc*S#AVmܨT@L|Q 2vI*f4Ȩq3sJ-dj5Dh@c!v@2k%Dhm4X-L=Eɣ42g S0NDQ=c +na<=*d7v:f2|v, dZ4n@DMb~uj!dgs djퟙrJldc S,y#AV^|AF 7A؋cs5t-d&SW S+}Dv25n+83dU=NUxuN>[n^ԒjIfצ?F-@SAKuzz:1:D7^6ǔZx?RkmFL?Vu/:DwZS1ԯTӳg菩 1Kw{ic&#C#?FM(ɏQӠ>FGZGS_ +FW,-O^iBBx?nM:U1!fҩצ@Ƴ-[@F q:@F3>L25тb (-jW#@FwDhj<Թ2J[kwkGL`W2jɚ=2u{hLA i@Fg> 'L]G1zm +d4`c7dv~2m!{ِG8U"2@vZKO٩g%LyRG-йmdK ;9 +VlPƖ@vrFBMIxLɐ7sԖ@v 7EY$?\m[[]"2lij@P'y@v2s6%v_Lح4 d6$Ѵ_x_%dTh;WH=J_H[rd07#@v)˯?v xᏩHGB [V93@v9-6d[=^[]Cjc*md xccu '.s}5nO + Jwx@&ez3&:5ygď]z饥]< -cjWh'@G2` d +$. +dQ dY |Ek+c1o/dЙ HjwnnG3Ld^E jI]{D}Lg~/cȅ뵓DۏIM.ymcE'3},g}얪cƖ>-:97>Aݖa~}sbIkSjǯ>F_Z~1`t6c8qT.1ΏR॥q~4:6ޏ>8Flctuz,闷Xu>ΔhLأA.޿"n>g +z?gR -+ d#@-|@2<h mˍ$=h>~2@htT*dH9HA&f:ndd{ePb S7-d^>~2l6^"8: _=d֗ц 2(<{|${V?UEN;(?$qȚb%pS*dMYS +߁yo˦?61B{$Z{t&@F9Ï#@bv QwS SSe2jIŸ cX_^M~=oǚ.M2cD%c +pJ[lH"c*`E}L-lc|0@m`{Q;^}>^,.ӑfy~01js_/c,~L' c$?ŎYQt;F?M옦R1jF&++c:g<;4,+c2tx氘ĎQ?J;F&t*옆q}{mcԈا1jcŎɊeuNJN=k7O*c({{ tDUǨY|ڄ(_QFf|d֠UՂĎQom&1uc+&cJš9hqp鹼41ocԐ'<>cl(ءC@|^ sBceq;3y۲cUV{_1NVU-rL-aeq젹?m=^6hщ`Ŗ8by1F6$t@$1_VȂ8Md~F-cTűC2Uh 埨u%pE,;cYv5bfo&@6_K6=v΁ib1-kc2mǬh|1&jX8k+qmlר\>hcFܞzp_m\<{-ic؞QƘJ16Ƣ6F7;i"]][fH'+ ?TK}UrlgA܏6}A="7eSCpcDd̍7FD1ҬhnpcLыMkk:t~1Hq$*c|yǸم,c$0Thojs?gJS8-pwiN5@'pLq|6:{c6M1Vōi/ &nh~s$icoWFYt)F'ھgcÆ6F<"\XQ䋣Qkmf&m}l{{micԈd߮Q[ܘ" IGu(ð(rc4rclF''nLGqs"7Fl+ɁQ"Ω6ʾ QWƈĿ󀬍I+گ1 o-9icԚRD1t&m d)JǪޏ6f,-m(l Ŗ6Pvm91={pƈX%vV+rc_Uh37ne0e+B,w1%2I㡟VfBŖ6'mVG86F$@SL5}1/ّ1%Rƨ52Ŗ6VIro6cp$mc펒1Jlc^|ע6F41~3a{IS3VAS(N +St4Wxޘj ;1m*蠹Vlc6N$ǔy}ȨAǔc;QSm7c@̏;ReQcSUǡOT+ Tn_zL816W1Х6QTc"&?~E*{pS>N[,;?׏@]&4a2cLQ)d*P4,|LPXELjFm*dy&Cn(֊2LQ)ݞ>y"Sg0cd]˴nj3pP*ؼ62 /܉-ɧ2Q Z_˴m[uB-e{00J .@]r˔_OrlmZLv ٴmL$_hvgttV6H錬/gf-n/P[ƹq4?<^[n_n2߶ly?nYQқB52O ۯ[FgDIS +qs䖑!&H?; neDvXUp9мQN$\$eE1u?62mW#Y8f92bV ꤩ\q#> .##W%eD[r@\ƑsUI.c.~2\FtYM8&۱MleKLpH?;2Ɛ ~25\f-#x&wA[VHK{|b84x-C[S6*?l[ 8Q28cf- :hA̩^ lg JX``x 2vZZWf)[.=[ļ,_v 'e,k- =WG'-{v9[4⏼Բ&F2˨K6Nf6j,ưQK2{u8h,aS4˘g_dQcfz?fYաьlKf5k|2D/ݧfDOQ-6jޏZV7m=(2jIC7G-fkK-6se>2jn2jSHjkR˪MC~Mj-4{mesGAV˨UOx?j5t$Ojv1_VTSFoR˨u^dL5fBn/-J#8e*ux_,SLle מmt,S =ez) 2yoyI;tD-ez;}2j'UX͂CX& ͬ eUFU(eB(;d+F"U}HoQ#us*e8Ƴ;[+F~5neU'+E{EATXFmVS2xۍ;eԘif2J;ގ$iEZy̮ ,6BXFz,e،W,s .%؝k+c)YXBpᕱ8<2,Yg˴yN`t#E$qeRׂXYOG,ӁkA,ST:eJjg~ym}2.[@BL`m=R e>bĽ2ti8ߚ3Xǵ^E ,C' mFLXX'ij^ +`@9Y.3XƣdXՍCQ `g6]ZߛogCܛ6aMƜ\+# *^ +++c Pg*dHMLvt,xeqWv3WAGmre\/W@˕鷻:.m/+c$/Wvrq?26ȕwJK+c^YW?^.MDžJ+#UflWv]]5mLD9J+5*{e{j3X&k,=V_Ȳ]iSƗ/چ˒X&=ɂkA,Vs ׂXf՗Y,k<v7R;eM{(eD55a+Sxz{4`Wy->e{:k,k啑 l*%C.>`al8e5~x?`-,XF7ey-e4 k2XS}*%iP,>sejoēTX(]\5?1(ŕvxmqeȕK2] L\~m+SO/Vroͅ/񈖴2{sxmie֔llʬٕ2@6be82Q۳(ceqa +'fVG{_=beמͮ`I+O~25گq) de2 +Ovd+lt2]M*h[^E#xe2צW->ye]p,ӭs-{XIH-# (2>;6y[F`zcNXY#!Q WH/m~ٲdտ*RegbǏ_iW7Qe͚x2 ڎq*YelrMd#ҒU #g[k5vb~2(-_TN'ՂVF1)͖I+k1~FIsY+cֽ5X?b$XieGɤ[`KZY{1Zcʚ 32ZS[Z[kHvE0)pkK+۷~3+S sk +ۙy# ʛ 1{*LZB{oz+CI/e+c>S41ܱŕLzzv4W2ǟs}+#rdsf/ze;b+ci2+crԽp۱ +^բleZsx?bN[Q,cg~c4Rv2dIvVzPӽ:42=Yc,el{MuK,SV9C{rF}ջ2= ;uS,V "vލ~h"ȷۓYƖC e&MQv;o"YƦE팫f1m,C++e#PYvs*k,Sf6dzYƖ顏ۨ-L[=e옞ֲZ1mC%[b١oY,Cm$Y[ 2pk^lqI,c?ZXRx{?b㭿G,;X5n $\>F_IJc_G,SZb{7?edK,;-le~koܵ-VYrZmuzbCƳXvSc="<,TZFW`١AgL\,e tt le7ݢQXk?CsW)|&eDu;)%eԘ>ܟ,ԇL;?NLHu,92jtmQSɼo˄dju'e,@il=z2ͭt{,ze6.;Go0.ze\$r+xe\el3)'e ` :R@vg&e2 >MLC+R$4 +x$˨xi$˨]o@1q9eˆdlD˨\mXg-tkvA4Zm-%($'~̀iOw"ZWWhf^uWDF?ۨ LIw]"Z*3r[reH-e.1 [jD4 r&haOj26X]^haIKv6e27gD4KFMivhR)7fI-+Qc צZFSocHjev-cZA-fi$S4je eڨ Lòٱ|R4,[cZFkS-n!Q-c蕀y3oV˨dsI-\/ZF>ɖ1普-L.c-WKN{[ث&n&i;tl"[QZ^/KlFii+r nвgi62jgn672j|l L^t_@t˨Ec[F[9[>2ْ旖QCX|)ݲ:\惶:ڄ4hK5G&Lt5i11˽2j.2MZ_o5ڴ842վ6ڴ4plhiMNvp>cd.nr{me@i<٤4x޲W41 nHQgobet5ڤ˨1.6.}.( ehh֗2j6.Ӑ.3yȦ\!]p&\!ݺQ.!];Q-eN!ecLS ;E2jp len9T)QSC$L47ѷQ.viI.c޶pƸ\&DD=*e^Gmeł(]f37+L33LuXכ2jf. om2Q^Y.c?rCg?f˨]onf[.cPET t~Uccd.!^Nle @4xiHiݤHiN'"]Ƥn-?eǵHQLi#]&<.v3`Qih.(.8.<. yF{6p<.'[vXklvȵk.c7+8.cH)~MYgl +ޏ]Hs[yFme!˯]Y^-l{ښTxF7ဣ42t5eۮR`(em:3j.۸:Q-ekleߥmf /cN׋ז^ymJ[x?x";g +\c zcW/c,sWē^i}n('L)d ٮ~65Vd FzyAŻޏ^Fo( Ljz!=AI˔<)6 _z7ZNˊr9f#0cu0c뜕o%L[瞨~3 #65f\EÌ7 flԇ#)_xA#=욘{`V4"!KK0E]Y0Օob`FjNQhKe 0cnBT~p̤ThuԖ`Hq-.O<}s RGQJ|ʂ-:^̘MG0qs=k1IeMKELeGg$kS0SѦS)[P36Y=36f +hy3`{̦0v:9ɶW3#3o-$0Eӡ*3*i َYk0؂k 0c#~dfKȁs@d/tr{ZKx?|Y^4W~2_V9$Z~izY^Xil0eIqD.eG:^p_uQ/i_˨yoh=E{\y_m~xƖ]lijyی+y]qYr(sצ]F_yw$ep*9endQ;yu.FF;4 +]FMPbX˪zyа?k˘=H<`Qbw2j o˨ 1.FЅ2jAzƙB4̑ ^VmW8Qx3_:T-eg51&͟62j,uf±X2 43&ތ1̲ǻQcyS!xDwMd¼ʽ62j2K=|r١P/dV",E,@f4wZfeAflYV[";%CflG12;HGz%ߚg C XJd^'2`VؿSs= 2;T?Ȑ{ Ӌ١iQ V?١sK2'j˰mLq0a_K6- o?۫ Qٮ 0>Zvd&l}/T-l父v& &d夙тfR[O'͌-FMp(Ùiz6ə3zfJޮdmyiyf6tW-xf `zI-lWu,|8zf3r=3 d-gɅ&RO=3: xc8h3iAU3~Wcv$ye lf|kD 4ۙ{֖hRx$l׼a4ӡvKN?u 4m\i4wM6M3 +-[ÛLҾ:u4vi(ik,A:fJHGg6vc4#uߦ}"fT޶evSlqɀGU&ӌ{v,fӌb4*>ϻP39wF'f;yo}yP->f;SXbpB80>=jF/;WFL + FԌxf n"jkL5۹"lѧױ1M3?6hGn$Ҍ3{lc*fp|DG 2i ݨ{%4"͚RF;\&he6_-Ҍ4'Y"iF{DUE5F{ IYS"^ZYS$'iQqQ4Cee4k$f X(4k,5b/b2۲,d5x5Mזi|)Mvql闥QV +4Q\S2͘qǛizC5=;CLJ2/'"iƘ֐i#Xڨ-L*^[Ṳ+Ѱ2i֔iƇFñn[ELr)fM"VO %ҬvI36cd4co4S,vZ(h%Ѭe2zaԦG_Q4c#:knjYIu6gE3.|NwEьK>vE3Mk7nb\lYc^(qj4~i^,4fdҌ[m+k4c/[Fm+tkK4c+%n$E^gזhƴvҊYC&[ˍޏhV/%lcOBEьۆϤYUNiXc}EҬҏt7k4cԻx!ls<4jviV9un"Xf,5hn̦Y:s{/-L+^b9f~sA-f,1PlF|K'ˇזi4PԏimKȖiƱJvͦ١9\iu]L33xk +W4YL5L3xnf jA6*рՅiV4m|l1kWY͈/h.p ,f6d qWH@hhvRD32CKA4#Y gьNyьL]dL٢@3R'kkB ١%L_ZTN9Dh(ό~K +{kv xf~fRό/^9${X{h m[rpfli0=fR77E3&E3mXͨhX$e ]T6~ߋj~H3fs&ӌȦjWŚQ/f,q5Sm%dL5T,1fԘJ̚4Ei'L4,&f?yq+f1-mɝ4Ji v!HjĬ)Q3x9Q3NɌ.bXD{ݖQ3Y0jfU lf]zI +oRT5ZTT+g̊}Ě/5[X3 +A-LoKu-LҒQ3>&Y5ƑG5oQm%R'GVͨ{86Y5qj%wOwjFND)f\Z>ׂj}G5)q9T3.4jQpY5;5F^ͪcs0fܤQ|P3Q"gd5S k51+c5c#XJ 5K5;l4m&ͨhge4c/dLʦ}Gɴ^ 5 fc">\Q5ƒlI5;Zr9U3Z1ݕT|P/5~=W%Ԭvw4Ւiv \iTi&ajv1`\JۑČ;Z4{D~H3;\ˤk0L}Lu$rlisP)fzCYdp_YN6I4ӛ|>d 0kA40 4$ h{4͸`\sE3.BRgׂhհidyKq_iXɠό;'m'HFK!uA~@3BY=ΠMx4f76^ giH3&?."Giv[wqA-fPYP@ь `˖hFe#R.wUwhp5;ݬq&ftOzlfn $zmft^T7S'2j&]^pBԋô#jڡ-ԌޟA +'Ԭ* }dԌgcziVKGiFS4c6|tҌb#4o% G%1?3J~?;[l`3sE̘x#y*'G9yfUXnWFmyf?̊N^@-ϬjXdbѬґX貴5%U-$fLsI4͟PhxxK=wQ4? +ID3ާZDzw-L0ajQ4sԆhF9ޏhV<8oR%ьgHm%ѬYVx,k4i9M3i%g.E%5f2iF3|I3 GaO 5k)5cVTzBxNk T.f@EՌql-_ 8ouK5ceHb YŖI5klvX~Tk]y?Yc)w]u0ZPat,fMyPaY5SV*G5.'լau$L#;{SFՌG55X䵩$~jIDQRâ͆12[kI5c\QmdK5cqY5i%gĚ1Eȫ3fN-jfL{Q Wbx! FI5c`Wdɪ\eW^[-'w24ɚ*=C&5;–@&TF?~X/{C'hɖjfJ>R͎CQy1f:kJma(8be5cΈvf.M:R=]/j*6_o% H3jK5cI5;߶K٩{t l){QNڣ+-Lfj pxmfLݓjzg3fdT eY5;9L~TS #6:fZU3xrZ6jK5Zs}gK5`8mUO X3Vͮ5;W89CdmOVŚ63^ k5@x-k֗tsZd."k?"kv A5/RX&r'I58,WH{pBqEq+l_$a.\ٕ%WNt@-u7 @#ݙi Dzח-!i'lU_HKFh4B' +mcN,44E}= Ov2J@^2~#@35ԣ4{hyw׏Q d=0ShfnSj ifZIRv0 xUmi'\~l(ɤifhf }N434ܟFMVkb0;L+YI434f); >^ffUC43'Eq BO43ĢhfAk5x!IFv.MOv#HgW2K봦6ifZ"Gؿ gFcyof>Sdi\jD3S/dyj`L pG@&%pN3bCwB>hfiʉe`QfZxŷW2H%; ;LY|<:$Q'x0X-h"p5L )rf2SarN 3Ļ"km'Q6gΟPfhw6QfZnGgkMusFDiMݩ)Mq@K80$.eus +(34lF i̐$Q&<74$3+̨ܾWvSdVXB' 22ƪ&dF5fCuvdFQZQY* - gdkH; TLp2y'i,҇C6Ym&V6Afh 3.{2L'dSW@&Ȍz-XT8 3jlE2CdY̴ ҭU;Ȭ(T}|&:ל@ 3j0 2C 3Z dVn.hu?r K 3`SH \ m 2">g $9<[N c OȌ$y.k& xpizL&yб2Sp-^o3Fa;njͤrG'sfQeumKjn$_S87{I)߸;Ȭqsʛ; dsM-2xߗAffMQWhA>`If#F2SЍ]ׂd]2 duID2EgL(U>r@fq 2tHgO 3֝"u^ȸq:omOY.Xs̔ž<1t&1>}˜u33܋. }a̔!MO1CŌ2Ƭke$>'[E%1ӂ^W8f]2s*:AfCmp Ȍ"ˤ8f)`Ȍ2Gxť2S\0̩- @22l 8ε-ւ3-hN 3D@K_% g d&(X|HfM`lfG=~ĞPf5d-9G &Bz,@[,3evmc,Gd4-d42 w2{HWx@IL(36$:=ӘPfDW6YfQpbui<Ê( T۝f5оM%^Ʊ̨ kӫ6~I=PSR-x65<39Ӫ 8DlQŵ3CWiC; I^V4yfZ3; [umQ`-NypfReiK6qfHv™aJkg5:}k癡j:w3b|5MU`yfhtK<3*AC@34@3v/+4M!ַ١%̴+ 37\ 3 @fw3Af=kb;LK{,j6 3UdvmT^dv @fai-T';i5y&&jd7jfB@fQkd* 35A+ 3p}3O2S0LwPvuL%I2S=\$3s CTv?@fKbrF d6 d̰CvjRm 24-vik dZ#MJӔO`W|yi˜"7CvJ2GL5oxeӥcu051SMkB[3͵1C䀇1SmC]3e0̈́1S ucTS0f(!fa:jv1Sb\\[3Zs"FbBa aV-j2ئwFm3<]Z3p)mq"d3*{õE0S2 v fUzqB[3zb631E0Sbvge'&*d+f`]=/ fq}`֋e^o3pI-`o_eBަ0SmFZ X̎kws@N0SMf)[3ݻk acQ'L}sm!(H3Cx0Ctَ0SJ345MU0kQLUfh}g L5O<f֠Mpf);8eaaZעvv~f7[ 3]ճCfɾ07WeַӼӃof6Ad(1CC0SI_  ,!Tc/ mOl/0CSŐL%&#-eL0C:K6a L0S[`vWj; ގ`][34vl3=#dbyfZb{>fhn9&!T{l̐6`v.Eq"?\ fGtlT{0":[K&.27L0;mț f`vhd%'Zp^oC[D0CNP;`k avh{' jv ,%'l3jmV][34N ~DaY; ''&lH$Zfh=Csfh#̴ W30e aF%A %&Z7+}  COm1d"yjb]fh78[s'ՇV}fhfٚ fhX|/T!9.AШ0;' jUiYˁ] k;L>[3mVb%|R5$Ukbv8#a̴"<2 waD1;↭˵E1CKƘ1yc̐b1#O{j''1;͌!u|F L檥1GMKC -act߶cdD-WmcQW!~_nCSИjĘ߶S̴ R٢-oL1C *LHYt"a0i#Q̐DH34E)fWE1Cgbִ;tmQhND1cS x0 QyT(fVدF1CJa' aD1C2"Q2qܢrxyfplj`nBQ-he9;lǘ s1C -Ȥ?1f4pchr!_4a] [ cƮi-Zeg1CIcvة VZ5oYf<,3syO,j=2 yHf>iڄ=1)a6If-̬!̴Rbˬn_\-YQkfX[ ffU̬d%p5-Yԓد2cRE}b\[(3̀Xt<e5<戽DaWPfcPfj/D[_eVjzӵ`Jᒙ&D"nfQpz3caf|Ӛ? +'x`fLtT+fafQ'zl̘q:،3ûMv][8j™iQu}3+]&ΌC!6yf$n,™m mxpk ™$؛iǙ!IU™ؤpf`Ud tr™Ozl83+21k7xl%`f|443m!mÙkNL8^osԕ2yfШأ̪RÅ#|z; 9ͪ|ԗB[@k hV騥h4O f-`ghif,%>4\\svKcOU5 .ixf .hOLrqw/*Q]vC [$tgfO3u[qḭjY=qiR+f  +Ё-yό<7'3Qh♩˯,v͹e:i g,;Qbqf:D™N5fvb٢q:I3r=L436RD|mG찓 h9̴MK&gvrΌ.&͜-$]"X3Sݦt.fmxD'Qƙ :ofpf4~Q1 gFRc [qf7%:783}Y>,٭Q3L +XMaf$S,[0[ {anfvk/T73 edSlbI,3R0fsXf 2 <3e^&y4w|LM=zc0nʼutmn +I8f!/\:[03Z.saRUfN- mDIsD4)AP'YӂS?fM+S3ѬlkƇ0D4kǻf][D35Vqz#5^ Ƒ->LLLM5-UvYÆfh9khɫ"5oDИԲE4VU3 ь>7l-azj;L^vm͚ZT6zQJ`dwg"iBy%hNfc-q4SkAπ-hL>$Y#G'Ҍ4j~Ѭ!:fM7ǵ4#63ьX,;hg$ь.P8@mkhVOg_mD3,+ʹg&Lqx4Zd♡IN|Ǚ)Jji)8j̴Bȴgvy3CkЙ@)Hk3fݯ3;-+avR~evZ` 4Snsl & Qti~jUۀf֪'bijzW!QtgtG9+̔}O33Tb$8hgf]3CwmY̔# ;όVU3wBr4WQ0?L\'p:B4u!ֵ3UhL<3o-=]L`6UùL{<34uP$lgFa hͱ&̚c_敁fFf_ık ٵ 4C3H mhr666z+VA6R]εʹo0srM@3=Dʵ 4CѠ WKT|v܁fh#R\˾D3m%vʹUg@3BhϧwUt73C#xnXiucg\<3;Lm1;>yfo-v<3;Ermʩ0wsg&ng:@;q♑GgF.:#78\♁8}-f8j̀E:,hfͤfFZ K3͌45\43ҥi;͌45Ks432?ݿ3dLmO9Y|pf`Y:`Ǚfĥ3;9<g&kLmG i^o03u#)g/3L[?affqm0tP0(w2L}i~̓$0aڂr*(tm̲I)@3wS7?ifihF`fXCm6m43ekZjIڂapWͿ`f搠Ѭk fF{CgIoNkN43rRȪN3Ӝw^l-L43r u43rnnڤт>b+N zpfF7Y sRL4S0F3 [&ID3caf4>aft)c3#.703r܇=t fv LW~w_k03#`R],Swn/,O,x!̴%U2Ֆ eF۩n eF(##vm%B˻/YfteʫTMC^o,3,|b%Vɘ-Yu:ǵ33}pQ fFc".%̌\/vpy103F8][0qG㠻`fQcX,`ftɂJѽQ̬-q 3},[03Z`k`f[ fFݑr;̌n7wh].-Y~+2ˌ8 'Ɍ7-#hq2L$yr''X2ɬ>$eʬ`ʌ<03M(3kHƝ~2ӆd[?nCiC5V&ʬhgVg"2+Kub{e6Qfha]B(34^>Pf4"nGdVwk{$34jjIf˭CShA2C2+xLJm$34<6̴US eʍ+(3kU eʧ +I6Qf4$ eFy@^܄2C8?vŚg9'lp ,2C;2CwPf"6Qfh6Qfhl^՟ eFQM֞8n̴Yw}u0׉ ??>Ԍ\,tj6j^oLG +vكvfL RnvӌKY42全3͘H@95'1(ڬU-hE44O%diFVfZ\N-٣̌3͘21Hs 4cؿ3?uY&ХZ$l@5an;ӌ$.!V藘fCѬ 4#/-M"ޔ|a;l` `)Vlif)3; V+L3匐53$Hazcir0-#͈;׎4)/iF$sJGi`z!ʹFz!v.ǹ5#:b 5ڹ6fC|o4#(q=b4#&܌454cG-K̷8!/lܺڣBεE4Ӱ6 3 3{fafDlHce٫Ҍ9]w#qC^"!H[#i\Tھޠf0!-zUqfVNrPbd2lP_= j& \)Nf;ޏ6k$Vb=-*3ܩ>!(fmHH3VjNFzN(yF'CMH3`tODA5h6sfmь6kX>4h g +G2ьmB|H36bߎ4WIT]#XW/+z!pv2WF ETH3wJ: ƴ#((^&[HmZfB 5L%ڎ4s j"#ƌ^2lj9w4ͨt\NۉfQO˹hFF]%mFDsL4Zw9ͺĀK0m'uB¾f7(pQhFlC[D3fZS[D3i=_hַ3=嫘f晑;жP%aoIgFg$+kǶ&5F%64hxόH\crvP#{&YD\k'\7Y'.[@3M҃5e hֵ4K+dYWӈQ=8JD3ȨY[OFuX^zC=vҬ7ݟ$iMKHD^Zqm!ͺN/RH3*(Lv4^ 3Ay!Hlݬi5fZxjj;ӬW]Xi#iF kiƀagQxb}g(f]wYfTSf ꓈fQ ȵE4cD$f\N4k4YfJ)pm(Of S ) +ײE Ь/zj;όu*=J<3*yZMID3CV2͌*RÔ=̚z_r5iNY43jV!tIۉ^; TڂWI՟sf̌:V-Y3[#G][034ꄝk`fMq{>afãfָ"r8<0t{ъz)?`fL*`ftJz|̚x5l٢oA[0fV +* p[̬ez5L03^`ؽkco$,\[034T:?if^vڢ5L3CWAL3kXR!6fʂ!6i fe(YX;?af4e>M`fnlH034YpMPf,ߟODgʬ2kZ/_eF7:':Ongܱ'L`2Cˌx}afhx>afM3C#umO2S+HCXfh#{ogђ;;ˬgeԲbi~ˌXRNL,3$H' (.-Yc%/&D2C{p'!D2\uqmZ2$34&nq'8B[$34'l̐΢^-YB%q:;cvYej;Ǭ)v{{Q/oH8'B|c&onol34Vl8f*1}qQI34lun瘡].M +۲%Em$Y;kk c#c c^qێ1C#3wO˜5uU c 2 Qgj'ǁ8[34*m?a̚b]Z3Auڎ1S7)aTmi cZ+[3հ <q0f)=޾ˎ1:0flDƘ6mfRCT3LOt+E1S 'I1Ӌ=1VEzcm$%~O LvZn#)ÿN0CTL0G`֬:@vL3f$?-^ l̾`#offh]^U-CY9%s47cW!t?0C׵05C̕0CT90Ck̂.̴ɫv37en<0ӷo3 :9w2L3}ן34<ܙ84Y 0ӈX `_qm4`N> fo*A>[3 *9Owr;X+4,s;LIG`Au#,xl!,of,aA~^-Qfӆ5EfLŒE-Lz5eM! bk/b +Ik:<-z-LR٢;l fMX>-F򐖧3V|s34VIe;Ō- V{&LdČZf,َ:F m,0ДfZޮ-YS;aִ˵0S0lK aoi;¬)cΏ0k +Rfv'l0CŒPaF^Iӹ#HUga&iߌ0kjspm!HIŒTNі3RxV_-3 T2Œ*zCit&`F|8lHl=iA"[3+f`Vlr{Pv)Vȍ\3Ҷ8#H[tGS3MMDincY;LsT\`-fBivafpuŒt;lG5]qc;ܾvŒ= a^{i=` 3v<*Zv%(naf\WbcsWTaHdOGf?t/j;Ì}%Z"뤑L`=.,{Xt6e` `.< fMc*̨ pz"QGcv{'e'QpnTi%2Lg\&iyEހ fjF=9x;Œr fTxk arnGu]<]#< #,f]܇㰅0ߐ˙b;¬[˵0SCM!Pu;lGQDt᠈0Ha aF|̉0% FL,BƊfYY9 #(:vTFfԂ@7/L1BL vl)f]ն KMI*[36K:S̴T-d&YW=m3lurum.F1S &3ϔ!fj9KfY0c[ob$Qtm̴Pb;S|flwif -Bq4I1SIQ`gL12Ŭ=ŵE1xڤQs eX(fXVMF1/;s`zƌ|R'I1fxVXtuma(s;̋"c( WM;̪͹1 +$c5b7`XՖk ci?{ε=a#CK]㸅1jj]7gQ1fjyQaƘdq1gԒӵ)~: 1?P]b`ڂюAцLEƵ 13*33_s -t-(fA;4E1\33m9K5ShyYS(ḇbFWU<~R̨D1\5ăSƘQqxzØe|!Im34(U˜ u?)fe -`;%Q(d3J,iQ̨h>>rF8F1Ӓ*Qp"}(f|" GE%]%@e bF- 0}6!f]8L3) szaaj!ZwmA蒼l1J C̆DMҦr fFjRkLKv֧ªbFa S)fTɘO3s bF M-0$]"[ 3Z*f0NB]kÌ۸ 3RUwӵ040*'l1̆vad˽jK3Ìp=a64( WfQ|3v r|2L f9a; {֪|@-mTQ `xoZ ̆z+]TfK(WnMPh\ZA0;x4?; :kH_U/lGcNd|U3~R4mǗa!{HQ@t]{4 +E&=P"a1 rN0{qnfZvvCS"fX^8D^-UIl3;`{=[*0/[ʤpmtսIv|٣ eO%q{Q}Ɨ=u:e9 {e9i^^h& 3e +^.{蝽G;!& zB0o}_o2>|-vكmiNe4'vO2lq~첇n&7vSt;]ncq;.{U/{a.j,Ƈe%]smukL pе.{qw~-vDCv.{\.*MzZR25ǥQUo8f^F?Mxe ;u\eh aO7eZV#66zLmQu~6z; Mzڤ 8(ȶ=ehҷyK2uե{6^fEcu&Lkƨ/,!MvR'5[$t*%.F.r# +0uUk\v2vi병ˬجK6dA.CL.S]/Jeh1'rUc'&2CIK-:S2U۸eZf_6eKBqN-Cpt[^8;qԋW[+µq˴Hm+q-"-Cc3vnz^&b_+w޹ehL*vn5rLxN-5yxTڨehW mRڅ󫣽6jVDI- +$:Q*rlbаqg□aTtQV\mh+ˬMwo2lC4e`dqlШ /\YHV2 +x \VW!u-Cc'QFAEuO脝MjZ' V;4 iú b9%mÖ\a˴m{L $`MGL`ո-z7lֻ@Mlֻι{7eZ6KLp`?Qˊ9~u\2b Gm2-w갊D-r2A&Բb_36ڨeZL-r7͕&foiy.ͲQ˴M@v\2wc羝Zn4^6j5j͂ZnmX=Q˴ލF-znBh;L2 +@ݩej0WN-CaqN-8MnC^ZFJXDI-C%Mwji:N-Cr݊Lp258&L+(wd,ӊ3˴饼3˴324+۩eTmF-C +h6ehԣMjl?y;Lf +iلi՚vhv~BˬuxZ@(Lq-BpmA˨zQejy?M20/7}1˨s ZC AL+S{qeQ(Sd3ZRe J ZF)M,g_oԲH62N&LKF-\CL'jYgR* dIeZOL-heE-Ë7`djVQuslR0ڦՑZv>ry>Q˴˷_o2jٻ[9|`˨ly ZXg|ECp;-"% 8C˨6:px\2*TD-h ی S˴2lhRt1djP +x6ep*,QB8B[ԲAx'L o`&hv=uefҢ +Q@dh%%-4,!.-h 䖺vh2-S:&h<:eTgȒۭs2L_&[2Ǡ^-Æ&Qkdv>e@ D whc|\Z2j0h,VCS6&f:ԘYYF-{d=kRZQa.~kZWP2$qdj dR3[27 {ejUVBԲK 8ali͎ MjUjgNʼnZ}̇c6jVHȼU<&ܩeh52(2.pL+(E@Q͡7&d- +$fGD^Y&qQ1˴`!*_YFAlmYְG ,ӚNWYv)s!ncYAU-&J:1˴2ҐkYF-vO5e(v`L H)O&J˴J@&X~$P ,tzw`0^gܛۀe ,c^c6`  mwܽ'/UcT~!Oj\'^г/1ɚ+:-\/d}웭,>i7'_k#_ǯL<8Lz>co~=^>}Talc?}}ciq?}}}V 4:g)}61}O_g5mTiN|O_g5֎4α?}yayؿ>TX%U?}}_רϠWy46vyMd%>ix}}^#MIFY}O_K \?}^#!k ?}}_XNlcL}c߿>Ś߶5WFYL~0@.8NrWXhG~qԿWqG8q67ilNP/_Ѩ,6Vcx1k3 ,O}l/g5h I[|-d4[Ip2m?}à3 ߙt.MC$9=$+=$=e{I ׷ \7 w \ $ 7 i'oe2'i'''oSo3Orn3Om4_gپeМ^0mG/}([V)>Vw QwlǠo{16 ?là;231fw oǠ[1 oˠo{01{Gw ^"Q5| |ǠEu2[5Gw ^Q|ˠo0ڐ?MScX-1?oƒ!cǿMux?q_QsS[kO'p ;N Ӣ/ ϮYS; +Uw/pc~?fq>`S)x +S̈́~}8? ox_aoneư +.T(2G}F~=a`n +6~[F03-#mg_??0q|<hw 8~w[.AW2=C1zC~o﬽՟;(o󷗤m(_Kf%>J%qZ7v Q҆(s?UQ~ Q84okG9S +*(%Z!T\}^{sKu"bϯ[0p +/}?=Gw~o8ղ8Yz3O>udtP2\cuHW\1?Yń,%+W Q1SX[_ѿ0ܞ 5mÖk Ens˟595wYP? ˸(M}W~4,ׇ>z0 o gk7זыT?WV,q! hIZ\H6jٛN:*g^ݏA(\a}Р'ggd4d dd/}D&Ri;B/9wYy5)(_NdZdf7u{ >]x]9މ_K2#<yb&j<3Iԁ"S5CQ1暌nc'kfT +V,s<㼸Vj9,:S#!1cQy=Bf#֌MM_J2G +3Mnxͨ}kN8cyWD +:xJ]m*)$rh iev8cr-&odF|h2{bT(c'wwb$XƮFY\ԳmÑk!vh3e-yn.@{B+@l:AW_9&hB"&zj S5Žjp/#`өߖjg˹,uMC_JKf91$ݻ6)F+ X˚4[Oʭ$qκ96qLE/@ȋI$x:DuMzDh& N4n~5o޵'^7(k !\"=Ѯ9" (@_ ۵u=p!MGJ#GX }LhaFp^1ܪg:#0P xB"6ǓqwDz@-LaHTs<^hкh5y&W#k%Aw9p >iV#[iNZ`8$4&i)/~!ːО. V>5xz_ \9Z&?A? s;xhlc[嬨( Z5.h. `_ɽzY\$M5tx/ j<"MUY9ZjoZe>n7w.a%dtXZaRhUTqTZyP'alvBgy ؋T Q׽iQencL W7jX6!p s< Fu5iO0v?~j%Aؽ-GxjW%azo)O+AH|\s]6M{'S)أɺta|._9fZY"UOA&Ѡ+jL.P5pQ9\% \#|ǫ^&bS$"w݅XT59SMd AW(?]S{&Ɠ3"jN`tyjV k'Ѹ(`Ր*scIwa(6 =s8 a;[}jN>yo@ y`Z;cFx~Hy%'4`q9'UkCnNve?I^ ´<v .I,;-vF2q!Z#^c19ߑ(UCuMVS\p,,2z ţ|ײCKz)] >5Zd]\b=\0dJ9adK~sGHd=.I˝ cJDy7Ktu\$+QLDC4xzи&j4lFuJu=i +uIVG<N Pn:wu }8c&+vI~5l,s?YhhdMhlM,#<0Mw4@TU.1#K\$2?vF< +xuM YNK|1䡕۠s{4|<9>S +QJ٘J(v@ޒ[ +'sN~nhߧxrK[4rc<%lO +s>ՇxEUO#3(ujD58Ǎq +/ѪJBaTt(YI/A ilV -ݶT@2h:\ GT@ɪ-{?ns$LFih!žD#7 hD?钩:M7_ZbO\>v&ϑLUMXy>n7k$.kŃ꟬&2}|5dx\=.?<Pi@h2J]JGvSd *v'E +chJwYFF 'gTꟆbTgᰆ$:vmtB]96s!G5 MɕK̔cjR*?ӎ[Ӻ#+Q|eemzQlgStvJhH:]YYx!| +ZޮyO +ЬPn,orkRDݸ-J.ٍުn~^%A.~;rc1(Ol**ӖKm MV?5?FE9tcM^[fJ$yf2'쉹VH~S(天!?]y\.`5oMCEEf5sIxcykY$ѷ\fUY8#d-|{=:Mf΃52I73i.ϪDZviZN~Wfl~7mn}Q&+DR% U4޵^WU1LC:Hlǻ'g#]OWM DV*>ǡn醅g(ĈjtmWϝFMLx(p'`/ Sxyi>[ǩEkdR4uN*m2$f|O0 QHմDQo=-CS m5j]lLRz#P5UFW0ZTM‰BVk"ϬL'Y^(*@mnKM˴aa>YAZyC>W^_~Wai˞*( f8{&ٮtQG5m[<]c7kQݵ2iI@~X iz/c (ɚ@4keq$E`$J8qhMw$*KJ?vH! ~c4A]l|܅bY]ZŔ|iҊ_xenƫUʂ>a<˵͝[۲lb-豿yyӯUP8 4~u/;NjQJ,>i#};6An, pǴHCPA'xo[6 6aWW-н\ j]gHu*kŪk4\[]ȵ%td]{ᅏ2#JmHAKRk5?h x;/זǔKvq n;Q{7a8_e^󁆣X=Fhx`nA#EX[!j'[ 5mP,bR$!!#}>qq#Lx- ~xnc96;\TеvDU}˵9A%VF0Ã$OF 0Ne^^3\51 $bZmncZChl +:>VX5>.au?3fjHEi\bhE!W" ,3e<9t@hq c5 hr,cZ|\5y< 辮$~A><Z#i-shxZ!Ca;WfA\_ϳ6~dn^Hags%6ujfHZobfax^BWV.oQ+sy̾r SG7Wc NoڋK@?_J4@\B6=nhvV7.- +Yo`⎽蘼\CLB2KA TAzV'R΢TtA.ƫ, qy#-^O'wΘ^>1?nSCk5z:b"[!Ҟi4B%kųpfybsmP'xN "^9wt2 +܈bZɴ~<nQKƃon|P7xDDQM*f xLJ{# e{\ a彧{B3_k1H 7.ڋ>Lé2B +̡=n k~/P*vP~H;QB 4( %S&ђ sdC{ƱoCO_]7whdknrv{ QPWwoNzuԃJ̻c!4/.ktZt5Bkc|Z059k‚>q^z*Zs>h7HƂz~=\uf zb&՘eUP#ʍɎc>cc2W;h}yqV(T7ʵ>2/n¡a\К[A ݂qucW09hh@CCAhm6vu/9h(]'- ahmgt2dyVbh6B+f|_4L]sɵf54B_TJ.MN EڏVp#)Z0 +ze-:`.-~B+ԸRP^_utBRsmZ+7bq˂^j7,V/]~$DaW\zEq(,- 0& + +aƣ2`j:^jN<%:Wxb]o7.¹Uy63yq2}3/ajYThȻ_W4Nӭ=zG4(3FEhƿy\3lqV(,3[7x3ChWD5`}~/"^WCikHT6S,9] TP7;"?b{@f_e +j-腺̊Ƶ30jjYۇZ{M Qg7X*ciE5mˋosFZ`_sX1C/T#f ag-zcDDYZthh7`z8tBQ-~ШMjja m1:`OC9@z|&ۤceu`At;^U,Gڜ`5W.Dv!h04ynPU,MŜ0he:GB?I>he :0tkk +nbfFlH']fS-l/-tCO4=kh&a +]b`Y,.'`WUM+)3֑Hm 䴘e,23%o)&/\Qh=/@S^S[) +4tCHŧFnc%.q$lTGi\C%{zA/TAU$Yi3%z=)J UL$Bdz\Ԋm^UϷյ8m= +z{u\V6PFb)ψy͉h|L2gr%j"k\If3=f(: +ps>gw%C{wz 5/m,ɻ> Xzg.?q}PYxf+vR3/ 4ֹ6f' +4f?@3,N΀-Y#f!J@3HuF +4ct|W\@3H)/ Z[{4kEirqQb3@1ƛӻ +4öm<2 ZeH][@3lL @3h(Pf%aoϗϾ +ьc.-cDch]tڕ NA!D&7%qo + PYC"ݨ ~lhݰQk i8*J4Ár_o#5L$~eYCEzaXhM%aީ1*D3AϰJf7Z&5ӮNYc?9khMܹSf͐!͠- Q!5,ТD30S͠Y[Vum2n(D3h %5،-^!5qE4NS$% / lh侍h͐j"a,y!5+yZ]fX f[K;O+ЬaUoqh[SHi3k>V!8N.3CT +3koyqkN_e0^pń̚M@eYC +ˬy5*ˌ0O̬ asl5 ̌Ä=CafCJ8s='fxyYCs k f6fV 媣0=Om107GJ`f0}Yoc!DsXf lUf%Vr[u\aaZd2C^(WMp-Y}ʬgC ʌ9U(8Iۦ-YȍY̐ >ԷVHUok6YX( E5 cí̐eE8KCtmdm,=@.,6LeFqOHf/š鱢$3['Hf/뾤2{2`eơԓ-ًK/g2쥋}+h_a.,ݾQIQ{~D8zѷ^Fja|ekD,,3dx{ _&!{a$>`BXd!$@A^t6{N.E QdU,oC!/2c^&W\[(3`vsPf=* +J2{Mf^e~B[ 3rV_cF~#^0fHGշăb5ɊB1{3 @n| 3$4qv!pbw<'kȽ* Ewqq!b9p +1@)6!f Y=aiF +1<8'xDZ ŌP̠A_3hhtAf[?SJJ Eljw c0Z`Fg3  )fp'H.Q̠!L1W{9͵1Vd43_\ƘAj 9fhq<*(3Ǚc-Azf7p cV9{1NNc Iq48fp̠qY5a̠=mM0fÈZĘA+"?C3h#qA Ȫc G>I&3hx`̠GcV1}Sk\`ܕD1L| :n& %3hD ʙL3HI2Q̨\uAC lpL X` K0f;(fn~0S̨:(f +^B3j(x2S̠g;&bF/|&ČFs@ f#5?bFv1cߕ1B̨ 1F_A$bfB1r%f}DZ3J˂R8fR!s̨٭Scf?;[r2~;Y@Afٳ^ 2gl ȌfIf5Χ+ 3 +}g 27b3f:C8f|K3[#dc~*w|nr̸Rc є8f@\\3h6 0=J 3?]dv ڱQd`B2!%rm̠=f4IfV +KHfv\Iw,*}f6If8,3&h 36 UA>x{A*,03h}þ;p0|)l%I1h]N*K3jDE-S25g'[]Z3< ~kYլ32¿Jud3[1}9co[[ 3hcDC 02̠yWYǓz_ZA{{Gay^ /evk [|eޮ,vAeˎ/+2<57]]~by2c#뎮vvDwvYkA> D ýq_)M e!$]0N]Vvm_ل!R?^賌3_5z + YxB&Wiݝ@e[P0D!g^e@j ^ȉZo .sxYm/봤p~;;(keze.cVRMvNLMvOo&v4䵫o]c.&#gh]ma*2?0K@bZ;{ I+)ː1SK{3y!&˘:Pe2 mX#DA!e]ip`e(Z6z|r*2CWy.C:y,Z]ƜZ]qFXpoC(ܓ*%Mo=\9\vr _e'IrIFo#a +rrWx6(d piG 2t.[dkZ6p2 )pI +.;QدQWpɾ_2 e'Hs \ct}^-rىnD|lhp"l?Vv!$Ze'ni A<23H&An$ 2h9G\pk&U2ḰD. ճl[H>p \V9!A{W7r h]rd/2hoyB.q&z%rCFӻˠ!w)-*6VF-ˠ=BMpj^nYon_gnj-?@6ɓ[F& \<"ْenC_斍Zg-6~;sˠ8q#UaTj& ZALDwpˠhY]ܲc8K2hFQAC=v{3_%nYXͥ-+HtE>|Re8ӗZevzπ + C| tzeQ +CZNBeS2{{\V + +n +Wei g53-vg>-?*[V<"ز&Vlr`A&[ԲeѨ2T +A w2SkԲSF-C6a!UZ):璕ZVR٩ڤ!ѐ2B-CpSjYy3Ge^t-+XtW =vj [,oH[VՆF{[V_Qj\Eʁy+eLmB[ܲƏ-܍OZe7_b3c˘c\-}*xɂ-IZD-i6-YhՁ݂-CrePj70ق!mnkOm Fڋڂ!cx l%h]qRZ UGhٍ'! +-A[U!MΙhٍr*2`@n~ZҸ/B-2B-C %C[Բ/HeKUw 6jhqmaːZÅ-+ZƖ!u–5>( .k)-lͤ덼-C&۵-;–ֺ6- [ :Zv_e&<"Rjٍ~jnOe7,tJ-CN0W@Rn'HGe76@u*r8Vmwlͬ|4!)VPeL֨l)^)2IɊ2J-xpj WI2&쁃Vj2eR<5PJ-C6ʼn[Բ–=ǟ2g Y6* xa-CF֩2EeĬ-{䨣ܲǎnRn\GeAloUps/n6-CVtC@%nكv9ܲ8L+aU˞+/J.C +wrكMA<;]~\ۚ\pY iqe&EeJ\v%%=rRrf={J.{GQSrrgZNqjSpp}z y"3޵.{n!G d\0Qu6K]*A5m"ke|dQeH\Г.-p gKdŢ_eȾ_p|pZRnك[ 9[5)زb'ز'(زq}lSiyZ2 nBk [?!2AkŖPIR][زu<زzaP(<)AOL=,8ŖqN^Ŗ=()\[زEQP᰽ + lJeB. +WԲkumQDBeޘ +AE6L-#;a|)7lH-ԅZ`X 2٢3^=#h -{0pNmA^Oe( 56'Awmo=00+$,u* ,(Qʾ Z +UYZ \0+ Dn P׺)A" + Z~ V'Ge [PR|n!*:ix,Cmޡ2 6 YVaJ,Ce`ʜSYVQf/ ڲTfYőOaaw/|aU 9^e!dY$Xt( CA3[IJz擽*w!ՓtFX$G|n*ۦ29u_bYE\eߪ"E絀^e(;4YV9|k YV8Dc"*tfÁ"ˠ5=d YR2SfYr2ˠx,9Getx{YV{5,*#*->RecwYj´+-V:[2h;z|,H͍ȥlPYO-d4epzPb$Tbzmˆ, G%\lT "Ak2Re/UV+EepA +,cu-`I/z&,f 6' F,2 +ˠCe^IOer % +8][ȲJódYeK*MdYENL&) ]oJ,h) ZeXViT<3/B,֖\q]a2))%U2ImBdXV18ukX%aqv73= -YV;oCA,8D"*&1#IB,0B,-&XV9gF,6HVN2{˩ˠ%Ugkˠg+CΚsW^4d_]UUpeFھ W/**ctNƕAJIm-\`+\H  }O2ʠ#+ŭ2h5V~|PƁSheYQ\YE}fVz ?UV9`?3(*w + 4*ՐXe7*!< ҇ +*->'[`e0!ʠ-SOឣn^_XVfS"#s]b`ev= LJ M RmʙUfbsV4ή-V61UVʠaUgĮ*,*m7V-RXe㍚6U pˬ2FJU+DUV_rFKXeFjaA{..6VYem3U#kNf.**&ʠx6X{v+%6aeaQʰ2X ʨq6ie>&eZ[͌c:.7SZYЇ;t ֧24͵+Ë0~WLUfEtmʰtBae%`+c'xX*2!0 2.E2|q^RV=m2l?&lH5z*{,2l,8/ʠ5o<6TYyXae"V +U[| UƂ2ZN[˨2h U~ +EUV2hί2hXeKmKXJ*Y]Vq {Z+v8+tĀ*'с+6-IVD/(Dʨ-XAcPb˨GXFtN!QVK,3-0+,3 ӵ,q6Q{&'2JUyevW,6^͘`V^m2xׄ. +^ +VFؖVfO{ )o\fŕͻ6\a22s@Sye\tʸX. q\+3@1g~2.32n aXfe( x¼Ƭ2{˱kXVPJ,\±Uecno(-dY%,CbMJk Y {n25t=ex *-dFu@-d4_2r2 R_O .BYtxeA=#,bWl1x~e񀴼ԅY٬+?IGeGKwDžX8w^e,?v~aPHB[5#}5(%0X%;!A,)b& (J + $cg`k6\e$XFxb#2kLYˈf2|NjFsGXf8kw9nˈf߃D,#az>#2R1(bǢr?A%2ҠI42&g`}NNg`Ze0kXFsU| +,#e:Cs XF2l.e%#=XF$2;KhXF$؉" e?[6 c<evM+#^l.V`M`4$3 32iʈ&~ +dAAumfAK*=*#N7ʬ2| +#ꐗk+#9&aִlʰ20K2h2ӜPXe'pUf><*#|x$TG|BPeЮTU X爏MTٴ˧2hcPȌ*ֽwԵ*# 2;ʠtg#᧬2hYeY̬2H 4l:Y& \bxt~:ͬ2r3\f=rSVG& xfSVpbABn@2de&MV#H7*#R*6ס.*#y0n,2hTaU W0ZPeP$Am^ЏkUFm"2h + (fgUFmD!uumN*YL/4$V˳.MV0LxXbQ{KH֛XeƏSYeX9c6YenX,ʨaQў&Z 䁰(59m-ʨwlʨ&L{Y7LsOXe1ť*3m\2̾ dV]p:'Vݔ.*C+ʨ"-2j'25LSJ2jm3MVc[]sOʨm;QVƷ5VFm^Zc]|yB+B̴2J$2[WF~aVF }D+3dZ5xA$28;$ʸix!2j6q6qe\&Qˑ+]NkWcł+vV\w-:lgJ+ӻʸY4?hedu]Ld汎DQUy( =EYP E_(&azrKe!b) + Ja"^LhSRdc),vLܵ,CT\A[2qen߆,CW)#% ˠm2L֟Ȳhŷ![exDsH + o2c5,C`ڧ2ˠSܔZ\hB{[2B-qKߗL-1 me/? P2`Pp)s,\e/0-QjOJM2"l,H{ +-m2TWe/u0^~;yZeΙQdL767dΣǺ p(2h)?Ke8=Q!2uW2]KIJ||#`N#6EeИrJX&h`%!'ʅX7 '^sˠŔː"k2 C#7 XFG]} g:;W\ᕽx + B~Re2K{8/P"^xce< 0feВˠHXebUHzH&20weۈe!rm˨\ҵE,?C;(4lkXƿ9;XF #>ei֠2hp۵,=cZǥE,^`ˠ!o- ;:-C.cF.?TO sRexi.2&0!uFPƽ] AeX= r#xeܽR'2c˸˰gp]I.öPJ* ;XWbvv(侏aCm^!L,6[2n 2DO E1`[Bbp#貗mM9] \ m + Armohc2L6euE~eD/ !{%14jp!٢gjpz]Z2tma4< [vpo6jq35!S7y߽Z0?\2k/Cˎ*go!滮k Zsв.蕙ڂ1C_hww÷^eU/Z!k"s-APfZv2Kٜq2ced.2$VB[] +-C'Le'_WZF[3Zv^(-;$N,;[_PfrDA6fA-f=FDk(od +Drolh*̲p B hى+)ZfQkp-QOJ-;Rh.́ Zt_2 1֡( bcfsVh|Jn2L,m@˰u| 0 jhep@],B{2BN;im̲ [z0ː&9?ܥ,a1veH| +-{S-C&sAK2CZeLxҁۙe8ΧYVI/^ShhjLZl2zf -:Z6j-CsƢ*fYr@Н97AeH8|µ-ʍD- }.1elpmZH [rxTlxmkxCel竮-p6{aml8Wj.;.As-ːzQ A5SPpZ5 \,Sp-$UPna+Pnى2or?Fv엀.nc3\FJKto䲋ַ,P2nm +.}2zM^2GP +.+ىrNҺ˰0.c6 ;켦-9#e؈[5 [~w:XNe@l8FJQvرe:V\K2ؼMe8<Ie0WmV~e׸elz;%N۰eXql|m[qkZV;v J-C[,vj8^x9ljPA tZF-â}y?вI~eB,kZjYLer:Ojqq`7c;-+ԲƹRzu`/ I2@jݩem2emSNMeoc 5:I;\O?Բu~ԲVτPP=jY3;PqcSZ*eSx ,W5eײީe/jوSN-(P|ٴZ6J-+u+nX2XT QcF/p~Z wjв#MZj 6 Gd[[ Sc?-Z?Բݕ ZW#l<2l0:&2ݘeضJ2\,ÌB23eg5S0ENF-{onkB-ՍaฃRlTlYM' -7nYe11/lL&&2LecSr̆`z㖍Crˬ k + ا}Uno2tͶ5g疥 Ёظe-ujgsJsːe]etE~#[e4}"2 /]e,(A`ګ'~ex]}jZRPEU; ݮ>%-K/#ҍZ߰ev6/aznEذehTlYgY@ovlthm۩ecl1S˺51+SPN$XejKMWTȔZpD[FB- ,62VEeM`- 6-{Bnkmڹe#9nٻ6; aaUlY#y + f$266Xeh!X [G,QNQF-ùgԲ-cf~e8-5_;vnY[1?2ԯqX|@ xt-V7ŵ-C --C#ALl2x2ز [vш-څZ/mSB-?2w- @OP&lZI%mPY?2ܨe%mԲMg) Q{m8( 9soZƈ>6jʿzF-\K2lXa=r^N-ü8nUtF-kw[6^_vÖa~;쵆r-9asbp +jap(I``v Qn_ܦ۹e~; {f[ao7nZO vlٓx;i9[6^6TaSM?Բ)9f%qq!p; h +P0NѦZFZF#/ee- f [uV) ]㝱 [z- }gX``,|2&`ǖ=28’[6رep>x[{npˀkm[f%mܲdV-sPDq-sv +.C >gXjp[,I +.C~<=d[V†-c2s7l:LaiTŖ1^g[V5>`djcvE~o91>'2 rv?\6XCrY%F^UrnI F.3[wF.vN./Ɲ\#Jvr L) Ut;gLeV^hRtK$.F`]mx5"23d?8`q5C-HeЬGD/kH/ˠ6 J A-Ù^ġZel rmˠ +!^7Ǡܢqᥑ14ACb^Ͷ˵E/ѭepms flUY++m3hGe-p fЬo>)fCGhVYM +1؁1k +0 CfкM⻶fHԌhԛaawqa֘$eA[0kw>H =S0GwjIWX (¬6a6i53 +LE5OTY[ + {M ̐B_2)Œ=09}qa{ahkQB̠!K!fS/ Iy ÌSs\Kf^xt FSk;8ea* SGf1 3h31 +psDf]܆@f Ei!AE0C:Rf ec%A`H fЖZMJ06`ScVZfe'PV0P`,}y'AfHP' +e/|f?<-i `+ ?e4\A)[3UcK`Z24 U0$ct@RnoQ0%py!^BӵE0B0k<3,5 f 7A%A*  7[3TYy3h͍ ` + =lYMlAP?f${*R2p `W +0H +`FXXq3Ѯ㈼FA"nJ旁ӎ~gW" 3dV"Zf֛ Smk bƱiX1f,]3b K* 52쵭D f/RM;#* ؂춦b".3%3r1ٵ1C|@s b2}9Q5pT:ڂ-ksb/|}bFKٓio=@^.N y/R3d1#\tnwy~;nj.wencrh EW\0f%1f=}n59=&7H1fHL' c0yة3 x lR:m3F1C -g3I:L(f 12!3ÏlPछNB1;x)&)34Q(f4fD!3Gd`֑5ou'~Yt~ܭ[uAU5u2uÏ-YG<#y2Vw"EN{(¬$a5%0ëF#h a?{VQfx ר2`a3fCө >a.:}a7mNzyJS^sBmJ3X| 0vAA{5 ̠auWŒ0уOf5_%064]2#`y~Y~GD0V1#̠W}V)3ZDU鏟fwg׏u#3m?OG)ek&ai.43̠0d +@]f%4T/A*3Z#s4A]6$3h3M4O~6)f+ >iE) ݐ)fJ ƬڒD`̠]h)'9f +Gqmr_%Ep̠5+3hhN3ics}Aa%2VzlhOd >dmdViLXdF@e #!AC9XmMHf ̠fa6Ifxw%̪Ű+X2T20e4k.\$3̂+I2fSɬrgqm̠5dF}.["ACkas L2SN& X`6{6If4 mB2v#+1d&Ak]26*QfDO(3hURPf]׋՛Qf6+2#N?̠9> E "(@fD5(gdF@EkGQd]}d>ő+dFUsFAE̠`c蟢̠ݫePPfPڮ̠Y%)eVx¹6Qfmkec(39J226OW&ʬ2#SI2#}=e&bAI.26BdYeK`}2'L,n&A(hLD2v*̈#Aй̠מ *d˟=19h2$u` 3@Gf M48Qf"]IRJ(3htx[& ZY+Z ddX+S4aAX23;2v׵dDٟL03h[03$V^UN3tm̀A Y!" @sڄA, 3gb 3^fF E3 Z׺ee#]MYf'yAYfC+;>e$i_ev,=FzHYf'2Ll̆ppd*٢LĶNLTO蓷NhfU.G lΔ6ىIى}x2;uBCXf8uXe] +2WXf]MecuevB٥Q`;VLevas* '2eFUklE]ev.FPfיGeV<2cbꑮ-uEPfV9(D.8FHfH5+"$ &pi?~If0W +ciޮ,H`8P'$3tb9k> $ 3djl$Z$.+ɬ%_8cl&$3]<)l^Hf_lƵ$3<%dv,ǾdvHIfVHf6>v7zd Vٽ5dWcaa0cuV3Va&vl3 Yj='3T~hJ^1f'_ +%h1]4ѱ-t1 1y~cvqhf3 {*Boz.+lh? r.ƃt!pmq.4yηq.lU9f\("0SMw$[ a@f//m. j 1qb3z82h5kx2 3GpAp̈$8f=s̐}L{aH+s̘41[o k E9fhV3a]J3Ȏ" 6kȂ1+Z[`̐[=+X1ڸSЉz*[3d:I0fGR1f׎H Ǭrɮ-xi ,B-ᘁdp +*[| Žw +o& mnå2+XÒ +/i(\4@*̐<|njs )3&Gრ1+Ϝ D% 3Y@fTvK<@f-Y"9V@fY2+X +2C:of|1rh*)3Y 6☕iΈvA1+۴-i }1+( +3:IcV# 3(a1+fǘr$8b&Z9fm $[hlc6r-5h ca$3Cm^j1d +˜VB>1fNtk c:=mcV9xGyX1f mvŘЍG˜Yx Ks1f8+-x#I1fC 2ƌU9k3PP1f;O.0@&B2ץ1+0ӷaHP01C![˜bȌ)1QE`8_)[1f >o4 (>8NƂ1?+q0fŘҍ[cvJ1fx=ׂZe}'HR1c5MpnSMkӻcv#S%ݬ +Ƙkd[ƦeP;339У$3b6`zmnKfd축?[ ~@O*i%7v`Ft<$3eNv8BHfF^ẂǍ}dFehcV":;J2B; 6ٍ)N DAdH*x*$3I|]@d%{пdXmyIsmnXObnAcsvP<gfB3y-E+43BR%̀]J3#vQ2 [;[Vhf(][43pWrm̀;nX d*43639{fh%6>qm43q_bX`f`c@ ܗgڂ؜B2{Sm03s6ԂIPf(Qw9@=gR2ʌ/ 2R72{h/B=)>^$3u/;~ %g e5(3s @E{- {2b90#(3v+X=ް,󳄬F6àc-@fMكI\=N1pxF[3BxoP3 $u=tȌUДAf7$xHHfx"$e`( 8}A.d* o#X L2#U"ЋϷB2CD-Ɋ27a e(3zϙT8A;SPf$kp̆PWzE9f`o={|T9fV$vTP.13{cS!ftyKaI{,$@r(O( ^Vc3)fhpX(f C]sJ)f`^ފo݄NSNM3{yÞ)fe)cЧR|0fɛ `_ -5ic/G|lL, ]1(fboAbf2}L1^A3`} zB[34\mB1{8y42Ō\Q;bF/A2Ⱦ4bqmQ:bFbF bog 1{ǖ2̈='wPf@b~[fhd( hBX/ h_Gfl[{|07ʏ06L+a,v.Ak̗f`F31`^<\#3}Oz|.A񾸫 +1C4,@hV ygbP36/QDC2QU(ÌUWّL7]m`ۙ)ÌW9>.%nm͍aSȸA%ycvƣ2h~ 20C:O, 3Ľcc= &2rސ2g@ϕaE0Qى2(삙7 n3ZLfh{qb *%Le6$.M Vox.3t͉ aL=# F& 3.\vavu03fw|;ì2ʟsMMf4Cy Yb8 󗗵6} I( |_%Xak&HauW kv]J 3&<1 +٢=Bfȅy]J 3DLc b> +1CQlj0CvI( 'F f8̑ bvU_f7zo,aFfXwf`Z3r"ui7{6̆zp67b6rpvPpcCq-Qn6ƸvZ˜8ܩmy̷U)f4{8)3ٝZ6ϣn>;g)fm8,Q` +?6ٝe7 S( +;3^o + f՘V +1Od[!f23@e b0 fH|k b;l7f/K |;Č}bw@b}RP?PČ +]o_bxb}hQjn(f(1 YEO4HbVY b38i=WY?DM f4 bA"ܮ%&{]K3 b(h+ìz<0C-wq-1h*^|`c20gj_fm5};ÌM-fRBr-!̐/m5f# NUY˾* 9!0{"}Z2ֿ2̠@Ff^umb3̠3$WiSfI 0#?n +endstream +endobj +161 0 obj +119447 +endobj +162 0 obj +[160 0 R] +endobj +163 0 obj +<< + /Resources 164 0 R + /Type /Page + /MediaBox [0 0 150 300] + /CropBox [0 0 150 300] + /BleedBox [0 0 150 300] + /TrimBox [0 0 150 300] + /Parent 165 0 R + /Contents 162 0 R +>> +endobj +166 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 167 0 R + /CIDSet 168 0 R +>> +endobj +167 0 obj +<< + /Length1 1968 + /Length 169 0 R + /Filter /FlateDecode +>> +stream +xU]hWdj~VlTdc.JI5%[ddv3l\@%VRP|"E&yhb +Eh+BK>(g&Z[sιw=  w#ʡOfH#9iodp?*M7ߚ.,L|+?Js9NFHޞ#EVɛrŹvd䪂5I\8Yێ~di([fwHpgJVyn-4c/͚%KF= =+6q*>yx'2Qa'؆HU_um8"oBYGa1>2.RO]Fq#1M ֆ낵5U~(LB'emꈪ,wȼhs"LJUNUY} vMJI9#k4Jˆ]J&GF#Ԗiu.r}аqp4bK#94*w[;lv#̙bw)*9*_Ӳh$m^7㚪 J6/kˌ.2lAvVb !y-hZݙ-Q0YۜفΰHU!+W4Jb9$%i5f KOUȤtJ7UUU:}πs.H.?ڒ-2GGTIsaL >nM# EB3z)$|TXnnt1_ ;β\;r70ŭF$$KS&;=վvn~;uIo{Q9 FG\ ѽ( ]|?+ObTSa0OzQ˾i&֐tr0Ca}aBՋY1ho8Uz`PMɣ@x1zVLT\]?i'leW2i4)FYM=.w$Pf<'+$ib$J1PVia6?R> +stream +xk +endstream +endobj +170 0 obj +9 +endobj +171 0 obj +<< + /Type /Font + /Subtype /Type0 + /BaseFont /EAAAAA+mwb_cmsy10 + /Encoding /Identity-H + /ToUnicode 172 0 R + /DescendantFonts [173 0 R] +>> +endobj +173 0 obj +<< /Type /Font +/BaseFont /EAAAAA+mwb_cmsy10 +/CIDToGIDMap /Identity +/Subtype /CIDFontType2 +/CIDSystemInfo << /Registry (Adobe) /Ordering (UCS) /Supplement 0 >> +/FontDescriptor 166 0 R +/DW 0 +/W [ 0 [750 776 ] ] +>> +endobj +172 0 obj +<< /Length 174 0 R /Filter /FlateDecode >> +stream +x]Pj0+l CԒX}q z0h[lE^X gBpjV& +:G:g} +endstream +endobj +174 0 obj +234 +endobj +175 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 176 0 R + /CIDSet 177 0 R +>> +endobj +176 0 obj +<< + /Length1 7768 + /Length 178 0 R + /Filter /FlateDecode +>> +stream +xY tS畾mZmKŒlk"»`cW`{ .$M9L2IJNɴN@ӴiRtLڴsI{5kedzik˞]֎5#j:m~wmѭ/WpcEQZ_>J)?qԮ4' {g0.XFil>85E4>u xfNѸ R!<Xgs8oÛpbp <!q+  PU l|?;x9'g5|ļ'$32n& x)to;ߠ\oó $)sxp9Qiie"9lkF>]դUJ\& x/5ZO p4ly/4vm.%,acS>ŘB7bhxYg::8ctƸFǠupDg~π-gm֖ј<n%7. v9b)r\w{>{\;}ếHSZ}$+Bhc67h ߸xA7b!#u2bA$wB}k"==1@[a,8b <~xAZ0G Z`Xxs>n5jIy>./AMYa=K8䓲y93*zFu/9ajl8@*jkiF$/GteԆS !|X :f_O 3EeK_T_d38͋eɾhmZMkkb<<T + n;Ip9(2du +M4֠VpKCRA.!?vp,!R#*h=X`/i`G8+-S\nZ,N/(O1oge@ic3\,c\@߬±{ms&3g&SUO:1\Y\)LgCrE T)M.qkZXZ%ùeZe!I L*2S1Uv;StS-&,JK;{S}\Y5ZS.,k=76+oYjYwNT{ٷs əU +=fj)jw) Btא# +]d Bl&f3[ʚM䵡镳R`TV`{nxBPLܴH.[ @`#}CDpyD`)Cb|yfchhn`lw˜2r6y@vk:33g[N_|њb\X1<"kչS܍+3V_Ir]i˝ 'W䗖{F{oy׎?`ɉ-k(֯b<6PVwR-G.CTʌ}l=JdTؗ0:)`OjEuKnGDMK +iө{[➖޹{#FS*QE9~o\1Fh3|ǥh|Fb#a|/,p2҉dLc4 +dǜh7%s`Xvյ>~ɛ]CU$Țq5_SNyI5<.Xz4HK<-, :tG>L$_*C^ړwB[-UE _&tXdkXPjn\z+[#NR2e0/I ցMƸۇ>(IVvl^SA_sxke'xݍQI9]L_[xVM$_j[*w˕<.3t yJM 3^EP +Z m4}BP@HgʈG?}ʻKl$v0x:kwiMG~6e$u$5M/7jZ]uu ~ ~ž,&MpD4y9v9oN-Y@ !AZт-ZaksS/o<7,~/MIeT2!x<ww͜|pLcٱ7x/Rְ9ry ,G d*NHtP|38U<ޑ.WE4U3!tT"E ٘}=b:þ2P$*" ~ sd\݂$ƫ "mqz!g$AzX",SRڄ)_,XDa650):2E/ٷ)t+~W%rG]UB#RёdYLKW#?%v3uIKJPJ!A8HJDÛG:"~D{K' -7q!H@ <28ީ!:qoN. +ZP0*4(jFDNAUtge + \`TR$tB#%kbB<(V]u XEUjQ~Yؐ94 +G;>.d,ߠ2 95a + jƒ j"p33tΑ@ꀕ7d`%mL@iۻfs*w׍y_ x=ӑ*g2_lH& x,RpI(\rJdDlh}~ +§Ide(&%&5$2[[zO?~y6/^n8߲}y^||5VTu|laF+>ѡV d˦$Bq8??OsҦj"[9dȕuK `_(([W2xܬ1 gMwUUyA7nfJ&DO%4,ѹ1ne|h3*ŬW.J$qR@\b-$dA S2`p莎+mxaWǂu2gVNW(seXO32D"%rnU@nv#ʊmnݲUfʷn T)@N&G4bh\ZTbZt,M͵DbdaKp3/0? DCExMgjŸz,Hv͕"` +#3) (4 &'P~Mo4^Q"%5H)ӑn\/`]kg7Xn21)⋗{ +*I#Xfb#v(Ղ GQM T3,q7f019!㩞~XNÄz@O(jյYDַ'9);2AH7A`q8Tw~ʒQX< $fLz;+D9G4z$~<ҷ>*Q*FQ[9U #KJ/ؖQ<`3!<% kǭtYIbƈa5A,;vpY?nǮw=_QXPQΉC#)ơ^7~ܾ]î +>:Zܽ*zH|i&EIC4 +Fg@NBM%umh^$ۊ*C_=x;.? Pv|'030n=Y]AᤪGV=)<2 $mQ$y7 Eyi'+K"dS:*:SYU\d5*–ɌӐkĚi^N*¥bJp2 O]*X(}"tM:xs֖{wD6kR JY77ldK5зpJZ'`Fa@kI;XUB;U,djVZb*bjr[9|w{W1f^_lpjԱp}jM}PAs O`^Gc/A IkIV|O{{n?Q2;l_d#.CRTpSMMX3Eے}Ǔ}r`> +stream +xk`px| q +endstream +endobj +179 0 obj +20 +endobj +180 0 obj +<< + /Type /Font + /Subtype /Type0 + /BaseFont /EAAAAB+mwa_cmr10 + /Encoding /Identity-H + /ToUnicode 181 0 R + /DescendantFonts [182 0 R] +>> +endobj +182 0 obj +<< /Type /Font +/BaseFont /EAAAAB+mwa_cmr10 +/CIDToGIDMap /Identity +/Subtype /CIDFontType2 +/CIDSystemInfo << /Registry (Adobe) /Ordering (UCS) /Supplement 0 >> +/FontDescriptor 175 0 R +/DW 0 +/W [ 0 [365 500 500 500 500 500 500 916 500 500 555 276 388 555 555 443 276 833 500 750 276 651 391 526 443 526 750 443 333 500 500 680 555 394 ] ] +>> +endobj +181 0 obj +<< /Length 183 0 R /Filter /FlateDecode >> +stream +x]n0E +/E )TĢ5{H ,_Hy ɥzL;J#kZ nوV]un|4=`'-K>0mu_,oNk͍m.u:YCGFgryUvĒgWioԎλ->gK, ,A+9in9qy{V7[ռHx<A(h*@(r :*b#Ij15: Й9GK̡S@gtP& e9jYJO$P P@N7E}bBcҿ{dYxc8-#:ojrΏZ0ct_v +/f +endstream +endobj +183 0 obj +384 +endobj +165 0 obj +<< /Type /Pages +/Count 1 +/Kids [163 0 R ] >> +endobj +184 0 obj +<< + /Type /Catalog + /Pages 165 0 R + /Lang (x-unknown) +>> +endobj +164 0 obj +<< + /Font << /F270 171 0 R /F268 180 0 R >> + /ProcSet [/PDF /ImageB /ImageC /Text] + /ExtGState << + /GS1 2 0 R + /GS2 3 0 R + /GS3 4 0 R + /GS4 5 0 R + /GS5 6 0 R + /GS6 7 0 R + /GS7 8 0 R + /GS8 9 0 R + /GS9 10 0 R + /GS10 11 0 R + /GS11 12 0 R + /GS12 13 0 R + /GS13 14 0 R + /GS14 15 0 R + /GS15 16 0 R + /GS16 17 0 R + /GS17 18 0 R + /GS18 19 0 R + /GS19 20 0 R + /GS20 21 0 R + /GS21 22 0 R + /GS22 23 0 R + /GS23 24 0 R + /GS24 25 0 R + /GS25 26 0 R + /GS26 27 0 R + /GS27 28 0 R + /GS28 29 0 R + /GS29 30 0 R + /GS30 31 0 R + /GS31 32 0 R + /GS32 33 0 R + /GS33 34 0 R + /GS34 35 0 R + /GS35 36 0 R + /GS36 37 0 R + /GS37 38 0 R + /GS38 39 0 R + /GS39 40 0 R + /GS40 41 0 R + /GS41 42 0 R + /GS42 43 0 R + /GS43 44 0 R + /GS44 45 0 R + /GS45 46 0 R + /GS46 47 0 R + /GS47 48 0 R + /GS48 49 0 R + /GS49 50 0 R + /GS50 51 0 R + /GS51 52 0 R + /GS52 53 0 R + /GS53 54 0 R + /GS54 55 0 R + /GS55 56 0 R + /GS56 57 0 R + /GS57 58 0 R + /GS58 59 0 R + /GS59 60 0 R + /GS60 61 0 R + /GS61 62 0 R + /GS62 63 0 R + /GS63 64 0 R + /GS64 65 0 R + /GS65 66 0 R + /GS66 67 0 R + /GS67 68 0 R + /GS68 69 0 R + /GS69 70 0 R + /GS70 71 0 R + /GS71 72 0 R + /GS72 73 0 R + /GS73 74 0 R + /GS74 75 0 R + /GS75 76 0 R + /GS76 77 0 R + /GS77 78 0 R + /GS78 79 0 R + /GS79 80 0 R + /GS80 81 0 R + /GS81 82 0 R + /GS82 83 0 R + /GS83 84 0 R + /GS84 85 0 R + /GS85 86 0 R + /GS86 87 0 R + /GS87 88 0 R + /GS88 89 0 R + /GS89 90 0 R + /GS90 91 0 R + /GS91 92 0 R + /GS92 93 0 R + /GS93 94 0 R + /GS94 95 0 R + /GS95 96 0 R + /GS96 97 0 R + /GS97 98 0 R + /GS98 99 0 R + /GS99 100 0 R + /GS100 101 0 R + /GS101 102 0 R + /GS102 103 0 R + /GS103 104 0 R + /GS104 105 0 R + /GS105 106 0 R + /GS106 107 0 R + /GS107 108 0 R + /GS108 109 0 R + /GS109 110 0 R + /GS110 111 0 R + /GS111 112 0 R + /GS112 113 0 R + /GS113 114 0 R + /GS114 115 0 R + /GS115 116 0 R + /GS116 117 0 R + /GS117 118 0 R + /GS118 119 0 R + /GS119 120 0 R + /GS120 121 0 R + /GS121 122 0 R + /GS122 123 0 R + /GS123 124 0 R + /GS124 125 0 R + /GS125 126 0 R + /GS126 127 0 R + /GS127 128 0 R + /GS128 129 0 R + /GS129 130 0 R + /GS130 131 0 R + /GS131 132 0 R + /GS132 133 0 R + /GS133 134 0 R + /GS134 135 0 R + /GS135 136 0 R + /GS136 137 0 R + /GS137 138 0 R + /GS138 139 0 R + /GS139 140 0 R + /GS140 141 0 R + /GS141 142 0 R + /GS142 143 0 R + /GS143 144 0 R + /GS144 145 0 R + /GS145 146 0 R + /GS146 147 0 R + /GS147 148 0 R + /GS148 149 0 R + /GS149 150 0 R + /GS150 151 0 R + /GS151 152 0 R + /GS152 153 0 R + /GS153 154 0 R + /GS154 155 0 R + /GS155 156 0 R + /GS156 157 0 R + /GS157 158 0 R + /GS158 159 0 R +>> +>> +endobj +xref +0 185 +0000000000 65535 f +0000000015 00000 n +0000000145 00000 n +0000000197 00000 n +0000000249 00000 n +0000000301 00000 n +0000000353 00000 n +0000000405 00000 n +0000000457 00000 n +0000000509 00000 n +0000000561 00000 n +0000000614 00000 n +0000000667 00000 n +0000000720 00000 n +0000000773 00000 n +0000000826 00000 n +0000000879 00000 n +0000000932 00000 n +0000000985 00000 n +0000001038 00000 n +0000001091 00000 n +0000001144 00000 n +0000001197 00000 n +0000001250 00000 n +0000001303 00000 n +0000001356 00000 n +0000001409 00000 n +0000001462 00000 n +0000001515 00000 n +0000001569 00000 n +0000001623 00000 n +0000001676 00000 n +0000001729 00000 n +0000001782 00000 n +0000001835 00000 n +0000001888 00000 n +0000001941 00000 n +0000001994 00000 n +0000002047 00000 n +0000002100 00000 n +0000002153 00000 n +0000002206 00000 n +0000002259 00000 n +0000002312 00000 n +0000002365 00000 n +0000002418 00000 n +0000002471 00000 n +0000002524 00000 n +0000002577 00000 n +0000002630 00000 n +0000002683 00000 n +0000002736 00000 n +0000002789 00000 n +0000002842 00000 n +0000002895 00000 n +0000002948 00000 n +0000003001 00000 n +0000003054 00000 n +0000003107 00000 n +0000003160 00000 n +0000003213 00000 n +0000003266 00000 n +0000003319 00000 n +0000003372 00000 n +0000003425 00000 n +0000003478 00000 n +0000003531 00000 n +0000003584 00000 n +0000003637 00000 n +0000003690 00000 n +0000003743 00000 n +0000003796 00000 n +0000003849 00000 n +0000003902 00000 n +0000003955 00000 n +0000004008 00000 n +0000004061 00000 n +0000004114 00000 n +0000004167 00000 n +0000004220 00000 n +0000004273 00000 n +0000004326 00000 n +0000004379 00000 n +0000004432 00000 n +0000004485 00000 n +0000004538 00000 n +0000004591 00000 n +0000004644 00000 n +0000004697 00000 n +0000004750 00000 n +0000004803 00000 n +0000004856 00000 n +0000004909 00000 n +0000004962 00000 n +0000005015 00000 n +0000005068 00000 n +0000005121 00000 n +0000005174 00000 n +0000005227 00000 n +0000005280 00000 n +0000005333 00000 n +0000005387 00000 n +0000005441 00000 n +0000005495 00000 n +0000005549 00000 n +0000005603 00000 n +0000005657 00000 n +0000005711 00000 n +0000005765 00000 n +0000005819 00000 n +0000005873 00000 n +0000005927 00000 n +0000005981 00000 n +0000006035 00000 n +0000006089 00000 n +0000006143 00000 n +0000006197 00000 n +0000006251 00000 n +0000006306 00000 n +0000006361 00000 n +0000006416 00000 n +0000006471 00000 n +0000006526 00000 n +0000006581 00000 n +0000006635 00000 n +0000006689 00000 n +0000006743 00000 n +0000006797 00000 n +0000006851 00000 n +0000006905 00000 n +0000006959 00000 n +0000007013 00000 n +0000007067 00000 n +0000007121 00000 n +0000007175 00000 n +0000007229 00000 n +0000007283 00000 n +0000007337 00000 n +0000007391 00000 n +0000007445 00000 n +0000007499 00000 n +0000007553 00000 n +0000007607 00000 n +0000007661 00000 n +0000007715 00000 n +0000007769 00000 n +0000007823 00000 n +0000007877 00000 n +0000007931 00000 n +0000007985 00000 n +0000008039 00000 n +0000008093 00000 n +0000008147 00000 n +0000008202 00000 n +0000008257 00000 n +0000008312 00000 n +0000008367 00000 n +0000008422 00000 n +0000008477 00000 n +0000008532 00000 n +0000008587 00000 n +0000128112 00000 n +0000128136 00000 n +0000128163 00000 n +0000138087 00000 n +0000137948 00000 n +0000128361 00000 n +0000128613 00000 n +0000130025 00000 n +0000130003 00000 n +0000130112 00000 n +0000130131 00000 n +0000130522 00000 n +0000130291 00000 n +0000130834 00000 n +0000130855 00000 n +0000131110 00000 n +0000136830 00000 n +0000136808 00000 n +0000136928 00000 n +0000136948 00000 n +0000137465 00000 n +0000137107 00000 n +0000137927 00000 n +0000138010 00000 n +trailer +<< + /Root 184 0 R + /Info 1 0 R + /ID [ ] + /Size 185 +>> +startxref +140683 +%%EOF diff --git a/figs/rotating_nass_plant_comp_stiffness_vc.png b/figs/rotating_nass_plant_comp_stiffness_vc.png new file mode 100644 index 0000000..e67e2b4 Binary files /dev/null and b/figs/rotating_nass_plant_comp_stiffness_vc.png differ diff --git a/figs/rotating_nass_plant_coupling_comp_md.pdf b/figs/rotating_nass_plant_coupling_comp_md.pdf new file mode 100644 index 0000000..48ecd88 Binary files /dev/null and b/figs/rotating_nass_plant_coupling_comp_md.pdf differ diff --git a/figs/rotating_nass_plant_coupling_comp_md.png b/figs/rotating_nass_plant_coupling_comp_md.png new file mode 100644 index 0000000..b4497e6 Binary files /dev/null and b/figs/rotating_nass_plant_coupling_comp_md.png differ diff --git a/figs/rotating_nass_plant_coupling_comp_pz.pdf b/figs/rotating_nass_plant_coupling_comp_pz.pdf new file mode 100644 index 0000000..cf8f625 Binary files /dev/null and b/figs/rotating_nass_plant_coupling_comp_pz.pdf differ diff --git a/figs/rotating_nass_plant_coupling_comp_pz.png b/figs/rotating_nass_plant_coupling_comp_pz.png new file mode 100644 index 0000000..4b0bf32 Binary files /dev/null and b/figs/rotating_nass_plant_coupling_comp_pz.png differ diff --git a/figs/rotating_nass_plant_coupling_comp_vc.pdf b/figs/rotating_nass_plant_coupling_comp_vc.pdf new file mode 100644 index 0000000..b013d63 Binary files /dev/null and b/figs/rotating_nass_plant_coupling_comp_vc.pdf differ diff --git a/figs/rotating_nass_plant_coupling_comp_vc.png b/figs/rotating_nass_plant_coupling_comp_vc.png new file mode 100644 index 0000000..5babb0a Binary files /dev/null and b/figs/rotating_nass_plant_coupling_comp_vc.png differ diff --git a/figs/rotating_overview.pdf b/figs/rotating_overview.pdf new file mode 100644 index 0000000..adf0727 Binary files /dev/null and b/figs/rotating_overview.pdf differ diff --git a/figs/rotating_overview.png b/figs/rotating_overview.png new file mode 100644 index 0000000..55bad45 Binary files /dev/null and b/figs/rotating_overview.png differ diff --git a/figs/rotating_overview.svg b/figs/rotating_overview.svg new file mode 100644 index 0000000..68abc8e Binary files /dev/null and b/figs/rotating_overview.svg differ diff --git a/figs/rotating_rdc_damped_plant.pdf b/figs/rotating_rdc_damped_plant.pdf index a39cd3b..536b096 100644 --- a/figs/rotating_rdc_damped_plant.pdf +++ b/figs/rotating_rdc_damped_plant.pdf @@ -3,7 +3,7 @@ 1 0 obj << /Producer (Apache FOP Version 2.4.0-SNAPSHOT: PDFDocumentGraphics2D) -/CreationDate (D:20230222104007+01'00') +/CreationDate (D:20240416170709+02'00') >> endobj 2 0 obj @@ -249,19 +249,19 @@ endobj 42 0 obj << /Type /ExtGState -/CA 0.14901961 +/CA 0.2509804 >> endobj 43 0 obj << /Type /ExtGState -/CA 0.14901961 +/CA 0.2509804 >> endobj 44 0 obj << /Type /ExtGState -/CA 0.14901961 +/CA 0.2509804 >> endobj 45 0 obj @@ -591,49 +591,49 @@ endobj 99 0 obj << /Type /ExtGState -/CA 0.2509804 +/CA 0.14901961 >> endobj 100 0 obj << /Type /ExtGState -/CA 0.2509804 +/CA 0.14901961 >> endobj 101 0 obj << /Type /ExtGState -/CA 0.2509804 +/CA 0.14901961 >> endobj 102 0 obj << /Type /ExtGState -/CA 0.2509804 +/CA 0.14901961 >> endobj 103 0 obj << /Type /ExtGState -/CA 0.2509804 +/CA 0.5019608 >> endobj 104 0 obj << /Type /ExtGState -/CA 0.2509804 +/CA 0.5019608 >> endobj 105 0 obj << /Type /ExtGState -/CA 0.2509804 +/CA 0.5019608 >> endobj 106 0 obj << /Type /ExtGState -/CA 0.2509804 +/CA 0.5019608 >> endobj 107 0 obj @@ -699,55 +699,55 @@ endobj 117 0 obj << /Type /ExtGState -/CA 0.14901961 +/CA 0.2509804 >> endobj 118 0 obj << /Type /ExtGState -/CA 0.14901961 +/CA 0.2509804 >> endobj 119 0 obj << /Type /ExtGState -/CA 0.14901961 +/CA 0.2509804 >> endobj 120 0 obj << /Type /ExtGState -/CA 0.14901961 +/CA 0.2509804 >> endobj 121 0 obj << /Type /ExtGState -/CA 0.14901961 +/CA 0.2509804 >> endobj 122 0 obj << /Type /ExtGState -/CA 0.5019608 +/CA 0.2509804 >> endobj 123 0 obj << /Type /ExtGState -/CA 0.5019608 +/CA 0.2509804 >> endobj 124 0 obj << /Type /ExtGState -/CA 0.5019608 +/CA 0.2509804 >> endobj 125 0 obj << /Type /ExtGState -/CA 0.5019608 +/CA 0.2509804 >> endobj 126 0 obj @@ -897,444 +897,240 @@ endobj 150 0 obj << /Type /ExtGState -/CA 0.2509804 +/CA 0.14901961 >> endobj 151 0 obj << /Type /ExtGState -/CA 0.2509804 +/CA 0.14901961 >> endobj 152 0 obj << /Type /ExtGState -/CA 0.2509804 +/CA 0.14901961 >> endobj 153 0 obj << /Type /ExtGState -/CA 0.2509804 +/CA 0.14901961 >> endobj 154 0 obj << /Type /ExtGState -/CA 0.2509804 +/CA 0.14901961 >> endobj 155 0 obj << /Type /ExtGState -/CA 0.2509804 +/CA 0.14901961 >> endobj 156 0 obj -<< -/Type /ExtGState -/CA 0.2509804 ->> +<< /Length 157 0 R /Filter /FlateDecode >> +stream +x,9xo`jI0`5;A+a;,YUR}jhΩߩbf2I?!?_8!'#FU9=? +?'/d?,? ߸# ??oۿ#Grŷ =BHq壷/! >rO޾c-#w +޾%{mG㼄/~p QF)M?zcԣ/ =c]1%.-r F/akxyO޿XoMȕ޿lކ1̰|5?Aq޿g8a+xL9-?ʀggTh+x>LMS.akxFL6- ψf1l|5?#6- ψg0ܰ|5?# '_3daM3dakx67, ϑ G_sd akx,aO޿gotPX>͟χefh}3b=l >akxF9, ψl|5?#ָF'_9q^5os|,oeOګow:09mz|+x+_:QG%Ly s\D8d@5̟`k_!C?/W,. m='O޼f9"- r7YN!>XL~ 'o^v],AL|'o^^Cg~|'o^^C̏ڎk>akp徵bM縘?y>%CxSb5Ly Β q>}1ڇ_ɛ<)fpl=csklQC +:y͒aGb}֐K>y>%CZ(0|6G#4K>y>#eF~|u?x +>!XlC3b+l~\c71"-z>GɛG͏ć4֏y 'o^g#O޼G\l915L7 N1ɛl![M\O޼D"Wңީ~ɛi1BΟy ΊGnjhgţWo^Feyd^7COc=Ό7C?! Voe,fe+t8].7 ?ug[ RwcO.Sp'^BXJ/pЄ7.o~p[s{p3q?jS`Me2<F"_{ iܰ5a_l_d}bf׵[UԱ5bk/ľg}H^ņ,kͮ^k/Ru}ٿH^ņ|m:Y>j^g n}O''mlw*ixߧ/7O''m|W߫e6,|%M}:Y?nuNtߧ6>dˍWl핷xا/7M'm:+nS[-wot|ݦ>|l^Hˍ +Zm|+nqNO6,|%^M}NZwPy/oI4inyꇙh[_~)bZTk/Ssڰ־;dZ`۪Yc{ѰVGhv]g~Xf\[ T{ѭBaw]yե{ٵ7Y)w]KyU{٭ڜ5a7 +Y֘{٭5aYw]yU{٭r5aw]yՋ{ٵ>7Yw,̥$> +Nk8oBp[ޜYɹw]KyU{ٵYaw] +yՒ{ѭvaw]yU{ٵB7Yw]yՅ{g+uଽwKZ͚nެ Z͛ͮ5ݬʺZ[;ͮۼϊ/ZYk{ٵ>7YϽcc[%8mbpѭ6aVM%ެϪFn臅ht-f~VFmght-f~V7UhF?,]ieMnuشKZz;ښm?+ck)~jヘj⃲jok5[J?vqŏ{/yGzNr6Ճȟݯ q wL^`|zds5C lG'/x/mU{{{z~Yso|1dq+e˂;g'_/%v"1Z=F.FeԢzE[RMHh}QY*d Fx/t|Q1gFo5d%W|>~6ͽKmE5j6W7>LюV`f}X/)-RuJ9J-]K#|Wj 5J}##wTvE&#ۯ5yjtr`TQvx2מ_m|!zW+A& ?e?*.E,b2v71*Py &U´XB?X#JIslM,Utr=oo4: ,N+Vb41e +#^"Zrˤ G5Yz yjb]HW{b=;Je1e iY'Z@]4잚U%ruMYa]^+?sIVY[CIb %zl@&;9-{ky%J5ҷְMck"6vkbKg^Za7 `kb$a޾ibka.P^i]oLhbG1q:&C$ېnhTŨ,MEt]AO-j\C9a v9v UJW'`Ě+m\dQчRŦ 51nyvlj &6=1Aq[ؒٺU$ǩĤO eM.s_,Ţj2IdzWOwb'ͽ\Ruw$GnA*&̐i@Qڐ8OXӃ}Bey{&}gO>Zj1I_^/,e6361&fHIҞf~O]iɐ=!7zȲ۔>݃X2=.AcfPM,XE,zsGK͟X2Mi"VvL9>r^.dST\.ti۽wGX_z>?;Mx)&f٧xİŢZĐGŤ]:u2["X8ץ-1dh2e!3Ѥ$JuM4yqT;\ntVu$,[M`R({ska{agS e{~/d-#W1N/S zYKHӌՑ"Hɚdk 1'°e=/؋]& Vu^>%k֘bHC=qo>dIY9]ѮRL ]ݣEqM,Z?]:UcH8-a5\,J 1ԫ'Mus_%!}81袽xN/zkbѳO bK;8U-XR--M?Z~_QW&+"ӌ${bы1#k pMŘzVCQAl }ؔgɤ}Ozy!]+T:Czz=jFI$;5yŴ_INjL⊼Z!3>j߯I>̖%/M1#ၧKz +?hSu-2bwjGʊY+Zeq<SflJHHbn95uJ.]q:/˞Ĩ'_#\b~|Z55q|F|n6\ÞOMIìzjIXFuv@#gmHb +/ٳdͨCzd@KGٱbvz#[礠\i-}ϚCzxv,oXUs}*&^C=U^ 10 T"^ݓr72.aa1*kC7zU/?!kbak_5N2&:6&w~EX4u_9oZP :h)v}ɯE…ὃ1lWݏxB_v~Ob>i ?tpeӃ}41룬bEkh%e /^9 gfw]H%~2Mzbwlıt$9MeȜVnvȃkx_e9K +QԀ1U+= );N@.RV_y,~@^|j(J*'o]d)޵ֺ#q^E_Bv +7Z]d# bK(F= a.rپ'N<, +;V|Ѹ@dh2EQz.DGvM,YpynW*e2pdn؆m5{7X6fI:>RNIzM»[Twt;fޭ2nتQ'ޭCDl,~1OLҼ?_FuLJ XeH1OPin/HUf8Y6i1/&6=N`"zbVviқÂdx>D# @#q絰9IwcboqInGeuO:]FIFa Ґ۔WbV'nb&;T%+t{w]+91%6%2ibd=$ts޳b9l]SKў&>C:\2{6 hzK{ǹɋ%·2QBOFYKCSbbʶ/y}Xlnb,-#<&\DnORG'2'm]%+KʇdS(ɭ!lG*ɣ^vbڳwYkY9DӞ3ޒC] +l$*&G bv~XeClx=NLFe! +H ϫ g-fLBrTAm~&yz@iƠX9rH2JC" +ay˘TJ!qؑBbE+,$4b=zؐ`!;m~r$ +FE i暹8$Nf`PBK5"I4cHb18R ʏYyl8tP9%nt$|s#:ERrV~۞҈L3=%.\B&ƭwdm1R1ap cxv3 .>xGFe|7{-!wX~ Lwb%6*1b^$+ ŏYY4t"U6ɄkHF#u傆%2]9 Ot"c!(D|@b4FbDk4^pK-#m.1^Fqz摨9x fLD%/F#fߐ&pBOG`-Ǥ/?SطY/t8bgq]I3^fReU~_;)H6W?dՏ:z"OZ$JbѰX^$Y*uyu&xsk'YΈFJe'F>rPIP~"UlPķqoS8lO'?o*?#Mw]9.G6~4~Sf14$3IȖ={20"GqHҿL͇*e[Ic&UdMґ E/#y0pj(4;rv(8ƣL_ L%"~^vPT ɜ {t2K۪Og`b\aOӸî>A.VD#$ZcBVtb1=AXtX2dGj.5fz2i̖; wȳ++q@?fxK&JJtPHp%Yf +ESnK*` X::~dJ~>% +"b-!a" y+7uƘ&{1Y6F&3d/~ybn!H~%21jT~EHu;ʁ@(6!` ";3Z`Tb1LJW8LZZƓ Upy?r5Ѯ]VߞOnS춡FuSsR^Pyl$VJ'D^ d X]"6vGJJZɴQg㒑x9gIU `OH+L%Fxr$NLrK7XvjIH=c0;A,T29$eHc!GcO!&ds _X :LA(]Yc&߶l8zLOKdd.vja+$P] ;{LV&LaEC UKrdW T˘Б0m@${l'LԺEBKFl +髄s0;-\.}PN&z[Xj&}Ulȣ߭>As.#u2=nâuVN:v9ku2k#cOM0s(Z|W]&b68#'lOŸI`5!qc{]iS}hR J<$VjӢ(`Kֹj+Y<<7ObЋ1e~enQ 9D=$q#m+/ubȮQ%G +sXջo֢ #VbUj19F.ּnhTL2ʩ&vx`ab&-i)Bcp 3gurFhe>/bG?5ѯbw[Lf#3b l)41|(nT#^51:dNKQ/o#n);%ȘJu&h8q"k^zmG!NՎ]\:,t~b C3SYn\*)Ca5Zly&QJ%YiHY}/hT?HqeQ6J +Od,X|F1wVh.rRZ4j[U,y {!UX}ێI8VEi T q,ƌ6tpj%&/]kϿF5@d9i.䰞:[#R ,Ty#AC,σ ~}3e'QH&ԡe32e L:`٩ٛ%k!() D9XdYUaqIVf|h8u3 BTFirTkuɮsVIK2XeyTMlK4_'P焿ȟQ:NZ 2M2 +̅֞5_5yH8U*'6(JKD~s9E;gLDA ꜳV CWY*;aL"9~QN2>|b64kM#rV£!$E{#隃FLUrp UT˚qe^ïSy+5uy>TH*bzDOrUEd1s|!o`%\q} ϰcC4٥5nתReBj&',BN4mpCmшI<ް4EMSh񡑃Y;Vm!5Џ9EeF4nqTF?U{`_ Yֻ׈XԨ8eC/ J< QPIM4r86Fuи}`ZX9> 4ެaFa: iyKa( +m>"U,I)'~-`Nתrf(cAiI՘|fhI0ԠsMurFrT^YT޳re$<_7蘍TsŞ,:fPY%(!+,2@+VY~MU^ͧ`=zXDD&V#hXu{n`y°iSRjIdd3_wCX40S _t.k@sB*f;EGuD\HaOqNy" :\}UYF!Dweuf,Uw!=6PTB7gln!RxX@J(ӕBhz] yI&~9EhA&bXm$ a)wMl"uajzOGro+\QVY1XZ*UgNv髃A2jv*ݻi>:lmfگ{[6XI_!9y"[q1"4yF[_ :&X`.W4+Jlq|{d0Y!:gE+&a ASJ09XTM4/T(S0ʠ_WqseȞb^e˟TTQmpZ̕p>IkZ[XPV%oj^. ?p +?a>Sv*碍'ɵS r%יUuZ͛6&˫' WTlu!5ճpTJ@WK ul dÕtK,+UVE4LXN YFnQpԢ"ĶqPM2lGֻ2P9$DS-R&VF4҂Ѵ:FHEk7KǶl~.(Wֳh8m>R4fG +$-Db̅|.h4 z#W7 3jļϹ6lumT"tjӂ6Ǚ6tg&?[`GPqȬ+㷪O5aI*"ڭ +3LjQ5Sk D=nmjW1 dkF뮙ߕ@ +U kLg%ȶ3TcdŀDC7a)@ s7l6pSfiC=;l6xSfiÇ=?YbOiG{JDl6Safi=H)@bĞ $4KH)@bĞ $vجl KzHl6ؤ@b&[ $6i7آm IĨb E[Abt-Hl6ؤ@bĞ$hHln IĈ!8kHln E[Abt-Hl6ؤ@bv-U~-Hl6SmM $hH,^Hl6ؤ@b& VHln E@bvM $hHxy-{jwآm IzKl6ؤhbvI\rmMڍ&hMln41C +&F[&6i7X`q5ۍ&hMibNMl6آm@IKPLu-(&SȽM (hQ'Ʒ#mCP HsG-چR;Rl6b)h+RL-Z},wآmLݠbA$RnPIAŮP1sÐOwآmP1 r-On/*6ؤݠb"*/~+fQ:.mXj7آmX1|VZ&#arVLz8y T06b +6i;WZsp2Tϝ+;c+WjUt㊅j5:^`ŨUoX1Nqlj۰bM Tm\1d} s 'WLݸލ+veX1"GxyNJ1j ȮmX1Y nt5-aNkZcR8h QZTk+ULt,Fk]T1FpNk +NyoTFvX٥TFivnT]1۱b Wގ#b8e3+&ڰ;W萶+8lVƾsz&W GBܹb͢t\[bzb戰 ,FƴD6%b$qRV&ZVFubhF~b ~G~sG5ť,&qbxE$bk컁HcbX;W+֬hwꮭ\1-k/ 7X߸bJ sNP w㊉4*X߸b +@o\q r8#*߹b-{+`#D߰bb +˭cŠY;VY4#NFX1b#=WLv{Y4Uvؙ>+(`_۩bp1d,y;SLpGPOLَ#3-ܐbݜ-L1Y)ܙb]WߙbnJ%w?*&^}.Aq */AŀX1+TD=abl$G#01h?labZіvIv@tQZR &VXap5+{Qn5Xa3&Vx+&&OtrmQ;%TFx;_`wI$NSmÉq8}\n8 +°R'޵'V#5#Fyb2K'FUm81=v;n81Z$vUp9,o8z( (ӵ'7<#\';*~'/ŵĸx\[xbzQX}Oԇ? 'F^vtN (0k+NiΏ? 'FutȎk'akTt<^NL^vN>k NrPWqbҰLVd~lju][pbPmÉQ6Zvѵ']jPiPG@1&PL~^럸ŨK ()>dD7PJV|u8|7Xgᤆ-D^TcNfNNl;NRXQNΖ&z#yքfZbC-Dd0v"!HLLڌ}J.MH1nBo% +ǰ +Q,kYbyNވbFdeZ6^Xf#LlD1*$&%j Q,k|fQpA`ŲF(J'4lQ8n@1OZ/weFj PLpaxb8,jĨkOZ}`m4Kh ;O 1G^bewĨBI a!+|8kOLkIJVZpbYO(ڂc&ޭ{Sif?NDO +B˖dsMk!r4a{M,k.01Js3U.01M!L]`b %FXQN?saq8GL+Kj`ieBhz#^B6Y,10稴%8;ĪbKuvS8݈nLLSfXjZGu~ȂSJdCԕM@14N.DSZG1Ш0VX7CO"%+|/T1kb+^d+C#zXSv}d10ḡbhYMkailO0 SCW'4|qG8afe(Kڅ#mKz14h9ZpŒj"@k9chcD]@ch*<̤1$hZ4ƔRCXIziVw 7FFvoLi2FK^chsgfAtoCLߘchuD,14v#9HvQ4{*"ɞˌSVd3w,ha8+x ñh& CJx&&UC1*'|L"k(6gZ'5ʙ3,hɊDdHxJgLf. :T(dAƖ\k RdY3LSeX|AdO _D"CSLYPdhJb3 Mq.Y2~TvȔGDduZ HVhTHٔg"3 yi8kbN)=@%C +*T<C&.s0 lc&2fvR%vk)&6Md&|̸tD'#TQ8v4 +P8W ǍP9bGh-2 Z#2 ʨ܌K"3k mQ,OFfޱRF=gJf‡Sց2zSWž7]Iehen,24g6.VHFaeA˘tʐ5D+Zj[X4\O^P'3LDt+4?#Ѐfav1ШBTjjZf&eh"VM~Ɩ! +ylOe) $ \VdaΩeB &t.Cϫ/24jYd;_esi^eg- + ”rg-X8D2^Mj3 ?(i9_IR\C0P׌/GZk'/#b246b/ӒT2@‚/G/õű7zY$[f^0#]z4l2k^fz a%5Hc3,O:F/KJ +ofz[}+iL䜮^+7^|+ ꔦ;|j]eZ;  LGn2D%ujA0fxYJMdמ2 +oD҉(epu +B/#C'aQ[l @2W|\eI#d:W/Tl-D8k2ғ]Fo͍]F3OM26P eCrq\.1Ytpl]F6Jr.ˀ]Z.#S0Wt>P }˲u,\{"o}oF_2jAip܈grYHB.'.~r&eE/ .T^Y@+̪͑Z wܞ2 +ed(s|&tS*M;LlA5MaRmAijK &wQҰ⌸^Fx$([e) WmF/#Zt5n2ܭ,2R 4aaᅧj ̊d);,k`d;a,+8-x:]eUH1tmb,]F=]el;_eK% dQFj.7x4.hVacٖ2*Va]V)-K /cgJf6|SxEyWCxN7xi5iЬ^ƻH͚+,i3eZ1>Wxn&ybg8j8|-+ˊfOhf/#NhJ/ɣb+WA^F\Q+/I#-2 +|k_}*+LH96x5AAS{(.G¯Ʃv˨ @LXv/Fl)+ d2..#LÉ 5Ex@Qf;2ՐȰ+,kcb+Wㆪ0PaW!7+Έ ]Gbx/ )LnPI;f d^}C/v1ǎ.õ]҂.KY6tP[԰#tiWO2 Gõ]r1PЊ.cz1 ]FiagQp.c3˺ X]&AV.F|\e+d h'ꒌc6pNnLo2voբn22ݘ9 ȵ\i.P \6wpY_i \Ke2q[\FVlM9lu \9xv.k et \F9`UVpgZsWnyB q˨ownuz Rqdp@%+s"m2N#ߨeVݩeݩe$] ީeؗ2o20k][eb)R1@\V2 W[u [Fy;Llji8ـ6>He6p|2wpI:7pYge$0-,F.cmhLL ]le.v#=Hn2zڎ. +Cejj ]&6Fe)uG\ej| +eOL ]Fn$e;F.G:\;ܲ_!c;L7lFPqNBx溿( \&^e]\mwptu͑vB '[e-j\Mrmnƚj vݹeUuy疑hͽsQ1pLV>6eUMk ZLSOiA0\;s2][etಢq-2;$<,F.#Un'A=1\;,[ p с`;LfqwpH@ve)U/eY}յ\fS\In2jj~%-pj++Y5r\ѻ[;X[\;–1ceQ˘c48[vV=y-coy +[3i-N۱e-2//[F1hC߹e˴ +eQ^)ҧL,Uma\3 p!rw╡m+LgUpeW +iϰ24tAjTҧ0X8S gmYaeHh;LWLV% UB+Gͤ2]f3 &?8He[ѱʐCӀTF< J*C$pVL~ij -gL2Hڄ)CyB)SӨ[jLqT'JZ[)tRfXyvQԂkx{ -Q.'YRV!yp7 e jja]q~WFnWZQf5g}͵Q; 9˜e(E #&F(7'FYDn^2ʴN:=L2vxDF%K]ecZt0ʢVjbQfF]573t]ehdvX Ҍ(C^_eh:-2H`D(CkP\eh2fR-2x] e/ZyPS/ԑ|3 z N*_eZB_5B:&3 >0<= eH*'.B1a&Y Tbn_eh15%P<,G.BJ,h­ L3Hq,ʴ0, ;*V'{Ա?vɴ:o!x2rV 00B%W::0L'C+B'S&D$^pL'S)GtHdhT_Ydw=˪.t2-Lt.:zr iv! 0GyFõ Nt,pe``w킓Yl#GMp2ԽӲ L}ԩkUdQs\0 `5-{|cN[Z@3L]Iިn+&C*A do}&C;`t N,bɵMVȵDMf :|aqEq].6\< 6PwΉMǫnl2=a!9mbq2#zJLmpYǂ&C]dvcpMh2ΏL%h"e$udh0D&Ӫɴ<dv&^0V6 &3rL&8 6ɴ !q.v Lf'h +&C8kL'u28lavLK'77PΨ^ޯ QI=dhEe-`2=68%64 L\3If0ݖLfW&S Lfgҗ|1K>\dvMP-f2Z\dvvh]d24=g!y zU5ɢfjƍLg2ٍ5ɔsaٵLq,&23pv4A&`^LF>b LHa9ɢ?Lwh&E5IrۛdA8K-d24I8Ll,r!3D&`TdH sdkla%xd&ӘV=dP*Nhi [n`246K-XdyI29sɔ!sho&.F3t!Id$O O1ɔ1.]L2̞2t\;%HELo/P24N[.P2#8`+ʁa \E+dKr&*ƦpL%(&*֔hJFeqXL%CE{Rɐ@j.(Zj!23ɐ2AVdE]S$%a*q,X2:ag,q줂6qɢ8wit,X2EΒ`o%92a49qƒEiZsO, 1)]X24w <3LƏ,X2Af0cbp\dhDvLg0{9.H͵ Lc'd24"[\d~5еi!qp3dQKn) LE&$&\3LeH3 ,\]dLܒf La.21w-d2]XlZ\dh +0 &cdh~ ,ZJf0.T~0 3P&03Sf0YԢQZ2ɢV6KtmvvɢVѵLf&2ń2Vs-f4I'<‡&CÂMVgaf2͉MFJ]vɰ(O&C&C*dZMe؂kL+ 3ptЌ'C5^wœQX'Sxfx2N3O6Ы:W: 'Qx:cMA.=d;pW~iO68`g4MKh2%#(O4Ă>cO2q+LY `Ɇ(uǒ^>P}Q%8ړKR7.!Yd`.Td$siȌ%t*X2Bm KVF*w. L[d$]2AF3lhHbɈ59 <5na)q.0MH,dī #-\4b[d@pߕMFNv:hdݏbM붺d00.&#u1dMF_􍮶ɺVwcuB\+|,l2ʘDo'4k3s"@EˆhO]h2jD0‰-{[kJUMFtp&c>@+iYle5m&#MF!dl2*wɶ͠Mִ܏֭r&kz|YEal2BةK[d5 ?6ɨ>FZ6Y|MV{oEgh2eȖ\+տa++Is L7L!嫂f2YS8p1b3iId(v6ɚyjL8ƿL+0YB&XE&מd2:v{ iNwLFbLFE{r%9,b(ZE%\L728&l܂>V0&PXi3oj3LsmdLFľvɈ琾LF,V%ծ`2'T޶L΁iV~%U=3f2LȖM |_dN~]d2(eJ&#*کF&# B]L$iշ'p!/Ʋ[d 'V0̣bHsLɑl3 ˃e`2bpJNydU;nƒZ%өcXK9hJKF}.gj%=93j yz\2V&{V0> LFd@+,X2&v1',YPw+rp>"*\2eNz%+ZXlqǞ\2\Y*%#}bG.\B^YdD+Lۭ2j3h4WX2`bƼb4~][N%õ&@KFaH&ʂ%6cɊWSi#i3L#+ OOsZ'K,bxr+LGeŒKV쁞GnX2 f '%+jZK Tyvaqv'X2"KK;mxe-ED=d6W*Ar!_' z# מT#xpk1RTf*~?ړJִ/GSɲt: מT2oL%Q%c^$#vBn,L2ɴ•jv~$Vwc\$+{e%,[*/b2ɴYZ=dY 9 aEeJݑdZ?֒F 0x\d'H2J?3V$zIA w+"8@G䅲V$z/ kF%)qI$FZ~j3RZɸ"8XbMH2cq~)3c\Ji  lm 圚kO$&Wf$1e6C0/H2j 8g$tU_ddP6#0e;H2(ẒIFᵔ7$YT&IFf"՞ڕ\{"vرȊ$cyV_d'+Ԯ&N$c_^HF MD2앮tמD2R&8'0J$lzsV"AA~[JF$tCk á+L;HړHFx7ɨY!`![68 H.=d +y{]Iz&IlOQ/0iF Z i[;WU'CwUZe2n@ ȸl Y Yw=ɰUD7z 6ɕEnl#c8 Bcڎ* ˔ )2i%aQIV #5r$1wh1s])g,yxG%ʆ wڢrh*dtY +T~Yp$BLޭ'ILo,{ Kb(c2+է AC$k>Ll-^E$YTS #:&i̕EtL7հGtwW,cPNZHjѳTnNs %26 c%rPJd)qxe2$k=Cr!X0$KP$da #tP$4xC G{Nܝ7ɪd"i9;d 7Nd $yKE Mr4J&h|$E>oh-Qr7D}L0^BnoI; ,Qo;yɔIo5d(ɔ5ߐ%.,gH|Öɖސ%BM%;1l'Kփ,7UzG:IdKp [r!`'[r0 wl"[.ɖ:ɖ0laK.mcK߰%~}ǖoؒN-Y7[ry%Kdɹi Y +ȒQ,;rd3r%yǕr<~˕,Im\ɣW-︒~Ǖ ;ߩOdl'K2e!>ɒIұ-927?~G̲f>Ȓ WLd*Xw%KfH%Sa<MI,dɎȒtȒܠȒ8*oX+lc;Wr+`+1Q,l8McNpy#K'1l#Kj?ɒe,9CI蔄 K,$F0Y2KAWJ?p%?<W(d{ÕȩnkWra֕ƕ\zdHhJfeƕU~ÕӍ%Qi6ܔ? K2ŮdI#>Xv>X-ycINW'>X53(,ɃdIfJr>hEQ;IohHK 8YS4v%X#ΓDZ93zf<`JvCdJf*5ܚتa+SrLك)IFt0%d0lJ&GL^Sy#Kn9ȒIk'D^ɒ) K̇,+ Yr }Z5,YO,9vl%K]hJmrLUۙAD<[ `J,gZA+SrqaJ83%g<yOd<)2?'S2l3%s&fLɍ'/e;M~C/KNL.3q7Dv.l'JeQr=_dJ4EWVȆ+rP%KQ dqJ&̝)ܾޜLE3%[a+S2ŌJjJ\dIPv*9*9haU2gQ%{MJvP%3bWvdS3S%YNFyP%?gד*뫓* F31%3rhd:{wdLOQH[d¥)O`JNzw/Ɣ+b”gҜ` U ۪aU2YLAԥR%3wt1:mwA{vTɪJR,Z(Q%cdޖE`Ure Wʘ Wr2J(L,DPF!6d_Vޕ+RZy︒KޕmJ&e= yJ6%&[9p%Ńtō+c3U2YRb\gQ>atP%3cT``Sras7,)+S2S[ {J~;ʔ7dfبYes7dv0Ed8*y"8J,L %nT|9NLbOteJ&onp{eJT8u6)^VԱ[i}Oޘiv)YZ”,E[R0iĔK[+S2HcVd^PdgeS2<-ZýQ%h+Ura1cʔ\,x@)YJ*=ߛs_UFJ:m1Td[pLR).>/4mcJ1”̓0w)؍ʔ,r7dаzPJ̚*ި^7Wr}²ܮdɴ·N[ؠOߐQfdћLzfeqS e-P:W& +eվ\\3Qޕx"Q&*W7'eqk7(K;?,GYN-Lo +J09)IJ*4)w,2Æ *e]elR!\a뭉JYV$ĥT)S(2OlrfFxtr2ROwSV̄"aEz[321ޓK̽R*kk4Tcⰲm-ʬRIr {HD䌑s!U^*g)S.32oǽ*3`Et,ʌ]ܩtRe#JPOʤ| 2#|,h$UV8>J*.ʼrgD[sKRe*zf ,ܣvxfUfZo 3єnaUfF*3lxKR:*!Ti;*{T.uQp*6#@9yOY+܏ʩ̫HM©LK;e2/h2-?ʼ ƤyoʼF^ {(j 2FJLYիJK9Rh|T&#M. /~+) 1d݅N>AF,>8]S<)7 N E`1eNGWyiLѯtʚe޻ɶ9'>eё?)3N@ e_Ý4Q yZl5,+rcX SC*Kez*fyfT~b+2/У>¨sVVaTf碒,(~wFek` 29(4 Ye1T V>eUp|$5{SsdSnsF>uԭ]Yc`U}PY5YkޏFL$a&l!TsmF̬;1_ 8h;2KYsSfF5xSf=oxSf0&:ed:` 2όs%)yמ|ͰNQ )N^B]:el 2Kbm7H23xF,J̴A)Gs8ܯOU7 2 9xSf"<6>eIv}'M~CǴ,jyS\&o蔅' +ntTf2zΦL[2Ʀ,2^+6eއUzLӊ2.lR(,6 ,D^%76e TAefSI729P)Ʀ-S2V6eԶ)#))ZelFv*NIU~tʌZ$ALr*Tȿ:efxe,v:ea5r)s36N wso:e9ʖNY{,tBkNNZS&OFؔya}M1 +~lʍXԺH:eu=ErS}OntR NՔrXr4[iS.ؕNSÈ7:eU-NYf[BNd)u)ZIU}~tL$DžNC)KvStʬˎh\S^|ʲ4c IR&+qmdʵ?OQ*8S)+!f2^ C[&#%[#'ǯ._?~I}7S?,fM8>?NFvCT˝/5ǜ/ 3[[k?1Qx +82H1E!˅tݿ2tY"}4>s'LLx_1;!#`33IChH` _e%Ϸy4pFm|"2m]s介9XZH:cw.^:?f~)}m{tY}۟'\}j"Xaf읹#'y[?n}{?o}{?p}srOO\_sz]"UE4H +1UI.s<`?}{?}{?}ssþ0~}pľhk"o-Rk:NGx +uIV,})n7Iي<&V[1gd5?}ͯHRli;Ou+I>͟|n#L??S|J{OGy[I)X^wVż}Z>S[I]wVE}?3|FfGy[Ib;utV,})n5%xGyMnb;OuDV,})n7fيS|JOGy[|1"x<׭dvjӞb;Ou+a_i;m$6.ۈot}EVhעb=,SXk-oX hP,/j;z CoV>Є7&_6.2[|ipua}u1}nY1mEVeL+u8A|Xp{fppwp]pCw)fCs sRs  s s Ncͮpk7okmkkkWjlhkgkOwelwckv;|~?\}޵}?\}?ܨ}_}?ݛ}?\}ݎ}Bss sc r >s +s sn5S{ |:vjO5Cjv/8*">^pA|{T{]QRc {Açݮ>QqJ|ḛO5W?jx/x8j >x=|ὬtT{%QwS~f{B/aT3{Qn*O>^p&|(GXÇ>T{Qt𡆏c bSni(jfP8>pMɧ҄O5k0Gj(08j>^Sp|T|YߧSG.X?T{IQ%𡆏*0c oG-sO5kx7'jvK;1 +#Jڗ(Oz/Z{ ?+E +rx!1B 1ת\$)+Q@ejWaR'#mFeDlp͘9Jm ڠ} (Ө"+7z^Ӌ?q]YDpb-I4Y$JQP;IM/~ +Ig(B\|[iAc%~Hi޴pH@UT?S/"q{|zU3 WNϼ +K> +1n\(._ޭy;R~ҭ3-ȥ[q_&Fg +/]mUlu_NV>=&~BZmS}6ϴkwR)U]SaᦜHNI0WsILн_h@:!Ў4tX2"(R/oM@!xOSw͕9}rY%Kb`S7xlpZ7[#CFR_5jB~:' >ORFyՂPP$Ϳ<%/T>gD&]}\F+\G"oJz@ GC7NgD0F0Ob8 jN<6c`Wt)DZNT- +E%3WVl񀸭 +]oXwצ"{=E{TǩxzQO:^N5WkFvAv Q{Tzۉ-7/l ]!Vr>1%hARXS@^Ft ЌՒjر +g++|{o0 Hc;84dU|5_{D=vbTLq3P/8\xk`iwQ:O,'AAEE(g>oǰ (;|}0yt5s.//;,׈!J'0prq(vu_8M{ 0)5oaq1 fڴrE09j ƇŰZWu'_5( +Ĩeޱ`ͥFͷ.[LF,r σL۰z])ְ~G^]^C"mΉ՗ϔka8ڥڞܻLw^.&?COܯ dzr/s0RN 'H4HM 3#_?1zaFu5H%s=\]Ya9w˳7ê]d4R,o  :t1x V=,vїØSڍqqЯZ0pQh;F^tR1j2,cc ^"SR%njEa[::z,F'ḭga_1 ō^3L3N_q c߃ R.r kբa0A^Xx"{,pa0obC5't!ocqo΀Z0,c%pX(1>;}aٗV Cmt55rKGNSIY1p 1A[ +Yzc2#2mq Lw]QK"et3Ba00@:3z˼X0TMu 3zX=xĘ³"tg__y2C/N~2 6y!co>WNKу0f0ν ;!Ƌ{1s@|zb롍 +vbl~b| cBP >}cf\0h#a2EeCSå9eJ%?/tY|z0)u/z J2dX(|zlJ!žuS1+ec$l۱rkGp#- Oj^L6<(h6K!2v>`pORe,E9 cR㹪WΨ!01:ޝEC06 :cXCY{\ںFGf >1Cph]m0, ؇g}<1xaNgjj[|zX,>X!6pĹx -&@3gB.~nchkpkwo >D/ u'\p0s4GV܄)z;ж^1>˛G8ˮ>b_OC`0>HfNW$X ,}`/iO#ڃݣGgXcR!0C=*L$`|߃O3yq=Jqxc>(2wP{)i6Ks׃FȽ7yDQ.I^>|v:l5vX{rJծNzZ{ +2Qiu$rx{ 'lQ'xnᰳe̯v Omob˒}Xa 2Z3 |ztB1Jz_r MQGac8q51xzB?Y[r6Ljs]KK龚nuCVಸ$z>=8kNsc/7áPblX/Cc^py:@%G6qϥ Qkc"|zxՠ05BϽtq嵦^~[R}џ, ϫwX:Vq?%&Y}_bcKu$+,i ϓ,bc#%`82^Ru1eqi k 'Cr':VlsKS[u*WS3rPJUwµ(GbB!nQ"h!f >:t,f;K MJގd}ae^}`ѻ҃_Zc1,кS0_ue+*G'#~/*(pqtЀb:GWҋ@^=c_G=UvJ3,2bV׃Xs3ak/^X#LKwY 0p4IcՃ~D1ZX״=yOz,>y<Z[mHحaW34uփW[XGVPPjLWMS+UƂŲ|b3#֛8A .yxI'Av)Ga>kǪ`Qc>N H/1ب-X}HC+ž׳B^l6 \\ߪޮ0I^~kBt%/KKt^vVy<3|9gΪz>U&Xk-G{SD1P}D JэPnBfR yZR X`x#9gȚ=7 #\+l`yuegc4w +FV1^6hv{^ x`8ɶڗ, =̴5 }ޚWHb1J,떛nD03Cd7\{,V+#pGǢ?1Y3Y+ud Kw7` ,5 gkjQ0C=È`d9Oч FIlYHl n|E3\{&oE "td fkbdߟdD[U&H Km\Ԥ;>0^B084ڸbs`7Aaΰ +oCaM'kߦ6MƟ/1٩M%O4qJ^!;UoUk|)QbTh^gms=E9M{J|N&` aRe^_,^|ӧyz;& ͟)pE{,QcǓjvYf+6exZ͟v[,g7_Hڝ8ays ;Ӹ(fBѱMi5H mX#֟pȃa΄Xo?(}9暅ӓ-giXKÊxU iz:z4rRAmDWA dBWU/ˉ't$ue^$ ŒI7+`y{Y8x$6Y`XaUoVYI.O$ϒ'B_8@D+v ,M!-XE y3ރ1-%3.pز8|,MZ-rKwtJ bs~Tih^=9gl[{.S[Y!˽e}!"Ak\bN,i)Y^ $z'p]t /ʰFT$Ñ(T=ֆRi(ãQ/VY6@%}ϚGI .=&]%/a$<IdØÞ}Q`b<gVa)j!iw2NH'*%x&w1\ *ح$FbV[6d)ؗ2S5E,S'AZkbQK.,3|@OD4p|ӯe/䗤i$P¥-I SXxX7{laR@ȼz9=%ʰQ ?KZYGdf Gn4yB8_H8cUd,,:&bJAé\X0s&u.,cJrL$ + S *{"IcX<{0&lUJuM$Eʣ 1Jf F͐"3ѴX+ m"<7{,KfA1rB,eTH$2Я^Ad>R_E㒛Ên:qf?9I|xUltcanL2t~=eҲV[,=M;cL 31i1:,h%ϯ'3]jC%,YC &>BhJ&_oG. GOUI!7L*'̫lXi$h09_436big9b\wblrł&+da3+N1mb,˩C&fC2>J ߢ<Ų=,Wd Ͱ5gp*j 8_R#*00I/,$̐ 2gCoG% Li^!HJxl̍+U%2N; N\"H +/\bVeM(!JR*eٰb5K(0v -a[Ӊ8/Dx: !uEԌEb%Y`jIZ1#x֞d1fXչOyN$ځw~+`jo&JĀbB٬ +a>lYk(o +L7 a[дW0BYnƔWf&EyCCE]|BY,RlX 4ZYDXdEfXbsaK+,.BfT_ڛE=У^W+Ibe 0xgV4`դ'dP.ZO0&ifK}Jm󬓅G[l 2\U&Gx]FMiÍ;}D$755(ӈu8ԾV3&㵉dC 5muET" &ٰ,{`pnB;ѳiLJG"dZ_A ^=|Ib U c=eAWk!eP|2r_^<l`1ﲧl,IBE@ҴXagP0cc Lzj0Fz\5Ҽ3 NMp0s!a4jY%[%'Ce&E`FiCd,0 Q/C )Rcb+@RZ jz# ,R,J>J0<+d@%{Oɝc=I5vz32XK˽׹)*3YVe1}`c +Ȥ:/W]κ=JRi F%&kJ5e) s~$5M&]-$}\ ULQ @ +ދqKq,nٺ7Y08rUEKFbXO +GaneDEzf1pw>ԮܗSKPzS _E`tXe͢c1&\$;08=zYJi=%vp8'3IrVFB1-% %Ȑb|UfJ֛Lz$f,U@|-  +V$A0oRʢwØ3/,qs*c"ƤuJ8(chp,..iQ0_:3{mr,MbaoXf$-0@ZbJMXN-xfj\Qg+ UjU #)Bp,v;P"C0CC_֩%B{?̦=NR-[.CY!uYVnQYcP' +爌Ke%rop-_NGdI{7e'bB;hZj ^}֑}}uXRL\z"bSXAbן&QzVC5,z%-WOL`@͠J 7k(+g/֛F/:XC!Zb,|˕NjzS+`t@!"l/+۲WG0潶`a|98}@㮭/ئҞ7`q`KbX)BH(20rH91L_2s\&e#A˵2 br˵ O,Wߠo&&0b6* ̀mzUJY{a'QrbXUPO%3as6embS.S_T q00c6*Ƚ +ff&4ٹʳH$(H.})d`y'O +,˶\ѧA4m}`q&IW$ze=6#FkkI+RSyHCxÑnWIVhRbi27|zǬ`+_uO`ZJiOYd)Gu,' N,ՠBQ{BhᰩKdfKwcKB;ƎoUX %l4xbZ5^A7B`;$rj˺E72^cǢSnCK P+/EWwwxĘebRRc% +saJy; +z86!$H,G/& ӺK/Y8^(XJI0 $v-dWJiRc-Db1LY chPH0x-h0v^ֱEPzQlX֋iKp[fJ~ lU׆Zyg9AUfb{Rb6ƻǂ|TbARgb=^lmW΍5[[ d}\+ϷzNHf M1-ITb̍*c2z2ip읐 Zdsq,fpP]2ݘI fE<+bq)cR%+_L2MÒyVJ, VTsBeb9SIH?6. Wc_c=/@zZf,ӥG.J b4YT?Rj:&G +Yf+ׇ٥jXg4hgO9ak01G݂FS9zo}d1;9]|eHϊ-ͨ1.ӞTqcyJ|rB@/Pf^Rƒh`%Ǯg2_>fH$%'kIc/Ƹ⑽`fTCWX*1"O =џ%ۢ6X<ڛ c2ʔXr4&&rϊJ g'AӰ2O,6{vmWOJ 6  +Րb`@l:`R +c7YPctdx[M l"L"3kA}pMy6X4`D*YQj/i1̮g2ngC\2 +^n=<+6(X{]ʌ$+7, ;50UKi\?bQctcڥ{*kŠ1C\ 6 X:J4:xu YOeY_2%<V2.c7eV0YL!\VXF^Zs 5lpNMQ>xcWpԱpdC C բFpeLh!\@w؄ȃهpYm=q5#/#\pSg2CTѣCdC2zoJ~5:˜/:33*\閹.~薱+!\FmK5:pCG[!\~Iv:p+Ft >Y-er-s-׻nsz|7l-c}ӈޡ[h٠E9NpzeNSΣap9medEpJ.\n؅\p}.cIpdA߅БWl.CkICI—reÔtQEƅzatCF^2)!\ֳSif6aĊn586ݲ!Ste62)le8 +@p)4O-cm]IFj~me1%Ee, J|Ȗ1$j![JG!O2g-e(X20nآ[FheHlv2EٰEI]j-ctkePblksZe X![FUe-\rd0e;e'3 +CW0l.n\he^pi JzۄȊsap޺e1C 3=2F.cX١[9B*떑N n"[ƔHc;t|2-~4]d]d-cѠe,0>C̴'W2lSv-$KeT&e62Z1ѱO2LLk.=e0[MhSY!xyeeTg-cN-eDLٲP-kӡZlr2꒑ZM,Ple5-c3eZ?SeZM+q-#WQeS}![toɖ 3u]i8dHj*n-ނeB[lY``G"ٲP->e($ R)[]eNjM+l-}Mi5v˸˖=te-^alY謣72^#![fb-2l 5緪e8bv˖Ery*y![DoSD.[EnsQ ص2r9wղ4;e6CyNjyۃe2ͺr]lQ-KA͝ajcB1ZledU05]iE˰ -e)U/kS-KZc,ZӡZfטU˸[Z̮UjY&*eOo.enz7eR,t@-eL}-Mn-c?;h rme䷲D{-cZe5.ML.kmZ|lU- +k٤Z6]޻j;tQղ,`겫jSDUX'ejH=Ov-ˢ $.[Z$޿w2˾ {-efKE %*[VrVc.eeN T8&YZ4\A'8jW0^5Șa4k.ZVD6ѲܻhQ D˘uUSp_5X_t½kO j;JafYM62IJExx eaRw2&2-caS.eUtl Me)vML؉BWZUHW5r72^ڼN;[dS}ewR .\FS^SY^F&2RUoM,g.c '8W2&e 5.'[xUV72xnУ[9R+n{)렘_tUoظIL@E[Lv/w3G LaͭeB3Ǔ̲e$vWղ :J׿Q[ +sZ$B!-ew̏ ѢZMPr!fղ wH\&Z,j|&ZF܇Eg-cU )YQ1ohY` 󹩲"Z(SQ2f20O_U2őj( afyD行fUR$ثfko9k&**E0M=eTR%h ߫fYnflRģ:Ff)ܛfXƭT fsAcQfͲ粞U,p< +a, U~fͲ IM?2K͚e! _Ue S2 OP +?MLR 6kL)RfYȢafa լYƘ$E'ZzffdxP U,4Ͳ@@c7Ͳ@ePeTVV2@asfiIc;fY`:DU,𜕹޵YL3YV{^YXY,4X1rU,Hݛf-׬Y(⪤5kp*euoe҄*[hY<AM,X6ELWzff̸7K1}*7ɲȧrnv,cJ( /X {$l.B,Y{[$byjr]%bzl"YFC9%H($J.eApi2F1/\$˘\ +e|c#U,&QqLrx,`쬫dleeGtx-2lJghY$}{S->~oeQբߛjoaxV-ZF!!tqi3Xo1V2P+̢ejWѲXERU6*un1O/$fѲH~2`rQ4MLv/Fz23{n-u7Ѳt L0#|`h-PSנ_E˘ Fr-#SxT2& +È5YD+RWXE˒r%[ERxidjo& l-c~q%ǩZFse)IŎЂܛxamhTk/) aGLX//&^FSXfseH%#;1cۃܛzY?=}Q/EMTE1hHdU/K%xyIuZ'gĜW/f2ޠ(Ea2/RJ4}Y,̭nV2^jvY!ܱ-,eCd. i^HfGi.˼t1QExY桝wZe'WK)ej|7/Qx[n/¦g/c5r4u{/65 +e+?)?eYe!4h{+kǽI̷{.cH\˸y*,inU.#>^U,_2ѱĶ&2 9z3J(1ÛDf2:vEHӐY +sj15Iz.+Fbf2G-SUwJg.UX˄iT.+3CX73kѾ +]ix*`F :Ѵf3zRQ'U6l0*ҔeT>HI(\%XԠ`vjS(Y%g% t\3mE,"`Yo&`ƫ$ ɰG5 -fc,ofu]ȝ"=f`O-_vVz/cʢ_F)NY(A8G}4&4뗱#$UD-ĂeN =edÚJc9٠:_&4SĢ_Lh/s]Y1/sEq~cwqz0ɺ73T4l ]Xye,`F-0XUx? +fZW +feX\̜uqELcx;;G%yߛ˒4e0s-J{~fyW3Vܔq-~JYf_ȕV9|/#͎3{/c w8 ze E gi&_愜K˘QD2STE`/cC>$ T}Ejr/cQҿ +61Aha~OE>\`~b:2|pBoأ_Go/&xU!e̘$Va/#gܥIu/cA>{/cm ばIkTd_ofRLKݚ̤ ~^I_k ~qY̽闱]ˤV m!`&;tu33I#73 ⓫)$E]%B3?0$g3EL(1ǿ$K3s7 +fvw`4ÀzZ̘zIML=^z$(*_9ié^잧toePE81Z4Q/c:H297Ra/ez^evUN^˼(֢tËzE72és齩y.T2gFM3lV/cQQyWf2p4zd9AU: x͗ec 3J2RzA:e}Q/c#{kFˊ5Q6%(%.e}m?yWՖz926oJ2rUo0eg9|O7e끬^fY\Y xY@;6;XXhId#]F4x7#]FzwFdl9=Ӓ\~FXoH&\FhCIˈU-+d\fmbX%L4rH#2R Z2R*=|,QkдP.#X#]Fvg +U@;ho:qT.c1!.#kkPf]Ʒ}7Fr.A8%Z֗/iY/8{2=2^^.cU]fݲ>025Hck.#0i lOZr7uaDuelcI.㑀CbioQ.cnpM3\ .6j2R/2ܻ2!Fy( -ep| )\Lj˘e*}1ep(>jIre.YvHT z1o-csDw_2>sf[thجn.by{JIKb.TlKpb?j.c/^2fJұLTGt]â\Fy6k\f'#vZˬYxv,]؏\Or?,eGޏijQ.2?:N thIDZItY1`u3&ee%RDq`mi/ tYV?Lt{`"eG_D,j+e4jLlg@vQ-#hsJ]A-ۃ2J-Ȗ[qjn`X$lZq{?e%XEK-e>-2(FZb\յ6eT=x}bˈn*h-c eZw?#[V<$+ex7WKlÊ l)ezm&e͛QsP-YĖUt=e$j[V˨b2>잣_XP8A-]=2*|A-ބ1xt߆X&Z%穇̈́ٵW_7e/'ӈeB5m2|SP$e$ykYVULd}5 -YF‰,ˆ3t,c"*&LH܁$%XV߇I,# r HbϦQ27̎7%2WQ4'> Nfۮ]JIdL맋d骗N%3ZY`, `,Yƥ.Cf h'Z5ہ2},כ2pe"4DQq]YD2e뛸̲E{fA-[@Z^ +ԲUCݯyOj֤ZXQgZ!I-{s~e~ɖQ(.-*/e]ӕ1ea)1[VyRˉLjY);eڗjYa|٘ղ W-+<ۅL{t +endstream endobj 157 0 obj -<< -/Type /ExtGState -/CA 0.2509804 ->> +61613 endobj 158 0 obj -<< -/Type /ExtGState -/CA 0.2509804 ->> +[156 0 R] endobj 159 0 obj << -/Type /ExtGState -/CA 0.2509804 ->> -endobj -160 0 obj -<< -/Type /ExtGState -/CA 0.2509804 ->> -endobj -161 0 obj -<< -/Type /ExtGState -/CA 0.2509804 + /Resources 160 0 R + /Type /Page + /MediaBox [0 0 243 187] + /CropBox [0 0 243 187] + /BleedBox [0 0 243 187] + /TrimBox [0 0 243 187] + /Parent 161 0 R + /Contents 158 0 R >> endobj 162 0 obj -<< -/Type /ExtGState -/CA 0.2509804 ->> -endobj -163 0 obj -<< -/Type /ExtGState -/CA 0.2509804 ->> -endobj -164 0 obj -<< -/Type /ExtGState -/CA 0.2509804 ->> -endobj -165 0 obj -<< -/Type /ExtGState -/CA 0.2509804 ->> -endobj -166 0 obj -<< -/Type /ExtGState -/CA 0.14901961 ->> -endobj -167 0 obj -<< -/Type /ExtGState -/CA 0.14901961 ->> -endobj -168 0 obj -<< -/Type /ExtGState -/CA 0.14901961 ->> -endobj -169 0 obj -<< -/Type /ExtGState -/CA 0.14901961 ->> -endobj -170 0 obj -<< -/Type /ExtGState -/CA 0.14901961 ->> -endobj -171 0 obj -<< -/Type /ExtGState -/CA 0.14901961 ->> -endobj -172 0 obj -<< -/Type /ExtGState -/CA 0.14901961 ->> -endobj -173 0 obj -<< -/Type /ExtGState -/CA 0.14901961 ->> -endobj -174 0 obj -<< -/Type /ExtGState -/CA 0.14901961 ->> -endobj -175 0 obj -<< -/Type /ExtGState -/CA 0.14901961 ->> -endobj -176 0 obj -<< -/Type /ExtGState -/CA 0.14901961 ->> -endobj -177 0 obj -<< /Length 178 0 R /Filter /FlateDecode >> -stream -x,9L2$ÀeKž Zِ cf!h`V<}^]o2`Dnc=v޸qkxkm9n{H5~zoa}۾m{|޸-9l{ZǺk9l{)R޸q&nHqw[?8譲Vk9΁s}*$uj<zsVU<뭴RRRU[8ӛVz+^s*[QW=k]`}/o[yl9OowpK zsVY?9zlHzs<ӛJYK6~zsVs0xnOo*)?2N0sU fsU(!m5 ~zsSo56jg@p!1lzsᰚZq7?4EP.?7MU*0?9g^A-0Z2 Ml3Kߥ#%|wG,Lp>q;Qh!,~6p;n=##H>~yg'869v -_s5mwdOa?'W;~bMhP?JF6wrtAe 3tU,)1?UQ>eT;''?UQGT;LWEuP/ 3]H~ygx!9gz*j^ַV8Y/ 3cwy-mwsgixkܟ)23w͟gw?oVNӶָ?Z7mJ>sgo?HYm8~xkFfg?~o?HXo)3q6~rq6ָ?ܭɤi뇷yBtykQ>=؞蟌o>K([\Okgy4yGxlWyA˧w?ث߼1g]}cߥ\}c[}c1#⠏kGٸ]&FƩLi"~a9o_=~ǯ?ļЛ]WM WM7]WMWۚ_7_w]mWMYWMEWM1WMWM Wo﯌7FMWM7]mWMYWMEWM1WMWM w1W1S1S1S1S1W1&;#}9W]4cc+c+c+c+c+c+c+c/E˥Vu7Nmܮ&0Vrn4s??Jrn.&s[/8J~cqJ #N-#&_Ϯ0ܞrnXs/85[T~aĩܛ #N-(禔_q=9wˆcɩ o69ˆw񦶖s/8;\Fsk/8u{Z~aĩu #N=+._qjV9ˆSʹo7F̎/87Ĝ[d~aĩ #N-0禘_q}9wˆS˹ qv9ˆc˩7[/0Y}cĩ\Ϗ8Мj~aĩyN #N]3>_qj97ˆS̹sFd-30s/\>?~!s]+&{=0;U|'xxoL--R㾽WBG~ #*FxVKyj:I۶C~!*ӐtY`ȱU8'M[?rh: A۳C~Ҩ!*ӐtSdȡ{4}T>5cz-mXDZ>i06`CW!?icqOگ~2nuƫ2IOLC~!ӀoYܶ;#}һ!^㐟tm`ȱK8'Z?r:IOL4)>ɐ/M~0؍u򓾬 a|#'Å9^/0G]X?r:IC~y!/͉z~0cun iN|g!_uX$5tTѴa?ïm`A~2䯃j`A~2ДuJ믃5fd_>jɐ"|Ԍ!M6 DC"|zx5]`Aڭ~2^uF:QOu檟 94SG\HkQ\Ԫ!άÈh}k' ~ҕҎO~0`VIq'-W?9&IOB}k)~Ob>%W?4S%U`8T?q_~#O߾odA̒FfcYWYOgL9P_9aŎc~!;7q/a1| v 7Hi?4NcA7 q/$_1}pC~B u 7i?pzB uG.i?~ѼFơpÌB .v 7q/d"@b1|* v*nа_HFPat6B07n0_HH!c~!#:7q/$ _1|R ug%܀^1 C7~iFb @v 7iD܄q/&c1|r ,v 7iDiDq?pB v ) -78q/(ܐ`1pY -7q/)ܠ_1i1|B_9 g4_pB#; d+@v -Wt8OWBcpŎ#;#/,\w)dz()[*h@}Q?hÕs(^z{~]_n|?"9~e] no|qk~XoqzziҢ?wJx- wof~3~݌DմwUڡlG5*&G a?v5mwg_roFȏ܎Z5j}ۂQFm_C=ݠՔ.}kԭ>b~;g^ |iPZk*mwc/#۷4=pn=GK waNȠrvNnK*kD8nܺOERZm_tT9`GFѶZ޻,۴swb 9^#WߚU&}]^E); g`d<~o!_:pueNuLfi;Y- "ӿ-=\lH]_[8vN1-]?ꇞfu/z3^zC:دo͖r}e%^xYU ]dU n帹Yvl/GN K7I?l5]DCq"2#RwKMeQe^DyG|=i)R'y|K Xqǡۿ] zy. [ّFT²^ƊMj,\(iCl5l7IJS&+nI=e\H܌6W.22ʪEz\KRGدLR˝L;Rω[3l$w%-Rc[,WR̽Rq#ՋYtV(Y}hz7PC`=E)%Wgq2)#k*M!ߎL7f|\%%jXh#kM -juG*>!,UU& |t{x/+2O<]efWY xB2t4bʤ2{^2i'Ϳ|IGM5܌'],Rj5ޡmj5^eR>yLX[IIvKԫLxQӧg~/6L.jʤP/O~Kd0YSzʤ.2ic}xF4{Ͳ^!"Q2)Ps1kLH;_*2Nٯ2)Z&56 }ɓ^bm.Iш:ےRF&ڝLerc^2=T{*M,[S~ʒżdRLHW֫L-_(;"&N}e%4<si2}pY&{ʤOh<@&"GQ2)C~|A&_K)"i˃A$%zAᵒ_CFɪO2Tc64qIk/2d2ibM#LXSAFiK|ry9 )`{*}FLk.S~N#m-V o葲fLX9  && J[M%_K4}C6/Ђ2VA /%镗##eM.n&5k-2yۃre27@.|^Vk3>Šm2)bFBf wʟ&Pmȃ $$9idUoِOq)&GNPeu+'u%EiҴ5>s{ʇ, {yuM]ŞA\SO] Eί2xګ=9PS:Ϡkdz+Ob(?u"GOH*29sTe=ɯM6qh3ޛ< i]AT/ si?"~OFz -)J)2)bB)b)?.i}-z|jevJF`Ow&i,L=&#긾h!/2{d9^ˀh{'|''55DkOoF{36˾=Oe$RiB(ٯ)E\7" @EMV6W JLWSFpE9V{^Q($#}9cm^>ܚIkU:E¢_N c3mzЇE'57|Uε;>N>HbiL1?}#={adǐϏGmL4q>X)S+Hsʗ<ypdh7&(޴\rʴ3_A,wP*WVᡆyIÁa:Qf̸:~}z9n-m&HtMMT}>/|YdZR\%cFӴred9ħ'2Y1,v*[D؞F{q$d¢&\40 H=#Pq9NQ>\ z\Vh.u5Kj16q S6ٷnS>B8mk{ؓo$}s2ה?ӕB [$O| #ɪה='=aNn4{xZџY\qzR -J.3oFeK?gְ1=耓LXV t>Xe'KqfӻM#e+ɴDb?EwsMOSQ~nr^\d~ʢ6drO;:h餋/vKXM$3j?eӿկ)]Þ3& 5dG\{o_7wEW6f~&NTtMEEO#xgR➇7ı56/=l4 &6/0tsA8ٚmGUK\dŨxĺd><f!2B53'+kUyxnŝ?]cE۱\%fy<3=7MɤȒ+c -[[< m#qcc%7N[.o=6YlV%pds2`*edFdO?y]k.&z=B̭4=rX5}|Ts$2|!"gUЬ Uڞ-B]GfYA02Kv^2iI-OnkRiWh;!_JͯHƖkn\9KMv!Ǒe2lYmJPs45A,>I20D\˓N6V#'MFAj"4oPrdnk8?<0%ãeR\9y <*Jvf8?¡ܤLx\GɈd?i2"Mfzz^HcCbe3 IN p&dp0+jHG&Wm/m%/'{"b7W|mUG;@B-[ۚ!C{+yK6 ͥ_)՝Ȃi 5#HZF/)Z98\A4~~ɤ`CݑЂQzS2 :K 2=Prj3V5 mhQ֦o%+* -Js{L|c}mnʝ?Oܡ]S /yãύ76ys0L6;@5{-<WrR>WP%cA2,8Ϭ6w+1dzjNHHte 7JX"dY<V%r+DKjqd)jhqӁeNY%NzNmڣe$Mv#2s0_HJ!KSᤈYg)(,x2Mj{NWm{ŸNs__Gh9_[bK>_^j;@'MLcmF ]dRRZ^v/RIFJmFN'Ɋ4 v3Mvez,f*\iG!E+Dj6+h7/QCvܼo%?보 /'ۼGʢ8dz7ΛJo! -mڧ -d%6ei>q;hqپ'm)ppފSweT%ڒJ -,Gdٿdl^_[dR6x39zrt|;-SrqҌ }cdAv`tM2ys[&:bXK3=1Y8,MdR /FF#I8׫U\vwi5+?†]]ər޹L:=Js7>k+yszi6MYbY&Қ! -gFL-}YxK!d#v )#sM5nYe~|lt05G1݈I{k)]Sլ0۔7'.҃}ʓ7ھ*A6JIfr]{`CAVWI.o'gNuE8٭țӺشK !Y˜K?onh`!1=kFՖUKu^\%(I$"/#*& -Hɤ)K H\hrZ\8e[4fPD;:ȅ9vI2+_.8_R2u'WN|ϖHˮ%إGVgEhz+J{F?1bؾނ&Δ,/sBsI nDF;k썝m2ƕ 5=i&]i"!w#x ϒ|S|+j]qth@.&kֲބoj\Y$2g~7xiI l>c1`E _S&`N%0U'?:|fڶ`dRž"%tdh `;ZFmjU%$b6^ʿ9lI}2+>A6@w oYpi&;<~L -/Isڙlp@ҿ8l=s"GiyfĒ#Dd2(_oqX߉f$dwg~a` pwy9q+.?לHqAzGE4cw3}L&\{Zp甛kKp?LVbf -^GkސVEJ0/ܴ].\'~{~ԥ+|z =(P:<# r$IaYZsGHxۯHX80?O!*ZҫtK2Cn2N-2`DM.=@#M)HJ'mD_M& | 5כ4Uv;Hx~ϳp9(0rdJ"c2Jᗔ5.z)_S&9JFqނ7,)b>o&ӣjk\*މn K/ ˑGdHœ|Z~I~6n2i\Ԇ{F2q֫ɤ:5WW&}MBr6B 5+C5۴EŞ"/ 9 &9-6>t_ګSI4&|bX$B#hiLyv,*dA_\Z_̮IఐYMdjȦdtd͌dzm"&5,.y(IÔmD鞾$^Cb>ZL 8H|. >ZPt: M嶙^rcuQdn2Ήq-M&M6L1\g\.)!`0;2iaHmn"=4(VF`Bgd]'pctkZPH nV.U@A®do"Ȥ -ld;Y1&AAL^8NeVl;9pZ -?[HiUn&L6gH:g.>̟n?8/VFD$zCFԟ!à6I" aD҇yOp栮NHp985YĀƕm^Unjֺw r nTlx{}{t'&Jk6gIm~ړy3D0Y;)U\<`jN;gAG;jZ[="*ؔ[d2vDdl"Kfſ8;R'x.0Kr0dTg_U|U5; $U;ıjhbAoO[f6k.Y Rq 4\RX- 4aYkhMEy ]ekkgIѦ\;݋+ 9Kř' ɔ:5ReI2sQOթT@i2%[PQbo8X?tedF!Ύ\x;¡pe#Ҿq z.ZSC~aFnK>`;">zb6`F CgfU s+sǓ~|pf,T=R;1i -&˜R!0~H/Y )6,jznV?(~}X5d9yI&1t+Z8 l"] -bP~HN"4Y=؋R>erL@ ϤE9u9D[=xWY7{z2Np 0lyMAޗߩwI0̷ۛ\T?jf\?=h'e8}LjyT'j6Z1tTji87w-lV;6ɤbޡl[͸feS);d]iP|џOJ|I^}8+VL8Hf#lMAԣi})eyAn^Yh'^>\2p5ϚDļn.yݵ/@iSrdD{K(eO V,S)A$Tl`2F>-V $0d4 ZhHAiѰv7 ]/׈ -'B2YdG vX&y]-)Z5ybGMV*'K ]vɕJ#fnS?[nvПdZp9JςNI<043 f2Fȁad (}-Gf+ Eݴ">ν#A&a=i)y0/<@HtZHYUh9OFFPK m0}ShϠFq}dhJ8̋pTFO[Ц@Ж[#2*- IZT|dѥǫRy#J4L`uԚGNEvDHZG^lB`&&R?hyZZ=EI "@GFO2hNwzs -Ya&,Md>c2̪p6\kt.e] yV.{)/Hh⫯Fɨ(,&0e2b7T"ȴ%f4ЮIFdIy4%i}"G -Q8L!ҟHb`tSB,6 w֍>%2+c'NwI&!r]ɐlb?4KZ_d lO@ZnB -RV|Ðd,QNSn0~pUNU2͵ddvPF(xWĚ}ic3uE[˴9rSy:b7H&P2 * ]kc%G -l6L4q@63rK\;wrH~&>"g $CיvjȨجZYʝx=` !l#8gL14't#vii{f 3SivGlp`&bsp,mt0MmG(Tpxf2MJ:cƫ9pM,Jv -7lCxg}I BoIXKHn?zLЍ+t؉~@ܸv 4A̍|d怯&9X?tfDq\@tA01sk2ұz3$zd_faҍm5ty{*?-=^q,OO\xLdNzg0if6T|st{R.-̅,gԅ^ `x ڎLօ%s꯺M -/G~ &mn&"Ȉiq#{MF3l #zVބ7RUH$ --omD^$zH% ]D:w2ݱdZbCX&d?b>we7Y4Yn&;6HLh%}2Q&+XE4N>i}ݕ[&37 `bdR}a2Yl[) -2AmC[&j]߸KB|;h?pGoB/O&a*jZ:t)=-YVO0A.@F|O˯49֭έ~WPŇo쬬@$-=tDkIb?KQRC[dDgְZȂF.,AkwGlwHz :ھnrڸW?J2(2=ek51TN a2rpM'# >#"zu_/p) e6lJNL-#G Cqb,ViXwBg*FaHѮ'ZEkR좖LU)BPDʏC1RYU!"{Xk'K*FN7H6&Slw*>Io~du4߅~2edd3-+HYg!2iy"lSlƚ&n~V!bL&-;f3HF;MBgF'8/*b{=1 -KB@zd2(8ŠnjL6WئVA,#ZpXUK;{_ -ˋ5`iW,M9aۊ^;kSnI[l=L#KxFFu& 6^6x##:?@d<Hg+,yr$]K{HFb3wC *r%i+(H21)^gs%*++q1bq1F&Kho| *wzF.ad{{+LrNH4Z+pgid-qzw.ƅFfGuay 5FƞuyעȈLhadl+adE;!3rY.0~YhdV :ly5FuȬSu.0 #^FWVFV(J(02MWYa:$pई;͎8h+fҫ V%yԀk _qFօFVp= 2*mmVSpG#_q/pduUWxaƑdGU=qdɩȨJN^Ȋu%u֌#+m GF#m.82 YPӦ##l‘/822uct:d瞙Y,@ GVB 6 -}u}eGVلOGV3Ed3ҵm( ,rM8BY.82hdzYkid@6GF qdSo €;{^pdk#gd"7l$]-ɗ 9ɤGWY!ڿ5l #+j+8Bᆆqdb&Odzp (+S6Ȥ* `mqd, @s.4aL#DgK|M42i7m]npdGV[r#/GYtX|9h{O L8؄GV=ݡi44g[npdSPGFɽżnpd!srql#8qI3 @82v{UP,^rq ^c‘U)au#t}oF+־#,$G 0hCK02:8Ȑ+۴0hb##d'ifY;of䇯ΉXdNkYdؾ"}F`d&Ú^02d8 adO#CV2L.AQdDxk!zp(UZ#E]uPd<Ef2ټ$2D/@"e= 62nw=xѪD,"C[e&ElՌL"CY7=ȐjHŁDF3V$2d(գȢ -H2'n"Cv},ZC_ycl1U̎El]#u(2DL"Ct$2͛IdHHX= fڞ'! $2DU2h0Hv|$2d;CG!XJ2zӫEFFx "C64ȐxDFjgDL ]k !#~ R Yx6BIdȒ,SHdJ1#K(IdˬHdk}IF9](Iƿf˄$#A3[=,RRg#̺q`6zdߌ$#s]IF5IF1@`=hX9c/$yPPI{z=b=ֺpdW]3HM6&42>23v,pIfm&yW$CFzE%F0K6`ɌBOԐerpMdگ4; ѣɐ_beb!Jxp2*(٭6p2DΗɐijɐդUs'ɐg܉PfX 5˄(^HXc2D&;l# IIQzFӔ|zF҅c#zp:e2%u Ѹ#JW(s'h*ϏQF>Nyh=r{ze$m\6zbY*h CʨR](eh[j'L296;Nfy`L=AeVjvzRÛ^8ެCQu 2d8=ȴ\0u2IWF5AjWF-f2uKW^YڭqsXfJY3ˠfʛ*e~k@,# \o 2r -o#2rS6$3<ҀH,V5ˬO=}w$INtS|,Y}2i}TGbYh {IJd2G='%;Iy#C -L,8}]2fkpn} 52z~3˨ZfR޵K"H ȲÒvkb4#gdl6 PدYڼF+e(sNS#Ȳc#C*M2Jqݦeĭ_e$lPOYfM5e2W 2BVzXYF']YC#fe$yYF&;e:ö;tJO,˖sFtGbyYFJ|Yi൷~;#jg6W,3, va>e/dY^fU/3~Pv i=xOٳ],c+qy-3fFѧ,#W?e93Y)@X.2;?e@waf=6ͬeQHXf sp1{,3>-] R3 h?g2rcqsJ,+V*ө=^,51gk,]7GfYfr22 ɅYvXYLYp@˘6ڃD-#(^#X=ז #Ͱ\f %{ruZ&Gr[eoCTـgwjyg8\vAiyQjS \Fƫ.deɴ9k'i.#Mz CS \fiu" 5O2o0'2P.wm\Fs:n;y= YMkǖ*ꪪǖ*ٲ!"JrV ̡WM2֓w@-TjZjt#&j5 e$D:nyp/sah|6 \e'(r+˅ZhZF/_jMeFFj 8-#i3$6מ5z<eץp%ZeRҎpm".jg7h0 g/#.g _fa_Fby/3/g_lt/;;~Yap/ۍ _74Y=j2MË/2L6.2/eL^G~ ^V6ClUMqL/;U J/Z2I_e5y ѲϦ/]2F6ey<^2fӁ2;J/,+PR5ˬxLF)rG/s~Sf|٫c_Ft˓_/2lE,і]Fe ,{r.n.e!tYO<و.eO.;neIeX1{Mu{wh7tlk0לe22 ,7\ .w2} e񄓍ؖp\Fno.nu&gnVs/ز-+؛p(sɌ-#tmѓ{eZ'%.;Z-̼rL.NH\(j6˴ݧ pZ^e- c3̂)pp7X/28E_WpfNk\F}sZe"B,r e\f/e5\1+|!6iri<\&x-B.Kn-[@#fߓ__[hYz?eI[?z!"!nNܽe%@.35彟 HңːC2S}Z"Eo!jeVɿLAsVz2Oye.cCleeb!#]H3eBga$X ]f{?e,$.e{]Ѷ\,(=cY2j -3p|FpY2Z9զ׳5. W0pY2o5{p2z4b.31Qp5=eh;λef/Y&n2N̺g[c$ef)ū,Z )` زh-E<cˢȶW ZeȞĚ䳗-Cye1;+' '!vWL/5HpeD[y0,{vqeк,̂YխVfb:Z ieDn V&(|YD;id+#nEVfQrֳ^rl>M:Va5x Ufkk[6ʐ%{fVC[ǽ2;F':ZYhev@EwkVf,v 2d;g~8`ıy^g˜Wf-Cz^+B+G޻|2;"W̏R]&^4yse!^^9j!#@"xe~ +3@=\gs'a2?k>ʐi4™d/\=78B~W֎iOʌ@:ZXܦf+ *B7`eZhqkk׼ ː1̏jW62Nx-ije~_&d2I#˜QRyB!{=2?,oYf􎐞![t@,Cdր(liq_O,r,C>[XfG5:bNBeF-&/ Yh˄,Ą,CfY G#,ס@Z&dę=e? Y,3 ,'C -X,+~{&Y܋&b2 -笛D,đBO,#$W/?\Fd`w˂ebzb2 -ے2fdXl%>f$CmGb"²za@,Ğs'b@X͵e+ɷ Lk`+=%*t!ۻ%ː.*;`9R Oq@,+ecuWG,C&Yڨdrώe;X 5U@,3&U(˄,CΊ YGk7 ,MښebO2KKf2+5lߡg;5zfqrm'9  A|w2D^gmYfY e O=I-6L2d̢U͚^Q,oGY = eBYҦee|vYLes -8g 4p ~:ːieJ -7e *[^@,XJy@,E7߼'1q! 2dTSYv, V,6ef,CCu`Ǣ~"L2 v?af qve"C,5_+rpgX&`2:bK,3>Xnbp@, ־IeȠYűt!LM,h` i{#t2D=e[v, F%11˂Ԑ}f2N:0;41 eb!jf-oqdUQ{x~,mZ:f21M%L2dO,c$xJ,CqCc!`elzkv ٳ`pbOËܞca2Y“Rf"/247su2dy;A˰^i Y"D!cژ9A˰ȍ3@ːYShZ&3Aː- 2:0H Y:L2d ZYY&!;݈0= Yd=7U-CkgӥaM+j2'A@-CFT̬iD-CFf@+4Pːћh"Y7-H A eV.C(rel`!{M-CFS;@ːoSd-ùR-Û. }߽I,::pg!cYlǢ 2D򏤂#pYiB;qF8#ˬ_)YIqKeVxoę=e4XH2tL֟ceH&DL2ŻF2slfUdֹvb!K/j`YEx Guy,Cm fg- v:΂ZfA{  -\iR Y;Hf@YOe~n0 ː12DZ4Mv20l),AYhl%{"P0kC ) |xn`ZO,#9a>zf2zM2dy, ,eȴDeFӺNez 2dݑL2+,QeV``j!Jye-CյeȼE {hEeVSe(2AˬN_VZF4{w۱Y_=Q˂2QR켵[eeg= }1O-SSfٺ2dGr L2d&j?zhL/h"Y!&h2WMK2Ts eku! -:ng!s̲`güY^]'hY0Fy'uвBzYH;YX3ˬ 608`XL2)H Q|U 2dO:qF"vev~?kjY0$=eZի!bhJ]eR^ZfG@KZ_eu2kB7Չ =,X22d4{;;eEf@'1ͅЈl̺̎#˂ya;@gu2*,S(zd2e3qD,CF.^v108g ZLs |q:uVwh\ e ~Zae. w?e02^g S2D$ln2IPD-〸:jHEzjY0(mNeGgkKv2dwYG-C: 2ojY0D>  hÝ[q>Il2=*5PckZ̼чzjuwjY=67`H4Dehb{[,>f ̲YF^[ffI;Y;"ˀE Fdy9z6e3<@27e0ۉ4edF Yf>(qu9 hGye$husYf/d'2τt4@,GFb1/3 2GM6 -@~\Yfb+Thө|ٍ2P :đXf'42q@,dҶ5ˊeZӠe&qdz儣XFR:0y}H,#nˏ2Na7IJBRPXFw{ Dzj` @HbYCXFlD݁Z3(u2(6?E_fbrIJlj3 |2*/H,#@OrH,#W!^~ɞXf&դXI#zba'G4hF&z)H,/2}eS&Xfך78k>af/`荿7e']sqy2hlkoWOeVs6˰,5ZXF\eWTk<'Q? Fbu28wBZO,(&jb5\$\eTj١G{g.}q@,0Ջh$q8Shc ?h&dkXFd ك#$ 밄 -X*h2.(hb|Idx4Yc/d8h2v{2wMf'g&ah}MfXuMf}=m1tMK&#a'k(ٝLfekh 1za.ាLƓU;nRN&~*dudXTN&c o6/Md2`߽d4Tk;vw4 *:~& 4gc'" MƘMf傉;;̂x4x ,du Xa76?p7"dF`MdSgp+2sIo y-ܼT0:,}dLaNCi0+R%3d%c,* d*V%U,^"9nddGS߹dV_5xlY!.n%cb"ͪ?Kf=UE.9]v16erKf9=\20%;fd*Fc/w0~Y& Lfj;ɬ,M`2f{c]qdZL`2&_uY~=d@89w.s.*m⒱=δ.ux4zd<LF^lrd>eo29.N&cwMF\b4<)chb6H4Mƞ*H)1؎*<1WMƃ%69s~MƂ>ɶd 1Y3H#LA d29;Xjו1ɘw*d2jAɬwÁLbK+djf4uzm&YY#)=>*1<=z_͑LF<.6ߘd2g2?dtذ3dtֻ d2+:'27>;W0hs u#,&2YN& N=L2 z'i׀70_դW}m8Kfjlxdj=pX`3-Uiw.YNj M\2W5d,*quÒ UT2VP! V(7TpSX@W\*bDDԁJV\JF JfM3nP2kkVt'%cTRW J,w JpZ&(KGhA;ePIjJdV";,E&%REE6Aɬ[/%c$ܱdpdX2ɠ١SDmL}0Kfm7aXpǒYO ePL^ˊ X2:wgK ׼%ce-@sXtcĈ!vY^{cKfNjsɂ\;NXW \24%v(;aXăĪKƂ&l~ީb8JJfАM%;LT2gIJL6WT23)*"͝JƚaO#z0uW&*K|Y(]F% ]PQmYyfdVD+7F%əm$SX]$ QXǨ^7*CT2U 1PX$.̝JƲ>NcXD w`d,K[ ɁKQj.IG#ܱd,=bm’;~?)d0a(igXhו@MX29lbᒱ'OYn`2)s8v܇[ `26(k&SimYO`2$0n`2ܺ `2d,advWLuLFMn7`2XjLnɬ9E(00:&V/zLƺ$3X~"7(V ~?{xB({Ou J =)1V|g~OO?{.Gc=ɣpO=I=Jy!#|O5=*yT5{:c[=Lan={?@ձ{j,{zG =>{x}7gx!#ڙ볰{+5{x~<{}ô]ͽc&#%'ޓ>{.< -a#q{x={x6!-{Zϋzڂ?{v{#%Asf|UU,_/>p+d­:p2<|m~|Xwτl렫ռ"|ֲnA=2|=2|X>+^Y>ט>0|0|m"? |B= |="|JG? |ZuoE&'O}> '+'IKVX>~f(rNɂ, #f ܣO?~?޾F|j8@|N0oO:-~ -1ƛ!>&roc00 a~ |]92hA\PԀZɾ"|ѵC >x+o lZ?2|XpçvcseDk'OZ'ONV=|z+i>n=|ToO|޼ôk;]>'Z%3'[D3§ʼn43Z-qg"`g{B@{gh`i/襬Ü=G-{ThET.&mO3K63|N+vqs[> a!>Y F'O ־r{Gkra&7C|h]>^=1|•2|bQ'^9nͅ#]LЯJ |f}blJ'9 Ç[I_> X>lCИR1Wհo Ç_oei L([>Edz'OKAc,C8ϻ0|sLx ç8#G޶'> |'mFvuY>>̆g^Ɍ)W9#|AՂaݦ5#|hA;{A{,NW |83x|!:ւ}c]&e.!C{> |* nZeApTxrE@[>q.>l=gO+>I?ćۦR+ć~a/# DafVIɽ te& ?i Gա:3Ç ᬡÌ%/>'Oa+GM(!>'D[ >$C4L 8,kW=3|>|R{Ar9+§r_>Е]>jD>-kg §+nf:*Z> o+‡Lx5ȓ~&3_N>ƹ |ޝY4‡<ã i medo jR>,=cF`%t{@m\My;‡JFeٿ3]~>4>ax:Qb0Oe S 'NuwćA -z >Q]% >lp ÇM{؜Ã,a@tWLmAJ&kn3P|بo{ 8xH#bD)\Msf06T;1|.zAAC'^>j1>‡6CQ]8!|737$uLπ\^>1DwkrAs?,vkD`ˀaڛ-#gҎ?2|j&m Vj)eS?1|%xՅU91|0xR aPAKm@' >.awrٜ3ħFZGU-:l&$/AG<o33(>P|X(>ŌadEfsz_ c͉Np Ƈ!m#Ƨ]p:;kh(v>`|4 Ä؀1>ܹ/(&hLJΞ&ZZ}tLJGq$md&F1fae&s/Ği[8><:5r|au;a|`K6`|MvۂGf@fi5MIǠfl Ň;<9lF9+L9aqƹ34.fwHoEdE'\6fw2|[Ç!bU ۙޜ>*`>,g‡ -J d§VBfD-bY4"|πCUx FEXW5Lᓭ}S]a\>Q&OP&KXҡU7"|X@h>шݘa" xTN Vb W}&Oy)=2|H=OÇ91[}61|coMeq ICoX -``X#`_ȕd4UVG!> XOG>&"ܹS|؄=^';ć9I2gm4aiĘ!>llCdoP&o Ç*vԶS 4zgBX&N\>ހa#6o"0k>%˝t{}n TƳM )>b h霪>Gl`mbVHNrZ >TTuC I i/ԄZ 2͝tcP>=Rwu+5|(ew#XN 4~ Iy >ƫMrpn»Հ % NyM\M~v#Pv}'P8QZdS𡈴xQYmX`Σ2fRCln#q1M-jnm^ c.<7>lr% C. M{1&,îK=eDZ`x"6#9BtUx _cU)4Kc)0@iL8{H*%"M&FfzbݝT]hPv0N;ǚN=|Cl"NWz'Tn -0{yL1{Ԕ AsPmfvE1{zM$FvO3 vE ed0$2)G) ʲuh4R#%"1Y)c2; I7{>=&3{ا^-xݴɣ}g{#bhl=KoPfǯ% 1(x%IP$Ո .r6a(xO4V: -٦6{n^-Gxi؛7 .ٹ#ʊ* =TrLfMG=T -#=pB\HM3wqG7xiNOX'=!͍c3 sFG\;CaTԺ|lo~r5|lO?K𡬒l1œMY%E1i=$1|>Dek!>Dc'LrǼ67Y5|z0a;7]tmP>1sfX>b-EYǬlXA-s)ۄ1{?l&evУciģ}>$v@"qqnL.{bcEs_.ˀ10h&J:A#GUǵD9};<"t}_G7tƥh##w&Q, Y6}(/nh%H[R -@8ǻh 0t34>E@}Áqx#v5߹>*{[cE9spX ڛ \٬,SמCq \ ^2`},|mX4vkurqv*6q},ZkjY⿅%<wad^(5áhc}(N'u>Kg{S;L&EؽweBzw$/эC2{TnNON'%>vM;΍xȬQ X;"XoDiu>Ov9X&-ia( IF=w{q{>茧#K,E?61FSw]}s5gt"6C}4Z/$8I>lsqYrg闎#}Zv*{d4*Æ -KvGNɤ7#":ܑ>2U>-ɪe% zT>ېn3҇g0P?,nfHEUMapEC#$Ilp%#ՇvU>6Q}[m$kNZNG1]rpc YhclFOtv3'Y@3Ò*6!ψa1`祎X߻5X F#և#'atXv4CސQ;G}/>Paݱ>lYmˊa괇>4W爍Xm|'O{)\>cЀ<2b}X7BTbTHa^)Dl3ԇYxcM|,gT) u-P9^:'|zap;ԇUC`j?#w^>0SoT9p{Pjyb>ޡbZg06Uu^> ƪP}}'OL2@}xPs0-uݒ?B}ƚP0$:D9DTKC}lm,Pla|7|ʤWҧDlYSWCYcݨaIUQ'ownHMq N>i?Y>Yׄ1BnD$k'YT#҇vnmAXx!@&dU/@&1/s'G@& [@6(FカD{+#Ї'|=}p/.}XFrp~ 0Xчݳga{ltÔj="}X;Yz*!ŦnLJwm[ԯ^.J.4'{mapË>n*H+}bBY>fZMql ҇*:*IǍ'Xw6>y)/Ldv:P}dw^ᢊ02}[za_*V.9On H<9!}:mgوaE>l -\׼#}XWɞ|@0 SGAӧ edZ>͎X>j3S{a0)lja!ML5EƶcuJ{r!-1u Ӈ9&ެwadvjU~bP5!vFkOx_Ƕ@}2|083ԇYo뀡 "1Ta5#>HF9'qdMg0TdvHlg>,l4`܂ C* SU֊ اIͪ >>}y l)*N6y{P+<}9}X85}[* -}⻗a7ޏ`vB0`q*؇KKO! IT#؇&>VR'3[OFdO5duai-XQG},X6suRy}7a[>Ae 7a}wׄaϝb,XvŝU0/TKU -3@m8g)թ#G" էߍTP}h$^ Ot@QL{LQ8HՇ04Q}XӝԒ|C_j>,=CAZ>xG{>GϛY>8ksMT(tS,*LaG`opP}x_wP̽P}N ԭӼa6#''%3ԇ1N/\>v+ԇC,3 ~tFORxJT i>XM>l ևvbGX>-s4k'q'PP}5֌+'CSX>9k4CX c'"P"'OfH[\CLW6N:>G'OFbHtZ>4E!^̂y VO<~d9's5ٞ>~<=1}=%N:>.-Hs HƪzBOHkNH$8ԂQV777C[S!}ǾL|)4gIg?'w>?} KōUۙʪOc7|";LwuYnv\>!M<\>/dKJ)pg]x17h4o*/|)v }jo,9")}pi[WD# C^ -D.e]Sqg~Co?]ɩ5z_]W5'\6jeVxlxWj<;a~[|88;踻I1f_w ;-q>~ú\{+ñX`>-MOrRc+Kk|3ݿgk}xcn}_?3~0`qm=u4]Qר̯8;F/q~ޑwtGS^?c?Fi?)k"t_d(P|9X)ɑnc?<|hb!]E}ӷ.?xOA~>OxhkDT&Gzӷn?z[aL_;h~\#큏1;ӜoχObo~<6z χ>;g҇C\1)>OLyU>O續iK?eLb/}K?eL"Y>/8\1(b <ß=uϋ"?e= ;,b?e7ß=uJ}ӷ.c$x;?e C?}{2a1?}{2Z?}{|κ1jO:\X:5:C\e/zqosmfsOڌt$ՇC\kkzӷ6cν=?e,lڹ53|ӷ.cFw?}{2f2@M[C\100O:\U/f* 7O纬D?:?eyz^߇C\U5tCaӷ cq]eaב~=rpӷ.?J 8Joo[8,[E$qn5nV:\Cq ~co[cv(> -g,C|(oHj?kj> V+m>Zv;{zֲ} -_)OgR+M1G%y` x_~>jOsѧ=#.{`ewOaЏb>7AyN?2OG#c3##c~q1^>0W'#䏌G#c~qZ18&Ș<Ĉ_ d?3菌'#c~q18gȘ_0d/N?2Gʟ c~u~18Ș_Xd/?2gԟ鏌Sό菌Udc~q1:Ș_vd/?2폌ʼnG(#c0D"eG*59W,+s.KY*U~̥e)Qs!R1(#N'K5ƜkN2չ\ -\9W,.s.iY\>0\˲|`̹eksR1G\USO8,2sYd~̥fsR1"cu/K)Ɯ ^9W,/󋬐,6sYJl>0\H|`̹f)sRMc.53KƜeO8U,3󫜭O9,U:?R|`̹gsR1粛c6K Ɯ mڛ9W,E7s̩\GvI[%׆@r[w33<`e ~INssHhvjgڈ&/Ѡxyhoߋ%Rž?|o@7#E!~`l?OaĿn䟒j_T@  +nzX n}O- j9&+G'O0a%~_zI WŽ3xf$2$,p'1C] -;a=`SHu;^Kdb!.oOg*Ip};C]H؋"zlx?OdՇg8_N0bO;0T(W~g2DhآЍTO}y?Wb~G3"[/M:iA\:eNV!#O^ O{%;{n p5;fۃ }QYZ074l# 0? -a~-a~ߢw ח+H\l1{*yy#En]z]1|eOa7^_\_6ߺ/b3̕ q՟xu߸i&~~`<^__%kxm7 ,<9uHS;þxEf0ӿ7lz֟;9> gPu'gwF5Rqxxև;Q}gyzW=|O JYG}~eАȋX+_o,X[H J OnfL,ʽrsKiܧH{^e t5N@SUFz-{+*Bl}/2bY` 2tÞcO2>yA_`7fQ}podIk`'Y,iA@cxeG>V:|)沆1]dᅯeE, cיәs|'؂K ]pf0e@Ȃw,|M)&UM0Xeİ3&%cBD -FBXDPX"0"W50HOpEEL;k4.Ⲋ=XePK;&"&~fy5|Xxy&bhSʠű^d|*#ϗ""7uA W28Ml2"*cNYeP!ېe.#{n%׆5%jqA c,c\Fe -+sA P{JK'\MF0zy2g5ۄ2`(Vs暓W#mA g0=-r8q0Fb -{A Byz]/s9+Io$`|f0Iõo2hl>߳4A g2-+vcAòrwX5)Y"˰Ipo|Zҭ@״EN觕p@70;xWdØ0ɮWpNNr@x6&}= k[(d6iĄ-xy2n;eq%b˵Fr '.RKWdI=}p;2 [UU&Vtr*AÏBׄ6FA|誫˂sA] $nw˘\a W)pxqbk*xK1L8%ęR~+x.OUi[xxEx?xqڽ]LQU⬒ڄGs>I<./뚰Nxq B_d4^H5);a3*&)%] avR~om,31- '7R|),fAG8UfemI*R9uvߡդVir!/;k-c; -pM+*T[bR2,X/7R5A#f_˵;v_FL 9<㤺_GZ'Ё hPØ鲢za28Zq`]y5  -\)Zpݛ6a6-ޓ'zcpO\V41e/魾(&G]J֕TMmO㘸eO8q\!d̡A{A c~/hY{pbd #)P|#PbエHuŖpwKf}- -8q 8cKF=c=)OrN FN58MzXаF\AO%/xpGw&F`o(L=\f~y} -I`syyH4E#sjHACu -.>Ne 0O*m.I~&72_&tatF9vN=;t0T$[q}O?eP.\%P[c.#kRY=.ɑ1r8i,ɍoxqg&X5'.b/Gx[p☉n`c ڒG~=]Vw_awP">P39;G&̝hq^|~X#mu+ 297qcׄ-a9_A}r295#԰ڒ˪ŗ>ap#^ J+M$h3k*m@d,"Et_>ėTtw$ oo6F\V@XS]>+vAY/Ke76"xy#k``_laP,v4|nNdɛIdk"(jg,7Qf6)=lux5)R1 -[]OI&Yc߻ֿAIcR^Qޯ;4dM#7`E2n StPor_a` ~ Pxpoem8_2a;%3#IU2fÅI22pɠ"EmU2\l 7>0ϢoLAqߘH0Eb,!Yt(wWk;?xp4UvP}0Uw?e{b]l-Xwz,+5JvfK 2ɠIdP˜;t2*gӨNS8GEq9 |{Whf=@fIڇjXL _ dPMϛ&vJ.9R-]3A*fLgn`2j1oFTYK`ބ ^%NKs=+fk@3,cy1[7ei۽0{i4Y[}Vz2^ȁ:}2xV Ҏ! 'r؛,~N&DPy-¯> `JlY++*~Zpdq5*Ecd<ѻN <>ŎN -ӓ\E;0x)WƼ%1,DtG-~K R#{R˚A]}ta>"`{)/kG*7h#]o•U\L˃Mof}QTZ[ L 0_e?S/rHEB9t&|QݲSvrY^ɀ O$ɘԾ7jx1hQ;*j+/NU!ߦ(#4b i ExL(s|t.W,1iUbk.eْe+ÏSh>v胙DM *ӢxBv`Ve5lafxd": S6 -'xr؈u`2hS kVuIatQ1[A,aYdlc'@P*2dQ[n׭{Tdl\B f;]>KuLW2<ϗd)&;U&0ۀ2{XM64[ NNp d3魛,Tg;46g~.S|&y/% TMϤ7 Nd&JjNev;m kji+PP?|'Y4=z5Pye/rˉM-$rg:/Yw p{D"ʘZd'1- wRm +9Ӛdlr.sW|IY+s 7tbO j$ɍkd̬]}.|NQF2.k=;ِmw\uw1F #F+3@nr]j2HMu㲨V4-YUd[`1e&TpnF Kmx2K X9e=!I&N]W1i[?e:@nKAQ e/3 9ҧ N4Ȁw+e3?a~nw&$&^貞&W[U1oV汧~+Qs]~Pc~hC& 3Z-EVjiI=i_63X%@R\ -yleP%ܖ8;ϲa,fJFl0}A$-*"=Kw tN<-Q$G $_*="f2L)ooRS+ K.=&}L%x7/8vGWm`+k0S"a&[x)``EdH"2oeo;QQ=\ |/ykr3.#%9m3M&$@ų[F5^1]0Re˃.)e¸+1Dx\*0,!˲TU2 Xyv(p.3F;٭v׉H% y®* -*G7jx,gqes|Vp -)c.>(qAZ0R Th -VR ]s1*)v`mZV0abJ -y1rrI)bluZ8׾r&el-c%k5Q:Q;ZC5Ya"MpD"T0U3*E2z˪'kV" *swɨFc:]bx^% SyuuQ(}e2ؕ -C&"eP~e` -7^P‘Vm~Yflޗ(SnRLٞ,D*6KЫ> I{J/.kt2*Pmׯ.c&Kfl]+xn -I+} e4\+!F׽dƔj;sL4׽bػןB3 ~w.t6JveW2 d^e ]ԗ2 -og;yCJo2;7Tqz2P%K\DķTZ% &5rabd -3u -T#i1+,iX|[fq[GlYn[ݮزz[{زbb]sƖ)$ٌ-+Wj-S d3ٖF2fDnŖ`~Ŗy-8ǝ2S[Fd-28вe +의B!2Bl ,ZElOв*e#6%$>Aˠ5WYeͲqe֒EnATŭ2;:kfxf3c=̽Yf9!˰ZY.^eJ'bYCdD ,c(t]2g| ֎aqv}J-^U=@x -0|c^ex',в|-!)P˲%kز?,Y/ ̔OʙYF:7_e6 +w^e[:x`AZ-,NeZ{؅YܵYfl21˰gY7fOTN@ ,) ,{Y,jlenՍYFzCffw,*e%'fV0T?1ˮJfY,2vcFQEj<;!dEM26#˲u M2~YݻdYgiv `|]eUhFC3 Mtr,{W/2ؐj,k MYv;f\eYv-Ȳv&,RzFd._e)-2_='dexaʌeǻFrAYkYfŭɏ 'd[8%aAQ 2vOI=qB<;g@QT,0t%tYZ,tɁYF,c܏'fsj2,26k ґQxFf0(U$؝Yv y&h{Ü-옻j鄪Zv\DZ :ԊYeֈ7e]rbFf:o,cs -&dzOIJe"YKY&d.D]elv~eJu,cręeܫ>ۂ,c7'd[Mҹ,pD1HԀ,cܩFuO#D%i 2)T0!˸A8kAŕ-?!4KHHt▱U':q˘~}v-cp([ƈɱe4uӂ-c =`˸ɉZƷj{NSZvM26^ Lk1;O2F7>el#y[e/jl` :҉Yfuylbw,;-_;"N2vho1КG&hM`s7ZF\;} QD-#vj9Q{3Zvm?@-c@2('jݵH-;B-;⮌Zv3Glօ41aΗVl{ц( [v*nĖѦ3~7`D"ز`yFhw^2Qxj3`6Pu]ZW`JceQU"ض` ('lO2Ta-2([NR1y [ƹ? 2x- 7-͂&nY0?GniLܲLYeᝂ˘(n]ielɤr} -m 6w8X>zh"m/YepYM2,aqmFŗӮ̺ ]fMz']Fz ]FfGt+bxN2 U\etϢ)`[XkŷjvYa4#q/65.c)ouxy.B.cڲˬ]I_|![#,dy}XpY -,O2k,apc,2r1[/ep{7\MGnY6ܻs˂u^-c'4B([N;<ʔ0pxޏ6#V߬[һ[={▱O"W쮁[Fn:r˘=.n2 2ƫ7|6<>ܲ`wµmƖ[|Ė1vgl!#I^[F[[,*e!3\3eMی-cR};c6S`[f77e=˯ #~2R&j]HmƖ1 ޾֌-尀 [VNIGBی-6UznH-cr)2B[CZ4U-c`e(vrzT$-2n H-{{#;v`^=RˬY]ƶZF;1?R[ǧFj 7(@-y8EŠ,ZF 2P˘ZpUԲhj 1S˘c6Fe< -cE]c>B˘(ƫ+GhkAhвéXsjh]Gh{hY>qe){;IKE3iEE<;@ˌ tE%GjM">زdA-K4<, V3,ѓASJ`s켃X 6#,;.H.5W .K%,1>I4ڝ[f%7\[l5&i%&z^[zmvܽM-c~j9Gn##k[F#(ee(cW߉el﵇ݐe٩deE|m"Ȝ YFKvCQ4l}"Q^1ش%D,rP`7b"{ .;e1˲w`ex^=˲E 2@,[oޮ\a O`)ʲ}a[YǷI,`ӰVVoX"e4$9՗,cƀHfQJ2kY,vLje8e -ƹJ4";,cD? m8k˞G[2 -ke ^+*6|$@_E,MeW?[2,'5G2˸vfw9*^A--xe]^╱W W.\>yW̮(Vv&oÒב2\b%ȋBuW2ָz=X •CE2VonyVʕqy~\Leʕ}3ke22xZhVF2HYe*ZQsVFiwxJO ʊph^#cel5?+c)VVzX&ɢVF}Z.mʈOj&%V>[eE~*#jL,E2b/tѿŔ+cCѠW%+C\4ce$I_tɪUFWV{/*cVS: X# Y/{{rl7dX v 7[Ž%ߎYbe;X Yul yVbYxW22[2Guz+c޶&Z??2KԜheVf`wG2@%fxVf ԥ]VVGU+c1>wAT+6Y+#x7Q-Z<F=@[2NjelvӄheCcчZY%_W2zʬznS |h芕U;beכ+nb {~&Xk#vV+CB}6[eT1rdRb^q%O2n<;[e՞X UƁCyZTөU\[2Z!8XetléUF#`VbQއyUVڊ8=1j!G/sjU+fՍ*#.ǖG@UFma|,gYCTY%5Z{XPeuTMXG(x,22}3?T>mBQ0)UƼG8d?[ʭؾR dRetQʪ> M2{ eC -Qk3TƼ9Jec}Q2(TFIЍHeBʪ{Jed.c^2m UfUǞ*cŹReבPe=~T}c12Z\> ȍvAm'UVa;*DyJxֽGL2SFHeL"ZXX{RY_R*OB~3EJ_cu+U,0ջzT*ABe,=* tH2&Be,Q҄|߮ͣ3 -q^\K+TxSWpNk SFMw@^SF*8e$26Es`C[OxSǧV)#u攑umf<TV O -8Ae`(.PE'D=Aed?5TDDY]$kߋZee_KT_Gτ*.'֋ƥR2YIT(60kʬUH*8*UF<*v+DyNA&BrEHl]SΗ1X.*gd1-发fIKIϰ*tg$oUne6b 2`[Q|{SsŚPeT]|Iʤ"Qe̙?%DqrDU\lOTo;6ey*cU.-9VV;|5*lVEi U=g6)2F뾓!VF!]2j6vM{VƃjhjeTTWʬN +#n no Vv`r Vv6Q PQ,*Vf֎slXx(VUc2ȿ`el\2@+czn VFw;t +# Q8 RBY|:Ps[NVٹr*#Vf1 -endstream -endobj -178 0 obj -63863 -endobj -179 0 obj -[177 0 R] -endobj -180 0 obj -<< - /Resources 181 0 R - /Type /Page - /MediaBox [0 0 337 300] - /CropBox [0 0 337 300] - /BleedBox [0 0 337 300] - /TrimBox [0 0 337 300] - /Parent 182 0 R - /Contents 179 0 R ->> -endobj -183 0 obj << /Type /FontDescriptor - /FontName /EAAAAA+mwa_cmr10 - /FontBBox [-43 -250 1008 750] - /Flags 33 - /CapHeight 683 - /Ascent 750 - /Descent -250 - /ItalicAngle 0 - /StemV 0 - /MissingWidth 500 - /FontFile2 184 0 R - /CIDSet 185 0 R ->> -endobj -184 0 obj -<< - /Length1 8800 - /Length 186 0 R - /Filter /FlateDecode ->> -stream -xz xS׵gh[5XͲ-ɓ,(۲-l0xxl<`cI mC^>nK)KsM%͗4͗)涷I4ćΑ$Md{kmpZQPڡ2co׶ 'X~>:76C0@.ctttM  {qHö}|faυ(cӳ|4@߇3{dcΌ.+xnA .Spx L8l.hVhAT@Hxokl=cY) FJmH}J}H+uz)Mn!-wo /UGx+(œp8GQyEPA -aV 봩*%9Iˤeh -||踭n빒P߹'nCGT<'FU_z_d(g 37cSo4? -Ydl*88cm1pOGGS6g#YG]/=\GK1q@p!7u^O9F]o?n1VSk&bA(wքuk4"==1VS[DŔyi^a<#R -qE͂p5uk uvB[{y=x^]דzjbKKtZfuKJ+H>Y]5"q؍ ZN"4`?hC0/Ίv%_Mp9."4#KKQJR#9|yʌ2>y)eÝ(sZO``wG#WCSZAdL4A&vb*'*uT\٤ -l>KsGd!5@I~g{5DO?|IAKh$EK*5|9ww\ڭ¶M+<5 \սtV6UUrs'}9aב#Eu}Gvܪ:P K>6A_"ʴ$]L͙"IsmI1"#L#hٙԶ{+:=RsԶJPst* %|xL` . mi-H_t BxFoGkrUC{jW{ʜtqrû:2J/~٥޾;pnC 3kϯ1doom_ ͵E5itqL7XWS\/ڻ/6 x S56ӏN -oom -ZAx[AJ+I[e$}L-CR>;㨼8TjQ\0GW\ +;{-յ$7﷜|w7.>ѻ@"{C֭`{Fil ^7ek'(c -_jYmU2' -& -@J>k{z?df!Gˀ/en{YpX'E}0?"c\--MŰ'IJÑ> $qT(O`Uj FmOK ꊂ}?9,񞣭mۢlPtf42dzDAt$U:V(g - $;c8[T}akU-cyw>$EU-Om񼰋L[Ex1|g(_0j*B>1$%3t4BLL#R"ȌvG+*1+×u xՓFt" ]_m6M.Qd[k%Q;^Q{¯oj%mrF_k+%-rgeP)Z)EcMNks$ҟeҩfT+fe݂%řk{6-LO.%>Jm Gݻ̝3/}X6(J֝x'x/0R0f% EtKT,%(Y*"ц|=_5Q*SZIӥ'ȲDϐII_MBa_^I8 -tt -i"|W5~nB} qL^ꚬ7C;p(^p<'pR 5Hux SF"09OQ0$aLiR%y^O~lLC^E64)d*:;;EN+3dd"UI؉ UꀯSD"w0ICR䘜n-Ȩ0HܢwF#~N)e>sy/q "%s@T{o$F%~{s<㜿9iPKXg-l gH<&J*W% ЙWc#OW߯;ػn~ЯoMh~O?>7|l .ww?䦁g/u\D1PL *u2)TrZ?#l::OG,-QgOK=T"lD bwͽ|~=?OB*#DMp~vu[-:E:o^D}AJN2(VÅɍlC#JP$WNEH%%SOS993|s -6U3O!f"&F!1C\fy IS(I!ʠP̄ V$9VxSlЧN0d3T!I3.d842tQ'UJ)=w2K컨B4kBԿ *UR=3cT)$~lҜ4+ WD:kv$ Y68QD"!oٙ.Z>2|i;'gj=-$IʭcXZzҕyGnzvwӚ}~_tQ0M59j#^1.3 9>+P1$/d'jH ]3pmR&k‚4Bcs,  3\{GťO|㩭zqUy݅tc]_[׭GM"P'hP*(SŴ,7jS*U#ya6%-dT6PU,c!!o6FeSLB(VkQh!p9ERdVcTffə"J*k -翺ͦw{ZYXDu QhW_EN.Y~[8}xnwG'N!jr& dGZL~08NБ2'婉!GEch~u1{^~,^8q"GC-rSAtJʔHT2580:8D|Q8pXnw9K]ʎ ϑH#P \icbN -n( yԘJz%N)&!Ĭ}z$EsdxNMMBsx"2[dI hco vy++5 7oܾ^oJ#Bk?ݽCݙKk"d|_~2yPɱk}Lo8mV"ZZj51s |\ 8U&Afma{nss֦{V6x̨2r S99v{WtqR!'v=w;aO\u\!7J$ځtz,)k]i &R*iMNBvȿZKA 6Κ-PˎgzDz]өDǪTC?FlӶ5CRgW!X+,$s$W*&չ -RCΠ + - 8FYҩamO*Quqw#:̄XC($\lA1{cDL#69=Z!\Q8tDc׷?|O_BHJſ_76T{}e>VNwרUk4D]m,2__%ԇ yMp(3l&ehD g#bWCK*̵HûOZDTA+Dz]OZ=`߷gjwvm[>3ycl ?XMU?qu?9tݛ--[fTkO̻hXSO4̇ -~ :hEDAɊAX3W([^5@ZلL\1p8 8Փ8ZE ;NulG6.VmoF/r9D9U{m0I?U7nӍ.-u.g;©5Ǝ.4~`… +tC^v"P *t #&Y!E=$~c"AYDf!eޙ?xϬخ{x92k8IcYznOoXSB_:b|ÐƱpaFɣb _'av+X+X {ECAՈ{7^^̺%#Ȗ~Oaᄪ&+|ݓR+>_K QI'D.w@.%L? Amy|s \Y~ 8&y_!̙ ބy0L@'W{Di]Bčc:'OgV״^Z]$FDDM%,$y8$ [Wŧ: 1'$DDBB:9s",Av8,'P"_ x^0cނ gZ{F`W=ˆ^G{G-~a&34bm{ A*a؆=AF_0皋np~bܒo^78ٝo6 ##;w  ̮47n#&f{kGvL{3mA9fP"flYUaec Ļ>2kzpz-u!v xEEE`ߚN>[Βh"[¸$F tn -endstream -endobj -186 0 obj -6411 -endobj -185 0 obj -<< /Length 187 0 R /Filter /FlateDecode >> -stream -xk0Up -endstream -endobj -187 0 obj -20 -endobj -188 0 obj -<< - /Type /Font - /Subtype /Type0 - /BaseFont /EAAAAA+mwa_cmr10 - /Encoding /Identity-H - /ToUnicode 189 0 R - /DescendantFonts [190 0 R] ->> -endobj -190 0 obj -<< /Type /Font -/BaseFont /EAAAAA+mwa_cmr10 -/CIDToGIDMap /Identity -/Subtype /CIDFontType2 -/CIDSystemInfo << /Registry (Adobe) /Ordering (UCS) /Supplement 0 >> -/FontDescriptor 183 0 R -/DW 0 -/W [ 0 [365 500 500 500 500 500 916 500 500 555 276 388 555 555 443 276 833 500 750 276 776 625 333 388 388 735 763 722 500 651 391 526 443 526 394 500 500 680 555 ] ] ->> -endobj -189 0 obj -<< /Length 191 0 R /Filter /FlateDecode >> -stream -x]n0E -/E6D"U*CuTK{<GĢ;Ȋ&vZYJb ];ォNN[Ensn J&D2}?d𤆆vlRml/'9Fڼ=ٗuӲw_!& -x(tf8y4.U^y`%ᨅ8+87 -{ү^OlkQ#|o]iڮ̺?;R -endstream -endobj -191 0 obj -401 -endobj -192 0 obj -<< - /Type /FontDescriptor - /FontName /EAAAAB+mwb_cmsy10 + /FontName /EAAAAA+mwb_cmsy10 /FontBBox [11 -215 942 727] /Flags 33 /CapHeight 0 @@ -1343,14 +1139,14 @@ endobj /ItalicAngle 0 /StemV 0 /MissingWidth 500 - /FontFile2 193 0 R - /CIDSet 194 0 R + /FontFile2 163 0 R + /CIDSet 164 0 R >> endobj -193 0 obj +163 0 obj << /Length1 1968 - /Length 195 0 R + /Length 165 0 R /Filter /FlateDecode >> stream @@ -1360,54 +1156,54 @@ E mbkoԊ$?< N]w~p endstream endobj -195 0 obj +165 0 obj 1292 endobj -194 0 obj -<< /Length 196 0 R /Filter /FlateDecode >> +164 0 obj +<< /Length 166 0 R /Filter /FlateDecode >> stream xk endstream endobj -196 0 obj +166 0 obj 9 endobj -197 0 obj +167 0 obj << /Type /Font /Subtype /Type0 - /BaseFont /EAAAAB+mwb_cmsy10 + /BaseFont /EAAAAA+mwb_cmsy10 /Encoding /Identity-H - /ToUnicode 198 0 R - /DescendantFonts [199 0 R] + /ToUnicode 168 0 R + /DescendantFonts [169 0 R] >> endobj -199 0 obj +169 0 obj << /Type /Font -/BaseFont /EAAAAB+mwb_cmsy10 +/BaseFont /EAAAAA+mwb_cmsy10 /CIDToGIDMap /Identity /Subtype /CIDFontType2 /CIDSystemInfo << /Registry (Adobe) /Ordering (UCS) /Supplement 0 >> -/FontDescriptor 192 0 R +/FontDescriptor 162 0 R /DW 0 /W [ 0 [750 776 ] ] >> endobj -198 0 obj -<< /Length 200 0 R /Filter /FlateDecode >> +168 0 obj +<< /Length 170 0 R /Filter /FlateDecode >> stream x]Pj0+l CԒX}q z0h[lE^X gBpjV& :G:g} endstream endobj -200 0 obj +170 0 obj 234 endobj -201 0 obj +171 0 obj << /Type /FontDescriptor - /FontName /EAAAAC+mwa_cmmi10 + /FontName /EAAAAB+mwa_cmmi10 /FontBBox [-34 -250 1047 750] /Flags 33 /CapHeight 683 @@ -1416,14 +1212,14 @@ endobj /ItalicAngle 0 /StemV 0 /MissingWidth 500 - /FontFile2 202 0 R - /CIDSet 203 0 R + /FontFile2 172 0 R + /CIDSet 173 0 R >> endobj -202 0 obj +172 0 obj << /Length1 2676 - /Length 204 0 R + /Length 174 0 R /Filter /FlateDecode >> stream @@ -1444,67 +1240,173 @@ O" 7HdJ|>xp.ic4d_O1bS0GoВp(mTLB x|.A3ɔ$ ȩD|IL!,# 3xS+}YNO@8JiD 'dwyL'Q JzM╞BYGSgpL\D{܂x 8kv6!j45O&Z\4*p۾%3 endstream endobj -204 0 obj +174 0 obj 1943 endobj -203 0 obj -<< /Length 205 0 R /Filter /FlateDecode >> +173 0 obj +<< /Length 175 0 R /Filter /FlateDecode >> stream xk```ap``` endstream endobj -205 0 obj +175 0 obj 17 endobj -206 0 obj +176 0 obj << /Type /Font /Subtype /Type0 - /BaseFont /EAAAAC+mwa_cmmi10 + /BaseFont /EAAAAB+mwa_cmmi10 /Encoding /Identity-H - /ToUnicode 207 0 R - /DescendantFonts [208 0 R] + /ToUnicode 177 0 R + /DescendantFonts [178 0 R] >> endobj -208 0 obj +178 0 obj << /Type /Font -/BaseFont /EAAAAC+mwa_cmmi10 +/BaseFont /EAAAAB+mwa_cmmi10 /CIDToGIDMap /Identity /Subtype /CIDFontType2 /CIDSystemInfo << /Registry (Adobe) /Ordering (UCS) /Supplement 0 >> -/FontDescriptor 201 0 R +/FontDescriptor 171 0 R /DW 0 /W [ 0 [365 786 520 276 ] ] >> endobj -207 0 obj -<< /Length 209 0 R /Filter /FlateDecode >> +177 0 obj +<< /Length 179 0 R /Filter /FlateDecode >> stream x]Pj +fy(),i? 1}u )t9`t1Fz\„6EU"vpW(52e, >e ~ˣށDo^fW?qs4JꡑtW 02tدQBM:.s3cq+cup{%mVMJ|sUPQYՄیBDC!M/6crENasκ H> endstream endobj -209 0 obj +179 0 obj 246 endobj -182 0 obj -<< /Type /Pages -/Count 1 -/Kids [180 0 R ] >> -endobj -210 0 obj +180 0 obj << - /Type /Catalog - /Pages 182 0 R - /Lang (x-unknown) + /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 181 0 R + /CIDSet 182 0 R >> endobj 181 0 obj +<< + /Length1 8256 + /Length 183 0 R + /Filter /FlateDecode +>> +stream +xY xSו>mZmKdٖɲ$ے»`cW;60f @ !)MJ I26K +4_4͗N|2Mi&헆1= gkڙWܳp'X,'?v! IIk6o6g.9HOjQ>~K00ӷA_Mi jGO۸iht|MowSXϖ %Էri!'}oFԏ'zxgJdpC!Nޚ'_!8'#p?1AX P P +~AM!*_Cq~+w9%+7S#if`\L*p1tiwiϷi2\!Z@A}/TqАh&F~EKFoE} +@ =|@buh?#23ϣ0PK|):( BNy7s˲,C$ca^>}ZF&@o;lz[-c8/Z5b ]ɷj0M!@W kPaG<ưnw;g/_gm Oܼ3Y + +5 UAI ,5Þc +@RK*P0rI,Lm\> +S\E_!㴧 OaLKgU]D +E/~ c;w!|ICngc^yO12 p#iJUfd :5@& +m\2XbI_`q&/I̴":|%?YEtbs ͟vfAs s d%P(Όg*Jj9e6JgLTTy.IWx fX6hBV` +%HbN +X +Ĥ(4ciN_aCD1"]aEbۊ쪪ܪ{ozes )|PV\8-v,g*rj[t''#t&RBO͢acSTfUVUNQs4Uk4ஔ,:FO_h*,*ȾdHq %^ =33{fFTUbLpV7`oV"O}[W<>$7ߺ~~d_ + 8iVRJ')rt +T ;Ҁ/EvZxV4 + $l@JR( ,~g/E';@ϝ.7pcZ46QӅ\%%6/;5f+m)[;ji|pz4}Ϋ[l)o(/ued5&dԺv^XܙfIzC]djP,v)-h)E*#&)S69c&e:es*T,l,#HMfyiOoDţd9)ϙȟd3Wџ$ȁȗn%$_-I"{&-[{&+< ΄Eo-Nn(:Ҟ3?;:9qN,E}} ?fN][k*0nUzg|LjoŁEM;|nnۄxuSXKpkPVWZD.^V*; F>h37 LVT*_DfNs%4.X(UTafW|^twtL=Qs39sIY&2$J)HUmE 9FWc? +df[ٽ3Y!`bpٶBg=@r؀&J&lfJDdRsa^Q5\? jZ7]V}x +X?gl(b^ "4+?&սea, ZUMa `tMg|Ip\//\at-`d/WCψg{C˳krlZk.řC϶C/}+NjV?::8Z+ϝ;E:Z IGEΤԚTkr0vLV?rf9*~_tѓub`Mie16Ƈ:1t yri}~N6Im;w+䧧HV ĤFYtaR&lr&_a" $+ƤC ~%06Paqu4cc"qh=t +NPq͊>2Itfґ6e74ZxvTBc7Rk^ +2o{}Br +k]^C听@zzERh.J~Y?Yp TUeTIsNw|^h~ѫC/TTy '84oA!NAiqidP$4(vl219ڳٰ2ȧY(C@*.x :JKCPBt4ixm0g  憌N %ȥo` p&2o.Sdx$Y/F+W\"vِfx/r[7*{׊\)d7f~-dC|n 4.Tַm~dV|l0=$v˂@FF1KQťK-%2,_9WarPNFBpW6N}촆;{^ӳ/A S3(-H)^\ߧVk5 +a`>]bc'!θT"OTkԖ Ѥv3Ǽ8'+%K0h`\K]AUF~W]kUxv=ۂ-cI G :31z NS0fu c0XR k; [aX$, +TD "S)d(XJgե9 4GQB 򄪰 +Lu8Hs 0mIP.(3RHj Zk[\umT-Hޞ k\lķںڎɂyF?Ux.Qhc&2})TAM$7ǝEU~n̝NcqmL'TR (ps!45W0ӘdLYJД'v.oxcUL]mҩ?F*u w4 yُXU敶3Ɵk}rE&]+w1MrWVS<} @ wHЙ1 +=IJlAёR?ULlm'KE§Lb8'rFRt8H\wqo߽|}?cw?9}8+$-#;sz[|x]3Sۮ{ YY%S\>l|ϒ'vD5'R0vVj$Qu""Ąj0o6 +ؑo_"v6l$';tWfƸUy\ +mp]Txމ'j43֐_krݏuk W.s.;w XH;QH5 "/Z*/˷NRYk$RI/hz:y0|US[JZE ,C9J.V4pk%&y> f$k,P_!ZZ>/QKwoOkK{\:`5pKG% gβ +^; + #4CY1B4>ɨq_! +o#49.oI4h,FhD<j`&`6 l@&jI3JBVXL#_36cU4"h[mRӽL}43Η\HK+Yu7$a O$.;/ P3>1ah`p5&ӚW\\VLZf[NOoζVZi s{/֏5㣣k6XoVc0Eܭ">ƈ<ƦzVېGtDSh4ڳ៽ѹHB#}3%=@^v^N^q|F|o) +IUp(Ű[o/໻Q>9lO +endstream +endobj +183 0 obj +5997 +endobj +182 0 obj +<< /Length 184 0 R /Filter /FlateDecode >> +stream +xk02`k~*^8_ +endstream +endobj +184 0 obj +20 +endobj +185 0 obj +<< + /Type /Font + /Subtype /Type0 + /BaseFont /EAAAAC+mwa_cmr10 + /Encoding /Identity-H + /ToUnicode 186 0 R + /DescendantFonts [187 0 R] +>> +endobj +187 0 obj +<< /Type /Font +/BaseFont /EAAAAC+mwa_cmr10 +/CIDToGIDMap /Identity +/Subtype /CIDFontType2 +/CIDSystemInfo << /Registry (Adobe) /Ordering (UCS) /Supplement 0 >> +/FontDescriptor 180 0 R +/DW 0 +/W [ 0 [365 500 500 500 500 916 500 500 555 276 388 555 555 443 276 833 500 750 276 776 625 333 388 388 735 763 722 651 391 526 443 526 394 500 500 680 555 ] ] +>> +endobj +186 0 obj +<< /Length 188 0 R /Filter /FlateDecode >> +stream +x]n0E +/E6D"U*CuTKyp3DĢ;Ȋ&vZYJb ];ォNNk\pn@fE8م=> +endobj +189 0 obj +<< + /Type /Catalog + /Pages 161 0 R + /Lang (x-unknown) +>> +endobj +160 0 obj << /Font << - /F218 188 0 R - /F220 197 0 R - /F221 206 0 R + /F270 167 0 R + /F271 176 0 R + /F268 185 0 R >> /ProcSet [/PDF /ImageB /ImageC /Text] /ExtGState << @@ -1662,32 +1564,11 @@ endobj /GS152 153 0 R /GS153 154 0 R /GS154 155 0 R - /GS155 156 0 R - /GS156 157 0 R - /GS157 158 0 R - /GS158 159 0 R - /GS159 160 0 R - /GS160 161 0 R - /GS161 162 0 R - /GS162 163 0 R - /GS163 164 0 R - /GS164 165 0 R - /GS165 166 0 R - /GS166 167 0 R - /GS167 168 0 R - /GS168 169 0 R - /GS169 170 0 R - /GS170 171 0 R - /GS171 172 0 R - /GS172 173 0 R - /GS173 174 0 R - /GS174 175 0 R - /GS175 176 0 R >> >> endobj xref -0 211 +0 190 0000000000 65535 f 0000000015 00000 n 0000000145 00000 n @@ -1731,181 +1612,160 @@ xref 0000002151 00000 n 0000002204 00000 n 0000002257 00000 n -0000002311 00000 n -0000002365 00000 n -0000002419 00000 n -0000002473 00000 n -0000002527 00000 n -0000002581 00000 n -0000002634 00000 n -0000002687 00000 n -0000002740 00000 n -0000002793 00000 n -0000002846 00000 n -0000002899 00000 n -0000002952 00000 n -0000003005 00000 n -0000003058 00000 n -0000003111 00000 n -0000003164 00000 n -0000003217 00000 n -0000003270 00000 n -0000003323 00000 n -0000003376 00000 n -0000003429 00000 n -0000003482 00000 n -0000003535 00000 n -0000003588 00000 n -0000003641 00000 n -0000003694 00000 n -0000003747 00000 n -0000003800 00000 n -0000003853 00000 n -0000003906 00000 n -0000003959 00000 n -0000004012 00000 n -0000004065 00000 n -0000004118 00000 n -0000004171 00000 n -0000004224 00000 n -0000004277 00000 n -0000004330 00000 n -0000004383 00000 n -0000004436 00000 n -0000004489 00000 n -0000004542 00000 n -0000004595 00000 n -0000004648 00000 n -0000004701 00000 n -0000004754 00000 n -0000004807 00000 n -0000004860 00000 n -0000004913 00000 n -0000004966 00000 n -0000005019 00000 n -0000005072 00000 n -0000005125 00000 n -0000005178 00000 n -0000005231 00000 n -0000005284 00000 n -0000005337 00000 n -0000005391 00000 n +0000002310 00000 n +0000002363 00000 n +0000002416 00000 n +0000002470 00000 n +0000002524 00000 n +0000002578 00000 n +0000002631 00000 n +0000002684 00000 n +0000002737 00000 n +0000002790 00000 n +0000002843 00000 n +0000002896 00000 n +0000002949 00000 n +0000003002 00000 n +0000003055 00000 n +0000003108 00000 n +0000003161 00000 n +0000003214 00000 n +0000003267 00000 n +0000003320 00000 n +0000003373 00000 n +0000003426 00000 n +0000003479 00000 n +0000003532 00000 n +0000003585 00000 n +0000003638 00000 n +0000003691 00000 n +0000003744 00000 n +0000003797 00000 n +0000003850 00000 n +0000003903 00000 n +0000003956 00000 n +0000004009 00000 n +0000004062 00000 n +0000004115 00000 n +0000004168 00000 n +0000004221 00000 n +0000004274 00000 n +0000004327 00000 n +0000004380 00000 n +0000004433 00000 n +0000004486 00000 n +0000004539 00000 n +0000004592 00000 n +0000004645 00000 n +0000004698 00000 n +0000004751 00000 n +0000004804 00000 n +0000004857 00000 n +0000004910 00000 n +0000004963 00000 n +0000005016 00000 n +0000005069 00000 n +0000005122 00000 n +0000005175 00000 n +0000005228 00000 n +0000005281 00000 n +0000005335 00000 n +0000005390 00000 n 0000005445 00000 n -0000005499 00000 n -0000005553 00000 n -0000005607 00000 n -0000005661 00000 n -0000005715 00000 n -0000005769 00000 n -0000005823 00000 n -0000005877 00000 n -0000005931 00000 n -0000005985 00000 n -0000006039 00000 n -0000006093 00000 n -0000006147 00000 n -0000006201 00000 n -0000006255 00000 n +0000005500 00000 n +0000005554 00000 n +0000005608 00000 n +0000005662 00000 n +0000005716 00000 n +0000005770 00000 n +0000005824 00000 n +0000005878 00000 n +0000005932 00000 n +0000005986 00000 n +0000006040 00000 n +0000006094 00000 n +0000006148 00000 n +0000006202 00000 n +0000006256 00000 n 0000006310 00000 n -0000006365 00000 n -0000006420 00000 n -0000006475 00000 n -0000006530 00000 n -0000006584 00000 n -0000006638 00000 n -0000006692 00000 n -0000006746 00000 n -0000006800 00000 n -0000006854 00000 n -0000006908 00000 n -0000006962 00000 n -0000007016 00000 n -0000007070 00000 n -0000007124 00000 n -0000007178 00000 n -0000007232 00000 n -0000007286 00000 n -0000007340 00000 n -0000007394 00000 n -0000007448 00000 n -0000007502 00000 n -0000007556 00000 n -0000007610 00000 n -0000007664 00000 n -0000007718 00000 n -0000007772 00000 n -0000007826 00000 n -0000007880 00000 n -0000007934 00000 n -0000007988 00000 n -0000008042 00000 n -0000008096 00000 n -0000008150 00000 n -0000008204 00000 n +0000006364 00000 n +0000006418 00000 n +0000006472 00000 n +0000006526 00000 n +0000006580 00000 n +0000006634 00000 n +0000006688 00000 n +0000006742 00000 n +0000006796 00000 n +0000006850 00000 n +0000006904 00000 n +0000006958 00000 n +0000007012 00000 n +0000007066 00000 n +0000007120 00000 n +0000007174 00000 n +0000007228 00000 n +0000007282 00000 n +0000007336 00000 n +0000007390 00000 n +0000007444 00000 n +0000007498 00000 n +0000007552 00000 n +0000007606 00000 n +0000007660 00000 n +0000007714 00000 n +0000007768 00000 n +0000007822 00000 n +0000007876 00000 n +0000007930 00000 n +0000007984 00000 n +0000008038 00000 n +0000008093 00000 n +0000008148 00000 n +0000008203 00000 n 0000008258 00000 n -0000008312 00000 n -0000008366 00000 n -0000008420 00000 n -0000008474 00000 n -0000008528 00000 n -0000008582 00000 n -0000008636 00000 n -0000008690 00000 n -0000008744 00000 n -0000008798 00000 n -0000008852 00000 n -0000008906 00000 n -0000008961 00000 n -0000009016 00000 n -0000009071 00000 n -0000009126 00000 n -0000009181 00000 n -0000009236 00000 n -0000009291 00000 n -0000009346 00000 n -0000009401 00000 n -0000009456 00000 n -0000009511 00000 n -0000073452 00000 n -0000073475 00000 n -0000073502 00000 n -0000087452 00000 n -0000087313 00000 n -0000073700 00000 n -0000073955 00000 n -0000080486 00000 n -0000080464 00000 n -0000080584 00000 n -0000080604 00000 n -0000081141 00000 n -0000080763 00000 n -0000081620 00000 n -0000081641 00000 n -0000081893 00000 n -0000083305 00000 n -0000083283 00000 n -0000083392 00000 n -0000083411 00000 n -0000083802 00000 n -0000083571 00000 n -0000084114 00000 n -0000084135 00000 n -0000084391 00000 n -0000086454 00000 n -0000086432 00000 n -0000086549 00000 n -0000086569 00000 n -0000086968 00000 n -0000086729 00000 n -0000087292 00000 n -0000087375 00000 n +0000008313 00000 n +0000008368 00000 n +0000070059 00000 n +0000070082 00000 n +0000070109 00000 n +0000083629 00000 n +0000083490 00000 n +0000070307 00000 n +0000070559 00000 n +0000071971 00000 n +0000071949 00000 n +0000072058 00000 n +0000072077 00000 n +0000072468 00000 n +0000072237 00000 n +0000072780 00000 n +0000072801 00000 n +0000073057 00000 n +0000075120 00000 n +0000075098 00000 n +0000075215 00000 n +0000075235 00000 n +0000075634 00000 n +0000075395 00000 n +0000075958 00000 n +0000075979 00000 n +0000076234 00000 n +0000082351 00000 n +0000082329 00000 n +0000082449 00000 n +0000082469 00000 n +0000082998 00000 n +0000082628 00000 n +0000083469 00000 n +0000083552 00000 n trailer << - /Root 210 0 R + /Root 189 0 R /Info 1 0 R - /ID [<41AAECF0D68FA64E05F06917A2F625CD> <41AAECF0D68FA64E05F06917A2F625CD>] - /Size 211 + /ID [<572F699D9D66AAA5D3896635B5DE7520> <572F699D9D66AAA5D3896635B5DE7520>] + /Size 190 >> startxref -90357 +86177 %%EOF diff --git a/figs/rotating_rdc_damped_plant.png b/figs/rotating_rdc_damped_plant.png index 75ee08c..8194285 100644 Binary files a/figs/rotating_rdc_damped_plant.png and b/figs/rotating_rdc_damped_plant.png differ diff --git a/figs/rotating_rdc_optimal_gain.pdf b/figs/rotating_rdc_optimal_gain.pdf index b7d1489..320485e 100644 Binary files a/figs/rotating_rdc_optimal_gain.pdf and b/figs/rotating_rdc_optimal_gain.pdf differ diff --git a/figs/rotating_rdc_optimal_gain.png b/figs/rotating_rdc_optimal_gain.png index e7b8054..3d1e2ec 100644 Binary files a/figs/rotating_rdc_optimal_gain.png and b/figs/rotating_rdc_optimal_gain.png differ diff --git a/figs/rotating_rdc_plant_effect_rot_coupling.pdf b/figs/rotating_rdc_plant_effect_rot_coupling.pdf new file mode 100644 index 0000000..54af4af Binary files /dev/null and b/figs/rotating_rdc_plant_effect_rot_coupling.pdf differ diff --git a/figs/rotating_rdc_plant_effect_rot_coupling.png b/figs/rotating_rdc_plant_effect_rot_coupling.png new file mode 100644 index 0000000..c3d15d6 Binary files /dev/null and b/figs/rotating_rdc_plant_effect_rot_coupling.png differ diff --git a/figs/rotating_rdc_plant_effect_rot_direct.pdf b/figs/rotating_rdc_plant_effect_rot_direct.pdf new file mode 100644 index 0000000..becd785 Binary files /dev/null and b/figs/rotating_rdc_plant_effect_rot_direct.pdf differ diff --git a/figs/rotating_rdc_plant_effect_rot_direct.png b/figs/rotating_rdc_plant_effect_rot_direct.png new file mode 100644 index 0000000..98ae8d5 Binary files /dev/null and b/figs/rotating_rdc_plant_effect_rot_direct.png differ diff --git a/figs/rotating_rdc_root_locus.pdf b/figs/rotating_rdc_root_locus.pdf index 4336d12..f1ba03e 100644 Binary files a/figs/rotating_rdc_root_locus.pdf and b/figs/rotating_rdc_root_locus.pdf differ diff --git a/figs/rotating_rdc_root_locus.png b/figs/rotating_rdc_root_locus.png index f774e24..606097e 100644 Binary files a/figs/rotating_rdc_root_locus.png and b/figs/rotating_rdc_root_locus.png differ diff --git a/figs/rotating_rdc_root_locus.svg b/figs/rotating_rdc_root_locus.svg new file mode 100644 index 0000000..fd08d82 Binary files /dev/null and b/figs/rotating_rdc_root_locus.svg differ diff --git a/figs/rotating_root_locus_iff_hpf_nass_md.pdf b/figs/rotating_root_locus_iff_hpf_nass_md.pdf new file mode 100644 index 0000000..873c307 Binary files /dev/null and b/figs/rotating_root_locus_iff_hpf_nass_md.pdf differ diff --git a/figs/rotating_root_locus_iff_hpf_nass_md.png b/figs/rotating_root_locus_iff_hpf_nass_md.png new file mode 100644 index 0000000..e3cba3d Binary files /dev/null and b/figs/rotating_root_locus_iff_hpf_nass_md.png differ diff --git a/figs/rotating_root_locus_iff_hpf_nass_pz.pdf b/figs/rotating_root_locus_iff_hpf_nass_pz.pdf new file mode 100644 index 0000000..aa73edd Binary files /dev/null and b/figs/rotating_root_locus_iff_hpf_nass_pz.pdf differ diff --git a/figs/rotating_root_locus_iff_hpf_nass_pz.png b/figs/rotating_root_locus_iff_hpf_nass_pz.png new file mode 100644 index 0000000..f79a48b Binary files /dev/null and b/figs/rotating_root_locus_iff_hpf_nass_pz.png differ diff --git a/figs/rotating_root_locus_iff_hpf_nass_vc.pdf b/figs/rotating_root_locus_iff_hpf_nass_vc.pdf new file mode 100644 index 0000000..4bdbbb3 Binary files /dev/null and b/figs/rotating_root_locus_iff_hpf_nass_vc.pdf differ diff --git a/figs/rotating_root_locus_iff_hpf_nass_vc.png b/figs/rotating_root_locus_iff_hpf_nass_vc.png new file mode 100644 index 0000000..bbdf92e Binary files /dev/null and b/figs/rotating_root_locus_iff_hpf_nass_vc.png differ diff --git a/figs/rotating_root_locus_iff_kp_nass_md.pdf b/figs/rotating_root_locus_iff_kp_nass_md.pdf new file mode 100644 index 0000000..4018cca Binary files /dev/null and b/figs/rotating_root_locus_iff_kp_nass_md.pdf differ diff --git a/figs/rotating_root_locus_iff_kp_nass_md.png b/figs/rotating_root_locus_iff_kp_nass_md.png new file mode 100644 index 0000000..d3109e0 Binary files /dev/null and b/figs/rotating_root_locus_iff_kp_nass_md.png differ diff --git a/figs/rotating_root_locus_iff_kp_nass_pz.pdf b/figs/rotating_root_locus_iff_kp_nass_pz.pdf new file mode 100644 index 0000000..4c0cbcd Binary files /dev/null and b/figs/rotating_root_locus_iff_kp_nass_pz.pdf differ diff --git a/figs/rotating_root_locus_iff_kp_nass_pz.png b/figs/rotating_root_locus_iff_kp_nass_pz.png new file mode 100644 index 0000000..22e0025 Binary files /dev/null and b/figs/rotating_root_locus_iff_kp_nass_pz.png differ diff --git a/figs/rotating_root_locus_iff_kp_nass_vc.pdf b/figs/rotating_root_locus_iff_kp_nass_vc.pdf new file mode 100644 index 0000000..d195595 Binary files /dev/null and b/figs/rotating_root_locus_iff_kp_nass_vc.pdf differ diff --git a/figs/rotating_root_locus_iff_kp_nass_vc.png b/figs/rotating_root_locus_iff_kp_nass_vc.png new file mode 100644 index 0000000..4978514 Binary files /dev/null and b/figs/rotating_root_locus_iff_kp_nass_vc.png differ diff --git a/figs/rotating_root_locus_iff_modified_effect_wi.pdf b/figs/rotating_root_locus_iff_modified_effect_wi.pdf index ef76261..3681961 100644 Binary files a/figs/rotating_root_locus_iff_modified_effect_wi.pdf and b/figs/rotating_root_locus_iff_modified_effect_wi.pdf differ diff --git a/figs/rotating_root_locus_iff_modified_effect_wi.png b/figs/rotating_root_locus_iff_modified_effect_wi.png index b88e44e..27debd0 100644 Binary files a/figs/rotating_root_locus_iff_modified_effect_wi.png and b/figs/rotating_root_locus_iff_modified_effect_wi.png differ diff --git a/figs/rotating_root_locus_iff_modified_effect_wi.svg b/figs/rotating_root_locus_iff_modified_effect_wi.svg new file mode 100644 index 0000000..61e812a Binary files /dev/null and b/figs/rotating_root_locus_iff_modified_effect_wi.svg differ diff --git a/figs/rotating_root_locus_iff_modified_effect_wi_large.pdf b/figs/rotating_root_locus_iff_modified_effect_wi_large.pdf new file mode 100644 index 0000000..840c323 Binary files /dev/null and b/figs/rotating_root_locus_iff_modified_effect_wi_large.pdf differ diff --git a/figs/rotating_root_locus_iff_modified_effect_wi_large.png b/figs/rotating_root_locus_iff_modified_effect_wi_large.png new file mode 100644 index 0000000..98477be Binary files /dev/null and b/figs/rotating_root_locus_iff_modified_effect_wi_large.png differ diff --git a/figs/rotating_root_locus_iff_pure_int.pdf b/figs/rotating_root_locus_iff_pure_int.pdf index 9f8d324..6e3cbac 100644 Binary files a/figs/rotating_root_locus_iff_pure_int.pdf and b/figs/rotating_root_locus_iff_pure_int.pdf differ diff --git a/figs/rotating_root_locus_iff_pure_int.png b/figs/rotating_root_locus_iff_pure_int.png index 22fa7ca..0042a9a 100644 Binary files a/figs/rotating_root_locus_iff_pure_int.png and b/figs/rotating_root_locus_iff_pure_int.png differ diff --git a/figs/rotating_root_locus_iff_pure_int.svg b/figs/rotating_root_locus_iff_pure_int.svg new file mode 100644 index 0000000..720197f Binary files /dev/null and b/figs/rotating_root_locus_iff_pure_int.svg differ diff --git a/figs/rotating_root_locus_rdc_nass_md.pdf b/figs/rotating_root_locus_rdc_nass_md.pdf new file mode 100644 index 0000000..8208aa2 Binary files /dev/null and b/figs/rotating_root_locus_rdc_nass_md.pdf differ diff --git a/figs/rotating_root_locus_rdc_nass_md.png b/figs/rotating_root_locus_rdc_nass_md.png new file mode 100644 index 0000000..1c3f299 Binary files /dev/null and b/figs/rotating_root_locus_rdc_nass_md.png differ diff --git a/figs/rotating_root_locus_rdc_nass_pz.pdf b/figs/rotating_root_locus_rdc_nass_pz.pdf new file mode 100644 index 0000000..2f02893 Binary files /dev/null and b/figs/rotating_root_locus_rdc_nass_pz.pdf differ diff --git a/figs/rotating_root_locus_rdc_nass_pz.png b/figs/rotating_root_locus_rdc_nass_pz.png new file mode 100644 index 0000000..ddae9b5 Binary files /dev/null and b/figs/rotating_root_locus_rdc_nass_pz.png differ diff --git a/figs/rotating_root_locus_rdc_nass_vc.pdf b/figs/rotating_root_locus_rdc_nass_vc.pdf new file mode 100644 index 0000000..d61931c Binary files /dev/null and b/figs/rotating_root_locus_rdc_nass_vc.pdf differ diff --git a/figs/rotating_root_locus_rdc_nass_vc.png b/figs/rotating_root_locus_rdc_nass_vc.png new file mode 100644 index 0000000..0e76714 Binary files /dev/null and b/figs/rotating_root_locus_rdc_nass_vc.png differ diff --git a/matlab/rotating_model.slx b/matlab/rotating_model.slx index b59ea44..ecbf955 100644 Binary files a/matlab/rotating_model.slx and b/matlab/rotating_model.slx differ diff --git a/matlab/src/rootLocusPolesSorted.m b/matlab/src/rootLocusPolesSorted.m new file mode 100644 index 0000000..9a6d918 --- /dev/null +++ b/matlab/src/rootLocusPolesSorted.m @@ -0,0 +1,96 @@ +% =rootLocusPolesSorted= + + function [poles] = rootLocusPolesSorted(G, K, gains, args) + % rootLocusPolesSorted - + % + % Syntax: [poles] = rootLocusPolesSorted(G, K, gains, args) + % + % Inputs: + % - G, K, gains, args - + % + % Outputs: + % - poles - + + arguments + G + K + gains + args.minreal double {mustBeNumericOrLogical} = false + args.p_half double {mustBeNumericOrLogical} = false + args.d_max double {mustBeNumeric} = -1 + end + + if args.minreal + p1 = pole(minreal(feedback(G, gains(1)*K))); + [~, i_uniq] = uniquetol([real(p1), imag(p1)], 1e-10, 'ByRows', true); + p1 = p1(i_uniq); + + poles = zeros(length(p1), length(gains)); + poles(:, 1) = p1; + else + p1 = pole(feedback(G, gains(1)*K)); + [~, i_uniq] = uniquetol([real(p1), imag(p1)], 1e-10, 'ByRows', true); + p1 = p1(i_uniq); + + poles = zeros(length(p1), length(gains)); + poles(:, 1) = p1; + end + + if args.minreal + p2 = pole(minreal(feedback(G, gains(2)*K))); + [~, i_uniq] = uniquetol([real(p2), imag(p2)], 1e-10, 'ByRows', true); + p2 = p2(i_uniq); + poles(:, 2) = p2; + else + p2 = pole(feedback(G, gains(2)*K)); + [~, i_uniq] = uniquetol([real(p2), imag(p2)], 1e-10, 'ByRows', true); + p2 = p2(i_uniq); + poles(:, 2) = p2; + end + + for g_i = 3:length(gains) + % Estimated value of the poles + poles_est = poles(:, g_i-1) + (poles(:, g_i-1) - poles(:, g_i-2))*(gains(g_i) - gains(g_i-1))/(gains(g_i-1) - gains(g_i - 2)); + + % New values for the poles + poles_gi = pole(feedback(G, gains(g_i)*K)); + [~, i_uniq] = uniquetol([real(poles_gi), imag(poles_gi)], 1e-10, 'ByRows', true); + poles_gi = poles_gi(i_uniq); + + % Array of distances between all the poles + poles_dist = sqrt((poles_est-poles_gi.').*conj(poles_est-poles_gi.')); + + % Get indices corresponding to distances from lowest to highest + [~, c] = sort(min(poles_dist)); + + as = 1:length(poles_gi); + + % for each column of poles_dist corresponding to the i'th pole + % with closest previous poles + for p_i = c + % Get the indice a_i of the previous pole that is the closest + % to pole c(p_i) + [~, a_i] = min(poles_dist(:, p_i)); + + poles(as(a_i), g_i) = poles_gi(p_i); + + % Remove old poles that are already matched + % poles_gi(as(a_i), :) = []; + poles_dist(a_i, :) = []; + as(a_i) = []; + end + end + + + if args.d_max > 0 + poles = poles(max(abs(poles(:, 2:end) - poles(:, 1:end-1))') > args.d_max, :); + end + + if args.p_half + poles = poles(1:round(end/2), :); + end + + [~, s_p] = sort(imag(poles(:,1)), 'descend'); + poles = poles(s_p, :); + + poles = poles.'; diff --git a/nass-rotating-3dof-model.bib b/nass-rotating-3dof-model.bib index 8a901e6..5f18543 100644 --- a/nass-rotating-3dof-model.bib +++ b/nass-rotating-3dof-model.bib @@ -1,70 +1,3 @@ -@article{collette15_sensor_fusion_method_high_perfor, - author = {C. Collette and F. Matichard}, - title = {Sensor Fusion Methods for High Performance Active Vibration Isolation Systems}, - journal = {Journal of Sound and Vibration}, - volume = {342}, - pages = {1-21}, - year = {2015}, - doi = {10.1016/j.jsv.2015.01.006}, - url = {https://doi.org/10.1016/j.jsv.2015.01.006}, - keywords = {}, -} - -@inproceedings{collette14_vibrat, - author = {Collette, C. and Matichard, F}, - title = {Vibration control of flexible structures using fusion of inertial sensors and hyper-stable actuator-sensor pairs}, - booktitle = {International Conference on Noise and Vibration Engineering (ISMA2014)}, - year = {2014}, - keywords = {}, -} - -@article{oomen18_advan_motion_contr_precis_mechat, - author = {Tom Oomen}, - title = {Advanced Motion Control for Precision Mechatronics: Control, Identification, and Learning of Complex Systems}, - journal = {IEEJ Journal of Industry Applications}, - volume = {7}, - number = {2}, - pages = {127-140}, - year = {2018}, - doi = {10.1541/ieejjia.7.127}, - url = {https://doi.org/10.1541/ieejjia.7.127}, -} - -@book{skogestad07_multiv_feedb_contr, - author = {Skogestad, Sigurd and Postlethwaite, Ian}, - title = {Multivariable Feedback Control: Analysis and Design}, - year = {2007}, - publisher = {John Wiley}, - keywords = {favorite}, -} - -@phdthesis{hua05_low_ligo, - author = {Hua, Wensheng}, - school = {stanford university}, - title = {Low frequency vibration isolation and alignment system for - advanced LIGO}, - year = 2005, -} - -@book{lurie12_class, - author = {Lurie, B. J}, - title = {Classical feedback control : with MATLAB and Simulink}, - year = 2012, - publisher = {CRC Press}, - address = {Boca Raton, FL}, - isbn = 9781439897461, - keywords = {favorite}, -} - -@techreport{bibel92_guidel_h, - author = {Bibel, John E and Malyevac, D Stephen}, - institution = {NAVAL SURFACE WARFARE CENTER DAHLGREN DIV VA}, - title = {Guidelines for the selection of weighting functions for - H-infinity control}, - year = 1992, - keywords = {}, -} - @inproceedings{dehaeze20_activ_dampin_rotat_platf_integ_force_feedb, author = {Dehaeze, T. and Collette, C.}, title = {Active Damping of Rotating Platforms using Integral Force @@ -74,72 +7,66 @@ year = 2020, } -@misc{dehaeze20_activ_dampin_rotat_posit_platf, - author = {Thomas Dehaeze}, - howpublished = {Source Code on Zonodo}, - month = 07, - title = {Active Damping of Rotating Positioning Platforms}, - url = {https://doi.org/10.5281/zenodo.3894342}, - doi = {10.5281/zenodo.3894342}, - year = 2020, -} + @article{dehaeze21_activ_dampin_rotat_platf_using, - author = {Thomas Dehaeze and Christophe Collette}, - title = {Active Damping of Rotating Platforms Using Integral Force Feedback}, - journal = {Engineering Research Express}, - year = {2021}, - url = {http://iopscience.iop.org/article/10.1088/2631-8695/abe803}, + author = {Thomas Dehaeze and Christophe Collette}, + title = {Active Damping of Rotating Platforms Using Integral Force + Feedback}, + journal = {Engineering Research Express}, + year = 2021, + doi = {10.1088/2631-8695/abe803}, + url = {https://doi.org/10.1088/2631-8695/abe803}, + month = {Feb}, + keywords = {nass, esrf}, } -@misc{dehaeze20_activ_dampin_rotat_posit_platf, - author = {Thomas Dehaeze}, - howpublished = {Source Code on Zonodo}, - month = 07, - title = {Active Damping of Rotating Positioning Platforms}, - url = {https://doi.org/10.5281/zenodo.3894342}, - doi = {10.5281/zenodo.3894342}, - year = 2020, + + +@article{collette11_review_activ_vibrat_isolat_strat, + author = {Christophe Collette and Stef Janssens and Kurt Artoos}, + title = {Review of Active Vibration Isolation Strategies}, + journal = {Recent Patents on Mechanical Engineeringe}, + volume = 4, + number = 3, + pages = {212-219}, + year = 2011, + doi = {10.2174/2212797611104030212}, + url = {https://doi.org/10.2174/2212797611104030212}, + keywords = {favorite}, } -@inproceedings{dehaeze18_sampl_stabil_for_tomog_exper, - author = {Thomas Dehaeze and M. Magnin Mattenet and Christophe - Collette}, - title = {Sample Stabilization For Tomography Experiments In Presence - Of Large Plant Uncertainty}, - booktitle = {MEDSI'18}, - year = 2018, - number = 10, - pages = {153--157}, - doi = {10.18429/JACoW-MEDSI2018-WEOAMA02}, - url = {https://doi.org/10.18429/JACoW-MEDSI2018-WEOAMA02}, - address = {Geneva, Switzerland}, - isbn = {978-3-95450-207-3}, - language = {english}, - month = {Dec}, - publisher = {JACoW Publishing}, - series = {Mechanical Engineering Design of Synchrotron Radiation - Equipment and Instrumentation}, - venue = {Paris, France}, + + +@article{lin06_distur_atten_precis_hexap_point, + author = {Haomin Lin and John E. McInroy}, + title = {Disturbance Attenuation in Precise Hexapod Pointing Using + Positive Force Feedback}, + journal = {Control Engineering Practice}, + volume = 14, + number = 11, + pages = {1377-1386}, + year = 2006, + doi = {10.1016/j.conengprac.2005.10.002}, + url = {https://doi.org/10.1016/j.conengprac.2005.10.002}, + keywords = {parallel robot}, } -@book{skogestad07_multiv_feedb_contr, - author = {Skogestad, Sigurd and Postlethwaite, Ian}, - title = {Multivariable Feedback Control: Analysis and Design}, - year = 2007, - publisher = {John Wiley}, - isbn = 9780470011683, + + +@article{fanson90_posit_posit_feedb_contr_large_space_struc, + author = {Fanson, JL and Caughey, T Kv}, + title = {Positive Position Feedback Control for Large Space + Structures}, + journal = {AIAA journal}, + volume = 28, + number = 4, + pages = {717--724}, + year = 1990, + keywords = {active damping}, } -@book{preumont18_vibrat_contr_activ_struc_fourt_edition, - author = {Andre Preumont}, - title = {Vibration Control of Active Structures - Fourth Edition}, - year = 2018, - publisher = {Springer International Publishing}, - url = {https://doi.org/10.1007/978-3-319-72296-2}, - doi = {10.1007/978-3-319-72296-2}, - series = {Solid Mechanics and Its Applications}, -} + @inproceedings{preumont91_activ, author = {Andre Preumont and Jean-Paul Dufour and Christian Malekian}, @@ -152,25 +79,41 @@ url = {https://doi.org/10.2514/6.1991-989}, month = {apr}, publisher = {American Institute of Aeronautics and Astronautics}, + keywords = {active damping}, } -@article{preumont08_trans_zeros_struc_contr_with, - author = {Preumont, Andr{\'e} and De Marneffe, Bruno and Krenk, - Steen}, - title = {Transmission Zeros in Structural Control With Collocated - Multi-Input/multi-Output Pairs}, - journal = {Journal of guidance, control, and dynamics}, - volume = 31, - number = 2, - pages = {428--432}, - year = 2008, - doi = {10.2514/1.31529}, - url = {https://doi.org/10.2514/1.31529}, + + +@article{karnopp74_vibrat_contr_using_semi_activ_force_gener, + author = {Karnopp, Dean and Crosby, Michael J and Harwood, RA}, + title = {Vibration Control Using Semi-Active Force Generators}, + journal = {Journal of Engineering for Industry}, + volume = 96, + pages = {619-626}, + year = 1974, + doi = {10.1115/1.3438373}, + url = {https://doi.org/10.1115/1.3438373}, } + + +@article{serrand00_multic_feedb_contr_isolat_base_excit_vibrat, + author = {Serrand, M and Elliott, SJ}, + title = {Multichannel Feedback Control for the Isolation of + Base-Excited Vibration}, + journal = {Journal of Sound and Vibration}, + volume = 234, + number = 4, + pages = {681--704}, + year = 2000, + publisher = {Elsevier}, +} + + + @article{preumont02_force_feedb_versus_accel_feedb, - author = {Preumont, Andr{\'e} and A. Fran{\c{c}}ois and F. Bossens - and A. Abu-Hanieh}, + author = {A. Preumont and A. Fran{\c{c}}ois and F. Bossens and A. + Abu-Hanieh}, title = {Force Feedback Versus Acceleration Feedback in Active Vibration Isolation}, journal = {Journal of Sound and Vibration}, @@ -182,20 +125,36 @@ url = {https://doi.org/10.1006/jsvi.2002.5047}, } -@article{preumont92_activ_dampin_by_local_force, - author = {Preumont, Andre and Dufour, Jean-Paul and Malekian, - Christian}, - title = {Active Damping By a Local Force Feedback With Piezoelectric - Actuators}, + + +@article{preumont08_trans_zeros_struc_contr_with, + author = {Preumont, Andr{\'e} and De Marneffe, Bruno and Krenk, + Steen}, + title = {Transmission Zeros in Structural Control With Collocated + Multi-Input/multi-Output Pairs}, journal = {Journal of guidance, control, and dynamics}, - volume = 15, + volume = 31, number = 2, - pages = {390--395}, - year = 1992, - doi = 10.2514/3.20848, - url = {https://doi.org/10.2514/3.20848}, + pages = {428--432}, + year = 2008, } + + +@article{preumont08_trans_zeros_struc_contr_with, + author = {Preumont, Andr{\'e} and De Marneffe, Bruno and Krenk, + Steen}, + title = {Transmission Zeros in Structural Control With Collocated + Multi-Input/multi-Output Pairs}, + journal = {Journal of guidance, control, and dynamics}, + volume = 31, + number = 2, + pages = {428--432}, + year = 2008, +} + + + @article{teo15_optim_integ_force_feedb_activ_vibrat_contr, author = {Yik R. Teo and Andrew J. Fleming}, title = {Optimal Integral Force Feedback for Active Vibration @@ -208,195 +167,10 @@ url = {https://doi.org/10.1016/j.jsv.2015.06.046}, month = {nov}, publisher = {Elsevier {BV}}, + keywords = {iff}, } -@phdthesis{hanieh03_activ_stewar, - author = {Hanieh, Ahmed Abu}, - school = {Universit{\'e} Libre de Bruxelles, Brussels, Belgium}, - title = {Active isolation and damping of vibrations via Stewart - platform}, - year = 2003, -} -@article{hauge04_sensor_contr_space_based_six, - author = {G.S. Hauge and M.E. Campbell}, - title = {Sensors and Control of a Space-Based Six-Axis Vibration - Isolation System}, - journal = {Journal of Sound and Vibration}, - volume = 269, - number = {3-5}, - pages = {913-931}, - year = 2004, - doi = {10.1016/s0022-460x(03)00206-2}, - url = {https://doi.org/10.1016/s0022-460x(03)00206-2}, -} - -@article{souleille18_concep_activ_mount_space_applic, - author = {Souleille, Adrien and Lampert, Thibault and Lafarga, V and - Hellegouarch, Sylvain and Rondineau, Alan and Rodrigues, - Gon{\c{c}}alo and Collette, Christophe}, - title = {A Concept of Active Mount for Space Applications}, - journal = {CEAS Space Journal}, - volume = 10, - number = 2, - pages = {157--165}, - year = 2018, - doi = {10.1007/s12567-017-0180-6}, - url = {https://doi.org/10.1007/s12567-017-0180-6}, - publisher = {Springer}, -} - -@article{yoshioka01_activ_microv_isolat_system_hi, - author = {H. Yoshioka and Y. Takahashi and K. Katayama and T. Imazawa - and N. Murai}, - title = {An Active Microvibration Isolation System for Hi-Tech - Manufacturing Facilities}, - journal = {Journal of Vibration and Acoustics}, - volume = 123, - number = 2, - pages = 269, - year = 2001, - doi = {10.1115/1.1350566}, - url = {https://doi.org/10.1115/1.1350566}, -} - -@article{lan08_activ_vibrat_isolat_long_range, - author = {Kuo-Jung Lan and Jia-Yush Yen and John A. Kramar}, - title = {Active Vibration Isolation for a Long Range Scanning - Tunneling Microscope}, - journal = {Asian Journal of Control}, - volume = 6, - number = 2, - pages = {179-186}, - year = 2008, - doi = {10.1111/j.1934-6093.2004.tb00196.x}, - url = {https://doi.org/10.1111/j.1934-6093.2004.tb00196.x}, -} - -@article{fleming15_low_order_dampin_track_contr, - author = {Andrew J. Fleming and Yik Ren Teo and Kam K. Leang}, - title = {Low-Order Damping and Tracking Control for Scanning Probe - Systems}, - journal = {Frontiers in Mechanical Engineering}, - volume = 1, - year = 2015, - doi = {10.3389/fmech.2015.00014}, - url = {https://doi.org/10.3389/fmech.2015.00014}, -} - -@article{matichard15_seism_isolat_advan_ligo, - author = {Matichard, F and Lantz, B and Mittleman, R and Mason, K and - Kissel, J and Abbott, B and Biscans, S and McIver, J and - Abbott, R and Abbott, S and others}, - title = {Seismic Isolation of Advanced Ligo: Review of Strategy, - Instrumentation and Performance}, - journal = {Classical and Quantum Gravity}, - volume = 32, - number = 18, - pages = 185003, - year = 2015, - doi = 10.1088/0264-9381/32/18/185003, - url = {https://doi.org/10.1088/0264-9381/32/18/185003}, - publisher = {IOP Publishing}, -} - -@article{collette10_activ_quadr_stabil_futur_linear_partic_collid, - author = {Collette, Christophe and Artoos, Kurt and Kuzmin, A and - Janssens, S and Sylte, Magnus and Guinchard, Michael and - Hauviller, Claude}, - title = {Active Quadrupole Stabilization for Future Linear Particle - Colliders}, - journal = {Nuclear Instruments and Methods in Physics Research Section - A: Accelerators, Spectrometers, Detectors and Associated - Equipment}, - volume = 621, - number = {1-3}, - pages = {71--78}, - year = 2010, - doi = 10.1016/j.nima.2010.05.020, - url = {https://doi.org/10.1016/j.nima.2010.05.020}, - publisher = {Elsevier}, -} - -@misc{reilly06_critic, - author = {Reilly, S P and Leach, R K}, - note = {NPL Report}, - title = {Critical review of seismic vibration isolation techniques}, - year = 2006, -} - -@phdthesis{poel10_explor_activ_hard_mount_vibrat, - author = {van der Poel, Gerrit Wijnand}, - doi = {10.3990/1.9789036530163}, - isbn = {978-90-365-3016-3}, - keywords = {parallel robot}, - school = {University of Twente}, - title = {An Exploration of Active Hard Mount Vibration Isolation for - Precision Equipment}, - url = {https://doi.org/10.3990/1.9789036530163}, - year = 2010, -} - -@article{collette11_review_activ_vibrat_isolat_strat, - author = {Christophe Collette and Stef Janssens and Kurt Artoos}, - title = {Review of Active Vibration Isolation Strategies}, - journal = {Recent Patents on Mechanical Engineeringe}, - volume = 4, - number = 3, - pages = {212-219}, - year = 2011, - doi = {10.2174/2212797611104030212}, - url = {https://doi.org/10.2174/2212797611104030212}, -} - -@article{lin06_distur_atten_precis_hexap_point, - author = {Haomin Lin and John E. McInroy}, - title = {Disturbance Attenuation in Precise Hexapod Pointing Using - Positive Force Feedback}, - journal = {Control Engineering Practice}, - volume = 14, - number = 11, - pages = {1377-1386}, - year = 2006, - doi = {10.1016/j.conengprac.2005.10.002}, - url = {https://doi.org/10.1016/j.conengprac.2005.10.002}, -} - -@article{fanson90_posit_posit_feedb_contr_large_space_struc, - author = {Fanson, JL and Caughey, T Kv}, - title = {Positive Position Feedback Control for Large Space - Structures}, - journal = {AIAA journal}, - volume = 28, - number = 4, - pages = {717--724}, - year = 1990, - doi = 10.2514/3.10451, - url = {https://doi.org/10.2514/3.10451}, -} - -@article{karnopp74_vibrat_contr_using_semi_activ_force_gener, - author = {Karnopp, Dean and Crosby, Michael J and Harwood, RA}, - title = {Vibration Control Using Semi-Active Force Generators}, - journal = {Journal of Engineering for Industry}, - year = 1974, - doi = {10.1115/1.3438373}, - url = {https://doi.org/10.1115/1.3438373}, -} - -@article{serrand00_multic_feedb_contr_isolat_base_excit_vibrat, - author = {Serrand, M and Elliott, SJ}, - title = {Multichannel Feedback Control for the Isolation of - Base-Excited Vibration}, - journal = {Journal of Sound and Vibration}, - volume = 234, - number = 4, - pages = {681--704}, - year = 2000, - doi = 10.1006/jsvi.2000.2891, - url = {https://doi.org/10.1006/jsvi.2000.2891}, - publisher = {Elsevier}, -} @article{chesne16_enhan_dampin_flexib_struc_using_force_feedb, author = {Simon Chesn{\'e} and Ariston Milhomem and Christophe @@ -410,8 +184,11 @@ year = 2016, doi = {10.2514/1.g001620}, url = {https://doi.org/10.2514/1.g001620}, + keywords = {active damping, integral force feedback}, } + + @article{zhao19_optim_integ_force_feedb_contr, author = {Zhao, Guoying and Paknejad, A and Deraemaeker, Arnaud and Collette, Christophe}, @@ -422,32 +199,43 @@ number = 17, pages = {2330--2339}, year = 2019, - doi = 10.1177/1077546319853165, - url = {https://doi.org/10.1177/1077546319853165}, publisher = {SAGE Publications Sage UK: London, England}, + keywords = {iff}, } + + +@book{skogestad07_multiv_feedb_contr, + author = {Skogestad, Sigurd and Postlethwaite, Ian}, + title = {Multivariable Feedback Control: Analysis and Design - + Second Edition}, + year = 2007, + publisher = {John Wiley}, + isbn = 978-0470011683, + keywords = {favorite}, +} + + + @phdthesis{marneffe07_activ_passiv_vibrat_isolat_dampin_shunt_trans, author = {de Marneffe, Bruno}, school = {Universit{\'e} Libre de Bruxelles, Brussels, Belgium}, title = {Active and Passive Vibration Isolation and Damping via Shunted Transducers}, year = 2007, + keywords = {parallel robot}, } -@book{matlab20, - author = {MATLAB}, - title = {version 9.9.0 (R2020b)}, - year = 2020, - publisher = {The MathWorks Inc.}, - address = {Natick, Massachusetts}, + + +@book{preumont18_vibrat_contr_activ_struc_fourt_edition, + author = {Andre Preumont}, + title = {Vibration Control of Active Structures - Fourth Edition}, + year = 2018, + publisher = {Springer International Publishing}, + url = {https://doi.org/10.1007/978-3-319-72296-2}, + doi = {10.1007/978-3-319-72296-2}, + keywords = {favorite, parallel robot}, + series = {Solid Mechanics and Its Applications}, } -@inproceedings{dehaeze20_activ_dampin_rotat_platf_integ_force_feedb, - author = {Dehaeze, T. and Collette, C.}, - title = {Active Damping of Rotating Platforms using Integral Force - Feedback}, - booktitle = {Proceedings of the International Conference on Modal - Analysis Noise and Vibration Engineering (ISMA)}, - year = 2020, -} diff --git a/nass-rotating-3dof-model.org b/nass-rotating-3dof-model.org index dc3dfa8..09b4d47 100644 --- a/nass-rotating-3dof-model.org +++ b/nass-rotating-3dof-model.org @@ -1,4 +1,4 @@ -#+TITLE: NASS - Effect of rotation +#+TITLE: Nano Active Stabilization System - Effect of rotation :DRAWER: #+LANGUAGE: en #+EMAIL: dehaeze.thomas@gmail.com @@ -15,13 +15,8 @@ #+LATEX_CLASS: scrreprt #+LATEX_CLASS_OPTIONS: [a4paper, 10pt, DIV=12, parskip=full, bibliography=totoc] -#+LATEX_HEADER: \usepackage{siunitx} -#+LATEX_HEADER: \usepackage{tikz} -#+LATEX_HEADER: \usetikzlibrary{shapes.misc,arrows,arrows.meta} -#+LATEX_HEADER: \usepackage{bm} -#+LATEX_HEADER: \usepackage{amsmath} -#+LATEX_HEADER_EXTRA: \usepackage{amssymb} -#+LATEX_HEADER_EXTRA: \input{preamble.tex} +#+LATEX_HEADER: \input{preamble.tex} +#+LATEX_HEADER_EXTRA: \input{preamble_extra.tex} #+LATEX_HEADER_EXTRA: \bibliography{nass-rotating-3dof-model.bib} #+BIND: org-latex-bib-compiler "biber" @@ -79,16 +74,6 @@ (add-to-list 'org-export-filter-headline-functions 'my-latex-filter-removeOrgAutoLabels) -;; Remove all org comments in the output LaTeX file -(defun delete-org-comments (backend) - (loop for comment in (reverse (org-element-map (org-element-parse-buffer) - 'comment 'identity)) - do - (setf (buffer-substring (org-element-property :begin comment) - (org-element-property :end comment)) - ""))) -(add-hook 'org-export-before-processing-hook 'delete-org-comments) - ;; Use no package by default (setq org-latex-packages-alist nil) (setq org-latex-default-packages-alist nil) @@ -104,38 +89,61 @@ * Notes :noexport: Prefix is =rotating= +* Glossary and Acronyms - Tables :ignore: + +#+name: glossary +| label | name | description | +|-------+-------------------------+---------------------------------------------| +| psdx | \ensuremath{\Phi_{x}} | Power spectral density of signal $x$ | +| asdx | \ensuremath{\Gamma_{x}} | Amplitude spectral density of signal $x$ | +| cpsx | \ensuremath{\Phi_{x}} | Cumulative Power Spectrum of signal $x$ | +| casx | \ensuremath{\Gamma_{x}} | Cumulative Amplitude Spectrum of signal $x$ | + +#+name: acronyms +| key | abbreviation | full form | +|--------+--------------+------------------------------------------------| +| haclac | HAC-LAC | High Authority Control - Low Authority Control | +| hac | HAC | High Authority Control | +| lac | LAC | Low Authority Control | +| nass | NASS | Nano Active Stabilization System | +| asd | ASD | Amplitude Spectral Density | +| psd | PSD | Power Spectral Density | +| cps | CPS | Cumulative Power Spectrum | +| cas | CAS | Cumulative Amplitude Spectrum | +| frf | FRF | Frequency Response Function | +| iff | IFF | Integral Force Feedback | +| rdc | RDC | Relative Damping Control | +| drga | DRGA | Dynamical Relative Gain Array | + * Introduction :ignore: -An important aspect of the Nano Active Stabilization System (NASS) is that the nano-hexapod is continuously rotating around a vertical axis while the external metrology is not. -Such rotation induces gyroscopic effects that may impact the system dynamics and obtained performances. +An important aspect of the acrfull:nass is that the nano-hexapod is continuously rotating around a vertical axis while the external metrology is not. +Such rotation induces gyroscopic effects that may impact the system dynamics and obtained performance. +To study these effects, a model of a rotating suspended platform is first presented (Section ref:sec:rotating_system_description) +This model is simple enough to be able to derive its dynamics analytically and to well understand its behavior, while still allowing to capture the important physical effects in play. -In this report, this rotating aspect of the NASS is studied. -It is structured in several sections: -- Section ref:sec:rotating_system_description: a simple model of a rotating suspended platform that will be used throughout this study is presented. The effect of the rotation velocity on the system dynamics is shown. -- Section ref:sec:rotating_iff_pure_int: Integral Force Feedback (IFF) is applied to the rotating platform, and it is shown that the unconditional stability of IFF is lost due to Gyroscopic effects induced by the rotation. -- Section ref:sec:rotating_iff_pseudo_int: A first modification of the IFF control law is proposed such that damping can be added to the suspension modes in a robust way. This modification consists of adding an high pass filter to the IFF controller. Optimal high pass filter cut-off frequency is computed. -- Section ref:sec:rotating_iff_parallel_stiffness: A second modification is proposed to regain the unconditional stability of IFF. This modification consists of adding stiffness in parallel to the force sensors. Optimal parallel stiffness is computed. -- Section ref:sec:rotating_relative_damp_control: Relative damping control is applied to the rotating system. -- Section ref:sec:rotating_comp_act_damp: Once the optimal control parameters for the three tested active damping techniques are obtained, they are compared in terms of achievable damping, obtained damped plant and closed-loop compliance and transmissibility. -- Section ref:sec:rotating_nano_hexapod: the previous analysis is applied on three nano-hexapod stiffnesses and optimal active damping controller are obtained. -- Section ref:sec:rotating_nass: up until this section, the study was performed on a very simplistic model that just captures the rotation aspect and the model parameters were not tuned to corresponds to the NASS. In this last section, a model of the micro-station is added below the suspended platform (i.e. the nano-hexapod) with a rotating spindle and parameters tuned to match the NASS dynamics. The goal is to determine if the rotation imposes performance limitation for the NASS. +acrfull:iff is then applied to the rotating platform, and it is shown that the unconditional stability of acrshort:iff is lost due to gyroscopic effects induced by the rotation (Section ref:sec:rotating_iff_pure_int). +Two modifications of the Integral Force Feedback are then proposed. +The first one consists of adding an high pass filter to the acrshort:iff controller (Section ref:sec:rotating_iff_pseudo_int). +It is shown that the acrshort:iff controller is stable for some values of the gain, and that damping can be added to the suspension modes. +Optimal high pass filter cut-off frequency is computed. +The second modification consists of adding a stiffness in parallel to the force sensors (Section ref:sec:rotating_iff_parallel_stiffness). +Under a certain condition, the unconditional stability of the the IFF controller is regained. +Optimal parallel stiffness is then computed. +This study of adapting acrshort:iff for the damping of rotating platforms was the subject of two published papers [[cite:&dehaeze20_activ_dampin_rotat_platf_integ_force_feedb;&dehaeze21_activ_dampin_rotat_platf_using]]. -To run the Matlab code, go in the =matlab= directory and run the Matlab files corresponding to each section (see Table ref:tab:section_matlab_code). +It is then shown that acrfull:rdc is less affected by gyroscopic effects (Section ref:sec:rotating_relative_damp_control). +Once the optimal control parameters for the three tested active damping techniques are obtained, they are compared in terms of achievable damping, obtained damped plant and closed-loop compliance and transmissibility (Section ref:sec:rotating_comp_act_damp). -#+name: tab:section_matlab_code -#+caption: Report sections and corresponding Matlab files -#+attr_latex: :environment tabularx :width 0.6\linewidth :align lX -#+attr_latex: :center t :booktabs t -| *Sections* | *Matlab File* | -|-------------------------------------------------+------------------------------------| -| Section ref:sec:rotating_system_description | =rotating_1_system_description.m= | -| Section ref:sec:rotating_iff_pure_int | =rotating_2_iff_pure_int.m= | -| Section ref:sec:rotating_iff_pseudo_int | =rotating_3_iff_hpf.m= | -| Section ref:sec:rotating_iff_parallel_stiffness | =rotating_4_iff_kp.m= | -| Section ref:sec:rotating_relative_damp_control | =rotating_5_rdc.m= | -| Section ref:sec:rotating_comp_act_damp | =rotating_5_act_damp_comparison.m= | -| Section ref:sec:rotating_nano_hexapod | =rotating_6_nano_hexapod.m= | -| Section ref:sec:rotating_nass | =rotating_6_nass.m= | +The previous analysis is applied on three considered nano-hexapod stiffnesses ($k_n = 0.01\,N/\mu m$, $k_n = 1\,N/\mu m$ and $k_n = 100\,N/\mu m$) and optimal active damping controller are obtained in each case (Section ref:sec:rotating_nano_hexapod). +Up until this section, the study was performed on a very simplistic model that just captures the rotation aspect and the model parameters were not tuned to corresponds to the NASS. +In the last section (Section ref:sec:rotating_nass), a model of the micro-station is added below the suspended platform (i.e. the nano-hexapod) with a rotating spindle and parameters tuned to match the NASS dynamics. +The goal is to determine if the rotation imposes performance limitation for the NASS. + +#+name: fig:rotating_overview +#+caption: Overview of this report on rotating effects +#+attr_latex: :width \linewidth +[[file:figs/rotating_overview.png]] * System Description and Analysis :PROPERTIES: @@ -145,14 +153,12 @@ To run the Matlab code, go in the =matlab= directory and run the Matlab files co ** Introduction :ignore: The studied system consists of a 2 degree of freedom translation stage on top of a rotating stage (Figure ref:fig:rotating_3dof_model_schematic). - The rotating stage is supposed to be ideal, meaning it induces a perfect rotation $\theta(t) = \Omega t$ where $\Omega$ is the rotational speed in $\si{\radian\per\s}$. - The suspended platform consists of two orthogonal actuators each represented by three elements in parallel: a spring with a stiffness $k$ in $\si{\newton\per\meter}$, a dashpot with a damping coefficient $c$ in $\si{\newton\per(\meter\per\second)}$ and an ideal force source $F_u, F_v$. A payload with a mass $m$ in $\si{\kilo\gram}$, is mounted on the (rotating) suspended platform. - -Two reference frames are used: an inertial frame $(\vec{i}_x, \vec{i}_y, \vec{i}_z)$ and a uniform rotating frame $(\vec{i}_u, \vec{i}_v, \vec{i}_w)$ rigidly fixed on top of the rotating stage with $\vec{i}_w$ aligned with the rotation axis. +Two reference frames are used: an /inertial/ frame $(\vec{i}_x, \vec{i}_y, \vec{i}_z)$ and a /uniform rotating/ frame $(\vec{i}_u, \vec{i}_v, \vec{i}_w)$ rigidly fixed on top of the rotating stage with $\vec{i}_w$ aligned with the rotation axis. The position of the payload is represented by $(d_u, d_v, 0)$ expressed in the rotating frame. +After the dynamics of this system is studied, the objective will be to damp the two suspension modes of the payload while the rotating stage performs a constant rotation. #+begin_src latex :file rotating_3dof_model_schematic.pdf \begin{tikzpicture} @@ -215,6 +221,7 @@ The position of the payload is represented by $(d_u, d_v, 0)$ expressed in the r #+name: fig:rotating_3dof_model_schematic #+caption: Schematic of the studied system +#+attr_latex: :scale 0.8 #+RESULTS: [[file:figs/rotating_3dof_model_schematic.png]] @@ -245,63 +252,58 @@ mdl = 'rotating_model'; #+end_src ** Equations of motion -To obtain the equations of motion for the system represented in Figure ref:fig:rotating_3dof_model_schematic, the Lagrangian equations are used: -#+name: eq:lagrangian_equations -\begin{equation} +To obtain the equations of motion for the system represented in Figure ref:fig:rotating_3dof_model_schematic, the Lagrangian equation eqref:eq:rotating_lagrangian_equations is used. +$L = T - V$ is the Lagrangian, $T$ the kinetic coenergy, $V$ the potential energy, $D$ the dissipation function, and $Q_i$ the generalized force associated with the generalized variable $\begin{bmatrix}q_1 & q_2\end{bmatrix} = \begin{bmatrix}d_u & d_v\end{bmatrix}$. +These terms are derived in eqref:eq:rotating_energy_functions_lagrange. +Note that the equation of motion corresponding to the constant rotation along $\vec{i}_w$ is disregarded as this motion is considered to be imposed by the rotation stage. + +\begin{equation}\label{eq:rotating_lagrangian_equations} \frac{d}{dt} \left( \frac{\partial L}{\partial \dot{q}_i} \right) + \frac{\partial D}{\partial \dot{q}_i} - \frac{\partial L}{\partial q_i} = Q_i \end{equation} -with $L = T - V$ the Lagrangian, $T$ the kinetic coenergy, $V$ the potential energy, $D$ the dissipation function, and $Q_i$ the generalized force associated with the generalized variable $\begin{bmatrix}q_1 & q_2\end{bmatrix} = \begin{bmatrix}d_u & d_v\end{bmatrix}$. -The equation of motion corresponding to the constant rotation along $\vec{i}_w$ is disregarded as this motion is considered to be imposed by the rotation stage. -#+name: eq:energy_functions_lagrange -\begin{equation} + +\begin{equation} \label{eq:rotating_energy_functions_lagrange} \begin{aligned} - T &= \frac{1}{2} m \left( ( \dot{d}_u - \Omega d_v )^2 + ( \dot{d}_v + \Omega d_u )^2 \right), \\ - V &= \frac{1}{2} k \big( {d_u}^2 + {d_v}^2 \big), \ Q_1 = F_u, \\ - D &= \frac{1}{2} c \big( \dot{d}_u{}^2 + \dot{d}_v{}^2 \big), \ Q_2 = F_v + T &= \frac{1}{2} m \left( ( \dot{d}_u - \Omega d_v )^2 + ( \dot{d}_v + \Omega d_u )^2 \right), \quad Q_1 = F_u, \quad Q_2 = F_v, \\ + V &= \frac{1}{2} k \big( {d_u}^2 + {d_v}^2 \big), \quad D = \frac{1}{2} c \big( \dot{d}_u{}^2 + \dot{d}_v{}^2 \big) \end{aligned} \end{equation} -Substituting equations eqref:eq:energy_functions_lagrange into equation eqref:eq:lagrangian_equations for both generalized coordinates gives two coupled differential equations eqref:eq:eom_coupled_1 and eqref:eq:eom_coupled_2. -#+name: eq:eom_coupled -\begin{subequations} +Substituting equations eqref:eq:rotating_energy_functions_lagrange into equation eqref:eq:rotating_lagrangian_equations for both generalized coordinates gives two coupled differential equations eqref:eq:rotating_eom_coupled_1 and eqref:eq:rotating_eom_coupled_2. + +\begin{subequations} \label{eq:rotating_eom_coupled} \begin{align} - m \ddot{d}_u + c \dot{d}_u + ( k - m \Omega^2 ) d_u &= F_u + 2 m \Omega \dot{d}_v \label{eq:eom_coupled_1} \\ - m \ddot{d}_v + c \dot{d}_v + ( k \underbrace{-\,m \Omega^2}_{\text{Centrif.}} ) d_v &= F_v \underbrace{-\,2 m \Omega \dot{d}_u}_{\text{Coriolis}} \label{eq:eom_coupled_2} + m \ddot{d}_u + c \dot{d}_u + ( k - m \Omega^2 ) d_u &= F_u + 2 m \Omega \dot{d}_v \label{eq:rotating_eom_coupled_1} \\ + m \ddot{d}_v + c \dot{d}_v + ( k \underbrace{-\,m \Omega^2}_{\text{Centrif.}} ) d_v &= F_v \underbrace{-\,2 m \Omega \dot{d}_u}_{\text{Coriolis}} \label{eq:rotating_eom_coupled_2} \end{align} \end{subequations} -The uniform rotation of the system induces *two gyroscopic effects* as shown in equation eqref:eq:eom_coupled: -- *Centrifugal forces*: that can been seen as an added *negative stiffness* $- m \Omega^2$ along $\vec{i}_u$ and $\vec{i}_v$ -- *Coriolis Forces*: that adds *coupling* between the two orthogonal directions. - -One can verify that without rotation ($\Omega = 0$) the system becomes equivalent to two uncoupled one degree of freedom mass-spring-damper systems. +The uniform rotation of the system induces two /gyroscopic effects/ as shown in equation eqref:eq:rotating_eom_coupled: +- /Centrifugal forces/: that can been seen as an added /negative stiffness/ $- m \Omega^2$ along $\vec{i}_u$ and $\vec{i}_v$ +- /Coriolis forces/: that adds /coupling/ between the two orthogonal directions. +One can verify that without rotation ($\Omega = 0$) the system becomes equivalent to two /uncoupled/ one degree of freedom mass-spring-damper systems. ** Transfer Functions in the Laplace domain -To study the dynamics of the system, the differential equations of motions eqref:eq:eom_coupled are converted into the Laplace domain and the $2 \times 2$ transfer function matrix $\mathbf{G}_d$ from $\begin{bmatrix}F_u & F_v\end{bmatrix}$ to $\begin{bmatrix}d_u & d_v\end{bmatrix}$ in equation eqref:eq:Gd_mimo_tf is obtained. -Its elements are shown in equation eqref:eq:Gd_indiv_el. +To study the dynamics of the system, the two differential equations of motions eqref:eq:rotating_eom_coupled are converted into the Laplace domain and the $2 \times 2$ transfer function matrix $\mathbf{G}_d$ from $\begin{bmatrix}F_u & F_v\end{bmatrix}$ to $\begin{bmatrix}d_u & d_v\end{bmatrix}$ in equation eqref:eq:rotating_Gd_mimo_tf is obtained. +The four transfer functions in $\mathbf{G}_d$ are shown in equation eqref:eq:rotating_Gd_indiv_el. -#+name: eq:Gd_mimo_tf -\begin{equation} +\begin{equation}\label{eq:rotating_Gd_mimo_tf} \begin{bmatrix} d_u \\ d_v \end{bmatrix} = \mathbf{G}_d \begin{bmatrix} F_u \\ F_v \end{bmatrix} \end{equation} -#+name: eq:Gd_indiv_el -\begin{subequations} +\begin{subequations}\label{eq:rotating_Gd_indiv_el} \begin{align} \mathbf{G}_{d}(1,1) &= \mathbf{G}_{d}(2,2) = \frac{ms^2 + cs + k - m \Omega^2}{\left( m s^2 + cs + k - m \Omega^2 \right)^2 + \left( 2 m \Omega s \right)^2} \\ \mathbf{G}_{d}(1,2) &= -\mathbf{G}_{d}(2,1) = \frac{2 m \Omega s}{\left( m s^2 + cs + k - m \Omega^2 \right)^2 + \left( 2 m \Omega s \right)^2} \end{align} \end{subequations} -To simplify the analysis, the undamped natural frequency $\omega_0$ and the damping ratio $\xi$ are used as in equation eqref:eq:xi_and_omega. -#+name: eq:xi_and_omega -\begin{equation} +To simplify the analysis, the undamped natural frequency $\omega_0$ and the damping ratio $\xi$ defined in eqref:eq:rotating_xi_and_omega are used instead. +The elements of transfer function matrix $\mathbf{G}_d$ are now described by equation eqref:eq:rotating_Gd_w0_xi_k. +\begin{equation} \label{eq:rotating_xi_and_omega} \omega_0 = \sqrt{\frac{k}{m}} \text{ in } \si{\radian\per\second}, \quad \xi = \frac{c}{2 \sqrt{k m}} \end{equation} -The elements of transfer function matrix $\mathbf{G}_d$ are now described by equation eqref:eq:Gd_w0_xi_k. -#+name: eq:Gd_w0_xi_k -\begin{subequations} +\begin{subequations} \label{eq:rotating_Gd_w0_xi_k} \begin{align} \mathbf{G}_{d}(1,1) &= \frac{\frac{1}{k} \left( \frac{s^2}{{\omega_0}^2} + 2 \xi \frac{s}{\omega_0} + 1 - \frac{{\Omega}^2}{{\omega_0}^2} \right)}{\left( \frac{s^2}{{\omega_0}^2} + 2 \xi \frac{s}{\omega_0} + 1 - \frac{{\Omega}^2}{{\omega_0}^2} \right)^2 + \left( 2 \frac{\Omega}{\omega_0} \frac{s}{\omega_0} \right)^2} \\ \mathbf{G}_{d}(1,2) &= \frac{\frac{1}{k} \left( 2 \frac{\Omega}{\omega_0} \frac{s}{\omega_0} \right)}{\left( \frac{s^2}{{\omega_0}^2} + 2 \xi \frac{s}{\omega_0} + 1 - \frac{{\Omega}^2}{{\omega_0}^2} \right)^2 + \left( 2 \frac{\Omega}{\omega_0} \frac{s}{\omega_0} \right)^2} @@ -309,17 +311,15 @@ The elements of transfer function matrix $\mathbf{G}_d$ are now described by equ \end{subequations} ** System Poles: Campbell Diagram -The poles of $\mathbf{G}_d$ are the complex solutions $p$ of equation eqref:eq:poles. +The poles of $\mathbf{G}_d$ are the complex solutions $p$ of equation eqref:eq:rotating_poles (i.e. the roots of its denominator). -#+name: eq:poles -\begin{equation} +\begin{equation}\label{eq:rotating_poles} \left( \frac{p^2}{{\omega_0}^2} + 2 \xi \frac{p}{\omega_0} + 1 - \frac{{\Omega}^2}{{\omega_0}^2} \right)^2 + \left( 2 \frac{\Omega}{\omega_0} \frac{p}{\omega_0} \right)^2 = 0 \end{equation} -Supposing small damping ($\xi \ll 1$), two pairs of complex conjugate poles are obtained as shown in equation eqref:eq:pole_values. +Supposing small damping ($\xi \ll 1$), two pairs of complex conjugate poles $[p_{+}, p_{-}]$ are obtained as shown in equation eqref:eq:rotating_pole_values. -#+name: eq:pole_values -\begin{subequations} +\begin{subequations} \label{eq:rotating_pole_values} \begin{align} p_{+} &= - \xi \omega_0 \left( 1 + \frac{\Omega}{\omega_0} \right) \pm j \omega_0 \left( 1 + \frac{\Omega}{\omega_0} \right) \\ p_{-} &= - \xi \omega_0 \left( 1 - \frac{\Omega}{\omega_0} \right) \pm j \omega_0 \left( 1 - \frac{\Omega}{\omega_0} \right) @@ -334,9 +334,7 @@ cn = 0.05; % Actuator Damping [N/(m/s)] xin = cn/(2*sqrt(kn*mn)); % Modal Damping [-] w0n = sqrt(kn/mn); % Natural Frequency [rad/s] -#+end_src -#+begin_src matlab %% Computation of the poles as a function of the rotating velocity Wzs = linspace(0, 2, 51); % Vector of rotation speeds [rad/s] @@ -354,16 +352,13 @@ clear pole_G; #+end_src The real and complex parts of these two pairs of complex conjugate poles are represented in Figure ref:fig:rotating_campbell_diagram as a function of the rotational speed $\Omega$. -As the rotational speed increases, $p_{+}$ goes to higher frequencies and $p_{-}$ goes to lower frequencies. -The system becomes unstable for $\Omega > \omega_0$ as the real part of $p_{-}$ is positive. +As the rotational speed increases, $p_{+}$ goes to higher frequencies and $p_{-}$ goes to lower frequencies (Figure ref:fig:rotating_campbell_diagram_imag). +The system becomes unstable for $\Omega > \omega_0$ as the real part of $p_{-}$ is positive (Figure ref:fig:rotating_campbell_diagram_real). Physically, the negative stiffness term $-m\Omega^2$ induced by centrifugal forces exceeds the spring stiffness $k$. #+begin_src matlab :results none %% Campbell diagram - Real and Imaginary parts of the poles as a function of the rotating velocity figure; -tiledlayout(1, 2, 'TileSpacing', 'Compact', 'Padding', 'None'); - -ax1 = nexttile(); hold on; plot(Wzs, real(p_ws(1, :)), '-', 'color', colors(1,:), 'DisplayName', '$p_{+}$') plot(Wzs, real(p_ws(4, :)), '-', 'color', colors(1,:), 'HandleVisibility', 'off') @@ -380,8 +375,14 @@ xticklabels({'$0$', '', '$\omega_0$', '', '$2 \omega_0$'}) ylim([-3*xin, 3*xin]); yticks([-3*xin, -2*xin, -xin, 0, xin, 2*xin, 3*xin]) yticklabels({'', '', '$-\xi\omega_0$', '$0$', ''}) +#+end_src -ax2 = nexttile(); +#+begin_src matlab :tangle no :exports results :results file none +exportFig('figs/rotating_campbell_diagram_real.pdf', 'width', 450, 'height', 400); +#+end_src + +#+begin_src matlab :results none +figure hold on; plot(Wzs, imag(p_ws(1, :)), '-', 'color', colors(1,:)) plot(Wzs, imag(p_ws(4, :)), '-', 'color', colors(1,:)) @@ -398,33 +399,45 @@ yticks([-3*w0n, -2*w0n, -w0n, 0, w0n, 2*w0n, 3*w0n]) yticklabels({'', '', '$-\omega_0$', '$0$', '$\omega_0$', '', ''}) #+end_src -#+begin_src matlab :tangle no :exports results :results file replace -exportFig('figs/rotating_campbell_diagram.pdf', 'width', 'full', 'height', 'normal'); +#+begin_src matlab :tangle no :exports results :results file none +exportFig('figs/rotating_campbell_diagram_imag.pdf', 'width', 450, 'height', 400); #+end_src #+name: fig:rotating_campbell_diagram -#+caption: Campbell diagram - Real and Imaginary parts of the poles as a function of the rotating velocity -#+RESULTS: -[[file:figs/rotating_campbell_diagram.png]] +#+caption: Campbell diagram - Real (\subref{fig:rotating_campbell_diagram_real}) and Imaginary (\subref{fig:rotating_campbell_diagram_imag}) parts of the poles as a function of the rotating velocity $\Omega$. +#+attr_latex: :options [htbp] +#+begin_figure +#+attr_latex: :caption \subcaption{\label{fig:rotating_campbell_diagram_real}Real part} +#+attr_latex: :options {0.49\textwidth} +#+begin_subfigure +#+attr_latex: :scale 1 +[[file:figs/rotating_campbell_diagram_real.png]] +#+end_subfigure +#+attr_latex: :caption \subcaption{\label{fig:rotating_campbell_diagram_imag}Imaginary part} +#+attr_latex: :options {0.49\textwidth} +#+begin_subfigure +#+attr_latex: :scale 1 +[[file:figs/rotating_campbell_diagram_imag.png]] +#+end_subfigure +#+end_figure ** Identify Generic Dynamics :noexport: #+begin_src matlab -%% Sample +%% Identify the dynamics for several rotating velocities +% Sample ms = 0.5; % Sample mass [kg] -%% Tuv Stage +% Tuv Stage kn = 1; % Stiffness [N/m] mn = 0.5; % Tuv mass [kg] cn = 0.01*2*sqrt(kn*(mn+ms)); % Damping [N/(m/s)] -%% General Configuration +% General Configuration model_config = struct(); model_config.controller = "open_loop"; % Default: Open-Loop model_config.Tuv_type = "normal"; % Default: 2DoF stage -#+end_src -#+begin_src matlab -%% Input/Output definition +% Input/Output definition clear io; io_i = 1; io(io_i) = linio([mdl, '/controller'], 1, 'openinput'); io_i = io_i + 1; % [Fu, Fv] io(io_i) = linio([mdl, '/fd'], 1, 'openinput'); io_i = io_i + 1; % [Fdu, Fdv] @@ -432,10 +445,8 @@ io(io_i) = linio([mdl, '/xf'], 1, 'openinput'); io_i = io_i + 1; io(io_i) = linio([mdl, '/translation_stage'], 1, 'openoutput'); io_i = io_i + 1; % [Fmu, Fmv] io(io_i) = linio([mdl, '/translation_stage'], 2, 'openoutput'); io_i = io_i + 1; % [Du, Dv] io(io_i) = linio([mdl, '/ext_metrology'], 1, 'openoutput'); io_i = io_i + 1; % [Dx, Dy] -#+end_src -#+begin_src matlab -%% Tested rotating velocities [rad/s] +% Tested rotating velocities [rad/s] Wzs = [0, 0.1, 0.2, 0.7, 1.2]; % Vector of rotation speeds [rad/s] Gs = {zeros(2, 2, length(Wzs))}; % Direct terms @@ -455,29 +466,28 @@ end #+end_src #+begin_src matlab :tangle no -%% Save All Identified Plants +% Save All Identified Plants save('./matlab/mat/rotating_generic_plants.mat', 'Gs', 'Wzs'); #+end_src #+begin_src matlab :eval no -%% Save All Identified Plants +% Save All Identified Plants save('./mat/rotating_generic_plants.mat', 'Gs', 'Wzs'); #+end_src ** System Dynamics: Effect of rotation The system dynamics from actuator forces $[F_u, F_v]$ to the relative motion $[d_u, d_v]$ is identified for several rotating velocities. - -Looking at the transfer function matrix $\mathbf{G}_d$ in equation eqref:eq:Gd_w0_xi_k, one can see that the two diagonal (direct) terms are equal and that the two off-diagonal (coupling) terms are opposite. -The bode plot of these two terms are shown in Figure ref:fig:rotating_direct_coupling_bode_plot for several rotational speeds $\Omega$. +Looking at the transfer function matrix $\mathbf{G}_d$ in equation eqref:eq:rotating_Gd_w0_xi_k, one can see that the two diagonal (direct) terms are equal and that the two off-diagonal (coupling) terms are opposite. +The bode plot of these two terms are shown in Figure ref:fig:rotating_bode_plot for several rotational speeds $\Omega$. These plots confirm the expected behavior: the frequency of the two pairs of complex conjugate poles are further separated as $\Omega$ increases. -For $\Omega > \omega_0$, the low frequency pair of complex conjugate poles $p_{-}$ becomes unstable. +For $\Omega > \omega_0$, the low frequency pair of complex conjugate poles $p_{-}$ becomes unstable (shown be the 180 degrees phase lead instead of phase lag). #+begin_src matlab :results none %% Bode plot of the direct and coupling terms for several rotating velocities freqs = logspace(-1, 1, 1000); figure; -tiledlayout(3, 2, 'TileSpacing', 'Compact', 'Padding', 'None'); +tiledlayout(3, 1, 'TileSpacing', 'Compact', 'Padding', 'None'); % Magnitude ax1 = nexttile([2, 1]); @@ -488,26 +498,11 @@ end hold off; set(gca, 'XScale', 'log'); set(gca, 'YScale', 'log'); set(gca, 'XTickLabel',[]); ylabel('Magnitude [m/N]'); -title('Direct terms: $d_u/F_u$, $d_v/F_v$'); ylim([1e-2, 1e2]); yticks([1e-2,1e-1,1,1e1,1e2]) yticklabels({'$0.01/k$', '$0.1/k$', '$1/k$', '$10/k$', '$100/k$'}) -ax2 = nexttile([2, 1]); -hold on; -for i = 1:length(Wzs) - plot(freqs, abs(squeeze(freqresp(Gs{i}('dv', 'Fu'), freqs, 'rad/s'))), '-', 'color', colors(i,:), ... - 'DisplayName', sprintf('$\\Omega = %.1f \\omega_0$', Wzs(i))) -end -hold off; -set(gca, 'XScale', 'log'); set(gca, 'YScale', 'log'); -set(gca, 'XTickLabel',[]); set(gca, 'YTickLabel',[]); -title('Coupling Terms: $d_u/F_v$, $d_v/F_u$'); -ldg = legend('location', 'northeast', 'FontSize', 8, 'NumColumns', 1); -ldg.ItemTokenSize = [10, 1]; -ylim([1e-2, 1e2]); - -ax3 = nexttile; +ax2 = nexttile; hold on; for i = 1:length(Wzs) plot(freqs, 180/pi*angle(squeeze(freqresp(Gs{i}('du', 'Fu'), freqs, 'rad/s'))), '-', 'color', colors(i,:)) @@ -520,31 +515,72 @@ ylim([-180 180]); xticks([1e-1,1,1e1]) xticklabels({'$0.1 \omega_0$', '$\omega_0$', '$10 \omega_0$'}) -ax4 = nexttile; +linkaxes([ax1,ax2],'x'); +xlim([freqs(1), freqs(end)]); +#+end_src + +#+begin_src matlab :tangle no :exports results :results file replace +exportFig('figs/rotating_bode_plot_direct.pdf', 'width', 'half', 'height', 600); +#+end_src + +#+begin_src matlab :results none +figure; +tiledlayout(3, 1, 'TileSpacing', 'Compact', 'Padding', 'None'); + +ax1 = nexttile([2, 1]); +hold on; +for i = 1:length(Wzs) + plot(freqs, abs(squeeze(freqresp(Gs{i}('dv', 'Fu'), freqs, 'rad/s'))), '-', 'color', colors(i,:), ... + 'DisplayName', sprintf('$\\Omega = %.1f \\omega_0$', Wzs(i))) +end +hold off; +set(gca, 'XScale', 'log'); set(gca, 'YScale', 'log'); +set(gca, 'XTickLabel',[]); ylabel('Magnitude [m/N]'); +ldg = legend('location', 'northeast', 'FontSize', 8, 'NumColumns', 1); +ldg.ItemTokenSize = [10, 1]; +ylim([1e-2, 1e2]); +yticks([1e-2,1e-1,1,1e1,1e2]) +yticklabels({'$0.01/k$', '$0.1/k$', '$1/k$', '$10/k$', '$100/k$'}) + + +ax2 = nexttile; hold on; for i = 1:length(Wzs) plot(freqs, 180/pi*angle(squeeze(freqresp(Gs{i}('dv', 'Fu'), freqs, 'rad/s'))), '-', 'color', colors(i,:)); end hold off; set(gca, 'XScale', 'log'); set(gca, 'YScale', 'lin'); -xlabel('Frequency [rad/s]'); set(gca, 'YTickLabel',[]); +xlabel('Frequency [rad/s]'); ylabel('Phase [deg]'); +yticks(-180:90:180); +ylim([-180 180]); xticks([1e-1,1,1e1]) xticklabels({'$0.1 \omega_0$', '$\omega_0$', '$10 \omega_0$'}) -linkaxes([ax1,ax2,ax3,ax4],'x'); +linkaxes([ax1,ax2],'x'); xlim([freqs(1), freqs(end)]); - -linkaxes([ax1,ax2],'y'); #+end_src #+begin_src matlab :tangle no :exports results :results file replace -exportFig('figs/rotating_direct_coupling_bode_plot.pdf', 'width', 'full', 'height', 'tall'); +exportFig('figs/rotating_bode_plot_coupling.pdf', 'width', 'half', 'height', 600); #+end_src -#+name: fig:rotating_direct_coupling_bode_plot -#+caption: Bode plot of the direct and coupling terms for several rotating velocities -#+RESULTS: -[[file:figs/rotating_direct_coupling_bode_plot.png]] +#+name: fig:rotating_bode_plot +#+caption: Bode plot of the direct (\subref{fig:rotating_bode_plot_direct}) and coupling (\subref{fig:rotating_bode_plot_direct}) terms for several rotating velocities +#+attr_latex: :options [htbp] +#+begin_figure +#+attr_latex: :caption \subcaption{\label{fig:rotating_bode_plot_direct}Direct terms: $d_u/F_u$, $d_v/F_v$} +#+attr_latex: :options {0.49\textwidth} +#+begin_subfigure +#+attr_latex: :width 0.95\linewidth +[[file:figs/rotating_bode_plot_direct.png]] +#+end_subfigure +#+attr_latex: :caption \subcaption{\label{fig:rotating_bode_plot_coupling}Coupling terms: $d_u/F_v$, $d_v/F_u$} +#+attr_latex: :options {0.49\textwidth} +#+begin_subfigure +#+attr_latex: :width 0.95\linewidth +[[file:figs/rotating_bode_plot_coupling.png]] +#+end_subfigure +#+end_figure * Integral Force Feedback :PROPERTIES: @@ -553,15 +589,15 @@ exportFig('figs/rotating_direct_coupling_bode_plot.pdf', 'width', 'full', 'heigh <> ** Introduction :ignore: -In order to further decrease the residual vibrations, active damping can be used for reducing the magnification of the response in the vicinity of the resonances cite:collette11_review_activ_vibrat_isolat_strat. +The goal is now to damp the two suspension modes of the payload using an active damping strategy while the rotating stage performs a constant rotation. +As was explained with the uniaxial model, such active damping strategy is key to both reducing the magnification of the response in the vicinity of the resonances cite:collette11_review_activ_vibrat_isolat_strat and to make the plant easier to control for the high authority controller. -Many active damping techniques have been developed over the years such as Positive Position Feedback (PPF) cite:lin06_distur_atten_precis_hexap_point,fanson90_posit_posit_feedb_contr_large_space_struc, Integral Force Feedback (IFF) cite:preumont91_activ and Direct Velocity Feedback (DVF) cite:karnopp74_vibrat_contr_using_semi_activ_force_gener,serrand00_multic_feedb_contr_isolat_base_excit_vibrat,preumont02_force_feedb_versus_accel_feedb. \par +Many active damping techniques have been developed over the years such as Positive Position Feedback (PPF) cite:lin06_distur_atten_precis_hexap_point,fanson90_posit_posit_feedb_contr_large_space_struc, Integral Force Feedback (IFF) cite:preumont91_activ and Direct Velocity Feedback (DVF) cite:karnopp74_vibrat_contr_using_semi_activ_force_gener,serrand00_multic_feedb_contr_isolat_base_excit_vibrat,preumont02_force_feedb_versus_accel_feedb. +In cite:preumont92_activ_dampin_by_local_force, the IFF control scheme has been proposed, where a force sensor, a force actuator and an integral controller are used to increase the damping of a mechanical system. +When the force sensor is collocated with the actuator, the open-loop transfer function has alternating poles and zeros which facilitates to guarantee the stability of the closed loop system cite:preumont02_force_feedb_versus_accel_feedb. +It was latter shown that this property holds for multiple collated actuator/sensor pairs cite:preumont08_trans_zeros_struc_contr_with. -In cite:preumont92_activ_dampin_by_local_force, the IFF control scheme has been proposed, where a force sensor, a force actuator and an integral controller are used to directly augment the damping of a mechanical system. -When the force sensor is collocated with the actuator, the open-loop transfer function has alternating poles and zeros which facilitate to guarantee the stability of the closed loop system cite:preumont02_force_feedb_versus_accel_feedb. -It was latter shown that this property holds for multiple collated actuator/sensor pairs cite:preumont08_trans_zeros_struc_contr_with. \par - -The main advantages of IFF over other active damping techniques are the guaranteed stability even in presence of flexible dynamics, good performances and robustness properties cite:preumont02_force_feedb_versus_accel_feedb. \par +The main advantages of IFF over other active damping techniques are the guaranteed stability even in presence of flexible dynamics, good performance and robustness properties cite:preumont02_force_feedb_versus_accel_feedb. Several improvements of the classical IFF have been proposed, such as adding a feed-through term to increase the achievable damping cite:teo15_optim_integ_force_feedb_activ_vibrat_contr or adding an high pass filter to recover the loss of compliance at low frequency cite:chesne16_enhan_dampin_flexib_struc_using_force_feedb. Recently, an $\mathcal{H}_\infty$ optimization criterion has been used to derive optimal gains for the IFF controller cite:zhao19_optim_integ_force_feedb_contr. \par @@ -602,227 +638,85 @@ load('rotating_generic_plants.mat', 'Gs', 'Wzs'); ** System and Equations of motion In order to apply Integral Force Feedback, two force sensors are added in series with the actuators (Figure ref:fig:rotating_3dof_model_schematic_iff). -Two identical controllers $K_F$ are then used to feedback each of the sensed force to its associated actuator: -\begin{equation} +Two identical controllers $K_F$ described by eqref:eq:rotating_iff_controller are then used to feedback each of the sensed force to its associated actuator. + +\begin{equation}\label{eq:rotating_iff_controller} K_{F}(s) = g \cdot \frac{1}{s} \end{equation} #+begin_src latex :file rotating_3dof_model_schematic_iff.pdf - \begin{tikzpicture} - % Angle - \def\thetau{25} +\begin{tikzpicture} + % Angle + \def\thetau{25} - % Rotational Stage - \draw[fill=black!60!white] (0, 0) circle (4.3); - \draw[fill=black!40!white] (0, 0) circle (3.8); + % Rotational Stage + \draw[fill=black!60!white] (0, 0) circle (4.3); + \draw[fill=black!40!white] (0, 0) circle (3.8); + % Label + \node[anchor=north west, rotate=\thetau] at (-2.5, 2.5) {\small Rotating Stage}; + + % Rotating Scope + \begin{scope}[rotate=\thetau] + % Rotating Frame + \draw[fill=black!20!white] (-2.6, -2.6) rectangle (2.6, 2.6); % Label - \node[anchor=north west, rotate=\thetau] at (-2.5, 2.5) {\small Rotating Stage}; + \node[anchor=north west, rotate=\thetau] at (-2.6, 2.6) {\small Suspended Platform}; - % Rotating Scope - \begin{scope}[rotate=\thetau] - % Rotating Frame - \draw[fill=black!20!white] (-2.6, -2.6) rectangle (2.6, 2.6); - % Label - \node[anchor=north west, rotate=\thetau] at (-2.6, 2.6) {\small Suspended Platform}; + % Mass + \draw[fill=white] (-1, -1) rectangle (1, 1); + % Label + \node[anchor=south west, rotate=\thetau] at (-1, -1) {\small Payload}; - % Mass - \draw[fill=white] (-1, -1) rectangle (1, 1); - % Label - \node[anchor=south west, rotate=\thetau] at (-1, -1) {\small Payload}; + % Attached Points + \node[] at (-1, 0){$\bullet$}; + \draw[] (-1, 0) -- ++(-0.2, 0) coordinate(au); + \node[] at (0, -1){$\bullet$}; + \draw[] (0, -1) -- ++(0, -0.2) coordinate(av); - % Attached Points - \node[] at (-1, 0){$\bullet$}; - \draw[] (-1, 0) -- ++(-0.2, 0) coordinate(au); - \node[] at (0, -1){$\bullet$}; - \draw[] (0, -1) -- ++(0, -0.2) coordinate(av); + % Force Sensors + \draw[draw=colorblue, fill=colorblue!10!white] ($(au) + (-0.2, -0.5)$) rectangle ($(au) + (0, 0.5)$); + \draw[draw=colorblue] ($(au) + (-0.2, -0.5)$)coordinate(actu) -- ($(au) + (0, 0.5)$); + \draw[draw=colorblue] ($(au) + (-0.2, 0.5)$)coordinate(ku) -- ($(au) + (0, -0.5)$); - % Force Sensors - \draw[draw=colorblue, fill=colorblue!10!white] ($(au) + (-0.2, -0.5)$) rectangle ($(au) + (0, 0.5)$); - \draw[draw=colorblue] ($(au) + (-0.2, -0.5)$)coordinate(actu) -- ($(au) + (0, 0.5)$); - \draw[draw=colorblue] ($(au) + (-0.2, 0.5)$)coordinate(ku) -- ($(au) + (0, -0.5)$); + \draw[draw=colorblue, fill=colorblue!10!white] ($(av) + (-0.5, -0.2)$) rectangle ($(av) + (0.5, 0)$); + \draw[draw=colorblue] ($(av) + ( 0.5, -0.2)$)coordinate(actv) -- ($(av) + (-0.5, 0)$); + \draw[draw=colorblue] ($(av) + (-0.5, -0.2)$)coordinate(kv) -- ($(av) + ( 0.5, 0)$); - \draw[draw=colorblue, fill=colorblue!10!white] ($(av) + (-0.5, -0.2)$) rectangle ($(av) + (0.5, 0)$); - \draw[draw=colorblue] ($(av) + ( 0.5, -0.2)$)coordinate(actv) -- ($(av) + (-0.5, 0)$); - \draw[draw=colorblue] ($(av) + (-0.5, -0.2)$)coordinate(kv) -- ($(av) + ( 0.5, 0)$); + % Spring and Actuator for U + \draw[actuator={0.6}{0.2}{black}] (actu) -- coordinate[midway](actumid) (actu-|-2.6,0); + \draw[spring=0.2] (ku) -- node[above=0.1, rotate=\thetau]{$k$} (ku-|-2.6,0); - % Spring and Actuator for U - \draw[actuator={0.6}{0.2}{black}] (actu) -- coordinate[midway](actumid) (actu-|-2.6,0); - \draw[spring=0.2] (ku) -- node[above=0.1, rotate=\thetau]{$k$} (ku-|-2.6,0); + % \draw[actuator={0.6}{0.2}] (actv) -- node[right, rotate=\thetau]{$F_v$} (actv|-0,-2.6); + \draw[actuator={0.6}{0.2}{black}] (actv) -- coordinate[midway](actvmid) (actv|-0,-2.6); + \draw[spring=0.2] (kv) -- node[left, rotate=\thetau]{$k$} (kv|-0,-2.6); - % \draw[actuator={0.6}{0.2}] (actv) -- node[right, rotate=\thetau]{$F_v$} (actv|-0,-2.6); - \draw[actuator={0.6}{0.2}{black}] (actv) -- coordinate[midway](actvmid) (actv|-0,-2.6); - \draw[spring=0.2] (kv) -- node[left, rotate=\thetau]{$k$} (kv|-0,-2.6); + \node[color=colorblue, block={0.8cm}{0.6cm}, fill=colorblue!10!white, rotate=\thetau] (Ku) at ($(actumid) + (0, -1.2)$) {$K_{F}$}; + \draw[->, draw=colorblue] ($(au) + (-0.1, -0.5)$) |- (Ku.east) node[below right, rotate=\thetau]{$f_{u}$}; + \draw[->, draw=colorblue] (Ku.north) -- ($(actumid) + (0, -0.1)$) node[below left, rotate=\thetau]{$F_u$}; - \node[color=colorblue, block={0.8cm}{0.6cm}, fill=colorblue!10!white, rotate=\thetau] (Ku) at ($(actumid) + (0, -1.2)$) {$K_{F}$}; - \draw[->, draw=colorblue] ($(au) + (-0.1, -0.5)$) |- (Ku.east) node[below right, rotate=\thetau]{$f_{u}$}; - \draw[->, draw=colorblue] (Ku.north) -- ($(actumid) + (0, -0.1)$) node[below left, rotate=\thetau]{$F_u$}; + \node[color=colorblue, block={0.8cm}{0.6cm}, fill=colorblue!10!white, rotate=\thetau] (Kv) at ($(actvmid) + (1.2, 0)$) {$K_{F}$}; + \draw[->, draw=colorblue] ($(av) + (0.5, -0.1)$) -| (Kv.north) node[above right, rotate=\thetau]{$f_{v}$}; + \draw[->, draw=colorblue] (Kv.west) -- ($(actvmid) + (0.1, 0)$) node[below right, rotate=\thetau]{$F_v$}; + \end{scope} - \node[color=colorblue, block={0.8cm}{0.6cm}, fill=colorblue!10!white, rotate=\thetau] (Kv) at ($(actvmid) + (1.2, 0)$) {$K_{F}$}; - \draw[->, draw=colorblue] ($(av) + (0.5, -0.1)$) -| (Kv.north) node[above right, rotate=\thetau]{$f_{v}$}; - \draw[->, draw=colorblue] (Kv.west) -- ($(actvmid) + (0.1, 0)$) node[below right, rotate=\thetau]{$F_v$}; - \end{scope} + % Inertial Frame + \draw[->] (-4, -4) -- ++(2, 0) node[below]{$\vec{i}_x$}; + \draw[->] (-4, -4) -- ++(0, 2) node[left]{$\vec{i}_y$}; + \draw[fill, color=black] (-4, -4) circle (0.06); + \node[draw, circle, inner sep=0pt, minimum size=0.3cm, label=left:$\vec{i}_z$] at (-4, -4){}; - % Inertial Frame - \draw[->] (-4, -4) -- ++(2, 0) node[below]{$\vec{i}_x$}; - \draw[->] (-4, -4) -- ++(0, 2) node[left]{$\vec{i}_y$}; - \draw[fill, color=black] (-4, -4) circle (0.06); - \node[draw, circle, inner sep=0pt, minimum size=0.3cm, label=left:$\vec{i}_z$] at (-4, -4){}; + \node[draw, circle, inner sep=0pt, minimum size=0.3cm] at (0, 0){}; + \draw[->] (0, 0) node[above left, rotate=\thetau]{$\vec{i}_w$} -- ++(\thetau:2) node[above, rotate=\thetau]{$\vec{i}_u$}; + \draw[->] (0, 0) -- ++(\thetau+90:2) node[left, rotate=\thetau]{$\vec{i}_v$}; + \draw[dashed] (0, 0) -- ++(2, 0); + \draw[] (1.5, 0) arc (0:\thetau:1.5) node[midway, right]{$\theta$}; + \node[] at (0,0) {$\bullet$}; - \node[draw, circle, inner sep=0pt, minimum size=0.3cm] at (0, 0){}; - \draw[->] (0, 0) node[above left, rotate=\thetau]{$\vec{i}_w$} -- ++(\thetau:2) node[above, rotate=\thetau]{$\vec{i}_u$}; - \draw[->] (0, 0) -- ++(\thetau+90:2) node[left, rotate=\thetau]{$\vec{i}_v$}; - \draw[dashed] (0, 0) -- ++(2, 0); - \draw[] (1.5, 0) arc (0:\thetau:1.5) node[midway, right]{$\theta$}; - \node[] at (0,0) {$\bullet$}; - - \draw[->] (3.5, 0) arc (0:40:3.5) node[midway, left]{$\Omega$}; - \end{tikzpicture} + \draw[->] (3.5, 0) arc (0:40:3.5) node[midway, left]{$\Omega$}; +\end{tikzpicture} #+end_src -#+name: fig:rotating_3dof_model_schematic_iff -#+caption: System with added Force Sensor in series with the actuators (shown in blue with the associated controllers) -#+RESULTS: -[[file:figs/rotating_3dof_model_schematic_iff.png]] - - -The forces $\begin{bmatrix}f_u & f_v\end{bmatrix}$ measured by the two force sensors represented in Figure ref:fig:rotating_3dof_model_schematic_iff are described by equation eqref:eq:measured_force. -#+name: eq:measured_force -\begin{equation} - \begin{bmatrix} f_{u} \\ f_{v} \end{bmatrix} = - \begin{bmatrix} F_u \\ F_v \end{bmatrix} - (c s + k) - \begin{bmatrix} d_u \\ d_v \end{bmatrix} -\end{equation} - -The transfer function matrix $\mathbf{G}_{f}$ from actuator forces to measured forces in equation eqref:eq:Gf_mimo_tf can be obtained by inserting equation eqref:eq:Gd_w0_xi_k into equation eqref:eq:measured_force. -Its elements are shown in equation eqref:eq:Gf_indiv_el. - -#+name: eq:Gf_mimo_tf -\begin{equation} - \begin{bmatrix} f_{u} \\ f_{v} \end{bmatrix} = \mathbf{G}_{f} \begin{bmatrix} F_u \\ F_v \end{bmatrix} -\end{equation} - -#+name: eq:Gf_indiv_el -\begin{subequations} -\label{eq:Gf} - \begin{align} - \mathbf{G}_{f}(1,1) &= \mathbf{G}_{f}(2,2) = \frac{\left( \frac{s^2}{{\omega_0}^2} - \frac{\Omega^2}{{\omega_0}^2} \right) \left( \frac{s^2}{{\omega_0}^2} + 2 \xi \frac{s}{\omega_0} + 1 - \frac{{\Omega}^2}{{\omega_0}^2} \right) + \left( 2 \frac{\Omega}{\omega_0} \frac{s}{\omega_0} \right)^2}{\left( \frac{s^2}{{\omega_0}^2} + 2 \xi \frac{s}{\omega_0} + 1 - \frac{{\Omega}^2}{{\omega_0}^2} \right)^2 + \left( 2 \frac{\Omega}{\omega_0} \frac{s}{\omega_0} \right)^2} \label{eq:Gf_diag_tf} \\ - \mathbf{G}_{f}(1,2) &= -\mathbf{G}_{f}(2,1) = \frac{- \left( 2 \xi \frac{s}{\omega_0} + 1 \right) \left( 2 \frac{\Omega}{\omega_0} \frac{s}{\omega_0} \right)}{\left( \frac{s^2}{{\omega_0}^2} + 2 \xi \frac{s}{\omega_0} + 1 - \frac{{\Omega}^2}{{\omega_0}^2} \right)^2 + \left( 2 \frac{\Omega}{\omega_0} \frac{s}{\omega_0} \right)^2} \label{eq:Gf_off_diag_tf} - \end{align} -\end{subequations} - -The zeros of the diagonal terms of $\mathbf{G}_f$ in equation eqref:eq:Gf_diag_tf are computed, and neglecting the damping for simplicity, *two complex conjugated zeros* $z_{c}$ are obtained in equation eqref:eq:iff_zero_cc, and *two real zeros* $z_{r}$ in equation eqref:eq:iff_zero_real. -\begin{subequations} - \begin{align} - z_c &= \pm j \omega_0 \sqrt{\frac{1}{2} \sqrt{8 \frac{\Omega^2}{{\omega_0}^2} + 1} + \frac{\Omega^2}{{\omega_0}^2} + \frac{1}{2} } \label{eq:iff_zero_cc} \\ - z_r &= \pm \omega_0 \sqrt{\frac{1}{2} \sqrt{8 \frac{\Omega^2}{{\omega_0}^2} + 1} - \frac{\Omega^2}{{\omega_0}^2} - \frac{1}{2} } \label{eq:iff_zero_real} - \end{align} -\end{subequations} - -It is interesting to see that the frequency of the pair of complex conjugate zeros $z_c$ in equation eqref:eq:iff_zero_cc always lies between the frequency of the two pairs of complex conjugate poles $p_{-}$ and $p_{+}$ in equation eqref:eq:pole_values. -This is what usually gives the unconditional stability of IFF when collocated force sensors are used. - -However, for non-null rotational speeds, the two real zeros $z_r$ in equation eqref:eq:iff_zero_real are inducing a *non-minimum phase behavior*. -This can be seen in the Bode plot of the diagonal terms (Figure ref:fig:rotating_iff_bode_plot_effect_rot) where the low frequency gain is no longer zero while the phase stays at $\SI{180}{\degree}$. - -The low frequency gain of $\mathbf{G}_f$ increases with the rotational speed $\Omega$ as shown in equation eqref:eq:low_freq_gain_iff_plan. -#+name: eq:low_freq_gain_iff_plan -\begin{equation} - \lim_{\omega \to 0} \left| \mathbf{G}_f (j\omega) \right| = \begin{bmatrix} - \frac{\Omega^2}{{\omega_0}^2 - \Omega^2} & 0 \\ - 0 & \frac{\Omega^2}{{\omega_0}^2 - \Omega^2} -\end{bmatrix} -\end{equation} - -This can be explained as follows: a constant actuator force $F_u$ induces a small displacement of the mass $d_u = \frac{F_u}{k - m\Omega^2}$ (Hooke's law taking into account the negative stiffness induced by the rotation). -This small displacement then increases the centrifugal force $m\Omega^2d_u = \frac{\Omega^2}{{\omega_0}^2 - \Omega^2} F_u$ which is then measured by the force sensors. - -** Effect of the rotation speed on the IFF plant dynamics -The transfer functions from actuator forces $[F_u,\ F_v]$ to the measured force sensors $[f_u,\ f_v]$ are identified for several rotating velocities and shown in Figure ref:fig:rotating_iff_bode_plot_effect_rot. - -As was expected from the derived equations of motion: -- when $0 < \Omega < \omega_0$: the low frequency gain is no longer zero and two (non-minimum phase) real zero appears at low frequency. - The low frequency gain increases with $\Omega$. - A pair of (minimum phase) complex conjugate zeros appears between the two complex conjugate poles that are split further apart as $\Omega$ increases. -- when $\omega_0 < \Omega$: the low frequency pole becomes unstable. - -#+begin_src matlab :results none -%% Bode plot of the direct and coupling term for Integral Force Feedback - Effect of rotation -freqs = logspace(-2, 1, 1000); - -figure; -tiledlayout(3, 2, 'TileSpacing', 'Compact', 'Padding', 'None'); - -% Magnitude -ax1 = nexttile([2, 1]); -hold on; -for i = 1:length(Wzs) - plot(freqs, abs(squeeze(freqresp(Gs{i}('fu', 'Fu'), freqs, 'rad/s'))), '-', 'color', colors(i,:)) -end -hold off; -set(gca, 'XScale', 'log'); set(gca, 'YScale', 'log'); -set(gca, 'XTickLabel',[]); ylabel('Magnitude [N/N]'); -title('Direct terms: $f_u/F_u$, $f_v/F_v$'); -ylim([1e-3, 1e2]); - -ax2 = nexttile([2, 1]); -hold on; -for i = 1:length(Wzs) - plot(freqs, abs(squeeze(freqresp(Gs{i}('fv', 'Fu'), freqs, 'rad/s'))), '-', 'color', colors(i,:), ... - 'DisplayName', sprintf('$\\Omega = %.1f \\omega_0$', Wzs(i))) -end -hold off; -set(gca, 'XScale', 'log'); set(gca, 'YScale', 'log'); -set(gca, 'XTickLabel',[]); set(gca, 'YTickLabel',[]); -title('Coupling Terms: $f_u/F_v$, $f_v/F_u$'); -ldg = legend('location', 'northwest', 'FontSize', 8, 'NumColumns', 1); -ldg.ItemTokenSize = [10, 1]; -ylim([1e-3, 1e2]); - -ax3 = nexttile; -hold on; -for i = 1:length(Wzs) - plot(freqs, 180/pi*angle(squeeze(freqresp(Gs{i}('fu', 'Fu'), freqs, 'rad/s'))), '-', 'color', colors(i,:)) -end -hold off; -set(gca, 'XScale', 'log'); set(gca, 'YScale', 'lin'); -xlabel('Frequency [rad/s]'); ylabel('Phase [deg]'); -yticks(-180:90:180); -ylim([-180 180]); -xticks([1e-2,1e-1,1,1e1]) -xticklabels({'$0.01 \omega_0$', '$0.1 \omega_0$', '$\omega_0$', '$10 \omega_0$'}) - -ax4 = nexttile; -hold on; -for i = 1:length(Wzs) - plot(freqs, 180/pi*angle(squeeze(freqresp(Gs{i}('fv', 'Fu'), freqs, 'rad/s'))), '-', 'color', colors(i,:)); -end -hold off; -set(gca, 'XScale', 'log'); set(gca, 'YScale', 'lin'); -xlabel('Frequency [rad/s]'); set(gca, 'YTickLabel',[]); -yticks(-180:90:180); -ylim([-180 180]); -xticks([1e-2,1e-1,1,1e1]) -xticklabels({'$0.01 \omega_0$', '$0.1 \omega_0$', '$\omega_0$', '$10 \omega_0$'}) - -linkaxes([ax1,ax2,ax3,ax4],'x'); -xlim([freqs(1), freqs(end)]); - -linkaxes([ax1,ax2],'y'); -#+end_src - -#+begin_src matlab :tangle no :exports results :results file replace -exportFig('figs/rotating_iff_bode_plot_effect_rot.pdf', 'width', 'full', 'height', 'tall'); -#+end_src - -#+name: fig:rotating_iff_bode_plot_effect_rot -#+caption: Bode plot of the direct and coupling term for Integral Force Feedback - Effect of rotation -#+RESULTS: -[[file:figs/rotating_iff_bode_plot_effect_rot.png]] - -** Decentralized Integral Force Feedback -The control diagram for decentralized Integral Force Feedback is shown in Figure ref:fig:rotating_iff_diagram. - #+begin_src latex :file rotating_iff_diagram.pdf \tikzset{block/.default={0.8cm}{0.8cm}} \tikzset{addb/.append style={scale=0.7}} @@ -857,14 +751,146 @@ The control diagram for decentralized Integral Force Feedback is shown in Figure \end{tikzpicture} #+end_src -#+name: fig:rotating_iff_diagram -#+caption: Control diagram for decentralized Integral Force Feedback -#+RESULTS: +#+name: fig:rotating_iff_pure_int +#+caption: Integral Force Feedback applied to the suspended rotating platform. The damper $c$ in (\subref{fig:rotating_3dof_model_schematic_iff}) is omitted for readability. +#+attr_latex: :options [htbp] +#+begin_figure +#+attr_latex: :caption \subcaption{\label{fig:rotating_3dof_model_schematic_iff}System with added Force Sensor in series with the actuators} +#+attr_latex: :options {0.49\textwidth} +#+begin_subfigure +#+attr_latex: :width 0.95\linewidth +[[file:figs/rotating_3dof_model_schematic_iff.png]] +#+end_subfigure +#+attr_latex: :caption \subcaption{\label{fig:rotating_iff_diagram}Control diagram} +#+attr_latex: :options {0.49\textwidth} +#+begin_subfigure +#+attr_latex: :scale 1 [[file:figs/rotating_iff_diagram.png]] +#+end_subfigure +#+end_figure + +The forces $\begin{bmatrix}f_u & f_v\end{bmatrix}$ measured by the two force sensors represented in Figure ref:fig:rotating_3dof_model_schematic_iff are described by equation eqref:eq:rotating_measured_force. + +\begin{equation}\label{eq:rotating_measured_force} + \begin{bmatrix} f_{u} \\ f_{v} \end{bmatrix} = + \begin{bmatrix} F_u \\ F_v \end{bmatrix} - (c s + k) + \begin{bmatrix} d_u \\ d_v \end{bmatrix} +\end{equation} + +The transfer function matrix $\mathbf{G}_{f}$ from actuator forces to measured forces in equation eqref:eq:rotating_Gf_mimo_tf can be obtained by inserting equation eqref:eq:rotating_Gd_w0_xi_k into equation eqref:eq:rotating_measured_force. +Its elements are shown in equation eqref:eq:rotating_Gf. + +\begin{equation}\label{eq:rotating_Gf_mimo_tf} + \begin{bmatrix} f_{u} \\ f_{v} \end{bmatrix} = \mathbf{G}_{f} \begin{bmatrix} F_u \\ F_v \end{bmatrix} +\end{equation} + +\begin{subequations}\label{eq:rotating_Gf} + \begin{align} + \mathbf{G}_{f}(1,1) &= \mathbf{G}_{f}(2,2) = \frac{\left( \frac{s^2}{{\omega_0}^2} - \frac{\Omega^2}{{\omega_0}^2} \right) \left( \frac{s^2}{{\omega_0}^2} + 2 \xi \frac{s}{\omega_0} + 1 - \frac{{\Omega}^2}{{\omega_0}^2} \right) + \left( 2 \frac{\Omega}{\omega_0} \frac{s}{\omega_0} \right)^2}{\left( \frac{s^2}{{\omega_0}^2} + 2 \xi \frac{s}{\omega_0} + 1 - \frac{{\Omega}^2}{{\omega_0}^2} \right)^2 + \left( 2 \frac{\Omega}{\omega_0} \frac{s}{\omega_0} \right)^2} \label{eq:rotating_Gf_diag_tf} \\ + \mathbf{G}_{f}(1,2) &= -\mathbf{G}_{f}(2,1) = \frac{- \left( 2 \xi \frac{s}{\omega_0} + 1 \right) \left( 2 \frac{\Omega}{\omega_0} \frac{s}{\omega_0} \right)}{\left( \frac{s^2}{{\omega_0}^2} + 2 \xi \frac{s}{\omega_0} + 1 - \frac{{\Omega}^2}{{\omega_0}^2} \right)^2 + \left( 2 \frac{\Omega}{\omega_0} \frac{s}{\omega_0} \right)^2} \label{eq:rotating_Gf_off_diag_tf} + \end{align} +\end{subequations} + +The zeros of the diagonal terms of $\mathbf{G}_f$ in equation eqref:eq:rotating_Gf_diag_tf are computed, and neglecting the damping for simplicity, two complex conjugated zeros $z_{c}$ eqref:eq:rotating_iff_zero_cc, and two real zeros $z_{r}$ eqref:eq:rotating_iff_zero_real are obtained. + +\begin{subequations} + \begin{align} + z_c &= \pm j \omega_0 \sqrt{\frac{1}{2} \sqrt{8 \frac{\Omega^2}{{\omega_0}^2} + 1} + \frac{\Omega^2}{{\omega_0}^2} + \frac{1}{2} } \label{eq:rotating_iff_zero_cc} \\ + z_r &= \pm \omega_0 \sqrt{\frac{1}{2} \sqrt{8 \frac{\Omega^2}{{\omega_0}^2} + 1} - \frac{\Omega^2}{{\omega_0}^2} - \frac{1}{2} } \label{eq:rotating_iff_zero_real} + \end{align} +\end{subequations} + +It is interesting to see that the frequency of the pair of complex conjugate zeros $z_c$ in equation eqref:eq:rotating_iff_zero_cc always lies between the frequency of the two pairs of complex conjugate poles $p_{-}$ and $p_{+}$ in equation eqref:eq:rotating_pole_values. +This is what usually gives the unconditional stability of IFF when collocated force sensors are used. + +However, for non-null rotational speeds, the two real zeros $z_r$ in equation eqref:eq:rotating_iff_zero_real are inducing a /non-minimum phase behavior/. +This can be seen in the Bode plot of the diagonal terms (Figure ref:fig:rotating_iff_bode_plot_effect_rot) where the low frequency gain is no longer zero while the phase stays at $\SI{180}{\degree}$. + +The low frequency gain of $\mathbf{G}_f$ increases with the rotational speed $\Omega$ as shown in equation eqref:eq:rotating_low_freq_gain_iff_plan. +This can be explained as follows: a constant actuator force $F_u$ induces a small displacement of the mass $d_u = \frac{F_u}{k - m\Omega^2}$ (Hooke's law taking into account the negative stiffness induced by the rotation). +This small displacement then increases the centrifugal force $m\Omega^2d_u = \frac{\Omega^2}{{\omega_0}^2 - \Omega^2} F_u$ which is then measured by the force sensors. + +\begin{equation}\label{eq:rotating_low_freq_gain_iff_plan} + \lim_{\omega \to 0} \left| \mathbf{G}_f (j\omega) \right| = \begin{bmatrix} + \frac{\Omega^2}{{\omega_0}^2 - \Omega^2} & 0 \\ + 0 & \frac{\Omega^2}{{\omega_0}^2 - \Omega^2} +\end{bmatrix} +\end{equation} + +** Effect of the rotation speed on the IFF plant dynamics +The transfer functions from actuator forces $[F_u,\ F_v]$ to the measured force sensors $[f_u,\ f_v]$ are identified for several rotating velocities and are shown in Figure ref:fig:rotating_iff_bode_plot_effect_rot. +As was expected from the derived equations of motion: +- when $\Omega < \omega_0$: the low frequency gain is no longer zero and two (non-minimum phase) real zero appears at low frequency. + The low frequency gain increases with $\Omega$. + A pair of (minimum phase) complex conjugate zeros appears between the two complex conjugate poles that are split further apart as $\Omega$ increases. +- when $\omega_0 < \Omega$: the low frequency pole becomes unstable. + +#+begin_src matlab :results none +%% Bode plot of the direct and coupling term for Integral Force Feedback - Effect of rotation +freqs = logspace(-2, 1, 1000); + +Wz_i = [1,3,4]; + +figure; +tiledlayout(3, 1, 'TileSpacing', 'Compact', 'Padding', 'None'); + +% Magnitude +ax1 = nexttile([2, 1]); +hold on; +for i = 1:length(Wz_i) + plot(freqs, abs(squeeze(freqresp(Gs{Wz_i(i)}('fu', 'Fu'), freqs, 'rad/s'))), '-', 'color', colors(i,:), ... + 'DisplayName', sprintf('$\\Omega = %.1f \\omega_0 $', Wzs(Wz_i(i))),'MarkerSize',8); +end +hold off; +set(gca, 'XScale', 'log'); set(gca, 'YScale', 'log'); +set(gca, 'XTickLabel',[]); ylabel('Magnitude [N/N]'); +ylim([1e-3, 1e2]); +leg = legend('location', 'northwest', 'FontSize', 8); + +ax2 = nexttile; +hold on; +for i = 1:length(Wz_i) + plot(freqs, 180/pi*angle(squeeze(freqresp(Gs{Wz_i(i)}('fu', 'Fu'), freqs, 'rad/s'))), '-', 'color', colors(i,:)) +end +hold off; +set(gca, 'XScale', 'log'); set(gca, 'YScale', 'lin'); +xlabel('Frequency [rad/s]'); ylabel('Phase [deg]'); +yticks(-180:90:180); +ylim([0 180]); +xticks([1e-2,1e-1,1,1e1]) +xticklabels({'$0.01 \omega_0$', '$0.1 \omega_0$', '$\omega_0$', '$10 \omega_0$'}) + +linkaxes([ax1,ax2],'x'); +xlim([freqs(1), freqs(end)]); +#+end_src + +#+begin_src matlab :tangle no :exports results :results file none +exportFig('figs/rotating_iff_bode_plot_effect_rot_direct.pdf', 'width', 'half', 'height', 600); +#+end_src + +#+name: fig:rotating_iff_bode_plot_effect_rot +#+caption: Effect of the rotation velocity on the bode plot of the direct terms (\subref{fig:rotating_iff_bode_plot_effect_rot_direct}) and on the IFF root locus (\subref{fig:rotating_root_locus_iff_pure_int}) +#+attr_latex: :options [htbp] +#+begin_figure +#+attr_latex: :caption \subcaption{\label{fig:rotating_iff_bode_plot_effect_rot_direct}Direct terms: $d_u/F_u$, $d_v/F_v$} +#+attr_latex: :options {0.49\textwidth} +#+begin_subfigure +#+attr_latex: :width 0.95\linewidth +[[file:figs/rotating_iff_bode_plot_effect_rot_direct.png]] +#+end_subfigure +#+attr_latex: :caption \subcaption{\label{fig:rotating_root_locus_iff_pure_int}Root Locus} +#+attr_latex: :options {0.49\textwidth} +#+begin_subfigure +#+attr_latex: :scale 1 +[[file:figs/rotating_root_locus_iff_pure_int.png]] +#+end_subfigure +#+end_figure + +** Decentralized Integral Force Feedback +The control diagram for decentralized Integral Force Feedback is shown in Figure ref:fig:rotating_iff_diagram. The decentralized IFF controller $\bm{K}_F$ corresponds to a diagonal controller with integrators: -#+name: eq:Kf_pure_int -\begin{equation} +\begin{equation} \label{eq:rotating_Kf_pure_int} \begin{aligned} \mathbf{K}_{F}(s) &= \begin{bmatrix} K_{F}(s) & 0 \\ 0 & K_{F}(s) \end{bmatrix} \\ K_{F}(s) &= g \cdot \frac{1}{s} @@ -874,13 +900,10 @@ The decentralized IFF controller $\bm{K}_F$ corresponds to a diagonal controller In order to see how the IFF controller affects the poles of the closed loop system, a Root Locus plot (Figure ref:fig:rotating_root_locus_iff_pure_int) is constructed as follows: the poles of the closed-loop system are drawn in the complex plane as the controller gain $g$ varies from $0$ to $\infty$ for the two controllers $K_{F}$ simultaneously. As explained in cite:preumont08_trans_zeros_struc_contr_with,skogestad07_multiv_feedb_contr, the closed-loop poles start at the open-loop poles (shown by $\tikz[baseline=-0.6ex] \node[cross out, draw=black, minimum size=1ex, line width=2pt, inner sep=0pt, outer sep=0pt] at (0, 0){};$) for $g = 0$ and coincide with the transmission zeros (shown by $\tikz[baseline=-0.6ex] \draw[line width=2pt, inner sep=0pt, outer sep=0pt] (0,0) circle[radius=3pt];$) as $g \to \infty$. -#+begin_important Whereas collocated IFF is usually associated with unconditional stability cite:preumont91_activ, this property is lost due to gyroscopic effects as soon as the rotation velocity in non-null. This can be seen in the Root Locus plot (Figure ref:fig:rotating_root_locus_iff_pure_int) where poles corresponding to the controller are bound to the right half plane implying closed-loop system instability. -#+end_important - Physically, this can be explained like so: at low frequency, the loop gain is very large due to the pure integrator in $K_{F}$ and the finite gain of the plant (Figure ref:fig:rotating_iff_bode_plot_effect_rot). -The control system is thus canceling the spring forces which makes the suspended platform no able to hold the payload against centrifugal forces, hence the instability. +The control system is thus canceling the spring forces which makes the suspended platform not capable to hold the payload against centrifugal forces, hence the instability. #+begin_src matlab %% Root Locus for the Decentralized Integral Force Feedback controller @@ -915,15 +938,10 @@ leg = legend('location', 'northwest', 'FontSize', 8); leg.ItemTokenSize(1) = 8; #+end_src -#+begin_src matlab :tangle no :exports results :results file replace -exportFig('figs/rotating_root_locus_iff_pure_int.pdf', 'width', 'wide', 'height', 'tall'); +#+begin_src matlab :tangle no :exports results :results file none +exportFig('figs/rotating_root_locus_iff_pure_int.pdf', 'width', 600, 'height', 600); #+end_src -#+name: fig:rotating_root_locus_iff_pure_int -#+caption: Root Locus for the Decentralized Integral Force Feedback controller. Several rotating speed are shown. -#+RESULTS: -[[file:figs/rotating_root_locus_iff_pure_int.png]] - * Integral Force Feedback with an High Pass Filter :PROPERTIES: :header-args:matlab+: :tangle matlab/rotating_3_iff_hpf.m @@ -931,20 +949,16 @@ exportFig('figs/rotating_root_locus_iff_pure_int.pdf', 'width', 'wide', 'height' <> ** Introduction :ignore: -As was explained in the previous section, the instability of the IFF controller applied on the rotating system comes in part from the high gain at low frequency caused by the pure integrators. +As was explained in the previous section, the instability of the IFF controller applied on the rotating system is due to the high gain of the integrator at low frequency. +In order to limit the low frequency controller gain, an High Pass Filter (HPF) can be added to the controller as shown in equation eqref:eq:rotating_iff_lhf. +This is equivalent to slightly shifting the controller pole to the left along the real axis. +This modification of the IFF controller is typically done to avoid saturation associated with the pure integrator cite:preumont91_activ,marneffe07_activ_passiv_vibrat_isolat_dampin_shunt_trans. +This is however not the reason why this high pass filter is added here. -In order to limit the low frequency controller gain, an High Pass Filter (HPF) can be added to the controller as shown in equation eqref:eq:iff_lhf. - -#+name: eq:iff_lhf -\begin{equation} +\begin{equation}\label{eq:rotating_iff_lhf} \boxed{K_{F}(s) = g \cdot \frac{1}{s} \cdot \underbrace{\frac{s/\omega_i}{1 + s/\omega_i}}_{\text{HPF}} = g \cdot \frac{1}{s + \omega_i}} \end{equation} -This is equivalent as to slightly *shifting the controller pole to the left along the real axis*. - -This modification of the IFF controller is typically done to avoid saturation associated with the pure integrator cite:preumont91_activ,marneffe07_activ_passiv_vibrat_isolat_dampin_shunt_trans. -This is however not why this high pass filter is added here. - ** Matlab Init :noexport:ignore: #+begin_src matlab :tangle no :results silent :noweb yes :var current_dir=(file-name-directory buffer-file-name) <> @@ -977,17 +991,19 @@ load('rotating_generic_plants.mat', 'Gs', 'Wzs'); #+end_src ** Modified Integral Force Feedback Controller -The Integral Force Feedback Controller is modified such that instead of using pure integrators, pseudo integrators (i.e. low pass filters) are used: -\begin{equation} - K_{\text{IFF}}(s) = g\frac{1}{\omega_i + s} \begin{bmatrix} - 1 & 0 \\ - 0 & 1 -\end{bmatrix} -\end{equation} -where $\omega_i$ characterize down to which frequency the signal is integrated. +The Integral Force Feedback Controller is modified such that instead of using pure integrators, pseudo integrators (i.e. low pass filters) are used eqref:eq:rotating_iff_lhf where $\omega_i$ characterize the frequency down to which the signal is integrated. +The loop gains ($K_F(s)$ times the direct dynamics $f_u/F_u$) with and without the added HPF are shown in Figure ref:fig:rotating_iff_modified_loop_gain. +The effect of the added HPF limits the low frequency gain to finite values as expected. -Let's arbitrary choose the following control parameters: -#+begin_src matlab :exports code +The Root Locus plots for the decentralized IFF with and without the HPF are displayed in Figure ref:fig:rotating_iff_root_locus_hpf_large. +With the added HPF, the poles of the closed loop system are shown to be stable up to some value of the gain $g_\text{max}$ given by equation eqref:eq:rotating_gmax_iff_hpf. +It is interesting to note that $g_{\text{max}}$ also corresponds to the controller gain at which the low frequency loop gain reaches one (for instance the gain $g$ can be increased by a factor $5$ in Figure ref:fig:rotating_iff_modified_loop_gain before the system becomes unstable). + +\begin{equation}\label{eq:rotating_gmax_iff_hpf} + \boxed{g_{\text{max}} = \omega_i \left( \frac{{\omega_0}^2}{\Omega^2} - 1 \right)} +\end{equation} + +#+begin_src matlab %% Modified IFF - parameters g = 2; % Controller gain wi = 0.1; % HPF Cut-Off frequency [rad/s] @@ -996,9 +1012,6 @@ Kiff = (g/s)*eye(2); % Pure IFF Kiff_hpf = (g/(wi+s))*eye(2); % IFF with added HPF #+end_src -The loop gains ($K_F(s)$ times the direct dynamics $f_u/F_u$) with and without the added HPF are shown in Figure ref:fig:rotating_iff_modified_loop_gain. -The effect of the added HPF limits the low frequency gain to finite values as expected. - #+begin_src matlab :results none %% Loop gain for the IFF with pure integrator and modified IFF with added high pass filter freqs = logspace(-2, 1, 1000); @@ -1020,228 +1033,98 @@ set(gca, 'XTickLabel',[]); ylabel('Loop Gain'); ax2 = nexttile; hold on; plot(freqs, 180/pi*angle(squeeze(freqresp(Gs{Wz_i}('fu', 'Fu')*Kiff(1,1), freqs, 'rad/s'))), 'DisplayName', 'IFF') -plot(freqs, 180/pi*angle(squeeze(freqresp(Gs{Wz_i}('fu', 'Fu')*Kiff_hpf(1,1), freqs, 'rad/s'))), 'DisplayName', 'IFF + HPF') +plot(freqs, 180/pi*angle(squeeze(freqresp(Gs{Wz_i}('fu', 'Fu')*Kiff_hpf(1,1), freqs, 'rad/s'))), 'DisplayName', 'IFF,HPF') hold off; set(gca, 'XScale', 'log'); set(gca, 'YScale', 'lin'); xlabel('Frequency [rad/s]'); ylabel('Phase [deg]'); yticks(-180:90:180); -ylim([-180 180]); +ylim([-90 180]); xticks([1e-2,1e-1,1,1e1]) -xticklabels({'$0.01 \omega_0$', '$0.1 \omega_0$', '$\omega_0$', '$10 \omega_0$'}) +xticklabels({'', '$0.1 \omega_0$', '$\omega_0$', '$10 \omega_0$'}) leg = legend('location', 'southwest', 'FontSize', 8); -leg.ItemTokenSize(1) = 20; +leg.ItemTokenSize(1) = 15; linkaxes([ax1,ax2],'x'); xlim([freqs(1), freqs(end)]); #+end_src -#+begin_src matlab :tangle no :exports results :results file replace -exportFig('figs/rotating_iff_modified_loop_gain.pdf', 'width', 'wide', 'height', 'tall'); -#+end_src - -#+name: fig:rotating_iff_modified_loop_gain -#+caption: Loop gain for the IFF with pure integrator and modified IFF with added high pass filter ($\Omega = 0.1\omega_0$) -#+RESULTS: +#+name: fig:rotating_iff_modified_loop_gain_root_locus +#+caption: Comparison of the IFF with pure integrator and modified IFF with added high pass filter ($\Omega = 0.1\omega_0$). Loop gain is shown in (\subref{fig:rotating_iff_modified_loop_gain}) with $\omega_i = 0.1 \omega_0$ and $g = 2$. Root Locus is shown in (\subref{fig:rotating_iff_root_locus_hpf_large}) +#+attr_latex: :options [htbp] +#+begin_figure +#+attr_latex: :caption \subcaption{\label{fig:rotating_iff_modified_loop_gain}Loop gain} +#+attr_latex: :options {0.49\textwidth} +#+begin_subfigure +#+attr_latex: :scale 0.8 [[file:figs/rotating_iff_modified_loop_gain.png]] - -The Root Locus plots for the decentralized IFF with and without the HPF are displayed in Figure ref:fig:rotating_iff_root_locus_hpf. -With the added HPF, the poles of the closed loop system are shown to be *stable up to some value of the gain* $g_\text{max}$ given by equation eqref:eq:gmax_iff_hpf. - -#+name: eq:gmax_iff_hpf -\begin{equation} - \boxed{g_{\text{max}} = \omega_i \left( \frac{{\omega_0}^2}{\Omega^2} - 1 \right)} -\end{equation} - -It is interesting to note that $g_{\text{max}}$ also corresponds to the controller gain at which the low frequency loop gain (Figure ref:fig:rotating_iff_modified_loop_gain) reaches one. - -#+begin_src matlab :results none -%% Root Locus for the initial IFF and the modified IFF -gains = logspace(-2, 4, 200); - -figure; -tiledlayout(1, 3, 'TileSpacing', 'Compact', 'Padding', 'None'); - -ax1 = nexttile([1,2]); -hold on; -for g = gains - clpoles = pole(feedback(Gs{Wz_i}({'fu', 'fv'}, {'Fu', 'Fv'}), g*Kiff)); - plot(real(clpoles), imag(clpoles), '.', 'color', colors(1,:), 'HandleVisibility', 'off','MarkerSize',4); -end -for g = gains - clpoles = pole(feedback(Gs{Wz_i}({'fu', 'fv'}, {'Fu', 'Fv'}), g*Kiff_hpf)); - plot(real(clpoles), imag(clpoles), '.', 'color', colors(2,:), 'HandleVisibility', 'off','MarkerSize',4); -end -% Pure Integrator -plot(real(pole(Gs{Wz_i}({'fu', 'fv'}, {'Fu', 'Fv'})*Kiff)), ... - imag(pole(Gs{Wz_i}({'fu', 'fv'}, {'Fu', 'Fv'})*Kiff)), ... - 'x', 'color', colors(1,:), 'DisplayName', 'IFF','MarkerSize',8); -plot(real(tzero(Gs{Wz_i}({'fu', 'fv'}, {'Fu', 'Fv'})*Kiff)), ... - imag(tzero(Gs{Wz_i}({'fu', 'fv'}, {'Fu', 'Fv'})*Kiff)), ... - 'o', 'color', colors(1,:), 'HandleVisibility', 'off','MarkerSize',8); -% Modified IFF -plot(real(pole(Gs{Wz_i}({'fu', 'fv'}, {'Fu', 'Fv'})*Kiff_hpf)), ... - imag(pole(Gs{Wz_i}({'fu', 'fv'}, {'Fu', 'Fv'})*Kiff_hpf)), ... - 'x', 'color', colors(2,:), 'DisplayName', 'IFF + HPF','MarkerSize',8); -plot(real(tzero(Gs{Wz_i}({'fu', 'fv'}, {'Fu', 'Fv'})*Kiff_hpf)), ... - imag(tzero(Gs{Wz_i}({'fu', 'fv'}, {'Fu', 'Fv'})*Kiff_hpf)), ... - 'o', 'color', colors(2,:), 'HandleVisibility', 'off','MarkerSize',8); -hold off; -axis square; -leg = legend('location', 'northwest', 'FontSize', 8); -leg.ItemTokenSize(1) = 8; -xlabel('Real Part'); ylabel('Imaginary Part'); - -xlim([-2.25, 0.25]); ylim([-1.25, 1.25]); -xticks([-2, -1, 0]) -xticklabels({'$-2\omega_0$', '$-\omega_0$', '$0$'}) -yticks([-1, 0, 1]) -yticklabels({'$-\omega_0$', '$0$', '$\omega_0$'}) - -ax2 = nexttile(); -hold on; -for g = gains - clpoles = pole(feedback(Gs{Wz_i}({'fu', 'fv'}, {'Fu', 'Fv'}), g*Kiff)); - plot(real(clpoles), imag(clpoles), '.', 'color', colors(1,:),'MarkerSize',4); -end -for g = gains - clpoles = pole(feedback(Gs{Wz_i}({'fu', 'fv'}, {'Fu', 'Fv'}), g*Kiff_hpf)); - plot(real(clpoles), imag(clpoles), '.', 'color', colors(2,:),'MarkerSize',4); -end -% Pure Integrator -plot(real(pole(Gs{Wz_i}({'fu', 'fv'}, {'Fu', 'Fv'})*Kiff)), ... - imag(pole(Gs{Wz_i}({'fu', 'fv'}, {'Fu', 'Fv'})*Kiff)), ... - 'x', 'color', colors(1,:),'MarkerSize',8); -plot(real(tzero(Gs{Wz_i}({'fu', 'fv'}, {'Fu', 'Fv'})*Kiff)), ... - imag(tzero(Gs{Wz_i}({'fu', 'fv'}, {'Fu', 'Fv'})*Kiff)), ... - 'o', 'color', colors(1,:),'MarkerSize',8); -% Modified IFF -plot(real(pole(Gs{Wz_i}({'fu', 'fv'}, {'Fu', 'Fv'})*Kiff_hpf)), ... - imag(pole(Gs{Wz_i}({'fu', 'fv'}, {'Fu', 'Fv'})*Kiff_hpf)), ... - 'x', 'color', colors(2,:),'MarkerSize',8); -plot(real(tzero(Gs{Wz_i}({'fu', 'fv'}, {'Fu', 'Fv'})*Kiff_hpf)), ... - imag(tzero(Gs{Wz_i}({'fu', 'fv'}, {'Fu', 'Fv'})*Kiff_hpf)), ... - 'o', 'color', colors(2,:),'MarkerSize',8); -hold off; -axis square; -xlabel('Real Part'); ylabel('Imaginary Part'); -title('Zoom near the origin'); - -xlim([-0.15, 0.1]); ylim([-0.15, 0.15]); -xticks([-0.1, 0, 0.1]) -xticklabels({'$-0.1\omega_0$', '$0$', '$0.1\omega_0$'}) -yticks([-0.1, 0, 0.1]) -yticklabels({'$-0.1\omega_0$', '$0$', '$0.1\omega_0$'}) -#+end_src - -#+begin_src matlab :tangle no :exports results :results file replace -exportFig('figs/rotating_iff_root_locus_hpf.pdf', 'width', 'full', 'height', 700); -#+end_src - -#+name: fig:rotating_iff_root_locus_hpf -#+caption: Root Locus for the initial IFF and the modified IFF -#+RESULTS: -[[file:figs/rotating_iff_root_locus_hpf.png]] +#+end_subfigure +#+attr_latex: :caption \subcaption{\label{fig:rotating_iff_root_locus_hpf_large}Root Locus} +#+attr_latex: :options {0.49\textwidth} +#+begin_subfigure +#+attr_latex: :scale 0.8 +[[file:figs/rotating_iff_root_locus_hpf_large.png]] +#+end_subfigure +#+end_figure ** Optimal IFF with HPF parameters $\omega_i$ and $g$ -Two parameters can be tuned for the modified controller in equation eqref:eq:iff_lhf: the gain $g$ and the pole's location $\omega_i$. +Two parameters can be tuned for the modified controller in equation eqref:eq:rotating_iff_lhf: the gain $g$ and the pole's location $\omega_i$. The optimal values of $\omega_i$ and $g$ are here considered as the values for which the damping of all the closed-loop poles are simultaneously maximized. In order to visualize how $\omega_i$ does affect the attainable damping, the Root Locus plots for several $\omega_i$ are displayed in Figure ref:fig:rotating_root_locus_iff_modified_effect_wi. -It is shown that even though small $\omega_i$ seem to allow more damping to be added to the suspension modes, the control gain $g$ may be limited to small values due to equation eqref:eq:gmax_iff_hpf. - -#+begin_src matlab -%% High Pass Filter Cut-Off Frequency -wis = [0.01, 0.1, 0.5, 1]*Wzs(2); % [rad/s] -#+end_src - -#+begin_src matlab :results none -%% Root Locus for the initial IFF and the modified IFF -gains = logspace(-2, 4, 200); - -figure; -tiledlayout(1, 2, 'TileSpacing', 'Compact', 'Padding', 'None'); - -ax1 = nexttile(); -hold on; -for wi_i = 1:length(wis) - wi = wis(wi_i); - Kiff = (1/(wi+s))*eye(2); - L(wi_i) = plot(nan, nan, '.', 'color', colors(wi_i,:), 'DisplayName', sprintf('$\\omega_i = %.2f \\omega_0$', wi./Wzs(2))); - for g = gains - clpoles = pole(feedback(Gs{2}({'fu', 'fv'}, {'Fu', 'Fv'}), g*Kiff)); - plot(real(clpoles), imag(clpoles), '.', 'color', colors(wi_i,:),'MarkerSize',4); - end - plot(real(pole(Gs{2}({'fu', 'fv'}, {'Fu', 'Fv'})*Kiff)), ... - imag(pole(Gs{2}({'fu', 'fv'}, {'Fu', 'Fv'})*Kiff)), ... - 'x', 'color', colors(wi_i,:),'MarkerSize',8); - plot(real(tzero(Gs{2}({'fu', 'fv'}, {'Fu', 'Fv'})*Kiff)), ... - imag(tzero(Gs{2}({'fu', 'fv'}, {'Fu', 'Fv'})*Kiff)), ... - 'o', 'color', colors(wi_i,:),'MarkerSize',8); -end -hold off; -axis square; -xlim([-2.3, 0.1]); ylim([-1.2, 1.2]); -xticks([-2:1:2]); yticks([-2:1:2]); -leg = legend(L, 'location', 'northwest', 'FontSize', 8); -leg.ItemTokenSize(1) = 8; -xlabel('Real Part'); ylabel('Imaginary Part'); -clear L - -xlim([-2.25, 0.25]); ylim([-1.25, 1.25]); -xticks([-2, -1, 0]) -xticklabels({'$-2\omega_0$', '$-\omega_0$', '$0$'}) -yticks([-1, 0, 1]) -yticklabels({'$-\omega_0$', '$0$', '$\omega_0$'}) - -ax2 = nexttile(); -hold on; -for wi_i = 1:length(wis) - wi = wis(wi_i); - Kiff = (1/(wi+s))*eye(2); - L(wi_i) = plot(nan, nan, '.', 'color', colors(wi_i,:)); - for g = gains - clpoles = pole(feedback(Gs{2}({'fu', 'fv'}, {'Fu', 'Fv'}), g*Kiff)); - plot(real(clpoles), imag(clpoles), '.', 'color', colors(wi_i,:),'MarkerSize',4); - end - plot(real(pole(Gs{2}({'fu', 'fv'}, {'Fu', 'Fv'})*Kiff)), ... - imag(pole(Gs{2}({'fu', 'fv'}, {'Fu', 'Fv'})*Kiff)), ... - 'x', 'color', colors(wi_i,:),'MarkerSize',8); - plot(real(tzero(Gs{2}({'fu', 'fv'}, {'Fu', 'Fv'})*Kiff)), ... - imag(tzero(Gs{2}({'fu', 'fv'}, {'Fu', 'Fv'})*Kiff)), ... - 'o', 'color', colors(wi_i,:),'MarkerSize',8); -end -hold off; -axis square; -xlim([-2.3, 0.1]); ylim([-1.2, 1.2]); -xticks([-2:1:2]); yticks([-2:1:2]); -xlabel('Real Part'); ylabel('Imaginary Part'); -title('Zoom near the origin'); -clear L - -xlim([-0.15, 0.1]); ylim([-0.15, 0.15]); -xticks([-0.1, 0, 0.1]) -xticklabels({'$-0.1\omega_0$', '$0$', '$0.1\omega_0$'}) -yticks([-0.1, 0, 0.1]) -yticklabels({'$-0.1\omega_0$', '$0$', '$0.1\omega_0$'}) -#+end_src - -#+begin_src matlab :tangle no :exports results :results file replace -exportFig('figs/rotating_root_locus_iff_modified_effect_wi.pdf', 'width', 'full', 'height', 'tall'); -#+end_src - -#+name: fig:rotating_root_locus_iff_modified_effect_wi -#+caption: Root Locus for several high pass filter cut-off frequency -#+RESULTS: -[[file:figs/rotating_root_locus_iff_modified_effect_wi.png]] - +It is shown that even though small $\omega_i$ seem to allow more damping to be added to the suspension modes (see Root locus in Figure ref:fig:rotating_root_locus_iff_modified_effect_wi_large), the control gain $g$ may be limited to small values due to equation eqref:eq:rotating_gmax_iff_hpf. In order to study this trade off, the attainable closed-loop damping ratio $\xi_{\text{cl}}$ is computed as a function of $\omega_i/\omega_0$. The gain $g_{\text{opt}}$ at which this maximum damping is obtained is also displayed and compared with the gain $g_{\text{max}}$ at which the system becomes unstable (Figure ref:fig:rotating_iff_hpf_optimal_gain). +# TODO - Maybe comment on these "regions" + Three regions can be observed: - $\omega_i/\omega_0 < 0.02$: the added damping is limited by the maximum allowed control gain $g_{\text{max}}$ - $0.02 < \omega_i/\omega_0 < 0.2$: the attainable damping ratio is maximized and is reached for $g \approx 2$ - $0.2 < \omega_i/\omega_0$: the added damping decreases as $\omega_i/\omega_0$ increases. +#+begin_src matlab +%% High Pass Filter Cut-Off Frequency +wis = [0.01, 0.05, 0.1]; % [rad/s] +#+end_src + +#+begin_src matlab :results none +%% Root Locus for the initial IFF and the modified IFF +gains = logspace(-2, 4, 200); + +figure; +hold on; +for wi_i = 1:length(wis) + wi = wis(wi_i); + Kiff = (1/(wi+s))*eye(2); + L(wi_i) = plot(nan, nan, '.', 'color', colors(wi_i,:), 'DisplayName', sprintf('$\\omega_i = %.2f \\omega_0$', wi)); + for g = gains + clpoles = pole(feedback(Gs{2}({'fu', 'fv'}, {'Fu', 'Fv'}), g*Kiff)); + plot(real(clpoles), imag(clpoles), '.', 'color', colors(wi_i,:),'MarkerSize',4); + end + plot(real(pole(Gs{2}({'fu', 'fv'}, {'Fu', 'Fv'})*Kiff)), ... + imag(pole(Gs{2}({'fu', 'fv'}, {'Fu', 'Fv'})*Kiff)), ... + 'x', 'color', colors(wi_i,:),'MarkerSize',8); + plot(real(tzero(Gs{2}({'fu', 'fv'}, {'Fu', 'Fv'})*Kiff)), ... + imag(tzero(Gs{2}({'fu', 'fv'}, {'Fu', 'Fv'})*Kiff)), ... + 'o', 'color', colors(wi_i,:),'MarkerSize',8); +end +hold off; +axis equal; +xlim([-2.3, 0.1]); ylim([-1.2, 1.2]); +xticks([-2:1:2]); yticks([-2:1:2]); +leg = legend(L, 'location', 'southwest', 'FontSize', 8); +leg.ItemTokenSize(1) = 8; +xlabel('Real Part'); ylabel('Imaginary Part'); +clear L + +xlim([-1.25, 0.25]); ylim([-1.25, 1.25]); +xticks([-1, 0]) +xticklabels({'$-\omega_0$', '$0$'}) +yticks([-1, 0, 1]) +yticklabels({'$-\omega_0$', '$0$', '$\omega_0$'}) +ytickangle(90) +#+end_src + #+begin_src matlab %% Compute the optimal control gain wis = logspace(-2, 1, 100); % [rad/s] @@ -1274,6 +1157,7 @@ yyaxis right hold on; plot(wis, opt_gain, '-', 'DisplayName', '$g_{opt}$'); plot(wis, wis*((1/Wzs(2))^2 - 1), '--', 'DisplayName', '$g_{max}$'); +hold off; set(gca, 'YScale', 'lin'); ylim([0,10]); ylabel('Controller gain $g$'); @@ -1283,90 +1167,32 @@ set(gca, 'XScale', 'log'); legend('location', 'northeast', 'FontSize', 8); #+end_src -#+begin_src matlab :tangle no :exports results :results file replace -exportFig('figs/rotating_iff_hpf_optimal_gain.pdf', 'width', 'wide', 'height', 'normal'); +#+begin_src matlab :tangle no :exports results :results file none +exportFig('figs/rotating_iff_hpf_optimal_gain.pdf', 'width', 'half', 'height', 450); #+end_src -#+name: fig:rotating_iff_hpf_optimal_gain -#+caption: Attainable damping ratio $\xi_\text{cl}$ as a function of $\omega_i/\omega_0$. Corresponding control gain $g_\text{opt}$ and $g_\text{max}$ are also shown -#+RESULTS: +#+name: fig:rotating_iff_modified_effect_wi +#+caption: Root Locus for several high pass filter cut-off frequency (\subref{fig:rotating_root_locus_iff_modified_effect_wi_large}). +#+attr_latex: :options [htbp] +#+begin_figure +#+attr_latex: :caption \subcaption{\label{fig:rotating_root_locus_iff_modified_effect_wi}Root Locus} +#+attr_latex: :options {0.49\textwidth} +#+begin_subfigure +#+attr_latex: :width 0.95\linewidth +[[file:figs/rotating_root_locus_iff_modified_effect_wi.png]] +#+end_subfigure +#+attr_latex: :caption \subcaption{\label{fig:rotating_iff_hpf_optimal_gain}Attainable damping ratio $\xi_\text{cl}$ as a function of $\omega_i/\omega_0$. Corresponding control gain $g_\text{opt}$ and $g_\text{max}$ are also shown} +#+attr_latex: :options {0.49\textwidth} +#+begin_subfigure +#+attr_latex: :width 0.95\linewidth [[file:figs/rotating_iff_hpf_optimal_gain.png]] +#+end_subfigure +#+end_figure ** Obtained Damped Plant - -Let's choose $\omega_i = 0.1 \cdot \omega_0$ and compute the damped plant. -The undamped and damped plants are compared in Figure ref:fig:rotating_iff_hpf_damped_plant in blue and red respectively. -A well damped plant is indeed obtained. - -However, the magnitude of the coupling term ($d_v/F_u$) is larger then IFF is applied. - -#+begin_src matlab -%% Compute damped plant -wi = 0.1; % [rad/s] -g = 2; % Gain -Kiff_hpf = (g/(wi+s))*eye(2); % IFF with added HPF -Kiff_hpf.InputName = {'fu', 'fv'}; -Kiff_hpf.OutputName = {'Fu', 'Fv'}; - -G_iff_hpf = feedback(Gs{2}, Kiff_hpf, 'name'); - -isstable(G_iff_hpf) % Verify stability -#+end_src - -#+begin_src matlab :results none -%% Damped plant with IFF and added HPF - Transfer function from $F_u$ to $d_u$ -freqs = logspace(-2, 1, 1000); - -figure; -tiledlayout(3, 1, 'TileSpacing', 'Compact', 'Padding', 'None'); - -% Magnitude -ax1 = nexttile([2, 1]); -hold on; -plot(freqs, abs(squeeze(freqresp(Gs{2}('Du', 'Fu'), freqs, 'rad/s'))), '-', 'color', [zeros(1,3)], ... - 'DisplayName', '$d_u/F_u$, OL') -plot(freqs, abs(squeeze(freqresp(G_iff_hpf('Du', 'Fu'), freqs, 'rad/s'))), '-', 'color', [colors(1,:)], ... - 'DisplayName', '$d_u/F_u$, IFF') -plot(freqs, abs(squeeze(freqresp(Gs{2}('Dv', 'Fu'), freqs, 'rad/s'))), '-', 'color', [zeros(1,3), 0.5], ... - 'DisplayName', '$d_v/F_u$, OL') -plot(freqs, abs(squeeze(freqresp(G_iff_hpf('Dv', 'Fu'), freqs, 'rad/s'))), '-', 'color', [colors(1,:), 0.5], ... - 'DisplayName', '$d_v/F_u$, IFF') -hold off; -set(gca, 'XScale', 'log'); set(gca, 'YScale', 'log'); -set(gca, 'XTickLabel',[]); ylabel('Magnitude [m/N]'); -leg = legend('location', 'southwest', 'FontSize', 8, 'NumColumns', 2); -leg.ItemTokenSize(1) = 20; - -ax2 = nexttile; -hold on; -plot(freqs, 180/pi*angle(squeeze(freqresp(Gs{2}('Du', 'Fu'), freqs, 'rad/s'))), '-', 'color', zeros(1,3)) -plot(freqs, 180/pi*angle(squeeze(freqresp(G_iff_hpf('Du', 'Fu'), freqs, 'rad/s'))), '-', 'color', colors(1,:)) -hold off; -set(gca, 'XScale', 'log'); set(gca, 'YScale', 'lin'); -xlabel('Frequency [rad/s]'); ylabel('Phase [deg]'); -yticks(-180:90:180); -ylim([-180 180]); -xticks([1e-2,1e-1,1,1e1]) -xticklabels({'$0.01 \omega_0$', '$0.1 \omega_0$', '$\omega_0$', '$10 \omega_0$'}) - -linkaxes([ax1,ax2],'x'); -xlim([freqs(1), freqs(end)]); -#+end_src - -#+begin_src matlab :tangle no :exports results :results file replace -exportFig('figs/rotating_iff_hpf_damped_plant.pdf', 'width', 'wide', 'height', 'tall'); -#+end_src - -#+name: fig:rotating_iff_hpf_damped_plant -#+caption: Damped plant with IFF and added HPF - Transfer function from $F_u$ to $d_u$, $\omega_i = 0.1 \cdot \omega_0$, $\Omega = 0.1 \cdot \omega_0$ -#+RESULTS: -[[file:figs/rotating_iff_hpf_damped_plant.png]] - -In order to study how $\omega_i$ affects the coupling of the damped plant, the closed-loop plant is identified for several $\omega_i$. -The direct and coupling terms of the plants are shown in Figure ref:fig:rotating_iff_hpf_damped_plant_effect_wi_coupling (left) and the ratio between the two (i.e. the coupling ratio) is shown in Figure ref:fig:rotating_iff_hpf_damped_plant_effect_wi_coupling (right). - -The coupling ratio is decreasing as $\omega_i$ increases. -There is therefore a *trade-off between achievable damping and coupling ratio* for the choice of $\omega_i$. +In order to study how the parameter $\omega_i$ affects the damped plant, the obtained damped plants for several $\omega_i$ are compared in Figure ref:fig:rotating_iff_hpf_damped_plant_effect_wi_plant. +It can be seen that the low frequency coupling increases as $\omega_i$ increases. +There is therefore a trade-off between achievable damping and added coupling when tuning $\omega_i$. The same trade-off can be seen between achievable damping and loss of compliance at low frequency (see Figure ref:fig:rotating_iff_hpf_effect_wi_compliance). #+begin_src matlab @@ -1390,7 +1216,7 @@ end freqs = logspace(-2, 1, 1000); figure; -tiledlayout(3, 2, 'TileSpacing', 'Compact', 'Padding', 'None'); +tiledlayout(3, 1, 'TileSpacing', 'Compact', 'Padding', 'None'); % Magnitude ax1 = nexttile([2, 1]); @@ -1407,20 +1233,6 @@ set(gca, 'XTickLabel',[]); ylabel('Magnitude [m/N]'); leg = legend('location', 'southwest', 'FontSize', 8, 'NumColumns', 1); leg.ItemTokenSize(1) = 20; -ax3 = nexttile([3,1]); -hold on; -for i = 1:length(wis) - plot(freqs, abs(squeeze(freqresp(Gs_iff_hpf{i}('Dv', 'Fu')/Gs_iff_hpf{i}('Du', 'Fu'), freqs, 'rad/s'))), '-', 'color', [colors(i,:)], ... - 'DisplayName', sprintf('$\\omega_i = %.2f \\omega_0$', wis(i))) -end -hold off; -set(gca, 'XScale', 'log'); set(gca, 'YScale', 'log'); -xlabel('Frequency [rad/s]'); ylabel('Coupling Ratio'); -leg = legend('location', 'northeast', 'FontSize', 8, 'NumColumns', 1); -leg.ItemTokenSize(1) = 20; -xticks([1e-2,1e-1,1,1e1]) -xticklabels({'$0.01 \omega_0$', '$0.1 \omega_0$', '$\omega_0$', '$10 \omega_0$'}) - ax2 = nexttile; hold on; for i = 1:length(wis) @@ -1430,7 +1242,7 @@ hold off; set(gca, 'XScale', 'log'); set(gca, 'YScale', 'lin'); xlabel('Frequency [rad/s]'); ylabel('Phase [deg]'); yticks(-180:90:180); -ylim([-180 180]); +ylim([-180 0]); xticks([1e-2,1e-1,1,1e1]) xticklabels({'$0.01 \omega_0$', '$0.1 \omega_0$', '$\omega_0$', '$10 \omega_0$'}) @@ -1438,15 +1250,10 @@ linkaxes([ax1,ax2],'x'); xlim([freqs(1), freqs(end)]); #+end_src -#+begin_src matlab :tangle no :exports results :results file replace -exportFig('figs/rotating_iff_hpf_damped_plant_effect_wi_coupling.pdf', 'width', 'full', 'height', 'tall'); +#+begin_src matlab :tangle no :exports results :results file none +exportFig('figs/rotating_iff_hpf_damped_plant_effect_wi_plant.pdf', 'width', 'half', 'height', 600); #+end_src -#+name: fig:rotating_iff_hpf_damped_plant_effect_wi_coupling -#+caption: Effect of $\omega_i$ on the damped plant coupling -#+RESULTS: -[[file:figs/rotating_iff_hpf_damped_plant_effect_wi_coupling.png]] - #+begin_src matlab :exports none :results none %% Effect of $\omega_i$ on the obtained compliance freqs = logspace(-2, 1, 1000); @@ -1473,13 +1280,26 @@ xticklabels({'$0.01 \omega_0$', '$0.1 \omega_0$', '$\omega_0$', '$10 \omega_0$'} #+end_src #+begin_src matlab :tangle no :exports results :results file replace -exportFig('figs/rotating_iff_hpf_effect_wi_compliance.pdf', 'width', 'wide', 'height', 'normal'); +exportFig('figs/rotating_iff_hpf_effect_wi_compliance.pdf', 'width', 'half', 'height', 600); #+end_src -#+name: fig:rotating_iff_hpf_effect_wi_compliance -#+caption: Effect of $\omega_i$ on the obtained compliance -#+RESULTS: +#+name: fig:rotating_iff_hpf_damped_plant_effect_wi +#+caption: Effect of $\omega_i$ on the damped plant coupling +#+attr_latex: :options [htbp] +#+begin_figure +#+attr_latex: :caption \subcaption{\label{fig:rotating_iff_hpf_damped_plant_effect_wi_plant}Obtained plants} +#+attr_latex: :options {0.49\textwidth} +#+begin_subfigure +#+attr_latex: :width 0.95\linewidth +[[file:figs/rotating_iff_hpf_damped_plant_effect_wi_plant.png]] +#+end_subfigure +#+attr_latex: :caption \subcaption{\label{fig:rotating_iff_hpf_effect_wi_compliance}Effect of $\omega_i$ on the compliance} +#+attr_latex: :options {0.49\textwidth} +#+begin_subfigure +#+attr_latex: :width 0.95\linewidth [[file:figs/rotating_iff_hpf_effect_wi_compliance.png]] +#+end_subfigure +#+end_figure * IFF with a stiffness in parallel with the force sensor :PROPERTIES: @@ -1489,7 +1309,6 @@ exportFig('figs/rotating_iff_hpf_effect_wi_compliance.pdf', 'width', 'wide', 'he ** Introduction :ignore: In this section it is proposed to add springs in parallel with the force sensors to counteract the negative stiffness induced by the gyroscopic effects. - Such springs are schematically shown in Figure ref:fig:rotating_3dof_model_schematic_iff_parallel_springs where $k_a$ is the stiffness of the actuator and $k_p$ the added stiffness in parallel with the actuator and force sensor. #+begin_src latex :file rotating_3dof_model_schematic_iff_parallel_springs.pdf @@ -1560,6 +1379,7 @@ Such springs are schematically shown in Figure ref:fig:rotating_3dof_model_schem #+name: fig:rotating_3dof_model_schematic_iff_parallel_springs #+caption: Studied system with additional springs in parallel with the actuators and force sensors (shown in red) +#+attr_latex: :scale 0.8 #+RESULTS: [[file:figs/rotating_3dof_model_schematic_iff_parallel_springs.png]] @@ -1595,52 +1415,44 @@ load('rotating_generic_plants.mat', 'Gs', 'Wzs'); #+end_src ** Equations -The forces measured by the two force sensors represented in Figure ref:fig:rotating_3dof_model_schematic_iff_parallel_springs are described by Eq. eqref:eq:measured_force_kp. +The forces measured by the two force sensors represented in Figure ref:fig:rotating_3dof_model_schematic_iff_parallel_springs are described by eqref:eq:rotating_measured_force_kp. -#+name: eq:measured_force_kp -\begin{equation} +\begin{equation}\label{eq:rotating_measured_force_kp} \begin{bmatrix} f_{u} \\ f_{v} \end{bmatrix} = \begin{bmatrix} F_u \\ F_v \end{bmatrix} - (c s + k_a) \begin{bmatrix} d_u \\ d_v \end{bmatrix} \end{equation} -In order to keep the overall stiffness $k = k_a + k_p$ constant, thus not modifying the open-loop poles as $k_p$ is changed, a scalar parameter $\alpha$ ($0 \le \alpha < 1$) is defined to describe the fraction of the total stiffness in parallel with the actuator and force sensor as in Eq. eqref:eq:kp_alpha. +In order to keep the overall stiffness $k = k_a + k_p$ constant, thus not modifying the open-loop poles as $k_p$ is changed, a scalar parameter $\alpha$ ($0 \le \alpha < 1$) is defined to describe the fraction of the total stiffness in parallel with the actuator and force sensor as in eqref:eq:rotating_kp_alpha. -#+name: eq:kp_alpha -\begin{equation} +\begin{equation}\label{eq:rotating_kp_alpha} k_p = \alpha k, \quad k_a = (1 - \alpha) k \end{equation} -After the equations of motion derived and transformed in the Laplace domain, the transfer function matrix $\mathbf{G}_k$ in Eq. eqref:eq:Gk_mimo_tf is computed. -Its elements are shown in Eq. eqref:eq:Gk_diag and eqref:eq:Gk_off_diag. +After the equations of motion derived and transformed in the Laplace domain, the transfer function matrix $\mathbf{G}_k$ in Eq. eqref:eq:rotating_Gk_mimo_tf is computed. +Its elements are shown in Eq. eqref:eq:rotating_Gk_diag and eqref:eq:rotating_Gk_off_diag. -#+name: eq:Gk_mimo_tf -\begin{equation} +\begin{equation}\label{eq:rotating_Gk_mimo_tf} \begin{bmatrix} f_u \\ f_v \end{bmatrix} = \mathbf{G}_k \begin{bmatrix} F_u \\ F_v \end{bmatrix} \end{equation} -#+name: eq:Gk -\begin{subequations} +\begin{subequations}\label{eq:rotating_Gk} \begin{align} -\mathbf{G}_{k}(1,1) &= \mathbf{G}_{k}(2,2) = \frac{\big( \frac{s^2}{{\omega_0}^2} - \frac{\Omega^2}{{\omega_0}^2} + \alpha \big) \big( \frac{s^2}{{\omega_0}^2} + 2 \xi \frac{s}{\omega_0} + 1 - \frac{{\Omega}^2}{{\omega_0}^2} \big) + \big( 2 \frac{\Omega}{\omega_0} \frac{s}{\omega_0} \big)^2}{\big( \frac{s^2}{{\omega_0}^2} + 2 \xi \frac{s}{\omega_0} + 1 - \frac{{\Omega}^2}{{\omega_0}^2} \big)^2 + \big( 2 \frac{\Omega}{\omega_0} \frac{s}{\omega_0} \big)^2} \label{eq:Gk_diag} \\ -\mathbf{G}_{k}(1,2) &= -\mathbf{G}_{k}(2,1) = \frac{- \left( 2 \xi \frac{s}{\omega_0} + 1 - \alpha \right) \left( 2 \frac{\Omega}{\omega_0} \frac{s}{\omega_0} \right)}{\left( \frac{s^2}{{\omega_0}^2} + 2 \xi \frac{s}{\omega_0} + 1 - \frac{{\Omega}^2}{{\omega_0}^2} \right)^2 + \left( 2 \frac{\Omega}{\omega_0} \frac{s}{\omega_0} \right)^2} \label{eq:Gk_off_diag} +\mathbf{G}_{k}(1,1) &= \mathbf{G}_{k}(2,2) = \frac{\big( \frac{s^2}{{\omega_0}^2} - \frac{\Omega^2}{{\omega_0}^2} + \alpha \big) \big( \frac{s^2}{{\omega_0}^2} + 2 \xi \frac{s}{\omega_0} + 1 - \frac{{\Omega}^2}{{\omega_0}^2} \big) + \big( 2 \frac{\Omega}{\omega_0} \frac{s}{\omega_0} \big)^2}{\big( \frac{s^2}{{\omega_0}^2} + 2 \xi \frac{s}{\omega_0} + 1 - \frac{{\Omega}^2}{{\omega_0}^2} \big)^2 + \big( 2 \frac{\Omega}{\omega_0} \frac{s}{\omega_0} \big)^2} \label{eq:rotating_Gk_diag} \\ +\mathbf{G}_{k}(1,2) &= -\mathbf{G}_{k}(2,1) = \frac{- \left( 2 \xi \frac{s}{\omega_0} + 1 - \alpha \right) \left( 2 \frac{\Omega}{\omega_0} \frac{s}{\omega_0} \right)}{\left( \frac{s^2}{{\omega_0}^2} + 2 \xi \frac{s}{\omega_0} + 1 - \frac{{\Omega}^2}{{\omega_0}^2} \right)^2 + \left( 2 \frac{\Omega}{\omega_0} \frac{s}{\omega_0} \right)^2} \label{eq:rotating_Gk_off_diag} \end{align} \end{subequations} -Comparing $\mathbf{G}_k$ in Eq. eqref:eq:Gk with $\mathbf{G}_f$ in Eq. eqref:eq:Gf shows that while the poles of the system are kept the same, the zeros of the diagonal terms have changed. -The two real zeros $z_r$ in Eq. eqref:eq:iff_zero_real that were inducing a non-minimum phase behavior are transformed into two complex conjugate zeros if the condition in Eq. eqref:eq:kp_cond_cc_zeros holds. +Comparing $\mathbf{G}_k$ in eqref:eq:rotating_Gk with $\mathbf{G}_f$ in eqref:eq:rotating_Gf shows that while the poles of the system are kept the same, the zeros of the diagonal terms have changed. +The two real zeros $z_r$ in eqref:eq:rotating_iff_zero_real that were inducing a non-minimum phase behavior are transformed into two complex conjugate zeros if the condition in eqref:eq:rotating_kp_cond_cc_zeros holds. +Thus, if the added /parallel stiffness/ $k_p$ is higher than the /negative stiffness/ induced by centrifugal forces $m \Omega^2$, the dynamics from actuator to its collocated force sensor will show /minimum phase behavior/. -#+name: eq:kp_cond_cc_zeros -\begin{equation} +\begin{equation}\label{eq:rotating_kp_cond_cc_zeros} \boxed{\alpha > \frac{\Omega^2}{{\omega_0}^2} \quad \Leftrightarrow \quad k_p > m \Omega^2} \end{equation} -#+begin_important -Thus, if the added *parallel stiffness* $k_p$ is *higher than the negative stiffness induced by centrifugal forces* $m \Omega^2$, the dynamics from actuator to its collocated force sensor will show minimum phase behavior. -#+end_important - ** Identify plant with parallel stiffnesses :noexport: #+begin_src matlab %% Tuv Stage @@ -1666,10 +1478,13 @@ io(io_i) = linio([mdl, '/ext_metrology'], 1, 'openoutput'); io_i = io_i + 1; #+end_src ** Effect of the parallel stiffness on the IFF plant -The IFF plant (transfer function from $[F_u, F_v]$ to $[f_u, f_v]$) is identified in three different cases: -- without parallel stiffness $k_p = 0$ -- with a small parallel stiffness $k_p < m \Omega^2$ -- with a large parallel stiffness $k_p > m \Omega^2$ +The IFF plant (transfer function from $[F_u, F_v]$ to $[f_u, f_v]$) is identified without parallel stiffness $k_p = 0$, with a small parallel stiffness $k_p < m \Omega^2$ and with a large parallel stiffness $k_p > m \Omega^2$. +The Bode plots of the obtained dynamics are shown in Figure ref:fig:rotating_iff_effect_kp. +One can see that the the two real zeros for $k_p < m \Omega^2$ are transformed into two complex conjugate zeros for $k_p > m \Omega^2$. +In that case, the systems shows alternating complex conjugate poles and zeros as what is the case in the non-rotating case. + +Figure ref:fig:rotating_iff_kp_root_locus shows the Root Locus plots for $k_p = 0$, $k_p < m \Omega^2$ and $k_p > m \Omega^2$ when $K_F$ is a pure integrator as in Eq. eqref:eq:rotating_Kf_pure_int. +It is shown that if the added stiffness is higher than the maximum negative stiffness, the poles of the closed-loop system are bounded on the (stable) left half-plane, and hence the unconditional stability of IFF is recovered. #+begin_src matlab Wz = 0.1; % The rotation speed [rad/s] @@ -1705,9 +1520,6 @@ G_high_kp.InputName = {'Fu', 'Fv', 'Fdx', 'Fdy'}; G_high_kp.OutputName = {'fu', 'fv', 'Du', 'Dv', 'Dx', 'Dy'}; #+end_src -The Bode plots of the obtained dynamics are shown in Figure ref:fig:rotating_iff_effect_kp. -One can see that for $k_p > m \Omega^2$, the two real zeros with $k_p < m \Omega^2$ are transformed into two complex conjugate zeros and the systems shows alternating complex conjugate poles and zeros. - #+begin_src matlab :results none %% Effect of the parallel stiffness on the IFF plant freqs = logspace(-2, 1, 1000); @@ -1727,7 +1539,7 @@ plot(freqs, abs(squeeze(freqresp(G_high_kp('fu', 'Fu'), freqs, 'rad/s'))), '-', hold off; set(gca, 'XScale', 'log'); set(gca, 'YScale', 'log'); set(gca, 'XTickLabel',[]); ylabel('Magnitude [N/N]'); -ylim([1e-5, 5e1]); +ylim([1e-4, 5e1]); legend('location', 'southeast', 'FontSize', 8); % Phase @@ -1739,7 +1551,7 @@ plot(freqs, 180/pi*angle(squeeze(freqresp(G_high_kp('fu', 'Fu'), freqs, 'rad/s') set(gca, 'XScale', 'log'); set(gca, 'YScale', 'lin'); xlabel('Frequency [rad/s]'); ylabel('Phase [deg]'); yticks(-180:90:180); -ylim([-180 180]); +ylim([0 180]); hold off; xticks([1e-2,1e-1,1,1e1]) xticklabels({'$0.01 \omega_0$', '$0.1 \omega_0$', '$\omega_0$', '$10 \omega_0$'}) @@ -1749,25 +1561,14 @@ xlim([freqs(1), freqs(end)]); #+end_src #+begin_src matlab :tangle no :exports results :results file replace -exportFig('figs/rotating_iff_effect_kp.pdf', 'width', 'wide', 'height', 'tall'); +exportFig('figs/rotating_iff_effect_kp.pdf', 'width', 'half', 'height', 500); #+end_src -#+name: fig:rotating_iff_effect_kp -#+caption: Effect of the parallel stiffness on the IFF plant: Bode plot of $G_{k}(1,1) = f_u/F_u$ without parallel spring, with parallel spring stiffness $k_p < m \Omega^2$ and $k_p > m \Omega^2$, $\Omega = 0.1 \omega_0$ -#+RESULTS: -[[file:figs/rotating_iff_effect_kp.png]] - -Figure ref:fig:rotating_iff_kp_root_locus shows the Root Locus plots for $k_p = 0$, $k_p < m \Omega^2$ and $k_p > m \Omega^2$ when $K_F$ is a pure integrator as in Eq. eqref:eq:Kf_pure_int. -It is shown that if the added stiffness is higher than the maximum negative stiffness, the poles of the closed-loop system are bounded on the (stable) left half-plane, and hence the *unconditional stability of IFF is recovered*. - #+begin_src matlab :results none %% Root Locus for IFF without parallel spring, with small parallel spring and with large parallel spring gains = logspace(-2, 2, 200); figure; -tiledlayout(1, 3, 'TileSpacing', 'Compact', 'Padding', 'None'); - -ax1 = nexttile([1,2]); hold on; plot(real(pole(G_no_kp({'fu','fv'},{'Fu','Fv'})*(1/s))), imag(pole(G_no_kp({'fu','fv'},{'Fu','Fv'})*(1/s))), 'x', 'color', colors(1,:), ... 'DisplayName', '$k_p = 0$','MarkerSize',8); @@ -1809,57 +1610,33 @@ yticklabels({'$-\omega_0$', '$0$', '$\omega_0$'}) xlabel('Real Part'); ylabel('Imaginary Part'); leg = legend('location', 'northwest', 'FontSize', 8); leg.ItemTokenSize(1) = 8; - -ax2 = nexttile(); -hold on; -plot(real(pole(G_no_kp( {'fu','fv'},{'Fu','Fv'})*(1/s))), imag(pole(G_no_kp( {'fu','fv'},{'Fu','Fv'})*(1/s))), 'x', 'color', colors(1,:), 'MarkerSize',8); -plot(real(tzero(G_no_kp({'fu','fv'},{'Fu','Fv'})*(1/s))), imag(tzero(G_no_kp({'fu','fv'},{'Fu','Fv'})*(1/s))), 'o', 'color', colors(1,:), 'MarkerSize',8); -for g = gains - cl_poles = pole(feedback(G_no_kp({'fu','fv'},{'Fu','Fv'}), (g/s)*eye(2))); - plot(real(cl_poles), imag(cl_poles), '.', 'color', colors(1,:), 'MarkerSize', 4); -end - -plot(real(pole(G_low_kp( {'fu','fv'},{'Fu','Fv'})*(1/s))), imag(pole(G_low_kp( {'fu','fv'},{'Fu','Fv'})*(1/s))), 'x', 'color', colors(2,:), 'MarkerSize',8); -plot(real(tzero(G_low_kp({'fu','fv'},{'Fu','Fv'})*(1/s))), imag(tzero(G_low_kp({'fu','fv'},{'Fu','Fv'})*(1/s))), 'o', 'color', colors(2,:), 'MarkerSize',8); -for g = gains - cl_poles = pole(feedback(G_low_kp({'fu','fv'},{'Fu','Fv'}), (g/s)*eye(2))); - plot(real(cl_poles), imag(cl_poles), '.', 'color', colors(2,:), 'MarkerSize', 4); -end - -plot(real(pole(G_high_kp( {'fu','fv'},{'Fu','Fv'})*(1/s))), imag(pole(G_high_kp( {'fu','fv'},{'Fu','Fv'})*(1/s))), 'x', 'color', colors(3,:), 'MarkerSize',8); -plot(real(tzero(G_high_kp({'fu','fv'},{'Fu','Fv'})*(1/s))), imag(tzero(G_high_kp({'fu','fv'},{'Fu','Fv'})*(1/s))), 'o', 'color', colors(3,:), 'MarkerSize',8); -for g = gains - cl_poles = pole(feedback(G_high_kp({'fu','fv'},{'Fu','Fv'}), (g/s)*eye(2))); - plot(real(cl_poles), imag(cl_poles), '.', 'color', colors(3,:), 'MarkerSize',4); -end -hold off; -axis equal; -xlim([-0.04, 0.04]); ylim([-0.08, 0.08]); -set(gca, 'XTickLabel',[]); set(gca, 'YTickLabel',[]); -xlabel('Real Part'); ylabel('Imaginary Part'); -title('Zoom on controller pole') #+end_src -#+begin_src matlab :tangle no :exports results :results file replace -exportFig('figs/rotating_iff_kp_root_locus.pdf', 'width', 'full', 'height', 'tall'); -#+end_src - -#+name: fig:rotating_iff_kp_root_locus -#+caption: Root Locus for IFF without parallel spring, with small parallel spring and with large parallel spring -#+RESULTS: +#+name: fig:rotating_iff_plant_effect_kp +#+caption: Effect of the parallel stiffness on the IFF plant +#+attr_latex: :options [htbp] +#+begin_figure +#+attr_latex: :caption \subcaption{\label{fig:rotating_iff_effect_kp}Bode plot of $G_{k}(1,1) = f_u/F_u$ without parallel spring, with parallel spring stiffness $k_p < m \Omega^2$ and $k_p > m \Omega^2$, $\Omega = 0.1 \omega_0$} +#+attr_latex: :options {0.55\linewidth} +#+begin_subfigure +#+attr_latex: :width 0.95\linewidth +[[file:figs/rotating_iff_effect_kp.png]] +#+end_subfigure +#+attr_latex: :caption \subcaption{\label{fig:rotating_iff_kp_root_locus}Root Locus for IFF without parallel spring, with small parallel spring and with large parallel spring} +#+attr_latex: :options {0.44\linewidth} +#+begin_subfigure +#+attr_latex: :width 0.95\linewidth [[file:figs/rotating_iff_kp_root_locus.png]] +#+end_subfigure +#+end_figure ** Effect of $k_p$ on the attainable damping - Even though the parallel stiffness $k_p$ has no impact on the open-loop poles (as the overall stiffness $k$ is kept constant), it has a large impact on the transmission zeros. Moreover, as the attainable damping is generally proportional to the distance between poles and zeros cite:preumont18_vibrat_contr_activ_struc_fourt_edition, the parallel stiffness $k_p$ is foreseen to have some impact on the attainable damping. - To study this effect, Root Locus plots for several parallel stiffnesses $k_p > m \Omega^2$ are shown in Figure ref:fig:rotating_iff_kp_root_locus_effect_kp. The frequencies of the transmission zeros of the system are increasing with an increase of the parallel stiffness $k_p$ (thus getting closer to the poles) and the associated attainable damping is reduced. - -#+begin_important Therefore, even though the parallel stiffness $k_p$ should be larger than $m \Omega^2$ for stability reasons, it should not be taken too large as this would limit the attainable damping. -#+end_important +This is confirmed by the Figure ref:fig:rotating_iff_kp_optimal_gain where the attainable closed-loop damping ratio $\xi_{\text{cl}}$ and the associated optimal control gain $g_\text{opt}$ are computed as a function of the parallel stiffness. #+begin_src matlab %% Tested parallel stiffnesses @@ -1907,17 +1684,6 @@ leg = legend('location', 'northwest', 'FontSize', 8); leg.ItemTokenSize(1) = 12; #+end_src -#+begin_src matlab :tangle no :exports results :results file replace -exportFig('figs/rotating_iff_kp_root_locus_effect_kp.pdf', 'width', 'wide', 'height', 'tall'); -#+end_src - -#+name: fig:rotating_iff_kp_root_locus_effect_kp -#+caption: Root Locus: Effect of the parallel stiffness on the attainable damping, $\Omega = 0.1 \omega_0$ -#+RESULTS: -[[file:figs/rotating_iff_kp_root_locus_effect_kp.png]] - -This is confirmed by the Figure ref:fig:rotating_iff_kp_optimal_gain where the attainable closed-loop damping ratio $\xi_{\text{cl}}$ and the associated optimal control gain $g_\text{opt}$ are computed as a function of the parallel stiffness. - #+begin_src matlab %% Computes the optimal parameters and attainable simultaneous damping alphas = logspace(-2, 0, 100); @@ -1972,22 +1738,48 @@ xticks([0.01, 0.1, 1]) xticklabels({'$m\Omega^2$', '$10m\Omega^2$', '$100m\Omega^2$'}) #+end_src -#+begin_src matlab :tangle no :exports results :results file replace -exportFig('figs/rotating_iff_kp_optimal_gain.pdf', 'width', 'wide', 'height', 'normal'); +#+begin_src matlab :tangle no :exports results :results file none +exportFig('figs/rotating_iff_kp_optimal_gain.pdf', 'width', 'half', 'height', 450); #+end_src -#+name: fig:rotating_iff_kp_optimal_gain -#+caption: Attainable damping ratio $\xi_\text{cl}$ as a function of the parallel stiffness $k_p$. Corresponding control gain $g_\text{opt}$ is also shown. Values for $k_p < m\Omega^2$ are not shown as the system is unstable. -#+RESULTS: +#+name: fig:rotating_iff_optimal_kp +#+caption: Effect of the parallel stiffness on the IFF plant +#+attr_latex: :options [htbp] +#+begin_figure +#+attr_latex: :caption \subcaption{\label{fig:rotating_iff_kp_root_locus_effect_kp}Root Locus: Effect of the parallel stiffness on the attainable damping, $\Omega = 0.1 \omega_0$} +#+attr_latex: :options {0.49\linewidth} +#+begin_subfigure +#+attr_latex: :scale 1 +[[file:figs/rotating_iff_kp_root_locus_effect_kp.png]] +#+end_subfigure +#+attr_latex: :caption \subcaption{\label{fig:rotating_iff_kp_optimal_gain}Attainable damping ratio $\xi_\text{cl}$ as a function of the parallel stiffness $k_p$. Corresponding control gain $g_\text{opt}$ is also shown. Values for $k_p < m\Omega^2$ are not shown as the system is unstable.} +#+attr_latex: :options {0.49\linewidth} +#+begin_subfigure +#+attr_latex: :scale 0.9 [[file:figs/rotating_iff_kp_optimal_gain.png]] +#+end_subfigure +#+end_figure ** Damped plant Let's choose a parallel stiffness equal to $k_p = 2 m \Omega^2$ and compute the damped plant. The damped and undamped transfer functions from $F_u$ to $d_u$ are compared in Figure ref:fig:rotating_iff_kp_damped_plant. - Even though the two resonances are well damped, the IFF changes the low frequency behavior of the plant which is usually not wanted. This is due to the fact that "pure" integrators are used, and that the low frequency loop gains becomes large below some frequency. +In order to lower the low frequency gain, a high pass filter is added to the IFF controller (which is equivalent as shifting the controller pole to the left in the complex plane): +\begin{equation} + K_{\text{IFF}}(s) = g\frac{1}{\omega_i + s} \begin{bmatrix} + 1 & 0 \\ + 0 & 1 +\end{bmatrix} +\end{equation} + +In order to see how the high pass filter impacts the attainable damping, the controller gain $g$ is kept constant while $\omega_i$ is changed, and the minimum damping ratio of the damped plant is computed. +The obtained damping ratio as a function of $\omega_i/\omega_0$ (where $\omega_0$ is the resonance of the system without rotation) is shown in Figure ref:fig:rotating_iff_kp_added_hpf_effect_damping. +It is shown that the attainable damping ratio reduces as $\omega_i$ is increased (same conclusion than in Section ref:sec:rotating_iff_pseudo_int). +Let's choose $\omega_i = 0.1 \cdot \omega_0$ and compare the obtained damped plant again with the undamped and with the "pure" IFF in Figure ref:fig:rotating_iff_kp_added_hpf_damped_plant. +The added high pass filter gives almost the same damping properties to the suspension while giving good low frequency behavior. + #+begin_src matlab %% Identify dynamics with parallel stiffness = 2mW^2 Wz = 0.1; % [rad/s] @@ -2010,68 +1802,6 @@ Kiff_kp.OutputName = {'Fu', 'Fv'}; G_cl_iff_kp = feedback(G, Kiff_kp, 'name'); #+end_src -#+begin_src matlab :results none -%% Damped plant with IFF - Transfer function from $F_u$ to $d_u$ -freqs = logspace(-3, 1, 1000); - -figure; -tiledlayout(3, 1, 'TileSpacing', 'Compact', 'Padding', 'None'); - -% Magnitude -ax1 = nexttile([2, 1]); -hold on; -plot(freqs, abs(squeeze(freqresp(G('Du', 'Fu'), freqs, 'rad/s'))), '-', 'color', zeros(1,3), ... - 'DisplayName', '$d_u/F_u$ - OL') -plot(freqs, abs(squeeze(freqresp(G_cl_iff_kp('Du', 'Fu'), freqs, 'rad/s'))), '-', 'color', colors(1,:), ... - 'DisplayName', '$d_u/F_u$ - IFF + $k_p$') -plot(freqs, abs(squeeze(freqresp(G('Dv', 'Fu'), freqs, 'rad/s'))), '-', 'color', [zeros(1,3), 0.5], ... - 'DisplayName', '$d_v/F_u$ - OL') -plot(freqs, abs(squeeze(freqresp(G_cl_iff_kp('Dv', 'Fu'), freqs, 'rad/s'))), '-', 'color', [colors(1,:), 0.5], ... - 'DisplayName', '$d_v/F_u$ - IFF + $k_p$') -hold off; -set(gca, 'XScale', 'log'); set(gca, 'YScale', 'log'); -set(gca, 'XTickLabel',[]); ylabel('Magnitude [m/N]'); -ldg = legend('location', 'southwest', 'FontSize', 8, 'NumColumns', 2); -ldg.ItemTokenSize(1) = 20; -ylim([1e-6, 1e2]); - -ax2 = nexttile; -hold on; -plot(freqs, 180/pi*angle(squeeze(freqresp(G('Du', 'Fu'), freqs, 'rad/s'))), '-', 'color', zeros(1,3)) -plot(freqs, 180/pi*angle(squeeze(freqresp(G_cl_iff_kp('Du', 'Fu'), freqs, 'rad/s'))), '-', 'color', colors(1,:)) -hold off; -set(gca, 'XScale', 'log'); set(gca, 'YScale', 'lin'); -xlabel('Frequency [rad/s]'); ylabel('Phase [deg]'); -yticks(-180:90:180); -ylim([-180 180]); -xticks([1e-3,1e-2,1e-1,1,1e1]) -xticklabels({'$0.001 \omega_0$', '$0.01 \omega_0$', '$0.1 \omega_0$', '$\omega_0$', '$10 \omega_0$'}) - -linkaxes([ax1,ax2],'x'); -xlim([freqs(1), freqs(end)]); -#+end_src - -#+begin_src matlab :tangle no :exports results :results file replace -exportFig('figs/rotating_iff_kp_damped_plant.pdf', 'width', 'wide', 'height', 'tall'); -#+end_src - -#+name: fig:rotating_iff_kp_damped_plant -#+caption: Damped plant with IFF - Transfer function from $F_u$ to $d_u$ -#+RESULTS: -[[file:figs/rotating_iff_kp_damped_plant.png]] - -In order to lower the low frequency gain, an high pass filter is added to the IFF controller (which is equivalent as shifting the controller pole to the left in the complex plane): -\begin{equation} - K_{\text{IFF}}(s) = g\frac{1}{\omega_i + s} \begin{bmatrix} - 1 & 0 \\ - 0 & 1 -\end{bmatrix} -\end{equation} - -Let's see how the high pass filter impacts the attainable damping. -The controller gain $g$ is kept constant while $\omega_i$ is changed, and the minimum damping ratio of the damped plant is computed. -The obtained damping ratio as a function of $\omega_i/\omega_0$ (where $\omega_0$ is the resonance of the system without rotation) is shown in Figure ref:fig:rotating_iff_kp_added_hpf_effect_damping. - #+begin_src matlab w0 = sqrt((kn+kp)/(mn+ms)); % Resonance frequency [rad/s] wis = w0*logspace(-2, 0, 100); % LPF cut-off [rad/s] @@ -2102,19 +1832,10 @@ ylabel('Damping Ratio $\xi$'); xlabel('$\omega_i/\omega_0$'); #+end_src -#+begin_src matlab :tangle no :exports results :results file replace -exportFig('figs/rotating_iff_kp_added_hpf_effect_damping.pdf', 'width', 'wide', 'height', 'normal'); +#+begin_src matlab :tangle no :exports results :results file none +exportFig('figs/rotating_iff_kp_added_hpf_effect_damping.pdf', 'width', 'third', 'height', 600); #+end_src -#+name: fig:rotating_iff_kp_added_hpf_effect_damping -#+caption: Effect of the high pass filter cut-off frequency on the obtained damping -#+RESULTS: -[[file:figs/rotating_iff_kp_added_hpf_effect_damping.png]] - -Let's choose $\omega_i = 0.1 \cdot \omega_0$ and compute the damped plant again. -The Bode plots of the undamped, damped with "pure" IFF, and with added high pass filters are shown in Figure ref:fig:rotating_iff_kp_added_hpf_damped_plant. -The added high pass filter gives almost the same damping properties while giving acceptable low frequency behavior. - #+begin_src matlab %% Compute the damped plant with added High Pass Filter Kiff_kp_hpf = (2.2/(s + 0.1*w0))*eye(2); @@ -2141,16 +1862,16 @@ plot(freqs, abs(squeeze(freqresp(G_cl_iff_kp( 'Du', 'Fu'), freqs, 'rad/s'))), plot(freqs, abs(squeeze(freqresp(G_cl_iff_hpf_kp('Du', 'Fu'), freqs, 'rad/s'))), '-', 'color', colors(2,:), ... 'DisplayName', '$d_u/F_u$ - IFF + $k_p$ + HPF') plot(freqs, abs(squeeze(freqresp(G( 'Dv', 'Fu'), freqs, 'rad/s'))), '-', 'color', [zeros( 1,3), 0.5], ... - 'DisplayName', '$d_v/F_u$ - OL') + 'HandleVisibility', 'off') plot(freqs, abs(squeeze(freqresp(G_cl_iff_kp( 'Dv', 'Fu'), freqs, 'rad/s'))), '-', 'color', [colors(1,:), 0.5], ... - 'DisplayName', '$d_v/F_u$ - IFF + $k_p$') + 'HandleVisibility', 'off') plot(freqs, abs(squeeze(freqresp(G_cl_iff_hpf_kp('Dv', 'Fu'), freqs, 'rad/s'))), '-', 'color', [colors(2,:), 0.5], ... - 'DisplayName', '$d_v/F_u$ - IFF + $k_p$ + HPF') + 'HandleVisibility', 'off') hold off; set(gca, 'XScale', 'log'); set(gca, 'YScale', 'log'); set(gca, 'XTickLabel',[]); ylabel('Magnitude [m/N]'); -ldg = legend('location', 'southwest', 'FontSize', 8, 'NumColumns', 2); -ldg.ItemTokenSize(1) = 20; +ldg = legend('location', 'southwest', 'FontSize', 8, 'NumColumns', 1); +ldg.ItemTokenSize(1) = 10; ax2 = nexttile; hold on; @@ -2161,7 +1882,7 @@ hold off; set(gca, 'XScale', 'log'); set(gca, 'YScale', 'lin'); xlabel('Frequency [rad/s]'); ylabel('Phase [deg]'); yticks(-180:90:180); -ylim([-180 180]); +ylim([-180 90]); xticks([1e-3,1e-2,1e-1,1,1e1]) xticklabels({'$0.001 \omega_0$', '$0.01 \omega_0$', '$0.1 \omega_0$', '$\omega_0$', '$10 \omega_0$'}) @@ -2169,14 +1890,27 @@ linkaxes([ax1,ax2],'x'); xlim([freqs(1), freqs(end)]); #+end_src -#+begin_src matlab :tangle no :exports results :results file replace -exportFig('figs/rotating_iff_kp_added_hpf_damped_plant.pdf', 'width', 'wide', 'height', 'tall'); +#+begin_src matlab :tangle no :exports results :results file none +exportFig('figs/rotating_iff_kp_added_hpf_damped_plant.pdf', 'width', 700, 'height', 600); #+end_src -#+name: fig:rotating_iff_kp_added_hpf_damped_plant -#+caption: Damped plant with IFF - Transfer function from $F_u$ to $d_u$ -#+RESULTS: +#+name: fig:rotating_iff_optimal_kp +#+caption:Effect of the high pass filter cut-off frequency on the obtained damping +#+attr_latex: :options [htbp] +#+begin_figure +#+attr_latex: :caption \subcaption{\label{fig:rotating_iff_kp_added_hpf_effect_damping}Reduced damping ratio with increased cut-off frequency $\omega_i$} +#+attr_latex: :options {0.34\linewidth} +#+begin_subfigure +#+attr_latex: :scale 0.95 +[[file:figs/rotating_iff_kp_added_hpf_effect_damping.png]] +#+end_subfigure +#+attr_latex: :caption \subcaption{\label{fig:rotating_iff_kp_added_hpf_damped_plant}Damped plant with the parallel stiffness, effect of the added HPF} +#+attr_latex: :options {0.65\linewidth} +#+begin_subfigure +#+attr_latex: :scale 0.95 [[file:figs/rotating_iff_kp_added_hpf_damped_plant.png]] +#+end_subfigure +#+end_figure * Relative Damping Control :PROPERTIES: @@ -2185,20 +1919,14 @@ exportFig('figs/rotating_iff_kp_added_hpf_damped_plant.pdf', 'width', 'wide', 'h <> ** Introduction :ignore: -In order to apply a "relative damping control strategy", relative motion sensors are added in parallel with the actuators as shown in Figure ref:fig:rotating_3dof_model_schematic_rdc. - +In order to apply a "Relative Damping Control" strategy, relative motion sensors are added in parallel with the actuators as shown in Figure ref:fig:rotating_3dof_model_schematic_rdc. Two controllers $K_d$ are used to fed back the relative motion to the actuator. -$K_d$ is a derivator: -\begin{equation} -K_d(s) = s -\end{equation} +These controllers are in principle pure derivators ($K_d = s$), but to be implemented in practice they are usually replaced by a high pass filter eqref:eq:rotating_rdc_controller. -To be implemented in practice, it is usually replaced by a an high pass filter: -\begin{equation} -K_d(s) = \frac{s}{s + \omega_d} +\begin{equation}\label{eq:rotating_rdc_controller} +K_d(s) = g \cdot \frac{s}{s + \omega_d} \end{equation} - #+begin_src latex :file rotating_3dof_model_schematic_rdc.pdf \begin{tikzpicture} % Angle @@ -2234,19 +1962,19 @@ K_d(s) = \frac{s}{s + \omega_d} % Spring and Actuator for U \draw[actuator={0.6}{0.2}{black}] (cu) -- coordinate[midway, below=0.1](actumid) node[above=0.1, rotate=\thetau]{$F_u$} (cu-|-2.6,0); \draw[spring=0.2] (ku) -- node[above=0.1, rotate=\thetau]{$k$} (ku-|-2.6,0); - \draw[<->, dashed, draw=coloryellow] (actu) node[below=0.1, rotate=\thetau, color=coloryellow](du){$d_u$} -- (actu-|-2.6,0); + \draw[<->, dashed, draw=colorgreen] (actu) node[below=0.1, rotate=\thetau, color=colorgreen](du){$d_u$} -- (actu-|-2.6,0); - \node[color=coloryellow, block={0.6cm}{0.6cm}, fill=coloryellow!10!white, rotate=\thetau] (Ku) at ($(actumid) + (0, -1.4)$) {$K_{d}$}; - \draw[->, draw=coloryellow] (du.south) -- ++(0, -0.8) -| (Ku.south); - \draw[->, draw=coloryellow] (Ku.north) -- (actumid); + \node[color=colorgreen, block={0.6cm}{0.6cm}, fill=colorgreen!10!white, rotate=\thetau] (Ku) at ($(actumid) + (0, -1.4)$) {$K_{d}$}; + \draw[->, draw=colorgreen] (du.south) -- ++(0, -0.8) -| (Ku.south); + \draw[->, draw=colorgreen] (Ku.north) -- (actumid); \draw[actuator={0.6}{0.2}{black}] (cv) -- coordinate[midway, right=0.1](actvmid) node[left, rotate=\thetau]{$F_v$} (cv|-0,-2.6); \draw[spring=0.2] (kv) -- node[left, rotate=\thetau]{$k$} (kv|-0,-2.6); - \draw[<->, dashed, draw=coloryellow] (actv)node[right=0.1, rotate=\thetau, color=coloryellow](dv){$d_v$} -- (actv|-0,-2.6); + \draw[<->, dashed, draw=colorgreen] (actv)node[right=0.1, rotate=\thetau, color=colorgreen](dv){$d_v$} -- (actv|-0,-2.6); - \node[color=coloryellow, block={0.6cm}{0.6cm}, fill=coloryellow!10!white, rotate=\thetau] (Kv) at ($(actvmid) + (1.4, 0)$) {$K_{d}$}; - \draw[->, draw=coloryellow] (dv.east) -- ++(0.8, 0) |- (Kv.east); - \draw[->, draw=coloryellow] (Kv.west) -- (actvmid); + \node[color=colorgreen, block={0.6cm}{0.6cm}, fill=colorgreen!10!white, rotate=\thetau] (Kv) at ($(actvmid) + (1.4, 0)$) {$K_{d}$}; + \draw[->, draw=colorgreen] (dv.east) -- ++(0.8, 0) |- (Kv.east); + \draw[->, draw=colorgreen] (Kv.west) -- (actvmid); \end{scope} % Inertial Frame @@ -2268,6 +1996,7 @@ K_d(s) = \frac{s}{s + \omega_d} #+name: fig:rotating_3dof_model_schematic_rdc #+caption: System with relative motion sensor and decentralized "relative damping control" applied. +#+attr_latex: :scale 0.8 #+RESULTS: [[file:figs/rotating_3dof_model_schematic_rdc.png]] @@ -2303,111 +2032,37 @@ load('rotating_generic_plants.mat', 'Gs', 'Wzs'); #+end_src ** Equations of motion -Let's note $\bm{G}_d$ the transfer function between actuator forces and measured relative motion in parallel with the actuators: -\begin{equation} +Let's note $\bm{G}_d$ the transfer function between actuator forces and measured relative motion in parallel with the actuators eqref:eq:rotating_rdc_plant_matrix. +The elements of $\bm{G}_d$ were derived in Section ref:sec:rotating_system_description are shown in eqref:eq:rotating_rdc_plant_elements. + +\begin{equation}\label{eq:rotating_rdc_plant_matrix} \begin{bmatrix} d_u \\ d_v \end{bmatrix} = \mathbf{G}_d \begin{bmatrix} F_u \\ F_v \end{bmatrix} \end{equation} -With: -\begin{subequations} +\begin{subequations}\label{eq:rotating_rdc_plant_elements} \begin{align} \mathbf{G}_{d}(1,1) &= \mathbf{G}_{d}(2,2) = \frac{\frac{1}{k} \left( \frac{s^2}{{\omega_0}^2} + 2 \xi \frac{s}{\omega_0} + 1 - \frac{{\Omega}^2}{{\omega_0}^2} \right)}{\left( \frac{s^2}{{\omega_0}^2} + 2 \xi \frac{s}{\omega_0} + 1 - \frac{{\Omega}^2}{{\omega_0}^2} \right)^2 + \left( 2 \frac{\Omega}{\omega_0} \frac{s}{\omega_0} \right)^2} \\ \mathbf{G}_{d}(1,2) &= -\mathbf{G}_{d}(2,1) = \frac{\frac{1}{k} \left( 2 \frac{\Omega}{\omega_0} \frac{s}{\omega_0} \right)}{\left( \frac{s^2}{{\omega_0}^2} + 2 \xi \frac{s}{\omega_0} + 1 - \frac{{\Omega}^2}{{\omega_0}^2} \right)^2 + \left( 2 \frac{\Omega}{\omega_0} \frac{s}{\omega_0} \right)^2} \end{align} \end{subequations} -Neglecting the damping for simplicity ($\xi \ll 1$), the direct terms have two complex conjugate zeros: -\begin{equation} - z = \pm j \sqrt{\omega_0^2 - \omega^2} +Neglecting the damping for simplicity ($\xi \ll 1$), the direct terms have two complex conjugate zeros which are between the two pairs of complex conjugate poles eqref:eq:rotating_rdc_zeros_poles. +Therefore, for $\Omega < \sqrt{k/m}$ (i.e. stable system), the transfer functions for Relative Damping Control have alternating complex conjugate poles and zeros. + +\begin{equation}\label{eq:rotating_rdc_zeros_poles} + z = \pm j \sqrt{\omega_0^2 - \omega^2}, \quad p_1 = \pm j (\omega_0 - \omega), \quad p_2 = \pm j (\omega_0 + \omega) \end{equation} -Which are between the two pairs of complex conjugate poles at: -\begin{align} - p_1 &= \pm j (\omega_0 - \omega) \\ - p_2 &= \pm j (\omega_0 + \omega) -\end{align} - -Therefore, for $\Omega < \sqrt{k/m}$ (i.e. stable system), the transfer functions for Relative Damping Control have *alternating complex conjugate poles and zeros*. - ** Decentralized Relative Damping Control -The transfer functions from $[F_u,\ F_v]$ to $[d_u,\ d_v]$ is identified and shown in Figure ref:fig:rotating_rdc_plant_effect_rot for several rotating velocities. - -#+begin_src matlab :results none -%% Bode plot of the direct and coupling term for the "relative damping control" plant - Effect of rotation -freqs = logspace(-2, 1, 1000); - -figure; -tiledlayout(3, 2, 'TileSpacing', 'Compact', 'Padding', 'None'); - -% Magnitude -ax1 = nexttile([2, 1]); -hold on; -for i = 1:length(Wzs) - plot(freqs, abs(squeeze(freqresp(Gs{i}('du', 'Fu'), freqs, 'rad/s'))), '-', 'color', colors(i,:)) -end -hold off; -set(gca, 'XScale', 'log'); set(gca, 'YScale', 'log'); -set(gca, 'XTickLabel',[]); ylabel('Magnitude [N/N]'); -title('Direct terms: $d_u/F_u$, $d_v/F_v$'); -ylim([1e-3, 1e2]); - -ax2 = nexttile([2, 1]); -hold on; -for i = 1:length(Wzs) - plot(freqs, abs(squeeze(freqresp(Gs{i}('dv', 'Fu'), freqs, 'rad/s'))), '-', 'color', colors(i,:), ... - 'DisplayName', sprintf('$\\Omega = %.1f \\omega_0$', Wzs(i))) -end -hold off; -set(gca, 'XScale', 'log'); set(gca, 'YScale', 'log'); -set(gca, 'XTickLabel',[]); set(gca, 'YTickLabel',[]); -title('Coupling Terms: $d_u/F_v$, $d_v/F_u$'); -ldg = legend('location', 'northwest', 'FontSize', 8, 'NumColumns', 1); -ldg.ItemTokenSize = [10, 1]; -ylim([1e-3, 1e2]); - -ax3 = nexttile; -hold on; -for i = 1:length(Wzs) - plot(freqs, 180/pi*angle(squeeze(freqresp(Gs{i}('du', 'Fu'), freqs, 'rad/s'))), '-', 'color', colors(i,:)) -end -hold off; -set(gca, 'XScale', 'log'); set(gca, 'YScale', 'lin'); -xlabel('Frequency [rad/s]'); ylabel('Phase [deg]'); -yticks(-180:90:180); -ylim([-180 180]); -xticks([1e-2,1e-1,1,1e1]) -xticklabels({'$0.01 \omega_0$', '$0.1 \omega_0$', '$\omega_0$', '$10 \omega_0$'}) - -ax4 = nexttile; -hold on; -for i = 1:length(Wzs) - plot(freqs, 180/pi*angle(squeeze(freqresp(Gs{i}('dv', 'Fu'), freqs, 'rad/s'))), '-', 'color', colors(i,:)); -end -hold off; -set(gca, 'XScale', 'log'); set(gca, 'YScale', 'lin'); -xlabel('Frequency [rad/s]'); set(gca, 'YTickLabel',[]); -yticks(-180:90:180); -ylim([-180 180]); -xticks([1e-2,1e-1,1,1e1]) -xticklabels({'$0.01 \omega_0$', '$0.1 \omega_0$', '$\omega_0$', '$10 \omega_0$'}) - -linkaxes([ax1,ax2,ax3,ax4],'x'); -xlim([freqs(1), freqs(end)]); - -linkaxes([ax1,ax2],'y'); -#+end_src - -#+begin_src matlab :tangle no :exports results :results file replace -exportFig('figs/rotating_rdc_plant_effect_rot.pdf', 'width', 'full', 'height', 'tall'); -#+end_src - -#+name: fig:rotating_rdc_plant_effect_rot -#+caption: Bode plot of the direct and coupling term for the "relative damping control" plant - Effect of rotation -#+RESULTS: -[[file:figs/rotating_rdc_plant_effect_rot.png]] +The transfer functions from $[F_u,\ F_v]$ to $[d_u,\ d_v]$ were identified for several rotating velocities in Section ref:sec:rotating_system_description and are shown in Figure ref:fig:rotating_bode_plot (page pageref:fig:rotating_bode_plot). In order to see if large damping can be added with Relative Damping Control, the root locus is computed (Figure ref:fig:rotating_rdc_root_locus). -The closed-loop system is unconditionally stable and the poles can be damped as much as wanted. +The closed-loop system is unconditionally stable as expected and the poles can be damped as much as wanted. + +Let's select a reasonable "Relative Damping Control" gain, and compute the closed-loop damped system. +The open-loop and damped plants are compared in Figure ref:fig:rotating_rdc_damped_plant. +The rotating aspect does not add any complexity for the use of Relative Damping Control. +It does not increase the low frequency coupling as compared to Integral Force Feedback. #+begin_src matlab :results none %% Root Locus for Relative Damping Control @@ -2442,21 +2097,43 @@ leg = legend('location', 'northwest', 'FontSize', 8); leg.ItemTokenSize(1) = 8; #+end_src -#+begin_src matlab :tangle no :exports results :results file replace -exportFig('figs/rotating_rdc_root_locus.pdf', 'width', 'wide', 'height', 'tall'); +#+begin_src matlab :tangle no :results none +%% Root Locus for Relative Damping Control +Krdc = s*eye(2); % Relative damping controller + +gains = logspace(-2, 2, 300); % Tested gains +Wz_i = [1,3,4]; + +figure; +hold on; +for i = 1:length(Wz_i) + plot(real(pole(Gs{Wz_i(i)}({'du', 'dv'}, {'Fu', 'Fv'})*Krdc)), imag(pole(Gs{Wz_i(i)}({'du', 'dv'}, {'Fu', 'Fv'})*Krdc)), 'x', 'color', colors(i,:), ... + 'DisplayName', sprintf('$\\Omega = %.1f \\omega_0 $', Wzs(Wz_i(i))),'MarkerSize',8); + plot(real(tzero(Gs{Wz_i(i)}({'du', 'dv'}, {'Fu', 'Fv'})*Krdc)), imag(tzero(Gs{Wz_i(i)}({'du', 'dv'}, {'Fu', 'Fv'})*Krdc)), 'o', 'color', colors(i,:), ... + 'HandleVisibility', 'off','MarkerSize',8); + + poles_rdc = rootLocusPolesSorted(Gs{Wz_i(i)}({'du', 'dv'}, {'Fu', 'Fv'}), Krdc, gains, 'd_max', 1e-4); + for p_i = 1:size(poles_rdc, 2) + plot(real(poles_rdc(:, p_i)), imag(poles_rdc(:, p_i)), '-', 'color', colors(i,:), ... + 'HandleVisibility', 'off'); + end +end +hold off; +axis equal; +xlim([-1.8, 0.2]); ylim([0, 2]); +xticks([-1, 0]) +xticklabels({'-$\omega_0$', '$0$'}) +yticks([0, 1, 2]) +yticklabels({'$0$', '$\omega_0$', '$2 \omega_0$'}) + +xlabel('Real Part'); ylabel('Imaginary Part'); +leg = legend('location', 'northwest', 'FontSize', 8); +leg.ItemTokenSize(1) = 8; #+end_src -#+name: fig:rotating_rdc_root_locus -#+caption: Root Locus for Relative Damping Control -#+RESULTS: -[[file:figs/rotating_rdc_root_locus.png]] - -** Damped Plant -Let's select a reasonable "Relative Damping Control" gain, and compute the closed-loop damped system. -The open-loop and damped plants are compared in Figure ref:fig:rotating_rdc_damped_plant. - -The rotating aspect does not add any complexity for the use of Relative Damping Control. -It does not increase the low frequency coupling as compared to Integral Force Feedback. +#+begin_src matlab :tangle no :exports results :results file none +exportFig('figs/rotating_rdc_root_locus_inkscape.pdf', 'width', 'half', 'height', 500, 'png', false, 'pdf', false, 'svg', true); +#+end_src #+begin_src matlab i = 2; @@ -2493,7 +2170,7 @@ set(gca, 'XScale', 'log'); set(gca, 'YScale', 'log'); set(gca, 'XTickLabel',[]); ylabel('Magnitude [m/N]'); ldg = legend('location', 'southwest', 'FontSize', 8, 'NumColumns', 2); ldg.ItemTokenSize(1) = 20; -ylim([1e-6, 1e2]); +ylim([1e-4, 1e2]); ax2 = nexttile; hold on; @@ -2503,20 +2180,33 @@ hold off; set(gca, 'XScale', 'log'); set(gca, 'YScale', 'lin'); xlabel('Frequency [rad/s]'); ylabel('Phase [deg]'); yticks(-180:90:180); -ylim([-180 180]); +ylim([-180 0]); linkaxes([ax1,ax2],'x'); xlim([freqs(1), freqs(end)]); #+end_src -#+begin_src matlab :tangle no :exports results :results file replace -exportFig('figs/rotating_rdc_damped_plant.pdf', 'width', 'wide', 'height', 'tall'); +#+begin_src matlab :tangle no :exports results :results file none +exportFig('figs/rotating_rdc_damped_plant.pdf', 'width', 'half', 'height', 500); #+end_src -#+name: fig:rotating_rdc_damped_plant -#+caption: Damped plant using Relative Damping Control -#+RESULTS: +#+name: fig:rotating_rdc_result +#+caption: Relative Damping Control. Root Locus (\subref{fig:rotating_rdc_root_locus}) and obtained damped plant (\subref{rotating_rdc_damped_plant}) +#+attr_latex: :options [htbp] +#+begin_figure +#+attr_latex: :caption \subcaption{\label{fig:rotating_rdc_root_locus}Root Locus for Relative Damping Control} +#+attr_latex: :options {0.49\linewidth} +#+begin_subfigure +#+attr_latex: :scale 1 +[[file:figs/rotating_rdc_root_locus.png]] +#+end_subfigure +#+attr_latex: :caption \subcaption{\label{fig:rotating_rdc_damped_plant}Damped plant using Relative Damping Control} +#+attr_latex: :options {0.49\linewidth} +#+begin_subfigure +#+attr_latex: :scale 0.8 [[file:figs/rotating_rdc_damped_plant.png]] +#+end_subfigure +#+end_figure * Comparison of Active Damping Techniques :PROPERTIES: @@ -2526,7 +2216,6 @@ exportFig('figs/rotating_rdc_damped_plant.pdf', 'width', 'wide', 'height', 'tall ** Introduction :ignore: These two proposed IFF modifications as well as relative damping control are now compared in terms of added damping and closed-loop behavior. - For the following comparisons, the cut-off frequency for the added HPF is set to $\omega_i = 0.1 \omega_0$ and the stiffness of the parallel springs is set to $k_p = 5 m \Omega^2$ (corresponding to $\alpha = 0.05$). These values are chosen based on previous discussion about optimal parameters. @@ -2556,11 +2245,6 @@ These values are chosen based on previous discussion about optimal parameters. mdl = 'rotating_model'; #+end_src -#+begin_src matlab -%% Load "Generic" system dynamics -load('rotating_generic_plants.mat', 'Gs', 'Wzs'); -#+end_src - ** Identify plants :noexport: #+begin_src matlab %% The rotating speed is set to $\Omega = 0.1 \omega_0$. @@ -2588,7 +2272,6 @@ io(io_i) = linio([mdl, '/ext_metrology'], 1, 'openoutput'); io_i = io_i + 1; #+begin_src matlab %% Identifying plant with parallel stiffness - model_config.Tuv_type = "parallel_k"; % Parallel stiffness @@ -2607,7 +2290,6 @@ G_kp.OutputName = {'fu', 'fv', 'Du', 'Dv', 'Dx', 'Dy'}; #+begin_src matlab %% Identifying plant with no parallel stiffness - model_config.Tuv_type = "normal"; % Tuv Stage @@ -2642,15 +2324,13 @@ Krdc.OutputName = {'Fu', 'Fv'}; #+end_src ** Root Locus - Figure ref:fig:rotating_comp_techniques_root_locus shows the Root Locus plots for the two proposed IFF modifications as well as for relative damping control. While the two pairs of complex conjugate open-loop poles are identical for both IFF modifications, the transmission zeros are not. This means that the closed-loop behavior of both systems will differ when large control gains are used. One can observe that the closed loop poles corresponding to the system with added springs (in red) are bounded to the left half plane implying unconditional stability. This is not the case for the system where the controller is augmented with an HPF (in blue). - -It is interesting to note that the maximum added damping is very similar for both techniques. +It is interesting to note that the maximum added damping is very similar for both modified IFF techniques. #+begin_src matlab :exports none :results none %% Comparison of active damping techniques for rotating platform - Root Locus @@ -2697,22 +2377,84 @@ leg = legend('location', 'northwest', 'FontSize', 8); leg.ItemTokenSize(1) = 12; #+end_src -#+begin_src matlab :tangle no :exports results :results file replace -exportFig('figs/rotating_comp_techniques_root_locus.pdf', 'width', 'wide', 'height', 'tall'); +#+begin_src matlab :tangle no +gains = logspace(-2, 2, 500); + +poles_iff_hpf = rootLocusPolesSorted(G({'fu', 'fv'}, {'Fu', 'Fv'}), Kiff, gains, 'd_max', 1e-4); +poles_iff_kp = rootLocusPolesSorted(G_kp({'fu', 'fv'}, {'Fu', 'Fv'}), Kiff_kp, gains, 'd_max', 1e-4); +poles_rdc = rootLocusPolesSorted(G({'Du', 'Dv'}, {'Fu', 'Fv'}), Krdc, gains, 'd_max', 1e-4); + +figure; +hold on; +% IFF +plot(real(pole(G({'fu', 'fv'}, {'Fu', 'Fv'})*Kiff)), imag(pole(G({'fu', 'fv'}, {'Fu', 'Fv'})*Kiff)), 'x', 'color', colors(1,:), ... + 'DisplayName', 'IFF with HPF', 'MarkerSize', 8); +plot(real(tzero(G({'fu', 'fv'}, {'Fu', 'Fv'})*Kiff)), imag(tzero(G({'fu', 'fv'}, {'Fu', 'Fv'})*Kiff)), 'o', 'color', colors(1,:), ... + 'HandleVisibility', 'off', 'MarkerSize', 8); +for p_i = 1:size(poles_iff_hpf, 2) + plot(real(poles_iff_hpf(:, p_i)), imag(poles_iff_hpf(:, p_i)), '-', 'color', colors(1,:), ... + 'HandleVisibility', 'off'); +end + +% IFF with parallel stiffness +plot(real(pole(G_kp({'fu', 'fv'}, {'Fu', 'Fv'})*Kiff_kp)), imag(pole(G_kp({'fu', 'fv'}, {'Fu', 'Fv'})*Kiff_kp)), 'x', 'color', colors(2,:), ... + 'DisplayName', 'IFF with $k_p$', 'MarkerSize', 8); +plot(real(tzero(G_kp({'fu', 'fv'}, {'Fu', 'Fv'})*Kiff_kp)), imag(tzero(G_kp({'fu', 'fv'}, {'Fu', 'Fv'})*Kiff_kp)), 'o', 'color', colors(2,:), ... + 'HandleVisibility', 'off', 'MarkerSize', 8); +for p_i = 1:size(poles_iff_kp, 2) + plot(real(poles_iff_kp(:, p_i)), imag(poles_iff_kp(:, p_i)), '-', 'color', colors(2,:), ... + 'HandleVisibility', 'off'); +end +% RDC +plot(real(pole(G({'Du', 'Dv'}, {'Fu', 'Fv'})*Krdc)), imag(pole(G({'Du', 'Dv'}, {'Fu', 'Fv'})*Krdc)), 'x', 'color', colors(3,:), ... + 'DisplayName', 'RDC', 'MarkerSize', 8); +plot(real(tzero(G({'Du', 'Dv'}, {'Fu', 'Fv'})*Krdc)), imag(tzero(G({'Du', 'Dv'}, {'Fu', 'Fv'})*Krdc)), 'o', 'color', colors(3,:), ... + 'HandleVisibility', 'off', 'MarkerSize', 8); +for p_i = 1:size(poles_rdc, 2) + plot(real(poles_rdc(:, p_i)), imag(poles_rdc(:, p_i)), '-', 'color', colors(3,:), ... + 'HandleVisibility', 'off'); +end +hold off; +axis equal; +xlim([-1.15, 0.05]); ylim([0, 1.2]); +xticks([-1, -0.8, -0.6, -0.4, -0.2 , 0]); +xticklabels({'-$\omega_0$', '', '', '', '', '$0$'}); +yticks([0, 0.2, 0.4, 0.6, 0.8, 1]); +yticklabels({'$0$', '', '', '', '', '$\omega_0$'}); + +xlabel('Real Part'); ylabel('Imaginary Part'); +leg = legend('location', 'northwest', 'FontSize', 8); +leg.ItemTokenSize(1) = 12; + +exportFig('figs/rotating_comp_techniques_root_locus_inkscape.pdf', 'width', 600, 'height', 600, 'png', false, 'pdf', false, 'svg', true); + +xlim([-0.14, 0.02]); ylim([0, 0.2]); + +exportFig('figs/rotating_comp_techniques_root_locus_zoom.pdf', 'width', 600, 'height', 600, 'png', false, 'pdf', false, 'svg', true); #+end_src -#+name: fig:rotating_comp_techniques_root_locus -#+caption: Comparison of active damping techniques for rotating platform - Root Locus -#+RESULTS: +#+name: fig:rotating_comp_techniques +#+caption: Comparison of active damping techniques for rotating platform +#+attr_latex: :options [htbp] +#+begin_figure +#+attr_latex: :caption \subcaption{\label{fig:rotating_comp_techniques_root_locus}Root Locus} +#+attr_latex: :options {0.49\textwidth} +#+begin_subfigure +#+attr_latex: :width 0.95\linewidth [[file:figs/rotating_comp_techniques_root_locus.png]] +#+end_subfigure +#+attr_latex: :caption \subcaption{\label{fig:rotating_comp_techniques_dampled_plants}Damped plants} +#+attr_latex: :options {0.49\textwidth} +#+begin_subfigure +#+attr_latex: :width 0.95\linewidth +[[file:figs/rotating_comp_techniques_dampled_plants.png]] +#+end_subfigure +#+end_figure ** Obtained Damped Plant The actively damped plants are computed for the three techniques and compared in Figure ref:fig:rotating_comp_techniques_dampled_plants. - -#+begin_important -It is shown that while the diagonal (direct) terms of the damped plants are similar for the three active damping techniques, of off-diagonal (coupling) terms are not. -Integral Force Feedback strategy is adding some coupling at low frequency which may negatively impact the positioning performances. -#+end_important +It is shown that while the diagonal (direct) terms of the damped plants are similar for the three active damping techniques, the off-diagonal (coupling) terms are not. +Integral Force Feedback strategy is adding some coupling at low frequency which may negatively impact the positioning performance. #+begin_src matlab %% Compute Damped plants @@ -2723,7 +2465,7 @@ G_cl_rdc = feedback(G, Krdc, 'name'); #+begin_src matlab :exports none :results none %% Comparison of the damped plants obtained with the three active damping techniques -freqs = logspace(-3, 2, 1000); +freqs = logspace(-2, 2, 1000); figure; tiledlayout(3, 1, 'TileSpacing', 'Compact', 'Padding', 'None'); @@ -2764,48 +2506,36 @@ hold off; set(gca, 'XScale', 'log'); set(gca, 'YScale', 'lin'); xlabel('Frequency [rad/s]'); ylabel('Phase [deg]'); yticks(-180:90:180); -ylim([-180 180]); +ylim([-180 15]); linkaxes([ax1,ax2],'x'); xlim([freqs(1), freqs(end)]); +xticks([1e-2,1e-1,1,1e1,1e2]) +xticklabels({'$0.01 \omega_0$', '$0.1 \omega_0$', '$\omega_0$', '$10 \omega_0$', '$100 \omega_0$'}) #+end_src -#+begin_src matlab :tangle no :exports results :results file replace -exportFig('figs/rotating_comp_techniques_dampled_plants.pdf', 'width', 'wide', 'height', 'tall'); +#+begin_src matlab :tangle no :exports results :results file none +exportFig('figs/rotating_comp_techniques_dampled_plants.pdf', 'width', 'half', 'height', 600); #+end_src -#+name: fig:rotating_comp_techniques_dampled_plants -#+caption: Comparison of the damped plants obtained with the three active damping techniques -#+RESULTS: -[[file:figs/rotating_comp_techniques_dampled_plants.png]] - - ** Transmissibility And Compliance The proposed active damping techniques are now compared in terms of closed-loop transmissibility and compliance. - The transmissibility is here defined as the transfer function from a displacement of the rotating stage along $\vec{i}_x$ to the displacement of the payload along the same direction. It is used to characterize how much vibration is transmitted through the suspended platform to the payload. - The compliance describes the displacement response of the payload to external forces applied to it. This is a useful metric when disturbances are directly applied to the payload. It is here defined as the transfer function from external forces applied on the payload along $\vec{i}_x$ to the displacement of the payload along the same direction. -Very similar results are obtained for the two proposed IFF modifications in terms of transmissibility and compliance (Figure ref:fig:rotating_comp_techniques_transmissibility_compliance). - -#+begin_important +Very similar results are obtained for the two proposed IFF modifications in terms of transmissibility and compliance (Figure ref:fig:rotating_comp_techniques_trans_compliance). Using IFF degrades the compliance at low frequency while using relative damping control degrades the transmissibility at high frequency. This is very well known characteristics of these common active damping techniques that holds when applied to rotating platforms. -#+end_important #+begin_src matlab :exports none :results none %% Comparison of the obtained transmissibilty and compliance for the three tested active damping techniques freqs = logspace(-2, 2, 1000); +% transmissibility figure; -tiledlayout(1, 2, 'TileSpacing', 'Compact', 'Padding', 'None'); - -% Transmissibility -ax1 = nexttile(); hold on; plot(freqs, abs(squeeze(freqresp(G( 'Dx', 'Dfx'), freqs, 'rad/s'))), '-', 'color', zeros(1,3), ... 'DisplayName', 'OL') @@ -2819,8 +2549,15 @@ hold off; set(gca, 'XScale', 'log'); set(gca, 'YScale', 'log'); xlabel('Frequency [rad/s]'); ylabel('Transmissibility [m/m]'); xlim([freqs(1), freqs(end)]); +#+end_src +#+begin_src matlab :tangle no :exports results :results file none +exportFig('figs/rotating_comp_techniques_transmissibility.pdf', 'width', 'half', 'height', 450); +#+end_src + +#+begin_src matlab :exports none :results none % Compliance +figure; ax1 = nexttile(); hold on; plot(freqs, abs(squeeze(freqresp(G( 'Dx', 'Fdx'), freqs, 'rad/s'))), '-', 'color', zeros(1,3), ... @@ -2839,14 +2576,27 @@ ldg.ItemTokenSize = [10, 1]; xlim([freqs(1), freqs(end)]); #+end_src -#+begin_src matlab :tangle no :exports results :results file replace -exportFig('figs/rotating_comp_techniques_transmissibility_compliance.pdf', 'width', 'full', 'height', 'normal'); +#+begin_src matlab :tangle no :exports results :results file none +exportFig('figs/rotating_comp_techniques_compliance.pdf', 'width', 'half', 'height', 450); #+end_src -#+name: fig:rotating_comp_techniques_transmissibility_compliance -#+caption: Comparison of the obtained transmissibilty and compliance for the three tested active damping techniques -#+RESULTS: -[[file:figs/rotating_comp_techniques_transmissibility_compliance.png]] +#+name: fig:rotating_comp_techniques_trans_compliance +#+caption: Comparison of the obtained transmissibilty (\subref{fig:rotating_comp_techniques_transmissibility}) and compliance (\subref{fig:rotating_comp_techniques_compliance}) for the three tested active damping techniques +#+attr_latex: :options [htbp] +#+begin_figure +#+attr_latex: :caption \subcaption{\label{fig:rotating_comp_techniques_transmissibility}Transmissibility} +#+attr_latex: :options {0.49\textwidth} +#+begin_subfigure +#+attr_latex: :width 0.95\linewidth +[[file:figs/rotating_comp_techniques_transmissibility.png]] +#+end_subfigure +#+attr_latex: :caption \subcaption{\label{fig:rotating_comp_techniques_compliance}Compliance} +#+attr_latex: :options {0.49\textwidth} +#+begin_subfigure +#+attr_latex: :width 0.95\linewidth +[[file:figs/rotating_comp_techniques_compliance.png]] +#+end_subfigure +#+end_figure * Rotating Nano-Hexapod :PROPERTIES: @@ -2854,11 +2604,9 @@ exportFig('figs/rotating_comp_techniques_transmissibility_compliance.pdf', 'widt :END: <> ** Introduction :ignore: -The current analysis is now applied on a model representing the rotating nano-hexapod. - -Three nano-hexapod stiffnesses are tested: $k_n = \SI{0.01}{\N\per\mu\m}$, $k_n = \SI{1}{\N\per\mu\m}$ and $k_n = \SI{100}{\N\per\mu\m}$. - -Only the maximum rotating velocity is considered ($\Omega = \SI{60}{rpm}$) with the light sample ($m_s = \SI{1}{kg}$) as this is the worst identified case scenario. +The previous analysis is now applied on a model representing the rotating nano-hexapod. +Three nano-hexapod stiffnesses are tested as for the uniaxial model: $k_n = \SI{0.01}{\N\per\mu\m}$, $k_n = \SI{1}{\N\per\mu\m}$ and $k_n = \SI{100}{\N\per\mu\m}$. +Only the maximum rotating velocity is here considered ($\Omega = \SI{60}{rpm}$) with the light sample ($m_s = \SI{1}{kg}$) as this is the worst identified case scenario in terms of gyroscopic effects. ** Matlab Init :noexport:ignore: #+begin_src matlab :tangle no :results silent :noweb yes :var current_dir=(file-name-directory buffer-file-name) @@ -2887,8 +2635,6 @@ mdl = 'rotating_model'; #+end_src ** Identify NASS dynamics :noexport: -First, the dynamics is identified for all the considered cases. - #+begin_src matlab %% Nano-Hexapod mn = 15; % Nano-Hexapod mass [kg] @@ -2967,16 +2713,13 @@ Kneg_light = (15+1)*(2*pi)^2; #+end_src The transfer functions from nano-hexapod actuator force $F_u$ to the displacement of the nano-hexapod in the same direction $d_u$ as well as in the orthogonal direction $d_v$ (coupling) are shown in Figure ref:fig:rotating_nano_hexapod_dynamics for all three considered nano-hexapod stiffnesses. - -#+begin_important -It is shown that the rotation has the largest effect on the soft nano-hexapod: -- larger coupling (the ratio of the coupling term to the direct term is larger for the sort nano-hexapod) -- larger shift of poles as a function of the rotating velocity -#+end_important +The soft nano-hexapod is the most affected by the rotation. +This can be seen by the large shift of the resonance frequencies, and by the induced coupling which is larger than for the stiffer nano-hexapods. +The coupling (or interaction) in a MIMO $2 \times 2$ system can be visually estimated as the ratio between the diagonal term and the off-diagonal terms (see corresponding Appendix). #+begin_src matlab :results none %% Effect of rotation on the nano-hexapod dynamics -freqs = logspace(0, 3, 1000); +freqs = logspace(0, 1, 1000); figure; tiledlayout(3, 1, 'TileSpacing', 'Compact', 'Padding', 'None'); @@ -2984,21 +2727,84 @@ tiledlayout(3, 1, 'TileSpacing', 'Compact', 'Padding', 'None'); ax1 = nexttile([2,1]); hold on; plot(freqs, abs(squeeze(freqresp(G_vc_norot('Du', 'Fu'), freqs, 'Hz'))), '--', 'color', colors(1,:), ... - 'DisplayName', '$k_n = 0.01\,N/\mu m$'); + 'DisplayName', '$\Omega = 0\,$rpm, $D_u/F_u$'); plot(freqs, abs(squeeze(freqresp(G_vc_fast( 'Du', 'Fu'), freqs, 'Hz'))), '-' , 'color', colors(1,:), ... 'DisplayName', '$\Omega = 60\,$rpm, $D_u/F_u$'); plot(freqs, abs(squeeze(freqresp(G_vc_fast( 'Dv', 'Fu'), freqs, 'Hz'))), '-' , 'color', [colors(1,:), 0.5], ... 'DisplayName', '$\Omega = 60\,$rpm, $D_v/F_u$'); +hold off; +set(gca, 'XScale', 'log'); set(gca, 'YScale', 'log'); +ylabel('Magnitude [m/N]'); set(gca, 'XTickLabel',[]); +ylim([1e-6, 1e-2]) +ax2 = nexttile; +hold on; +plot(freqs, 180/pi*angle(squeeze(freqresp(G_vc_norot('Du', 'Fu'), freqs, 'Hz'))), '--', 'color', colors(1,:)); +plot(freqs, 180/pi*angle(squeeze(freqresp(G_vc_fast( 'Du', 'Fu'), freqs, 'Hz'))), '-' , 'color', colors(1,:)); +hold off; +set(gca, 'XScale', 'log'); set(gca, 'YScale', 'lin'); +xlabel('Frequency [Hz]'); ylabel('Phase [deg]'); +hold off; +yticks(-360:90:360); +ylim([-180, 0]); + +linkaxes([ax1,ax2],'x'); +% xlim([1, 1e3]); +#+end_src + +#+begin_src matlab :tangle no :exports results :results file none +exportFig('figs/rotating_nano_hexapod_dynamics_vc.pdf', 'width', 'third', 'height', 600); +#+end_src + +#+begin_src matlab :results none +%% Effect of rotation on the nano-hexapod dynamics +freqs = logspace(1, 2, 1000); + +figure; +tiledlayout(3, 1, 'TileSpacing', 'Compact', 'Padding', 'None'); + +ax1 = nexttile([2,1]); +hold on; plot(freqs, abs(squeeze(freqresp(G_md_norot('Du', 'Fu'), freqs, 'Hz'))), '--', 'color', colors(2,:), ... - 'DisplayName', '$k_n = 1\,N/\mu m$'); + 'DisplayName', '$\Omega = 0\,$rpm, $D_u/F_u$'); plot(freqs, abs(squeeze(freqresp(G_md_fast( 'Du', 'Fu'), freqs, 'Hz'))), '-' , 'color', colors(2,:), ... 'DisplayName', '$\Omega = 60\,$rpm, $D_u/F_u$'); plot(freqs, abs(squeeze(freqresp(G_md_fast( 'Dv', 'Fu'), freqs, 'Hz'))), '-' , 'color', [colors(2,:), 0.5], ... 'DisplayName', '$\Omega = 60\,$rpm, $D_v/F_u$'); +hold off; +set(gca, 'XScale', 'log'); set(gca, 'YScale', 'log'); +ylabel('Magnitude [m/N]'); set(gca, 'XTickLabel',[]); +ylim([1e-8, 1e-4]) +ax2 = nexttile; +hold on; +plot(freqs, 180/pi*angle(squeeze(freqresp(G_md_norot('Du', 'Fu'), freqs, 'Hz'))), '--', 'color', colors(2,:)); +plot(freqs, 180/pi*angle(squeeze(freqresp(G_md_fast( 'Du', 'Fu'), freqs, 'Hz'))), '-' , 'color', colors(2,:)); +hold off; +set(gca, 'XScale', 'log'); set(gca, 'YScale', 'lin'); +xlabel('Frequency [Hz]'); ylabel('Phase [deg]'); +hold off; +yticks(-360:90:360); +ylim([-180, 0]); + +linkaxes([ax1,ax2],'x'); +#+end_src + +#+begin_src matlab :tangle no :exports results :results file none +exportFig('figs/rotating_nano_hexapod_dynamics_md.pdf', 'width', 'third', 'height', 600); +#+end_src + +#+begin_src matlab :results none +%% Effect of rotation on the nano-hexapod dynamics +freqs = logspace(2, 3, 1000); + +figure; +tiledlayout(3, 1, 'TileSpacing', 'Compact', 'Padding', 'None'); + +ax1 = nexttile([2,1]); +hold on; plot(freqs, abs(squeeze(freqresp(G_pz_norot('Du', 'Fu'), freqs, 'Hz'))), '--', 'color', colors(3,:), ... - 'DisplayName', '$k_n = 100\,N/\mu m$'); + 'DisplayName', '$\Omega = 0\,$rpm, $D_u/F_u$'); plot(freqs, abs(squeeze(freqresp(G_pz_fast( 'Du', 'Fu'), freqs, 'Hz'))), '-' , 'color', colors(3,:), ... 'DisplayName', '$\Omega = 60\,$rpm, $D_u/F_u$'); plot(freqs, abs(squeeze(freqresp(G_pz_fast( 'Dv', 'Fu'), freqs, 'Hz'))), '-' , 'color', [colors(3,:), 0.5], ... @@ -3006,18 +2812,10 @@ plot(freqs, abs(squeeze(freqresp(G_pz_fast( 'Dv', 'Fu'), freqs, 'Hz'))), '-' , ' hold off; set(gca, 'XScale', 'log'); set(gca, 'YScale', 'log'); ylabel('Magnitude [m/N]'); set(gca, 'XTickLabel',[]); -ylim([1e-12, 1e-2]) -ldg = legend('location', 'northeast', 'FontSize', 8, 'NumColumns', 3); -ldg.ItemTokenSize = [20, 1]; +ylim([1e-10, 1e-6]) ax2 = nexttile; hold on; -plot(freqs, 180/pi*angle(squeeze(freqresp(G_vc_norot('Du', 'Fu'), freqs, 'Hz'))), '--', 'color', colors(1,:)); -plot(freqs, 180/pi*angle(squeeze(freqresp(G_vc_fast( 'Du', 'Fu'), freqs, 'Hz'))), '-' , 'color', colors(1,:)); - -plot(freqs, 180/pi*angle(squeeze(freqresp(G_md_norot('Du', 'Fu'), freqs, 'Hz'))), '--', 'color', colors(2,:)); -plot(freqs, 180/pi*angle(squeeze(freqresp(G_md_fast( 'Du', 'Fu'), freqs, 'Hz'))), '-' , 'color', colors(2,:)); - plot(freqs, 180/pi*angle(squeeze(freqresp(G_pz_norot('Du', 'Fu'), freqs, 'Hz'))), '--', 'color', colors(3,:)); plot(freqs, 180/pi*angle(squeeze(freqresp(G_pz_fast( 'Du', 'Fu'), freqs, 'Hz'))), '-' , 'color', colors(3,:)); hold off; @@ -3028,67 +2826,45 @@ yticks(-360:90:360); ylim([-180, 0]); linkaxes([ax1,ax2],'x'); -xlim([1, 1e3]); #+end_src -#+begin_src matlab :tangle no :exports results :results file replace -exportFig('figs/rotating_nano_hexapod_dynamics.pdf', 'width', 'full', 'height', 'tall'); +#+begin_src matlab :tangle no :exports results :results file none +exportFig('figs/rotating_nano_hexapod_dynamics_pz.pdf', 'width', 'third', 'height', 600); #+end_src #+name: fig:rotating_nano_hexapod_dynamics -#+caption: Effect of rotation on the nano-hexapod dynamics - Dashed lines are the plants without rotation, solid lines are plants at maximum rotating velocity, and shaded lines are coupling terms at maximum rotating velocity -#+RESULTS: -[[file:figs/rotating_nano_hexapod_dynamics.png]] - -** Coupling :noexport: -Let's define the /coupling ratio/ $\mathcal{C}$ in the system as the ratio of the magnitude of the coupling term $G_c$ to the magnitude of the direct term $G_d$: -\begin{equation} -\mathcal{C}(\omega) = \frac{|G_c(j\omega)|}{|G_d(j\omega)|} -\end{equation} - -This gives some information in the coupling in the system. -This is quite important as high coupling can affect the closed-loop stability. - -The coupling ratio for the three nano-hexapod stiffnesses are shown in Figure ref:fig:rotating_coupling_ratio_nano_hexapod for the maximum rotating velocity $\Omega = 60\,\text{rpm}$. - -#+begin_important -It is shown that the low frequency coupling is inversely proportional to the nano-hexapod stiffness (Figure ref:fig:rotating_coupling_ratio_nano_hexapod). -High nano-hexapod stiffness makes the system better decoupled and therefore easier to control. -#+end_important - -#+begin_src matlab :results none -%% Coupling ratio of the nano-hexapod at maximum velocity -figure; -tiledlayout(1, 1, 'TileSpacing', 'Compact', 'Padding', 'None'); -hold on; -plot(freqs, abs(squeeze(freqresp(G_vc_fast('Dv', 'Fu')/G_vc_fast('Du', 'Fu'), freqs, 'Hz'))), ... - 'DisplayName', '$k_n = 0.01\,N/\mu m$'); -plot(freqs, abs(squeeze(freqresp(G_md_fast('Dv', 'Fu')/G_md_fast('Du', 'Fu'), freqs, 'Hz'))), ... - 'DisplayName', '$k_n = 1\,N/\mu m$'); -plot(freqs, abs(squeeze(freqresp(G_pz_fast('Dv', 'Fu')/G_pz_fast('Du', 'Fu'), freqs, 'Hz'))), ... - 'DisplayName', '$k_n = 100\,N/\mu m$'); -hold off; -set(gca, 'XScale', 'log'); set(gca, 'YScale', 'log'); -xlabel('Frequency [Hz]'); ylabel('Coupling ratio'); -xlim([1, 500]); -legend('location', 'southeast', 'FontSize', 8, 'NumColumns', 1); -#+end_src - -#+begin_src matlab :tangle no :exports results :results file replace -exportFig('figs/rotating_coupling_ratio_nano_hexapod.pdf', 'width', 'wide', 'height', 'normal'); -#+end_src - -#+name: fig:rotating_coupling_ratio_nano_hexapod -#+caption: Coupling ratio of the nano-hexapod at maximum velocity ($\Omega = 60\,\text{rpm}$) -#+RESULTS: -[[file:figs/rotating_coupling_ratio_nano_hexapod.png]] +#+caption: Effect of rotation on the nano-hexapod dynamics. Dashed lines are the plants without rotation, solid lines are plants at maximum rotating velocity ($\Omega = 60\,\text{rpm}$), and shaded lines are coupling terms at maximum rotating velocity +#+attr_latex: :options [htbp] +#+begin_figure +#+attr_latex: :caption \subcaption{\label{fig:uniaxial_damped_plant_three_active_damping_techniques_vc}$k_n = 0.01\,N/\mu m$} +#+attr_latex: :options {0.33\textwidth} +#+begin_subfigure +#+attr_latex: :width 0.95\linewidth +[[file:figs/rotating_nano_hexapod_dynamics_vc.png]] +#+end_subfigure +#+attr_latex: :caption \subcaption{\label{fig:rotating_nano_hexapod_dynamics_md}$k_n = 1\,N/\mu m$} +#+attr_latex: :options {0.33\textwidth} +#+begin_subfigure +#+attr_latex: :width 0.95\linewidth +[[file:figs/rotating_nano_hexapod_dynamics_md.png]] +#+end_subfigure +#+attr_latex: :caption \subcaption{\label{fig:rotating_nano_hexapod_dynamics_pz}$k_n = 100\,N/\mu m$} +#+attr_latex: :options {0.33\textwidth} +#+begin_subfigure +#+attr_latex: :width 0.95\linewidth +[[file:figs/rotating_nano_hexapod_dynamics_pz.png]] +#+end_subfigure +#+end_figure ** Optimal IFF with High Pass Filter -Let's apply Integral Force Feedback with an added High Pass Filter to the three nano-hexapods. - -First, let's find the parameters of the IFF controller that yield best simultaneous damping. -The results are shown in Figure ref:fig:rotating_iff_hpf_nass_optimal_gain. -The added damping for the soft nano-hexapod is quite low and is limited by the maximum usable gain. +Integral Force Feedback with an added High Pass Filter is applied to the three nano-hexapods. +First, the parameters ($\omega_i$ and $g$) of the IFF controller that yield best simultaneous damping are determined from Figure ref:fig:rotating_iff_hpf_nass_optimal_gain. +The IFF parameters are chosen as follow: +- for $k_n = \SI{0.01}{\N\per\mu\m}$ (Figure ref:fig:rotating_iff_hpf_nass_optimal_gain): $\omega_i$ is chosen such that the maximum damping is achieved while the gain is less than half of the maximum gain at which the system is unstable. + This is done to have some control robustness. +- for $k_n = \SI{1}{\N\per\mu\m}$ and $k_n = \SI{100}{\N\per\mu\m}$ (Figure ref:fig:rotating_iff_hpf_nass_optimal_gain_md and ref:fig:rotating_iff_hpf_nass_optimal_gain_pz): the largest $\omega_i$ is chosen such that obtained damping is $\SI{95}{\percent}$ of the maximum achievable damping. + Large $\omega_i$ is chosen here to limit the loss of compliance and the increase of coupling at low frequency as was shown in Section ref:sec:rotating_iff_pseudo_int. +The obtained IFF parameters and the achievable damping are visually shown by large dots in Figure ref:fig:rotating_iff_hpf_nass_optimal_gain and are summarized in Table ref:tab:rotating_iff_hpf_opt_iff_hpf_params_nass. #+begin_src matlab %% Compute the optimal control gain @@ -3127,92 +2903,6 @@ for wi_i = 1:length(wis) end #+end_src -#+begin_src matlab :results none -%% Optimal modified IFF parameters that yields maximum simultaneous damping -figure; -tiledlayout(1, 3, 'TileSpacing', 'Compact', 'Padding', 'None'); - -ax1 = nexttile(); -yyaxis left -plot(wis, opt_iff_hpf_xi_vc, '-', 'DisplayName', '$\xi_{cl}$'); -set(gca, 'YScale', 'lin'); -ylim([0,1]); -ylabel('Damping Ratio $\xi$'); - -yyaxis right -hold on; -plot(wis, opt_iff_hpf_gain_vc, '-', 'DisplayName', '$g_{opt}$'); -plot(wis, wis*((sqrt(1e4/16)/(2*pi))^2 - 1), '--', 'DisplayName', '$g_{max}$'); -set(gca, 'YScale', 'lin'); -ylim([0,200]); -xlabel('$\omega_i$ [rad/s]'); -set(gca, 'YTickLabel',[]); -% ylabel('Controller gain $g$'); -set(gca, 'XScale', 'log'); -xticks([1e-2,1,1e2]) -legend('location', 'northwest', 'FontSize', 8); -title('$k_n = 0.01\,N/\mu m$'); - -ax2 = nexttile(); -yyaxis left -plot(wis, opt_iff_hpf_xi_md, '-'); -set(gca, 'YScale', 'lin'); -ylim([0,1]); -% ylabel('Damping Ratio $\xi$'); -set(gca, 'YTickLabel',[]); - -yyaxis right -hold on; -plot(wis, opt_iff_hpf_gain_md, '-'); -plot(wis, wis*((sqrt(1e6/16)/(2*pi))^2 - 1), '--'); -set(gca, 'YScale', 'lin'); -ylim([0,1000]); -xlabel('$\omega_i$ [rad/s]'); -% ylabel('Controller gain $g$'); -set(gca, 'YTickLabel',[]); -set(gca, 'XScale', 'log'); -xticks([1e-2,1,1e2]) -title('$k_n = 1\,N/\mu m$'); - -ax3 = nexttile(); -yyaxis left -plot(wis, opt_iff_hpf_xi_pz, '-'); -set(gca, 'YScale', 'lin'); -ylim([0,1]); -set(gca, 'YTickLabel',[]); -% ylabel('Damping Ratio $\xi$'); - -yyaxis right -hold on; -plot(wis, opt_iff_hpf_gain_pz, '-'); -plot(wis, wis*((sqrt(1e8/16)/(2*pi))^2 - 1), '--'); -set(gca, 'YScale', 'lin'); -ylim([0,10000]); -xlabel('$\omega_i$ [rad/s]'); -set(gca, 'YTickLabel',[]); -ylabel('Controller gain $g$'); -set(gca, 'XScale', 'log'); -xticks([1e-2,1,1e2]) -title('$k_n = 100\,N/\mu m$'); -#+end_src - -#+begin_src matlab :tangle no :exports results :results file replace -exportFig('figs/rotating_iff_hpf_nass_optimal_gain.pdf', 'width', 'full', 'height', 'normal'); -#+end_src - -#+name: fig:rotating_iff_hpf_nass_optimal_gain -#+caption: Optimal high pass filter cut-off frequency $\omega_i$ that yields maximum simultaneous damping -#+RESULTS: -[[file:figs/rotating_iff_hpf_nass_optimal_gain.png]] - -The IFF parameters are chosen as follow: -- for $k_n = \SI{0.01}{\N\per\mu\m}$: $\omega_i$ is chosen such that the maximum damping is achieved while the gain is less than half of the maximum gain at which the system is unstable. - This is done to have some control robustness. -- for $k_n = \SI{1}{\N\per\mu\m}$ and $k_n = \SI{100}{\N\per\mu\m}$: the largest $\omega_i$ is chosen such that obtained damping is $\SI{95}{\percent}$ of the maximum achievable damping. - Large $\omega_i$ is chosen here to limit the loss of compliance and the increase of coupling at low frequency as was shown in Section ref:sec:rotating_iff_pseudo_int. - -The obtained IFF parameters and the achievable damping are summarized in Table ref:tab:iff_hpf_opt_iff_hpf_params_nass. - #+begin_src matlab %% Find optimal parameters with at least a gain margin of 2 i_iff_hpf_vc = find(opt_iff_hpf_gain_vc < 0.5*(wis*((sqrt(1e4/16)/(2*pi))^2 - 1))); @@ -3225,196 +2915,147 @@ i_iff_hpf_pz = find(opt_iff_hpf_xi_pz > 0.95*max(opt_iff_hpf_xi_pz)); i_iff_hpf_pz = i_iff_hpf_pz(end)+1; #+end_src +#+begin_src matlab :results none +%% Optimal modified IFF parameters that yields maximum simultaneous damping +figure; +yyaxis left +hold on; +plot(wis, opt_iff_hpf_xi_vc, '-', 'DisplayName', '$\xi_{cl}$'); +plot(wis(i_iff_hpf_vc), opt_iff_hpf_xi_vc(i_iff_hpf_vc), '.', 'MarkerSize', 15, 'HandleVisibility', 'off'); +hold off; +set(gca, 'YScale', 'lin'); +ylim([0,1]); +ylabel('Damping Ratio $\xi$'); + +yyaxis right +hold on; +plot(wis, opt_iff_hpf_gain_vc, '-', 'DisplayName', '$g_{opt}$'); +plot(wis, wis*((sqrt(1e4/16)/(2*pi))^2 - 1), '--', 'DisplayName', '$g_{max}$'); +plot(wis(i_iff_hpf_vc), opt_iff_hpf_gain_vc(i_iff_hpf_vc), '.', 'MarkerSize', 15, 'HandleVisibility', 'off'); +set(gca, 'YScale', 'lin'); +ylim([0,200]); +xlabel('$\omega_i$ [rad/s]'); +set(gca, 'YTickLabel',[]); +ylabel('Controller gain $g$'); +set(gca, 'XScale', 'log'); +xticks([1e-2,1,1e2]) +legend('location', 'northwest', 'FontSize', 8); +#+end_src + +#+begin_src matlab :tangle no :exports results :results file replace +exportFig('figs/rotating_iff_hpf_nass_optimal_gain_vc.pdf', 'width', 'third', 'height', 450); +#+end_src + +#+begin_src matlab :results none +figure; +yyaxis left +hold on; +plot(wis, opt_iff_hpf_xi_md, '-'); +plot(wis(i_iff_hpf_md), opt_iff_hpf_xi_md(i_iff_hpf_md), '.', 'MarkerSize', 15, 'HandleVisibility', 'off'); +hold off; +set(gca, 'YScale', 'lin'); +ylim([0,1]); +ylabel('Damping Ratio $\xi$'); + +yyaxis right +hold on; +plot(wis, opt_iff_hpf_gain_md, '-'); +plot(wis(i_iff_hpf_md), opt_iff_hpf_gain_md(i_iff_hpf_md), '.', 'MarkerSize', 15, 'HandleVisibility', 'off'); +plot(wis, wis*((sqrt(1e6/16)/(2*pi))^2 - 1), '--'); +set(gca, 'YScale', 'lin'); +ylim([0,1000]); +xlabel('$\omega_i$ [rad/s]'); +ylabel('Controller gain $g$'); +set(gca, 'YTickLabel',[]); +set(gca, 'XScale', 'log'); +xticks([1e-2,1,1e2]) +#+end_src + +#+begin_src matlab :tangle no :exports results :results file replace +exportFig('figs/rotating_iff_hpf_nass_optimal_gain_md.pdf', 'width', 'third', 'height', 450); +#+end_src + +#+begin_src matlab :results none +figure; +yyaxis left +hold on; +plot(wis, opt_iff_hpf_xi_pz, '-'); +plot(wis(i_iff_hpf_pz), opt_iff_hpf_xi_pz(i_iff_hpf_pz), '.', 'MarkerSize', 15, 'HandleVisibility', 'off'); +hold off; +set(gca, 'YScale', 'lin'); +ylim([0,1]); +ylabel('Damping Ratio $\xi$'); + +yyaxis right +hold on; +plot(wis, opt_iff_hpf_gain_pz, '-'); +plot(wis(i_iff_hpf_pz), opt_iff_hpf_gain_pz(i_iff_hpf_pz), '.', 'MarkerSize', 15, 'HandleVisibility', 'off'); +plot(wis, wis*((sqrt(1e8/16)/(2*pi))^2 - 1), '--'); +set(gca, 'YScale', 'lin'); +ylim([0,10000]); +xlabel('$\omega_i$ [rad/s]'); +set(gca, 'YTickLabel',[]); +ylabel('Controller gain $g$'); +set(gca, 'XScale', 'log'); +xticks([1e-2,1,1e2]) +#+end_src + +#+begin_src matlab :tangle no :exports results :results file replace +exportFig('figs/rotating_iff_hpf_nass_optimal_gain_pz.pdf', 'width', 'third', 'height', 450); +#+end_src + +#+name: fig:rotating_iff_hpf_nass_optimal_gain +#+caption: For each value of $\omega_i$, the maximum damping ratio $\xi$ is computed (blue) and the corresponding controller gain is shown (in red). The choosen controller parameters used for further analysis are shown by the large dots. +#+attr_latex: :options [htbp] +#+begin_figure +#+attr_latex: :caption \subcaption{\label{fig:rotating_iff_hpf_nass_optimal_gain_vc}$k_n = 0.01\,N/\mu m$} +#+attr_latex: :options {0.33\textwidth} +#+begin_subfigure +#+attr_latex: :width 0.95\linewidth +[[file:figs/rotating_iff_hpf_nass_optimal_gain_vc.png]] +#+end_subfigure +#+attr_latex: :caption \subcaption{\label{fig:rotating_iff_hpf_nass_optimal_gain_md}$k_n = 1\,N/\mu m$} +#+attr_latex: :options {0.33\textwidth} +#+begin_subfigure +#+attr_latex: :width 0.95\linewidth +[[file:figs/rotating_iff_hpf_nass_optimal_gain_md.png]] +#+end_subfigure +#+attr_latex: :caption \subcaption{\label{fig:rotating_iff_hpf_nass_optimal_gain_pz}$k_n = 100\,N/\mu m$} +#+attr_latex: :options {0.33\textwidth} +#+begin_subfigure +#+attr_latex: :width 0.95\linewidth +[[file:figs/rotating_iff_hpf_nass_optimal_gain_pz.png]] +#+end_subfigure +#+end_figure + #+begin_src matlab :exports results :results value table replace :tangle no :post addhdr(*this*) data2orgtable([wis(i_iff_hpf_vc), opt_iff_hpf_gain_vc(i_iff_hpf_vc), opt_iff_hpf_xi_vc(i_iff_hpf_vc); wis(i_iff_hpf_md), opt_iff_hpf_gain_md(i_iff_hpf_md), opt_iff_hpf_xi_md(i_iff_hpf_md); wis(i_iff_hpf_pz), opt_iff_hpf_gain_pz(i_iff_hpf_pz), opt_iff_hpf_xi_pz(i_iff_hpf_pz)], {'$k_n = 0.01\,N/\mu m$', '$k_n = 1\,N/\mu m$', '$k_n = 100\,N/\mu m$'}, {'$\omega_i$', '$g$', '$\xi$'}, ' %.2f '); #+end_src -#+name: tab:iff_hpf_opt_iff_hpf_params_nass -#+caption: Obtained optimal parameters for the modified IFF controller -#+attr_latex: :environment tabularx :width 0.5\linewidth :align lXXX +#+name: tab:rotating_iff_hpf_opt_iff_hpf_params_nass +#+caption: Obtained optimal parameters ($\omega_i$ and $g$) for the modified IFF controller including a high pass filter. The corresponding achievable simultaneous damping of the two modes $\xi$ is also shown. +#+attr_latex: :environment tabularx :width 0.4\linewidth :align Xccc #+attr_latex: :center t :booktabs t #+RESULTS: -| | $\omega_i$ | $g$ | $\xi$ | -|-----------------------+------------+---------+-------| -| $k_n = 0.01\,N/\mu m$ | 7.32 | 51.13 | 0.45 | -| $k_n = 1\,N/\mu m$ | 39.17 | 426.95 | 0.93 | -| $k_n = 100\,N/\mu m$ | 499.45 | 3774.63 | 0.94 | - -The Root Locus for all three nano-hexapods are shown in Figure ref:fig:rotating_root_locus_iff_hpf_nass with included optimal chosen gains. - -#+begin_src matlab -%% Optimal IFF with added HPF -Kiff_hpf_vc = opt_iff_hpf_gain_vc(i_iff_hpf_vc)/(s + wis(i_iff_hpf_vc))*eye(2); -Kiff_hpf_vc.InputName = {'fu', 'fv'}; -Kiff_hpf_vc.OutputName = {'Fu', 'Fv'}; - -Kiff_hpf_md = opt_iff_hpf_gain_md(i_iff_hpf_md)/(s + wis(i_iff_hpf_md))*eye(2); -Kiff_hpf_md.InputName = {'fu', 'fv'}; -Kiff_hpf_md.OutputName = {'Fu', 'Fv'}; - -Kiff_hpf_pz = opt_iff_hpf_gain_pz(i_iff_hpf_pz)/(s + wis(i_iff_hpf_pz))*eye(2); -Kiff_hpf_pz.InputName = {'fu', 'fv'}; -Kiff_hpf_pz.OutputName = {'Fu', 'Fv'}; -#+end_src - -#+begin_src matlab :results none -%% Root Locus for optimal parameters - Comparison of attainable damping with the soft and moderately stiff nano-hexapods -gains = logspace(-2, 3, 200); - -figure; -tiledlayout(1, 3, 'TileSpacing', 'Compact', 'Padding', 'None'); - -% Voice coil Nano-Hexapod -ax1 = nexttile(); -hold on; -for g = gains - clpoles = pole(feedback(G_vc_norot({'fu', 'fv'}, {'Fu', 'Fv'}), g*Kiff_hpf_vc)); - plot(real(clpoles), imag(clpoles), '.', 'color', colors(1,:),'MarkerSize',4, ... - 'HandleVisibility', 'off'); -end -clpoles = pole(feedback(G_vc_norot({'fu', 'fv'}, {'Fu', 'Fv'}), Kiff_hpf_vc)); -plot(real(clpoles), imag(clpoles), '.', 'color', colors(1,:),'MarkerSize', 15, ... - 'DisplayName', '$\Omega = 0$'); -plot(real(pole(G_vc_norot({'fu', 'fv'}, {'Fu', 'Fv'})*Kiff_hpf_vc)), ... - imag(pole(G_vc_norot({'fu', 'fv'}, {'Fu', 'Fv'})*Kiff_hpf_vc)), ... - 'x', 'color', colors(1,:),'MarkerSize',8, ... - 'HandleVisibility', 'off'); -plot(real(tzero(G_vc_norot({'fu', 'fv'}, {'Fu', 'Fv'})*Kiff_hpf_vc)), ... - imag(tzero(G_vc_norot({'fu', 'fv'}, {'Fu', 'Fv'})*Kiff_hpf_vc)), ... - 'o', 'color', colors(1,:),'MarkerSize',8, ... - 'HandleVisibility', 'off'); - -for g = gains - clpoles = pole(feedback(G_vc_fast({'fu', 'fv'}, {'Fu', 'Fv'}), g*Kiff_hpf_vc)); - plot(real(clpoles), imag(clpoles), '.', 'color', colors(2,:),'MarkerSize',4, ... - 'HandleVisibility', 'off'); -end -clpoles = pole(feedback(G_vc_fast({'fu', 'fv'}, {'Fu', 'Fv'}), Kiff_hpf_vc)); -plot(real(clpoles), imag(clpoles), '.', 'color', colors(2,:),'MarkerSize', 15, ... - 'DisplayName', '$\Omega = 60$ rpm'); -plot(real(pole(G_vc_fast({'fu', 'fv'}, {'Fu', 'Fv'})*Kiff_hpf_vc)), ... - imag(pole(G_vc_fast({'fu', 'fv'}, {'Fu', 'Fv'})*Kiff_hpf_vc)), ... - 'x', 'color', colors(2,:),'MarkerSize',8, ... - 'HandleVisibility', 'off'); -plot(real(tzero(G_vc_fast({'fu', 'fv'}, {'Fu', 'Fv'})*Kiff_hpf_vc)), ... - imag(tzero(G_vc_fast({'fu', 'fv'}, {'Fu', 'Fv'})*Kiff_hpf_vc)), ... - 'o', 'color', colors(2,:),'MarkerSize',8, ... - 'HandleVisibility', 'off'); - -plot([0, -1e2*opt_iff_hpf_xi_vc(i_iff_hpf_vc)], [0, 1e2*cos(asin(opt_iff_hpf_xi_vc(i_iff_hpf_vc)))], '-', ... - 'DisplayName', sprintf('$\\xi = %.2f$', opt_iff_hpf_xi_vc(i_iff_hpf_vc)), 'color', [zeros(1,3), 0.5]) -hold off; -axis square; -xlabel('Real Part'); ylabel('Imaginary Part'); -xlim([-65, 5]); ylim([-35, 35]); -set(gca, 'XTickLabel',[]); set(gca, 'YTickLabel',[]); -title('$k_n = 0.01\,N/\mu m$'); -ldg = legend('location', 'northwest', 'FontSize', 8, 'NumColumns', 1); -ldg.ItemTokenSize = [10, 1]; - -% APA Nano-Hexapod -ax2 = nexttile(); -hold on; -for g = gains - clpoles = pole(feedback(G_md_norot({'fu', 'fv'}, {'Fu', 'Fv'}), g*Kiff_hpf_md)); - plot(real(clpoles), imag(clpoles), '.', 'color', colors(1,:),'MarkerSize',4); -end -clpoles = pole(feedback(G_md_norot({'fu', 'fv'}, {'Fu', 'Fv'}), Kiff_hpf_md)); -plot(real(clpoles), imag(clpoles), '.', 'color', colors(1,:),'MarkerSize', 15); -plot(real(pole(G_md_norot({'fu', 'fv'}, {'Fu', 'Fv'})*Kiff_hpf_md)), ... - imag(pole(G_md_norot({'fu', 'fv'}, {'Fu', 'Fv'})*Kiff_hpf_md)), ... - 'x', 'color', colors(1,:),'MarkerSize',8); -plot(real(tzero(G_md_norot({'fu', 'fv'}, {'Fu', 'Fv'})*Kiff_hpf_md)), ... - imag(tzero(G_md_norot({'fu', 'fv'}, {'Fu', 'Fv'})*Kiff_hpf_md)), ... - 'o', 'color', colors(1,:),'MarkerSize',8); - -for g = gains - clpoles = pole(feedback(G_md_fast({'fu', 'fv'}, {'Fu', 'Fv'}), g*Kiff_hpf_md)); - plot(real(clpoles), imag(clpoles), '.', 'color', colors(2,:),'MarkerSize',4); -end -clpoles = pole(feedback(G_md_fast({'fu', 'fv'}, {'Fu', 'Fv'}), Kiff_hpf_md)); -plot(real(clpoles), imag(clpoles), '.', 'color', colors(2,:),'MarkerSize', 15); -plot(real(pole(G_md_fast({'fu', 'fv'}, {'Fu', 'Fv'})*Kiff_hpf_md)), ... - imag(pole(G_md_fast({'fu', 'fv'}, {'Fu', 'Fv'})*Kiff_hpf_md)), ... - 'x', 'color', colors(2,:),'MarkerSize',8); -plot(real(tzero(G_md_fast({'fu', 'fv'}, {'Fu', 'Fv'})*Kiff_hpf_md)), ... - imag(tzero(G_md_fast({'fu', 'fv'}, {'Fu', 'Fv'})*Kiff_hpf_md)), ... - 'o', 'color', colors(2,:),'MarkerSize',8); - -L = plot([0, -1e3*opt_iff_hpf_xi_md(i_iff_hpf_md)], [0, 1e3*cos(asin(opt_iff_hpf_xi_md(i_iff_hpf_md)))], '-', ... - 'DisplayName', sprintf('$\\xi = %.2f$', opt_iff_hpf_xi_md(i_iff_hpf_md)), 'color', [zeros(1,3), 0.5]); -leg = legend(L, 'location', 'northwest', 'FontSize', 8); -leg.ItemTokenSize(1) = 10; -hold off; -axis square; -xlabel('Real Part'); ylabel('Imaginary Part'); -xlim([-520, 20]); ylim([-270, 270]); -set(gca, 'XTickLabel',[]); set(gca, 'YTickLabel',[]); -title('$k_n = 1\,N/\mu m$'); - -% Piezo Nano-Hexapod -ax3 = nexttile(); -hold on; -for g = gains - clpoles = pole(feedback(G_pz_norot({'fu', 'fv'}, {'Fu', 'Fv'}), g*Kiff_hpf_pz)); - plot(real(clpoles), imag(clpoles), '.', 'color', colors(1,:),'MarkerSize',4); -end -clpoles = pole(feedback(G_pz_norot({'fu', 'fv'}, {'Fu', 'Fv'}), Kiff_hpf_pz)); -plot(real(clpoles), imag(clpoles), '.', 'color', colors(1,:),'MarkerSize', 15); -plot(real(pole(G_pz_norot({'fu', 'fv'}, {'Fu', 'Fv'})*Kiff_hpf_pz)), ... - imag(pole(G_pz_norot({'fu', 'fv'}, {'Fu', 'Fv'})*Kiff_hpf_pz)), ... - 'x', 'color', colors(1,:),'MarkerSize',8); -plot(real(tzero(G_pz_norot({'fu', 'fv'}, {'Fu', 'Fv'})*Kiff_hpf_pz)), ... - imag(tzero(G_pz_norot({'fu', 'fv'}, {'Fu', 'Fv'})*Kiff_hpf_pz)), ... - 'o', 'color', colors(1,:),'MarkerSize',8); - -for g = gains - clpoles = pole(feedback(G_pz_fast({'fu', 'fv'}, {'Fu', 'Fv'}), g*Kiff_hpf_pz)); - plot(real(clpoles), imag(clpoles), '.', 'color', colors(2,:),'MarkerSize',4); -end -clpoles = pole(feedback(G_pz_fast({'fu', 'fv'}, {'Fu', 'Fv'}), Kiff_hpf_pz)); -plot(real(clpoles), imag(clpoles), '.', 'color', colors(2,:),'MarkerSize', 15); -plot(real(pole(G_pz_fast({'fu', 'fv'}, {'Fu', 'Fv'})*Kiff_hpf_pz)), ... - imag(pole(G_pz_fast({'fu', 'fv'}, {'Fu', 'Fv'})*Kiff_hpf_pz)), ... - 'x', 'color', colors(2,:),'MarkerSize',8); -plot(real(tzero(G_pz_fast({'fu', 'fv'}, {'Fu', 'Fv'})*Kiff_hpf_pz)), ... - imag(tzero(G_pz_fast({'fu', 'fv'}, {'Fu', 'Fv'})*Kiff_hpf_pz)), ... - 'o', 'color', colors(2,:),'MarkerSize',8); - -L = plot([0, -1e4*opt_iff_hpf_xi_pz(i_iff_hpf_pz)], [0, 1e4*cos(asin(opt_iff_hpf_xi_pz(i_iff_hpf_pz)))], '-', ... - 'DisplayName', sprintf('$\\xi = %.2f$', opt_iff_hpf_xi_pz(i_iff_hpf_pz)), 'color', [zeros(1,3), 0.5]); -leg = legend(L, 'location', 'northwest', 'FontSize', 8); -leg.ItemTokenSize(1) = 10; -hold off; -axis square; -xlabel('Real Part'); ylabel('Imaginary Part'); -xlim([-5200, 20]); ylim([-2700, 2700]); -set(gca, 'XTickLabel',[]); set(gca, 'YTickLabel',[]); -title('$k_n = 100\,N/\mu m$'); -#+end_src - -#+begin_src matlab :tangle no :exports results :results file replace -exportFig('figs/rotating_root_locus_iff_hpf_nass.pdf', 'width', 'full', 'height', 'tall'); -#+end_src - -#+name: fig:rotating_root_locus_iff_hpf_nass -#+caption: Root Locus for modified IFF with high pass filter. Optimal $\omega_i$ is used. The three nano-hexapod stiffnesses are compared. The grey line indicates the minimum damping obtained with the optimal chosen control parameters. -#+RESULTS: -[[file:figs/rotating_root_locus_iff_hpf_nass.png]] +| $k_n$ | $\omega_i$ | $g$ | $\xi_\text{opt}$ | +|-----------------+------------+------+------------------| +| $0.01\,N/\mu m$ | 7.3 | 51 | 0.45 | +| $1\,N/\mu m$ | 39 | 427 | 0.93 | +| $100\,N/\mu m$ | 500 | 3775 | 0.94 | ** Optimal IFF with Parallel Stiffness -For each considered nano-hexapod stiffness, the parallel stiffness $k_p$ is varied from $k_{p,\text{min}} = m\Omega^2$ (the minimum stiffness to have unconditional stability) to $k_{p,\text{max}} = k_n$ (the total nano-hexapod stiffness). -In order to keep the overall stiffness constant, the actuator stiffness $k_a$ is decreased when $k_p$ is increased: -\begin{equation} -k_a = k_n - k_p -\end{equation} -With $k_n$ the total nano-hexapod stiffness. +For each considered nano-hexapod stiffness, the parallel stiffness $k_p$ is varied from $k_{p,\text{min}} = m\Omega^2$ (the minimum stiffness that yields unconditional stability) to $k_{p,\text{max}} = k_n$ (the total nano-hexapod stiffness). +In order to keep the overall stiffness constant, the actuator stiffness $k_a$ is decreased when $k_p$ is increased ($k_a = k_n - k_p$, with $k_n$ the total nano-hexapod stiffness). +A high pass filter is also added to limit the low frequency gain with a cut-off frequency $\omega_i$ equal to one tenth of the system resonance ($\omega_i = \omega_0/10$). -An high pass filter is also added to limit the low frequency gain. -The cut-off frequency $\omega_i$ is chosen to be one tenth of the system resonance: -\begin{equation} -\omega_i = \omega_0/10 -\end{equation} +The achievable maximum simultaneous damping of all the modes is computed as a function of the parallel stiffnesses (Figure ref:fig:rotating_iff_kp_nass_optimal_gain). +It is shown that the soft nano-hexapod cannot yield good damping as the parallel stiffness cannot be made large enough compared to the negative stiffness induced by the rotation. +For the two stiff options, the achievable damping decreases when the parallel stiffness is chosen too high as explained in Section ref:sec:rotating_iff_parallel_stiffness. +Such behavior can be explain by the fact that the achievable damping can be approximated by the distance between the open-loop pole and the open-loop zero [[cite:&preumont18_vibrat_contr_activ_struc_fourt_edition chapt 7.2]]. +This distance is larger for stiff nano-hexapod as the open-loop pole will be at higher frequencies while the open-loop zero, which depends on the value of the parallel stiffness, can only be made large for stiff nano-hexapods. + +Let's choose $k_p = 1\,N/mm$, $k_p = 0.01\,N/\mu m$ and $k_p = 1\,N/\mu m$ for the three considered nano-hexapods. +The corresponding optimal controller gains and achievable damping are summarized in Table ref:tab:rotating_iff_kp_opt_iff_kp_params_nass. #+begin_src matlab %% Maximum rotating velocity @@ -3422,9 +3063,7 @@ Wz = 2*pi; % [rad/s] %% Minimum parallel stiffness kp_min = (mn + ms) * Wz^2; % [N/m] -#+end_src -#+begin_src matlab %% Parameters for simulation mn = 15; % Nano-Hexapod mass [kg] ms = 1; % Sample Mass [kg] @@ -3438,9 +3077,7 @@ Kiff_pz = 1/(s + 0.1*sqrt(1e8/(mn+ms)))*eye(2); % IFF model_config = struct(); model_config.controller = "open_loop"; % Default: Open-Loop model_config.Tuv_type = "parallel_k"; % Default: 2DoF stage -#+end_src -#+begin_src matlab %% Computes the optimal parameters and attainable simultaneous damping - Voice Coil nano-hexapod kps_vc = logspace(log10(kp_min), log10(1e4), 100); % Tested parallel stiffnesses [N/m] kps_vc(end) = []; @@ -3466,9 +3103,7 @@ for kp_i = 1:length(kps_vc) opt_iff_kp_xi_vc(kp_i) = 1/xi_opt; opt_iff_kp_gain_vc(kp_i) = g_opt; end -#+end_src -#+begin_src matlab %% Computes the optimal parameters and attainable simultaneous damping - APA nano-hexapod kps_md = logspace(log10(kp_min), log10(1e6), 100); % Tested parallel stiffnesses [N/m] kps_md(end) = []; @@ -3495,9 +3130,7 @@ for kp_i = 1:length(kps_md) opt_iff_kp_xi_md(kp_i) = 1/xi_opt; opt_iff_kp_gain_md(kp_i) = g_opt; end -#+end_src -#+begin_src matlab %% Computes the optimal parameters and attainable simultaneous damping - Piezo nano-hexapod kps_pz = logspace(log10(kp_min), log10(1e8), 100); % Tested parallel stiffnesses [N/m] kps_pz(end) = []; @@ -3526,89 +3159,17 @@ for kp_i = 1:length(kps_pz) end #+end_src -The achievable maximum simultaneous damping of all the modes is computed as a function of the parallel stiffnesses. -The comparison for the nano-hexapod stiffnesses is done in Figure ref:fig:rotating_iff_kp_nass_optimal_gain. -It is shown that *the soft nano-hexapod cannot yield good damping*. -For the two stiff options, the achievable damping starts to significantly decrease when the parallel stiffness is one tenth of the total stiffness $k_p = k_n/10$. - -#+begin_src matlab :results none -%% Optimal IFF gain and associated simultaneous damping as a function of the parallel stiffness -figure; -hold on; -plot(kps_vc, opt_iff_kp_xi_vc, '-', 'DisplayName', '$k_n = 0.01\,N/\mu m$'); -plot(kps_md, opt_iff_kp_xi_md, '-', 'DisplayName', '$k_n = 1\,N/\mu m$'); -plot(kps_pz, opt_iff_kp_xi_pz, '-', 'DisplayName', '$k_n = 100\,N/\mu m$'); -hold off; -xlabel('$k_p [N/m]$'); -ylabel('Damping Ratio $\xi$'); -set(gca, 'XScale', 'log'); -set(gca, 'YScale', 'lin'); -ylim([0,1]); -legend('location', 'southeast', 'FontSize', 8); -xlim([kps_pz(1), kps_pz(end)]) -#+end_src - -#+begin_src matlab :tangle no :exports results :results file replace -exportFig('figs/rotating_iff_kp_nass_optimal_gain.pdf', 'width', 'wide', 'height', 'normal'); -#+end_src - -#+name: fig:rotating_iff_kp_nass_optimal_gain -#+caption: Maximum achievable simultaneous damping with IFF as a function of the parallel stiffness for all three nano-hexapod stiffnesses -#+RESULTS: -[[file:figs/rotating_iff_kp_nass_optimal_gain.png]] - -Let's choose $k_p = \SI{e3}{\newton\per\m}$, $k_p = \SI{e4}{\newton\per\m}$ and $k_p = \SI{e6}{\newton\per\m}$ for the three considered nano-hexapods respectively based on Figure ref:fig:rotating_iff_kp_nass_optimal_gain. - -The corresponding optimal controller gains are shown in Table ref:tab:iff_kp_opt_iff_kp_params_nass. - #+begin_src matlab %% Find result with wanted parallel stiffness [~, i_kp_vc] = min(abs(kps_vc - 1e3)); [~, i_kp_md] = min(abs(kps_md - 1e4)); [~, i_kp_pz] = min(abs(kps_pz - 1e6)); -#+end_src -#+begin_src matlab :exports results :results value table replace :tangle no :post addhdr(*this*) -data2orgtable([opt_iff_kp_gain_vc(i_kp_vc), opt_iff_kp_xi_vc(i_kp_vc); opt_iff_kp_gain_md(i_kp_md), opt_iff_kp_xi_md(i_kp_md); opt_iff_kp_gain_pz(i_kp_pz), opt_iff_kp_xi_pz(i_kp_pz)], {'$k_n = 0.01\,N/\mu m$', '$k_n = 1\,N/\mu m$', '$k_n = 100\,N/\mu m$'}, {'$g$', '$\xi_{\text{opt}}$'}, ' %.2f '); -#+end_src +%% Identify plants with choosen Parallel stiffnesses +model_config.Tuv_type = "parallel_k"; % Default: 2DoF stage -#+name: tab:iff_kp_opt_iff_kp_params_nass -#+caption: Obtained optimal parameters for the modified IFF controller -#+attr_latex: :environment tabularx :width 0.4\linewidth :align lXX -#+attr_latex: :center t :booktabs t -#+RESULTS: -| | $g$ | $\xi_{\text{opt}}$ | -|-----------------------+---------+--------------------| -| $k_n = 0.01\,N/\mu m$ | 47.9 | 0.44 | -| $k_n = 1\,N/\mu m$ | 465.57 | 0.97 | -| $k_n = 100\,N/\mu m$ | 4624.25 | 1.0 | - -The root locus for the three nano-hexapod with parallel stiffnesses are shown in Figure ref:fig:rotating_root_locus_iff_kp_nass. - -#+begin_important -Similarly to what was found with the IFF and added High Pass Filter: -- the stiff nano-hexapod is less affected by the rotation than the soft one -- the achievable damping is much larger with the stiff nano-hexapods -#+end_important - -#+begin_src matlab -%% Optimal IFF with added parallel stiffness -Kiff_kp_vc = opt_iff_kp_gain_vc(i_kp_vc)/(s + 0.1*sqrt(1e4/(ms+mn)))*eye(2); -Kiff_kp_vc.InputName = {'fu', 'fv'}; -Kiff_kp_vc.OutputName = {'Fu', 'Fv'}; - -Kiff_kp_md = opt_iff_kp_gain_md(i_kp_md)/(s + 0.1*sqrt(1e6/(ms+mn)))*eye(2); -Kiff_kp_md.InputName = {'fu', 'fv'}; -Kiff_kp_md.OutputName = {'Fu', 'Fv'}; - -Kiff_kp_pz = opt_iff_kp_gain_pz(i_kp_pz)/(s + 0.1*sqrt(1e8/(ms+mn)))*eye(2); -Kiff_kp_pz.InputName = {'fu', 'fv'}; -Kiff_kp_pz.OutputName = {'Fu', 'Fv'}; -#+end_src - -#+begin_src matlab -%% Identify plant with optimal parallel stiffness - Soft nano-hexapod -kp = kps_vc(i_kp_vc); +% Voice Coil +kp = 1e3; cp = 2*0.001*sqrt((ms + mn)*kp); kn = 1e4-kp; % Nano-Hexapod Stiffness [N/m] cn = 2*0.01*sqrt((ms + mn)*kn); % Nano-Hexapod Damping [N/(m/s)] @@ -3624,8 +3185,8 @@ G_vc_kp_norot = linearize(mdl, io, 0); G_vc_kp_norot.InputName = {'Fu', 'Fv', 'Fdx', 'Fdy', 'Dfx', 'Dfy'}; G_vc_kp_norot.OutputName = {'fu', 'fv', 'Du', 'Dv', 'Dx', 'Dy'}; -%% Identify plant with optimal parallel stiffness - Stiff nano-hexapod -kp = kps_md(i_kp_md); +% APA +kp = 1e4; cp = 2*0.001*sqrt((ms + mn)*kp); kn = 1e6 - kp; % Nano-Hexapod Stiffness [N/m] cn = 2*0.01*sqrt((ms + mn)*kn); % Nano-Hexapod Damping [N/(m/s)] @@ -3641,8 +3202,8 @@ G_md_kp_norot = linearize(mdl, io, 0); G_md_kp_norot.InputName = {'Fu', 'Fv', 'Fdx', 'Fdy', 'Dfx', 'Dfy'}; G_md_kp_norot.OutputName = {'fu', 'fv', 'Du', 'Dv', 'Dx', 'Dy'}; -%% Identify plant with optimal parallel stiffness - Stiff nano-hexapod -kp = kps_pz(i_kp_pz); +% Piezo +kp = 1e6; cp = 2*0.001*sqrt((ms + mn)*kp); kn = 1e8 - kp; % Nano-Hexapod Stiffness [N/m] cn = 2*0.01*sqrt((ms + mn)*kn); % Nano-Hexapod Damping [N/(m/s)] @@ -3660,153 +3221,65 @@ G_pz_kp_norot.OutputName = {'fu', 'fv', 'Du', 'Dv', 'Dx', 'Dy'}; #+end_src #+begin_src matlab :results none -%% Root Locus for optimal parameters - Comparison of attainable damping with the soft and moderately stiff nano-hexapods -gains = logspace(-2, 2, 400); - +%% Optimal IFF gain and associated simultaneous damping as a function of the parallel stiffness figure; -tiledlayout(1, 3, 'TileSpacing', 'Compact', 'Padding', 'None'); - -ax1 = nexttile(); hold on; -% Soft Nano-Hexapod - No Rotation -for g = gains - clpoles = pole(feedback(G_vc_kp_norot({'fu', 'fv'}, {'Fu', 'Fv'}), g*Kiff_kp_vc)); - plot(real(clpoles), imag(clpoles), '.', 'color', colors(1,:),'MarkerSize',4, ... - 'HandleVisibility', 'off'); -end -clpoles = pole(feedback(G_vc_kp_norot({'fu', 'fv'}, {'Fu', 'Fv'}), Kiff_kp_vc)); -plot(real(clpoles), imag(clpoles), '.', 'color', colors(1,:),'MarkerSize', 15, ... - 'DisplayName', '$\Omega = 0$'); -plot(real(pole(G_vc_kp_norot({'fu', 'fv'}, {'Fu', 'Fv'})*Kiff_kp_vc)), ... - imag(pole(G_vc_kp_norot({'fu', 'fv'}, {'Fu', 'Fv'})*Kiff_kp_vc)), ... - 'x', 'color', colors(1,:),'MarkerSize',8, ... - 'HandleVisibility', 'off'); -plot(real(tzero(G_vc_kp_norot({'fu', 'fv'}, {'Fu', 'Fv'})*Kiff_kp_vc)), ... - imag(tzero(G_vc_kp_norot({'fu', 'fv'}, {'Fu', 'Fv'})*Kiff_kp_vc)), ... - 'o', 'color', colors(1,:),'MarkerSize',8, ... - 'HandleVisibility', 'off'); - -% Soft Nano-Hexapod - High Speed Rotation -for g = gains - clpoles = pole(feedback(G_vc_kp_fast({'fu', 'fv'}, {'Fu', 'Fv'}), g*Kiff_kp_vc)); - plot(real(clpoles), imag(clpoles), '.', 'color', colors(2,:),'MarkerSize',4, ... - 'HandleVisibility', 'off'); -end -clpoles = pole(feedback(G_vc_kp_fast({'fu', 'fv'}, {'Fu', 'Fv'}), Kiff_kp_vc)); -plot(real(clpoles), imag(clpoles), '.', 'color', colors(2,:),'MarkerSize', 15, ... - 'DisplayName', '$\Omega = 60$ rpm'); -plot(real(pole(G_vc_kp_fast({'fu', 'fv'}, {'Fu', 'Fv'})*Kiff_kp_vc)), ... - imag(pole(G_vc_kp_fast({'fu', 'fv'}, {'Fu', 'Fv'})*Kiff_kp_vc)), ... - 'x', 'color', colors(2,:),'MarkerSize',8, ... - 'HandleVisibility', 'off'); -plot(real(tzero(G_vc_kp_fast({'fu', 'fv'}, {'Fu', 'Fv'})*Kiff_kp_vc)), ... - imag(tzero(G_vc_kp_fast({'fu', 'fv'}, {'Fu', 'Fv'})*Kiff_kp_vc)), ... - 'o', 'color', colors(2,:),'MarkerSize',8, ... - 'HandleVisibility', 'off'); -plot([0, -1e2*opt_iff_kp_xi_vc(i_kp_vc)], [0, 1e2*cos(asin(opt_iff_kp_xi_vc(i_kp_vc)))], '-', ... - 'DisplayName', sprintf('$\\xi = %.2f$', opt_iff_kp_xi_vc(i_kp_vc)), 'color', [zeros(1,3), 0.5]); +plot(kps_vc, opt_iff_kp_xi_vc, '-', ... + 'color', colors(1,:), 'DisplayName', '$k_n = 0.01\,N/\mu m$'); +plot(kps_vc(i_kp_vc), opt_iff_kp_xi_vc(i_kp_vc), '.', ... + 'color', colors(1,:), 'MarkerSize', 15, 'HandleVisibility', 'off'); +plot(kps_md, opt_iff_kp_xi_md, '-', ... + 'color', colors(2,:), 'DisplayName', '$k_n = 1\,N/\mu m$'); +plot(kps_md(i_kp_md), opt_iff_kp_xi_md(i_kp_md), '.', ... + 'color', colors(2,:), 'MarkerSize', 15, 'HandleVisibility', 'off'); +plot(kps_pz, opt_iff_kp_xi_pz, '-', ... + 'color', colors(3,:), 'DisplayName', '$k_n = 100\,N/\mu m$'); +plot(kps_pz(i_kp_pz), opt_iff_kp_xi_pz(i_kp_pz), '.', ... + 'color', colors(3,:), 'MarkerSize', 15, 'HandleVisibility', 'off'); hold off; -axis square; -xlabel('Real Part'); ylabel('Imaginary Part'); -xlim([-65, 5]); ylim([-35, 35]); -set(gca, 'XTickLabel',[]); set(gca, 'YTickLabel',[]); -title('$k_n = 0.01\,N/\mu m$'); -ldg = legend('location', 'northwest', 'FontSize', 8, 'NumColumns', 1); -ldg.ItemTokenSize = [10, 1]; - -ax2 = nexttile(); -hold on; -% Stiff Nano-Hexapod - No Rotation -for g = gains - clpoles = pole(feedback(G_md_kp_norot({'fu', 'fv'}, {'Fu', 'Fv'}), g*Kiff_kp_md)); - plot(real(clpoles), imag(clpoles), '.', 'color', colors(1,:),'MarkerSize',4); -end -clpoles = pole(feedback(G_md_kp_norot({'fu', 'fv'}, {'Fu', 'Fv'}), Kiff_kp_md)); -plot(real(clpoles), imag(clpoles), '.', 'color', colors(1,:),'MarkerSize', 15); -plot(real(pole(G_md_kp_norot({'fu', 'fv'}, {'Fu', 'Fv'})*Kiff_kp_md)), ... - imag(pole(G_md_kp_norot({'fu', 'fv'}, {'Fu', 'Fv'})*Kiff_kp_md)), ... - 'x', 'color', colors(1,:),'MarkerSize',8); -plot(real(tzero(G_md_kp_norot({'fu', 'fv'}, {'Fu', 'Fv'})*Kiff_kp_md)), ... - imag(tzero(G_md_kp_norot({'fu', 'fv'}, {'Fu', 'Fv'})*Kiff_kp_md)), ... - 'o', 'color', colors(1,:),'MarkerSize',8); - -% Stiff Nano-Hexapod - High Speed Rotation -for g = gains - clpoles = pole(feedback(G_md_kp_fast({'fu', 'fv'}, {'Fu', 'Fv'}), g*Kiff_kp_md)); - plot(real(clpoles), imag(clpoles), '.', 'color', colors(2,:),'MarkerSize',4); -end -clpoles = pole(feedback(G_md_kp_fast({'fu', 'fv'}, {'Fu', 'Fv'}), Kiff_kp_md)); -plot(real(clpoles), imag(clpoles), '.', 'color', colors(2,:),'MarkerSize', 15); -plot(real(pole(G_md_kp_fast({'fu', 'fv'}, {'Fu', 'Fv'})*Kiff_kp_md)), ... - imag(pole(G_md_kp_fast({'fu', 'fv'}, {'Fu', 'Fv'})*Kiff_kp_md)), ... - 'x', 'color', colors(2,:),'MarkerSize',8); -plot(real(tzero(G_md_kp_fast({'fu', 'fv'}, {'Fu', 'Fv'})*Kiff_kp_md)), ... - imag(tzero(G_md_kp_fast({'fu', 'fv'}, {'Fu', 'Fv'})*Kiff_kp_md)), ... - 'o', 'color', colors(2,:),'MarkerSize',8); -L = plot([0, -1e3*opt_iff_kp_xi_md(i_kp_md)], [0, 1e3*cos(asin(opt_iff_kp_xi_md(i_kp_md)))], '-', ... - 'DisplayName', sprintf('$\\xi = %.2f$', opt_iff_kp_xi_md(i_kp_md)), 'color', [zeros(1,3), 0.5]); -leg = legend(L, 'location', 'northwest', 'FontSize', 8); -leg.ItemTokenSize(1) = 10; -hold off; -axis square; -xlabel('Real Part'); ylabel('Imaginary Part'); -set(gca, 'XTickLabel',[]); set(gca, 'YTickLabel',[]); -xlim([-520, 20]); ylim([-270, 270]); -title('$k_n = 1\,N/\mu m$'); - -ax3 = nexttile(); -hold on; -% Stiff Nano-Hexapod - No Rotation -for g = gains - clpoles = pole(feedback(G_pz_kp_norot({'fu', 'fv'}, {'Fu', 'Fv'}), g*Kiff_kp_pz)); - plot(real(clpoles), imag(clpoles), '.', 'color', colors(1,:),'MarkerSize',4); -end -clpoles = pole(feedback(G_pz_kp_norot({'fu', 'fv'}, {'Fu', 'Fv'}), Kiff_kp_pz)); -plot(real(clpoles), imag(clpoles), '.', 'color', colors(1,:),'MarkerSize', 15); -plot(real(pole(G_pz_kp_norot({'fu', 'fv'}, {'Fu', 'Fv'})*Kiff_kp_pz)), ... - imag(pole(G_pz_kp_norot({'fu', 'fv'}, {'Fu', 'Fv'})*Kiff_kp_pz)), ... - 'x', 'color', colors(1,:),'MarkerSize',8); -plot(real(tzero(G_pz_kp_norot({'fu', 'fv'}, {'Fu', 'Fv'})*Kiff_kp_pz)), ... - imag(tzero(G_pz_kp_norot({'fu', 'fv'}, {'Fu', 'Fv'})*Kiff_kp_pz)), ... - 'o', 'color', colors(1,:),'MarkerSize',8); - -% Stiff Nano-Hexapod - High Speed Rotation -for g = gains - clpoles = pole(feedback(G_pz_kp_fast({'fu', 'fv'}, {'Fu', 'Fv'}), g*Kiff_kp_pz)); - plot(real(clpoles), imag(clpoles), '.', 'color', colors(2,:),'MarkerSize',4); -end -clpoles = pole(feedback(G_pz_kp_fast({'fu', 'fv'}, {'Fu', 'Fv'}), Kiff_kp_pz)); -plot(real(clpoles), imag(clpoles), '.', 'color', colors(2,:),'MarkerSize', 15); -plot(real(pole(G_pz_kp_fast({'fu', 'fv'}, {'Fu', 'Fv'})*Kiff_kp_pz)), ... - imag(pole(G_pz_kp_fast({'fu', 'fv'}, {'Fu', 'Fv'})*Kiff_kp_pz)), ... - 'x', 'color', colors(2,:),'MarkerSize',8); -plot(real(tzero(G_pz_kp_fast({'fu', 'fv'}, {'Fu', 'Fv'})*Kiff_kp_pz)), ... - imag(tzero(G_pz_kp_fast({'fu', 'fv'}, {'Fu', 'Fv'})*Kiff_kp_pz)), ... - 'o', 'color', colors(2,:),'MarkerSize',8); -L = plot([0, -1e4*opt_iff_kp_xi_pz(i_kp_pz)], [0, 1e4*cos(asin(opt_iff_kp_xi_pz(i_kp_pz)))], '-', ... - 'DisplayName', sprintf('$\\xi = %.2f$', opt_iff_kp_xi_pz(i_kp_pz)), 'color', [zeros(1,3), 0.5]); -leg = legend(L, 'location', 'northwest', 'FontSize', 8); -leg.ItemTokenSize(1) = 10; -hold off; -axis square; -xlabel('Real Part'); ylabel('Imaginary Part'); -set(gca, 'XTickLabel',[]); set(gca, 'YTickLabel',[]); -xlim([-5200, 200]); ylim([-2700, 2700]); -title('$k_n = 100\,N/\mu m$'); +xlabel('$k_p [N/m]$'); +ylabel('Damping Ratio $\xi$'); +set(gca, 'XScale', 'log'); +set(gca, 'YScale', 'lin'); +ylim([0,1]); +yticks([0:0.2:1]) +legend('location', 'southeast', 'FontSize', 8); +xlim([kps_pz(1), kps_pz(end)]) #+end_src -#+begin_src matlab :tangle no :exports results :results file replace -exportFig('figs/rotating_root_locus_iff_kp_nass.pdf', 'width', 'full', 'height', 'tall'); +#+begin_src matlab :tangle no :exports results :results file none +exportFig('figs/rotating_iff_kp_nass_optimal_gain.pdf', 'width', 'half', 'height', 350); #+end_src -#+name: fig:rotating_root_locus_iff_kp_nass -#+caption: Root Locus for optimal parameters (IFF + $k_p$ strategy) - Comparison of attainable damping with the three nano-hexapod stiffnesses +#+attr_latex: :options [t]{0.49\linewidth} +#+begin_minipage +#+name: fig:rotating_iff_kp_nass_optimal_gain +#+attr_latex: :width \linewidth :float nil +#+caption: Maximum damping $\xi$ as a function of the parallel stiffness $k_p$ +[[file:figs/rotating_iff_kp_nass_optimal_gain.png]] +#+end_minipage +\hfill +#+attr_latex: :options [b]{0.45\linewidth} +#+begin_minipage +#+caption: Obtained optimal parameters for the IFF controller when using parallel stiffnesses +#+name: tab:rotating_iff_kp_opt_iff_kp_params_nass +#+attr_latex: :environment tabularx :width \linewidth :placement [b] :align Xccc +#+attr_latex: :booktabs t :float nil #+RESULTS: -[[file:figs/rotating_root_locus_iff_kp_nass.png]] +| $k_n$ | $k_p$ | $g$ | $\xi_{\text{opt}}$ | +|-----------------+-----------------+---------+--------------------| +| $0.01\,N/\mu m$ | $1\,N/mm$ | 47.9 | 0.44 | +| $1\,N/\mu m$ | $0.01\,N/\mu m$ | 465.57 | 0.97 | +| $100\,N/\mu m$ | $1\,N/\mu m$ | 4624.25 | 0.99 | +#+end_minipage + +#+begin_src matlab :exports results :results value table replace :tangle no :post addhdr(*this*) +data2orgtable([opt_iff_kp_gain_vc(i_kp_vc), opt_iff_kp_xi_vc(i_kp_vc); opt_iff_kp_gain_md(i_kp_md), opt_iff_kp_xi_md(i_kp_md); opt_iff_kp_gain_pz(i_kp_pz), opt_iff_kp_xi_pz(i_kp_pz)], {'$k_n = 0.01\,N/\mu m$', '$k_n = 1\,N/\mu m$', '$k_n = 100\,N/\mu m$'}, {'$g$', '$\xi_{\text{opt}}$'}, ' %.2f '); +#+end_src ** Optimal Relative Motion Control - -For each considered nano-hexapod stiffness, relative damping control is applied and the achievable damping ratio as a function of the controller gain is shown in Figure ref:fig:rotating_rdc_optimal_gain. +For each considered nano-hexapod stiffness, relative damping control is applied and the achievable damping ratio as a function of the controller gain is computed (Figure ref:fig:rotating_rdc_optimal_gain). +The gain is chosen is chosen such that 99% of modal damping is obtained (obtained gains are summarized in Table ref:tab:rotating_rdc_opt_params_nass). #+begin_src matlab %% Computes the optimal parameters and attainable simultaneous damping - Piezo nano-hexapod @@ -3832,40 +3305,6 @@ for g_i = 1:length(rdc_gains) end #+end_src -#+begin_src matlab :results none -%% Optimal IFF gain and associated simultaneous damping as a function of the parallel stiffness -figure; -hold on; -plot(rdc_gains, rdc_xi_vc, '-', 'DisplayName', '$k_n = 0.01\,N/\mu m$'); -plot(rdc_gains, rdc_xi_md, '-', 'DisplayName', '$k_n = 1\,N/\mu m$'); -plot(rdc_gains, rdc_xi_pz, '-', 'DisplayName', '$k_n = 100\,N/\mu m$'); -hold off; -xlabel('Relative Damping Controller gain $g$'); -ylabel('Damping Ratio $\xi$'); -set(gca, 'XScale', 'log'); -set(gca, 'YScale', 'lin'); -ylim([0,1]); -xlim([rdc_gains(1), rdc_gains(end)]) -legend('location', 'southeast', 'FontSize', 8); -#+end_src - -#+begin_src matlab :tangle no :exports results :results file replace -exportFig('figs/rotating_rdc_optimal_gain.pdf', 'width', 'wide', 'height', 'normal'); -#+end_src - -#+name: fig:rotating_rdc_optimal_gain -#+caption: Achievable simultaneous damping with "Relative Damping Control" as a function of the controller gain for all three nano-hexapod stiffnesses -#+RESULTS: -[[file:figs/rotating_rdc_optimal_gain.png]] - -The gain is chosen is chosen such that 99% of modal damping is obtained. -The root locus for all three nano-hexapod stiffnesses are shown in Figure ref:fig:rotating_root_locus_rdc_nass. - -#+begin_important -Relative damping control is much less impacted by gyroscopic effects. -It can be easily applied on the nano-hexapod with and without rotation without much differences. -#+end_important - #+begin_src matlab %% Optimal RDC [~, i_rdc_vc] = min(abs(rdc_xi_vc - 0.99)); @@ -3878,159 +3317,65 @@ Krdc_pz = rdc_gains(i_rdc_pz)*Krdc; #+end_src #+begin_src matlab :results none -%% Root Locus for optimal parameters - Comparison of attainable damping with the soft and moderately strdc nano-hexapods -gains = logspace(-2, 3, 200); - +%% Optimal IFF gain and associated simultaneous damping as a function of the parallel stiffness figure; -tiledlayout(1, 3, 'TileSpacing', 'Compact', 'Padding', 'None'); - -% Voice coil Nano-Hexapod -ax1 = nexttile(); hold on; -for g = gains - clpoles = pole(feedback(G_vc_norot({'Du', 'Dv'}, {'Fu', 'Fv'}), g*Krdc_vc)); - plot(real(clpoles), imag(clpoles), '.', 'color', colors(1,:),'MarkerSize',4, ... - 'HandleVisibility', 'off'); -end -clpoles = pole(feedback(G_vc_norot({'Du', 'Dv'}, {'Fu', 'Fv'}), Krdc_vc)); -plot(real(clpoles), imag(clpoles), '.', 'color', colors(1,:),'MarkerSize', 15, ... - 'DisplayName', '$\Omega = 0$'); -plot(real(pole(G_vc_norot({'Du', 'Dv'}, {'Fu', 'Fv'})*Krdc_vc)), ... - imag(pole(G_vc_norot({'Du', 'Dv'}, {'Fu', 'Fv'})*Krdc_vc)), ... - 'x', 'color', colors(1,:),'MarkerSize',8, ... - 'HandleVisibility', 'off'); -plot(real(tzero(G_vc_norot({'Du', 'Dv'}, {'Fu', 'Fv'})*Krdc_vc)), ... - imag(tzero(G_vc_norot({'Du', 'Dv'}, {'Fu', 'Fv'})*Krdc_vc)), ... - 'o', 'color', colors(1,:),'MarkerSize',8, ... - 'HandleVisibility', 'off'); - -for g = gains - clpoles = pole(feedback(G_vc_fast({'Du', 'Dv'}, {'Fu', 'Fv'}), g*Krdc_vc)); - plot(real(clpoles), imag(clpoles), '.', 'color', colors(2,:),'MarkerSize',4, ... - 'HandleVisibility', 'off'); -end -clpoles = pole(feedback(G_vc_fast({'Du', 'Dv'}, {'Fu', 'Fv'}), Krdc_vc)); -plot(real(clpoles), imag(clpoles), '.', 'color', colors(2,:),'MarkerSize', 15, ... - 'DisplayName', '$\Omega = 60$ rpm'); -plot(real(pole(G_vc_fast({'Du', 'Dv'}, {'Fu', 'Fv'})*Krdc_vc)), ... - imag(pole(G_vc_fast({'Du', 'Dv'}, {'Fu', 'Fv'})*Krdc_vc)), ... - 'x', 'color', colors(2,:),'MarkerSize',8, ... - 'HandleVisibility', 'off'); -plot(real(tzero(G_vc_fast({'Du', 'Dv'}, {'Fu', 'Fv'})*Krdc_vc)), ... - imag(tzero(G_vc_fast({'Du', 'Dv'}, {'Fu', 'Fv'})*Krdc_vc)), ... - 'o', 'color', colors(2,:),'MarkerSize',8, ... - 'HandleVisibility', 'off'); - -plot([0, -1e2*rdc_xi_vc(i_rdc_vc)], [0, 1e2*cos(asin(rdc_xi_vc(i_rdc_vc)))], '-', ... - 'DisplayName', sprintf('$\\xi = %.2f$', rdc_xi_vc(i_rdc_vc)), 'color', [zeros(1,3), 0.5]) +plot(rdc_gains, rdc_xi_vc, '-', ... + 'color', colors(1,:), 'DisplayName', '$k_n = 0.01\,N/\mu m$'); +plot(rdc_gains(i_rdc_vc), rdc_xi_vc(i_rdc_vc), '.', ... + 'color', colors(1,:), 'MarkerSize', 15, 'HandleVisibility', 'off'); +plot(rdc_gains, rdc_xi_md, '-', ... + 'color', colors(2,:), 'DisplayName', '$k_n = 1\,N/\mu m$'); +plot(rdc_gains(i_rdc_md), rdc_xi_md(i_rdc_md), '.', ... + 'color', colors(2,:), 'MarkerSize', 15, 'HandleVisibility', 'off'); +plot(rdc_gains, rdc_xi_pz, '-', ... + 'color', colors(3,:), 'DisplayName', '$k_n = 100\,N/\mu m$'); +plot(rdc_gains(i_rdc_pz), rdc_xi_pz(i_rdc_pz), '.', ... + 'color', colors(3,:), 'MarkerSize', 15, 'HandleVisibility', 'off'); hold off; -axis square; -xlabel('Real Part'); ylabel('Imaginary Part'); -xlim([-65, 5]); ylim([-35, 35]); -set(gca, 'XTickLabel',[]); set(gca, 'YTickLabel',[]); -title('$k_n = 0.01\,N/\mu m$'); -ldg = legend('location', 'northwest', 'FontSize', 8, 'NumColumns', 1); -ldg.ItemTokenSize = [10, 1]; - -% APA Nano-Hexapod -ax2 = nexttile(); -hold on; -for g = gains - clpoles = pole(feedback(G_md_norot({'Du', 'Dv'}, {'Fu', 'Fv'}), g*Krdc_md)); - plot(real(clpoles), imag(clpoles), '.', 'color', colors(1,:),'MarkerSize',4); -end -clpoles = pole(feedback(G_md_norot({'Du', 'Dv'}, {'Fu', 'Fv'}), Krdc_md)); -plot(real(clpoles), imag(clpoles), '.', 'color', colors(1,:),'MarkerSize', 15); -plot(real(pole(G_md_norot({'Du', 'Dv'}, {'Fu', 'Fv'})*Krdc_md)), ... - imag(pole(G_md_norot({'Du', 'Dv'}, {'Fu', 'Fv'})*Krdc_md)), ... - 'x', 'color', colors(1,:),'MarkerSize',8); -plot(real(tzero(G_md_norot({'Du', 'Dv'}, {'Fu', 'Fv'})*Krdc_md)), ... - imag(tzero(G_md_norot({'Du', 'Dv'}, {'Fu', 'Fv'})*Krdc_md)), ... - 'o', 'color', colors(1,:),'MarkerSize',8); - -for g = gains - clpoles = pole(feedback(G_md_fast({'Du', 'Dv'}, {'Fu', 'Fv'}), g*Krdc_md)); - plot(real(clpoles), imag(clpoles), '.', 'color', colors(2,:),'MarkerSize',4); -end -clpoles = pole(feedback(G_md_fast({'Du', 'Dv'}, {'Fu', 'Fv'}), Krdc_md)); -plot(real(clpoles), imag(clpoles), '.', 'color', colors(2,:),'MarkerSize', 15); -plot(real(pole(G_md_fast({'Du', 'Dv'}, {'Fu', 'Fv'})*Krdc_md)), ... - imag(pole(G_md_fast({'Du', 'Dv'}, {'Fu', 'Fv'})*Krdc_md)), ... - 'x', 'color', colors(2,:),'MarkerSize',8); -plot(real(tzero(G_md_fast({'Du', 'Dv'}, {'Fu', 'Fv'})*Krdc_md)), ... - imag(tzero(G_md_fast({'Du', 'Dv'}, {'Fu', 'Fv'})*Krdc_md)), ... - 'o', 'color', colors(2,:),'MarkerSize',8); - -L = plot([0, -1e3*rdc_xi_md(i_rdc_md)], [0, 1e3*cos(asin(rdc_xi_md(i_rdc_md)))], '-', ... - 'DisplayName', sprintf('$\\xi = %.2f$', rdc_xi_md(i_rdc_md)), 'color', [zeros(1,3), 0.5]); -leg = legend(L, 'location', 'northwest', 'FontSize', 8); -leg.ItemTokenSize(1) = 10; -hold off; -axis square; -xlabel('Real Part'); ylabel('Imaginary Part'); -xlim([-520, 20]); ylim([-270, 270]); -set(gca, 'XTickLabel',[]); set(gca, 'YTickLabel',[]); -title('$k_n = 1\,N/\mu m$'); - -% Piezo Nano-Hexapod -ax3 = nexttile(); -hold on; -for g = gains - clpoles = pole(feedback(G_pz_norot({'Du', 'Dv'}, {'Fu', 'Fv'}), g*Krdc_pz)); - plot(real(clpoles), imag(clpoles), '.', 'color', colors(1,:),'MarkerSize',4); -end -clpoles = pole(feedback(G_pz_norot({'Du', 'Dv'}, {'Fu', 'Fv'}), Krdc_pz)); -plot(real(clpoles), imag(clpoles), '.', 'color', colors(1,:),'MarkerSize', 15); -plot(real(pole(G_pz_norot({'Du', 'Dv'}, {'Fu', 'Fv'})*Krdc_pz)), ... - imag(pole(G_pz_norot({'Du', 'Dv'}, {'Fu', 'Fv'})*Krdc_pz)), ... - 'x', 'color', colors(1,:),'MarkerSize',8); -plot(real(tzero(G_pz_norot({'Du', 'Dv'}, {'Fu', 'Fv'})*Krdc_pz)), ... - imag(tzero(G_pz_norot({'Du', 'Dv'}, {'Fu', 'Fv'})*Krdc_pz)), ... - 'o', 'color', colors(1,:),'MarkerSize',8); - -for g = gains - clpoles = pole(feedback(G_pz_fast({'Du', 'Dv'}, {'Fu', 'Fv'}), g*Krdc_pz)); - plot(real(clpoles), imag(clpoles), '.', 'color', colors(2,:),'MarkerSize',4); -end -clpoles = pole(feedback(G_pz_fast({'Du', 'Dv'}, {'Fu', 'Fv'}), Krdc_pz)); -plot(real(clpoles), imag(clpoles), '.', 'color', colors(2,:),'MarkerSize', 15); -plot(real(pole(G_pz_fast({'Du', 'Dv'}, {'Fu', 'Fv'})*Krdc_pz)), ... - imag(pole(G_pz_fast({'Du', 'Dv'}, {'Fu', 'Fv'})*Krdc_pz)), ... - 'x', 'color', colors(2,:),'MarkerSize',8); -plot(real(tzero(G_pz_fast({'Du', 'Dv'}, {'Fu', 'Fv'})*Krdc_pz)), ... - imag(tzero(G_pz_fast({'Du', 'Dv'}, {'Fu', 'Fv'})*Krdc_pz)), ... - 'o', 'color', colors(2,:),'MarkerSize',8); - -L = plot([0, -1e4*rdc_xi_pz(i_rdc_pz)], [0, 1e4*cos(asin(rdc_xi_pz(i_rdc_pz)))], '-', ... - 'DisplayName', sprintf('$\\xi = %.2f$', rdc_xi_pz(i_rdc_pz)), 'color', [zeros(1,3), 0.5]); -leg = legend(L, 'location', 'northwest', 'FontSize', 8); -leg.ItemTokenSize(1) = 10; -hold off; -axis square; -xlabel('Real Part'); ylabel('Imaginary Part'); -xlim([-5200, 20]); ylim([-2700, 2700]); -set(gca, 'XTickLabel',[]); set(gca, 'YTickLabel',[]); -title('$k_n = 100\,N/\mu m$'); +xlabel('Relative Damping Controller gain $g$'); +ylabel('Damping Ratio $\xi$'); +set(gca, 'XScale', 'log'); +set(gca, 'YScale', 'lin'); +ylim([0,1]); +yticks([0:0.2:1]) +xlim([rdc_gains(1), rdc_gains(end)]) +legend('location', 'southeast', 'FontSize', 8); #+end_src #+begin_src matlab :tangle no :exports results :results file replace -exportFig('figs/rotating_root_locus_rdc_nass.pdf', 'width', 'full', 'height', 'tall'); +exportFig('figs/rotating_rdc_optimal_gain.pdf', 'width', 'half', 'height', 350); #+end_src -#+name: fig:rotating_root_locus_rdc_nass -#+caption: Root Locus for optimal parameters - Comparison of attainable damping with the soft and moderately stiff nano-hexapods +#+attr_latex: :options [t]{0.49\linewidth} +#+begin_minipage +#+name: fig:rotating_rdc_optimal_gain +#+attr_latex: :width \linewidth :float nil +#+caption: Maximum damping $\xi$ as a function of the RDC gain $g$ +[[file:figs/rotating_rdc_optimal_gain.png]] +#+end_minipage +\hfill +#+attr_latex: :options [b]{0.45\linewidth} +#+begin_minipage +#+caption: Obtained optimal parameters for the RDC +#+name: tab:rotating_rdc_opt_params_nass +#+attr_latex: :environment tabularx :width 0.8\linewidth :placement [b] :align Xcc +#+attr_latex: :booktabs t :float nil #+RESULTS: -[[file:figs/rotating_root_locus_rdc_nass.png]] +| $k_n$ | $g$ | $\xi_{\text{opt}}$ | +|-----------------+-------+--------------------| +| $0.01\,N/\mu m$ | 1600 | 0.99 | +| $1\,N/\mu m$ | 8200 | 0.99 | +| $100\,N/\mu m$ | 80000 | 0.99 | +#+end_minipage ** Comparison of the obtained damped plants -Let's now compare the obtained damped plants for the three active damping techniques applied on the three nano-hexapod stiffnesses (Figure ref:fig:rotating_nass_damped_plant_comp). +Now that optimal parameters for the three considered active damping techniques have been determined, the obtained damped plants are computed and compared in Figure ref:fig:rotating_nass_damped_plant_comp. -#+begin_important Similarly to what was concluded in previous analysis: -- IFF adds coupling below the resonance frequency as compared to the open-loop and RDC cases -- Add three methods are yielding good damping, except for IFF applied on the soft nano-hexapod where things are more complicated +- acrshort:iff adds coupling below the resonance frequency as compared to the open-loop and acrshort:rdc cases +- All three methods are yielding good damping, except for acrshort:iff applied on the soft nano-hexapod - Coupling is smaller for stiff nano-hexapods -#+end_important #+begin_src matlab :tangle no %% Saved controllers @@ -4080,11 +3425,9 @@ G_pz_fast_rdc = feedback(G_pz_fast, Krdc_pz, 'name'); #+begin_src matlab :exports none :results none %% Comparison of the damped plants (direct and coupling terms) for the three proposed active damping techniques (IFF with HPF, IFF with $k_p$ and RDC) applied on the three nano-hexapod stiffnesses freqs_vc = logspace(-1, 2, 1000); -freqs_md = logspace(0, 3, 1000); -freqs_pz = logspace(0, 3, 1000); figure; -tiledlayout(3, 3, 'TileSpacing', 'Compact', 'Padding', 'None'); +tiledlayout(3, 1, 'TileSpacing', 'Compact', 'Padding', 'None'); ax1 = nexttile([2,1]); hold on; @@ -4099,9 +3442,36 @@ plot(freqs_vc, abs(squeeze(freqresp(G_vc_fast_rdc( 'Dv', 'Fu'), freqs_vc, 'Hz')) hold off; set(gca, 'XScale', 'log'); set(gca, 'YScale', 'log'); ylabel('Magnitude [m/N]'); set(gca, 'XTickLabel',[]); -title('$k_n = 0.01\,N/\mu m$'); +ylim([1e-8, 1e-2]) -ax2 = nexttile([2,1]); +ax2 = nexttile; +hold on; +plot(freqs_vc, 180/pi*angle(squeeze(freqresp(G_vc_fast( 'Du', 'Fu'), freqs_vc, 'Hz'))), '-' , 'color', [zeros(1,3)]); +plot(freqs_vc, 180/pi*angle(squeeze(freqresp(G_vc_fast_iff_hpf( 'Du', 'Fu'), freqs_vc, 'Hz'))), '-' , 'color', [colors(1,:)]); +plot(freqs_vc, 180/pi*angle(squeeze(freqresp(G_vc_fast_iff_kp( 'Du', 'Fu'), freqs_vc, 'Hz'))), '-' , 'color', [colors(2,:)]); +plot(freqs_vc, 180/pi*angle(squeeze(freqresp(G_vc_fast_rdc( 'Du', 'Fu'), freqs_vc, 'Hz'))), '-' , 'color', [colors(3,:)]); +hold off; +set(gca, 'XScale', 'log'); set(gca, 'YScale', 'lin'); +xlabel('Frequency [Hz]'); ylabel('Phase [deg]'); +hold off; +yticks(-360:90:360); +ylim([-180, 0]); + +linkaxes([ax1,ax2],'x'); +xlim([freqs_vc(1), freqs_vc(end)]); +#+end_src + +#+begin_src matlab :tangle no :exports results :results file replace +exportFig('figs/rotating_nass_damped_plant_comp_vc.pdf', 'width', 'third', 'height', 600); +#+end_src + +#+begin_src matlab :exports none :results none +freqs_md = logspace(0, 3, 1000); + +figure; +tiledlayout(3, 1, 'TileSpacing', 'Compact', 'Padding', 'None'); + +ax1 = nexttile([2,1]); hold on; plot(freqs_md, abs(squeeze(freqresp(G_md_fast( 'Du', 'Fu'), freqs_md, 'Hz'))), '-' , 'color', [zeros(1,3)]); plot(freqs_md, abs(squeeze(freqresp(G_md_fast( 'Dv', 'Fu'), freqs_md, 'Hz'))), '-' , 'color', [zeros(1,3), 0.5]); @@ -4113,10 +3483,37 @@ plot(freqs_md, abs(squeeze(freqresp(G_md_fast_rdc( 'Du', 'Fu'), freqs_md, 'Hz')) plot(freqs_md, abs(squeeze(freqresp(G_md_fast_rdc( 'Dv', 'Fu'), freqs_md, 'Hz'))), '-' , 'color', [colors(3,:), 0.5]); hold off; set(gca, 'XScale', 'log'); set(gca, 'YScale', 'log'); -set(gca, 'XTickLabel',[]); set(gca, 'YTickLabel',[]); -title('$k_n = 1\,N/\mu m$'); +ylabel('Magnitude [m/N]'); set(gca, 'XTickLabel',[]); +ylim([1e-10, 1e-4]) -ax3 = nexttile([2,1]); +ax2 = nexttile; +hold on; +plot(freqs_md, 180/pi*angle(squeeze(freqresp(G_md_fast( 'Du', 'Fu'), freqs_md, 'Hz'))), '-' , 'color', [zeros(1,3)]); +plot(freqs_md, 180/pi*angle(squeeze(freqresp(G_md_fast_iff_hpf( 'Du', 'Fu'), freqs_md, 'Hz'))), '-' , 'color', [colors(1,:)]); +plot(freqs_md, 180/pi*angle(squeeze(freqresp(G_md_fast_iff_kp( 'Du', 'Fu'), freqs_md, 'Hz'))), '-' , 'color', [colors(2,:)]); +plot(freqs_md, 180/pi*angle(squeeze(freqresp(G_md_fast_rdc( 'Du', 'Fu'), freqs_md, 'Hz'))), '-' , 'color', [colors(3,:)]); +hold off; +set(gca, 'XScale', 'log'); set(gca, 'YScale', 'lin'); +xlabel('Frequency [Hz]'); ylabel('Phase [deg]'); +hold off; +yticks(-360:90:360); +ylim([-180, 0]); + +linkaxes([ax1,ax2],'x'); +xlim([freqs_md(1), freqs_md(end)]); +#+end_src + +#+begin_src matlab :tangle no :exports results :results file replace +exportFig('figs/rotating_nass_damped_plant_comp_md.pdf', 'width', 'third', 'height', 600); +#+end_src + +#+begin_src matlab :exports none :results none +freqs_pz = logspace(0, 3, 1000); + +figure; +tiledlayout(3, 1, 'TileSpacing', 'Compact', 'Padding', 'None'); + +ax1 = nexttile([2,1]); hold on; plot(freqs_pz, abs(squeeze(freqresp(G_pz_fast( 'Du', 'Fu'), freqs_pz, 'Hz'))), '-' , 'color', [zeros(1,3)], ... 'DisplayName', 'OL'); @@ -4136,41 +3533,12 @@ plot(freqs_pz, abs(squeeze(freqresp(G_pz_fast_rdc( 'Dv', 'Fu'), freqs_pz, 'Hz')) 'HandleVisibility', 'off'); hold off; set(gca, 'XScale', 'log'); set(gca, 'YScale', 'log'); -set(gca, 'XTickLabel',[]); set(gca, 'YTickLabel',[]); -ylim([1e-12, 1e-2]) +ylabel('Magnitude [m/N]'); set(gca, 'XTickLabel',[]); +ylim([1e-12, 1e-6]) ldg = legend('location', 'northwest', 'FontSize', 8, 'NumColumns', 1); ldg.ItemTokenSize = [20, 1]; -title('$k_n = 100\,N/\mu m$'); -ax1b = nexttile; -hold on; -plot(freqs_vc, 180/pi*angle(squeeze(freqresp(G_vc_fast( 'Du', 'Fu'), freqs_vc, 'Hz'))), '-' , 'color', [zeros(1,3)]); -plot(freqs_vc, 180/pi*angle(squeeze(freqresp(G_vc_fast_iff_hpf( 'Du', 'Fu'), freqs_vc, 'Hz'))), '-' , 'color', [colors(1,:)]); -plot(freqs_vc, 180/pi*angle(squeeze(freqresp(G_vc_fast_iff_kp( 'Du', 'Fu'), freqs_vc, 'Hz'))), '-' , 'color', [colors(2,:)]); -plot(freqs_vc, 180/pi*angle(squeeze(freqresp(G_vc_fast_rdc( 'Du', 'Fu'), freqs_vc, 'Hz'))), '-' , 'color', [colors(3,:)]); -hold off; -set(gca, 'XScale', 'log'); set(gca, 'YScale', 'lin'); -xlabel('Frequency [Hz]'); ylabel('Phase [deg]'); -hold off; -yticks(-360:90:360); -ylim([-180, 180]); -xlim([freqs_vc(1), freqs_vc(end)]); - -ax2b = nexttile; -hold on; -plot(freqs_md, 180/pi*angle(squeeze(freqresp(G_md_fast( 'Du', 'Fu'), freqs_md, 'Hz'))), '-' , 'color', [zeros(1,3)]); -plot(freqs_md, 180/pi*angle(squeeze(freqresp(G_md_fast_iff_hpf( 'Du', 'Fu'), freqs_md, 'Hz'))), '-' , 'color', [colors(1,:)]); -plot(freqs_md, 180/pi*angle(squeeze(freqresp(G_md_fast_iff_kp( 'Du', 'Fu'), freqs_md, 'Hz'))), '-' , 'color', [colors(2,:)]); -plot(freqs_md, 180/pi*angle(squeeze(freqresp(G_md_fast_rdc( 'Du', 'Fu'), freqs_md, 'Hz'))), '-' , 'color', [colors(3,:)]); -hold off; -set(gca, 'XScale', 'log'); set(gca, 'YScale', 'lin'); -xlabel('Frequency [Hz]'); set(gca, 'YTickLabel',[]); -hold off; -yticks(-360:90:360); -ylim([-180, 180]); -xlim([freqs_md(1), freqs_md(end)]); - -ax3b = nexttile; +ax2 = nexttile; hold on; plot(freqs_pz, 180/pi*angle(squeeze(freqresp(G_pz_fast( 'Du', 'Fu'), freqs_pz, 'Hz'))), '-' , 'color', [zeros(1,3)]); plot(freqs_pz, 180/pi*angle(squeeze(freqresp(G_pz_fast_iff_hpf( 'Du', 'Fu'), freqs_pz, 'Hz'))), '-' , 'color', [colors(1,:)]); @@ -4178,27 +3546,42 @@ plot(freqs_pz, 180/pi*angle(squeeze(freqresp(G_pz_fast_iff_kp( 'Du', 'Fu'), freq plot(freqs_pz, 180/pi*angle(squeeze(freqresp(G_pz_fast_rdc( 'Du', 'Fu'), freqs_pz, 'Hz'))), '-' , 'color', [colors(3,:)]); hold off; set(gca, 'XScale', 'log'); set(gca, 'YScale', 'lin'); -xlabel('Frequency [Hz]'); set(gca, 'YTickLabel',[]); +xlabel('Frequency [Hz]'); ylabel('Phase [deg]'); hold off; yticks(-360:90:360); -ylim([-180, 180]); -xlim([freqs_pz(1), freqs_pz(end)]); +ylim([-180, 0]); -linkaxes([ax1,ax2,ax3],'y'); -linkaxes([ax1b,ax2b,ax3b],'y'); -linkaxes([ax1,ax1b],'x'); -linkaxes([ax2,ax2b],'x'); -linkaxes([ax3,ax3b],'x'); +linkaxes([ax1,ax2],'x'); +xlim([freqs_pz(1), freqs_pz(end)]); #+end_src #+begin_src matlab :tangle no :exports results :results file replace -exportFig('figs/rotating_nass_damped_plant_comp.pdf', 'width', 'full', 'height', 'tall'); +exportFig('figs/rotating_nass_damped_plant_comp_pz.pdf', 'width', 'third', 'height', 600); #+end_src #+name: fig:rotating_nass_damped_plant_comp -#+caption: Comparison of the damped plants (direct and coupling terms) for the three proposed active damping techniques (IFF with HPF, IFF with $k_p$ and RDC) applied on the three nano-hexapod stiffnesses. $\Omega = 60\,\text{rmp}$ and $m_n + m_s = \SI{16}{\kg}$. -#+RESULTS: -[[file:figs/rotating_nass_damped_plant_comp.png]] +#+caption: Comparison of the damped plants for the three proposed active damping techniques (IFF with HPF in blue, IFF with $k_p$ in red and RDC in yellow). The direct terms are shown by the solid lines and coupling terms are shown by the shaded lines. Three nano-hexapod stiffnesses are considered. For this analysis the rotating velocity is $\Omega = 60\,\text{rpm}$ and the suspended mass is $m_n + m_s = \SI{16}{\kg}$. +#+attr_latex: :options [htbp] +#+begin_figure +#+attr_latex: :caption \subcaption{\label{fig:rotating_nass_damped_plant_comp_vc}$k_n = 0.01\,N/\mu m$} +#+attr_latex: :options {0.33\textwidth} +#+begin_subfigure +#+attr_latex: :width 0.95\linewidth +[[file:figs/rotating_nass_damped_plant_comp_vc.png]] +#+end_subfigure +#+attr_latex: :caption \subcaption{\label{fig:rotating_nass_damped_plant_comp_md}$k_n = 1\,N/\mu m$} +#+attr_latex: :options {0.33\textwidth} +#+begin_subfigure +#+attr_latex: :width 0.95\linewidth +[[file:figs/rotating_nass_damped_plant_comp_md.png]] +#+end_subfigure +#+attr_latex: :caption \subcaption{\label{fig:rotating_nass_damped_plant_comp_pz}$k_n = 100\,N/\mu m$} +#+attr_latex: :options {0.33\textwidth} +#+begin_subfigure +#+attr_latex: :width 0.95\linewidth +[[file:figs/rotating_nass_damped_plant_comp_pz.png]] +#+end_subfigure +#+end_figure * Nano-Active-Stabilization-System with rotation :PROPERTIES: @@ -4206,10 +3589,8 @@ exportFig('figs/rotating_nass_damped_plant_comp.pdf', 'width', 'full', 'height', :END: <> ** Introduction :ignore: -Up until now, the model used consisted of an infinitely stiff vertical rotating stage with a X-Y suspended stage. - +Up until now, the model used to study gyroscopic effects consisted of an infinitely stiff rotating stage with a X-Y suspended stage on top. While quite simplistic, this allowed to study the effects of rotation and the associated limitations when active damping is to be applied. - In this section, the limited compliance of the micro-station is taken into account as well as the rotation of the spindle. ** Matlab Init :noexport:ignore: @@ -4244,38 +3625,42 @@ load('uniaxial_micro_station_parameters.mat') load('nass_controllers.mat'); #+end_src -** NASS model - -In order to be a bit closer to the NASS application, the 2DoF nano-hexapod (modelled as shown in Figure ref:fig:rotating_3dof_model_schematic) is now located on top of a model of the micro-station including (see Figure ref:fig:rotating_nass_model for a 3D view): +** Nano Active Stabilization System model +In order to have a more realistic dynamics model of the NASS, the 2-DoF nano-hexapod (modelled as shown in Figure ref:fig:rotating_3dof_model_schematic) is now located on top of a model of the micro-station including (see Figure ref:fig:rotating_nass_model for a 3D view): - the floor whose motion is imposed -- a 2DoF granite ($k_{g,x} = k_{g,y} = \SI{950}{\N\per\mu\m}$, $m_g = \SI{2500}{\kg}$) -- a 2DoF $T_y$ stage ($k_{t,x} = k_{t,y} = \SI{520}{\N\per\mu\m}$, $m_g = \SI{600}{\kg}$) +- a 2-DoF granite ($k_{g,x} = k_{g,y} = \SI{950}{\N\per\mu\m}$, $m_g = \SI{2500}{\kg}$) +- a 2-DoF $T_y$ stage ($k_{t,x} = k_{t,y} = \SI{520}{\N\per\mu\m}$, $m_g = \SI{600}{\kg}$) - a spindle (vertical rotation) stage whose rotation is imposed ($m_s = \SI{600}{\kg}$) -- a 2DoF micro-hexapod ($k_{h,x} = k_{h,y} = \SI{61}{\N\per\mu\m}$, $m_g = \SI{15}{\kg}$) +- a 2-DoF micro-hexapod ($k_{h,x} = k_{h,y} = \SI{61}{\N\per\mu\m}$, $m_g = \SI{15}{\kg}$) A payload is rigidly fixed to the nano-hexapod and the $x,y$ motion of the payload is measured with respect to the granite. #+name: fig:rotating_nass_model #+caption: 3D view of the Nano-Active-Stabilization-System model. +#+attr_latex: :scale 0.7 [[file:figs/rotating_nass_model.png]] ** System dynamics -#+begin_src matlab -%% Nano-Hexapod -mn = 15; % Nano-Hexapod mass [kg] +The dynamics of the un-damped and damped plants are identified using the optimal parameters found in Section ref:sec:rotating_nano_hexapod. +The obtained dynamics are compared in Figure ref:fig:rotating_nass_plant_comp_stiffness where the direct terms are shown by the solid curves while the coupling terms are shown by the shaded ones. +It can be observed that: +- Coupling (quantified by the ratio between the off-diagonal and direct terms) is higher for the soft nano-hexapod +- Damping added by the three proposed techniques is quite high and the obtained plant is rather easy to control +- There is some coupling between nano-hexapod and micro-station dynamics for the stiff nano-hexapod (mode at 200Hz) +- The two proposed IFF modification yields similar results -%% Light Sample +#+begin_src matlab +%% System parameters +mn = 15; % Nano-Hexapod mass [kg] ms = 1; % Sample Mass [kg] -%% General Configuration +% General Configuration model_config = struct(); model_config.controller = "open_loop"; % Default: Open-Loop model_config.Tuv_type = "normal"; % Default: 2DoF stage -#+end_src -#+begin_src matlab -%% Input/Output definition +% Input/Output definition clear io; io_i = 1; io(io_i) = linio([mdl, '/controller'], 1, 'openinput'); io_i = io_i + 1; % Actuator Forces [Fu, Fv] io(io_i) = linio([mdl, '/fd'], 1, 'openinput'); io_i = io_i + 1; % Direct Forces on Sample [Fdx, Fdy] @@ -4284,13 +3669,9 @@ io(io_i) = linio([mdl, '/ft'], 1, 'openinput'); io_i = io_i + 1; % Mi io(io_i) = linio([mdl, '/nano_hexapod'], 1, 'openoutput'); io_i = io_i + 1; % [Fmu, Fmv] io(io_i) = linio([mdl, '/nano_hexapod'], 2, 'openoutput'); io_i = io_i + 1; % [Du, Dv] io(io_i) = linio([mdl, '/ext_metrology'],1, 'openoutput'); io_i = io_i + 1; % [Dx, Dy] -#+end_src -The dynamics of the undamped and damped plants are identified. -The active damping parameters used are the optimal ones previously identified (i.e. for the rotating nano-hexapod fixed on a rigid platform). - -#+begin_src matlab -%% Voice Coil (i.e. soft) Nano-Hexapod +%% Identify plant without parallel stiffness +% Voice Coil (i.e. soft) Nano-Hexapod kn = 1e4; % Nano-Hexapod Stiffness [N/m] cn = 2*0.005*sqrt((ms + mn)*kn); % Nano-Hexapod Damping [N/(m/s)] @@ -4304,7 +3685,7 @@ G_vc_fast = linearize(mdl, io, 0.0); G_vc_fast.InputName = {'Fu', 'Fv', 'Fdx', 'Fdy', 'Dfx', 'Dfy', 'Ftx', 'Fty'}; G_vc_fast.OutputName = {'fu', 'fv', 'Du', 'Dv', 'Dx', 'Dy'}; -%% APA (i.e. relatively stiff) Nano-Hexapod +% APA (i.e. relatively stiff) Nano-Hexapod kn = 1e6; % Nano-Hexapod Stiffness [N/m] cn = 2*0.005*sqrt((ms + mn)*kn); % Nano-Hexapod Damping [N/(m/s)] @@ -4318,7 +3699,7 @@ G_md_fast = linearize(mdl, io, 0.0); G_md_fast.InputName = {'Fu', 'Fv', 'Fdx', 'Fdy', 'Dfx', 'Dfy', 'Ftx', 'Fty'}; G_md_fast.OutputName = {'fu', 'fv', 'Du', 'Dv', 'Dx', 'Dy'}; -%% Piezoelectric (i.e. stiff) Nano-Hexapod +% Piezoelectric (i.e. stiff) Nano-Hexapod kn = 1e8; % Nano-Hexapod Stiffness [N/m] cn = 2*0.005*sqrt((ms + mn)*kn); % Nano-Hexapod Damping [N/(m/s)] @@ -4331,9 +3712,7 @@ Wz = 2*pi; % Rotating Velocity [rad/s] G_pz_fast = linearize(mdl, io, 0.0); G_pz_fast.InputName = {'Fu', 'Fv', 'Fdx', 'Fdy', 'Dfx', 'Dfy', 'Ftx', 'Fty'}; G_pz_fast.OutputName = {'fu', 'fv', 'Du', 'Dv', 'Dx', 'Dy'}; -#+end_src -#+begin_src matlab %% Identify plants with Parallel stiffnesses model_config.Tuv_type = "parallel_k"; % Default: 2DoF stage @@ -4387,10 +3766,9 @@ Wz = 0; % [rad/s] G_pz_kp_norot = linearize(mdl, io, 0); G_pz_kp_norot.InputName = {'Fu', 'Fv', 'Fdx', 'Fdy', 'Dfx', 'Dfy', 'Ftx', 'Fty'}; G_pz_kp_norot.OutputName = {'fu', 'fv', 'Du', 'Dv', 'Dx', 'Dy'}; -#+end_src -#+begin_src matlab -%% Closed Loop Plants - IFF with HPF +%% Compute dampepd plants +% Closed Loop Plants - IFF with HPF G_vc_norot_iff_hpf = feedback(G_vc_norot, Kiff_hpf_vc, 'name'); G_vc_fast_iff_hpf = feedback(G_vc_fast, Kiff_hpf_vc, 'name'); @@ -4400,7 +3778,7 @@ G_md_fast_iff_hpf = feedback(G_md_fast, Kiff_hpf_md, 'name'); G_pz_norot_iff_hpf = feedback(G_pz_norot, Kiff_hpf_pz, 'name'); G_pz_fast_iff_hpf = feedback(G_pz_fast, Kiff_hpf_pz, 'name'); -%% Closed Loop Plants - IFF with Parallel Stiffness +% Closed Loop Plants - IFF with Parallel Stiffness G_vc_norot_iff_kp = feedback(G_vc_kp_norot, Kiff_kp_vc, 'name'); G_vc_fast_iff_kp = feedback(G_vc_kp_fast, Kiff_kp_vc, 'name'); @@ -4410,7 +3788,7 @@ G_md_fast_iff_kp = feedback(G_md_kp_fast, Kiff_kp_md, 'name'); G_pz_norot_iff_kp = feedback(G_pz_kp_norot, Kiff_kp_pz, 'name'); G_pz_fast_iff_kp = feedback(G_pz_kp_fast, Kiff_kp_pz, 'name'); -%% Closed Loop Plants - RDC +% Closed Loop Plants - RDC G_vc_norot_rdc = feedback(G_vc_norot, Krdc_vc, 'name'); G_vc_fast_rdc = feedback(G_vc_fast, Krdc_vc, 'name'); @@ -4421,26 +3799,12 @@ G_pz_norot_rdc = feedback(G_pz_norot, Krdc_pz, 'name'); G_pz_fast_rdc = feedback(G_pz_fast, Krdc_pz, 'name'); #+end_src -The undamped and damped plants are shown in Figure ref:fig:rotating_nass_plant_comp_stiffness. -Three nano-hexapod velocities are shown (from left to right): $k_n = \SI{0.01}{\N\per\mu\m}$, $k_n = \SI{1}{\N\per\mu\m}$ and $k_n = \SI{100}{\N\per\mu\m}$. -The direct terms are shown by the solid curves while the coupling terms are shown by the shaded ones. - -#+begin_important -It can be observed on Figure ref:fig:rotating_nass_plant_comp_stiffness that: -- Coupling (ratio between the off-diagonal and direct terms) is larger for the soft nano-hexapod -- Damping added by the three proposed techniques is quite high and the obtained plant is rather easy to control -- There is some coupling between nano-hexapod and micro-station dynamics for the stiff nano-hexapod (mode at 200Hz) -- The two proposed IFF modification yields similar results -#+end_important - #+begin_src matlab :exports none :results none %% Bode plot of the transfer function from nano-hexapod actuator to measured motion by the external metrology freqs_vc = logspace(-1, 2, 1000); -freqs_md = logspace(0, 3, 1000); -freqs_pz = logspace(0, 3, 1000); figure; -tiledlayout(3, 3, 'TileSpacing', 'Compact', 'Padding', 'None'); +tiledlayout(3, 1, 'TileSpacing', 'Compact', 'Padding', 'None'); ax1 = nexttile([2,1]); hold on; @@ -4464,9 +3828,35 @@ hold off; set(gca, 'XScale', 'log'); set(gca, 'YScale', 'log'); ylabel('Magnitude [m/N]'); set(gca, 'XTickLabel',[]); ylim([1e-12, 1e-2]) -title('$k_n = 0.01\,N/\mu m$'); -ax2 = nexttile([2,1]); +ax2 = nexttile; +hold on; +plot(freqs_vc, 180/pi*unwrap(angle(squeeze(freqresp(G_vc_fast('Dx', 'Fu'), freqs_vc, 'Hz')))), 'color', zeros(1,3)); +plot(freqs_vc, 180/pi*unwrap(angle(squeeze(freqresp(G_vc_fast_iff_hpf('Dx', 'Fu'), freqs_vc, 'Hz')))), 'color', colors(1,:)); +plot(freqs_vc, 180/pi*unwrap(angle(squeeze(freqresp(G_vc_fast_iff_kp('Dx', 'Fu'), freqs_vc, 'Hz')))), 'color', colors(2,:)); +plot(freqs_vc, 180/pi*unwrap(angle(squeeze(freqresp(G_vc_fast_rdc('Dx', 'Fu'), freqs_vc, 'Hz')))), 'color', colors(3,:)); +hold off; +set(gca, 'XScale', 'log'); set(gca, 'YScale', 'lin'); +xlabel('Frequency [Hz]'); ylabel('Phase [deg]'); +hold off; +yticks(-360:90:360); +ylim([-270, 90]); + +linkaxes([ax,ax2],'x'); +xlim([freqs_vc(1), freqs_vc(end)]); +xticks([1e-1, 1e0, 1e1]); +#+end_src + +#+begin_src matlab :tangle no :exports results :results file none +exportFig('figs/rotating_nass_plant_comp_stiffness_vc.pdf', 'width', 'third', 'height', 'tall'); +#+end_src + +#+begin_src matlab :exports none :results none +freqs_md = logspace(0, 3, 1000); +figure; +tiledlayout(3, 1, 'TileSpacing', 'Compact', 'Padding', 'None'); + +ax1 = nexttile([2,1]); hold on; plot(freqs_md, abs(squeeze(freqresp(G_md_fast('Dx', 'Fu'), freqs_md, 'Hz'))), 'color', zeros(1,3), ... 'DisplayName', 'OL'); @@ -4486,11 +3876,37 @@ plot(freqs_md, abs(squeeze(freqresp(G_md_fast_rdc('Dy', 'Fu'), freqs_md, 'Hz'))) 'HandleVisibility', 'off'); hold off; set(gca, 'XScale', 'log'); set(gca, 'YScale', 'log'); -set(gca, 'XTickLabel',[]); set(gca, 'YTickLabel',[]); +ylabel('Magnitude [m/N]'); set(gca, 'XTickLabel',[]); ylim([1e-12, 1e-2]) -title('$k_n = 1\,N/\mu m$'); -ax3 = nexttile([2,1]); +ax2 = nexttile; +hold on; +plot(freqs_md, 180/pi*unwrap(angle(squeeze(freqresp(G_md_fast('Dx', 'Fu'), freqs_md, 'Hz')))), 'color', zeros(1,3)); +plot(freqs_md, 180/pi*unwrap(angle(squeeze(freqresp(G_md_fast_iff_hpf('Dx', 'Fu'), freqs_md, 'Hz')))), 'color', colors(1,:)); +plot(freqs_md, 180/pi*unwrap(angle(squeeze(freqresp(G_md_fast_iff_kp('Dx', 'Fu'), freqs_md, 'Hz')))), 'color', colors(2,:)); +plot(freqs_md, 180/pi*unwrap(angle(squeeze(freqresp(G_md_fast_rdc('Dx', 'Fu'), freqs_md, 'Hz')))), 'color', colors(3,:)); +hold off; +set(gca, 'XScale', 'log'); set(gca, 'YScale', 'lin'); +xlabel('Frequency [Hz]'); ylabel('Phase [deg]'); +hold off; +yticks(-360:90:360); +ylim([-270, 90]); + +linkaxes([ax1,ax2],'x'); +xlim([freqs_md(1), freqs_md(end)]); +xticks([1e0, 1e1, 1e2]); +#+end_src + +#+begin_src matlab :tangle no :exports results :results file none +exportFig('figs/rotating_nass_plant_comp_stiffness_md.pdf', 'width', 'third', 'height', 'tall'); +#+end_src + +#+begin_src matlab :exports none :results none +freqs_pz = logspace(0, 3, 1000); +figure; +tiledlayout(3, 1, 'TileSpacing', 'Compact', 'Padding', 'None'); + +ax1 = nexttile([2,1]); hold on; plot(freqs_pz, abs(squeeze(freqresp(G_pz_fast('Dx', 'Fu'), freqs_pz, 'Hz'))), 'color', zeros(1,3), ... 'DisplayName', 'OL'); @@ -4510,39 +3926,12 @@ plot(freqs_pz, abs(squeeze(freqresp(G_pz_fast_rdc('Dy', 'Fu'), freqs_pz, 'Hz'))) 'HandleVisibility', 'off'); hold off; set(gca, 'XScale', 'log'); set(gca, 'YScale', 'log'); -set(gca, 'XTickLabel',[]); set(gca, 'YTickLabel',[]); +ylabel('Magnitude [m/N]'); set(gca, 'XTickLabel',[]); ylim([1e-12, 1e-2]) ldg = legend('location', 'northeast', 'FontSize', 8, 'NumColumns', 1); ldg.ItemTokenSize = [20, 1]; -title('$k_n = 100\,N/\mu m$'); -ax1b = nexttile; -hold on; -plot(freqs_vc, 180/pi*unwrap(angle(squeeze(freqresp(G_vc_fast('Dx', 'Fu'), freqs_vc, 'Hz')))), 'color', zeros(1,3)); -plot(freqs_vc, 180/pi*unwrap(angle(squeeze(freqresp(G_vc_fast_iff_hpf('Dx', 'Fu'), freqs_vc, 'Hz')))), 'color', colors(1,:)); -plot(freqs_vc, 180/pi*unwrap(angle(squeeze(freqresp(G_vc_fast_iff_kp('Dx', 'Fu'), freqs_vc, 'Hz')))), 'color', colors(2,:)); -plot(freqs_vc, 180/pi*unwrap(angle(squeeze(freqresp(G_vc_fast_rdc('Dx', 'Fu'), freqs_vc, 'Hz')))), 'color', colors(3,:)); -hold off; -set(gca, 'XScale', 'log'); set(gca, 'YScale', 'lin'); -xlabel('Frequency [Hz]'); ylabel('Phase [deg]'); -hold off; -yticks(-360:90:360); -ylim([-270, 90]); - -ax2b = nexttile; -hold on; -plot(freqs_md, 180/pi*unwrap(angle(squeeze(freqresp(G_md_fast('Dx', 'Fu'), freqs_md, 'Hz')))), 'color', zeros(1,3)); -plot(freqs_md, 180/pi*unwrap(angle(squeeze(freqresp(G_md_fast_iff_hpf('Dx', 'Fu'), freqs_md, 'Hz')))), 'color', colors(1,:)); -plot(freqs_md, 180/pi*unwrap(angle(squeeze(freqresp(G_md_fast_iff_kp('Dx', 'Fu'), freqs_md, 'Hz')))), 'color', colors(2,:)); -plot(freqs_md, 180/pi*unwrap(angle(squeeze(freqresp(G_md_fast_rdc('Dx', 'Fu'), freqs_md, 'Hz')))), 'color', colors(3,:)); -hold off; -set(gca, 'XScale', 'log'); set(gca, 'YScale', 'lin'); -xlabel('Frequency [Hz]'); set(gca, 'YTickLabel',[]); -hold off; -yticks(-360:90:360); -ylim([-270, 90]); - -ax3b = nexttile; +ax2 = nexttile; hold on; plot(freqs_pz, 180/pi*unwrap(angle(squeeze(freqresp(G_pz_fast('Dx', 'Fu'), freqs_pz, 'Hz')))), 'color', zeros(1,3)); plot(freqs_pz, 180/pi*unwrap(angle(squeeze(freqresp(G_pz_fast_iff_hpf('Dx', 'Fu'), freqs_pz, 'Hz')))), 'color', colors(1,:)); @@ -4550,42 +3939,50 @@ plot(freqs_pz, 180/pi*unwrap(angle(squeeze(freqresp(G_pz_fast_iff_kp('Dx', 'Fu') plot(freqs_pz, 180/pi*unwrap(angle(squeeze(freqresp(G_pz_fast_rdc('Dx', 'Fu'), freqs_pz, 'Hz')))), 'color', colors(3,:)); hold off; set(gca, 'XScale', 'log'); set(gca, 'YScale', 'lin'); -xlabel('Frequency [Hz]'); set(gca, 'YTickLabel',[]); +xlabel('Frequency [Hz]'); ylabel('Phase [deg]'); hold off; yticks(-360:90:360); ylim([-270, 90]); -linkaxes([ax1,ax1b],'x'); -xlim([freqs_vc(1), freqs_vc(end)]); - -linkaxes([ax2,ax2b],'x'); -xlim([freqs_md(1), freqs_md(end)]); - -linkaxes([ax3,ax3b],'x'); +linkaxes([ax1,ax2],'x'); xlim([freqs_pz(1), freqs_pz(end)]); +xticks([1e0, 1e1, 1e2]); #+end_src -#+begin_src matlab :tangle no :exports results :results file replace -exportFig('figs/rotating_nass_plant_comp_stiffness.pdf', 'width', 'full', 'height', 'tall'); +#+begin_src matlab :tangle no :exports results :results file none +exportFig('figs/rotating_nass_plant_comp_stiffness_pz.pdf', 'width', 'third', 'height', 'tall'); #+end_src #+name: fig:rotating_nass_plant_comp_stiffness #+caption: Bode plot of the transfer function from nano-hexapod actuator to measured motion by the external metrology -#+RESULTS: -[[file:figs/rotating_nass_plant_comp_stiffness.png]] +#+attr_latex: :options [htbp] +#+begin_figure +#+attr_latex: :caption \subcaption{\label{fig:rotating_nass_plant_comp_stiffness_vc}$k_n = 0.01\,N/\mu m$} +#+attr_latex: :options {0.33\textwidth} +#+begin_subfigure +#+attr_latex: :width 0.95\linewidth +[[file:figs/rotating_nass_plant_comp_stiffness_vc.png]] +#+end_subfigure +#+attr_latex: :caption \subcaption{\label{fig:rotating_nass_plant_comp_stiffness_md}$k_n = 1\,N/\mu m$} +#+attr_latex: :options {0.33\textwidth} +#+begin_subfigure +#+attr_latex: :width 0.95\linewidth +[[file:figs/rotating_nass_plant_comp_stiffness_md.png]] +#+end_subfigure +#+attr_latex: :caption \subcaption{\label{fig:rotating_nass_plant_comp_stiffness_pz}$k_n = 100\,N/\mu m$} +#+attr_latex: :options {0.33\textwidth} +#+begin_subfigure +#+attr_latex: :width 0.95\linewidth +[[file:figs/rotating_nass_plant_comp_stiffness_pz.png]] +#+end_subfigure +#+end_figure To confirm that the coupling is smaller when the stiffness of the nano-hexapod is increase, the /coupling ratio/ for the three nano-hexapod stiffnesses are shown in Figure ref:fig:rotating_nass_plant_coupling_comp. #+begin_src matlab :exports none :results none %% Coupling ratio for the proposed active damping techniques evaluated for the three nano-hexapod stiffnesses freqs_vc = logspace(-1, 2, 1000); -freqs_md = logspace(0, 3, 1000); -freqs_pz = logspace(0, 3, 1000); - figure; -tiledlayout(1, 3, 'TileSpacing', 'Compact', 'Padding', 'None'); - -ax1 = nexttile(); hold on; plot(freqs_vc, abs(squeeze(freqresp(G_vc_fast('Dy', 'Fu')/G_vc_fast('Dx', 'Fu'), freqs_vc, 'Hz'))), 'color', zeros(1,3), ... 'DisplayName', 'OL'); @@ -4598,9 +3995,17 @@ plot(freqs_vc, abs(squeeze(freqresp(G_vc_fast_rdc('Dy', 'Fu')/G_vc_fast_rdc('Dx' hold off; set(gca, 'XScale', 'log'); set(gca, 'YScale', 'log'); xlabel('Frequency [Hz]'); ylabel('Coupling Ratio'); -title('$k_n = 0.01\,N/\mu m$'); +ylim([1e-4, 1e2]); +xticks([1e-1, 1e0, 1e1]); +#+end_src -ax2 = nexttile(); +#+begin_src matlab :tangle no :exports results :results file none +exportFig('figs/rotating_nass_plant_coupling_comp_vc.pdf', 'width', 'third', 'height', 'normal'); +#+end_src + +#+begin_src matlab :exports none :results none +freqs_md = logspace(0, 3, 1000); +figure; hold on; plot(freqs_md, abs(squeeze(freqresp(G_md_fast('Dy', 'Fu')/G_md_fast('Dx', 'Fu'), freqs_md, 'Hz'))), 'color', zeros(1,3), ... 'DisplayName', 'OL'); @@ -4612,10 +4017,18 @@ plot(freqs_md, abs(squeeze(freqresp(G_md_fast_rdc('Dy', 'Fu')/G_md_fast_rdc('Dx' 'DisplayName', 'RDC'); hold off; set(gca, 'XScale', 'log'); set(gca, 'YScale', 'log'); -xlabel('Frequency [Hz]'); set(gca, 'YTickLabel',[]); -title('$k_n = 1\,N/\mu m$'); +xlabel('Frequency [Hz]'); ylabel('Coupling Ratio'); +ylim([1e-4, 1e2]); +xticks([1e0, 1e1, 1e2]); +#+end_src -ax3 = nexttile(); +#+begin_src matlab :tangle no :exports results :results file none +exportFig('figs/rotating_nass_plant_coupling_comp_md.pdf', 'width', 'third', 'height', 'normal'); +#+end_src + +#+begin_src matlab :exports none :results none +freqs_pz = logspace(0, 3, 1000); +figure; hold on; plot(freqs_pz, abs(squeeze(freqresp(G_pz_fast('Dy', 'Fu')/G_pz_fast('Dx', 'Fu'), freqs_pz, 'Hz'))), 'color', zeros(1,3), ... 'DisplayName', 'OL'); @@ -4627,22 +4040,40 @@ plot(freqs_pz, abs(squeeze(freqresp(G_pz_fast_rdc('Dy', 'Fu')/G_pz_fast_rdc('Dx' 'DisplayName', 'RDC'); hold off; set(gca, 'XScale', 'log'); set(gca, 'YScale', 'log'); -xlabel('Frequency [Hz]'); set(gca, 'YTickLabel',[]); -title('$k_n = 100\,N/\mu m$'); +xlabel('Frequency [Hz]'); ylabel('Coupling Ratio'); ldg = legend('location', 'northwest', 'FontSize', 8, 'NumColumns', 1); ldg.ItemTokenSize = [20, 1]; - -linkaxes([ax1,ax2,ax3], 'y') +ylim([1e-4, 1e2]); +xticks([1e0, 1e1, 1e2]); #+end_src -#+begin_src matlab :tangle no :exports results :results file replace -exportFig('figs/rotating_nass_plant_coupling_comp.pdf', 'width', 'full', 'height', 'normal'); +#+begin_src matlab :tangle no :exports results :results file none +exportFig('figs/rotating_nass_plant_coupling_comp_pz.pdf', 'width', 'third', 'height', 'normal'); #+end_src #+name: fig:rotating_nass_plant_coupling_comp #+caption: Coupling ratio for the proposed active damping techniques evaluated for the three nano-hexapod stiffnesses -#+RESULTS: -[[file:figs/rotating_nass_plant_coupling_comp.png]] +#+attr_latex: :options [htbp] +#+begin_figure +#+attr_latex: :caption \subcaption{\label{fig:rotating_nass_plant_coupling_comp_vc}$k_n = 0.01\,N/\mu m$} +#+attr_latex: :options {0.33\textwidth} +#+begin_subfigure +#+attr_latex: :width 0.95\linewidth +[[file:figs/rotating_nass_plant_coupling_comp_vc.png]] +#+end_subfigure +#+attr_latex: :caption \subcaption{\label{fig:rotating_nass_plant_coupling_comp_md}$k_n = 1\,N/\mu m$} +#+attr_latex: :options {0.33\textwidth} +#+begin_subfigure +#+attr_latex: :width 0.95\linewidth +[[file:figs/rotating_nass_plant_coupling_comp_md.png]] +#+end_subfigure +#+attr_latex: :caption \subcaption{\label{fig:rotating_nass_plant_coupling_comp_pz}$k_n = 100\,N/\mu m$} +#+attr_latex: :options {0.33\textwidth} +#+begin_subfigure +#+attr_latex: :width 0.95\linewidth +[[file:figs/rotating_nass_plant_coupling_comp_pz.png]] +#+end_subfigure +#+end_figure ** Effect of disturbances @@ -4655,7 +4086,7 @@ The effect of three disturbances are considered: Conclusions are similar than with the uniaxial (non-rotating) model: - Regarding the effect of floor motion and forces applied on the payload: - The stiffer, the better (magnitudes are lower for the right curves, Figures ref:fig:rotating_nass_effect_floor_motion and ref:fig:rotating_nass_effect_direct_forces) - - Integral Force Feedback degrades the performances at low frequency compared to relative damping control + - Integral Force Feedback degrades the performance at low frequency compared to relative damping control - Regarding the effect of micro-station vibrations: - Having a soft nano-hexapod allows to filter these vibrations between the suspensions modes of the nano-hexapod and some flexible modes of the micro-station. Using relative damping control reduce this filtering (Figure ref:fig:rotating_nass_effect_stage_vibration, left). #+end_important @@ -4665,9 +4096,6 @@ Conclusions are similar than with the uniaxial (non-rotating) model: freqs = logspace(-1, 3, 1000); figure; -tiledlayout(1, 3, 'TileSpacing', 'Compact', 'Padding', 'None'); - -ax1 = nexttile(); hold on; plot(freqs, abs(squeeze(freqresp(G_vc_fast('Dx', 'Dfx'), freqs, 'Hz'))), 'color', zeros(1,3), ... 'DisplayName', 'OL'); @@ -4682,9 +4110,15 @@ set(gca, 'XScale', 'log'); set(gca, 'YScale', 'log'); xlabel('Frequency [Hz]'); ylabel('Magnitude $d_x/D_{f,x}$ [m/N]'); xticks([1e-1, 1e0, 1e1, 1e2, 1e3]); xtickangle(0) -title('$k_n = 0.01\,N/\mu m$'); +ylim([1e-4, 1e2]); +#+end_src -ax2 = nexttile(); +#+begin_src matlab :tangle no :exports results :results file none +exportFig('figs/rotating_nass_effect_floor_motion_vc.pdf', 'width', 'third', 'height', 'normal'); +#+end_src + +#+begin_src matlab :exports none :results none +figure; hold on; plot(freqs, abs(squeeze(freqresp(G_md_fast('Dx', 'Dfx'), freqs, 'Hz'))), 'color', zeros(1,3), ... 'DisplayName', 'OL'); @@ -4696,12 +4130,18 @@ plot(freqs, abs(squeeze(freqresp(G_md_fast_rdc('Dx', 'Dfx'), freqs, 'Hz'))), 'co 'DisplayName', 'RDC'); hold off; set(gca, 'XScale', 'log'); set(gca, 'YScale', 'log'); -xlabel('Frequency [Hz]'); set(gca, 'YTickLabel',[]); +xlabel('Frequency [Hz]'); ylabel('Magnitude $d_x/D_{f,x}$ [m/N]'); xticks([1e-1, 1e0, 1e1, 1e2, 1e3]); xtickangle(0) -title('$k_n = 1\,N/\mu m$'); +ylim([1e-4, 1e2]); +#+end_src -ax3 = nexttile(); +#+begin_src matlab :tangle no :exports results :results file none +exportFig('figs/rotating_nass_effect_floor_motion_md.pdf', 'width', 'third', 'height', 'normal'); +#+end_src + +#+begin_src matlab :exports none :results none +figure; hold on; plot(freqs, abs(squeeze(freqresp(G_pz_fast('Dx', 'Dfx'), freqs, 'Hz'))), 'color', zeros(1,3), ... 'DisplayName', 'OL'); @@ -4713,31 +4153,45 @@ plot(freqs, abs(squeeze(freqresp(G_pz_fast_rdc('Dx', 'Dfx'), freqs, 'Hz'))), 'co 'DisplayName', 'RDC'); hold off; set(gca, 'XScale', 'log'); set(gca, 'YScale', 'log'); -xlabel('Frequency [Hz]'); set(gca, 'YTickLabel',[]); +xlabel('Frequency [Hz]'); ylabel('Magnitude $d_x/D_{f,x}$ [m/N]'); xticks([1e-1, 1e0, 1e1, 1e2, 1e3]); xtickangle(0) -title('$k_n = 100\,N/\mu m$'); -ldg = legend('location', 'northwest', 'FontSize', 8, 'NumColumns', 1); -ldg.ItemTokenSize = [20, 1]; - -linkaxes([ax1,ax2,ax3], 'y') +ldg = legend('location', 'southeast', 'FontSize', 8, 'NumColumns', 1); +ldg.ItemTokenSize = [15, 1]; +ylim([1e-4, 1e2]); #+end_src -#+begin_src matlab :tangle no :exports results :results file replace -exportFig('figs/rotating_nass_effect_floor_motion.pdf', 'width', 'full', 'height', 'normal'); +#+begin_src matlab :tangle no :exports results :results file none +exportFig('figs/rotating_nass_effect_floor_motion_pz.pdf', 'width', 'third', 'height', 'normal'); #+end_src #+name: fig:rotating_nass_effect_floor_motion #+caption: Effect of Floor motion on the position error - Comparison of active damping techniques for the three nano-hexapod stiffnesses -#+RESULTS: -[[file:figs/rotating_nass_effect_floor_motion.png]] +#+attr_latex: :options [htbp] +#+begin_figure +#+attr_latex: :caption \subcaption{\label{fig:rotating_nass_effect_floor_motion_vc}$k_n = 0.01\,N/\mu m$} +#+attr_latex: :options {0.33\textwidth} +#+begin_subfigure +#+attr_latex: :width 0.95\linewidth +[[file:figs/rotating_nass_effect_floor_motion_vc.png]] +#+end_subfigure +#+attr_latex: :caption \subcaption{\label{fig:rotating_nass_effect_floor_motion_md}$k_n = 1\,N/\mu m$} +#+attr_latex: :options {0.33\textwidth} +#+begin_subfigure +#+attr_latex: :width 0.95\linewidth +[[file:figs/rotating_nass_effect_floor_motion_md.png]] +#+end_subfigure +#+attr_latex: :caption \subcaption{\label{fig:rotating_nass_effect_floor_motion_pz}$k_n = 100\,N/\mu m$} +#+attr_latex: :options {0.33\textwidth} +#+begin_subfigure +#+attr_latex: :width 0.95\linewidth +[[file:figs/rotating_nass_effect_floor_motion_pz.png]] +#+end_subfigure +#+end_figure #+begin_src matlab :exports none :results none %% Effect of micro-station vibrations on the position error - Comparison of active damping techniques for the three nano-hexapod stiffnesses figure; -tiledlayout(1, 3, 'TileSpacing', 'Compact', 'Padding', 'None'); - -ax1 = nexttile(); hold on; plot(freqs, abs(squeeze(freqresp(G_vc_fast('Dx', 'Ftx'), freqs, 'Hz'))), 'color', zeros(1,3), ... 'DisplayName', 'OL'); @@ -4752,9 +4206,15 @@ set(gca, 'XScale', 'log'); set(gca, 'YScale', 'log'); xlabel('Frequency [Hz]'); ylabel('Magnitude $d_x/f_{t,x}$ [m/N]'); xticks([1e-1, 1e0, 1e1, 1e2, 1e3]); xtickangle(0) -title('$k_n = 0.01\,N/\mu m$'); +ylim([1e-12, 2e-7]); +#+end_src -ax2 = nexttile(); +#+begin_src matlab :tangle no :exports results :results file none +exportFig('figs/rotating_nass_effect_stage_vibration_vc.pdf', 'width', 'third', 'height', 'normal'); +#+end_src + +#+begin_src matlab :exports none :results none +figure; hold on; plot(freqs, abs(squeeze(freqresp(G_md_fast('Dx', 'Ftx'), freqs, 'Hz'))), 'color', zeros(1,3), ... 'DisplayName', 'OL'); @@ -4766,12 +4226,18 @@ plot(freqs, abs(squeeze(freqresp(G_md_fast_rdc('Dx', 'Ftx'), freqs, 'Hz'))), 'co 'DisplayName', 'RDC'); hold off; set(gca, 'XScale', 'log'); set(gca, 'YScale', 'log'); -xlabel('Frequency [Hz]'); set(gca, 'YTickLabel',[]); +xlabel('Frequency [Hz]'); ylabel('Magnitude $d_x/f_{t,x}$ [m/N]'); xticks([1e-1, 1e0, 1e1, 1e2, 1e3]); xtickangle(0) -title('$k_n = 1\,N/\mu m$'); +ylim([1e-12, 2e-7]); +#+end_src -ax3 = nexttile(); +#+begin_src matlab :tangle no :exports results :results file none +exportFig('figs/rotating_nass_effect_stage_vibration_md.pdf', 'width', 'third', 'height', 'normal'); +#+end_src + +#+begin_src matlab :exports none :results none +figure; hold on; plot(freqs, abs(squeeze(freqresp(G_pz_fast('Dx', 'Ftx'), freqs, 'Hz'))), 'color', zeros(1,3), ... 'DisplayName', 'OL'); @@ -4783,31 +4249,46 @@ plot(freqs, abs(squeeze(freqresp(G_pz_fast_rdc('Dx', 'Ftx'), freqs, 'Hz'))), 'co 'DisplayName', 'RDC'); hold off; set(gca, 'XScale', 'log'); set(gca, 'YScale', 'log'); -xlabel('Frequency [Hz]'); set(gca, 'YTickLabel',[]); +xlabel('Frequency [Hz]'); ylabel('Magnitude $d_x/f_{t,x}$ [m/N]'); xticks([1e-1, 1e0, 1e1, 1e2, 1e3]); xtickangle(0) -title('$k_n = 100\,N/\mu m$'); -ldg = legend('location', 'northwest', 'FontSize', 8, 'NumColumns', 1); +ldg = legend('location', 'southwest', 'FontSize', 8, 'NumColumns', 1); ldg.ItemTokenSize = [20, 1]; - -linkaxes([ax1,ax2,ax3], 'y') +ylim([1e-12, 2e-7]); #+end_src -#+begin_src matlab :tangle no :exports results :results file replace -exportFig('figs/rotating_nass_effect_stage_vibration.pdf', 'width', 'full', 'height', 'normal'); +#+begin_src matlab :tangle no :exports results :results file none +exportFig('figs/rotating_nass_effect_stage_vibration_pz.pdf', 'width', 'third', 'height', 'normal'); #+end_src #+name: fig:rotating_nass_effect_stage_vibration #+caption: Effect of micro-station vibrations on the position error - Comparison of active damping techniques for the three nano-hexapod stiffnesses -#+RESULTS: -[[file:figs/rotating_nass_effect_stage_vibration.png]] +#+attr_latex: :options [htbp] +#+begin_figure +#+attr_latex: :caption \subcaption{\label{fig:rotating_nass_effect_stage_vibration_vc}$k_n = 0.01\,N/\mu m$} +#+attr_latex: :options {0.33\textwidth} +#+begin_subfigure +#+attr_latex: :width 0.95\linewidth +[[file:figs/rotating_nass_effect_stage_vibration_vc.png]] +#+end_subfigure +#+attr_latex: :caption \subcaption{\label{fig:rotating_nass_effect_stage_vibration_md}$k_n = 1\,N/\mu m$} +#+attr_latex: :options {0.33\textwidth} +#+begin_subfigure +#+attr_latex: :width 0.95\linewidth +[[file:figs/rotating_nass_effect_stage_vibration_md.png]] +#+end_subfigure +#+attr_latex: :caption \subcaption{\label{fig:rotating_nass_effect_stage_vibration_pz}$k_n = 100\,N/\mu m$} +#+attr_latex: :options {0.33\textwidth} +#+begin_subfigure +#+attr_latex: :width 0.95\linewidth +[[file:figs/rotating_nass_effect_stage_vibration_pz.png]] +#+end_subfigure +#+end_figure + #+begin_src matlab :exports none :results none %% Effect of sample forces on the position error - Comparison of active damping techniques for the three nano-hexapod stiffnesses figure; -tiledlayout(1, 3, 'TileSpacing', 'Compact', 'Padding', 'None'); - -ax1 = nexttile(); hold on; plot(freqs, abs(squeeze(freqresp(G_vc_fast('Dx', 'Fdx'), freqs, 'Hz'))), 'color', zeros(1,3), ... 'DisplayName', 'OL'); @@ -4822,9 +4303,15 @@ set(gca, 'XScale', 'log'); set(gca, 'YScale', 'log'); xlabel('Frequency [Hz]'); ylabel('Magnitude $d_x/f_{s,x}$ [m/N]'); xticks([1e-1, 1e0, 1e1, 1e2, 1e3]); xtickangle(0) -title('$k_n = 0.01\,N/\mu m$'); +ylim([1e-9, 1e-2]) +#+end_src -ax2 = nexttile(); +#+begin_src matlab :tangle no :exports results :results file none +exportFig('figs/rotating_nass_effect_direct_forces_vc.pdf', 'width', 'third', 'height', 'normal'); +#+end_src + +#+begin_src matlab :exports none :results none +figure; hold on; plot(freqs, abs(squeeze(freqresp(G_md_fast('Dx', 'Fdx'), freqs, 'Hz'))), 'color', zeros(1,3), ... 'DisplayName', 'OL'); @@ -4836,12 +4323,18 @@ plot(freqs, abs(squeeze(freqresp(G_md_fast_rdc('Dx', 'Fdx'), freqs, 'Hz'))), 'co 'DisplayName', 'RDC'); hold off; set(gca, 'XScale', 'log'); set(gca, 'YScale', 'log'); -xlabel('Frequency [Hz]'); set(gca, 'YTickLabel',[]); +xlabel('Frequency [Hz]'); ylabel('Magnitude $d_x/f_{s,x}$ [m/N]'); xticks([1e-1, 1e0, 1e1, 1e2, 1e3]); xtickangle(0) -title('$k_n = 1\,N/\mu m$'); +ylim([1e-9, 1e-2]) +#+end_src -ax3 = nexttile(); +#+begin_src matlab :tangle no :exports results :results file none +exportFig('figs/rotating_nass_effect_direct_forces_md.pdf', 'width', 'third', 'height', 'normal'); +#+end_src + +#+begin_src matlab :exports none :results none +figure; hold on; plot(freqs, abs(squeeze(freqresp(G_pz_fast('Dx', 'Fdx'), freqs, 'Hz'))), 'color', zeros(1,3), ... 'DisplayName', 'OL'); @@ -4853,33 +4346,60 @@ plot(freqs, abs(squeeze(freqresp(G_pz_fast_rdc('Dx', 'Fdx'), freqs, 'Hz'))), 'co 'DisplayName', 'RDC'); hold off; set(gca, 'XScale', 'log'); set(gca, 'YScale', 'log'); -xlabel('Frequency [Hz]'); set(gca, 'YTickLabel',[]); +xlabel('Frequency [Hz]'); ylabel('Magnitude $d_x/f_{s,x}$ [m/N]'); xticks([1e-1, 1e0, 1e1, 1e2, 1e3]); xtickangle(0) -title('$k_n = 100\,N/\mu m$'); ldg = legend('location', 'northwest', 'FontSize', 8, 'NumColumns', 1); ldg.ItemTokenSize = [20, 1]; linkaxes([ax1,ax2,ax3], 'y') +ylim([1e-9, 1e-2]) #+end_src -#+begin_src matlab :tangle no :exports results :results file replace -exportFig('figs/rotating_nass_effect_direct_forces.pdf', 'width', 'full', 'height', 'normal'); +#+begin_src matlab :tangle no :exports results :results file none +exportFig('figs/rotating_nass_effect_direct_forces_pz.pdf', 'width', 'third', 'height', 'normal'); #+end_src #+name: fig:rotating_nass_effect_direct_forces #+caption: Effect of sample forces on the position error - Comparison of active damping techniques for the three nano-hexapod stiffnesses -#+RESULTS: -[[file:figs/rotating_nass_effect_direct_forces.png]] +#+attr_latex: :options [htbp] +#+begin_figure +#+attr_latex: :caption \subcaption{\label{fig:rotating_nass_effect_direct_forces_vc}$k_n = 0.01\,N/\mu m$} +#+attr_latex: :options {0.33\textwidth} +#+begin_subfigure +#+attr_latex: :width 0.95\linewidth +[[file:figs/rotating_nass_effect_direct_forces_vc.png]] +#+end_subfigure +#+attr_latex: :caption \subcaption{\label{fig:rotating_nass_effect_direct_forces_md}$k_n = 1\,N/\mu m$} +#+attr_latex: :options {0.33\textwidth} +#+begin_subfigure +#+attr_latex: :width 0.95\linewidth +[[file:figs/rotating_nass_effect_direct_forces_md.png]] +#+end_subfigure +#+attr_latex: :caption \subcaption{\label{fig:rotating_nass_effect_direct_forces_pz}$k_n = 100\,N/\mu m$} +#+attr_latex: :options {0.33\textwidth} +#+begin_subfigure +#+attr_latex: :width 0.95\linewidth +[[file:figs/rotating_nass_effect_direct_forces_pz.png]] +#+end_subfigure +#+end_figure * Conclusion +:PROPERTIES: +:UNNUMBERED: t +:END: + +# - problem with voice coil actuator +# - Two solutions: add parallel stiffness, or change controller +# - Conclusion: minimum stiffness is required +# - APA is a nice architecture for parallel stiffness + integrated force sensor (have to speak about IFF before that) In this study, the gyroscopic effects induced by the spindle's rotation have been studied using a spindle model (Section ref:sec:rotating_system_description). Decentralized IFF with pure integrators was shown to be unstable when applied to rotating platforms (Section ref:sec:rotating_iff_pure_int). Two modifications of the classical IFF control have been proposed to overcome this issue. -The first modification concerns the controller and consists of adding an high pass filter to the pure integrators. -This is equivalent as to moving the controller pole to the left along the real axis. +The first modification concerns the controller and consists of adding a high pass filter to the pure integrators. +This is equivalent to moving the controller pole to the left along the real axis. This allows the closed loop system to be stable up to some value of the controller gain (Section ref:sec:rotating_iff_pseudo_int). The second proposed modification concerns the mechanical system. @@ -4893,31 +4413,12 @@ Then, this study has been applied to a rotating system that corresponds to the n To be closer to the real system dynamics, the limited compliance of the micro-station has been taken into account. Results show that the two proposed IFF modifications can be applied for the NASS even in the presence of spindle rotation. -* Notations :noexport: -<> - -| | Mathematical Notation | Matlab | Unit | -|-----------------------------------+------------------------------+---------------+---------| -| Actuator Stiffness | $k$ | =k= | N/m | -| Actuator Damping | $c$ | =c= | N/(m/s) | -| Payload Mass | $m$ | =m= | kg | -| Damping Ratio | $\xi = \frac{c}{2\sqrt{km}}$ | =xi= | | -| Actuator Force | $\bm{F}, F_u, F_v$ | =F= =Fu= =Fv= | N | -| Force Sensor signal | $\bm{f}, f_u, f_v$ | =f= =fu= =fv= | N | -| Relative Displacement | $\bm{d}, d_u, d_v$ | =d= =du= =dv= | m | -| Resonance freq. when $\Omega = 0$ | $\omega_0$ | =w0= | rad/s | -| Rotation Speed | $\Omega = \dot{\theta}$ | =W= | rad/s | -| Low Pass Filter corner frequency | $\omega_i$ | =wi= | rad/s | - -| | Mathematical Notation | Matlab | Unit | -|------------------+-----------------------+--------+---------| -| Laplace variable | $s$ | =s= | | -| Complex number | $j$ | =j= | | -| Frequency | $\omega$ | =w= | [rad/s] | - * Bibliography :ignore: #+latex: \printbibliography[heading=bibintoc,title={Bibliography}] +* Glossary :ignore: +[[printglossaries:]] + * Helping Functions :noexport: ** Initialize Path #+NAME: m-init-path @@ -4942,6 +4443,104 @@ addpath('./src/'); % Path for Functions colors = colororder; #+END_SRC +** =rootLocusPolesSorted= +#+begin_src matlab :tangle matlab/src/rootLocusPolesSorted.m + function [poles] = rootLocusPolesSorted(G, K, gains, args) + % rootLocusPolesSorted - + % + % Syntax: [poles] = rootLocusPolesSorted(G, K, gains, args) + % + % Inputs: + % - G, K, gains, args - + % + % Outputs: + % - poles - + + arguments + G + K + gains + args.minreal double {mustBeNumericOrLogical} = false + args.p_half double {mustBeNumericOrLogical} = false + args.d_max double {mustBeNumeric} = -1 + end + + if args.minreal + p1 = pole(minreal(feedback(G, gains(1)*K))); + [~, i_uniq] = uniquetol([real(p1), imag(p1)], 1e-10, 'ByRows', true); + p1 = p1(i_uniq); + + poles = zeros(length(p1), length(gains)); + poles(:, 1) = p1; + else + p1 = pole(feedback(G, gains(1)*K)); + [~, i_uniq] = uniquetol([real(p1), imag(p1)], 1e-10, 'ByRows', true); + p1 = p1(i_uniq); + + poles = zeros(length(p1), length(gains)); + poles(:, 1) = p1; + end + + if args.minreal + p2 = pole(minreal(feedback(G, gains(2)*K))); + [~, i_uniq] = uniquetol([real(p2), imag(p2)], 1e-10, 'ByRows', true); + p2 = p2(i_uniq); + poles(:, 2) = p2; + else + p2 = pole(feedback(G, gains(2)*K)); + [~, i_uniq] = uniquetol([real(p2), imag(p2)], 1e-10, 'ByRows', true); + p2 = p2(i_uniq); + poles(:, 2) = p2; + end + + for g_i = 3:length(gains) + % Estimated value of the poles + poles_est = poles(:, g_i-1) + (poles(:, g_i-1) - poles(:, g_i-2))*(gains(g_i) - gains(g_i-1))/(gains(g_i-1) - gains(g_i - 2)); + + % New values for the poles + poles_gi = pole(feedback(G, gains(g_i)*K)); + [~, i_uniq] = uniquetol([real(poles_gi), imag(poles_gi)], 1e-10, 'ByRows', true); + poles_gi = poles_gi(i_uniq); + + % Array of distances between all the poles + poles_dist = sqrt((poles_est-poles_gi.').*conj(poles_est-poles_gi.')); + + % Get indices corresponding to distances from lowest to highest + [~, c] = sort(min(poles_dist)); + + as = 1:length(poles_gi); + + % for each column of poles_dist corresponding to the i'th pole + % with closest previous poles + for p_i = c + % Get the indice a_i of the previous pole that is the closest + % to pole c(p_i) + [~, a_i] = min(poles_dist(:, p_i)); + + poles(as(a_i), g_i) = poles_gi(p_i); + + % Remove old poles that are already matched + % poles_gi(as(a_i), :) = []; + poles_dist(a_i, :) = []; + as(a_i) = []; + end + end + + + if args.d_max > 0 + poles = poles(max(abs(poles(:, 2:end) - poles(:, 1:end-1))') > args.d_max, :); + end + + if args.p_half + poles = poles(1:round(end/2), :); + end + + [~, s_p] = sort(imag(poles(:,1)), 'descend'); + poles = poles(s_p, :); + + poles = poles.'; +#+end_src + ** =computeSimultaneousDamping= #+begin_src matlab :tangle matlab/src/computeSimultaneousDamping.m function [xi_min] = computeSimultaneousDamping(g, G, K) diff --git a/nass-rotating-3dof-model.pdf b/nass-rotating-3dof-model.pdf index 9c21504..39c8aa9 100644 Binary files a/nass-rotating-3dof-model.pdf and b/nass-rotating-3dof-model.pdf differ diff --git a/nass-rotating-3dof-model.tex b/nass-rotating-3dof-model.tex index 7bdbda3..a32d22a 100644 --- a/nass-rotating-3dof-model.tex +++ b/nass-rotating-3dof-model.tex @@ -1,24 +1,34 @@ -% Created 2024-03-21 Thu 18:28 +% Created 2024-04-16 Tue 22:57 % Intended LaTeX compiler: pdflatex \documentclass[a4paper, 10pt, DIV=12, parskip=full, bibliography=totoc]{scrreprt} -\usepackage{siunitx} -\usepackage{tikz} -\usetikzlibrary{shapes.misc,arrows,arrows.meta} -\usepackage{bm} -\usepackage{amsmath} -\usepackage{amssymb} \input{preamble.tex} +\newacronym{haclac}{HAC-LAC}{High Authority Control - Low Authority Control} +\newacronym{hac}{HAC}{High Authority Control} +\newacronym{lac}{LAC}{Low Authority Control} +\newacronym{nass}{NASS}{Nano Active Stabilization System} +\newacronym{asd}{ASD}{Amplitude Spectral Density} +\newacronym{psd}{PSD}{Power Spectral Density} +\newacronym{cps}{CPS}{Cumulative Power Spectrum} +\newacronym{cas}{CAS}{Cumulative Amplitude Spectrum} +\newacronym{frf}{FRF}{Frequency Response Function} +\newacronym{iff}{IFF}{Integral Force Feedback} +\newacronym{rdc}{RDC}{Relative Damping Control} +\newglossaryentry{psdx}{name=\ensuremath{\Phi_{x}},description={{Power spectral density of signal $x$}}} +\newglossaryentry{asdx}{name=\ensuremath{\Gamma_{x}},description={{Amplitude spectral density of signal $x$}}} +\newglossaryentry{cpsx}{name=\ensuremath{\Phi_{x}},description={{Cumulative Power Spectrum of signal $x$}}} +\newglossaryentry{casx}{name=\ensuremath{\Gamma_{x}},description={{Cumulative Amplitude Spectrum of signal $x$}}} +\input{preamble_extra.tex} \bibliography{nass-rotating-3dof-model.bib} \author{Dehaeze Thomas} \date{\today} -\title{NASS - Effect of rotation} +\title{Nano Active Stabilization System - Effect of rotation} \hypersetup{ pdfauthor={Dehaeze Thomas}, - pdftitle={NASS - Effect of rotation}, + pdftitle={Nano Active Stabilization System - Effect of rotation}, pdfkeywords={}, pdfsubject={}, - pdfcreator={Emacs 29.2 (Org mode 9.7)}, + pdfcreator={Emacs 29.3 (Org mode 9.6)}, pdflang={English}} \usepackage{biblatex} @@ -28,136 +38,123 @@ \tableofcontents \clearpage -An important aspect of the Nano Active Stabilization System (NASS) is that the nano-hexapod is continuously rotating around a vertical axis while the external metrology is not. -Such rotation induces gyroscopic effects that may impact the system dynamics and obtained performances. -In this report, this rotating aspect of the NASS is studied. -It is structured in several sections: -\begin{itemize} -\item Section \ref{sec:rotating_system_description}: a simple model of a rotating suspended platform that will be used throughout this study is presented. The effect of the rotation velocity on the system dynamics is shown. -\item Section \ref{sec:rotating_iff_pure_int}: Integral Force Feedback (IFF) is applied to the rotating platform, and it is shown that the unconditional stability of IFF is lost due to Gyroscopic effects induced by the rotation. -\item Section \ref{sec:rotating_iff_pseudo_int}: A first modification of the IFF control law is proposed such that damping can be added to the suspension modes in a robust way. This modification consists of adding an high pass filter to the IFF controller. Optimal high pass filter cut-off frequency is computed. -\item Section \ref{sec:rotating_iff_parallel_stiffness}: A second modification is proposed to regain the unconditional stability of IFF. This modification consists of adding stiffness in parallel to the force sensors. Optimal parallel stiffness is computed. -\item Section \ref{sec:rotating_relative_damp_control}: Relative damping control is applied to the rotating system. -\item Section \ref{sec:rotating_comp_act_damp}: Once the optimal control parameters for the three tested active damping techniques are obtained, they are compared in terms of achievable damping, obtained damped plant and closed-loop compliance and transmissibility. -\item Section \ref{sec:rotating_nano_hexapod}: the previous analysis is applied on three nano-hexapod stiffnesses and optimal active damping controller are obtained. -\item Section \ref{sec:rotating_nass}: up until this section, the study was performed on a very simplistic model that just captures the rotation aspect and the model parameters were not tuned to corresponds to the NASS. In this last section, a model of the micro-station is added below the suspended platform (i.e. the nano-hexapod) with a rotating spindle and parameters tuned to match the NASS dynamics. The goal is to determine if the rotation imposes performance limitation for the NASS. -\end{itemize} +An important aspect of the \acrfull{nass} is that the nano-hexapod is continuously rotating around a vertical axis while the external metrology is not. +Such rotation induces gyroscopic effects that may impact the system dynamics and obtained performance. +To study these effects, a model of a rotating suspended platform is first presented (Section \ref{sec:rotating_system_description}) +This model is simple enough to be able to derive its dynamics analytically and to well understand its behavior, while still allowing to capture the important physical effects in play. -To run the Matlab code, go in the \texttt{matlab} directory and run the Matlab files corresponding to each section (see Table \ref{tab:section_matlab_code}). +\acrfull{iff} is then applied to the rotating platform, and it is shown that the unconditional stability of \acrshort{iff} is lost due to gyroscopic effects induced by the rotation (Section \ref{sec:rotating_iff_pure_int}). +Two modifications of the Integral Force Feedback are then proposed. +The first one consists of adding an high pass filter to the \acrshort{iff} controller (Section \ref{sec:rotating_iff_pseudo_int}). +It is shown that the \acrshort{iff} controller is stable for some values of the gain, and that damping can be added to the suspension modes. +Optimal high pass filter cut-off frequency is computed. +The second modification consists of adding a stiffness in parallel to the force sensors (Section \ref{sec:rotating_iff_parallel_stiffness}). +Under a certain condition, the unconditional stability of the the IFF controller is regained. +Optimal parallel stiffness is then computed. +This study of adapting \acrshort{iff} for the damping of rotating platforms was the subject of two published papers \cite{dehaeze20_activ_dampin_rotat_platf_integ_force_feedb,dehaeze21_activ_dampin_rotat_platf_using}. -\begin{table}[htbp] -\caption{\label{tab:section_matlab_code}Report sections and corresponding Matlab files} -\centering -\begin{tabularx}{0.6\linewidth}{lX} -\toprule -\textbf{Sections} & \textbf{Matlab File}\\ -\midrule -Section \ref{sec:rotating_system_description} & \texttt{rotating\_1\_system\_description.m}\\ -Section \ref{sec:rotating_iff_pure_int} & \texttt{rotating\_2\_iff\_pure\_int.m}\\ -Section \ref{sec:rotating_iff_pseudo_int} & \texttt{rotating\_3\_iff\_hpf.m}\\ -Section \ref{sec:rotating_iff_parallel_stiffness} & \texttt{rotating\_4\_iff\_kp.m}\\ -Section \ref{sec:rotating_relative_damp_control} & \texttt{rotating\_5\_rdc.m}\\ -Section \ref{sec:rotating_comp_act_damp} & \texttt{rotating\_5\_act\_damp\_comparison.m}\\ -Section \ref{sec:rotating_nano_hexapod} & \texttt{rotating\_6\_nano\_hexapod.m}\\ -Section \ref{sec:rotating_nass} & \texttt{rotating\_6\_nass.m}\\ -\bottomrule -\end{tabularx} -\end{table} -\chapter{System Description and Analysis} -\label{sec:rotating_system_description} +It is then shown that \acrfull{rdc} is less affected by gyroscopic effects (Section \ref{sec:rotating_relative_damp_control}). +Once the optimal control parameters for the three tested active damping techniques are obtained, they are compared in terms of achievable damping, obtained damped plant and closed-loop compliance and transmissibility (Section \ref{sec:rotating_comp_act_damp}). -The studied system consists of a 2 degree of freedom translation stage on top of a rotating stage (Figure \ref{fig:rotating_3dof_model_schematic}). - -The rotating stage is supposed to be ideal, meaning it induces a perfect rotation \(\theta(t) = \Omega t\) where \(\Omega\) is the rotational speed in \(\si{\radian\per\s}\). - -The suspended platform consists of two orthogonal actuators each represented by three elements in parallel: a spring with a stiffness \(k\) in \(\si{\newton\per\meter}\), a dashpot with a damping coefficient \(c\) in \(\si{\newton\per(\meter\per\second)}\) and an ideal force source \(F_u, F_v\). -A payload with a mass \(m\) in \(\si{\kilo\gram}\), is mounted on the (rotating) suspended platform. - -Two reference frames are used: an inertial frame \((\vec{i}_x, \vec{i}_y, \vec{i}_z)\) and a uniform rotating frame \((\vec{i}_u, \vec{i}_v, \vec{i}_w)\) rigidly fixed on top of the rotating stage with \(\vec{i}_w\) aligned with the rotation axis. -The position of the payload is represented by \((d_u, d_v, 0)\) expressed in the rotating frame. +The previous analysis is applied on three considered nano-hexapod stiffnesses (\(k_n = 0.01\,N/\mu m\), \(k_n = 1\,N/\mu m\) and \(k_n = 100\,N/\mu m\)) and optimal active damping controller are obtained in each case (Section \ref{sec:rotating_nano_hexapod}). +Up until this section, the study was performed on a very simplistic model that just captures the rotation aspect and the model parameters were not tuned to corresponds to the NASS. +In the last section (Section \ref{sec:rotating_nass}), a model of the micro-station is added below the suspended platform (i.e. the nano-hexapod) with a rotating spindle and parameters tuned to match the NASS dynamics. +The goal is to determine if the rotation imposes performance limitation for the NASS. \begin{figure}[htbp] \centering -\includegraphics[scale=1]{figs/rotating_3dof_model_schematic.png} +\includegraphics[scale=1,width=\linewidth]{figs/rotating_overview.png} +\caption{\label{fig:rotating_overview}Overview of this report on rotating effects} +\end{figure} + +\chapter{System Description and Analysis} +\label{sec:rotating_system_description} +The studied system consists of a 2 degree of freedom translation stage on top of a rotating stage (Figure \ref{fig:rotating_3dof_model_schematic}). +The rotating stage is supposed to be ideal, meaning it induces a perfect rotation \(\theta(t) = \Omega t\) where \(\Omega\) is the rotational speed in \(\si{\radian\per\s}\). +The suspended platform consists of two orthogonal actuators each represented by three elements in parallel: a spring with a stiffness \(k\) in \(\si{\newton\per\meter}\), a dashpot with a damping coefficient \(c\) in \(\si{\newton\per(\meter\per\second)}\) and an ideal force source \(F_u, F_v\). +A payload with a mass \(m\) in \(\si{\kilo\gram}\), is mounted on the (rotating) suspended platform. +Two reference frames are used: an \emph{inertial} frame \((\vec{i}_x, \vec{i}_y, \vec{i}_z)\) and a \emph{uniform rotating} frame \((\vec{i}_u, \vec{i}_v, \vec{i}_w)\) rigidly fixed on top of the rotating stage with \(\vec{i}_w\) aligned with the rotation axis. +The position of the payload is represented by \((d_u, d_v, 0)\) expressed in the rotating frame. +After the dynamics of this system is studied, the objective will be to damp the two suspension modes of the payload while the rotating stage performs a constant rotation. + +\begin{figure}[htbp] +\centering +\includegraphics[scale=1,scale=0.8]{figs/rotating_3dof_model_schematic.png} \caption{\label{fig:rotating_3dof_model_schematic}Schematic of the studied system} \end{figure} + \section{Equations of motion} -To obtain the equations of motion for the system represented in Figure \ref{fig:rotating_3dof_model_schematic}, the Lagrangian equations are used: -\begin{equation} -\label{eq:lagrangian_equations} +To obtain the equations of motion for the system represented in Figure \ref{fig:rotating_3dof_model_schematic}, the Lagrangian equation \eqref{eq:rotating_lagrangian_equations} is used. +\(L = T - V\) is the Lagrangian, \(T\) the kinetic coenergy, \(V\) the potential energy, \(D\) the dissipation function, and \(Q_i\) the generalized force associated with the generalized variable \(\begin{bmatrix}q_1 & q_2\end{bmatrix} = \begin{bmatrix}d_u & d_v\end{bmatrix}\). +These terms are derived in \eqref{eq:rotating_energy_functions_lagrange}. +Note that the equation of motion corresponding to the constant rotation along \(\vec{i}_w\) is disregarded as this motion is considered to be imposed by the rotation stage. + +\begin{equation}\label{eq:rotating_lagrangian_equations} \frac{d}{dt} \left( \frac{\partial L}{\partial \dot{q}_i} \right) + \frac{\partial D}{\partial \dot{q}_i} - \frac{\partial L}{\partial q_i} = Q_i \end{equation} -with \(L = T - V\) the Lagrangian, \(T\) the kinetic coenergy, \(V\) the potential energy, \(D\) the dissipation function, and \(Q_i\) the generalized force associated with the generalized variable \(\begin{bmatrix}q_1 & q_2\end{bmatrix} = \begin{bmatrix}d_u & d_v\end{bmatrix}\). -The equation of motion corresponding to the constant rotation along \(\vec{i}_w\) is disregarded as this motion is considered to be imposed by the rotation stage. -\begin{equation} -\label{eq:energy_functions_lagrange} + +\begin{equation} \label{eq:rotating_energy_functions_lagrange} \begin{aligned} - T &= \frac{1}{2} m \left( ( \dot{d}_u - \Omega d_v )^2 + ( \dot{d}_v + \Omega d_u )^2 \right), \\ - V &= \frac{1}{2} k \big( {d_u}^2 + {d_v}^2 \big), \ Q_1 = F_u, \\ - D &= \frac{1}{2} c \big( \dot{d}_u{}^2 + \dot{d}_v{}^2 \big), \ Q_2 = F_v + T &= \frac{1}{2} m \left( ( \dot{d}_u - \Omega d_v )^2 + ( \dot{d}_v + \Omega d_u )^2 \right), \quad Q_1 = F_u, \quad Q_2 = F_v, \\ + V &= \frac{1}{2} k \big( {d_u}^2 + {d_v}^2 \big), \quad D = \frac{1}{2} c \big( \dot{d}_u{}^2 + \dot{d}_v{}^2 \big) \end{aligned} \end{equation} -Substituting equations \eqref{eq:energy_functions_lagrange} into equation \eqref{eq:lagrangian_equations} for both generalized coordinates gives two coupled differential equations \eqref{eq:eom_coupled_1} and \eqref{eq:eom_coupled_2}. -\begin{subequations} -\label{eq:eom_coupled} +Substituting equations \eqref{eq:rotating_energy_functions_lagrange} into equation \eqref{eq:rotating_lagrangian_equations} for both generalized coordinates gives two coupled differential equations \eqref{eq:rotating_eom_coupled_1} and \eqref{eq:rotating_eom_coupled_2}. + +\begin{subequations} \label{eq:rotating_eom_coupled} \begin{align} - m \ddot{d}_u + c \dot{d}_u + ( k - m \Omega^2 ) d_u &= F_u + 2 m \Omega \dot{d}_v \label{eq:eom_coupled_1} \\ - m \ddot{d}_v + c \dot{d}_v + ( k \underbrace{-\,m \Omega^2}_{\text{Centrif.}} ) d_v &= F_v \underbrace{-\,2 m \Omega \dot{d}_u}_{\text{Coriolis}} \label{eq:eom_coupled_2} + m \ddot{d}_u + c \dot{d}_u + ( k - m \Omega^2 ) d_u &= F_u + 2 m \Omega \dot{d}_v \label{eq:rotating_eom_coupled_1} \\ + m \ddot{d}_v + c \dot{d}_v + ( k \underbrace{-\,m \Omega^2}_{\text{Centrif.}} ) d_v &= F_v \underbrace{-\,2 m \Omega \dot{d}_u}_{\text{Coriolis}} \label{eq:rotating_eom_coupled_2} \end{align} \end{subequations} -The uniform rotation of the system induces \textbf{two gyroscopic effects} as shown in equation \eqref{eq:eom_coupled}: +The uniform rotation of the system induces two \emph{gyroscopic effects} as shown in equation \eqref{eq:rotating_eom_coupled}: \begin{itemize} -\item \textbf{Centrifugal forces}: that can been seen as an added \textbf{negative stiffness} \(- m \Omega^2\) along \(\vec{i}_u\) and \(\vec{i}_v\) -\item \textbf{Coriolis Forces}: that adds \textbf{coupling} between the two orthogonal directions. +\item \emph{Centrifugal forces}: that can been seen as an added \emph{negative stiffness} \(- m \Omega^2\) along \(\vec{i}_u\) and \(\vec{i}_v\) +\item \emph{Coriolis forces}: that adds \emph{coupling} between the two orthogonal directions. \end{itemize} +One can verify that without rotation (\(\Omega = 0\)) the system becomes equivalent to two \emph{uncoupled} one degree of freedom mass-spring-damper systems. -One can verify that without rotation (\(\Omega = 0\)) the system becomes equivalent to two uncoupled one degree of freedom mass-spring-damper systems. \section{Transfer Functions in the Laplace domain} -To study the dynamics of the system, the differential equations of motions \eqref{eq:eom_coupled} are converted into the Laplace domain and the \(2 \times 2\) transfer function matrix \(\mathbf{G}_d\) from \(\begin{bmatrix}F_u & F_v\end{bmatrix}\) to \(\begin{bmatrix}d_u & d_v\end{bmatrix}\) in equation \eqref{eq:Gd_mimo_tf} is obtained. -Its elements are shown in equation \eqref{eq:Gd_indiv_el}. +To study the dynamics of the system, the two differential equations of motions \eqref{eq:rotating_eom_coupled} are converted into the Laplace domain and the \(2 \times 2\) transfer function matrix \(\mathbf{G}_d\) from \(\begin{bmatrix}F_u & F_v\end{bmatrix}\) to \(\begin{bmatrix}d_u & d_v\end{bmatrix}\) in equation \eqref{eq:rotating_Gd_mimo_tf} is obtained. +The four transfer functions in \(\mathbf{G}_d\) are shown in equation \eqref{eq:rotating_Gd_indiv_el}. -\begin{equation} -\label{eq:Gd_mimo_tf} +\begin{equation}\label{eq:rotating_Gd_mimo_tf} \begin{bmatrix} d_u \\ d_v \end{bmatrix} = \mathbf{G}_d \begin{bmatrix} F_u \\ F_v \end{bmatrix} \end{equation} -\begin{subequations} -\label{eq:Gd_indiv_el} +\begin{subequations}\label{eq:rotating_Gd_indiv_el} \begin{align} \mathbf{G}_{d}(1,1) &= \mathbf{G}_{d}(2,2) = \frac{ms^2 + cs + k - m \Omega^2}{\left( m s^2 + cs + k - m \Omega^2 \right)^2 + \left( 2 m \Omega s \right)^2} \\ \mathbf{G}_{d}(1,2) &= -\mathbf{G}_{d}(2,1) = \frac{2 m \Omega s}{\left( m s^2 + cs + k - m \Omega^2 \right)^2 + \left( 2 m \Omega s \right)^2} \end{align} \end{subequations} -To simplify the analysis, the undamped natural frequency \(\omega_0\) and the damping ratio \(\xi\) are used as in equation \eqref{eq:xi_and_omega}. -\begin{equation} -\label{eq:xi_and_omega} +To simplify the analysis, the undamped natural frequency \(\omega_0\) and the damping ratio \(\xi\) defined in \eqref{eq:rotating_xi_and_omega} are used instead. +The elements of transfer function matrix \(\mathbf{G}_d\) are now described by equation \eqref{eq:rotating_Gd_w0_xi_k}. +\begin{equation} \label{eq:rotating_xi_and_omega} \omega_0 = \sqrt{\frac{k}{m}} \text{ in } \si{\radian\per\second}, \quad \xi = \frac{c}{2 \sqrt{k m}} \end{equation} -The elements of transfer function matrix \(\mathbf{G}_d\) are now described by equation \eqref{eq:Gd_w0_xi_k}. -\begin{subequations} -\label{eq:Gd_w0_xi_k} +\begin{subequations} \label{eq:rotating_Gd_w0_xi_k} \begin{align} \mathbf{G}_{d}(1,1) &= \frac{\frac{1}{k} \left( \frac{s^2}{{\omega_0}^2} + 2 \xi \frac{s}{\omega_0} + 1 - \frac{{\Omega}^2}{{\omega_0}^2} \right)}{\left( \frac{s^2}{{\omega_0}^2} + 2 \xi \frac{s}{\omega_0} + 1 - \frac{{\Omega}^2}{{\omega_0}^2} \right)^2 + \left( 2 \frac{\Omega}{\omega_0} \frac{s}{\omega_0} \right)^2} \\ \mathbf{G}_{d}(1,2) &= \frac{\frac{1}{k} \left( 2 \frac{\Omega}{\omega_0} \frac{s}{\omega_0} \right)}{\left( \frac{s^2}{{\omega_0}^2} + 2 \xi \frac{s}{\omega_0} + 1 - \frac{{\Omega}^2}{{\omega_0}^2} \right)^2 + \left( 2 \frac{\Omega}{\omega_0} \frac{s}{\omega_0} \right)^2} \end{align} \end{subequations} -\section{System Poles: Campbell Diagram} -The poles of \(\mathbf{G}_d\) are the complex solutions \(p\) of equation \eqref{eq:poles}. -\begin{equation} -\label{eq:poles} +\section{System Poles: Campbell Diagram} +The poles of \(\mathbf{G}_d\) are the complex solutions \(p\) of equation \eqref{eq:rotating_poles} (i.e. the roots of its denominator). + +\begin{equation}\label{eq:rotating_poles} \left( \frac{p^2}{{\omega_0}^2} + 2 \xi \frac{p}{\omega_0} + 1 - \frac{{\Omega}^2}{{\omega_0}^2} \right)^2 + \left( 2 \frac{\Omega}{\omega_0} \frac{p}{\omega_0} \right)^2 = 0 \end{equation} -Supposing small damping (\(\xi \ll 1\)), two pairs of complex conjugate poles are obtained as shown in equation \eqref{eq:pole_values}. +Supposing small damping (\(\xi \ll 1\)), two pairs of complex conjugate poles \([p_{+}, p_{-}]\) are obtained as shown in equation \eqref{eq:rotating_pole_values}. -\begin{subequations} -\label{eq:pole_values} +\begin{subequations} \label{eq:rotating_pole_values} \begin{align} p_{+} &= - \xi \omega_0 \left( 1 + \frac{\Omega}{\omega_0} \right) \pm j \omega_0 \left( 1 + \frac{\Omega}{\omega_0} \right) \\ p_{-} &= - \xi \omega_0 \left( 1 - \frac{\Omega}{\omega_0} \right) \pm j \omega_0 \left( 1 - \frac{\Omega}{\omega_0} \right) @@ -165,138 +162,170 @@ Supposing small damping (\(\xi \ll 1\)), two pairs of complex conjugate poles ar \end{subequations} The real and complex parts of these two pairs of complex conjugate poles are represented in Figure \ref{fig:rotating_campbell_diagram} as a function of the rotational speed \(\Omega\). -As the rotational speed increases, \(p_{+}\) goes to higher frequencies and \(p_{-}\) goes to lower frequencies. -The system becomes unstable for \(\Omega > \omega_0\) as the real part of \(p_{-}\) is positive. +As the rotational speed increases, \(p_{+}\) goes to higher frequencies and \(p_{-}\) goes to lower frequencies (Figure \ref{fig:rotating_campbell_diagram_imag}). +The system becomes unstable for \(\Omega > \omega_0\) as the real part of \(p_{-}\) is positive (Figure \ref{fig:rotating_campbell_diagram_real}). Physically, the negative stiffness term \(-m\Omega^2\) induced by centrifugal forces exceeds the spring stiffness \(k\). \begin{figure}[htbp] -\centering -\includegraphics[scale=1]{figs/rotating_campbell_diagram.png} -\caption{\label{fig:rotating_campbell_diagram}Campbell diagram - Real and Imaginary parts of the poles as a function of the rotating velocity} +\begin{subfigure}{0.49\textwidth} +\begin{center} +\includegraphics[scale=1,scale=1]{figs/rotating_campbell_diagram_real.png} +\end{center} +\subcaption{\label{fig:rotating_campbell_diagram_real}Real part} +\end{subfigure} +\begin{subfigure}{0.49\textwidth} +\begin{center} +\includegraphics[scale=1,scale=1]{figs/rotating_campbell_diagram_imag.png} +\end{center} +\subcaption{\label{fig:rotating_campbell_diagram_imag}Imaginary part} +\end{subfigure} +\caption{\label{fig:rotating_campbell_diagram}Campbell diagram - Real (\subref{fig:rotating_campbell_diagram_real}) and Imaginary (\subref{fig:rotating_campbell_diagram_imag}) parts of the poles as a function of the rotating velocity \(\Omega\).} \end{figure} + \section{System Dynamics: Effect of rotation} The system dynamics from actuator forces \([F_u, F_v]\) to the relative motion \([d_u, d_v]\) is identified for several rotating velocities. - -Looking at the transfer function matrix \(\mathbf{G}_d\) in equation \eqref{eq:Gd_w0_xi_k}, one can see that the two diagonal (direct) terms are equal and that the two off-diagonal (coupling) terms are opposite. -The bode plot of these two terms are shown in Figure \ref{fig:rotating_direct_coupling_bode_plot} for several rotational speeds \(\Omega\). +Looking at the transfer function matrix \(\mathbf{G}_d\) in equation \eqref{eq:rotating_Gd_w0_xi_k}, one can see that the two diagonal (direct) terms are equal and that the two off-diagonal (coupling) terms are opposite. +The bode plot of these two terms are shown in Figure \ref{fig:rotating_bode_plot} for several rotational speeds \(\Omega\). These plots confirm the expected behavior: the frequency of the two pairs of complex conjugate poles are further separated as \(\Omega\) increases. -For \(\Omega > \omega_0\), the low frequency pair of complex conjugate poles \(p_{-}\) becomes unstable. +For \(\Omega > \omega_0\), the low frequency pair of complex conjugate poles \(p_{-}\) becomes unstable (shown be the 180 degrees phase lead instead of phase lag). \begin{figure}[htbp] -\centering -\includegraphics[scale=1]{figs/rotating_direct_coupling_bode_plot.png} -\caption{\label{fig:rotating_direct_coupling_bode_plot}Bode plot of the direct and coupling terms for several rotating velocities} +\begin{subfigure}{0.49\textwidth} +\begin{center} +\includegraphics[scale=1,width=0.95\linewidth]{figs/rotating_bode_plot_direct.png} +\end{center} +\subcaption{\label{fig:rotating_bode_plot_direct}Direct terms: $d_u/F_u$, $d_v/F_v$} +\end{subfigure} +\begin{subfigure}{0.49\textwidth} +\begin{center} +\includegraphics[scale=1,width=0.95\linewidth]{figs/rotating_bode_plot_coupling.png} +\end{center} +\subcaption{\label{fig:rotating_bode_plot_coupling}Coupling terms: $d_u/F_v$, $d_v/F_u$} +\end{subfigure} +\caption{\label{fig:rotating_bode_plot}Bode plot of the direct (\subref{fig:rotating_bode_plot_direct}) and coupling (\subref{fig:rotating_bode_plot_direct}) terms for several rotating velocities} \end{figure} + \chapter{Integral Force Feedback} \label{sec:rotating_iff_pure_int} +The goal is now to damp the two suspension modes of the payload using an active damping strategy while the rotating stage performs a constant rotation. +As was explained with the uniaxial model, such active damping strategy is key to both reducing the magnification of the response in the vicinity of the resonances \cite{collette11_review_activ_vibrat_isolat_strat} and to make the plant easier to control for the high authority controller. -In order to further decrease the residual vibrations, active damping can be used for reducing the magnification of the response in the vicinity of the resonances \cite{collette11_review_activ_vibrat_isolat_strat}. +Many active damping techniques have been developed over the years such as Positive Position Feedback (PPF) \cite{lin06_distur_atten_precis_hexap_point,fanson90_posit_posit_feedb_contr_large_space_struc}, Integral Force Feedback (IFF) \cite{preumont91_activ} and Direct Velocity Feedback (DVF) \cite{karnopp74_vibrat_contr_using_semi_activ_force_gener,serrand00_multic_feedb_contr_isolat_base_excit_vibrat,preumont02_force_feedb_versus_accel_feedb}. +In \cite{preumont92_activ_dampin_by_local_force}, the IFF control scheme has been proposed, where a force sensor, a force actuator and an integral controller are used to increase the damping of a mechanical system. +When the force sensor is collocated with the actuator, the open-loop transfer function has alternating poles and zeros which facilitates to guarantee the stability of the closed loop system \cite{preumont02_force_feedb_versus_accel_feedb}. +It was latter shown that this property holds for multiple collated actuator/sensor pairs \cite{preumont08_trans_zeros_struc_contr_with}. -Many active damping techniques have been developed over the years such as Positive Position Feedback (PPF) \cite{lin06_distur_atten_precis_hexap_point,fanson90_posit_posit_feedb_contr_large_space_struc}, Integral Force Feedback (IFF) \cite{preumont91_activ} and Direct Velocity Feedback (DVF) \cite{karnopp74_vibrat_contr_using_semi_activ_force_gener,serrand00_multic_feedb_contr_isolat_base_excit_vibrat,preumont02_force_feedb_versus_accel_feedb}. \par - -In \cite{preumont92_activ_dampin_by_local_force}, the IFF control scheme has been proposed, where a force sensor, a force actuator and an integral controller are used to directly augment the damping of a mechanical system. -When the force sensor is collocated with the actuator, the open-loop transfer function has alternating poles and zeros which facilitate to guarantee the stability of the closed loop system \cite{preumont02_force_feedb_versus_accel_feedb}. -It was latter shown that this property holds for multiple collated actuator/sensor pairs \cite{preumont08_trans_zeros_struc_contr_with}. \par - -The main advantages of IFF over other active damping techniques are the guaranteed stability even in presence of flexible dynamics, good performances and robustness properties \cite{preumont02_force_feedb_versus_accel_feedb}. \par +The main advantages of IFF over other active damping techniques are the guaranteed stability even in presence of flexible dynamics, good performance and robustness properties \cite{preumont02_force_feedb_versus_accel_feedb}. Several improvements of the classical IFF have been proposed, such as adding a feed-through term to increase the achievable damping \cite{teo15_optim_integ_force_feedb_activ_vibrat_contr} or adding an high pass filter to recover the loss of compliance at low frequency \cite{chesne16_enhan_dampin_flexib_struc_using_force_feedb}. Recently, an \(\mathcal{H}_\infty\) optimization criterion has been used to derive optimal gains for the IFF controller \cite{zhao19_optim_integ_force_feedb_contr}. \par However, none of these study have been applied to a rotating system. In this section, Integral Force Feedback strategy is applied on the rotating suspended platform, and it is shown that gyroscopic effects alters the system dynamics and that IFF cannot be applied as is. + \section{System and Equations of motion} In order to apply Integral Force Feedback, two force sensors are added in series with the actuators (Figure \ref{fig:rotating_3dof_model_schematic_iff}). -Two identical controllers \(K_F\) are then used to feedback each of the sensed force to its associated actuator: -\begin{equation} +Two identical controllers \(K_F\) described by \eqref{eq:rotating_iff_controller} are then used to feedback each of the sensed force to its associated actuator. + +\begin{equation}\label{eq:rotating_iff_controller} K_{F}(s) = g \cdot \frac{1}{s} \end{equation} \begin{figure}[htbp] -\centering -\includegraphics[scale=1]{figs/rotating_3dof_model_schematic_iff.png} -\caption{\label{fig:rotating_3dof_model_schematic_iff}System with added Force Sensor in series with the actuators (shown in blue with the associated controllers)} +\begin{subfigure}{0.49\textwidth} +\begin{center} +\includegraphics[scale=1,width=0.95\linewidth]{figs/rotating_3dof_model_schematic_iff.png} +\end{center} +\subcaption{\label{fig:rotating_3dof_model_schematic_iff}System with added Force Sensor in series with the actuators} +\end{subfigure} +\begin{subfigure}{0.49\textwidth} +\begin{center} +\includegraphics[scale=1,scale=1]{figs/rotating_iff_diagram.png} +\end{center} +\subcaption{\label{fig:rotating_iff_diagram}Control diagram} +\end{subfigure} +\caption{\label{fig:rotating_iff_pure_int}Integral Force Feedback applied to the suspended rotating platform. The damper \(c\) in (\subref{fig:rotating_3dof_model_schematic_iff}) is omitted for readability.} \end{figure} +The forces \(\begin{bmatrix}f_u & f_v\end{bmatrix}\) measured by the two force sensors represented in Figure \ref{fig:rotating_3dof_model_schematic_iff} are described by equation \eqref{eq:rotating_measured_force}. -The forces \(\begin{bmatrix}f_u & f_v\end{bmatrix}\) measured by the two force sensors represented in Figure \ref{fig:rotating_3dof_model_schematic_iff} are described by equation \eqref{eq:measured_force}. -\begin{equation} -\label{eq:measured_force} +\begin{equation}\label{eq:rotating_measured_force} \begin{bmatrix} f_{u} \\ f_{v} \end{bmatrix} = \begin{bmatrix} F_u \\ F_v \end{bmatrix} - (c s + k) \begin{bmatrix} d_u \\ d_v \end{bmatrix} \end{equation} -The transfer function matrix \(\mathbf{G}_{f}\) from actuator forces to measured forces in equation \eqref{eq:Gf_mimo_tf} can be obtained by inserting equation \eqref{eq:Gd_w0_xi_k} into equation \eqref{eq:measured_force}. -Its elements are shown in equation \eqref{eq:Gf_indiv_el}. +The transfer function matrix \(\mathbf{G}_{f}\) from actuator forces to measured forces in equation \eqref{eq:rotating_Gf_mimo_tf} can be obtained by inserting equation \eqref{eq:rotating_Gd_w0_xi_k} into equation \eqref{eq:rotating_measured_force}. +Its elements are shown in equation \eqref{eq:rotating_Gf}. -\begin{equation} -\label{eq:Gf_mimo_tf} +\begin{equation}\label{eq:rotating_Gf_mimo_tf} \begin{bmatrix} f_{u} \\ f_{v} \end{bmatrix} = \mathbf{G}_{f} \begin{bmatrix} F_u \\ F_v \end{bmatrix} \end{equation} -\begin{subequations} -\label{eq:Gf_indiv_el} -\label{eq:Gf} +\begin{subequations}\label{eq:rotating_Gf} \begin{align} - \mathbf{G}_{f}(1,1) &= \mathbf{G}_{f}(2,2) = \frac{\left( \frac{s^2}{{\omega_0}^2} - \frac{\Omega^2}{{\omega_0}^2} \right) \left( \frac{s^2}{{\omega_0}^2} + 2 \xi \frac{s}{\omega_0} + 1 - \frac{{\Omega}^2}{{\omega_0}^2} \right) + \left( 2 \frac{\Omega}{\omega_0} \frac{s}{\omega_0} \right)^2}{\left( \frac{s^2}{{\omega_0}^2} + 2 \xi \frac{s}{\omega_0} + 1 - \frac{{\Omega}^2}{{\omega_0}^2} \right)^2 + \left( 2 \frac{\Omega}{\omega_0} \frac{s}{\omega_0} \right)^2} \label{eq:Gf_diag_tf} \\ - \mathbf{G}_{f}(1,2) &= -\mathbf{G}_{f}(2,1) = \frac{- \left( 2 \xi \frac{s}{\omega_0} + 1 \right) \left( 2 \frac{\Omega}{\omega_0} \frac{s}{\omega_0} \right)}{\left( \frac{s^2}{{\omega_0}^2} + 2 \xi \frac{s}{\omega_0} + 1 - \frac{{\Omega}^2}{{\omega_0}^2} \right)^2 + \left( 2 \frac{\Omega}{\omega_0} \frac{s}{\omega_0} \right)^2} \label{eq:Gf_off_diag_tf} + \mathbf{G}_{f}(1,1) &= \mathbf{G}_{f}(2,2) = \frac{\left( \frac{s^2}{{\omega_0}^2} - \frac{\Omega^2}{{\omega_0}^2} \right) \left( \frac{s^2}{{\omega_0}^2} + 2 \xi \frac{s}{\omega_0} + 1 - \frac{{\Omega}^2}{{\omega_0}^2} \right) + \left( 2 \frac{\Omega}{\omega_0} \frac{s}{\omega_0} \right)^2}{\left( \frac{s^2}{{\omega_0}^2} + 2 \xi \frac{s}{\omega_0} + 1 - \frac{{\Omega}^2}{{\omega_0}^2} \right)^2 + \left( 2 \frac{\Omega}{\omega_0} \frac{s}{\omega_0} \right)^2} \label{eq:rotating_Gf_diag_tf} \\ + \mathbf{G}_{f}(1,2) &= -\mathbf{G}_{f}(2,1) = \frac{- \left( 2 \xi \frac{s}{\omega_0} + 1 \right) \left( 2 \frac{\Omega}{\omega_0} \frac{s}{\omega_0} \right)}{\left( \frac{s^2}{{\omega_0}^2} + 2 \xi \frac{s}{\omega_0} + 1 - \frac{{\Omega}^2}{{\omega_0}^2} \right)^2 + \left( 2 \frac{\Omega}{\omega_0} \frac{s}{\omega_0} \right)^2} \label{eq:rotating_Gf_off_diag_tf} \end{align} \end{subequations} -The zeros of the diagonal terms of \(\mathbf{G}_f\) in equation \eqref{eq:Gf_diag_tf} are computed, and neglecting the damping for simplicity, \textbf{two complex conjugated zeros} \(z_{c}\) are obtained in equation \eqref{eq:iff_zero_cc}, and \textbf{two real zeros} \(z_{r}\) in equation \eqref{eq:iff_zero_real}. +The zeros of the diagonal terms of \(\mathbf{G}_f\) in equation \eqref{eq:rotating_Gf_diag_tf} are computed, and neglecting the damping for simplicity, two complex conjugated zeros \(z_{c}\) \eqref{eq:rotating_iff_zero_cc}, and two real zeros \(z_{r}\) \eqref{eq:rotating_iff_zero_real} are obtained. + \begin{subequations} \begin{align} - z_c &= \pm j \omega_0 \sqrt{\frac{1}{2} \sqrt{8 \frac{\Omega^2}{{\omega_0}^2} + 1} + \frac{\Omega^2}{{\omega_0}^2} + \frac{1}{2} } \label{eq:iff_zero_cc} \\ - z_r &= \pm \omega_0 \sqrt{\frac{1}{2} \sqrt{8 \frac{\Omega^2}{{\omega_0}^2} + 1} - \frac{\Omega^2}{{\omega_0}^2} - \frac{1}{2} } \label{eq:iff_zero_real} + z_c &= \pm j \omega_0 \sqrt{\frac{1}{2} \sqrt{8 \frac{\Omega^2}{{\omega_0}^2} + 1} + \frac{\Omega^2}{{\omega_0}^2} + \frac{1}{2} } \label{eq:rotating_iff_zero_cc} \\ + z_r &= \pm \omega_0 \sqrt{\frac{1}{2} \sqrt{8 \frac{\Omega^2}{{\omega_0}^2} + 1} - \frac{\Omega^2}{{\omega_0}^2} - \frac{1}{2} } \label{eq:rotating_iff_zero_real} \end{align} \end{subequations} -It is interesting to see that the frequency of the pair of complex conjugate zeros \(z_c\) in equation \eqref{eq:iff_zero_cc} always lies between the frequency of the two pairs of complex conjugate poles \(p_{-}\) and \(p_{+}\) in equation \eqref{eq:pole_values}. +It is interesting to see that the frequency of the pair of complex conjugate zeros \(z_c\) in equation \eqref{eq:rotating_iff_zero_cc} always lies between the frequency of the two pairs of complex conjugate poles \(p_{-}\) and \(p_{+}\) in equation \eqref{eq:rotating_pole_values}. This is what usually gives the unconditional stability of IFF when collocated force sensors are used. -However, for non-null rotational speeds, the two real zeros \(z_r\) in equation \eqref{eq:iff_zero_real} are inducing a \textbf{non-minimum phase behavior}. +However, for non-null rotational speeds, the two real zeros \(z_r\) in equation \eqref{eq:rotating_iff_zero_real} are inducing a \emph{non-minimum phase behavior}. This can be seen in the Bode plot of the diagonal terms (Figure \ref{fig:rotating_iff_bode_plot_effect_rot}) where the low frequency gain is no longer zero while the phase stays at \(\SI{180}{\degree}\). -The low frequency gain of \(\mathbf{G}_f\) increases with the rotational speed \(\Omega\) as shown in equation \eqref{eq:low_freq_gain_iff_plan}. -\begin{equation} -\label{eq:low_freq_gain_iff_plan} +The low frequency gain of \(\mathbf{G}_f\) increases with the rotational speed \(\Omega\) as shown in equation \eqref{eq:rotating_low_freq_gain_iff_plan}. +This can be explained as follows: a constant actuator force \(F_u\) induces a small displacement of the mass \(d_u = \frac{F_u}{k - m\Omega^2}\) (Hooke's law taking into account the negative stiffness induced by the rotation). +This small displacement then increases the centrifugal force \(m\Omega^2d_u = \frac{\Omega^2}{{\omega_0}^2 - \Omega^2} F_u\) which is then measured by the force sensors. + +\begin{equation}\label{eq:rotating_low_freq_gain_iff_plan} \lim_{\omega \to 0} \left| \mathbf{G}_f (j\omega) \right| = \begin{bmatrix} \frac{\Omega^2}{{\omega_0}^2 - \Omega^2} & 0 \\ 0 & \frac{\Omega^2}{{\omega_0}^2 - \Omega^2} \end{bmatrix} \end{equation} -This can be explained as follows: a constant actuator force \(F_u\) induces a small displacement of the mass \(d_u = \frac{F_u}{k - m\Omega^2}\) (Hooke's law taking into account the negative stiffness induced by the rotation). -This small displacement then increases the centrifugal force \(m\Omega^2d_u = \frac{\Omega^2}{{\omega_0}^2 - \Omega^2} F_u\) which is then measured by the force sensors. \section{Effect of the rotation speed on the IFF plant dynamics} -The transfer functions from actuator forces \([F_u,\ F_v]\) to the measured force sensors \([f_u,\ f_v]\) are identified for several rotating velocities and shown in Figure \ref{fig:rotating_iff_bode_plot_effect_rot}. - +The transfer functions from actuator forces \([F_u,\ F_v]\) to the measured force sensors \([f_u,\ f_v]\) are identified for several rotating velocities and are shown in Figure \ref{fig:rotating_iff_bode_plot_effect_rot}. As was expected from the derived equations of motion: \begin{itemize} -\item when \(0 < \Omega < \omega_0\): the low frequency gain is no longer zero and two (non-minimum phase) real zero appears at low frequency. +\item when \(\Omega < \omega_0\): the low frequency gain is no longer zero and two (non-minimum phase) real zero appears at low frequency. The low frequency gain increases with \(\Omega\). A pair of (minimum phase) complex conjugate zeros appears between the two complex conjugate poles that are split further apart as \(\Omega\) increases. \item when \(\omega_0 < \Omega\): the low frequency pole becomes unstable. \end{itemize} \begin{figure}[htbp] -\centering -\includegraphics[scale=1]{figs/rotating_iff_bode_plot_effect_rot.png} -\caption{\label{fig:rotating_iff_bode_plot_effect_rot}Bode plot of the direct and coupling term for Integral Force Feedback - Effect of rotation} +\begin{subfigure}{0.49\textwidth} +\begin{center} +\includegraphics[scale=1,width=0.95\linewidth]{figs/rotating_iff_bode_plot_effect_rot_direct.png} +\end{center} +\subcaption{\label{fig:rotating_iff_bode_plot_effect_rot_direct}Direct terms: $d_u/F_u$, $d_v/F_v$} +\end{subfigure} +\begin{subfigure}{0.49\textwidth} +\begin{center} +\includegraphics[scale=1,scale=1]{figs/rotating_root_locus_iff_pure_int.png} +\end{center} +\subcaption{\label{fig:rotating_root_locus_iff_pure_int}Root Locus} +\end{subfigure} +\caption{\label{fig:rotating_iff_bode_plot_effect_rot}Effect of the rotation velocity on the bode plot of the direct terms (\subref{fig:rotating_iff_bode_plot_effect_rot_direct}) and on the IFF root locus (\subref{fig:rotating_root_locus_iff_pure_int})} \end{figure} + \section{Decentralized Integral Force Feedback} The control diagram for decentralized Integral Force Feedback is shown in Figure \ref{fig:rotating_iff_diagram}. -\begin{figure}[htbp] -\centering -\includegraphics[scale=1]{figs/rotating_iff_diagram.png} -\caption{\label{fig:rotating_iff_diagram}Control diagram for decentralized Integral Force Feedback} -\end{figure} - The decentralized IFF controller \(\bm{K}_F\) corresponds to a diagonal controller with integrators: -\begin{equation} -\label{eq:Kf_pure_int} +\begin{equation} \label{eq:rotating_Kf_pure_int} \begin{aligned} \mathbf{K}_{F}(s) &= \begin{bmatrix} K_{F}(s) & 0 \\ 0 & K_{F}(s) \end{bmatrix} \\ K_{F}(s) &= g \cdot \frac{1}{s} @@ -306,92 +335,58 @@ The decentralized IFF controller \(\bm{K}_F\) corresponds to a diagonal controll In order to see how the IFF controller affects the poles of the closed loop system, a Root Locus plot (Figure \ref{fig:rotating_root_locus_iff_pure_int}) is constructed as follows: the poles of the closed-loop system are drawn in the complex plane as the controller gain \(g\) varies from \(0\) to \(\infty\) for the two controllers \(K_{F}\) simultaneously. As explained in \cite{preumont08_trans_zeros_struc_contr_with,skogestad07_multiv_feedb_contr}, the closed-loop poles start at the open-loop poles (shown by \(\tikz[baseline=-0.6ex] \node[cross out, draw=black, minimum size=1ex, line width=2pt, inner sep=0pt, outer sep=0pt] at (0, 0){};\)) for \(g = 0\) and coincide with the transmission zeros (shown by \(\tikz[baseline=-0.6ex] \draw[line width=2pt, inner sep=0pt, outer sep=0pt] (0,0) circle[radius=3pt];\)) as \(g \to \infty\). -\begin{important} Whereas collocated IFF is usually associated with unconditional stability \cite{preumont91_activ}, this property is lost due to gyroscopic effects as soon as the rotation velocity in non-null. This can be seen in the Root Locus plot (Figure \ref{fig:rotating_root_locus_iff_pure_int}) where poles corresponding to the controller are bound to the right half plane implying closed-loop system instability. -\end{important} - Physically, this can be explained like so: at low frequency, the loop gain is very large due to the pure integrator in \(K_{F}\) and the finite gain of the plant (Figure \ref{fig:rotating_iff_bode_plot_effect_rot}). -The control system is thus canceling the spring forces which makes the suspended platform no able to hold the payload against centrifugal forces, hence the instability. +The control system is thus canceling the spring forces which makes the suspended platform not capable to hold the payload against centrifugal forces, hence the instability. -\begin{figure}[htbp] -\centering -\includegraphics[scale=1]{figs/rotating_root_locus_iff_pure_int.png} -\caption{\label{fig:rotating_root_locus_iff_pure_int}Root Locus for the Decentralized Integral Force Feedback controller. Several rotating speed are shown.} -\end{figure} \chapter{Integral Force Feedback with an High Pass Filter} \label{sec:rotating_iff_pseudo_int} +As was explained in the previous section, the instability of the IFF controller applied on the rotating system is due to the high gain of the integrator at low frequency. +In order to limit the low frequency controller gain, an High Pass Filter (HPF) can be added to the controller as shown in equation \eqref{eq:rotating_iff_lhf}. +This is equivalent to slightly shifting the controller pole to the left along the real axis. +This modification of the IFF controller is typically done to avoid saturation associated with the pure integrator \cite{preumont91_activ,marneffe07_activ_passiv_vibrat_isolat_dampin_shunt_trans}. +This is however not the reason why this high pass filter is added here. -As was explained in the previous section, the instability of the IFF controller applied on the rotating system comes in part from the high gain at low frequency caused by the pure integrators. - -In order to limit the low frequency controller gain, an High Pass Filter (HPF) can be added to the controller as shown in equation \eqref{eq:iff_lhf}. - -\begin{equation} -\label{eq:iff_lhf} +\begin{equation}\label{eq:rotating_iff_lhf} \boxed{K_{F}(s) = g \cdot \frac{1}{s} \cdot \underbrace{\frac{s/\omega_i}{1 + s/\omega_i}}_{\text{HPF}} = g \cdot \frac{1}{s + \omega_i}} \end{equation} -This is equivalent as to slightly \textbf{shifting the controller pole to the left along the real axis}. - -This modification of the IFF controller is typically done to avoid saturation associated with the pure integrator \cite{preumont91_activ,marneffe07_activ_passiv_vibrat_isolat_dampin_shunt_trans}. -This is however not why this high pass filter is added here. \section{Modified Integral Force Feedback Controller} -The Integral Force Feedback Controller is modified such that instead of using pure integrators, pseudo integrators (i.e. low pass filters) are used: -\begin{equation} - K_{\text{IFF}}(s) = g\frac{1}{\omega_i + s} \begin{bmatrix} - 1 & 0 \\ - 0 & 1 -\end{bmatrix} -\end{equation} -where \(\omega_i\) characterize down to which frequency the signal is integrated. - -Let's arbitrary choose the following control parameters: -\begin{minted}[]{matlab} -%% Modified IFF - parameters -g = 2; % Controller gain -wi = 0.1; % HPF Cut-Off frequency [rad/s] - -Kiff = (g/s)*eye(2); % Pure IFF -Kiff_hpf = (g/(wi+s))*eye(2); % IFF with added HPF -\end{minted} - +The Integral Force Feedback Controller is modified such that instead of using pure integrators, pseudo integrators (i.e. low pass filters) are used \eqref{eq:rotating_iff_lhf} where \(\omega_i\) characterize the frequency down to which the signal is integrated. The loop gains (\(K_F(s)\) times the direct dynamics \(f_u/F_u\)) with and without the added HPF are shown in Figure \ref{fig:rotating_iff_modified_loop_gain}. The effect of the added HPF limits the low frequency gain to finite values as expected. -\begin{figure}[htbp] -\centering -\includegraphics[scale=1]{figs/rotating_iff_modified_loop_gain.png} -\caption{\label{fig:rotating_iff_modified_loop_gain}Loop gain for the IFF with pure integrator and modified IFF with added high pass filter (\(\Omega = 0.1\omega_0\))} -\end{figure} +The Root Locus plots for the decentralized IFF with and without the HPF are displayed in Figure \ref{fig:rotating_iff_root_locus_hpf_large}. +With the added HPF, the poles of the closed loop system are shown to be stable up to some value of the gain \(g_\text{max}\) given by equation \eqref{eq:rotating_gmax_iff_hpf}. +It is interesting to note that \(g_{\text{max}}\) also corresponds to the controller gain at which the low frequency loop gain reaches one (for instance the gain \(g\) can be increased by a factor \(5\) in Figure \ref{fig:rotating_iff_modified_loop_gain} before the system becomes unstable). -The Root Locus plots for the decentralized IFF with and without the HPF are displayed in Figure \ref{fig:rotating_iff_root_locus_hpf}. -With the added HPF, the poles of the closed loop system are shown to be \textbf{stable up to some value of the gain} \(g_\text{max}\) given by equation \eqref{eq:gmax_iff_hpf}. - -\begin{equation} -\label{eq:gmax_iff_hpf} +\begin{equation}\label{eq:rotating_gmax_iff_hpf} \boxed{g_{\text{max}} = \omega_i \left( \frac{{\omega_0}^2}{\Omega^2} - 1 \right)} \end{equation} -It is interesting to note that \(g_{\text{max}}\) also corresponds to the controller gain at which the low frequency loop gain (Figure \ref{fig:rotating_iff_modified_loop_gain}) reaches one. - \begin{figure}[htbp] -\centering -\includegraphics[scale=1]{figs/rotating_iff_root_locus_hpf.png} -\caption{\label{fig:rotating_iff_root_locus_hpf}Root Locus for the initial IFF and the modified IFF} +\begin{subfigure}{0.49\textwidth} +\begin{center} +\includegraphics[scale=1,scale=0.8]{figs/rotating_iff_modified_loop_gain.png} +\end{center} +\subcaption{\label{fig:rotating_iff_modified_loop_gain}Loop gain} +\end{subfigure} +\begin{subfigure}{0.49\textwidth} +\begin{center} +\includegraphics[scale=1,scale=0.8]{figs/rotating_iff_root_locus_hpf_large.png} +\end{center} +\subcaption{\label{fig:rotating_iff_root_locus_hpf_large}Root Locus} +\end{subfigure} +\caption{\label{fig:rotating_iff_modified_loop_gain_root_locus}Comparison of the IFF with pure integrator and modified IFF with added high pass filter (\(\Omega = 0.1\omega_0\)). Loop gain is shown in (\subref{fig:rotating_iff_modified_loop_gain}) with \(\omega_i = 0.1 \omega_0\) and \(g = 2\). Root Locus is shown in (\subref{fig:rotating_iff_root_locus_hpf_large})} \end{figure} + \section{Optimal IFF with HPF parameters \(\omega_i\) and \(g\)} -Two parameters can be tuned for the modified controller in equation \eqref{eq:iff_lhf}: the gain \(g\) and the pole's location \(\omega_i\). +Two parameters can be tuned for the modified controller in equation \eqref{eq:rotating_iff_lhf}: the gain \(g\) and the pole's location \(\omega_i\). The optimal values of \(\omega_i\) and \(g\) are here considered as the values for which the damping of all the closed-loop poles are simultaneously maximized. In order to visualize how \(\omega_i\) does affect the attainable damping, the Root Locus plots for several \(\omega_i\) are displayed in Figure \ref{fig:rotating_root_locus_iff_modified_effect_wi}. -It is shown that even though small \(\omega_i\) seem to allow more damping to be added to the suspension modes, the control gain \(g\) may be limited to small values due to equation \eqref{eq:gmax_iff_hpf}. - -\begin{figure}[htbp] -\centering -\includegraphics[scale=1]{figs/rotating_root_locus_iff_modified_effect_wi.png} -\caption{\label{fig:rotating_root_locus_iff_modified_effect_wi}Root Locus for several high pass filter cut-off frequency} -\end{figure} - +It is shown that even though small \(\omega_i\) seem to allow more damping to be added to the suspension modes (see Root locus in Figure \ref{fig:rotating_root_locus_iff_modified_effect_wi_large}), the control gain \(g\) may be limited to small values due to equation \eqref{eq:rotating_gmax_iff_hpf}. In order to study this trade off, the attainable closed-loop damping ratio \(\xi_{\text{cl}}\) is computed as a function of \(\omega_i/\omega_0\). The gain \(g_{\text{opt}}\) at which this maximum damping is obtained is also displayed and compared with the gain \(g_{\text{max}}\) at which the system becomes unstable (Figure \ref{fig:rotating_iff_hpf_optimal_gain}). @@ -403,164 +398,149 @@ Three regions can be observed: \end{itemize} \begin{figure}[htbp] -\centering -\includegraphics[scale=1]{figs/rotating_iff_hpf_optimal_gain.png} -\caption{\label{fig:rotating_iff_hpf_optimal_gain}Attainable damping ratio \(\xi_\text{cl}\) as a function of \(\omega_i/\omega_0\). Corresponding control gain \(g_\text{opt}\) and \(g_\text{max}\) are also shown} +\begin{subfigure}{0.49\textwidth} +\begin{center} +\includegraphics[scale=1,width=0.95\linewidth]{figs/rotating_root_locus_iff_modified_effect_wi.png} +\end{center} +\subcaption{\label{fig:rotating_root_locus_iff_modified_effect_wi}Root Locus} +\end{subfigure} +\begin{subfigure}{0.49\textwidth} +\begin{center} +\includegraphics[scale=1,width=0.95\linewidth]{figs/rotating_iff_hpf_optimal_gain.png} +\end{center} +\subcaption{\label{fig:rotating_iff_hpf_optimal_gain}Attainable damping ratio $\xi_\text{cl}$ as a function of $\omega_i/\omega_0$. Corresponding control gain $g_\text{opt}$ and $g_\text{max}$ are also shown} +\end{subfigure} +\caption{\label{fig:rotating_iff_modified_effect_wi}Root Locus for several high pass filter cut-off frequency (\subref{fig:rotating_root_locus_iff_modified_effect_wi_large}).} \end{figure} + \section{Obtained Damped Plant} - -Let's choose \(\omega_i = 0.1 \cdot \omega_0\) and compute the damped plant. -The undamped and damped plants are compared in Figure \ref{fig:rotating_iff_hpf_damped_plant} in blue and red respectively. -A well damped plant is indeed obtained. - -However, the magnitude of the coupling term (\(d_v/F_u\)) is larger then IFF is applied. - -\begin{figure}[htbp] -\centering -\includegraphics[scale=1]{figs/rotating_iff_hpf_damped_plant.png} -\caption{\label{fig:rotating_iff_hpf_damped_plant}Damped plant with IFF and added HPF - Transfer function from \(F_u\) to \(d_u\), \(\omega_i = 0.1 \cdot \omega_0\), \(\Omega = 0.1 \cdot \omega_0\)} -\end{figure} - -In order to study how \(\omega_i\) affects the coupling of the damped plant, the closed-loop plant is identified for several \(\omega_i\). -The direct and coupling terms of the plants are shown in Figure \ref{fig:rotating_iff_hpf_damped_plant_effect_wi_coupling} (left) and the ratio between the two (i.e. the coupling ratio) is shown in Figure \ref{fig:rotating_iff_hpf_damped_plant_effect_wi_coupling} (right). - -The coupling ratio is decreasing as \(\omega_i\) increases. -There is therefore a \textbf{trade-off between achievable damping and coupling ratio} for the choice of \(\omega_i\). +In order to study how the parameter \(\omega_i\) affects the damped plant, the obtained damped plants for several \(\omega_i\) are compared in Figure \ref{fig:rotating_iff_hpf_damped_plant_effect_wi_plant}. +It can be seen that the low frequency coupling increases as \(\omega_i\) increases. +There is therefore a trade-off between achievable damping and added coupling when tuning \(\omega_i\). The same trade-off can be seen between achievable damping and loss of compliance at low frequency (see Figure \ref{fig:rotating_iff_hpf_effect_wi_compliance}). \begin{figure}[htbp] -\centering -\includegraphics[scale=1]{figs/rotating_iff_hpf_damped_plant_effect_wi_coupling.png} -\caption{\label{fig:rotating_iff_hpf_damped_plant_effect_wi_coupling}Effect of \(\omega_i\) on the damped plant coupling} +\begin{subfigure}{0.49\textwidth} +\begin{center} +\includegraphics[scale=1,width=0.95\linewidth]{figs/rotating_iff_hpf_damped_plant_effect_wi_plant.png} +\end{center} +\subcaption{\label{fig:rotating_iff_hpf_damped_plant_effect_wi_plant}Obtained plants} +\end{subfigure} +\begin{subfigure}{0.49\textwidth} +\begin{center} +\includegraphics[scale=1,width=0.95\linewidth]{figs/rotating_iff_hpf_effect_wi_compliance.png} +\end{center} +\subcaption{\label{fig:rotating_iff_hpf_effect_wi_compliance}Effect of $\omega_i$ on the compliance} +\end{subfigure} +\caption{\label{fig:rotating_iff_hpf_damped_plant_effect_wi}Effect of \(\omega_i\) on the damped plant coupling} \end{figure} -\begin{figure}[htbp] -\centering -\includegraphics[scale=1]{figs/rotating_iff_hpf_effect_wi_compliance.png} -\caption{\label{fig:rotating_iff_hpf_effect_wi_compliance}Effect of \(\omega_i\) on the obtained compliance} -\end{figure} \chapter{IFF with a stiffness in parallel with the force sensor} \label{sec:rotating_iff_parallel_stiffness} - In this section it is proposed to add springs in parallel with the force sensors to counteract the negative stiffness induced by the gyroscopic effects. - Such springs are schematically shown in Figure \ref{fig:rotating_3dof_model_schematic_iff_parallel_springs} where \(k_a\) is the stiffness of the actuator and \(k_p\) the added stiffness in parallel with the actuator and force sensor. \begin{figure}[htbp] \centering -\includegraphics[scale=1]{figs/rotating_3dof_model_schematic_iff_parallel_springs.png} +\includegraphics[scale=1,scale=0.8]{figs/rotating_3dof_model_schematic_iff_parallel_springs.png} \caption{\label{fig:rotating_3dof_model_schematic_iff_parallel_springs}Studied system with additional springs in parallel with the actuators and force sensors (shown in red)} \end{figure} -\section{Equations} -The forces measured by the two force sensors represented in Figure \ref{fig:rotating_3dof_model_schematic_iff_parallel_springs} are described by Eq. \eqref{eq:measured_force_kp}. -\begin{equation} -\label{eq:measured_force_kp} +\section{Equations} +The forces measured by the two force sensors represented in Figure \ref{fig:rotating_3dof_model_schematic_iff_parallel_springs} are described by \eqref{eq:rotating_measured_force_kp}. + +\begin{equation}\label{eq:rotating_measured_force_kp} \begin{bmatrix} f_{u} \\ f_{v} \end{bmatrix} = \begin{bmatrix} F_u \\ F_v \end{bmatrix} - (c s + k_a) \begin{bmatrix} d_u \\ d_v \end{bmatrix} \end{equation} -In order to keep the overall stiffness \(k = k_a + k_p\) constant, thus not modifying the open-loop poles as \(k_p\) is changed, a scalar parameter \(\alpha\) (\(0 \le \alpha < 1\)) is defined to describe the fraction of the total stiffness in parallel with the actuator and force sensor as in Eq. \eqref{eq:kp_alpha}. +In order to keep the overall stiffness \(k = k_a + k_p\) constant, thus not modifying the open-loop poles as \(k_p\) is changed, a scalar parameter \(\alpha\) (\(0 \le \alpha < 1\)) is defined to describe the fraction of the total stiffness in parallel with the actuator and force sensor as in \eqref{eq:rotating_kp_alpha}. -\begin{equation} -\label{eq:kp_alpha} +\begin{equation}\label{eq:rotating_kp_alpha} k_p = \alpha k, \quad k_a = (1 - \alpha) k \end{equation} -After the equations of motion derived and transformed in the Laplace domain, the transfer function matrix \(\mathbf{G}_k\) in Eq. \eqref{eq:Gk_mimo_tf} is computed. -Its elements are shown in Eq. \eqref{eq:Gk_diag} and \eqref{eq:Gk_off_diag}. +After the equations of motion derived and transformed in the Laplace domain, the transfer function matrix \(\mathbf{G}_k\) in Eq. \eqref{eq:rotating_Gk_mimo_tf} is computed. +Its elements are shown in Eq. \eqref{eq:rotating_Gk_diag} and \eqref{eq:rotating_Gk_off_diag}. -\begin{equation} -\label{eq:Gk_mimo_tf} +\begin{equation}\label{eq:rotating_Gk_mimo_tf} \begin{bmatrix} f_u \\ f_v \end{bmatrix} = \mathbf{G}_k \begin{bmatrix} F_u \\ F_v \end{bmatrix} \end{equation} -\begin{subequations} -\label{eq:Gk} +\begin{subequations}\label{eq:rotating_Gk} \begin{align} -\mathbf{G}_{k}(1,1) &= \mathbf{G}_{k}(2,2) = \frac{\big( \frac{s^2}{{\omega_0}^2} - \frac{\Omega^2}{{\omega_0}^2} + \alpha \big) \big( \frac{s^2}{{\omega_0}^2} + 2 \xi \frac{s}{\omega_0} + 1 - \frac{{\Omega}^2}{{\omega_0}^2} \big) + \big( 2 \frac{\Omega}{\omega_0} \frac{s}{\omega_0} \big)^2}{\big( \frac{s^2}{{\omega_0}^2} + 2 \xi \frac{s}{\omega_0} + 1 - \frac{{\Omega}^2}{{\omega_0}^2} \big)^2 + \big( 2 \frac{\Omega}{\omega_0} \frac{s}{\omega_0} \big)^2} \label{eq:Gk_diag} \\ -\mathbf{G}_{k}(1,2) &= -\mathbf{G}_{k}(2,1) = \frac{- \left( 2 \xi \frac{s}{\omega_0} + 1 - \alpha \right) \left( 2 \frac{\Omega}{\omega_0} \frac{s}{\omega_0} \right)}{\left( \frac{s^2}{{\omega_0}^2} + 2 \xi \frac{s}{\omega_0} + 1 - \frac{{\Omega}^2}{{\omega_0}^2} \right)^2 + \left( 2 \frac{\Omega}{\omega_0} \frac{s}{\omega_0} \right)^2} \label{eq:Gk_off_diag} +\mathbf{G}_{k}(1,1) &= \mathbf{G}_{k}(2,2) = \frac{\big( \frac{s^2}{{\omega_0}^2} - \frac{\Omega^2}{{\omega_0}^2} + \alpha \big) \big( \frac{s^2}{{\omega_0}^2} + 2 \xi \frac{s}{\omega_0} + 1 - \frac{{\Omega}^2}{{\omega_0}^2} \big) + \big( 2 \frac{\Omega}{\omega_0} \frac{s}{\omega_0} \big)^2}{\big( \frac{s^2}{{\omega_0}^2} + 2 \xi \frac{s}{\omega_0} + 1 - \frac{{\Omega}^2}{{\omega_0}^2} \big)^2 + \big( 2 \frac{\Omega}{\omega_0} \frac{s}{\omega_0} \big)^2} \label{eq:rotating_Gk_diag} \\ +\mathbf{G}_{k}(1,2) &= -\mathbf{G}_{k}(2,1) = \frac{- \left( 2 \xi \frac{s}{\omega_0} + 1 - \alpha \right) \left( 2 \frac{\Omega}{\omega_0} \frac{s}{\omega_0} \right)}{\left( \frac{s^2}{{\omega_0}^2} + 2 \xi \frac{s}{\omega_0} + 1 - \frac{{\Omega}^2}{{\omega_0}^2} \right)^2 + \left( 2 \frac{\Omega}{\omega_0} \frac{s}{\omega_0} \right)^2} \label{eq:rotating_Gk_off_diag} \end{align} \end{subequations} -Comparing \(\mathbf{G}_k\) in Eq. \eqref{eq:Gk} with \(\mathbf{G}_f\) in Eq. \eqref{eq:Gf} shows that while the poles of the system are kept the same, the zeros of the diagonal terms have changed. -The two real zeros \(z_r\) in Eq. \eqref{eq:iff_zero_real} that were inducing a non-minimum phase behavior are transformed into two complex conjugate zeros if the condition in Eq. \eqref{eq:kp_cond_cc_zeros} holds. +Comparing \(\mathbf{G}_k\) in \eqref{eq:rotating_Gk} with \(\mathbf{G}_f\) in \eqref{eq:rotating_Gf} shows that while the poles of the system are kept the same, the zeros of the diagonal terms have changed. +The two real zeros \(z_r\) in \eqref{eq:rotating_iff_zero_real} that were inducing a non-minimum phase behavior are transformed into two complex conjugate zeros if the condition in \eqref{eq:rotating_kp_cond_cc_zeros} holds. +Thus, if the added \emph{parallel stiffness} \(k_p\) is higher than the \emph{negative stiffness} induced by centrifugal forces \(m \Omega^2\), the dynamics from actuator to its collocated force sensor will show \emph{minimum phase behavior}. -\begin{equation} -\label{eq:kp_cond_cc_zeros} +\begin{equation}\label{eq:rotating_kp_cond_cc_zeros} \boxed{\alpha > \frac{\Omega^2}{{\omega_0}^2} \quad \Leftrightarrow \quad k_p > m \Omega^2} \end{equation} -\begin{important} -Thus, if the added \textbf{parallel stiffness} \(k_p\) is \textbf{higher than the negative stiffness induced by centrifugal forces} \(m \Omega^2\), the dynamics from actuator to its collocated force sensor will show minimum phase behavior. -\end{important} \section{Effect of the parallel stiffness on the IFF plant} -The IFF plant (transfer function from \([F_u, F_v]\) to \([f_u, f_v]\)) is identified in three different cases: -\begin{itemize} -\item without parallel stiffness \(k_p = 0\) -\item with a small parallel stiffness \(k_p < m \Omega^2\) -\item with a large parallel stiffness \(k_p > m \Omega^2\) -\end{itemize} - +The IFF plant (transfer function from \([F_u, F_v]\) to \([f_u, f_v]\)) is identified without parallel stiffness \(k_p = 0\), with a small parallel stiffness \(k_p < m \Omega^2\) and with a large parallel stiffness \(k_p > m \Omega^2\). The Bode plots of the obtained dynamics are shown in Figure \ref{fig:rotating_iff_effect_kp}. -One can see that for \(k_p > m \Omega^2\), the two real zeros with \(k_p < m \Omega^2\) are transformed into two complex conjugate zeros and the systems shows alternating complex conjugate poles and zeros. +One can see that the the two real zeros for \(k_p < m \Omega^2\) are transformed into two complex conjugate zeros for \(k_p > m \Omega^2\). +In that case, the systems shows alternating complex conjugate poles and zeros as what is the case in the non-rotating case. + +Figure \ref{fig:rotating_iff_kp_root_locus} shows the Root Locus plots for \(k_p = 0\), \(k_p < m \Omega^2\) and \(k_p > m \Omega^2\) when \(K_F\) is a pure integrator as in Eq. \eqref{eq:rotating_Kf_pure_int}. +It is shown that if the added stiffness is higher than the maximum negative stiffness, the poles of the closed-loop system are bounded on the (stable) left half-plane, and hence the unconditional stability of IFF is recovered. \begin{figure}[htbp] -\centering -\includegraphics[scale=1]{figs/rotating_iff_effect_kp.png} -\caption{\label{fig:rotating_iff_effect_kp}Effect of the parallel stiffness on the IFF plant: Bode plot of \(G_{k}(1,1) = f_u/F_u\) without parallel spring, with parallel spring stiffness \(k_p < m \Omega^2\) and \(k_p > m \Omega^2\), \(\Omega = 0.1 \omega_0\)} +\begin{subfigure}{0.55\linewidth} +\begin{center} +\includegraphics[scale=1,width=0.95\linewidth]{figs/rotating_iff_effect_kp.png} +\end{center} +\subcaption{\label{fig:rotating_iff_effect_kp}Bode plot of $G_{k}(1,1) = f_u/F_u$ without parallel spring, with parallel spring stiffness $k_p < m \Omega^2$ and $k_p > m \Omega^2$, $\Omega = 0.1 \omega_0$} +\end{subfigure} +\begin{subfigure}{0.44\linewidth} +\begin{center} +\includegraphics[scale=1,scale=0.9]{figs/rotating_iff_kp_root_locus.png} +\end{center} +\subcaption{\label{fig:rotating_iff_kp_root_locus}Root Locus for IFF without parallel spring, with small parallel spring and with large parallel spring} +\end{subfigure} +\caption{\label{fig:rotating_iff_plant_effect_kp}Effect of the parallel stiffness on the IFF plant} \end{figure} -Figure \ref{fig:rotating_iff_kp_root_locus} shows the Root Locus plots for \(k_p = 0\), \(k_p < m \Omega^2\) and \(k_p > m \Omega^2\) when \(K_F\) is a pure integrator as in Eq. \eqref{eq:Kf_pure_int}. -It is shown that if the added stiffness is higher than the maximum negative stiffness, the poles of the closed-loop system are bounded on the (stable) left half-plane, and hence the \textbf{unconditional stability of IFF is recovered}. - -\begin{figure}[htbp] -\centering -\includegraphics[scale=1]{figs/rotating_iff_kp_root_locus.png} -\caption{\label{fig:rotating_iff_kp_root_locus}Root Locus for IFF without parallel spring, with small parallel spring and with large parallel spring} -\end{figure} \section{Effect of \(k_p\) on the attainable damping} - Even though the parallel stiffness \(k_p\) has no impact on the open-loop poles (as the overall stiffness \(k\) is kept constant), it has a large impact on the transmission zeros. Moreover, as the attainable damping is generally proportional to the distance between poles and zeros \cite{preumont18_vibrat_contr_activ_struc_fourt_edition}, the parallel stiffness \(k_p\) is foreseen to have some impact on the attainable damping. - To study this effect, Root Locus plots for several parallel stiffnesses \(k_p > m \Omega^2\) are shown in Figure \ref{fig:rotating_iff_kp_root_locus_effect_kp}. The frequencies of the transmission zeros of the system are increasing with an increase of the parallel stiffness \(k_p\) (thus getting closer to the poles) and the associated attainable damping is reduced. - -\begin{important} Therefore, even though the parallel stiffness \(k_p\) should be larger than \(m \Omega^2\) for stability reasons, it should not be taken too large as this would limit the attainable damping. -\end{important} - -\begin{figure}[htbp] -\centering -\includegraphics[scale=1]{figs/rotating_iff_kp_root_locus_effect_kp.png} -\caption{\label{fig:rotating_iff_kp_root_locus_effect_kp}Root Locus: Effect of the parallel stiffness on the attainable damping, \(\Omega = 0.1 \omega_0\)} -\end{figure} - This is confirmed by the Figure \ref{fig:rotating_iff_kp_optimal_gain} where the attainable closed-loop damping ratio \(\xi_{\text{cl}}\) and the associated optimal control gain \(g_\text{opt}\) are computed as a function of the parallel stiffness. \begin{figure}[htbp] -\centering -\includegraphics[scale=1]{figs/rotating_iff_kp_optimal_gain.png} -\caption{\label{fig:rotating_iff_kp_optimal_gain}Attainable damping ratio \(\xi_\text{cl}\) as a function of the parallel stiffness \(k_p\). Corresponding control gain \(g_\text{opt}\) is also shown. Values for \(k_p < m\Omega^2\) are not shown as the system is unstable.} +\begin{subfigure}{0.49\linewidth} +\begin{center} +\includegraphics[scale=1,scale=1]{figs/rotating_iff_kp_root_locus_effect_kp.png} +\end{center} +\subcaption{\label{fig:rotating_iff_kp_root_locus_effect_kp}Root Locus: Effect of the parallel stiffness on the attainable damping, $\Omega = 0.1 \omega_0$} +\end{subfigure} +\begin{subfigure}{0.49\linewidth} +\begin{center} +\includegraphics[scale=1,scale=0.9]{figs/rotating_iff_kp_optimal_gain.png} +\end{center} +\subcaption{\label{fig:rotating_iff_kp_optimal_gain}Attainable damping ratio $\xi_\text{cl}$ as a function of the parallel stiffness $k_p$. Corresponding control gain $g_\text{opt}$ is also shown. Values for $k_p < m\Omega^2$ are not shown as the system is unstable.} +\end{subfigure} +\caption{\label{fig:rotating_iff_optimal_kp}Effect of the parallel stiffness on the IFF plant} \end{figure} + \section{Damped plant} Let's choose a parallel stiffness equal to \(k_p = 2 m \Omega^2\) and compute the damped plant. The damped and undamped transfer functions from \(F_u\) to \(d_u\) are compared in Figure \ref{fig:rotating_iff_kp_damped_plant}. - Even though the two resonances are well damped, the IFF changes the low frequency behavior of the plant which is usually not wanted. This is due to the fact that ``pure'' integrators are used, and that the low frequency loop gains becomes large below some frequency. -\begin{figure}[htbp] -\centering -\includegraphics[scale=1]{figs/rotating_iff_kp_damped_plant.png} -\caption{\label{fig:rotating_iff_kp_damped_plant}Damped plant with IFF - Transfer function from \(F_u\) to \(d_u\)} -\end{figure} - -In order to lower the low frequency gain, an high pass filter is added to the IFF controller (which is equivalent as shifting the controller pole to the left in the complex plane): +In order to lower the low frequency gain, a high pass filter is added to the IFF controller (which is equivalent as shifting the controller pole to the left in the complex plane): \begin{equation} K_{\text{IFF}}(s) = g\frac{1}{\omega_i + s} \begin{bmatrix} 1 & 0 \\ @@ -568,311 +548,299 @@ In order to lower the low frequency gain, an high pass filter is added to the IF \end{bmatrix} \end{equation} -Let's see how the high pass filter impacts the attainable damping. -The controller gain \(g\) is kept constant while \(\omega_i\) is changed, and the minimum damping ratio of the damped plant is computed. +In order to see how the high pass filter impacts the attainable damping, the controller gain \(g\) is kept constant while \(\omega_i\) is changed, and the minimum damping ratio of the damped plant is computed. The obtained damping ratio as a function of \(\omega_i/\omega_0\) (where \(\omega_0\) is the resonance of the system without rotation) is shown in Figure \ref{fig:rotating_iff_kp_added_hpf_effect_damping}. +It is shown that the attainable damping ratio reduces as \(\omega_i\) is increased (same conclusion than in Section \ref{sec:rotating_iff_pseudo_int}). +Let's choose \(\omega_i = 0.1 \cdot \omega_0\) and compare the obtained damped plant again with the undamped and with the ``pure'' IFF in Figure \ref{fig:rotating_iff_kp_added_hpf_damped_plant}. +The added high pass filter gives almost the same damping properties to the suspension while giving good low frequency behavior. \begin{figure}[htbp] -\centering -\includegraphics[scale=1]{figs/rotating_iff_kp_added_hpf_effect_damping.png} -\caption{\label{fig:rotating_iff_kp_added_hpf_effect_damping}Effect of the high pass filter cut-off frequency on the obtained damping} +\begin{subfigure}{0.34\linewidth} +\begin{center} +\includegraphics[scale=1,scale=0.95]{figs/rotating_iff_kp_added_hpf_effect_damping.png} +\end{center} +\subcaption{\label{fig:rotating_iff_kp_added_hpf_effect_damping}Reduced damping ratio with increased cut-off frequency $\omega_i$} +\end{subfigure} +\begin{subfigure}{0.65\linewidth} +\begin{center} +\includegraphics[scale=1,scale=0.95]{figs/rotating_iff_kp_added_hpf_damped_plant.png} +\end{center} +\subcaption{\label{fig:rotating_iff_kp_added_hpf_damped_plant}Damped plant with the parallel stiffness, effect of the added HPF} +\end{subfigure} +\caption{\label{fig:rotating_iff_optimal_kp}Effect of the high pass filter cut-off frequency on the obtained damping} \end{figure} -Let's choose \(\omega_i = 0.1 \cdot \omega_0\) and compute the damped plant again. -The Bode plots of the undamped, damped with ``pure'' IFF, and with added high pass filters are shown in Figure \ref{fig:rotating_iff_kp_added_hpf_damped_plant}. -The added high pass filter gives almost the same damping properties while giving acceptable low frequency behavior. - -\begin{figure}[htbp] -\centering -\includegraphics[scale=1]{figs/rotating_iff_kp_added_hpf_damped_plant.png} -\caption{\label{fig:rotating_iff_kp_added_hpf_damped_plant}Damped plant with IFF - Transfer function from \(F_u\) to \(d_u\)} -\end{figure} \chapter{Relative Damping Control} \label{sec:rotating_relative_damp_control} - -In order to apply a ``relative damping control strategy'', relative motion sensors are added in parallel with the actuators as shown in Figure \ref{fig:rotating_3dof_model_schematic_rdc}. - +In order to apply a ``Relative Damping Control'' strategy, relative motion sensors are added in parallel with the actuators as shown in Figure \ref{fig:rotating_3dof_model_schematic_rdc}. Two controllers \(K_d\) are used to fed back the relative motion to the actuator. -\(K_d\) is a derivator: -\begin{equation} -K_d(s) = s -\end{equation} +These controllers are in principle pure derivators (\(K_d = s\)), but to be implemented in practice they are usually replaced by a high pass filter \eqref{eq:rotating_rdc_controller}. -To be implemented in practice, it is usually replaced by a an high pass filter: -\begin{equation} -K_d(s) = \frac{s}{s + \omega_d} +\begin{equation}\label{eq:rotating_rdc_controller} +K_d(s) = g \cdot \frac{s}{s + \omega_d} \end{equation} - \begin{figure}[htbp] \centering -\includegraphics[scale=1]{figs/rotating_3dof_model_schematic_rdc.png} +\includegraphics[scale=1,scale=0.8]{figs/rotating_3dof_model_schematic_rdc.png} \caption{\label{fig:rotating_3dof_model_schematic_rdc}System with relative motion sensor and decentralized ``relative damping control'' applied.} \end{figure} + \section{Equations of motion} -Let's note \(\bm{G}_d\) the transfer function between actuator forces and measured relative motion in parallel with the actuators: -\begin{equation} +Let's note \(\bm{G}_d\) the transfer function between actuator forces and measured relative motion in parallel with the actuators \eqref{eq:rotating_rdc_plant_matrix}. +The elements of \(\bm{G}_d\) were derived in Section \ref{sec:rotating_system_description} are shown in \eqref{eq:rotating_rdc_plant_elements}. + +\begin{equation}\label{eq:rotating_rdc_plant_matrix} \begin{bmatrix} d_u \\ d_v \end{bmatrix} = \mathbf{G}_d \begin{bmatrix} F_u \\ F_v \end{bmatrix} \end{equation} -With: -\begin{subequations} +\begin{subequations}\label{eq:rotating_rdc_plant_elements} \begin{align} \mathbf{G}_{d}(1,1) &= \mathbf{G}_{d}(2,2) = \frac{\frac{1}{k} \left( \frac{s^2}{{\omega_0}^2} + 2 \xi \frac{s}{\omega_0} + 1 - \frac{{\Omega}^2}{{\omega_0}^2} \right)}{\left( \frac{s^2}{{\omega_0}^2} + 2 \xi \frac{s}{\omega_0} + 1 - \frac{{\Omega}^2}{{\omega_0}^2} \right)^2 + \left( 2 \frac{\Omega}{\omega_0} \frac{s}{\omega_0} \right)^2} \\ \mathbf{G}_{d}(1,2) &= -\mathbf{G}_{d}(2,1) = \frac{\frac{1}{k} \left( 2 \frac{\Omega}{\omega_0} \frac{s}{\omega_0} \right)}{\left( \frac{s^2}{{\omega_0}^2} + 2 \xi \frac{s}{\omega_0} + 1 - \frac{{\Omega}^2}{{\omega_0}^2} \right)^2 + \left( 2 \frac{\Omega}{\omega_0} \frac{s}{\omega_0} \right)^2} \end{align} \end{subequations} -Neglecting the damping for simplicity (\(\xi \ll 1\)), the direct terms have two complex conjugate zeros: -\begin{equation} - z = \pm j \sqrt{\omega_0^2 - \omega^2} +Neglecting the damping for simplicity (\(\xi \ll 1\)), the direct terms have two complex conjugate zeros which are between the two pairs of complex conjugate poles \eqref{eq:rotating_rdc_zeros_poles}. +Therefore, for \(\Omega < \sqrt{k/m}\) (i.e. stable system), the transfer functions for Relative Damping Control have alternating complex conjugate poles and zeros. + +\begin{equation}\label{eq:rotating_rdc_zeros_poles} + z = \pm j \sqrt{\omega_0^2 - \omega^2}, \quad p_1 = \pm j (\omega_0 - \omega), \quad p_2 = \pm j (\omega_0 + \omega) \end{equation} -Which are between the two pairs of complex conjugate poles at: -\begin{align} - p_1 &= \pm j (\omega_0 - \omega) \\ - p_2 &= \pm j (\omega_0 + \omega) -\end{align} - -Therefore, for \(\Omega < \sqrt{k/m}\) (i.e. stable system), the transfer functions for Relative Damping Control have \textbf{alternating complex conjugate poles and zeros}. \section{Decentralized Relative Damping Control} -The transfer functions from \([F_u,\ F_v]\) to \([d_u,\ d_v]\) is identified and shown in Figure \ref{fig:rotating_rdc_plant_effect_rot} for several rotating velocities. - -\begin{figure}[htbp] -\centering -\includegraphics[scale=1]{figs/rotating_rdc_plant_effect_rot.png} -\caption{\label{fig:rotating_rdc_plant_effect_rot}Bode plot of the direct and coupling term for the ``relative damping control'' plant - Effect of rotation} -\end{figure} +The transfer functions from \([F_u,\ F_v]\) to \([d_u,\ d_v]\) were identified for several rotating velocities in Section \ref{sec:rotating_system_description} and are shown in Figure \ref{fig:rotating_bode_plot} (page \pageref{fig:rotating_bode_plot}). In order to see if large damping can be added with Relative Damping Control, the root locus is computed (Figure \ref{fig:rotating_rdc_root_locus}). -The closed-loop system is unconditionally stable and the poles can be damped as much as wanted. +The closed-loop system is unconditionally stable as expected and the poles can be damped as much as wanted. -\begin{figure}[htbp] -\centering -\includegraphics[scale=1]{figs/rotating_rdc_root_locus.png} -\caption{\label{fig:rotating_rdc_root_locus}Root Locus for Relative Damping Control} -\end{figure} -\section{Damped Plant} Let's select a reasonable ``Relative Damping Control'' gain, and compute the closed-loop damped system. The open-loop and damped plants are compared in Figure \ref{fig:rotating_rdc_damped_plant}. - The rotating aspect does not add any complexity for the use of Relative Damping Control. It does not increase the low frequency coupling as compared to Integral Force Feedback. \begin{figure}[htbp] -\centering -\includegraphics[scale=1]{figs/rotating_rdc_damped_plant.png} -\caption{\label{fig:rotating_rdc_damped_plant}Damped plant using Relative Damping Control} +\begin{subfigure}{0.49\linewidth} +\begin{center} +\includegraphics[scale=1,scale=1]{figs/rotating_rdc_root_locus.png} +\end{center} +\subcaption{\label{fig:rotating_rdc_root_locus}Root Locus for Relative Damping Control} +\end{subfigure} +\begin{subfigure}{0.49\linewidth} +\begin{center} +\includegraphics[scale=1,scale=0.8]{figs/rotating_rdc_damped_plant.png} +\end{center} +\subcaption{\label{fig:rotating_rdc_damped_plant}Damped plant using Relative Damping Control} +\end{subfigure} +\caption{\label{fig:rotating_rdc_result}Relative Damping Control. Root Locus (\subref{fig:rotating_rdc_root_locus}) and obtained damped plant (\subref{rotating_rdc_damped_plant})} \end{figure} + \chapter{Comparison of Active Damping Techniques} \label{sec:rotating_comp_act_damp} - These two proposed IFF modifications as well as relative damping control are now compared in terms of added damping and closed-loop behavior. - For the following comparisons, the cut-off frequency for the added HPF is set to \(\omega_i = 0.1 \omega_0\) and the stiffness of the parallel springs is set to \(k_p = 5 m \Omega^2\) (corresponding to \(\alpha = 0.05\)). These values are chosen based on previous discussion about optimal parameters. -\section{Root Locus} +\section{Root Locus} Figure \ref{fig:rotating_comp_techniques_root_locus} shows the Root Locus plots for the two proposed IFF modifications as well as for relative damping control. While the two pairs of complex conjugate open-loop poles are identical for both IFF modifications, the transmission zeros are not. This means that the closed-loop behavior of both systems will differ when large control gains are used. One can observe that the closed loop poles corresponding to the system with added springs (in red) are bounded to the left half plane implying unconditional stability. This is not the case for the system where the controller is augmented with an HPF (in blue). - -It is interesting to note that the maximum added damping is very similar for both techniques. +It is interesting to note that the maximum added damping is very similar for both modified IFF techniques. \begin{figure}[htbp] -\centering -\includegraphics[scale=1]{figs/rotating_comp_techniques_root_locus.png} -\caption{\label{fig:rotating_comp_techniques_root_locus}Comparison of active damping techniques for rotating platform - Root Locus} +\begin{subfigure}{0.49\textwidth} +\begin{center} +\includegraphics[scale=1,width=0.95\linewidth]{figs/rotating_comp_techniques_root_locus.png} +\end{center} +\subcaption{\label{fig:rotating_comp_techniques_root_locus}Root Locus} +\end{subfigure} +\begin{subfigure}{0.49\textwidth} +\begin{center} +\includegraphics[scale=1,width=0.95\linewidth]{figs/rotating_comp_techniques_dampled_plants.png} +\end{center} +\subcaption{\label{fig:rotating_comp_techniques_dampled_plants}Damped plants} +\end{subfigure} +\caption{\label{fig:rotating_comp_techniques}Comparison of active damping techniques for rotating platform} \end{figure} + \section{Obtained Damped Plant} The actively damped plants are computed for the three techniques and compared in Figure \ref{fig:rotating_comp_techniques_dampled_plants}. +It is shown that while the diagonal (direct) terms of the damped plants are similar for the three active damping techniques, the off-diagonal (coupling) terms are not. +Integral Force Feedback strategy is adding some coupling at low frequency which may negatively impact the positioning performance. -\begin{important} -It is shown that while the diagonal (direct) terms of the damped plants are similar for the three active damping techniques, of off-diagonal (coupling) terms are not. -Integral Force Feedback strategy is adding some coupling at low frequency which may negatively impact the positioning performances. -\end{important} - -\begin{figure}[htbp] -\centering -\includegraphics[scale=1]{figs/rotating_comp_techniques_dampled_plants.png} -\caption{\label{fig:rotating_comp_techniques_dampled_plants}Comparison of the damped plants obtained with the three active damping techniques} -\end{figure} \section{Transmissibility And Compliance} The proposed active damping techniques are now compared in terms of closed-loop transmissibility and compliance. - The transmissibility is here defined as the transfer function from a displacement of the rotating stage along \(\vec{i}_x\) to the displacement of the payload along the same direction. It is used to characterize how much vibration is transmitted through the suspended platform to the payload. - The compliance describes the displacement response of the payload to external forces applied to it. This is a useful metric when disturbances are directly applied to the payload. It is here defined as the transfer function from external forces applied on the payload along \(\vec{i}_x\) to the displacement of the payload along the same direction. -Very similar results are obtained for the two proposed IFF modifications in terms of transmissibility and compliance (Figure \ref{fig:rotating_comp_techniques_transmissibility_compliance}). - -\begin{important} +Very similar results are obtained for the two proposed IFF modifications in terms of transmissibility and compliance (Figure \ref{fig:rotating_comp_techniques_trans_compliance}). Using IFF degrades the compliance at low frequency while using relative damping control degrades the transmissibility at high frequency. This is very well known characteristics of these common active damping techniques that holds when applied to rotating platforms. -\end{important} \begin{figure}[htbp] -\centering -\includegraphics[scale=1]{figs/rotating_comp_techniques_transmissibility_compliance.png} -\caption{\label{fig:rotating_comp_techniques_transmissibility_compliance}Comparison of the obtained transmissibilty and compliance for the three tested active damping techniques} +\begin{subfigure}{0.49\textwidth} +\begin{center} +\includegraphics[scale=1,width=0.95\linewidth]{figs/rotating_comp_techniques_transmissibility.png} +\end{center} +\subcaption{\label{fig:rotating_comp_techniques_transmissibility}Transmissibility} +\end{subfigure} +\begin{subfigure}{0.49\textwidth} +\begin{center} +\includegraphics[scale=1,width=0.95\linewidth]{figs/rotating_comp_techniques_compliance.png} +\end{center} +\subcaption{\label{fig:rotating_comp_techniques_compliance}Compliance} +\end{subfigure} +\caption{\label{fig:rotating_comp_techniques_trans_compliance}Comparison of the obtained transmissibilty (\subref{fig:rotating_comp_techniques_transmissibility}) and compliance (\subref{fig:rotating_comp_techniques_compliance}) for the three tested active damping techniques} \end{figure} + \chapter{Rotating Nano-Hexapod} \label{sec:rotating_nano_hexapod} -The current analysis is now applied on a model representing the rotating nano-hexapod. - -Three nano-hexapod stiffnesses are tested: \(k_n = \SI{0.01}{\N\per\mu\m}\), \(k_n = \SI{1}{\N\per\mu\m}\) and \(k_n = \SI{100}{\N\per\mu\m}\). - -Only the maximum rotating velocity is considered (\(\Omega = \SI{60}{rpm}\)) with the light sample (\(m_s = \SI{1}{kg}\)) as this is the worst identified case scenario. +The previous analysis is now applied on a model representing the rotating nano-hexapod. +Three nano-hexapod stiffnesses are tested as for the uniaxial model: \(k_n = \SI{0.01}{\N\per\mu\m}\), \(k_n = \SI{1}{\N\per\mu\m}\) and \(k_n = \SI{100}{\N\per\mu\m}\). +Only the maximum rotating velocity is here considered (\(\Omega = \SI{60}{rpm}\)) with the light sample (\(m_s = \SI{1}{kg}\)) as this is the worst identified case scenario in terms of gyroscopic effects. \section{Nano-Active-Stabilization-System - Plant Dynamics} For the NASS, the maximum rotating velocity is \(\Omega = \SI[parse-numbers=false]{2\pi}{\radian\per\s}\) for a suspended mass on top of the nano-hexapod's actuators equal to \(m_n + m_s = \SI{16}{\kilo\gram}\). The parallel stiffness corresponding to the centrifugal forces is \(m \Omega^2 \approx \SI{0.6}{\newton\per\mm}\). The transfer functions from nano-hexapod actuator force \(F_u\) to the displacement of the nano-hexapod in the same direction \(d_u\) as well as in the orthogonal direction \(d_v\) (coupling) are shown in Figure \ref{fig:rotating_nano_hexapod_dynamics} for all three considered nano-hexapod stiffnesses. - -\begin{important} -It is shown that the rotation has the largest effect on the soft nano-hexapod: -\begin{itemize} -\item larger coupling (the ratio of the coupling term to the direct term is larger for the sort nano-hexapod) -\item larger shift of poles as a function of the rotating velocity -\end{itemize} -\end{important} +The soft nano-hexapod is the most affected by the rotation. +This can be seen by the large shift of the resonance frequencies, and by the induced coupling (the ratio between the direct term and the coupling term) which is larger than for the stiffer nano-hexapods. \begin{figure}[htbp] -\centering -\includegraphics[scale=1]{figs/rotating_nano_hexapod_dynamics.png} -\caption{\label{fig:rotating_nano_hexapod_dynamics}Effect of rotation on the nano-hexapod dynamics - Dashed lines are the plants without rotation, solid lines are plants at maximum rotating velocity, and shaded lines are coupling terms at maximum rotating velocity} +\begin{subfigure}{0.33\textwidth} +\begin{center} +\includegraphics[scale=1,width=0.95\linewidth]{figs/rotating_nano_hexapod_dynamics_vc.png} +\end{center} +\subcaption{\label{fig:uniaxial_damped_plant_three_active_damping_techniques_vc}$k_n = 0.01\,N/\mu m$} +\end{subfigure} +\begin{subfigure}{0.33\textwidth} +\begin{center} +\includegraphics[scale=1,width=0.95\linewidth]{figs/rotating_nano_hexapod_dynamics_md.png} +\end{center} +\subcaption{\label{fig:rotating_nano_hexapod_dynamics_md}$k_n = 1\,N/\mu m$} +\end{subfigure} +\begin{subfigure}{0.33\textwidth} +\begin{center} +\includegraphics[scale=1,width=0.95\linewidth]{figs/rotating_nano_hexapod_dynamics_pz.png} +\end{center} +\subcaption{\label{fig:rotating_nano_hexapod_dynamics_pz}$k_n = 100\,N/\mu m$} +\end{subfigure} +\caption{\label{fig:rotating_nano_hexapod_dynamics}Effect of rotation on the nano-hexapod dynamics. Dashed lines are the plants without rotation, solid lines are plants at maximum rotating velocity (\(\Omega = 60\,\text{rpm}\)), and shaded lines are coupling terms at maximum rotating velocity} \end{figure} + \section{Optimal IFF with High Pass Filter} -Let's apply Integral Force Feedback with an added High Pass Filter to the three nano-hexapods. - -First, let's find the parameters of the IFF controller that yield best simultaneous damping. -The results are shown in Figure \ref{fig:rotating_iff_hpf_nass_optimal_gain}. -The added damping for the soft nano-hexapod is quite low and is limited by the maximum usable gain. - -\begin{figure}[htbp] -\centering -\includegraphics[scale=1]{figs/rotating_iff_hpf_nass_optimal_gain.png} -\caption{\label{fig:rotating_iff_hpf_nass_optimal_gain}Optimal high pass filter cut-off frequency \(\omega_i\) that yields maximum simultaneous damping} -\end{figure} - +In this section, Integral Force Feedback with an added High Pass Filter is applied to the three nano-hexapods. +First, the parameters (\(\omega_i\) and \(g\)) of the IFF controller that yield best simultaneous damping are determined from Figure \ref{fig:rotating_iff_hpf_nass_optimal_gain}. The IFF parameters are chosen as follow: \begin{itemize} -\item for \(k_n = \SI{0.01}{\N\per\mu\m}\): \(\omega_i\) is chosen such that the maximum damping is achieved while the gain is less than half of the maximum gain at which the system is unstable. +\item for \(k_n = \SI{0.01}{\N\per\mu\m}\) (Figure \ref{fig:rotating_iff_hpf_nass_optimal_gain}): \(\omega_i\) is chosen such that the maximum damping is achieved while the gain is less than half of the maximum gain at which the system is unstable. This is done to have some control robustness. -\item for \(k_n = \SI{1}{\N\per\mu\m}\) and \(k_n = \SI{100}{\N\per\mu\m}\): the largest \(\omega_i\) is chosen such that obtained damping is \(\SI{95}{\percent}\) of the maximum achievable damping. +\item for \(k_n = \SI{1}{\N\per\mu\m}\) and \(k_n = \SI{100}{\N\per\mu\m}\) (Figure \ref{fig:rotating_iff_hpf_nass_optimal_gain_md} and \ref{fig:rotating_iff_hpf_nass_optimal_gain_pz}): the largest \(\omega_i\) is chosen such that obtained damping is \(\SI{95}{\percent}\) of the maximum achievable damping. Large \(\omega_i\) is chosen here to limit the loss of compliance and the increase of coupling at low frequency as was shown in Section \ref{sec:rotating_iff_pseudo_int}. \end{itemize} +The obtained IFF parameters and the achievable damping are visually shown by large dots in Figure \ref{fig:rotating_iff_hpf_nass_optimal_gain} and are summarized in Table \ref{tab:rotating_iff_hpf_opt_iff_hpf_params_nass}. -The obtained IFF parameters and the achievable damping are summarized in Table \ref{tab:iff_hpf_opt_iff_hpf_params_nass}. +\begin{figure}[htbp] +\begin{subfigure}{0.33\textwidth} +\begin{center} +\includegraphics[scale=1,width=0.95\linewidth]{figs/rotating_iff_hpf_nass_optimal_gain_vc.png} +\end{center} +\subcaption{\label{fig:rotating_iff_hpf_nass_optimal_gain_vc}$k_n = 0.01\,N/\mu m$} +\end{subfigure} +\begin{subfigure}{0.33\textwidth} +\begin{center} +\includegraphics[scale=1,width=0.95\linewidth]{figs/rotating_iff_hpf_nass_optimal_gain_md.png} +\end{center} +\subcaption{\label{fig:rotating_iff_hpf_nass_optimal_gain_md}$k_n = 1\,N/\mu m$} +\end{subfigure} +\begin{subfigure}{0.33\textwidth} +\begin{center} +\includegraphics[scale=1,width=0.95\linewidth]{figs/rotating_iff_hpf_nass_optimal_gain_pz.png} +\end{center} +\subcaption{\label{fig:rotating_iff_hpf_nass_optimal_gain_pz}$k_n = 100\,N/\mu m$} +\end{subfigure} +\caption{\label{fig:rotating_iff_hpf_nass_optimal_gain}For each value of \(\omega_i\), the maximum damping ratio \(\xi\) is computed (blue) and the corresponding controller gain is shown (in red). The choosen controller parameters used for further analysis are shown by the large dots.} +\end{figure} \begin{table}[htbp] -\caption{\label{tab:iff_hpf_opt_iff_hpf_params_nass}Obtained optimal parameters for the modified IFF controller} +\caption{\label{tab:rotating_iff_hpf_opt_iff_hpf_params_nass}Obtained optimal parameters (\(\omega_i\) and \(g\)) for the modified IFF controller including a high pass filter. The corresponding achievable simultaneous damping of the two modes \(\xi\) is also shown.} \centering -\begin{tabularx}{0.5\linewidth}{lXXX} +\begin{tabularx}{0.4\linewidth}{Xccc} \toprule - & \(\omega_i\) & \(g\) & \(\xi\)\\ +\(k_n\) & \(\omega_i\) & \(g\) & \(\xi_\text{opt}\)\\ \midrule -\(k_n = 0.01\,N/\mu m\) & 7.32 & 51.13 & 0.45\\ -\(k_n = 1\,N/\mu m\) & 39.17 & 426.95 & 0.93\\ -\(k_n = 100\,N/\mu m\) & 499.45 & 3774.63 & 0.94\\ +\(0.01\,N/\mu m\) & 7.3 & 51 & 0.45\\ +\(1\,N/\mu m\) & 39 & 427 & 0.93\\ +\(100\,N/\mu m\) & 500 & 3775 & 0.94\\ \bottomrule \end{tabularx} \end{table} -The Root Locus for all three nano-hexapods are shown in Figure \ref{fig:rotating_root_locus_iff_hpf_nass} with included optimal chosen gains. - -\begin{figure}[htbp] -\centering -\includegraphics[scale=1]{figs/rotating_root_locus_iff_hpf_nass.png} -\caption{\label{fig:rotating_root_locus_iff_hpf_nass}Root Locus for modified IFF with high pass filter. Optimal \(\omega_i\) is used. The three nano-hexapod stiffnesses are compared. The grey line indicates the minimum damping obtained with the optimal chosen control parameters.} -\end{figure} \section{Optimal IFF with Parallel Stiffness} -For each considered nano-hexapod stiffness, the parallel stiffness \(k_p\) is varied from \(k_{p,\text{min}} = m\Omega^2\) (the minimum stiffness to have unconditional stability) to \(k_{p,\text{max}} = k_n\) (the total nano-hexapod stiffness). -In order to keep the overall stiffness constant, the actuator stiffness \(k_a\) is decreased when \(k_p\) is increased: -\begin{equation} -k_a = k_n - k_p -\end{equation} -With \(k_n\) the total nano-hexapod stiffness. +For each considered nano-hexapod stiffness, the parallel stiffness \(k_p\) is varied from \(k_{p,\text{min}} = m\Omega^2\) (the minimum stiffness that yields unconditional stability) to \(k_{p,\text{max}} = k_n\) (the total nano-hexapod stiffness). +In order to keep the overall stiffness constant, the actuator stiffness \(k_a\) is decreased when \(k_p\) is increased (\(k_a = k_n - k_p\), with \(k_n\) the total nano-hexapod stiffness). +A high pass filter is also added to limit the low frequency gain with a cut-off frequency \(\omega_i\) equal to one tenth of the system resonance (\(\omega_i = \omega_0/10\)). -An high pass filter is also added to limit the low frequency gain. -The cut-off frequency \(\omega_i\) is chosen to be one tenth of the system resonance: -\begin{equation} -\omega_i = \omega_0/10 -\end{equation} - -The achievable maximum simultaneous damping of all the modes is computed as a function of the parallel stiffnesses. -The comparison for the nano-hexapod stiffnesses is done in Figure \ref{fig:rotating_iff_kp_nass_optimal_gain}. -It is shown that \textbf{the soft nano-hexapod cannot yield good damping}. +The achievable maximum simultaneous damping of all the modes is computed as a function of the parallel stiffnesses (Figure \ref{fig:rotating_iff_kp_nass_optimal_gain}). +It is shown that the soft nano-hexapod cannot yield good damping. For the two stiff options, the achievable damping starts to significantly decrease when the parallel stiffness is one tenth of the total stiffness \(k_p = k_n/10\). +Let's choose \(k_p = 1\,N/mm\), \(k_p = 0.01\,N/\mu m\) and \(k_p = 1\,N/\mu m\) for the three considered nano-hexapods. +The corresponding optimal controller gains and achievable damping are summarized in Table \ref{tab:rotating_iff_kp_opt_iff_kp_params_nass}. -\begin{figure}[htbp] -\centering -\includegraphics[scale=1]{figs/rotating_iff_kp_nass_optimal_gain.png} -\caption{\label{fig:rotating_iff_kp_nass_optimal_gain}Maximum achievable simultaneous damping with IFF as a function of the parallel stiffness for all three nano-hexapod stiffnesses} -\end{figure} - -Let's choose \(k_p = \SI{e3}{\newton\per\m}\), \(k_p = \SI{e4}{\newton\per\m}\) and \(k_p = \SI{e6}{\newton\per\m}\) for the three considered nano-hexapods respectively based on Figure \ref{fig:rotating_iff_kp_nass_optimal_gain}. - -The corresponding optimal controller gains are shown in Table \ref{tab:iff_kp_opt_iff_kp_params_nass}. - -\begin{table}[htbp] -\caption{\label{tab:iff_kp_opt_iff_kp_params_nass}Obtained optimal parameters for the modified IFF controller} -\centering -\begin{tabularx}{0.4\linewidth}{lXX} +\begin{minipage}[t]{0.49\linewidth} +\begin{center} +\includegraphics[scale=1,width=\linewidth]{figs/rotating_iff_kp_nass_optimal_gain.png} +\captionof{figure}{\label{fig:rotating_iff_kp_nass_optimal_gain}Maximum damping \(\xi\) as a function of the parallel stiffness \(k_p\)} +\end{center} +\end{minipage} +\hfill +\begin{minipage}[b]{0.45\linewidth} +\begin{center} +\captionof{table}{\label{tab:rotating_iff_kp_opt_iff_kp_params_nass}Obtained optimal parameters for the IFF controller when using parallel stiffnesses} +\begin{tabularx}{\linewidth}{Xccc} \toprule - & \(g\) & \(\xi_{\text{opt}}\)\\ +\(k_n\) & \(k_p\) & \(g\) & \(\xi_{\text{opt}}\)\\ \midrule -\(k_n = 0.01\,N/\mu m\) & 47.9 & 0.44\\ -\(k_n = 1\,N/\mu m\) & 465.57 & 0.97\\ -\(k_n = 100\,N/\mu m\) & 4624.25 & 1.0\\ +\(0.01\,N/\mu m\) & \(1\,N/mm\) & 47.9 & 0.44\\ +\(1\,N/\mu m\) & \(0.01\,N/\mu m\) & 465.57 & 0.97\\ +\(100\,N/\mu m\) & \(1\,N/\mu m\) & 4624.25 & 0.99\\ \bottomrule \end{tabularx} -\end{table} +\end{center} +\end{minipage} -The root locus for the three nano-hexapod with parallel stiffnesses are shown in Figure \ref{fig:rotating_root_locus_iff_kp_nass}. - -\begin{important} -Similarly to what was found with the IFF and added High Pass Filter: -\begin{itemize} -\item the stiff nano-hexapod is less affected by the rotation than the soft one -\item the achievable damping is much larger with the stiff nano-hexapods -\end{itemize} -\end{important} - -\begin{figure}[htbp] -\centering -\includegraphics[scale=1]{figs/rotating_root_locus_iff_kp_nass.png} -\caption{\label{fig:rotating_root_locus_iff_kp_nass}Root Locus for optimal parameters (IFF + \(k_p\) strategy) - Comparison of attainable damping with the three nano-hexapod stiffnesses} -\end{figure} \section{Optimal Relative Motion Control} +For each considered nano-hexapod stiffness, relative damping control is applied and the achievable damping ratio as a function of the controller gain is computed (Figure \ref{fig:rotating_rdc_optimal_gain}). +The gain is chosen is chosen such that 99\% of modal damping is obtained (obtained gains are summarized in Table \ref{tab:rotating_rdc_opt_params_nass}). -For each considered nano-hexapod stiffness, relative damping control is applied and the achievable damping ratio as a function of the controller gain is shown in Figure \ref{fig:rotating_rdc_optimal_gain}. +\begin{minipage}[t]{0.49\linewidth} +\begin{center} +\includegraphics[scale=1,width=\linewidth]{figs/rotating_rdc_optimal_gain.png} +\captionof{figure}{\label{fig:rotating_rdc_optimal_gain}Maximum damping \(\xi\) as a function of the RDC gain \(g\)} +\end{center} +\end{minipage} +\hfill +\begin{minipage}[b]{0.45\linewidth} +\begin{center} +\captionof{table}{\label{tab:rotating_rdc_opt_params_nass}Obtained optimal parameters for the RDC} +\begin{tabularx}{0.8\linewidth}{Xcc} +\toprule +\(k_n\) & \(g\) & \(\xi_{\text{opt}}\)\\ +\midrule +\(0.01\,N/\mu m\) & 1600 & 0.99\\ +\(1\,N/\mu m\) & 8200 & 0.99\\ +\(100\,N/\mu m\) & 80000 & 0.99\\ +\bottomrule +\end{tabularx} +\end{center} +\end{minipage} -\begin{figure}[htbp] -\centering -\includegraphics[scale=1]{figs/rotating_rdc_optimal_gain.png} -\caption{\label{fig:rotating_rdc_optimal_gain}Achievable simultaneous damping with ``Relative Damping Control'' as a function of the controller gain for all three nano-hexapod stiffnesses} -\end{figure} - -The gain is chosen is chosen such that 99\% of modal damping is obtained. -The root locus for all three nano-hexapod stiffnesses are shown in Figure \ref{fig:rotating_root_locus_rdc_nass}. - -\begin{important} -Relative damping control is much less impacted by gyroscopic effects. -It can be easily applied on the nano-hexapod with and without rotation without much differences. -\end{important} - -\begin{figure}[htbp] -\centering -\includegraphics[scale=1]{figs/rotating_root_locus_rdc_nass.png} -\caption{\label{fig:rotating_root_locus_rdc_nass}Root Locus for optimal parameters - Comparison of attainable damping with the soft and moderately stiff nano-hexapods} -\end{figure} \section{Comparison of the obtained damped plants} Let's now compare the obtained damped plants for the three active damping techniques applied on the three nano-hexapod stiffnesses (Figure \ref{fig:rotating_nass_damped_plant_comp}). @@ -880,16 +848,33 @@ Let's now compare the obtained damped plants for the three active damping techni Similarly to what was concluded in previous analysis: \begin{itemize} \item IFF adds coupling below the resonance frequency as compared to the open-loop and RDC cases -\item Add three methods are yielding good damping, except for IFF applied on the soft nano-hexapod where things are more complicated +\item All three methods are yielding good damping, except for IFF applied on the soft nano-hexapod where things are more complicated \item Coupling is smaller for stiff nano-hexapods \end{itemize} \end{important} \begin{figure}[htbp] -\centering -\includegraphics[scale=1]{figs/rotating_nass_damped_plant_comp.png} +\begin{subfigure}{0.33\textwidth} +\begin{center} +\includegraphics[scale=1,width=0.95\linewidth]{figs/rotating_nass_damped_plant_comp_vc.png} +\end{center} +\subcaption{\label{fig:rotating_nass_damped_plant_comp_vc}$k_n = 0.01\,N/\mu m$} +\end{subfigure} +\begin{subfigure}{0.33\textwidth} +\begin{center} +\includegraphics[scale=1,width=0.95\linewidth]{figs/rotating_nass_damped_plant_comp_md.png} +\end{center} +\subcaption{\label{fig:rotating_nass_damped_plant_comp_md}$k_n = 1\,N/\mu m$} +\end{subfigure} +\begin{subfigure}{0.33\textwidth} +\begin{center} +\includegraphics[scale=1,width=0.95\linewidth]{figs/rotating_nass_damped_plant_comp_pz.png} +\end{center} +\subcaption{\label{fig:rotating_nass_damped_plant_comp_pz}$k_n = 100\,N/\mu m$} +\end{subfigure} \caption{\label{fig:rotating_nass_damped_plant_comp}Comparison of the damped plants (direct and coupling terms) for the three proposed active damping techniques (IFF with HPF, IFF with \(k_p\) and RDC) applied on the three nano-hexapod stiffnesses. \(\Omega = 60\,\text{rmp}\) and \(m_n + m_s = \SI{16}{\kg}\).} \end{figure} + \chapter{Nano-Active-Stabilization-System with rotation} \label{sec:rotating_nass} Up until now, the model used consisted of an infinitely stiff vertical rotating stage with a X-Y suspended stage. @@ -915,6 +900,7 @@ A payload is rigidly fixed to the nano-hexapod and the \(x,y\) motion of the pay \includegraphics[scale=1]{figs/rotating_nass_model.png} \caption{\label{fig:rotating_nass_model}3D view of the Nano-Active-Stabilization-System model.} \end{figure} + \section{System dynamics} The dynamics of the undamped and damped plants are identified. @@ -935,18 +921,51 @@ It can be observed on Figure \ref{fig:rotating_nass_plant_comp_stiffness} that: \end{important} \begin{figure}[htbp] -\centering -\includegraphics[scale=1]{figs/rotating_nass_plant_comp_stiffness.png} +\begin{subfigure}{0.33\textwidth} +\begin{center} +\includegraphics[scale=1,width=0.95\linewidth]{figs/rotating_nass_plant_comp_stiffness_vc.png} +\end{center} +\subcaption{\label{fig:rotating_nass_plant_comp_stiffness_vc}$k_n = 0.01\,N/\mu m$} +\end{subfigure} +\begin{subfigure}{0.33\textwidth} +\begin{center} +\includegraphics[scale=1,width=0.95\linewidth]{figs/rotating_nass_plant_comp_stiffness_md.png} +\end{center} +\subcaption{\label{fig:rotating_nass_plant_comp_stiffness_md}$k_n = 1\,N/\mu m$} +\end{subfigure} +\begin{subfigure}{0.33\textwidth} +\begin{center} +\includegraphics[scale=1,width=0.95\linewidth]{figs/rotating_nass_plant_comp_stiffness_pz.png} +\end{center} +\subcaption{\label{fig:rotating_nass_plant_comp_stiffness_pz}$k_n = 100\,N/\mu m$} +\end{subfigure} \caption{\label{fig:rotating_nass_plant_comp_stiffness}Bode plot of the transfer function from nano-hexapod actuator to measured motion by the external metrology} \end{figure} To confirm that the coupling is smaller when the stiffness of the nano-hexapod is increase, the \emph{coupling ratio} for the three nano-hexapod stiffnesses are shown in Figure \ref{fig:rotating_nass_plant_coupling_comp}. \begin{figure}[htbp] -\centering -\includegraphics[scale=1]{figs/rotating_nass_plant_coupling_comp.png} +\begin{subfigure}{0.33\textwidth} +\begin{center} +\includegraphics[scale=1,width=0.95\linewidth]{figs/rotating_nass_plant_coupling_comp_vc.png} +\end{center} +\subcaption{\label{fig:rotating_nass_plant_coupling_comp_vc}$k_n = 0.01\,N/\mu m$} +\end{subfigure} +\begin{subfigure}{0.33\textwidth} +\begin{center} +\includegraphics[scale=1,width=0.95\linewidth]{figs/rotating_nass_plant_coupling_comp_md.png} +\end{center} +\subcaption{\label{fig:rotating_nass_plant_coupling_comp_md}$k_n = 1\,N/\mu m$} +\end{subfigure} +\begin{subfigure}{0.33\textwidth} +\begin{center} +\includegraphics[scale=1,width=0.95\linewidth]{figs/rotating_nass_plant_coupling_comp_pz.png} +\end{center} +\subcaption{\label{fig:rotating_nass_plant_coupling_comp_pz}$k_n = 100\,N/\mu m$} +\end{subfigure} \caption{\label{fig:rotating_nass_plant_coupling_comp}Coupling ratio for the proposed active damping techniques evaluated for the three nano-hexapod stiffnesses} \end{figure} + \section{Effect of disturbances} The effect of three disturbances are considered: @@ -962,7 +981,7 @@ Conclusions are similar than with the uniaxial (non-rotating) model: \item Regarding the effect of floor motion and forces applied on the payload: \begin{itemize} \item The stiffer, the better (magnitudes are lower for the right curves, Figures \ref{fig:rotating_nass_effect_floor_motion} and \ref{fig:rotating_nass_effect_direct_forces}) -\item Integral Force Feedback degrades the performances at low frequency compared to relative damping control +\item Integral Force Feedback degrades the performance at low frequency compared to relative damping control \end{itemize} \item Regarding the effect of micro-station vibrations: \begin{itemize} @@ -972,30 +991,79 @@ Conclusions are similar than with the uniaxial (non-rotating) model: \end{important} \begin{figure}[htbp] -\centering -\includegraphics[scale=1]{figs/rotating_nass_effect_floor_motion.png} +\begin{subfigure}{0.33\textwidth} +\begin{center} +\includegraphics[scale=1,width=0.95\linewidth]{figs/rotating_nass_effect_floor_motion_vc.png} +\end{center} +\subcaption{\label{fig:rotating_nass_effect_floor_motion_vc}$k_n = 0.01\,N/\mu m$} +\end{subfigure} +\begin{subfigure}{0.33\textwidth} +\begin{center} +\includegraphics[scale=1,width=0.95\linewidth]{figs/rotating_nass_effect_floor_motion_md.png} +\end{center} +\subcaption{\label{fig:rotating_nass_effect_floor_motion_md}$k_n = 1\,N/\mu m$} +\end{subfigure} +\begin{subfigure}{0.33\textwidth} +\begin{center} +\includegraphics[scale=1,width=0.95\linewidth]{figs/rotating_nass_effect_floor_motion_pz.png} +\end{center} +\subcaption{\label{fig:rotating_nass_effect_floor_motion_pz}$k_n = 100\,N/\mu m$} +\end{subfigure} \caption{\label{fig:rotating_nass_effect_floor_motion}Effect of Floor motion on the position error - Comparison of active damping techniques for the three nano-hexapod stiffnesses} \end{figure} \begin{figure}[htbp] -\centering -\includegraphics[scale=1]{figs/rotating_nass_effect_stage_vibration.png} +\begin{subfigure}{0.33\textwidth} +\begin{center} +\includegraphics[scale=1,width=0.95\linewidth]{figs/rotating_nass_effect_stage_vibration_vc.png} +\end{center} +\subcaption{\label{fig:rotating_nass_effect_stage_vibration_vc}$k_n = 0.01\,N/\mu m$} +\end{subfigure} +\begin{subfigure}{0.33\textwidth} +\begin{center} +\includegraphics[scale=1,width=0.95\linewidth]{figs/rotating_nass_effect_stage_vibration_md.png} +\end{center} +\subcaption{\label{fig:rotating_nass_effect_stage_vibration_md}$k_n = 1\,N/\mu m$} +\end{subfigure} +\begin{subfigure}{0.33\textwidth} +\begin{center} +\includegraphics[scale=1,width=0.95\linewidth]{figs/rotating_nass_effect_stage_vibration_pz.png} +\end{center} +\subcaption{\label{fig:rotating_nass_effect_stage_vibration_pz}$k_n = 100\,N/\mu m$} +\end{subfigure} \caption{\label{fig:rotating_nass_effect_stage_vibration}Effect of micro-station vibrations on the position error - Comparison of active damping techniques for the three nano-hexapod stiffnesses} \end{figure} + \begin{figure}[htbp] -\centering -\includegraphics[scale=1]{figs/rotating_nass_effect_direct_forces.png} +\begin{subfigure}{0.33\textwidth} +\begin{center} +\includegraphics[scale=1,width=0.95\linewidth]{figs/rotating_nass_effect_direct_forces_vc.png} +\end{center} +\subcaption{\label{fig:rotating_nass_effect_direct_forces_vc}$k_n = 0.01\,N/\mu m$} +\end{subfigure} +\begin{subfigure}{0.33\textwidth} +\begin{center} +\includegraphics[scale=1,width=0.95\linewidth]{figs/rotating_nass_effect_direct_forces_md.png} +\end{center} +\subcaption{\label{fig:rotating_nass_effect_direct_forces_md}$k_n = 1\,N/\mu m$} +\end{subfigure} +\begin{subfigure}{0.33\textwidth} +\begin{center} +\includegraphics[scale=1,width=0.95\linewidth]{figs/rotating_nass_effect_direct_forces_pz.png} +\end{center} +\subcaption{\label{fig:rotating_nass_effect_direct_forces_pz}$k_n = 100\,N/\mu m$} +\end{subfigure} \caption{\label{fig:rotating_nass_effect_direct_forces}Effect of sample forces on the position error - Comparison of active damping techniques for the three nano-hexapod stiffnesses} \end{figure} -\chapter{Conclusion} +\chapter*{Conclusion} In this study, the gyroscopic effects induced by the spindle's rotation have been studied using a spindle model (Section \ref{sec:rotating_system_description}). Decentralized IFF with pure integrators was shown to be unstable when applied to rotating platforms (Section \ref{sec:rotating_iff_pure_int}). Two modifications of the classical IFF control have been proposed to overcome this issue. -The first modification concerns the controller and consists of adding an high pass filter to the pure integrators. -This is equivalent as to moving the controller pole to the left along the real axis. +The first modification concerns the controller and consists of adding a high pass filter to the pure integrators. +This is equivalent to moving the controller pole to the left along the real axis. This allows the closed loop system to be stable up to some value of the controller gain (Section \ref{sec:rotating_iff_pseudo_int}). The second proposed modification concerns the mechanical system. @@ -1008,5 +1076,8 @@ While having very different implementations, both proposed modifications were fo Then, this study has been applied to a rotating system that corresponds to the nano-hexapod parameters (Section \ref{sec:rotating_nano_hexapod}). To be closer to the real system dynamics, the limited compliance of the micro-station has been taken into account. Results show that the two proposed IFF modifications can be applied for the NASS even in the presence of spindle rotation. + \printbibliography[heading=bibintoc,title={Bibliography}] + +\printglossaries \end{document} diff --git a/preamble.tex b/preamble.tex index cf43ea7..00c5fc8 100644 --- a/preamble.tex +++ b/preamble.tex @@ -1,137 +1,23 @@ -\usepackage{float} +\usepackage[ % + acronym, % Separate acronyms and glossary + toc, % appear in ToC + automake, % auto-use the makeglossaries command (requires shell-escape) + nonumberlist, % don't back reference pages + nogroupskip, % don't group by letter + nopostdot % don't add a dot at the end of each element +]{glossaries} -\usepackage{caption,tabularx,booktabs} -\usepackage{bm} +\usepackage[stylemods=longextra]{glossaries-extra} -\usepackage{xpatch} % Recommanded for biblatex -\usepackage[ % use biblatex for bibliography - backend=biber, % use biber backend (bibtex replacement) or bibtex - style=ieee, % bib style - citestyle=numeric-comp, % - hyperref=true, % activate hyperref support - backref=true, % activate backrefs - isbn=false, % don't show isbn tags - url=false, % don't show url tags - doi=false, % don't show doi tags - urldate=long, % display type for dates - maxnames=3, % - minnames=1, % - maxbibnames=5, % - minbibnames=3, % - maxcitenames=2, % - mincitenames=1 % - ]{biblatex} +\setabbreviationstyle[acronym]{long-short} +\setglossarystyle{long-name-desc} -\setlength\bibitemsep{1.1\itemsep} +\makeindex +\makeglossaries -\usepackage{caption} -\usepackage{subcaption} +\usepackage{tikz} +\usetikzlibrary{shapes.misc,arrows,arrows.meta} -\captionsetup[figure]{labelfont=bf} -\captionsetup[subfigure]{labelfont=bf} -\captionsetup[listing]{labelfont=bf} -\captionsetup[table]{labelfont=bf} - -\usepackage{xcolor} - -\definecolor{my-blue}{HTML}{6b7adb} -\definecolor{my-pale-blue}{HTML}{e6e9f9} -\definecolor{my-red}{HTML}{db6b6b} -\definecolor{my-pale-red}{HTML}{f9e6e6} -\definecolor{my-green}{HTML}{6bdbb6} -\definecolor{my-pale-green}{HTML}{e6f9f3} -\definecolor{my-yellow}{HTML}{dbd26b} -\definecolor{my-pale-yellow}{HTML}{f9f7e6} -\definecolor{my-orange}{HTML}{dba76b} -\definecolor{my-pale-orange}{HTML}{f9f0e6} -\definecolor{my-grey}{HTML}{a3a3a3} -\definecolor{my-pale-grey}{HTML}{f0f0f0} -\definecolor{my-turq}{HTML}{6bc7db} -\definecolor{my-pale-turq}{HTML}{e6f6f9} - -\usepackage{inconsolata} - -\usepackage[newfloat=true, chapter]{minted} -\usemintedstyle{autumn} - -\setminted{frame=lines,breaklines=true,tabsize=4,fontsize=\scriptsize,autogobble=true,labelposition=topline,bgcolor=my-pale-grey} -\setminted[matlab]{label=Matlab} -\setminted[latex]{label=LaTeX} -\setminted[bash]{label=Bash} -\setminted[python]{label=Python} -\setminted[text]{label=Results} -\setminted[md]{label=Org Mode} - -\setmintedinline{fontsize=\normalsize,bgcolor=my-pale-grey} - -\usepackage[most]{tcolorbox} - -\tcbuselibrary{minted} - -\newtcolorbox{seealso}{ enhanced,breakable,colback=my-pale-grey,colframe=my-grey,fonttitle=\bfseries,title=See Also} -\newtcolorbox{hint}{ enhanced,breakable,colback=my-pale-grey,colframe=my-grey,fonttitle=\bfseries,title=Hint} -\newtcolorbox{definition}{enhanced,breakable,colback=my-pale-red, colframe=my-red, fonttitle=\bfseries,title=Definition} -\newtcolorbox{important}{ enhanced,breakable,colback=my-pale-red, colframe=my-red, fonttitle=\bfseries,title=Important} -\newtcolorbox{exampl}[1][]{ enhanced,breakable,colback=my-pale-green,colframe=my-green,fonttitle=\bfseries,title=Example,#1} -\newtcolorbox{exercice}{ enhanced,breakable,colback=my-pale-yellow,colframe=my-yellow,fonttitle=\bfseries,title=Exercice} -\newtcolorbox{question}{ enhanced,breakable,colback=my-pale-yellow,colframe=my-yellow,fonttitle=\bfseries,title=Question} -\newtcolorbox{answer}{ enhanced,breakable,colback=my-pale-turq,colframe=my-turq,fonttitle=\bfseries,title=Answer} -\newtcolorbox{summary}{ enhanced,breakable,colback=my-pale-blue,colframe=my-blue,fonttitle=\bfseries,title=Summary} -\newtcolorbox{note}{ enhanced,breakable,colback=my-pale-blue,colframe=my-blue,fonttitle=\bfseries,title=Note} -\newtcolorbox{caution}{ enhanced,breakable,colback=my-pale-orange,colframe=my-orange,fonttitle=\bfseries,title=Caution} -\newtcolorbox{warning}{ enhanced,breakable,colback=my-pale-orange,colframe=my-orange,fonttitle=\bfseries,title=Warning} - -\newtcbox{\mywboxtext}{on line,colback=my-pale-blue,colframe=my-blue,size=fbox} -\renewcommand{\boxed}[1]{\mywboxtext{$#1$}} - -\newtcolorbox{my-quote}[1]{% - colback=my-pale-grey, - grow to right by=-10mm, - grow to left by=-10mm, - boxrule=0pt, - boxsep=0pt, - breakable, - enhanced jigsaw, - borderline west={4pt}{0pt}{my-grey}} - -\renewenvironment{quote}{\begin{my-quote}}{\end{my-quote}} - -\newtcolorbox{my-verse}[1]{% - colback=my-pale-grey, - grow to right by=-10mm, - grow to left by=-10mm, - boxrule=0pt, - boxsep=0pt, - breakable, - enhanced jigsaw, - borderline west={4pt}{0pt}{my-grey}} - -\renewenvironment{verse}{\begin{my-verse}}{\end{my-verse}} - -\usepackage{environ}% http://ctan.org/pkg/environ -\NewEnviron{aside}{% - \marginpar{\BODY} -} - -\renewenvironment{verbatim}{\VerbatimEnvironment\begin{minted}[]{text}}{\end{minted}} - -\usepackage{soul} -\sethlcolor{my-pale-grey} - -\let\OldTexttt\texttt -\renewcommand{\texttt}[1]{{\ttfamily\hl{\mbox{\,#1\,}}}} - -\makeatletter -\preto\Gin@extensions{png,} -\DeclareGraphicsRule{.png}{pdf}{.pdf}{\noexpand\Gin@base.pdf} -\preto\Gin@extensions{gif,} -\DeclareGraphicsRule{.gif}{png}{.png}{\noexpand\Gin@base.png} -\makeatother - -\usepackage{hyperref} -\hypersetup{ - colorlinks = true, - allcolors = my-blue -} - -\usepackage{hypcap} +\usepackage{siunitx} +\usepackage{mathtools} +\usepackage{amssymb} diff --git a/preamble_extra.tex b/preamble_extra.tex new file mode 100644 index 0000000..98cfc04 --- /dev/null +++ b/preamble_extra.tex @@ -0,0 +1,134 @@ +\usepackage{float} +\usepackage{enumitem} + +\usepackage{caption,tabularx,booktabs} +\usepackage{bm} + +\usepackage{xpatch} % Recommanded for biblatex +\usepackage[ % use biblatex for bibliography + backend=biber, % use biber backend (bibtex replacement) or bibtex + style=ieee, % bib style + hyperref=true, % activate hyperref support + backref=true, % activate backrefs + isbn=false, % don't show isbn tags + url=false, % don't show url tags + doi=false, % don't show doi tags + urldate=long, % display type for dates + maxnames=3, % + minnames=1, % + maxbibnames=5, % + minbibnames=3, % + maxcitenames=2, % + mincitenames=1 % + ]{biblatex} + +\setlength\bibitemsep{1.1\itemsep} + +\usepackage{caption} +\usepackage{subcaption} + +\captionsetup[figure]{labelfont=bf} +\captionsetup[subfigure]{labelfont=bf} +\captionsetup[listing]{labelfont=bf} +\captionsetup[table]{labelfont=bf} + +\usepackage{xcolor} + +\definecolor{my-blue}{HTML}{6b7adb} +\definecolor{my-pale-blue}{HTML}{e6e9f9} +\definecolor{my-red}{HTML}{db6b6b} +\definecolor{my-pale-red}{HTML}{f9e6e6} +\definecolor{my-green}{HTML}{6bdbb6} +\definecolor{my-pale-green}{HTML}{e6f9f3} +\definecolor{my-yellow}{HTML}{dbd26b} +\definecolor{my-pale-yellow}{HTML}{f9f7e6} +\definecolor{my-orange}{HTML}{dba76b} +\definecolor{my-pale-orange}{HTML}{f9f0e6} +\definecolor{my-grey}{HTML}{a3a3a3} +\definecolor{my-pale-grey}{HTML}{f0f0f0} +\definecolor{my-turq}{HTML}{6bc7db} +\definecolor{my-pale-turq}{HTML}{e6f6f9} + +\usepackage{inconsolata} + +\usepackage[newfloat=true, chapter]{minted} +\usemintedstyle{autumn} + +\setminted{frame=lines,breaklines=true,tabsize=4,fontsize=\scriptsize,autogobble=true,labelposition=topline,bgcolor=my-pale-grey} +\setminted[matlab]{label=Matlab} +\setminted[latex]{label=LaTeX} +\setminted[bash]{label=Bash} +\setminted[python]{label=Python} +\setminted[text]{label=Results} +\setminted[md]{label=Org Mode} + +\setmintedinline{fontsize=\normalsize,bgcolor=my-pale-grey} + +\usepackage[most]{tcolorbox} + +\tcbuselibrary{minted} + +\newtcolorbox{seealso}{ enhanced,breakable,colback=my-pale-grey,colframe=my-grey,fonttitle=\bfseries,title=See Also} +\newtcolorbox{hint}{ enhanced,breakable,colback=my-pale-grey,colframe=my-grey,fonttitle=\bfseries,title=Hint} +\newtcolorbox{definition}{enhanced,breakable,colback=my-pale-red, colframe=my-red, fonttitle=\bfseries,title=Definition} +\newtcolorbox{important}{ enhanced,breakable,colback=my-pale-red, colframe=my-red, fonttitle=\bfseries,title=Important} +\newtcolorbox{exampl}[1][]{ enhanced,breakable,colback=my-pale-green,colframe=my-green,fonttitle=\bfseries,title=Example,#1} +\newtcolorbox{exercice}{ enhanced,breakable,colback=my-pale-yellow,colframe=my-yellow,fonttitle=\bfseries,title=Exercice} +\newtcolorbox{question}{ enhanced,breakable,colback=my-pale-yellow,colframe=my-yellow,fonttitle=\bfseries,title=Question} +\newtcolorbox{answer}{ enhanced,breakable,colback=my-pale-turq,colframe=my-turq,fonttitle=\bfseries,title=Answer} +\newtcolorbox{summary}{ enhanced,breakable,colback=my-pale-blue,colframe=my-blue,fonttitle=\bfseries,title=Summary} +\newtcolorbox{note}{ enhanced,breakable,colback=my-pale-blue,colframe=my-blue,fonttitle=\bfseries,title=Note} +\newtcolorbox{caution}{ enhanced,breakable,colback=my-pale-orange,colframe=my-orange,fonttitle=\bfseries,title=Caution} +\newtcolorbox{warning}{ enhanced,breakable,colback=my-pale-orange,colframe=my-orange,fonttitle=\bfseries,title=Warning} + +\newtcolorbox{my-quote}[1]{% + colback=my-pale-grey, + grow to right by=-10mm, + grow to left by=-10mm, + boxrule=0pt, + boxsep=0pt, + breakable, + enhanced jigsaw, + borderline west={4pt}{0pt}{my-grey}} + +\renewenvironment{quote}{\begin{my-quote}}{\end{my-quote}} + +\newtcolorbox{my-verse}[1]{% + colback=my-pale-grey, + grow to right by=-10mm, + grow to left by=-10mm, + boxrule=0pt, + boxsep=0pt, + breakable, + enhanced jigsaw, + borderline west={4pt}{0pt}{my-grey}} + +\renewenvironment{verse}{\begin{my-verse}}{\end{my-verse}} + +\usepackage{environ}% http://ctan.org/pkg/environ +\NewEnviron{aside}{% + \marginpar{\BODY} +} + +\renewenvironment{verbatim}{\VerbatimEnvironment\begin{minted}[]{text}}{\end{minted}} + +\usepackage{soul} +\sethlcolor{my-pale-grey} + +\let\OldTexttt\texttt +\renewcommand{\texttt}[1]{{\ttfamily\hl{\mbox{\,#1\,}}}} + +\makeatletter +\preto\Gin@extensions{png,} +\DeclareGraphicsRule{.png}{pdf}{.pdf}{\noexpand\Gin@base.pdf} +\preto\Gin@extensions{gif,} +\DeclareGraphicsRule{.gif}{png}{.png}{\noexpand\Gin@base.png} +\makeatother + +\usepackage{hyperref} +\hypersetup{ + colorlinks = true, + allcolors = my-blue +} + +\usepackage{hypcap}