From 8f3e4c761cd28c9f661e37fba74394e2b387b89b Mon Sep 17 00:00:00 2001 From: Marcus Greiff Date: Wed, 24 Oct 2018 22:42:04 +0200 Subject: [PATCH 01/66] Initial commit of the H-infinity synthesis toolbox --- .DS_Store | Bin 0 -> 6148 bytes dev/.DS_Store | Bin 0 -> 6148 bytes dev/example_DC.pdf | Bin 0 -> 753752 bytes dev/example_MIT.pdf | Bin 0 -> 753035 bytes dev/gainPlotQuadTank.pdf | Bin 0 -> 231313 bytes dev/hinf_example_DC.jl | 56 +++ dev/hinf_example_MIMO.jl | 104 +++++ dev/hinf_example_MIT.jl | 50 +++ dev/hinf_example_tank.jl | 118 ++++++ dev/hinf_utilities.jl | 71 ++++ dev/sigmaPlotQuadTank.pdf | Bin 0 -> 1335028 bytes dev/stepPlotQuadTank.pdf | Bin 0 -> 460839 bytes dev/synthesis.jl | 216 ++++++++++ dev/test_hinf_examples.jl | 92 +++++ dev/test_hinf_private.jl | 65 +++ dev/test_hinf_public.jl | 65 +++ docs/make.jl | 4 +- docs/src/makeplots.jl | 8 +- src/ControlSystems.jl | 13 +- src/hinfinity_design.jl | 683 ++++++++++++++++++++++++++++++++ src/matrix_comps.jl | 4 +- src/plotting.jl | 107 ++--- src/types/ExtendedStateSpace.jl | 190 +++++++++ src/types/ss.jl | 4 + 24 files changed, 1787 insertions(+), 63 deletions(-) create mode 100644 .DS_Store create mode 100644 dev/.DS_Store create mode 100644 dev/example_DC.pdf create mode 100644 dev/example_MIT.pdf create mode 100644 dev/gainPlotQuadTank.pdf create mode 100644 dev/hinf_example_DC.jl create mode 100644 dev/hinf_example_MIMO.jl create mode 100644 dev/hinf_example_MIT.jl create mode 100644 dev/hinf_example_tank.jl create mode 100644 dev/hinf_utilities.jl create mode 100644 dev/sigmaPlotQuadTank.pdf create mode 100644 dev/stepPlotQuadTank.pdf create mode 100644 dev/synthesis.jl create mode 100644 dev/test_hinf_examples.jl create mode 100644 dev/test_hinf_private.jl create mode 100644 dev/test_hinf_public.jl create mode 100644 src/hinfinity_design.jl create mode 100644 src/types/ExtendedStateSpace.jl diff --git a/.DS_Store b/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..5008ddfcf53c02e82d7eee2e57c38e5672ef89f6 GIT binary patch literal 6148 zcmeH~Jr2S!425mzP>H1@V-^m;4Wg<&0T*E43hX&L&p$$qDprKhvt+--jT7}7np#A3 zem<@ulZcFPQ@L2!n>{z**++&mCkOWA81W14cNZlEfg7;MkzE(HCqgga^y>{tEnwC%0;vJ&^%eQ zLs35+`xjp>T0(WsA0G*HJL%2>&a z_6pB{XW*|fAn)!t-`NfhaE|2ryTH2|jw+4jVYSh$a-3`ucYM`Dw#QzNcfdr(b{!S$ zBG=k%)3U?%?5s;TX50uD*yPU9Lh+KQ=4B)a6VmtZBmUh+8+R+F5Rw2t?lE^)h zOc0yEVdyZn$R`wIO^MdjxL*uo&8ZLExX@v2(VD|(WcqQD<$w?|8l4#Mh9Vy;UOWSy zfh+^VRy8T-|LWlX|E!_ccm_NJ|AqlmDDRY)S&lnfGlj`n8?f!OiO9IvqMERC$FW|> eQ9Q?{!e@b85JQKtMQSMiLqKWpooC=z8F&M^_34)Y literal 0 HcmV?d00001 diff --git a/dev/example_DC.pdf b/dev/example_DC.pdf new file mode 100644 index 0000000000000000000000000000000000000000..28fd0a6e9f60e693cb84fbd6743aeb7c958d9043 GIT binary patch literal 753752 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%0ApOfUw?812mB^~J zk+8w*`&I}Lw+q&vcJlY9ItVl9Rty2p#Ps0r zh_EE9ceo)=*9ewhnA4^dqBaW^A>n~So)`cKh=EJ+T(U!@H7kFsH@LtjYT%KZk7t3G zZ01s3Q;JsQCwK$;&*hzU?ekjq?gy>SAM!%nB!&Rn&z;!>>msmN9Xhzk0dX&EAy&Jh z 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%0Du1Hw{)Q7aAgke};QCrzR>1s%!BrP!! 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 `AFQf-Uj%!2JM`_Jh+BKm>WOmi zv|K(BDE}JM(y2I`T)mAi<>*Ft5zV1vQj7(R+#xdf!@j=s=1DH|3qAB4V-T1P@5%Yi zGnZe-0peVDF&^4K;eJcdIC?iV;CoJEcS6wm-WX*Mq0()9okgD3)$PV5(J?6-TfQH4 ze43+K?Z>J{OGfw4s|;FW%+un0ss z5!63h>Tp+njqaat_WFW0E`$7wTix4iWtcp?sBWuojIvJnGKPWDXq-|<>f)nOV+&i~ zq_kLa>9X=9x`?AQ8*sTVy8nJe+OIEY*{Ier$aaUI)qyA}+3RSm7%WpV40i^!Uj^pyo|PzL!0W5>5c{*AG;Gt=1;-~2htMK?yWiVK6fA46eKv<1+*Ap(;wA|o(zP*N_%{SkJ`Bk59pK#au! zzR3Ft#)B@0r9lHfuB^EE$j47ii*~E@x~OSL!Oh0 z7Cp02GwG}7Z<&ytp)p}lds@DpV4Vu3)QxTL@xR4*MUD#BQ* z){9(FmVL~|08*dl62bu6xf&Balc8F0stveA!F164jmZ&?4RATk#-ZZ!={KC10Y*Bi zI(v(dXNR%BWql_G8Fn(*a$}?|?Ds~wwF%9V1@sCqcfS-FBT&sYE-5gH9&Lh+j>5&& zWxOZw4(eM!6g_$QA;VgB#2NLWQS8 zM9&?NO|$VTpWv(lbq-5lA#8v>7@)!W$1#?`;QujldLWy2-%FZo0_2q66@A-icXRxi z0Thl54UiFDjSVOZ*<{7U&qW`X6uR5T5{)X7K{i$|)g;mZ@evWDl3>GH`lqZSz>cu? z`Y;ng<93AXqgkbWmsOp<(vU`bf>iT_AP{24&=%lwYJ3clXxRwFObXJ~*#v{L0il)~ z^hj-OazCh-iDZDKX|qVt069WQ0AE%SrXc$1gKL(CPX-K1N;V)WWtMXXHAA^DHrt{I z6EjlJ5r(c<^EV=swfMBB!-#yvY{8)MqXBB(cy!7FOH>!te}X}V8rs=B3@qiLM2yBu zr975UeYXG|BGR?=p#zh^kf>@2MPv3NI6%7wo8QWU%tb^5iok&ngAqeqbn%A)reqsx zfb#-=5VP*H4TF-B4G1?wask!OCdCGX3EyK3UFZ}*va0cvClLDN1a&d;ib4FK@$N27 zJ*N^y9*h{00(FT#Af>p6lZ616tFbZLKvKp=9Ym8SyJf!wL4rhzgN!`JK~5s#-~dBn zcW`TB%tZYoCSXGoOK7ZEf<_b!8Gu1BVjvO^3WJ?>A9>JHOB^IK@>0VB} z6L}CbiJEOX9kQzsV8USXE74$MmL%vC(2gPc$Kv)y>w0$G|EM~oYF4S?ZSVA zCptDxS{$oI};Hy0sGad?+i7h{lHrqqTQCevluNl|dGp$%d+yJ6*#L1@AAi~2xI zOxS)N0F!zJK8vD6Qn0qj9`cSpi`22fY5)+_d>V=#@L6@@MGAovzrO{PYBhxobPksG zF4|eyB2nu6sXT>CZSc`G?EngVW(@1WnZWb4nSXuuCk?1 zfN^zxr6t|BDql8OiwqapjICNpAzMLd4`+~D8w?5>%7CBg?5#j`m5L3* zw;C9Lzm|?6w`$QH$x=dczxbxora)>eP~cH}9DwTn17Gl05zn*%WH~-nyG~2dD!tMv z-T3f=m3B``&}>zcS*65}j0DkQM1BmkC!L_^=qyziG(*0oXnz|JRB?U8K|zzx6mIXD z{&9ue9o&A4Votr9w^++DIw&&aPWr}(t^ybAHB7yTy~aRpLyAe=Wj+ynYVxGCB3Wc} zsZ~Rh5_DE-M12N%B#}CyJ$EF_TIvGQ@`*C;z$;CLOO%wS*c))rtQK`5eB7i zkdPEr?L{rf&ndY;CUto}k}486Mrsj7`$#zsoB8Y@FDg2fv^F-D-3&?*@FKHgunGFm zr1*N(V}j*!NE^yh@KPO>8N8Fk?3m(ju__A%2C{)ZE&K=1xS(MxArW-TLJPHoTD6pl zEw8G*^chMSDPK|cDp6JuyD?J4D$WjB{JaH7OX;p;BeMe)aMFuSjnFj)Kc;$UQhcSd zUBf#|SEL{mRWBDq(J@V>0(D)^EO`X;;p+$FpvVY}3mWxLIvXXJmmc|{rRdxw+j4RHUoFq1BDa;)r)i(ZRCu-83*%fQMYU-Wof(71ovUqW*2Q8|_NPq~Y` zG!40Z?1gQw2i`SuPK%KXywtI-UIPiv zo36-fX^9LSqZ!|vNSx|1+6A&8Z&PfB8Z;(I#;w{~i=gtwm>M=Odx$H1iW1Jjv~7Gd z0l(3tG$5_=h6QZ+GBSkms_7_&Pr zVYW1tc4A|jO6bZiVFMzS{ESKV$j@G$c2A0QjXNPMw^y<}$YNJk#7AZyv6AUS+=70A zDA`(KDBYy7G}~W2D8UGf3mPT5BE?*^KnU8bh&X~-1cQzzG8D;v-u+OP!KWP>+%?MI z*i;^c)TxSY{xR5gI?O;BaE`c(RwEBh3R{IjVpB0NRwKmWtQ15uMCAYt$;Bsb1?pJA z6jJK#JrICHf{?;M!Dg?i?1*u|Hlr+!A_v>Jpiy(E=sEI99F>#K5g7O!#~{m}M)OzY z%@zghGqh0DK8oE{j4IUrvhQ~zej^*Yhw|6{e4$hiO$zIhb%k(vxUfY)%{$SH%55c zVkBhctqe8~ibkW6^2*(^Psb&N9poY;T}4N;bdyc>2dcbfJ^Rd(QgJO|zk&mKSab&u zYPUhSzLXSQLw?OyfpbOMV`YsCKE>;^4u92#gCF zb%vG=0`pKOT*DY(%b=;^lZj}pLmLGZiM$oGcR5*jd}C}36k*btg5-}UMCpQ(O*d*APEnkp9Rp0qrIjlOy2fbBK z;Tab$LLM44>dbi6Gun$S@%d7H^|z69RQaV`#a`p8 z>s1?rlERN>bYgaC_35adag`24c-ku|XY^$=)#HN3d!);cN1Fx2qKI1uwylN#`gr)w zcEzm>vJ^lZKoz|=7R(VzVNAGr-N&U&D0Xfv$Om0UU}(_LHtE#9zI4#5zpLLwZU}%D8blG-$j{8jaki zIC~e{efu=KmsR}O!f^m43yyyhgXTu(PT%H9s@a%qQsl)F_5_XLH?(9hI)B!|3uTb^ zsE$tr7a9$t*`tF-r}nkJOX152cA_!h*ThEs2cM`S>^SawCeQu0wP` zv=sDAzN>)3(crcN1~gb|twh9hbR%Lj5=r4}Dx0d_KfoPn_7&GK5{)EscG7u2RyhKr zgT^mEulv7ZplcY)k2?uR_=*QO9MN9z>HCQGhzEHzDDFQ95vFKCL4F^hosvxo+eUo@ zQ>B!z%3!d(mr&xDHRaP}vjkmMe1g`F4jR2X@+&iF%;gf%Hfb|n>uZWjOieZ^^2H{a ztvvg1^W?38=9##}USec?oB7{;sT;V@c~Ce48w8Dt@aoTQgcKKSy2cz8$OU%xK{_dD zl5|JKCqEzI_QlWsNGJ;U>hEJXIH+`QVW0M@$!&s0dAa%uq@?h9#GA2KvJRZ;2&9vO zT_A6vRIc=iM~NHBBOM|*DXN2fgM!-x4Mm9hyq)mk1gG669|mv7{e60xO$siecwvi& zblg1AZ*Qb+QnKhBFS-GOu+Q}E(5fS7bX>yoAg-V{^5VB++=fCONs-}2 zed1a!DaSY)fr_BrJ-+_x$9HcZUw%K0-hA=h-P33HPwuC|M<3lieE!!T9`7Ii^t&&< zd;Id<-NR>p`Qn|U{O0?Y-#p$u{PNYiAAkS&_LDc?|M2GZElnYzI^=E+n0a6d-(O^t8cyq$CJBp#Z(ivUV-e?}b^6-HocD1{;i`@SNuoC*7~>aeCD0!s>y-B=K`{jpLS z|I2;t&$`2+vIrb$EQ{ApxsNpNG%;mn?JteHx;PIrrZaFXjh)q)YiqK{%siTLpfR1@ zoGcB+EleF9H+SP2uEeS!5*n*`lCLxN1Q$tTh@3R7eKBH8J8%ucSY!I4PiVn>#ppEw zvC5o7XVkXQ#&pG>z=CN!M}JeMINQX>DdK`i!_(4#(WCIfAs5QVKqwO^<(^C|m5K2? zcf*T4)r2)Ds#54oTYt;~YoeQ-pw!}Np=>n4lt~nGcU0k=ju_BUO+>?rtkpTwRv!!d zib#`XNo~gJR7|KR%_~&s7)#ig6*uW$k%}hZg4SF&N^Rlxh%Gym$RKv0mv%}G=(zqa3e8-HD zP;tW~S8hC^_&hUq{L2$@tR9sK(=ty+4q}R&eL)-ID{iZ_7#lN2Vy4tfzVtY#X@*XG zd7zHhqcS0=hFALyqGrs#1T@80dbHGh@kUJ!*cvBID0+4FEb*l!(pMaChtzl=?S!bB z*_VKZ_{wB-K)_6j8e>MVGj`JDf|1bLNlik7TZ*c2_64(&T*>K6u1AeYO4ThoFX}|4 zR1PM$F0tyzaV>6T+cd_Fsdq3gIcbZpT350*_feBEC$7ZV7jkr72!sGD8FlI9xG`zD zx>e^#ov4t?qGTBaSnV*S!>##wA@cO;DGkv)rZ~YN$CrDr^ih{Z$ue~CE2YD&1#?9! z-V(@7CZ&vN0*(kz`XWnqa^C1JYSIR!R5$}YM?s}ac5o%FEwh?3CL>z4>>R9;6he8B zJcod*8YVTk#bC1HD^*s^LP=v<6y`yK9PMpDcoo#Jth+^>Mi3)!HQmZ0Tl1YX zrUo!4(?g-d&_P-&)@o*vkWgiEwT6}cpoJiwFO5Nq$mUQ`*qfM}6P=k#2eUEqD*~}r zlMuj?4wnLs0x;Dp)6~n68Jjh$PPJftA+RaL_WLN@Z&7l+J9LFD>dML)Z(X($sq@)Xb)w zzN9Wt()+FHJT*_6%;p%uL$PSVcM9FVL<}L&EhM9xpbH{W(FkXEA)x9BB)6~#Bn&f z;vFz$H9R0C>nUby-ER3rr0JR^grhkWjH@6acTyl$G)BSPsf+Praar=+nJCL@@Y@%e z*|L&BxMJe0#+f07R|HJt+Pq%{$#JiFXmtf61jMSuK8-b^HUR*{!k>)J6fNTxm`x1? zGXcnTu_(!69K(*$g=mi?WoH{eMXZv=rb!}&B?>$gb-gj@g(q9Sc`$-UpYYniZhxn$E}%9a{{9vt@XrLPSS-vHEN_p#MrYrn8iS56^@&FU?HYXR(2Y>4SxUf*P{{h#65z z4_UNeIQx|oj^B?_3?@dORS=qk!*J0%eaBZkE=icj3hYE(D+x$0n#Gb2HW?=vrlC(E zhKW`4D$yR(q?*Y9WrgGS>>@dHhddY=gn4J+xE}cg3Fuxka)J8-cyMpki9+!_cu_!^GLJSkD=2fCS zrb#t0KpElKeY2t{(FNh;|2>Yek+W^Af(irG-E&%k1!5ndUY=T zkf%;C0UX>oE>LlEGR8ofw65blTXOnZtQM5D#A!CMoMyvDX*D4mCJAAgn~J%%RIvw_ zgW@^hIpi7;^Ob$8^^7qj>xq*k;?thSyuy`zwUdk*nJ-qck|F1KEijlk0_2&r0$Z`! zkVDW3eQ9H$Kd6<6{K;&Rva+2gj)P~z25B`|4QW0JxlxekBscM#W_onOvaigXG36J_X4hTmP zA?IYm`W!WaN#vDqfE2);xB}$fq_mp24U?SvGZ-}SMcLwu@s$~DVhACJXskahvRV$w zJ5_7hg~YOff#V6#JCo9C)@E0$PQ!$PMylc~%Q}#KtAa#kOB)kD8dDMXVhf3o#mP^0;qD8f5)b#RbQWLeIVIgFGR#nm%huF{7q^<_Xm1tT`dR0Lsr~QytY9?3} zbDy%3m?kNfX-y$|@^(UBw5Z;Untm?zLt6XdIbczwdBoh|^-bg2;2|^NKnNepA#x2Z zqp1dRl2KuI(>&JN7>Oard7K=F(VQGiZat?4>p2MP`lQOrTf*mDaL}hwR(@rSl%sK0 z-pa7jV-+gr%c#jLm+9*YCRIMT1=X}Byje@iXRU~zz)n%sIEIkeIj zO=_5s-Jc|;#}oU^Aw&y7(kjwdshn)Vy6`0^b#gVhTu97mD}-xf7sgCO(Use9rSuFd zNh8KtHRN44)meSrG#P+S#!MsZO!viG)PRs&E3c-z9aFGk=4?(E#!SQBmi0#rMrb27Yu#s2x;Ei78*0o@@Qr*psnH{N zr%C6V4>abwv*>OT=gXVcJT8wLRja4w?(y|kKfZhW`11Q{^yZ82?%sQG|KxreeDu-X z!{>kf;qm_APrv)(yT>oz-93EvmoMHq%5T1Z`OV|q!!KXG`|dVJJ{OXr?55InV_06|ncyjmf$5&sy`}Y3%ix&X= z@0UOR&;8S9Q2B?uhu=QF{st@WJ^97cCr|D^{`hXTY^w3&?})$=fg=Lf7=eHP``>^2 z+u#24pZ{E=bB9ky1da$C5!f^WKmGI*-QCewH&uKnJ0fsI;E2GrL;#o4fBfSgpMU=O z&wlnZej9@BdM*APejE`vB5*`tcm!|}efsq2&wu`N?xGmT>Cse&=ipFqMBs?P6-D6d zufIkY#nlw87307E{qJxNotAs-(NwP}+lMPh1da%tCjv)PJx|;Ztw#io2wZ6dj;4C0 zi9OspB5*|DJP|mW>UrYcrWHRj9{>KWEreT0A8Fz!-&81iHPxF68kfrU1N2h7631)s zfBoxU+iO2G8Y6I|Nd=025dY^t|EcI#IqlU{Zz^c#ss#Ku8uU-#aD<)9hC^>Q0!Nzs z5aE=e(xu!7_c-~0R(v>q}mENP`(*lmIUG$g6 zEP^8DG$5@SVJ%Sm;VDYfe$3v|5U%lcV1^PBsWak!wwq+4Q7jCCihj`fK56titt^wKo77>{0LIbK^- z43&lbRHYYmVipBtL{q)`pcO^9g&Ez6I#@;dVc*H*%1#J0TqXf-zbb$eA`*nh*dS;r zMQ9WgSco6p7>5UFxu8Rx-Mp3{x68JqsZ=}t$L5HY<|Xbgj!BnL za7_FG--kK)?I)VAWitx9gCl7(rQ0atl0c?9-c(`y6$fpD)ZodN_fGXS6?Xb}OJuy- zetvVvwsq+wgodY^YQxSY*egvI`~Bcw$_wY1cln%ijpiYbWMP-)ynR*lN|VKMoUI&o3~)`Y+wvA& z+wkzctM1B;N|pf`F|I3bx#?QATQCcaK?`Eu0#Rw!buY=4J@Qba(yhK*%2MG=8U{+EaY{|8i;qT)ecAe^sjqF9g(i=u3q4^~z~xTq z{zDb%y1t;P79*DSgL6!}W#ucz+81542$qKOUr!>N8zlvA*(k?P0P3=})D1r>; zpcb@oWHxB3*B7*LIg;t<)o@e~#I(YG`cVe&RQZ=jhOM|=keipggGQvOA}LoR!bMg6 z7`3ZV$nqFhD`hVDJ72IkTY88YYMvbmP+-C zMmx@+G_@Ocxd`%Km0ZEU0YD?=-O+I)tNbT6zu}^bBMsCOG%1v=b$wCif)G@&#BA(?UM2ZU*t6g<3ZQR(x8DKms?zrlZ+v!3{{6QJ}J~Fq|)M-c?3xHE|BK&7-(b|eYW&N_OZK>Z0(4F zd~A`SNRN9xhgyP$f{C?yWu(2dDDTi-5mNXrcaXB7Xlki921F1ltc{7tn-!@r-g)Tx zLK#Dikxj+G-X!T%;!AJL;GNUicNLi~W+OPX1&}ovC~mXRUfLMB^>sJce+a6+49hB& zhj^E$UMom8X#Q^H>h%ZMp0eZ;L8EH4H(`RZw|C#RASK(?p^*i%%n5(}rRuvSg-&e~ z|7bQ^OJ*4Rx$nhJDC5!u2T{^=?x>h!sYNdmM5X1!Hb#~DKi4e=*yeSZXrzo&4N|B2 za;4Hi^S3HTI5xl?G8>J$YpUOcVm27*sOs$PLY^t;W?9$l3^MX$u;p$^yV!4-a(5G& zB@t*BVD5fXvIn6T=eRV%LV7F;wmu3V*PHQ10ZiUmeT$0XDQ`+-TeTLp6F8Ro?3K`q z#z_QC?Nc1qh$>nEHzJe}#F0Td$GNmn;pv#r;|XNbY;u*4b=HDXhcPe`X22v2&~^PY z8cSgC|0H-~EIWDM>zwQZ~^!nRd6RasZS9AWD9VJ3pc4GO78`%3#Rt2%x2A&o@|QXLht z0EyW{yMW87@tH-UWrGkiDM(jm77WhDg!*vMBelE9{h(eZk^z=Z&LX=V3`$crL@J5K z;|YaC39>ig(#WG8c>h9I>`<`4lBxK#9McxSTi^)>jh`T}>5PY|EU-j%QT-{y!WA6DaiIzV0y;ltKdJnKFXtaM(;puWpSWXolydTn1LY9|chTJKo zjZr=irh5@<3=X6X)d2}2gUG#<2eIO(-H|S7xXCy)i1E|GXFS?s#uJ^-(6q)h2v#Xy z_N%D^?4Bm%8Xl!vAMX_M-B_YzYWG@F0ih{n2O5K`MxyKw73ZB%%ayUIpiv^y<&=&9 z-Cq0+LiF?_AtUo4OBEaIHq5UEQXCGdRr{2**V&NOA|p>Kf_n|U5v$ofE6))^3!ZD# z3R+?!{ZdNhQqh=jVy8eBiu|R|(ozY60|Xl(4J9wwP@Q-)!zxI`-x|yi9KZ}ZF-vFvzV9RM3zDR7h}l+ap8et@x>jqzjcqz(WZ1S<&HTQ*Ak^r5P5> zmCNa=j65j{b`@gFYNy0WgM-_g*m~^_sjjqF$lw5{rO!(epvbMTo3 zy6;xLfv^@CF|rxE)wp4?;~0kq{+kvGi!lq?pec>jo0o7}Hmr2KdzylAki8Dtk;)*O zB$7yJJ=3X54whbVD|)yzn8tD|wdBZ0zGBLVpkdp}N-HWSSw#Tx`-~+QRD|?tDfk#B z8X7}&->uoZWl^`GgN&`kK;8W)uzshF`JScA;~46){4oZ?X$kMpGzHDBs8SL^PJ@6k zqI_zL@dW9#=~{}PU}b+O?dn0pZh<%`XxL@^++EZhRI91jYwEGIrH#nl+UtVHMJ4wO zHA87CZ3<+E`O^cn%>k$`MeqfG74eMeC7bC}>57R2>9C4RCCHE^0)dU`o~EF7RizfC zB!V;r0b@iyx$KodP;|(as`JgD>n?@2`eDR}y>7~&pb;#EZraS|f7by{-XL{*je0nP zv>dO4fRG_ReAwqOnRtMmug-$4u+;FXoJ*f ztZizK_JopNR#cih5^O(1*#J~jsqw+k-2!n?(5QqEK)ON6J6IyBbUowFP`B6ka0iaD z;A18Yy2g{b#NCowR+0Ov%fWYKmK0G`c^Y%Jh^|hq>h0F$LNzo^eppnM8XvJ~qgn2> zQX}t$qV`B9tUOgEX3<0`_S;{KxwzNjzxX(cbn zr1mE%g`c=vQkN*&N6K;7%m)g2(Q;!~mSZYUF6iXqtSD>Jh_uhop^W z+z70cY7Y)F#WJA!F&dTzBm?L(&3UYH1O^2S-3-Wd8N&u-b?JfXGZlS66@2v#itLoH zJ-d{sbU${tq@YzCC^D723rI`pu9S8L$5NL)zdjUNP5TvkXqtSRWe-OjjD3r|)eqDa9m>9&pvaS&&*&iMLF5RG3mP?5Ix+1fp_;0(T-hBANFx<+%VsA`*`kea zFr+c*vAUMSW~$rjK0{v1Pvn;ZQW437@x0kdS4ICPaEd^C!ylR^KMqI`2ie$ac%u~^ z&Gg0qx{4x9=Cwx^j>{57A^D*=D1HRS1&uEc#;POR)NVy7`Zgyhd`45vw|5fRJd&-T+E1mjPo!WrcTyCGGy*GP~mvW=m6PCw4qsSTEWL zfzxO81%_~7Gb6VQr0?C+Bn{)<2=|N1TON6_`z;!mED6L``i1i==o*NUt)+ydrx;6{ z)zUGIMPOXeD9d&E<+=q(%yLP`_GA$Z?3V`#5*y1V-~F(b@uy81+%+-V6kQ&X)bUCm z6BJ-@DxV0TrCJ3AHr8H(suRSaX=1(VKrz-QiOZWL;)V{1asnVSj!)bl)Jqk51W-Q{ zKoB@22q_E{Z1zISzE}oSMfgOaTKEqhL||Ods9n@`A-Qc)Iq6J+fe&{KvixZ@e^uUr z>&^%tlPPK+HFg-azlydzo0J{UamkgF<&QCt@4fOhG)?S+tV~3pC|}Y-j$UklN~Yr# zpD`Yv-uFg<)Ub-~mCqr)vcb@xQ97z4#ygj*D+ndeact6-YhDnah+JCT&ue+Ngr^A` zEKBmX2Ac;(gC7c@f^Jh5+k75~1InjYQ^uu-}qQUkx zmC)otj1*UEp=(>;yY#p;aU|t|QgI@v=&6=SQ&hEo8meX<6zskQq*9K+F-S*XT+paj zv~L;I370Vj*fr?1_+%pbZS}rR2S={Tt3rG0lgNCxY>yRS=`6#JtJv?-s>E1^0*b1m zK^4-s4@ldp4NLg0T4G(waGG%S`n@snl+AYxUkZJ=^v;}clb6`eI!_trrUv7JhF*u% z_iA_8EJ!Ob$zTkqyZYDHap~h&p|(3};XdGBPAatUt{>4-$R2qaMvANVGF3>0k7Xh8t8;%Ek04tpk!+R1&{Kh&>{F3U^*z*TuV?iNJT6@mrEZPG}HzX zfxo`@kn@I`pVP4g`dWhBRNb0Zxo=ESwGyxwcI~6v4cFdY3 zXdCkkjpW9@Y^H8p(0JcnQ`N~cXlU2ktN`j1@zolQrTToK8(Q{aR$<}LG?CfVQLBBg zaOx}~>?|6^Sq!*DrQ?Fe2l^$3C1ErFE;izdmC(DZCE2ymUMg&(^62$y$Twh6nv~=4 z!dHDY6kHqV?7$}+zZ$=WIx;k9)UNTGXs8R@gYymi>TfCO*z!9)?6}g~CVDBPhStWQ zH1U%ib(?E?wdJQ9*9LNPXr_F<7fl%#G;Y`9t|DiQJogjq+%uYSUe(kXY10*DnFJBT z(pFsR?}#)pCLF)+QG%LJBJ^Q6D znzrODVSW-WV+cLFf|gTL3wNHZ;rhsCd-m&>**iA8884kd7PN zQIC!qj8Bkw1T7erzC`+G569C}->7y+JJO^=$^kh#s)|fvdIT*IoW4tVc*JG(cHSrV zjoxNxN19})QL(tdOUg0MMxY{ScaN{X`tjY{$Cuwvqc>lCclZCjef;|F$^FykcTf25 z{{0s(p1rvL`kra;y|{O)_ph1u-h0n{+6Nzcw5Ly>d$ecoKk;bqfB2rFJ$v@#x#oNJ z{OPl&itqhr&tAO0roH##y$@d~z3+YS{x9BFemwo)$p_Dr?6Y5d`1FaAeg2DIy!eH( z@BQb`K79JYS}%h1)c520^CwF0djNdz7i-z~UVQNE1Eu%rvlq{wE52tRy#MTpqCI~f zAyu(@|H%hWKM=mXd;9X$pC8}eee}`Y!)LGl|Hmok4}W;`=G{F4djE&Jhu^&Z`prF@ j#Q5Wn?|yvu^6fiU9Ur`S_TDd^-uC#wV*&i20>&-hGUza zYE=-BNg@%InUHc-W|;y>H9#OohL8mQZ^!nw_ubz2-v8G6*Y8>$_WtH+?{oG(`(%Ul z&Rv^zw6@IO(9dE2W4?~6wyK|t*L)&zKEXWD{n#nLK-Gx#_=6N|^b7Vq zrKdbL8>#Ku=j*pkgB~t(&G3RMjeB{aPD*W^*H6Jsm9WbXFtUc8sv)vZ71R(c!cJM*oI*)JNwT!rqA#N{->#~yrEP4at!unRmEd~p zFFnMC=>AElBO}m3;t#FLY zT9Lu^ATWQl^;LDgBn;>cRCRv$Ymbkis*WtgNCQ%`-`(xRu^oP4s`f~vfws1)k+!xY zN{jC)2uP4B3jZNQ`g`5{O*(XS^bHLD$cU;vVV5^V7Xw|B|(lVB<-&M9t^J}rE*y81!xy@0Ff)1w`9$pDik=F?}gA2mBo_s&Q|roWq+ zAWipn&}TwwGL^>Fss)pY)iZ3v&l5ABI=Us9VWdKufJZ1y@3ucPy=`^%#2L&sP=zBl zj%bPZa}a#;n|Vv9CeSA&V^j4rZ|q}2CmGSandwaW%n*?+;DkAyXUtS(c6FCF3d8H- zuhBo>oiHv}5mwcbrkVoNyV-o{L18@Y8F@gwf%L<4Q~WTydWq72xXpcb#dJ%HRS|!Z zmLaeLzQn?CQj}!NxQ)N;XZxWY9 z5;hL=f-`20ka?3sOEy+x-04>S^&pzx7@n4Kx=jmM)DZbEOWuF;vA=T-S_F72^w>B)6lIqapDQu3u@By z?^8&^P3#N0Vik$z-AV_MCE1-!(NpTq?Vi{qJ-W10B`k>+E4Vvyc(_}%DR_Szz5no0 zQCHBLI$F|9_=<^jjjd*llkb^SzQ+R9QH`g|D>Sxj%j-HHs^n`q&9}`qPy0R% zR-T?$RI>iC=3Du(ziU%r1FZ5okPdfa3-OFfMCgIMC1C{(Ur39Q*}XqL=GQBvMGc8f7hZCSS3elAF-{O_s1(IM)xO|T4|UOJFC%%jAXGncn<0EkA9+Td`1 zLY>F@O99NJTtN$NVy~!blSN5p9XpAOn=mh}(vJ#At=p_cjp?u+UZPX=L?gcBAKJeA zDKrwP37%uI9s`QRebx?GYS zPmGmoE;=7vMG|y;v&N1m!L*itTd|d&8CqyPubDE#NUhxQv{AzQuzAJ#;9-*BSkvOi z1v3;Yxl28FIENQSUvg$$!b&eNNp?&7G?OiMK0W^Ch_Bog=lxd-Q0t zKdL}4I?9<9Rd7l!+IfF8cEry?#hY^Q0k7iq4Fz^((E$28_L&&gD$F8h;PCe3cO6*I zvHIwvM7(klBdmGy1_Bb3r+@!jCHwoXmooBnz#?77@$9vXBjmL5o6U-x`Y)X`%0zF< zs6&lC`n#m~!o`9Ci<4i-hh@BqMf2wsF+AU5eW1}WeL>eGSBg4T^-^Qfj_9nPNo<~%22Gr^^HwBm+B-ftTl;W}874v^jeW3Y4P7-d9q zX~06$Y>@|ueF0r0q3V$|dx{b#FpPn{e&&b;)3+rsV

j+^qg?mj6a_pP%vgbqBnd)q2g_r9U1T^ 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 1 + for ii = 2:size(valPcl,2) + plot!(f, valPcl[:,ii], xscale = :log10, yscale = :log10, color = :black, w=1) + end +end + +# Plot the sensitivity functions of interest +pSigma = plot(f, valS[:,1], xscale = :log10, yscale = :log10, color = :red, w=3, label="\$\\sigma(S(j\\omega))\$") +if size(valS,2) > 1 + for ii = 2:size(valS,2) + plot!(f, valS[:,ii], xscale = :log10, yscale = :log10, color = :red, w=1, label="") + end +end +plot!(f, valKS[:,1], xscale = :log10, yscale = :log10, color = :green, w=3, label="\$\\sigma(C(j\\omega)S(j\\omega)))\$") +if size(valKS,2) > 1 + for ii = 2:size(valKS,2) + plot!(f, valKS[:,ii], xscale = :log10, yscale = :log10, color = :green, w=1, label="") + end +end +plot!(f, valT[:,1], xscale = :log10, yscale = :log10, color = :blue, w=3, label="\$\\sigma(T(j\\omega)))\$") +if size(valT,2) > 1 + for ii = 2:size(valT,2) + plot!(f, valT[:,ii], xscale = :log10, yscale = :log10, color = :blue, w=1, label="") + end +end + +# Visualize the weighting functions +if isa(WS, LTISystem) || isa(WS, Number) + valiWS = sigma(gamma/WS[1,1], f)[1] + plot!(f, valiWS, xscale = :log10, yscale = :log10, color = :red, w=2, style=:dot, label="\$\\gamma\\sigma(W_S(j\\omega)^{-1})\$") +end +if isa(WU, LTISystem) || isa(WU, Number) + valiWU = sigma(gamma/WU[1,1], f)[1] + plot!(f, valiWU, xscale = :log10, yscale = :log10, color = :green, w=2, style=:dot, label="\$\\gamma\\sigma(W_U(j\\omega)^{-1})\$") +end +if isa(WT, LTISystem) || isa(WT, Number) + valiWT = sigma(gamma/WT[1,1], f)[1] + plot!(f, valiWT, xscale = :log10, yscale = :log10, color = :blue, w=2, style=:dot, label="\$\\gamma\\sigma(W_T(j\\omega)^{-1})\$") +end + +l = @layout [ a ; b ] +plt=plot(pGain, pSigma, layout=l, size=(600,600)) +gui() diff --git a/dev/hinf_example_MIT.jl b/dev/hinf_example_MIT.jl new file mode 100644 index 000000000..5b3809f2e --- /dev/null +++ b/dev/hinf_example_MIT.jl @@ -0,0 +1,50 @@ +using ControlSystems +using Plots + +""" +This is a simple SISO example which was used for debugging the implementation, +as this exact example was use in the lecture notes of the "Principles of Optimal +Control" cours of the MIT OpenCourseWare [1], where the choice of weighting +functions and dynamics gave rise to an H-infinity optimal cotnroller with a +γ of approximately 1.36, where, in our case, we get a controller at 0.93 + +[1] https://ocw.mit.edu/courses/aeronautics-and-astronautics/16-323-principles-of-optimal-control-spring-2008/lecture-notes/lec15.pdf + +The example can be set to visualize and save plots using the two variables + ShowPlots - true/false (true if plots are to be generated, false for testing) + filename - Set to string if files are to be saved, otherwise set a empty list +""" +MakePlots = true +SavePlots = true + +# Define the process +G = tf([200], [0.025,1.0025,10.1,1]) + +# Sensitivity weight function +M, wB, A = 1.5, 10, 1e-4 +WS = tf([1/M, wB],[1, wB*A]) + +# Output sensitivity weight function +WU = ss(0.1) + +# Complementary sensitivity weight function +WT = [] + +# Form augmented P dynamics in state-space +P = hInf_partition(G, WS, WU, WT) + +# Check that the assumptions are satisfied +flag = hInf_assumptions(P) + +# Synthesize the H-infinity optimal controller +flag, C, gamma = hInf_synthesize(P) + +# Extract the transfer functions defining some signals of interest +Pcl, S, CS, T = hInf_signals(P, G, C) + +# TODO remove hack for visualizing plots, should be made into some kind of recepie +include("hinf_utilities.jl") +if MakePlots + if SavePlots; filename = "example_MIT.pdf"; else; filename=[]; end + visualize_synthesis(Pcl, S, CS, T, gamma; filename=filename, tmax=1) +end diff --git a/dev/hinf_example_tank.jl b/dev/hinf_example_tank.jl new file mode 100644 index 000000000..5b86f5827 --- /dev/null +++ b/dev/hinf_example_tank.jl @@ -0,0 +1,118 @@ +using ControlSystems +using Plots +using LinearAlgebra +""" +This is a simple SISO example with integrator dynamics corresponding to the +quad tank process in the lab. + +The example can be set to visualize and save plots using the variables + MakePlots - true/false (true if plots are to be generated, false for testing) + SavePlots - true/false (true if plots are to be saved, false for testing) +""" +MakePlots = true +SavePlots = true + +# Define the proces parameters +k1, k2, kc, g = 3.33, 3.35, 0.5, 981 +A1, A3, A2, A4 = 28, 28, 32, 32 +a1, a3, a2, a4= 0.071, 0.071, 0.057, 0.057 +h01, h02, h03, h04 = 12.4, 12.7, 1.8, 1.4 +T1, T2 = (A1/a1)*sqrt(2*h01/g), (A2/a2)*sqrt(2*h02/g) +T3, T4 = (A3/a3)*sqrt(2*h03/g), (A4/a4)*sqrt(2*h04/g) +c1, c2 = (T1*k1*kc/A1), (T2*k2*kc/A2) +gamma1, gamma2 = 0.7, 0.6 + +# Define the process dynamics +A = [-1/T1 0 A3/(A1*T3) 0; + 0 -1/T2 0 A4/(A2*T4); + 0 0 -1/T3 0; + 0 0 0 -1/T4]; +B = [gamma1*k1/A1 0; + 0 gamma2*k2/A2; + 0 (1-gamma2)*k2/A3; + (1-gamma1)*k1/A4 0 ]; +C = [kc 0 0 0; + 0 kc 0 0]; +D = zeros(2,2) +G = ss(A,B,C,D); + +# Sensitivity weight function +WSelement = 100*tf([1,1],[1000,1]) +WS = [WSelement 0; 0 WSelement] +iWSelement = 1/WSelement +iWS = [iWSelement 0; 0 iWSelement] + +# Output sensitivity weight function +WUelement = 5*tf([1,1],[0.1,1]) ## +WUelement = ss(0.01) +WU = [WUelement 0; 0 WUelement] +iWUelement = 1/WUelement +iWU = [iWUelement 0; 0 iWUelement] + +# Complementary sensitivity weight function +WTelement = tf([10,0.1],[1,1]) +WT = [WTelement 0; 0 WTelement] +iWTelement = 1/WTelement +iWT = [iWTelement 0; 0 iWTelement] + +# Form augmented P dynamics in state-space +P = hInf_partition(G, WS, WU, WT) + +# Check that the assumptions are satisfied +flag = hInf_assumptions(P) + +# Synthesize the H-infinity optimal controller +flag, C, gamma = hInf_synthesize(P) + +Pcl, S, CS, T = hInf_signals(P, G, C) + +if MakePlots + # Visualize + frequencies = [10^i for i in range(-6, stop=6, length=1001)]; + + pGain = plot(frequencies, ones(size(frequencies))*gamma, scale = :log10, yscale = :log10, color = :black, w=2, style=:dot, label="\$\\gamma\$") + valPcl = sigma(Pcl, frequencies)[1]; + plot!(frequencies, valPcl[:,1], scale = :log10, yscale = :log10, color = :black, w=1, label="\$\\sigma(P_{w\\rightarrow z}(j\\omega))\$") + plot!(frequencies, valPcl[:,2], scale = :log10, yscale = :log10, color = :black, w=1, label="") + + valT = sigma(T, frequencies)[1]; + pSigma = plot(frequencies, valT[:,1], scale = :log10, yscale = :log10, color = :black, w=1, label="\$\\sigma(T(j\\omega))\$") + plot!(frequencies, valT[:,2], scale = :log10, yscale = :log10, color = :black, w=1, label="") + valCS = sigma(CS, frequencies)[1]; + plot!(frequencies, valCS[:,1], scale = :log10, yscale = :log10, color = :blue, w=1, label="\$\\sigma(C(j\\omega)S(j\\omega))\$") + plot!(frequencies, valCS[:,2], scale = :log10, yscale = :log10, color = :blue, w=1, label="") + valS = sigma(S, frequencies)[1]; + plot!(frequencies, valS[:,1], scale = :log10, yscale = :log10, color = :red, w=1, label="\$\\sigma(S(j\\omega))\$") + plot!(frequencies, valS[:,2], scale = :log10, yscale = :log10, color = :red, w=1, label="") + + valPiWT = sigma(gamma*iWT, frequencies)[1]; + plot!(frequencies, valPiWT[:,1], scale = :log10, yscale = :log10, color = :black, w=2, style=:dot, label="\$\\gamma\\sigma(W_T^{-1}(j\\omega))\$")# + valPiWU = sigma(gamma*iWU, frequencies)[1]; + plot!(frequencies, valPiWU[:,1], scale = :log10, yscale = :log10, color = :blue, w=2, style=:dot, label="\$\\gamma\\sigma(W_U^{-1}(j\\omega))\$") + valPiWS = sigma(gamma*iWS, frequencies)[1]; + plot!(frequencies, valPiWS[:,1], scale = :log10, yscale = :log10, color = :red, w=2, style=:dot, label="\$\\gamma\\sigma(W_S^{-1}(j\\omega))\$") + + times = [i for i in range(0, stop=300, length=10000)] + + stepy, stept, stepx = step(T, times) + + pStep1=plot(stept, stepy[:,1,1], color = :blue, w=2, label="\$u_1\\rightarrow y_1\$") + pStep2=plot(stept, stepy[:,1,2], color = :blue, w=2, label="\$u_1\\rightarrow y_2\$", ylims = (-0.5,1.1)) + pStep3=plot(stept, stepy[:,2,1], color = :blue, w=2, label="\$u_2\\rightarrow y_1\$", ylims = (-0.5,1.1)) + pStep4=plot(stept, stepy[:,2,2], color = :blue, w=2, label="\$u_2\\rightarrow y_2\$") + + if SavePlots + plot(pGain, size=(600, 300), legend=:right) + savefig("gainPlotQuadTank.pdf") + + plot(pSigma, size=(600, 300), legend=:left) + savefig("sigmaPlotQuadTank.pdf") + + l = @layout [ c d e f ] + plt=plot(pStep1, pStep2, pStep3, pStep4, layout=l, size=(1000,250)) + savefig("stepPlotQuadTank.pdf") + else + l = @layout [ a ; b ; c d ; e f ] + plt=plot(pGain, pSigma, pStep1, pStep2, pStep3, pStep4, layout=l, size=(600,600)) + end +end diff --git a/dev/hinf_utilities.jl b/dev/hinf_utilities.jl new file mode 100644 index 000000000..878040da3 --- /dev/null +++ b/dev/hinf_utilities.jl @@ -0,0 +1,71 @@ +using Plots +""" +This is just a hack to visualize the plots, should be made into a recepie +eventually and included as a regular plot option. +""" +function visualize_synthesis(Pcl, S, KS, T, gamma; filename=[], tmax=10, fmin=-6, fmax=6) + + # Plot the singular values of the system + f = [10^i for i in range(fmin, stop=fmax, length=1001)] + + valPcl = sigma(Pcl, f)[1]; + valS = sigma(S, f)[1]; + valKS = sigma(KS, f)[1]; + valT = sigma(T, f)[1]; + + # Visualize the close loop gain + pGain = plot(f, valPcl[:,1], xscale = :log10, yscale = :log10, color = :black, w=1, label="\$\\sigma(P_{w\\rightarrow z}(j\\omega))\$") + plot!(f, gamma*ones(size(f)), xscale = :log10, yscale = :log10, color = :black, w=2, style=:dot, label="\$\\gamma\$") + if size(valPcl,2) > 1 + for ii = 2:size(valPcl,2) + plot!(f, valPcl[:,ii], xscale = :log10, yscale = :log10, color = :black, w=1) + end + end + + # Plot the sensitivity functions of interest + pSigma = plot(f, valS, xscale = :log10, yscale = :log10, color = :red, w=1, label="\$\\sigma(S(j\\omega))\$") + if size(valS,2) > 1 + for ii = 2:size(valS,2) + plot(f, valS[:,ii], xscale = :log10, yscale = :log10, color = :red, w=1) + end + end + plot!(f, valKS, xscale = :log10, yscale = :log10, color = :green, w=1, label="\$\\sigma(C(j\\omega)S(j\\omega)))\$") + if size(valKS,2) > 1 + for ii = 2:size(valKS,2) + plot(f, valKS[:,ii], xscale = :log10, yscale = :log10, color = :green, w=1) + end + end + plot!(f, valT, xscale = :log10, yscale = :log10, color = :blue, w=1, label="\$\\sigma(T(j\\omega)))\$") + if size(valT,2) > 1 + for ii = 2:size(valT,2) + plot(f, valT[:,ii], xscale = :log10, yscale = :log10, color = :blue, w=1) + end + end + + # Visualize the weighting functions + if isa(WS, LTISystem) || isa(WS, Number) + valiWS = sigma(gamma/WS[1,1], f)[1] + plot!(f, valiWS, xscale = :log10, yscale = :log10, color = :red, w=2, style=:dot, label="\$\\gamma\\sigma(W_S(j\\omega)^{-1})\$") + end + if isa(WU, LTISystem) || isa(WU, Number) + valiWU = sigma(gamma/WU[1,1], f)[1] + plot!(f, valiWU, xscale = :log10, yscale = :log10, color = :green, w=2, style=:dot, label="\$\\gamma\\sigma(W_U(j\\omega)^{-1})\$") + end + if isa(WT, LTISystem) || isa(WT, Number) + valiWT = sigma(gamma/WT[1,1], f)[1] + plot!(f, valiWT, xscale = :log10, yscale = :log10, color = :blue, w=2, style=:dot, label="\$\\gamma\\sigma(W_T(j\\omega)^{-1})\$") + end + + # Visualize the step response + time = [ii for ii in range(0,stop=tmax,length=1001)] + stepy, stept, stepx = step(T, time) + pStep1 = plot(stept, stepy, color = :blue, w=2) + + #stepy, stept, stepx = step(KS, tmax) + #pStep2 = plot(stept[2:end], stepy[2:end], color = :red, w=2) + + l = @layout [ a ; b ; c ] + plt=plot(pGain, pSigma, pStep1, layout=l, size=(600,800)) + gui() + if isa(filename, String); savefig(filename); end +end diff --git a/dev/sigmaPlotQuadTank.pdf b/dev/sigmaPlotQuadTank.pdf new file mode 100644 index 0000000000000000000000000000000000000000..8881e7ac3d8a44140826d042fd2fd131e8a5eeff GIT binary patch literal 1335028 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 U-& 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 a)>VJ^$tRzF_R)7={^$SvfByCVefhtFv88(e literal 0 HcmV?d00001 diff --git a/dev/stepPlotQuadTank.pdf b/dev/stepPlotQuadTank.pdf new file mode 100644 index 0000000000000000000000000000000000000000..63c0dd75430e998b0d9b7b61b3fce0e1a6daff29 GIT binary patch literal 460839 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

j+^qg?mj6a_pP%vgbqBnd)q2g_r9U1T^ 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 1 - for ii = 2:size(valPcl,2) - plot!(f, valPcl[:,ii], xscale = :log10, yscale = :log10, color = :black, w=1) - end -end - -# Plot the sensitivity functions of interest -pSigma = plot(f, valS[:,1], xscale = :log10, yscale = :log10, color = :red, w=3, label="\$\\sigma(S(j\\omega))\$") -if size(valS,2) > 1 - for ii = 2:size(valS,2) - plot!(f, valS[:,ii], xscale = :log10, yscale = :log10, color = :red, w=1, label="") - end -end -plot!(f, valKS[:,1], xscale = :log10, yscale = :log10, color = :green, w=3, label="\$\\sigma(C(j\\omega)S(j\\omega)))\$") -if size(valKS,2) > 1 - for ii = 2:size(valKS,2) - plot!(f, valKS[:,ii], xscale = :log10, yscale = :log10, color = :green, w=1, label="") - end -end -plot!(f, valT[:,1], xscale = :log10, yscale = :log10, color = :blue, w=3, label="\$\\sigma(T(j\\omega)))\$") -if size(valT,2) > 1 - for ii = 2:size(valT,2) - plot!(f, valT[:,ii], xscale = :log10, yscale = :log10, color = :blue, w=1, label="") - end -end - -# Visualize the weighting functions -if isa(WS, LTISystem) || isa(WS, Number) - valiWS = sigma(gamma/WS[1,1], f)[1] - plot!(f, valiWS, xscale = :log10, yscale = :log10, color = :red, w=2, style=:dot, label="\$\\gamma\\sigma(W_S(j\\omega)^{-1})\$") -end -if isa(WU, LTISystem) || isa(WU, Number) - valiWU = sigma(gamma/WU[1,1], f)[1] - plot!(f, valiWU, xscale = :log10, yscale = :log10, color = :green, w=2, style=:dot, label="\$\\gamma\\sigma(W_U(j\\omega)^{-1})\$") -end -if isa(WT, LTISystem) || isa(WT, Number) - valiWT = sigma(gamma/WT[1,1], f)[1] - plot!(f, valiWT, xscale = :log10, yscale = :log10, color = :blue, w=2, style=:dot, label="\$\\gamma\\sigma(W_T(j\\omega)^{-1})\$") -end - -l = @layout [ a ; b ] -plt=plot(pGain, pSigma, layout=l, size=(600,600)) -gui() diff --git a/dev/sigmaPlotQuadTank.pdf b/dev/sigmaPlotQuadTank.pdf deleted file mode 100644 index 8881e7ac3d8a44140826d042fd2fd131e8a5eeff..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1335028 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 U-& z>le2B(I5I4^fH!pg^tO2-Xqs78;%;2dzwrxSvE|B!aZ`yP$rf!8FLS4L?m+X^lexJ zk#P>!Vs?7CTW)@w{qkG!(!u?HLAlAGGlU0ewwAxk{vlT zi&!Haz?oMIOBQm@;?G1>%8tp!xAvZ=y9sADy+mt~7}1k4o=MBXxW5!ElO|(sG;FEW zz-tJG0pr~5Ygo3O>pwaXr|>r_i73HEdJYG%P~0( zW56|GZvU|uEe-8dF3-=IjA`L;J?Ia6-B(x=`o0^ey1YcA;+1|h^j=JQsy`-|ki$3w zJ@$fS{iCi(6?nPAB!bEq=F=ttwn_iX1#5Hs0$*) z2EvA8z50v^1vSHwj;yj1+>VA`zD>2*o&}tfjeE7Gcm zCHXTTaYk75s%dy$VW_b~W>+u@D6Mgua%lSOkspL?Z$tqnJV5U4Rx5O8xlp6^wr^#9 zji}Ex!_-J#Z0qtRhEa!l{C09Cmwi6-3JIX+Ult9knnhNVF}HK{yDt*VZx3ta#H8u- zLlHVG(%(bC4omzn-QdV&RX&5-%jQDEnVIdkvFuN|R;Q-iR2Z4z(LzF0SHP%T?Qo=< zdG&?}D3#73btR-2##SpnYK8sot1>TrwZ?10Cswg#p0+8$OQSVB?28CX|LVWJHK3Hs z$%%PzC1dcYWt1zl-A~v|xQ->h?X<_6I5jMZU^~3c4zKxoOjV?pU-C~W#AtWR`w?$@?GO1-%sUXf=V+B|k0wX1DDo}Bt3I`)c6fRmnIKqzYq%miy)FDfJIgMX9f-Ou)WC8cX4+@} zWV4wFD+EJ6pl;GZMF1sqK;7&!lR4ZGRh_{Y$u$~2cU#n^;XuR)m8$Ggk~CX_a2vER z&jDTbvrE;&tS0U8%V}4v>?E%(XOm;b>O_55dbRL5+5_cYW%dKmTL!mGOJ6P4b+VeE zVF&ZLHzZfst#5O}t-lyq;0N`4<7>T5NWV1R+PGXZoG3QTseO(%(W!T=)AT>Y4ylY% zbNL)-&ED(MAR_#>7~3a5DBe`>UKdEn1{A{|2iSYF2Su|<3AA8yi`KsYz8Jm@kYLp! zGQ`ri{bTF!q{QPP<={MlKlyHJWLMh!=Ja z2|an*rkY8*hWOUiyz*NUQxnUbQcA)YFaI{*g&rFBzf@X{!o2P zFQrbT((c#gGA=jMcH)P$*|B3C$}a4q1mZ9I+Gh7R^C73%k0Q&8CZ;DEdTYgF;5%dH zvW2^H#`-r9dQZ6Ovj+n$Dz@R3Ijt4jl9YSnE7b8=%ylf=xY!Gpb*9@(TT23wLatRH z^i7jE3WOJPRW9}1+No)m`rg_pF8J%(smX*v2%D^2#kL zyHH^2DRF|LQclU85;?(f?xB`g^hE0H9&X&26+@7!(8G{xEfKy4>pC_m5t`@Hgbls7 z1VuyF&GVm?D1pzU%^P!GY_Xhm;I62hZIUB6p5*9dpYKcRyIZnhd@Xl{&b0IzEiX(B zoIzfBb{tK6?>vA@uEn&rIqe9`i39A7Z%TYei848JuYvaUDf^-s7p@*Z^k{wWb(((s z;Gl1rS!c}EUwMiLGi4T~%Sy1qRebvne-1~cp>k0gs72|($lS|@S z?f28&cG3j5weh~)D#L+$jccdr>pPTv(zkTQhSzvR_H_3!k|+C5pTMUdAC5*^-u&62 z%sU`y>YnI~nQi4bbSUo{Q>#raIUQ5Ou%WxXp7-=2n8^z8hv;r=w#ZM$#1d$t2RXQv zS$);+$=Z00UQXU4w%%t;y<*y11N9cb_1(hyKOF5-HD~#S>qGGJe%>1Lut_~;w{7gPs$Fv1eDgE(8;CYcZg323*CGQgI>VJHJwu~9U3(7# zk+WOnca6#=%vKmfZ@0$7#WY{k(hR0JJYUUoslTj7gzBi=l%bl3_xyI5+kk?580|yo zTgMS7Ov)%1Z}DjAEf21QF*@scM;os>#_@f`J~1iDh8C>>=}G*vUl!O7W!2i*5Ah$U zpR=djGM=G3@?)A{Ph;n#N7uf^5VVAfu znO}SYzx#WVk|TTLTdd-!+|x&l^FaM~(fP;h6CEx+&(QbZN$4l>yUBv4gmCMx)0p08 z==E={j7R0tV=ml=2uHdE2BKM*TznE=ziM*ZLZtzzD9qyAn;bJvM~kfK+lo|iK7@=( zOU^U2$CS-&jnXgD6ZraYD?FmM=*>xd6>9sdp)0)U)7WR|2hH-uH0FxBu@#dtsG923 zk~l_g_6dC3G_7zbF9DrYgJ}L?L35eJE<5(Ql1It1>2<)S(B-mul{pN?^N}z>n%8yIm@%R>$a8Mdq_rk z<@=-Ao1+ufUmOU$Ib1C;X|Q*DMUw8YoDY>KecjPo6%!M+T2g&I+5FQoWs%c+(hq4d z(e&+&56_p!V1MSvrDAk*U%%@1H;%aeX<&zfxLQGd7uT}z@4w5wT86n8&@&%hpTw;a zmTf#<8F+8#r*B?e@y*ux$inKLraimQL_J@Z^Pq??Z#QvY;lYx{IVk59x&jwF{YCcS z*RZK}b{j^AZf`q_bqBg2!HvI6KNg_-WU;Ho;f>3a^ETCJcxq@Y`Wb#}d9v@p8VzfW ziu!_guQX=(N6n)ue$g_ySZ{)0S z{}?lNzWQi(d-a!$5B^&)CJn3us^7ho^10gh%)vd%t6SRjBK#zwDLi^k`@i<8R1L@TS8PdOW8JDO845Z0Vbfo@&Yz^l#R*0Et8*NCOjbM>+poWr zxx{0-Pqt!(NrRh}s8(r7%vt8|b>rR@yUAYyK{-JP!l6UU*7I^Kmz z*YrZK_{PjrRncJzx9wM4%3R(q+=MFbmCLzb#MYS`-?QY8sRMF3m;P3H!{@#sX%2@e zO+|;Tz0FdLB5j4I{i0{zzihI!d8vXO=l-1co=-~qJbja+Xf;q$moz;)U?UBYu4Pz6 zy%!`+Z<$di+05PKWLpi0ZKR3+Z6AkrK&V#}_KIwz|3#32Ht03Gma%{j?P@}aI!TSa z@K~S-@8kth#si_-=jRVeQ@_n(H!xaf=jOMPtlyJ9;DuIyO8o|vrZ+G?%>N;*xVMuO z?J9JXdVRp(>?)YnPMwxRkksNhWb?(0fs(MLqz{6Fs@DKVOQ;+HSltEFw)&D=90<+U z7ZyxMo*h5~F%1HOxS#)T#0yiJr1+gA>t<*?wm?&G;GYKu9v`y?O5Xd#aU7bd)8nPd z+YZ}HD<2tu5NKXz44@B=I7st7;yAw*xeCqh?jhNCR1Tm&eAguDs?6WwtS>5>OCauKal35pwCIr=Qk@?q4J|Hz+N8?&9{KSmEjGHZFcm5(0j`(w^~}O z99z%O{7`dHD7n=GrOG5tlKln$0r8#Xc0%QWHcb+Djt1nPI!I%Vh;DIaVy6?vh#&B` zhSxJzWpgx1$0Jgvop-AqmFh?))3ZmUcCen-h z4&rZdOy+_7O)=mp?IZ=dt<)fir1{fw`mO^d8xP!>&f~jBs~4E6id&BagiF%4P^ygmQ5ltl_E)W*-C&9n@)yJ!_6hv)B9X zBw^$F)-z-kNq43#cCS1pE$AHTxD@Y+9_}y z2<1hkfsN)t6(I%Qhuz|&%S=Xo5VQz4#&L`j{=TQNsdd!{{PcQ`gS6P~PT>3=Qs@+* zhsGtWW0>WH#&MiVhi-AgU5`rho0r6KQaB7yr|{1KG2L}N!?3^srYAOzvtkzJjz-+) z-xztlH|G<>qk}b9eV!;TbopJV%#v0XO#5~=np)lBByg9kV+`dTk@|h-9GCj}%sUG! z=-a2)GR8E+)r1ujv)hCfM+T|Wc@lMD#>L(Z3`0)nI>y^qi$4g;XNZrcolPw@g%!tc zKb>|ytD8LSTl0q8S6xcF#Yy4rT*nx@vk6##a8h?vbbz`)3HUPY zsI>Ssdj|v znXViN?L4q-J>z8REEKc%!p45dIMP+vOZ}(_VJ!5sed6NL#BH8~S@Lq~)q6ps06S39 z6TR;LQ8tXqS;v^9!GMYm2+c+a52y2lSK>HF$2Z*K;0hzHg=WuZ_Y2MBbe8TDDl?}A znxtI2w|56hYUg*5dZ$(2dqJeo{rFzew6l;{IuQDhvs+lvW_Eu%Yme$NY0DofJ3-o{ z0kkM>KzuPUiCvQ5^3@0Xwp!+efpCR8CQg$2ldiGT#)OlB5BZ%#{I)N*?G;&beI>dg z>n9zZR&}KU*$Pb<5*$`U16uqH}-LgMUddbpO>Ez zbrUD;#V#u6a{2Tp-PU3kgYOTCx+|vI=nh@i?9T50bH^zAoW<>O@jWMOzoVZ;F#h>u z2i>#NUYvRc+n-V3KEiGveMrROCfn#5!&4{3r&-zM;`^uN`-#V1#PWTIaxoDBK>@Q{ zM%nh~fM>%aqhS2o=g*1Qkh@Qb$6w^~ojoh8#X7J19}>Mj^M}t---M5{ojx2aM=LTP z@-4c99`k(_-k^nq)4p@YD&zJhuR`z|mh#+(?QxLv>5@dL5^ERTwuQ~Nou`>{_S1U}jjENEGl z@r>x`z4n)Ak3zb6+fD4Tzds)9?>#o0G5yzLqqAQx<*eI3d~+!vUSA7fiXJ35)|*ux zn)270{)`vrkBWJZjN9p^Df`ONX+C%P%oy`ve1_kjH(R+~#XEi)<}}J!?-CL&Zk8Q? zPIPp5x-Lhz{L0Ow@=)$_Wk7V0v5~A_+M)WC-(PCCH5eaMURl6*##Pvhbs`i`hAeJO#mr(u07`CBb+i2_k{zC(?Yx3h4{&E57Vk{q~Lh<5A^PqC?{R zNpZf4-6OtpnU8v~pm88Q2(L4s-k;&Eaump~Jt1yE0PlKuJ3VatP4JO^$%m6F z0e?@$*Qje;W|*iP6O#&wgFD6*D=J(@*t&4C1r)yXC!P`+-Tgzy7v6S!SFEtHYeo>? zd{^vUQ)&@lHx=LeFi47Ng!k--oNz(=D<2tV8;`m*o#AG6fZkQ2yJoTueaO{>8ye+1yz}(@i4zu1nMk6 zyVef+mR5f&li42OPp$r5;p*m*u0*f%(9e8!^0*k_>>d7icOCB&eT(D^4M-!WSG02R z(1v!=C_62*zV!t${wdLHYHfHhzRvPs0fPMvu#sb{kxz78@tvm*;!5)a6qkO<#A-r# zu%HR}m&Qs8tp{BC9f9c;`AqA4m;T;DZ08Fg^cf*!=D$japjs^b4m6T}D@15m*CRBt zNRb4j_iERE$G%fHdtMM-;l!$dA6fQSDIEmcEIJKvBLY1^50#12AoZP+cKViBS_*$W zY#Cc0|8zm-H3UuIUhg=%mtfTC0L(U($SI$9%cB7LH5K zyreA?XVhI7$_vwN6uvf>LQeZ9{9-EH5ui zMiq@;U^>ouKy-CMCq?rk2^{k^<>;AFcH*Zwi(fY3FJuPRPUk7#wE0pJ@Twj;oH2vL znQHvx`DEm5hlCu_^W^FO%#Ija4gqJI=S1EPr;F?Z zx=kgi{$#?cS$)ps18ZQssI(iFWc>a`dmSn_Ec=F@NnQWIY{=2RwAnnSa!-E->uf&X z;yID$=y26C4e$1FX@5reyH9kDNmhjSsy6#3ZJm9t_xQ}<1{k5pg1%n| zTabZhWBHk~p%`*QbFWeme&pU{r}Bf0V`5&pz(Jh7yBlWi-i!3f7(=~)V8J2h)8**c zf&xB$T5^wXYrz|3w;y^+)E)iMPFI}t9AU?E3W5YXw`5MrY%DL}Gf&=mLDXgApzD4~xmnC(Ka`ewm z2XPF08n%;P=wQJN>{wPo_y|S^UAyy1lq36MKIiv-GmVii&(MSK1+nF!sVztP%>wsf z%S+_aZ)xKVWlf(Dhj&D7hAfI@Y)b+}C!@PU^(F%#YjD`*gt+)?*taf7qO1;mJ><*# zd1Qo5F3$`SG^ZpzC3=^-mWS%Je}+ti%3LZxD?U*kNc)^A59JNKZl^=Uk_^S4W+Uvf z3Bn_O)^mkp;+DR&BjqJ@W5}ZrAVU!FNeD>_+i*yBkkvQ0(+y?cJtcbCSphZE$bHbe z(xIJhGFVcBQMLRuDD|8Mv|&{j z$Dy%lS`3Mlk!fiB89B;6Tdo@{csaD_8PRJ<11T+kMjZaYS%nmTdq(VCy$DimodI$k zbi-U5kgCxd`ZW2%esa$4MtSII2tZoQM%lF)=G9@U&p}0WD&Lp6P70jg$p00D&tQEC z#%mT`1S=o)NjfPeZ5rP>%Dy2odqPx17`|Kf_&KrY>`(3f-c7BtL4uli^Qt9~k9p|S zFI`=>87mEivk1k{6P;S8k>arnl7AI>*%ht+Wil#vXl8YPFU51k{M>Dts>|RSs$F8Z zbwhg%bOV@YF?Y9OH5$hN}OQ_E)&|p7sx|KfT?*-EE^| zixh_;+goFijP4#|$D#?*4_mDP*>6d|1ogNY@?Crdps=Z2El6)Q4pO zgqsE7-M^vR=m}{sl)dl73c*nKYoo7v`3)9M?%55rp^VS?6Bo z`(o(u!LohJhVl~qZ1gwwAxR&CmA|yVw|qrgi9h$Ya2DjKovpc{BtDe=Wh6+z8s7xD z#CLPsg9R+PwT|r67a5SJn;tHYbz%$);H+3gjEo5GcY@MAJ3bs?onmFU2Te-fyH zfb$lka&NzJfLqxW8BkGG4Nk=)Z^D~aNV8`c41gJ&U~!L~-mmx<-x<|UhF8J<9m;?I zH2KEv9KW8pqF)l!l*xDg`)A-cc5U0_1EOQeYDOrO&t(5gblt8b@1Ay&Z-CrS?+)eP zCG#Eh_z*vHAza5Z&myu9*LE04C zM$c1@lSV@iS~Q>O$14GL<_wq}C4rE$&6rpV`UD;O#?Dm^w?qsQ6!ne$J(YA^YcS@0@?B)@!D&WbQdgN3z=76?i-s?c4xvNB8aI^a&4m@cbBAq z#NG(+1fk?A^r4rkb|`Na|AO)CcNts+BG3d6K%KDkUR?kAZ*_op#rzxlX<*C_7z1-o z8$CWq5f*N}71B7j6Q)H%Et1#P9T2UEcVst>D}qtN z<{_eYCcum?|9a?G3FPD__H`fv-2gNELd-zR0h2zaBh$THABMPC9rj*jbS_cRx7)fu zqyHC7^x89Ee(?wo51M+--T=Ksg|vS`=QqQEYmJV985*e!X8@ns*Z7f*i>JZA$^@H_ zvQNuY309PsTnR2O5#E7y?(G?Utk_&Ng<};Yus?it?sj<11IzvWy^S*U_TSi^-y)GY zJFWzRcT}9jZ#viVuX6DovmKDyJ|S6Ij&Ax5nepGNL~sCe$#gTIOmOVms+9Q}3v|O_l4-i{D}jlFaRzA%-xi=p z^~x|NTee?v|E%%niICIdOA^Ct25(=0k#iC2ICw40(^H6;yW%xAi51I3$vwk}Tlfho z*S5{W0{FbktiLyX@64X{O7>Q8&=g>*2ED^b4~S_Mt%e}A4hv}~^-=n`@noXPXZ(1is919V%U2!pWRk$vv- zN-+DN-&Ocj^GV4>RuKx20$l^akE6??3$a>=1*_ZWO-YfJ2^B25ymi!JIQ@#U?w9Dz z!RbxlQ32F-MxEQ}XJaI({K!q^KS#P%Q|I~{lHsWMf!P7EC9OeOyrf(S{J5PsWPUc{ z$~Ezi9B{-$m>Sd|?{Dl_Wdb_X0_J##*%P4f3x&`PMd*${P6)5LpSZeT5}`IN01YSk z61u+?1q9K6#K6oAeq?sqQJ3?4Wia&pIlwbdGJ)(tDB)k<*uw-Fme)7>wAMl5QUXhW;zLwm2m@%toT(oy-ojovD-xT~?LTsKINta!t`x{dr0tS)Z> zHu$~@Xb=9mD~C2tbAhp{U-FHuA%Dg485*M#bqGcQad1O?M|mj1&WPvk%04fh16yhc z8{Aj^4o+@R8^&=O7Ike0>}Kif!=Djz#DDJ0p?#WI4xIJg0c~w3_P-#iuo6b@7h4MK zk(j4hB}ia!wg4QY0MAzdEjt2K09|4UmwPU|`oQ$0pMVpd=%)BnV$1P_1I4s0PJZBv za0N%^q1u}2JKEl{MTV~MMgaVVAehrYp2Mpy#@`a#QaM;*l@ z{k=W$VU@6=)ddSaVNrj@C5MyX*IcqpqB@j!)WP(t6))?TtS*w9z;Q-rAUyA3*@<%)sl;o@_6RGmTDWSI?X@ZJ zp5iZS7VM{1_v=^9st>LLH{|L&!bvU3YI25eZ)XXlLo93Z+pRtoq=S!d`IC33pF*ro8%aIYt(R5?p#asXo;|YhIn<)DRA-S#fu@tnG7Z3n|eEg zVa=Rl)egWpCY76Ypg=zf$awcyKumCY;T;mnUiuS>$wmm*Wc`|%4cMAol!dNdbpjIV zp6gsQ2z|94D#K=e*swmePP^g9VS4rGiwxMs?%hYu>8QFce{i0H>$2{jD1R|p;j+?d z((NW2jw&b54WyO?BS&r>JAG9qWnN&pNclMu`gr-*9N&WI6MST&l{{5{8N>vmZ6M7v z=TXy9xs;g$)_t4mqPM&Jo;Lhg-S0Mc|2iw~vLA)8qdQe5P)u@zBbyYgxN9Nv?D*n- zP=_+c{mS2A&krU3Qrcw3YBVNXL*)Pd#^9gAe>g>j8ZH@N#%thkOXD#LH+_~+bO6V*PUAyfCR5jzHvor)YE zS{(jS3Sp*o-Pk6qyChR)M#<{_NlUmJhhUhv#;hw_Fg9+l>M$C$dFDrb!V86lRd4d~ z>&@e1-ThPH0()Z2du3gSxb5sW~&c_Zk#x`_BKP1zl{csb8&?l*I=wNK^AZ8NxkZ)YXjhF^g9$>kRGb}KhWZW1>mWlt_dhL zzo4xZ+vKWy`dvV2-w+EWPb(jGr^vc64L81guK0 zEYY5?%d)?c&I1n15F@HGL=erFAbnV_R?xuW$fxtJMf$X(!}Lzc?wO?vt^W0n zK*$b!fF@bhXoiLqGc;e`wtPQ2*q3yi(GEj#st<` z@W#LCRHK0nUt6W%76do}+fT1%v;lg!gC2tpo-aPQWOVy1(}XW{sz?3e;W=9ZF- zx)xMuA70fAI+hZ~KpGJ*4_*{xlw{Es3o=UJiZAASP%i_XCLHsPn$TGlF8>-BZ(v~A*_$K0g^+a;;0Xey}@Dq2y(TAR|wb&W(#SjlFR=p+TH(p(M+e@`TVDj zCR;g;)o?$|cq67H1W64k?CKv~gy{)tk{xukGEsklVs60>X*WL#I=;O7nSTG~#h8qs z_~nC+hpG;zkEE_We|pH#=4!(#mQ=6#yW`QTWy$zGZl)~hkFADyw{tv4+cWWy-Dz0H zlKSt0mX*VfC$B2q#~)p!Jj`>nzq;rC*+0J2qEJkEGnVvK^Tff_v!sdC7x&sxtr>>N zIEq^SplwVXb6~MzBNay?9d1Ec^))Cf+rGnSYUu@$M_vN>rltS0%be34)}FzO)gVN> zg=|PwDsR5hsZ_c~!&X!iO{+%LoV|SBGl^Oz44}?@J>*iVHa)kpNzN%Oi#p>*9@>B@ z%78nk>mTC$Fv%H{F%J`pVG}%DnldRvP6cqgse^g1q>4;8HO>N^U3QIA5zFOIDub4U%H=!cm7Mj>*RuqQu4!`a> zL!&9jdFdHn@2VZ>J2L5~YPop&1$tIA(mvG=BxvSbau@DW z$Wo4HHJ2&JYck#zmQG-xrd6RFA9%5`{|rq;fGyb|16bJH;@1xRvcS1t(ODmb-q_Ws z&dv9Um7w{JA)(wW`QHoaxNMU^HeQRw=TsD$u*HJf0mq93Zmr0m6+KNE%Bx6`dsAq_ zjQ6H!Y{{V#?ybPG%txd+N|O(0X80$Sa51|H)heCyqZEGDq!J%ei6HBw16wILPY>;fk!Jlo;pEE-Nd zkixrc)qrx4?5CFX9-*Dzv7$8%6X^GzU@OW`D8o?#pGYXYa83hixE44Gq?Vo(dGaud zS?8Ut#&S~5YeIENj!{j$5}jF@@qf8OQ$-U>ZLbxDhgy}7%NM6$MBD7MsWUgJ1Zu-} zmNb9IK9)Hr;jJ5mld|j*#VaqxZR)>XD5bI(-w9mZp`M_J~9+*M>AS$*7qDL5u8Nqp~8 zl&M}wvr3=IDr>)u2~22i1VSsev&@^8KEnAaoIigqa7XIJSd56qPI#|CxNCO$@>RkC zmXqclgd+|(Hu*fkWv4X`& z-5K5#MVA6hps!SiMXO($i*tE%5^XDbm$KZ0QWOac$iEDjFN{a2I2YV?7`J2kU8uCr zJ6W`kZ|>vRmns`kUb9>vM)#n2KmL=<>q$RLoiQ52Q9>zi44AkUCsssTM;eZVR?Wq= zOtl#?Wm{vZgu8@eEE>l5k3=%(hVsJ(l&(Pa zX5%Pnc~MDZ&N-1QmGF75B`BBBhNEa?S%G-X2F$XxOe1EQVUrQ_ZF>wRko??$`F7$4 zM)WS>u_r~5Jb+@Bee4H}_K!wP&)Ozb!6kVoSn4-iSeb^&`8f8w+5xX!eKVCX$JNh) z3Z>_$gsz!(RM%m?0rRs}C3R-Ga=bFDkBYPO@N?&d4oRG-1W%$Pl`zzZH(+WqcawR+ zHxfQ1xEZrh1>reur~-ow9L0gmL@_ndJ@;`gW&MptOjgCm>35iBog&)xyU-1{&IP7O zNj=KJvJo|Wad#K0OQg=qB<3Qr&BFq?SZf5dU18Dj3NWI^gji1s+SdtjQsd6BGM2z% zsRixduBBr{EgV>9#n=K|egrJnl=U8zCQJ&>GT6LX>W7NE6l0Gcnt`kk?6(MD#mESm2YL5sA-plQ`6!4fjhDefDEM`mb{c`s!_uGs=_ ziWjBBfVrx7l>rmZ;#p1vbrx+j3>1xGfGHM$=p@1gmQO~rFNN2$`y6$qKP-b<#s;m= z3M!~&r*GW_Uo+T+8pepcDf0Q>L2tt(PfBQh^Bxv0koOuR$`>nw&qzUEqBPO&z(lsD zmNmnnG|Ulr0|>wKfs%~HlVOR*d`RV$0QSGdn!WzI${JTW7|MVBRDjvr3Xck z^3#BMy!(ta-83!&qwE(E46e;Q1?MtDf_a<{l9eU58!-j7ToiLg>I5q+4kOYr1gV=Z zz?9f@l3Hdgb00h*+LO|>J{4!_3d86&*M?HFSB8x04?WCI3eS4iPFvA7!!+tl+u>Lg zGZq7JnY;I6_+)f3ggd#)hihjbk6^+AC)jiI6!_%lwk#)VCPuU)Ig?6gKimt89)0;f z_$mr4wZ;oDC2H#pn4TArg?FF}D%rv6#eMkNTxm{9lY>yZg3Xd9tC2!7$;l8-nR?M%}vcz$4uwLN* zQxfuVIts4TGLo(VbEXnJ{Fp8H>AkK9Ti7y&#oJh!lb^jQq2vw}v!dA>RzA*?5~x`2 zO>u?bVIF+*tT~0}%rmhS>DYtyS{$f^wC6BsxknLgx2IyCu}pC_jB zpB!NIu{GeY6lSRyxUO8=fn4Lh^mHYK$E8d`n!>vi208y|Qh3dmHIEFKvgkixCDvBl z4Xc%qFB)S+`&kF5Gv9jBAy@ISblq}WQAMG-t>|Ovsejpu9u7mi8|?0HsmHWQAw!a; zO>~qM@rR49ZQyv{9#+J9GJJHOA+G2`sJFmEw&|RC#6CY>h_R#+QsZn{=K8wGhQ681 zi$k_*@)(La?v3-ve{(PpzU=c8Qou9kMeJwMyxsj^oHP%$p#5b2aLf_ z6f+szNv7r`Ok2k~clv(9L2yQ@z{$}7!nw9%J5fyS7`K2T_Jb)MTMikRgmvf z$1P+(NFhM-qzmIk|4JEoiFPua%|oxBcn*auP#Qs)+Gs243^MOjrX<#dTeE~`@OMmM z4{A_(ievw7`zI_3-fmbDf%mC|Rj);Vpt<_Zx>@_jT|G=IK4>KC)?caj$?s3QzDHl(z)OC9rLFN%~BFI#r*jlWr=FHbMaD|7$0~qmtp-uD3&~A$h zcBM7^wTADu6mRh-z7O(;)QfE(~?v>8Vb`aerbFv-IH%q4=|H3O7-muA#0sll-Lg3H>98sc{ z4J+|wFOrDauptt&ujz|=MXQm1xeOA82T%>gw2*Y)$MHYQ=3)X{)qkx1yoV))`#bj3 znI^NrT#Tp*!C0OG7_qQ!TP+Vmnu>qT@yIF27Qpo#1E#C$Hd{{$!`wQ%5y^X$4XeUG z#^W?uQUlw-Rtx_%Wxuofim<22yzI#0Mv#6<$!`S)%!H)4!>m5h8gsw*w^9nf5UfwX zyuS<*P%kr=36yIt>>PIk`5eAP)SRX*PE#%!*ig!*IeQFgBezl@S)j+X0LWcP8Dt|# zh2F?8cvDa%fiy!n6~`wNi05Jqm==ck2EaAMV~?MvmU;2C%l6>mA7yl8+%!zWZc}uDYgsz4>`~J^)JU@(7ot3^Y?#yzef~(gXsnne*7A2ymp%d})SwINF=k0QiIT0G2jFrxYyG zcm|3pO366C2$=8@{ySW$GxZ-)YMCowoAQ^}M^JtNO5c*hK!@@YHbPBcCTpvJywPez zp=&2s8wGbk#sZy)PN^f_!LkE(-NuMczOgaGh^miK02ryk2Vy=BR{7x=0|NYG*o`93 zzl$(nqRG5n>o-g^IJQVZhAk)X@aD=cR>Z4&S_uDLz{OAll%0|SiA4BhQ_DQNo7G3! z$VRE50^tS!Bsho#5nl#1qPprcF@e3-j}a*b;S=UTgE}h$H7=9`V!Iw=0>{g?LFr;K z2z56Aq1}a$hy#XgeJQxaMYRHNiu-{<@WZlRE?}v?CHujKJ5Pe{7(X&^qrx;Xo#*~d zgeb5=9T@Ke^Jfw?fhabN%(Et*W1-Y~6e!d(xv=YJO}|hI4Vbab>mjD3u7I$>;ua3H zP=RsiF-(T=GP@eZlx40a^C%-bSg^}^P_W}CkN#8grY2(o^OSUe$u0PdTJcD)@Z{0- zW-l_&{^BlM5!o~Rary(YtpU^PBg4kjZ9)w8yxi(Y;U%lv7%(-WtPGgGymgq6j`don zHOr#iC?8QdecWTz8QLz3(Ulu3Aiw{DtO*|;vGB>eM|2xJ)wLFp4Xf`$8T>uwtpRIP6kfccf(J#n z#pw>NvUC`d1F^6m91_5Wm$)MM(_ZFtP|b)8XGdCjOZT%Pg2}`1A0KZG_*-2X2E1Op z;ad+%fp=#O$~ByHiDIoMg>SvhA5pF%qb6;9*ZmPV&bt=}v-`>u_=Xuc0;B)o?r}2j zI1eI_4|lc5ym)nI17=r$bS8Y_xI;K?bNCWPSz^I#^=>2crg~}wFRpl+jSKrrUpseZ z^PN5?8a{@&$Gh+gC(zTZSObvNv1Sg%FAR#xUT0oh&%OLG!?3xwm5zE!?pTD=wuNB`L!`>%3^WIlc}E2{u*rGvhN*Zl4$aKFO=(zld-w*G@aVG! zWNX9Hj1>oNYcos?SOZl%8=I3tZPFtG}VB3&ysBTRFXiL zyy6ubh0QF}WSL)~=3_)1Z|l&9FDQtg!1t5MYe>3$Y`%-jj+xp~*DQFFg1JP|;P24@ zTzMUcjScA@lw9u^$oM!Ls;C!^P`*NTCtoS?Zg&t9f(NK?inBGSLB0;YqL>O^dl7#% z1K<9q5YGA--*jFa@p3&1YfrobM4rGpdsXj+8cF{ejj1C>(0l*$86&r zT=tvXfO7RhJ+JmHaUYN+p&(H-V6xsxFx0X_G?Ue?I;sbKIHv2G$VCuMc&!1^juZ1k z^SpPq_hCU~X>LdhDaw`Y&1&x{kIacod&pwR@vS!5CN3CV7!k=;0plXBF9 zLWKWnGc$PEihNnj7TC}f9W1ZKLCWU;WAAI=t0=DaUu%^%h^VciMUwbcT2VqsAYcMi zu~I8a-)cn*f)GLoLN1U%atVg|qM}8Jibx11RIT`b{Qzw(;Ufe!LiossHm`yb5+IOh zkpyyq5D4UdW@mTq?Ci|$?ETnWHTnJ6ojK<@&pC5uc6N5|-ivbIzOQ=0eQ=jWG%suh z%Rg13;(_c>|GurvRoN%&X^`Ed$X=ZA7UH}{xx;^mP;)?@KdBgfyn*ib|3UZNhZ7L! zn-%EJhLAac%wNASA8ugizJGNAI(}U+AulVuJOZL1U^gAM$>FY_0ia%R!-c!=j{DtNE8KgNUfvy{d}kYd^E(%; zuN>6J1;42CTX&ZGqBU?+-=+B3rLf_p%BcCnrl55UdVlp2^#1Cb$;vXuyO>cC=d(YJ zZAoZDO>zGiy}o(_y!d(qK3@S#cxAS1+0kqJxVl4g;ceFj^lt5~>)|troDWadzx$AT z-d9nu=xIUkzQQLG;Zxhk!ON=+%Dc9!&umoQylp8TGqYu6RdwbIS?HzP>iO?AUp4vE zBVRT)UpjB}x=m#X;r(~5C|sVge@)TWoj;F-Mbgyvf6t59iN3R*cvH8$`lzVG$EQrH zzt!ExmGYMBU-KvY@-w(H7rX!i;$iss1|BD0yk>Y+b&Th#$ydW9G34x|yq+c1sXG&M z3xTb1XX3XT;DVWX6YR6zoposy*uD-Qd>y|rCTGIUtKTSkY~0XQux{T`{W?4g zU7rLF&?j}DeF9U+`YwMPnU**&{7AR{qmYH?A$S_S5U!`=?swv*<)y>*v>HB;N|=6h zaK+q`)z6NE+i+o0Ue8^(j9MSjZ#oM0)jv0uxpH^Ibz2Ur`@1K@)cwhj0pMlLjWMJ{XwOj~WNoha1uXcBA+{@1v7bbtva}Ic%S^Q4iAh;^G zN5H_z*#E||JEL6v*DODIap~R|7`mG>C&SMuR1`eyno+bAOs-vfv;wB9hAVRc(Wl>$ zZX4%A`VnR-U_Nab4xbSs)Ir$qI9HsKx8)L8)HYXk2dWrA!`t$ptvs;eScx7yTXv^4wum7 znK!$laz4CAxq@KUSmC~BDZDydTDJGmyet@|yI^2;AM2`_3#)kerJd>vTi}Da`sppo z;updwg`Z9MWBB;VHREcYC~Q6juQJ0Zj`6(w%Cb`Qa}2K~6c?R4`wXBwwK}3e6SMQS+F(jzrz;}DIdRPXWgzCcPh*5_M(e&_b4)NH7c`F@wq-A>5gWLO=z~j z7wnuvz0eikgs%9^F2#Mm8DDe$%&tf7Zf`!N%z1bwi?7a^jb5pTPd5)9MHB0lgKCSe zjGBKAIw?w-i^eIz6ycfXBKR#RfvMCDLetQ2mT56?r2D&l-@{la0ZTT5fxPa*&mhPA1McFo*t-+BP-&w2Gv3|s9!l#|lf z3f|J9%VAEQziIX0(*w%4w*PBn+OhdVtHxGe*zT^nwk@yz;INdurR_y2eb2*E{}x5m zzcMLr0eqrWzX8CHYkXB(UIP>gwyfUp z(CWb>o8SW%ci*aO>syi4@{}c>`HIC7&*Sj%2Owt-T?<5G0s0>VJwIY~Yh?TK{^jwl zIU_y41?m{sDd_s}>cMLo29(Du=Zdys6vvh~H_ZIyuGodoo`b!)vK6(lpEZ@a^1fc1 za_P??nizl%ZLetCR{*%hTJ4J3KTX~M>zMj7*SBB7F89%eDK*)-_5HpaUv+KPvEtS4vlGzPE;_Zqsa;j^vP5IjuJr6-F}I$AdjP0m}SWU}aaoKT$JW%zXP zO4K2JAi;6XVbBq!>BU6gEYC~F=DJH^fOA)k|59z#sKZi$-zXkJNM_PuGx zPgE|9Dc@Q(EUF@Q6nqbPK>4|X`sMj4eG8s|k2$N(s(FnixLuK%efWcd!jM)}t%;KTAYE#Pj zwL90IT08%Z@$IL_w4RK3C8OZAjMSgqy=wo`jQd{7Xq=gOXVcCD$DS!(HazQtz7ucU z{p#kgqYB)0;YZ)!lv$LPbL!Ja?p%cc;mb-6TvoH8wDI!Izh1cSktopZdt@kmTwOc& z+wjj8&e}8NwJwL>%eu3D$ArBX6plzQxHfg+v5Fz7IbRPN3|m46^0Qz|2p^+c{;zJ% z^6pL5b*G+be6i%{<@q-)+;zjo-=iI&^p~#fo6&lr;=;9!tv{Ld1ndZ9zX;nv=Wc{| zan9TgYs?c%6JSFK>S^wwo)0gq{H8Ut;fdt+5nuOq7Ze=G?^5u@XQSXvoYz+!a-TV} zFe5zk%-IW?;N_Zo=Qcd?_>6zYcTf0H<@5O`DtfJbz5tF*&#yXBG5+a{@I51bwHe-{ zx$~R+E~lb@-;^+;d-WYJ{yRPceufZ^@O3V999{s&=Vm@!IixzL*A>faT6Z0*xDfpW z;myeQVPyLy*dDvI`i>&S_Cv+?6UBDBY6}x^uZg+XcI}6QpS*Q*TIo%npyPo0TZ__4 z;k6hzUcLMzyjN4>h94FL9}A0~f~KHvavjLuatTDYeGD`k-oA-PZ{O%q7l$KMe1UQt zryOfu?R8I6Taw=7^7ZhlPDbN;cvT0ErRbRX2ZEGyN#)@U25my^-)sScAjr;p!Uqqsp%+?Y=(7wLHOdW&zyO z-zwT%cB*L>H2j+Nu)vPVdB5=jphUl)bT(th@Z_4l?)tL2&(RMmJ&0BYAK&xDqgUk~ z9iKVmn+Lmnol>j3g|mP2-<7v;E=aifCu0{Lm|gqT1qolLFX~bSKOfTtUdVCv+jr)I zqQ9qi{mHS7*InJK@1**p=`|ao6Sl!?I3>d^zwzVD z4_d#t;>?XPu5aA%O|Rt(D~jG2QS(w^IpB}G3t#)M%GlZ$?;#V$Ic?J+I&If*&QiC1>SLPnR{UeQ(?Iho4Ox`$hV~+iNCe*4+}bedR6h#LVb* z_1uOLO*QZ`Ph7^_r7{Qee*4G+xzr|cS_IK+{`)VP1$eDQ&N&tvCa&PaW(p%>)0XmV!5sfTWX-wP@^u?>C%r}TI5 z<&2G&4eeg{k5hZ5H~&}F{UbJCu`#_meg5 z)aH8l5?b@dZ}OAZ#N61FFuJ(*>-=HQ6}^^G@MZSWjDkf)@Qs)7p`LMv^Y=b>O*nif zDz~QX@y(uhW>5M$f6O)i&T1HZ{OsQ|QmcOU3;3E?@8a>_s{xLWEQ2t~2KXy0#d3oK*iWi2h%~;ZK z?qtO`6UH}Pd*tHn@w+!(*IeAZpihLGijJRsJ_CMPX?wh@ZRnx=(b*Br z6>k^KS+eUv_n~W-zdLrsh?)&wZ33&tr;F0w-F02l*ducgQ8*GUEb@$WjjwUP*rQ_R zm!Gt(DDr%Qf^6tgvtfW|X7RC#%8fr;JnxIv{Y5k8HYD%+>&Wo2yMHu4XLjSM7e~Nx z;1Ji`hA(dYvLZh2uB>0wxNDl>*3;87xA2SB4_hv5sy=<_r)V7h-`z+4^65RLw`B~h zzM=cMcRZh+Y2gk=Er;`0&HnTLHxlzVm7l*F_%ma^iJf#`;pZ?=Pc*+@ zk>738z0DV|s_nWtt*$Th{jp;eO}7m=QSt7W%^y9~klOo1<<~G0d;U*G>LuO7VfZN* z))$|BbLgLq|Gq2yQ;4H+QuB{W?q84rzZz2!zvam3Pvhh6TRQKHM-HA{R2;q^w4}aOUG``Di)jJlK8+)vJe||*YLrZ3_pV58*^1kt^FPpF0SXT)C z7Eg0;x@~hd{JP}N;43CePzXz_cQl*&bCNZ1kI?~4s%@{j!eLs%NjZcKn*C;Z~!Z^kxM9RG8{hKfg$v(wk4Wvn<-Js7?F zI0SCk@CEh!_|ir58k_dtma$~?qifO{GLtIDHY_>P_p|tnve}K-g1-5YhQ|K8H{5`J z=J4*JwJivmtU%`$Antd7JHPJX1Vj~+RexJXuOm0B);UM7Ia2Koe*#8a!{t{i#pUR! z_+=DbjO!y?j94oACW@X6J#KF8o=t8wUIzWK!N?qGPLxh@ctC;QFr(Og1eP<0;i34) zXbY}HS$&i!EDN{5Rd8X3V%3PY;AW~1)!<>%78pZtjJW#$g~1NuU!d`4QNm`xuT8tq zQqO%4EG#R>z``? z;huFZxrLAazjImeAiXL&=j?MTb#Y?NsdrCBW&S<4@P@4k;e(Y`2ZMlW`6nmVN&R^Zn*XP(S0e7iJZ+zs_d;pd}wKX_=WC_MMrD*O{{4Q_hdpUvOo?z z(2^G5*$i^vX#)AegwCb+f4I_Lmn+9>l;f33$W70e!t+4IuMb7TIvC!BM{9HC zI6yhxsvL)WF#ntU`0(p;;8>s>$6W^_BEAM4w~YPcb{G>&5;s2qneH{{i=JQS$1gc~ zu`1e7_mJyv8I81fG{Lv-8ej%*RJ`!Hwp339hbsH}Ct>{Qe4uDJuA#fGI?@dux8NtW zYkt#IJ@cKoPvbMLMWSA%b1#I}52>G-gMx>LjZ%$gxNLQ}N%1NB2Q*EewXY7Dkl) zBm@0a{^eC4^-6`8?Rur=cS1H=f{r?k8Xwc5_T{8 zUwAQL6TC}OFuDcpdrnn8VF+X1OV}_3eJrs-`EX+J5cr56ej5Kn_<*Ad?YGACn+z`} zC?7IbtPzsD5@oyqDnqalv)*u%}jZ$6U0hwy^D`lx*0DOOALIAudDj zC6uD~5{As^diTw+=NbNw2VhSPehD8w^+?`+KfI)Xyi2{3Fuw7+N73%x9iJdiPd^X4 zcl{x{8kit2E9qYz1-rCGKWeya9lY|;_qtR-jz!yU^EaTKIt6*D8@^P5H}{644LSH$ z1lp}fhSxT~47-QVLv6@Hys>vHwEjAm@>a%(GT0A{g1tM~A%^ zREV%OdIkkgvlf9HXsEIic*6%%QOJqmRS@#lgw?R&xCE)uyBF8x0Q;qG*x#jM@&+f<9~5KOrAOhNMh$^J zzTvh`LAAT4H>^qAF{{^q&o7=hZSXs9y)&M|#Tk zon8m~tl{5oeqyBOQP-uD^15VYL{=s2*$eO9epC~&J+^z}%Z2^R7i=E>JfLp9{B$J@r4g zuXevT`Vt@-ziSMV#vtiyinJS|pN5ELF93gA&t43G!ov{mqfI>#X)TISk=Dc^vtne{ zg3J~YR7Cb>7ovC^C=6zwdrqB1M)i{!ecKF0j>#e__x=Z&mwnE6rZ`9#;(8mojv1YZ zg2TCmUqW+>gY*VgvX9#eFTfBvYVfdxBG*IhCCzg(Wqf!k+K!#@W=ivMRmFnMu1`Nk z`TO%Al*+CRAJxQ7IgpT1$WOLjp4y6JCEq0z$dLM}Ds{;BS_pF+LEAs*J2iR`hm?IFZZS@LbV7rb2f z=Rw297I7OyneU&>bKH7hw>LKIVQhkHypn_szfhWE@H=@|onjQRMoAj&Mm7z1KxJpWVHLUU)mc3j^)lB_Y zdFISTJy}*l1!1t5@z0{qjf1f5*imM@b?=M1m`)6zwR;+j#~5lj^I;1%9e!6go<)P_ z^uJJi^{;?)ddS1nMy{B)V@KFvv2tz0QAHEe9i|B0P#>#|lVeA<0h4MnV9<5>pfV%} zuWE;j;-80SdPoTLC9?lN?!C%|piFZ5Mpjdoe0G9s6S_t#$1bL%-ezIWwoM!Fm?vJ{)HwY=&P6pZ%0%=$F;x_M-(f{W7Bz;I%m4` zPB9VL-U*~K!7M9yj@v(hxX4~l&02=4HH}13e+A258=nPNM zyUOg8Ho)7hZ8HqRrbp%8dNhJ#c8}kKZeY*f>)9JuzWlcPCsw`ktEz;=UC+d4+%)Z) znYC-4JhJYhE-lH0*X+J`(xr`kw#KX(^NVY%SG%{(9=>3~`thSbe);l@BfsBs#iiA6 z_nA=sO#JMd-uVW;C0+SY6@0_G;QiIhy93?5QSb@ew!F(*8h-y!%)!R7KYi@3>Xm&C z#CJ=+t2(#OfssF{N~kM)X63A#UQuiZDYi2e+q#j8?TX6_5B`2o%)z_H{&d7$)lc_1 zuzhWhxC6f*^lw;wrzT9TpPtt%zybSQt%;XUm?;nvv9agQvK8@A{Uq zy|HnPr?U40CTntT{kDBqx9s0py?AE#HDyD#z{iK%hHQ!GSH3t6zG59$@zLE?)$6ax z*mWPg;IZ%x`0nW^Rn73N>wfS>&}(0XS0vJ&L8$281L_xBUj940axr?>9|61ajb8(H zAAG^uJ+ayopZ2eo#6KT|?`%Jvk~(&=YZrV2VB6q_;q{J&X>UOAi^ng5?^i$j_C@ga z;wRfQ@KIM)yHy1Vx6 z4WFd!-3(v#tzO@A_tL@z)rHk#od*X7ge*ee{6YN)9wqa z=6Qxsu6Zz_c1^;Xs1@!p$LBrWynar9&$@%h-)vs@$fSbm#%}P=*UGNQa>bN9SL3Am z<2B#D3NKpL!v7Rhy1UP9rAL>Q747SJdu(}+rt)EcJzhEbaP+`c6Y^Z}3eNPJ*xIr1 z6LZfF%US&X$*zxl6rA6Is1X&YC)<7Y*24Tq0&VQwy(l7c%cFT~OWJNe zbV2d^uP({Tjw(2GLH4nEGb@`OJaOjY=Jm(UUIedg-dy7zlR59B*zwQRT?o}8_(o6a z#DB*&6dr(2$`3Z&1mvyr9?h#geNh|uoWHkmcUO4hbJWWEMKh6A?Y2SV9?gr&K6Y|O zWz)8Me+jRR9zS$<@AiXV!YQsS97|8I-;EV}69L%-|?ub%Gt`R0eNn=w3Rb?aZFheo{g zlY9P9Quq3AABtW+u)IfN%oVF!mkgQy%G#nwe$;bd(PuZNqi3S6L#F37Jv46z{5oPu z3*>dlj^#zo>mG{-nFXjt{onbB(_{Ps^7o|pwuz zf5)Ux-}y20P5HyQ^>I&bhF2D@JW~Cuh9O)2b@!QL1+_hzpIqH~K6=K|mLXGIhv0HQ zm-s3ww|ZV&-FhbaFXab6&dMG(4?e=Lt$TK{=Ynmu$p^spr(-iKUDGe_QR5l2^5cHx zyK@%znVuI_KY377>$&FBeTo`dc5TVIqNQ!y?qP5^et*S~E${ynx;=VeV%MhDed|B_ zb7p1J(;m12&X!(LJQPH&E#p@YjHvw}r8us4)T}Ov|2%tm$d)c~+2dzdjoH8IRfpDyR*-RCyt-Hq-vh)#i55T-nKd# z`gLByiEdy0=8cr%>`R)D!yt>={Q-OdesoIS+K5G&@YR_`$20qt_ozGmXx^%B521*@ z&L+|v6i`aUtcyIyKaDGU3%UBwZ>HxqE#9}f^zE-cJzO_n`nSzUwFasBKJ>-5)}4F* zc>tQ~YP+<#W>2rV2{2y&gZd=5XYJQLS1;)S{m^&D`R&jrr6o~e;Jn+aPsZIgZc5&G z;h`|R`>Ib0?u8eWmM`gHb=bXYRSxVc^n%wE*Y50=sll^{eipkWy$Ig({l&n@BycwW zwUi}Y|1qpIcKn;YG85)qku|$*D7-J9|MdRjGY-c+`R`HF^14rdIjw4J!|<FvWZI4NLwSQXK2weGh zP54=_(ePcvQh3{M)A6PSt6Q&_)W!Yy6`Q6$I_)nI%h_pj>y|z=_WARJ;bLs{6s&Gt zzG3i^Q4@Ek?727f(bSg#GR8f;YTi%Rq1JEed)bOZC-46Diqzu`GY_}CwJf6f%#Cw? zy8iT;e&wUf+g{w=`~B{5?hmrF2>CsDD9e&j+xv^S~?Jcg4=n9C~9_+h-TY-0K<9 zvof|kV)|XMwR747Zwgx48+wSXr~a`Rr#G!~3GMFL-`n+34{3qc*iv!k0!4 z{~O`@CbTb4IiEBwyDD~kM9eesxjhfAZ{9Qo{kFhu<)y2@-S`5S1)qpK4)I*Eu`9&0 zJYst8ut{iwy|r-Qz6p6f9-j|iefzdIe8v3KBKYRp{P69u?X%#vv9e|Nn{X}Px?#uS z=N7xhwmyho%NJCCxaah0xb;H1`qt!(s47bM>S~Dbo+%&QHE2!SxUt)> zZ0b^63k`2P^w*ZxCl0@MboTNQJ->m3AI}~F-}8HY@odP^py_$8)I-1D=GnTe_P4OJ z*0u}o4zA)InsN4yru2eCFrjRCq4&69#q+1Yt@hBfEw3jo1-|5h%wc!IO?=+chLzWh z&W_67UUfCZSP-!*w)?hau+(XeMW;UQvazAPmh_Q2|I zuW9N%^y~iN+YqE5!uNJpub6o_qkd)*)KHMDpX@K634gP5!pPCT^?|PS%jp@Ipt)ja5 zY;@nl#}B-W-o;)N0iTbx{mRunuI{y>A!8ShKYaASRQOzMA$*_(e&7SG#+`Lw*!+j^ z2zZC}O`s}=SB=vK6a(f+RDuUy8-*>kzQA5}`cF0C1>4}A(ad_-{!Q?d!7H1dvZ|V# zR}+RN96gr{n3(rr1FPipgEisd+j5#u9hO^CXdL+>hU!-J{S_tpG0D;wVCj45n` zH^wWgzde@=3&>j)U|ii<0A4c;mZatDUn#n>u+_B#DB(4OdasL{Q5W5djz3h$c@ z(^nQ0p8JOfeo*0~!iJe!hTyH(qgy@edc?y31*Y|*73bxib#aw@YmT{OK2?d ztm|G`H*|>W?1`dY%k$fz-Ni$4N{_nZ!z*E*`J=6#IX_n!G9Rei``<%yMtF*Pm3!u- z4{PtW&ok$e%DU(TSLum_aM+9)S5W9__SCwwYAW`6GKWI#ctQa%TvfTZ^-OEiydkdS zlL-Z%d*%$Rtot&-mE2O4zprwB!?B|L5>MuRm3s%@n#1WKoc_sUZ-wsb5~pnG?rVk~ zIrg5?-l}GJb@IU3eNt23)i!Oltw`NQE$&`~f{kOcOR7AM3%7NZ-QaM% z5e=Ka=wV#AQ~WmBDQ5SRhqcZ1n!%H}E-ZM?hVEmxo!?Y;c;G@q&*2=s(!%Nl-A=LM zR(T57O=T`SY_^RKVO>D-a7N$sEzG)g%L-?&OCE^{Hloi+FR?!XP@7F z#r7>L{@M4Vv9Fyee(>v?vY$K>_VKx&4nBYEqxtO%Bih^Qa^|0LpKB{@`q>#z)Y2oD z9cX_#YE}D}?OVPs-qQBrmFti6c&g>>N!Qr-e{*Vnz3cJUi-&DE^?aM>T+7DawYIjd z-E!`9$*^;C+S^Lo&lh)_KOwbX)TOK5+Pd_yqF4UYGH+Jx)#ala&pz@*@0PYRhZ@J% zY;gT}$mqGV;QtZNfBV#-ahuaF8r7InS=poXQ_u38>xO>*dHv!O4}7%6bM~1okBr{8 z=FKzbQWm^<=KR059LgH)K7J^5T;k~rV7-4#!iF=u&%e0#+y!$IHY|#m(tfU>`u}?F zK309c`;@waZ=(MJUj47!)&C1Vj{3jgA8^k|ij2Ao{@eJlsQYJ6OjoK%7#$XM--PK% z7aJCJ$Aq*bgo%v$UDC8UN$Dwx6T+hIN|}|GK77iAS&{w1qDD?o%l!uo2#Xq>GAVsZ zTI3k0M0V)ExIvNq;a?2IF<`(z<=>z|gChqHjEn5wzkg&*Obq@9vH^o)6|8nfcAAaV z8DSMXa3Fi-ANY&z7d=36h8)I$L-Y@o2S!In#(@#4D~A30DRSg!5Co-QL9f`UIAW)A z433Q@+=x#L0-a+ALW6({HIf7mKD4spQ%wlMC^*ogGxD$Dv@=T70Hg-4L+y%1?Nen)PTG%b z2H<=lx#nXKv|am$`b6n7)ZffM#Rue%l_P%opE3>rr;HUe4yb?1K!tV^48l>IDF0d; z*|VZUZBz52ooU~stqexPD*nMAscSfm7tW8sGy(I*ok?klvr=ZHyJkfWg30HPVNt(L zO>|94NllJ~xgz!U)U*^$5H@runz39Hr-mUYIwvHAMS15bFBj&h`q6B$(`!GIED1xAyNB7Z!DQ`h;mIiMOXFPfLpI*S8-PZ1g}wv=5D%I5jDeo>=dm zJ|Q^?rqh)4v_B-x8t$4t!v!i&4rX}DGXczA8I@f zy5eR)%D)tdOD`=%E~LT!0UdP34^%1uDG;AuPKq2jlyV1MiP|pJSSgUmgSFhjG&tx= z*lwv9q(DL!Rth1zqVVY;aw&8rG6;%XDher(kKqZq6@`xnek?*)d^lcC24TjNibDz{ z3fx>Sq*fHZ9RwbQuK0M(H(%?AR4NWBkWWE~nY9+oM(3`LdRf+-~3~WeXZpJkc2+jQnjAX^aFlhoQ5N#k+7L!_N zkecg2XeU%~X+WqLh}?*bWaU!PNP%QMsyGu)u}aaP1J{{Ip;&P(ghIuH??q@Mt&oaG z3MB1P0g5RtG)T>NCDMoq`8-G};u2fPYoy|l0?GSSnl-An8~YHgRGFJlG13CVGR)%#{J`lt3ydDUfu;CTvJ0 z;K5d=dZQ&aGRiwtA{CSrNV*vc8y}5Sd<}U(G0__>O>oPz}1+z68UjNuEZs5sv3e6NGe=YCSe%Z3XVb_9F?gnA&~BK6PPNu71fKFtr2tg{n$%!EoGBG%PmGJAu<~2L6hy$^aqA~ZVXf-M^RP2MY z5r8yyvopm4MFEi>WT+8-gT_Q)$CZLrxWraojEPfFVFoygVPYqg4G%=PO$!tWiAOK9 zt`P^;P%nZPvRA7sA*d!0nJID&WOBy#=qLtZj99N|I3O&tJnD%#JbD1PMx1c90-?Ms zgd`*aGet~5W(7<@QyS0$A9|b-M3_wrdKT@fW2IJg;=&3@>y07PTB?kI-m2=$E5Id1 z%nG@6m4N1CaTvl%nYsZ)h&5`jfHBoo4LmxnphBnxdcIiJ6~a*rsxwN0ii(txiK;3C zP0Bzqf)TP+7NpVAygZo|53A?aWr&T2Y{*6gmLMFZQ=L%~RAfMmmZ|b7C=dov0$z~; zsibtMV8xf}=olWIPFT@+8FxZFR!F)+Fq%nqMvLqXa*_u<1znR0O%GDT(uImBx#1dp z8SH2Xr>wcNWoH?S>IiVOOU)N8!wu6*Olz1#43UaW2jYi?Jm_E?msWa?2_e;|hKrmyb1R$Nwk)~!<49CAH!Es#*o6`*tsnlFP;Cmka+Ysx_g4(hE$zd^i@UiruVW+lvGN7t4-{sTE*IP;|C#&Q|cxjL?#-KiKzzh zCJTf4F=!}}R?~Y~B}%G8L9@jKQmtamxvc{si&N@i4@ko`(S%}C4FP8rgik_3RZZFH zi&lC)TB&Is&D&r!^ud+ZO2!p18Rq~OWDGO5s15I%7u(1PH{r@51Irh&bb=A;y!D%y1= z801Q7DOyrQ{G>t^L~;hgH#UNBGq|2a5mO{k!~}YoSxt3l86Stkt}87#wsnX{M9+~6 zyNJR{g{Fe=i5CG7nkrR?QqBy)ffXf_EZTJ?Y5?Lfy2R`vg%PilNQI_?gpPpGOh+6_ zIU{I7%4;-*;uh_?(i*^~5%CxuV0NQIksIN92{zWt3^fg;oecnz9gc<)nb=b(Qp9jL z5{Z1lrYm6s6duN{FfKW#QYa0iotY4ziZxcbkwX!774ApMtpXyhge_2FpkUs%A`MTW zmlDBuuqY{jx37F$yd8T$!g_ms%1PD$wpFJxaj{h!ki~ zs4P@4Kv^6%!)Q1%EK*f_uC&Y4;7X0b>rxYFXHBEl4FsB=oH3A8`2{b?Thbv_cRCrj zBCzLTNfxYI!LzsJN*gprS8CJXgq%<{sz@t%q3C7UP%ksoydZCh2C3d@k)X`CHwA-< zKyNO#<%%TJ$f-7tIS~U!E)lC#U=)ZdYSF1qwW{fvV=lz2yl@gi%oKK90gvj<$mk7& zDj^tE^%jlx28jYTNErbQ!t4}4bw^3eiUxBYSfyl6JfxXS%9Tc-`O@mtSyNGGMN8F5 zkunn%F;=8i<$4gWCO;7M)~sW!H9xX8!n(OD#!U6eNR_HF92F&0@K}gUDl7(M^kn18 zXShfpN`b>{6zNS&YNoDOJJk;>R_bgF1SC`t1g9VsmI1`L;_!+^imgD+@baqyTaMVw z6$@8=v0_};1wuoF3L3o|(Q zi=g(rDYt5nY}i&jM337?s=+MCx>8df%uq15 zR6tT7d$B5%_Dp<5OS;01bYLo%ibo1$FC(~t_H2Aai(Kimi&5X-c?FUegl-gd3D*_d z5o*ds9D$Q_qhaZ#K&+8fJt(Anr#x4R3=WzFTi4`)Kl7q7c##4btgHmVVdZ)?x>6+Q zpy5@4Rt?@+ab!g=1+pSB>Tx5D@*qfzuCN4-syDSB1m7&B;)xZqbtw>QBvB6*FUK|O zN~u#qwa&2&w1{#lrj`PU%}q4HV>UQtTq#v_z(B2PFblXq@npp+1+pUH>w`$mI%Hfa zRdi5rT8%XdLS1oX#VZA}A`$3=$<4TATq#w3#uwTvT`4t4 zxq60^4jiP4J_dmkDUiTcMjUK@Dh9nPrRF_QxZoA_5eWQ9fdsa4;^2EAaWJlwDn1ZM za0|$pr3WdHC5stAX|ow1a5|nV>l6gnzk!_>qyglozzH8}hz`2qBt^=*6o^A^Q-s{u zH1QSgper^+Dc4dUmf4rOV~+6tr7t1+Z6no2DUjcxCBjr~B3QJ0z zl$Jg#X~J|=a!s5XHaN0hBswP~ghf5zo{W%KJ#tW3)Nt1{*R1{P;hhQeGl7!k4(Hincall?uD~96-~oIG>6}=6>$1)S`j$5ztTt}k zh{r1A+y`^JCJwu^8(t{m@4WL)+*7%^xuG0q$i~*0K!>{q1}Yx0ka-7OJM7MZ76scy zV`F3g{{3+u&6zVN*zUf6{GAExs6Kt>nP>30g#iq`5bQ7*vL#Q)j*kN}a zo?agUASt@+vdbKp?R|(a#7#OA7$P0y@T%KkcOjBw$uP*G4px$7Wo439oiLJt&IFQF zba1$lM4DuPd};$@ z&w=+P9Cl~Y@X%4w^DQju{0WSFz8``!2{)vGJn;oEf&L_)wuRd?UZ2C{37tZ#emG^a z-vwO{eH845JM1pl&GDa~PKcimLFAP%?o}LuLjSV|3;|4_|M5T%!eWd`wV&PUe^ed9 zKu`G4N5PK4VRyl9j-UMGvv?Sa@D$@G8#A6s6^1&@Ij~%WMJWt&^K}AfxmO2a0}|*& zfWaR(V5|ZRAfbWug-=MJ;OFuTyAEsuxy_LmLc_^MBHdEhRhB3DJ|XGefpV~$=CHe9 zH^*mwdX9x_-)A0d2v;#Zm~j~`mR*zf#lmzwAE6F-PwxGF))3t!E(Y+zsz$Gko(+^Fb~kz1zq-;6I#ba z=>O*hflZ*F`3G}49y)3MuSNZjt)m#|ZB+*zh#Yp;QCT(dOD{0|U#@^7dL;X~7!Yj& z`#&(~8wzB=BtMp_fG5z>qa{EzvHW27Z*j)x$3s6m-LeY+;IKQHketNO&G+s3f{vEH z%KV&FfELyg^fX1v{;x6UPs9D((hO_@>16s`<~|DfpERH22@ykja6+#IJ1U3W1-m)6 z_~`{(K$a`yUI}dQAY&^SBUrTE>i?aW?sTJHc}c(%DDT=FNjd`0#t^4D{s*F^?*b0w z#9?=#(~0yGf&a@DdP@YZTtAyhvyrt5F8Ij|=CDe^RDMpUflZ+Q?V=f=jd1P2B<%kT zPt$&<%k)~#&#srrgTwA*LUI5@-)-S4^MCjeLbzS}A3wdQpeGjpH&`Gx@;Qz_p_2CE z@cd7p|4Hj)FwX#UxAOmH8dC1egK_($$z*3Cco`t06b6+8ix!971ut)s%*+Qa0eo@^$ch45L0`7?#Nz)33y_oL5Ue^R zGseIIox><=xm zB_Cw_wlNZn1d`Y~3&G9+^OWt+%a$^sI_yp+q#$AF&1$$>{a<5{1xBED!X! z9e$AUc^S-vXNNBY}ZxS0|5T2Jna_11wNCERlDI-HE~os+_DYa8~_)xF8oAEcpTwIkR*m zy&tHF3xf2g?Ez0;-wmu*ocIQKc{+o~m0514Xi06R-&iTv^1_?M&>s2zb_||q3 zPoNU$TNs^IerAB_$3SflilTDZohXbT$(flmP!AV@y5ynN;n0;&Pb2|T{RpAUpV zN}vysbei~?0cPbHs0VpbR1Uing%Koq=s)W@u)*R_ZbK@8FbTs#5k@S21q+T)28nNT zrYJ4YBR;>MEaH@r!-Fc^_@Gg+f(=Fh%o8_MWuo#K6AX9IHPGFVB}fq-1IF924-yzf zc9#ke1MMgn{pEA!u_2Rx5-nWOeliEdJVX)*Q;H~2IAejjOo$g~ct8>;NkaUR0TA#N z1$p}#yMU`nGB)2}0dxmbE_o4)ygWX1d+`*+0>{SXK9^BvMQ_3vH0)7jSk3@u|@5OX8{k%X#?(E7t zJb~l^!Q{b^xhf&0cAJUu#20i#06+4x494Wmp-`34bKA9#+ z<^m*VB=;;B80K97_X}n?`LNSMllU;w%pz$$>cRI;YVH{3&w^_(?1w7In1!EhBZjr4r_lkf)6$j1Q zpsnQ!#AzHwwl*Zmgfvio zE)r3ZT>?Ls@xV_SCBJMFMa7kq%K;Z430zp9geLBcGXQ}7pP7xcft^^$Za-;SpmOCu z4;efpHeB$3So$9uVF={};vmU`3`wK>Y6lpwx&Nb%Oi&Pp|F;H`cKHdGbeT+n$eAH#TT_&-6>T}hY8krH8KkLk%&PH{s@u@Zd1~UvuL7ctEy&xB=7Yg0iitm`i9b z6uC3rTLaZ(vinV32Z|ZDG-R&}m_107=|b>sQs!MR(uQmTalpnK6C_jA7NeY)8&$R> z%)%RJZJ8Uvct`|q?Me?hD0kGv!h`|UKs7l?Pgta<$jBj0AgYcnFhh}q=l{(vu9&VRKt1-1IVcURc0zVUj}ffDn*}0gCgge{LasZ~Oj;YL zi=#by}{!D zniDVM{okk&^(>|qr0D?(W&dw>0dG!dCJ;B%&+$W==I6U2OmF&mXCzVi$zw7Sn1Es6`I!L|U!W4X zV+MZ!!!SM|2YiRY_#79!{xVN5tu-zKaFPSweA=mR<?zn6$`vrTduy6JMa>x-%|gAbWr`r;^cfnFBs^avLQRUQjW{D*{g} zL4DNqtwo`kK-?CbH2P@kp@ux;`+2XSZxenl<{=W?9RHuEOuE~6vk1r)E%L~9M_NjE zpNPShobC=x9;8{CjvUGXpSx_e8iS#wOjNiU)c*A$PHe)28VU)7z_=sR))YaecRyQ1 zRz8p@KYNgTNNTGgc6%1u%k-&T23vTpJEIWVZi`j~COIT+^mDcsIbyD2TQ@Zkr$2J; z6#+>I(!Awb8i14qofX_`yvG()1;2sZq}4nItv@H&}4+p_V`#6$C_w*On)n0Yx-&i>1?1_EO!B0G!AmCd#z==>zs4&9Cn0zl z@MlzjZKx#>H;0TIQh*uTR!hmmVs}O&UX1rgpLap&BnSJ0OWGG?FW6TE*PStS{!H(< zM~s|7UHfq-Ofoi{FOUm?DL`7B4@Smgs3j0$<~~l^-IpK}3v`4`9*h{80r#eFw_SP> z>l=eHHWLYRYxDn#Ht_{2kvnGm``>V81_OSd=XvuMVJ)l#m?p?r1qs8wA|SlrJqh~X zkdR6sZVofo;r_MTQu-0k?s5?p6|^}SU_SIC{ZIhr!CtOFmdG;~4%=?q?dDnJj+t=$ zTsRr8tYA-=Mvo5kohbSAy@`xQDEOIGk-LD%Ln?u|MaGNThsPQE24`!{4CBYRRw2D< zYdkYsGZJSs~qi4zw(Fo8H!CLXBza7i-D9?7LRJh3uk7z~+sV7jnODFB$Ipr2Qkj7Pv2 zZxfP+zQIh~8Rs0|T!0mQkAS{#CX?WoxxsbdRm_Y)QVrP+7TnjNlR$`ves&-U^x?M4 ztQLUEa&BR6vS0$4fsmM~2IS@w9dx(x79%+w;U4k%$joNJzO$RVW9DSvGQiv*;K|Fe ztBHx7qSJ^>Odp9|*hm@dGxv@KuER1XYH-`Qfb3uf+3KE!X= zBNxvs*zkyQa!_%jk`abT0&%F&eI#|b;PX{!q@tN&W?(iRX)Tn=BO%NljEboOj|mm1 z9J?HtCi}3`lNm4sW9g0=TJld5kTGV}=ln(`GciJ^lZHE1U=m0VJV?G{Vff}K6cR`x zr&EW^KHqjtI>qRPkuaBl=&r$7ajU_;x=HGwzyv_6f>D-n$E^3rbZrt3WQ=+I1QHW` z@KnsqDHFUu!N8RWcQN<_M=j+tASNt^COxJH;c9IhRI1^`X&Lz#&@ zfb$!)OIhdgzgK8Eu4Dkf598m-5opYC@DgbBWg=n1fb2nXOz@T}7^pH`Kx1H?!=+`e zBie*phR7Z6Qzm->yb8DpvE>f33JD>Jf&mY+H@?-vya8I{4I1#GzTn0a3?Vaq0yS6L z9ZMu{J`{|1$zUW(#2KUnirk6h%)$xM=>L;73{J`J0Pp5EM|mo^aLlPh8SqEWWG~nO z_~4G2i$whbo$m0QY?5|n(QAT~S3%b>w4zk_DesVR$mD@(DWi3!YD}ZavROVPm^PW# zF^)hh=?JKp3yPtF`>Z6DeEgC~IudA+q?OMwpWVTv0Uswp8cC->(x3{$4qu`ev%yS; zAsC@C=8%$fcmlcW!vNlPfgf&#Fo5xz91mt_wGTH(d}+XSK~uqX;R98m#sIjcuk>Iq zfE{)hs4V%w10#@5EbNW=K=MO2>F@+HGaK|KT(&>t9ZmB31qy(!~&!Ddz0H>H^kw)s>AMrojr4YW^b+YX~;ZXMr{Ws5I%yZ$0{y& z)MkY-Ga)WvIxg5xWDdIvh2-OBUOX&2pN4$sk&a3rGgfgA275j4Lw-Wj1co}9mK}J0 zbl6=e_NQR*hg0G^5LY7Qo=%@rT&+O254t%a*l85h*idpOhd)wAwccIe}^gS2$ z14AdU?@A;cl0e!izBL5<0{O0Vhh?1fy}*Ixio@@G;H@R^q033MRaKF1ldhW;ebI7^tX8<}qtbS_tHjSBh} z0KI0*)(5b|?tF+a*e3K#5e}>mgWVkG`F%?ueMiGn1U{N{0qqEbI~SRf-A!j3(kN-= zGt6OkKF1kUL;5{Zm}Wa4*zIQ9w*=C6G&g2!&CKUh4SZ3jM@ci3IX zb}K!>!uL2rHqMX@%x(gi4I_%Ceo{k03 z%WTUn#EuO$G`-tOAa}O}20wR|4zm#1;3cz)1GnAK%(LC7=u~slYnRX*@31@bU_wDl z-xE9UhCcL&tpsvcEUg*9)JwiW~I4~hQ?9NsyLIF%(uHdfBLm|Qtk3l|xFo!Vf z7P7}k7l4qvqZ{IR=-BY+dE0@H&m4BwvAOlxJK2YXnXDhbv1Q@0icvkJ4SbXlR&IJ0LI$MSg=Q$wm!je)arKQhGnlK%eTob2;MaM<< zi$sNlgs`Xw+%u9QqaGSHacWXxdRWx`vnQr2lDnr*NKOiix+5h$?GH(_hP$TEaHS@t zrbiA6iyH2l=9+c?j0uTgcxTd_l*FVFvnII1qJEc@k~}3na`3>gsL?5t(x*fY>>m>r zH8LqR8Oj3&59&84Z0OK1H5U3)$v~B%F9Ss-$K$v|HLQ;Ei`{pWcPYP8Ai3VPK!GP` zhnwRLwFGpSV-!G#IhS%Q1=8~9&)G3YT9A%A)EswUmxsP zca&e;cq#8vAYC%;SDf&ni^_3_I`17d-o6v9b|6UPg6R~Q~**Se*#Ai?BzkRU=F$n%o!C+9p3SZd4Q(jFzu#NXHNQE zX|;JPOj9GHw3`M6&pUXXnNyl;y)3~j`5XhU;p(+&&S|amHrW+8 zbx;>VSfaW%r!?2vjNWIsZ&Bc8!jW#NS~X`h*ZSNHn}$+RNP%oR*5LNI6|{QL7?d+D z!)2YCswi5jZdtT#V9BTee4xb*BV!Hw!9pmT5}GP`0oyjv>lpTk_Onhoy0(Z6?sC)VghS>)Ns%A{H?1(NkhaPq8j2_PuZaFcha z#z+`R%mFOeh(?V=S}&TjytD-A711SGhm;Lwqy&L1O2=av zg&9EFi??ZJbY7H?C8>C%K=uNVq{MB9qXfH#Wq<%P7uI~Y&;6iGz^U3hbHTV zwnjE|J&-8 zT0#M!p}AN^$<=g}P%a|1QKmtPnZz1X!XPT8B9a2x2vXs*977m|j&jr{tR^Zs?!cqu zLc%EX1RxAIJ~Af#k69LDPeGxGC^UCMFtRv7pjZ{o?TF7Qb9?9 zq{EbA!yt5&AYObj4tRD!l}QC91(FU^VY5JEkLYLt^s2?Q zVvX0@`I1Cb3dAY}0OAHO!Oyh|u23o}DUf8G3Ku^^UIq+;qgP~A62>Uy(270qdWo1{F;4=*@Y*3k&oc|Q zOe!oXkYuD1To{6mlAH*p81e9!ji>2QnM7C^Vx9$r;k848o@W+pnN(O(AjwD-E^{n) zhmPhromL1}*mTg)s3>unwh$xWXcn+Q``v9dG}bybW*MP%5=_vq>{yxS4O+uoNZ}zt(|~SY%y# zy;+lcu}~tObW*w^8-l__8!~07z|24-RDQv>J1-4mYF-61E&$VURYsxLw}1`zjM302 zQK^gyO=2CGL^K*1d$uO0EF}CO2xTEGs#HR~+dhNJ!7O^rmuOq^l~3-)(*YI3RbC#t-Kho9j}BL;K);Anb?VDLrA;@O=W(zruNz^ zSfwhq@?yMpyb@-BBTtECVkeXh4@9_43ls?yc|1G>!s+Ec)~p>8V%n$3Opy}{aRJ-Y zj7F@;hZpH(p-W!9uw+e5Oc7M8h|CnZ1~NHgdvp|oFh;CbG#n5XSswMo93DNuyJ|HF znK3b|T07LN5mGCQE(?W?fXoWmFHLDcV~9aa3kVBaph29n1hr~~kc2>Bricm1tbhq< zN&{NpLyt3p2(xKH&mu9qdD&P~-|EJ|1w07oRjFZk1-PV$Ss}Ns640D14ntU}zD{Ti z1wD?b$xtgM2^p55gy?vJJky%(LgkcQR}KI zg9#iXbVkMs3({z5UY?9)VtH77=npqT#3F&34v|{Bvc!5tLz2oVh)pfitePSm#iIJ4 zB&f)M7%fxfQ&1obpai@k15!!pP{E2X)zL9LIvuKL6mT}^d=gkWR7nwx=Er6_ks2J0 zGA(l{XbTLWCET*g!#i>DNN9ta=1_gmqK;{`K7Os~`na@KGMz+&xb5Kp07pxGFIzfP zsTqf=850DO+6V=chz(RHVt}SmfyR>tV9&D5fTK+{2eb@#s$ODR!z5yeRBSpBKP==y z2jjT3(rW~O<5>G3vUG?!5sYT%o3SX`f>XvM9EB?4JK^J1EPLXEwJZv>M2y%-1qv!V zEmEb7$gGM<#0b6<2CoC@DmtK8gJD*Bt;K-T@%mh`bV%aTx!{^1p$=tLu`u8|5p$|= z{fQ5kWCobdo@<7LI+Rt#!hq|9<)lG$nZcQ;6r`2DgN7RlOV<)^oCcK6gj2CF;5y;Z zP$JdDd!lqyQH~j*C?mn_WD$iIS>L(I{)P)|Z)({O>LFvsA0K~D7f`AaC1WID8 z`sJKddy9ZMh9VIOTLj?Bxy=v-rGP~=T)8InEjYzmjZn~Sz7eaOT6FjfLcKt(DPWO? zE7ycl!D%3T7Q~=kbsDqbtg#prsz75G@eAz0Oso+r1vXkM^qeR(o&l2cHHe32L1c=h zIfP)D0yY&n@QGNX)OkWeoj|Raco0|+786r~A+s9>b3*{IxmMGAS=o|m4<}Y*S{LIn zp{cP^sYan!hq!+OMx<3O9cn=O%rycbjUiu*ALOE1r?;7 zST(MjYZ1oMmquX`GwmOl&~;te(xDEGD_k3q7X{2Akr*>vKZr`?i*_S4)(8MV<1Ncv zLQy0Nm`5ox@M5`sylPxhLFQOIEmH90 zUKw`et&@_-7Xd&48*@V&8E9kK?3jug4EE2rFvLK9I^ra>ESIv?VBRurO0PSJ{5O+mEQ3A#c> zVj{D?Cp&(@P08c|jp$R!XQyB3&i6}Hhu0t9t*p?F!hKi_-M4E(8h@=|Ad*)+7uPD4YZV4N6RbHVA5;_8; znT`-yJ5yJ3%*dZF4n zMyNuKA;>uupaf!_Z`HF-MptAwXuPQN6doOr^mBk)t#_iuubuT;RKpsJ&X+-{M8@Xu zeHx`YiCkEeiNHV+Q!pr!K-o~SLJv091dcRXqX8wc@*v`-DD*{vfgIny-32L&Or69lR?EuqlKxQX}A$eYe`uIQ+WxF zQxKVYq1Fg57L^1}jWjAyq|mc+YDPmdkPt0YFl;h7jA5@Hh6rbf6&mX@4k;^)w7fFv~ofkA+w0x>8J8cm@3 z(5l?CfSij3p@>qI!wFeZHL6G}5X$@y8=7NOM+n4+tKKbG#P*CKX$&LxR{3Fg_1=;^ zQn3-Xgv6vPXbI5?QNgc(;E$43Vf^efl<*@MGd1y zqE$`L9CHp{WrPz)2_iWb#nuKC;Z@IysqUaE^e4)~sL+`kD~f?YjLD2jkf?sRI2$gZ;npl@fevY2(agP*#O$Or`V3`(u4+*~E)S1A&ZP(cu!0yg3(XpsTL zxT3L^WyRJKg#e5fZ&k{gfaDz#m&8_A@CE=SS|e1@Af_yc3W+tOj+Rt3t;JcvTVOP` z%B@xPXW|$YXq8YwgP5{n!^jL(4#?}vfVL1|OAC;y_Ija8a;9FC4TqW+ud%+Q>2+yG z5TQbE@2!b~0yzsJ+^FDHT9mMr1qiD(2O_YhH#iq6%$Y=5Rc<443nrwt%SPIy6eJw5 z5E~9vUo1lq>Y|`PuJ@*fq@45`^P0#3$4Yg<(F9r~6_gZ6J~D+)9_~L<-XU%&)8YOH zz+sS&iDN7!lJ^i|t(Fg5J`YZGsTK`Rr&cpLt9f@IHtCQ|qP0*-y9lvXOUG@|exgL)UcVjm5I5n2#($_ev3+3H}VCK#NYe0xP) zhirG?x_$_HDFRsHMiW4Ojf(3hv|G&$S!<84=b(_91;cZQ^X{F@*t!{?e>z??{xR~c zd4AYdvUNUFAf&u#47^exgO!yaIIJdKjSdwFI%rm^K&uAttT+lDJ;iMFq&6~CTWt)O zYK`wj+-l$LZCe^0vWZvgwwdi4D4y(_`C###Yjv!uumQL>S6S*1W+ODkdUm<660he{P4FkGt&i~}fEJOz-?oQm--SGJDz}Qu7009O@IV)%d0Xl`?Szl-o$gc+=X6hnrS2ngv|K#KGs60`W~P zrNQLpI%gazRdsTs%Us*Q37IGYM=W4s{Lw9?%L3~_iJ2()v{E3xsf0AR?3@7f4wV`V zH}woBj!D2p`WOOE&mq)%R9hR0t=0$1X^EerVDlTo(>qi%ubm9&UulaiS9#}Rjg zMg1-*C3#AEL#eu0zy5kS{$Mi@@P>D$G~g-a5_aa9n-&Lzotbwa$>74_JUi^pnH)Oi z<$(tt!0R+fqhn6L-;O#{>RA77+_({sUdXv)PCFfSj&R4ufWsr)VRw$D(E&$y-gzgU zi*j>w9dP$UaM77khkF@@E*`^>d52y9Fx_>IaEJTd;SuhzJBO1Q40nx3M6$6Y?2t;SWbof7*mrKf1%@Jdna6Up1JZox zlD9|TmKxY@?Hu8O&8N?74v%n$-T9oB4lyJT?{MY917L^5Ks$xIIov}@ms!pyTmYC` zK5UYC1{eangb1~i(&_!7m0?LnMo5Ui34k9VNwlPZA4uW83HLAZluEQv03r9v1tEb! z9s=0)og+Me$@G)T;SuhzJ3o`-q&aysgNv@iry98SP1fWvrGOUhvv3oH4kfogC_oj2 z5I=JZ20Vc=S*7P0uwu0SR6{DI{xsx!V+%Jaa!)aTj_arOK+gWWZOsJ9V$$7p+?rMJx+EgPFb!95*6z|@m00ss>!Lzl(D&(UrEdguLQ7@ zx?Ju76+YNqC(s(2m4L+VzzyA*rqE1c$0)+{cNJwErv@LFAY^sHqk0M`_M)6(_y~}4 zR9I66fsc~A7Mi2Fg^))8*65ZPLZ^sIm7+WiL-`m7TD-n=Us8KYJ+#K`c=)rzJt&Qr z8C>Cm-HpdH%cIq>Sev zmieRzxjLY4&t1MO#k%0yQ&aP74R+)gnpEUyeNFO}7~a)1IFVW53ZIr%I!vPxS8Eb zoiAmH^Vvu7pe*ZebasPw$>xH23PoCcO#MX`;uSNG<*f*3_x`f-uO80 z>RXD60S4K=dZkAERu}AhAyrvpDC1!SK(xv?^!WH3`6dMC*IfbQ2~@5KI#R2$H!Ga3 zk@d;SiW=WE!uVx863>l-C}t+W7Qksh|Rz zoOCh^byBxFtYz3En}$qH(X+x8AT%6Y;e*|oDc{AEch`}Rr8r6Dex!p8e{syUddHQ3 zRIWI?2GIn8yC6;EOH=CMw0YmY4B#;ZWE~F1M7@^j@gh$Bj(1l0V-{i8s0LT~V0T@i z%Q7x6uETDa;j1k=(RwtK7#cEhK2Mu`og^&}gEW?=;^XT%oELbtJK)BmTtDnkKG8He zYn+*47jWSbQSb}xX+9UfWTJ|1=P*z zA53n6^g+t$jfR1$lZV={`;U52(CH?rj_g_CZ?sBl!X8}VgWc62(@Y=9 zoaKWXH!(0V71Qd$S3jYoNYHsIeT|2-GT^BW1mw9k=HWCfzkY`}?=ldx!avP|A6(&s z-QB*Xc-JR)8NNpB9TJX9dDckpJzj8KrXvFYUEf8=LwcFx6!0K0e&O)nYpC+8KjvbY zvZGnyF^Ha?Ke)mNySsh)7>-jUjKE{cu3O;&RIVKIB2*g zJH2t0!AN)HSI)Mj+1IS_w!pqEYg`7Xx4{)Yz}<~&p}t8O@ZU9uS8?hgIDqcL0lkI$ zCy2_glg2}O7j94KSJh{~=R}~V?(L{O-0S+G%9qAj;r&2cag?sB3 zhE+HLHQ3!PtHb-3h<-7s|5QZ!z43QPoG)LT>c38ssext}lXzPQsCDdArRHm1xbE~j zKs;ij)GHT4Aya8>s^5ixTE|Wm&e;ui$9~5U>bB77K8#$#-~ThPkMLNE2>E|euri)u zkdCR4PuYul!_esmayxOi*R$wvVS>Z8cn)9Ed!Wotx8w$+_4Go(JnaBFRE9AI(#s%mjH=RARn+QeU@u7gGOC6G?3eSZ zyak1^$*a>Af0_zsxKydvY$%*5c!j7oOWR@YS)jb< zp2dt(ngD3Z5f7U;z;q-7W;rz?IzgIF1gLTtC^-xf298${^74jtseF+ruSqpqBb`n- zs~(Oh+1%m}%_qmG{Re{Y4Z&C)z$TL+qr`BXcq30wH z6jhv+Lyr8CXp-8cmvpbVRDW9nV<1gq!rKt-H|)Lg_(P>tK2FM`d1O#Ky!j}~sFpw!Q_{b__AWa~^XyZtYiK%^B{BnSOVL|(S+a6|tJ;f!Yh(y+* z9S=ugh4uAl<;sL7l*%hM#1$RLXLY39*p&RNa0N(@;qz5Eqg1@1)KfrgN3`POB+c4Z z*oM+|ERvSykHJYR(qEM*%?Rh`-wu!-Ww4#GbW%7qe! zsq{Z|(Sm~sex)M}o0NexlD*R4KpF#zp+>31WQZTWR4nMg(nvw=r6atYm0t?W z8g70e9J!$BCLq&H)38(gw&4=_k$|XRW`$$j-*kmzK?~{!4b3cg)Oqaoh=#^b7D~7I z%PXo=SFsgt7UBA4rhkz;YjC_^}io&3MKz z)h!p*)x5W>`)%)hvCYGzi%|^RI7AcWI{DDFu5iZ65}?Xo<+eDs4PHi?+jW08|WFLuX;6gQ3~5c$x!lhA}Ig zSG+mkgDc$WPJWS8pL=*UZM%z|Ntw0nWUANWj0p(5zHl0OLt+CU4bkA!#Cd6FdAS^+ z*#w6xvu!~pJSL{_a4HjN9#XievC4^fdQ8D1E--YU$YlL=tM^*7!h5W5+UAp0xN}2= z)$Z(XCYa&d@~n5orcKEVAGfh;QlOqzzg3WXzilq{p*FEF0MandtV=u8!@9yUg=S+M zZl}$E2odvm$(N6Bm%_OM;j>uHrq1=Q)g{u`AGkm5B_iU)} zDXjA0D|}%9!D6FmS@6**t?{2e}Al&r@V-q+2a0aa@L zA#c5`TY=Mlxc9NjPTj6z*sX{JO(tB>aJzw%waT%`XNAX*>B@hm3cuV?d|l@cBmPR0F}<5UDXQhl7W!m}`(6&}KMxuL@Mnf3R;@PNj&)JehWOxcM1RBIaLVL_%`j^%I6?pUYlZhNO7M01Dbqg9Gm}0jxQ3m|pK*dbM`c>lsVEetZo)r#+pRB^Uc!-c2Dm?WdQ-9wM z&9*&E>7hpE)plQC7f9ohZktHkuxqUKhO{O&(hZxf|EU%hNWFgfWKXVtVq)0+mx?ST zW$A*hzb9vT&lL{86X*D4*UB|Z@(eZGEVI*3YgTvxw!E4|^sexPyYR8J$?GP*jj-$b zCMI$2y)XFdJdU4+qD99qFF6*Fd3G8aRARnzfNe<+)wg2|z_ zN;?{d&utEGUFI{(7iq zg?pAv;a?B?lT|nuBoQboLKQ%%saBgh{6#@4%M^Lh@9Ou0Isc|$2ahOIVrxE#qNF1h&UK2;fMmWM&OV%6G z;!H^qy_DCQh^+2P>RBpg!0P^qYrHAuWb&(_Ca;4`rwTNzvMJ_aqU4Z%ryokm0K!s4 z7WJ3L(5!TNJ3TABYzZ1xxF-P99dBegi~Zs;cqt=o65XojlWTQ-f{W(uC`^GkHSOpU zH@^UPhE|CWfYhH|C>btC)Mta* zXqj)erus|ltZ+s+L43*;o`8j>VjGG!vfOK}Hnn=|PA)3%@G8v#`y%|g3nfy&sZ}mz zLkh3{y3XDQK+3*yiOP!Nr}(V%*9=nbm-?fb7O`JN#rD3L+9i`-H}#8_12C7n<{Chj zXN5Du3F1?(@B}P0728nq2GaJJ;D;u;E|+m;3E*9mG!7bRW?8rt4&S@oo4%z=-L3&A@KtO?nr6Lg4qF(7DN@cR;)#q9j?jB zp3LA^-eh?9Rob}(K|xo1t(DJomrm;i`0~S>uGI-XD?GhApKOJvVc}VGL-BUza?Sb@ zij6BmZaT7DynmJDaL65!9Q8P|!-x8QzQP1U4#$I<4`=H+10XF3GHk86waQObHASMf zOhF>7!Y#e>aA$)t0{QX=2Z8mCNv8SobyKTzE#Xnd3_5qY6P9O%C&2lXD?9;;a+yVz09Cd8J1g7?;NS%{ z-G$Ae=F(1yhc>$&I_4$8xdeVOc_)|E-f)9EgW(6XelMBFKUd`8e!6u8U>V!(&^NW`)PrhGmA-kZiqWzXhxgtykApHVjgK;;Q=*2!3^vl>IsP zRS6y*r8)(GzXk6HsKd9dCkMs z$ghryGOtop23gCYj)~m&c>b7K62Z%IEv{JkG))FOZ8Su#&~A>>u%^MQa7oMxzl10z z(5k{?_7y+jPVJGbCZoJysCGd?#|v#Vc?ouQ{O$4-TiI5>vNshpMyyIF=w3yX1uTMwmjo#@b;@s^j<$ zoswUYG-t__DtjFI3QQ^(wFjm5wzTq|KJ;U*!`pa|EJ7~|%vg8@d<6@J1x8w_gyl3V z+>fnV%CZV?_g{KjdvkJYgWdpyL?o?^{TQ_pDi({Om!k11rx+slCQTCfb1R0Ue)sbj0^=c#MFM_^bMfU<)p=++!BLw+ zUUd>$=2Y+fF2Pg*$SFUq_Bd?HYAExYEG%!f+u*>P8QQ_r|1JU-qBU~7{#jH`1a`*NJIPqrm9{HYdWo} z*wDDi36F2YU`k#xYsw?UC(TjlVNKKWu~}J@NRU!M@8x8HYFS?BA*#|aY;q%w<-&aB zw=90PR!pchB1mV2JMmQL6<2t3cj`P<7ZvFaTRFP!;drJbn zFhSsnm}SdCRe%{v4&&SfsY+0V0fd2)lF1qZRbD11f#+G%h1$rM))4vNj;+wc&`c!F zRM!Ss*z!C@`Y75MR-p@+Ro`~O!pPfW6L7-3aycptfG{iEkD)@Ztin6F!(Nar9T!fV z7wA8zeEh>KhU!KKdH)Xbhn*#ldebGW8#`kRy7$Ro$BIruM zp<8^(mr>QzH$p0dSH%W=fS430pi!=JjS@7xW2F)<{HCz1X;TR=#ZwBsvH;|X88$1_ zwklxYiLytd065AchLFb;&`_`=RFqtCrUi<#!m$Li!m}!;U_+_nUX?u$(bfjvv=fP| z?U|75F@-LXI8qt0G=Y`6{aPZyxffE3Bt%R;8Odm~Xf#rlopOX(rz4nBTTGe4S>rU7 zm4ZiDMuLnyDxnM)cH$c2>=-g0rfX#}Lei>iGnk+RnE`h$9uZ?(o+datT5j@FIA1hwo7dxi)Wy6crf4)etDy#{q$o zre`ZEZ)9C?MWoGwrIelb%t|fY?%$Q`FPZ4vEzy-vl(=-k6Z^Q@b z%nDDhshoY{3YTdn=vEsl;o?E2&|~G!#ff%rU_c&Q73~6%aF0cVXiXS`iCLWZ{O_UPzU9EH3K#lfu6yS-BT(zgyNM(p6X0SXW=6apiqhcnDE~ zGq}PByGtZKUCFN#iNj1O`@B8oiq}_yL_pI!=vI|kvzCx1=Pr< zF)O^LHq^rPuJFO`YLIEAOW*HMbQ(CwSQuPf5RukX8Jte};lTwd7#Xmi2 z9@t|VoE83<>yn6SaD@+cmq>i@l)Pu+7c7IlKc%}{AeBz(f;0~WXLZTb0WdnXK4mdk zY{Qy{bUG_MtNaF6_+WQgP;?cRiO+}ACQ!G6)c>LY-+)kik$?T_O|pKwMr4}X3QyznIJ1K*e6YL6!I>hFzg?OAq{-^kKpLKmI3E*_nK)|Y11Zr7 z`6dZIjS+b$VAY-`uilBw3h#|@EBk{he6YJ#C^fVr{{yc1rmG3CWsu5yojf8Fiy|G7 z3XC*K;pvS?v;pJO=i4?xS$K*1R8A%4v%(cP&4&{00Tn*jU30ja7?l6pCb(M6=bCy{ z%OI8aI@xMarDjNIVp0q=9&Am?$qW&YXwUzQD8whtnH8SK=MiQHSNLFekASclgS=GW zf5FU@nanH%av{YXMxBg2H2))O+096D{^v0M1wxTCys^8A-`b}sIV=2;*L`q>4|ey+ z$RjrS-sbX0FAtu}gM^m_srl_E8ov2{1}887NQqC<`FQ1AcL}u#uhY&Hn-%_;H88ls z2fKSr%w<&aNoPLeNMwrXEJ)2KQ@l9|k4SLTNs68}U(WlNNun3R>$fu{XN5mz4GgaE z!R{Uta}|~Rk=}gwrNAj0WFd!6|U-Yn=$;aTA(EH^R- zSNLFeHv*gMS|Wpo_gwWUA0ps~6h|k2iI2-3?lbh<1U}XRLwN(FH^6g^LckLo`95l1 zLJ~k_P0b3=f~%|W;0hn?t}ApsjPrl$Xuf0Y;qmEh`XR-+sh&^ycQTTILGxEhPmg3x zg7U61fA(C1WT-nUJj7%?XK;lNb~hf+CLZ~B1$Yz!Vohv*;zqI{#RDmB`%vKrRh*=t zan9m3@BEsttd@8QK$KaSS_uRgUQg4Q6`nw{c#4-`Oob12R}9O&ia0>|jpDq+H(84s zNauZ~ehK)|$g*$<2E;hKr2fJ$y*DVJ5`Z0gp+Y0{)X)7e1cKG+tK;Ee`#cB|k6<&j0 zf$rc6AMCCGkcU;_-^0xRj-b^VO-NfId1;6L|I-2UOW`Td3V~VSt&qI5Gq}PBySq&P z%?aQb#Wzj!Fm1SS6VirYCQMD76X0~6n#gyBmyHj`xrw`%*KdFQ`;Xthe*VouefZ*c zFQ5JR-4EU^#7}<;R!zzx?+vKCYa<|K{_rUSHn-?CX!e z|EJgQfBxZ{?>>C{`t8SeKYn@t^AG>_;rm~H_xYDl{Ke}ZzW(y{Z@>Tik1y~4?)B@h ze*5v=-~8z1{l9$u>yN*E_m@8c`46w(eznkl{n=ms=;fzBec57>|Gh*j8tc@`RNT%G zCzgAcW0#O+J(~wl{m~xc#7y1g*(GF}&twj9G{i|HahGqGP{e_sy?E(f*+ZPfb9T9R z3B`T5W=8nAC`N38lPT&n+&lr4ETTB>HnOK_$&B@+axx16Kqtp_*d3mp_}g zeY^};dgBKl$;m*v8^aZbOQ)ZEG1KFC(s6)!$rc3najjv~{3 z)2pPydNE2CXtvtPYGCtpUe<`|JT}F8q2m&|uwhU8EpHGQX11B-!+L&nXFhF3cDh531tPfT6AcT=k&5fZAB*>jys9CLUIXZ z1i0EuV@TFWFfF;rSiap(Eagr-S4=LUi~v`A9(j-BMaHt_c48^_;< zc8592>B6u}=)wj~XILW9<*&=K5Xx{Ov__Dw$Xr6MXfrI4==#@X`Vh)+vM8~m!-A%~ zD}EKNE3%Xj$7&NQ?vy1{G(&;)vvg$GY(Wu=jAEI?&6YX0GD#plpBCE8Cq9&AmpjtY zMwO++FvH1F*a@X|D&cRR+9Te_;b+3hAsi9ft*1T@BMTKVbQao2hS_~8`I+Nnm0hhR zv<{)9-(%(CVhJyYk|jjEtG|bhg|h6NCB(=!Ed(NDhLc5fw-QxbCw8gCCmC4&#)U{G zKEKWwLd3fKdp2y?ISZUdQR646VBmMMNV0lNZRN96iXaQpW*{ANauN)M*m9CM8Nnd5 zqa{w`xb2ge8n~S-f`{(r>|kuv$`7~}W3wQQYB3VgTs01a*zj)pU?|noFtBr)4F-qN zkP3vE;dQdevC>`%lCw^()`VD!B+n@jZAN9RP_wxwd&e)7(txG42xIuhRVv?J*rPz-05TylLjJcT1=`KG+8kwHde&T zS>Ysf8l2?fGbDC3e=>F+Y^vvvv&c4bI)T_p-Bw$;C$X!+g@Wxx8I?kkPKc?gb(m1K z#5HeIKR&cThLgp}Nqw_=;$=6IO9k7D;dBdclRt;LiC@{enpa+};qHF@v;@vw&y-l0 z&_B)Xc2CSi*Vg*G-ePB`jnB=EF(X()NRUE+$kf~-LGyuH9%FN|eps45Cy+WRZ&pvd zM5Qj`N|uJviA|dPn5qYpg@{PFg217sD7K>bnZrE>+f$j7&8CV3T*aZ`Djl6MCpM-l zIu;_rj^T0>vz1glj=3!e8;UX~c3$9`;jGfJ8I!*=UD54A^cjia4Wn)6wQzTs z4$~10Ie#T`bX@Xdh5&=<*?pcpmlK;KGY*=|v~5QYu4yOXBBrw2NvQ532Tmkx$FNJq zX7~BSs!d%546Q8;(~~P7?b*&N7D?R2GNWyu#&K04wh7Tk)ZjKP^v>kfJV`_9tQL+^ zarm4lo3>Icl2uw+pkYj77q4vRxtu7=w$8#;g6nXVwkDR?O+GVMRj1G<8?l(4 zT^zc7adZ(PWhgZlF&7DJv1Dni9%2&~|KPcT+l11x>DkpIi5$)?YLT({l9zPlaUzXz z6==7yNLB}D3p9!;9I~$1HX-`ZLG8BEv#XTD*&?!AjD99vIh-iN5pxS$Nv^|OzOX@_ z1j8aXA^I>Q-~zGKndfk}im*b2NZLtGng&TD$ZKI6@~gDL_nbK7$x;@)O^80M2q2rB z+-y0Vts=s;MW$UjoG7Cadkb4hVi*zLCPMiWhm=pOaIgtQ9YG^C#|9nFRuNXPiL{yY ztYMK9LSz?yD85Mt6DvR9Dh4SlrXKD>`=_4An5K;Aq-;We6T6nUbmcK2gNlZ}8ahd` z?{FD>UR_eV(Eh1Hz>sDxz;;M^?8Kv3h!kZ<09J~|dadqY7WN?STa(F}| zDb|q8g;sWrA!!&Bk|l%$xl0hs;R_0e`fg_Z+-xl$C;mRz=J%ofNkaCV!HwJ8X3igr zg)=8^KzmyyHB*nJ5SbPdeqW1Hpe`&O(-Eo7mAw$cP()ow2r^}KpA(;}rWi9ROvXr( zjm>WSvye54RH9+`tgQujmWVT~8}H227S=JFF=rLiaE|1S`=3wm9u9EsB*^~t4 zl+bQpd|nt3)5?~ZS;%#Ei#MPizxKz&T zWHj1W`FP{LvcvO~AP@TxUMCyceS$bybw%V7I+?v3tR^p|Dg~TQD7_JF+ZB*YC=VIR zFi$62I_BgIEJ=-P+gE9HKwCUAUU{#WHv`veu%TVy#;a?$D842ep%aGrc6FMOd z{%(G@aZ|4mW2>vk9J5_QEbS+H**!&|ovdTQ+{P!JP6OdJ?!hG#S5M6Jvn-q{C+l$e zLn8Z7DD)y%S69YeLRUuY`HrR!hsw!1T>h*Q`{)qwN3FiD%)5lHj6~*p+Gdx^$vQlP z&7wUC6^8A~C1k5QxP7f}0i2zzBcQ!~;=>VVy~sI;h&`83MAyUaZGVm7>|`Ase>_pv z%bY`q*mDU*bbajp9uS9evJUBwFUWeS#oMJ7m(Zn^l)##FN}$D@<>Wf~7M?d7Rsex{ zmr$UU#~9&57k6HS_0p~!T|#YQskd@rVaeq}q}#O1w@au+h(jC=ablw3^6U~a&1W;= zDqAO8VTcneDwpGk(97$$zyAHl?_WRvW}!ZO@w=DLK703rcMI{8pS-;P)gQlmefR!f z|M838y?*)e<^3=J{fmz)=kLGy{HxcO_domkqUo zeE$3Y`|h(J!{tA}y#I&SZ@lFPumAe5zxa#4z~4_6 zfvm(QTv>3{2oHvOu)7*$9#HpJzxov&9kY{oR%gQHL8+C@pZ@eGDo()O%4WjOV0Vc~ z-rUqLe(?)hssH@X|9o@7j}LglH6C+RCY30_AK-nky8#*XcJaUe`@cW@;SXtz{_uxC z^mg~w?N7LFT*3eNkN==TMa5zvdPg$YUGH?d+Q)L>#mLB3-!+}y#wT385x%tlo8SC~ z$`y4xpqUJIcbWdf3h-?N#3KZWS2Va6;aM2*{P~~%Icf%fLE}P;HTA#1!POLsc-n27 z)T6=GHoLcCjUO$?6zyPlZ)Fu^oD2~*-GKHkT`L+bf?r_LiIeyX$#hHM*JW+r`8*C> z3cXKoIQSwx*xlP&P`2WR@og)osp4BYA|7<3O*h1nlq0jmiWz8H{-x^>`Y z1tVkJ=ZW6sCTl1-StkViGA5%v6q|J%rb)gt{MWu@D~H(m+E-I z&ffVw25JoV8Rpjzx5E_%kA6!{82L7T7ZkdCSdLt7EK~0|2fOQ?PQ85zNbCYo?(ho(WhNxf-N*OkzMlXEXzDoCssU%L229>0hxs=J1=$zz#%hcVb) z?{q5d%MFNU|4M7Q>hduG8v&c5W*4wE*pcrsXp1#Dr0#`F!Hc_`YQmH$ZfHvK(;3PI z0^K|D!R~seQ*2*0RqVcEJ7tQz@u~iCh}3^!gnK?&Q-7OecQ0Ha$g+%OzGyF@@TbGU zS~D6=j*m2SgWaWrxocLwUTAgscjkh-2QN1WEJuACA=lo*i;!d4JXS$s6HP=mBD{cfHfevM&$r!50$sDx=5!Q+;bwpWuyfrI%G*OPcrOwD(7zm7RY8 zEQ8%W4)XHU9(lsbmzMPCQS)U@3{Sc7;idj1$z5>85|n%Zh9%jjTX*hW5CS07KQUDvzWa;Tls9Pw53!O-B{|?R{JhcK0AlCU0Wc z+QXt!-`8M?`>n66qRQ8~cfmDmU7ppEJhld0O9s2UebsOcmb+}gn{7_H)33$Yz9cxu z$`ZN}E}71x3lJE*c7xp&0Mb@Pc1~=!w#L)e1p|zS@u==lH^9XYSN#&gaDTT z>aEkGw1j%FJL!5btzICE{0Wol*jQOSHS|lLA4zInlH3SaKV&{B%jz0j`J8(R-C%c@ z@$?grZZ6q=^=v)Ib&g zn%Hz2!QGOa^53p^66z%Q>kQ8nyAdukp2;jgfa?uJ*OH^y2D>W&q+Uhc)$s27X^)Oo9)%$$|Yi1-H2-BUGmA~At zc}a3FTqcH-S%83A$KDS(gWVMXQm=Avx8&|2iB9(-zE0GM+`^z^Vx9Qr(+$Gt^wt+gPvxcSUbs4~!l!9gEoJW?bq{tocuiHS>~tAO zB&FV7GTPwxUfD!cv8mhPiUl_L1qi6?W$#~O4t7@nNR7(vk8kQHUffAQpqbP>hSb0k z)4d%o85lY(u2`r~{z3{gIL$%B7OQ!)BxBB^aW6%AAUjk-j{wv!5HQRNFITvSJ1h-W z94G;z*!5oSDJP9W!l9X!pxVei)+-$kJSMUOIF%10Y45qSx5GsNqlc)nR2Vkg6zmAO z=fYJZ&we?z=642Fd)PiT0blAibcY_R{wFdRrB(#C-epEoK>5vWMAB3l&2K?fBx;B< zMoVda+UCZrq8bku0>*~oFi=hyA`J8v5b{*QzNmjZM8&eN-WyG>g}VDu47s%}4VpA? z=QlT-(N8WxljZJ+vW5{oCse+0OAivhH-ugZ-N z80&8lvNa+77&6WI(yy!sB-qxMG!D9Vjy3L3@V)OLGCVvk`Jq!)78A-T9Wkv}a z%^44gy;q;JxE(IO@F$-5)E=yPB4Bq|0^rOz^d_)nVvC+gyeujO7nZopj#I1HojN08 z__X4qjbv>rl!tU(e}p;l48>&8%8>jt+BM3c>qX^WxcD}bu6A|xEq)}CPn}uEQ@FSV z9JS-P3{WQp))FcTuHFr^%$+JcMuQ00MDYU|`~#s}C}EgN|3jG-T>R8!3Bv^Dy{FO$ zC_oZJ*r_>)6KUQE7avI|gG7Xw3Lh2Ax~sHPP+I9AFK4lW<`OqQ>;|uCfjg|Y2?gpr zc64IJ`P@;u%`bJdlxp){R_SE{)CeGboP8?s;vrHi+d+vG?t%-6&>8J%^(sgJm~~C1 z^yTv=PPzmp{ie(v)I1m%lr;wQ`eg*mx$aC55M=m@EDRem;f6vXHQyI-t?rPW`c;@? zjDs9i)0V58OCviE;IUvr{#|epCe9iNi>Kg*#upMe4RIL835%imVW-aS-uY&^Guuek zCgn3o?w#fsq8_Au&;=#eqo@#u+OsN7{}6T>HWTG{3|#O+ex2@AkQnAZn*cF3lB?Uc z9>R@~en(W`o#Ew_3ykLIuoZ51 z!9{lrXBJ_QzzWPP@cAfg{!$_<3=&owpMm39Qa-F*cF5XAZ3kl0hd~%nJ3$Jax<%U7>xR%IVnuiqb+2RfB zNzmyotafJsm@$M8iCK?GrcKEVFIreNDe!1C!b8k>XBFZsi_N6#Q@aH&$`pT{YZ2B= z?khxYn9bj9I#US6mCJse-B5vzNhm+^M&+2oKA8X*nSfJ}9+a-0=LW-)@O? z+D;)<#1Dk|09Ey%hV|Ey@o@3^<*)4!joid}+crP_iwl5vR&H1Hcnr5T7TTj&CUfbI zJ2@9H*0geChKFF==hpFCqYV5@E$lchHpX8OSdL3OX@T)@p$Q-h|Mm&16zW-bbyO_j z)}+!Ef3-PRvemb+ezrilXP9=^ivmutvO*pouCS5%?=!SyWTC#y zxFZ4l`r9BQ?{BJE704ArMExBg?LFZxypS}xhH)!q*Y!&*bL0hL`*QZ}(&2JYf|ZN% z_;A&~Bq5;cw-R4SV6eVu>2#>?NU@UU`frtf%n|Wp?!ub`BcTlle(6NOqtx#CqrC~Od$>Pw~gV`)C zzi@18`z>Ti#@s1BhOJT#w?pOqT;g<4vev3sO=~%C?RbG@BVXjN%t#v$HvFuEKSS`6bf?l)KpH}iEN&U+Wx|!F%Y%xIt z6E&}(YrD&o-S2?Tt!(cqsqtHbZdsK(T4iAlP4p@&WISAEY9`anH>+B3 z{85eN_Mb2wxiRbe67{!!H51#~VO~u*F?X{45`e8z4)4;i-y|0{68`cHY4U7yf-xNM zbi?~XR(0iz#KCZ7;a^`ZoL%MWDCD!cS(q|MRcR-*%p4Uk3Z@bPwrmnHcd}54ZWRVS zv`YJxkNII<;Uhr5^@8^SRlzwT5eXg9m3?wBT%3!C2&*Oc5t4gR!+u-;XhWCSdOHaW z!>wJ3K*ATMOm}?9%A$p2+LUM3wA`vkaR6pgJlmY$C&4BVrNiT{#Y=;lOsibZ4uF+zoM7ck5^}`Wi0BGeEVYnt)?sc#;9E^)QWE*fEy>?q=H?PY zl;DJiPC~eT%5)bp>kmE(l`-Vft!(cx1n6}Zd&xb>VrE0WJkZ10<{aJ^oLZCiH4LsS zK;-7-e6uV-m`kp*v5@8!A)?8;z{@bW!i*A}ux%FP%QwcF8c;hT5%c8~H|@&KcIgQD z%4)$9U#ipynC`+yo+b};+|@b3eqgE}5jB6Q%a}_?m6u+&86#9Z1IAV!Wfm~o53X2h zCZFqsiGsT&canlGL{Wt&VDYOJ$V17Ce>9dp^_~u3ZdOevG29b90ZGjqzjdREMeDBWlMXwcZ^v^w?wVa0{0`p2#CC>l%!uRG8Be)8DKDR;NJQwF{vG2f@o| zL1T$c$tKK%JGDo$mLQBxtw>o(gl5wmg=CK_km|Sa*s1g5PAJpq0id)Gx(8h8^-{Ac z9t_Jipt{>QZ`XLhS4FFq0P#2MN^z~wI?`7FR7mz}EWJ^*W%%|soePysjyUiB96)6EU-C_HPN{l|}$ zDXD6v$I&DGrroI~T!w%;5%4etcx4RzXchlu{p3ax_F<~|wyPF;=>%YJxU%3?WdmSQ zIawB1I6MCd4xX&kLUy)Bfpp!q=$?LtkdA?zefVQN_YtCahd4K3NFJ5^n13BtbYE%o_IYcP&FR0m&ihvMw@_`W` zlz9YzDsl`59B0aDS@0%SSxopX8!`z;UWqiuHpl zD=-xX5J1z;vJeWRGGQm{Uu@OX#<{eK;77I*osp7(yOX;kk)`k%AQNO80{+ zD{NIrK(GE$5di@C%Uw?b2tcioir;SvYnnEtEH@b{0DA{e;7;|r*t%fd2RGpa{%U(B zB(tXY>Xj&RCtN0sXhia!lNDQya3{F3LJ9$C1qE8AN>KU2tkV}vsU4(D-L-;%T1JA5 zvcNA8E_R15f%`UKgaT7(Sp2haEdfON`E?5<2fHhXu$2mm zPy&lbj3$;*hxnKE78IDHToC{ix%LnnRq})M;ZAV*F;}gO@bRlpNxm&p*|%-NA-sd# zg#nD@VCTwaGSc;1^mQ*>$~zVgwfYueyeno|>aEVrL@tBfB_bIxrQVOVdcYYF`7JJP zge&|_3kucw;^G#p9?hv*yWS63gWWv>+VmJp{c}L0euR{3Vz>(~RhhJ2z3=BWKs}l+ zYMU%}hwUPO)jlU{n z=f}eN70VbdfR-Q|Wi zKwkb_VZaS=Kt^3%l))trEb0mLHvzbGM8fmZ=wDe0IFR%!mPrnFR~BS%E%_Tx^ws$o zo(8-OE_qA%Z`fQs6SL}4;V}?TONUHbA(;O)`g9zYgc<{J-`x_RqH z+u^se+(rhRs<%VhDgcSLiEt}NWM{Cuw!!zXCeOin0$w7V1($gz!F@RF58$Xag1s=G zH!qh%3P=D$gr#H?da%1DG50niznB%w0tJ-%Str zzGkqyTr_T!m&nX#oXdsq!-c-VFXeEGp;6Ou2|jSfP#$gc;4|^R#9s->2aN$uc(6N_ z?BfslXAkD}`|;x+9HAdBG!1n#;kSa4fI;&$?BKlKoIBa82Yk;p*xj334hooGC*q(4 zVsA8yVPR*%g{uf|GEm_w3fc&0G#NbI40x^|2FqYayb2%&xE}0oKt?@WpnLFTdq8{d zk-|uuHE_*F-DIWsW;o{T8|%;(@W^>rnyvg!xLP4uV29sUp<)Mg=E3d? z0C_+a?!EJ?9M9@ZxI8GemEkYE0DfD`rnSND%oyG%lV1`J_)hJOLL|eUa7i?J)BL}> z0N8u`g8jkn24pnY1$qb`KW8U#!am`00#z?I80seOUS7Zb_3uA^|N8ki3-#fP-@SbH zH}8J%ZXtg1lb83u`r~)6@819GKYsDM*DpW5y#M9DfAMkU{QWndfA#wE{%2o*{QW<@ ze*g0i-+cGs+t+VDzWedZ`=5XKw-4X{^1IK!gyJt=|M2yfuYddf=YM>8|97unfA!ms z?>_tNuU_8&%h$jD_}h1X{Ueb7@cQjnpnvpNKm3~?z5Mj2FIzD3`@>1sA#ncxuT*Di zYJUm{tiAA4NOb1d3IRGkTUncSo*n_dZ#{jcGr?*ExL7u#+Tb+s^a#wFdHN-8p5R_H zfA(iYHFq!#J~0BbW}bL)JEb;jrW3GFY%YpEr));7o5TfxoA;r^6e5x9iLLQURQ!0&L}&gYs!M$J4z%C35F3AMw~ zYstcI%}3c@ASEF`ZXGpdzo{W+{!v&1`OK$&7E zi53IHal-5>otPgqjiV=@f#m@}zt z1=C8%blG(Yg|>Tg;vuawr$0d)r`f0_EftulXOIi0ooJx8{vN(PTf=n);u5NfB3m~d z(GFMQvFZ>>bq|)x4$!AS_A_LCqKj0|&{x}6p}2&uj5M6Th{uDMM~0C%LT7ykVW<;} zbfeR9VilE)3!1~akSm&Y1>+Jba$lr$5sn8hkIYsxR*0SkfygV`wR5Mp82PpdT3)GwpS2!*qr^9Not6)5Md1R<&%y3!V zLzos8CMid!#l$Kp#+T$C*QH>QfGZrAP?7t5rOQ}$ysEFai=q7Z{2COfLw*%>$O#d* zZK2~QT>-g-{61?WuR|fc@Hg(pA+q*?xP=BY6okXjD(H}tB8!e3H>F(xxrCaA6*IO* zl176>@Hb{-KNgZA>(LRn&|t=q%Id`{*B~UP30FieA*aJSu{Dyk2?`c}<6=&cxPcZk z6vVZqRqk4Bq=YLZm(YNyJvfsL{>I~Rio^}HnDOKSKTfe05xH%+VsZ(&U6u>3aa^cV ztoR$1V~Mm#RKLvxMR93s6}yxgEZ_>tCDc7|7tADtzp-#wATF}(?wEQjK80~*%_ntb zrS-fkDwj~}$O3z=C`br@1NDu;0%?($dMmywnTI@@oCl^a!B%j_?5t75CU-uU#LiHk zJP$%m@h~yPGPMN7ab;zdx)K^c?+VK$)H(JHlo!!RG|LQGipnh05$$$tis8bZOX$Kz zk7-w2E}MbUPNZd)S)tK~+(Ni8PEr>_H%z=d>jxtxPV13?I_C@I82lGvGNj@Vu>yUeUihe)7&1B1f!IbLN&a;DZHWKJ_P zj*k-Ip-rd+*sLT%P0WT&y(gpzL7x?A;>ze53~H znA*zsSUdJ~Tsr3Dq;V3Wf${gGvWBlX7#eB@OY4z{<{D$RrREm?#)^q7p((99hZLqG zf<^EUBQ?R;rdIwTmY_BZ(x{du5zSR&Da1BGoNM5$w8)(~7zt&XI~akiV33qx#7H)$ z1i;@p2@#grWpDiSro70BFt_XkXC+s*W=6)F329YHl7wRFp%AhxT0C>x?t(HNiQg)R(Jfg=TWYm&Vvon>wxEg|IxMOr$Sn4wkL%ygMCCpPA)nUsJa30;^v zra>u}n*qf=g`iaqSyDd632O6m_+J=jd56eZ;f@gnnd^B=O{oP4Z1bzMlBHoxV;3er z`zZ3c32FGx(u>f_VS?vLKc>FTva}{>UUSXy?r5)*Wvm3X$OE2C`zBS9Uk&%n&T<9> zs{l!#Ww#NgO#aSHsO}=(6n0npr`C@JLLtOvz1~-En<>sY4CUyVTX>7g5$S_alt*ST zq@e6#WG{6?9908E`d*%&?-g3LUkcYJsQY1t(1=8)%+pJp0=E!DJF^BgE>S(nLueY zBO~P_G+W8SV9{Bn4`o5cG1ykfbdKF%6cr9q}{~E+L3QZu@gKkk(JnlG#P(Y||cX zwn#XlBV`uawzP9u+C}VIwV#`_EHk#w!nMq-($)m6qB*lMZAVJOB?O%%yhYYl*X(ly zk=aGa>;4d3Logy)U2f)fnUxp+!_qDyZYOVMbC#uK>nvQ$%qkt5u=oehc67|IluHPb zOL)uwseftp^sMl&teV5kSh603%tD%W4kk;xh(oWEB5yfH_V|>}!d9$xxQfRnEdIeG zPsiA#Ttd(!xgf*{dvleZU4^{j?hd#Oq-TheXnj_wdf1?0i=4S+HV6 zK5`7$QN^}SG}>k2!Yz4fAp{!{W5kX`lAPS)irBTH-pr*m93qG1MfeyIwHZ+Cm8*E= zL-LWMZ$}lWnTYVVgcojIvAKlcC?XdPkX3?ZIY%9_dlsV6=4<`1=D~A_u%=~a(`T8T z0DmXzKgmgkoh_;$goPiP*`$Msl^<{wgOn9h4_!h~ig`@v)0B~wj3J>f#TI(Aw|wZS zeJn(xGE#P@_s>m#AM$6yCCj)8a^e=}!~>1hkm7C`gb?|>x};n}h-;No@h!u+KFwS$ zolk0YyooL!Mj&31UDY(Rx!7g+GvShD+(gVt)IdyO<)5`S(dEOMIP=2MrXEg6j!S4! zSOul#Mw09~QD7zSIc_|P*vK1AX&oA4sadONY{??e8yWO*{1ATNHkL{uuU zO)_*4a!mIwF_+L{ei5|XL=8kIlohXBX3Z!s;n2#5Vlfi6ghP{Fjz8tqVk)X-?r^(F z?z@X8q83mU~O!Vjg3IpoHz9*as;!zQvDJ`In-wa48+Qqm=~Sb$)}kYR#YF@>`oL;Wnk zqs?m4tlKjL*)S6^ZBv-FvI%nIR*OXyshP#@rgHvpI9wI3NjG1(}BiRceA%zsZ>L^|?bO}Lgkqea1 zjMbFa-bs}-Pb_<|2--8uEec@MrZ_HLu&)Y&T)7NfMzsqB&_pL4pbv&XCWXRjKp>a{UB610>SuK*+=~YOqp;YL%P$f9}<|*QIraUex zS3oYIB}=!UfFzG3Wb$-cOH&MEYsT<)W^F;8nXNM?d#+V>2`%>Ag5}8!aB&gb8Ug-X zh_#zGQ>G{mCtFkpqZ?(0qrJI=R;5K!Yd0SIgK6xT&8-o1&y(HRJ8=tw(bi+3-kNl+ zfJ{joqPFLcMr$@2uL1PWQ$!o4yv1-tF)pYu7!m1Cx`b9?zvOPa;FHiPP;8|_ z0d(IRBHS?LEe5WcfibPFL~thQ5?VF=lBOdkbBvd0Fspm~i3)U>&?)aR>``pv4xR&( zI+Q?QVYq}ya}hOdv}I;Q)YkE8ZS_7RPZ7LId5d9>Vjl{HUZe`dcHN>gr5 zNKGBD##Zk`@)WVFl(!hRDE5(%??$RXY(Fj`Qq2&xeR;XV99aRa&PUgb?)EYWNm~K8 zKcE7iO!63%3BmvO6RGbakxCWg!U*G;hpaMnH5*lSXR%& z@)V(;Q{KYZKZIOI@*G0MkxPhm7ik`JCh{U{7|iN;T%ICwmGTzI@*#w}k}h8^Ar5n3 z^!j|~7`hV+B>30ePw2q%J2Va}fFMklkkA?lWo~RD%o=iai$66sN_B5ac@Nj+-X*kK z9RIn5H{9!r$qjxf(OXj9Fn0NN2@PK~;qZQVdvl=a`E#53b~SOoS`2|gb-;u+Y@2n3~aFm8@)x_?vzjuHu| zM-BO*;(B@g_Se7v`2FkW-z?OJFMjv(*$?0S;N3#}rhfAz=jUf;d{*MI!tcduW5 ze0l%NfB)j+%K7_mKL6_V<^9jT{`mWUdj0Hhu3ev!pvuX^TQwi_{T3l{prgVTCld0F%g&uJQV`}@gM*3pa1!vPnFV4 zW+E^VmTuI&HyU;p)H^O%881SSF#fr-GAAb`gu`66jPIz7p{ z&NL1q8$j_~g{zxmBCe({UH z_=~>?k0j>Iv+3wT9`Vs52|PF9*peL3^K5#9D?CG<2uuVf0&foi zoK1he{=*X!=s*174>*$W`v=Noo=tCWMQ6klfr-FG;MozFXVbH<@XT)_FcFvtygdZw z+4T0-Y(_j0m1q+e2WUO>b|_X2cVLiNHkQ*%6p$)3dMe z%x@wv5tsJ?z7WS}$8VvPdcf(+ujwAy7zl}D}CJD==FA;d~vuPIgMMD+mJ8=8%o z8tg6>#^m=yfd5Bn=KtVKKaii*@*|&3v#`fk9eN0r1i&BQeXzR$8BG_2fc*cwga0j> z3Clzv7lFq-n`U9>u46-a{LcbYRp9@t7yoZtHMFlx4R)uz&tVS)P&WL(DLv+r(<6&% z^IilV@NAleeQ!y?JN_r@sW8xC1{_a=-Q5oF(+9x+ze+(oeX=vbP6#~U*)$8g(^_Yl zfSx`*jEChHd@xL%V;9`>%+Z2972t3-^Gz(hk0z`-Qtl8IE}xrlHq|>qU`P{LJ2RDE zqvs|y;AZH|Vx*Wt>8`V>zOb8vhI&Bl0Utb8Ip_fe`wA za1IKC(Wu-+o=gY3^Mo{IOa$cF(c@W0c5kjg5IxQ&*px1q?sqnEox^oySC2I=&SDJF z5Gxh%;IpZBVVk=t&5SK^L(J0wJnXF8xmdW~aSnFZJDq2>FPEvuyD#}(MK!DDkjihp zrLTU~&K~REMW8{!TI|tJrqhW=CEy1h4HrelIrwbqUDyRcnUBVw=5II^dh#NHg;TT5 zhlAZUkN;CJ$k%?fksc3Czz|Opsz>p#Il{4fX{WA;(}Z&Aai%v1XS_jPXd*hTf|=KV z!Z!V0GF6F=#N;xzdj;fOVgM|I-QA1rTl6k(>HQk4>QOwbdiNI_ke3& znCY9~@IsG2o5mD&*(%^IH+nBFHqGn5ES?9^k`I-g?#VLK!S1B%Nnau$@0REu{dS7# zQ9P`F52kX&8N|jV(c`;juI>3{fm#I~$|V3j;4)0EhZQzwI*ED&)C-n=S7i!yu)BJE zJ}C?GsTQvq`sFS!v9e#`0@>DS>}+cLH40)zVN+6Facc|Ccx!U4N1jc?3VS@H&+SpZ z@Eq{yG}zs9uU*6J_`4EnApL$VfSCCQ1FBgycN#kco1Y+f5Tjh0Kl(LX;@eHBpHCDq= z?={8v6VZ0LW2vcPi-}GCVTwd`Hxg7lz28d=cK0|qKWrrG5d+V*T|-p` zz%8rcb4Tp>V_&TjAY$C>b(cvQ1wm+O-U92)2&?7Z!PG&VB?CwOTYRw`Rr@{3&Z-@9?*hXg5GD- z_`-fb%%316+Rj`&z4zK+cTccD{ZiltORJAzKVM{7JvejK(P>iYosClsvvEb#zqsbF zw3`1Sy%K@PRA;z&A$nKZ_`-fn{uj|UxNU@qNn}aQf2u|9?1hN&XiSf-5Kv3WyStTrWoNKE<$Vqb0q(K19KEly z~YSfy9(P}3sg0B7PTo<4muTRaGJL%6lCS4 z%Z&e$iFHTgr4HO90DgZ?`>y`#lFq2c9WF(&`!EHMzYu^}ItI@yU`M-a+q6+aFo+0Y z84JoWR}v`r+>{lJJ?hE?IhJYhZso2BLV8qX#(rxSl$H$8Nk@}@CNrC0@0 zDK>1g>}YUhvR~d@&F^gJOKcnj8lA$q?Xb)p);e|*mccV!b3LYfaeTm9lM+JP%nF{f z@Dpg8S<9p>=N@fYzNB#ML@o}1mMPqoID=GFY9$cv9rzpp7-jDTA7;<_ph z0E%eQ90uwQLxh12213?9IxUzrj-bnTGkEOXx@D-m9XL}Exm`#aG-==_?SnSOS}_aU zK}D{qiZ(VZ?n20v575d+gvvp|#3F3V_b*Vv68Md$CFv*$6IV|?X(K$FSSFrQzQR+C zttANb5VF(cu99#xr)m(mv9LL8ZrZ4{uzSd(1Qk_QjqD4AY>Y@>PIaZFU%AD~HgY0V zX&iL#9JAcePxoJ*$KLR%vHU-JAxzM#@VN=m^O`=d^l9zmT2W#doxU^6v zz*jZSf{8@pWxf<#1&t!huistG!9;KsEIn6vaU)Wp1P-RG>x6pWReyQ&uReU4 zAQY4|Wf40sVoQ*9h*MsC8}Gd@{4h>Q6M-8G8}V?nO4o_Ho|Rpe;0_OEyp;;7+62(g zR6U#{Y5rnC!PWZ+cDmy;f)g(wV!bP|3IuyG$ZCVAn2|d!;V_PWAQTiz7^c$yupJ5> zqUkAsePNhDqwN&3X1|g^npuu`W5)UbA1KlbXe@4)BM8$Pjo<#caZdRg3!Cpkmz5k| z&&uw=(oR7WsH~RQdx_>3-N9?>ahJ#)4H=z>7Ze1B=uyfnH>JyJk;}xFpYUC=6pPXD z#eOA${)PxSW~mM)JC!P+!IzS)XmucF;Zqqy3?H0XS(a&IB9WLDA6^Pl3}Y%LpX+e^ z_BZ31%me~=6*jgoU1-sQ65-L53K9j0_I0VH1mx8#ckd`u#Y1y1HxEYLW)oY!I1#CM z=?-hHS_+mvc0-nyL8G5jok$Djp`a9LNV;VRn~Mc7J;xkma5I-NgGMm^$jx+2royMw z323^Gox+|?%?A07n%LA~2{E==kP=qSZ-bo6BpM=cS7Fnw*tuK7ZC>!b13xsuX+r>W zO@)sG%`dvDWAx7V(j6mD{Uo<}qWP3r!0|^OJ*SCUNAqCHiX369&4pl^uQkHvE=@$i z)=;_ohm5d_A?rFsyZiDuQ!aSuUtC^OzltAVpM zT-~;qhb_zb1mO>Z;pLS5x&@MHcd~tYLJHm0 zaAaW@$5|Xexb(ScGSrukKjA@7z7kJcGB4OC`5xB;>1fhT5V)(bscAU(X&5AGEVsq+ zmFW>4=T*xpXnN_@he6tg{5Kb_w0$+3a3>F9+@&x3kFuN)6*}K@6eD})$ z7Ozp*QQNLX0({P>A7Nqz(43bCJ}*2Eq|`KcMVN3d4Zo=AhsLzr5P@3?n>+Jmd!bBO zo~sc=E(qKr+IEKAFi4)aBxTe*q_AT+_itG`33q%Y0REK+6UD|2>hcv3jzYj&a1~(} zTyM@oHPMsjDH-(iVbhe!o(;gCbm!p?(?7F2n`5d9&vtT zhf6yi0bWWprGz|-vb{aj@xqXdZm%%)l8HS$@uR-)@7Klc1?N$S`9#}M~VA( z+gmgh38&1dYw48eXCkv<6c$WDvN6sUD5FBo3#AiCVfszth(^y45fzOd0Z&@nFWR16V>!)oMN z55YNRooJ?IZnpJx&Uqy+|7HwMrUDHhI2FspLU(*VUbc<`k96gRQ&X2N*v@Y;*g|-S zz<&Ly8k%i;HiaFVGa5sLuQjL`(%X%;QdVv7Mpng^-i(Y-{Zfv>b9x~Jc;R@t9}OAq zLL8z0nTv8E3-t{_ZjIc&7oy6@`;Y0+NP@#~5dn7z;rgl29Y5Xl=m~tXn+>omOMxRBVsoE<=ixKSjDOBZb=Y@)2%2$3X5iH5*W(7o?w191M-T-;vR zmw<=2vfMUH1)QrD21YkMvR2<-aM^>Y`ZF$!lQ@$(#J&!vns6jypl>;w znj{i4LI8#fL05>7AG1SzYGM+!R!c)K7<*Wz$Zy}mA#{{%tmFugg7d<>KfqV)g2(cS zC%AM~%-I_exV^B`xrcX7lww*%&9Vi>&mHn@oc3LKUC%X0c5<(delKL7|Hc}H-(Xsj z9TCyn9fG0KReg!C5FpY4t63F4hOL%{&QNK;$*V$+pDUbQ@YEP0JbWn0&bbA#i(Pr&9}G7vxqNS;*B2qf(c{+}5WI@{O*^TO(zhhP-Ww zs6R|iFU%b54u1I!kHnCcDfgurFNe&c)%SqXCef`f2*b8#{@255S14j1^(?@I1GT2 z4KIXzohUvpB#e?)22lyEHoii84u>HS))kg@nD?}!`hCsqEB8bT1Ctw}{-mRg)9=L> zcWDkgw_S$_BshcJaU_%-r^YVYN zFv6}xAmMAgI}V1<6h232Sa5StjjkbF^h#OUH{Wz|Mg>IpLb6|7nc;;2P`>K*0-qPA z5hs&QH;E_F{Ok-nT>N}#aT?DOgO~7169(3s!^NK!{F@LC>uPXeCr}Fab@-Mbp^hm& z-DK&eRm@pFO;BlS$C>hJCcSd6x0CR~+mp9OB?1Xwm>TSkgCQiT+jAx77I65`2hfla zdnqPN%grwdcY)8a0B|ldMX(G*QJH@1IFM$kZ$Og0_aMUez$*7K!{%3=9$1yxyuGj! zVTX&0vnC-QPI3L@_A6ydzWJ=YsPINExZbO%5<_m(jA4^z8}m5W9fyI9i3I7!LLDjh zR}e78E5cZTU>7xnEE_W3=|UnS2Q3?QP5e&Xu!nFwY=Ks)V0G965wyx|p9y|M;!*^m zblVQuwIYxsg2X?hj6IHj=otJDL-Tlr7RyLtHSimlGPU3u!fo?2va3vrpTA(OvdNp@3L>PR1 z3niz#*1Q&-I*EGIm3xJ|gy>R$6I2A&1-iVK>ua9QIOPRH29|m_HvVPIH3DJHpcI|i zAygH=|HcBp>X0fZ_?pBA>)u}2X1?+`;H5Mr6HIOnl`BX+5MiJ&67DXixTGuXTsl(d z`HTP3vMDgw9mhc19ANT(=P5tIi^65rq_c%j6a7|!>zq>HM(qcoQj(!l1hs1l564QS z7pU`2RF1&MEVeoED=(0jamphS+0hYvsYL>OVdfMlc&9qVA*lKhO+})*edtrx(n=4q*dE}M}y?8j%0@Xv=>|+|SkCUDh}#Q0L_-~yw1}bDB}Z8eQNvO__pWuBW+=d0mHg)B9vVz@2D{^6WS!KUzuavIuFA*E@McvL z8z-9}LXQJ#Ova-Cs;?AWrc~_XmZol+!>S?48t$-*jMG# zZs^P85YA-}XyHyl@Tfi0QJP6v4_@VTNS$WyEo_yP`Pg1|OHt1(SkTMkNnN3#LUpK4 zEAZ3DB{mUmj8sDW*Lk8TKyrubKx}()4TBl%P6ogTr`JNN#AtQ>C|fDjqVcM;ZD)=J z559{3vd$Bx3Z}wcLp9$#jPMr0o2#tJXC=$t%MOJQrLr@Q!?^t+A`87T;d={P#jG|s zYOmlc9Tu(wrqzs{h~^Rd|y3-e&~EsJz$rZMJL@gWbs( z_)eu(Q_47LRVoEdLv9rG*l^}hK^3H&?M*A_ zC=x$_S>c7dtW^PAhC!uXcA&s`7&&mebQ%iqo278-`8f9$w!%|wF$`-iMdq#vU6>rT zxztw)rb>+2`+$%bsu<){4|=dWPJwR=4G#kKbj&vsb{Y~`S@cE;0*r)W132oE;0eA} zRD6?X9QvIX3T=2S>+l7+Q+8#0IfMw-%I>T5l-dvB0%W?X+*sH$FTN6Rk%OpwbPbDH z8jsQ8fym7;rV`_i>=Ft*U03k*R9UOi zelD#dA9+NETccmit4>w(Ql$Xl;$q`+M}TCu4snFxMx2`K=3H>knxT<$2vBtbMy@^i8O%#($(%ag`So+B@=H&D*$^3FxZ_$iI0!67bDV?NvmTwRyL^5 z!PgHnT4JhK1PRIJQxc!9Rfm?&zTQxK=W^xXZ@dO4SmUyflRI$cYgk@&@MSj(M4^jitupJqSF8w;C~GT)fBy@SC8 zF1qL~C~Q;+^%*2yaP_6Gg)J#fp=A}AYPF_tEw@1LE-~1hL)Qsd$T0PNEKpp`BwNtP+-_YC0M*t8p+*{bnJ63SOHS9rB=wy^o^KHot5tSlPP@TlG3x!QOAB3h;SY z6@JYH=&*>r;~eZxri1q(R37*%`I9CD_{%s#X|}<83uAuS)C&K*3OjryJHIaUuc>#3l z=U+#8m%zgL70VTL6?3I?Z)s4495ph-Uj z;pE~Q1rz>fuCfH5NlRWN2D~m9>`tu|d&iweP0gV~K>kM=1D>Xp_c;Ut@+w8mZGPEQ zUl?VDEicu4(11v64e5wf<|_#Q@=3r4wClm{6b|wY$^436ffEiTTsYI`eJ_NlH;1oM z+zbcY9(yNsyZy4l4%Z@m+=S1(^T$_NOD_S(l4a=@2oH9rB9ztA`#<1PuHWcT-X-RZ zeefd67RqPSydgAMh1|jh?7ReuFgr=OcJpOy*22mE(g%x`rCT68*j*T*d_xk>PL7Fy zd@phN&97-;GRqK*n{ZVKPaJT#&(Nx& z+svoktXh%)h6rbw@(2%h7ltIOYrsQd7{J@*$e%V%=!UJMd;v~fF7dVdu&AENQC4BA zs{)4Mi4#8R&Ntz?1tb4A+XsBRI@q0whJ0`va2A^}yj`YTK_K~d6L~9<%c~R}O!zzN zw)yh;3mYrKw*}m^aY>`)03SO7LwWtiV&QRV?v&j1l3jYhu|C*c3=O{0%olnwh|+xi zk2}m)8EM@)n~Q+F($m=l*mI3cc@F~q!p1SAo}T#HAPE>We<0xr=2MoDr~iQ8G!Ax` zSXsUx&9_nsl+sf;)@cvoiinj>3(wga1mq8g2=n=6Qw^SJ-K@gK;}V()RQNFp3j`Vq zgbVO|woOBwnB`Rfkq~P&HP~GuY8_{GJ5i_K*`Pb|PV^MxD*{KWa* zn_5j_&r4d9wd1GPG56lV?k*w1dy;vpxkM=~fSt(qjR7x&)4@FJEI{TXiHTXdU6*?n zc2{`Q#`&cdddq;bez3cA?sK*+0(|S3FG$-0OV;L>O+8Tc*qnv!L8+|_{}KS;x3z3q z8|==EVKTcSz+Vav_?>6hL>|!i{IcoBMVW;?5`6yuAu{Ic)WPmXA~}6Y1aK$9VXMtuU6M>1q zMBrHwz`F%p;c(*MAHJEzKO9N?BNP7pgCy`a9%7_IfAQuVMxGU-nb$;MA}|q{2#iF4 zUwX@BF$3)=e_1j?g#G{;wL|OdH<_Fe)szB{lEU>7r%S`^5e__p(t{)~%dBPJ#j zfhz=N&0HZg=QRR*&FmdV&(HBhAdUc4PkesPOawFnvt~3Rb9{xsteGo>=DbE=){I7E zj;|1yHFJf~oYx4m65Si_G9}*~+?=w@ zy-TQRA^43wa%{dV)(mp0{`Qnz0l0*G2(^}4LThbvti2W7oE+{?*%g6HXe`v^Z3X-e z$L)NsDP+{lBc$xA2bWMg9KDt-{8pazM;NuH4O^C&u+oMkCvICtm~P!>g03K3Ld`<* z8Zx6=nbx1fsx?czLk5&7c9Li@FdQe$uF{G5K~t_UTtb5a-rd+Stz7HRt`;eV(3)i= z;}ALgB`NZf6geitAdfkd%2qI~giM!Rmr!WCCnp}#I&=CH#BrL9TGCR1nR*7faN3Cm zYU}Ue+p{%XS0FB-nkce$(-G}(B_68|kyQ6!sq6rK3S>V+)+f41^$dNreHDsJ=*mdL z`HOfwczI+Pc_VbzcMyg;u}C*MEhkn{$+)07tP8oKX;&~Vp(6K1N*CdH@bbuPHDiUy z>Mp{vu<%GZHhbc)q9;yzz;UI;%4S``xP;357ie8YWx@i#8!6p0&XF+)LITUzC=#YRfFLUIWWh}wfQ$>4819;Zm$K#LhqF7V?N zYY~y#hASqQklSUs;2Ot;I>m~=Q8|`Ki$wL?Oi&b;wpOuAslfuSpj<-T19!npLiigC zhXvvy%kGY;x8hS6SJr$|S5{ijyP|RlwT>*X=Zb=a@HbH37%Y$$iK(~ZyOMdxqse(- z`VwpfXUxtTMQn2Cb4lzB^~v)f)D#aBQ!G$*jYPA| zkfo^1G9A%w$EFxA?74(4Z1k9R#pM#}5uLE<+@O z_-jfov-=$`B10mkc0F@3ZvL}PucG$Uyz+%suFl~{LIb|`~rZq`C zdn<+VtErI999LwP5XYGCfGKvQiL-t%QsOkPn8uLpgmcT(!cB@q>T zsK^?b*1K&?VY=KOxg~bjYR_Sg;jz|k(|5&o7COwHC>_u;sd;-+Cq-*;RwRit&m6HS zJ-bX0&mp3f?-)~<9?wT=kdCRXe2=wbPsgQWPEHypAsQHePbzEpii4q{X0Ws#iD<4d zW?O1*;cu*%$P${;x^qZjIwDvE4>3{`jBRS=A7Tk=vmlLXX%f*~HI_nb6U4a&&Pt2i znS+r~rn!R=$O;BY2}X=$b4mdGos$q@nO*kAPjAYLoCtHvPH0myC91&hh~JxE_&xDg?SypA}6FsO>)*rB_$LL zGGgP9B!OdWQbI_Ohp6FYVI2ZQZDNXVb5FV?a$?zo-B#%0khf(P?jdtOMNwYHp~EIM zoyp3*w6zP^HuhP3l7L`Xn?rg$)-)b8T!d*L1`rp#I7 z5Wb7rg1mHp$}9?TW_IK}?%Nd{3&pLiGl!dHc#KwxbOSc#wizXV46o(`$+MG1{Seu` zop=jVh}=&)Q&y?%x#{?|n4VW-a;}(S=n9U7RzheCa+x}Yrvb57T`9xT@tG@4Hn9<# zrLz|mizT!0w5?mmTaZ^V=&)_Ig?nY`G=HIBdpTJ+8o?^8=Jw&q&uKss2}g;kRrhLs z4}k+cL8N2ZtZA9U$Rkj`lyz#6J`;#tWq6_B3T_ul+LDu?Ra~11&0eLpIi+z7ujUWQ z9W?1)$FfHvLRnbC$ODjDkQb5Yus1E0%fht{#U|n!tDR*U|7@E(mt^R7kvlK=6lMgu zi|r=%vHVQUEpjw3HKO!pN+h&!PU4}+;@~85|A2zLibKb}rKZ#tu42(Je_}I3eoUJO zlZ2u^IE2IIp}SJM0mY`_Hfhc+Oq!2Q%Zc630TMV;V7DgOi_%%<_R$hjeo&;PbBP&R zrOiy28FOM|u9`^+2$Il+sbdVd^$+T}$75UY0&+IH`K(Gps^jUTrVanw1%!KML;!R<9wSQ{;SRfQaY}V_2^|qPf zoWoF#p1Fm$s2q_#2t|2h2180ZnOJ%W7crGRo`mWy;$5}P)nf5bT`6*+xw}w$*6Uq5 z+5<2`v1(=ypVEDRQ%Rr*jCR7_(RvHk3`+owy2qS*hQETr|f z+4#z()h$n3sVs`8>2Q1P-!q{i!saVp4V9^n&2vamfc2}G5I@lbF>fbPnQr> zS7(ODw0?S)%q}u^Y-jFf>!_LY^g24pTpDI+K}e&5O{APGrZ=lu`nJx(wak!oY{ud< z&vwMqM7V??x`wy@IU7jpr)SCRB6GHBk2YH*9MO?73vFB4xhyS+eQx;_Y$D}kF}+#M z(zkUMu4QJGwkBv5&6$m9J5m}hA?PgOEwZ+{W}hR7%q~J+_lM{jf)UB;ax=Hfti1Ri zmKKDR7HlHrWHG&2&C<7Z7OrJxm5xnV{DWsZI_6i(B?QSOyygGYzqERKR`^#|&EaM& zSr0;HAx%3cCM&GOX=)jqri0l+1{uv!-osEj3tO?);VK@Ru=od$JRM_`atT3`vHe15ax45OHoh@w5TgJJ3VS_vg zhDExBwm6IkN!^S*T4$#)y#6@^D8%bw3x`A^QJvg#ka6L~rqZb!Qjj?|wzRZLB(han z%P!-Hyc8u*l4H;=q0OIx9jQk!O-^pHc>Qw-Nu%3jhS3#B$Q#fc5ymG=W^$q<`&(Mt z*}~R5-UN|}kbUB~V*CH?y<4tqNs%r3zrIcrwvf*E&Ydq33Gq>IZ&gWkR3$*F`b}U1 z$tf~XvJ2h1EuaasfhN!fnm`-q!Z~A3n=!(|{4vd^KW0QMUlMDXyPMl%xVf3TN9@GK z1hEM|>5f>=De*BHnvlzJMQpm(KdM`k4i?S6(AyN-&Gs_RMiW9b7KqwR49tj|ws8mY z*Z!c_bjW1WX`3!4OiF3Y%$K3S(_0HN^KTisy2}hZbZKuY*FTrOoxj_ZBv(dTa!!6g zH0F73MpGuP{WqKnB-5YT^oGr4n~Mp8WA-ij((`2`xxAaPKCYE{V_p7ilY>7F7BlBE z!*pMp8EsdlB5G6VpOc!f_TP%xSeHMsf!n^YwM`EPbdQT^nXoeInHwzvA_JLdy5UX> zxM4$MvlV~r2-{bdG!L0qVw-W>sarX9ny-Kso&E_a8$&r8XKG+qWjHZ1#l^JDTNoqr z(~;qo?By$rnV7AyK2aZaZDn7^WAkeI{4Udks2L(hnRn^9{Jj{twH4=O#QYUT(`lP7 zre)H?XeY1jgaql1Pq~qkn190~jZI|24rR>37?~gK+Jr{Omd+AcNg-xHbehg|Gil;B zfIrJ*)l#G$NUOMv$iz!4@z=$)%v~6xGU5`XH$LN5Onm+=kF++K2|I3iV)J8t7n!lK zwGRx*v7-ZimoFwPGa}kVko~R0=VmM-!E_0`>9kE3(=rK+cJ9`Wh>)(-gj+e0>9-7Q zZBnyhOEfQnclp6U16mQH)GaM-<2G{pXOVl`lNMlYSUGK{ZM&E@BkbHuTTHsNHfD6H zo*WrWPcaK)UaW^l%irT)#x;K%TC_T4Z6-#|xQwa4t5nq{=};%UJB%)-MaIIIlyxgb zS{ZgD=XSOk)Xhz>?h0tPux;j^%w;@KQr%HxWzNKHO#Qj_D;&t$F6>#BOAgy%T80;C zX*Olrg-kQs5t(6oBW(|(hewItwH6GDy%kwx%Psq{G4JV9|m%gLT&}4Tjr}Hmwpf^EPgy@<$t&9MDXLUgwy; zpy^`5tc5R_eA}^#^2)oJDl>1o;*EtdKEmEY14MONs6!)Fmk^@YHDfa|Z{x~j#a(8m zrp1Rq`BDnfCQ@cS;j+rbwAj)MJMnWh zqu%9m3F3cdJAk2Fs%M7Z<;_Nq&{`gsQ7)#%l7+F>qV)XLjE?e?nniI&b2qo$E^j7g zY)pDrI^eR&#k6Q%8B0wl;O{LzWr_fhUXNuwHMg?g>+)t|FEg|kE|XkLi`0ctOK(lD zhIG{sw^;P16?gR8>++t7amSAIx-4=rt=bpPBWAegtfsiRTQLd%8P|Hc?R0swv6agi zIWB`-Op6jXW5%NVkRX%iX+J7jGrIu{?X_+aQ!d|X+)TXf>|@iaYEQI_X%XUP+|!sI zAD|*szADXx#WEhwYSj~USxmaBkakBas48j>M>oR7wDK;Tc6Q^o-x7E3-%(<2uYhX&~^2H*ey>&EDwkIMqCNjgt zw9fN$M$~w_1RXDT6FyPN^$BHyA?$3|6S}-vM76sXHa2EY+-lDr(>m_wbcstajnSf& z@2$u(uKAnO*5%D0s@>Yn^+p6*Qz9%y=h{VHR7TrQm)R{^F2ycu*c>C$ZJ zb3&FeB+lhx+NLhNaVbrEOH68_cvYBjt-ssG<;|eYq)V%buRB7FA#rXOlT0mOjqCFE z4pX!lwCYR8%rfjX{V1PtSzDy(qvE~uj2ZE1E~ag232$7Rw|AVT)uL5hIxaBmHT*c= zt;-jSw!cFxfbF+NB%ES+yly8|3z_%VH9LSG(vEaBD(hii?SJ z7j8B>6J?fF8nY@(`8LdJzu8R~Lqi%Y$WDU>~`XEAS(t`&)>vVlgx z*Rk4e!FB0&G2O}?+Zt%#qAC)h@!pOoM6Kwk?<(4**~N5~c?Ja&2dQ1az>m=u>oY8^ zo1qb{H6-M@6uX!b3ZAcf4UgNPk*?=+b$Zkafh}k*sm3&0X_<1K3V}gUu{nx+v{fBSgfBD;m`sQc9d3pEAn~&Zs#P`4d^7g0y z{k!*X-u}nG{_HpJfBxa+?N9#eXCKy{fBx;4zk2`j_8-3b@cVyz|LqUI`R(t%`TG6W zAKrZN^7e<{{O32{{^WOG{u~p3^!^WD{rvrp|M4GQ-u~13uYUFG4{zSR`|RcIzkl_M z55Io%+2@}^;{W>c_y7CN#~(rGk6+&Y%lof?g^_pP`}DIfK6?4V4_-FY^x{r>A}|qn zJ_P>w$3On*Pk(wozothMfr-FGU?T8{2>ku;fB*R7kLCRR=Rg1X5nY%zPXs0c6M>1q zGa-QMl71DMSEpxM-090iU?MOPcq{~PKlaF@gTWAO3)ngzrCyJF_-D=(0|;Cjt|JiNF&hFl*BjFYa`0 zA}|q{2s|hPvo<~G!cDU$0uzCWz!M`dYts`i?sRP;FcFvtJSYOQHa+OVO|vHg6M>1q z6C*Hd(-SZ5bZsIq5ts-(C<3!KJ?O$svnK)*fr-EqBQR^z6EE&`Z6a_F2;d*B;2*Hy z_dOUhZFm#}?!Pw8z#bM$gP|U*ZWxSHkw$?3ZM0dNG%SP}xm%sc) z;sLNX6q^z?SY67D+20QV{zqx%e{iNB$j>VIo@>(#?D0{D93mkB@CRrgtZsluQ-vU) z|DSj8-=dkYOaw|1xX;=&1G{t`8}j2n3oKEA|5q>mx2+n=H=+isGumgf2LcEi{x_w^ z9CCViF=d{Mz#Z168QABB1hnHnSucTs3^SlS4OVwLyiacc|G!E>JiW8i!A=O=VQrd$ z-D$0h#PUIPOnMott_X_BT!a9Z690wi0SB8R+a~h^A#iWCX$JQF1kd1SnZfGr2j^$9 zgjZlBmcRb>uSKqbAKM>cfa4H;K+6xlnS&ol)<4pDVfm3v!Cd@+ZC5Y8G>A{Zw7?WC zitt->i6Z=lBK$7$5gIuWM9Mq51|IxC5#GIbJ$gQdyQ)nH586|-=+Cz<_u$dr{`NO6 z$AFKs2dldWgrCd?B>b9yK~CoMN+J&|a!aLrPWM+09p0SoBya=Gd-Rl}2AmVW>RB1s zPq{j$JH_wOAx;MT`;@`zPKWoI4A8k3NBsk?AT8)2+(_H?e2!#6#68}y-?A>5>hwYpb z4FY=M>K{E2X%Mn|lfn+gKEd0HLybZ7IS8AIdQN z4AE8*|0TH5f+i{j!m`M04|7x_be)xiJvNWzF$-}DEd2ue0FtSzH}=Q@Y0oi5FA(V7 zP7PMq+nuMEua6T*t!@3)!Jv~>b44&)%hz6Ym5)W zMlS*A@wKUIV2A$h_LyiPKF6NWchx-#15yE@=y8TLI1E;2w9jS{0{UvxJb@t1GVnCf zV?XMs)4Gs&ivaO6BcD@I<)cI@aZ&ylqG5S51~(6_-DT<;*t^<825pZ9r|knmsQ1o$ z5Ew+Gauazx9jwk{(&ULEple5uyNu4>j6e`QY7=B?6{P#sCdN5bS7!B8;-VL0h=y1h zg9q29-hmz6P5I8$5;w#=Z@}G->Ya;)>uu*?b-mqrR{46Fdc1w>OO1dI$CaprTjf*ZCbzgPuM}VBySY^X6c6 z&Fy~;0(tC58tHLq0*1Ivm>k7sbA(gp(oR_s)kJ*hQPZ1)GhQGUT8K`o5cO+7U`O@t zcA5|!iOH^Q=Q8NC!~j?Zt2-ClN7SxQ>HQL{$x&=pK7xgSr@q(S>1Zn9J>ZxZdioGO zT(r<*>fke^rf=XIazx;Se;fq>0Jc$*%H~K-%c?(ip~0W zFykX?5QS@^$7juq?fGGWSp_!r5`Z3X7#7vT0-K&rq8aT;kJ3ndKgHZyFicrz8Ai z1`J-i!RnrDvHH2A&kV>R{S-m6(Z!V2Hd*nJjq*vLI5u>U-#qN}F;+uU&lN@dg=o9n zDc4M}rPyZweIlTbmuS84~r24dZ-88 z`zs3kPfwWCq;q2{zXZAguMMpXK2eUwAM}9QG&rzN#P*3*>#)Is_V#qJy58IH=x0*`+6ZnE|@|At|`ZFeZaEJ5$uG(NEJ5c4N6NwzbC zr}thPtnLXGsGkc=u(JAS_R}Sj&Bd8fC)K1)88QZ?L*YU!AV@k3T1v?`kqxHMy|MH*NTJ4*kU&DgsgenHoPe zYjOqay2SS&JiIKox+bT*8z0yyOJ;u!0(_#E{oCXOo3UrGx{M`rNM~%&0{}6rPXp?| z>c&s9ST9V1qApyoYCNS2y$}C2Mvk8g*irQ52MD7c;RlOiKKJ1&V8wCk1cqP(|7Gf5 z>Tk91omzw#kH*y43IVf}+}*9@8##m38SS$v2r$RWa`ZmRic<4IfR2Qkb)i^YFW`}u zPa4UvMwgVlCKtULGwy9JiVG30A$aXQ?BFSZec0MLF^_;bVOAb2^SUrvuMX7{83yMr zh{6F3KgboxMMzCe&Rx4MJOKl+(mAB}TP_jPN;O?`B9iZon|dLgT7}TMe$gr?fvq7z zdhZdZJ@>cm3q8d9((i9>GnF=&|nx`oQWaXhNYX5F0)*XpgGH?$A_}$w%B%=NYcyd-y)_FeO9tq)qDkKs0%rxb0RdGh6@e0p4bvqRBW?JiYJ}NSj5=WF(iCwjy1cIaQGl z8z9RR?n=}k()2GV0egIS(UX7X5Hs9X0?Hk)mk^;tfrhfeZ#h$3HSH zI%^bRF3)Dr*gJJ=Q@I`JDTvZ6qy-=IAnB%RgBUy1agSTX>wM{D4Ihx2%H$$ zG@D5qkrrkTT}lv9$D)zCK_w`U$TIuM5YnuQ^-M zrXUvKQ)xpAAJnWO$+9uwNNN^~mw^<`)RbsH<8b`;kJ>XkGYFg&*x15yphXJGm?uNV zNCYI(*X}ICppRaqd&h`6+>Gw!=Ej)QY-YwDxEswer?KJpws(?||sVeN*)D*}wYGzZ1Aw+D8 zAQh~dp9bm6BpM=cR$$Ai*tuK7ZGPZ$2VR<>v>||{qQdJy^MkI*7`^@7RY&9{pOhv~ zB%fmvQ2s=tr<#~`j25OM%VDVj;!^HgDEWb;d|EORwaJMhYpN+ZOXMWjSvUelrL!UG~pCz?oO4 z(-(5};k2M{XU=NtOnRZqrrHXO2f{}CE<#{ZsII0*2lin*4;v6JeW{y-diVMh7JAW@ zxov5`AYb@<91pajNjE{@tiYC};oPU8k%+O<6vrdeJzVEa$~utr@~aPlvJLsW6t28{ zGn!GS3o*{pyZOgRHcfry+&$GWZ8~!ob?LWX0(f|h!i?H>Ei&NKqkcpbD}d%aJg{DP zE~Jt)xFRH+OT&knerQa|4G}mcu$h^6(~EdYenumRQV^IT+Gd7QGlZX8QaoyIQkXHE z`}deT8Ff4o0RPIuB(^a@?LGma6awA@M-i%Eyg36kik_~gBG8kEqoSgnEWxz43C>Yn zVJAYDdJPdWhdpu^b`~;OP@@G+0yX^n9bbTJOzPM0$cVzemh+bcX!ciHngw= zANx$)X=f3e{s5(DqK7%m7&X~-S7S<@F2P6+yK+1XTuLOR3_saQi?V(>lr*?o1T$t} zh;LR*s%?WXJh_dmO?rvxpb&XjFv_rT2B+RKT9>EROI<6?8@nz{hJFZ)4{RP_oB;{n zdF5e1mcAG>s<9pVfmtM(Ik3lm;jSlQU5|??bxg~p>y<~6tCs@KZjEZF^1BsS%XbeHUhR7EJmh3#6c0p2y(Sqjg4wA!dDq6IP zN#73w;{zLc0~urYOht&m97ZEYJp_F$s%TNkOt$rLPQNmT|ELYlP6HZ1a85kN7OG=? z+)W(^G|G`1N~3e-fbIMggA&3b0{Qh-H5A*nHia3R9*rTwXAKF4{C1PAR1_QB$R^nG zo00g`FXb3Krxrng3&-WYH)NQFXrcekCBBG+`h=jjMrqy)Q6=*JG93!Z^bjr~pf1B) zKNPCt?WRXgU}cXcz+*0lm!_i3nZl5!5~BK0)Vdf*l&?nz&>?PON#@WcTM3(}C^kYQ zMNuXp@CM!cY&HPr*QVn1z}^KsJe8HESqb3MS)pNa(i3U*=>>;9h^nt~p`FqrcJg<< z`zb{kbtoLs+L0IK8AVPL*TS5`3|5r)U?;I6Q6wQ{wm#B`o{OEE-ep_9*mTp%Gbn^AUIh9RYE_MeWx>4BX`fM;(VjYa8>5{hPpR#A>vl7B`B zr-waq+QhyNhnnS15+VSG3n52{us-cLenvP| zaA*t>7GJR>>LwTHz*&(Gbo7)&)KfX7v^rx%Rm{$Q2%H|+dDp_{g3?G638k|_tIXlB zH1!#QJkd3IH8R4b$!#k{eKCz{Vdr3V(90JdjiD@4>7yB!LwnKcb3iRq=vGxvz&EER zsL+6Lf%*~Q`BvP-T7*h#o(uRG7(yBox+1_8R zr;5Q_I5a>k3F~`(*waTtm~zke-hNO(BNi7w2tOcz1CsN{X%g5(K2>Nfpz#CM_z^az zSZ7e(0~;JPt9(B`0&`;bb~YzM8=O4`mXu-9?3Yo&U62y^aQ$Ii4G!!KV&T3HUkNhPF~s%Np_`u) z9c48^Y&b(JDn~ly$-Q1qMg_MggSircj4lifR!3t5Ny+w%q|fJfAFn21Vl zRrP4qS>V$E08ZQtK^{U;>3(>_6^&Y~ktA!;mfHkqi2VUuK=(mq%n&5&Y%&_=5ZXievQh_DhZ2O4Ri=Cr zydp6ahvjONT_6C=X^bYY&0z_6@MC=OG%*Xpk@pZeS}bTthEhcDG07h7r}G$>2M2b_ z{bR_rf+$kx}CjEoe(PlY&;Dn6rDPhbUMV?(E zG`>ECic+pMw^-%DCgqDsT%||2lvsa19W;cbP44CTn3o!7w4g~~?5K~r9B|R2oS9B0hXW}~iZUI2T1s)P4{uIgO`mN-+}iS&&hlbZT#YHQ^+Gdx+<*hXhF zM5u8dD;X_lj=wMp2;nsu#-LL}R7uNe=PU;+jXym7^uP`+4~qhV zKV;kO(Z|=K!yC4Ccw^#TC`vWvq}S?kBjY=ar>R05xN>IXo1ww#w03#M5g%((fxdr1 zT2ZKIdxSQTb1Za2vH2de;tk6|UaySmg)o-1bw5m2T3y#T&)^Uq?+=_{Gx9Mc$G@V? zlNb0Xqk4To4-V`QC1Veo$5J|$Qj2oF)ga56^b&48=c}&?+RCIC0u}8E_ivP~Rp(%J z+H9UZDuE5ltJYFP(6v*9o?6Sffvqh89lf?6I}w>X3u0!sJeeajrpP_oR4er7%O%1oeCTjiGy_O! z(-g$E2iMS;!RoXDL^!_|dP<5m$B$zxWl}WGx@|La%6Rk}`*-6!BkI6VxNERM@YCFk z@Dw46@Eb!1EN?Q!ylKOjwr2xwu@il40@MK^=LWVh*lcht^x+F~G?Gzeu-0akQ4mAD zqFOkkqaw=WACyspC*?kXDYLrn#W0-P>}2Lf6J>E1yey38J4YG@1ylM~2%jF5ZT;59vFYV%p= z2DWhrOQ2U7bWK(drD@?PF5#I+Gw>1}jX=!_IT=wH>akA^bkZ~~AG>l!B}Y34tJ5|J z;8;Z6d6+i4z<>0`%JK#$A<_0p$Kw%f(9sCmGpiMkfle&(16X86xXW4vK#>__4(l>3 zcFdCrm4*aXR#FFXI4g&kLxRWn(4AvF0DAtwg5HW(Yq1UZ_O7vwOQLlt39SP+>EL*{(X$Sh$1#IkC5o702U zY5RFz4OdFDmC~j>ne&O3hJ1QX}Ik0shFp6z8vw7ocJ zMWD^|DOSWVjBFam#r?J>$>+KK?x7>$I;QKyz}5zvEswQs66eSpyLChuU_d^!{Gt#} zc~RQ&R7fx3gVfaPZJKqH#yJpH0%Ohwbw(~%YupSDk|p^w;E5_MRJ zPREi^X{rZdptk_%wr`BQmyKM?l(Q%HpBUKUb@auo?HLRzaL`3=L0}`0B+tO{14m!U zTG*0W6k_#&s8)*()q1D&&Ju&wX_Vlac-l4mPbFeyX z06%m<%;^3}n;ZQEq#pvj)aXsuwqnY?3>C1S7mp(O+`u;4vEl=cVUMyj9y|3O8E|GE ztWG09)vx@mLt`Q|03kRaCO#oVt$Ga9K)d-_TJB}2P_1l!Tsa2qk%1jOgq-!M%_FX$ zS-aj(i-Xna72!h%vO(Kps@C$jv^+9Pg&J@~d0e0>EuSAYRRUN#{j9(?xlVRg?^mf( zaPFC(&s;suZ=vIZ)oBBCPSE|676kZVoNS_3{!vB0sObG+6I0?`!E*!Ke0YIvHD6i% z+sfQJ+kPM$nlV_NF@QN?UJ48{Z0Zx{{78!=I*T%n2T37Y~AJPq0r`MGKyajR6_L!=*JOQoOXcqD23#uQMC1tg} z#q$h?BG}ychZa~F*hnCJc)_>tc5{gS@In@PenZb6Kl&_zh4W85#yMD>F;c(%nxWa$ z2S>}K1d8WWerwm z)|c9G<}pLFX%Nu=C}Y5F+Gu~`CbAPV6^Y#wco86yMdyc2QP7SBwmwvI)j(vnhE^m~ z+MYn7-aSpH27Exe9<0tR6CXMdC-WnI15Vh~aG|Ep^Iiziv7YE>5XVHNW=STTA2vnt zITqMF)(W=#ohmoHx{|Z)vu)J1XX?~|W665EHdvi;M@LKVf52r_KWI~*C1#>)wTR(= z!KQ82;#1OqXOLEy43<+G*wL%56rE@$(dAFr<{h?ZiS-Avsp?-OFwZ<#U1-ewuqni3 zw@1HAw0(ElRsF0C;l~zjcOMh)vjW(}ucE+ax#uNFi0E4r3Yqyl5zPT7|0b~9gAk2& z6ydf;4ptX6o&ht!->3nP*r`u|^X%7T1sR7-bkVc-VO^4S=l8+#02T#y^xlM5ps?bg z$E+`wW4?#y*TRfy07HZgbA5BLy3k-9U2Tu4p{^(E(O+$v(A6)l-V0Km8g4*-m^B~t zc2}w>u=T48Rt?Rt;^(nax0#$(BP23!vhkErVLh>v5g0$`6`t`DL=#mKaPl4**x`dfzc_1@7sXgIi-eeu(}#k=iC|uP?hjFJZsZ2 z47p9@>U7|l9muo5)xQcJ^WrII&A=YEtb?H*tZo>LQ_)1AEdqRAV0m(W9*RpAKlMX- znx8SXU6(0sA}|q{2)uFxOnE|)!qZ&p<6!iIpH&IWc%n}+zj9!w`xAkQz(imoP=f&O zO1j+e4u!gduS}p+;Wu96`R#o&;DMq>@0>dkmy|NXo7Z{GgLzy9nu?|=T`t`RenCMynFZA%iDkd>K7k={pPdJKYe-oFYmwp73j}D{o?bFUViX{ zm(3V+hMmm{1pd$eshB*czCr}nMDhy#o-Q9oKx)t7>2u<1Lx6{s*XH>2w;TZm%SMz- zm@{4*0yAb_+ltrwdx@FLe|o!K;*{`u5RmA3J^oHl>k*hSQ;*?mlQ3iEwXJx)zcXg) zF??+jX3V^{6|eVq#!NkiuT8>?nNwCAu%Dv0iPB>+bDGO8#V)2M=p7ZZpni1j`STX* zi|s!!rIDvD%`T=!1|1S}_Xg&@TFftvnerKV8%jo9x?M~qTAT7N);(~RIr7=T$u7Ip zyO^2=f?wD@+vf9P^`Io`Pj}g6fQ!k8P;0KmwAM1m%3HxL@!@=zT^6{Q#zHOHR>03t z+)n4}LP5;jgUhaXa51&R(JLv2-`W@ZrG&sXX3o)DE1cDm%cm_pe-d(tMYBR9VSJ8njkk}OvsroKZ| zIOQY_jnBWBA0Mshbs6Gfsh}NP5;Vz)01z|t~}eZQI|0;repdK%-XZYgO`Wrj$&rd71kGG4Ua{K%<#83zS%IM%zENFG?ng`Mn z8jOe$4nZrUgHN+8b9B2Y?J~&4)YPn$u+@@08p49#DH)ftkY!m*M_NLI5r-?Q7B61| zlbj-47P*+53hUTbOY$PbSo}`2Ia$&IT8xMh`;u0^eYTMtE|XkL1FZJoEIjy~w#Uhm z7SLkE;|ugS*;-iSmf^C=#pG6boN={dXS&#m-$_1lmyRufcU9Q0lE~8vb z-3@oaEKK;FGKUOlmSuORrnl-BGxntUxb~#99(P&gVrp$!AkSrmFyVJFed{1Yo+UNC zRlm!byDUx4g6VUx6`UzKs}-riOFu*6(qaB`9E2HSGc!b~`H^!;U-`(~gWD!!EmAOg*eqGJQ4(7k;amid=?wVrFGg zQ@W6g68!AQb}{Y9=rQcF%f-~gIwjL*gK*)unyJWjAkVXmsu_LA&4eA{!nMP6!m!IO z7gJ~BR~vS9h^6=)T8r`uBKZQ`_`Wvn8V9g(*68a;M9(IMdbh{yxMl2=&sYaA*mZrFVxV8g3D32fC=) z5>Z*g6dj6nQf6#W`r=zD~t!oQ=5~qX$w!R-}Y^?Z1=S-4A*v)3Yj*!*FULw(f;eYT?H7*%#%^m z8EH~VIEJCMGtc5eH5A^V$LsQcR*87GVb6sw7FCPu?f zyC<{=Mc+=8f!n@lixTYUG9Z0Pmen#l@3gj<=~937Ewj5;c@A-eC$@Ime3xyvOjoft zlr?A>w0#$+ZYIVWw-bfqwlCVEC_B0gNS}knPClb8W_mPVT?2P&+S>1tcHPry?v#?7 z88=MQi2S~pvYKyt(2PurblG{rVtXTP$}(e1|JIdaSxhst&TNXA4ht5>E1OJH9ox{_ ze`U*1n*=S?atn*?HEqpAnILXs;C9l&ciV%Onk-}2j(}Hn2$$+ekrZbb(0}R4u#o4% zd*WZO%L|_}bMsF1tmN8lI}`0qgqCVJg~N2(recaojP*sg?S)a>6YI<9w?nt>gs`Ri z!bleO$cSROu%7u>%-pwN;Zs~PP4}#WhD%L|kO>)APGPvVqm*J&%tJ1aTVNe}0^2&6j zZu!=J-GvU_Txgk_?6>UK_BQd_k)$pvZgnrc*C|n+Tb3*HS=46auKF9#k`NbqC(6^h zUB;0qEo~jSs#%)X)=J6Tpc`Y`h~d9B_r?RxTP4f%E6YXOP2bX~Sk5P%E*sY_zFGS% zn;kc8QEoa_(`6i)Rzl5IDwKeOA_~?ajzN z8?4#!X-n^(q?_@b32`kq60V70Wj14%=8c}4hHzvQWro(dd*c@qXy^?@)|O40<+%#E z2g>KNbuE!+0=7L5cP6-uyD(*C=|RxOu1$pPUb(h0GvnIa8^3a1K-222Ef-6aDNC0U zatGvQ}{6uW$BFzN)4oEta6rN{KREmdWA>67kTLm{wgtwys%wFT-y3?ZfxO` zaXlkRZ=#e#OV15^$g(K7VL87cM(){R?cQ87)0SS-CC&1IO^oP?%Di?8Q&I;_xXQfF zU8#!z(=E+yFgmt$%6M{E4_x$IK|+saxJc98%cNVL(_4#4q|<|${qD|8Ho;T zo$Jgj2N;EEN7Qu~lu@|}FugY>*eO?DnS5<$s7=pR|I%^G?_jx|a7IgvEY-ZZW~K!Q zY~w4p;gx1;#)Vn*Tw0008YgOPJNvg_P+@L$+Zv>Dt^I zzj9L3<}+rhK_M^3Tvr+V5V2%cxrw{*tbNX3GWE(#QGw4_o7&-~=4=SP)(BQ@IGgsnD2EK$J1u^-{K&=1T=d#Vk1ewAYXiRi(M&w6VCa?ah32=Lvw5hoLvngCgQ!KX=wwBDZ zLlL_t@%)XgocW9hbiXs_In{$wmEUeTmFVx)@+6BB&W9kZNs5`&vD z3At%gJsJyyu8LOvh{{qq5fPEDa;Y*S0CMRLx5oG%=D-{l`YD4zho|P$_ zdw>a3QW`T#WN62L%=}wJ3C1$R4qe)t%Jt8sZ})G8J2SK^Hpw7HCWpfTnGiZ1vu@)J zA@XT;ak-e_#>yAElgdAr8KLb)hUgFRFl4UaT7kqJ9i95aI@%gtr(%NJu?6~EL%}?~@3|Phz(<-`i8Y5zbJ!Z!? zV*aQoxgCkfHeJGRI&IU%v`hk{ox8OoBBU!d;Z{y$`Yi)no7Ak>63uD*wMx?M2*1m# z&a_V#L~i~rb8b2=4Tl3O>mHwrX)_`vOKei3n~|y~M+VbV%pS2G9wR?D1!IQ0NmEoh zMQ!#)4Y`b|zpGT$Ch1ToygQ68rbWiWn3Q!ZMOqnlBji!Zd_LLnmR1CQJy{D&g-0kwV_dBAmJaJj& zVp@bQj7oT8ay6r|%p!4u!|m@P0maOImp7}5H5{1WGRnoYC|?*47~!0xo5g;axpC`S4Ow)a>m~B_bn1A%8inDlo)aI+cE1Xi`V7No}+3C=D93#F|A4$&I0Y_tg9*I)0)o^Ncg+C zd?nE7@@9*g*o$--Jn6z56{3@7J%o=rBG+$*&yQ>|WvZy&%LxgfMt*i^Do!z+YH>R=Tgt*n7 zzHY}{wrXuVVQq`$W#dX+!S<*Uk#a%pxk1)_&`z{DZ?7ATgVKv|+Y;A__r zv!b2!j3k$07gI*b^9)I3tiNxal7ZX4*_sFd0g09^a)`**4wDZ#Ch>X^SfT^oUxMW3 z@9RZndY(f-LM9e9xmk1UH6x%8zdFghW=x8Fe|i7)FMj{w+xK7ocA>uc*>7Inefs93 zHw*Fo@4vkL>3{$3{hPP{@vlGo&HJB!czOGi|N7a7wdbFI`{l3Rzr6j2uRi?#-`;=w z!*723yKlaJ|MiDAU%b5i;Wz*J&9^`K-IqVd#2>x?!&g6l|KorBhnKhi^!}?~{rbb3 zcke!XdHe5Q{o=!~-+cD@r;zx+zWn|Fe)I7===|}^+kbig^{+7U?t7np_QgjpKls7R zW}05wNlyeO0?&uQAOHBrKmF-X&*#_lXd*BXmi5L|`H?5qKs9a9z?5J@e}HOp7~xnFve-CIXLz0PaUW{pnA2RT6sErpH>xY3)Q{ zA}|qnPy|qha5=)yFMs*VAN}Y@-}%mW!jiDe=O#~(a6M+XsVAiGw zUASrXL|`H?5qM$*W^H=n#htEA1SSF#fd@rk)}{wtxM}u8U?MOPcwz)*ZF=Ixovuv; z?g0V(qZRxE7W}>kW2Oy{g24UPrWx47VrekcgVha#aVpXX@V|{VYmCEs&xnt?q&>X1VuBmn*Z z?Ss_~@Mx+K1oZ#&4*pv-6PAfUDFXLdn`U5_u46-f{AYnBD)9g6#s9WdL-|J3V0A|O zZ1z9^VZ;BX^q50V4=<+7a}l`1+B5_E+>n5F{3q)rFpyyel&8V!PKWpD4dDM*DTt?c zb~@Mzfjg{CGq5|Yb&*&;sE$c5gVhy5F`0`H;8NnhFg@U4Q)Js@ejo(ytv1cTzMtS3 z{46tA-TmPFOqTEpjKuQSzy7tzHSlBmBMfjH!VhTq!8dd81IhYFIxj3gk|~&rAF%D} z#g_*0DVP?RqD2vYi!M=w-%y0#MLt3!CxS?MN7ulEA1K1R_pV3J$8cA*3E@F|iWdF( z*5w{N`rF_B#^o6BarR(!_ki$|*?@#!6EMihoL))ffkkeql+Wq@s-eT1)13rvpm~p; za@2rx;#WN@1N$jg=X9s|Jvzk6fPbGdSl#LHK9d1D_u{C3z%}G~Bw>@0N}G_ddv8K* zs#gTV;3m9wda6H0FLi3b$PFL9d7e-wdmpF!f^ ziHE%#tnRR#bD}{&FI@ej2OjBJ$pDwSqBF1m?;Q(I5eG z@~%mR6~7G5ucyhhBg9#?scm3aE?@LmRlnUTtvYKuwi1H`%hcP9!RmUu^Gf9N9|9m$ zcCRf(nBYShhMytYD&oHcH(Jm{r9fB~neAbYYJ{${lCa0-kvwK0PJyLgU>`s-b@j#` zIUwyhrsxF%-P@_b>Uz8L^z!v_0;#pFzd9InvTCjfW^4JH?icgMJ0zK!OBogd^$xeK z@juXu(|e8aVc6&;06o4obq(y$-`yS)EyU;86Z)>YM`1uJAQU~$kOqgr>Wuc;EJ8qE zZJH+#q*(@@CVK2g9d%k45^oV8erDuzDyn>xNF^@HA44=OPsZTpp|!hAT?2bpd&r>e z(crXwKnV5Tc@F}EXjE<@kEesxc}$u-Q3Q1D=y8|P*_#mvqDO6lOs#@+zuLq&hw93# zo=RNwVhqs`D`W8B+SEI+qq`~JnOfq8nCA_++flu9v2eZZ9IURlJI^X#FH?`VFa54! zl2vm^^{3uiSHEbd#`?DiBq&HrUH!B>ooGY?zTnYtQH-5~Yg6yQJ^)noYWzCC!)egd z2MH{k8ExJitggBJuR$P>{YWD{E=|A?w+WM@*ldn)>Rj3>E25f+FFk5{b8yBB|?8dS8n899Bi7$|1o>+WR|{Eb~-0(PY0{hswcgRfIeFy zd-U5WCP%SZ{|;t+L=B>FP4xJznXx@TEHJCUrd|Tj0}jKYdRSo7(@E4LU>;cd9hJq@ z!RqSqc~uhhtrkxW{e0JlSe>tMfNZNYRh!y=i~^ex*y2=I+}eUOUYcI(k+o@9V2_9N zxi#ts&jDAb!RnrS?HYQ=&q^eL^!v5|Y~~jROtNaOG*twfR}fsp#Fyq*zlKYEx+t^U zWA05O1N(G@pUi;4Yd2WklPy+1cl4P7Ii#N=NH)5dvf3sqKC)3h2^7bM4)U9aoj%5D zXzID5h`$hRmpkQ}3APm5?7vS0^zpLowvGBbSY6bH*{Km=c9o>j~yTd9`sT1dU1a6{nHuij18zUJRBthenBC731XU7N-S z_8nsW1SZLLX7KdhYlGE2!2OWKCr)EvAU|pB^9)yRNs5`XbfNd*zsAV%a{)VwzWe}T)Fb?0QOxH)Tm`H+ zZk@moY~a64{Y(9=7QR!95aZF98e1V?mXf=>m3$*-usWlCHU$CZSXqwVM_Ey7J_yi} zP_r%+tLp_k((*|o8P@2MlGo&-S7XM#%|&q`!Zif1y@wqU}7q*JR9 zTGuaH}*zTt`ofX*8wLny3XGxkuL8%&50!L1oDRomMpIyF%csz&0SDDy1S&La||*rJ})+ zNxj@$&ChJeOB4OEae`@?isHnZjL(8f1KwCKf{5tfJ13d*%nuWB$C=J}Se9%$0R-FgbVTxW;V{NK= zI19m37SPH>gvdd_q%3UP?_Zz;OW+rt=afPl<9dW#*~$Qe_$aL~PdEK1WpWWF_O<*$XY40C1@Fw2-FnkZa>vQT67oeN;t;AqZ+*+k#YQ( zE(6zrL{X&Iudb#r30w!3o)LaH5t-8w7p@b5!c=seFz;RUhd2M~Lst}p10gM5r0PX# z35tri_{GzB?|tEiadJixI5Dtc50h0sPR#M_*kK9ka4F+fIuO-S0R5dNhtrbg4+{pa z-X++njx~agA0Se>E3*m$`(cpH1~E3ncO1eY96ulo6owh1@;}%P2QJZa3!pAEGibCO zg4fim3AkCLh#NDN2Ut+F7SLGSB1K@9H5$MDOYNNeCk8gpLc5V19?y=Qfwi0iNuV-X zQtuMY54wZb)T1urI}$Q74;K^!n#fT`ER)i1wCH8x;U|16)@&&nx~NwZ$ZxQaHtXr= zq*6TvH2O7XE7}yqB77=sNa2H;RU}z9CLBr4V(~JNqM4c!?Pna0-~Lg1W@iS0vjQ7i zSPryEK^gO8$QX%$MEcsDWf=6)t90)eQHPt+z1-XwbDGU;`NNLriM#5s)+VK3=~E|U zEg3ZOxx|T<5G@L3qBLdhF@&Rw1u#8j4m>!SYnwsC7{BFFccPsJpH3ApsybDLJ)4>W zc}C4_>M(?eZ4sn`RrAvzeVIf<1kMUYw6=VsbV|fJ-dIn84=E+NsVMiDv1Q9MMQ2rE}Y29;Phk4Z?2* z;ib#|xd%A&>U8=-u0EU=^zF=9ZJkLkblFr}f$>1tXx~K$ObXT2^yt7oZ0BJE!lf^D zlThzof5Jj9x-z#d?HA+=e~;sVRy64*2%Htzk~EzAG&B-1R+{2?WV(mzyh&LHl3srG zAyBpU1H-S$a4B7|EuoubjK58m3KW?xHUJ_DcW{uThv$+pa|he0tQ6 zh++lMoQDV23(tjAk_K0VgmY>5P}2{MDY+p6rvx@L^KN<(Psz_{1W^hCQ$*X$P-=$o zb4!Xx%}ok3hI9WOb0?#YM*`qqS(wB&CaB#fAe2JDd*CQS6^u7$phnTt^;86U@^DmC zw38*6);7U8sw?b7=u)pCLguhX?!wMOCJSn`po#ntN;W+VQ4h13JDaB6ixInhZ&y0!sZ_FlUK*bv3j_) z@jTw7ZZwRUQm+w~L`;a?yr&I|(qX+Tt(Z}<>|`L(at@6lsMiqrLco%pXVWf7>M&Z+ z+}%NPxJ^ZiRx#=OL127fBX1yM?4GFz5tzeh zvXzQrgB#fdTYfVVpZcX7gXh#D2yo%J-1mkIvk)!x-?_vWkx-uy^wucNdm*Ys-e0Ce zA(dWBm~}|d!Nk);QZQDoF3S_fQP5D(ljdpTskW>Oip?ttvMMdc;otu6IABD5DOABU(H1qCBI>Y2sR#bC|)3@*eCYRwRlfq|DYw8j+mIr70nq z{?oT`czP5!u@F(Sxppar=qz;d8ITJkL}oL}F3T{abj|+L5jZ`t^9b>xnz6+1*r2<7x>Cw@zMdb5$DpB|a<~gZIh~Da8jD)VqOFTk=$Qx`%js0l0S{kXL zT7HwKLfX#=rwR^@A;RJ-mPFm;0v$Lj@_~+?l8AaLr<7J_jHrs)*$;u!13T|p_*_sL zX(FL?R%n$u9G0d&BakP$Ca*?DxHP$Kg{Uv4Q7!BotPXnl!lN;iWh#9%<8o*(T73?v zWeVM@>IwMf)C3h85H3(ZB0S%Un^=obY0Yy19|J>3Lq&w8)jEbM>U-c(k$Hnxw%)-S z30y%g_g%S9t4NgQSoydrdW0*&P0nCqhB>Pj$q{BbY94sjaOw(oaoc=o%owarwDT0r z6FAK%bv8Wtw^|xr6BxiCDi1aW{L{B^Xn;5y9te4yC`!oMUk#(CjX*>~tBtR<*VC{Q z84Lwl%+oF)HoV!fBP0jR~JB25;fe0I?*j@AY9% z9}Qv3y`*ud8w^Ee$q=Psm>DmKTUdaYsEwx?jgLMQ#?}3-X8pdVci~zWEgWl{1W#pn z(5gx~85fMfFuM|gj4lifR!3uGv$Kv!^T5d=OcAZ%k|$*?Kl;)|j}8#wgJi$BikcT1 zApW8>XnxiU-C0UYb<=nXt*;x5Mjl#9wY23&Ea|EQ8c@Js*eQyTaCg??c6(S&V20UoyK_SZd2+9p6G~Q1XeP+99MSD?#F;E!9|hyEY+oR4xK%{;Ffw($xjRgf$@PIwLiKvQO-;! zlf!|OrN#38g)r0or8LuErJP;820bkC?vxsa!Rlx#G7^FoUb zeyhMZ7Z;eQ{UB6w5;{XjF%t7oRw}h%I(MQ`B(D&>Zd4v1EA2!@W>P&?n8W}ct?6u~ zVGlR`^uUfH7Ou;IjDf(AWv$t*CU-@xb#^jhD{JMhI_7F|A4|MDrG{a!I+`kafvNy2 z35ugmg0Dc#0LSDQbzv6mx9H|J(WD9(ck)fap8%2owyYO&hsw*@9W{|gMR1uF0X(~M zx-#gDT2m!WWcJ?0T`@T({Pe(%n$4&qao|G7+H|0yuk36QM}6n-eBuk56LUXxyzrpfE|F_VZGNH*!r*>20|-Erw4ZE2p^~!dms*E9=)=m7Eh0sAjTX!RO^U6Cc$GZ zdCaY|cT^8nM>jR9HAzW_8R+^2GQ}D)40tj|(_+YLh%u@;o|_x`t5RjI%~h5A4u!Q!Zt>L$=)>y=6*+7Gb8R*MywD zn`0C8zBB z3q`5Mob>9i`MX}jc$zB2fh*^(7BUQ0N4+4h{po4V!@j39xYgh6p$88LUoQ&a+1)uwi-CT8e0zBr#lR zm|wLy&h@@28^g>-6W`@`&6&YyK{NaykGd*vyP>Yq971m}-Uoe7VFX3LiS070m!r+B5~R?ZGuPX0SSK01?iw zg`Se4&GF;dN|_XmQ*_(RoH8E$#{S(n&xkrO6z&??am~#LPZ8YO7&>5i!zpGX97|co z9%is(0coT?V)NXVe!s4e)1+mw z0o%3*0wUb}?j7Wz%VCd65x^wmDeWP!J&-Il<`n*O1KYUFgv0Qw$?BmriUond+uSNXRyz z#~czo#<#KxAZP?Y_e-Y+ZRo-tZ{6$s3tH4j9>c%87xkUBiYl zL5`+*G}HVZIt=DeMc5M-L?*+KIo~rfOBeu~9Nsb@4_2ow!NwQZ!8; zVU8=fJyphPskNHlSU$2uhFhaw%$rPA^QfZHtEZ#K;C?vN8~i8|P7G`fkud|w2UmE_ zaDWaEb@@_)(bP%Iq~cvUFn(}w8UTAIsKM&=>a#91KUHG&^}`X)HYk74f((owjG}2W zB=}P?qiya=n>g=%EYZH0hnI#oS*=BA^L&aG33*QGF(5EGV2@zv6qBAq>4|}@0W@14 z>)RyGkvAABc>)IHqunnGIV~?rJKl;m0QNRuusV$r%SWe;Z^~{eY!IJ=j~^NYLz^c8 zGupMO@#z|M`ePl?U7acwZtAAS1Um&0bw8m}>e{*dCk8eh*Q+UX=23;SJOqlbanR_( zs8bh2nVf7yA#FNEc`PsD(U!oYqPYi{2dkrnJW2s-cJ?5UOppMv+zcLQL=&B-Uz9?B zO+6iHA@OPZ#2WgDoh4C+h3IrF36(l~7?yfpgfvRntW!=%h3&+^76Xt6!gXwW27?M5 zbdg&S*w7_;=2)Ca*20$5qL8xCUj%zYW&>dFEHPM}1`4i8sNB!T4cff3Xlxd}gGPcQ z*`vuTM;<-+h#iN0heD9&JZ02mQN0{d8o3Bl?$ei30E{Xqnn9_2ZOf$AhMYc5%I$xaOH=(k+X`qU;0 z&YgFfwd?(~I9QzqU%w^J#}JK-&^jv)IHH6G%pM?sgob+%KZbMGCSjX-FB(E;1-8j` zvPQjMrJ@KtXeXb!038;ww-6a%7qusRL9{>ILX5RHtc^#Wlx&8w3J=T2y; zQ{ji~yiCpT4p*vGVEcE3{se(bXl6MB z&RsQe+={;V&4;7tGF1jP5(pn&a4^`-A>q=@Z|FtWCEBUa5?Ht>Ps7f^>Wt<3?bi&= zrba-2fIA>6wCYJ8KtLb5c>0y5@> zb;ccP$C<|r&89&>zZVU-O&jgAS&BgT52NNcBBB@`3v7L;W}yL**&14rOqov*(G`hy zYQP7i>%r=b%lgBn`4PVXCv0lCP}ApmFNEmcdU*7bOqfZV_h$J>dyWOR!ItGIRc^wY z?ELao(JE`e2fP3bR%f8l(K3&e2ApV9pC$0!`zX)sJca;jJ(5*hRQ11)$RFvC+59xK zN&_2<#bRWLXeQC+Px$A@e?`HgBRN(5iv;GG2dfK>nIATVnC$lGcZuCkes`r!1|lFI zeBiXko_a!`zK{~5X|rC-b4Vx(?C2*)Ksfr=ghIyeORz8vIQc)vy1)yKb`;^Zo(@(Q zHJ$-8z~86=kJzbCfb;Cva0TV0)HW1Rj3gP#@0kxX>s1uk(R&ll6(PdtVV;pyz!GD6 z#*#T?5YPaI2pi`5=3sT9!8*DIToOYA9=At-wP`}vY8~Z$yX`lM&Aq9Wsn05>D6sXb z3yKb!VZ|}{gRSkG?Xxa~_Dg@IXTW#!2CLJalGYcu0kxQVpM%gV2qd4wsS~|G1j?bh z?RRqYGR>^$SznDY*O=V09T6ctD!3QW=!;Ln!OA2ayA@vU%n?nn8dm4n&5nXoz<)tPvKdXznX# zE(&bmjAVi-yhZ_V&{#?wIpi|+%JDqrK34(6F$qPp2CK{1CMQ*dP=;p?mo# z!6t9aLyt18H7p`L|07k-*QBEGs0r+ONGpOm#mwj(bM76iF6A}*@yXge)ewzi1a>0N z8}k#5V;JfSPOCbizoFOgE_TepN1QbS`@~h_qZV?@fLcFT-HE`yLe)HV%m>l~tIrRc zP?+#jUrJEy^hIpI?mpo4Lrj^0J${+E9RU6S?Ss_~@Mx+q2q2?MY8~)BPow(Ln}kjP z#Bc1E!%m?R@u3wJYQ78{Mp7nnb!K2!BI%jV`+ofi?GDv>Oqx7B5Wwa|R-9Y76kFbL zSep))Cw#7?rOl6-O4lOFKLa}oOOMXMP!Cqu1FL$$_|u^8lg~d2`ab{sd#3M`kH7cHcWvLN z?>@GC-~H$#JNM&HzWdRqM#rb0z5Cv~&u`^@{_(p&#}{9~)mz`->-WC<`McY>;QIIr z+xN+*pM3Q3E#JHEe)l8G_vyROKev8-_Stto{lfV6#k)_x_q|&k?>_qOr{Dcl@qPIA z%dh_P{kJdQ|NhI{pM3TIzhBn!?T^3t=EEBp^5(}cZ~yu0Uw-ojLO}oE2QR<>@a4B3 a)>VJ^$tRzF_R)7={^$SvfByCVefhtFv88(e diff --git a/dev/stepPlotQuadTank.pdf b/dev/stepPlotQuadTank.pdf deleted file mode 100644 index 63c0dd75430e998b0d9b7b61b3fce0e1a6daff29..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 460839 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

5|G$ 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 Poly([1, -p]), *, P, init=Poly(one(eltype(P)))) - q = zero(Array{promote_type(eltype(A),Float64),2}(undef, n,n)) - for i = n:-1:0 - q += A^(n-i)*poly[i+1] - end - S = Array{promote_type(eltype(A),eltype(B),Float64),2}(undef, n,n) - for i = 0:(n-1) - S[:,i+1] = A^i*B - end - return [zeros(1,n-1) 1]*(S\q) -end - - -""" -`feedback(L)` Returns L/(1+L) -`feedback(P1,P2)` Returns P1/(1+P1*P2) -""" -feedback(L::TransferFunction) = L/(1+L) -feedback(P1::TransferFunction, P2::TransferFunction) = P1/(1+P1*P2) - -#Efficient implementations -function feedback(L::TransferFunction{T}) where T<:SisoRational - if size(L) != (1,1) - error("MIMO TransferFunction inversion isn't implemented yet") - end - P = numpoly(L) - Q = denpoly(L) - #Extract polynomials and create P/(P+Q) - tf(P[1][:],(P+Q)[1][:], L.Ts) -end - -function feedback(L::TransferFunction{T}) where {T<:SisoZpk} - if size(L) != (1,1) - error("MIMO TransferFunction inversion isn't implemented yet") - end - numer = num(L.matrix[1]) - k = L.matrix[1].k - denpol = k*prod(numpoly(L)[1])+prod(denpoly(L)[1]) # TODO: Chcek indexing into polynomials - kden = denpol[1] - #Extract polynomials and create P/(P+Q) - zpk(numer, roots(denpol), k/kden, L.Ts) -end - -""" -`feedback(sys)` - -`feedback(sys1,sys2)` - -Forms the negative feedback interconnection -```julia ->-+ sys1 +--> - | | - (-)sys2 + -``` -If no second system is given, negative identity feedback is assumed -""" -function feedback(sys::StateSpace) - sys.ny != sys.nu && error("Use feedback(sys1::StateSpace,sys2::StateSpace) if sys.ny != sys.nu") - feedback(sys,ss(Matrix{numeric_type(sys)}(I,sys.ny,sys.ny))) -end - -function feedback(sys1::StateSpace,sys2::StateSpace) - sum(abs.(sys1.D)) != 0 && sum(abs.(sys2.D)) != 0 && error("There can not be a direct term (D) in both sys1 and sys2") - A = [sys1.A+sys1.B*(-sys2.D)*sys1.C sys1.B*(-sys2.C); sys2.B*sys1.C sys2.A+sys2.B*sys1.D*(-sys2.C)] - B = [sys1.B; sys2.B*sys1.D] - C = [sys1.C sys1.D*(-sys2.C)] - ss(A,B,C,sys1.D) -end - - -""" -`feedback2dof(P,R,S,T)` Return `BT/(AR+ST)` where B and A are the numerator and denomenator polynomials of `P` respectively -`feedback2dof(B,A,R,S,T)` Return `BT/(AR+ST)` -""" -function feedback2dof(P::TransferFunction,R,S,T) - !issiso(P) && error("Feedback not implemented for MIMO systems") - tf(conv(poly2vec(numpoly(P)[1]),T),zpconv(poly2vec(denpoly(P)[1]),R,poly2vec(numpoly(P)[1]),S)) -end - -feedback2dof(B,A,R,S,T) = tf(conv(B,T),zpconv(A,R,B,S)) diff --git a/dev/test_hinf_examples.jl b/dev/test_hinf_examples.jl deleted file mode 100644 index 0d6d88bd0..000000000 --- a/dev/test_hinf_examples.jl +++ /dev/null @@ -1,92 +0,0 @@ -using ControlSystems -using Test -using LinearAlgebra - -@testset "test_hinf_examples" begin - - ############################################################################## - # Test the DC motor example - ############################################################################## - - # Make sure that the code runs - @test isa(include("hinf_example_DC.jl"), Nothing) - f = [10^i for i in range(-7, stop=7, length=201)] - # Check that the optimal gain is correct - @test abs(gamma - 4.466640) < 1e-2 - # Check that the closed loop tf satisfies ||Pcl||_∞ < gamma - valPcl = sigma(Pcl, f)[1]; - @test all(valPcl .< (gamma+1e-4)) - # Check that ||S/WS||_∞ < gamma - if isa(WS, LTISystem) || isa(WS, Number) - valSWS = sigma(S * WS , f)[1]; - @test all(valSWS .< (gamma+1e-4)) - end - # Check that ||S/WS||_∞ < gamma - if isa(WU, LTISystem) || isa(WU, Number) - valKSWU = sigma(KS * WU , f)[1]; - @test all(valKSWU .< (gamma+1e-4)) - end - # Check that ||S/WS||_∞ < gamma - if isa(WT, LTISystem) || isa(WT, Number) - valTWT = sigma(T * WT , f)[1]; - @test all(valTWT .< (gamma+1e-4)) - end - - ################################################################################ - # Test the MIT open courseware example - ################################################################################ - - # Make sure that the code runs - @test isa(include("hinf_example_MIT.jl"), Nothing) - f = [10^i for i in range(-7, stop=7, length=201)] - # Check that the optimal gain is correct - @test abs(gamma - 1.636084) < 1e-2 - # Check that the closed loop tf satisfies ||Pcl||_∞ < gamma - valPcl = sigma(Pcl, f)[1]; - @test all(valPcl .< (gamma+1e-4)) - # Check that ||S/WS||_∞ < gamma - if isa(WS, LTISystem) || isa(WS, Number) - valSWS = sigma(S * WS , f)[1]; - @test all(valSWS .< (gamma+1e-4)) - end - # Check that ||S/WS||_∞ < gamma - if isa(WU, LTISystem) || isa(WU, Number) - valKSWU = sigma(KS * WU , f)[1]; - @test all(valKSWU .< (gamma+1e-4)) - end - # Check that ||S/WS||_∞ < gamma - if isa(WT, LTISystem) || isa(WT, Number) - valTWT = sigma(T * WT , f)[1]; - @test all(valTWT .< (gamma+1e-4)) - end - - - ################################################################################ - # Test the quad tank example - ################################################################################ - - # Make sure that the code runs - @test isa(include("hinf_example_tank.jl"), Nothing) - f = [10^i for i in range(-7, stop=7, length=201)] - # Check that the optimal gain is correct - @test abs(gamma - 5.052886) < 1e-2 - # Check that the closed loop tf satisfies ||Pcl||_∞ < gamma - valPcl = sigma(Pcl, f)[1]; - @test all(valPcl[:,1] .< (gamma+1e-4)) - # Check that ||S/WS||_∞ < gamma - if isa(WS, LTISystem) || isa(WS, Number) - valSWS = sigma(S * WS , f)[1]; - @test all(valSWS[:,1] .< (gamma+1e-4)) - end - # Check that ||S/WS||_∞ < gamma - if isa(WU, LTISystem) || isa(WU, Number) - valKSWU = sigma(KS * WU , f)[1]; - @test all(valKSWU[:,1] .< (gamma+1e-4)) - end - # Check that ||S/WS||_∞ < gamma - if isa(WT, LTISystem) || isa(WT, Number) - valTWT = sigma(T * WT , f)[1]; - @test all(valTWT[:,1] .< (gamma+1e-4)) - end - -end diff --git a/dev/test_hinf_private.jl b/dev/test_hinf_private.jl deleted file mode 100644 index dd55fcafa..000000000 --- a/dev/test_hinf_private.jl +++ /dev/null @@ -1,65 +0,0 @@ -#@testset "test_hinf" begin - -using ControlSystems -using Test -using LinearAlgebra - -""" -Testing that we can re-write the weight specificaitons to a feasible state-space -form -""" -possible_entries = [[],1.0] - -for ii = 1:2 - for kk = 1:2 - for ll = 1:2 - A = rand(ii,ii) - B = rand(ii,kk) - C = rand(ll,ii) - D = rand(ll,kk) - Gss = ss(A,B,C,D) - Gtf = tf(Gss) - append!(possible_entries, [Gss]) - append!(possible_entries, [Gtf]) - end - end -end -#ii, jj, kk, ll= [4, 3, 2, 2] -for ii = 1:length(possible_entries) - for jj = 2:length(possible_entries) - for kk = 2:length(possible_entries) - for ll = 2:length(possible_entries) - G = possible_entries[ii] - WS = possible_entries[jj] - WU = possible_entries[kk] - WT = possible_entries[ll] - println([ii, jj, kk, ll]) - # Check that the system is realizable - if isa(G, StateSpace) || isa(G, TransferFunction) || isa(G, Number) - Ag, Bg, Cg, Dg = ss(G).A, ss(G).B, ss(G).C, ss(G).D - if (size(Ag,1)==0 || size(Ag,2)==0 || size(Bg,1)==0 || size(Bg,2)==0 || - size(Cg,1)==0 || size(Cg,2)==0 || size(Dg,1)==0 || size(Dg,2)==0) - @test_throws ErrorException hInf_partition(G, WS, WU, WT) - end - elseif isempty(G) - @test_throws ErrorException hInf_partition(G, WS, WU, WT) - elseif isa(WT, StateSpace) || isa(WT, TransferFunction) - if size(ss(G).C, 1) != size(ss(WT).B,2) && size(ss(WT).B,2) != 0 - @test_throws ErrorException hInf_partition(G, WS, WU, WT) - end - elseif isa(WS, StateSpace) || isa(WS, TransferFunction) - if size(ss(G).A, 1) != size(ss(WS).B,2) && size(ss(WS).B,2) != 0 - @test_throws ErrorException hInf_partition(G, WS, WU, WT) - end - elseif isa(WU, StateSpace) || isa(WU, TransferFunction) - if size(ss(G).B, 2) != size(ss(WU).B,2) && size(ss(WU).B,2) != 0 - @test_throws ErrorException hInf_partition(G, WS, WU, WT) - end - else - A, B1, B2, C1, C2, D11, D12, D21, D22 = hInf_partition(G, WS, WU, WT) - @test isa(ss(A,[B1 B2],[C1; C2], [D11 D12; D21 D22]), StateSpace) - end - end - end - end -end diff --git a/dev/test_hinf_public.jl b/dev/test_hinf_public.jl deleted file mode 100644 index dd55fcafa..000000000 --- a/dev/test_hinf_public.jl +++ /dev/null @@ -1,65 +0,0 @@ -#@testset "test_hinf" begin - -using ControlSystems -using Test -using LinearAlgebra - -""" -Testing that we can re-write the weight specificaitons to a feasible state-space -form -""" -possible_entries = [[],1.0] - -for ii = 1:2 - for kk = 1:2 - for ll = 1:2 - A = rand(ii,ii) - B = rand(ii,kk) - C = rand(ll,ii) - D = rand(ll,kk) - Gss = ss(A,B,C,D) - Gtf = tf(Gss) - append!(possible_entries, [Gss]) - append!(possible_entries, [Gtf]) - end - end -end -#ii, jj, kk, ll= [4, 3, 2, 2] -for ii = 1:length(possible_entries) - for jj = 2:length(possible_entries) - for kk = 2:length(possible_entries) - for ll = 2:length(possible_entries) - G = possible_entries[ii] - WS = possible_entries[jj] - WU = possible_entries[kk] - WT = possible_entries[ll] - println([ii, jj, kk, ll]) - # Check that the system is realizable - if isa(G, StateSpace) || isa(G, TransferFunction) || isa(G, Number) - Ag, Bg, Cg, Dg = ss(G).A, ss(G).B, ss(G).C, ss(G).D - if (size(Ag,1)==0 || size(Ag,2)==0 || size(Bg,1)==0 || size(Bg,2)==0 || - size(Cg,1)==0 || size(Cg,2)==0 || size(Dg,1)==0 || size(Dg,2)==0) - @test_throws ErrorException hInf_partition(G, WS, WU, WT) - end - elseif isempty(G) - @test_throws ErrorException hInf_partition(G, WS, WU, WT) - elseif isa(WT, StateSpace) || isa(WT, TransferFunction) - if size(ss(G).C, 1) != size(ss(WT).B,2) && size(ss(WT).B,2) != 0 - @test_throws ErrorException hInf_partition(G, WS, WU, WT) - end - elseif isa(WS, StateSpace) || isa(WS, TransferFunction) - if size(ss(G).A, 1) != size(ss(WS).B,2) && size(ss(WS).B,2) != 0 - @test_throws ErrorException hInf_partition(G, WS, WU, WT) - end - elseif isa(WU, StateSpace) || isa(WU, TransferFunction) - if size(ss(G).B, 2) != size(ss(WU).B,2) && size(ss(WU).B,2) != 0 - @test_throws ErrorException hInf_partition(G, WS, WU, WT) - end - else - A, B1, B2, C1, C2, D11, D12, D21, D22 = hInf_partition(G, WS, WU, WT) - @test isa(ss(A,[B1 B2],[C1; C2], [D11 D12; D21 D22]), StateSpace) - end - end - end - end -end From 61694cdbc38058c48f32722491c94c73a8fc5b15 Mon Sep 17 00:00:00 2001 From: Marcus Greiff Date: Fri, 2 Nov 2018 11:04:35 +0100 Subject: [PATCH 03/66] Include tools for discrete-time synthesis and some tests This branch is now up to date with local changes, and now includes a robust bilinear transformation for discrete time synthesis as well as tests for some of the code. --- .DS_Store | Bin 10244 -> 0 bytes .gitignore | 1 + dev/.DS_Store | Bin 6148 -> 0 bytes dev/hinf_example_DC.jl | 4 +- dev/hinf_example_DC_discrete.jl | 62 +++++++ dev/hinf_example_MIMO.jl | 109 ++++++++++++ dev/hinf_example_MIT.jl | 6 +- dev/hinf_example_MIT_discrete.jl | 62 +++++++ dev/hinf_example_tank.jl | 2 +- dev/hinf_example_tank_discrete.jl | 134 +++++++++++++++ dev/hinf_utilities.jl | 58 +++++-- dev/test_hinf_bilinear.jl | 117 +++++++++++++ dev/test_hinf_examples.jl | 95 +++++++++++ dev/test_hinf_public.jl | 65 ++++++++ src/ControlSystems.jl | 4 +- src/hinfinity_design.jl | 264 ++++++++++++++++++++++++++---- src/types/ExtendedStateSpace.jl | 2 +- 17 files changed, 927 insertions(+), 58 deletions(-) delete mode 100644 .DS_Store delete mode 100644 dev/.DS_Store create mode 100644 dev/hinf_example_DC_discrete.jl create mode 100644 dev/hinf_example_MIMO.jl create mode 100644 dev/hinf_example_MIT_discrete.jl create mode 100644 dev/hinf_example_tank_discrete.jl create mode 100644 dev/test_hinf_bilinear.jl create mode 100644 dev/test_hinf_examples.jl create mode 100644 dev/test_hinf_public.jl diff --git a/.DS_Store b/.DS_Store deleted file mode 100644 index 68bd7bb51ca19fbf19d0f2c8e20e5bc62bdbda70..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 10244 zcmeHMX>1%t7JkomlJ2-o%8s35G8RJ&3L#d=L1I`IGCqTYgN?^$VlwHOt~d?t?xDLq zPBxge_6Jfpf&g&{1meCT;13Y^gG9IwAx?=PBqXk%%L;_V{#kg{)iWNCoj)t>3MpNq zu2=Qyy{f5izW2)21^{fEG&Tby06?KfNTyM>KoR5OnO7=8%`%cm{@`RYmXo0#n`av- zA_O7?A_O7?A_O7?{u~I5AbM1H-!mN_QGhhW0a3N_W6uWtt~k8N(Y2hF1?v z1m=KADWf_s5Wx6?Wq@`t3bK;_{+oz}5F-2Lkep~DA(cJXSk3RPJ6Hh+%^vO3ROcz3En*ETe)Sh=cUb={hHnk~=h+3Ut# zv6FVka@;m+lBd}+k5KE*I(E335uYFOQ|8}jsIJVRpBwvTRRf1}WK%z@2qxX>a&GS( zcTJ=BzyXi@BPH!ov0B!3EUVA)Oy6|u(Xn84pHFn#2OL^az}cGvl>Mo68afr4glZ!>*ys;hXL{e&UTc-+t%a z_rCl72SSiaF;mpbezE?MS|O^Im+zB#v*MA3@rreJb*|8^IBnp~O%20Y$C{k5y)>)M z>Q;8rBKTS@ON1Qh%0s&(k(3RM?C~7er*uJ+r5T&_ct5AP%slU)8NFg0GgO~FYh^rf z-USz4bn#`Mi=3v_Yb%EHBG+1ca7v`%QQgaO+n`Y2L&@3p%>yQP)mm&;2W)+UORv?j zH7a{a88c}9-Hst_j9?_TI(D|A>=pWUms2g(+S=H;D$|t#kM<^~Sf{O5nWqk1N9Tcb zZPqp_%uok|BqUXvwXF)fQXS6A+$ELuT8pBNWSxl#`g)$!{U!ESg}tln6ASm~p5L3} zHmzNE`Hp1k>R7CNYlSV33j0>W;D(|oC0Q)YY?Qq=g+x%G5w=j+_P~A$up@9A+y}?u zMR*xbz)AQ3K7&(~!2St8!O!pu{Dz1XScQwQ4%c8D8*x2u!L5|iw&SJPft|P$ufW|n zgu^(BdvHIRcr98ufs=S6{vBuVDBg*8;oW!-K7r5Ui})J8jUVGD_$hvdU*iubXi24* z47+8&P~%V3nx$=cz*QVwn6~k*om~xD_n()xr{n=#Pp5Cd-b*fTD-xjWH!tO0KsU*! zfM*3B1x%hx-c>~Dc%yc9ff?nD86=wWLyCw4w&e4`dTsn%!8xYL?z;GTg<^tL1YNB; zzELoqRm#zT$%e`n$%r!d~p76E=l|xDV5)V+IW(qm4Pd9zDDPrvp;{ z18>1w@fhBYci{c_06vHh;lub0K8wfkIeZyU;4Anlp2QDOoJ&-S^xP%;g&M!0R!Glz zXSGkKum^tG875BB(le|uRU{(>A_O7?&P)U<<+c;z{eS1_|Nnnxf)njJLf{NR0INDu z9c{GP!po8JeT#SP33~R^BZ{z_kuq?hDtH}FvWnEABVNY`7a`IWu0g^tDaJ|8NJ%X! V|M!0e%zqOZ-T$Ne{~2}v{{xzb<4OPk diff --git a/.gitignore b/.gitignore index bbcba11fa..c4cac0061 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,3 @@ docs/build/ docs/site/ +.DS_Store diff --git a/dev/.DS_Store b/dev/.DS_Store deleted file mode 100644 index 5d9e48d61618430ed8f07e9b547afb8374918c18..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6148 zcmeHKyH3L}6g`Fx6(F8PV$8^d#1{}jLF#~b?m%gQK%od)RJMq(WsA0G*HJL%2>&a z_6pB{XW*|fAn)!t-`NfhaE|2ryTH2|jw+4jVYSh$a-3`ucYM`Dw#QzNcfdr(b{!S$ zBG=k%)3U?%?5s;TX50uD*yPU9Lh+KQ=4B)a6VmtZBmUh+8+R+F5Rw2t?lE^)h zOc0yEVdyZn$R`wIO^MdjxL*uo&8ZLExX@v2(VD|(WcqQD<$w?|8l4#Mh9Vy;UOWSy zfh+^VRy8T-|LWlX|E!_ccm_NJ|AqlmDDRY)S&lnfGlj`n8?f!OiO9IvqMERC$FW|> eQ9Q?{!e@b85JQKtMQSMiLqKWpooC=z8F&M^_34)Y diff --git a/dev/hinf_example_DC.jl b/dev/hinf_example_DC.jl index a2a591397..bab2406df 100644 --- a/dev/hinf_example_DC.jl +++ b/dev/hinf_example_DC.jl @@ -11,7 +11,7 @@ The example can be set to visualize and save plots using the variables SavePlots - true/false (true if plots are to be saved, false for testing) """ MakePlots = true -SavePlots = true +SavePlots = false # Define the process Gtrue = tf([11.2], [1, 0.12,0]) @@ -49,8 +49,8 @@ flag, C, gamma = hInf_synthesize(P) Pcl, S, CS, T = hInf_signals(P, G, C) # TODO remove hack for visualizing plots, should be made into some kind of recepie -include("hinf_utilities.jl") if MakePlots + include("hinf_utilities.jl") if SavePlots; filename = "example_DC.pdf"; else; filename=[]; end visualize_synthesis(Pcl, S, CS, T, gamma; filename=filename, tmax=4) end diff --git a/dev/hinf_example_DC_discrete.jl b/dev/hinf_example_DC_discrete.jl new file mode 100644 index 000000000..cf9f28791 --- /dev/null +++ b/dev/hinf_example_DC_discrete.jl @@ -0,0 +1,62 @@ +using Plots +using ControlSystems +""" +This is a simple SISO example with a pole in the origin, corresponding to the +DC servos used in the Lund laboratories. It serves to exeplify how the syntheis +can be done for simple SISO systems, and also demonstrates how we chan verify +if the problem is feasible to solve using the ARE method. + +The example can be set to visualize and save plots using the variables + MakePlots - true/false (true if plots are to be generated, false for testing) + SavePlots - true/false (true if plots are to be saved, false for testing) +""" +MakePlots = true +SavePlots = false + +# Define the process +ts = 0.01 +epsilon = 1e-5 +Gd = ss(c2d(tf([11.2], [1, 0.12]) * tf([1], [1, epsilon]), ts)) + +# Sensitivity weight function +M, wB, A = 1.5, 20.0, 1e-8 +WS = tf([1/M, wB],[1, wB*A]) + +# Output sensitivity weight function +WU = ss(1) + +# Complementary sensitivity weight function +WT = [] + +# Create continuous time approximation of the process +hInf_bilinear_z2s(ss(Gd)) + +# Form the P in the LFT Fl(P,C) as a partitioned state-space object +Pc = hInf_partition(Gc, WS, WU, WT) + +# Check if the problem is feasible +flag = hInf_assumptions(Pc) + +# Synthesize the H-infinity optimal controller +flag, Cc, gamma = hInf_synthesize(Pc) + +# Extract the transfer functions defining some signals of interest, but do so +# using discrete equivalent of the continuous time objects Pc, Cc and Gc +PclD, SD, CSD, TD = hInf_signals( + hInf_bilinear_s2z(Pc, ts), + hInf_bilinear_s2z(Gc, ts), + hInf_bilinear_s2z(Cc, ts) +) + +# This solution is a bit hacky and should be revised +Pcl = ss(PclD.A, PclD.B, PclD.C, PclD.D, ts) +S = ss(SD.A, SD.B, SD.C, SD.D, ts) +CS = ss(CSD.A, CSD.B, CSD.C, CSD.D, ts) +T = ss(TD.A, TD.B, TD.C, TD.D, ts) + +# TODO remove hack for visualizing plots, should be made into some kind of recepie +if MakePlots + include("hinf_utilities.jl") + if SavePlots; filename = "example_DC.pdf"; else; filename=[]; end + visualize_synthesis(Pcl, S, CS, T, gamma; filename=filename, tmax=4) +end diff --git a/dev/hinf_example_MIMO.jl b/dev/hinf_example_MIMO.jl new file mode 100644 index 000000000..50ef865e5 --- /dev/null +++ b/dev/hinf_example_MIMO.jl @@ -0,0 +1,109 @@ +using ControlSystems +using Plots + +""" +This is very dense and horrible example used for debugging. CUrrently doesn't +work due to the absence of enforcing a loopshift in h´the solver - I need to +figure out how to doe this prolperly. +""" + +# Define the process dynamics +nx = 30 +nu = 8 +ny = 8 +A = 10*rand(nx,nx) +A -= (abs(maximum(real(eigvals(A))))+0.1) * Matrix{Float64}(I, size(A,1), size(A,2)) +B = rand(nx,nu) +C = rand(ny,nx) +D = rand(ny,nu) + +G = hInf_bilinear_z2s(hInf_bilinear_s2z(ss(A,B,C,D), 0.005)) + +# Sensitivity weight function +WSe = tf([0.1,1],[1000,1]) +#WS = [WSe 0 0 ; 0 WSe 0 ; 0 0 WSe] +WS = [WSe 0 0 0 ; 0 WSe 0 0 ; 0 0 WSe 0 ; 0 0 0 WSe] +WS = [WS 0*WS; WS*0 WS] + +# Output sensitivity weight function +WUe = 0.0001*tf([1,1],[0.1,1]) +WU = [WUe 0 0 0 ; 0 WUe 0 0 ; 0 0 WUe 0 ; 0 0 0 WUe] +WU = [WU 0*WU; WU*0 WU] + +#WU = [WUe 0 0 ; 0 WUe 0 ; 0 0 WUe ] +# Complementary sensitivity weight function +WTe = tf([10,1],[1,1]) +WT = [WTe 0 0 0 ; 0 WTe 0 0 ; 0 0 WTe 0 ; 0 0 0 WTe] +WT = [WT 0*WT; WT*0 WT] + +# Form augmented P dynamics in state-space +P = hInf_partition(G, WS, WU, WT) + +# Check that the assumptions are satisfied +flag = hInf_assumptions(P) + +# Synthesize the H-infinity optimal controller +flag, K, gamma = hInf_synthesize(P; maxIter=20) + +Pcl, S, KS, T = hInf_signals(P, G, K) + +MakePlots = true +SavePlots = false + + +fmin = -8 +fmax = 8 +# Plot the singular values of the system +f = [10^i for i in range(fmin, stop=fmax, length=10001)] + +valPcl = sigma(Pcl, f)[1]; +valS = sigma(S, f)[1]; +valKS = sigma(KS, f)[1]; +valT = sigma(T, f)[1]; + +# Visualize the close loop gain +pGain = plot(f, valPcl[:,1], xscale = :log10, yscale = :log10, color = :black, w=2, label="\$\\sigma(P_{w\\rightarrow z}(j\\omega))\$") +plot!(f, gamma*ones(size(f)), xscale = :log10, yscale = :log10, color = :black, w=3, style=:dot, label="\$\\gamma\$") +if size(valPcl,2) > 1 + for ii = 2:size(valPcl,2) + plot!(f, valPcl[:,ii], xscale = :log10, yscale = :log10, color = :black, w=1) + end +end + +# Plot the sensitivity functions of interest +pSigma = plot(f, valS[:,1], xscale = :log10, yscale = :log10, color = :red, w=3, label="\$\\sigma(S(j\\omega))\$") +if size(valS,2) > 1 + for ii = 2:size(valS,2) + plot!(f, valS[:,ii], xscale = :log10, yscale = :log10, color = :red, w=1, label="") + end +end +plot!(f, valKS[:,1], xscale = :log10, yscale = :log10, color = :green, w=3, label="\$\\sigma(C(j\\omega)S(j\\omega)))\$") +if size(valKS,2) > 1 + for ii = 2:size(valKS,2) + plot!(f, valKS[:,ii], xscale = :log10, yscale = :log10, color = :green, w=1, label="") + end +end +plot!(f, valT[:,1], xscale = :log10, yscale = :log10, color = :blue, w=3, label="\$\\sigma(T(j\\omega)))\$") +if size(valT,2) > 1 + for ii = 2:size(valT,2) + plot!(f, valT[:,ii], xscale = :log10, yscale = :log10, color = :blue, w=1, label="") + end +end + +# Visualize the weighting functions +if isa(WS, LTISystem) || isa(WS, Number) + valiWS = sigma(gamma/WS[1,1], f)[1] + plot!(f, valiWS, xscale = :log10, yscale = :log10, color = :red, w=2, style=:dot, label="\$\\gamma\\sigma(W_S(j\\omega)^{-1})\$") +end +if isa(WU, LTISystem) || isa(WU, Number) + valiWU = sigma(gamma/WU[1,1], f)[1] + plot!(f, valiWU, xscale = :log10, yscale = :log10, color = :green, w=2, style=:dot, label="\$\\gamma\\sigma(W_U(j\\omega)^{-1})\$") +end +if isa(WT, LTISystem) || isa(WT, Number) + valiWT = sigma(gamma/WT[1,1], f)[1] + plot!(f, valiWT, xscale = :log10, yscale = :log10, color = :blue, w=2, style=:dot, label="\$\\gamma\\sigma(W_T(j\\omega)^{-1})\$") +end + +l = @layout [ a ; b ] +plt=plot(pGain, pSigma, layout=l, size=(600,600)) +gui() diff --git a/dev/hinf_example_MIT.jl b/dev/hinf_example_MIT.jl index 5b3809f2e..d0a93342f 100644 --- a/dev/hinf_example_MIT.jl +++ b/dev/hinf_example_MIT.jl @@ -15,7 +15,7 @@ The example can be set to visualize and save plots using the two variables filename - Set to string if files are to be saved, otherwise set a empty list """ MakePlots = true -SavePlots = true +SavePlots = false # Define the process G = tf([200], [0.025,1.0025,10.1,1]) @@ -43,8 +43,8 @@ flag, C, gamma = hInf_synthesize(P) Pcl, S, CS, T = hInf_signals(P, G, C) # TODO remove hack for visualizing plots, should be made into some kind of recepie -include("hinf_utilities.jl") if MakePlots + include("hinf_utilities.jl") if SavePlots; filename = "example_MIT.pdf"; else; filename=[]; end - visualize_synthesis(Pcl, S, CS, T, gamma; filename=filename, tmax=1) + visualize_synthesis(Pcl, S, CS, T, gamma, tmax=1) end diff --git a/dev/hinf_example_MIT_discrete.jl b/dev/hinf_example_MIT_discrete.jl new file mode 100644 index 000000000..055e6982d --- /dev/null +++ b/dev/hinf_example_MIT_discrete.jl @@ -0,0 +1,62 @@ +using ControlSystems +using Plots + +""" +This is a simple SISO example which was used for debugging the implementation, +as this exact example was use in the lecture notes of the "Principles of Optimal +Control" cours of the MIT OpenCourseWare [1], however, this example is in discrete time + +[1] https://ocw.mit.edu/courses/aeronautics-and-astronautics/16-323-principles-of-optimal-control-spring-2008/lecture-notes/lec15.pdf + +The example can be set to visualize and save plots using the two variables + MakePlots - true/false (true if plots are to be generated, false for testing) + SavePlots - true/false (true if plots are to be saved, false for testing) +""" +MakePlots = true +SavePlots = true + +# Define the process +ts = 0.005 +Gd = hInf_bilinear_s2z(ss(tf([200], [0.025,1.0025,10.1,1])),ts) + +# Sensitivity weight function +M, wB, A = 1.5, 10, 1e-4 +WS = tf([1/M, wB],[1, wB*A]) + +# Output sensitivity weight function +WU = ss(0.1) + +# Complementary sensitivity weight function +WT = [] + +# Create continuous time approximation of the process +Gc = hInf_bilinear_z2s(ss(Gd)) + +# Form augmented P dynamics in state-space +Pc = hInf_partition(Gc, WS, WU, WT) + +# Check that the assumptions are satisfied +flag = hInf_assumptions(Pc) + +# Synthesize the H-infinity optimal controller +flag, Cc, gamma = hInf_synthesize(Pc) + +# Extract the transfer functions defining some signals of interest, but do so +# using discrete equivalent of the continuous time objects Pc, Cc and Gc +PclD, SD, CSD, TD = hInf_signals( + hInf_bilinear_s2z(Pc, ts), + hInf_bilinear_s2z(Gc, ts), + hInf_bilinear_s2z(Cc, ts) +) + +Pcl = ss(PclD.A, PclD.B, PclD.C, PclD.D, ts) +S = ss(SD.A, SD.B, SD.C, SD.D, ts) +CS = ss(CSD.A, CSD.B, CSD.C, CSD.D, ts) +T = ss(TD.A, TD.B, TD.C, TD.D, ts) + +# TODO remove hack for visualizing plots, should be made into some kind of recepie +if MakePlots + include("hinf_utilities.jl") + if SavePlots; filename = "example_MIT.pdf"; else; filename=[]; end + visualize_synthesis(Pcl, S, CS, T, gamma, filename=filename, tmax=1) +end diff --git a/dev/hinf_example_tank.jl b/dev/hinf_example_tank.jl index 5b86f5827..8b13f0157 100644 --- a/dev/hinf_example_tank.jl +++ b/dev/hinf_example_tank.jl @@ -10,7 +10,7 @@ The example can be set to visualize and save plots using the variables SavePlots - true/false (true if plots are to be saved, false for testing) """ MakePlots = true -SavePlots = true +SavePlots = false # Define the proces parameters k1, k2, kc, g = 3.33, 3.35, 0.5, 981 diff --git a/dev/hinf_example_tank_discrete.jl b/dev/hinf_example_tank_discrete.jl new file mode 100644 index 000000000..01a0ce677 --- /dev/null +++ b/dev/hinf_example_tank_discrete.jl @@ -0,0 +1,134 @@ +using ControlSystems +using Plots +using LinearAlgebra +""" +This is a simple SISO example with integrator dynamics corresponding to the +quad tank process in the lab. + +The example can be set to visualize and save plots using the variables + MakePlots - true/false (true if plots are to be generated, false for testing) + SavePlots - true/false (true if plots are to be saved, false for testing) +""" +MakePlots = true +SavePlots = false + +# Define the proces parameters +k1, k2, kc, g = 3.33, 3.35, 0.5, 981 +A1, A3, A2, A4 = 28, 28, 32, 32 +a1, a3, a2, a4= 0.071, 0.071, 0.057, 0.057 +h01, h02, h03, h04 = 12.4, 12.7, 1.8, 1.4 +T1, T2 = (A1/a1)*sqrt(2*h01/g), (A2/a2)*sqrt(2*h02/g) +T3, T4 = (A3/a3)*sqrt(2*h03/g), (A4/a4)*sqrt(2*h04/g) +c1, c2 = (T1*k1*kc/A1), (T2*k2*kc/A2) +gamma1, gamma2 = 0.7, 0.6 + +# Define the process dynamics +A = [-1/T1 0 A3/(A1*T3) 0; + 0 -1/T2 0 A4/(A2*T4); + 0 0 -1/T3 0; + 0 0 0 -1/T4]; +B = [gamma1*k1/A1 0; + 0 gamma2*k2/A2; + 0 (1-gamma2)*k2/A3; + (1-gamma1)*k1/A4 0 ]; +C = [kc 0 0 0; + 0 kc 0 0]; +D = zeros(2,2) +ts = 0.01 +Gd = hInf_bilinear_s2z(ss(A,B,C,D), ts) + +# Sensitivity weight function +WSelement = 100*tf([0.1,1],[1000,1]) +WS = [WSelement 0; 0 WSelement] +iWSelement = 1/WSelement +iWS = [iWSelement 0; 0 iWSelement] + +# Output sensitivity weight function +WUelement = 100*tf([1,1],[0.1,1]) ## +WUelement = ss(0.1) +WU = [WUelement 0; 0 WUelement] +iWUelement = 1/WUelement +iWU = [iWUelement 0; 0 iWUelement] + +# Complementary sensitivity weight function +WTelement = tf([10,0.1],[1,1]) +WT = [WTelement 0; 0 WTelement] +iWTelement = 1/WTelement +iWT = [iWTelement 0; 0 iWTelement] + +# Create continuous time approximation of the process +Gc = hInf_bilinear_z2s(Gd) +#Gc = ss(A,B,C,D) + +# Form the P in the LFT Fl(P,C) as a partitioned state-space object +Pc = hInf_partition(Gc, WS, WU, WT) + +# Check if the problem is feasible +flag = hInf_assumptions(Pc) + +# Synthesize the H-infinity optimal controller +flag, Cc, gamma = hInf_synthesize(Pc) + +# Extract the transfer functions defining some signals of interest +Pcl, S, CS, T = hInf_signals(Pc, Gc, Cc) + +Pcl = hInf_bilinear_s2z(Pcl, ts) +S = hInf_bilinear_s2z(S, ts) +CS = hInf_bilinear_s2z(CS, ts) +T = hInf_bilinear_s2z(T, ts) + +if MakePlots + # Visualize + frequencies = [10^i for i in range(-6, stop=(2+log10(0.5/ts)), length=1001)]; + + pGain = plot(frequencies, ones(size(frequencies))*gamma, scale = :log10, yscale = :log10, color = :black, w=2, style=:dot, label="\$\\gamma\$") + valPcl = sigma(Pcl, frequencies)[1]; + plot!(frequencies, valPcl[:,1], scale = :log10, yscale = :log10, color = :black, w=1, label="\$\\sigma(P_{w\\rightarrow z}(j\\omega))\$") + plot!(frequencies, valPcl[:,2], scale = :log10, yscale = :log10, color = :black, w=1, label="") + plot!([pi/ts; pi/ts], [minimum(valPcl); maximum(valPcl)], scale = :log10, yscale = :log10, color = :green, w=1, label="\$\\omega_s/2\$") + + valT = sigma(T, frequencies)[1]; + pSigma = plot(frequencies, valT[:,1], scale = :log10, yscale = :log10, color = :black, w=1, label="\$\\sigma(T(j\\omega))\$") + plot!(frequencies, valT[:,2], scale = :log10, yscale = :log10, color = :black, w=1, label="") + valCS = sigma(CS, frequencies)[1]; + plot!(frequencies, valCS[:,1], scale = :log10, yscale = :log10, color = :blue, w=1, label="\$\\sigma(C(j\\omega)S(j\\omega))\$") + plot!(frequencies, valCS[:,2], scale = :log10, yscale = :log10, color = :blue, w=1, label="") + valS = sigma(S, frequencies)[1]; + plot!(frequencies, valS[:,1], scale = :log10, yscale = :log10, color = :red, w=1, label="\$\\sigma(S(j\\omega))\$") + plot!(frequencies, valS[:,2], scale = :log10, yscale = :log10, color = :red, w=1, label="") + + valPiWT = sigma(gamma*iWT, frequencies)[1]; + plot!(frequencies, valPiWT[:,1], scale = :log10, yscale = :log10, color = :black, w=2, style=:dot, label="\$\\gamma\\sigma(W_T^{-1}(j\\omega))\$")# + valPiWU = sigma(gamma*iWU, frequencies)[1]; + plot!(frequencies, valPiWU[:,1], scale = :log10, yscale = :log10, color = :blue, w=2, style=:dot, label="\$\\gamma\\sigma(W_U^{-1}(j\\omega))\$") + valPiWS = sigma(gamma*iWS, frequencies)[1]; + plot!(frequencies, valPiWS[:,1], scale = :log10, yscale = :log10, color = :red, w=2, style=:dot, label="\$\\gamma\\sigma(W_S^{-1}(j\\omega))\$") + + plot!([pi/ts; pi/ts], + [minimum([valT valPiWT valCS valPiWU valS valPiWS]); + maximum([valT valPiWT valCS valPiWU valS valPiWS])], + scale = :log10, yscale = :log10, color = :green, + w=1, label="\$\\omega_s/2\$") + + stepy, stept, stepx = step(T, 300) + + pStep1=plot(stept, stepy[:,1,1], color = :blue, w=2, label="\$u_1\\rightarrow y_1\$") + pStep2=plot(stept, stepy[:,1,2], color = :blue, w=2, label="\$u_1\\rightarrow y_2\$", ylims = (-0.5,1.1)) + pStep3=plot(stept, stepy[:,2,1], color = :blue, w=2, label="\$u_2\\rightarrow y_1\$", ylims = (-0.5,1.1)) + pStep4=plot(stept, stepy[:,2,2], color = :blue, w=2, label="\$u_2\\rightarrow y_2\$") + + if SavePlots + plot(pGain, size=(600, 300), legend=:right) + savefig("gainPlotQuadTank.pdf") + + plot(pSigma, size=(600, 300), legend=:left) + savefig("sigmaPlotQuadTank.pdf") + + l = @layout [ c d e f ] + plt=plot(pStep1, pStep2, pStep3, pStep4, layout=l, size=(1000,250)) + savefig("stepPlotQuadTank.pdf") + else + l = @layout [ a ; b ; c d ; e f ] + plt=plot(pGain, pSigma, pStep1, pStep2, pStep3, pStep4, layout=l, size=(600,600)) + end +end diff --git a/dev/hinf_utilities.jl b/dev/hinf_utilities.jl index 878040da3..138e956b5 100644 --- a/dev/hinf_utilities.jl +++ b/dev/hinf_utilities.jl @@ -3,36 +3,41 @@ using Plots This is just a hack to visualize the plots, should be made into a recepie eventually and included as a regular plot option. """ -function visualize_synthesis(Pcl, S, KS, T, gamma; filename=[], tmax=10, fmin=-6, fmax=6) +function visualize_synthesis(Pcl, S, CS, T, gamma; filename=[], tmax=10, fmin=-6, fmax=6) # Plot the singular values of the system f = [10^i for i in range(fmin, stop=fmax, length=1001)] valPcl = sigma(Pcl, f)[1]; valS = sigma(S, f)[1]; - valKS = sigma(KS, f)[1]; + valCS = sigma(CS, f)[1]; valT = sigma(T, f)[1]; # Visualize the close loop gain pGain = plot(f, valPcl[:,1], xscale = :log10, yscale = :log10, color = :black, w=1, label="\$\\sigma(P_{w\\rightarrow z}(j\\omega))\$") - plot!(f, gamma*ones(size(f)), xscale = :log10, yscale = :log10, color = :black, w=2, style=:dot, label="\$\\gamma\$") + plot!(f, gamma*ones(size(f)), xscale = :log10, yscale = :log10, color = :black, w=2, style=:dot, legend=:bottomleft, label="\$\\gamma\$") if size(valPcl,2) > 1 for ii = 2:size(valPcl,2) plot!(f, valPcl[:,ii], xscale = :log10, yscale = :log10, color = :black, w=1) end end + # If the system is discrete - show nyquist frequency + ts = Pcl.Ts + if ts > 0 + plot!([pi/ts; pi/ts], [minimum(valPcl); maximum(valPcl)], scale = :log10, yscale = :log10, color = :green, w=1, label="\$\\omega_s/2\$") + end # Plot the sensitivity functions of interest - pSigma = plot(f, valS, xscale = :log10, yscale = :log10, color = :red, w=1, label="\$\\sigma(S(j\\omega))\$") + pSigma = plot(f, valS, legend=:bottomleft, xscale = :log10, yscale = :log10, color = :red, w=1, label="\$\\sigma(S(j\\omega))\$") if size(valS,2) > 1 for ii = 2:size(valS,2) plot(f, valS[:,ii], xscale = :log10, yscale = :log10, color = :red, w=1) end end - plot!(f, valKS, xscale = :log10, yscale = :log10, color = :green, w=1, label="\$\\sigma(C(j\\omega)S(j\\omega)))\$") - if size(valKS,2) > 1 - for ii = 2:size(valKS,2) - plot(f, valKS[:,ii], xscale = :log10, yscale = :log10, color = :green, w=1) + plot!(f, valCS, xscale = :log10, yscale = :log10, color = :green, w=1, label="\$\\sigma(C(j\\omega)S(j\\omega)))\$") + if size(valCS,2) > 1 + for ii = 2:size(valCS,2) + plot(f, valCS[:,ii], xscale = :log10, yscale = :log10, color = :green, w=1) end end plot!(f, valT, xscale = :log10, yscale = :log10, color = :blue, w=1, label="\$\\sigma(T(j\\omega)))\$") @@ -41,6 +46,15 @@ function visualize_synthesis(Pcl, S, KS, T, gamma; filename=[], tmax=10, fmin=-6 plot(f, valT[:,ii], xscale = :log10, yscale = :log10, color = :blue, w=1) end end + # If the system is discrete - show nyquist frequency + ts = Pcl.Ts + if ts > 0 + plot!([pi/ts; pi/ts], + [minimum([valT valCS valS]); + maximum([valT valCS valS])], + scale = :log10, yscale = :log10, color = :green, + w=1, label="\$\\omega_s/2\$") + end # Visualize the weighting functions if isa(WS, LTISystem) || isa(WS, Number) @@ -56,16 +70,26 @@ function visualize_synthesis(Pcl, S, KS, T, gamma; filename=[], tmax=10, fmin=-6 plot!(f, valiWT, xscale = :log10, yscale = :log10, color = :blue, w=2, style=:dot, label="\$\\gamma\\sigma(W_T(j\\omega)^{-1})\$") end + # Visualize the step response - time = [ii for ii in range(0,stop=tmax,length=1001)] - stepy, stept, stepx = step(T, time) - pStep1 = plot(stept, stepy, color = :blue, w=2) + try + if Pcl.Ts <= 0 + time = [ii for ii in range(0,stop=tmax,length=10001)] + stepy, stept, stepx = step(T, tmax) + else + stepy, stept, stepx = step(T, tmax) + end + pStep1 = plot(stept, stepy, color = :blue, w=2) - #stepy, stept, stepx = step(KS, tmax) - #pStep2 = plot(stept[2:end], stepy[2:end], color = :red, w=2) + #stepy, stept, stepx = step(KS, tmax) + #pStep2 = plot(stept[2:end], stepy[2:end], color = :red, w=2) - l = @layout [ a ; b ; c ] - plt=plot(pGain, pSigma, pStep1, layout=l, size=(600,800)) - gui() - if isa(filename, String); savefig(filename); end + l = @layout [ a ; b ; c ] + plt=plot(pGain, pSigma, pStep1, layout=l, size=(600,800)) + if isa(filename, String); savefig(filename); end + return plt + catch + println("could not generate step response") + end + return [] end diff --git a/dev/test_hinf_bilinear.jl b/dev/test_hinf_bilinear.jl new file mode 100644 index 000000000..da93040cf --- /dev/null +++ b/dev/test_hinf_bilinear.jl @@ -0,0 +1,117 @@ +using ControlSystems +using Test +using LinearAlgebra + +@testset "test_hinf_bilinear" begin + + + # Test SS-type data + N = [1,5,10] + M = [1,5,10] + H = [0.1,0.01,0.001] + + for (ii, m) in enumerate(N) + for (jj, n) in enumerate(M) + for (kk, h) in enumerate(H) + + freq = [10^i for i in range(-6, stop=6, length=1001)] + + AcTrue, BcTrue, CcTrue, DcTrue = rand(m,m), rand(m,n), rand(n,m), rand(n,n) + + ev = eigvals(AcTrue) + if !isempty(ev[real(ev).<0]) + AcTrue = AcTrue - one(AcTrue) * 2 * maximum(abs.(real(ev[real(ev).<0]))) + end + + Gtrue = ss(AcTrue, BcTrue, CcTrue, DcTrue) + + valA, fA = sigma(Gtrue, freq); + sysB = hInf_bilinear_s2z(Gtrue, 0.05); + valB, fB = sigma(sysB, freq) + sysC = hInf_bilinear_z2s(hInf_bilinear_s2z(Gtrue, 0.05)) + valC, fC = sigma(sysC, freq) + sysD = hInf_bilinear_s2z(hInf_bilinear_z2s(hInf_bilinear_s2z(Gtrue, 0.05)),0.05) + valD, fD = sigma(sysD, freq) + + @test abs(maximum(svd(sysB.B).S)-maximum(svd(sysB.C).S)) < 1e-7 + @test abs(maximum(svd(sysC.B).S)-maximum(svd(sysC.C).S)) < 1e-7 + @test abs(maximum(svd(sysD.B).S)-maximum(svd(sysD.C).S)) < 1e-7 + + # Test that the C->D->C and D->C->D results in the same + @test norm(valA-valC) < 1e-7 + @test norm(valB-valD) < 1e-7 + end + end + end + + + # Test extended ss-type data + N = [1,4] + P1 = [1,4] + P2 = [1,4] + M1 = [1,4] + M2 = [1,4] + + H = [0.1,0.01,0.001] + + for (in1, n) in enumerate(N) + for (im1, m1) in enumerate(M1) + for (im2, m2) in enumerate(M2) + for (ip1, p1) in enumerate(P1) + for (ip2, p2) in enumerate(P2) + for (ih, h) in enumerate(H) + + freq = [10^i for i in range(-6, stop=6, length=1001)] + + A, B1, B2 = rand(n,n), rand(n,m1), rand(n,m2) + C1, D11, D12 = rand(p1,n), rand(p1,m1), rand(p1,m2) + C2, D21, D22 = rand(p2,n), rand(p2,m1), rand(p2,m2) + + ev = eigvals(A) + if !isempty(ev[real(ev).>0]) + A = A - one(A) * 2 * maximum(abs.(real(ev[real(ev).>0]))) + end + + EsysA = ss(A, B1, B2, C1, C2, D11, D12, D21, D22) + valA, fA = sigma(ss( + EsysA.A, + [EsysA.B1 EsysA.B2], + [EsysA.C1; EsysA.C2], + [EsysA.D11 EsysA.D12; EsysA.D21 EsysA.D22]) , freq) + + EsysB = hInf_bilinear_s2z(EsysA, h) + valB, fB = sigma(ss( + EsysB.A, + [EsysB.B1 EsysB.B2], + [EsysB.C1; EsysB.C2], + [EsysB.D11 EsysB.D12; EsysB.D21 EsysB.D22]) , freq) + + EsysC = hInf_bilinear_z2s(hInf_bilinear_s2z(EsysA, h)) + valC, fC = sigma(ss( + EsysC.A, + [EsysC.B1 EsysC.B2], + [EsysC.C1; EsysC.C2], + [EsysC.D11 EsysC.D12; EsysC.D21 EsysC.D22]) , freq) + + EsysD = hInf_bilinear_s2z(hInf_bilinear_z2s(hInf_bilinear_s2z(EsysA, h)),h) + valD, fD = sigma(ss( + EsysD.A, + [EsysD.B1 EsysD.B2], + [EsysD.C1; EsysD.C2], + [EsysD.D11 EsysD.D12; EsysD.D21 EsysD.D22]) , freq) + + # Test that the C->D->C and D->C->D results in the same + @test norm(valA-valC) < 1e-7 + @test norm(valB-valD) < 1e-7 + end + end + end + end + end + end +end + +#plot(fA, valA, xscale = :log10, yscale = :log10, color = :blue, w=4) +#plot!(fB, valB, xscale = :log10, yscale = :log10, color = :red, w=3) +#plot!(fC, valC, xscale = :log10, yscale = :log10, color = :green, w=2) +#plot!(fD, valD, xscale = :log10, yscale = :log10, color = :black, w=1) diff --git a/dev/test_hinf_examples.jl b/dev/test_hinf_examples.jl new file mode 100644 index 000000000..d6ecf4562 --- /dev/null +++ b/dev/test_hinf_examples.jl @@ -0,0 +1,95 @@ +using ControlSystems +using Test +using LinearAlgebra + +@testset "test_hinf_examples" begin + + + tolerance = 1e-4 + + ############################################################################## + # Test the DC motor example + ############################################################################## + + # Make sure that the code runs + @test isa(include("hinf_example_DC.jl"), Nothing) + f = [10^i for i in range(-3, stop=3, length=201)] + # Check that the optimal gain is correct + @test abs(gamma - 4.463211059) < tolerance + # Check that the closed loop tf satisfies ||Pcl||_∞ < gamma + valPcl = sigma(Pcl, f)[1]; + @test all(valPcl .< (gamma+tolerance)) + # Check that ||S/WS||_∞ < gamma + if isa(WS, LTISystem) || isa(WS, Number) + valSWS = sigma(S * WS , f)[1]; + @test all(valSWS .< (gamma+tolerance)) + end + # Check that ||S/WS||_∞ < gamma + if isa(WU, LTISystem) || isa(WU, Number) + valKSWU = sigma(CS * WU , f)[1]; + @test all(valKSWU .< (gamma+tolerance)) + end + # Check that ||S/WS||_∞ < gamma + if isa(WT, LTISystem) || isa(WT, Number) + valTWT = sigma(T * WT , f)[1]; + @test all(valTWT .< (gamma+tolerance)) + end + + ################################################################################ + # Test the MIT open courseware example + ################################################################################ + + # Make sure that the code runs + @test isa(include("hinf_example_MIT.jl"), Nothing) + f = [10^i for i in range(-7, stop=7, length=201)] + # Check that the optimal gain is correct + @test abs(gamma - 0.923430124918) < tolerance + # Check that the closed loop tf satisfies ||Pcl||_∞ < gamma + valPcl = sigma(Pcl, f)[1]; + @test all(valPcl .< (gamma+tolerance)) + # Check that ||S/WS||_∞ < gamma + if isa(WS, LTISystem) || isa(WS, Number) + valSWS = sigma(S * WS , f)[1]; + @test all(valSWS .< (gamma+tolerance)) + end + # Check that ||S/WS||_∞ < gamma + if isa(WU, LTISystem) || isa(WU, Number) + valKSWU = sigma(CS * WU , f)[1]; + @test all(valKSWU .< (gamma+tolerance)) + end + # Check that ||S/WS||_∞ < gamma + if isa(WT, LTISystem) || isa(WT, Number) + valTWT = sigma(T * WT , f)[1]; + @test all(valTWT .< (gamma+tolerance)) + end + + + ################################################################################ + # Test the quad tank example + ################################################################################ + + # Make sure that the code runs + @test isa(include("hinf_example_tank.jl"), Nothing) + f = [10^i for i in range(-7, stop=7, length=201)] + # Check that the optimal gain is correct + @test abs(gamma - 0.9534467) < 1e-2 + # Check that the closed loop tf satisfies ||Pcl||_∞ < gamma + valPcl = sigma(Pcl, f)[1]; + @test all(valPcl[:,1] .< (gamma+tolerance)) + # Check that ||S/WS||_∞ < gamma + if isa(WS, LTISystem) || isa(WS, Number) + valSWS = sigma(S * WS , f)[1]; + @test all(valSWS[:,1] .< (gamma+tolerance)) + end + # Check that ||S/WS||_∞ < gamma + if isa(WU, LTISystem) || isa(WU, Number) + valKSWU = sigma(CS * WU , f)[1]; + @test all(valKSWU[:,1] .< (gamma+tolerance)) + end + # Check that ||S/WS||_∞ < gamma + if isa(WT, LTISystem) || isa(WT, Number) + valTWT = sigma(T * WT , f)[1]; + @test all(valTWT[:,1] .< (gamma+tolerance)) + end + +end diff --git a/dev/test_hinf_public.jl b/dev/test_hinf_public.jl new file mode 100644 index 000000000..dd55fcafa --- /dev/null +++ b/dev/test_hinf_public.jl @@ -0,0 +1,65 @@ +#@testset "test_hinf" begin + +using ControlSystems +using Test +using LinearAlgebra + +""" +Testing that we can re-write the weight specificaitons to a feasible state-space +form +""" +possible_entries = [[],1.0] + +for ii = 1:2 + for kk = 1:2 + for ll = 1:2 + A = rand(ii,ii) + B = rand(ii,kk) + C = rand(ll,ii) + D = rand(ll,kk) + Gss = ss(A,B,C,D) + Gtf = tf(Gss) + append!(possible_entries, [Gss]) + append!(possible_entries, [Gtf]) + end + end +end +#ii, jj, kk, ll= [4, 3, 2, 2] +for ii = 1:length(possible_entries) + for jj = 2:length(possible_entries) + for kk = 2:length(possible_entries) + for ll = 2:length(possible_entries) + G = possible_entries[ii] + WS = possible_entries[jj] + WU = possible_entries[kk] + WT = possible_entries[ll] + println([ii, jj, kk, ll]) + # Check that the system is realizable + if isa(G, StateSpace) || isa(G, TransferFunction) || isa(G, Number) + Ag, Bg, Cg, Dg = ss(G).A, ss(G).B, ss(G).C, ss(G).D + if (size(Ag,1)==0 || size(Ag,2)==0 || size(Bg,1)==0 || size(Bg,2)==0 || + size(Cg,1)==0 || size(Cg,2)==0 || size(Dg,1)==0 || size(Dg,2)==0) + @test_throws ErrorException hInf_partition(G, WS, WU, WT) + end + elseif isempty(G) + @test_throws ErrorException hInf_partition(G, WS, WU, WT) + elseif isa(WT, StateSpace) || isa(WT, TransferFunction) + if size(ss(G).C, 1) != size(ss(WT).B,2) && size(ss(WT).B,2) != 0 + @test_throws ErrorException hInf_partition(G, WS, WU, WT) + end + elseif isa(WS, StateSpace) || isa(WS, TransferFunction) + if size(ss(G).A, 1) != size(ss(WS).B,2) && size(ss(WS).B,2) != 0 + @test_throws ErrorException hInf_partition(G, WS, WU, WT) + end + elseif isa(WU, StateSpace) || isa(WU, TransferFunction) + if size(ss(G).B, 2) != size(ss(WU).B,2) && size(ss(WU).B,2) != 0 + @test_throws ErrorException hInf_partition(G, WS, WU, WT) + end + else + A, B1, B2, C1, C2, D11, D12, D21, D22 = hInf_partition(G, WS, WU, WT) + @test isa(ss(A,[B1 B2],[C1; C2], [D11 D12; D21 D22]), StateSpace) + end + end + end + end +end diff --git a/src/ControlSystems.jl b/src/ControlSystems.jl index b66cb3fb2..57ad281d1 100644 --- a/src/ControlSystems.jl +++ b/src/ControlSystems.jl @@ -78,7 +78,9 @@ export LTISystem, hInf_assumptions, hInf_visualize, hInf_partition, - hInf_signals + hInf_signals, + hInf_bilinear_s2z, + hInf_bilinear_z2s # QUESTION: are these used? LaTeXStrings, Requires, IterTools using Polynomials, OrdinaryDiffEq, Plots, LaTeXStrings, LinearAlgebra diff --git a/src/hinfinity_design.jl b/src/hinfinity_design.jl index 9b5a93015..66b4ebb8f 100644 --- a/src/hinfinity_design.jl +++ b/src/hinfinity_design.jl @@ -55,42 +55,34 @@ function hInf_assumptions(P::ExtendedStateSpace; verbose=true) flag=false end # Check assumption A5 - D12Pinv = _compute_pseudoinverse(D12) - if rank(A - B2*D12Pinv*C1) < size(A,1) + D12Pinv, D12Pinv_exists = _compute_pseudoinverse(D12) + if !D12Pinv_exists if verbose - println("Warning, the matrix (A - B2*D12^-*C1) does not have full rank, violation of assumption A5. Returning candidate approximation in Atilde. Please re-check the feasibility conditions with Atilde.") + println("Warning, the matrix (A - B2*D12^-*C1) cannot be evaluated, violation of assumption A5. The pseudo inverse of D12 does not exist.") end - # - #U,S,V=svd(A - B2*D12Pinv*C1) - #Stilde = zeros(size(S)) - #for (i, val) in enumerate(Stilde) - # if abs(val) < epsilon - # Stilde[i] = epsilon - # else - # Stilde[i] = S[i] - # end - #end - #Atilde = A + U*(Diagonal(Stilde) - Diagonal(S)) * V flag=false + else + if rank(A - B2*D12Pinv*C1) < size(A,1) + if verbose + println("Warning, the matrix (A - B2*D12^-*C1) does not have full rank, violation of assumption A5. Returning candidate approximation in Atilde. Please re-check the feasibility conditions with Atilde.") + end + flag=false + end end # Check assumption A5 - D21Pinv = _compute_pseudoinverse(D21) - if rank(A - B1*D21Pinv*C2) < size(A,1) + D21Pinv, D21Pinv_exists = _compute_pseudoinverse(D21) + if !D21Pinv_exists if verbose - println("Warning, the matrix (A - B1*D21Pinv*C2) does not have full rank, violation of assumption A6. Returning candidate approximation in Atilde. Please re-check the feasibility conditions with Atilde.") + println("Warning, the matrix (A - B1*D21Pinv*C2) cannot be evaluated, violation of assumption A5. The pseudo inverse of D21 does not exist.") end - # - #,S,V=svd(A - B1*D21Pinv*C2) - #Stilde = zeros(size(S)) - #for (i, val) in enumerate(Stilde) - # if abs(val) < epsilon - # Stilde[i] = epsilon - # else - # Stilde[i] = S[i] - # end - #end - #Atilde = A + U*(Diagonal(Stilde) - Diagonal(S)) * V flag=false + else + if rank(A - B1*D21Pinv*C2) < size(A,1) + if verbose + println("Warning, the matrix (A - B1*D21Pinv*C2) does not have full rank, violation of assumption A6. Returning candidate approximation in Atilde. Please re-check the feasibility conditions with Atilde.") + end + flag=false + end end if flag && verbose println("All assumtions are satisfied!") @@ -108,11 +100,23 @@ min(size(M))==rank(M). Used for checking assumptions A5 and A6. """ function _compute_pseudoinverse(M) if size(M,1) == size(M,2) - return (inv(M)) + if rank(M) != size(M,2) + # G-inverse does not exist + return [], false + end + return (inv(M)), true elseif size(M,1) > size(M,2) - return (inv(M'*M)*M') + if rank(M'*M) != size(M'*M,2) + # G-inverse does not exist + return [], false + end + return (inv(M'*M)*M'), true elseif size(M,1) < size(M,2) - return (M'*inv(M*M')) + if rank(M*M') != size(M*M',2) + # G-inverse does not exist + return [], false + end + return (M'*inv(M*M')), true end end @@ -603,6 +607,10 @@ function hInf_partition(G, WS, WU, WT) return P end +"""`convert_input_to_ss(H)` + +Help fucntion used for type conversion in hInf_partition() +""" function convert_input_to_ss(H) if isa(H, LTISystem) if isa(H, TransferFunction) @@ -619,8 +627,7 @@ function convert_input_to_ss(H) return Ah, Bh, Ch, Dh end -""" -`hInf_signals(P::ExtendedStateSpace, G::LTISystem, C::LTISystem)` +"""`hInf_signals(P::ExtendedStateSpace, G::LTISystem, C::LTISystem)` Use the extended state-space model, a plant and the found controller to extract the closed loop transfer functions operating solely on the state-space. @@ -681,3 +688,194 @@ function hInf_signals(P::ExtendedStateSpace, G::LTISystem, C::LTISystem) return Pcl, S, KS, T end + + +"""`hInf_bilinear_z2s(Ad::AbstractArray, Bd::AbstractArray, Cd::AbstractArray, Dd::AbstractArray, Ts::Number; tolerance=1e-12)` + +Balanced Bilinear transformation in State-Space. This method computes a +continuous time equivalent of a discrete time system, such that + + G_c(z) = z2s[G_d(z)] + +in a manner which accomplishes the following + (i) Preserves the infinity L-infinity norm over the transformation + (ii) Finds a system which balances B and C, in the sense that ||B||_2=||C||_2 + (iii) Satisfies G_d(z) = s2z[z2s[G_d(z)]] for some map s2z[] +""" +function hInf_bilinear_z2s(Ad::AbstractArray, Bd::AbstractArray, Cd::AbstractArray, Dd::AbstractArray, Ts::Number; tolerance=1e-12) + + Id = Matrix{Float64}(I, size(Ad,1), size(Ad,2)) + + Pd = Ad - Id + Qd = Ad + Id + ialpha = 2/Ts #Should be this, but the nyquist frequency doesnt add up unless + ialpha = 1/Ts + + Ac = ialpha*(Pd/Qd) + Bc = Qd\Bd + Cc = 2*ialpha*(Cd/Qd) + Dc = Dd - (Cd/Qd)*Bd + + # Scaling for improved numerical stability + σB = maximum(svd(Bc).S) + σC = maximum(svd(Cc).S) + if σB > tolerance && σC > tolerance + λd = sqrt(σB / σC) + else + λd = 1 + error("Warning, the problem is poorly cnditioned. Consider an alternate discretization scheme.") + end + Bc /= λd + Cc *= λd + + return Ac, Bc, Cc, Dc +end + +"""`hInf_bilinear_z2s(sys::StateSpace)` + +Applies a Balanced Bilinear transformation to continuous-time statespace object +""" +function hInf_bilinear_z2s(sys::StateSpace) + Ad, Bd, Cd, Dd = ssdata(sys) + Ts = sys.Ts + + if Ts <= 0; error("Error, the input must be a discrete time system."); end + + Ac, Bc, Cc, Dc = hInf_bilinear_z2s(Ad, Bd, Cd, Dd, Ts) + return ss(Ac, Bc, Cc, Dc) +end + +"""`hInf_bilinear_z2s(sys::ExtendedStateSpace)` + +Applies a Balanced Bilinear transformation to continuous-time extended statespace object +""" +function hInf_bilinear_z2s(sys::ExtendedStateSpace) + Ad = get_A(sys) + Bd = get_B(sys) + Cd = get_C(sys) + Dd = get_D(sys) + Ts = sys.Ts + + m1 = size(get_B1(sys),2) + m2 = size(get_B2(sys),2) + p1 = size(get_C1(sys),1) + p2 = size(get_C2(sys),1) + + if Ts <= 0; error("Error, the input must be a discrete time system."); end + + Ac, Bc, Cc, Dc = hInf_bilinear_z2s(Ad, Bd, Cd, Dd, Ts) + + A = Ac + B1 = Bc[:,1:m1] + B2 = Bc[:,(m1+1):(m1+m2)] + C1 = Cc[1:p1,:] + C2 = Cc[(p1+1):(p1+p2),:] + D11 = Dc[1:p1,1:m1] + D12 = Dc[1:p1,(m1+1):(m1+m2)] + D21 = Dc[(p1+1):(p1+p2),1:m1] + D22 = Dc[(p1+1):(p1+p2),(m1+1):(m1+m2)] + + return ss(A, B1, B2, C1, C2, D11, D12, D21, D22) +end + +"""`hInf_bilinear_s2z(Ac::AbstractArray, Bc::AbstractArray, Cc::AbstractArray, Dc::AbstractArray, Ts::Number; tolerance=1e-12)` + +Balanced Bilinear transformation in State-Space. This method computes a +discrete time equivalent of a continuous-time system, such that + + G_d(z) = s2z[G_c(s)] + +in a manner which accomplishes the following + (i) Preserves the infinity L-infinity norm over the transformation + (ii) Finds a system which balances B and C, in the sense that ||B||_2=||C||_2 + (iii) Satisfies G_c(s) = z2s[s2z[G_c(s)]] for some map z2s[] +""" +function hInf_bilinear_s2z(Ac::AbstractArray, Bc::AbstractArray, Cc::AbstractArray, Dc::AbstractArray, Ts::Number; tolerance = 1e-12) + + Id = Matrix{Float64}(I, size(Ac,1), size(Ac,2)) + alpha = Ts/2 #Should be this, but the nyquist frequency doesnt add up + alpha = Ts + + # Check that the bilinear tranformation is possible + if minimum(svd(Id - alpha * Ac).S) < 1e-12 + error("The transformation is extremely poorly conditioned, with min(svd(Id - alpha * Ac).S) < 1e-12. Consider an alternate discretization scheme.") + end + + PP = Id - alpha * Ac + QQ = Id + alpha * Ac + + Ad = PP \ QQ + Bd = (PP\Bc) + Cd = 2 * alpha * (Cc/PP) + + # Scaling for improved numerical stability + σB = maximum(svd(Bd).S) + σC = maximum(svd(Cd).S) + if σB > tolerance && σC > tolerance + λc = sqrt(σB / σC) + else + λc = 1 + error("Warning, the problem is poorly cnditioned. Consider an alternate discretization scheme.") + end + + Bd /= λc + Cd *= λc + + Dd = alpha * Cc/PP*Bc + Dc + return Ad, Bd, Cd, Dd, Ts +end + +"""`hInf_bilinear_s2z(sys::StateSpace, Ts::Number)` + +Applies a Balanced Bilinear transformation to a discrete-time statespace object +""" +function hInf_bilinear_s2z(sys::StateSpace, Ts::Number) + Ac, Bc, Cc, Dc = ssdata(sys) + + if sys.Ts > 0 + error("Error, the input to bilinear_z2s() must be a continuous time system.") + end + if Ts <= 0 + error("Error, the the discretization time Ts must be positive.") + end + + Ad, Bd, Cd, Dd = hInf_bilinear_s2z(Ac, Bc, Cc, Dc, Ts) + return ss(Ad, Bd, Cd, Dd, Ts) +end + +"""`hInf_bilinear_s2z(sys::ExtendedStateSpace, Ts::Number)` + +Applies a Balanced Bilinear transformation to a discrete-time extended statespace object +""" +function hInf_bilinear_s2z(sys::ExtendedStateSpace, Ts::Number) + Ac = get_A(sys) + Bc = get_B(sys) + Cc = get_C(sys) + Dc = get_D(sys) + + m1 = size(get_B1(sys),2) + m2 = size(get_B2(sys),2) + p1 = size(get_C1(sys),1) + p2 = size(get_C2(sys),1) + + if sys.Ts > 0 + error("Error, the input to hInf_bilinear_s2z() must be a continuous time system.") + end + if Ts <= 0 + error("Error, the the discretization time Ts must be positive.") + end + + Ad, Bd, Cd, Dd = hInf_bilinear_s2z(Ac, Bc, Cc, Dc, Ts) + + A = Ad + B1 = Bd[:,1:m1] + B2 = Bd[:,(m1+1):(m1+m2)] + C1 = Cd[1:p1,:] + C2 = Cd[(p1+1):(p1+p2),:] + D11 = Dd[1:p1,1:m1] + D12 = Dd[1:p1,(m1+1):(m1+m2)] + D21 = Dd[(p1+1):(p1+p2),1:m1] + D22 = Dd[(p1+1):(p1+p2),(m1+1):(m1+m2)] + + return ss(A, B1, B2, C1, C2, D11, D12, D21, D22, Ts) +end diff --git a/src/types/ExtendedStateSpace.jl b/src/types/ExtendedStateSpace.jl index f1bad8d62..d2a9fd519 100644 --- a/src/types/ExtendedStateSpace.jl +++ b/src/types/ExtendedStateSpace.jl @@ -85,7 +85,7 @@ end get_A(sys::ExtendedStateSpace) = sys.A get_B1(sys::ExtendedStateSpace) = sys.B1 get_B2(sys::ExtendedStateSpace) = sys.B2 -get_B(sys::ExtendedStateSpace) = [sys.B1 sysB2] +get_B(sys::ExtendedStateSpace) = [sys.B1 sys.B2] get_C1(sys::ExtendedStateSpace) = sys.C1 get_C2(sys::ExtendedStateSpace) = sys.C2 get_C(sys::ExtendedStateSpace) = [sys.C1; sys.C2] From d312409e8337b1d877b89b216095fc8226425e3d Mon Sep 17 00:00:00 2001 From: Marcus Greiff Date: Thu, 28 Feb 2019 00:06:00 +0100 Subject: [PATCH 04/66] Enhancement - Initial commit of the tests for the H-infinity design, detailing the intended structure of the tests and all of the points which are to be tested. --- test/test_hinf_design.jl | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) create mode 100644 test/test_hinf_design.jl diff --git a/test/test_hinf_design.jl b/test/test_hinf_design.jl new file mode 100644 index 000000000..21b33fdbc --- /dev/null +++ b/test/test_hinf_design.jl @@ -0,0 +1,33 @@ +using ControlSystems +using Test +using LinearAlgebra +using Random + +@testset "test_hinfinity_design" begin +""" +Tests for the public and private methods of the hInfSynthesis function. This +function utilizes the preexisting ControlSystems toolbox, and performs a +H-infinity synthesis using the dual Riccati equation approach. As such, +the synthesis is done in a set of steps. + +(1) Re-writing the specifications on an extended state-space form. +(2) Verifying that the resulting extended state-space object satisfies a set of + assumptions required for proceeding with the synthesis. +(3) A coordinate transform to enable the synthesis. +(4) Synthesis using the γ-iterations, checking if a solution to the H-infinity + problem exists in each iteration and applying a bisection method. +(5) Re-transforming the system to the original coordinates +(6) Verification that the computed solution is correct. + +In addition to these six ponts, the code also enables + +(7) A bilinear discretization with an inverse operation to move from continuous +to discrete time, thereby enabling approximate discrete-time synthesis. +(8) Plotting functionality to visualize the H-infinity synthesis. +(9) Three examples which can be used to demonstrate the tool. + +Many of the tests are quite intuitive, and all points (1)-(9) are tested +extensively with detailed comments for each test-set. +""" +@test (1+1)==2 +end From 909bec0b9a9303469ab6d74719dd70d9e93c00f5 Mon Sep 17 00:00:00 2001 From: Marcus Greiff Date: Thu, 28 Feb 2019 00:11:26 +0100 Subject: [PATCH 05/66] Enhancement - Include tests for stabilizability husing the Hautus Lemma, required to check the stabilizability conditions for applying the dual ARE-method --- test/test_hinf_design.jl | 87 +++++++++++++++++++++++++++------------- 1 file changed, 60 insertions(+), 27 deletions(-) diff --git a/test/test_hinf_design.jl b/test/test_hinf_design.jl index 21b33fdbc..2d0d53b36 100644 --- a/test/test_hinf_design.jl +++ b/test/test_hinf_design.jl @@ -3,31 +3,64 @@ using Test using LinearAlgebra using Random -@testset "test_hinfinity_design" begin -""" -Tests for the public and private methods of the hInfSynthesis function. This -function utilizes the preexisting ControlSystems toolbox, and performs a -H-infinity synthesis using the dual Riccati equation approach. As such, -the synthesis is done in a set of steps. - -(1) Re-writing the specifications on an extended state-space form. -(2) Verifying that the resulting extended state-space object satisfies a set of - assumptions required for proceeding with the synthesis. -(3) A coordinate transform to enable the synthesis. -(4) Synthesis using the γ-iterations, checking if a solution to the H-infinity - problem exists in each iteration and applying a bisection method. -(5) Re-transforming the system to the original coordinates -(6) Verification that the computed solution is correct. - -In addition to these six ponts, the code also enables - -(7) A bilinear discretization with an inverse operation to move from continuous -to discrete time, thereby enabling approximate discrete-time synthesis. -(8) Plotting functionality to visualize the H-infinity synthesis. -(9) Three examples which can be used to demonstrate the tool. - -Many of the tests are quite intuitive, and all points (1)-(9) are tested -extensively with detailed comments for each test-set. -""" -@test (1+1)==2 +@testset "H-infinity design" begin + """ + Tests for the public and private methods of the hInfSynthesis function. This + function utilizes the preexisting ControlSystems toolbox, and performs a + H-infinity synthesis using the dual Riccati equation approach. As such, + the synthesis is done in a set of steps. + + (1) Re-writing the specifications on an extended state-space form. + (2) Verifying that the resulting extended state-space object satisfies a set of + assumptions required for proceeding with the synthesis. + (3) A coordinate transform to enable the synthesis. + (4) Synthesis using the γ-iterations, checking if a solution to the H-infinity + problem exists in each iteration and applying a bisection method. + (5) Re-transforming the system to the original coordinates + (6) Verification that the computed solution is correct. + + In addition to these six ponts, the code also enables + + (7) A bilinear discretization with an inverse operation to move from continuous + to discrete time, thereby enabling approximate discrete-time synthesis. + (8) Plotting functionality to visualize the H-infinity synthesis. + (9) Three examples which can be used to demonstrate the tool. + + Many of the tests are quite intuitive, and all points (1)-(9) are tested + extensively with detailed comments for each test-set. + """ + + @testset "(2) Assumptions" begin + """ + Tests the methods used to check that the assumptions are satisfied, + incorporating two separate algorithms to determine detectability and + observability, and a rectangular pseudoinverse to check the rank conditions. + """ + + @testset "Stabilizability check" begin + ### Fixture + Random.seed!(0); N = 10; M = 5; + R = rand(Float64, (N,N)) + Q = eigvecs(R + R'); + L = rand(Float64,N).-0.5; + A = Q*Diagonal(L)*Q'; + E = eigvals(A); + + # Here we should return false if for any positive eigenvalue λ of A, we get + # that rank(A-λI, B) < N. We define B as conlums which are linearly + # dependent with columns in A-λI, and check that the system returns false + # in every case where λ > 0 and never when λ≦0. + for ii = 1:N + for jj = 1:(N-M) + Ahat = A - E[ii]*Matrix{Float64}(I, N, N); + B = Ahat[:,jj:(jj+M)] + if E[ii] >= 0 + @test !ControlSystems._is_stabilizable(A,B) + else + @test ControlSystems._is_stabilizable(A,B) + end + end + end + end + end end From b4b4e9c427cf2e74e072f3948e11710baae3b39d Mon Sep 17 00:00:00 2001 From: Marcus Greiff Date: Thu, 28 Feb 2019 00:18:07 +0100 Subject: [PATCH 06/66] Bugfix - Specify input types to handle method errors in the stabilizability and detectability checks --- src/hinfinity_design.jl | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/hinfinity_design.jl b/src/hinfinity_design.jl index 66b4ebb8f..022e2e624 100644 --- a/src/hinfinity_design.jl +++ b/src/hinfinity_design.jl @@ -125,7 +125,7 @@ end Applies the Hautus lemma to check if the pair is stabilizable """ -function _is_stabilizable(A, B) +function _is_stabilizable(A::AbstractMatrix, B::AbstractMatrix) eigValsA = eigvals(A) for ii = 1:length(eigValsA) if real(eigValsA[ii])>= 0 @@ -142,7 +142,7 @@ end Applies the Hautus lemma to check if the pair is detectable """ -function _is_detectable(A, C) +function _is_detectable(A::AbstractMatrix, C::AbstractMatrix) eigValsA = eigvals(A) for ii = 1:length(eigValsA) if real(eigValsA[ii])>= 0 From 8d18f6b6d75143f3a007552bba47762c1506e4e7 Mon Sep 17 00:00:00 2001 From: Marcus Greiff Date: Thu, 28 Feb 2019 00:19:37 +0100 Subject: [PATCH 07/66] Enhancement - Add method error tests for the stabilizability and detectability checks --- test/test_hinf_design.jl | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/test/test_hinf_design.jl b/test/test_hinf_design.jl index 2d0d53b36..b09ded7a3 100644 --- a/test/test_hinf_design.jl +++ b/test/test_hinf_design.jl @@ -61,6 +61,20 @@ using Random end end end + + # Check common input types and ensure that a method error is thrown when + # not using two abstract matrices, but some other common type + N = 10; M = 5; + A = rand(Float64, (N,N)); + C = rand(Float64, (N,M)); + @test_throws MethodError ControlSystems._is_detectable(A,nothing) + @test_throws MethodError ControlSystems._is_detectable(nothing,C) + @test_throws MethodError ControlSystems._is_detectable(A,[]) + @test_throws MethodError ControlSystems._is_detectable([],C) + @test_throws MethodError ControlSystems._is_detectable(A,ss(1)) + @test_throws MethodError ControlSystems._is_detectable(ss(1),C) + @test_throws MethodError ControlSystems._is_detectable(A,tf(1)) + @test_throws MethodError ControlSystems._is_detectable(tf(1),C) end end end From 4cdcb12aa08a84318e9e1c8daff85709cce69b75 Mon Sep 17 00:00:00 2001 From: Marcus Greiff Date: Thu, 28 Feb 2019 00:23:15 +0100 Subject: [PATCH 08/66] Enhancement - Add check for detectability by the Hautus Lemma for usage in the assumptions check of necessary in the dual Riccati approach --- test/test_hinf_design.jl | 44 ++++++++++++++++++++++++++++++++++------ 1 file changed, 38 insertions(+), 6 deletions(-) diff --git a/test/test_hinf_design.jl b/test/test_hinf_design.jl index b09ded7a3..afbcbe800 100644 --- a/test/test_hinf_design.jl +++ b/test/test_hinf_design.jl @@ -38,6 +38,9 @@ using Random """ @testset "Stabilizability check" begin + """ + Test the check for stabilizability using the Hautus Lemma + """ ### Fixture Random.seed!(0); N = 10; M = 5; R = rand(Float64, (N,N)) @@ -61,20 +64,49 @@ using Random end end end - + # Check common input types and ensure that a method error is thrown when # not using two abstract matrices, but some other common type N = 10; M = 5; A = rand(Float64, (N,N)); - C = rand(Float64, (N,M)); + B = rand(Float64, (N,M)); @test_throws MethodError ControlSystems._is_detectable(A,nothing) - @test_throws MethodError ControlSystems._is_detectable(nothing,C) + @test_throws MethodError ControlSystems._is_detectable(nothing,B) @test_throws MethodError ControlSystems._is_detectable(A,[]) - @test_throws MethodError ControlSystems._is_detectable([],C) + @test_throws MethodError ControlSystems._is_detectable([],B) @test_throws MethodError ControlSystems._is_detectable(A,ss(1)) - @test_throws MethodError ControlSystems._is_detectable(ss(1),C) + @test_throws MethodError ControlSystems._is_detectable(ss(1),B) @test_throws MethodError ControlSystems._is_detectable(A,tf(1)) - @test_throws MethodError ControlSystems._is_detectable(tf(1),C) + @test_throws MethodError ControlSystems._is_detectable(tf(1),B) + end + + @testset "Detectability check" begin + """ + Test the check for detectability using the Hautus Lemma + """ + ### Fixture + Random.seed!(0); N = 10; M = 5; + R = rand(Float64, (N,N)) + Q = eigvecs(R + R'); + L = rand(Float64,N).-0.5; + A = Q*Diagonal(L)*Q'; + E = eigvals(A); + + # Here we should return false if for any positive eigenvalue λ of A, we get + # that rank(A-λI; C) < N. We define C as rows which are linearly + # dependent with rows in A-λI, and check that the system returns false + # in every case where λ > 0 and never when λ≦0. + for ii = 1:N + for jj = 1:(N-M) + Ahat = A - E[ii]*Matrix{Float64}(I, N, N); + C = Ahat[jj:(jj+M),:] + if E[ii] >= 0 + @test !ControlSystems._is_detectable(A,C) + else + @test ControlSystems._is_detectable(A,C) + end + end + end end end end From 5a63b53031df31d97ee1960abe6828b34fe00477 Mon Sep 17 00:00:00 2001 From: Marcus Greiff Date: Thu, 28 Feb 2019 00:24:39 +0100 Subject: [PATCH 09/66] Enhancement - Check for method errors when checking detectability of a system (A,C) --- test/test_hinf_design.jl | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/test/test_hinf_design.jl b/test/test_hinf_design.jl index afbcbe800..dff4bd81e 100644 --- a/test/test_hinf_design.jl +++ b/test/test_hinf_design.jl @@ -107,6 +107,20 @@ using Random end end end + + # Check common input types and ensure that a method error is thrown when + # not using two abstract matrices, but some other common type + N = 10; M = 5; + A = rand(Float64, (M,M)); + C = rand(Float64, (N,M)); + @test_throws MethodError ControlSystems._is_detectable(A,nothing) + @test_throws MethodError ControlSystems._is_detectable(nothing,C) + @test_throws MethodError ControlSystems._is_detectable(A,[]) + @test_throws MethodError ControlSystems._is_detectable([],C) + @test_throws MethodError ControlSystems._is_detectable(A,ss(1)) + @test_throws MethodError ControlSystems._is_detectable(ss(1),C) + @test_throws MethodError ControlSystems._is_detectable(A,tf(1)) + @test_throws MethodError ControlSystems._is_detectable(tf(1),C) end end end From 6de77ec60e8baa51a256ca48135caba9f09dfdbe Mon Sep 17 00:00:00 2001 From: Marcus Greiff Date: Thu, 28 Feb 2019 00:28:40 +0100 Subject: [PATCH 10/66] Enhancement - This test checks that the computations of the pseudoinverses are done correctly, a necessary compnent for checking the assumptions which have to be satisfied before proceeding with the H-infinity synthesis --- test/test_hinf_design.jl | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/test/test_hinf_design.jl b/test/test_hinf_design.jl index dff4bd81e..03d4d1c7d 100644 --- a/test/test_hinf_design.jl +++ b/test/test_hinf_design.jl @@ -122,5 +122,35 @@ using Random @test_throws MethodError ControlSystems._is_detectable(A,tf(1)) @test_throws MethodError ControlSystems._is_detectable(tf(1),C) end + + @testset "Pseudoinverse computation" begin + """ + The g-inverse is used to check the rank conditions across all frequencies, + see e.g. assumptions A5 and A6 in the reference [1]. As was shown in the + complementary report [2], this can be done by computing a pseudoinverse + and checking its rank. This code tests that the compuatation of these + g-inverses are done correctly for arbitrary matrices + """ + + ### Fixture + tolerance = 1e-10; + R = rand(Float64, (10,10)) + Q = eigvecs(R + R'); + + # Check that the g-invere works for a set of full-rank square and + # rectangular matrices + for M = 1:5:11 + for N = 1:5:11 + AMN = rand(M,N); + Pinv, status = ControlSystems._compute_pseudoinverse(AMN); + @test status + if M < N + @test opnorm(AMN*Pinv - Matrix{Float64}(I, min(M,N), min(M,N))) < tolerance + else + @test opnorm(Pinv*AMN - Matrix{Float64}(I, min(M,N), min(M,N))) < tolerance + end + end + end + end end end From 153883d5deaac907da71bbf211694c8eeb44d375 Mon Sep 17 00:00:00 2001 From: Marcus Greiff Date: Thu, 28 Feb 2019 00:31:43 +0100 Subject: [PATCH 11/66] Bugfix - Make sure to check that only abstract matrix types are used in the psudoinverse compuatation method --- src/hinfinity_design.jl | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/hinfinity_design.jl b/src/hinfinity_design.jl index 022e2e624..fdbb9d602 100644 --- a/src/hinfinity_design.jl +++ b/src/hinfinity_design.jl @@ -93,12 +93,12 @@ function hInf_assumptions(P::ExtendedStateSpace; verbose=true) end """ -`[Mpinv] = function _compute_pseudoinverse(M)` +`[Mpinv] = function _compute_pseudoinverse(M::AbstractMatrix)` Compute the g-inverses for a non-rectangular matrix M, satisfying min(size(M))==rank(M). Used for checking assumptions A5 and A6. """ -function _compute_pseudoinverse(M) +function _compute_pseudoinverse(M::AbstractMatrix) if size(M,1) == size(M,2) if rank(M) != size(M,2) # G-inverse does not exist @@ -121,7 +121,7 @@ function _compute_pseudoinverse(M) end """ -`[flag] = _is_stabilizable(A, B)` +`[flag] = _is_stabilizable(A::AbstractMatrix, B::AbstractMatrix)` Applies the Hautus lemma to check if the pair is stabilizable """ @@ -138,7 +138,7 @@ function _is_stabilizable(A::AbstractMatrix, B::AbstractMatrix) end """ -`[flag] = _is_stabilizable(A, C)` +`[flag] = _is_stabilizable(A::AbstractMatrix, C::AbstractMatrix)` Applies the Hautus lemma to check if the pair is detectable """ From 6e709547d05bc73818fa4e91b0ae7182bee2ecd5 Mon Sep 17 00:00:00 2001 From: Marcus Greiff Date: Thu, 28 Feb 2019 00:32:43 +0100 Subject: [PATCH 12/66] Enhancement - Add tests to verify that the pseudoinverse computation throws a method error when using non-matrix types as arguments --- test/test_hinf_design.jl | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/test/test_hinf_design.jl b/test/test_hinf_design.jl index 03d4d1c7d..f0efb1676 100644 --- a/test/test_hinf_design.jl +++ b/test/test_hinf_design.jl @@ -151,6 +151,14 @@ using Random end end end + + # Check common input types and ensure that a method error is thrown when + # not using two abstract matrices, but some other common type + @test_throws MethodError ControlSystems._compute_pseudoinverse(nothing) + @test_throws MethodError ControlSystems._compute_pseudoinverse([]) + @test_throws MethodError ControlSystems._compute_pseudoinverse(ss(1)) + @test_throws MethodError ControlSystems._compute_pseudoinverse(tf(1)) + end end end From 0eaad042e1d951dfdb302701799960540f5b17e2 Mon Sep 17 00:00:00 2001 From: Marcus Greiff Date: Thu, 28 Feb 2019 00:34:22 +0100 Subject: [PATCH 13/66] Enhancement - Check that the method correctly reports that no pseudoinverse exists when the matrix M is rank deficient --- test/test_hinf_design.jl | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/test/test_hinf_design.jl b/test/test_hinf_design.jl index f0efb1676..e8bd68ae4 100644 --- a/test/test_hinf_design.jl +++ b/test/test_hinf_design.jl @@ -159,6 +159,18 @@ using Random @test_throws MethodError ControlSystems._compute_pseudoinverse(ss(1)) @test_throws MethodError ControlSystems._compute_pseudoinverse(tf(1)) + # Check that the method correctly reports that no pseudoinverse exists + # when the matrix M is rank deficient + for M = 1:5:11 + for N = 1:5:11 + U,S,V = svd(rand(M,N)) + S[1] = 0.0; + AMN_rank_deficient = U*Diagonal(S)*V'; + Pinv, status = ControlSystems._compute_pseudoinverse(AMN_rank_deficient); + @test !status + @test isa(Pinv, Array{Any,1}) + end + end end end end From 3588cec812644c30541675e141e28860d9afa758 Mon Sep 17 00:00:00 2001 From: Marcus Greiff Date: Thu, 28 Feb 2019 00:38:53 +0100 Subject: [PATCH 14/66] Enhancement - Add tests for the gamma-iterations, and speicically tests that establish the spectral radius condition to be handled correctly --- test/test_hinf_design.jl | 42 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 42 insertions(+) diff --git a/test/test_hinf_design.jl b/test/test_hinf_design.jl index e8bd68ae4..06cecc76c 100644 --- a/test/test_hinf_design.jl +++ b/test/test_hinf_design.jl @@ -172,5 +172,47 @@ using Random end end end + + # TODO: write tests using the above submethods directly in hInf_assumptions + end + + @testset "(4) Gamma iterations" begin + """ + Tests the core methods of the gamma-iteration bisection method, including + the ARE hamiltonian solver, the eigenvalue solver, the feasibility checks. + """ + + @testset "Solution feasibility check" begin + """ + Check that a solution to the dual riccati equations is correctly reported + as being feasible if satisfying the conditions of positive definiteness on + the X and Y solutions are met, and the spectral radius condition of X*Y is + also met + """ + # Fixture + Random.seed!(0); + tolerance = 1e-10; + iteration = 1; + Random.seed!(0); N = 10; M = 5; + R = rand(Float64, (N,N)) + Q = eigvecs(R + R'); + ρX = rand() + ρY = rand() + LX= rand(Float64,N); LX = ρX*sort(LX / maximum(LX)) + LY= rand(Float64,N); LY = ρY*sort(LY / maximum(LY)) + Xinf = Q*Diagonal(LX)*Q'; + Yinf = Q*Diagonal(LY)*Q'; + gamma = 1; + + # Test that the fesibility is true if ρ(Xinf*Yinf) < γ^2, that is the + # check should be true for any + # + # γ = sqrt(ρX*ρY) + ϵ + # + # with any epsilon greater than or equal to zero. + @test !ControlSystems._checkFeasibility(Xinf, Yinf, sqrt(ρX*ρY)-tolerance, tolerance, iteration; verbose=false) + @test !ControlSystems._checkFeasibility(Xinf, Yinf, sqrt(ρX*ρY), tolerance, iteration; verbose=false) + @test ControlSystems._checkFeasibility(Xinf, Yinf, sqrt(ρX*ρY)+tolerance, tolerance, iteration; verbose=false) + end end end From 3fc2b7c3218e109af6870b43ed36b7c7212d4051 Mon Sep 17 00:00:00 2001 From: Marcus Greiff Date: Thu, 28 Feb 2019 00:41:07 +0100 Subject: [PATCH 15/66] Enhancement - Add tests to check that a solution is reported to be non-feasible when violating the positive definiteness check --- test/test_hinf_design.jl | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/test/test_hinf_design.jl b/test/test_hinf_design.jl index 06cecc76c..924d48c3e 100644 --- a/test/test_hinf_design.jl +++ b/test/test_hinf_design.jl @@ -213,6 +213,24 @@ using Random @test !ControlSystems._checkFeasibility(Xinf, Yinf, sqrt(ρX*ρY)-tolerance, tolerance, iteration; verbose=false) @test !ControlSystems._checkFeasibility(Xinf, Yinf, sqrt(ρX*ρY), tolerance, iteration; verbose=false) @test ControlSystems._checkFeasibility(Xinf, Yinf, sqrt(ρX*ρY)+tolerance, tolerance, iteration; verbose=false) + + # Test that errors are thrown if the matrix Xinf and Yinf are not PSD down + # to the numerical tolerance. + L = LX; + L[1] += -L[1] + 2*tolerance; Xpos = Q*Diagonal(L)*Q'; # slightly positive eigenvalue + L[1] += -L[1]; Xzero = Q*Diagonal(LX)*Q'; # exactly one zero eigenvalue + L[1] += -L[1] - 2*tolerance; Xneg = Q*Diagonal(L)*Q'; # slightly negative eigenvalue + @test ControlSystems._checkFeasibility(Xpos, Yinf, sqrt(ρX*ρY)+tolerance, tolerance, iteration; verbose=false) + @test ControlSystems._checkFeasibility(Xzero, Yinf, sqrt(ρX*ρY)+tolerance, tolerance, iteration; verbose=false) + @test !ControlSystems._checkFeasibility(Xneg, Yinf, sqrt(ρX*ρY)+tolerance, tolerance, iteration; verbose=false) + + L = LY; + L[1] += -L[1] + 2*tolerance; Ypos = Q*Diagonal(L)*Q'; # slightly positive eigenvalue + L[1] += -L[1]; Yzero = Q*Diagonal(L)*Q'; # exactly one zero eigenvalue + L[1] += -L[1] - 2*tolerance; Yneg = Q*Diagonal(L)*Q'; # slightly negative eigenvalue + @test ControlSystems._checkFeasibility(Xinf, Ypos, sqrt(ρX*ρY)+tolerance, tolerance, iteration; verbose=false) + @test ControlSystems._checkFeasibility(Xinf, Yzero, sqrt(ρX*ρY)+tolerance, tolerance, iteration; verbose=false) + @test !ControlSystems._checkFeasibility(Xinf, Yneg, sqrt(ρX*ρY)+tolerance, tolerance, iteration; verbose=false) end end end From fe2f1aeaebded3ab2a31968d4d51192419c0b9d1 Mon Sep 17 00:00:00 2001 From: Marcus Greiff Date: Thu, 28 Feb 2019 00:44:44 +0100 Subject: [PATCH 16/66] Enhancement - Add test set for the bilinear transformation --- test/test_hinf_design.jl | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/test/test_hinf_design.jl b/test/test_hinf_design.jl index 924d48c3e..01aeefbe3 100644 --- a/test/test_hinf_design.jl +++ b/test/test_hinf_design.jl @@ -232,5 +232,29 @@ using Random @test ControlSystems._checkFeasibility(Xinf, Yzero, sqrt(ρX*ρY)+tolerance, tolerance, iteration; verbose=false) @test !ControlSystems._checkFeasibility(Xinf, Yneg, sqrt(ρX*ρY)+tolerance, tolerance, iteration; verbose=false) end + + # TODO: Include a check to verify that the bisection works as intended. + # TODO: Check to verify that the Hamiltonian Shur-solver is working + # TODO: Check to verify that the Hamiltonian Eigenvalue-solver is working + end + + @testset "Bilinear discretization" begin + """ + This tests the bilinear method of discretizing a continuous time StateSpace + or ExtendedStateSpace object, moving from the Laplace-domain to the Z-domain. + However, importantly, the method also enables approximating discrete-time + systems with continuous-time state-space domain, moving from the Z-domain back + to the laplace-domain. Since the L∞-norm is invariant over the bilinear + discretization and "continuization", this effectively allows us to approximate + discrete-time systems with a continuous-time equivalent, design an H∞-optimal + controller for the continuous-time plant, and then re-discretizing this + controller. + + The structure of these tests is to simply discretize a set of plants with + various dimensions, transport them back into continuous-time domain, and then + to discrete-time again. By then comparing the resulting two pairs of discrete- + time and continuous-time systems in the frequency domain, we can test if the + bilinear discretization operates as expected. + """ end end From f8db6b1ac05552c5dc4098a375038dbaeaedc9a6 Mon Sep 17 00:00:00 2001 From: Marcus Greiff Date: Thu, 28 Feb 2019 00:45:35 +0100 Subject: [PATCH 17/66] Test that the SS-type data is discretized correctly, and that moving from continuous to discrete- and back to continuous-time works, as well as discrete- to continuous- to discrete-time. Works simply means that the frequency response matches across a set of 1001 discrete points in the frequency domain.Test that the SS-type data is discretized correctly, and that moving from continuous to discrete- and back to continuous-time works, as well as discrete- to continuous- to discrete-time. Works simply means that the frequency response matches across a set of 1001 discrete points in the frequency domain. --- test/test_hinf_design.jl | 42 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 42 insertions(+) diff --git a/test/test_hinf_design.jl b/test/test_hinf_design.jl index 01aeefbe3..760116050 100644 --- a/test/test_hinf_design.jl +++ b/test/test_hinf_design.jl @@ -256,5 +256,47 @@ using Random time and continuous-time systems in the frequency domain, we can test if the bilinear discretization operates as expected. """ + @testset "SS data" begin + # Fixture for the SS-type data + Random.seed!(0); + N = [1,5,10] + M = [1,5,10] + H = [0.1,0.01,0.001] + tolerance = 1e-7; + + # Tests for the SS-type data + for (ii, m) in enumerate(N) + for (jj, n) in enumerate(M) + for (kk, h) in enumerate(H) + + freq = [10^i for i in range(-6, stop=log10(pi/h), length=1001)] + + AcTrue, BcTrue, CcTrue, DcTrue = rand(m,m), rand(m,n), rand(n,m), rand(n,n) + + ev = eigvals(AcTrue) + if !isempty(ev[real(ev).<0]) + AcTrue = AcTrue - one(AcTrue) * 2 * maximum(abs.(real(ev[real(ev).<0]))) + end + + Gtrue = ss(AcTrue, BcTrue, CcTrue, DcTrue) + valA, fA = sigma(Gtrue, freq); + sysB = hInf_bilinear_s2z(Gtrue, h); + valB, fB = sigma(sysB, freq) + sysC = hInf_bilinear_z2s(hInf_bilinear_s2z(Gtrue, h)) + valC, fC = sigma(sysC, freq) + sysD = hInf_bilinear_s2z(hInf_bilinear_z2s(hInf_bilinear_s2z(Gtrue, h)),h) + valD, fD = sigma(sysD, freq) + + @test abs(maximum(svd(sysB.B).S)-maximum(svd(sysB.C).S)) < tolerance + @test abs(maximum(svd(sysC.B).S)-maximum(svd(sysC.C).S)) < tolerance + @test abs(maximum(svd(sysD.B).S)-maximum(svd(sysD.C).S)) < tolerance + + # Test that the C->D->C and D->C->D results in the same + @test norm(valA-valC, Inf) < tolerance + @test norm(valB-valD, Inf) < tolerance + end + end + end + end end end From e7a4b5170556d998961b8129ae3e9e12a7621864 Mon Sep 17 00:00:00 2001 From: Marcus Greiff Date: Thu, 28 Feb 2019 00:54:24 +0100 Subject: [PATCH 18/66] Enhancement - Add tests for discretization of extended state-space data-types --- test/test_hinf_design.jl | 74 +++++++++++++++++++++++++++++++++++++++- 1 file changed, 73 insertions(+), 1 deletion(-) diff --git a/test/test_hinf_design.jl b/test/test_hinf_design.jl index 760116050..4acd4438e 100644 --- a/test/test_hinf_design.jl +++ b/test/test_hinf_design.jl @@ -256,6 +256,7 @@ using Random time and continuous-time systems in the frequency domain, we can test if the bilinear discretization operates as expected. """ + @testset "SS data" begin # Fixture for the SS-type data Random.seed!(0); @@ -269,7 +270,7 @@ using Random for (jj, n) in enumerate(M) for (kk, h) in enumerate(H) - freq = [10^i for i in range(-6, stop=log10(pi/h), length=1001)] + freq = [10^i for i in range(-6, stop=log10(pi/h), length=101)] AcTrue, BcTrue, CcTrue, DcTrue = rand(m,m), rand(m,n), rand(n,m), rand(n,n) @@ -298,5 +299,76 @@ using Random end end end + + @testset "Extended SS data" begin + # Fixture for the extended SS-type data + Random.seed!(0); + N = [1,4] + P1 = [1,4] + P2 = [1,4] + M1 = [1,4] + M2 = [1,4] + H = [0.1,0.01,0.001] + tolerance = 1e-5; + + for (in1, n) in enumerate(N) + for (im1, m1) in enumerate(M1) + for (im2, m2) in enumerate(M2) + for (ip1, p1) in enumerate(P1) + for (ip2, p2) in enumerate(P2) + for (ih, h) in enumerate(H) + + freq = [10^i for i in range(-4, stop=log10(pi/h), length=101)] + + A, B1, B2 = 0.01*rand(n,n), rand(n,m1), rand(n,m2) + C1, D11, D12 = rand(p1,n), rand(p1,m1), rand(p1,m2) + C2, D21, D22 = rand(p2,n), rand(p2,m1), rand(p2,m2) + + ev = eigvals(A) + if !isempty(ev[real(ev).>0]) + A = A - one(A) * 2 * maximum(abs.(real(ev[real(ev).>0]))) + end + + EsysA = ss(A, B1, B2, C1, C2, D11, D12, D21, D22) + valA, fA = sigma(ss( + EsysA.A, + [EsysA.B1 EsysA.B2], + [EsysA.C1; EsysA.C2], + [EsysA.D11 EsysA.D12; EsysA.D21 EsysA.D22]) , freq) + + # To discrete time + EsysB = hInf_bilinear_s2z(EsysA, h) + valB, fB = sigma(ss( + EsysB.A, + [EsysB.B1 EsysB.B2], + [EsysB.C1; EsysB.C2], + [EsysB.D11 EsysB.D12; EsysB.D21 EsysB.D22],h) , freq) + + # To continuous time + EsysC = hInf_bilinear_z2s(hInf_bilinear_s2z(EsysA, h)) + valC, fC = sigma(ss( + EsysC.A, + [EsysC.B1 EsysC.B2], + [EsysC.C1; EsysC.C2], + [EsysC.D11 EsysC.D12; EsysC.D21 EsysC.D22]) , freq) + + # To discrete time + EsysD = hInf_bilinear_s2z(hInf_bilinear_z2s(hInf_bilinear_s2z(EsysA, h)),h) + valD, fD = sigma(ss( + EsysD.A, + [EsysD.B1 EsysD.B2], + [EsysD.C1; EsysD.C2], + [EsysD.D11 EsysD.D12; EsysD.D21 EsysD.D22],h) , freq) + + # Test that the C->D->C and D->C->D results in the same + @test norm(valA-valC, Inf) < tolerance + @test norm(valB-valD, Inf) < tolerance + end + end + end + end + end + end + end end end From 3371fd38dea417fee77c00d53a9357268479fd7e Mon Sep 17 00:00:00 2001 From: Marcus Greiff Date: Thu, 28 Feb 2019 01:06:59 +0100 Subject: [PATCH 19/66] Enhancement - Add test which runs the DC-motor example --- test/test_hinf_design.jl | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/test/test_hinf_design.jl b/test/test_hinf_design.jl index 4acd4438e..5f9e16321 100644 --- a/test/test_hinf_design.jl +++ b/test/test_hinf_design.jl @@ -238,7 +238,7 @@ using Random # TODO: Check to verify that the Hamiltonian Eigenvalue-solver is working end - @testset "Bilinear discretization" begin + @testset "(7) Bilinear discretization" begin """ This tests the bilinear method of discretizing a continuous time StateSpace or ExtendedStateSpace object, moving from the Laplace-domain to the Z-domain. @@ -371,4 +371,14 @@ using Random end end end + + @testset "(9) Synthesis Examples" begin + # Fixture + tolerance = 1e-4 + + # Make sure that the code runs + @test isa(include("../example/hinf_example_DC.jl"), Nothing) + Ω = [10^i for i in range(-3, stop=3, length=201)] + + end end From 7457c262b18fa1f6662f0a4ae56cef4a9c827abd Mon Sep 17 00:00:00 2001 From: Marcus Greiff Date: Thu, 28 Feb 2019 01:07:34 +0100 Subject: [PATCH 20/66] Add test which verifies optimality in the DC-motor case --- test/test_hinf_design.jl | 3 +++ 1 file changed, 3 insertions(+) diff --git a/test/test_hinf_design.jl b/test/test_hinf_design.jl index 5f9e16321..b61d518f4 100644 --- a/test/test_hinf_design.jl +++ b/test/test_hinf_design.jl @@ -380,5 +380,8 @@ using Random @test isa(include("../example/hinf_example_DC.jl"), Nothing) Ω = [10^i for i in range(-3, stop=3, length=201)] + # Check that the optimal gain is correct + @test abs(gamma - 4.463211059) < tolerance + end end From 7293cb7078e792fd80e626c00e0ad05134a9f5ce Mon Sep 17 00:00:00 2001 From: Marcus Greiff Date: Thu, 28 Feb 2019 01:08:15 +0100 Subject: [PATCH 21/66] Add test to check that the specifications are indeed satisfied by the resulting controller --- test/test_hinf_design.jl | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/test/test_hinf_design.jl b/test/test_hinf_design.jl index b61d518f4..9cb193013 100644 --- a/test/test_hinf_design.jl +++ b/test/test_hinf_design.jl @@ -383,5 +383,26 @@ using Random # Check that the optimal gain is correct @test abs(gamma - 4.463211059) < tolerance + # Check that the closed loop satisfies ||F_l(P(jω), C(jω)||_∞ < γ, ∀ω ∈ Ω + valPcl = sigma(Pcl, Ω)[1]; + @test all(valPcl .< (gamma+tolerance)) + + # Check that ||S(jω)/WS(jω)||_∞ < γ, ∀ω ∈ Ω + if isa(WS, LTISystem) || isa(WS, Number) + valSWS = sigma(S * WS , Ω)[1]; + @test all(valSWS .< (gamma+tolerance)) + end + + # Check that ||C(jω)S(jω)/W_U(jω)||_∞ < γ, ∀ω ∈ Ω + if isa(WU, LTISystem) || isa(WU, Number) + valKSWU = sigma(CS * WU , Ω)[1]; + @test all(valKSWU .< (gamma+tolerance)) + end + + # Check that ||T(jω)/W_T(jω)||_∞ < γ, ∀ω ∈ Ω + if isa(WT, LTISystem) || isa(WT, Number) + valTWT = sigma(T * WT , Ω)[1]; + @test all(valTWT .< (gamma+tolerance)) + end end end From e8631902a5cb18312f1557549208f23ef577fadb Mon Sep 17 00:00:00 2001 From: Marcus Greiff Date: Thu, 28 Feb 2019 01:11:33 +0100 Subject: [PATCH 22/66] Encapsulate the DC motor example in a separate test set --- test/test_hinf_design.jl | 53 ++++++++++++++++++++++------------------ 1 file changed, 29 insertions(+), 24 deletions(-) diff --git a/test/test_hinf_design.jl b/test/test_hinf_design.jl index 9cb193013..5f75c814e 100644 --- a/test/test_hinf_design.jl +++ b/test/test_hinf_design.jl @@ -373,36 +373,41 @@ using Random end @testset "(9) Synthesis Examples" begin - # Fixture - tolerance = 1e-4 - # Make sure that the code runs - @test isa(include("../example/hinf_example_DC.jl"), Nothing) - Ω = [10^i for i in range(-3, stop=3, length=201)] + @testset "DC motor example" begin + # Fixture + tolerance = 1e-4 - # Check that the optimal gain is correct - @test abs(gamma - 4.463211059) < tolerance + # Make sure that the code runs + @test isa(include("../example/hinf_example_DC.jl"), Nothing) + Ω = [10^i for i in range(-3, stop=3, length=201)] - # Check that the closed loop satisfies ||F_l(P(jω), C(jω)||_∞ < γ, ∀ω ∈ Ω - valPcl = sigma(Pcl, Ω)[1]; - @test all(valPcl .< (gamma+tolerance)) + # Check that the optimal gain is correct + @test abs(gamma - 4.463211059) < tolerance - # Check that ||S(jω)/WS(jω)||_∞ < γ, ∀ω ∈ Ω - if isa(WS, LTISystem) || isa(WS, Number) - valSWS = sigma(S * WS , Ω)[1]; - @test all(valSWS .< (gamma+tolerance)) - end + # Check that the closed loop satisfies ||F_l(P(jω), C(jω)||_∞ < γ, ∀ω ∈ Ω + valPcl = sigma(Pcl, Ω)[1]; + @test all(valPcl .< (gamma+tolerance)) - # Check that ||C(jω)S(jω)/W_U(jω)||_∞ < γ, ∀ω ∈ Ω - if isa(WU, LTISystem) || isa(WU, Number) - valKSWU = sigma(CS * WU , Ω)[1]; - @test all(valKSWU .< (gamma+tolerance)) - end + # Check that ||S(jω)/WS(jω)||_∞ < γ, ∀ω ∈ Ω + if isa(WS, LTISystem) || isa(WS, Number) + valSWS = sigma(S * WS , Ω)[1]; + @test all(valSWS .< (gamma+tolerance)) + end - # Check that ||T(jω)/W_T(jω)||_∞ < γ, ∀ω ∈ Ω - if isa(WT, LTISystem) || isa(WT, Number) - valTWT = sigma(T * WT , Ω)[1]; - @test all(valTWT .< (gamma+tolerance)) + # Check that ||C(jω)S(jω)/W_U(jω)||_∞ < γ, ∀ω ∈ Ω + if isa(WU, LTISystem) || isa(WU, Number) + valKSWU = sigma(CS * WU , Ω)[1]; + @test all(valKSWU .< (gamma+tolerance)) + end + + # Check that ||T(jω)/W_T(jω)||_∞ < γ, ∀ω ∈ Ω + if isa(WT, LTISystem) || isa(WT, Number) + valTWT = sigma(T * WT , Ω)[1]; + @test all(valTWT .< (gamma+tolerance)) + end end + + end end From 1a594fb1a5d495fe472f81069d065fd78e4b2c13 Mon Sep 17 00:00:00 2001 From: Marcus Greiff Date: Thu, 28 Feb 2019 01:12:40 +0100 Subject: [PATCH 23/66] Enhancement - Add test which runs the MIT open courseware example --- test/test_hinf_design.jl | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/test/test_hinf_design.jl b/test/test_hinf_design.jl index 5f75c814e..df9807f51 100644 --- a/test/test_hinf_design.jl +++ b/test/test_hinf_design.jl @@ -408,6 +408,13 @@ using Random end end - + @testset "MIT open courseware example" begin + + # Fixture + tolerance = 1e-4 + + # Make sure that the code runs + @test isa(include("../example/hinf_example_MIT.jl"), Nothing) + end end end From 17756e65e1e4bf8e8f7eed14c8f03b987980aafe Mon Sep 17 00:00:00 2001 From: Marcus Greiff Date: Thu, 28 Feb 2019 01:13:43 +0100 Subject: [PATCH 24/66] Enhancement - Add test to check optimality int the MIT open courseware example --- test/test_hinf_design.jl | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/test/test_hinf_design.jl b/test/test_hinf_design.jl index df9807f51..04a9549f6 100644 --- a/test/test_hinf_design.jl +++ b/test/test_hinf_design.jl @@ -415,6 +415,10 @@ using Random # Make sure that the code runs @test isa(include("../example/hinf_example_MIT.jl"), Nothing) + Ω = [10^i for i in range(-7, stop=7, length=201)] + + # Check that the optimal gain is correct + @test abs(gamma - 0.923430124918) < tolerance end end end From 8a2b8954ecfafb2c7869d13cfdbfd9fc33d707d9 Mon Sep 17 00:00:00 2001 From: Marcus Greiff Date: Thu, 28 Feb 2019 01:14:52 +0100 Subject: [PATCH 25/66] Enhancement - Add check to see that the specifications are met with the resulting controller in the MIT open courseware example --- test/test_hinf_design.jl | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/test/test_hinf_design.jl b/test/test_hinf_design.jl index 04a9549f6..3dcbf2f42 100644 --- a/test/test_hinf_design.jl +++ b/test/test_hinf_design.jl @@ -419,6 +419,28 @@ using Random # Check that the optimal gain is correct @test abs(gamma - 0.923430124918) < tolerance + + # Check that the closed loop satisfies ||F_l(P(jω), C(jω)||_∞ < γ, ∀ω ∈ Ω + valPcl = sigma(Pcl, Ω)[1]; + @test all(valPcl .< (gamma+tolerance)) + + # Check that ||S(jω)/WS(jω)||_∞ < γ, ∀ω ∈ Ω + if isa(WS, LTISystem) || isa(WS, Number) + valSWS = sigma(S * WS , Ω)[1]; + @test all(valSWS .< (gamma+tolerance)) + end + + # Check that ||C(jω)S(jω)/W_U(jω)||_∞ < γ, ∀ω ∈ Ω + if isa(WU, LTISystem) || isa(WU, Number) + valKSWU = sigma(CS * WU , Ω)[1]; + @test all(valKSWU .< (gamma+tolerance)) + end + + # Check that ||T(jω)/W_T(jω)||_∞ < γ, ∀ω ∈ Ω + if isa(WT, LTISystem) || isa(WT, Number) + valTWT = sigma(T * WT , Ω)[1]; + @test all(valTWT .< (gamma+tolerance)) + end end end end From 498df49a5145b1e578f87cae530cd0c05a76c2d5 Mon Sep 17 00:00:00 2001 From: Marcus Greiff Date: Thu, 28 Feb 2019 01:17:26 +0100 Subject: [PATCH 26/66] Enhancement - Add tests which run the quadtank example and make sure that the code runs --- test/test_hinf_design.jl | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/test/test_hinf_design.jl b/test/test_hinf_design.jl index 3dcbf2f42..e9c5a732e 100644 --- a/test/test_hinf_design.jl +++ b/test/test_hinf_design.jl @@ -442,5 +442,14 @@ using Random @test all(valTWT .< (gamma+tolerance)) end end + + @testset "Quad tank example" begin + + # Fixture + tolerance = 1e-2 + + # Make sure that the code runs + @test isa(include("../example/hinf_example_tank.jl"), Nothing) + end end end From 7ad1ad737d80c63538261b3227638e1a0ad34e2a Mon Sep 17 00:00:00 2001 From: Marcus Greiff Date: Thu, 28 Feb 2019 01:19:09 +0100 Subject: [PATCH 27/66] Move examples fom the dev directory to the example directory --- {dev => example}/hinf_example_DC.jl | 2 +- {dev => example}/hinf_example_DC_discrete.jl | 2 +- {dev => example}/hinf_example_MIMO.jl | 0 {dev => example}/hinf_example_MIT.jl | 2 +- {dev => example}/hinf_example_MIT_discrete.jl | 4 ++-- {dev => example}/hinf_example_tank.jl | 2 +- {dev => example}/hinf_example_tank_discrete.jl | 2 +- {dev => example}/hinf_utilities.jl | 0 8 files changed, 7 insertions(+), 7 deletions(-) rename {dev => example}/hinf_example_DC.jl (98%) rename {dev => example}/hinf_example_DC_discrete.jl (99%) rename {dev => example}/hinf_example_MIMO.jl (100%) rename {dev => example}/hinf_example_MIT.jl (98%) rename {dev => example}/hinf_example_MIT_discrete.jl (98%) rename {dev => example}/hinf_example_tank.jl (99%) rename {dev => example}/hinf_example_tank_discrete.jl (99%) rename {dev => example}/hinf_utilities.jl (100%) diff --git a/dev/hinf_example_DC.jl b/example/hinf_example_DC.jl similarity index 98% rename from dev/hinf_example_DC.jl rename to example/hinf_example_DC.jl index bab2406df..a51e1aa12 100644 --- a/dev/hinf_example_DC.jl +++ b/example/hinf_example_DC.jl @@ -10,7 +10,7 @@ The example can be set to visualize and save plots using the variables MakePlots - true/false (true if plots are to be generated, false for testing) SavePlots - true/false (true if plots are to be saved, false for testing) """ -MakePlots = true +MakePlots = false SavePlots = false # Define the process diff --git a/dev/hinf_example_DC_discrete.jl b/example/hinf_example_DC_discrete.jl similarity index 99% rename from dev/hinf_example_DC_discrete.jl rename to example/hinf_example_DC_discrete.jl index cf9f28791..93a8846f0 100644 --- a/dev/hinf_example_DC_discrete.jl +++ b/example/hinf_example_DC_discrete.jl @@ -10,7 +10,7 @@ The example can be set to visualize and save plots using the variables MakePlots - true/false (true if plots are to be generated, false for testing) SavePlots - true/false (true if plots are to be saved, false for testing) """ -MakePlots = true +MakePlots = false SavePlots = false # Define the process diff --git a/dev/hinf_example_MIMO.jl b/example/hinf_example_MIMO.jl similarity index 100% rename from dev/hinf_example_MIMO.jl rename to example/hinf_example_MIMO.jl diff --git a/dev/hinf_example_MIT.jl b/example/hinf_example_MIT.jl similarity index 98% rename from dev/hinf_example_MIT.jl rename to example/hinf_example_MIT.jl index d0a93342f..f15efc63c 100644 --- a/dev/hinf_example_MIT.jl +++ b/example/hinf_example_MIT.jl @@ -14,7 +14,7 @@ The example can be set to visualize and save plots using the two variables ShowPlots - true/false (true if plots are to be generated, false for testing) filename - Set to string if files are to be saved, otherwise set a empty list """ -MakePlots = true +MakePlots = false SavePlots = false # Define the process diff --git a/dev/hinf_example_MIT_discrete.jl b/example/hinf_example_MIT_discrete.jl similarity index 98% rename from dev/hinf_example_MIT_discrete.jl rename to example/hinf_example_MIT_discrete.jl index 055e6982d..98eb919f8 100644 --- a/dev/hinf_example_MIT_discrete.jl +++ b/example/hinf_example_MIT_discrete.jl @@ -12,8 +12,8 @@ The example can be set to visualize and save plots using the two variables MakePlots - true/false (true if plots are to be generated, false for testing) SavePlots - true/false (true if plots are to be saved, false for testing) """ -MakePlots = true -SavePlots = true +MakePlots = false +SavePlots = false # Define the process ts = 0.005 diff --git a/dev/hinf_example_tank.jl b/example/hinf_example_tank.jl similarity index 99% rename from dev/hinf_example_tank.jl rename to example/hinf_example_tank.jl index 8b13f0157..ab60124d8 100644 --- a/dev/hinf_example_tank.jl +++ b/example/hinf_example_tank.jl @@ -9,7 +9,7 @@ The example can be set to visualize and save plots using the variables MakePlots - true/false (true if plots are to be generated, false for testing) SavePlots - true/false (true if plots are to be saved, false for testing) """ -MakePlots = true +MakePlots = false SavePlots = false # Define the proces parameters diff --git a/dev/hinf_example_tank_discrete.jl b/example/hinf_example_tank_discrete.jl similarity index 99% rename from dev/hinf_example_tank_discrete.jl rename to example/hinf_example_tank_discrete.jl index 01a0ce677..86893bc0b 100644 --- a/dev/hinf_example_tank_discrete.jl +++ b/example/hinf_example_tank_discrete.jl @@ -9,7 +9,7 @@ The example can be set to visualize and save plots using the variables MakePlots - true/false (true if plots are to be generated, false for testing) SavePlots - true/false (true if plots are to be saved, false for testing) """ -MakePlots = true +MakePlots = false SavePlots = false # Define the proces parameters diff --git a/dev/hinf_utilities.jl b/example/hinf_utilities.jl similarity index 100% rename from dev/hinf_utilities.jl rename to example/hinf_utilities.jl From 26e397a8a7aaf2e0557703e8f70720106a452980 Mon Sep 17 00:00:00 2001 From: Marcus Greiff Date: Thu, 28 Feb 2019 01:21:46 +0100 Subject: [PATCH 28/66] Enhancement - Check for optimality in the Quad-tank example H-infinity synthesis --- test/test_hinf_design.jl | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/test/test_hinf_design.jl b/test/test_hinf_design.jl index e9c5a732e..32c6d413d 100644 --- a/test/test_hinf_design.jl +++ b/test/test_hinf_design.jl @@ -450,6 +450,10 @@ using Random # Make sure that the code runs @test isa(include("../example/hinf_example_tank.jl"), Nothing) + Ω = [10^i for i in range(-7, stop=7, length=201)] + + # Check that the optimal gain is correct + @test abs(gamma - 0.9534467) < tolerance end end end From d01b0a33ed748e2b7d8dccefef725c29b0bf642e Mon Sep 17 00:00:00 2001 From: Marcus Greiff Date: Thu, 28 Feb 2019 01:23:13 +0100 Subject: [PATCH 29/66] Enhancement - Check that the frequency-domain sspecifications are met in the quadtank example --- test/test_hinf_design.jl | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/test/test_hinf_design.jl b/test/test_hinf_design.jl index 32c6d413d..264559f4d 100644 --- a/test/test_hinf_design.jl +++ b/test/test_hinf_design.jl @@ -454,6 +454,28 @@ using Random # Check that the optimal gain is correct @test abs(gamma - 0.9534467) < tolerance + + # Check that the closed loop satisfies ||F_l(P(jω), C(jω)||_∞ < γ, ∀ω ∈ Ω + valPcl = sigma(Pcl, Ω)[1]; + @test all(valPcl[:,1] .< (gamma+tolerance)) + + # Check that ||S(jω)/WS(jω)||_∞ < γ, ∀ω ∈ Ω + if isa(WS, LTISystem) || isa(WS, Number) + valSWS = sigma(S * WS , Ω)[1]; + @test all(valSWS[:,1] .< (gamma+tolerance)) + end + + # Check that ||C(jω)S(jω)/W_U(jω)||_∞ < γ, ∀ω ∈ Ω + if isa(WU, LTISystem) || isa(WU, Number) + valKSWU = sigma(CS * WU , Ω)[1]; + @test all(valKSWU[:,1] .< (gamma+tolerance)) + end + + # Check that ||T(jω)/W_T(jω)||_∞ < γ, ∀ω ∈ Ω + if isa(WT, LTISystem) || isa(WT, Number) + valTWT = sigma(T * WT , Ω)[1]; + @test all(valTWT[:,1] .< (gamma+tolerance)) + end end end end From fe3dc87954b12483dd5342a7da23ae432f1693e1 Mon Sep 17 00:00:00 2001 From: Marcus Greiff Date: Thu, 28 Feb 2019 10:33:22 +0100 Subject: [PATCH 30/66] Fix error throws in the specifications rewrite, include printstatement for debugging --- src/hinfinity_design.jl | 23 +++++++++++++---------- 1 file changed, 13 insertions(+), 10 deletions(-) diff --git a/src/hinfinity_design.jl b/src/hinfinity_design.jl index fdbb9d602..aca039a3f 100644 --- a/src/hinfinity_design.jl +++ b/src/hinfinity_design.jl @@ -521,27 +521,27 @@ fucntion objects on a the trasfer function or the state-space form. function hInf_partition(G, WS, WU, WT) # Convert the systems into state-space form - Ag, Bg, Cg, Dg = convert_input_to_ss(G) - Asw, Bsw, Csw, Dsw = convert_input_to_ss(WS) - Auw, Buw, Cuw, Duw = convert_input_to_ss(WU) - Atw, Btw, Ctw, Dtw = convert_input_to_ss(WT) + Ag, Bg, Cg, Dg = _convert_input_to_ss(G) + Asw, Bsw, Csw, Dsw = _convert_input_to_ss(WS) + Auw, Buw, Cuw, Duw = _convert_input_to_ss(WU) + Atw, Btw, Ctw, Dtw = _convert_input_to_ss(WT) # Check that the system is realizable if size(Cg, 1) != size(Btw,2) && size(Btw,2) != 0 println([size(Cg, 1) , size(Btw,2)]) - error(["You must have the same number of outputs y=C2xg+D21w+D22u as there are inputs to WT"]) + error(DimensionMismatch("You must have the same number of outputs y=C2xg+D21w+D22u as there are inputs to WT")) end if size(Cg, 1) != size(Bsw,2) && size(Bsw,2) != 0 println([size(Cg, 1) , size(Bsw,2)]) - error(["You must have the same number of states x=Agxg+B1w+B2u as there are inputs to WS"]) + error(DimensionMismatch("You must have the same number of states x=Agxg+B1w+B2u as there are inputs to WS")) end if size(Bg, 2) != size(Buw,2) && size(Buw,2) != 0 println([size(Bg, 2) , size(Buw,2)]) - error(["You must have the same number of controls u as there are inputs to WU"]) + error(DimensionMismatch("You must have the same number of controls u as there are inputs to WU")) end if (size(Ag,1)==0 || size(Ag,2)==0 || size(Bg,1)==0 || size(Bg,2)==0 || size(Cg,1)==0 || size(Cg,2)==0 || size(Dg,1)==0 || size(Dg,2)==0) - error(["Expansion of systems dimensionless A,B,C or D is not yet supported"]) + error(DimensionMismatch("Expansion of systems dimensionless A,B,C or D is not yet supported")) end # Form A @@ -603,15 +603,18 @@ function hInf_partition(G, WS, WU, WT) Dyw=Matrix{Float64}(I, mCg, nDuw) Dyu=-Dg; + println([size(A) size(Bw) size(Bu); + size(Cz) size( Dzw) size(Dzu); + size(Cy) size( Dyw) size( Dyu)]) P = ss(A, Bw, Bu, Cz, Cy, Dzw, Dzu, Dyw, Dyu) return P end """`convert_input_to_ss(H)` -Help fucntion used for type conversion in hInf_partition() +Help function used for type conversion in hInf_partition() """ -function convert_input_to_ss(H) +function _convert_input_to_ss(H) if isa(H, LTISystem) if isa(H, TransferFunction) Hss = ss(H) From 08067e37352d776d0a388742114698e4e6c89a71 Mon Sep 17 00:00:00 2001 From: Marcus Greiff Date: Thu, 28 Feb 2019 10:34:25 +0100 Subject: [PATCH 31/66] Add tests to verify that the conversion in the hInf_partition is done correctly --- test/test_hinf_design.jl | 148 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 148 insertions(+) diff --git a/test/test_hinf_design.jl b/test/test_hinf_design.jl index 264559f4d..648279736 100644 --- a/test/test_hinf_design.jl +++ b/test/test_hinf_design.jl @@ -30,6 +30,154 @@ using Random extensively with detailed comments for each test-set. """ + @testset "(1) Specifications" begin + """ + These tests make sure that the specifications are written on a suitable form + for any combination of none/empty, static gain, SISO, and MIMO + specificaitons in the weighting functions. Essentially, the tests are made + to verify that hInf_partition(G, WS, WU, WT) works as expected. + """ + + @testset "Conversion of user input" begin + + @testset "Empty and nothing" begin + + # Check that conversion of nothing is OK + A, B, C, D = ControlSystems._convert_input_to_ss(nothing) + @test isa(A, Array{Float64,2}) + @test isa(B, Array{Float64,2}) + @test isa(C, Array{Float64,2}) + @test isa(D, Array{Float64,2}) + + @test size(A) == (0,0) + @test size(B) == (0,0) + @test size(C) == (0,0) + @test size(D) == (0,0) + + # Check that conversion of empty objects are OK + A, B, C, D = ControlSystems._convert_input_to_ss([]) + @test isa(A, Array{Float64,2}) + @test isa(B, Array{Float64,2}) + @test isa(C, Array{Float64,2}) + @test isa(D, Array{Float64,2}) + + @test size(A) == (0,0) + @test size(B) == (0,0) + @test size(C) == (0,0) + @test size(D) == (0,0) + end + + @testset "Static gains" begin + # Fixture + number = 2.0 + + # Check that conversion of numbers are OK + A, B, C, D = ControlSystems._convert_input_to_ss(number) + @test isa(A, Array{Float64,2}) + @test isa(B, Array{Float64,2}) + @test isa(C, Array{Float64,2}) + @test isa(D, Array{Float64,2}) + + @test D[1,1] == number + + @test size(A) == (0,0) + @test size(B) == (0,1) + @test size(C) == (1,0) + @test size(D) == (1,1) + end + + @testset "LTI models" begin + + # Fixture + Random.seed!(0); M=3; N=2; + SISO_tf = tf([1,0],[1,0,1]) + SISO_ss = ss(SISO_tf) + MIMO_ss = ss( + rand(Float64, (M,M)), + rand(Float64, (M,N)), + rand(Float64, (N,M)), + rand(Float64, (N,N)) + ) + MIMO_tf = tf(MIMO_ss) + + # check that conversion of SISO tf data is OK + A, B, C, D = ControlSystems._convert_input_to_ss(SISO_tf) + @test isa(A, Array{Float64,2}) + @test isa(B, Array{Float64,2}) + @test isa(C, Array{Float64,2}) + @test isa(D, Array{Float64,2}) + + @test ss(A, B, C, D) == ss(SISO_tf) + + # check that conversion of SISO tf data is OK + A, B, C, D = ControlSystems._convert_input_to_ss(SISO_ss) + @test isa(A, Array{Float64,2}) + @test isa(B, Array{Float64,2}) + @test isa(C, Array{Float64,2}) + @test isa(D, Array{Float64,2}) + + @test ss(A, B, C, D) == SISO_ss + + # check that conversion of MIMO tf data is OK + A, B, C, D = ControlSystems._convert_input_to_ss(MIMO_tf) + @test isa(A, Array{Float64,2}) + @test isa(B, Array{Float64,2}) + @test isa(C, Array{Float64,2}) + @test isa(D, Array{Float64,2}) + + @test ss(A, B, C, D) == ss(MIMO_tf) + + # check that conversion of MIMO tf data is OK + A, B, C, D = ControlSystems._convert_input_to_ss(MIMO_ss) + @test isa(A, Array{Float64,2}) + @test isa(B, Array{Float64,2}) + @test isa(C, Array{Float64,2}) + @test isa(D, Array{Float64,2}) + + @test ss(A, B, C, D) == MIMO_ss + end + end + + # + # @testset "Dimensionality checks" + # + # # Check sensitivity function weight - must have the same number of inputs + # # as outputs, can have an arbitrarily large statespace, and must have the + # # same number of inputs as there are outputs in the process which is to be + # # controlled. + # + # # Fixture + # M = 5; N = 3; L=4; + # G = ss(rand(Float64, (M,M)), rand(Float64, (M,L)), + # rand(Float64, (N,M)), rand(Float64, (N,L))) + # + # # Create a sensitivity weighting function with ii inputs and ii outputs + # for ii = 2:6 + # for jj = 2:6 + # for kk = 2:6 + # # Create some randome weighting functions + # WS = ss(rand(Float64, (M,M)), rand(Float64, (M,ii)), + # rand(Float64, (ii,M)), rand(Float64, (ii,ii))) + # WU = ss(rand(Float64, (M,M)), rand(Float64, (M,jj)), + # rand(Float64, (jj,M)), rand(Float64, (jj,jj))) + # WT = ss(rand(Float64, (M,M)), rand(Float64, (M,kk)), + # rand(Float64, (kk,M)), rand(Float64, (kk,kk))) + # + # println([ii,jj,kk]) + # # Chech that the specifications can be re-written is possible + # if ii == N && jj == L && kk == N + # @test isa(hInf_partition(G, WS, WU, WT), ControlSystems.ExtendedStateSpace) + # else + # @test_throws ErrorException hInf_partition(G, WS, WU, WT) + # end + # end + # end + # end + # end + + + end + @testset "(2) Assumptions" begin """ Tests the methods used to check that the assumptions are satisfied, From 04eeee1bbe4cc8e8fa3a9c0dccc8a746ae2ba31e Mon Sep 17 00:00:00 2001 From: Marcus Greiff Date: Thu, 28 Feb 2019 10:35:43 +0100 Subject: [PATCH 32/66] Add the hinfinity tests to the automatic testing --- test/runtests.jl | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/test/runtests.jl b/test/runtests.jl index b415db570..17bb14142 100644 --- a/test/runtests.jl +++ b/test/runtests.jl @@ -23,7 +23,8 @@ my_tests = ["test_statespace", "test_analysis", "test_matrix_comps", "test_lqg", - "test_synthesis"] + "test_synthesis", + "test_hinf_design"] # try From c65c223e2480f38fd427529b70925e983fa09858 Mon Sep 17 00:00:00 2001 From: Marcus Greiff Date: Thu, 28 Feb 2019 10:41:10 +0100 Subject: [PATCH 33/66] Parameterize Function - move hard coded numerical tolerance to be an input parameter --- src/hinfinity_design.jl | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/src/hinfinity_design.jl b/src/hinfinity_design.jl index aca039a3f..3717aad76 100644 --- a/src/hinfinity_design.jl +++ b/src/hinfinity_design.jl @@ -176,7 +176,7 @@ risk sensitivity" by Glover and Doyle. See the Bib-entry below: } """ -function hInf_synthesize(P::ExtendedStateSpace; maxIter=20, interval=(2/3,20), verbose=true) +function hInf_synthesize(P::ExtendedStateSpace; maxIter=20, interval=(2/3,20), verbose=true, tolerance=1e-10) A, B1, B2, C1, C2, D11, D12, D21, D22 = ssdata(P) @@ -184,7 +184,7 @@ function hInf_synthesize(P::ExtendedStateSpace; maxIter=20, interval=(2/3,20), v Abar, B1bar, B2bar, C1bar, C2bar, D11bar, D12bar, D21bar, D22bar, Ltrans12, Rtrans12, Ltrans21, Rtrans21 = _transformP2Pbar(A, B1, B2, C1, C2, D11, D12, D21, D22) # Run the gamma iterations - XinfFeasible, YinfFeasible, FinfFeasible, HinfFeasible, gammFeasible = _gammaIterations(Abar, B1bar, B2bar, C1bar, C2bar, D11bar, D12bar, D21bar, D22bar, maxIter, interval, verbose) + XinfFeasible, YinfFeasible, FinfFeasible, HinfFeasible, gammFeasible = _gammaIterations(Abar, B1bar, B2bar, C1bar, C2bar, D11bar, D12bar, D21bar, D22bar, maxIter, interval, verbose, tolerance) if !isempty(gammFeasible) # Synthesize the controller @@ -401,7 +401,7 @@ terminates without a solution if the maximum possible gamma on the defined interval is infeasible. Here we could consider increasing the bounds somewhat and warn the user if this occurrs. """ -function _gammaIterations(A, B1, B2, C1, C2, D11, D12, D21, D22, maxIter, interval, verbose) +function _gammaIterations(A, B1, B2, C1, C2, D11, D12, D21, D22, maxIter, interval, verbose, tolerance) XinfFeasible = [] YinfFeasible = [] @@ -409,8 +409,6 @@ function _gammaIterations(A, B1, B2, C1, C2, D11, D12, D21, D22, maxIter, interv HinfFeasible = [] gammFeasible = [] - tolerance = 1e-10 - gamma = maximum(interval) for iteration = 1:maxIter From fb5fcc8d0fa1b62b77891fa208c9135a57da2372 Mon Sep 17 00:00:00 2001 From: Marcus Greiff Date: Thu, 28 Feb 2019 11:04:40 +0100 Subject: [PATCH 34/66] Remove Dead Code - remove unneeded variable epsilon --- src/hinfinity_design.jl | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/hinfinity_design.jl b/src/hinfinity_design.jl index 3717aad76..b87dea3e6 100644 --- a/src/hinfinity_design.jl +++ b/src/hinfinity_design.jl @@ -10,7 +10,6 @@ be feasible for synthesis. However, this has not been too successful so far..! """ function hInf_assumptions(P::ExtendedStateSpace; verbose=true) - epsilon = 1e-8 flag=true A, B1, B2, C1, C2, D11, D12, D21, D22 = ssdata(P) @@ -391,7 +390,7 @@ function _solveMatrixEquations(A, B1, B2, C1, C2, D11, D12, D21, D22, gamma) end """ -`[flag]=_gammaIterations(A, B1, B2, C1, C2, D11, D12, D21, D22, maxIter, interval, verbose)` +`[flag]=_gammaIterations(A, B1, B2, C1, C2, D11, D12, D21, D22, maxIter, interval, verbose, tolerance)` Rune the complete set of γ-iterations over a specified search interval with a set number of iterations. It is possible to break the algorithm if the number From 3ba522bb6edbf33617e5e0337590ab58e4f2b1e9 Mon Sep 17 00:00:00 2001 From: Marcus Greiff Date: Thu, 28 Feb 2019 11:24:55 +0100 Subject: [PATCH 35/66] Inline Variable - remove the flag variable and return a boolean directly in the assumption checks --- src/hinfinity_design.jl | 67 +++++++++++++++++++---------------------- 1 file changed, 31 insertions(+), 36 deletions(-) diff --git a/src/hinfinity_design.jl b/src/hinfinity_design.jl index b87dea3e6..119a0aa7f 100644 --- a/src/hinfinity_design.jl +++ b/src/hinfinity_design.jl @@ -10,85 +10,80 @@ be feasible for synthesis. However, this has not been too successful so far..! """ function hInf_assumptions(P::ExtendedStateSpace; verbose=true) - flag=true - A, B1, B2, C1, C2, D11, D12, D21, D22 = ssdata(P) # Check assumption A1 - if !_is_stabilizable(A, B1) - if verbose - println("Warning, the system A is not stabilizable through B1, violation of assumption A1.") - end - flag=false - end if !_is_stabilizable(A, B2) if verbose - println("Warning, the system A is not stabilizable through B2, violation of assumption A1.") - end - flag=false - end - if !_is_detectable(A, C1) - if verbose - println("Warning, the system A is not detectable through C1, violation of assumption A1.") + println("Warning, the system A is not stabilizable through B2, ", + "violation of assumption A1.") end - flag=false + return false end if !_is_detectable(A, C2) if verbose - println("Warning, the system A is not detectable through C2, violation of assumption A1.") + println("Warning, the system A is not detectable through C2, ", + "violation of assumption A1.") end - flag=false + return false end # Check assumption A2 if rank(D12) < size(D12,2) if verbose - println("Warning, the matrix D12 does not have full rank, violation of assumption A2.") + println("Warning, the matrix D12 does not have full rank, ", + "violation of assumption A2.") end - flag=false + return false end if rank(D21) < size(D21,1) if verbose - println("Warning, the matrix D21 does not have full rank, violation of assumption A2.") + println("Warning, the matrix D21 does not have full rank, ", + "violation of assumption A2.") end - flag=false + return false end + # Check assumption A5 D12Pinv, D12Pinv_exists = _compute_pseudoinverse(D12) if !D12Pinv_exists if verbose - println("Warning, the matrix (A - B2*D12^-*C1) cannot be evaluated, violation of assumption A5. The pseudo inverse of D12 does not exist.") + println("Warning, the matrix (A - B2*D12^-*C1) cannot be evaluated,", + "violation of assumption A5. The pseudo inverse of D12 does ", + "not exist.") end - flag=false + return false else if rank(A - B2*D12Pinv*C1) < size(A,1) if verbose - println("Warning, the matrix (A - B2*D12^-*C1) does not have full rank, violation of assumption A5. Returning candidate approximation in Atilde. Please re-check the feasibility conditions with Atilde.") + println("Warning, the matrix (A - B2*D12^-*C1) does not have full", + "rank, violation of assumption A5.") end - flag=false + return false end end # Check assumption A5 D21Pinv, D21Pinv_exists = _compute_pseudoinverse(D21) if !D21Pinv_exists if verbose - println("Warning, the matrix (A - B1*D21Pinv*C2) cannot be evaluated, violation of assumption A5. The pseudo inverse of D21 does not exist.") + println("Warning, the matrix (A - B1*D21Pinv*C2) cannot be evaluated, ", + "violation of assumption A5. The pseudo inverse of D21 does ", + " not exist.") end - flag=false + return false else if rank(A - B1*D21Pinv*C2) < size(A,1) if verbose - println("Warning, the matrix (A - B1*D21Pinv*C2) does not have full rank, violation of assumption A6. Returning candidate approximation in Atilde. Please re-check the feasibility conditions with Atilde.") + println("Warning, the matrix (A - B1*D21Pinv*C2) does not ", + "have full rank, violation of assumption A6.") end - flag=false + return false end end - if flag && verbose - println("All assumtions are satisfied!") - else - println("All assumtions are not satisfied, consider a slight modification of the plant.") - end - return flag + + # All assumptions have passed, and we may proceed with the synthesis + if verbose println("All assumtions are satisfied!") end + return true end """ From 259dfdad46348d01ea59803850f806ee856a28ed Mon Sep 17 00:00:00 2001 From: Marcus Greiff Date: Thu, 28 Feb 2019 11:33:09 +0100 Subject: [PATCH 36/66] Rename Variable - Rename the variable so that the controller is consistently referred to by C --- src/hinfinity_design.jl | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/hinfinity_design.jl b/src/hinfinity_design.jl index 119a0aa7f..1ebbcd6f5 100644 --- a/src/hinfinity_design.jl +++ b/src/hinfinity_design.jl @@ -678,10 +678,10 @@ function hInf_signals(P::ExtendedStateSpace, G::LTISystem, C::LTISystem) Pcl = Pw2z S = Pw2e - KS = Pw2u + CS = Pw2u T = Pw2y - return Pcl, S, KS, T + return Pcl, S, CS, T end From 4ffaefec8bdd19f48c27ed03fd420ba3f9cb4a77 Mon Sep 17 00:00:00 2001 From: Marcus Greiff Date: Thu, 28 Feb 2019 11:36:35 +0100 Subject: [PATCH 37/66] Inline Variable - Removed the gammasquared variable --- src/hinfinity_design.jl | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/src/hinfinity_design.jl b/src/hinfinity_design.jl index 1ebbcd6f5..49648176b 100644 --- a/src/hinfinity_design.jl +++ b/src/hinfinity_design.jl @@ -291,12 +291,10 @@ Riccatti equations, return true if the solution is valid, and false otherwise. """ function _checkFeasibility(Xinf, Yinf, gamma, tolerance, iteration; verbose=true) - gammaSq = gamma*gamma - # TODO Add checks to capture singular Xinf and Yinf minXev = minimum(real(eigvals(Xinf))) minYev = minimum(real(eigvals(Yinf))) - specrad = maximum(abs.(eigvals(Xinf*Yinf))) / gammaSq + specrad = maximum(abs.(eigvals(Xinf*Yinf))) / (gamma*gamma) if verbose if iteration == 1 From 9785fca36f8682f35840a90a350ed880e65071fe Mon Sep 17 00:00:00 2001 From: Marcus Greiff Date: Thu, 28 Feb 2019 11:41:16 +0100 Subject: [PATCH 38/66] Extract Variable - Extract exactly what is returned in the hInf_synthesize function in order to show exactly what the function returns and why --- src/hinfinity_design.jl | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/src/hinfinity_design.jl b/src/hinfinity_design.jl index 49648176b..8a1efbbb4 100644 --- a/src/hinfinity_design.jl +++ b/src/hinfinity_design.jl @@ -181,17 +181,20 @@ function hInf_synthesize(P::ExtendedStateSpace; maxIter=20, interval=(2/3,20), v XinfFeasible, YinfFeasible, FinfFeasible, HinfFeasible, gammFeasible = _gammaIterations(Abar, B1bar, B2bar, C1bar, C2bar, D11bar, D12bar, D21bar, D22bar, maxIter, interval, verbose, tolerance) if !isempty(gammFeasible) - # Synthesize the controller + K Ac, Bc, Cc, Dc = _synthesizeController(Abar, B1bar, B2bar, C1bar, C2bar, D11bar, D12bar, D21bar, D22bar, XinfFeasible, YinfFeasible, FinfFeasible, HinfFeasible, gammFeasible, Ltrans12, Rtrans12, Ltrans21, Rtrans21) - # Form the controller - K = ss(Ac, Bc, Cc, Dc) + # Return the controller, the optimal gain γ, and a true flag + C = ss(Ac, Bc, Cc, Dc) gamma = gammFeasible flag = true - return flag, K, gamma else - return false, [], [] + # Return and empty controller, empty gain γ, and a false flag + C = [] + gamma = [] + flag = false end + return flag, C, gammFeasible end """`[Ac, Bc Cc, Dc] = hInfSynthesizeController(A, B1, B2, C1, C2, D11, D12, D21, D22, Xinf, Yinf, F, H, gamma, Ltrans12, Rtrans12, Ltrans21, Rtrans21)` From a99029520281f2baa4c936e3acba4d31b29dc1af Mon Sep 17 00:00:00 2001 From: Marcus Greiff Date: Thu, 28 Feb 2019 11:43:38 +0100 Subject: [PATCH 39/66] Remove breaking underfined variable --- src/hinfinity_design.jl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/hinfinity_design.jl b/src/hinfinity_design.jl index 8a1efbbb4..37a497b6d 100644 --- a/src/hinfinity_design.jl +++ b/src/hinfinity_design.jl @@ -181,7 +181,7 @@ function hInf_synthesize(P::ExtendedStateSpace; maxIter=20, interval=(2/3,20), v XinfFeasible, YinfFeasible, FinfFeasible, HinfFeasible, gammFeasible = _gammaIterations(Abar, B1bar, B2bar, C1bar, C2bar, D11bar, D12bar, D21bar, D22bar, maxIter, interval, verbose, tolerance) if !isempty(gammFeasible) - K + # Synthesize the controller and trnasform it back into the original coordinates Ac, Bc, Cc, Dc = _synthesizeController(Abar, B1bar, B2bar, C1bar, C2bar, D11bar, D12bar, D21bar, D22bar, XinfFeasible, YinfFeasible, FinfFeasible, HinfFeasible, gammFeasible, Ltrans12, Rtrans12, Ltrans21, Rtrans21) # Return the controller, the optimal gain γ, and a true flag From df01d945248dabaf67a0567672dd18987d607bbd Mon Sep 17 00:00:00 2001 From: Marcus Greiff Date: Thu, 28 Feb 2019 11:52:48 +0100 Subject: [PATCH 40/66] Introduce Assertion - Make sure that the matrix which is to be factorized in equation (20) is real and PSD --- src/hinfinity_design.jl | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/src/hinfinity_design.jl b/src/hinfinity_design.jl index 37a497b6d..70e95380e 100644 --- a/src/hinfinity_design.jl +++ b/src/hinfinity_design.jl @@ -237,10 +237,16 @@ function _synthesizeController(A, B1, B2, C1, C2, D11, D12, D21, D22, Xinf, Yinf # Equation 19 D11hat = ((-D1121 * D1111') / (gSq * I - D1111 * D1111')) * D1112 - D1122 - # TODO check that the M matrices are positive definite - # Equation 20 D12hatD12hat = I - (D1121 / (gSq * I - D1111' * D1111)) * D1121' + + if any(real(eigvals(D12hatD12hat)).<= 0) + error(ErrorException("The matrix I - (D1121 / (gSq * I - D1111' * D1111)) * D1121' in equation (20) is not PSD")) + end + if any(imag(eigvals(D12hatD12hat)).!=0) + error(ErrorException("The matrix I - (D1121 / (gSq * I - D1111' * D1111)) * D1121' in equation (20) is complex")) + end + D12hat = cholesky(D12hatD12hat).L # Equation 21 From f25585e5dd87892c40a7844390ba4f88b909f7c4 Mon Sep 17 00:00:00 2001 From: Marcus Greiff Date: Thu, 28 Feb 2019 11:54:31 +0100 Subject: [PATCH 41/66] Introduce Assertion - Assert that the matrix which is to be factorized in equation (21) is real and PSD --- src/hinfinity_design.jl | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/hinfinity_design.jl b/src/hinfinity_design.jl index 70e95380e..82f7e329a 100644 --- a/src/hinfinity_design.jl +++ b/src/hinfinity_design.jl @@ -251,6 +251,12 @@ function _synthesizeController(A, B1, B2, C1, C2, D11, D12, D21, D22, Xinf, Yinf # Equation 21 D21hatD21hat = I - (D1112' / (gSq * I - D1111 * D1111')) * D1112 + if any(real(eigvals(D21hatD21hat)).<=0) + error(ErrorException("The matrix I - (D1121 / (gSq * I - D1111' * D1111)) * D1121' in equation (20) is not PSD")) + end + if any(imag(eigvals(D21hatD21hat)).!=0) + error(ErrorException("The matrix I - (D1121 / (gSq * I - D1111' * D1111)) * D1121' in equation (20) is complex")) + end D21hat = cholesky(D21hatD21hat).U # Equation 27 From 68f56b8b3e5cdb0818932005a1f4224c4023c973 Mon Sep 17 00:00:00 2001 From: Marcus Greiff Date: Thu, 28 Feb 2019 12:00:14 +0100 Subject: [PATCH 42/66] Extract Method - Extracted a method for checking positive definiteness and if a matrix is real, both of which shoud be satisfied before applying the cholesky decomposition in equations (20) and (21) --- src/hinfinity_design.jl | 29 +++++++++++++++-------------- 1 file changed, 15 insertions(+), 14 deletions(-) diff --git a/src/hinfinity_design.jl b/src/hinfinity_design.jl index 82f7e329a..10b92b575 100644 --- a/src/hinfinity_design.jl +++ b/src/hinfinity_design.jl @@ -239,24 +239,12 @@ function _synthesizeController(A, B1, B2, C1, C2, D11, D12, D21, D22, Xinf, Yinf # Equation 20 D12hatD12hat = I - (D1121 / (gSq * I - D1111' * D1111)) * D1121' - - if any(real(eigvals(D12hatD12hat)).<= 0) - error(ErrorException("The matrix I - (D1121 / (gSq * I - D1111' * D1111)) * D1121' in equation (20) is not PSD")) - end - if any(imag(eigvals(D12hatD12hat)).!=0) - error(ErrorException("The matrix I - (D1121 / (gSq * I - D1111' * D1111)) * D1121' in equation (20) is complex")) - end - + _assert_real_and_PSD(D12hatD12hat, "in equation (20)") D12hat = cholesky(D12hatD12hat).L # Equation 21 D21hatD21hat = I - (D1112' / (gSq * I - D1111 * D1111')) * D1112 - if any(real(eigvals(D21hatD21hat)).<=0) - error(ErrorException("The matrix I - (D1121 / (gSq * I - D1111' * D1111)) * D1121' in equation (20) is not PSD")) - end - if any(imag(eigvals(D21hatD21hat)).!=0) - error(ErrorException("The matrix I - (D1121 / (gSq * I - D1111' * D1111)) * D1121' in equation (20) is complex")) - end + _assert_real_and_PSD(D21hatD21hat, "in equation (21)") D21hat = cholesky(D21hatD21hat).U # Equation 27 @@ -299,6 +287,19 @@ function _synthesizeController(A, B1, B2, C1, C2, D11, D12, D21, D22, Xinf, Yinf return Acontroller, Bcontroller[:,1:P2], Ccontroller[1:M2,:], Dcontroller[1:M2,1:P2] end +"""_assert_real_and_PSD(A::AbstractMatrix, msg::AbstractString) + +Check that a matrix is real and PSD - throw an error otherwise. +""" +function _assert_real_and_PSD(A::AbstractMatrix, msg::AbstractString) + if any(real(eigvals(A)).<=0) + error(ErrorException("The matrix ", msg, " is not PSD.")) + end + if any(imag(eigvals(A)).!=0) + error(ErrorException("The matrix ", msg, " is complex.")) + end +end + """`[flag] = _checkFeasibility(Xinf, Yinf, gamma, tolerance, iteration; verbose=true)` Check the feasibility of the computed solutions Xinf, Yinf and the algebraic From fbe6a5b8df82e9967522ff82db35dcde35348e89 Mon Sep 17 00:00:00 2001 From: Marcus Greiff Date: Thu, 28 Feb 2019 12:09:04 +0100 Subject: [PATCH 43/66] Bugfix with string concatenation in _assert_real_and_PSD() --- src/hinfinity_design.jl | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/hinfinity_design.jl b/src/hinfinity_design.jl index 10b92b575..3ef397480 100644 --- a/src/hinfinity_design.jl +++ b/src/hinfinity_design.jl @@ -239,12 +239,12 @@ function _synthesizeController(A, B1, B2, C1, C2, D11, D12, D21, D22, Xinf, Yinf # Equation 20 D12hatD12hat = I - (D1121 / (gSq * I - D1111' * D1111)) * D1121' - _assert_real_and_PSD(D12hatD12hat, "in equation (20)") + _assert_real_and_PSD(D12hatD12hat; msg=" in equation (20)") D12hat = cholesky(D12hatD12hat).L # Equation 21 D21hatD21hat = I - (D1112' / (gSq * I - D1111 * D1111')) * D1112 - _assert_real_and_PSD(D21hatD21hat, "in equation (21)") + _assert_real_and_PSD(D21hatD21hat; msg=" in equation (21)") D21hat = cholesky(D21hatD21hat).U # Equation 27 @@ -291,12 +291,12 @@ end Check that a matrix is real and PSD - throw an error otherwise. """ -function _assert_real_and_PSD(A::AbstractMatrix, msg::AbstractString) +function _assert_real_and_PSD(A::AbstractMatrix; msg="") if any(real(eigvals(A)).<=0) - error(ErrorException("The matrix ", msg, " is not PSD.")) + error(ErrorException(string("The matrix", msg," is not PSD."))) end if any(imag(eigvals(A)).!=0) - error(ErrorException("The matrix ", msg, " is complex.")) + error(ErrorException(string("The matrix", msg," is not real."))) end end From 3aee4852e6c75ccd164af32a952ce08b03ce6a5d Mon Sep 17 00:00:00 2001 From: Marcus Greiff Date: Thu, 28 Feb 2019 12:22:21 +0100 Subject: [PATCH 44/66] Introduce Assertion - Throw an error when the conitions in _scale_matrix are violated instead of printing a statement and allowing execution to proceed --- src/hinfinity_design.jl | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/hinfinity_design.jl b/src/hinfinity_design.jl index 3ef397480..f0e54f7b1 100644 --- a/src/hinfinity_design.jl +++ b/src/hinfinity_design.jl @@ -480,14 +480,14 @@ Tl*A*Tr = [I; 0], depending on the dimensionality of A. function _scaleMatrix(A) # Check that a scaling is feasible if isempty(A) - @printf("Cannot scale the system, A is empty") + error("Cannot scale the system, A is empty") return [], [] else if (minimum(size(A)) > 1) print(A) print(size(A)) if rank(A) != minimum(size(A)) - @printf("Cannot scale the system, assumption A2 is violated") + error("Cannot scale the system, assumption A2 is violated") return [], [] end end From 1e8d72f623189314a2337965eb937a7206788530 Mon Sep 17 00:00:00 2001 From: Marcus Greiff Date: Sat, 2 Mar 2019 00:14:58 +0100 Subject: [PATCH 45/66] Add test for the coordinate transform using the QR decomposition, enable testing os subsets of the tests (should be written as a macro later maybe) --- test/test_hinf_design.jl | 1081 ++++++++++++++++++++------------------ 1 file changed, 567 insertions(+), 514 deletions(-) diff --git a/test/test_hinf_design.jl b/test/test_hinf_design.jl index 648279736..e71233558 100644 --- a/test/test_hinf_design.jl +++ b/test/test_hinf_design.jl @@ -3,6 +3,8 @@ using Test using LinearAlgebra using Random +execute_tests = [false,false,true,false,false,false,false,false,false] + @testset "H-infinity design" begin """ Tests for the public and private methods of the hInfSynthesis function. This @@ -30,487 +32,536 @@ using Random extensively with detailed comments for each test-set. """ - @testset "(1) Specifications" begin - """ - These tests make sure that the specifications are written on a suitable form - for any combination of none/empty, static gain, SISO, and MIMO - specificaitons in the weighting functions. Essentially, the tests are made - to verify that hInf_partition(G, WS, WU, WT) works as expected. - """ - - @testset "Conversion of user input" begin - - @testset "Empty and nothing" begin - - # Check that conversion of nothing is OK - A, B, C, D = ControlSystems._convert_input_to_ss(nothing) - @test isa(A, Array{Float64,2}) - @test isa(B, Array{Float64,2}) - @test isa(C, Array{Float64,2}) - @test isa(D, Array{Float64,2}) - - @test size(A) == (0,0) - @test size(B) == (0,0) - @test size(C) == (0,0) - @test size(D) == (0,0) - - # Check that conversion of empty objects are OK - A, B, C, D = ControlSystems._convert_input_to_ss([]) - @test isa(A, Array{Float64,2}) - @test isa(B, Array{Float64,2}) - @test isa(C, Array{Float64,2}) - @test isa(D, Array{Float64,2}) - - @test size(A) == (0,0) - @test size(B) == (0,0) - @test size(C) == (0,0) - @test size(D) == (0,0) - end + if execute_tests[1] + @testset "(1) Specifications" begin + """ + These tests make sure that the specifications are written on a suitable form + for any combination of none/empty, static gain, SISO, and MIMO + specificaitons in the weighting functions. Essentially, the tests are made + to verify that hInf_partition(G, WS, WU, WT) works as expected. + """ - @testset "Static gains" begin - # Fixture - number = 2.0 + @testset "Conversion of user input" begin + + @testset "Empty and nothing" begin + + # Check that conversion of nothing is OK + A, B, C, D = ControlSystems._convert_input_to_ss(nothing) + @test isa(A, Array{Float64,2}) + @test isa(B, Array{Float64,2}) + @test isa(C, Array{Float64,2}) + @test isa(D, Array{Float64,2}) + + @test size(A) == (0,0) + @test size(B) == (0,0) + @test size(C) == (0,0) + @test size(D) == (0,0) + + # Check that conversion of empty objects are OK + A, B, C, D = ControlSystems._convert_input_to_ss([]) + @test isa(A, Array{Float64,2}) + @test isa(B, Array{Float64,2}) + @test isa(C, Array{Float64,2}) + @test isa(D, Array{Float64,2}) + + @test size(A) == (0,0) + @test size(B) == (0,0) + @test size(C) == (0,0) + @test size(D) == (0,0) + end - # Check that conversion of numbers are OK - A, B, C, D = ControlSystems._convert_input_to_ss(number) - @test isa(A, Array{Float64,2}) - @test isa(B, Array{Float64,2}) - @test isa(C, Array{Float64,2}) - @test isa(D, Array{Float64,2}) + @testset "Static gains" begin + # Fixture + number = 2.0 - @test D[1,1] == number + # Check that conversion of numbers are OK + A, B, C, D = ControlSystems._convert_input_to_ss(number) + @test isa(A, Array{Float64,2}) + @test isa(B, Array{Float64,2}) + @test isa(C, Array{Float64,2}) + @test isa(D, Array{Float64,2}) - @test size(A) == (0,0) - @test size(B) == (0,1) - @test size(C) == (1,0) - @test size(D) == (1,1) - end + @test D[1,1] == number - @testset "LTI models" begin + @test size(A) == (0,0) + @test size(B) == (0,1) + @test size(C) == (1,0) + @test size(D) == (1,1) + end - # Fixture - Random.seed!(0); M=3; N=2; - SISO_tf = tf([1,0],[1,0,1]) - SISO_ss = ss(SISO_tf) - MIMO_ss = ss( - rand(Float64, (M,M)), - rand(Float64, (M,N)), - rand(Float64, (N,M)), - rand(Float64, (N,N)) - ) - MIMO_tf = tf(MIMO_ss) - - # check that conversion of SISO tf data is OK - A, B, C, D = ControlSystems._convert_input_to_ss(SISO_tf) - @test isa(A, Array{Float64,2}) - @test isa(B, Array{Float64,2}) - @test isa(C, Array{Float64,2}) - @test isa(D, Array{Float64,2}) - - @test ss(A, B, C, D) == ss(SISO_tf) - - # check that conversion of SISO tf data is OK - A, B, C, D = ControlSystems._convert_input_to_ss(SISO_ss) - @test isa(A, Array{Float64,2}) - @test isa(B, Array{Float64,2}) - @test isa(C, Array{Float64,2}) - @test isa(D, Array{Float64,2}) - - @test ss(A, B, C, D) == SISO_ss - - # check that conversion of MIMO tf data is OK - A, B, C, D = ControlSystems._convert_input_to_ss(MIMO_tf) - @test isa(A, Array{Float64,2}) - @test isa(B, Array{Float64,2}) - @test isa(C, Array{Float64,2}) - @test isa(D, Array{Float64,2}) - - @test ss(A, B, C, D) == ss(MIMO_tf) - - # check that conversion of MIMO tf data is OK - A, B, C, D = ControlSystems._convert_input_to_ss(MIMO_ss) - @test isa(A, Array{Float64,2}) - @test isa(B, Array{Float64,2}) - @test isa(C, Array{Float64,2}) - @test isa(D, Array{Float64,2}) - - @test ss(A, B, C, D) == MIMO_ss + @testset "LTI models" begin + + # Fixture + Random.seed!(0); M=3; N=2; + SISO_tf = tf([1,0],[1,0,1]) + SISO_ss = ss(SISO_tf) + MIMO_ss = ss( + rand(Float64, (M,M)), + rand(Float64, (M,N)), + rand(Float64, (N,M)), + rand(Float64, (N,N)) + ) + MIMO_tf = tf(MIMO_ss) + + # check that conversion of SISO tf data is OK + A, B, C, D = ControlSystems._convert_input_to_ss(SISO_tf) + @test isa(A, Array{Float64,2}) + @test isa(B, Array{Float64,2}) + @test isa(C, Array{Float64,2}) + @test isa(D, Array{Float64,2}) + + @test ss(A, B, C, D) == ss(SISO_tf) + + # check that conversion of SISO tf data is OK + A, B, C, D = ControlSystems._convert_input_to_ss(SISO_ss) + @test isa(A, Array{Float64,2}) + @test isa(B, Array{Float64,2}) + @test isa(C, Array{Float64,2}) + @test isa(D, Array{Float64,2}) + + @test ss(A, B, C, D) == SISO_ss + + # check that conversion of MIMO tf data is OK + A, B, C, D = ControlSystems._convert_input_to_ss(MIMO_tf) + @test isa(A, Array{Float64,2}) + @test isa(B, Array{Float64,2}) + @test isa(C, Array{Float64,2}) + @test isa(D, Array{Float64,2}) + + @test ss(A, B, C, D) == ss(MIMO_tf) + + # check that conversion of MIMO tf data is OK + A, B, C, D = ControlSystems._convert_input_to_ss(MIMO_ss) + @test isa(A, Array{Float64,2}) + @test isa(B, Array{Float64,2}) + @test isa(C, Array{Float64,2}) + @test isa(D, Array{Float64,2}) + + @test ss(A, B, C, D) == MIMO_ss + end end + + # + # @testset "Dimensionality checks" + # + # # Check sensitivity function weight - must have the same number of inputs + # # as outputs, can have an arbitrarily large statespace, and must have the + # # same number of inputs as there are outputs in the process which is to be + # # controlled. + # + # # Fixture + # M = 5; N = 3; L=4; + # G = ss(rand(Float64, (M,M)), rand(Float64, (M,L)), + # rand(Float64, (N,M)), rand(Float64, (N,L))) + # + # # Create a sensitivity weighting function with ii inputs and ii outputs + # for ii = 2:6 + # for jj = 2:6 + # for kk = 2:6 + # # Create some randome weighting functions + # WS = ss(rand(Float64, (M,M)), rand(Float64, (M,ii)), + # rand(Float64, (ii,M)), rand(Float64, (ii,ii))) + # WU = ss(rand(Float64, (M,M)), rand(Float64, (M,jj)), + # rand(Float64, (jj,M)), rand(Float64, (jj,jj))) + # WT = ss(rand(Float64, (M,M)), rand(Float64, (M,kk)), + # rand(Float64, (kk,M)), rand(Float64, (kk,kk))) + # + # println([ii,jj,kk]) + # # Chech that the specifications can be re-written is possible + # if ii == N && jj == L && kk == N + # @test isa(hInf_partition(G, WS, WU, WT), ControlSystems.ExtendedStateSpace) + # else + # @test_throws ErrorException hInf_partition(G, WS, WU, WT) + # end + # end + # end + # end + # end end + end + + if execute_tests[2] + @testset "(2) Assumptions" begin + """ + Tests the methods used to check that the assumptions are satisfied, + incorporating two separate algorithms to determine detectability and + observability, and a rectangular pseudoinverse to check the rank conditions. + """ - # - # @testset "Dimensionality checks" - # - # # Check sensitivity function weight - must have the same number of inputs - # # as outputs, can have an arbitrarily large statespace, and must have the - # # same number of inputs as there are outputs in the process which is to be - # # controlled. - # - # # Fixture - # M = 5; N = 3; L=4; - # G = ss(rand(Float64, (M,M)), rand(Float64, (M,L)), - # rand(Float64, (N,M)), rand(Float64, (N,L))) - # - # # Create a sensitivity weighting function with ii inputs and ii outputs - # for ii = 2:6 - # for jj = 2:6 - # for kk = 2:6 - # # Create some randome weighting functions - # WS = ss(rand(Float64, (M,M)), rand(Float64, (M,ii)), - # rand(Float64, (ii,M)), rand(Float64, (ii,ii))) - # WU = ss(rand(Float64, (M,M)), rand(Float64, (M,jj)), - # rand(Float64, (jj,M)), rand(Float64, (jj,jj))) - # WT = ss(rand(Float64, (M,M)), rand(Float64, (M,kk)), - # rand(Float64, (kk,M)), rand(Float64, (kk,kk))) - # - # println([ii,jj,kk]) - # # Chech that the specifications can be re-written is possible - # if ii == N && jj == L && kk == N - # @test isa(hInf_partition(G, WS, WU, WT), ControlSystems.ExtendedStateSpace) - # else - # @test_throws ErrorException hInf_partition(G, WS, WU, WT) - # end - # end - # end - # end - # end + @testset "Stabilizability check" begin + """ + Test the check for stabilizability using the Hautus Lemma + """ + ### Fixture + Random.seed!(0); N = 10; M = 5; + R = rand(Float64, (N,N)) + Q = eigvecs(R + R'); + L = rand(Float64,N).-0.5; + A = Q*Diagonal(L)*Q'; + E = eigvals(A); + + # Here we should return false if for any positive eigenvalue λ of A, we get + # that rank(A-λI, B) < N. We define B as conlums which are linearly + # dependent with columns in A-λI, and check that the system returns false + # in every case where λ > 0 and never when λ≦0. + for ii = 1:N + for jj = 1:(N-M) + Ahat = A - E[ii]*Matrix{Float64}(I, N, N); + B = Ahat[:,jj:(jj+M)] + if E[ii] >= 0 + @test !ControlSystems._is_stabilizable(A,B) + else + @test ControlSystems._is_stabilizable(A,B) + end + end + end + # Check common input types and ensure that a method error is thrown when + # not using two abstract matrices, but some other common type + N = 10; M = 5; + A = rand(Float64, (N,N)); + B = rand(Float64, (N,M)); + @test_throws MethodError ControlSystems._is_detectable(A,nothing) + @test_throws MethodError ControlSystems._is_detectable(nothing,B) + @test_throws MethodError ControlSystems._is_detectable(A,[]) + @test_throws MethodError ControlSystems._is_detectable([],B) + @test_throws MethodError ControlSystems._is_detectable(A,ss(1)) + @test_throws MethodError ControlSystems._is_detectable(ss(1),B) + @test_throws MethodError ControlSystems._is_detectable(A,tf(1)) + @test_throws MethodError ControlSystems._is_detectable(tf(1),B) + end - end + @testset "Detectability check" begin + """ + Test the check for detectability using the Hautus Lemma + """ + ### Fixture + Random.seed!(0); N = 10; M = 5; + R = rand(Float64, (N,N)) + Q = eigvecs(R + R'); + L = rand(Float64,N).-0.5; + A = Q*Diagonal(L)*Q'; + E = eigvals(A); + + # Here we should return false if for any positive eigenvalue λ of A, we get + # that rank(A-λI; C) < N. We define C as rows which are linearly + # dependent with rows in A-λI, and check that the system returns false + # in every case where λ > 0 and never when λ≦0. + for ii = 1:N + for jj = 1:(N-M) + Ahat = A - E[ii]*Matrix{Float64}(I, N, N); + C = Ahat[jj:(jj+M),:] + if E[ii] >= 0 + @test !ControlSystems._is_detectable(A,C) + else + @test ControlSystems._is_detectable(A,C) + end + end + end - @testset "(2) Assumptions" begin - """ - Tests the methods used to check that the assumptions are satisfied, - incorporating two separate algorithms to determine detectability and - observability, and a rectangular pseudoinverse to check the rank conditions. - """ + # Check common input types and ensure that a method error is thrown when + # not using two abstract matrices, but some other common type + N = 10; M = 5; + A = rand(Float64, (M,M)); + C = rand(Float64, (N,M)); + @test_throws MethodError ControlSystems._is_detectable(A,nothing) + @test_throws MethodError ControlSystems._is_detectable(nothing,C) + @test_throws MethodError ControlSystems._is_detectable(A,[]) + @test_throws MethodError ControlSystems._is_detectable([],C) + @test_throws MethodError ControlSystems._is_detectable(A,ss(1)) + @test_throws MethodError ControlSystems._is_detectable(ss(1),C) + @test_throws MethodError ControlSystems._is_detectable(A,tf(1)) + @test_throws MethodError ControlSystems._is_detectable(tf(1),C) + end - @testset "Stabilizability check" begin - """ - Test the check for stabilizability using the Hautus Lemma - """ - ### Fixture - Random.seed!(0); N = 10; M = 5; - R = rand(Float64, (N,N)) - Q = eigvecs(R + R'); - L = rand(Float64,N).-0.5; - A = Q*Diagonal(L)*Q'; - E = eigvals(A); - - # Here we should return false if for any positive eigenvalue λ of A, we get - # that rank(A-λI, B) < N. We define B as conlums which are linearly - # dependent with columns in A-λI, and check that the system returns false - # in every case where λ > 0 and never when λ≦0. - for ii = 1:N - for jj = 1:(N-M) - Ahat = A - E[ii]*Matrix{Float64}(I, N, N); - B = Ahat[:,jj:(jj+M)] - if E[ii] >= 0 - @test !ControlSystems._is_stabilizable(A,B) - else - @test ControlSystems._is_stabilizable(A,B) + @testset "Pseudoinverse computation" begin + """ + The g-inverse is used to check the rank conditions across all frequencies, + see e.g. assumptions A5 and A6 in the reference [1]. As was shown in the + complementary report [2], this can be done by computing a pseudoinverse + and checking its rank. This code tests that the compuatation of these + g-inverses are done correctly for arbitrary matrices + """ + + ### Fixture + tolerance = 1e-10; + R = rand(Float64, (10,10)) + Q = eigvecs(R + R'); + + # Check that the g-invere works for a set of full-rank square and + # rectangular matrices + for M = 1:5:11 + for N = 1:5:11 + AMN = rand(M,N); + Pinv, status = ControlSystems._compute_pseudoinverse(AMN); + @test status + if M < N + @test opnorm(AMN*Pinv - Matrix{Float64}(I, min(M,N), min(M,N))) < tolerance + else + @test opnorm(Pinv*AMN - Matrix{Float64}(I, min(M,N), min(M,N))) < tolerance + end + end + end + + # Check common input types and ensure that a method error is thrown when + # not using two abstract matrices, but some other common type + @test_throws MethodError ControlSystems._compute_pseudoinverse(nothing) + @test_throws MethodError ControlSystems._compute_pseudoinverse([]) + @test_throws MethodError ControlSystems._compute_pseudoinverse(ss(1)) + @test_throws MethodError ControlSystems._compute_pseudoinverse(tf(1)) + + # Check that the method correctly reports that no pseudoinverse exists + # when the matrix M is rank deficient + for M = 1:5:11 + for N = 1:5:11 + U,S,V = svd(rand(M,N)) + S[1] = 0.0; + AMN_rank_deficient = U*Diagonal(S)*V'; + Pinv, status = ControlSystems._compute_pseudoinverse(AMN_rank_deficient); + @test !status + @test isa(Pinv, Array{Any,1}) end end end - # Check common input types and ensure that a method error is thrown when - # not using two abstract matrices, but some other common type - N = 10; M = 5; - A = rand(Float64, (N,N)); - B = rand(Float64, (N,M)); - @test_throws MethodError ControlSystems._is_detectable(A,nothing) - @test_throws MethodError ControlSystems._is_detectable(nothing,B) - @test_throws MethodError ControlSystems._is_detectable(A,[]) - @test_throws MethodError ControlSystems._is_detectable([],B) - @test_throws MethodError ControlSystems._is_detectable(A,ss(1)) - @test_throws MethodError ControlSystems._is_detectable(ss(1),B) - @test_throws MethodError ControlSystems._is_detectable(A,tf(1)) - @test_throws MethodError ControlSystems._is_detectable(tf(1),B) + # TODO: write tests using the above submethods directly in hInf_assumptions end + end - @testset "Detectability check" begin + if execute_tests[3] + @testset "(3) Coordinate transform" begin """ - Test the check for detectability using the Hautus Lemma + Computes the coordinate transfomration to write the system on the form of + assumption A4 in [1], i.e. take an extended statespace model, P, satisfying + assumption A2, and transform is to a system P_bar, where the matrices + D12_bar = [0,I] and D21_bar = [0;I]. """ - ### Fixture - Random.seed!(0); N = 10; M = 5; - R = rand(Float64, (N,N)) - Q = eigvecs(R + R'); - L = rand(Float64,N).-0.5; - A = Q*Diagonal(L)*Q'; - E = eigvals(A); - - # Here we should return false if for any positive eigenvalue λ of A, we get - # that rank(A-λI; C) < N. We define C as rows which are linearly - # dependent with rows in A-λI, and check that the system returns false - # in every case where λ > 0 and never when λ≦0. - for ii = 1:N - for jj = 1:(N-M) - Ahat = A - E[ii]*Matrix{Float64}(I, N, N); - C = Ahat[jj:(jj+M),:] - if E[ii] >= 0 - @test !ControlSystems._is_detectable(A,C) - else - @test ControlSystems._is_detectable(A,C) + + @testset "Find coordinate transformation with QR decomposition" begin + """ + Test computation of the transformation in square and rectangular cases. + """ + # Fixture + tolerance = 1e-10 + + for N = 1:5 + for M = 1:5 + A = rand(Float64, (M, N)) + I_mat = Matrix{Float64}(I, min(M,N), min(M,N)) + + if M==N + # Square case + A_bar_true = I_mat + elseif M>N + # Rectangular case (more rows than columns) + Z_mat = zeros(Float64, (max(M,N)-min(M,N),min(M,N))) + A_bar_true = [Z_mat; I_mat] + else + # Rectangular case (more columns than rows) + Z_mat = zeros(Float64, (min(M,N), max(M,N)-min(M,N))) + A_bar_true = [Z_mat I_mat] + end + LeftTransform, RightTransform = ControlSystems._scaleMatrix(A) + @test opnorm(LeftTransform*A*RightTransform - A_bar_true) < tolerance end end end - # Check common input types and ensure that a method error is thrown when - # not using two abstract matrices, but some other common type - N = 10; M = 5; - A = rand(Float64, (M,M)); - C = rand(Float64, (N,M)); - @test_throws MethodError ControlSystems._is_detectable(A,nothing) - @test_throws MethodError ControlSystems._is_detectable(nothing,C) - @test_throws MethodError ControlSystems._is_detectable(A,[]) - @test_throws MethodError ControlSystems._is_detectable([],C) - @test_throws MethodError ControlSystems._is_detectable(A,ss(1)) - @test_throws MethodError ControlSystems._is_detectable(ss(1),C) - @test_throws MethodError ControlSystems._is_detectable(A,tf(1)) - @test_throws MethodError ControlSystems._is_detectable(tf(1),C) + end + end - @testset "Pseudoinverse computation" begin + if execute_tests[4] + @testset "(4) Gamma iterations" begin """ - The g-inverse is used to check the rank conditions across all frequencies, - see e.g. assumptions A5 and A6 in the reference [1]. As was shown in the - complementary report [2], this can be done by computing a pseudoinverse - and checking its rank. This code tests that the compuatation of these - g-inverses are done correctly for arbitrary matrices + Tests the core methods of the gamma-iteration bisection method, including + the ARE hamiltonian solver, the eigenvalue solver, the feasibility checks. """ - ### Fixture - tolerance = 1e-10; - R = rand(Float64, (10,10)) - Q = eigvecs(R + R'); - - # Check that the g-invere works for a set of full-rank square and - # rectangular matrices - for M = 1:5:11 - for N = 1:5:11 - AMN = rand(M,N); - Pinv, status = ControlSystems._compute_pseudoinverse(AMN); - @test status - if M < N - @test opnorm(AMN*Pinv - Matrix{Float64}(I, min(M,N), min(M,N))) < tolerance - else - @test opnorm(Pinv*AMN - Matrix{Float64}(I, min(M,N), min(M,N))) < tolerance - end - end + @testset "Solution feasibility check" begin + """ + Check that a solution to the dual riccati equations is correctly reported + as being feasible if satisfying the conditions of positive definiteness on + the X and Y solutions are met, and the spectral radius condition of X*Y is + also met + """ + # Fixture + Random.seed!(0); + tolerance = 1e-10; + iteration = 1; + Random.seed!(0); N = 10; M = 5; + R = rand(Float64, (N,N)) + Q = eigvecs(R + R'); + ρX = rand() + ρY = rand() + LX= rand(Float64,N); LX = ρX*sort(LX / maximum(LX)) + LY= rand(Float64,N); LY = ρY*sort(LY / maximum(LY)) + Xinf = Q*Diagonal(LX)*Q'; + Yinf = Q*Diagonal(LY)*Q'; + gamma = 1; + + # Test that the fesibility is true if ρ(Xinf*Yinf) < γ^2, that is the + # check should be true for any + # + # γ = sqrt(ρX*ρY) + ϵ + # + # with any epsilon greater than or equal to zero. + @test !ControlSystems._checkFeasibility(Xinf, Yinf, sqrt(ρX*ρY)-tolerance, tolerance, iteration; verbose=false) + @test !ControlSystems._checkFeasibility(Xinf, Yinf, sqrt(ρX*ρY), tolerance, iteration; verbose=false) + @test ControlSystems._checkFeasibility(Xinf, Yinf, sqrt(ρX*ρY)+tolerance, tolerance, iteration; verbose=false) + + # Test that errors are thrown if the matrix Xinf and Yinf are not PSD down + # to the numerical tolerance. + L = LX; + L[1] += -L[1] + 2*tolerance; Xpos = Q*Diagonal(L)*Q'; # slightly positive eigenvalue + L[1] += -L[1]; Xzero = Q*Diagonal(LX)*Q'; # exactly one zero eigenvalue + L[1] += -L[1] - 2*tolerance; Xneg = Q*Diagonal(L)*Q'; # slightly negative eigenvalue + @test ControlSystems._checkFeasibility(Xpos, Yinf, sqrt(ρX*ρY)+tolerance, tolerance, iteration; verbose=false) + @test ControlSystems._checkFeasibility(Xzero, Yinf, sqrt(ρX*ρY)+tolerance, tolerance, iteration; verbose=false) + @test !ControlSystems._checkFeasibility(Xneg, Yinf, sqrt(ρX*ρY)+tolerance, tolerance, iteration; verbose=false) + + L = LY; + L[1] += -L[1] + 2*tolerance; Ypos = Q*Diagonal(L)*Q'; # slightly positive eigenvalue + L[1] += -L[1]; Yzero = Q*Diagonal(L)*Q'; # exactly one zero eigenvalue + L[1] += -L[1] - 2*tolerance; Yneg = Q*Diagonal(L)*Q'; # slightly negative eigenvalue + @test ControlSystems._checkFeasibility(Xinf, Ypos, sqrt(ρX*ρY)+tolerance, tolerance, iteration; verbose=false) + @test ControlSystems._checkFeasibility(Xinf, Yzero, sqrt(ρX*ρY)+tolerance, tolerance, iteration; verbose=false) + @test !ControlSystems._checkFeasibility(Xinf, Yneg, sqrt(ρX*ρY)+tolerance, tolerance, iteration; verbose=false) end - # Check common input types and ensure that a method error is thrown when - # not using two abstract matrices, but some other common type - @test_throws MethodError ControlSystems._compute_pseudoinverse(nothing) - @test_throws MethodError ControlSystems._compute_pseudoinverse([]) - @test_throws MethodError ControlSystems._compute_pseudoinverse(ss(1)) - @test_throws MethodError ControlSystems._compute_pseudoinverse(tf(1)) - - # Check that the method correctly reports that no pseudoinverse exists - # when the matrix M is rank deficient - for M = 1:5:11 - for N = 1:5:11 - U,S,V = svd(rand(M,N)) - S[1] = 0.0; - AMN_rank_deficient = U*Diagonal(S)*V'; - Pinv, status = ControlSystems._compute_pseudoinverse(AMN_rank_deficient); - @test !status - @test isa(Pinv, Array{Any,1}) - end - end + # TODO: Include a check to verify that the bisection works as intended. + # TODO: Check to verify that the Hamiltonian Shur-solver is working + # TODO: Check to verify that the Hamiltonian Eigenvalue-solver is working end - - # TODO: write tests using the above submethods directly in hInf_assumptions end - @testset "(4) Gamma iterations" begin - """ - Tests the core methods of the gamma-iteration bisection method, including - the ARE hamiltonian solver, the eigenvalue solver, the feasibility checks. - """ - - @testset "Solution feasibility check" begin + if execute_tests[7] + @testset "(7) Bilinear discretization" begin """ - Check that a solution to the dual riccati equations is correctly reported - as being feasible if satisfying the conditions of positive definiteness on - the X and Y solutions are met, and the spectral radius condition of X*Y is - also met + This tests the bilinear method of discretizing a continuous time StateSpace + or ExtendedStateSpace object, moving from the Laplace-domain to the Z-domain. + However, importantly, the method also enables approximating discrete-time + systems with continuous-time state-space domain, moving from the Z-domain back + to the laplace-domain. Since the L∞-norm is invariant over the bilinear + discretization and "continuization", this effectively allows us to approximate + discrete-time systems with a continuous-time equivalent, design an H∞-optimal + controller for the continuous-time plant, and then re-discretizing this + controller. + + The structure of these tests is to simply discretize a set of plants with + various dimensions, transport them back into continuous-time domain, and then + to discrete-time again. By then comparing the resulting two pairs of discrete- + time and continuous-time systems in the frequency domain, we can test if the + bilinear discretization operates as expected. """ - # Fixture - Random.seed!(0); - tolerance = 1e-10; - iteration = 1; - Random.seed!(0); N = 10; M = 5; - R = rand(Float64, (N,N)) - Q = eigvecs(R + R'); - ρX = rand() - ρY = rand() - LX= rand(Float64,N); LX = ρX*sort(LX / maximum(LX)) - LY= rand(Float64,N); LY = ρY*sort(LY / maximum(LY)) - Xinf = Q*Diagonal(LX)*Q'; - Yinf = Q*Diagonal(LY)*Q'; - gamma = 1; - - # Test that the fesibility is true if ρ(Xinf*Yinf) < γ^2, that is the - # check should be true for any - # - # γ = sqrt(ρX*ρY) + ϵ - # - # with any epsilon greater than or equal to zero. - @test !ControlSystems._checkFeasibility(Xinf, Yinf, sqrt(ρX*ρY)-tolerance, tolerance, iteration; verbose=false) - @test !ControlSystems._checkFeasibility(Xinf, Yinf, sqrt(ρX*ρY), tolerance, iteration; verbose=false) - @test ControlSystems._checkFeasibility(Xinf, Yinf, sqrt(ρX*ρY)+tolerance, tolerance, iteration; verbose=false) - - # Test that errors are thrown if the matrix Xinf and Yinf are not PSD down - # to the numerical tolerance. - L = LX; - L[1] += -L[1] + 2*tolerance; Xpos = Q*Diagonal(L)*Q'; # slightly positive eigenvalue - L[1] += -L[1]; Xzero = Q*Diagonal(LX)*Q'; # exactly one zero eigenvalue - L[1] += -L[1] - 2*tolerance; Xneg = Q*Diagonal(L)*Q'; # slightly negative eigenvalue - @test ControlSystems._checkFeasibility(Xpos, Yinf, sqrt(ρX*ρY)+tolerance, tolerance, iteration; verbose=false) - @test ControlSystems._checkFeasibility(Xzero, Yinf, sqrt(ρX*ρY)+tolerance, tolerance, iteration; verbose=false) - @test !ControlSystems._checkFeasibility(Xneg, Yinf, sqrt(ρX*ρY)+tolerance, tolerance, iteration; verbose=false) - - L = LY; - L[1] += -L[1] + 2*tolerance; Ypos = Q*Diagonal(L)*Q'; # slightly positive eigenvalue - L[1] += -L[1]; Yzero = Q*Diagonal(L)*Q'; # exactly one zero eigenvalue - L[1] += -L[1] - 2*tolerance; Yneg = Q*Diagonal(L)*Q'; # slightly negative eigenvalue - @test ControlSystems._checkFeasibility(Xinf, Ypos, sqrt(ρX*ρY)+tolerance, tolerance, iteration; verbose=false) - @test ControlSystems._checkFeasibility(Xinf, Yzero, sqrt(ρX*ρY)+tolerance, tolerance, iteration; verbose=false) - @test !ControlSystems._checkFeasibility(Xinf, Yneg, sqrt(ρX*ρY)+tolerance, tolerance, iteration; verbose=false) - end - # TODO: Include a check to verify that the bisection works as intended. - # TODO: Check to verify that the Hamiltonian Shur-solver is working - # TODO: Check to verify that the Hamiltonian Eigenvalue-solver is working - end + @testset "SS data" begin + # Fixture for the SS-type data + Random.seed!(0); + N = [1,5,10] + M = [1,5,10] + H = [0.1,0.01,0.001] + tolerance = 1e-7; - @testset "(7) Bilinear discretization" begin - """ - This tests the bilinear method of discretizing a continuous time StateSpace - or ExtendedStateSpace object, moving from the Laplace-domain to the Z-domain. - However, importantly, the method also enables approximating discrete-time - systems with continuous-time state-space domain, moving from the Z-domain back - to the laplace-domain. Since the L∞-norm is invariant over the bilinear - discretization and "continuization", this effectively allows us to approximate - discrete-time systems with a continuous-time equivalent, design an H∞-optimal - controller for the continuous-time plant, and then re-discretizing this - controller. - - The structure of these tests is to simply discretize a set of plants with - various dimensions, transport them back into continuous-time domain, and then - to discrete-time again. By then comparing the resulting two pairs of discrete- - time and continuous-time systems in the frequency domain, we can test if the - bilinear discretization operates as expected. - """ - - @testset "SS data" begin - # Fixture for the SS-type data - Random.seed!(0); - N = [1,5,10] - M = [1,5,10] - H = [0.1,0.01,0.001] - tolerance = 1e-7; - - # Tests for the SS-type data - for (ii, m) in enumerate(N) - for (jj, n) in enumerate(M) - for (kk, h) in enumerate(H) - - freq = [10^i for i in range(-6, stop=log10(pi/h), length=101)] - - AcTrue, BcTrue, CcTrue, DcTrue = rand(m,m), rand(m,n), rand(n,m), rand(n,n) - - ev = eigvals(AcTrue) - if !isempty(ev[real(ev).<0]) - AcTrue = AcTrue - one(AcTrue) * 2 * maximum(abs.(real(ev[real(ev).<0]))) - end + # Tests for the SS-type data + for (ii, m) in enumerate(N) + for (jj, n) in enumerate(M) + for (kk, h) in enumerate(H) + + freq = [10^i for i in range(-6, stop=log10(pi/h), length=101)] + + AcTrue, BcTrue, CcTrue, DcTrue = rand(m,m), rand(m,n), rand(n,m), rand(n,n) - Gtrue = ss(AcTrue, BcTrue, CcTrue, DcTrue) - valA, fA = sigma(Gtrue, freq); - sysB = hInf_bilinear_s2z(Gtrue, h); - valB, fB = sigma(sysB, freq) - sysC = hInf_bilinear_z2s(hInf_bilinear_s2z(Gtrue, h)) - valC, fC = sigma(sysC, freq) - sysD = hInf_bilinear_s2z(hInf_bilinear_z2s(hInf_bilinear_s2z(Gtrue, h)),h) - valD, fD = sigma(sysD, freq) - - @test abs(maximum(svd(sysB.B).S)-maximum(svd(sysB.C).S)) < tolerance - @test abs(maximum(svd(sysC.B).S)-maximum(svd(sysC.C).S)) < tolerance - @test abs(maximum(svd(sysD.B).S)-maximum(svd(sysD.C).S)) < tolerance - - # Test that the C->D->C and D->C->D results in the same - @test norm(valA-valC, Inf) < tolerance - @test norm(valB-valD, Inf) < tolerance + ev = eigvals(AcTrue) + if !isempty(ev[real(ev).<0]) + AcTrue = AcTrue - one(AcTrue) * 2 * maximum(abs.(real(ev[real(ev).<0]))) + end + + Gtrue = ss(AcTrue, BcTrue, CcTrue, DcTrue) + valA, fA = sigma(Gtrue, freq); + sysB = hInf_bilinear_s2z(Gtrue, h); + valB, fB = sigma(sysB, freq) + sysC = hInf_bilinear_z2s(hInf_bilinear_s2z(Gtrue, h)) + valC, fC = sigma(sysC, freq) + sysD = hInf_bilinear_s2z(hInf_bilinear_z2s(hInf_bilinear_s2z(Gtrue, h)),h) + valD, fD = sigma(sysD, freq) + + @test abs(maximum(svd(sysB.B).S)-maximum(svd(sysB.C).S)) < tolerance + @test abs(maximum(svd(sysC.B).S)-maximum(svd(sysC.C).S)) < tolerance + @test abs(maximum(svd(sysD.B).S)-maximum(svd(sysD.C).S)) < tolerance + + # Test that the C->D->C and D->C->D results in the same + @test norm(valA-valC, Inf) < tolerance + @test norm(valB-valD, Inf) < tolerance + end end end end - end - @testset "Extended SS data" begin - # Fixture for the extended SS-type data - Random.seed!(0); - N = [1,4] - P1 = [1,4] - P2 = [1,4] - M1 = [1,4] - M2 = [1,4] - H = [0.1,0.01,0.001] - tolerance = 1e-5; - - for (in1, n) in enumerate(N) - for (im1, m1) in enumerate(M1) - for (im2, m2) in enumerate(M2) - for (ip1, p1) in enumerate(P1) - for (ip2, p2) in enumerate(P2) - for (ih, h) in enumerate(H) - - freq = [10^i for i in range(-4, stop=log10(pi/h), length=101)] - - A, B1, B2 = 0.01*rand(n,n), rand(n,m1), rand(n,m2) - C1, D11, D12 = rand(p1,n), rand(p1,m1), rand(p1,m2) - C2, D21, D22 = rand(p2,n), rand(p2,m1), rand(p2,m2) - - ev = eigvals(A) - if !isempty(ev[real(ev).>0]) - A = A - one(A) * 2 * maximum(abs.(real(ev[real(ev).>0]))) + @testset "Extended SS data" begin + # Fixture for the extended SS-type data + Random.seed!(0); + N = [1,4] + P1 = [1,4] + P2 = [1,4] + M1 = [1,4] + M2 = [1,4] + H = [0.1,0.01,0.001] + tolerance = 1e-5; + + for (in1, n) in enumerate(N) + for (im1, m1) in enumerate(M1) + for (im2, m2) in enumerate(M2) + for (ip1, p1) in enumerate(P1) + for (ip2, p2) in enumerate(P2) + for (ih, h) in enumerate(H) + + freq = [10^i for i in range(-4, stop=log10(pi/h), length=101)] + + A, B1, B2 = 0.01*rand(n,n), rand(n,m1), rand(n,m2) + C1, D11, D12 = rand(p1,n), rand(p1,m1), rand(p1,m2) + C2, D21, D22 = rand(p2,n), rand(p2,m1), rand(p2,m2) + + ev = eigvals(A) + if !isempty(ev[real(ev).>0]) + A = A - one(A) * 2 * maximum(abs.(real(ev[real(ev).>0]))) + end + + EsysA = ss(A, B1, B2, C1, C2, D11, D12, D21, D22) + valA, fA = sigma(ss( + EsysA.A, + [EsysA.B1 EsysA.B2], + [EsysA.C1; EsysA.C2], + [EsysA.D11 EsysA.D12; EsysA.D21 EsysA.D22]) , freq) + + # To discrete time + EsysB = hInf_bilinear_s2z(EsysA, h) + valB, fB = sigma(ss( + EsysB.A, + [EsysB.B1 EsysB.B2], + [EsysB.C1; EsysB.C2], + [EsysB.D11 EsysB.D12; EsysB.D21 EsysB.D22],h) , freq) + + # To continuous time + EsysC = hInf_bilinear_z2s(hInf_bilinear_s2z(EsysA, h)) + valC, fC = sigma(ss( + EsysC.A, + [EsysC.B1 EsysC.B2], + [EsysC.C1; EsysC.C2], + [EsysC.D11 EsysC.D12; EsysC.D21 EsysC.D22]) , freq) + + # To discrete time + EsysD = hInf_bilinear_s2z(hInf_bilinear_z2s(hInf_bilinear_s2z(EsysA, h)),h) + valD, fD = sigma(ss( + EsysD.A, + [EsysD.B1 EsysD.B2], + [EsysD.C1; EsysD.C2], + [EsysD.D11 EsysD.D12; EsysD.D21 EsysD.D22],h) , freq) + + # Test that the C->D->C and D->C->D results in the same + @test norm(valA-valC, Inf) < tolerance + @test norm(valB-valD, Inf) < tolerance end - - EsysA = ss(A, B1, B2, C1, C2, D11, D12, D21, D22) - valA, fA = sigma(ss( - EsysA.A, - [EsysA.B1 EsysA.B2], - [EsysA.C1; EsysA.C2], - [EsysA.D11 EsysA.D12; EsysA.D21 EsysA.D22]) , freq) - - # To discrete time - EsysB = hInf_bilinear_s2z(EsysA, h) - valB, fB = sigma(ss( - EsysB.A, - [EsysB.B1 EsysB.B2], - [EsysB.C1; EsysB.C2], - [EsysB.D11 EsysB.D12; EsysB.D21 EsysB.D22],h) , freq) - - # To continuous time - EsysC = hInf_bilinear_z2s(hInf_bilinear_s2z(EsysA, h)) - valC, fC = sigma(ss( - EsysC.A, - [EsysC.B1 EsysC.B2], - [EsysC.C1; EsysC.C2], - [EsysC.D11 EsysC.D12; EsysC.D21 EsysC.D22]) , freq) - - # To discrete time - EsysD = hInf_bilinear_s2z(hInf_bilinear_z2s(hInf_bilinear_s2z(EsysA, h)),h) - valD, fD = sigma(ss( - EsysD.A, - [EsysD.B1 EsysD.B2], - [EsysD.C1; EsysD.C2], - [EsysD.D11 EsysD.D12; EsysD.D21 EsysD.D22],h) , freq) - - # Test that the C->D->C and D->C->D results in the same - @test norm(valA-valC, Inf) < tolerance - @test norm(valB-valD, Inf) < tolerance end end end @@ -520,109 +571,111 @@ using Random end end - @testset "(9) Synthesis Examples" begin + if execute_tests[9] + @testset "(9) Synthesis Examples" begin - @testset "DC motor example" begin - # Fixture - tolerance = 1e-4 + @testset "DC motor example" begin + # Fixture + tolerance = 1e-4 - # Make sure that the code runs - @test isa(include("../example/hinf_example_DC.jl"), Nothing) - Ω = [10^i for i in range(-3, stop=3, length=201)] + # Make sure that the code runs + @test isa(include("../example/hinf_example_DC.jl"), Nothing) + Ω = [10^i for i in range(-3, stop=3, length=201)] - # Check that the optimal gain is correct - @test abs(gamma - 4.463211059) < tolerance + # Check that the optimal gain is correct + @test abs(gamma - 4.463211059) < tolerance - # Check that the closed loop satisfies ||F_l(P(jω), C(jω)||_∞ < γ, ∀ω ∈ Ω - valPcl = sigma(Pcl, Ω)[1]; - @test all(valPcl .< (gamma+tolerance)) + # Check that the closed loop satisfies ||F_l(P(jω), C(jω)||_∞ < γ, ∀ω ∈ Ω + valPcl = sigma(Pcl, Ω)[1]; + @test all(valPcl .< (gamma+tolerance)) - # Check that ||S(jω)/WS(jω)||_∞ < γ, ∀ω ∈ Ω - if isa(WS, LTISystem) || isa(WS, Number) - valSWS = sigma(S * WS , Ω)[1]; - @test all(valSWS .< (gamma+tolerance)) - end + # Check that ||S(jω)/WS(jω)||_∞ < γ, ∀ω ∈ Ω + if isa(WS, LTISystem) || isa(WS, Number) + valSWS = sigma(S * WS , Ω)[1]; + @test all(valSWS .< (gamma+tolerance)) + end - # Check that ||C(jω)S(jω)/W_U(jω)||_∞ < γ, ∀ω ∈ Ω - if isa(WU, LTISystem) || isa(WU, Number) - valKSWU = sigma(CS * WU , Ω)[1]; - @test all(valKSWU .< (gamma+tolerance)) - end + # Check that ||C(jω)S(jω)/W_U(jω)||_∞ < γ, ∀ω ∈ Ω + if isa(WU, LTISystem) || isa(WU, Number) + valKSWU = sigma(CS * WU , Ω)[1]; + @test all(valKSWU .< (gamma+tolerance)) + end - # Check that ||T(jω)/W_T(jω)||_∞ < γ, ∀ω ∈ Ω - if isa(WT, LTISystem) || isa(WT, Number) - valTWT = sigma(T * WT , Ω)[1]; - @test all(valTWT .< (gamma+tolerance)) + # Check that ||T(jω)/W_T(jω)||_∞ < γ, ∀ω ∈ Ω + if isa(WT, LTISystem) || isa(WT, Number) + valTWT = sigma(T * WT , Ω)[1]; + @test all(valTWT .< (gamma+tolerance)) + end end - end - @testset "MIT open courseware example" begin + @testset "MIT open courseware example" begin - # Fixture - tolerance = 1e-4 + # Fixture + tolerance = 1e-4 - # Make sure that the code runs - @test isa(include("../example/hinf_example_MIT.jl"), Nothing) - Ω = [10^i for i in range(-7, stop=7, length=201)] + # Make sure that the code runs + @test isa(include("../example/hinf_example_MIT.jl"), Nothing) + Ω = [10^i for i in range(-7, stop=7, length=201)] - # Check that the optimal gain is correct - @test abs(gamma - 0.923430124918) < tolerance + # Check that the optimal gain is correct + @test abs(gamma - 0.923430124918) < tolerance - # Check that the closed loop satisfies ||F_l(P(jω), C(jω)||_∞ < γ, ∀ω ∈ Ω - valPcl = sigma(Pcl, Ω)[1]; - @test all(valPcl .< (gamma+tolerance)) + # Check that the closed loop satisfies ||F_l(P(jω), C(jω)||_∞ < γ, ∀ω ∈ Ω + valPcl = sigma(Pcl, Ω)[1]; + @test all(valPcl .< (gamma+tolerance)) - # Check that ||S(jω)/WS(jω)||_∞ < γ, ∀ω ∈ Ω - if isa(WS, LTISystem) || isa(WS, Number) - valSWS = sigma(S * WS , Ω)[1]; - @test all(valSWS .< (gamma+tolerance)) - end + # Check that ||S(jω)/WS(jω)||_∞ < γ, ∀ω ∈ Ω + if isa(WS, LTISystem) || isa(WS, Number) + valSWS = sigma(S * WS , Ω)[1]; + @test all(valSWS .< (gamma+tolerance)) + end - # Check that ||C(jω)S(jω)/W_U(jω)||_∞ < γ, ∀ω ∈ Ω - if isa(WU, LTISystem) || isa(WU, Number) - valKSWU = sigma(CS * WU , Ω)[1]; - @test all(valKSWU .< (gamma+tolerance)) - end + # Check that ||C(jω)S(jω)/W_U(jω)||_∞ < γ, ∀ω ∈ Ω + if isa(WU, LTISystem) || isa(WU, Number) + valKSWU = sigma(CS * WU , Ω)[1]; + @test all(valKSWU .< (gamma+tolerance)) + end - # Check that ||T(jω)/W_T(jω)||_∞ < γ, ∀ω ∈ Ω - if isa(WT, LTISystem) || isa(WT, Number) - valTWT = sigma(T * WT , Ω)[1]; - @test all(valTWT .< (gamma+tolerance)) + # Check that ||T(jω)/W_T(jω)||_∞ < γ, ∀ω ∈ Ω + if isa(WT, LTISystem) || isa(WT, Number) + valTWT = sigma(T * WT , Ω)[1]; + @test all(valTWT .< (gamma+tolerance)) + end end - end - @testset "Quad tank example" begin + @testset "Quad tank example" begin - # Fixture - tolerance = 1e-2 + # Fixture + tolerance = 1e-2 - # Make sure that the code runs - @test isa(include("../example/hinf_example_tank.jl"), Nothing) - Ω = [10^i for i in range(-7, stop=7, length=201)] + # Make sure that the code runs + @test isa(include("../example/hinf_example_tank.jl"), Nothing) + Ω = [10^i for i in range(-7, stop=7, length=201)] - # Check that the optimal gain is correct - @test abs(gamma - 0.9534467) < tolerance + # Check that the optimal gain is correct + @test abs(gamma - 0.9534467) < tolerance - # Check that the closed loop satisfies ||F_l(P(jω), C(jω)||_∞ < γ, ∀ω ∈ Ω - valPcl = sigma(Pcl, Ω)[1]; - @test all(valPcl[:,1] .< (gamma+tolerance)) + # Check that the closed loop satisfies ||F_l(P(jω), C(jω)||_∞ < γ, ∀ω ∈ Ω + valPcl = sigma(Pcl, Ω)[1]; + @test all(valPcl[:,1] .< (gamma+tolerance)) - # Check that ||S(jω)/WS(jω)||_∞ < γ, ∀ω ∈ Ω - if isa(WS, LTISystem) || isa(WS, Number) - valSWS = sigma(S * WS , Ω)[1]; - @test all(valSWS[:,1] .< (gamma+tolerance)) - end + # Check that ||S(jω)/WS(jω)||_∞ < γ, ∀ω ∈ Ω + if isa(WS, LTISystem) || isa(WS, Number) + valSWS = sigma(S * WS , Ω)[1]; + @test all(valSWS[:,1] .< (gamma+tolerance)) + end - # Check that ||C(jω)S(jω)/W_U(jω)||_∞ < γ, ∀ω ∈ Ω - if isa(WU, LTISystem) || isa(WU, Number) - valKSWU = sigma(CS * WU , Ω)[1]; - @test all(valKSWU[:,1] .< (gamma+tolerance)) - end + # Check that ||C(jω)S(jω)/W_U(jω)||_∞ < γ, ∀ω ∈ Ω + if isa(WU, LTISystem) || isa(WU, Number) + valKSWU = sigma(CS * WU , Ω)[1]; + @test all(valKSWU[:,1] .< (gamma+tolerance)) + end - # Check that ||T(jω)/W_T(jω)||_∞ < γ, ∀ω ∈ Ω - if isa(WT, LTISystem) || isa(WT, Number) - valTWT = sigma(T * WT , Ω)[1]; - @test all(valTWT[:,1] .< (gamma+tolerance)) + # Check that ||T(jω)/W_T(jω)||_∞ < γ, ∀ω ∈ Ω + if isa(WT, LTISystem) || isa(WT, Number) + valTWT = sigma(T * WT , Ω)[1]; + @test all(valTWT[:,1] .< (gamma+tolerance)) + end end end end From d16169e483fa2a0320f0fe9a63988c19c3ceece1 Mon Sep 17 00:00:00 2001 From: Marcus Greiff Date: Sat, 2 Mar 2019 01:26:05 +0100 Subject: [PATCH 46/66] Add SVD scaling as an option, although, I need to figure out why results between QR and SVD differ so - likely in the rescaling od the controller --- src/hinfinity_design.jl | 105 ++++++++++++++++++++++++++++------------ 1 file changed, 73 insertions(+), 32 deletions(-) diff --git a/src/hinfinity_design.jl b/src/hinfinity_design.jl index f0e54f7b1..1f0ee0af2 100644 --- a/src/hinfinity_design.jl +++ b/src/hinfinity_design.jl @@ -472,43 +472,84 @@ function _transformP2Pbar(A, B1, B2, C1, C2, D11, D12, D21, D22) end """ -`[Tl, Tr]_scaleMatrix(A)` +`[Tl, Tr] = _scaleMatrix(A::AbstractMatrix; method::String)` Find a left and right transform of A such that Tl*A*Tr = [I, 0], or Tl*A*Tr = [I; 0], depending on the dimensionality of A. """ -function _scaleMatrix(A) - # Check that a scaling is feasible - if isempty(A) - error("Cannot scale the system, A is empty") - return [], [] - else - if (minimum(size(A)) > 1) - print(A) - print(size(A)) - if rank(A) != minimum(size(A)) - error("Cannot scale the system, assumption A2 is violated") - return [], [] - end - end - m, n = size(A) - if m == n - # Square matrix with full rank - Q, R = qr(A) - LeftTransform = Q' - RightTransform = inv(R) - elseif m > n - Q, R = qr(A) - # Rectangular matrix with rank = n - LeftTransform = [Q[:,(n+1):(m)]'; Q[:,1:n]'] - RightTransform = inv(R[1:n,1:n]) - elseif m < n - Q, R = qr(A') - LeftTransform = inv(R[1:m,1:m])' - RightTransform = [Q[:,(m+1):(n)] Q[:,1:m]] - end - return LeftTransform, RightTransform +function _scaleMatrix(A::AbstractMatrix; method="QR"::String) + # Check that a scaling can be done + if isempty(A) + error(ErrorException("Cannot scale the system, A is empty")) + end + # Check the rank condition + if (minimum(size(A)) > 1) + if rank(A) != minimum(size(A)) + error(ErrorException("Cannot scale the system, assumption A2 is violated")) end + end + # Perform scaling with the cosen method + if method == "QR" + return _computeCoordinateTransformQR(A) + elseif method == "SVD" + return _computeCoordinateTransformSVD(A) + else + error(ErrorException(string("The method", method," is not supported, use 'QR' or 'SVD' instad."))) + end +end + +""" +`[Tl, Tr] = _computeCoordinateTransformQR(A::AbstractMatrix)` + +Use the QR decomposition to find a transformaiton [Tl, Tr] such that +Tl*A*Tr becomes [0;I], [0 I] or I depending on the dimensionality of A. +""" +function _computeCoordinateTransformQR(A::AbstractMatrix) + m, n = size(A) + if m == n + # Square matrix with full rank + Q, R = qr(A) + LeftTransform = Q' + RightTransform = inv(R) + elseif m > n + # Rectangular matrix with rank = n + Q, R = qr(A) + LeftTransform = [Q[:,(n+1):(m)]'; Q[:,1:n]'] + RightTransform = inv(R[1:n,1:n]) + elseif m < n + # Rectangular matrix with rank = m + Q, R = qr(A') + LeftTransform = inv(R[1:m,1:m])' + RightTransform = [Q[:,m+1:n] Q[:,1:m]] + end + return LeftTransform, RightTransform +end + +""" +`[Tl, Tr] = _computeCoordinateTransformSVD(A::AbstractMatrix)` + +Use the SVD to find a transformaiton [Tl, Tr] such that +Tl*A*Tr becomes [0;I], [0 I] or I depending on the dimensionality of A. +""" +function _computeCoordinateTransformSVD(A::AbstractMatrix) + m, n = size(A) + if m == n + # Square matrix with full rank + U, S, V = svd(A) + LeftTransform = inv(Diagonal(S))*U' + RightTransform = V + elseif m > n + # Rectangular matrix with rank = n + U, S, V = svd(A; full=true) + LeftTransform = [U[:,n+1:m]';inv(Diagonal(S))*U[:,1:n]'] + RightTransform = V + elseif m < n + # Rectangular matrix with rank = m + U, S, V = svd(A; full=true) + LeftTransform = inv(Diagonal(S))*U' + RightTransform = [V[:,m+1:n] V[:,1:m]] + end + return LeftTransform, RightTransform end """`[P] = hInf_partition(G, WS, WU, WT)` From 9ef1a6e4499f25e4bb7e68ffe39ab5ea8c31886f Mon Sep 17 00:00:00 2001 From: Marcus Greiff Date: Sat, 2 Mar 2019 01:27:10 +0100 Subject: [PATCH 47/66] Add tests for the SVD scaling --- test/test_hinf_design.jl | 32 ++++++++++++++++++++++++++++++-- 1 file changed, 30 insertions(+), 2 deletions(-) diff --git a/test/test_hinf_design.jl b/test/test_hinf_design.jl index e71233558..e2e3ce50a 100644 --- a/test/test_hinf_design.jl +++ b/test/test_hinf_design.jl @@ -3,7 +3,7 @@ using Test using LinearAlgebra using Random -execute_tests = [false,false,true,false,false,false,false,false,false] +execute_tests = [false,false,true,false,false,false,false,false,true] @testset "H-infinity design" begin """ @@ -361,13 +361,41 @@ execute_tests = [false,false,true,false,false,false,false,false,false] Z_mat = zeros(Float64, (min(M,N), max(M,N)-min(M,N))) A_bar_true = [Z_mat I_mat] end - LeftTransform, RightTransform = ControlSystems._scaleMatrix(A) + LeftTransform, RightTransform = ControlSystems._scaleMatrix(A; method="QR") @test opnorm(LeftTransform*A*RightTransform - A_bar_true) < tolerance end end end + @testset "Find coordinate transformation with QR decomposition" begin + """ + Test computation of the transformation in square and rectangular cases. + """ + # Fixture + tolerance = 1e-10 + + for N = 1:5 + for M = 1:5 + A = rand(Float64, (M, N)) + I_mat = Matrix{Float64}(I, min(M,N), min(M,N)) + if M==N + # Square case + A_bar_true = I_mat + elseif M>N + # Rectangular case (more rows than columns) + Z_mat = zeros(Float64, (max(M,N)-min(M,N),min(M,N))) + A_bar_true = [Z_mat; I_mat] + else + # Rectangular case (more columns than rows) + Z_mat = zeros(Float64, (min(M,N), max(M,N)-min(M,N))) + A_bar_true = [Z_mat I_mat] + end + LeftTransform, RightTransform = ControlSystems._scaleMatrix(A; method="SVD") + @test opnorm(LeftTransform*A*RightTransform - A_bar_true) < tolerance + end + end + end end end From 88148e93e9e85eb7ad0bcd42c94c69b8d258f502 Mon Sep 17 00:00:00 2001 From: Marcus Greiff Date: Sat, 2 Mar 2019 01:54:58 +0100 Subject: [PATCH 48/66] Remove dead code and include error exception when attempting to secompose matrices with size zero --- src/hinfinity_design.jl | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/src/hinfinity_design.jl b/src/hinfinity_design.jl index 1f0ee0af2..60f4cda2d 100644 --- a/src/hinfinity_design.jl +++ b/src/hinfinity_design.jl @@ -478,16 +478,15 @@ Find a left and right transform of A such that Tl*A*Tr = [I, 0], or Tl*A*Tr = [I; 0], depending on the dimensionality of A. """ function _scaleMatrix(A::AbstractMatrix; method="QR"::String) - # Check that a scaling can be done - if isempty(A) - error(ErrorException("Cannot scale the system, A is empty")) - end # Check the rank condition - if (minimum(size(A)) > 1) + if (minimum(size(A)) > 0) if rank(A) != minimum(size(A)) error(ErrorException("Cannot scale the system, assumption A2 is violated")) end + else + error(ErrorException("Cannot scale the system, minimum size of A must begreater than 0")) end + # Perform scaling with the cosen method if method == "QR" return _computeCoordinateTransformQR(A) From 2a0faf0c44c0e909a611cc90fc96b3c9cc629040 Mon Sep 17 00:00:00 2001 From: Marcus Greiff Date: Sat, 2 Mar 2019 01:55:37 +0100 Subject: [PATCH 49/66] Add input error checks for the scaling function --- test/test_hinf_design.jl | 56 +++++++++++++++++++++++++++++++++++----- 1 file changed, 50 insertions(+), 6 deletions(-) diff --git a/test/test_hinf_design.jl b/test/test_hinf_design.jl index e2e3ce50a..d712a3943 100644 --- a/test/test_hinf_design.jl +++ b/test/test_hinf_design.jl @@ -337,7 +337,7 @@ execute_tests = [false,false,true,false,false,false,false,false,true] D12_bar = [0,I] and D21_bar = [0;I]. """ - @testset "Find coordinate transformation with QR decomposition" begin + @testset "Find transformation for full rank matrix with QR" begin """ Test computation of the transformation in square and rectangular cases. """ @@ -361,13 +361,13 @@ execute_tests = [false,false,true,false,false,false,false,false,true] Z_mat = zeros(Float64, (min(M,N), max(M,N)-min(M,N))) A_bar_true = [Z_mat I_mat] end - LeftTransform, RightTransform = ControlSystems._scaleMatrix(A; method="QR") - @test opnorm(LeftTransform*A*RightTransform - A_bar_true) < tolerance + Tl,Tr = ControlSystems._computeCoordinateTransformQR(A) + @test opnorm(Tl*A*Tr - A_bar_true) < tolerance end end end - @testset "Find coordinate transformation with QR decomposition" begin + @testset "Find transformation for full rank matrix with SVD" begin """ Test computation of the transformation in square and rectangular cases. """ @@ -391,11 +391,55 @@ execute_tests = [false,false,true,false,false,false,false,false,true] Z_mat = zeros(Float64, (min(M,N), max(M,N)-min(M,N))) A_bar_true = [Z_mat I_mat] end - LeftTransform, RightTransform = ControlSystems._scaleMatrix(A; method="SVD") - @test opnorm(LeftTransform*A*RightTransform - A_bar_true) < tolerance + Tl,Tr = ControlSystems._computeCoordinateTransformSVD(A) + @test opnorm(Tl*A*Tr - A_bar_true) < tolerance end end end + + @testset "Find transformation for arbitrary matrix inputs" begin + """ + Test computation of the transformation in square and rectangular cases. + """ + # Fixture + test_matrices_full = [ + rand(Float64,(1,1)), + rand(Float64,(5,5)), + rand(Float64,(2,5)), + rand(Float64,(5,2)) + ] + + # Compute rank deficient matrices + test_matrices_rank_deficient = test_matrices_full + for ii = 1:length(test_matrices_full) + U,S,V = svd(test_matrices_full[ii]) + S[1]=0 + test_matrices_rank_deficient[ii] = U*Diagonal(S)*V' + end + + # Make sure that an exception is raised if assumption A2 is violated, + # any of the matrices which are to be decomposed are rank deficient + for A = test_matrices_rank_deficient + println(A) + @test_throws ErrorException ControlSystems._scaleMatrix(A) + end + + # Various bad inputs + @test_throws MethodError ControlSystems._scaleMatrix(tf(1)) + @test_throws MethodError ControlSystems._scaleMatrix(ss(1)) + @test_throws MethodError ControlSystems._scaleMatrix([]) + @test_throws MethodError ControlSystems._scaleMatrix(nothing) + @test_throws MethodError ControlSystems._scaleMatrix(1) + + # Check that errors are thrown if the matric has zise zero + @test_throws ErrorException ControlSystems._scaleMatrix(zeros(Float64,(0,1))) + + # Various bad methods + A = test_matrices_full[1]; + @test_throws ErrorException ControlSystems._scaleMatrix(A; method="bad method") + @test_throws ErrorException ControlSystems._scaleMatrix(A; method=1) + end + end end From 0ab6a673906312a3676b18395116c29c6b1eefc4 Mon Sep 17 00:00:00 2001 From: Marcus Greiff Date: Sat, 2 Mar 2019 22:47:33 +0100 Subject: [PATCH 50/66] Fix input types to all functions, edit docstrings --- src/hinfinity_design.jl | 177 +++++++++++++++++++--------------------- 1 file changed, 86 insertions(+), 91 deletions(-) diff --git a/src/hinfinity_design.jl b/src/hinfinity_design.jl index 60f4cda2d..16f8d210e 100644 --- a/src/hinfinity_design.jl +++ b/src/hinfinity_design.jl @@ -1,8 +1,4 @@ -using Printf -using Plots - -""" -`[flag] = function hInf_assumptions(P::ExtendedStateSpace; verbose=true)` +"""`[flag] = function hInf_assumptions(P::ExtendedStateSpace; verbose=true)` Check the assumptions for using the γ-iteration synthesis in Theorem 1. In future revisions, we could suggest possible changes to P should the system not @@ -86,8 +82,7 @@ function hInf_assumptions(P::ExtendedStateSpace; verbose=true) return true end -""" -`[Mpinv] = function _compute_pseudoinverse(M::AbstractMatrix)` +"""`[Mpinv] = function _compute_pseudoinverse(M::AbstractMatrix)` Compute the g-inverses for a non-rectangular matrix M, satisfying min(size(M))==rank(M). Used for checking assumptions A5 and A6. @@ -114,8 +109,7 @@ function _compute_pseudoinverse(M::AbstractMatrix) end end -""" -`[flag] = _is_stabilizable(A::AbstractMatrix, B::AbstractMatrix)` +"""`[flag] = _is_stabilizable(A::AbstractMatrix, B::AbstractMatrix)` Applies the Hautus lemma to check if the pair is stabilizable """ @@ -131,8 +125,7 @@ function _is_stabilizable(A::AbstractMatrix, B::AbstractMatrix) return true end -""" -`[flag] = _is_stabilizable(A::AbstractMatrix, C::AbstractMatrix)` +"""`[flag] = _is_stabilizable(A::AbstractMatrix, C::AbstractMatrix)` Applies the Hautus lemma to check if the pair is detectable """ @@ -148,8 +141,7 @@ function _is_detectable(A::AbstractMatrix, C::AbstractMatrix) return true end -""" -`[flag, K, gamma] = hInf_synthesize(P::ExtendedStateSpace; maxIter=20, interval=(2/3,20), verbose=true)` +"""`[flag, K, gamma] = hInf_synthesize(P::ExtendedStateSpace; maxIter=20, interval=(2/3,20), verbose=true)` Computes an H-infinity optimal controller K for an extended plant P such that ||F_l(P, K)||∞ < γ for the largest possible gamma given P. The routine is @@ -168,21 +160,18 @@ risk sensitivity" by Glover and Doyle. See the Bib-entry below: year={1988}, publisher={Citeseer} } - """ function hInf_synthesize(P::ExtendedStateSpace; maxIter=20, interval=(2/3,20), verbose=true, tolerance=1e-10) - A, B1, B2, C1, C2, D11, D12, D21, D22 = ssdata(P) - # Transform the system into a suitable form - Abar, B1bar, B2bar, C1bar, C2bar, D11bar, D12bar, D21bar, D22bar, Ltrans12, Rtrans12, Ltrans21, Rtrans21 = _transformP2Pbar(A, B1, B2, C1, C2, D11, D12, D21, D22) + Pbar, Ltrans12, Rtrans12, Ltrans21, Rtrans21 = _transformP2Pbar(P) # Run the gamma iterations - XinfFeasible, YinfFeasible, FinfFeasible, HinfFeasible, gammFeasible = _gammaIterations(Abar, B1bar, B2bar, C1bar, C2bar, D11bar, D12bar, D21bar, D22bar, maxIter, interval, verbose, tolerance) + XinfFeasible, YinfFeasible, FinfFeasible, HinfFeasible, gammFeasible = _gammaIterations(Pbar, maxIter, interval, verbose, tolerance) if !isempty(gammFeasible) # Synthesize the controller and trnasform it back into the original coordinates - Ac, Bc, Cc, Dc = _synthesizeController(Abar, B1bar, B2bar, C1bar, C2bar, D11bar, D12bar, D21bar, D22bar, XinfFeasible, YinfFeasible, FinfFeasible, HinfFeasible, gammFeasible, Ltrans12, Rtrans12, Ltrans21, Rtrans21) + Ac, Bc, Cc, Dc = _synthesizeController(Pbar, XinfFeasible, YinfFeasible, FinfFeasible, HinfFeasible, gammFeasible, Ltrans12, Rtrans12, Ltrans21, Rtrans21) # Return the controller, the optimal gain γ, and a true flag C = ss(Ac, Bc, Cc, Dc) @@ -197,7 +186,7 @@ function hInf_synthesize(P::ExtendedStateSpace; maxIter=20, interval=(2/3,20), v return flag, C, gammFeasible end -"""`[Ac, Bc Cc, Dc] = hInfSynthesizeController(A, B1, B2, C1, C2, D11, D12, D21, D22, Xinf, Yinf, F, H, gamma, Ltrans12, Rtrans12, Ltrans21, Rtrans21)` +"""`[Ac, Bc Cc, Dc] = hInfSynthesizeController(P::ExtendedStateSpace, Xinf, Yinf, F, H, gamma, Ltrans12, Rtrans12, Ltrans21, Rtrans21)` Syntheize a controller by operating on the scaled state-space description of the system (i.e., the state-space realization of Pbar) using the solutions from the @@ -205,7 +194,17 @@ system (i.e., the state-space realization of Pbar) using the solutions from the transformed back to the original coordinates by the linear transformations Ltrans12, Rtrans12, Ltrans21 and Rtrans21. """ -function _synthesizeController(A, B1, B2, C1, C2, D11, D12, D21, D22, Xinf, Yinf, F, H, gamma, Ltrans12, Rtrans12, Ltrans21, Rtrans21) +function _synthesizeController(P::ExtendedStateSpace, Xinf::AbstractMatrix, Yinf::AbstractMatrix, F::AbstractMatrix, H::AbstractMatrix, gamma::Number, Ltrans12::AbstractMatrix, Rtrans12::AbstractMatrix, Ltrans21::AbstractMatrix, Rtrans21::AbstractMatrix) + + A = P.A + B1 = P.B1 + B2 = P.B2 + C1 = P.C1 + C2 = P.C2 + D11 = P.D11 + D12 = P.D12 + D21 = P.D21 + D22 = P.D22 gSq = gamma * gamma @@ -305,41 +304,39 @@ end Check the feasibility of the computed solutions Xinf, Yinf and the algebraic Riccatti equations, return true if the solution is valid, and false otherwise. """ -function _checkFeasibility(Xinf, Yinf, gamma, tolerance, iteration; verbose=true) +function _checkFeasibility(Xinf::AbstractMatrix, Yinf::AbstractMatrix, gamma::Number, tolerance::Number, iteration::Number; verbose=true) - # TODO Add checks to capture singular Xinf and Yinf - minXev = minimum(real(eigvals(Xinf))) - minYev = minimum(real(eigvals(Yinf))) - specrad = maximum(abs.(eigvals(Xinf*Yinf))) / (gamma*gamma) + minXev = minimum(real(eigvals(Xinf))) + minYev = minimum(real(eigvals(Yinf))) + specrad = maximum(abs.(eigvals(Xinf*Yinf))) / (gamma*gamma) - if verbose - if iteration == 1 - @printf("iteration, gamma\n") - end - @printf("%i %f\n", iteration, gamma) + if verbose + if iteration == 1 + println("iteration, gamma") end + println(iteration, " ", gamma) + end - if minXev < -tolerance - # Failed test, eigenvalues of Xinf must be positive real - return false - end - if minYev < -tolerance - # Failed test, eigenvalues of Yinf must be positive real - return false - end - if specrad > 1 - # Failed test, spectral radius of XY must be greater than gamma squared - return false - end - return true + if minXev < -tolerance + # Failed test, eigenvalues of Xinf must be positive real + return false + end + if minYev < -tolerance + # Failed test, eigenvalues of Yinf must be positive real + return false + end + if specrad > 1 + # Failed test, spectral radius of XY must be greater than gamma squared + return false + end + return true end -""" -`[solution] = _solveHamiltonianARE(H)` +"""`[solution] = _solveHamiltonianARE(H)` Solves a hamiltonian Alebraic Riccati equation using the Schur-decomposition. """ -function _solveHamiltonianARE(H) +function _solveHamiltonianARE(H::Any) # TODO fix this computational routine if need be # TODO throw errors? @@ -357,12 +354,22 @@ function _solveHamiltonianARE(H) return solution, flag end -""" -`[solution] = _solveMatrixEquations(A, B1, B2, C1, C2, D11, D12, D21, D22, gamma)` +"""`[solution] = _solveMatrixEquations(P::ExtendedStateSpace, gamma::Number)` Solves the dual matrix equations in the γ-iterations (equations 7-12 in Doyle). """ -function _solveMatrixEquations(A, B1, B2, C1, C2, D11, D12, D21, D22, gamma) +function _solveMatrixEquations(P::ExtendedStateSpace, gamma::Number) + + A = P.A + B1 = P.B1 + B2 = P.B2 + C1 = P.C1 + C2 = P.C2 + D11 = P.D11 + D12 = P.D12 + D21 = P.D21 + D22 = P.D22 + P1 = size(C1,1); P2 = size(C2,1); M1 = size(B1,2); @@ -398,8 +405,7 @@ function _solveMatrixEquations(A, B1, B2, C1, C2, D11, D12, D21, D22, gamma) return Xinf, Yinf, F, H end -""" -`[flag]=_gammaIterations(A, B1, B2, C1, C2, D11, D12, D21, D22, maxIter, interval, verbose, tolerance)` +"""`[flag]=_gammaIterations(A, B1, B2, C1, C2, D11, D12, D21, D22, maxIter, interval, verbose, tolerance)` Rune the complete set of γ-iterations over a specified search interval with a set number of iterations. It is possible to break the algorithm if the number @@ -409,20 +415,16 @@ terminates without a solution if the maximum possible gamma on the defined interval is infeasible. Here we could consider increasing the bounds somewhat and warn the user if this occurrs. """ -function _gammaIterations(A, B1, B2, C1, C2, D11, D12, D21, D22, maxIter, interval, verbose, tolerance) +function _gammaIterations(P::ExtendedStateSpace, maxIter::Number, interval::Tuple, verbose::Bool, tolerance::Number) - XinfFeasible = [] - YinfFeasible = [] - FinfFeasible = [] - HinfFeasible = [] - gammFeasible = [] + XinfFeasible, YinfFeasible, FinfFeasible, HinfFeasible, gammFeasible = [],[],[],[],[] gamma = maximum(interval) for iteration = 1:maxIter # Solve the matrix equations - Xinf, Yinf, F, H = _solveMatrixEquations(A, B1, B2, C1, C2, D11, D12, D21, D22, gamma) + Xinf, Yinf, F, H = _solveMatrixEquations(P, gamma) # Check Feasibility isFeasible = _checkFeasibility(Xinf, Yinf, gamma, tolerance, iteration; verbose=verbose) @@ -444,35 +446,33 @@ function _gammaIterations(A, B1, B2, C1, C2, D11, D12, D21, D22, maxIter, interv return XinfFeasible, YinfFeasible, FinfFeasible, HinfFeasible, gammFeasible end -""" -`[Abar, B1bar, B2bar, C1bar, C2bar, D11bar, D12bar, - D21bar, D22bar, Ltrans12, Rtrans12, Ltrans21, - Rtrans21] = _transformP2Pbar(A, B1, B2, C1, C2, D11, D12, D21, D22)` +"""`[Pbar, Ltrans12, Rtrans12, Ltrans21, Rtrans21] = _transformP2Pbar(P::ExtendedStateSpace)` -Transform the original system P to a new system Pbar, in which D12bar = [I; 0] -and D21bar = [I 0] in order to satisfy the feasibility assumption A3 (see Doyle) +Transform the original system P to a new system Pbar, in which D12bar = [0; I] +and D21bar = [0 I] in order to satisfy the feasibility assumption A3 (see Doyle) """ -function _transformP2Pbar(A, B1, B2, C1, C2, D11, D12, D21, D22) +function _transformP2Pbar(P::ExtendedStateSpace) # Compute the transformation - Ltrans12, Rtrans12 = _scaleMatrix(D12) - Ltrans21, Rtrans21 = _scaleMatrix(D21) - - Abar = A - B1bar = B1*Rtrans21 - B2bar = B2*Rtrans12 - C1bar = Ltrans12*C1 - C2bar = Ltrans21*C2 - D11bar = Ltrans12*D11*Rtrans21 - D12bar = Ltrans12*D12*Rtrans12 - D21bar = Ltrans21*D21*Rtrans21 - D22bar = Ltrans21*D22*Rtrans12 - - return Abar, B1bar, B2bar, C1bar, C2bar, D11bar, D12bar, D21bar, D22bar, Ltrans12, Rtrans12, Ltrans21, Rtrans21 + Ltrans12, Rtrans12 = _scaleMatrix(P.D12) + Ltrans21, Rtrans21 = _scaleMatrix(P.D21) + + # Transform the system + Abar = P.A + B1bar = P.B1*Rtrans21 + B2bar = P.B2*Rtrans12 + C1bar = Ltrans12*P.C1 + C2bar = Ltrans21*P.C2 + D11bar = Ltrans12*P.D11*Rtrans21 + D12bar = Ltrans12*P.D12*Rtrans12 + D21bar = Ltrans21*P.D21*Rtrans21 + D22bar = Ltrans21*P.D22*Rtrans12 + Pbar = ss(Abar, B1bar, B2bar, C1bar, C2bar, D11bar, D12bar, D21bar, D22bar) + + return Pbar, Ltrans12, Rtrans12, Ltrans21, Rtrans21 end -""" -`[Tl, Tr] = _scaleMatrix(A::AbstractMatrix; method::String)` +"""`[Tl, Tr] = _scaleMatrix(A::AbstractMatrix; method::String)` Find a left and right transform of A such that Tl*A*Tr = [I, 0], or Tl*A*Tr = [I; 0], depending on the dimensionality of A. @@ -497,8 +497,7 @@ function _scaleMatrix(A::AbstractMatrix; method="QR"::String) end end -""" -`[Tl, Tr] = _computeCoordinateTransformQR(A::AbstractMatrix)` +"""`[Tl, Tr] = _computeCoordinateTransformQR(A::AbstractMatrix)` Use the QR decomposition to find a transformaiton [Tl, Tr] such that Tl*A*Tr becomes [0;I], [0 I] or I depending on the dimensionality of A. @@ -524,8 +523,7 @@ function _computeCoordinateTransformQR(A::AbstractMatrix) return LeftTransform, RightTransform end -""" -`[Tl, Tr] = _computeCoordinateTransformSVD(A::AbstractMatrix)` +"""`[Tl, Tr] = _computeCoordinateTransformSVD(A::AbstractMatrix)` Use the SVD to find a transformaiton [Tl, Tr] such that Tl*A*Tr becomes [0;I], [0 I] or I depending on the dimensionality of A. @@ -565,7 +563,7 @@ weighting functions are empty entries, numbers (static gains), and transfer fucntion objects on a the trasfer function or the state-space form. """ -function hInf_partition(G, WS, WU, WT) +function hInf_partition(G::Any, WS::Any, WU::Any, WT::Any) # Convert the systems into state-space form Ag, Bg, Cg, Dg = _convert_input_to_ss(G) Asw, Bsw, Csw, Dsw = _convert_input_to_ss(WS) @@ -649,9 +647,6 @@ function hInf_partition(G, WS, WU, WT) Dyw=Matrix{Float64}(I, mCg, nDuw) Dyu=-Dg; - println([size(A) size(Bw) size(Bu); - size(Cz) size( Dzw) size(Dzu); - size(Cy) size( Dyw) size( Dyu)]) P = ss(A, Bw, Bu, Cz, Cy, Dzw, Dzu, Dyw, Dyu) return P end @@ -660,7 +655,7 @@ end Help function used for type conversion in hInf_partition() """ -function _convert_input_to_ss(H) +function _convert_input_to_ss(H::Any) if isa(H, LTISystem) if isa(H, TransferFunction) Hss = ss(H) From dc3e3bc60b738ccc9d4025320a55ddba1b6e9332 Mon Sep 17 00:00:00 2001 From: Marcus Greiff Date: Sat, 2 Mar 2019 22:48:16 +0100 Subject: [PATCH 51/66] Edit docstring with list of all functions which are to be tested --- test/test_hinf_design.jl | 30 +++++++++++++++++++++++++++++- 1 file changed, 29 insertions(+), 1 deletion(-) diff --git a/test/test_hinf_design.jl b/test/test_hinf_design.jl index d712a3943..98cd02126 100644 --- a/test/test_hinf_design.jl +++ b/test/test_hinf_design.jl @@ -29,7 +29,30 @@ execute_tests = [false,false,true,false,false,false,false,false,true] (9) Three examples which can be used to demonstrate the tool. Many of the tests are quite intuitive, and all points (1)-(9) are tested - extensively with detailed comments for each test-set. + extensively with detailed comments for each test-set, and below is a list + of all the functions tested in this unit test + + hInf_synthesize + hInf_assumptions + hInf_bilinear_z2s + hInf_bilinear_s2z + hInf_signals + hInf_partition + _is_detectable + _is_stabilizable + _compute_pseudoinverse + _synthesizeController + _assert_real_and_PSD + _checkFeasibility + _solveHamiltonianARE + _solveMatrixEquations + _gammaIterations + _transformP2Pbar + _scaleMatrix + _convert_input_to_ss + _computeCoordinateTransformSVD + _computeCoordinateTransformQR + """ if execute_tests[1] @@ -440,6 +463,11 @@ execute_tests = [false,false,true,false,false,false,false,false,true] @test_throws ErrorException ControlSystems._scaleMatrix(A; method=1) end + @testset "Test application of the transformation to an ESS object" begin + """ + The wa + """ + end end end From f6e4f3194a60649e0630f8cf590da8383d30c5bd Mon Sep 17 00:00:00 2001 From: Marcus Greiff Date: Sat, 2 Mar 2019 23:01:23 +0100 Subject: [PATCH 52/66] Add docstrings --- src/hinfinity_design.jl | 35 +++++++++++++++++++++-------------- 1 file changed, 21 insertions(+), 14 deletions(-) diff --git a/src/hinfinity_design.jl b/src/hinfinity_design.jl index 16f8d210e..01ada5107 100644 --- a/src/hinfinity_design.jl +++ b/src/hinfinity_design.jl @@ -1,3 +1,21 @@ +""" The code in this module is based on the bibentry [1] (glover1988state) +below, and is best read alongside the complementary report in [2] +(mgreiff2019report). For the LMI-experiments see the third bibentry [3]. + + @article{glover1988state, + title={State-space formulae for all stabilizing controllers that satisfy an + H-infinity norm bound and relations to relations to risk sensitivity}, + author={Glover, Keith and Doyle, John C}, + journal={Systems & control letters}, + volume={11}, + number={3}, + pages={167--172}, + year={1988}, + publisher={Citeseer} + } +""" + + """`[flag] = function hInf_assumptions(P::ExtendedStateSpace; verbose=true)` Check the assumptions for using the γ-iteration synthesis in Theorem 1. In @@ -85,7 +103,8 @@ end """`[Mpinv] = function _compute_pseudoinverse(M::AbstractMatrix)` Compute the g-inverses for a non-rectangular matrix M, satisfying -min(size(M))==rank(M). Used for checking assumptions A5 and A6. +min(size(M))==rank(M). Used for checking assumptions A5 and A6 in [1], see the +section on the generalized """ function _compute_pseudoinverse(M::AbstractMatrix) if size(M,1) == size(M,2) @@ -147,19 +166,7 @@ Computes an H-infinity optimal controller K for an extended plant P such that ||F_l(P, K)||∞ < γ for the largest possible gamma given P. The routine is known as the γ-iteration, and is based on the paper "State-space formulae for all stabilizing controllers that satisfy an H∞-norm bound and relations to -risk sensitivity" by Glover and Doyle. See the Bib-entry below: - -@article{glover1988state, - title={State-space formulae for all stabilizing controllers that satisfy an - H-infinity norm bound and relations to relations to risk sensitivity}, - author={Glover, Keith and Doyle, John C}, - journal={Systems & control letters}, - volume={11}, - number={3}, - pages={167--172}, - year={1988}, - publisher={Citeseer} -} +risk sensitivity" by Glover and Doyle. See the Bib-entry below [1] above. """ function hInf_synthesize(P::ExtendedStateSpace; maxIter=20, interval=(2/3,20), verbose=true, tolerance=1e-10) From 0e3609752ef116e249282a945d593c5070954ec0 Mon Sep 17 00:00:00 2001 From: Marcus Greiff Date: Mon, 4 Mar 2019 06:57:32 +0100 Subject: [PATCH 53/66] Add recepie to visualize the H-infinity synthesis specifications against the resulting closed loop transfer functions --- src/plotting.jl | 110 +++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 109 insertions(+), 1 deletion(-) diff --git a/src/plotting.jl b/src/plotting.jl index 377c0df83..3a1e9430a 100644 --- a/src/plotting.jl +++ b/src/plotting.jl @@ -1,5 +1,5 @@ import Colors -export lsimplot, stepplot, impulseplot, bodeplot, nyquistplot, sigmaplot, marginplot, setPlotScale, gangoffour, gangoffourplot, gangofseven, pzmap, pzmap!, nicholsplot +export lsimplot, stepplot, impulseplot, bodeplot, nyquistplot, sigmaplot, marginplot, setPlotScale, gangoffour, gangoffourplot, gangofseven, pzmap, pzmap!, nicholsplot, specificationplot getColorSys(i,Nsys) = convert(Colors.RGB,Colors.HSV(360*((i-1)/Nsys)^1.5,0.9,0.8)) function getStyleSys(i,Nsys) @@ -746,3 +746,111 @@ end function gangoffourplot(P::LTISystem,C::LTISystem, args...; plotphase=false, kwargs...) gangoffourplot(P,[C], args...; plotphase=plotphase, kwargs...) end + + + + +@userplot Specificationplot +"""`specificationplot(Any[S,CS,T], Any[WS,WU,WT], args...)` + +This function visualizes the control synthesis using the hInf_synthesize with +the three weighting functions {WS(jω), WU(jω), WT(jω)} inverted and scaled by γ, +against the the corresponding transfer fucntions {S(jω), C(jω)S(jω), T(jω)}, to +verify visually that the specifications are met. This may be run using both MIMO +and SISO systems. + +`kwargs` is sent as argument to Plots.plot.""" +specificationplot +@recipe function specificationplot(p::Specificationplot; + wint = (-3,5), + wnum = 101, + s_labels = ["\$\\sigma (S(j\\omega))\$", + "\$\\sigma (C(j\\omega)S(j\\omega))\$", + "\$\\sigma (T(j\\omega))\$"], + w_labels = ["\$\\gamma \\sigma (W_S(j\\omega)^{-1})\$", + "\$\\gamma \\sigma (W_U(j\\omega)^{-1})\$", + "\$\\gamma \\sigma (W_T(j\\omega)^{-1})\$"], + colors = [:red, :blue, :green]) + + sensitivityfunctions, weightfunctions, gamma = p.args[1:3] + + title --> "Specification sigma plot" + xguide --> "Frequency (rad/s)", + yguide --> "Singular Values $_PlotScaleStr" + + w = [10^i for i in range(wint[1], stop=wint[2], length=wnum)] + + # Plot the sensitivity functions + for (index, G) in enumerate(sensitivityfunctions) + println(index) + if G isa Number || G isa LTISystem + singval = sigma(ss(G), w)[1] + if _PlotScale == "dB" + singval = 20*log10.(singval) + end + for i in 1:size(singval, 2) + @series begin + xscale --> :log10 + yscale --> _PlotScaleFunc + linestyle --> :dash + linecolor --> colors[mod(index-1,3)+1] + label --> (i==1 ? s_labels[mod(index-1,3)+1] : "") + w, singval[:, i] + end + end + end + end + + ## Plot the weight functions + for (index, W) in enumerate(weightfunctions) + if W isa Number + W = ss(W) + end + if W isa LTISystem + if size(W) != (1,1) + error(ErrorException("We can currently only handle SISO weight funcitions in the visualization")) + end + singval = sigma(gamma/tf(W), w)[1] + if _PlotScale == "dB" + singval = 20*log10.(singval) + end + for i in 1:size(singval, 2) + weightlabel = (i==1 ? w_labels[mod(index-1,3)+1] : "") + @series begin + xscale --> :log10 + yscale --> _PlotScaleFunc + linestyle --> :dot + linecolor --> colors[mod(index-1,3)+1] + width --> 2 + label --> (i==1 ? w_labels[mod(index-1,3)+1] : "") + w, singval[:, i] + end + end + end + end +end + +specificationplot( + sens::Vector{T}, + weight::Vector{T}, + gamma::Number; + kwargs... +) where T<:LTISystem = specificationplot( + sens, + weight, + gamma; + kwargs... +) + +# Case where a ingle sensitivity function (for instance the closed loop TF from +# disturbance to output) and the gain γ +specificationplot( + sens::T, + gamma::Number; + kwargs... +) where T<:LTISystem = specificationplot( + [sens], + [1], + gamma; + kwargs... +) From c5a2dee5ecfcd51bde3e1c4937ff4676c07dd2ec Mon Sep 17 00:00:00 2001 From: Marcus Greiff Date: Mon, 4 Mar 2019 06:58:29 +0100 Subject: [PATCH 54/66] Change the examples to use the recepies --- example/hinf_example_DC.jl | 20 ++++++++---- example/hinf_example_MIT.jl | 20 ++++++++---- example/hinf_example_tank.jl | 63 +++++++++++++----------------------- 3 files changed, 50 insertions(+), 53 deletions(-) diff --git a/example/hinf_example_DC.jl b/example/hinf_example_DC.jl index a51e1aa12..3cab3c288 100644 --- a/example/hinf_example_DC.jl +++ b/example/hinf_example_DC.jl @@ -10,8 +10,7 @@ The example can be set to visualize and save plots using the variables MakePlots - true/false (true if plots are to be generated, false for testing) SavePlots - true/false (true if plots are to be saved, false for testing) """ -MakePlots = false -SavePlots = false +MakePlots, SavePlots = true, true # Define the process Gtrue = tf([11.2], [1, 0.12,0]) @@ -48,9 +47,18 @@ flag, C, gamma = hInf_synthesize(P) # Extract the transfer functions defining some signals of interest Pcl, S, CS, T = hInf_signals(P, G, C) -# TODO remove hack for visualizing plots, should be made into some kind of recepie +## Plot the specifications if MakePlots - include("hinf_utilities.jl") - if SavePlots; filename = "example_DC.pdf"; else; filename=[]; end - visualize_synthesis(Pcl, S, CS, T, gamma; filename=filename, tmax=4) + specificationplot([S, CS, T], [WS, WU, WT], gamma) + if SavePlots + savefig("example_DC_specifications.pdf") + end +end + +## Plot the closed loop gain from w to z +if MakePlots + specificationplot(Pcl, gamma; s_labels=["\$\\sigma(P_{cl}(j\\omega))\$"], w_labels=["\$\\gamma\$"]) + if SavePlots + savefig("example_DC_clgain.pdf") + end end diff --git a/example/hinf_example_MIT.jl b/example/hinf_example_MIT.jl index f15efc63c..d4f7da0f0 100644 --- a/example/hinf_example_MIT.jl +++ b/example/hinf_example_MIT.jl @@ -14,8 +14,7 @@ The example can be set to visualize and save plots using the two variables ShowPlots - true/false (true if plots are to be generated, false for testing) filename - Set to string if files are to be saved, otherwise set a empty list """ -MakePlots = false -SavePlots = false +MakePlots, SavePlots = true, true # Define the process G = tf([200], [0.025,1.0025,10.1,1]) @@ -42,9 +41,18 @@ flag, C, gamma = hInf_synthesize(P) # Extract the transfer functions defining some signals of interest Pcl, S, CS, T = hInf_signals(P, G, C) -# TODO remove hack for visualizing plots, should be made into some kind of recepie +## Plot the specifications if MakePlots - include("hinf_utilities.jl") - if SavePlots; filename = "example_MIT.pdf"; else; filename=[]; end - visualize_synthesis(Pcl, S, CS, T, gamma, tmax=1) + specificationplot([S, CS, T], [ss(WS), WU, WT], gamma) + if SavePlots + savefig("example_MIT_specifications.pdf") + end +end + +## Plot the closed loop gain from w to z +if MakePlots + specificationplot(Pcl, gamma; s_labels=["\$\\sigma(P_{cl}(j\\omega))\$"], w_labels=["\$\\gamma\$"]) + if SavePlots + savefig("example_MIT_clgain.pdf") + end end diff --git a/example/hinf_example_tank.jl b/example/hinf_example_tank.jl index ab60124d8..d6620a5a7 100644 --- a/example/hinf_example_tank.jl +++ b/example/hinf_example_tank.jl @@ -9,8 +9,7 @@ The example can be set to visualize and save plots using the variables MakePlots - true/false (true if plots are to be generated, false for testing) SavePlots - true/false (true if plots are to be saved, false for testing) """ -MakePlots = false -SavePlots = false +MakePlots, SavePlots = true, true # Define the proces parameters k1, k2, kc, g = 3.33, 3.35, 0.5, 981 @@ -43,7 +42,7 @@ iWSelement = 1/WSelement iWS = [iWSelement 0; 0 iWSelement] # Output sensitivity weight function -WUelement = 5*tf([1,1],[0.1,1]) ## +WUelement = 5*tf([1,1],[0.1,1]) WUelement = ss(0.01) WU = [WUelement 0; 0 WUelement] iWUelement = 1/WUelement @@ -66,53 +65,35 @@ flag, C, gamma = hInf_synthesize(P) Pcl, S, CS, T = hInf_signals(P, G, C) +## Plot the specifications +# TODO figure out why I get segmentation errors when using ss instead of tf for +# the weighting functions, makes no sense at all if MakePlots - # Visualize - frequencies = [10^i for i in range(-6, stop=6, length=1001)]; - - pGain = plot(frequencies, ones(size(frequencies))*gamma, scale = :log10, yscale = :log10, color = :black, w=2, style=:dot, label="\$\\gamma\$") - valPcl = sigma(Pcl, frequencies)[1]; - plot!(frequencies, valPcl[:,1], scale = :log10, yscale = :log10, color = :black, w=1, label="\$\\sigma(P_{w\\rightarrow z}(j\\omega))\$") - plot!(frequencies, valPcl[:,2], scale = :log10, yscale = :log10, color = :black, w=1, label="") - - valT = sigma(T, frequencies)[1]; - pSigma = plot(frequencies, valT[:,1], scale = :log10, yscale = :log10, color = :black, w=1, label="\$\\sigma(T(j\\omega))\$") - plot!(frequencies, valT[:,2], scale = :log10, yscale = :log10, color = :black, w=1, label="") - valCS = sigma(CS, frequencies)[1]; - plot!(frequencies, valCS[:,1], scale = :log10, yscale = :log10, color = :blue, w=1, label="\$\\sigma(C(j\\omega)S(j\\omega))\$") - plot!(frequencies, valCS[:,2], scale = :log10, yscale = :log10, color = :blue, w=1, label="") - valS = sigma(S, frequencies)[1]; - plot!(frequencies, valS[:,1], scale = :log10, yscale = :log10, color = :red, w=1, label="\$\\sigma(S(j\\omega))\$") - plot!(frequencies, valS[:,2], scale = :log10, yscale = :log10, color = :red, w=1, label="") + specificationplot([S, CS, T], [WSelement, 0.01, WTelement], gamma) + if SavePlots + savefig("example_tank_specifications.pdf") + end +end - valPiWT = sigma(gamma*iWT, frequencies)[1]; - plot!(frequencies, valPiWT[:,1], scale = :log10, yscale = :log10, color = :black, w=2, style=:dot, label="\$\\gamma\\sigma(W_T^{-1}(j\\omega))\$")# - valPiWU = sigma(gamma*iWU, frequencies)[1]; - plot!(frequencies, valPiWU[:,1], scale = :log10, yscale = :log10, color = :blue, w=2, style=:dot, label="\$\\gamma\\sigma(W_U^{-1}(j\\omega))\$") - valPiWS = sigma(gamma*iWS, frequencies)[1]; - plot!(frequencies, valPiWS[:,1], scale = :log10, yscale = :log10, color = :red, w=2, style=:dot, label="\$\\gamma\\sigma(W_S^{-1}(j\\omega))\$") +## Plot the closed loop gain from w to z +# TODO figure out why the legends don't seem to work in this case +if MakePlots + specificationplot(Pcl, gamma; s_labels=["\$\\sigma(P_{cl}(j\\omega))\$"], w_labels=["\$\\gamma\$"]) + if SavePlots + savefig("example_tank_clgain.pdf") + end +end +if MakePlots times = [i for i in range(0, stop=300, length=10000)] - stepy, stept, stepx = step(T, times) - pStep1=plot(stept, stepy[:,1,1], color = :blue, w=2, label="\$u_1\\rightarrow y_1\$") pStep2=plot(stept, stepy[:,1,2], color = :blue, w=2, label="\$u_1\\rightarrow y_2\$", ylims = (-0.5,1.1)) pStep3=plot(stept, stepy[:,2,1], color = :blue, w=2, label="\$u_2\\rightarrow y_1\$", ylims = (-0.5,1.1)) pStep4=plot(stept, stepy[:,2,2], color = :blue, w=2, label="\$u_2\\rightarrow y_2\$") - + l = @layout [ a b c d ] + plt=plot(pStep1, pStep2, pStep3, pStep4, layout=l, size=(1000,250)) if SavePlots - plot(pGain, size=(600, 300), legend=:right) - savefig("gainPlotQuadTank.pdf") - - plot(pSigma, size=(600, 300), legend=:left) - savefig("sigmaPlotQuadTank.pdf") - - l = @layout [ c d e f ] - plt=plot(pStep1, pStep2, pStep3, pStep4, layout=l, size=(1000,250)) - savefig("stepPlotQuadTank.pdf") - else - l = @layout [ a ; b ; c d ; e f ] - plt=plot(pGain, pSigma, pStep1, pStep2, pStep3, pStep4, layout=l, size=(600,600)) + savefig("example_tank_stepresponse.pdf") end end From 7ef5745ae5df89b9845b0c69f75d8ca477298c9e Mon Sep 17 00:00:00 2001 From: Marcus Greiff Date: Mon, 4 Mar 2019 06:59:15 +0100 Subject: [PATCH 55/66] Remove deprecated development files --- dev/test_hinf_bilinear.jl | 117 -------------------------------------- dev/test_hinf_examples.jl | 95 ------------------------------- dev/test_hinf_public.jl | 65 --------------------- 3 files changed, 277 deletions(-) delete mode 100644 dev/test_hinf_bilinear.jl delete mode 100644 dev/test_hinf_examples.jl delete mode 100644 dev/test_hinf_public.jl diff --git a/dev/test_hinf_bilinear.jl b/dev/test_hinf_bilinear.jl deleted file mode 100644 index da93040cf..000000000 --- a/dev/test_hinf_bilinear.jl +++ /dev/null @@ -1,117 +0,0 @@ -using ControlSystems -using Test -using LinearAlgebra - -@testset "test_hinf_bilinear" begin - - - # Test SS-type data - N = [1,5,10] - M = [1,5,10] - H = [0.1,0.01,0.001] - - for (ii, m) in enumerate(N) - for (jj, n) in enumerate(M) - for (kk, h) in enumerate(H) - - freq = [10^i for i in range(-6, stop=6, length=1001)] - - AcTrue, BcTrue, CcTrue, DcTrue = rand(m,m), rand(m,n), rand(n,m), rand(n,n) - - ev = eigvals(AcTrue) - if !isempty(ev[real(ev).<0]) - AcTrue = AcTrue - one(AcTrue) * 2 * maximum(abs.(real(ev[real(ev).<0]))) - end - - Gtrue = ss(AcTrue, BcTrue, CcTrue, DcTrue) - - valA, fA = sigma(Gtrue, freq); - sysB = hInf_bilinear_s2z(Gtrue, 0.05); - valB, fB = sigma(sysB, freq) - sysC = hInf_bilinear_z2s(hInf_bilinear_s2z(Gtrue, 0.05)) - valC, fC = sigma(sysC, freq) - sysD = hInf_bilinear_s2z(hInf_bilinear_z2s(hInf_bilinear_s2z(Gtrue, 0.05)),0.05) - valD, fD = sigma(sysD, freq) - - @test abs(maximum(svd(sysB.B).S)-maximum(svd(sysB.C).S)) < 1e-7 - @test abs(maximum(svd(sysC.B).S)-maximum(svd(sysC.C).S)) < 1e-7 - @test abs(maximum(svd(sysD.B).S)-maximum(svd(sysD.C).S)) < 1e-7 - - # Test that the C->D->C and D->C->D results in the same - @test norm(valA-valC) < 1e-7 - @test norm(valB-valD) < 1e-7 - end - end - end - - - # Test extended ss-type data - N = [1,4] - P1 = [1,4] - P2 = [1,4] - M1 = [1,4] - M2 = [1,4] - - H = [0.1,0.01,0.001] - - for (in1, n) in enumerate(N) - for (im1, m1) in enumerate(M1) - for (im2, m2) in enumerate(M2) - for (ip1, p1) in enumerate(P1) - for (ip2, p2) in enumerate(P2) - for (ih, h) in enumerate(H) - - freq = [10^i for i in range(-6, stop=6, length=1001)] - - A, B1, B2 = rand(n,n), rand(n,m1), rand(n,m2) - C1, D11, D12 = rand(p1,n), rand(p1,m1), rand(p1,m2) - C2, D21, D22 = rand(p2,n), rand(p2,m1), rand(p2,m2) - - ev = eigvals(A) - if !isempty(ev[real(ev).>0]) - A = A - one(A) * 2 * maximum(abs.(real(ev[real(ev).>0]))) - end - - EsysA = ss(A, B1, B2, C1, C2, D11, D12, D21, D22) - valA, fA = sigma(ss( - EsysA.A, - [EsysA.B1 EsysA.B2], - [EsysA.C1; EsysA.C2], - [EsysA.D11 EsysA.D12; EsysA.D21 EsysA.D22]) , freq) - - EsysB = hInf_bilinear_s2z(EsysA, h) - valB, fB = sigma(ss( - EsysB.A, - [EsysB.B1 EsysB.B2], - [EsysB.C1; EsysB.C2], - [EsysB.D11 EsysB.D12; EsysB.D21 EsysB.D22]) , freq) - - EsysC = hInf_bilinear_z2s(hInf_bilinear_s2z(EsysA, h)) - valC, fC = sigma(ss( - EsysC.A, - [EsysC.B1 EsysC.B2], - [EsysC.C1; EsysC.C2], - [EsysC.D11 EsysC.D12; EsysC.D21 EsysC.D22]) , freq) - - EsysD = hInf_bilinear_s2z(hInf_bilinear_z2s(hInf_bilinear_s2z(EsysA, h)),h) - valD, fD = sigma(ss( - EsysD.A, - [EsysD.B1 EsysD.B2], - [EsysD.C1; EsysD.C2], - [EsysD.D11 EsysD.D12; EsysD.D21 EsysD.D22]) , freq) - - # Test that the C->D->C and D->C->D results in the same - @test norm(valA-valC) < 1e-7 - @test norm(valB-valD) < 1e-7 - end - end - end - end - end - end -end - -#plot(fA, valA, xscale = :log10, yscale = :log10, color = :blue, w=4) -#plot!(fB, valB, xscale = :log10, yscale = :log10, color = :red, w=3) -#plot!(fC, valC, xscale = :log10, yscale = :log10, color = :green, w=2) -#plot!(fD, valD, xscale = :log10, yscale = :log10, color = :black, w=1) diff --git a/dev/test_hinf_examples.jl b/dev/test_hinf_examples.jl deleted file mode 100644 index d6ecf4562..000000000 --- a/dev/test_hinf_examples.jl +++ /dev/null @@ -1,95 +0,0 @@ -using ControlSystems -using Test -using LinearAlgebra - -@testset "test_hinf_examples" begin - - - tolerance = 1e-4 - - ############################################################################## - # Test the DC motor example - ############################################################################## - - # Make sure that the code runs - @test isa(include("hinf_example_DC.jl"), Nothing) - f = [10^i for i in range(-3, stop=3, length=201)] - # Check that the optimal gain is correct - @test abs(gamma - 4.463211059) < tolerance - # Check that the closed loop tf satisfies ||Pcl||_∞ < gamma - valPcl = sigma(Pcl, f)[1]; - @test all(valPcl .< (gamma+tolerance)) - # Check that ||S/WS||_∞ < gamma - if isa(WS, LTISystem) || isa(WS, Number) - valSWS = sigma(S * WS , f)[1]; - @test all(valSWS .< (gamma+tolerance)) - end - # Check that ||S/WS||_∞ < gamma - if isa(WU, LTISystem) || isa(WU, Number) - valKSWU = sigma(CS * WU , f)[1]; - @test all(valKSWU .< (gamma+tolerance)) - end - # Check that ||S/WS||_∞ < gamma - if isa(WT, LTISystem) || isa(WT, Number) - valTWT = sigma(T * WT , f)[1]; - @test all(valTWT .< (gamma+tolerance)) - end - - ################################################################################ - # Test the MIT open courseware example - ################################################################################ - - # Make sure that the code runs - @test isa(include("hinf_example_MIT.jl"), Nothing) - f = [10^i for i in range(-7, stop=7, length=201)] - # Check that the optimal gain is correct - @test abs(gamma - 0.923430124918) < tolerance - # Check that the closed loop tf satisfies ||Pcl||_∞ < gamma - valPcl = sigma(Pcl, f)[1]; - @test all(valPcl .< (gamma+tolerance)) - # Check that ||S/WS||_∞ < gamma - if isa(WS, LTISystem) || isa(WS, Number) - valSWS = sigma(S * WS , f)[1]; - @test all(valSWS .< (gamma+tolerance)) - end - # Check that ||S/WS||_∞ < gamma - if isa(WU, LTISystem) || isa(WU, Number) - valKSWU = sigma(CS * WU , f)[1]; - @test all(valKSWU .< (gamma+tolerance)) - end - # Check that ||S/WS||_∞ < gamma - if isa(WT, LTISystem) || isa(WT, Number) - valTWT = sigma(T * WT , f)[1]; - @test all(valTWT .< (gamma+tolerance)) - end - - - ################################################################################ - # Test the quad tank example - ################################################################################ - - # Make sure that the code runs - @test isa(include("hinf_example_tank.jl"), Nothing) - f = [10^i for i in range(-7, stop=7, length=201)] - # Check that the optimal gain is correct - @test abs(gamma - 0.9534467) < 1e-2 - # Check that the closed loop tf satisfies ||Pcl||_∞ < gamma - valPcl = sigma(Pcl, f)[1]; - @test all(valPcl[:,1] .< (gamma+tolerance)) - # Check that ||S/WS||_∞ < gamma - if isa(WS, LTISystem) || isa(WS, Number) - valSWS = sigma(S * WS , f)[1]; - @test all(valSWS[:,1] .< (gamma+tolerance)) - end - # Check that ||S/WS||_∞ < gamma - if isa(WU, LTISystem) || isa(WU, Number) - valKSWU = sigma(CS * WU , f)[1]; - @test all(valKSWU[:,1] .< (gamma+tolerance)) - end - # Check that ||S/WS||_∞ < gamma - if isa(WT, LTISystem) || isa(WT, Number) - valTWT = sigma(T * WT , f)[1]; - @test all(valTWT[:,1] .< (gamma+tolerance)) - end - -end diff --git a/dev/test_hinf_public.jl b/dev/test_hinf_public.jl deleted file mode 100644 index dd55fcafa..000000000 --- a/dev/test_hinf_public.jl +++ /dev/null @@ -1,65 +0,0 @@ -#@testset "test_hinf" begin - -using ControlSystems -using Test -using LinearAlgebra - -""" -Testing that we can re-write the weight specificaitons to a feasible state-space -form -""" -possible_entries = [[],1.0] - -for ii = 1:2 - for kk = 1:2 - for ll = 1:2 - A = rand(ii,ii) - B = rand(ii,kk) - C = rand(ll,ii) - D = rand(ll,kk) - Gss = ss(A,B,C,D) - Gtf = tf(Gss) - append!(possible_entries, [Gss]) - append!(possible_entries, [Gtf]) - end - end -end -#ii, jj, kk, ll= [4, 3, 2, 2] -for ii = 1:length(possible_entries) - for jj = 2:length(possible_entries) - for kk = 2:length(possible_entries) - for ll = 2:length(possible_entries) - G = possible_entries[ii] - WS = possible_entries[jj] - WU = possible_entries[kk] - WT = possible_entries[ll] - println([ii, jj, kk, ll]) - # Check that the system is realizable - if isa(G, StateSpace) || isa(G, TransferFunction) || isa(G, Number) - Ag, Bg, Cg, Dg = ss(G).A, ss(G).B, ss(G).C, ss(G).D - if (size(Ag,1)==0 || size(Ag,2)==0 || size(Bg,1)==0 || size(Bg,2)==0 || - size(Cg,1)==0 || size(Cg,2)==0 || size(Dg,1)==0 || size(Dg,2)==0) - @test_throws ErrorException hInf_partition(G, WS, WU, WT) - end - elseif isempty(G) - @test_throws ErrorException hInf_partition(G, WS, WU, WT) - elseif isa(WT, StateSpace) || isa(WT, TransferFunction) - if size(ss(G).C, 1) != size(ss(WT).B,2) && size(ss(WT).B,2) != 0 - @test_throws ErrorException hInf_partition(G, WS, WU, WT) - end - elseif isa(WS, StateSpace) || isa(WS, TransferFunction) - if size(ss(G).A, 1) != size(ss(WS).B,2) && size(ss(WS).B,2) != 0 - @test_throws ErrorException hInf_partition(G, WS, WU, WT) - end - elseif isa(WU, StateSpace) || isa(WU, TransferFunction) - if size(ss(G).B, 2) != size(ss(WU).B,2) && size(ss(WU).B,2) != 0 - @test_throws ErrorException hInf_partition(G, WS, WU, WT) - end - else - A, B1, B2, C1, C2, D11, D12, D21, D22 = hInf_partition(G, WS, WU, WT) - @test isa(ss(A,[B1 B2],[C1; C2], [D11 D12; D21 D22]), StateSpace) - end - end - end - end -end From f2de685e5ae8f971545c9db5490f6ddff9161bf3 Mon Sep 17 00:00:00 2001 From: Marcus Greiff Date: Mon, 4 Mar 2019 07:00:23 +0100 Subject: [PATCH 56/66] Remove deprecated utilities file --- example/hinf_utilities.jl | 95 --------------------------------------- 1 file changed, 95 deletions(-) delete mode 100644 example/hinf_utilities.jl diff --git a/example/hinf_utilities.jl b/example/hinf_utilities.jl deleted file mode 100644 index 138e956b5..000000000 --- a/example/hinf_utilities.jl +++ /dev/null @@ -1,95 +0,0 @@ -using Plots -""" -This is just a hack to visualize the plots, should be made into a recepie -eventually and included as a regular plot option. -""" -function visualize_synthesis(Pcl, S, CS, T, gamma; filename=[], tmax=10, fmin=-6, fmax=6) - - # Plot the singular values of the system - f = [10^i for i in range(fmin, stop=fmax, length=1001)] - - valPcl = sigma(Pcl, f)[1]; - valS = sigma(S, f)[1]; - valCS = sigma(CS, f)[1]; - valT = sigma(T, f)[1]; - - # Visualize the close loop gain - pGain = plot(f, valPcl[:,1], xscale = :log10, yscale = :log10, color = :black, w=1, label="\$\\sigma(P_{w\\rightarrow z}(j\\omega))\$") - plot!(f, gamma*ones(size(f)), xscale = :log10, yscale = :log10, color = :black, w=2, style=:dot, legend=:bottomleft, label="\$\\gamma\$") - if size(valPcl,2) > 1 - for ii = 2:size(valPcl,2) - plot!(f, valPcl[:,ii], xscale = :log10, yscale = :log10, color = :black, w=1) - end - end - # If the system is discrete - show nyquist frequency - ts = Pcl.Ts - if ts > 0 - plot!([pi/ts; pi/ts], [minimum(valPcl); maximum(valPcl)], scale = :log10, yscale = :log10, color = :green, w=1, label="\$\\omega_s/2\$") - end - - # Plot the sensitivity functions of interest - pSigma = plot(f, valS, legend=:bottomleft, xscale = :log10, yscale = :log10, color = :red, w=1, label="\$\\sigma(S(j\\omega))\$") - if size(valS,2) > 1 - for ii = 2:size(valS,2) - plot(f, valS[:,ii], xscale = :log10, yscale = :log10, color = :red, w=1) - end - end - plot!(f, valCS, xscale = :log10, yscale = :log10, color = :green, w=1, label="\$\\sigma(C(j\\omega)S(j\\omega)))\$") - if size(valCS,2) > 1 - for ii = 2:size(valCS,2) - plot(f, valCS[:,ii], xscale = :log10, yscale = :log10, color = :green, w=1) - end - end - plot!(f, valT, xscale = :log10, yscale = :log10, color = :blue, w=1, label="\$\\sigma(T(j\\omega)))\$") - if size(valT,2) > 1 - for ii = 2:size(valT,2) - plot(f, valT[:,ii], xscale = :log10, yscale = :log10, color = :blue, w=1) - end - end - # If the system is discrete - show nyquist frequency - ts = Pcl.Ts - if ts > 0 - plot!([pi/ts; pi/ts], - [minimum([valT valCS valS]); - maximum([valT valCS valS])], - scale = :log10, yscale = :log10, color = :green, - w=1, label="\$\\omega_s/2\$") - end - - # Visualize the weighting functions - if isa(WS, LTISystem) || isa(WS, Number) - valiWS = sigma(gamma/WS[1,1], f)[1] - plot!(f, valiWS, xscale = :log10, yscale = :log10, color = :red, w=2, style=:dot, label="\$\\gamma\\sigma(W_S(j\\omega)^{-1})\$") - end - if isa(WU, LTISystem) || isa(WU, Number) - valiWU = sigma(gamma/WU[1,1], f)[1] - plot!(f, valiWU, xscale = :log10, yscale = :log10, color = :green, w=2, style=:dot, label="\$\\gamma\\sigma(W_U(j\\omega)^{-1})\$") - end - if isa(WT, LTISystem) || isa(WT, Number) - valiWT = sigma(gamma/WT[1,1], f)[1] - plot!(f, valiWT, xscale = :log10, yscale = :log10, color = :blue, w=2, style=:dot, label="\$\\gamma\\sigma(W_T(j\\omega)^{-1})\$") - end - - - # Visualize the step response - try - if Pcl.Ts <= 0 - time = [ii for ii in range(0,stop=tmax,length=10001)] - stepy, stept, stepx = step(T, tmax) - else - stepy, stept, stepx = step(T, tmax) - end - pStep1 = plot(stept, stepy, color = :blue, w=2) - - #stepy, stept, stepx = step(KS, tmax) - #pStep2 = plot(stept[2:end], stepy[2:end], color = :red, w=2) - - l = @layout [ a ; b ; c ] - plt=plot(pGain, pSigma, pStep1, layout=l, size=(600,800)) - if isa(filename, String); savefig(filename); end - return plt - catch - println("could not generate step response") - end - return [] -end From 37b442652f515b99cc6f3852a297fe6b1b7b1778 Mon Sep 17 00:00:00 2001 From: Marcus Greiff Date: Mon, 4 Mar 2019 07:00:41 +0100 Subject: [PATCH 57/66] Include example pdf files of the controller synthesis --- example/example_DC_clgain.pdf | Bin 0 -> 180777 bytes example/example_DC_specifications.pdf | Bin 0 -> 1062231 bytes example/example_MIT_clgain.pdf | Bin 0 -> 180829 bytes example/example_MIT_specifications.pdf | Bin 0 -> 1062142 bytes example/example_tank_clgain.pdf | Bin 0 -> 181335 bytes example/example_tank_specifications.pdf | Bin 0 -> 1331153 bytes example/example_tank_stepresponse.pdf | Bin 0 -> 486894 bytes 7 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 example/example_DC_clgain.pdf create mode 100644 example/example_DC_specifications.pdf create mode 100644 example/example_MIT_clgain.pdf create mode 100644 example/example_MIT_specifications.pdf create mode 100644 example/example_tank_clgain.pdf create mode 100644 example/example_tank_specifications.pdf create mode 100644 example/example_tank_stepresponse.pdf diff --git a/example/example_DC_clgain.pdf b/example/example_DC_clgain.pdf new file mode 100644 index 0000000000000000000000000000000000000000..2473ef2c469e83d90aadd1b849b04c410026fd24 GIT binary patch literal 180777 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 u^TdgX=?0WG@Qb)5y;Dt*Ub^L#Ie0Ht? literal 0 HcmV?d00001 diff --git a/example/example_DC_specifications.pdf b/example/example_DC_specifications.pdf new file mode 100644 index 0000000000000000000000000000000000000000..139d7642a79c9585705e2628b0d3aec9d756fd8d GIT binary patch literal 1062231 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 Xmaf1TXqSo8SsdMUAN;QF_yD*t`%qG` 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 TvrK#WeiI>J6fj+Px}MD&6gFrT literal 0 HcmV?d00001 diff --git a/example/example_MIT_clgain.pdf b/example/example_MIT_clgain.pdf new file mode 100644 index 0000000000000000000000000000000000000000..d6e33aec82cb9702ce9c005e3ace4ef6790acad2 GIT binary patch literal 180829 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≠BTZzF-2(_lv$c5z$?>{g^e-N4PsHl>_{0S6Q1hrX+}?z!onCK(|u5#i?`RR-}kMJ*_)Jh%ZWL-8iY@hMMbBuc=Lges!S zyTsSUx^0$&!{EKv2NHR+GeY~bD#0cV<(p2HUq*XTG33bGuMkQ@e9GaX0nEku=W725 zxH;l&-lAFYRn6O(v+Klt*i7o`p|CSrj#Bv+mbQ2UvVOVRVeH0@kVHB>wIDQ~r1Eeh zNrobglwUryzHhsi2cWGOeD=MfPN*7QJg4rsflWOEs7O+!Twrw5BW>kdm@Zo7=dX*C zD1?)Lm%AS_H0jw9;Ox+Va)d+8d#+_$VL>!oGUPTxZZAm<8JYoAd4XxF5=JNo@|sE} zB7I&88pnvXLT(hS#pXT{5T4M%!RZSzgn;p@UFC12iBWfoFobL+(fM?i!0J9nkRx>~ z2R;rjo_L)3`Yi*S)KyqRl9Y>z^$-%I!{te$&}|cYCrQfAEF*^TJU8v3>&DqXM^trg z_0pZtrJsg^`jT{{R!P%);})99so|~94IMcf+Nu}26lZD+j8;xd+w)Oyb*b<()jiA?EJ zH({8NF{zc}h#vQuh1~R>9VM@)_yw;UQWqYFrB)tY6HK9pL5ZqSimPXqqr~8=o8TyA z3>Xy;Qu{xp#(RZJ!b5j3f}yVKNqUHxu9_LIT#UBdol>_TjW8x#BmzTn zsXlAfq*U(au0zBmfXKLf@340mL=2rS@%c+tr;6=VTrn`JLOn{YoGQS8T^IqWe2%L` zU{sD&GofkTRZunIie*M0uSosgx0fY}a9=XF+mBwHE&%dZ9Upv_d6gK6bn?o0(ij+6 z0~aLUsd%ZyfF1@Vq`E2QdufZ-=jN_+@kBD>?j83HMnoJ-eDccjh>Lhv`J_XZRaJZW z<3#$XqFhhJ3U2`}%fbjmY|W*-2#m@Rl^^ve-u@Z8p8FEl7zS`EFB($HtGRmj8x?={ z6fu{flVj%LP!zgPw;f({g7i=rJ+SE&ZX1{jLH$+^XUpotuo^qL2#BUnQIJ# z)F62I<#r?GjV_rIImYr3@dB$$bbBx3VMCOxyacfl3@Fj8p9g$YaW!Hf1sjd|KEOyY zsN18c`M0|UNaPrIE}l?cyt^{>_~U9Rbc&x_%acpDedtN`B@`$xo$p$lTrb-s4vfI4 z9C1J4-o?!`DH<;R^7c*uc#m-P7G73EeyK;E)N6T2t)0#essTMBaStr-6?Fb8E0}U% z>4B7PQ+E8>oNn<{zZ#K8?H*5t7mqji@~Gl;dpRRS-hg?Xfi+XB0gS@i3s*~_9tIW~ zsOVL%$&lSiw?|-9j_C6;R3Hsd)ppF1lZ%r%Ktsun zQ2oJ+)=1{p`oBa;Z-5TYM z*VTzF+%8AzH0gi60lLr}rm1XH#u~4K2LXvl>mUWw_!Ge}~)YE!-Lu1WzP%8qXawJQ!uv_xp zEZG_|p6V_Ewb|EHsWvp`XF7Hy#My|h-t{pIIy5V`ef82z8N#&PL%kb17ffLtx+bV^ zH|?~;i^ug^-2*AhF54+ZmSt*T;8G;TWu=|kRSf*n07_6HtsgdFo%S7LPW4^kpVJl* z7?mTrxe6~->gX?gt>NC53*nt+&9&HJZ%R}ufV^R8Q1Q+nTadDXY3B!RdKi>25C<8S z!ZAP3w)=1s2!|Js8zuL^$_uQ#z9wDX5PA1WlM|h^oz>;4){7T6XiVXa1-J zT0~%Aj%3#={2qvWbVacxZ80~hYRBbmc~@!?>2d9u5*7- zi3XCoU6ETZc9|s$**r3a7C~+mAgOzBQ!RBUp|QoILhXH}kQZ3KcyN)N9-Zn64MBQ|fh@2R8pQ8NC{)}Sm5A}Q zRRKwzs>8bO#WfYob>1a7v$mRF9#HYHaZ+JZcjms)&Q)F;2bJf)fy3OH~UF zYu7HBCQk1vsZx6!N4$zB)n~W!OIfed9*qH?Y{m!-%n@Ib)fO-!S8QsF(Ir#y#HZ@) zfQBl-;zoH@webx6tSV!mu20k`(C%79fRwA>{hNcTeBi0u82QOM?+TZc#IePrpz^-v z6qf|n)y8Tuz`;kC6G@a~er3(+kgIYGJrPw{YOxno=xC~3&U;k%YM#Ve5g3>ws!~*b zEnigkz*%6_j2*!bzqFM)zcU0*V34~QVFscGx_w44Y zNQZtqws=&`Ra7x839Pp=T@zl4Dq!^yj8`N??0I-83@W^HdW8s#$`N1x>Yh;QZ4BQw zBcaBQP%RWnBK+-^)E&kGz7`k+K~+M#vrI)BcF`MaIbzh~9yEYaw>Q#FtX&wDrvr;e zB0*rE-)>83*DF+qFL{ZV8e!&Fl}~MxSE~$2C*B5E(RQk2 zVDU(73I>9J*9(#%W9(k);>R3TLpL#R-Xq!ozTHOfhC&6fXA|(^nM5}N19QX&R^3ZJ z`G{R3Uk2j7iqjc}a5~@ztC*_p4gSzxbK};CqWVM6tEPJXs{0Z^g-g8>M@AGwhpDQ3 zbk4fRH>a{&QL#lj1$q{b%$M3$08^!w5XQ*qCYJypUQu>c=o@iW((zhj6~O)gYB}g5a zd9km;G{+5t);rM-Y;tl02Ih!w<8@z-v1|7`K$DRhr)PYq>vm}M@DZH~{R-EoQJHej z&5G@vcUI494E_R>X{uOKT9;0zh%mZ`8Z^^LHt{I$xsOV9J zx6eQ%PuR2yGNN7a$(NMlXzm|Ch&b1>!s#3Gx{s|>3H2-<_0=*0FzQpnTG{NWN9Arv{q*$r z9&HWG5x>R4&Kmfp?#fxC4_v78%xh<<8&y22rBLF40yit&=T;b?NC7RyAl#MDL z_Yr=`o9fn;(@4L1TA$wtY82-ZwPSO{U&$DFCohR!A6fa-Fh2!u5px+~9G&HF6!|VX z{0*CQty}R(qjVLS&EHa7&YIgQl5v?M#A@L4O9bRyFR53x zg||39G_O$AwTj1Hb?)=~EZU^qA#WY!SGXk8li3)7fjQ!TyN7L6<;|GU<$Gk4X}Ur; zzQ-8GG0O;N7bFfB{vPRd(j;BWK!ttE?}gyq=~m@y1Hwo@^P9Bs+LNpDo`b~6r8&Mx z1jgn_eh6}rfLs=a{G!F&O)b)-o|14<*q^Wn4|2pO)TJI1N{Yul1aTBbB7;+PKP_*6 zBm6B=dDl9*gb+R??yh}#s^G`wh^^xi`&1)b(Jy|G!G^k2TdwHiSXJ@`2!f2G)A$uo z92T4%RQ2%BG~F;Vyrklh_i708Po(^$A>z+?!gcXK6N(HtBKb_bzArb&=16|H+3o8J z_mv=pRz?iXdEVhwe5y><(TUEFZ4wGK=-`(p1)k1A%vIoJE6FP!zS;7L89xf$=pi84 zn4h7b47l;m_6(ym*5$D|l3VP8_w%u-30ap{9sCoX5Zk1eL;(Ft9))yL;Mo&L04{h) z0e<5n2L8y887}@-Ewy-X0Z_*!PrVyf9?cw+l0-Z=S^1ChkgVtC{$2PxJV*1x&Ad91 zE&cQx8hIwB6e55_P==b140nL@)O(IxFpScp)8g@dQVI8=#B~jatb37|PfTv0LKGQo zZ-hgFlin=?SI80XvRNcad6&0(#4t&AGN(oW(Z-7r-0@JQ{C);u#}qeDoUPYi$!0jO9I4Uk!+((+@f{T# zt&ihR&k8XT1*T?b2wXI|2(Wa?gy`a`cp-F^XkKo-YUBvym|fRjk5dU&p-I!r$0a1 z_~`AcS8tU*IRD1Q^5Lrw-X3LNfAHbYU#VFA^rH_y_)zKl@XbeWH0GcE{LRnaiWt2A z?$fXS>+!pXU;N_X$h)TKm3pX@jw6Ve?9y^K@EZA literal 0 HcmV?d00001 diff --git a/example/example_tank_clgain.pdf b/example/example_tank_clgain.pdf new file mode 100644 index 0000000000000000000000000000000000000000..30a11825dacbe48d9edc234965b33c6c93632143 GIT binary patch literal 181335 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 literal 0 HcmV?d00001 diff --git a/example/example_tank_specifications.pdf b/example/example_tank_specifications.pdf new file mode 100644 index 0000000000000000000000000000000000000000..71c491673d044f648b0ffaccf5ecec6e36fda2c2 GIT binary patch literal 1331153 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 S0$uN({^BqG=imLWr~eO;S3$G@ literal 0 HcmV?d00001 diff --git a/example/example_tank_stepresponse.pdf b/example/example_tank_stepresponse.pdf new file mode 100644 index 0000000000000000000000000000000000000000..dbfbe12010bcb20d87a0a128ad690b3a3b95d5cb GIT binary patch literal 486894 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%0DPPM*RACzvi)Z5V?lBq7 z<7cC#tvCr@sv$i`2*yidDIbR_F74*Vi@%4zGEe6b1mf}D>lCSQyjWxWUIp7Q=jL3P z2%IvaF*r?7O?*yX&YVIK&8>79oGYm2J}39ZljO+ro>D|QN5)$_y?6u(9~44tFxyQL za+qe76@}LVH&P@%6tQFcxLAuKVM_%>smR!uz#e+3M;qTzA->IYaw&Qt3=xfvA8QNt zk^U*|)smKS4pDlYcwn2t zeJjdZsW&BZYRiZmpO_@=z}q%u&EiJuYTnf%mPGN?g`V!EW0$SA?PRBu_bU`fr0=lY z8BSq@c#aj6nyl*jwCKhhUci2_GB(m3EeHX7%SwiYqi<_2VU%D{Z zwlSj7*nLO;jKubjJ`RZvS4|5WA{x*2>{zF=ui~X{_} z))Z9;S&J#<%n{}*dVEy{HTlNq0YS0Ro7j=~_`R!%ag>Ok>VwlAc0IVUvDj#JK!jP3 zL9tEY*w9hqtYO!iZAni}B4XDFhf0@s=;0ca3>FM6T^3=@-?p~c_{6yItx5T@_iKU- z>IK4e+xA>|zh?icgSIa&-a3%!U@8oMO6WFCA1?_M`0>@Y1joy zvc(OwMs_Iu_gPQMdzVLA^BGHujk#lXDMc2)TOGfO%jZ@Q&U1W+B8&wao8zx-D=)L+ zb*jANpX`MH=q<3(FGnr?gl}ow{>{>FaE#-cNxMC&XJszd%@-8T`6wcJs_$=GU#J;r z?Y&jAxSj4REun@bFB2xt8^0B1*TuOV{fnCNX!e5T6(JJyT!rz@(Y;s3&V)tm&k;R2 zgzgr{D|#)?xjoO(?br4m)?wk8XX#?|_L4~J@{oX??ImlAD*Of&b2tlPS&P+trn^~C z9J&T5Zr9Ig2JBRkR@Ce8Hf7ynrgLDd*5O^F>l~X4WiGSA<9Si)_Y^3{ukz{Zi^qnq zvliW@Epga6c0GR4%{H539+CV0c#wUCki*$>e0hvvW#iE~rV3^9+p31obnt_nM4N_q zM%saQa`Jvblh$a`MG;Nj3wH8w>R)+zX>douUAQIpSG85rdw+lhHpWNw@SRC_9|zF! z+@DWTM_GsAa^LrSQ>$dT?a@(Rikky=;q*9^EcQ{^vdd#OFq~AOYrf$q$Z^@eHp!nL z$Md4h>&1`#ZZ6t=q0DCMQOkXQFz-5tU#$>_J>+_(UAx;ec1!=_-G`N()9)rf?A@Ta z{^6dzIf1{RYrroLoqgO@FVoL69sW4@eq%8*Dbo{*W7iMGf1suINc>GADn6or;|nZn z0tC#g6{7=`5OamFdN3Za|7V7m%PTgF>s~gLG_IOs98d25>GEAOyzckL`!oW@_!_12iOv15k8T9c~!l|J7YS4HD>zcbD{t7);ei27&p4(Tsf z*e%|NuLw7B1-~d;ENn@1Z5z2GNY?A@zawaL6~FIUIh0=a%A_;5QE85&O|*Ux`JTc@ z)?r+rZo2Dhi=y_dJL|vCX`DL;XQ3V}E-=Ylsqq`>>EU9{&4X1B41KKZ&g`NLg5R$3>#bs!h+t`L zWFw!3&*D88+NQwgXIw4axXF;KTNvruNpRdLak0O8Xk2MWS|e|JY#V4xM?sR9D0ZuemGUw)eP5>#Vz?8EH_?TJ;mH=dcQm9+bLhs#>mTA0Mb>t<)6> zEYv!7zBN*P<7TL;r`}#;i`OV&PzZO7hfZ_N&9;-{9%8}^Ip+NG*K zns|=@>R4GDHMNnr)GERZ`$utYPdj#-)O=cIXGx!cD6HLiQQ`5A&Y zrW^b9V%y_XeQq}l&1&oy?ddpY>l3)l(}ALc z*xZ=iYV`d>17pG7_nxdUpL-j1`+Uvc4-L0CN^Yt9=5yX$)jwr0+NUM-bmparVws!r zIh@kxGBGZuOM>@@3x#ce3HVZI@S%Zslf4wi7fvnnU}872~}GRNlo zMc8PKET#^%g!Aa@gBEnY-qG)Wa&ZplH8abZW09V9oa3K|vsj$7ykk30Sae*K(fxXD zkaoWB()w$;H{1MeZv_)7Le>^}i&pqq6*fq}+13AiFbn@eXD_S4_CZu5rPYmcc1bqd zx543V8-EFLY)gq!631;`V?+S4F{^Z^Z7grWyQl5jEta&Jrzt*d^VZCkoQY~Y)tY5$ z?!gLeNL%i5F|EOnf4$MORW$7&@9UU`k>83{bklHKIq%aOq@-Q8Bu|OqikzkbHwt6P zJm0kVT`s<94O#ZZ`RmdMW=rM;yXU1xH=bzCQpug(ncGLrYco{NmYj@kJl>jx?`J>A z_7f!O_RRmI`=WouWDr#)*D8n3#9{10E9TUM3y*BsQ$n_ropqX>OfRh%qg!WZH({aLVkNjrt zw#7n{u3B*#Q(^;f+Y%GT@ur>GWg9(`Yp%Y866BjtxX#u&T5G;U>vSI3GD<9I@n%&< zj5*Q!*BTYOY1@w8JZk!y|B$%H{qA6{*0t-6My-d~x5Q0taJ_Yr#u9NOy|H~L zlb=qza=lTr)nT3}BG!T4HRoCYT&grpQz|INgu&WNmS$vVLUawUnE|6vp$lK?Z~mH`|7$#qDTz{8N0# zCR$~u?b^X~R^Jkzmt7-{C5vh4&yF|v*MA=yVRe+=WpGpfsCD$po$lub@6vqAGx>L` zkGlt*w5j|h=lgB3p{5n}YO>Z6sa z)TE7I)xF2MSi?L`|Kt)M#Q@B=)9 z4%~(%+4N`q)z=#bTX5HT21|0?8&ZXtY2UA3lAZUgzva3?p2)ne+NJ ze#JLA@OSf0A^cIx=3n_u;2VeEe0 zNV-Z)gQZwKxa0bf@m`I1m+h&P5n^sc0F1pn9(j%O)T_At45f{2Z6Gj_mPuAh_iZe> zet}}&*;v++J0`DnVpq`y3Mr8GQmsJJ>U@1D!Asg#3sUhY$h{fPC-oc?=h z51vZHM?D?db2piLG_~Vy&+zyjB*cl?&VhR#?-}Kwz+?O}r^U9IA4eI4Vr+t=1ScRYD#N8Mc3`4>8u>hLRKa!$VXewp3Im^(DEm^DzD(hvD6% zvMR^%HU8n_EI0nXpGyzp&aeK-;;4ANQ&+i1ao-9%=i2CM$HJQBzv!kIq~AYy6`!Sa zVArc#2Kru+xos_!-Kjr&#+TgCBedJyE36T&pqR|GnWyQ;vG1DhQ;buw>lwaIy{38~ zrHtOkD_R_U_SO!CX&Z(Hj5e1W+ivdAN?e_}y(oV<_03DR-ddMTAWcc@( zS2EM1>*C5{qu}3msOo(aVv>b^wu}f?NT}Bs8VC+c7HZ71kb5`J!lZ_yVSZKbc{3rW zNbh-EFx&fd>k!KLxK6Y;FS&ZnA8FS1DvW6Jj*mVnjBIl_jNKYudf2A^BCo{w@VdK9 zk7*BFw;Fh?N{?8}(P+>>e%1|-vhSr5t!yj^kiiN>S+&>ax8;6&Al<0dDvDQPAhyvS zgE1huG0QqDH=W@TZko<~3p9A|8l$H(((^sSL;hfT7<$zAlo(65XPJkY7ie^<2Skj< zETTCZrZYY0YgBVw9YoKfQ`4TBkC=;KR zarJKB6{qD_UosqM`1@4igT64gu|>8&07$q_*_h>ug8vlMoijV(`$s3zu0DX)WG=1Rh$z z&dLQI8O}E`DV`uWR2`y+4V#zK&T>}RnvhxUupphu3pn&4z|CVVz@yu=e&urKVZ$I@azy zm!=VEa4p3lMS~S_B*zka(jzK0%sNYH=bmez`-lt>=P@^^y%e&6;^^w}<5Ni3n*4mu>QdbEI6>VqD@N}wh{XD}OV7oq)TA({dgq=W4r2?pmL5J3{P;4fX3-;%vKj~e zluwev$DBK}a_^k9m*k3Ojp;!L`h$d1vZI%C4)>a#Hd{3(Z8q8K+kMPcRj(L(1pD4_ zV99D4=Nz*5qc+RLzjS!temrs6z*wdCnz83udn4<+(YX(EXtVn{<|#(4)=e?6Gh;+& z)cems2iJbixv|{(o=QO!pQF}**0ztLwHh91EiHCT@93ecV|oc^AMrUmKcIE3ob-=1 z-dkQDLU(anqSokgJ5BQ()aTGqK~lSKh>9Wn1|bt4RC|S^;gR`OvKoxn=vR`O^A( zZe>Q^O|u`w2kMaL(qguaRIIYqxy{MVPd}cJ>&~dDU?|~cB&OvV%&@CpF{dE?&@WfK zbqwchv+?nh{p66c_vfsl887Qne>wkz=&}5YL&}3+M@(0p9}J94A$vvcI=a%z^!yWd z57{N~7f$n_$VwRXBm8`K^3LijmQ1m`hcD z>!O@~mAtlR*$JGU%3sD-T9z_==zC%_VOP%6oC`6cW{cSLrUo_|Fy-d;tLWwvE$s7& znxlpRnq$o;Sz~Ddg*IHP!h8pUdGH1IE>=2M#V4Pe>(j_*WEJ@ntU|xR?O=v}<8t|d z3vRQGiju>)ZSu|F>d3uA&+~f^uw#DnSNi#(p7sTW$4lz@jQmF1i#qwkUONwZJ3VX8 zrZybjSDJO56B?CjE%!`M+nTE%vA{pkAq9Es`DPz)r*q9k`0TZRM7gC@j-eqZZ>QZV zcWBe+=5y0)Ym_yuOjW?fZ}_vFvU40lSMby4rDgUO+^04>=@$z# z1^4gjT85e#6Q3$g{QMC8dgc4t?J<_7+y(PttYX;qITN&P?DAMo`>9>p zakC`z+w)x;oV9E`3X)^XXM)kia-9t~zcammmUQ}Y?4D`$%X^YuU+PP13S3c?wO==N zTYC5KQ|jRcn>^#-$GN9Mnv<92bp6mn4}DO3isfFl=uukJL*4XK0oJU&`*i)-FjgxY zb8bIXk#^>;`79FG8Dgy3cS^||PPJ)!5)Q-^9u?`XQI zLQkg)x*MMMZCq;F_9TmV(V%WbK3w9d>+@*!o#wX6-pT=J0v?`2^l(B41+VK{J!=E> zjKe^jiB0m$UBvfwH)!i?(;s~37@03ym2|dYL^W~|PyBw~0Z+Ry-MNj3_Nd+fYVoRP zh#1yN6YM<6=Ct8GkbGmU!l zacbJ?uYq&=3Gdq~N{-|E%H;PpKg|V3(=L6J$-Qlj3uo;~qZYX=W0}}z}?sTJuMOHS^RU|#1yH%qP4`~;h()~j z3v)Oh-YG9OYKv(5!O!jLEj5~a#MtFV7`k8N?Up|W#v0EPU9I~5j8--dEb;>BuJf(~ z-58zM3O;^I<&MkV`-*cJ;2RCbV2cBbqT5Ff;Z~5~xZoKCaE0R;$O?^Cl_tzLe7e63 z*twJm1h~A}Rc4y$SjdSf?>5?14XRue?GSuHF=u7)alzhuu-ehZtxQ24=V9T_-#GTW zZ12!~?z2n1F1u(7Y*v&lR0w$=v%|14vX2}KopVpqM`P@2X+g6OW^XFw#W@;9MK8H( zw7^26wwrAUFXK3~`i(PED|k zGFnS2azGrBHGy=++H`bMRta!4?6O*4yZrb-jEa)s!BP*{rGCZe!}!oPFgj9lRJ)OP zMcPnLfX}$eX3PF-<6uUkl&!XTWAFvm%seRDHGN93pF@gVd?-~PX-yL2%~_4h33J-s zHxban5CuwKKW#>Obe<7Y)Z9cchOv~Q03YVr-uZtlFUrhgqgAGDaN{LV4}$dV)M#vx zdjFdnck9maEee<|{=VVpYzR*G&e8T4m)BTyXQ;UKof@twR?mmv-+% zQ!({u*{9K$Hd!V2+v85kd&`&oUhgblHsF$Sv&}7qv_CEHVXack$A^bqoGz3eMo(@z z3{RS8S{kjju7#DAUtI>t^rwGXm13EiFkg1G*S^0j{ryl17{OIUN@z{8i_^Abv@}8I z=qaaLCl|oc-yTZQ(KgD^?@@w3?>QUv5RABU>Nl}5TC2T04Gq+t0~!+84)AmlqG|e- z8rZWk=2v}f1Fu>ypy&4p5X(8V?&Q*&H4CCz5^%?0;c<2??0sObGdNdQ@H?fLgd9I~ zi$RcSSB>UA47bxJx0+-_+<(O;!~U~`?$O_R-a2IA!&eEr({kPJNFUGqFgdWg~WXD|RI&!0a|f$Us*gimR)<@__erV#=s`Ib?!2R+zas6&%DEtWO7v ziJ>0sj1$qAxYn2_Jp6 zOhpaf4ge`0~r(H5L!Y*w(gD1KMSg-CUEOd;3{)C^vs7Y-(T=2X1U zTu?chD}owm@4Qo#GT8{SgC(@OW%w3;9#jn)&EcencJ$!4gOQb{aw&cv> z^wFg?rS>^h`f#mxo$YL!4$F14EKae`>f3M8+!m#|Iw4NY%BZCFfPH!*5Nm|?jt|6J~cmHOIS zY>c8zwHy~FI7IKlo}bn8Jsh|GEY15W0wJ#=X0DvG0uc1y=C8K z(vFNAKPNi0GGOhNAy0IbtN>M)ueT^Yeq}EcmTz;~OLbVgEqU{6i2XNryVM8Ha^4Ff z{nqrG^j^ldI>|>)5zZCJSv0-$jxDk?eKofp@3SebcB6InCHe)%6< z$}40dhmO^+nbou6iR;bvFC#UBk8i!+o$jCp!@^-!<-t{@s+aaEU#iclos*L`zg*2K zXYDP`fW=#?pF@^#?)~;RBj0i$c{|59X^U#T6H=rpXF4yO^({w@r*zb2tGi3(@YOd9 z!IjT>&-Dv^+^qU$)y2K+iw^U)CKF$|QXi+O(Pq^_UoM!aMxFU~tLlz*;qXov`+1CY z%MBR~tZp#6VQ|AuF=5**7+9O$klwdw_j#=b)h(fFpoKr5(%)nS?@dJOlJ~vx0Lb6> zD!t<4ZiQ@+f8-L+M+9tOQOz&M>N|hGaMfyL!#O46m17I))?Oex$bJB3up!x&vTOND zuhN1GXk%~zY~vd}zpYz`7Ah`mN68Ba;K==T1S&glH_d@TxQ4l)zjPG2yK4KFj9|MdGq#6^u(SEPAft{ZICbT!46#Zaz24r zU;KmfoF~2Z=#*1ywni?=h(tVq&&Jf)nFUJ_y7X9OtpdtiH`Z+pRm)O!xw~za z6;)>+5YO47oodXoGlfSvPnN=RSDW>TQcbIQz$IE}aa*>$wC?;+%~!w!d})AxWVX)b zcm9ud9H@GeFu!xkHwf5d%Y}Dg`P;TiI5f`TH$=>WT-b$yjytg;2Fd_~pI+3#ak}WZ zm`l!Z?NNThz&-nQ>#7igC6V+r+xPyDE{V21;>xXZeVJAm1GWGU#LUdY_Th}3`98rY zd540^78}J&mCE)0+s`Sy=m|V`E)|xB%9b`{Lx=BZz4PV92m|kLHH)GB=c>cshWdb& zyl!P&xRs%LYobw?@X8fxQQ$^(qu@%`+BIAIg~Op#C`PMwFDo2vQ{QsA*@?6<@Fkp{ zD~<&gZI&QLZI&R3$oYW)F6Hh7Ll-j-HtjmwxNxR%mFD#-%DD0_rA4j!29f6bmpO0W z{qgBdHaWG}dg)4uW#k5XHQ9CS?Uh?bOV`kJ!cQa+T-1g(ODt#K{3)GaxCU4AFN4nW z9$?eAe-dRb)kD)8Vw(fkFY0`A>5YqN`C0vmfscW=FZaIuZiBADE@qv5*q!azwaD<+ zRnKpXM?RjrrT)uXn$FFXKkgA+)|l+I$L-l3d$Kur_S@sP#xj?Bsu{!fa78O;FHcuo zMyFB3$*GshL=Es1HqvGtrU~Tx%?=%QG3_{gS$0Kd${qXzHkDnu&)~7*1$$@V?XC}P zeqUUDHqbU&9kESQBNsgE2y$J?suIDa_ zQ7pMlPdeYoU1T}5*8!$XLe+0<6;36kWknl)M*Qc*6VSx3XxcD?sa57nuvmi5T82qynL08G&o%JC_V|1s zM2gx%G`$X+uv?4mv<_Q~uCwE>2NGh!Juh!NX8WfO&R%~*XAo&wCuuMBP`MocNIU5& zx9yf9@Aj>s%^MGIz}0Zu9t!Vt%?mD*d%Y)3ctsSeI32h} zy^|CMtLDR>p^87`OOPyuRplpdlh3;rh!uwz+UlLp(EJ81-c>lIb2zNculDvEIetoi zxz=R^T5hE94tZk0OR3kqshhNy*|VoJs63@V>BZ2)JZySTP;LVYy8|;y>32m7>q%Gp z)Z7eIgy@*$%QNKzfeuNRgt6{FhR5yS(8BfXyvd;; z*Z)V^mw-dL{(qlyI@M`)&T%4Iv=WITNn}n*NtTi@WvPs0iL$RVr{k1Pk~AcHDj_1% zB1@){Wr*oiLbik^d&n|o#=PI}Go#M$|Np($d%c&-JoDVo{oMEc-9F#tzKhnb3lupU zKfC5N-Yv`gso`(@Lm&)im>%y)*o<>e#N5gxb)Jzy1{)b!#P$4bhqk16G)@c>*)Akyt)eQ<8JxtaDz3svJ zw|Z~Pi5+hB#V2j}M2!>k0-rRBp6od$XH%h7wTk!G&X4@d4Kc?kHL9_}PCIM=J0 zDiQXu7rC3zs>NHSSEIG2VeBV|nt_C1r!tb*n6f|_3iUv3Ltm(vfbcF_YL#1z7EE_p`n8QXm}Yj}M1NIV~ph0*gj?ZwyA z{y~m-N)pdCEnHyu5+`E#VpDwXSW7&&Fy{SL)>M&(LfbP+GHjn&I+!q zph`~MZ*^agqj;nI_N@!u9f~);6r0Ze?eKO;w-LhIPKN zp1g%OUE0mNq@CRYU!#71^u;Glqr{U29pZ*_3&L?bX|Kn-w;;Xg2rgrtI^~HU&tJ^9(LvE4{J)=N5L}Kx%ee;GBK@ zb+ARs$2ZCS_hxHY-tWTBKkdcN+6^#ry4H{BI9Q@9zL_xV4R-!@6TW%zr|x388z0YI z!#88@cIjsB^*oC5#GB%uZ+!eNMf^m3GiQUdo6YOs%_$#sQu-xjHS)5-G;e(LOX)9} zg*Unhdp+On9h(&%_xfysgu$Tar`>+g$j-P8P=5OX-ShV4#Dx6^KsOG6pFOY} zdc0!o--)_{s`1GrTT#!~L!>8PtZJiDwDWJx?E&Q|zx^@vwf%wp(cVMmBSLrc>V`ci zg8A1znrs4rIbS^5U3~RA-f-qQn;h##fvD{t^ACwz`_3y_GhHh^gIBbzdclbT z_M$fljc)?E2kXZhd^86a?>JtQSMr*4E!EqoMRSUX8{ONy9owo0_cbfbcFy*F9en-T$Bh~NlG8_C z3^jrQG|MS*`!LcjqOx`M*`7lf(8FcUSQO(8TFNs$tkY zMWOsRa-xp@s8uO(wNUVl_w(#<4)rWrZZk6BX`P_0WWHPR??@f&rB+fn_#*whU z0ZSfX0B#s`btswvV|sIMD^A@Hxevz04|8oe#qS?({h+Zc%p02yX7MJ@ z#RU!%&z%s%58iX`bsW=}8R4D$GF{6ri`TIA5j{DB>z?(|iqQ{GVtNVFHYAUgOvLT4 zERcI!*OZ^eI}%)-;?OM7^R#(VU87uOC^qf}J*}dN<#PT-^JLr#PwD(y6dkQ0%vrG1BYIXPi;ELr$(oZ#f7}Ze)+TZj!BNjdDayq->tKro6ei1{fO@EY+D$d7zf&s z;onC|jB`-v`Aspbw6HMr@QjGY7F`XV$!LZawZpA7?c>t5$w=(SPaPTg zAb#jE2YdPqy=k&v0B_WSVmPJvco@Np8#L-bOY#$XJKUDnSS6;OAXQ~+^=I?Qn;tci z*4iZGZduz*^|SF@XggNY6Sqj(+fMHL{uS(JdC3-ai=*oV_X|Gi?rg5x71UrK{rXvV zhtm;noF*ElaZoUw!=Sqy{FHke7vcfA(lP*yGZ0V21!k#e`yc#Nnn~PB1!UQdemL-Y zyQ;0mI(~TV;(nk^Q3%TNrZrbnh*U#H`o*Ks+jDX)7C9 zTb6Jmn)-UY-q@$Uj`SV!>evPVvZXusRo5CRcyC`swDGR37BSilw{A4CHZ2*kvgu!O zVoRk-(nYnWOV`HF0Cm3cD}xRp`r7!5N~9)>3*TJMNlgD~4fD-6J?vlTwI)>~; z`jgKn?{=Lws$L$KQ}BuU@u&V#cJ{RzD;pn%T(-%@luI@p8y{`)m$jY+0J5>(e!=T& zKjqWyWqWhaJKZhsPW2hum>$;DS1x)q1D1C<;($@e!wSd>s#(oc6Xs*T&W-h9b)9ac zv{r~PX9Nxw^maI{r*^2QrM21?dC2yb_ITtazjg;_6Y|*421dMU*uTPMq7QWBscn(% zs8#KkMtkpky0~d+<}E>u)yT)^R7V(!BG*3}=y{Z>ZV{815DM?ZZO>8O_ZHQ4*IY?Y zey|^wks8nQt3FZi5Ue-Iv2s*h@ug;3>jH{`DH9Y$)xq;!j7bu;l+~0#9ogkGbU$Z% z|7fz4oo^)jOXjS1Ce&NOhdKa8M(@zm?B;mn35}SOmlAdQ3NM2Wy&GGl?f)(U-q))D zBpEGXLGCW#M;2CS^rb;BQg~BejuS~T%Oq*kC9+VU(H9d5?^*^wk~{e(sJeP|+Wfn8 zmq(2Qg6KX+srM%ReOLNIe|zu7%sVuikPFnw$k*G~7ODmk5}601jkUZ;Qnye|rE}7j z!$@NwsmS5imzMc5YD{l{twEvX_1@LuI|lSR0%$S(`V$P+!F96wvlwzor!Vl<5dUOT zMRReDL>fSa7u+3<1SceCf++Ej+qUC$eq$cDP2BSptGT!ud%}pJ`+-3xsGC6r6Prj0 z0$~ZP*Z0ChT%yOk5Ln`jS8vgUH1T#H0uez2_0?N)k%~5Xex2Uz2G$lYkG$4G<3o-B z1r4DvSTNNB2h$;C+7_u43b5i+(2UKliri0$`KLx-rtPP}srI}SWlo#yV(m64Y z{Yv>+0a+@A70~~KcP!}Li->Gug}ds)>KyV&*q!KxubX=)aKz(i5#vBId!vU?J-Fr; zWJz=?+dkHND4^{)EbXMHpxq#mESFyaCJ@<7oj<3yG&AqDJWylqA>9yvf_@Jat)s;? z9)#4SKYFaOL)kXQq<_?fdRasX3n&Q(jz1m!Fv1x7OM}E(nz?7Wwm(fyyn@Q88MdK%g_M=tIt!*(3EfR-W+OwxML9Vwo>2nD)cLKQ1N!b4GBmb~^ z#gCbA!`HO11G$H+TN%LxVOOD4f0%9&cARgX(=8>C8`zCrdLmXlwEfR%`oD z?ggR1<+twTXMj-Cl!O-&V*~WKMYCRjhJg4r<}#i*DkRg+^)WfuE*Dk|4={971|3er zuyB*}5N=ZGg@WOT%@A{NFC}K_0g)8#Hy{m_SD`y+H1x6MVg(iYpuv%#C^N{{e0jqP z_4eKw9VTzNl3#uV7X$h)M+WVI-Yj^Ay!MUULi-c&VMab!fMjoOf%VPH&6E7o!2h?Q zRH>X{cPo;;x6@5};^I(P3RsQSMzx9`0|&PV7q`S5`@^umV>rj21e%2_)#maW8`vMb zyC|0vi{=BS{l*B3N}&Tvf<12e?N!Ax(972YpkI-OAgHuf(R-U{6Y#R(7N8-Ss%ooB zyx5q`oC^z+uMd1y)m+TBJBzwA*F)NWQek<`2XEl2ZzM-3^8r*0tN~f5<^@QfS!MDz ze2w$@n__&P9)O^bdmleuSgq7i^KpJ|v-+GA$05{6@vVK|%~ zxS*}|F$bB2gM$`va>(GqFHax+uwb|@tGxS_fx>W!j=lG!>KZo8?nJqi=!!tAVzzrF z*e~&x8Ox1ycDEF)BlVIEWj;(d_E${UZx945q@2dS9(lCMwaV~5vBK0#iTt_5nufq8 z=7j?}Et0mx+`h1oZ8#8N9gQva-ZGS6D@Rj5MT$b>OBM=O&aA?%HFTT2nCgy&VydIP z7-27t;B>PyK#bOe7!_|uZd1#b&KXWl_a6N##!yyGE+hOJ)$Jize!?&2fVyyxcK=x@joSikA^w}eFI}Y~PZ$x;Whusagh{oQI z^Gy!;3KMe!{L8vK^^j*q^W~FsD^XtL!$6`@|JJrtx>0{=rretGf!Q_)32&IM9;W7;5h2gcKH2aa&bZNSQZ{29~B=5_C#)MNC3qDD(D2@zm){4jU&h<-S;fY4;X&ozK6O3w>ktrMUuUa=3 z&rh7o(1l7({&8u!T1M5N8ld1t@^e&~d;qr5J&o^^oVA>V|Fg36qa zE5Ewxn%E1bY4j4tjHWQuxfg2JUtLVl8Nli|?4i4=(Ntc6PVbWrQl@Nn=lysDez8oDo%D5YRB=Q;M2woXTma83*X7SM7we@O{RLYcO?cGf+k~1IqpLrRnC(`e1AUYW(WkOprE+3g&pbJnWvc>W2vOd9 zRoO^tbu4_y_vj&sCX8SQ#)gLa;#>oJxHc5uGjL?6Rr6b1a5Cndih9U zWB;u1Z(mQ8bvs;Yr6ia3bgm!-CWj=V#3bl-dW?$FjuC<71$NTOb2Miz7(Mhc04lvB z4RPk_vSJ#MR&Ba~mtzkjrP61WMFbhhhl25F#U_M_cq(P3%m5Ln%4~`47-Je91**2o zc2WLhM_8|-!>rpxlMQ5D%?;?HT$)}9v;n18R)PF<1E0n0R3kHm(`4=`1mznn4+oC} zG=kRbQHbp|x)|EKf~E&R1uCkirWHQ-GOM)X;Ht2!0by*pPDcP&5FzLgma%7r1De4@ zw%%;iR?c$ErP*?5Gcv2_XIKma(mJsEWTW?-6vNh7R zAGyqe0!#9}!0LPLF*~=!UYo4YM~1?`M_e_Y@bVEF)C?AdX0SZAX=d`o%QJOgA5`%Q zOyrY8Of?W*=46FZJT`C_2L*t`;U}>FZiTOkXpDaIb-_Ti#(zU2`wXpM*0DubgXZgU z+qA~Nh{=m)O=yiR!0^{Z{y51a(r6P7t*T9y5P>`5jZOzA-Ifoo1iTf%x;K!OOg}%U z9adL05gCTgs;5LN<)3oJb}ayKST_0n@TKk4`7vdlQaM#Wf^7wXykIR44uuY_6mccp zXfo+tI0ujm5abD@KVjWE^-_u$?vWY-KX_u0M* z2vk*Godr#KKfF>7)QZEiSPq>fby_=s;mc!#idm~m00UuR3M4zqoLF~{c_Ygat$*wr zK2dmyD_^$-yo@_EJe_rQkGcvhKWN)fr=A)v zYF!OB4eM=1SNAX99o;*6;ws@ZXFIK;2M%@*w3S)Mof270Sd^Y168r&c8L9R7#r%!! zW&~I1$t4gooY@GA3N)>^`y_e-K(n4?w><*8?N$g;{v1?D3f->M)xn7$+7NThnpzwp z=jl|I8o5n=T;M}{kt!3s;CJ|hsEPcZ>m#f(d607x`vAMp6aV9h^;~?uEUNhshL&|04Vd~t zj7}vM0bVtXZ*BA&kmPV_Iyh*visHcx=nunjFC_=Y9#yG+G*^w30Bo0T&@X!l#s^^_ zL`^{1rRmwBz<3ZDhH$zRg&ue;3I3kZ7?W~YM5BX34)B9mY_QBhf>EG0`38Ls(%ePp z+sv@!rVpz1LB5b`tB9C~jD{NEaoK7hN%)B@K{Kw#MY5>K19Dt%ajLeE`- zMhIgXV@e>rLpxIOn1`!?Si@&X9SjY`ES*8g6D|^oN!CjG-L zDBBsZu<2hQhN|E;Qr*4}h9GJ)H2W|lh_Hvf?%F0?3PwG>lqIgR zfj1!qwApXkWiq)0V?^*_?JW-$dApsZHCS4q%`#&qb|$XPQk~Nq--ck?T6pG0P4#C8 zDHptr+5YbF^UdAXM}lKxxZ0W}(7(Tv#npy4fe5=J!TJ5`s%xN6fgl|R+-GsV0>)B3Y*T?aT zydMyjZ;-F~3de^WfL;Ar6~a^^Y6;AmXfnV-kdMd@pc0%QF#h!tE@Xq&HzCB!59@7T zj3gm|`FPAlJ^Rg!Wion1guj$L674kDgV9|(7Y|V2B<2%{T4#{uaA44JB9eq{^C}QO z%tOTb)Uz0FLIyM9f7Tkv!__oXldUSe%es*V`E;Jqc6i@*6vjAX&Y;_0MY}|gC*4&- zSl`XdiLNDt(pys$*sUDUF(RgAKnC&zOxxsRs7F~hBg|S4y))?AL>Fy#i&WH~dDA-y zP5`}0dD9;wRsEy9(^O(Q0>6RErQ(=4zj0vKs3Kw@k-HQch_Vuh`CUa}c2ET*E|FlD zkngzBCVxow^>|DKgm9ih^(2@vk{_JzXj(7vc0Z&HBH$6M+ByP3HZTEry^E6p#surw z+2296ND6=u2r(!cY7HfWZvfq=Cs{T>hWsP=(-dfJLeOGo_CuNx_9g}VI_NiKQh=q% zgFPJ8lM%J4xGMY9Vd+QZ-599#uHdQOO(c>yz%;UG+@@V z6T~dZFW#nh0v?-HfT$4;yz?PdA#yQDsiZS7zJWxHL3daK0D%dNLmrcmE2a_lpY8)R zA{Zs=(2@ZnP@93z`JNNtr4S8lD5T>ikb+hbFmN+6adF8HkPt~{bht6)Hl`)#7AW79 z&e^lP&;YR)rSHR-kIo7D7Y55H5g3KFA6b|MRk1eW@@wEQ263E`a%LM5K-zSu!}J7u zO(44zjA>!w4iQqJfEtx>3Zgztv79Ihy!Axd2Gl+jQw!w-gC$_qz{*RB${=nX_XRY_ z;fnyFV=?c6DlEdw9Bgl3F{k_sui;eL*F05|m>tN4qOnky1C=8{6u{F_==BjefnX`^ z1e7D3f-W6Fw}fGgn;j%(gwlbvhA0E4JtB!jlfcb07+?b8ZEfpZAylaH_rV=_$Tgul z7@Tj={33-8-$iwmy22&p;2mZ|O<?AmT0#Uxx^Wibk zs6N41+WE=amM{yr!Lo=ZmY^vg2gNuIEM7$oqaBct13UDF|YxhQ7wVn4EwH zQI%}iz;=M1iXSZVRP~mNKuFw-ffV3Lcj%iD06apRy}8|vZ%44Y0KN`pd{K}Ds!VWh z)M{j9Z-6MuLzTBAJw5Y$LOTUf{xcz{j2L+}Eq2A~Qs@lqAyO330w!3;+n%)mcY zrp(1zKo1~_o(siZhf5LYECij+3tQ zFUgdDl??D-f-pW&FxYsPNU8vJn~RsC6fv$~b%0u3Gw2lSA&Sw&7M%(KaIhb7926r7 zYe={hIkk+0+<;iQnpxp6rc;No!@DNI9B`qn)d~=g2<)mB!zNwDX#T*L) z#OH&asXgUD-ULw+fH9G{LGEGF;^?{w>sAPyy}9ppxosk#)9B?@*Fr(?GROV95rfLR zFSA-$x~TQ-C|vppBAOvo&E#zfq^*cMJtdqAfMZpA0T0BUuR;UhV+4}aRZtV!N;nA& zSFj|IFN=D}LL}U(z@V~|^&Aik`lo)0y(ZPQ==x2)q4X9B;rE01|x>KzIYG~b>1Y(g7 z!`f6avmpHDYI+#!vBH4C6EkZl`PQoQ;*nOpavw39MVHT(|rRqGPEq=JTV_3+b`)@x;9fx z&TJ$HHiQ;WxgClJCWRFXr=S37heSG5ToScWgMD8{*nJEOFm@nVC8|ka+A*xB4KM|n zAxjOwNEFOqF|_J!8!QCv^iPN%kuQN$fdfKOCDaI+nCW7<2CBMHV=fH7gE<+I;$cnI z;gV<<5THk-Mj%Vf!-*0<`W6OV030A{x2vG`7igNkN$kN2D2(+uq|Hs-?!iJY{6}I4 zZ{T(@0TlZn6WbCjT@w1MgH@o%eqHLK%o}n#U@8i}Z%h>pA0kpOVDuQ~qKV3=nZPBY zJQCX!7Skav7l0c#vXCFM+C3K(9~Q7(iPg~}SuDy;!Q?PCL#)Af>M=(o5aP0t3cU08 zd~lbf7ZC9hbsR9sDaVHT5A~y?ASj1#QWcZfq5d02VbJ$73pfp`Yg^Re>sQtdegMD# zgaCEiF{?YWVm|-EvP)#As3o;E6nfJ~j;$j=cLk$X`RX>2u`)y?djD=)LK%J0?Kz7TI zeHh_`g9pZ8cq39*!V5BG31*121&WSMcQtnHbzE2^R;&kR z(Wr#MU@oOe76nTf*5qN;0i)~7P~n7)kd3I^f-eMgBTdtl=+USy2&Tz%=YaNO9t1Vk zM1ZU!QSY}$02o9FbX6q8E{X!_tH})O!KMh7YoS#*A3=pEgFGpP4FHfPC?afqcB$Uu z54xLN^7bx-Gp?iY#VX?o{44_=yj4VxDEDBKhs5NQ0-Ge(D5*T1k+*Pd} z7cUYD)Xl}jUK6+n7Rr#uu3_aS0kjW#V0$K7`frwL4hl0WuTR=c_w zHvIkr0En%N5WYMd6twfE4c;db6CHUlFR1;IF91vWjRPIPL&d1m*~O)by$Kp0(h*@tE!}{Wse&lk_0fKBP#-8pP^(K6%e{C ziZo4vlG+m>UQ}^!xC(==CUzj$R)VtxhDpv9@8@_R9IGOVc@P!TC2R%ARmC1hEx(vW zR6YplNDzh6E4t8vF$Y+jkz)$3SDR2&HFoGuId0 zy9yg1_N(=#3fO7{-43T~D2}L9gr~mCoGhY#WegZABqA$u6(}3rK*P#zp)FG;^P@Uc z0MJY?;Wh+_l>}D}Yh@4E(*iVcUkKiFkSJcmR*1a@ZfSv`b*%#9B}j&dKIUZ|QQ8M} zAfhh{@ESrc{TU!{07|+(lm_gmc9;Z;gUd5u-Xq4gQyCP72Q8ALzMt#hls`fP=r5`n zxUbzJIApCj1Cn2wSv>pj9dJ*Cn1IiP5vGAzuIni6b9m!1xe~ zYZ0=7wIZCD7%KD-rW1pqn%lzuC;AsKa^O4e@aTiK%0S3NO~2=dRWB@zqr9kBQ94rG z^{|OJi?xFNVPp|u-J<=s=&$BYMw=0-HyE?UB@Km*SQUfp00L5A72rP+au5>|f;NI3 zQxLRejPh1E&~TH^O-UqDGK}p&$srLW0yA(O`r!UQ)Q)8;!zl@HdcZ7Dc{DW)94HK8 zd}XsKemC%0 z@j0hb@S#6~6aeYb8^Ts2B36S)N=~9}V%7@OHrTr*#D#GzVI->|$U`5z2P_N~$d*b6 z%Mk5r0;KiawMYUm!C=W+

4$2rMyR)QBqq8Ng)Rp3YHbNaqy4cj?3|0qa##7=a^- zt6S0;VLEj0Ea5SRCx&MgW|^&uk1_iHK#2DHI0; zE^s1W>D(l*-RLXTh0`{Y>>b31G!#MzrQR+=aLg|VhZSp`OyNT2FWxj}e@HDMFhz{} zXjSvh=+A~tRYHci72iPSQxH|Ly(5AOxF@IT}G@-B3e~JsZ>B$4wkIy zDRG=)FN~{#B%=8eG@@zQ8rizq5u#OgwX^CV7bTT|?GbwwIw03D3Ij224?!hp<~ON^ z5Igg%6?AZskS4%coTRO=u>!lqu-^=obs`A{NFa8ix8qp=`un2#7z{@zPx%vY_Dr;L$SKn)y1wPbi~05x3i$IGgS`&Gbshs+XED5 zyECRX1jz48@My(lKo0(T|E&~-@^2|C9Muqk0O}C|0-{3)qQeJp=s#J{3e+Gt(=nw%N4^0>FrD-2f~YLW*@dbjasowHi=>D^a#f==aehQ}jzn~R1Vp7N ztb%P&h|IA*1vC&~fJbG(*E$d(Gt(E5JCiB%Oiw|emY*60vmgfe*)x! z%@M#q2Yn48$|<+U0B4)+&hvCC6Q5ZEZB<6@0-L8J+N-WE4949Yz#UAf9xDXF`6e_J z0wUl93t^g0nEQMMA_OGFJqd{FLRhR(v`^sjDEos$s0e|9J{50R9@c4yBSri;hb zuY^P)h(a*cC9INriol|zy=TAHAIMjOM*mU`0cT3kg&a=KmHp2HGgI~%(ud@U4hIpZ zknnI2EH1lbDyE}~lnBe)*!0z@p&(ON5!x&DP?c~ia7Ah2NhFap`^2V61SF!|52MfJ zkWWH{XGFLZ0uAYaK1X?_D-h%-9+F_oSDZGNbnGIIKK*Js^6E_7`FsF8fqu_`43}aEs5#mbd4FV9_2LytIonUMLU#x(*?d zD4aqAQF&4roUlpJBtUrRa1fgmjSm z;-M!Dqw$O$fma|x1{|1+#A|M_J?3z5b&LcNGVTS#p)z7BJd5~H&XokQJisdvVuS49 z1RH>yDQ^>)2G-PlB3-V&Cl{f_SK`4&A{+RcQV?eziF0~lXa!BR{FkQw>u4aD$&{wf zBs3M_6*U%fx3E5pE=6*bhHaCVu;~oj08o&`aGp32hdvs7oYWMa;}s?onQkVapj77^+K-M#adVbhP{jNuu6y#9=Jq;MF|q& z`zwj`1LE2L=dnw|HbgdplOh6un;iOjC=2%Nz(qnL0iqnaM5N*Vxp0Qnaqv9u7{`j$ ziwHx$r9}`|_8R#-93aFg@la0WB&Gga;QTEfz@oGf)Rw|RCzG5E{i zu~`7rQBivEY&2RQ3xk!!RTM#@MG}^XM_7X$J=ViI;BeJcwoS)?0bD&1L83*9gB@`# z2f_{9O@RPlIVcPK)K4BI^b<*2|F1LzQ_KG%KGA7eh^;Wj5<#0td`KH1KHac7-OWe- zhuaW2dvF*K-F=gy_#`r%Nd6Ddfq5}<70J-G6~Nr*p&V8R5p>}Czd=Xkp>WCCS!kE^rSRb5W4C7I^N|FPraT%ktKl|Ozpu82Cm z>|oUGyk zPW`NKN>cJ1Bf#;vPT4l==gZ_j&$U(c`LN0?e;+rhHf&=)@*l=Ycg*!Z@Iv9QcGWKKEF&NZm!bIX!;;s zo?f}TlYepGmW;IAQ3aC^@@Cu=waV_ql))9za!NO{T4ZEZ&GP4cSON3qt5efhCY>go zHRB=jGo#_BT>_?0GEcfda`F&Oe4VB47knY)(Yb9#?`4W?d!O&VIdp4CF;hANrd3L2 z1VqAoNasxtGc9I&p;KAu&c)C5=i+Rn#La)3Q`4Jtcf`4xyP3Pi8_*Lg;b&0W*hk4% zNuo>+Nfi;B0i>!;-W<9)bd;}8537WqL1|+*C3hwFveu3H8ATb3FUW0_fjMWkD;Ud1 z(<@oyyXo9Jy+Ej#x#N4eDMNY=QPIbazwx*lGK-%t&o48<#k@Bq2d|9Qj;3YLVn)hq z1EsXe?nO=>d;RzNub;fh+TFRklQmA4R{-8hx2wiko7)n+_1N#f-(P+5md9SLbeLW= zdAq{b$+K?BwATMke{}BqAl>IXZ{p;&$H-1+%QVeo93GG@;!*~~&HFF3Ix+U=@6T7C zyvEwrxvlf*ct~YPCB2e9s1OZ5?WSdRFrV!O=5ddG{`+t~mT{+XXZ83t`tr{8pdxNZ zzZ=$beZCD?%#Dg(Z*8Hv>BBM=LbOA#k;D8S?*^Yk4$}?j;s4^WZ<*XiEmWh0w3i*% zfVZGVbeNdnt%{PWl4_Y9!P_Dk8j`wSYavObPGu5GKqjG1+&cuB=Rlb8SD%DdN<{Co zU@;6OY*m5CXywc=??+ZdFKYLV>oxBe6HBo5+7SL6=BxXiuwOafKd?30!V(QY zkv)x%HxUyP8s9`PcBb)+=#a{%Al2QSH$Bv-uP9W-fryzo(%Pqfmfr9OJJg^vw35Bb z4JL~|wDJ|@hQ|#Ld%nrPR7wI>N<^>>?NtXV6B0b7Oh_;&6WR?*7Ztcn0to$PH z-AS8hmlO7p9<+wMppBD+epCUUEgY1a9B&n-uWlP*PEM2$bFKMRVUtW6x840Se9*?B z`Jdzf+mYiMFYSbz?`TU1J3F&xYSH{@E&Kst7-_PQG+8d}s^io#c_(^>6AW%6Ye2{y z5cUasNKadZT2h>W2g35!!0rJJK~b?JO>m=JbJ%K0p@;Fcrckfxqvy8XBWyG z)}~Ex>)x15Rt+i6R_=Ok8?*dBzgqgR!%IfOY{D@2|@U%>SUSQNZVuPKf+$k$y968 z=IY~eRdSKSp+Wmv+U0=M{Pqx`H0;ru%8VhWh!#RBQh+DZmzHgcRzVFid zeZOdTwQ@}*+|zy@h#9k)_o~}Sxam{S>|EKKpKHujitc^-Xx%!HJbOU$@w33yUqU#y zDrg2VE=L@ie=FT|#ly-_Q~!vfP4<~oul@J?;HEJfzO=Tk>+JiZK=I&YA@LFL_HJBm zRNB^_TgQt@)`J{g$pYGVsQ1XGUU;K~lofw{a`I$suf<#AeZIEMziDu4jrT1oQ)^hf zS5rS?TKBC_ga5oV{->N~$(Gf{Ap@9;nC|CSXbjvuDRr=WY{La-cdzxc`?|-zkBCe4 zy(@Unlj+;{=|=7zu3)c^qN*^ZRZ~9_{)(tT<6PW(zq?Us!o5*LC$B^6zVO`nS3L5< z*L1oqB3D*#VtmkStT3Y{Xzt-|y-OZspT6TbFVfk>+^RCI(pkgcuQ_Q+8ap(swI9*e zx6s0$ao!KaU;jyt74Y`w+I{`+$Dewxa)Dk<_5;~fxBHr(Dt}>4s${171kT*!?`5wz zwm$pWm|YbmQ1~D!Uictps6FKM+DZ7R>InQ4pvVmEAG5pAr*5{@<=mY#h5hrk*thD9 zHJ<1V{6wYAJIdQ*#g@I^|3uh74 zRE-?krFg|OeUzP@-M;4@Dori&m6KCwmgDQcg3D(ac| zwTc`4uV%wNOzZ!Qb%cin!J;ug!Iq(6=D8UDo9~&&X=tmK%XTXVfnH zXY08)n-?^P7yxW4cEkQJINVN#rVZ3mQ zmAq+go%5wnDx)}lsqGCPuVjVHZH``jK6|YyiE&7&X_sJh%(Brxb-oWS5KY$w>BbxE0^8Ny= z^B*&-aTtYKSX6cUKAYqE!?7ta*zj0>cI9<0&l(7W&&+Mtxr-0Mr@!BAAo9)6Ct#fW zf%UW*Ih>`V$xnOoLj|0;&x4A2vR-BFIleZI_z5(Z+YJ<~2`_hi593F$pTN9JBY5!X zESvi|Eo-TrT5YYn&RAnoDxcbTFRIm@XG-46Y0RFHIGA91q}IVlhqK=bx+e`QW);Xs zaDryTIPCn7cG%`w%>=bdaGZZ;fnAylr~@Y<+w#r~?lxg_S`=v$cfUn(`yuZ`zi=E5 z99esxmF%*;^?AlN$Do=}hL@#KORf?~X=}WHz*n=aaU;CW=I*tCB_EuA>TXnw@uaon zM6uDlEhS?PnHC{`4O9`&KAt)$1%M|XDj9CpKiNjEZ2tRLDUEc4EZ@pLer1R!Q*B0t zyFvJ?*GlvO$NPrdL5Uo*$s)i=(ttz^i_I(Hy6`rg0ORR{sdxEtWKPyz^Mp^!;KkbP zE|=P^BQ?B8!DK|@*vc>%i?OCtFnLl@wQ*csak9n>j+%$mBsv+vaca~*WGR*P@tz*Qu93k9I{Ur;IS^8_gtOEUR=b2_^r%~= zbw2Hyw@H2RA(&xF_S1l?k4iLP=!fo0f$esug%E8IUj9z(Wsbjd0gXDQ`^1c*b_hh3ES9q zd%QW@qIAILfnk0_ty1SP%ghfi~8#K2+2WOcLV=3eil+jkDmV+bDULGzN& z(2OA8P}N$1t?PHp+cGwkmkm1EwdXl3c-F<4<*LRsokz1zv^#!|ll)g+d~goMePGlQv_?=g`3X?8yDW>!BXm;TUnO>vAm30Xe`LL3mBe3< zqw)}y=125`l}XrrM7>LM&P)n$+V}kFd8VsJ6w85rBPu3(m!j#~i1VZ+v?!JnG^9m4 zLIWEcuCR`Dk}FFp??r`1Tb9aM*a92;qlfMeDRsJa9vCc)wuG3iCAH~J(VqN6{+9gy z8@W}KdqXOn$2x5)tIM^NsP{agJcbn(rZ#0QPUTx^K?q{H-jJK?ab>9eCxE@Rj-|B4 z%Ts$p=&3<7B9&y;#h_dJr`GxBbq}^c$OVBw#nR##NoiRo^DJxz`en0jw^E1lL7U!& zEU`W_sYeR29CI*DJmKTJ`)&Sl-i8cWFK6<*r)Kka9Zy{hk0IM$3S4fsN%4O6ru&iD zcyAXT?lCVCeCGo^X|}lwsvq`cz6HOJwDD#y{_25(b0xyhGlM>Xeh5>@l~uIk7W~dX z?tOqeMF(to{k>&r@}yp-k;zQ!R2_jYL=3{_1A}SP`qi`qzIjmsUtdLunN1Mq4nPYZ z?}T7HZGY?=3>CUXvD%o6%tl+$Efnq>ECiEb^)usBn*_f1q6&wPl@3f6lI5Y*5b2Z0j=>s)X+l!loOWZ!8{v>m4*%S`ztra!UM_`mgl>y_)pD2@3IcLj>vDe z8f262%X+ynGsxa~^C4giHwTX}to2aV>$d*0ZHm4(qT+KusK&d>U61O^j~=?uu^3F- zny039f-(JW4BXnn?U*r>=?fViK1y=Ix18&tX>#J`Z zxHIE>3#i=H&JA}Dx~X%)tiNnql!v<8(NfY%8|b;FGa@&Ny%}8R9}YvOTCO~?t&C_N zGf}3)r+yTpJu^!M&}Ems*Y&92jpi284zG6Uh1BUQ@{XrxsZ`#SxHuyx3_$1UKC+E6 zT~2QCJX>k$+z+&%Ea;osYoGeG=V+;L+{)>5!NMn(7!rw<-7wInjea&+<8pFaqHDus zi&P97cB#!g^-F5+w9KbHhfkyw$k|cNLrmT;%eL$8_geo4$zdeitfdUGjl(LGUsZan{@$RQR~VvR2J1|O`;e~%lyCnPt~pU zK8&y69O;Y#sKr3}{3etu_w(Hnpd5Wz`17JjDAOush7q+x3v!p+_IX=QL%k-tw$udb zmW;~oQliKv+8fA+QXW=HvAzW*Oe|T348l+4HYmN{WQj`eB$Z4o`BP~*OJi!oh>A3n zbV%mZU;Xe^O)O%@)UKBY{Q#cm-y}*uSxo!w>%`~l<2h!+V=(g^3ZxLRPyFOnuu_Jfh^f4y-==Q{-g9JJIUhoue@-`7est#@?nKxzMM|oU#gpqDgaY7H=G9fQEg6iZ<2X*&aN)Ez+YJAX*`Y( z7eT3axaa60iQRuBrjI){J^#-6b3uK-;F()-ZNRBt#~zQ=_vt7E4L12duJ1RlcH^8b zE7flr^Kr@>{=Hp)>&r*=1BvkO_n|c>{!w$yv~X$mows3jd7*`gGi9X}PPHDY!qyOh z4s`9exxG|=8s~9at*6uBA4U@Pj@1NwH-9nwInI)i#Y@M%cjY*aKQZA4Y`*3@^T{LA zU%$xyP~X4*T(jW!_R`%=W2evBCI+?pUu&Bdxb%3@=Khf19zXrw?P!amT7c(|{D7nz zc_vT1{PN{*O?`En?r31lVN4drBQv<%I>2r zp{~SzWAKVRo?>R0o$0U-Nn)c)w^m9-t-s0m^(4s&tFF^!`dd$bdCFR5NS?V%ePc1; z!{)!ulFGh=ZcDFs+icof*|_=dfbSNS{rE6vS7BfR=P&6IKG)uQ$JUM13$uFd*va67 zd0qGA7kvVV0`3?V}!cjI!>+UvoJf=3mZp{^Soazb;N=8Rcf08NDZl>3ha|FS<|WGXY27e zUGtP&`>O6Gt@dxUi+%P2dJT*h4E8KZJ{I@=$VK+|2P_)D*YE>yn|3?v;k41+@TGgT z<>r6<&ZRD%pZ;`hf`MwjN_S_*H0RH=6<)pf9_)FLb?jF+=Kbd3xwZf`e*~}=nA}7X zX1;kJjo;GqUd?~RY%z4PUA@;mb;(`_Xnndi(E!T*N||0Oq7Q6|1n@HRxjr7Cm@^~s z38(mJD|kX4m1g<+!dRbhbS}s?ZT4}cUhT-=B^^!+YPQrTrJTy%#R}t`Eic3?Dik--rz#e~KITI@QEgf*x@zkAK+j`J-`=^Qey8(Zbiq zMqzZK@g7I!d6A?C-WOn}JV)c8f^m&uN0>H4`%igYZyd{wjbpXQ?1~F#Zk2PwXN~vd zb#2~!S+#4kWb)!RqaX&nC_9=3tGbn$g&CuMPdbsoi;4pLF=vgN22>UymmLZOVx|BL2kpj>f4z(<6YM>eqeb9Zl`>D@FFiA=MBeg;vAP|`khvw5WlZ1O zNY{Cw;~cm|(2|z*O#Xny5&GcIsrbTO$LIs~o>3m}D9$sojBjVXk_X*W?!3==GuJB6 zf}HrvrkeNOJL@-x)XA8+M7|q+aY*CSo9cH@jrnm83fqm&lJuMtSf3r|hO5g=UVuO1 zR+79;y@oO#VeG8NFPGPlnY5?J&86+zAJ#{vw~;nwus#!yuvJ)pQ@-SXG+l?5(X6kX z+FfcMN|Cx}3?FWp)pAfVgI66QsF~3U(`d%Op^P81gi+uX&3J2e;+gEugvQ6pKCql> zc{ar_-ue_LZ{Rb0(V@4U7&1DW$J#ouV`7P;8eiY|Ufyowvje!CW>{o#BdkOMM?3=S zBDtE;+d`3myUt#gQPGJCii9^b4~a`kXgq#N&4Oe5rfz`}{XuhI$N%gItH^F9pm?to!Kwppc5 zbdL(tOm5oNN1Lzu-mwTOx}3R)XH&mGE~g`|%-iy`KCEK+f~@ny&nhx=;7|MQU+I0! zuPz3fU+P7K@Kkm}<7YFCks$0fs5NJmT;Z!9SmoL8io)K%F+N&2Y!+05_xFEiG#qgE z^-r8Ichx*~o=slX&}%qnRlLne(VVe2-`lg*Ri1N{FS+`pPQP4D^p2J?@WHX%EDtVg z=!3q6HcqE0d282Q>h;lp0Qf&zGa>2BE|xa9{rX%|<4+HMhgkXTt38G9?DnYEmQV@@ zEN~S^EDu%U_$4sD$2%C`1VZQ}Yc>U*(v?P*ZI&9`y%WeGf3+@p}DDMg|icDvns*h$_i0 zd(@LyyV*eE!TkTj+k1djd2DUNF`n2<3{eCN8WBVkB2oktf+)QxNXLx@1gV13n+bM6 zlp=~05fG8yMYdoA1S2TDqZAS8MSA(}dG^M5@+K$e{l4q}FE@{~=b5%<*1Ff4wl>D= zf`7NEX?z+AE={!2~9D0!tve4KvBH4n5xvI}{_$;gd*{u$Q;3duubFw@-Uqk9(Iw>;y-4 zky~Iz!D-DANxJ|8v%VJ5*ol%tedV3>Ba*c`4elx*mc~v*gj7tm8z$Uid&NCyr#TYl z=O~U;HQ6M(D;}f^+!@w)x@3Q#h_tCeI4EdMwTxNjZK?Yw^9O45ly}yTZzvah-oTD7 zy;0I=8uUJ6A$shUv6ay4Q$FYMTbd)kE_qiPGqnQ z+R>$;yz_#E5{M5vp;U)tC)cP?Z81OIQ+M{KdcothRJ68QhWBP8j)baXPfY-TTtlu#xLoi!Db~F1fQ|)rI2tq1wmRWM znv6f2Cbv!R@3FN{;(!P95y!^XUS|(AYHI9 zD=bB!&Lk>0ZQy7NviWHz2O9i&L}BC zFI5V@Z3xO2&VS@;PU2Kw0(@NeR-(I}EQHibY>Yj5Vap{3+~3}83Q z08-zB_|VioJ$n%SW`4WH?v*GkC?ou;Y8fg&Su4ZuM+Iswh)Hb6@G$=hqT4(ouByID zIHbw=%g?cRh#sncCYBFzTa)UaY4JP8aYt46$jTPLt@o`=QEih8`NM45q;H=fZuqGV za|&+iZmBMiK3EYkKuyXOMa_@**7a;dNlD(SjIGC#YBeAV)WPT z{?*ZOrSoNt0_+0RGGhHxAfLsg@cPN^g3_B@iZsf+`gpYPeHUN3;3k)Ol}o()sP|_W z-_i5-I?FLU&mW;Ls8`R7kKlW%c>3kWo~HGtK`SKY#-5ZJ^%qyoepVn{p3q0uB5qp@ zx#{)g?e1Q5+v5J=qp9BOGhGetBiWMONcO=a!tVU*1erW5J0UE)@uu?vNfoo|^35{~ zj*wJTVU}x7H%*`W)D=In;F$(jwnebr`HW-*$LjnCqtE9X=XHDDzuH{aJua=h6HNlK zs(Dls9YXESKNrsMx7f6GI?dZ8(=nnp)XM6o?@3GB9)J@i9~eENX)jPO%DCPw>S@+g(FMlo_md!YxOfzjpEcb+x=tN*x#!s1f6)u zdxD~et^#RvsO-MaMs-D^x@H~5yDp*pyEAnGkIq^G6)m#G4*z1&a%N7tciDI4kl3SG zm`Pe{J7;O#0oFH^3<4|7r4Rq|e7@}AU&@f5p&V`J0QyC`@xH@Oe+q*ti_#Aj`%Tf2TeK@{i-uF%{XOggwdf;@! z32dsiFM-51{;*$M`Qx6qPp#|P@!PbKB~Kvw4I0O?vn(PyTN@PWmhN#1dzj8RNalHhLLwLPw6p^oy-QUr}`RbE=_YKO7d1h1-WCs@~k zV2T(sm8i<%&eMCZsxyZ;JxL|oR4s$pL6p7>d5>kh;y#YL1ID917Wa2z$*&w{?wU_a zW|EiMUV!Eld+zRXio|J=I9}TeP>><-IkMG^M+*`V&xkU;F+e4#4iI}TX=f|;oLbq7 z+3Avs99DKw#eJ_6Za5X!RTR}-r)BT!IN$Qrt*+`~hEPA>@!F#by&TIQ?8vcr(Qfyw zs^^f?I>#jcY>OB4!$T2#>z~~YIiDdkHaZz+p)4UGS=IKm?waH$rww$gpo}+Hd`e1c zD_^{xjNtp`nRCK^?@^~zWG)%gsS9#2ID3D`9=fYu`G)lzVPWav=xAh z;iA?+EnuS+ZSCHgW7qVC=IpfCCCQ&5z2UBVy0*eL)ahq@=P}AI&EOJqj?NT%TO-~{ zpX%ZEZLHj9+&lCoR&U~mPg5xe>ViIYg;1|rGq`k&s~n1J#2?2O9@kRkk+iD_&6ZZE zT&T_;v7C&rMMHx|+VbPO+q*(+70P2jc>v=Zdu6uQzCUP{u-sIOHTzR-MP5RFd(YV2 z$D2OWCXU=Pw-d@4_LK+7!G2kGQP@KLUA-7t@@9%}Ph z!iijQZ6nvE&*Ik)h(e)8r6^?UhGny9R?4#V_+5hm4VJ&$0(zILgiBvI zE6Uu@xnW&)%GFa3cm7hjVp-x;iCAQ>rGZYt&-7r)&O7H>yNuVR_4!W5MGRT4yZLrtwgpTEN-pbUj^MUt` zYvwA5E|Vx}*s{Ho|AJPC@l;-)z+m}}8k$__=7FB98=v*wM>Xr@uB5FA{e1j=-aDO{ z8T*NhxS0j~BgNxBed9gm#NKh{tnH%WdmbG=IU7~sa0#{npe)Rxk7#l{cnp z&YTY%Ix(`$SJ=_+T3T#Q&$O?O;&9GEak&ea#XjSb#ccMfn#%1%I#JZDHrnoSntb<$ zTPRn7L>_*vjE0i+4z1j5ixZ^k=dX1mSJ519r*GX(?-Mp_sL8fACf1fhUEKK-?*lS) z6bqjznx&pF`KHBkVNkl*HhQVBnW(nINehyyv=#*Q_T1Isr9U$}nR?^Q`Kr2uXVStq;0>Q zzI)MV{bSA4O6l`juTI1}P;Z)lq^-aGd?KyZkQdw8%6d7qhGjPrg=1WG`FpZAnpf_P z>>H?#3y^*PIZ0=y;Iq!7sW;dkJHI-yoof;Q+1I*zex!YK8&(wk8)37o?~|IBJFjoC zJT@CssOm7syplbv@7roZhucFPPp4s^2#X^QM zUw5gQpIMW#bLy%pmxvZEO)SleyEuq z^^zSlcX!E;aLkaDXnDKaDBVJ>jwAPex6kv?^eOA=RA>X8Iu5MhOtd5w()yp17GSaK zaM5r*uN!%7ZevnldV6hDFt`C*L}j7imOVadDp>Gha7+6Jg_=+-gkXUztzBb{oqLyK z#f1h8UqUnWU^V0I^V!o|n>cyAq*eou?54-L;EZ#D4^PA^e^ZHM&dYe}PN!wZIuxhI zj#8kY`ru`zyLMPUu@!vxC2oL0IB#e|#uT!5iY;I#_DxvTA4CMZEo(P3$L9&40(BI6=B^7Wf<&_Tv|9MlRaS$Z@hn|l8Ws6clW zm4({#sG={i5mvUs4#7sX3}d{)-+mtPy>g^$%kcLqbWnO*TiXKg13KEM1Y5wNJ9AGF zENI3O>xDdm94BuJIf_HlMzC|BR_vk56LvKD!|{u(jUSjv=4@-*xvlcY&OWjFdKe9R zM9}ZIUtGyuCuNjQZ9Y10(ws!oGR1r#U$z2vK1r=+_phb24m32)cq#2<3AI&+cO45PJp#2xsgc21CjQaa zK?~Q?`Y4%tCt}9+^UsUcy^oHgPm7RYnzE{FZR{IwimRdja_h`F|CFB&VZvtfE^h46 z69Gq=YC`S0V4+PSbg^A#i+V&Pj0U`th`?&^GV`@?NIr$B-jQ3oH(|AKLE^gNAel9Q zRUxZY+FZ9crKwq7eWQ>ix_9RLSB9t0(TZNLc;vq>-0CiNQYkXm9bH1g{x z+*j1rU;Q54fn7ZT(cmpew$VuT08n3E_N7|r)oY&EH$H+T$l{M+8(MF$&_Wgx6OS*` z!MHqf-p4;MxjF2qF4n}@#ms)%oYWkajD3<2DrT3MnI&gZGe35Bx67K`-eSZJTT%44 zB2&@59Q%00uOsjq**Fa`!BLZ+0xGC>s5PnxDmsee#j#uUDuPj6`%bg)PE)V%ZZ?wD z_R#LnWQkW>#;v=sK58vCL>6(^dT1BD-#_Bgy$ zA5|Z0vi#UB^JNbevqayj962=k;p{=K+bnqivN;jWBHTsG4;C%Ei9Md+7Xmfwepbxl zJ^1?Ux0;iUULo2=kJm))_F9Ntac?zRzEs?(>zb&w*k-%ZRHn^UfQ?TKf0D-J`+blE z5>%|Yj7{xVt*4%>f3neN{vn;E_#+!u%Xq}^P}^>2o{+;E?HjP`f0oJ=VlQ8Voh`CG zrC7A=;kVdGTlNrNvN2L;$QH30t$0loeeKWe$x3|lz0_#SR^NtNz!n%b#U0hrbk8k* z#kbWop9ImqjT`0l_R}t!IKHiIYAtHs=9kSTp6qWgqB*(8Yhn4j^k}G^U6%y1ywSJq z8afu(2(wN0f9^Q(6Oe$ml=l8CB$xy#KuVmKc&c%1h+0o~!Z+JF=C##C(D?GnCIK*Qm^?#Y(6wuo?|y90e> zl#cQ6b1bDcHW2x=lX*ZRs*8L%@_5^&?!_-1N#R%|J-P%8s{c#zPO`~$dXJ7z+pk6g z`l|T;`2N#Qebvh6rvb5nfz(ziWa5yH1;?&uBWIYAoFECs`Av9 zky&Y;02_J9heH+ba3bVJVc*lYWY<_?7e&hd_<|D`%db)-pP~+dba+HiYR4l2H+tem zsjpkG1dYmh-NsSmvV@%uA)VE>gzIMXD-+ZqO>}RxFyvLOZPBOZ4GN;(b8sfHZ-3$m z6PM#NE8lxII?4P?|NQIKPx#s_&2a!k`?Gv~?oTdD^_OesSj*KEm==)vgyzn(u}TsWnw=ZLdB@YalF1j|vwB4mn%OH}wIT{vKXJTMnia4j zac0M*E4{~8f-`+I2=}c_h6Enpcek=KJzSj%opi+lG#kQxl{_B@R2JzzL{M;qEc&c$FpYQTZ1_00{#d zh*)E#pdwEm$0N877)3chYCny5kNcxX>tFoqQ_z7-2kO1lWW39xv6b_1GCik%Y-Mzn z!BOsF18d!xmAF9~?LWmcsn6op0wovr4EgwO4MiuhTYtZ@iKA%Iv2SreFuY5}U*3I@ z^NP8vuk@;JWKU+n>Cou!Z?Ap=)ykoOOQ#Ao9151l+`@xS1SecRkJCXb4KkyAf=;*` z|CR#?&8>3RKXAv{ZfXBQ3lMN<5~q#aFR7`tY~VY_)46QqV3`*`rGg$kcLjT_0mUNj zG8lgd#i1r0Fw&qZZe(ly1Go+{k3Q#F-tyDDgGGZ!oG*oJX*0qV zwFhx$7SCXFLIf9Vx4NyKixIxt48G(}_P5QQ!Tu2|q~*pyA2(h!lf2WvP{WI(lMA8U zR)bmb4yU^=``sU%{zXHRAF*4E-0y%KoE%ddp8tRx{lfo2I0`lS%xxb3p7Rdnf-P%M z!{;BHJB<6B`p3S16}etv_Y}^e03%*Sh90ECYrqND^U81_2IKS~Zs?bm4)87R&~BaH zjVedK2NICeY31*tqB&HtZUFh}D$%Ms2d*UIHD%oy)JJaI^6AwQceW-ki|k-7RQ5PIPVM-Lu#!AHsxY-jLtJPQn0xG|ec59O^>12z2ybKyhd} zGXw@=hR7)4_}m%@4&O1rOyU(%FU~X#Ywh=_dg_?45NF4DI;|^rmZ0e@40-H4TD23` zZE^l^bFDklW^i8O`LS$6Gq2A#+uENV{Y%oknoE8`XxlM zP{a)ep9-Ov0YgvW2r@%l!LmS6+`>TzN>QD8g(IKbkbDqV+)@NhMBUN zoE^lAbJ$71q06a_!grPIsOzze_D@UTOy|5Ezm5Sfnh5Oe_u?n;57J&y7sK17{Rf0` z=#fD&Ok&E(L6V}VH-^!3^^<BvB?Pd{;@BKm^qaoZAO$?l{|z z7WiKzL2_77_-=DHIY=t9BR8q>#J5m7uNWMO8`Jkk>nK?OL(YdXqC|#|^yFQodsJpS zgpcurjqt#*X_f{s;m)yHpIGm)0eu!4;R_;U#h$lur8|#m_0RX?QpBtr2Y|Wzi4BCy ztU4Z5j?y@j!uKI>SQP1qlLP+&LBKJo)_Mhwj@lkTJULpqh;{8jo|;*UZN`PYH4&Q+b=wV<)pPh#tjv%1TEL=y(Lu>e5TH zxabcrLGvGGp>>g#m#%p-ELwGLJ|qe;YiW)3m&2tkTH zo6-Ii@qB8I2X(5>Ii=Tcybn}(!rlhgnd7i2buXVf zFsfA;A7b_lf_-UDIpk3$GG!kB;|rGEsDa{n$hjwOjvE1dZkdyYF+_ALSjzIQ|AZ8j zAJc~e&`qvQ*(e}@R+MQ62v|tUgCJ}Lpy7n#eoDzSbLF!Rf9a<~leT@#qpGX-;g~CY zQds{G6Zce+Wwow7x!Mi>yDf)X>(sq<%o#un`kXKbE_~DP$D!pQiZN<9pb8%g=mO$S zLqjuY;w@&Ip0fvYZPav(Y)?T!1A!-3b6c;Ndmov-$$fpG?9C@KZ8AoOSxjvd$s7QJ zV5{tq%z``RaVbs*jcl*O>jOc-8YX&Tu)e(Uq~3^<2^qQ`{De2?i90FaBzQa!ayXfP za1Cy#HE+NGeqdF>D3MMD!II?W`duYH=r^hxs>zN0&&R%nuK?=8zR^-z(AA0$SzIo& z2YQi7mGmckk2tDf)LBoec?90OmhOoD2BnO_z#VZi`n1TxJ2nU4b)w&2gPq|}B%hTJ zege=@XbD#z@wfrL#2NC+dU{4N3>vhU5;($e6zz|Q+YgF#+-=9Wlr63kBg;q-E9i=O z*Kxfa-Qowo5QIUPXPm3vMJ@ER2!Yu}PEs>KB_{Y#rO^BRLBCtIxiZuPa0R$iNUS9Y zF%+;I@lC)-{0OMRSpnr6f)K%QMd5<3m{T`Q^b+AxMkeAF0-f=bG6@iWCR}hO0A~V> z>+M*(wPqo<0h;j>{C-5oox@>HO5#PXlR-y!Q~o#JQvN7z6XWrlP^N1G9I@tYA+Azz z!5%Yx%C!pd5}~Yu0iaxO+^65CuXaB;wuDy4ys=MMQw`k&z9RlUsNuoSZ8Q~iq&Ow7 zfbs<%E+@WKaHbqJ*RQ{;bb(S}Ak&5NVn94K%xCy&kb`A@Ha& z>zRV`=ECqyAwV3ffctbi$|NBUTm*__Aj$ALLIhvUQJoOy!DRAM;u7O)2NCimIG{~V z&O>(FH)4SbG|yo=!{GYj41@C205>NLH!`c;iANWKoFawT#z)2``T!atQJ_xPW^aA0`H;_KmEg#pKK644gDVm?Lkzl0ecY&`$nzseVPBgDVTth*7W ze-);?27abbihp<4F#n4O8#wFH?AaDuoHBrO!=9^u@ee?|BL#{cq{i)*Zpo7|^4Bod zalDX^1N`~D#K8)2u>!GzOP8Og84gw$E?wYF27JYI>B8WvGK$g@lgfU#aZ}*P0*58O_6^st-g=dSz>8_=(`p4ia)8x2S946Z& z-e^M?;tmPRuJuqJ;J<&JqI`DuEW+^SA??0U0Tk^&s`5;@#!adS01moaOg9t!=FIeJ>mme}dge3+i0)D-H zLVwAzZ>xySL!5bFDn(%3ndQ%3qu|2{E_WnoHs2YLPZqp5?O(EiMgsexVe%FEL|&uj ztb=U)S@nXmbu&HwNdDo8MyjpXzF<#Z&qLx01SXBrJK`y2B)et3gMEDyaXmFQ(O|ut zF5c6-#G5r{a;oPcJVxzj+-KqPpj=7K-e>t6S5ja|fR8fqUSd2sE#w_Zssi}q{?4UC z>xo8G-CCl;@agnzBm!JRV-@}s^PWXG#-Zw%{5~d_sMlgEBU1BagmImUx=V#M2@HNc zJHwyN7q3?aW>E!of-QN33opZxk!l;;Nc^X%Il_2j4ZsC5@*kY{d~w@mqfWULqkQSK zYc2k*Ul;<$f~iri?)OXnP4y8!I?`?2)R?0W;O6TOk75{lV%Ngkn+Fc+f>Nb-_GMmA z@3B$iF$NJjQs(uZjh!`y4xLH7B-w9b=)V(_L>DloGSAo^LK_x z>qZ$&#I{`*M#E@Q63^r*hPeT!OtYTyP7W-gHBfWiIZUTqKwEgN`oqH*bTD;ej?#h* zS9L@S<_0tfw%lzNX(2{67qOmUQNdEn+wjFHA6#!yrrWG8C zevSvn^jUJ`pm6`Np5c7Ugm~#w$ycSEZw-p)K+Ie&sZCQ;2nYCH0*Rm%7v#8-0J4lC zyoY zyvGGInBQe=)0po8Y4Qy_ds&u!% z5Vl{Gp6!V+`^}E*Ffpy`w;Z`Q?bJ~! zlF!Jx3DDu5b<)W8vSz{C(e2ug^jx$W?eZUemd12p@ zpuX8Qtno1C6!BeCX0;^cdKag7nf<&D&amdqvg`E@$M}O158qZPQt2lJ5O1ukJwQU- z2sv!_2P|!(#PF{4}W}o;3&Kfz1j7PqP zo3gIg-*jUO%QY&M>V8^dNVk zU+dt5Y~Me6eQZ#}zQ>^=M4V>ZepRa>tA+8k>Wvq-{3_o(o}E)VHhWL>JE`%kiBk7< zY22VQK$jX&@bzvToL9)p7J0p1PQvOM-B(K3cTHjOP>7URp-Re5SL16TttvLg zdsCF;jIJr9__~-^C@w2ncq^|{K1z_(emoWr8JmQKVO{~d^oNLNv#>S5)F7xJ|WlO@3SsOwOxha0^;1nmt3A_ZYSv#jx22kJb zo73cZYkHQ^{iH&hjW!3Q9JDKv%5r^5eAQ2m}u_LY47V3udr;M zsN8ynyv)aF7Y=cQ(^O|Ujj;O^r`E-MKZTkte%m(BZ~JX`#v`iFg9)EeoO#GM0R2k_ zm(VUUuSU+2Q{-OLYQlH3oF-n@iyv&Qm+w)U`7u$oaG_)6IjyZx2gTa%=u_gQ!$M=Q z8^p+$lJQR2@yGw6uTS#ok=Fb!^xjXVW{W&7a0Z-=<(9YP1YFCb33mTH#-z7N(LH?7%=lP1*#y&>vVz*1Ke2m4< zmZBGuQ@jC!+gdy%?y;7ri!zQSHrIB`g)(a%t5yIktJ4!G@+1p|1X~Cg04x@($*m%= zT%-be+uiGh*cvNu+3ZbZa-kz>rUyieZgYU> zD6?n0Y^|J*XugIGLqY7A%G*$-YP0mU1GE~(Qf}DS07#&-?1!EduczhhZ?tN% zP5}k*ks^~RJNs>F6^!MVGeF$E~0YY8VY5V&|qwg1zfuuYYS$ycf$@c*u;nX=-iXQegQUfaR z7Jedt2yr0B#ED`+* zxd1Q_VTl56FD^{k5J1VO9bqL3?TL(j-K&tvR4(()P{PZKzN2`RM9^*2Aeszbg}Nc4 zMxi}-Ss1Y^W{n#L0J0MRB&dK2o5@2V1^la!vP|Kg)n8UB4vnhXpW+L?<8I}lX#qij zfDj1EjA2@Ha-p26_atFqsNT!HIsFrG=;rjXYtXASvjH$ILp;v`c6G!yd;ACi5&9Dj z{n4?+pabf`j)5fw@eFH@+6)#EZ#%ae(ilK&DOhcbZHRcn43biTDMeY1Fd!1cItb#P zhiF26w{d!^;X!q*;bt9J6hK@C5(xVe9{oe5Q3A50l<*H_GW1YJlp#0i&CQ#MoWF!F zJnzdKN`4AwWaI~ag3?v5WPrR~kvsuf7<{O5Jlv32EOCHc3THtd5P@m0$yqApGAu<3 ze!i}fSShd?j$HEqov<1x^8AQlEGLoIsZK;?aw8LIK_j2sMz9Zs{SZp@kGC%qA?k37bSMK63)^WNd0b$pa9uMdI5b{_i#+g$N!UUl8Hn0Eplo!(K2R zrx2cC9W|nqWp=K7IpJCG(ji}OfNlN;7)CWW-M*I2KdTh{mfZ~~2?5V4qNRvY$WWQS z!Di36xi^DQeHMwr4XjLSkYTyoNG$@k3;vBtfxHma$$XaC|D_t6|Fs&EpH*Y%<2=+g z+q)jSsaX%{#B-A;W4BXQ_x#O;(GK3eL?L6O2?IiN0>5CRi7;>sJxrO|Oyl41Plf`S zc0i*@G4%BifudP`jX8&;M;we9X-hY1~(r!4%q5Mrhh^_H*x67nv-oiA8p9&;lu8I|B@?Kx)e9S-30&1t))1jQPX=&aVCnkT9b29m!AzPO4_~t+2Y4VJn20e@=DSF4eEQS8t)k<}EbE1N0kjH23N? zKtv&{=Q4iyF_A=@@FLA`&FQ8l`2o~y7>vBbmAM8&<`e%34w>_&*~%%7B8CcSg4~68 z|2#z<`j2MMqS69V9C$nfk10PyHGWX$aJZ;=lGmtTZB-(B&_-P-B9|*#Q=h9p70JlM z%x9WHYsmB;;}b&0hgcHK@x>^Er~jDA`~^6YIb$M|n~4os^c@eXE!`qcWN8smb-r;* z20(w9p=Bbl^TEVl7M&PY3njVKtm$vziQqrxr%*bKc?DCa7h!0*In8aw1rs=RfbQ{e(FZS&}h4NyPDY1veM%DpxvGPH!e>~j)pd!2t^{47fnWErr+Uz>p4%g}; z9eQxytCIjJ{D*J`X6(!;<9-{`)%}s`XbdR+Vw%p*F8&52F_)s|sQ+OuB~W=TB;(UI z8u040a`nmB;^qn+IvHn}EgRV~KBZ|G_mkKE6#7#MVpV@p>|aM(R4{85`x2UGA!HK! zv{^`-&J1Zt@7$+=DPy!lg#lSwrp(3(QX(M%o*jS3uhS&C{_%6{?uKi?ZqAyQPdzfn@%vDE9D?`@E z6q=|F2AEOMJv(8iG~*vj1%H?xM`QO>a!uxa;BNu*bZz=7&#HAn)@{FG(aF%lAH;1Y zg3Xw@GnSlSI-}Cr1rcJeH?e(X@64jhe1a~R5m0MhlzGLVwMx<5MMBbIaCnGBLiAFG8Ppw>_|qA8>?HmlP4=XKx0?CQM%!pIdTgG7$qo(SY+CGOpexTYW7w+xW5~iNEg;ze zdEaWzX86mfZ8TJ)&%$njy8b#;@sP_rP2+e!!Lkg~|9yypKx^e{li2*`3T--j)wx+* z{L9FH0?Y1_jJ-fMejr{3{%a3qHQ!4JyB+| zzl=(C5cLc^t^6@9;6H|#NN4s;MbCCsVsW$W#S{A2XINaAq!Ar&c`-klvoNUwVkx;B zzj=6kyg+m0xk@2cLc*FgI4~KdmK+U#k9G(+bI+Zun_23InLS4xjkvrH=)IPiy+Ji8*{+4|Yfg(8#e0LWES_$FX3M8@Hu z8Y~Si3x*#2V+#FmlRN@-jGc|IjmF}yjmB&LW;D)D@{Y#lH4~h(m<79oKV;}`qj~0a zE_?kD>o;+nv46H5|IqNnPR2^*pVucag{Q0v##71t-_2D<&A1La_C#|)s^53{l|Yvx zykEXl-5|4Iz+bI`L{fmu0eY)P^Jb3fKYiIkqq0_>8~8PzO7J89*b(I|B;7y1GN;O8 zru*N2`5`?1UwMk;W43oit-=BNK75k6e*A}M*ow1>O?YS1{$1pc{44N@TezPXmOtS0 zH0S^^HvcjDD2ze=sCfSj{0GCZR)Jw3{!J9avfO*HRzZgjGc%d%M`ZomNEFIUc#@Zy z?mtG&m;>^U_X{K}#5{KuLXV_(CQ#FoxY?LL-U-weneZaDeG3H_xh`WM#eA5p9LVW}o83?XR#kD=NkGEl%-*neLkZp|x*O>LrCPcv`Qs`)OJR|s2==~iM^vE+irM%08*UseSk$!eKm9M?Bj$MFZ znKC2ODrQr@!7LlCU9u`sN^j|3Bt#R=A@@VBwWKwMNe)XB7S1P4WZOpbFncCN+C9&+ z>Rr&OH>8a)flXp(BO?LENO@};%`YQ}%AVq&Tx(iN5*9WKokU|6piCR(U4II`H0%%3 zXHlV=qeJJaI_F2)sI)4vQ0RRmA<-|-tW_ASVQNqaYb6`?=}IG>?QQIPDgz1DO#^VbO( zV~{8G{w`^tXP%k0@UZaZ_+z!x( z=IV9K&rq{7`8YqXlh?i0R1uqua?@l%5xY{YVdT{oals)Ep>Ve^dH%~UUlpw=nH2Cx z{{QfTM_kZ<9s4*y6**F*rE9{&IpP*-5W?=?afmshe19+Ls@^wVyjX|C)Z;nk{D}B2 zPw_lp97J#3Lfe{##mKHV2c-Jd!m$zn@)unRTx7ACbm*Z2^h2aH5OpYt>rgm4FZ{RW zsNaOb7m=P{`6K_zzo_poiwB|;6i3U5g-mQAtmZG#<00i}pb+wkRFlkgD2h}AGg+JE z0pW=QPyoyXByZ)p2UODl^#F3v@L(GamN!)nLuY`5t)79z9tW)fd01Qc_o7i`UeJL6 zLMppwptZ6IDX(0c?q#+&f>g~kcF`~)28=Tj5_1^^dgr||;hjyF24ft>0q{vnijafA zH_~G?y#K1WmY_G(@W23v(ao$E%csZbRS_KMqvdGW?MC*0t8oJZ548i?tPoF>3#0^f{CVmdQY{*NlCglGsjsg~ID{~k<(#vllc%wi0q zm$Vt{2xfZ;vW3H5CN?tq003QEL=7;kVv9D4Hpa38T8k+^1)|_kN=YC+IDy#E|D!l! zqoeC>8FoCQ-ZD)pcL-xW1Jz=A0c)b9Rd%Zq0pC=Q=+LR0kX0L#3wF$?U4qgSl6P;T ztqlsNvfwS_gFzA%WPZ>xyk~sSx@E7KAF$5F6U+}fNqQ&wP($7JW(hv1?MpEzBP7pL zdS}{9jpi1b2MID$hqDziKFgLevN3Z0_bs6~_%CZ;wu+z8*uQKkqp|;2)l*~ih4M2g z4%Sq^fm&`)Rz{zE>5%`2YS86h`upFh6w{$&^e{r`SHJ&%I+O4JwKEeW>pmIx3oLv6 zGvi}tvijnQ>iHS9WI=gWRlpsDxAac0b?n1qI`rxOD#^)C_wwGFDajdw+*Y5du$h4{ z_o=YlyULrVOPbsY+Xq_>660oOstnwHXF3zzX9{MfUpdzoUth1fWqP>Nt7rFkqE@@v z?=w!42IG=bo(40+Rqpr|$kEAuj@)0Tnk1i1$_z}E;ike&x42*b=_{q);N354@ zcHmH+s`L5K+0-bjKC>%l=4#kiBK$%rmzU{^=OHlYVDwce`Ad!L+)8^R&EAm~5-$ zTlYrE>ucKsX6{YxobfI=$sy&DmEQGav64ZE4{MKwP9QW@iYi)>PTw;Nv9`d7z!U8!NuMK*!g-p)7K zQTOTP0vnUU4L%12UY04yjGtb|v!Zpxsrx0rsEp*glN*iYo78$P7Tj=>+%3IoEc?8& zso9GHrL9vR=ce5>IAeHiYPxR2h{F30Hwa-}W;0K+`u$28)__xjZ#v zH&xxxZROI_4L-iiYPHJ-3kpUhifwEdMWd>4A@$&+iC~aFKK!g-}dO_hwQYtwku+Wb!xm% zEn;t&72o17Nx6CaRBP>kWh`4OP0yxotJ??nNGnk@{@*twirIV!?8>^?fY{J;>tpm9 zy;IF!Y3^`eZa!##(?V~o&WQKrrid%@%Bxh1t}Yo!mKmC(oA~oFHNVe`HmRJbb16v4gSIPYzA$-PO~$r*W%UfX%TC^tVat(GrP{$W?V7Q zTg%p}albdbu32DAu1Rgt=RGSkOX?Cyrc6u8)YSTlc#1{MqR$PH$`3BRh`h(u`z}l>^!#|w$SOC{fi;miucx=u zlskXt@C&NlVRQ>N8!hSrFVz*tZ^Q;n&SM)4x*Dvf5T3(l^47#Y z($Z0->h1jMV^`l?&uNR{*%1@du=8lJ`R$6g>s`;roTw9b3WD{pt=yqX5; zP~nI^tLxdq!i}uE z?L^fw%lEo^YGre0-YhTgDcnB(P2HZX{T3D@t*iWk27YLMxgoK3SDhxW!MPoShjq92 zZ08WoNUJSwa<9BU!>Ya>Sb|px{_iPW^*>`#A3CRrqV$j~)Ji#8w*W5S+{hJZM$C ziU1m<7h*_a#0p>hP>gVM+K2dreI!Qr04col5!&P~+c5HudKzTqM)YL&);Ap-*>m&} z!e+c90?w$8KeZr|3&Ei|PW*%zDt3UjSx6@Z* zwQ0^jN}kboKF;mJ6I>lXycaPezlm@O*~UKp-t}z5rzLCsf*w`SF3BtJxzcj|xMB?d z_bbAz$fH+*Uhj%ubYN)Cux9jci0NHvsn0#^%;hEVq{nvar2vgw<7bF| zO#dE51+sz)=as)94~=$-_f1cFt(UxVgW1>$vy7hfNwmB%b{V>e@pRL2wcb(Z+*lbh zHW1g?St`IK^qDqaI&PkGqQ}PZZ^#od{mbw}9$gXJ*a8b(=^jVxO#L^v@Q&ZNS=;%$ zM3FB##z)sB|5jELZ#|k3A@%Vk{}}DPOxhIRw-|+{{YT=COzhc#IwfMaq5H#nZ`Nl7 zrLTsVx#k?VLC5(4i`Ow8O@qb;y*DS>vl4YZk=DT0?W%IERzNfg)(Qy&3gwzT)3zPa z@bufF)S~X`ce7lu=Q}GUQ}!@1sr?-99%hO~EI;K^#J(fuB%aBk9APOk{`CGBffcT2 zTNwS{8YW(RV0*an7qt;-nzsO;g^eB%wjk4FIhaW^!ab}PtLh9 zOXE#fx}KFbSZ%O#nd?y(kw6=Sme*3Vhn2OIq{A%0rE3yH{56OE=Jh3jhi})TLK`tS0=T+XR^{Z_c zLiSr4xxs}yJ_YfGeb?A#v^$+WRpkQ`o;X~Zzwq?$4|uFs>^V^ZbuNhK$GK}$SFP^P z_0jR1BryRQWb^`T;|>-)wpdLH6UO))uMp!#B^sXHNFU3Wj)rL4N^%!}I$mMJOJ2N+ zCodKO7uZMkivJci63Olt^kGj-e(LXzst*qGe~7+Xje;d@Ux4MtVm1knf78y4>OF8v zD(7O+h+OEvvVg?+dxxUHgzAmqDPi_S;)ilFf~e@6(!?b;iC&u5WTX1hEBtk@6g1u% zkyoytcWXpoH9p5*mNw5}Kj6$MsTnTWZB;AWKku0xL4mtGe)_H}z)U z%OSC|;DjNuL1=MD)hufcw?=i#`mCU7VU^_raYN46dh^F>O&b+QKh6!FvIy>dFEUZL ztEpKC&pJ&+Sj0{X7cUrS*tO}UeT%u?=S=I2_@0%nyTxy|SOi!y-@5`}Jm39Z&;*5&J1^MciMH{cD{zgxjyeHXoJ=H?P_?=5&WpIHe2>P%)(1H3d z!*`eZYe(~d-qN7KY6Y}E*!cAZ5YXvl01+)#kAt>Py^*dryggL`CSkFyrMTSgkTBcW zolQ|fRif>3`k^JZ#iFq4PKP|&(4XX1+2)?3XqKSP%8Aamy=ojIuk6_NnHFkmbY}IZ zfVW3)7NnL(-qRGgT|HH_VT9KsI9th7t?ZG_baHFG|Fz(9POHFfE<49;bCKj%qAa2I zCktaVef@%35AhbtE2n=9Kni15+s3HP#z!}a#>f{xld)0r3l-RiaLJWsx}u`bD^6~q z4(nU3kz9ND{DR9P3yj(i>pF#AmQyi(Fqn#H*ZHNE#}Wqz9RqKKXoMlcnM7pTZ$QNe z_GF|F-rsAZroLyRZ*aL`?=Q8=U3RNhqYyhfzi3S1)sfBILKVKF^xd&NoG8@Pc*Pdc zn3$0LcUmLw*;$$d2O6iRjw5TiiaeTI{;986UO9eQuZyE*NCL^)p^GMm?es-*-Hl=P zC&xTZ?d!%pO+}I?sD}v=%3qy9HKCD;DyE-|9^re5qZ(Sd z{bosa+IUuDAYu#-WnX@rdp{$7+_T8TB?1j^*`ID9L^}jN*`I#9x`34LlNp~8pI@hm zxbCOxTeIhb5!b`6w_0wg_d0XFJNE#Q)^<BcE8q*Q_`)M`xhF9o?G?ghl55=01 zQG8U4VU1p2s_11}tD6uSe%gpPxxBtM;l`V8)5YCd_@(;K3tSf+sb79gHCi~T?G-zR z9ytxB7aj1jLJb*joYJFdQO+jWP8Ter(AToD`|`K1D73sB;U}4(GEH|nC((E*+HxSK zZsQN@)(*s^KYFoeRbj!PY~~xg^oy2SK5u9RiU#4%9UH@Y-|q62>~vUNXrR^GeK0d{ z^ACQi&J)gYZ*-j$K4#}epU;_ac0#}yKY|=um^Fx}@^5Pu#SiSGjjsm@%+onF+7F}MK`8g)(?F`qL(oeRd$zn+Z6?(ot zbFW&44?fd4R_fOpG8$q0F_r7``sIbU-^FO`4eMqr3+3#URBYcVMDo`_TPv7Pqyw zkGy2Le0#kmod%89h23zAGye5hN5LaKKdXFIWS;4V;4C(xvuV;x#;rgR``p6G#AT;%<{&-I&md|SnReN?6&xMXs)4Gzy_DqL~-G|9I7-F^wH8UBT?BUlb`X`G(v*>b(4 zZiaWve#TwIOYZX=ML|miz64|xmE14x_cC5~$6AHf%7~lGHfKHC?Q}tcb^Y6gTgUE} zM+lwCeiTKE@^jZTw!Wwx*|SW3$z@;tdy$Q9{!W^=_y>Gl>OQ=^ooGwXchVi$A1GV$ zMt7{siRbgAn(p+EQk@Ro6PtaFI!u-~B&xV2x@;SZ7{ISVYpq`&AFh>`+Zk1_7;uwq zvrVGLu{?gY64AlOG~ejU<=M1*uYD@t(E6<;@4ddNGVNUj2BU===jBe_v^p!U+Y-$l zcE!C)@g#p^qjZx)CP&m`2m8nV!_Di)%6!)Jz6`rikI2EpM`XEY^2L4KTSCI#h%|P~ z_OtdT1UB+uxDySq(0WngP zNUKByGD3h*0)!AI_nCa>o#^g<&+~nc&*0>p_jbd<9fOmXZ(F^tIsjME^W_8L zgbCU!Ir~ky1w2#Dn)1c?74>0uejks&PgbQYi%Jd_y zw-lLnpInYff4X9(@Q0sXtqI9UNSDb#OKCmyCG?!Rs7Oxhk^cN>{rpA8-`hXlR)0?V zZQ_N9^wEZ64H4UB;(mW$5#;Kc;3^E>IrG~twR2*~#WiL+a*}BOu7Uc{gXxN0Dq~t8 z^V;cvFE^W|KbNxAU#%W&AV1z2pr-jjs}ftf-G|f)4BF z^PR=zgnJV$*zC1$lGWXW(eCOMbL&@)M1e4c4DlZdut5XA+Ij4tglx-~6 z*%PqNi}k=+uZtqsi{>Vi?tHUkaHQI|1T!%m|A8K}cIS>q4cn+v=Hlgs@cLg~U9o4N zYx1o}_Fg)Ebedq>YP+lalxGta0xaeRqc%z8B?s@6p(*}JXlk$INKLU3m}{l567ZB0 z&3{B$u9<%1KHFVa3V6&b{JG!@TWb__I?%u`+5Cxq>i5K~debCr$*j!MSAd1?>rde- zU1}0PV*kW#-O+ryp%xmF{qwITq&F1Q-+6Ug1TizHLnk?!xc8t_1-xPZ0 z8`Kt1Jl+1z4=w-P|51H?(6&!gGkC@gf=RhFxcBEN0rQ4 zO)b_>^pbvLy5?fvezb&Jeo)ebXjwR0` zx2RH?PwniUX_KN9)`)q(mW0`{wzaFewz|qf3(u9#+_NJgz5Byyk^6~%ob$VW`Ep8= zZ1zF+xF|Ovy-rd8f5r3);?Czc4=RBldK;QG~NnS1{34qnkZI^ zdWDKRCw{oR#RC8PM3gN5&$ReCdLg+j)g9}uf6~M&6QWz)x_B|M7t`}DCxT#e%c#{Kxr(NIX{}t-C*Czn8dnlVzlxXK zygq^NNiiM#ReR)0$`Ys00&f3d@liA#`>N%!=PYh(G;O)Wj@tT{CRIH(VM)}w z>SEK6kHkx6zP!2%F;w(H=O4wFqpJTrZJrR}ur!#z1$dK5ttIru6afq$fqi5MFYlT6 z85(#0R#=uFdHF|Z)eFD=7C+yS^YPD*pS&)Q=3jPM2P%_Hxe<<}^0c)Bsnv^5W3S5r zo6h6yRN9__E!D+3Wr;8hAUE)p^rkRu6JJ*wrxYcq(<)`Aj^fjVb!!dj1Q{-u6427C z_||hT9NWq_6$DRNTv}4cWCzymC;oZfyryYeAE~%tP5JZ2scE-Z#uj@?QP5siUs7k- zV5l%Q;9lmP&~?fOYF0g)cu4Bn3y38Xr(7^m@pp3B`r+%hwL~;HLI)c@@Z#>G5ABD_ z0~6ve6QpT(b}_Cy^Y5aAWnTQJD+I|r{>Axz{*X9RVaSxJJ58Io?u=IVV?wBzj9`Bu zz(+S|rIE33hIhHZsdDAk>vv>-FKswRC`D29yiW&*W?UhtY^s~Gx2H00HJ%{75@)>= z-sLuDV|_41p>GP;2eF!?u%Kyoak8gZ+Snbpd`k8QCFL5*7F%p6NXvNAV0Sdp1ML4r z#cul@-Q#-?)lpN1{Q>t;HN1l!F{YI=aq z;XJfNNSh(2Ay-m`v+qZwKY6lh9VZB_`e+u@)uFs`>iYFZBt>77IOk3o)y{sgeHIgG z%1oms^br+~` z%`Lx}L&wgC)`P@bOPNS)$=$%Bj4O_LAm3K-l|a03#BApqC6~ji<7yNWMC%|`sgxy$ zo@PSXpRMa`c1J;X^6{M`qAdxS%h-(7B>$R_FoC*~BOFycrB@MEdJL#8e&KuN1qmjh zMFKOH>XhsX)BF=GdpWKe5;geUxSkI!z4Rp=L!40jm3c*LmP&?=`PlPXeEj9K5}q1Q z{Ap3{?)XdKyHOpBvk955H#{dBq(|crhc_x3DMKXh=crY9!rcOD$0HdER-RelL@eS(^ zVTIPY+?}eD%RZj>?~b~%2jAg69Tb!->=$Y8m(agx;|C(r6TqRo*f=Ti6PTIo$a zv^AKQSv&S!FdMU}*Y)3~DO0LsOUEn_jVXl`U<;tP>@?A^MUJcNsYo`_s$%$wMH_N{ z{{!nVJEGTiZGvjZRMTVr%g#n@@5(?aa8I)OTPBpbQreao1U}EI@m|H7`q+)@yIlAN zc7;Aa>Ak+U15WtWJfN9#mbznGvLQ*F?+o!m$AJMfo`Ladx&J3iCW_Oo(7?4042Z$h zrS0%WmuG(ZP1@J5+!}x^%L9<{_G%XJ32lm*g$Bl4BdTt~dt7KLmklx|@CYEr_&oCu z5B6UE7V>;XFZ!L8<7R&K__LRz(!I7=C9X+RZ}0j&ZYH@UER}g;W`1(K;AzNDS&S0s z*~CX&qjdhAnj=@z8Yah!po(j}d?nlwI~bfX1}BQ+cZb#kyJ{$$Nn8pp-&-n*52)-aK~M6u*oI)qa?sj)wWl%4=D< zFn0UWi4&u=Z5cdM>22r4TaYzv8`xs8xvo?0s8FWsLw{IAXDzxs|5ub+xuebWpg~O` zeY>_UnYauRG@VlI!mbzaE|IgSci@!3zi7i3in@=ubdEOl)s+O=>gVFfdDRgM?p zo9?snmEVUODn9BuhIt-SfM#21=pl6vlOO|k46T&GO@AyC2H+{Mmxg{cVD@$S=uT=$ zIP6>+RIo@kd+@cERSLrlIM-lSMR1$Exwo*R^t+gQT%JHUijJx~{7fY!uJZ5FE}7$j2B7pPlTZ5#e%u4q zlHLcW==}{03sr{Q2vq`p_+le@R;j()+2OkQ5=J|OWpV1!LIxg z(n$SjX4D|$6)g7niQ{GL@u{Wz;{>}65DS@C0%u={`@}!JTio0=O8s82_q?cW)gIFU z{Hvs8ppO!sCR(A4;5-uAk4 zfAp9q50rq1Bs;#jbN<|Av#pUH*qHyUSxD+F|D0k-C@F6$nB`4WeCPSda@%izdxD}@ zlcY$7W%54$F)3E?SpuoXU!miPQL#s_q=Z85O1Eo|=?F`h1mq9R1#7>?oJg2Pii?*C>k7Cl@NzL@$C8PI3d2!_+h>J>XVbbd6|&`91a)K{Zu%yTb4=AcsbJf3xv&QrpXUPDsV+*p6IF zNgcZ!;F_c>OPW4Exh>}kr0C^Kr%vxU`G0>dAA9r)X{JqiBYv98M9wI-j*>*l+;%wU zm=lz?H~nM*&o@MUTJ8E+B;-r#>-ywDSMSgkE zkS@<PlB>PpEShJ^ahD$IFnO*X_K$x zN#!XxcR0~*ce#b+$?ibyoyV8WmZjNnlu_5Nb=%M0V#^_KAVf7HyE&Jtm2H}|T4x)L z>5carsl~q#_XnzX=HrUp3dsGGz1a}!tZ6?ByFPr=DPd4!sH`sVuY_JY`Q37g3??bk z{?KloY`#IjSpgY8a3K8?=)~YFL>B{HY`WFtyqdBgo{WZXZ= z^K0@y=yKb~KIx;f#k3v3L{KK(CR398-@N$HMA*%z^Y)i-k2B%k@(*-WsNoelIf6wC zsR(UvQmGA*99{tNhI0e($8cf?b-9)scTO}-4C3R&}%o( zpy%aTI_Yb>32kItXzq!Ags$&gY^Wg*(5!$~4-)(oo|$Z(0M3Y_%(_(Ho*_ z8Ta~Vg2KcDi(07!et8YhW@cA$cb8p$a)T4EQh|5{^c_t%crSf=*F;6HuDl1m~)Wke!zK zTF}jwfe5u$5?b76kE%1>Jp2|wXwRkIss4LP!Zcz|6&SUplwN@Y5jE_6Gt0gxA^jwE zUUwiatJ7arBAg(DRRyP^#OR?-gKtuuD*0CC@6M_p;j91%u|c)6RucNB$@4XAnbvHx z+3($AIZ2(LBW*o+2#P4oIUNZPx_LFc_Y!*HFrw&6<~$>P?^e(?u-Z};1%2|qI%jqO zU8mex*$vfUahs)G`#S{`?+Sy8Jmm)=WYx%kMt`In^~BeS$Jehvw69UCbnB3ot;1m- z#bj^jY4HT@JLTx)(9|PN&E%Qs&9F9GVh6bCf$2<=4A@vBWrOz|O{ufJiRQCShD7tX z7JaW8oi3tuLWo>dINAJ*IZG;0Dv=1rsc793Gk*muUgF)kMjAJsxsL9MD<)e-&8UyP{^U|8-THjU7sLCgz}J{!t)}~^b|h| zQm~t)@YpJp!3I}+%Af`5xzK)3itn6n+Rf-2p{q(4hoFL;L{Kr#L7kYOCuk1#yk~k$ z7w8M5mkeBP^T+Dm)Pv5>AH-`|`3lNru7P7zC}^$g!0>h#K%q0Oi4688dQX80yr)0~ za7I0sJq3&vo+vA0;_jrDdO>e29O*Q%t(w&I9JCzX1TJu;l*t#u4=4c=yx*o>c7WSj z$kT+(+aF8&cla-bVu*}W7uJ7^wirqwVa>D%q;WB4Bn`Ex44Ny{%z@>{1f&-nlVc-C zMGI@XeqQ;Q+HCZ$KCj!{?4P(?S&&lxQ>#ke=G=3X39YtgjWp8ZG4iPY6*e~C zEDFj}#4YYIuNbyqYMp5gUVeX{Fv60yq)Gx^vq!p9yFK17t0y>=&E zz+M)`H){;Axcg^VA4KandVB!x-VqE^iLnj<0%M7nc7{DS^_<gp7MoW zN>ym}E&wH$$+S7)c-a4me)GtNDZOH$y!iGgSelY82AdhZq8{@cIX}x^?u|9jq+r1M zB9eic7{l2$259MIa0vADd@4p}vYtdLG*hi}^Swy}uBpsBLh@;Zo~R&Gm@f#6D+8Yg z4U`J6puAcH1U!VZuDid&B@1*a6pFZo+`4fbV&afq%oY2D+7-K701PX5eD3KdU_h&P z3G834+XX5)FAIeGJ_UdW+LzXud_U(H4H>XoGj9rL+^(C9KqY(#^W=F;lVDC)3urt= z_ygJqyK>r+{zayP56iYHt4Qt=e-Hm$V+cLbG|FM}crdS%m}aEU8#+gUh;BOw`uYtV zc5f6&;pagX)3EY3cXr7_{!LPgkgIx~lWi{a@Ai=83;9loKi9$s4ga&>JRNpLMnPBY ziXjvXs807R>)xQJj(P?7RJPhZ7mf$;45`+zrC;0-1vXS78&2r%)%c?s2^q4vA7?H9 zrN{=J%P~Ym5_tjSdDCk)sO0a3;h>$xeu&Ki?d14LP2*(KwYb~`}okcLe8pnfh zqjsvN0=|5ZqLwCySRoDsiv;1>pvJD6jDiO3CQ}}brq(`Go5OuH# zTYB0MwoNxgH*WZmD z(vug2MrNv~&b22nWYs7JHjwild(;#@C-w@9(wHaQmqO_Tx3kK*J({|B|OjG*fIJ}ht{*5a0Z$G8vw>~YDZBNS~}|c ztg-xs%2L03c$(x_H#Fa6URmC?S8iT6U{=Wqfke%hrKxL!2kz?1_APv(S#y*$YTgcV zx^g1g>m7DO>V-j`osvOc*d2(?YYULHn_|Ki@tx8$NQ3uGqXuWBs7DY3(g3!dp6#hI zZ9p3yL13cUoj+Qf1L}qDMasA?O(#8)y>FWA$<-|$%vbPX9yUO6CP!et7u-2Z6k+8@ zS~bjTVW-0J@`tEJWc^A~qtm6mD$^@7U2g~76jh^UG1uG#%>wa@!*uEQOtU=MuN1eGghRDq*EqrT>E3Y6jDkKLX*b4N33ovC%?t1tG_#GQ%6nTK#QtfJZ%WHL=W< z1g)U8IgUW(7QiDr9<{vWg&U9C6XvS7-u*fp$A24T{ln>5bZ?zm7vOPMS&~j~;tP5E zt5nBX@9k0Gw;{j1^*N8fKdssHVU?;KpB8d&9Uk<;FhBer+MIPnB8cm4fS&Gy&0mL? z2X!4445V#`UVT(jm1<;|Vk9W{aN^w=BHm}d&(_mM)2-=XqA|mG_&qAwaoBF^A7(l@ zI74fO?Nk54wu*mKc$j}+6U`w{MTKyAn77e~df9y{!VyAXt(1y-8?!mnA4aLDmk0|U z=&7c>4a#OwJ1p|~Ideew$E!@uIK@2qK}yp;oYwOKb}h5O0u zm0&{Zc14agjm(34ETZkCq{f=wT!eR+^7=q>^X-bWykV2sgE)`rB1IW3c_zmr$U^h;4~7Rhr9Z=}%$7cARdKBt zYIO!Cx1UmkCu>yg>^#_Lxx5>#@E!EEo@fSCOD0cS;#x#_YiD4X0UlvF+%69ve%I(M ze+vy(CTUdL?atCxf0hOGc$c|Od6-dvl>~>@D$eH_og9QFc;Kd=&*B$Q%f;k8Dw9+Y zpM$XH1XuA6Nlwt+8TM?+4&i_`EC@Ckw#L6u+n9T>a8n0 zbEg>ku7bV-ZPO4il6tv=Hdx*LcI%>r{17ku5;!pt3f)Cj6-D014);*9NFf4ETt%ca zWZ#1xO;2W(*^?fQoo7CCFrF|^9p&#h%nTo#;c&k|Tvfou`y6j~rVq|&lpVpGZg6XR z02A30{(~O$&Q{|yfw7Ap0JKD4ek>4Vy!n(e+UsRjPcv!>K`pHi#!ukm&Bof;7NaqQ zZwkXmNev@ee%Bt$vN_@9VZBH+m0%(F2w3vd2vDqU;I^t=(kBOHcqWd1S#ETPg`NtR z>z)D+SStjGa+Zyr2+ePWF5=(xY6GmNmEzQ$%)?{AlnssRGJMS3N~w=Ml{5Bg>EuK1%+eBd?IE$O84a&-Kk8}jr4nNcaEll`C<7aPppf*Ut7WC zvw1q}qIB=T@}UZfs_cu^i+;l-1Q3fsMP2<`Q$gyeRpwaNIQCtNq)kpdMg&IketGzJ zFw%U8(WMXk4b1$9CKdS-X=RrIaLNHjX%xVSLNF=^7}-zYFQ#Wm50?Y=P>@Te@gb$A z{Ajr`6;vY=Pj|{vnIZs*y=|(b-MEyAip0>Ius)-AZIFchf$)1I`|E&X z7({7FSiZR3q9O-+&1a47i%e5j{~~DCy5~=oocE-9d(BSGTG4Of!IxYynoQ}5@*`B& zI!9jl+t~T?x78a(m1fN_^3T!-vhT$eyuta7!!q+1n8UFEyw9<~ku5VH#hi}B!5M!w zb%p;?3Ki?)enlEYqJd2p?d|zbeHHA>%yQ>z51X8?0m<@m13Nn;SXa|yi)D7czAijQ zxSuFSZNx>0SLJ~sLB9p^80!yEx-gf7cMTFRJdl%rWq>=@3(w>jnSZZ>z&b^=x8Gu^ zz`7Q5g5Fe25gqB51)Hg-kg**m23Sbg?Fz_Dsc-`ts$=Kh!+z4%`{!$0OAUvqF2BL5 zNT{~z-2UKwJjlDS2mVGTxceZO|9gI`ziS*gWA4R}NO2{vFu6jZ@@C*O&BO)$zr_^_ zP(?NkTG(n{tInbm9f776a7yo5Y-0LU`ikK&QLO*M+y3(d_%EPWse>b4^44swkO`{& zCBN2f_5j_5%Xpo$v^w;Yipb&t*Ztg<3A^mJKoEAvTdG{&8n;0AK|D10DjC<$lsIC9 zQZG3cD}--nh2nSflgt0+P93TxkMTNxOfGNBq~}sHG?6)YG@M?i5esnOBsSj>!~AaD zWypj)<8NpHrOe`1J_cRw<~G#+60{$+r@=(CC@oCU#dzO^J>tB#b`aX9?o_lTNwj5k zkP{c7y=(ko0lfsxLy~jwyE7;+T9|Qt&V(K|54+dzkuGc=odkEz8DHpT;?#hr=fPydFSA{eIlVhPg0ViMp z)2V#Qcloh()NihDDf<|RF!tz|Z1$0I|7ksoGYO%s>I0pT+Ay2b*h5bamZ~iy+)GQc%ueOVR zwLGOW)-?*xr=EtmUV*;=PgLvk+X8@4961Cpz@8?%hA{iWN7O5R|w=Plv~-n-sa>UX_gV1J4FgBd^O9a|h=3r;P%C`gzI;CA+eG?1CfuJIlv z>P20epUC&kKfyu9V4x?LU4<=UGNcw)64+>XXYx+r0Ml~j?hI1-qG;Y=($`SMZG_M) z$%Zz{TOBwyeZ4mXGKFu>M3Mu{j2X^vl7Ex3NHm(PH}_992S4!7 z$KF@gBYz6^DM26cgRlT=g_@?)+_U8e9*C}g%FOh<1)`^5e#~%Jpr^vUwb#hZb7Zr~ z#~{fa6g#r*#r3j(gC1(!jo@3_ql85YM>+b43;Jr)1c>RI`@!~1mue~i~%5qexQPpGs$woU;Qyx~16sWC^4jt$DvnFJHf#@w7V zENmobLz6jO=J9+m30%X7CM0>UL9;Rc2*8*O61CHdAQ1CZ@(S2Ea4Rk-cbH=JvQmZ4 z-Jnb(Fi3@sKlZPQfwc5*Y>nw9*CL7fAL?vfmaUk0fwV|J$0wPCHz_UB5o8fD0vf*h zZ-W(|=&3W!AFPsKe)OBlQYZqoUr-V?L=$sdzWyn_%u``XfcgrUwqH7x9;)2Z3r7V| zzq||wUds2y*NB&(pm~W<4nrAj2Ews6n{x*Kl#}#a5_?(HY%2nlkb&TLDeQ*jkWW+p z;!E9UbW{7qLh)~;MEw=M7xZ)kY9VhY6ezj6TvP3WhJEG?8$xY zNmjETxP6~}I3&sTYC{$i*2zrlUMf^RO-7eqe1TVIn$UgFR{GRThJbT3uR7X(lZ8yC zZPZjmM%Xyy@w~NvhcbB_6v5Un5f!=Dy^2oOX8ujmyj}4k;Oq>ney7tl6I#8{+Ai5J z7EZYa>I)dU^K`65p>f#8#c=3a>O?Gm0Av!73w2tLrG74vH`8BDOdE-fJ~=`T$hJ0GfJ5^Ml`IZ;VTwyW5qL@}H;+&75_W34V^ z2(cr?y$KFGA&c##SITmAd`A|#m@a{hDytUQq=j~Sf7*@6Gf>}T@b@q&r#6X|T2S(U z^}dBM(3ZbXO*uUT^5^@tHD;d7%)1Pt5|Z=H$_dokZn$q`U#-F-wWMHUpApXX&Uyp~ zfwkM&1!kw=m@|c%P3Cr5&8YBS6;J@h zUX%YreMkB?JT?@_#RXgfYSBHG9ibv4N)+@=S4<(0jn(Cc8|gq#9X@ZcYO8jYx(<^2 zI_XF5t=hHNc^!38*C-oBT$Q5>xW+W+;Z#WK{Tntz$v$Ur#$(y1nCWL*zTC{qg=#s1 zJdA|}?Q*!yb8PnYcu-h5u`BG*8?JgHq6id{R^?!moGID$P`c!4s-;6cS@cLqj?Q*z zc0z*?+X-^pHFxZ?8ckt=^+sfbF{vmBvL$rM>kNCK(|swNxvsfJAV2$kAVl0Xj{i>jMfjBwga{d?~jhiBrag1gehTY^iL#IimdE8k{ zXtsNVq3JQZ2-Pro&7w(=eA{_|?e%>jw*%LB4HZ&&D-*0;{N)M3es2siko^Ti){oep zP^b^G-2t&PWFC%IYnWq}gd^TF^mx~zM&&AXHa)?^*qu>#2~^{F!vcXPCiGV~@PcnL zWs>iCjQu8LO$6jTX9cq9kdeBl=X142hG0O2@{Jni^d^+7efb(VR&YLKyXMJA4#gYg zRw-Ll9JU%ePfzyLxkln~=|f51=dJFoic$r=!qr*`No^dIL07{vu}IPPyb9Of=%FS! zilblhR7n2@S!@7gu^c2kHPSa_zH1!2D|7^L4U~FKl&9I1eu*g*UsuovgRm&G^BeeoX>?cZ0VnB znhS-6=z=gd{Ux%f{8OwO&cFThh4*r9gQd;Z^+l2sC&Yx z52DJB^gPXu^u)^kV084hRcu^@j@{t2Euvv6oFwSM@cNH2(+QBG&anGoZea+R8(pPf zaxs`3B;E-US4&sQvgkuWd_bF->%3Eqyfg$nG|>@a>IDyt!eZb~X)9*Iht&X+sNQfj z(x{;K{JmH$zsD?@#LDB45eezW&LU$Vvc?uIoRTozoZU=yH3FNbl9iK!Cao*jwW$z} zv$WywA>)|kFmQ?yUZtIF_QJifb;KT~0dIhaWt=|?wel69LMKy>rm|~;>r9eK^ymh2 zzdv`O$krQRq}R)h-#n(Q``lZJ?|FymaQGW|GS0nK`~xqW-ZQ)k+X`uUHq8ffv&h`w z6Ujd=?9MABz%xL0_5{AZfm}Tak7cI9m4Qz(@gK$)l5hqhntq)7)MOotP*wFFnAzz( zjPRtu0PWU=o=`qAsxe?3?8Knro@{x?rx^v(m31Vi2?LVZleQY*kXa8E={;B%jEsYk z38Uo=$d%zO1wGX@wvYsSQ$!`C1k0a)0^O;Fqv0?c1D|GIAg)36u@#2xGcJ-~jd+8i zH;zG1@-($DtdKLW);+-8V?ly$O^_H>}kX11r= z{g-4bntwMst&->b|9w5BfJ|@0 zMnys1{qWZa?^7ntv_-DWK|bslW{yLNd+m`;=BLbMn-%{E`nZFSONW`oFu1r$>uy{( ziQcFeRX}mGGz0wFJ@?^C2^^}oGyi0EBd(F}KwheyJIiJlG_z~gVp8~qzVxR9q5on+ z{i`U`5M*{q0oo6IdWrjV5t*9epXQ(^A&ME5Vk3kz2XAzj=O05QA$D#C9Qbc z@O*d^wF2HmS;s?kw(BIH=^?z?17;t`mz$N=E*1Hh9|uG8G*6j>LHsJ7iadg)z{e`o z0z$Fh`Q`H}+`WRKW}tI>Y34%LSQS|p+s__)84lm!Zh-xCIJ)}+PQDNfG|Vi}r1m?G z=kj&I$de?c>+jW)=yY!8S&dKu!LX{|?s^e`YeX%z{dVa~=!0|?e7Klw!O@-$kj;=_ zQ3x| zP?gtewVp(H)bD7<5NZUwAoHjix@`Zy@>EBfc=rv#f{J(hq=74rG?6tgUFmcN93^!T zKC16$gFT1sD^0ssV?)i5%~!aW2Ex{Kw%U^b6$)T-Fkmful(Ww*@xB1yxHBH&0h}R4 z=*9CORt&HQhJ*YlSKsq;zP`q-l}f-C$2?|s4-4_2jkr_xi*MD9X(5lO9^ z1g`v}3+yAs}ZBZEj27Rz#4%{07M2a-rcz5v-MB_*^X zkU*R(Q5~12hU(m@Uzk=P)^W9}ykLWP%pC*UNe<#Ct5rl)W&bdDJ?eUx*$1y@%yW)I zl}VX8KE~W*0ctP0$3kZfz5=2M_NFYSNsI3q4zR*M3-aeXvYE*KV0Y2>N%U-Y(RT|y zHF(eT-U=w+zap&JAX<~7jLX~?3%uC7hz;ol?A>jVJw(y>WGA?!7~S`gF+ z+4Z&Me10iaGpCvTdnuM{9D{sn>-n4wFcJgwUo3qL z>;nR_zCHgXk=$fZxBc!$^q`CfDW+ur!?eR9F|feir*DmJeKBHSXq2@SXKDj_b_FC7 zU+3)8<=(dj10fu0y^@>_xVY4KbYb@^J+hk%J%^bh=32hK0(Xvq4R(P2ZMF8=dfYbm zr+w~5PF@H$`*gy+|85N8hp1}1#rRV2OK4?iRL0Mg6}(^{t1;(6_B=Z zFxQ7z>zro#8Zn`=H_rQ}?EYcNZD|?}A#^0xV2ocV%h|+lFkZ6TJ*_W1YiJU;k542+ z00yPlT`=?xb@@X_iLi{;WSi2OGMRqUZKU@@(P0t@ z*Q)E-H7|pC;a(04V~dYK`iZTSWo~gdl1no{W604x73^i{P3xo{N?y5OB)q3VR1=5A zb1>qP3FZ=$g94)SwfHw=IU8;;S*jyt`j%$o$XPv=7X!Vb!WuA#uustDJ+TzAjsgB& zfz0h7VmEYxjq>(ZP6rK;KofS=dRsA)r6*2Xig*bOhE&#sQV9S6J4tAU?buaGh(dH6rF=lh@w{fNI8P=xW1`fSZ*0 z6#xneWllcRL!7zl2OE$v`wwA{z0)dZH#0lD2S%840zKI>%{lPbYu>p>au&K4Ia9#B zB3f-$3(x^@B}38sMH*UXSis?~M^#v%#OYohnnvVFr#iEI-v zXooGZF=I3AQ^%WV>}W+xPNHq5fGq340De=aWL&p*2Jv(ExlgE$m;nBatGW%X87&54 zQ$tKo6Tm9b%Q;=ZUFJTw(*Z8bNA?7tki1+)I#VDztB$}~mInD2#FM>Ya=`k!8$$Sp z-JJ&TGw=bU0lxR&c^{aX_Kr$+E8Jq~^Xa-;QwCamxeVz6xsJNodd-mnuA8|J_(}#@ z@W6P`ni&)Ta(V8rlN-xiDmmFxIil0x1*h3g+|-&H)0m4K&NjA=TDD&;IC^!&u*b+= z@)p_OBVqzZxAujfHtlwgC?!sTP5>Cm#r`o61x{^FA*VqdhK8m+TH`#=q8<;X2z1g1d25Wa#uqDq{GLSaGwxTBQA13`5e zSlRgpKxN_;Qm~wFakX)q8V;CNOFTykt^%CzA~U1N`R<|C@j~Fb`^%1Oc%1Ppf47Q8C7q8T2)u00St+YCB1ZsLh~_Iq z9Lpo06o!$I6hQZ!VC$EP10ZOMiX zNGm{rTn8}4Q<@5e@Ivp0rCR)h0WJVb=9n(iz6<%qaDMBR94$CoPQg{bWOW(~9?7W` z?#tnxqXY0Vs}r)?{lob&4vTbf*%cAe>}d3XUe;;Z2XliD{$|oOf$4m1(Q!q0cL6tg zhS03PBa!%!jrowhpqZVCc8xF%SlgW9r>hO+Tcj?S?V4XfKYkNrZ-ReQ3MLvOtnBB9 zVVp-S80l@ZA}4${RH210sS5R=tUQz)eXg^XLJA3BZI;|Nxtl<6Q17}MrW2h$3BelK zKE$Bt@TwRo4gy^tz89G!m65`B$h*^hT#@39SqV=erpy|N=@pOb05CCu8-d!bPVjlb z5#;8=Fhwc~bifp4$kYfb?EZbo@q7LEzl?;`DIwKD=+Psrg19gaKny0+iyA8g!b3>J z7TKphlbwg`z^v(c3X#xfZcxw?7zchhI%aT)+4$_y!1zP0wyBa4D14w$m{x9g(Ewyb zI>^cN5@b9+a5l(<)jX34GEZa{WFtWvQ;>JhfaIIM9l_VVdF4%9J*^V>fNfBE!fv!c zO$$-Cb=G!%xO*595ah9GJNYuA@d$Wz$m4Umh?L;OJJ{V*fJXmFa>E z=+UH2`zOS=byzV?MYM3YMUR7Fi42a@zs@J=*IVfruU_4jw=je^;8Vt5xG_PF3#R zoke$7!+ugA14Nzj6BCIg{}lmraV4aNb6Lc>TRnNZ z;Q!Qr%?;=$A(F7y^3W5&Rn#QB$2-UHAM5#G00kI0n{SO9ro49e0ImbDM07 z3-af3Dc>N_(i^Z6vxd{mC?j8IrM@NU>e9iyfYyVa`XcN z&ST{{kCh+Q(WX`;88?JS04;)IS0D|+*WYS4M|xHx6U#2`2=ey{y*#5D;~;bE<^M#2 zl&zixI7AunnCDQ?APhZ(<|F4k|HZr&c z=FWW{ViAc&de(8kEi5LDD3}2!uk(N>O+$qelM@K@LT14!E7JkaM0|WXTT?X$MA+SF zxjG_?IHr&k?&-AjkKv5amTXxp%iP4bf8bKoy-Xmiomo)c6~HF=wZ z>t&#V|H3uOgO1U{dkQZ9XH%rgCoIH7H5Z7H;4zj6_>&w|q$sUpy5iya^aJFj?Yjv2;p4bwAFLZ5MvQr?5+v!+<1i`$mgUv zT9_S%c$GR_&ASEPk!Y1VDHk0Ra45#&tu=_)98G35)`TIFwAb1K5T@_|@=>jx-pJVk zndM7teWYhP+l5CSV2@;SI-Tep=RH>$t@OD?>hOpdi+Q}hvQ23l=G%A&oEph9eFo^0 z7ISHy9~fgIW=)CoZ1xnpi|)eKOAvn0iryojppX?P!JP&X0+7r}9l0xj<5DmUXk04@ zLJJ@DHc?*7a~}GNye$Gf^zzzWwdnNCHvpN9_>#0b(#xM3W<95&tBwK(6!j3x08j&N zRiy@e3>7Rn8zKSyf#A!&69He`LC!vrIEIz+>NymmkaN{h>VT**9l73&+-LCvxIu(U zIW9uF18)lV1o?9`H-8>G$47MkO?`5&Iv@qQDLiB;gPEXC0e6OZW^)3+10w-%9iCIq zf&hYr2>zG_LHahcWW}&&e9Og*Ha=MVdgB?*ikjzPBNGJ70pu>ui@Hsr zG6+q<;gHKGVl3bqjI=SMnuoA=oU5HU7V&9&bd1HWI^W1qm@i%|u;d`|p}<;mh3pBI zWkQk;Arf>=e5rr{%0j|{GNfnLx%L&T3mo);SX;ZbU3yj`cpm61R~@SnXdlL7P(q@D zuLqC-FMnERvFJ}-{-^=ObFjN3AdVUj1ry9;$H8w-f(Vs6OEv!WR4R%}S zxi@2ZL{K0X-XMRLAerZ}(~*f0$vv6PSseuzL>8cQt>AQYcdz7=|2NZTVd%kTc<>kY zjJr5NLF>RPNKSc9n9nDDyPilOqP&mt8;A)|OFly_5)%#J81j#2)i;76EREzAP9(En zU|&0zd!if$P=-_p4qL#%@V`mB&p9ENAVCeM*P+e5>x)l(F_%=JyhK;K8iI1VuWnVN z@B+9+5D)SJ_eU|5FA%Fxt@1dd+6;=TLDZCqp#D5{0UHz`6mh@?%~tWqXO#m-*T_8q z@U&_7&!s^`lJL&ofit;k1(IyetKo1)4oIGyjj#%#7+wNdavd80^0mO@p!@y9ODPCr zU>13$54anB@^0zIkiCz{()hKvYh9Yido3*@x)LN5Lz za;v1@Fm|A_!=f|rz@rdpE_7MaS+4=rOa#$tyJT*hrlNG{0_YgLr*iPa`e%k+d zD#sEM6f;q{{!uT_nT(PqU}eO3{SyIY$PwsUj%d%l*wfGB?q&}PR979(|4tQlK0lU0 z`SV2Y#Ai_CI3=3j=|rKID}Z89GzL-zMb41Cr#_$a+<`cgwuOMX&xT*iq9AG1)y^5| zb)9;ikohvDYp^Jw;REq8@Eq%np^X_Fco9G-TU!HhHSNDKt!RK{qE>0#zaJdk8^a@xM5seQU1y>z8z6q{BKMVj~feBDm z0i^eZu7*n*;gIBiXo90dBtF`|zYk_B@6JYQ7a?BpnRy+`LcsptNf8Gn!x0)}Z>U@Y zV~Wr~$X7Wep=hK2|DaEI`}6+2)cx~0nZ6AFS&qyZ?Pnd(Cd{-BA&W*Vh zfRHAVTs904j7E_OAuLt+9RT}3xjkoJB&Kh($zPGi-7Ef+t3rMaf4Br|7SfZxl3=VF zI4Nu{(}Ru4Y*7-6D5cAp4j34#$+4*?qqH`buO2cNTHo0V00rtj z6fxGt0L08~$pPO^d{_p#fL74=yhPa;<4e7OJ#^zB z_lgrjs)7<SVf&WF~iH~%L-g#aLvSmS4%P(OmVKsMvgQQvcdtA&M;Apnu% zj3+i4x!U``%rKve8Oh+jC^MnI15maJ{+xUd3QjJtnL4KXqLalR{&0!6FHFE2(?eHn25?IBgch=H=L-p%8x1 zaf4_h9FG1MvFvn+Gr%)mpusb{;B?FvoP4Y)=8Ow)OXd>psy3r)J9lKTyRH@)5b+mn zia~*jgY?$!Xte4d{+&tL&kq@9&qEa#({Zq~gDXy;z9-AIEV5vN`#0q&U`sSOY2!M9{u8 z3+2AKA8!4e!5p_~@gH#v}iaJkS2N|b*8KkdB_kex?$C;IY|x2A>- zBq70D_+d?8iI=yS(SONUmI@mpykIM9Q;Smuge;F`*_OtU1_{a0O!54HI4)2nq+%yv ziz2XI@)B&4$~wq0LySRTF%gd0H56FF_OoTP#f1Rfjj9+)gWhed0WkS4IwxJiYSZuOIw>f3h=w z2t=&lY(tK@1-Rm;pZd_xKMJ?|&?^sa zyZ_~1Y&m-D|17F5dTT=2_0}xDmWUSxQTdC@&)FxR!UjC|91dw1iD#Tl9iat&1>mw( zt;^+a&#b{q=EPb2k|`?m!th0+NXq^GL$5rFI`yU_CpT<5xm|u5daKx@uiheH2k#|^ zegmoQ&nK??%GR5A9hv`Kyhs)gBs&lM%N}-zW%p;v<9o=;;z)k%#IHVZ@tLpX6qF@) zc(q&>zWJOl?f*5Lo?n{tz~gxH%#Yv8@`^YMdU5kWBxdK>pHKYR55KqV_r=ee&;H=# zkN54t%~3qSW@kPEFWcJN5Nx~N{fo}W5A2vh0;C%0rL*l-LlKAIm19JS%c$B4IKUrKhfEOGhJ4Lf=WL7Z! z{?Bg{Md^#*`jXiA12FQh{)B4duiheE22djl4JgeCcia0Lll$KLhm$w`9}nO8DLzj` zszu1-uC{%8+b=%$v7zj-Z2LCcu_yoW`iIZRYj2n;ZfatSmx!E+beBD1!St<9f9ky} z&c^{mKTdl|RG>I?vGSY62|x3e?COGS^X;iG&$;~Pj}!@ybjI{SqJp4%ZE+F2Z#N!F_BT8c`DK3~63Hh!cehxu)$BS?N_P%X&`7f?VcOOT@AyN-K zcJP&#?)u^7IMZ%<@vm;*oE3$sJ=w+cj}P7XckkG?EPHi^Ba1MHA7Rdc>~i^)yYFAkjmeWU=jIP3 zkLUb1eqNlaqKp~IYeliGIL=@E)|WqgdX`gu`z3+)Z7ct9>h@hn zw!b}lhCxv%cKiuc-1+I6ZFpA0ym$I7C;x*8?!#bz;pF7R(PJN^%lI#{Ek_BP-2+8j z=LHqgDvW>M&qZ2AI=$ph@h<$0eLui&MH8Vb9^k|UMcl+t!nM*Wu2Z6JZ<+ax6-Qo`Tbw113#Pv%aQpl%{}T(fURK~Hh`Nh#RO9_joS@key&HS{+b3W3 zl_mGjd2H3wEC18I_-XczyC(1p>GFHBNV%enLw3lVTLe5TrQLq`@f8`=0$w4f&lcS!BgJlBu}$P9ddcb?XJM{CYO|keECwzfg;`jce-V zR8Wb#;MmhEFT59KBjfz1pa1RNN$8s4{oLK6u%~BIaf%6isCE#}lx;UE@@v`4r)~z$ z-gx0Jee%f5zxA05k3RR+zn=N$Klv~J&t1RtOKiX(!(E zuR8iC4}9+UCssfES1;^4vgz|5KD7MU$L@LXou{9-e)^`#{j0~$`t*v!`%XOb z^tboCdh*ecqhGsq>!V}S-(SA?$j0fDf4} zhmL<-eE#J&toPX+|NhADOgwh_iU08A+0*xp9G!RT)}Ot0`k$8nn27|q_7lluXy9aneQC9bH`5)z4V8>X%{|u;2pQ&H@%LXc;vQi=gu72^T9u8TlQM`oOt|_Z^wPOKk2#*xaX2KL6>d z!`P)W7tTz)EOzlVFz?Q-caOYb>e0Kuc=(Koy@zfCoIC#Y**CxN%aHT+z3&i{1WfNd z>(fBzMd4K079Dy0j8Nip+fJML=A38O&OdbjuH&EG@xJMsrd~Mx#AU}{J^8hr-(UVO z@U3jCcAc2G^Wa0bU5srzwDs=aeSC@7xxcvk(XG>GEiQ4eUo;{B|{e_!ve{o{#UUJSa96onu+vL6QlsU)$30}!N z_o%jW{{m+_@yNk#+s=LJOQ#6{;F>EA-Ff#}0>=~2Y%6Dl z4a;6X{^0Rnotk{`fu9^ccVgFzhmJgd=N-EaK5@snaNn~&jexx4Fjm}k!}P+5M%`JyKgxW0Wc$<&B1}HCFx$Q} zCLdcRw&HLGz17O(F6Cao;ms9eRtgW_U%7-=8@-ae*VSB_dfl_ zv+g}`a@oiVC~(@R4+v+Q{dFI{!#R_yb07oP=izrI%(`S@7o=Ue6c^%Ge1!sQQ&v~}-8nUAPj_W2t=c*kk? z?icy-jvK#&AiDv3_F9repYVR+Bae+t!@Mlo{(k58_na~L_}I~}tv<4U*P)lk@A&MQ zFMjFp<$rbK#PklaeGK^=WXrL~PZP;<*=@O92)VEA%C1p>Jjp{p4+gqc{mp z{o~#_D?a(ki(fo;&*ZX^$>+at^LGx6oO=1g`}SqNiG+3P@XRZl&w_>lKe=e~e5 z=IeV8+_3+KJq2>u=X1p=di0)iMMgXzqD%NZdHkIG1brQypsz>Lhs#}-C6&|fJ#d}~ zL}bUuvJ((Hm3@*!V5y0hpV|L79MhDb7E)R8swaPS8VP;r#lrCSd%mNbnTIt3?n`BXJ->tvGSyndKv6r$O?Z$@6xgZrLib z{=Ektp$vZ>4r!6IjfKyxcfaszB)f0IuzbIAyS~eIU9tZY;<$YNp$o;?x%uuJcHS+L zxCr13?kR#9{&(y`5mBd|c-8bbUwiaVo_#ZN;g46&AA3v`A4@6@qUD!0UdFL*K)D#Xmcr)4Z!Wk3q-TnhO{F1-icJ9R9L()w6Ckqe)~ z|Lywjt)ddRaKRXk$}GGN-?-yfGQ*DkdX_8xV#(pxP5o$P7FoiykDppLa`_6V57e`Q z?)d8<_Gvm&M6vMdEGfYG3?jxb*F0v0pw6^hjP z7bCkC(K2(tsG4qDICDRYyyNuT4YTda&aK18zIUhCEMfS}`u!_*ocPw9Q$L(Kwc;1M zPCaw^i6=&;P9EGfb#m|BbLMqm!2es^r+_|V9uAH8Bc>k8t$p^=N%Y!G7$hepm{ zvw2kT43E5L^tvsh#rQYdh_t* z=nVJtza>kD=i|Qx&|}e}#o2#Lm!31cc=3|q`Sa%wFIcdE{sV2%(uEms@hRpNb2@zr z-i#kI#Qf|(tT%7&yhYh!V!FKc6!;f5 zs-M}Iur0@>_>|XXTNR#yH(MX;alhazqB`Emcu3NKi^YDWCG<^Q~V;>v7 z{Ooy)7Z0C3fBqtbB-A=*!8~Yo>GJL*Nm=}6YGT=)~p*v zI$b}$`S(UQT`;!c`mv2dIM%#i?7Fc{mtMbSEmH2gMz^eAJGyeynr%Z!xS3vy&&jhY z3|oM7JGyb*_|+m@mo5=X*KFe`08Wzo1l7vu<|Yl2$LIDf-yl@2|h77L6{({ zj6ih(4Rgax9ek^9Sob7UhcKqqg)AG0V!V6U_^y;`?aOT7%jVNJ!)Uo=E6FlKWnad$ zbk}H^TH&j8usR?1lP{Pv&TN)Gr<5>#dTkWaD^$Fgoz2a}=u$|!U+}Rka$S8=8DY9A zHBv0bd#xDL>Xxkjgizmd9|&VwEy>CuRCN*@;>$;~F7pH{Cfh?oRP%DGN;VnjEzC5z z=d{ew04-u#ZIGn`pQ+hMC(Lhos=}QijcT<)n5sdOA+)7$)dr;>)oKW1@n)=YYKx8e z8_^*3N~#jmYN0@}JSo%a=k%OhaG5`~S!T96sH9&h$zn<|AvcfvIXx#ATLOcz%`Z?V~ zE@rXsvK$`iUZazaiY9`+AX%nb$R=xBvWn3{cJY}DE4r=EVwK{vHPZc7p#vl1Rw2M@ zULkK77qE<3$VExk5^WUPf!LZIt<_;gb=YE_MppGx<%oX4qmF693WnAMY8CVnpM{91 zpC#6}T3smAlGUP6t2NSUw8dj=6~d!_8dtIr^Oe=%LLrqd`ZQ)A z(UOT}jW!8(p>1q>r_eO!r@o4dVlmG`&Lq*8L1>06)H2;+0K+Ay(V0 zwP|5lqg@}H&~~ocdR{sjR}ZqgrTk++tl$)>0&yU|TRqSb>U7Xfa;rXQj1+thTI}%hGUH)&uVA-U%W>QYp==nMpYu&;M9R*j>mOm{* zWtMu{*}~zXNpH<03%OXwVy$JCLPocc)Anf*+Qw5$CtEmNvSMB#$U<%(E_(cFo|RJ> zH}rXi+#o)g(w%m;ZiS_C`xFT|)odzwE!KJo6HLl-)U^mT^2Q`)>sAm*daE|&RF%x@ zSgbV)D`XYI&}TVq4U5n=o*FvYvQ^~f2DXdHi564AYqQosFJu+KiGKTPMb9v~7^?F# zTei{y2E~bl?^eNvNf~cGQ<}%J3Tc8MjY~~pl?dHw+7!f@T+Ln-PQFQnG@yHv2>;H>N<eyBwl_ycCZ%=<1llmn0c-=c!~8T{JaV?) zSlhiaA>@NV;d&{Ceb6%V$QYVA64e6%!05r{V$px~`8lzFN$({q&$s=K-b*i9v-#TL z?DqoW7ar%ov3K#}rHkiDzp+>LmDElM_#p5{fAmN1de^(&|Ni$s@W2B;{D~(akPv7f z0(^EMoExZKQYj&j5b#0ZO>cS=$MW;fKkqXo@gxKi0!>5Us;jQzK)&_XTbrg{(kCI1 z5b#0ZumAe5IgnFz?Sok2NeDC$0hH4m$Y?ZB!=zF|AR*v`01je~WgO5xQxZ?F5J2L^ z4;t_nCV%bMehs^Z@7TU{C+gL9G-}=1QC$y$ha+GqemU`S1CN%~e}G6S0$Bo$M!9HG z#uEYd2Q;etgXf|V*=qH0q=+qBwjfdvL})}*yOby{oS+E;4cmk-`K_|z-m!dgh7`-C zcBdiCvOnM-hcrYhPc_&B(LiCol z-7;Kg<6KsFQn&dCz+L5iM5=GT&ZHrGxPH5j;^7Ee85y*@pXjh6>40$4_k~A^CoIn> zLV9ARZd#%QAb_HgJOSSk9RU)$KZV`Tn0a`#iihK1Vpynw>ZO~O@(YH37LyusH3bck zz5>+Kuim!h0)(e2-9!L~vb>x60oP4seAZ$Qx2YP%!<8sTx0@c$n}Vcd!$iqf&=9k1 z%tkuWpl+ryHyWoWV$%>%%1B%`o2DV_!yfK9AFF$~eshGwcM}%QMUL2%Zx9rZWi?dx zorEydsnL%J$X?Op=MM64ln}LgxP09p_YQtd3UCIPMvFS0%9)2a>AM3HqZ<6qz(Sh5 z^+ppCQ9%I7oOcrq$9bnr>}Hp}*YU8!JhC}uJzT#aJ4)Q>2>2YwsPkn5(GEy8@|B9D zIZ{V-Gn2rY5Kw%hfqNR};c(Hih$%6GZZ|K;w7UD@QBO5)ejNeh1=;vKuFp-Bh9jVq zlue6e@^E*xP`zC2?FG5xQyyH%Sap<5HC?_SW4W>#Hau7wuAcHz)|}%AP(Gi%p4TYFtIfb2dfny z_Fjhq%u~g~V_lGgJsE-Tu0QpCfxTtHSJDe1R#ph{Lt9A07pe%9>v}Ggw<85|7|0c8 zVUOfppf>i)5lt0WbWDeyhHF!;NM}yddkM$WM^=b^mF2 zAY=Do4(?X7?~4jrJ)E&kjz=e>^VCh$RSocP?4V*SEOl$%O;3(h66;vOhuvn{Mqxgr z;R_iCZOB3V@}r6ZW|IRM-lAwbINg9qvH3$qy0IiKn`+>G`rdW)y>5DPK*68`8!H>= zl68uLXGbt~30qSnp^!F+?=q zbH&6aBcT7_0Kvjfkuql!+EF~*c&t}9IhH3I)eESryLmx|Z^Sac32xSRI^Z5Bd7|vYr*|u&xV|lp# z8W8XxtQ#B4lVjcA_39-!x9G;|lvw8Lk`u*&fO5Lk_n7I>q3n?E;Q;|?ydXz;5Qyc; ziX3zU0?>Ftt~F6BY6s|C)*li-oLNrSeG$djHN{oJJY1o$L>TKl5d*u;V6eu6vf;^bPtE;xThFLYq}s~ttg%>?+ytJ%d~RE zMRFWJL8ioxrHzPr5~G;!xmIFR&b5FaYV-<2-NOS;5M(XI-_VV6K?W>}OPWsAP0E3i~u=az$1>7zbY2EKu_i*FQG1dhcfJE_Rd7DUJ*}_9Vjv>b;gp0I*pKvKY z5XF2&X6ot)$cK^b-9w+%97=T$r?*+f-zr`VWqcILVMmgFo|dW^aIh+BP}i2PsLqLU zzfjfIagNSEIQN<|OX4|F(Q6bEM8V|lWia!V=6yR850$(XwNy*f(J z#WJ7qObs0Y`3WV;uIWp3ffDTD{4lFHTdBjYqk)R>V4N{g5oHWRMIZ1`{Nj-1h-Nv) zClO9=QOXitiyFb^D|V%>jDQTXOz*FDn1}N+h7rqdukk1B!M}L==6F3-v0A^t>CQ_EbcXX>8P7+v8YE(2o zmR7S#j(oL@dj|CcCHS6f5!}Y@;dGWM2OMVUo?p?NIy@Q5>zXSIA)FDRM&%L907v1c zE-;K3#aLZgB?Yo^N2(AR;pk^j6|E}H_3?0=L6o@Qu?zw?;N%r`P^PnFYDDy8sEV=* z+s8qT2D$*jCm3;#0}6_0Ohn*E)Qv%?&wO5Dz#FuKz&Y;QP7_dtMT&>xpdm+$&65Y* zd{1v2ST_7%1&>$sTI={Ziwz%?(29dWl#RI}U0Emvaz#AT^jU)d|6^b|MtpwY!U*Wk zT&T2pG;Tvy673Yoap6tU`V;~EFr`TGk3{94Heou-?E271fh;31XnCwYzv_3%`e90b z;{U%a>9=FszkrH@mF&i750oeCKN|4Qw^6`PLYj$y?id^vPd+OOt z{L5+uY%`D-1Q0U1t01v=R2vhO10q%wW9b3+u;(KcqF8w% zix|Zzkd51vhzS8V0*GHalzqx+h{AcHRMZ3Y+~fu`jV1(ohyc!0ie-0EjmHz^jT#Z{ zd5HJWy0mmcU~mxNSjNp4CoIAf^)t-JceD}U%s?TJ5Kag2;J8P!w2u%#VCoNFIwgg0 zAMI&UbubaY`HOH?4qwDFf)}q__)%smqzBV6lGXi-0D>BqVtn z@y)+Cy6J+k4cCut9NjoRymV;fg0btyHeGuCnzfktuF);)*N(2-v}W7T$a_ZDue*AD zc=0(yBOh3Q<@nXZ3+68x8hPL7#&u}VpT7{j<;#b1UGzeye<;Eq`bXP_YMMZdurUI} zttH{vum8$ zeEO!1flyMsB+UqxeIe80U89w>Qq`-2)%mbG%hng{*;qDD=PD^q7f=(0^a>R&W@mFV zF}f6z?i+wCE&naJn!Ix2wCVK`EarPH7}x5SwEhIq*H_x1jcc_eEeBE6N^pp;b}bsw z3sy|FhlHr+@d9SFa%zi>`5Vz7^-8J|*J`0cp#Z7V>gV*FTyU8`wOMAiI;f;yDam3= zF(EgP`#C))7hL>lqD#_>v)NZ1%PoCDl4izen(T7R4YfL7i9T9O7{s*(sg=)E$x>ex zDh+j|*;zwHjWDb8Wuy-hD+t8`#bD9TKP_bDD#lq3k94n5=-|1cU@urLQ+0AdImHpn zQd-iAu|j(BnNKddtxuL}9umfIuhkYlbz!w%C}N`*IWSP>vcBQqwtsDAHw@;CfQ_ZHfc=gFTMQ|(PM7JeGY7w7A=u$IV zx58Saw`x;PRmsXahPeh(3&TPjm=sBQmu8#CYNTe%R*~m-=ij4R6$T4LI$#(5w*q}rxLptqE)Ags+k(J4w2yG)v58*dkwb4f(o zydHvRRmp!qG7!xI!@@arImEBinbH!-q{7eaQVR}gN>`df*(eLOS)F&Rf@$1396nH+ z;Bb|KXLbNF8J`iQ=q_&P>0#SmeXp%ozoXd=% zg}IRE``MSCXjHl^hS_263zM7AsE>O}&qs5(6gP5#n2o7=gQ$`M`?Pf6iEZ9w-Ev}H3Nn%C|5!UTFnxeTiW<9K?V!%9OAgBTs+0Yy&nUvZc5okj( zhp-LSjuH|>@d(;_g>CoDgpeNsh5MyQ_QT7}C8KEONK`Kb0Hhb6i^=f&g6GEmeZiNk zJm2=~f-k*j&E{)|vtLns3IFoo#Y^Tdk$-ux>@caF5b!~Oem_6{Zg~1t{626co`gV? z5#S>Xe{`eCdM4cx0ttbR2*`iQo&Ka<$0>;+A&?MgCIa$bl6C*t*=FjWv`Pph1Q-GS zbMUCTQ@zcwq((xZ9}z%-&DUo%`q6}>b3z~?zzE2Hc@~E?(^I3d2+*Gl#$N}<-v~w$ z#&>LDx+^tyzq+Z|?5MW~$HNh}6vc8`MQuE6R{wz`es+mOfiE<=>4#~pSP00DQQaS6 zY2`1cRu4y_*s^5{A_YN&hQC&IaB?XHeGqQgEPToDnb=BDf|q9b{nj7F!x6kPGHCZI-C(-2S!OI$*mrXlOY9_~0Rt9!V9mxRN29~RC_jtG@+78I3b^;CABgfQT#(T@no zUeV-d5b|)86SaD{d;uZ%4t`|{b_N(oOFJIbnTI&(y8{`cGW-g`LYnLVMiUZIK>#V8 zcM}cA*{4kGW|zI!@!-QevN>fvT)#Lw%H5g}@Hv`M|I22g9gue9s}@OfB#@enO=6=X zp!h}u_cYAI;i6@+Qep(%?q8fq2lwNoo_5^)Iu6E*v+)UCpPMKRM?fhun-?zA9Xs8$g+1Ky=o-btm7Ing5>UYc z8R&`30JY)3_>QiB%}=}FUe_3j{!7r_RnLB&J^;nImH--_vl3f%1eA!zE|hhW>N@BW zy5`~RbyN)CJC@e3(opJvvy3(f}uHG3H5rmUR5ciFstPW%sD= zi!-v8;z*>eC!RI=_F#(DYffy9!@+7riM`jM0P|Gw@UV+BmX>1OJCKd?C-E4LQiYoY`bc(Qa}$VCf5kQ02?QndBA)JJ$+9%OGt+rjDL zEQtEaOuTiH{O7IjzSEL?AdMWyjn4ag_@Z5I?>$tV1v%YBAW7>GmcD%hRn}SFQ$Rx(41CDr4hfLw@ z2~k>M%14z^exu3wySt#Bx;SLOh%Y-H(o8Kh0eqPmjU9S6T{ zNY6#}U7VqV>`rK>aJKDBbh>gb!`~cFyU|w<5E#qD%SM*|mJUZPdphem!5vmQf7uG3 z5Z3FNT0<;_bAV%4pQ4;}Zr7^5Toehqhr16rY77rtw~!^J3wdSt|g)a0l2iBwEH5KVUFS|=mvO;Qj?I(jz=xBAID=r4uSGA;IydY zT}w%}#2*lb`o-B%u>%CCgryyx({YGYTPl`QCSpSM@fJvQ1~5TXj>F?Bx*&DBXv{kI~W`b@sP4y3TH;9riOe2g(nBQ zXie(b#OfXn&#^H(=zPes(84o|3UFlFK3TbN9trFCpCgMm?3irgd#Q&d8)<+X!Ye ziE{PjNYo8fK8lBjU7RbTQ7WuxEd;M}%mtJX`o$SCZMHBnj+((XSEeg!r_)&mCvIDQ zUw3V6V6iVLS@u=1H49LCux{gh!6&(z+MUHj~X9qZO zhvaKx#hNOvVm{LJa1QWr83A&A|=k%`-oUtpv2?SB&^YbQovnW8ymLmGm z3^_I-T(rrRh}QaHo-|E#RSNCxJJqo_p@t~}txn47SBCnsVrK$)V zvPxJ{*Ot4e@_~m`F_z{k>!#DWI;6S;`CzJkKhouQfl|@K^}`*G7sY{Xw)5i>dw8h} zj+}l=smgn;|CGv@O!!SZO6ak%)QBR}hVa1BYZBjzR7>tTm;GrnSfve~MX+|A5(M2g#6rKCm*%V+K)s;bRlwzfn3G;Bi7|I|} z+g5y*(n@DWAt9fP$U~&|wKcL8i%=CKqaB%YLE<7Axil-^QZ9}gVT~V)kG0zdl%0q3O!dM7j zh*rc4n+YEM?OIOeU;qx7g}InWB?P{sTgpraGwVr>6wVH;!iMB4XYff8wsak{;Cr$~ za2vOW(}^ZmzvOAU=U3Dgipi@)^kkSIOIAXLx(I5-snG;PG$1n00+JD98LKO+L{@>*$q9{}4d+xW6XaO-6pO>tZr~y17rN^u44`rUqb(4+JphgPkZh}7uYt>h2%duQ4KhWiOR=Ro$ z=Rt_69@?lpgTvpVylHbRBQ{IDs&TbYYE};cEVXnB=TdMD8Z)8>r70a}XrNmP0UVl& zgF#d&2}Wj)<$xdbAc{$)S@~k7pgk)q5Ti>ZVn+n{pA*YYQtAase+2Wt;o8*WSPpx{ z#+8}OvB~diy1Y|pr*Q7;-HfQbez20O_{SrkgY08COe<>0vF!PXtt^LJM9Lr)C_}TO z%TQAzh4bv#*6LR12P=7q|AVl8Yc5->D^|$)0hPb!7YxA{l%Xp_St}GBn%w1Q0S;>a z+}mWkl5Q0d&>f?!hj2~H6Dyt+axAmV;Kr=LwWkbg$N;xFT8T-wGizcY7&5t^aVEX7gJ~FzoO}{t?Zh% zdOVVEz#ls50DqIqT1>2XM%a`gmBPN4deG}=ayJO~9SvzLLkj1{ZcURF!}AfM2InkJWSoyasv?$Y7KdB)SjM`F zOcoy8fIuH}5>G;4)*yf=rg-rwuwgY$4W-7OmCsGHW`C0*gN6WCx$ZI>_fX{>8*%M< zpbr|P$=-xO4-w#q#*G-KErJvkHT1!Ev=QdaKu0+OIUUM9+^@8BLcomx!qexLngZDk zV;W5eGz0;h#RzKUAV!QMgz>C|A9|+Jx*&$e0b^5$OU89jcvO0`Za4Y@m-@^)~_91xoOR|p^^8Du3vZc z`0(O$hDJWH{>t&IhZoFWFf{VM(T(fSMoL_|WN7*Fp(XI`~%Iu#dTkWaD^$Fg zoz2a}=u$|!U+}T4{P*l?(#iCUP)DAS}hbPmM3Le{hXeY3oh-m)3`PvGJ)1F zB~(l)CgkdKKd0y9f~)1^Sjc|mGoU*;%N*3Eg;q1M#)5kYUK6rrutRX*+)!lQn&be~4PvdUU0q|!y7#_S_DShN`sq|u64 z)(0$Vw;C52g(wn#Co7n5XB#$ySKzD|KOs0+7E zvaDg-CmXxIU_?szqGhell%`3#{x&r_&{bErvFi)Qqf}VaHq}P2140!D=h`ZBoIWiX zCd;C3PFDRRU&FRwX<^v}O>v7DjV~U-W{}qk7IkxSIS6f&lr_+8sU|fGqD@ROUc+a$ zWT0G|x;fn&80YbT=UD1Wh<7Sme0ubRp)mwgND^fMVY74l{G|H zWs&;|yF64+J6kYZv_)SFxmbsWiynVkW+`NJd4{2pb31tq(<+d%6~pH%<`sf0dVv1W~P zs?}5)*OoO3D`XYI(AOrm2u2aD;Tl@midEzqRnCcaQ;9)e*FZ016~KwUKCz(W+(ow= zpV^X?79yqFMC5ijOf^i(B;+$CX)LRdCJ54adsCm^K3+%9sgT!#y4E=bA65axVi;Bj zM89~5&De=xm?=m!+rF%2S|xI}W+e%Q-Yp@y9Uiu}=5VVWghD-{3Z^irEWU=T{N0Yy{HYqpEac_gBFR<96r z$AwK-oh})OW`SVgm^yz4hiQqErshP6(%z);c3L-jV%;d~G!4mu#$an-V#-jiz;oNh1dkSP8umAg#+&S~|-M=Tw=bx4oG3X$DG5 z3B6@tZy2eiv!s|GIDTA`SX;BDgP~=c)Eqi1Eve+jhG(b^NkX}%DoE~^lhhOLLS1R` zoFq}&n#Bz5vyH1vN0THG%E;*zZ>Fxic&@)pYHLgOwKv2JTiu6jzsl905E!RxmXOprFUNJ-_m=@ z%JXf%r1#Q`)@;6ZIQzxGm+-IbUA%bd;(5}q?3JA*wG#q92+(iH$KUu)zYO08uEdiN zXeI)Dc;OFTG*iQ*RYD*k&=CRoZ>-ZFmFqYqF(d>M0!>3e{#&l@Km6J>&67R}frJ1f zz<-b(HFm158J5&Y2=o^MD5v?Fj7EPcpR`Q~Bm@`%`R}^ofM$AXG!Oy$Q@r>Slla@a zNWA!t?Mru}2JTe%Rhk{u^&ogS0+!-eE~2Q7N6YFzK*Y}?ks|PgM)&;zHrPv{`CCmzl=>Q%I?9#TyJfS9s-_ih<3v~ezn ziAuA2hydJG-p4A5y~|dxhwHcdC?1Zmm61Wa`-u)Kk`4$r9bO(Kp0GTl24F&pVfgSwf< z+-RJhh)qL4DI;;&Y?_9w4|}-de5~%_`pppz-%VIJ7dc{6zClntmeo+%cM`%-r$#>_ zAbUlVpF7CIQ9{(};qrBZ+&lO+DZm+E8ZGL0DrX+zr0)()jB4;Z0}E;L)*DSoLF=y>?m=gBj9r!qt2HNL^~kW$X6n7BBsO$y4}1W)9UVrM?KZJ`E>-07i8n}xIQ;g8jgTcQZ_A?$-~{% zLiKX7w-@A&PkC@5W7SbM)zp1KMxp?cFb9g^JGy1-qJ{@c!_`w>iri7tObrc6Z`lkfD-{Je)_a zr7;Tikec)`2c=_XvjLmvo(Sj_CN{|7V4h;b*w}j=3NTL<4~NUi)2Z!P)MgI+Q%Qy- z${om%hQN3Gw!SZrY*WKVSJDgVW@C2K<(vSq?nBn7ygNC&S5Kop2*9Igi{0ZPyfUqA-eL-}lyaiey}K-N`KD7t)i9j;8Lu6~V0@o(gG z6FG{3lBZYj6d9ZV6Wof0jbitK44{~OU)UfSaBkzc!H$H%Rnsh8)d2Uv4zi8ZfTeDQ z^`PL1dM2zG$i^rrTUWyz9jmZok+KS;xesCmK%*5Ekx`Zi=)zl+tsk6jK%@j9>@&q! z5|>Ri@J4;_Iyx8v8J>(Ucs1IH2*fWtwj!{jG`Fz<1%oco7)Jrw07VE{R~Bce#B*hQ z7&KkyE>MhDAz8gy+{XFU1%!Q;(02i0n4T(1aKJXISLePVt};zro=i)11`uNjfxn^ z`Xw&R^Yx=JAnEDKls%e_c`2a6@3;j6&H$X19Y?omAxwLuJ5@la3JgI zVP8sVLd;Pv$PlH!F2cI9c~8#<0k`!45C&n2au&mxD?Z!S4O%P@ujzD%709~Jm%WqH zM(EW`SZ>iv^ZVUpd|SB0cIJ9#Ed)C{ZE~-6#(NirBEIfiEd?&LM`8fxFiOuV0k{5s476HxhBM2+_C*xO@^GaNp{OZaC>nQ13BZ8pgIFcO zlFWbr)Gx@6`W)sXtgy7vE+z(}goz3`=tfDNtlMBV88j^3C@Zo;J)94HV8^w*kqlmHA1 zWL?96e5=QfW4mcZ2Sb%j*N9VWXKv3uk;8-i*1zwRk;9VRLyuSgr%bufG-NW_M0f0pO zAqc}ujj$70-X@Y$w(!u8W5}@y;UcY$_|mHj+daMK-qlA6$hol}@vQFQ`r9cyJYtzg zamU}o0$D##OVtcGSXlwNVar!k=fF3jdoo|WS&hCc0;6M6U7&mz)pQ%GuB2N+MGw~x zbU0XC2WF3@Mpz&N1UcoFQj&LB|Jjo0^I;Gy`%A*;j@gc#$9lUu~H1X>~G%9#Ya zR!7~gm_Hz0*)jUpvShUN*zw0!2?t2Cg&Rx&2(+|} zhH@x#fRhfGMdb~?`)k#aQ&Br^!P9Z|ST231#Z??04o-f*g@@ydyq&)*zFpl7 zSTZ%L1TvK2SYxqJ7$-06!WZHc^4UP}=*R`W!y8UCn&-9WQ*XUZV#ukOun^IXy~3_(Hs)X-=lakl-D)qC8&XLMuZxbM=S#z zg`c{>Fk%!#0oD@@n?6P*6VVd^-pA-?kf#E5u=#j6&LB!$@K^?c8*uWtim_yBLk9K}c%J}M#kAT{}2jqYV&T*ngg{0Vv(?C!o^a9CK0Sqb!j;$v0UXWjY}}}$IAP(`nDv1yM{y}U>4Grp z@ks#~7lH27)zEpM0-2*2QCaG>f%9sqS#ez=N$W=hlqYV4TlDv8f@N?5nWH%1=^OD& zK*^67{peRo=TZp3XKN_)1&O(72=Lpc?j)W*z;`j0P-|rA3VZ6=G~|u?#EoL?2m~4zO2k=) z0N=$p47uU++NnR>9C26Rh3bTk>9q?;Q7oAdbm!vjRR zd>w<1jv7IsNpQb0qtWK zqFC{|h*1m$1~ZU-kWV}b0UH8{UrOd^*mz_*qD-l%XVY_&Y-wsI1o{gBzMZ*?YP_5% zZ`6or&qKVw07=>=1o{*Kj%D0@al#@zQ9r{Ld`BAr&J1*XBZSjI+^2h;)Slf4ATad@ z6P=Pmcy_x%vThb2fb$pOtQ@|GWdtu?x9|g?R7lT)T}~zp6aolpT#E74*H#aWZoG2y z_@>b{8$@gDife}EEg7CWEE>y}4UN2i+x4TvBbTkZ;+oO5<3l5te)Nj*jB??IHS0!) zM$TV9zWMh?H(fBc;rg+SqZ`MEmky0wFm~P8rc1A1vlbKIHM(W}+R>Gp)@&OZdC%zj zbytrMFFt2zFtWLo>P zYn<79`lgM6P*S`k%?Or#A=Bbrqm{H$)vJTm`LH_6))(yAST;}RDk)AEP!omp3KcG9 zXLB<#x)hS`8-Oe=|1G$hymI2S>GcsT=6fv|*XowE{sht2SK6VCYqcb;_%#Sb7*K@8xwfIGTA`RNzw-i5rjfqFg0lAu(lSRoZZdjlu&k%RxCR!=U1#_ zDKTZ7gv+*@6{BnibBePE)a{K3S&--4t=6 z>rmM&!!e=qP_|+PDQ1mxs>@WYX_#vuF&`rbCWppG5f1+9L)nT|#28i1i7r#IrekWG zMuoHjI?-=qXzLiIwsA!7WJ^|(N=mnh$n9{M3VyS-I+djr@&uu6J-MULmq+VqI~DR; zQr9}C;KL3&ZkWC&9#KTv?XT64ORC&I8dQ)ixypy`^LY zVQuz_j^a%Q(KN*{kdfL2=3EldJu}&eCRLtG%E**{YIgv!9&0tJVlVp%wRT-|3~d(F zW34WAR)E-!EcfcM)-2VwkE~2{8<|12P^!mTgVZcDHy5OqW&~HOpS8+j7{OW-hW!%F zIb2H6xInDOS|L^0$qqLgjk{-r94*CwoNCmn9&1?-tzlH6Swz;kO|6{TM$0=qL2H<} zeQBDo7Qt6U@A%BR=2VkftqEGo#O_JcWJv^15j|vUDJvsRk~r4R?tcd>;43TsyWH1OTljXG*0j%n#2_}KMB3%%5;@g z$d#8#t#)CV>9fT(a4i9cY;+EfOiJyJ2(+P?L)ZpuM+u3c^>A1K*zTDLAwL9K=w&Ux zNr_8AKt@p+O5HLD0LU`zMqb133!WeQ_XS_F@_gH`3%>NCHJh&;&VEJlCH%{S7cZH= zME>Q$vcsfyLcj+B`u+U)Ys=|Z@%zA)coG6lMu5*Q{Lzgj>zQ;*2qXkLA|U@Iclwid z9j7FQgg`=|nFz>#N!I;mXPc>i(kda45MTuO&%vYWPW3j!k{SttenbETHea97=tmQh z&Iy5p03#s(8{k+{pzM-v!mV~91lm>QWVQ& z6}9oOS^Wo&_}L{A1-{VerXQxYVj&wEKPl;{BeX(s?iOxeAAw+tHEIHSWvrCB{h08T6KW0myYWh>aj^;>@w4@dCI z$e`V;bcc0G69kpneN-m?;HBLOv=dh74$?Z3s6$OlG~OG5T2%V69F91@^0#fT{o5SS&Kc~rfL)q zS7I66?t3_I4HA?M86|f?Pt3A08|g@iy0OMQX`G&jO+!E_EO7~Knue?od${AQtnT6Z zT@nu8eONdzIU-cPSx{7#)l=Dh62gF|Mn57TdqtC)%J3@$3u&?g7)?k-1p%aV-c2+dXP+{$n_c!^$Ab^^$mW#waQ))! zD0gc@z~^X2{V$t|c0k&ZuUaI{kw9uPHi?anfZ`hs+|w`*hl`fQN{JD4yMJ*e9o&zT zdfIXG>o^!M&c-KneQu&O908@sY+6K>ZM~7F3ugF``}2%I;3pcsr%xLbOAhJ z4iv+8bjwys4G)=ytEappxnrlBwy=jg9$lk&xRTS5Ljo#TAXCMYX&2n<8Y8i6uvE`} zMjt@%>XIoN6P_>-8)}@Jh;b26A{rH4Stp6B4@v8qhwBwAmiD(OiYL>3)}2e`*Gr0& zQhJg_(J#(OGP+C-WTgR4B+n*zm;e6uBc~G4fW7DUDRL5b{U61{6_-QTvx1G~$^0zo z_>mLy$l8|OBh(M_bZVCs!tM=~Wc=Yma&?VSNJfIvgB_G~QZtM-HT0Sj8{}}Xn$#e% z?7a>Jm`8Tevd#&9c{;Tni?VugJsFw7?cw_FK-IEaU@X_m3L$iK4j_Q%UvCE#UpQ-_Qm6ex0wk%@cr|Iq*#vwL}Ee`o*hp?6UMMj2bR<>cX``9WA zV?}-)WVmZtnPpGCo_MnHR1L@{`o$TPvWUsAE6D8uwYr{F5a4CiNc=ts;9$}-6)5gU zS0Bl7dCH!uw$)2roO|WT`sFUn|Mg=rAOY&ils%@6*(sprx9w@769T|l*>QB67RaQk z?oHmbKu%eG^a>Ep7NAU;VnhI!VhUmUj$mnW@e|9# z^@}sy%!m&Wd*aEulGq)GlC~i|7X@6LAzXifgwHr~piv(k$uMP%!UvqFoXc=&$J1^T zu!`m3WzUG7c(U&KWh;EzGQFM&d)U;A_5gi!!4;dPgL2aKMUvD#JfKv=fg%?q z)OJ4<^u&{OB?H1x*BoMllQw*Y<1qkvgn*t~0$u}}7D_$W2QDoG+ZVA6(4u&_Qj?I( zjzwdaJy}V%q+~!C>KA86#SRbAc-8D~E-ZY@FBMcqNBT*~HI#M^qzJtNBkk62A6m$!Q)Mv#(;E`{j@Z^5M z)94HV`^DuV`*~R1SZZmb@($$XJt95BvaVc%ksQZQoGHoISN+O|2q}{;&ZWFaXI9QQ zbakF)QgjawI7bjc9L3z|LcLekll2lJ!1I;8CVOo=&d78uw!_?`lrmvU4B#xe`f?=d z1|k#1!^1Al710RrWCSl~8)^iU5cGLD+THrIzPJ04jSkf3}P8XO+^fhDYX z>mgRUhX<5}dQR}aI0xGv;K{n40l8OS*RkoeqJtsWd`#368g2nK<&7$O_Sanb+E`Of zRUaUFI0tyRj6m?ISIWjPPu6c1WsSu%I2kB^cN~ax%PzZ$Clm_oSS#R_-gB)1VUu5D zkhlBJ>gpb@M;2VY?u&DnC(D~f@mRJL(T`@xu?gX_t&S+uD-CQ!-??AY6qfy}AMvd2 z;re?NJiOMDFW8gyvlXKJJqm{`B?0BTEq77n0}t_E!jqG)LX|?-BQ1QM|^C%^8(!|^2tGTMr7N7+zCz3QIK5y#3y zZJfeb2w#X+VG;(J3QA8e6=kf3}Lk&m>*GdKuvLgQHWbU7c0k|zTJ1{Rsq2Q=`|mB0G)g6DFHZFV4l zW15|f8?g$NMeqEY^hm}T~0#-f`IZ2 zjsrT%n|AVKMj+sM98pY_lKjLmAPzamX2NH1$)dsx4RlMPf%1W#6YR#A z*ms@`46E2{oLgm6(%e2mz*ubiRLhvCT$wAzGC)h73=nKj8OAvEAwpmuIb>3`A_C+; zIA?Jp<9zgyhFDg-u6itET}7skuey1XC;RMX;+ahd@DHkd3TzmT>#b5_dp?@YCeV^C z34z8Uz*Vlh%*H)bdB;XvdmiYGwLK}85SV=ka75!qjMElDii#R$;yc<1b7r9W7J-}& z<=N*3$)Z_<0K(IK6-|LWYxX)BG6)FZEJjc(2Qi`;XEC0Y@K3u_X*~#TkZhcN2q3g^ zS;p5aFl}gb2sO`}&0%^jY%bZ9Pr4KH4_Xu+c4tA?32Z_#iz zI=qo-^X4tkX-k%BwE6QFYP1E5=W4XY3m3Q3=FML`Z-Fv*-uxvC=Bs=Q&pBtolJ>dt z7o4+5r7f6$&cb<$yoK}5nQO3Z{?d8v@~|#eX{XJfxA>gJ3g3dci_cl2=(pgU#S0fm zbH_KWS%2N=rlDoahDI)3zkO6-KXS>~*!b}L;kmlW;)RPA4!z|q?_Tx0L;pXzB+_R9 literal 0 HcmV?d00001 From 5c8dcf68404c83e792d6af0a329cdcc5ba3280ad Mon Sep 17 00:00:00 2001 From: Marcus Greiff Date: Mon, 4 Mar 2019 07:18:17 +0100 Subject: [PATCH 58/66] Fix discrete time examples so that they use the specificationsplot function to visualize the synthesized controllers --- example/hinf_example_DC.jl | 2 +- example/hinf_example_DC_discrete.jl | 12 +++--- example/hinf_example_MIT.jl | 2 +- example/hinf_example_MIT_discrete.jl | 10 ++--- example/hinf_example_tank.jl | 2 +- example/hinf_example_tank_discrete.jl | 56 +++++---------------------- src/hinfinity_design.jl | 1 - 7 files changed, 21 insertions(+), 64 deletions(-) diff --git a/example/hinf_example_DC.jl b/example/hinf_example_DC.jl index 3cab3c288..14276834e 100644 --- a/example/hinf_example_DC.jl +++ b/example/hinf_example_DC.jl @@ -10,7 +10,7 @@ The example can be set to visualize and save plots using the variables MakePlots - true/false (true if plots are to be generated, false for testing) SavePlots - true/false (true if plots are to be saved, false for testing) """ -MakePlots, SavePlots = true, true +MakePlots, SavePlots = false, false # Define the process Gtrue = tf([11.2], [1, 0.12,0]) diff --git a/example/hinf_example_DC_discrete.jl b/example/hinf_example_DC_discrete.jl index 93a8846f0..54d37f7ee 100644 --- a/example/hinf_example_DC_discrete.jl +++ b/example/hinf_example_DC_discrete.jl @@ -10,8 +10,7 @@ The example can be set to visualize and save plots using the variables MakePlots - true/false (true if plots are to be generated, false for testing) SavePlots - true/false (true if plots are to be saved, false for testing) """ -MakePlots = false -SavePlots = false +MakePlots = true # Define the process ts = 0.01 @@ -29,7 +28,7 @@ WU = ss(1) WT = [] # Create continuous time approximation of the process -hInf_bilinear_z2s(ss(Gd)) +Gc = hInf_bilinear_z2s(ss(Gd)) # Form the P in the LFT Fl(P,C) as a partitioned state-space object Pc = hInf_partition(Gc, WS, WU, WT) @@ -54,9 +53,8 @@ S = ss(SD.A, SD.B, SD.C, SD.D, ts) CS = ss(CSD.A, CSD.B, CSD.C, CSD.D, ts) T = ss(TD.A, TD.B, TD.C, TD.D, ts) -# TODO remove hack for visualizing plots, should be made into some kind of recepie +# Visualize results if MakePlots - include("hinf_utilities.jl") - if SavePlots; filename = "example_DC.pdf"; else; filename=[]; end - visualize_synthesis(Pcl, S, CS, T, gamma; filename=filename, tmax=4) + specificationplot([S, CS, T], [WS, WU, WT], gamma) + specificationplot(Pcl, gamma; s_labels=["\$\\sigma(P_{cl}(j\\omega))\$"], w_labels=["\$\\gamma\$"]) end diff --git a/example/hinf_example_MIT.jl b/example/hinf_example_MIT.jl index d4f7da0f0..85232ba66 100644 --- a/example/hinf_example_MIT.jl +++ b/example/hinf_example_MIT.jl @@ -14,7 +14,7 @@ The example can be set to visualize and save plots using the two variables ShowPlots - true/false (true if plots are to be generated, false for testing) filename - Set to string if files are to be saved, otherwise set a empty list """ -MakePlots, SavePlots = true, true +MakePlots, SavePlots = false, false # Define the process G = tf([200], [0.025,1.0025,10.1,1]) diff --git a/example/hinf_example_MIT_discrete.jl b/example/hinf_example_MIT_discrete.jl index 98eb919f8..b3ca1ecb1 100644 --- a/example/hinf_example_MIT_discrete.jl +++ b/example/hinf_example_MIT_discrete.jl @@ -12,8 +12,7 @@ The example can be set to visualize and save plots using the two variables MakePlots - true/false (true if plots are to be generated, false for testing) SavePlots - true/false (true if plots are to be saved, false for testing) """ -MakePlots = false -SavePlots = false +MakePlots = true # Define the process ts = 0.005 @@ -54,9 +53,8 @@ S = ss(SD.A, SD.B, SD.C, SD.D, ts) CS = ss(CSD.A, CSD.B, CSD.C, CSD.D, ts) T = ss(TD.A, TD.B, TD.C, TD.D, ts) -# TODO remove hack for visualizing plots, should be made into some kind of recepie +# Visualize results if MakePlots - include("hinf_utilities.jl") - if SavePlots; filename = "example_MIT.pdf"; else; filename=[]; end - visualize_synthesis(Pcl, S, CS, T, gamma, filename=filename, tmax=1) + specificationplot([S, CS, T], [WS, WU, WT], gamma) + specificationplot(Pcl, gamma; s_labels=["\$\\sigma(P_{cl}(j\\omega))\$"], w_labels=["\$\\gamma\$"]) end diff --git a/example/hinf_example_tank.jl b/example/hinf_example_tank.jl index d6620a5a7..d5c049296 100644 --- a/example/hinf_example_tank.jl +++ b/example/hinf_example_tank.jl @@ -9,7 +9,7 @@ The example can be set to visualize and save plots using the variables MakePlots - true/false (true if plots are to be generated, false for testing) SavePlots - true/false (true if plots are to be saved, false for testing) """ -MakePlots, SavePlots = true, true +MakePlots, SavePlots = false, false # Define the proces parameters k1, k2, kc, g = 3.33, 3.35, 0.5, 981 diff --git a/example/hinf_example_tank_discrete.jl b/example/hinf_example_tank_discrete.jl index 86893bc0b..c01adfb0a 100644 --- a/example/hinf_example_tank_discrete.jl +++ b/example/hinf_example_tank_discrete.jl @@ -78,57 +78,19 @@ CS = hInf_bilinear_s2z(CS, ts) T = hInf_bilinear_s2z(T, ts) if MakePlots - # Visualize - frequencies = [10^i for i in range(-6, stop=(2+log10(0.5/ts)), length=1001)]; + # Specifications + specificationplot([S, CS, T], [WSelement, 0.1, WTelement], gamma) - pGain = plot(frequencies, ones(size(frequencies))*gamma, scale = :log10, yscale = :log10, color = :black, w=2, style=:dot, label="\$\\gamma\$") - valPcl = sigma(Pcl, frequencies)[1]; - plot!(frequencies, valPcl[:,1], scale = :log10, yscale = :log10, color = :black, w=1, label="\$\\sigma(P_{w\\rightarrow z}(j\\omega))\$") - plot!(frequencies, valPcl[:,2], scale = :log10, yscale = :log10, color = :black, w=1, label="") - plot!([pi/ts; pi/ts], [minimum(valPcl); maximum(valPcl)], scale = :log10, yscale = :log10, color = :green, w=1, label="\$\\omega_s/2\$") - - valT = sigma(T, frequencies)[1]; - pSigma = plot(frequencies, valT[:,1], scale = :log10, yscale = :log10, color = :black, w=1, label="\$\\sigma(T(j\\omega))\$") - plot!(frequencies, valT[:,2], scale = :log10, yscale = :log10, color = :black, w=1, label="") - valCS = sigma(CS, frequencies)[1]; - plot!(frequencies, valCS[:,1], scale = :log10, yscale = :log10, color = :blue, w=1, label="\$\\sigma(C(j\\omega)S(j\\omega))\$") - plot!(frequencies, valCS[:,2], scale = :log10, yscale = :log10, color = :blue, w=1, label="") - valS = sigma(S, frequencies)[1]; - plot!(frequencies, valS[:,1], scale = :log10, yscale = :log10, color = :red, w=1, label="\$\\sigma(S(j\\omega))\$") - plot!(frequencies, valS[:,2], scale = :log10, yscale = :log10, color = :red, w=1, label="") - - valPiWT = sigma(gamma*iWT, frequencies)[1]; - plot!(frequencies, valPiWT[:,1], scale = :log10, yscale = :log10, color = :black, w=2, style=:dot, label="\$\\gamma\\sigma(W_T^{-1}(j\\omega))\$")# - valPiWU = sigma(gamma*iWU, frequencies)[1]; - plot!(frequencies, valPiWU[:,1], scale = :log10, yscale = :log10, color = :blue, w=2, style=:dot, label="\$\\gamma\\sigma(W_U^{-1}(j\\omega))\$") - valPiWS = sigma(gamma*iWS, frequencies)[1]; - plot!(frequencies, valPiWS[:,1], scale = :log10, yscale = :log10, color = :red, w=2, style=:dot, label="\$\\gamma\\sigma(W_S^{-1}(j\\omega))\$") - - plot!([pi/ts; pi/ts], - [minimum([valT valPiWT valCS valPiWU valS valPiWS]); - maximum([valT valPiWT valCS valPiWU valS valPiWS])], - scale = :log10, yscale = :log10, color = :green, - w=1, label="\$\\omega_s/2\$") - - stepy, stept, stepx = step(T, 300) + # Closed-loop H-infinity norm + specificationplot(Pcl, gamma; s_labels=["\$\\sigma(P_{cl}(j\\omega))\$"], w_labels=["\$\\gamma\$"]) + # Stepresponse + times = 0:ts:300 + stepy, stept, stepx = step(T, times) pStep1=plot(stept, stepy[:,1,1], color = :blue, w=2, label="\$u_1\\rightarrow y_1\$") pStep2=plot(stept, stepy[:,1,2], color = :blue, w=2, label="\$u_1\\rightarrow y_2\$", ylims = (-0.5,1.1)) pStep3=plot(stept, stepy[:,2,1], color = :blue, w=2, label="\$u_2\\rightarrow y_1\$", ylims = (-0.5,1.1)) pStep4=plot(stept, stepy[:,2,2], color = :blue, w=2, label="\$u_2\\rightarrow y_2\$") - - if SavePlots - plot(pGain, size=(600, 300), legend=:right) - savefig("gainPlotQuadTank.pdf") - - plot(pSigma, size=(600, 300), legend=:left) - savefig("sigmaPlotQuadTank.pdf") - - l = @layout [ c d e f ] - plt=plot(pStep1, pStep2, pStep3, pStep4, layout=l, size=(1000,250)) - savefig("stepPlotQuadTank.pdf") - else - l = @layout [ a ; b ; c d ; e f ] - plt=plot(pGain, pSigma, pStep1, pStep2, pStep3, pStep4, layout=l, size=(600,600)) - end + l = @layout [ a b c d ] + plt=plot(pStep1, pStep2, pStep3, pStep4, layout=l, size=(1000,250)) end diff --git a/src/hinfinity_design.jl b/src/hinfinity_design.jl index 01ada5107..c6fa0e898 100644 --- a/src/hinfinity_design.jl +++ b/src/hinfinity_design.jl @@ -569,7 +569,6 @@ can be both MIMO and SISO, both in tf and ss forms). Valid inputs for the weighting functions are empty entries, numbers (static gains), and transfer fucntion objects on a the trasfer function or the state-space form. """ - function hInf_partition(G::Any, WS::Any, WU::Any, WT::Any) # Convert the systems into state-space form Ag, Bg, Cg, Dg = _convert_input_to_ss(G) From df3cc3c2dbc9500852aec95bbda062000f81e6dd Mon Sep 17 00:00:00 2001 From: Marcus Greiff Date: Mon, 4 Mar 2019 07:58:08 +0100 Subject: [PATCH 59/66] Remove TODOs from the ARE solver --- src/hinfinity_design.jl | 32 +++++++++++++++++++------------- test/test_hinf_design.jl | 2 +- 2 files changed, 20 insertions(+), 14 deletions(-) diff --git a/src/hinfinity_design.jl b/src/hinfinity_design.jl index c6fa0e898..7f2ebaf78 100644 --- a/src/hinfinity_design.jl +++ b/src/hinfinity_design.jl @@ -341,24 +341,30 @@ end """`[solution] = _solveHamiltonianARE(H)` -Solves a hamiltonian Alebraic Riccati equation using the Schur-decomposition. +Solves a hamiltonian Alebraic Riccati equation using the Schur-decomposition, +for additional details, see + + @article{laub1979schur, + title={A Schur method for solving algebraic Riccati equations}, + author={Laub, Alan}, + journal={IEEE Transactions on automatic control}, + volume={24}, + number={6}, + pages={913--921}, + year={1979}, + publisher={IEEE} + } """ function _solveHamiltonianARE(H::Any) - # TODO fix this computational routine if need be - # TODO throw errors? - # TODO eigenvalue solvers as an alternative? S = schur(H) S = ordschur(S, real(S.values).<0) - U = S.Z - (m, n) = size(U) - U11 = U[1:div(m, 2), 1:div(n,2)] - U21 = U[div(m,2)+1:m, 1:div(n,2)] - solution = U21/U11 + (m, n) = size(S.Z) + U11 = S.Z[1:div(m, 2), 1:div(n,2)] + U21 = S.Z[div(m,2)+1:m, 1:div(n,2)] - flag = 0 - return solution, flag + return U21/U11 end """`[solution] = _solveMatrixEquations(P::ExtendedStateSpace, gamma::Number)` @@ -400,8 +406,8 @@ function _solveMatrixEquations(P::ExtendedStateSpace, gamma::Number) HY = [A' zeros(size(A)); -B1*B1' -A] - ([C';-B1*Ddot1']/Rbar)*[Ddot1*B1' C]; # Solve matrix equations - Xinf, Xflag = _solveHamiltonianARE(HX) - Yinf, Yflag = _solveHamiltonianARE(HY) + Xinf = _solveHamiltonianARE(HX) + Yinf = _solveHamiltonianARE(HY) # Equation (11) F = - R \ (D1dot'*C1+B'*Xinf) diff --git a/test/test_hinf_design.jl b/test/test_hinf_design.jl index 98cd02126..484a6bd89 100644 --- a/test/test_hinf_design.jl +++ b/test/test_hinf_design.jl @@ -3,7 +3,7 @@ using Test using LinearAlgebra using Random -execute_tests = [false,false,true,false,false,false,false,false,true] +execute_tests = [true,true,true,true,true,true,true,true,true] @testset "H-infinity design" begin """ From ba7bfeb7ddc52fe2792fe3d43b989076c7f4439f Mon Sep 17 00:00:00 2001 From: Marcus Greiff Date: Mon, 4 Mar 2019 10:10:00 +0100 Subject: [PATCH 60/66] Remove MIMO example primarily used for debuging --- example/hinf_example_MIMO.jl | 109 ----------------------------------- 1 file changed, 109 deletions(-) delete mode 100644 example/hinf_example_MIMO.jl diff --git a/example/hinf_example_MIMO.jl b/example/hinf_example_MIMO.jl deleted file mode 100644 index 50ef865e5..000000000 --- a/example/hinf_example_MIMO.jl +++ /dev/null @@ -1,109 +0,0 @@ -using ControlSystems -using Plots - -""" -This is very dense and horrible example used for debugging. CUrrently doesn't -work due to the absence of enforcing a loopshift in h´the solver - I need to -figure out how to doe this prolperly. -""" - -# Define the process dynamics -nx = 30 -nu = 8 -ny = 8 -A = 10*rand(nx,nx) -A -= (abs(maximum(real(eigvals(A))))+0.1) * Matrix{Float64}(I, size(A,1), size(A,2)) -B = rand(nx,nu) -C = rand(ny,nx) -D = rand(ny,nu) - -G = hInf_bilinear_z2s(hInf_bilinear_s2z(ss(A,B,C,D), 0.005)) - -# Sensitivity weight function -WSe = tf([0.1,1],[1000,1]) -#WS = [WSe 0 0 ; 0 WSe 0 ; 0 0 WSe] -WS = [WSe 0 0 0 ; 0 WSe 0 0 ; 0 0 WSe 0 ; 0 0 0 WSe] -WS = [WS 0*WS; WS*0 WS] - -# Output sensitivity weight function -WUe = 0.0001*tf([1,1],[0.1,1]) -WU = [WUe 0 0 0 ; 0 WUe 0 0 ; 0 0 WUe 0 ; 0 0 0 WUe] -WU = [WU 0*WU; WU*0 WU] - -#WU = [WUe 0 0 ; 0 WUe 0 ; 0 0 WUe ] -# Complementary sensitivity weight function -WTe = tf([10,1],[1,1]) -WT = [WTe 0 0 0 ; 0 WTe 0 0 ; 0 0 WTe 0 ; 0 0 0 WTe] -WT = [WT 0*WT; WT*0 WT] - -# Form augmented P dynamics in state-space -P = hInf_partition(G, WS, WU, WT) - -# Check that the assumptions are satisfied -flag = hInf_assumptions(P) - -# Synthesize the H-infinity optimal controller -flag, K, gamma = hInf_synthesize(P; maxIter=20) - -Pcl, S, KS, T = hInf_signals(P, G, K) - -MakePlots = true -SavePlots = false - - -fmin = -8 -fmax = 8 -# Plot the singular values of the system -f = [10^i for i in range(fmin, stop=fmax, length=10001)] - -valPcl = sigma(Pcl, f)[1]; -valS = sigma(S, f)[1]; -valKS = sigma(KS, f)[1]; -valT = sigma(T, f)[1]; - -# Visualize the close loop gain -pGain = plot(f, valPcl[:,1], xscale = :log10, yscale = :log10, color = :black, w=2, label="\$\\sigma(P_{w\\rightarrow z}(j\\omega))\$") -plot!(f, gamma*ones(size(f)), xscale = :log10, yscale = :log10, color = :black, w=3, style=:dot, label="\$\\gamma\$") -if size(valPcl,2) > 1 - for ii = 2:size(valPcl,2) - plot!(f, valPcl[:,ii], xscale = :log10, yscale = :log10, color = :black, w=1) - end -end - -# Plot the sensitivity functions of interest -pSigma = plot(f, valS[:,1], xscale = :log10, yscale = :log10, color = :red, w=3, label="\$\\sigma(S(j\\omega))\$") -if size(valS,2) > 1 - for ii = 2:size(valS,2) - plot!(f, valS[:,ii], xscale = :log10, yscale = :log10, color = :red, w=1, label="") - end -end -plot!(f, valKS[:,1], xscale = :log10, yscale = :log10, color = :green, w=3, label="\$\\sigma(C(j\\omega)S(j\\omega)))\$") -if size(valKS,2) > 1 - for ii = 2:size(valKS,2) - plot!(f, valKS[:,ii], xscale = :log10, yscale = :log10, color = :green, w=1, label="") - end -end -plot!(f, valT[:,1], xscale = :log10, yscale = :log10, color = :blue, w=3, label="\$\\sigma(T(j\\omega)))\$") -if size(valT,2) > 1 - for ii = 2:size(valT,2) - plot!(f, valT[:,ii], xscale = :log10, yscale = :log10, color = :blue, w=1, label="") - end -end - -# Visualize the weighting functions -if isa(WS, LTISystem) || isa(WS, Number) - valiWS = sigma(gamma/WS[1,1], f)[1] - plot!(f, valiWS, xscale = :log10, yscale = :log10, color = :red, w=2, style=:dot, label="\$\\gamma\\sigma(W_S(j\\omega)^{-1})\$") -end -if isa(WU, LTISystem) || isa(WU, Number) - valiWU = sigma(gamma/WU[1,1], f)[1] - plot!(f, valiWU, xscale = :log10, yscale = :log10, color = :green, w=2, style=:dot, label="\$\\gamma\\sigma(W_U(j\\omega)^{-1})\$") -end -if isa(WT, LTISystem) || isa(WT, Number) - valiWT = sigma(gamma/WT[1,1], f)[1] - plot!(f, valiWT, xscale = :log10, yscale = :log10, color = :blue, w=2, style=:dot, label="\$\\gamma\\sigma(W_T(j\\omega)^{-1})\$") -end - -l = @layout [ a ; b ] -plt=plot(pGain, pSigma, layout=l, size=(600,600)) -gui() From eed2a82429475e442b2629eec4f4abde51708e25 Mon Sep 17 00:00:00 2001 From: Marcus Greiff Date: Mon, 4 Mar 2019 10:14:45 +0100 Subject: [PATCH 61/66] Clean up bib-entry for the doyle/Glover paper --- src/hinfinity_design.jl | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/hinfinity_design.jl b/src/hinfinity_design.jl index 7f2ebaf78..10b56caf7 100644 --- a/src/hinfinity_design.jl +++ b/src/hinfinity_design.jl @@ -1,6 +1,6 @@ -""" The code in this module is based on the bibentry [1] (glover1988state) -below, and is best read alongside the complementary report in [2] -(mgreiff2019report). For the LMI-experiments see the third bibentry [3]. +""" The implementation is primarily based on a paper by Glover and Doyle, and +the code is best read with this docment at hand. All references to equations +in docstrings and comments are to the version of the paper given below: @article{glover1988state, title={State-space formulae for all stabilizing controllers that satisfy an From 2d0f99b62a31c9fdbd086f7eede5cc7f5910360f Mon Sep 17 00:00:00 2001 From: Marcus Greiff Date: Mon, 4 Mar 2019 14:29:38 +0100 Subject: [PATCH 62/66] Removed pseudoinverse function --- src/hinfinity_design.jl | 62 +++++----------------------------------- test/test_hinf_design.jl | 51 --------------------------------- 2 files changed, 7 insertions(+), 106 deletions(-) diff --git a/src/hinfinity_design.jl b/src/hinfinity_design.jl index 10b56caf7..8bf8ac598 100644 --- a/src/hinfinity_design.jl +++ b/src/hinfinity_design.jl @@ -59,40 +59,20 @@ function hInf_assumptions(P::ExtendedStateSpace; verbose=true) end # Check assumption A5 - D12Pinv, D12Pinv_exists = _compute_pseudoinverse(D12) - if !D12Pinv_exists + if rank(A - B2*pinv(D12)*C1) < size(A,1) if verbose - println("Warning, the matrix (A - B2*D12^-*C1) cannot be evaluated,", - "violation of assumption A5. The pseudo inverse of D12 does ", - "not exist.") + println("Warning, the matrix (A - B2*D12^-*C1) does not have full", + "rank, violation of assumption A5.") end return false - else - if rank(A - B2*D12Pinv*C1) < size(A,1) - if verbose - println("Warning, the matrix (A - B2*D12^-*C1) does not have full", - "rank, violation of assumption A5.") - end - return false - end end - # Check assumption A5 - D21Pinv, D21Pinv_exists = _compute_pseudoinverse(D21) - if !D21Pinv_exists + # Check assumption A6 + if rank(A - B1*pinv(D21)*C2) < size(A,1) if verbose - println("Warning, the matrix (A - B1*D21Pinv*C2) cannot be evaluated, ", - "violation of assumption A5. The pseudo inverse of D21 does ", - " not exist.") + println("Warning, the matrix (A - B1*D21Pinv*C2) does not ", + "have full rank, violation of assumption A6.") end return false - else - if rank(A - B1*D21Pinv*C2) < size(A,1) - if verbose - println("Warning, the matrix (A - B1*D21Pinv*C2) does not ", - "have full rank, violation of assumption A6.") - end - return false - end end # All assumptions have passed, and we may proceed with the synthesis @@ -100,34 +80,6 @@ function hInf_assumptions(P::ExtendedStateSpace; verbose=true) return true end -"""`[Mpinv] = function _compute_pseudoinverse(M::AbstractMatrix)` - -Compute the g-inverses for a non-rectangular matrix M, satisfying -min(size(M))==rank(M). Used for checking assumptions A5 and A6 in [1], see the -section on the generalized -""" -function _compute_pseudoinverse(M::AbstractMatrix) - if size(M,1) == size(M,2) - if rank(M) != size(M,2) - # G-inverse does not exist - return [], false - end - return (inv(M)), true - elseif size(M,1) > size(M,2) - if rank(M'*M) != size(M'*M,2) - # G-inverse does not exist - return [], false - end - return (inv(M'*M)*M'), true - elseif size(M,1) < size(M,2) - if rank(M*M') != size(M*M',2) - # G-inverse does not exist - return [], false - end - return (M'*inv(M*M')), true - end -end - """`[flag] = _is_stabilizable(A::AbstractMatrix, B::AbstractMatrix)` Applies the Hautus lemma to check if the pair is stabilizable diff --git a/test/test_hinf_design.jl b/test/test_hinf_design.jl index 484a6bd89..f4bcefcb6 100644 --- a/test/test_hinf_design.jl +++ b/test/test_hinf_design.jl @@ -40,7 +40,6 @@ execute_tests = [true,true,true,true,true,true,true,true,true] hInf_partition _is_detectable _is_stabilizable - _compute_pseudoinverse _synthesizeController _assert_real_and_PSD _checkFeasibility @@ -297,56 +296,6 @@ execute_tests = [true,true,true,true,true,true,true,true,true] @test_throws MethodError ControlSystems._is_detectable(tf(1),C) end - @testset "Pseudoinverse computation" begin - """ - The g-inverse is used to check the rank conditions across all frequencies, - see e.g. assumptions A5 and A6 in the reference [1]. As was shown in the - complementary report [2], this can be done by computing a pseudoinverse - and checking its rank. This code tests that the compuatation of these - g-inverses are done correctly for arbitrary matrices - """ - - ### Fixture - tolerance = 1e-10; - R = rand(Float64, (10,10)) - Q = eigvecs(R + R'); - - # Check that the g-invere works for a set of full-rank square and - # rectangular matrices - for M = 1:5:11 - for N = 1:5:11 - AMN = rand(M,N); - Pinv, status = ControlSystems._compute_pseudoinverse(AMN); - @test status - if M < N - @test opnorm(AMN*Pinv - Matrix{Float64}(I, min(M,N), min(M,N))) < tolerance - else - @test opnorm(Pinv*AMN - Matrix{Float64}(I, min(M,N), min(M,N))) < tolerance - end - end - end - - # Check common input types and ensure that a method error is thrown when - # not using two abstract matrices, but some other common type - @test_throws MethodError ControlSystems._compute_pseudoinverse(nothing) - @test_throws MethodError ControlSystems._compute_pseudoinverse([]) - @test_throws MethodError ControlSystems._compute_pseudoinverse(ss(1)) - @test_throws MethodError ControlSystems._compute_pseudoinverse(tf(1)) - - # Check that the method correctly reports that no pseudoinverse exists - # when the matrix M is rank deficient - for M = 1:5:11 - for N = 1:5:11 - U,S,V = svd(rand(M,N)) - S[1] = 0.0; - AMN_rank_deficient = U*Diagonal(S)*V'; - Pinv, status = ControlSystems._compute_pseudoinverse(AMN_rank_deficient); - @test !status - @test isa(Pinv, Array{Any,1}) - end - end - end - # TODO: write tests using the above submethods directly in hInf_assumptions end end From 9a0fa95ad1dbf01973f10270533f65102892a848 Mon Sep 17 00:00:00 2001 From: Marcus Greiff Date: Mon, 4 Mar 2019 14:35:48 +0100 Subject: [PATCH 63/66] remove PDF files --- example/example_DC_clgain.pdf | Bin 180777 -> 0 bytes example/example_DC_specifications.pdf | Bin 1062231 -> 0 bytes example/example_MIT_clgain.pdf | Bin 180829 -> 0 bytes example/example_MIT_specifications.pdf | Bin 1062142 -> 0 bytes example/example_tank_clgain.pdf | Bin 181335 -> 0 bytes example/example_tank_specifications.pdf | Bin 1331153 -> 0 bytes example/example_tank_stepresponse.pdf | Bin 486894 -> 0 bytes 7 files changed, 0 insertions(+), 0 deletions(-) delete mode 100644 example/example_DC_clgain.pdf delete mode 100644 example/example_DC_specifications.pdf delete mode 100644 example/example_MIT_clgain.pdf delete mode 100644 example/example_MIT_specifications.pdf delete mode 100644 example/example_tank_clgain.pdf delete mode 100644 example/example_tank_specifications.pdf delete mode 100644 example/example_tank_stepresponse.pdf diff --git a/example/example_DC_clgain.pdf b/example/example_DC_clgain.pdf deleted file mode 100644 index 2473ef2c469e83d90aadd1b849b04c410026fd24..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 180777 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 u^TdgX=?0WG@Qb)5y;Dt*Ub^L#Ie0Ht? diff --git a/example/example_DC_specifications.pdf b/example/example_DC_specifications.pdf deleted file mode 100644 index 139d7642a79c9585705e2628b0d3aec9d756fd8d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1062231 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 Xmaf1TXqSo8SsdMUAN;QF_yD*t`%qG` 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 TvrK#WeiI>J6fj+Px}MD&6gFrT diff --git a/example/example_MIT_clgain.pdf b/example/example_MIT_clgain.pdf deleted file mode 100644 index d6e33aec82cb9702ce9c005e3ace4ef6790acad2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 180829 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≠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 diff --git a/example/example_tank_clgain.pdf b/example/example_tank_clgain.pdf deleted file mode 100644 index 30a11825dacbe48d9edc234965b33c6c93632143..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 181335 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 diff --git a/example/example_tank_specifications.pdf b/example/example_tank_specifications.pdf deleted file mode 100644 index 71c491673d044f648b0ffaccf5ecec6e36fda2c2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1331153 zcmeFa2b@;L^*^jh3_lkm`NzBh8gbQVLZa?2D@`d1Ca7RAV(hxYvcO6eRs=yXF_uIW zJD^6AC>V{sSCFVnR78}-UW2`|AV`(>+&lNqbMBdP=eBvCT`r&S+%spsr_Pyj=Xo%D zA9d)j_p92!Q`z3{uXy35va0gR^07lsFYD2xtfKGuy1@-&$Cv-SU;jZJy=MK`F^3Lr zs4M^Zp$B%Vtm2ly@!%&E-SK*H5e)-?6M$ud=!^ zLmkbXkcDF=kE<)M=sUP!@TjrFLBZhRbrZ@D0Km~@6$8&~7*#(8+SP8mpulPSE;0o^ z6nq?e=9q@^N@UK_7DT&Nd}vi!MgRJt6UtBO>{vMk3065AUvfa*nBfg0%Bwn+Rs6bs zR72hPibDqVJ^b*)>LwjpS37oSog+7)0rEAvtkV56%>CoU?6I*n=C$L86Z7~waM=s` z=(-7G&m3P1QTOOkUh(U((Bl#Zly`OfD+eN#!RwYPwWbmLE`A zd5SX>V;Ud{6Uw`|S^(|Uiqj@Ta6s42-TXl)KdIu^qaYD%4BWx#&?j!e{+TpB$-yFK? zH$VLAi~n4|WA6^f-hIO_c7Aku&v_^PZ~EiYcj-8K&0qd`&49U|F1+E})oV8||Jn3O z$DO_KoYl(*Eokc9d)n%+U%C0~*DqVqZv6Fq7i{>X?LJ?x>D_bl#@<7E-T3zMhyFWp z_e*-cb7#Yyuf2cPNtb^1cHP0}ygF~mC-?S#>!mOH@ABw7-}d|2zgOSbeOd1woK}C#Jph^@M>h?LP8}D{q}U`JSCO^s1a+KkcO@SG@J} z7tVR6?QP$Fxn^LGZvVP>?xaPlK0AJHn-jjB^Rt?}HdPN?aN7FeH%wi$s`{-v7gleY zaLp^NcK^Ya>pxiYOur|451%|`)uNRzoN(&g?>*Uj_0wPX{`v8nzFdCuz-jM{dHC&K zn>TcvHErPPYc_5^@xg%$r*1g%Hwzy>XTwJ~Pv89G#+3tqy8e4}?pkwF$8TPHf2S>* zUT<~cqaSU%`_CVo)q9UCe=+*4e($Tp?tJ{lrJFAQ>L17Tey8cvZ$?}^ zU{>!BckB85loM87x^~Gyr&e{Ge8^uO?EdNb?2-RtQO>U+LDWZAJ_jsDl_^=F>9 z|7*LQ`R4G+Z(RTJZj)b}cI!92-sy77XA6Eb?X<_wIC|u&@#j2sQ`xUBKf3pjqgVdE z>4C$qp7z$D&Hp(3l8FoNm^tT|sefJY$Z;DUpLNpnZTr3O;E_kX{o9TYeZAp-)26;S zv;Q^o{(b(!6aM@0bLTy_@www_rfyvGV9nHT9~?V<-M4F(KlsjLTQ;qo_0_a>Z!8{l zdB?ur>~ZnLu?MdFYWk*6@7%Kazu(ks`s$0B3)eTTuIRn~lbH+GRP}yz%qboJJbBh7 zz3M+&cJ%(+ANSSV5%b@ldiD5!UVO$GNA7r4=MOgi?yx(?-+A>;d6&*&sz0>pqhwpMhzZ*aP<@CAr)h~{F?MDxv+^N-;BWAvM z#l0Oio%Z~pWz$Z%W6tKsh7I}Srk3PPF|GD>D!`r^~)s>CEe7e^QkIip7;{I>i+}*RfzSEVRs&1`2WBX?+R(<}HPfowQ z{<8UB?=|qnQ*O9<#C4C1DC=@t{pJ7cRWY~b$T_ck)ql+uQx`4%=*Y#5<)>7<*#EXe z4!n5&`KL{&+;Z#3d$0ZL`u$)0diPOnHmtbz?-h5q8hOLmTYmTXq7!fU*}hB5u3h`V zvZkjt%=^=Ohu-`65qA!0bL#GM+KgWR_Z3H;I(DBEA6RqcSAFY`efI7f>UO@r---)}$t$onr`-)dw115JPa_?ETfj=c1N zUwnG^gde{6`OMa9j+*k&KGR3-H~yL#k-k-VC z;=QK-q+5rLdtKV^+vCsZv1;)jR$ShD*iXhj)A-%}ntuHCkiKKyx?EF8_1dNN;j(C6Oh?&23h|gzs>#%;W z*KfSM_uqT&!U-_6_~Z+k4g|(|)qCI9?}ZQU>NkA)A6>?cR|3@OVT9|`MQcCqx%=9W z9j(1y8a#99xBs`|@r^&M+2^`v*B|}z)7Ok&PEsEL#vv`GgtlU%$2`dF&X}z#s2=U>&jpKZ@-nme){VV zpPTf4|7q`r{O{YVD;BQ$;J5{k{k!e_{yQ!hH(=lDPupJo=(NF;x2t*Jm<4y8{6yQA z#^3S5)Q(U8Z(-BK3~-KrDqRX(faAHuKIn& zO?z*7XHDz#pV@Kh`bRg+TlJ%DYi@n{yVq4b|7rC{7mwQO-Tup;esgMlWA#U^M?ZJ= zs(GjUtmdW;eHOfbWySanWmD_hOuc-~b_*_g{M?F%_ox|q-FI0QE}6cx?MYjnZ@c1) z5Bnc`)@xG_f8_0@ZLfV`x9;z6?7Obd`aTQKt+;Q8qvsx2Gvc~CcAUD$ zgF8(-u%=s0`zP9-c?Kk}9ruCKW1>ABZe9J8?h=Fg`d ze(dxEYp(d?`gdE;IpNdeKI(tZhGpxoxb5u;3x2xd@zv+QHFVpW_@FX``*;|R$uy^seAlortIMvd_U%ZM-qic-mGcIyZo8uO*g=14)i|ru zeha%Sxa#f$=5G06&4_t5>YztZ&w>-seP z=ChqvwEpBzYx=J}`?+;}rdKpU?)E#id(DVV7p&=j&0Rm9`nUD-zBlz5Cr_U@y#WHN z-fjK#;*s0dJT&;XzpuFEq|LQc-`hN8+nNzu4)6Nh`u}ZwVcowr4!nQW`QN4#b>9`Ozq)zOA1XfBW#WRHA@ch_y1L@AnqRCufA^hWEY?n|TyWQx=cZLJ zSUGZd*@7Q;`sb^Q*X_A{)S|XyMxNf|*aiPSe0rM&Kc2YjKWZkmKkz>l^M>#D?Ijg& z{$ly0+oyIM{raY>D(0QA2~z&@r0d2mxN6w?IZgBKyJ^k5rt_cQXU&~W^Zrx+!Y^x% z_~MZ*msHH_a>-eZvyQ%a)xXvqed}(Q?pjke_~3Q*Q#<}@>49Bp{yg`qU20za;;FeX zK&#ul+y8HMSFawkqV=P<-!`*p-m-5mTYb`s{(Ibe(G~}E_q2{vr`_-e7|9cVU-8)J zpWd)bP1zT1?uHsTYW9z&98@#=o1+$v+x_@eRZxsmpI-m3jkVvaxo7up+tqYxI&9sr zsn6V3b5)yXXD#V*;-XmtHaXFYMH>2Vw6VEPNF!c3- zZCCES{FR?S(RRm^zPs*X9?P-euTl?{%N>tHwWen6}TLyIVckeeHHLI$m?*m%B7B zy=>wSYTr5ImCBo{D=+9f`a6x|e(=({RZoxFq4R)eo@jT+oDNI>ebp_eKKaw-OWUok zKW#>*{oC!;YnvGzTh(6s@@Y@B8~pLG0T0aXFyofhLzi6tv)WbPt$qEwwT<7cy>Ix9 zGcN!3&4U{UEML^_i`Twad*FX6m(1=lu<_$LbE@Z$T>5`Ao>_L@|7*PI%BmBu+^+V- z-tCt^_e{Ib7yV!DOV6~s18*t$+ z7qqW_Z^n#Sr@Y*@-Cj$!Ydma5KS#|Kd+kyCqfU*B+cf^CRpZaE{6p0)eb1}9_Q_VY zPrY+)Rr{s?o?Ug~>Tb1HG#+-^fIsXqe_i{v!)E;V-0P}-H{rhL+tof&eZl;B1I9HD zxbuV=RY#6|_xX0uO}?b+u^+5i{cO8oe_SxI{ayq9v8dg!gD-(llN+caL*`}9j{XWTOJ`%T|(TsGyhst<+^=-z(NU)v12_M20> z)OK3C{)87Gq<-5t34Q5|-+XvZ+3*=>Os<}P`fiW5udUi~=`;8JX8XpQem~>x9wV#g zUw`Hf14owEUh#PEPuqR=XuI0^YhUYH`$*NZ?FZd+=%CoT0CyX!ts?Ce75TQ=d|1LzwO&SS#?gIxpQkDxnX4c+J9Vn!?FuI-h28E zXEYx5my=snUU1Ek?+l-@$K0{UFFtC?%T1S5y}zRMhE1Dx8N8r+{s~LQH(oaItlMgT ze!;Wd=T*-?@tvjZpPalFBJ6q4*MqywuN%6<8?8QTcSq}AR_^oK;=~I&4(ayfr-#h`-KG01`C#}l z&$jJ!|GwwH_rX1fo!0QT?+iJ3+rATbKDPZy!+Ku2c*HC9_un|Q{gZ#*b-U*(ckgt^ zWq-Q6VUN~7`|A;1TXp_N!*hdYbR2r>uWs6N-kh$FP1$hUo7cX*`!5&o_xXh#dVh4= z?TdEn)W3eyj&siJ_}JpH7e4g%im%RYyl2X$ogbYzbIVH)e_4IcO~bd@IAh;kTW^}N zWXLPM_F7%NfA76^eR=uH>U%!v+4i8l?%j3!>-KwX=|k7=_w)-(9{J{~=YG4eVa?{} zcV2kjyQ5B6yLrZb|NZKw_9xx?&FmTbJyv&Dt3kJ4`0l8`JwAWmE)N{D`pn_2Kltah zckX)9$0PTDtZ(D2-}Jj{UYCPbe6!*FYZjgT?THJQU31m(pRQ^B!7rcP|DQFF{N=YB z+n>;N_{t7D%-#O})B1n$=tp<}9V!&<_+Y*m26FnZ3X6@%ei_zg@Qat_#0e z*Y|}dJG{N3P0u!NM>n@)h1)Tcb+{4@z1@z@cP(x;Wz$Rjo_c+|DV6)*IC0MKFaG}U zl>h9%`s1cYFMYkP*Yz`RfybUT4_vzX?#W-TJ7w|uSEqK{{W^HOd|k!xFYY<>&ENJq zd(#)6FB-L5&uPmaU3}+Rum62<@5?IwcGk@4@2)?->7bKeT(SG4UdP_{_Jtj$_ggUT zg@xPJ98rDh!85l!)c4pg9xFS0)3Wm}U)}fPMaOJD;Ed)cFlD<)Tdz3#|AJUjPW$iME8cni z>`iw(zIfsNYu24IW#+=&?(aY1tERD|dro_$an`csU%dF&R^L7Qk)FrwTGMCXgBOnY zsQ<^GtR1oJyls1~{maGMP2Jvq>^P-cO&`eU(pk$k-*w^Yy&<7Zudko|Vf}SgH#D}d z?eSc7?{reQPQn(*q3hxZ+J zQ0@M=cmGS(ZA~}a^Uad$t8Rn!^2}C^ca3?X-OK-;z3kc9w_j5A+LS{Zo#)@Kt~zPg z+CIOmeV|L@ACGMuHG0POw>$qkTYc}vGoBtk`~63bSW@}gnyYIXHh+KVUHjH7ytR7j znm@k!;V<^PW#ia}=% zX>jjG9VXmS{$}uKxG4Sg0c90^22ZGS?*%Iks~a`3uA#nmuyY+YenLav5rfCW)n~wy8UBRI9*KNZ+W>*k$+O8m6OFDeV zP&aVO#X`R;=i#`Vr=$A;2QXcZe$eMT;XDuM0s(<8CrIu**zjrBrk4;0-7XJk$47_f|E;cu1a_%}gt7z_b>LCqxxRa`R(Uyg{Pbh%THVzx0=Er= z=inWl6Bk?+yMyT$3Xk8B>CE!w_c`+2Aa?(+GbZksIpahAx;7wxl<(-rf89C&oLehS z9iYE%p+cM-&H3Y>vVH(+be!G2EM_lA2Ylh)`~HQjG0jHGn_92ymiWfitAKC7t_sFDZDO?8ay1n zz;V7c0n>fltN;C~x^yYuuM>Q0Q3ck*fB%sGwyI#qUsuOr|~qx#xI#ta`-=X}+HoUOuN8?aT?`$_{XtcQMo8G-Zv22WbkLpmMs}*B`U2LAvWEnkzpf{OnYP=Sjs-zR*XnP zH?nL5lB$o$v|`AL5k=rewv9jv1LkbUO6HYq#fUm)BlAWewGE>l8#cDFVni3Nkpo5` zot5xD$3!@)fN))69|a~*S~U(nfVSQ+^1uj`#C6Ajc_Lgi{@|vyYFr5pEe@e|(09oQ zBjv#b(+_4-t4G@z-RF1`Mot)k;@JnODB4}D^WjwWE}2V7-ZrxC%T= z!C_UXj>cxbhR7I!LUhQx%{6-|kf`x`oQI?rSS~=`CF62^vd)A&BUg+-F&r`1>!m&+@MttqQHn}<<758c6ju9xT2gXWS0@UhRzdSw0Mtt?2GPyP%6#Hr9 zju9xL3&uKG{2J{VfU%K+dX2UMC^lu}kP#@F3#KYr^txJO2&r{bBUspx!R=IOBZrJY zk=$}MnnV>2R3p?qk$g=NY~+y%IVg`*r1I3G6ETTYp#nSrP<`R91L$12y-I^85@+5Uq&E9Z(UtRSY{PIb!d67xe=Z2 z4Ek71A&QMaAv#!h1WgR;d>Uy+pa@2glnv6zGb50Zw-GcksQYQ8x&Vq`#1Z0#3K}S7 zI^tp88hNGzabM*G@mr@!3XLGZpx48yFI2gi`Ha%U^K9|V=>V7@QQ?Gdt%|_;! z3{^@rX_^s?6bf4-_BxV4VV5Wh4L;L0q$z2q=Mu zsD~l~ZME(Ij5LgmIKYCeXRN^RD3>pAWeiUPR!U(ELb;?ZfVg5`b%8-d15H6spjT)V zl!}x9<_uFK4vq`?m4G>Jr>hOYbR@GJ&`RJ8L722jLB3k-n~WExhxXGp*C`<=mbV#} zH-nrI7$NIp4I>_@bd9PgRXk;FkNB&#Hy_6n|GfwKycNQ zA{-{j2l{-y0j6fvrt-d=qsONuPtS~`2eA+ckqE#@U7v$s{eoCDhG)cm$Ry2-04gBt zX$|l+mFmC=mNk_f9-7&aiWZn0#0ZTk02IUs#kCNA#HR0q+)_Lvo=)Nka0!PsU9_@C z+Tk&cyyGB7$bAT%#9WKcAA>&633)2w8Ii{YT&X)QTGb=v`%EM6d=Psod}zkmmdE9A z{WRexLt_r76%x2V3{qHenH{MMpitlI_jAkf3D1z!57rk^x7>5!O7&<=s6>1{8c`oo z$P)w0eehALUcbMfRZfLD3{svOQcFhhP|NbTRGz3!I6YK%psf}~Fb~8YN`+oGk_(by z{R|DLpqSXw`C(>+=#&eoJaN%P18b@ze6ZY(-|IbnkpCpzL6kaIdU0PVpnOvG^b|>P zW=4XV<@y|M5a+dAxT;6W_nDp{zbSwEApfaH$$NpT7x%;*kWvG}sBlI`hyl5b-U3nK zHdPWFD>uZu8R3KcC+YT@`d$Eq0vtsS$Wy3%c#5PrBO^q!T*l!NpxboOvJS_0DW5Z4 zQA3c2RcO@rItGnxaqkp_PLZxpp-$nLqe&*=T2OV!_ywMka~?>K)%Us<8KhubMmZQ6 zAM>=POpIVV##{&&P!L)@+D@rLCLzS-uqAjGE#aH&ILwkv z81Xz1d&oQhthUqBWnj#OAk#8ZZ_2<3QL51Aun7{H3b5B9;sYEe9AJqJ52Q2%61qOF z(7>1r;R13(uSVZ1(Z~eE%sPA#?xBSamoIP$g9#HRZTcYpN&BJAx+LCVtVZ60g(E^u znW(@{DP4CJ1(4jfI1FZ1jZi+we-am<$$CPPZGbY-qxQn}%S1&W0F{8t4zKEr?dI+PlGfd6DbzomE91M?;XKRzR(}NXn#b3}UJg!rYc4B#0wTg>D7PGbJAgq(~u-5Qx+% z_50A%l|*e$B9$tVVO6~zKM0bw6qP8^8tDugfFKNt1}trrroad#VZ7Ya+WY$x+G< zj*t*cNYa5>0*IKx*ihP)RiT_tzmFL4ntreT>4NnT-m6y}@Pf+#q3pmQLL0dy0TpZ! zg`rI*senOep{HPjQ-w}Fr8N>1^>qiisO1BYXRKG*frJC3kyl2bfLdKcs|`AXvJ9=2 z2@0@Q1Od;2OiS84Bd?4==AOCg%;E8n=0;d_WRT+-4U;l*$_Nx@snE~DE3`AAjEyiL zol?c~$=GpI7hQ#>;J7$bBet_07LTdlVS0E!3y?RnAxw>U+0Mp^fL0@qj6eakp$%7M zC@LYq&|#LWFn(gMuLfDD0|CxSQr^(8@)1ySx?X}b)1fYm+b^* zOhu*cP+=nw6$)!-qLdny8F6{=;bUpr=V$Pgxg(e{0tr%KjBKN7X@afs{+NoMqD059I`Z(JN#L?zNR(b;-P$O;|F}-#` zCZh(jsKhN#U0JV%6l3YuO1}Byf zNM_wewv9k(xM;Dvp^vuCBb|_<=)Cud8h+s~B|VkOr4?_~^mI>&hzn)Hh5xs&0JW zv7^V09aA@^p}bpJMc=Wb#*QB}Zg4FK9$GiCzP9e@etpU+4y&slKBA$#dzZ3`Opl&&OT%c-_(E=gueQ1+N(j$u1TzLJ=XPM$84ETx5cXyO zoS3z_=B__aR}n|>qKhtKg$fl51Cg~Smd#}yPNw={IN)N$=2D+&I9V&t)0K6GL-h|E zHjI@k)UAcZ#Im{2@JklJPa{B-f|GDX1Lq=m7Y2WR_`@GU&A=znaG-@THNU`tqbUf& z+ito+m0G&ejjp+9iq^8Z<}wP{Po5%}bQYF(Y?{!pMDPntw&Q3%0jXb7_;p#j zcRr<)E|R^iuxa@qZP{G&8c=?0gE_lo$&z9@&khgby1|YjuxP;i<>wO&1E$n%U~<@- zZ@!sUTqTmOw8ClbdSGPvC|kJPvuv&zjSlSTHU~nQ8SsHG^~@PqJ)kP2>jP+j(F75G zFkm9&)Bz_eP{OrI?Z#l1Lb_tO-Lges=y?sp0A(GlWpi1FlZt-4z`|TkMQ0=>FyG07 z0B)EU1Ne`{;ewr8=l2*;V{o3~{3Jxt(n&S^A>P#Qf<$vA%fZ79!<4n3md#}y zPICP?A*usFaw{qgFyiDWf|ml7l*s4b(7~d?W)rz-A;%R_gCVE5=^{?Tc=1CQ-;wPP zBJrwNO}xm%FlFtAWpi1FlTbgNfbj00P+L@S{F(q00VYL~S-`b{9(<3%rdTSQRB_Wq z(hFxfvIw(C;e1 zgqfCZ)2UpN6fs@WtYUv~GVPx&rS27riSI%!yyI9lSFEgR?BXLqDqFV37U_bW0@uYWpkyIdAw`e++p#hC42Qq@@0)GpLpVf zmE@Ns#Y&edK+J~(LcH)slh#EOR^EJRd|*qym4xQOvbj)y>;T9_vsr;;56$900y!k> zRl+T)i0QIZ4=vIPR5jbG*k{(;rDby^GGzE922)c|c%i6fK zR6}^%vT!W1Y_8~|2FGAL%Pib%^N=(8wHVir2_9p@5-MW4a5y;~BLkMl&a$}}2}xH3 zubeR5(p9e4hHo3#OxNR+^m1DXFG-4+t|Z~-vMd9<44~dJdX>hhwrmcYwoH=?1e-r$ zA}cnGEW9;j7e0R_NpeY2#B^nsnXO7QIR+c4udcXeLR{ zdXM0{Lz3btV!BB7@@BjY;9q(`$z}ax8_VY6MDA=RF38R7#SeP%dCHmY1v$igd`Cu`s*9{i5FiPW26cTKjkpd(WIg9bq`vVp=(Lr(&zKrOtN9`?ox|qYThLEx(IZSa< za6=G#)O01mbGtmW)Xxm0_F(!XaX3^qMRTymlK(^o&r(_hOuf*EFo4*Nx)5Pi@o0Vv zN<1M=C}UVsQr~T(`b@mCpDu71CKPuA$_bj_2COYW;9UvkMe^4}s90_*>xqWPf}H)B z4^e9yE0ofZHy#}$q_DJ@shEQifq@`yXVf$gJeAPQ&8d)Nqt~Ye%85;%Ecrik|wUJc;Z7Elb<5+(gfkFGLt$V+r{+&0j6sUD+fC37?YTTg3tOKg587HCG%91 z<5ucxzM&`L48;*?Xjq)#B{A#K=TQ_rUHrhWdE+BqQx$m)397a8Dx4;DQ>#> zX+&S`r4R6w1pwoVvvzV8s()DLxRD9Pjvt z$8JJs@n(=Fgkq%&0%3c!$x=_8gak%9rn2zy`zGvknw(_UC7nU3I|B-FjY0OZiwHDF zH7891I4NF{iEaZ%oKR3msm}{AP0o-Rtyf}yQ9i!y3C@OG+ z%vs{6c@y-cxR?;TcG3k_m|a72#7SsIeK&!OaV1e@)2#<_BIxgkVp!+t&Sm|PC48tfyCm~nBjFf!7 z6{dbE5y=e(CKDmXRMHy-g`}LKrc1A%^ctGOZFbOQlr5=@EPu`#606-lhVmUD@wXpr0{7t7Gljry+Y&*X6kpF zh9QVBd^8n%6LMf_A_bFV&W1W;VvgL(f_pHmp_(-S@kJ@!!4>zf z<{K!f2hvP_EU}+1zJHn5wwR5mf%9pb`tBdQ0Qk&`x+8uVF%kq{= zr9lBh(h|-B7!E6IMv+r%PN&&CfGz z$e4!YWyV(|NPhCuAkVz{q8h0Jd4(_{`58cOU1Lr>kfd@9<4Z9&oqULKjC_E&e%#x9 zX>mAMfC&es^wX96l7uBH`BdTu5>S}DXxZ+Nd__`~G_U`(!dDq$e3d!zK3DqsPw0X-hWjuzo;ZbmhhNe;^~q`9qA>7YltKzjsn-i@}Ds6pr36Gsa)NN z-U5fzN%DnMYK1dZ=EUQ4S|N+Kh-qnNL6!K_;F*s>NRK56vsdEj689ab*hs148X`%F zU~-lQwIU`GhfO_D8%fF>teV>98X_T8<_I5}X@x9KhlJ;I5-+bD9s&WR-h}sDSa>tK zH^bhFp+SrZH%Cz?wper;)=55&jEK5&G7V9s#K6hk3P%(XW6t4c{#4HSQoAH?$(KH< z70#5J<6+|7wC;tlPDZD-MzNsC-T@}E8!Tp#ZR^Qvl@E%Fkd8~jQ>*=SsiKqe#cGK< zBiJ=d^4$twk|e*}U?=nBmo3ty0TXJTq%PfAM(nE0i7y~&g-l*HS+EJ0cM_ESsliTJ z31>8kLfVvOFJXn)PnR?_DN`D6q-uffkJVVz^+)svPt4@&5?kN0s~OeQ7UN2VqcVq= zUzWhMLKe@`pg)yZxDxS~ZxAN$O`YI5wD5Mr=LN3ngcpgH(-kTI$*YA&mvD4Q<|D0U zV#wU9gnC5HoI@Ojf=QSGu31W`%;7?1bXsn(msYGl;cLDam-q^h-FSg@3su2mgg|iW z7@csPw45#;iwPlCOVn3Lz80mp-X?#wVTah{dNer{r*^^&Xly~3)EwVranS-&ugauX zsyVGSiaQ_;iua~Y@HfF!Qlxi}uUdR)peFSqp}m&V73vQL@Gvobg4oU`O-R!x*+gVO~RmX<`Ygy{@rENSi}@*IO3+G0VnU0niHAH zH$LVn&mk|}gv+}s1ME7BTZy`nsnm*myrGM|sdMWE z5-z#?Y?JV-2R^wH>IuyQ$zDcVHg`j6jt9$!FY3!F*N+K2>6qs1qT}_$3}v)lL3H?( zmCB^X853zfB8*67T)>L8bcqpZIO4JyBVK-DOi}}6MreEv?c$4e!j&!55X6hC1%^0O zBnd!jPJHD_<%N!~>O8>gl1Y90q&#NJYhvYKIu3YB0x(2a*&wH9P4t4;GMQaf>~O zc=?Tb28Ik{apnVj#&|2o=X?-PaqLuC<*!l9?WnP<)T;O@b7X}{I7i5ggV3^GAw`Q> zj2+%(*mz}Og^eBA8DpIDRW$&7JL%FmAa;pUINs|C-ohdsgJCF1&e;&N&qxJKc7b%q zPD~wez57zIQZ|rSsGLX|I9S{hK^v?IQ2fxvVL-t0CE8`C8B*HIRFOe}Q6u@x zqBgMegeKPYD;|-J(bStGL%^2hNLI+&4jRbVMbZ`(Og5t!{_8E0=vb++PbfLPtYI$+ z0cKOYec8kuv6XtdOnl%Nu#WQybdvR1)P|MAQb2ACaWByPMGuw>(nXq}N23b5tkpjW zIlHo9Ll$a|R2MAce5~~ZWQ?5a65iSB%}IO7N(h54g~eu)06{-qTaw3%wSjV|L$dM3 z_FO8Mb-JWRRZKENS#DL}P(CSRQMragYM#8RYXrrvtfw>11F?>~vY<`OkrN$XpEdqK z#>g9GT6?s{sI-eLl_t(h^+=gy_hHKM3nL^Uo<&F?@f?~KwliWhp7YXNMPh=W(F(Ioo_6nu|S+rr}PFMq2e^i=y zp5lT=DhlTWFD6hzFpjV%8hQ?D$tx#l0FI$}LRfa`isTq^12O=Mb|eiV7%CI=MEau| zH8OERb%OIYml24aBrwIY7ZV%R9Ap)5!LY)^at)&cl@EWQ7n)>81H5W1r2b^VB=wWx z;*6IIaipMfaJpEr!J-OTf}B9caInw>JamcsCO8ZsU~r~%cIk@bHYp^?Uh-E(Z~!tN zI_nt#93W#v{5MwxW2#q0G^f%e3C!Ao80N@Yry3U+cgu^gCjVr5YLJn-_|Z#K5Al%n2@wm0ZSzbkl2D=LtCJV%pjtwSR)9j#-2b#k&+(+9NQeM z5^&yzH1a`#q(KvyML&dyc_7m{Ef3j|1ELl!Vh&txh^IB2d66#eI-F6ua8C3zRF{~O zbaz!S0ZE3jV}r=57Xpv5{js?K69KD&i4a4TJ}u_GU>YY7%FkRj2GX**7#^l20!4@u z3$GZdXofn3Kap-hA?Hx8-~b5n+5_KMC6~xLoKd>Wb552rmLGHR9LZ11tnAZWgvIn) zHYYk@lLIpsFD5okH%D8=O&75a0|&L*9Mf1VpK+aC{jn~7 z>1NAF{;iF9Rp6B$2F_eC9@4V8cur;~g)j6hWIMY+>}XDsE^%4Vp99Gc_45Ns)FH;p zJ`7w`@u+yq=Ayc10gr#KVBrL4A)-u8#7h_6u-KZwJ~au)h8Q?MG@6erPB>)JTreKe zvblIpW-Wz(!wKtZ{u-`Nc)WDs4GXU%s>K0T7z_g%jx>75@?M+)oNxWzExH4d(j~p|fKr#9x?$Pjx3YX0v9PNaJ*8=b zz=u3T6K`$o#V5~yX#NQRzi3!kge{vR!IplL|Lj3}{4Ra}EqiF5E?6|k$%NkuVgeLO zuVF36)$GjSwc5h>T$ar>yWwCC^Xo*|C?R9bGzx2OM@knQMc^a@BK(K~%Lvf0$iUl; zh4*@EX|ZgGj{*=DOj|Z*A)+iy!0N#d+ZLAhEJCoUGfBGgg*ugy;wM8pd!J=B~#adXIEt`vxkP;N(Yj6Hlj>+ic=`zVux)}b2 z7bHJj%~EZa%}IS|rc8cGXyH4xW||`GcAhSrjjU<@UtNH-XKf4gTQ+AQBFiRV4T0Cs zd?hhVd!8=CL?wq=PIW5g%Id}pozO78Zt!S_8aw3lvZ}7-mE{i6qeofAF_XvDl~)`; zaLDO(wGCwzgU%e%;BpQhJ$QIsSw)}vh6zX2jqf{l^tiEO>c%vbcPp#tJ9gCA@q@+< zt_8tE>n7IM*7X}dcyd|AVRiMxM>Ldo?^0HAT>a375#?PvRhLx^s2ejJ=+51{Rdy@u z)vL_&1%G{*77YWOmMSwn)(v`Y70WI&Uo7iJc8x%0qZ@((OLoi6x-X;Ek*sfda{l-mqaK z;FWcQ0qe!8w`LKw1t%R7WI)23u3!9v;`JIGF)CrTozMYC-1`%78+d_su;EAqIhI>S z4j6%wIPMsTmIqgYd;~nuYjh<8cgNv7a6pZOr z>U#@XvZP}BAPd}^t9qUK-YjD+=r;1f2vpD+k&39@g`*GeAjCMHX}wB)Z$$57!{d3u z!h}y8sn^tN)c3{?Bch;@7e=6nhJAQ6-7ebu@HMzk%wu$*8#UZs)D9&h3xsNP0Ws9F zz<8}OJB$gmR-v|2=5S;InG%s_q}B)|>Nep-QSD;chp3wKJ(P%G9JgE5De^sS{&FG$ z;&LMT0cKQzF-@#jV9*VRTa6K1m`F5V zJWr%b!@P`UDbq=2HUd!{mS#m{nycj*RaP6y5`aZpF2~#;Q^3tC^d(_O^2KvRVb6C{ z*RAN2v3+%_EXrg|c}7tiflMuOoVixB1aOq9+{_JnK5~uR=M;$u-gthfjQeiN`y<$4 z3Vd~0lv@#(H`6@u@WbK{1DYD-!{#gGj5LV|-Y`GZ#yvmffCzS&0#935w&m8sxJKR> zfx;}2ep8)(^r|(hpq3*GEKHdiL^4bxVx&nL`xEMg4q$Ah5SmV10Tq)n^2Z1i%>hG| zEOz)b(C%a9P(yq+kBif~!4PuSOs!yPM+Udkq>cPB0!8x5)fgTWgE^lD z+I_GT$~vW8#bKH{6pqs%G+iYeb^2br8bc#ycAd{qC;)u46zg_Mdy2(0^T-QI>!ezf zx<{)p!%icQj6e~bboGVS5JNeiW~wz>HC<-9(?^-P#8CPKI2fsaW+tSfSuu@VG6F^L z(A5`;XI9}e6v+S@FU<@Z+DQp!SbbC^Nidw0vUR0po>AAPeYv!%oUR1 znKoHZQF#V#F^E134n`J-fqI!();uG(j6jB-y1MjOX3qK4;{v@(xT`GyEscijmo`F% zfKQ#nir(fMH3S=;8eK+kpMfR@aXztN7_GuHZDG{Ayk2BT@F{S70<5I$T1_3 zk&gzN7{vKB(&&Lyc&5!*6NBq)o4Vy{(%21mjQe70vS2M-c>xO)w-n&whN%m#CM-y3 zBgb?g?y8)KY_6b&i0YdlCIv8c(k_u%u&vO>Mn)7AIi4!9!{>xMX5fvlj6TDaBMAdL z4g^UkNl%rs-)x^`S|mz5^_m9}QflJ3f-cTVLWCPEXfK#{sX|AAQg##|F6FBtY}8~3 z#1KedhyN4+YDT#7f~>FJdlothl-pHkDk)!;5|F6eeC@ht&@w{?dBIjeSCAjG6>hMg z*u}a{wNwF9kdskN1ANLl8BcA*m*GkZgx{rqhN~{fyI8lWmMUNhax#i(fKOQ`dxDO3dYR2{pmwu|^TAvQa=5v|y^xucX3Nb5RHC zH&kLS-v?=)Oy2oagBV8L@AgPQj1~GBR4maG1QbrK8kdQPt{HC7mv)dot(q3DHV)De z%q~_bpczD9V+Pkk2@I0Z2C6+N2gwyE#9TH9=?JC(s}#@*8$p~1;+nNYP>aFpR?tR8 zCaPT#2Uw8xj1(A*a@mwA zZF>r^PKsj?$|Y?9#1;Fh3k)I}XbO4)z0fdIL#5R1P=lVRgF{+8HxS1mT`u9Nnw|!% zlt3ARFiF$bB6|`jZknie@D2{ic~%g|2VoTH4m3Rt8aP7)gv15~`D(FV8INkBdT4*? zmz&_Ris7Y0)$PwLb-&xglPV$9qM>Q_L>(N`;@LnPha@1O2*d!0AtMRMQ;J;$ zDLFTwj_3*WISpS0JcYhkj4*?qQU`|hGqC{6a}J}lv{VI_U;xaK(w-jKLyC8p5maLx zo(;?@PSipF{m_Gc`B9QV!XRlp5&+;ZH$EL|&{ItedSb*0ha15arbI2^8BqiL9uFu! zd;oo#Y6ct@^$lPi8`L02+hR)85F_6LAh}zPg#b)qGOXWM062+s3|6Q?rqh98?Q$`S z!V(giDUoz|EV&Um-ow&|9PDRN(aYJ6Hr@cj(~emlm#}nArbLa98zJ}rD9{K1)jbRr z*6&9QxPac+jZlN!uYd`un8OU9!Wtn0QX^`e9z6Jv!woe9EFdoxbC>~CSR+J0YJ}>< zAWRdSrprZ!^%tq!9Jd0INc|L00TD?fL_lgpq6V=%k-`J@A<|54raCjUmCLyid7| zwv&rc+rDBBa0rJPVDN^jLoMNoI^FPxtC1260IbJJz2NG21lp6Axo_p@Y=LMb&5MW6ffC_LuwE>>G+#GZe>a~;|s9zyk z(8qj%HX{^xud^UVD6WO@{id&6q27m?Kf?^lHA%w&rWEahl|9l9j~UN7N7!>v>yq4C zjX$2!AVO;*2=!Wy8fgdW*CPPPeBp#bAwwxTxv*zf^6=zC9F_>GSln$DK+2bfp>oOv ztJFyOJ~N(kuC(W&V%Xv-_H_E*u_rKt46o&aRXtL^&opw*2eGHZ2Y=T2nuVvYMd2VxJULa!Ui z1<9~}o<+UKL8Yz`VfoEagFX;Hr9!~O7*4xj-ok`R!pBI>xSe5=0P=)2J}Lb5tqV`7 zJ1S3Hu%NCDP)7VTw@SysAga_nDp@zbSwEApfaH$$NpT z7cT%5LCWb<%x@ysZjFvnU!0>hI*YQ%@ zRK%#Tj7l}u5Tuy|9Xy8{#JMdOEaAJklkpLc8A1#h>4Dfo z<^c$4J3Xc0#yl+w8-i~D7kHQvZV;m#+H-)g9WG%hv3`e$4{%hjx%>c9Y%p1gM+~Y` zEh_Rka)l1pM--lNEcCk_1)P*(!qTn+(*r3D0aDk;6@?q~)X2i*S_*`NF0>?6xIrT1 z+n2Bj3z{BS=y3T0moQYWnFy<7Jrg0_#1UvR0U?(TTL~6ATqOdRFqkF6q)i{>KWRU- zS(n5+jMd2dFi%g2B8GObzMTANU@$1?nGZ6(=m^t;iY}NLRiG5?fNjrmfQK68Kb&;~Hi7>OpJrC?IR z4zdgk1_V6o0Uk6&HNKnf6T?L)?&Y)!=IP})384}#K*JFQtV1b`ifTNdsw1dX(h>!A zASGJaLA06R7>3RsqKIXPGR3xuK_sQJ?ePmppW#3K9+d*WpFbIpH#tES@(xa@Bsst@ zAH>j;DyIcse1`w@)v6Tu{rt&*yeTINpaK;@dgcN=X+t3&zOIsr2~pa3oO+k+{P_>Hjc6 zJ;pQSfaGw`dWaUaJQ3u<5PqR4ccai>pv;l3j4~4LQ-JUj5@0%wf&(gwi3q&~O+puA zcmPGO$5tp;2`P0JyunoZQ3oAE-Xqe-c%Jx8?NcHy!Fw9vA?XB`nHELBIP=Qh^^*VwNM=r=w$`?#{l#3L&gn>a! zH3FF1a)bnNqzRFpQfa*zs_?W$Li=WsCqC(Sp{Lu0+MM)dG*5;V0Ulq`?OPD#2uC4L zP+n7`)$c-2R|vH^DOVogGHie)Hi95oOIjA9BH#q2r4X0NaL#8CQ96fC5EBX3K;6CJWE74uuWIHgb!A3Z^-w zwGrqfx&nQH2G{LNU`7C`Z}{SRl-KLokYcfYhvpz<2S-QI?7AceDLXhqLNFmo2WAN%VhUqJX;(HB3{MU;HOO!+ zV{tP-B$rmyrehVMDqNKj@QI;@2JI$3aa3Unnq}06PKU*g``NH!PR6v#U~nO0DEexc zg=-n)RN`i{j5>?dWT8`%?*dC|kPZiH2TQP^B1KB-O^W(`RZ=^p9ktYDKc2YHOqA-J zkr`xpFDz!Xt<#sRPv%WBjdE$39U3KV%QdCJm3brRH3A7zVT^3FYOIO|U5@kNOL+{x zncdShl%0B{S+wK@S*lTs4x?z|lPv1^@{uJ)gEaA8JF@2J0Kx*ST)z=WE*i?sQn%DNG3YkE#SPO^+4Pvii}VyLG!c6^QcNqP(_#}ZSS!#2-vr7 zuq3QEgQzXJ=$Hu%N!AVP1`7e@rVF_sl(p1YGvo(o-C)rTI}Vg~)E2!1Q~rS1d0IE< zg;gxO%zUw|8`)KW%Id}pozO78Zt!S_8aw3lvZ~7R%5sP3(W9*5n91Yn$}5f^IOO!Y z+J>@UJyOmY+9Xo35_(9_a*Mi`o zbrb7r>yGZ%r>x?zy87WG8p^wODXTcHerUsp@-CgKLE({uCyXqw>Ix>0E~^+&H)c5W zRCVosK&J!Bdi5&vJOkgi+CR76dh4Eh?g^h;Z3a>gJWpxrDU~YB^DIq^1!kUk3rPkO zmh)`coSht6vvSNa$FOr6q|utumTf3cskQNahBtELXT?bJo&m z!O)?H9?I6D*|TR`Ft;_B$Wv;0l%aH44MXNFo8CIjTt&>1N6PVBi-|)s*GeHWJ!1n_29MedZcuF;%x0o(| z{aBh+tnpeACocF@S$t#>^qlFQcE8McV<~Ue9MKI}N>_-`e z{N|f)!rcP*jqRSHpRn4P|85G9Org1mVX)lol1ize^DPP1?Cx8j6#0*NLaQB+`qJgU z9)T@2-C@luJl%Z8)@HfFEt`v-mZAvqmv@-C@B&yAAFxr_&0!DaLl(N8NC6-o`m)K_ z8PJgK5u(&miqpHb(QqW=6;k5A1Yoa_+*?kt7gE?aVgKT9sk|2mU`l5$FgXnJkmAti z6`o=;6RNUY;g-!MOpZ-){%Qu3uINh*%ze$79F`R5g?$z_K^RcJ{Q&_@V1oZ-3kE!g zk*wl%2Bb)Dl4ePzG)W*WMiw?HzNhHliyFDk;iZ2|i<_yP-t&96V8Nqxw}vGz6;fA_H-W`zc`f zIs>Z>9J56|@i?WEQtm%LW5D}M=-WD%YGDM#&i7Loqtb~EiW8SBI0+SNzT=Z>hodGB z4TlVqi}Mo_d4(rTU`FD2xGhw;Wpf!NEk(6BA*wTQisq!MU@=i`qu`$TszQ{*uEDoU zAaHeoMe-I9+X^uX%~D7y_X@_8CxLGz#TsbtRZ$4M1;7{;#Rt(SctuJP?}j2?#Q`Zk zzU;h2<`j8pRp~L|=M`>}CHol56>iy_{d`8Uh$mo*uV#^az}E$QH2?x8Z1Oc9Z<_r5 z6f?O+U`BFV1ulh@a^IwpLdftQ#4%eHfky}EqQ{OeOJQ8#*psB@xi-*)ztChw4ohDu z@!}j7Yti6=zyW;3<@*{qlj3_Ko^I@>OEe1m zY%1XwJ*6ZHTX6 z!kF-WhtKm+gekrwOG`bkaLsVEye`WXZrNO^jTa8z!qqwtACBMREh{W0u(qVQo^W%R zklJONX)30Rl~Nodp{3WnaFQXgt*wcVJuqta!^fop6`0CShoc}nby}M>cH8EnfkPv7 zUg0DmtZBKzEt`{uTr4I&yV`s$g`E`7N4Al{Cv0gPAtT9$u{vDO)7hhVWcn%c;PW3$mHxTdr`+=1OGX$V9WVz^ZmqIM3K|fF+;26tLAS`HM+WQd%PA)J)xg zs>7R_wet_TD9Gp}Nw(~~!kcN8CUM(xg;`ecw+9_&Qse(M?7dO6$0Ta4Z zQd#iHPbiruu<|6dWk00}9nQre19)Gv^KvSdUv`@~pJhPg6~1*AyyXhFY_8~I3U_^Y zmciGES-S+=CEjbW^(-#9Lc_rh0G)glwV%?^7;}J02J8je#y5vRixZdUg4?~ zwRpbe3b$;o=);E(4=~*<_yZSNd|qQByEC~yD6+FB|2oNjO7#Kez2+H!jfU4`MmMh5 z8ElT(#l7j$+*V%U=_a;$Y2#%8^=7%kEto6fSded0Ed0A>@hHyL5ZHi9zGj;h4%x75u88@^Ke&Rq z46{2^XUNZT_!b6-CCgux;xN-4Zp$gff#h`Z43K{XY; zAToVbgsl_X%Gw;;O!EqlS`RG`kE<@z3TLUaY_2HdMJ^<>zGx-849{?;r*V_S;`il* zUnf~ksY!G>CTa%A9+%yZ;`pl~p9?@l_0}BEtmGALp0SpSv{vCPftJk`Wz_H+8B8>2 zX6FX6g;$U47AwPW@MfCu>m(9prYSXyE{8?U02##WZhG-7;B-dQ0lr3ICh`i8S`RG` zZ>_>v>MWZp%6M5jFp&2(zHR`K@SL1V-tcCc@arUNDNQBtT!}OTfu*%p}y7ix(>cWE?Z9a2}mybKI^Sf}9pIIuAoE z;_v@?VoTw*6g=erMZtvrSWBs$3fY>ikQ;`Kejum%6#?+GUfkjhZeHQ>@>YUUb}F0) zZrL2SYlq;kV{B{7?u#LkM!u5*0dvz%uzD-}UnnG8Gp(gm9}eq<)fmPUlFwd$;1g)z zB)sJ#rXgbqzk?$R4V!R6gX13r1^Z4G4)Bs-wka8+hf z=eLXs=V{4eLc!t#3mQx!m@KMG9=zQc(y&fO-I&Nk&SFJ^Oln?B!DpW8;u36$fZ<5! zhMkm#Itkk-DP2-UX>ASM3IrbNRf+&^m&cXx6eRkFzeWcu8PzJW!oy(%6eLup=vxsv zd4=0aev7Gao-R`ANhTERDR6~ICQG`_sCxmi9(6C~S<(}bG-8N1Q(pk}o>=JRp)n$( zlm=TqZ7!k*@*39+*S zQo@5!)KoBhUg7cb7FDW+RX7iy6mz5r1qGk=+bDJq?v1(Ip#*v9hT#hpi2)EVE4agu znHUO7S;S6CH5uU9hAmYEBl9%&y?3cT)YDPcBK~UC-hRhe$^_mGhDKWJ>b7g8e;`o=`B!Rd#0v zd@|wTL?Ym53ge#j>uO%%p*52VpygFKOG~^7MXHX>3(yJ04>Jh<06|O;FsRc1fmJld z#sqe;A!w#j23U#yIDwHZgSL=TRib#Rp;S~D#uqOYW30efNsQXldl=e_zZAwboce*# z=78!K0UV~D20gKF8$vU0GaX%on zO3CC6U4%((n>695Kw{xd$f}8k=7q74QfWel0Vh7>TQF1xs35aAu4PmqKJxEkY(6dD~Vo-7s(sSkODvwCRO6%HdCbwWv}ITWGz zYY?$)03%K)SSPcX7vv@(i!Ga&!0UtlDpJf$v*3_;vq-5l5A3{WSSMnEMSYRsuccs7 z>W>{JIpsoirM|Y4^KI7g!Za6y!m}n44c?lpIgthnbYdU!3Xhb%s9>=entO#uno!c6 zG*Zd&GZ-$~)N=^KiuD5>bwv#=4E(hku?5Z4r+KJ9762s7)Ke-A0jw~)hUSQq(2R6X zi-$Fmpw#&!OmU{9enR89c9ex8qe2COE zEDXIftXC|a)DtdsBd>5i;;ARxa)le3!(SvNk6k>PraOxbgOb*^A(LE>^PB(y*B6FL zni0%GO2usO-Nf+F&hdCSM70_Yugr7{Qe#om1uv&KkknlgCpC<+#-A*@z#<%A*oK0G zHK)_M*UBqAi}BU#Y+)5{IHAO9H(cMO$rNwPBi$8Cbz-LYx(%a-0m*6dTLnD#(~Tv$ ztEp(PkW$glNQZV17wZa!NmQ%i@Z~i1A3~@shVt?2TPQdxKztWVGO43lCwQ2lU>!0q zE;V>^N$FH(cV6LSMC>$MQiYpLDDf>U;menJW1Q~tCBC7gGTm@>@mCmecH2MRW5+V0 zEu@rq&X0NKE4(-;kzQN)yiWZckc4L53KiI&iv7t<*6rsW)W63LlA3M`MZL(DJka-P*&tw#e-h?w1UvIge zgn$((xu1E3N6KMd;bOW%CzN=fnfx3mZqRVIBl;Gb!0+yr3W`bNhJcWYG-NWLjcT?Hn0HLdVfhSK7T zD-!cO`MQ)>xZxP(6|PB?YC?(ckAO`6S_+=v(>t@C?jDr&ywGf>$#3>FBNeF&h7Ym| z=axuPDsa{*RoOMv%k-Qk#-T|*9Qgg|fs=1$Bb4D6ShPnUAQ=M11 z$&iu!Cr^6|t8iYBjDVtIS%pNAuCyk#_=|$HG&9e$o)?;H-sC4_lae;UuqsVn?RHXX z5|IWY9?zh3HF(m+#R)%ZlU%tZzk6g8Fs&1j7!H}>eC~_L(&4beCY~o>K(bym5+;zB zC=T3QCl@ytks|X7m!^d?@#p}}ClujBGp$K2PKR{&AYM5<1RiWEgl044*-OPxY$e>o zw1zC}l*W#f3Bp>+$C?q5R#zq-Nkr-}Ie)@2UJ5g0@~fd#u7jjTNz!1Hr7#mFlpKVg z(GR7t17ayc6v+>bqFQXU=yYD;@rEG93O8{;YK~82+za!?L}4ff>tu9VYd$kgj!$4B z_2ozmfpL;7N1=H$2k@04t-vj$)I2&7DGo=ZfneXaCO^^PualC0(aA1wl7I0kri*c) zHb~x*Ohfi&m;6AY@|N?ZOH=YgY+m6!!y001u5e9SSeI%-v5Ac5T3VBu+`2Op3D58( zObhcu{J9GYB>AK!vBYaK_mUsixpfOE<+h>{2`h@f#YftIrB34cl6-4sgP2`Ksph^k zv`{9yZpzME?tpZ-lN=DfmrhBd_2T;ZCuurAev!Y7b)w+a5zgvTY+&qx5cYr@Kb zhA<;(2nCC`F3e(z`&XzBDga*=68@Y9>$i|nY%UU=u%dWq39l&mrpziK;rWnzl~9i+ zlf+?gJ9Y;6G7?*Z#!u2Ex(%KuFLj=9Hhl1z`l3MsF>mG-Zk{WQ6iX%3`c#?Y6~&3P z+z_{+)HfjUA}IA02~OZVGnlY&&4sH)O0$DdS~m&IgoTt!V=-Zh6%}a|_)3*u)APr&Uo*N=%z7eKvB`~?BdNP1+9UJEIW;gz_w!dOJo!)r3(n#_}*@Fc@$UqU^h zNg%00yuvlf*_ta{lNQ`1oltyP=5?FO z`pgeDTy1vC1$k{u{Wnf5hkPC85do3)3k4oNOfzS)JD=D|DUQg5#+hey)LRHXh_RPt z@st?*W&kHS>x~K9g4D&HBUn$u`|Z#XCrdiGouWk?NRotvMiB|Xsv3Xh6>gY7%L6Jk zCoT?24(%*(QD>%`j`WaVI0WV}d?v@$p5g>IbcVm6Wp~MJC#8n*GFbAjlRyvOOko5g zS?6G^ft5kL!zaEbil>3QWJ2(oVLr#6(PFyuj+?`4AYV&?00%fGQ-W_OEheSr=@K_G zs9SS!hQ!A_I2xIYLq$oCQmhOj4F}mKqTb_~`^=HxJTBMR6^q}dnZk@F8hB2!oqCq6 zEgF0jLW#V>LsO&zq*dW6{e-VEN9IVRMTS^`CYc2>RyD2J>S*}Vw!7ej0jWc>8KzF$ zI1B{|jGVe5_IPi&M6K8)>CI>j;bX^$yuxup$Phr+)==SMDM~q-2_^2cQVk|deDa6< z+gU5XF>J2D?cRx|KvxIl&GM-L!7c{?pcz9+S|VaO6^Y6uB?l>r=c=JyVlL}NL+=$C zBS>#v;rfi>UXr~`%LeR*nj@uUzI4Ny0OO7)SHhn#;Vc=_-~)C5XhXr+Fjz}r;Uz|) z39+ZLNJ9SkQVfQ&JD;mEU_YfQPk=AxIria`)VZix!y%IbA9XZR(ypxMJ5DBX0C$m-vhvLt==JN_Cg#pd2xx&ro0?C_HkX$wJL%0;on6M_0JteJUs>Z0a zi<}lroR{i}#FQ?lunr`#4yy{^Mq$*7c>7e8l#2O>WRmKIW|EbbRII36$`QA3@Ii_U zWhN;PF+X|^$sUZU9;pRCc*^5`<8JUB*fR}VQaKe58 z>km{u{DEF*k`o=^&1aCg+mVoDh0OYVf_;OukaGoIRN;&P;|ohD!1#F^2xx-Ouoi(V zPB_TMKICJslG8;@DR!O|8{`Kvh5<2XC|5j28XBy_NNG%%tAb(GtI}AB-9@q&&jGw+ zii;K0HYs4pCzL%b6p$QZ5t@L9F31K+JGcrZ7dz4zf_a6*5abmesd8dWD6-v?vgb`$ z)-0d2HGz}qsX=DZ1*?Q+OXV5U6EIRmKbGL+6gQ>J6ES1>%?NuNiH3!gL`Mukuc0AO zMWz^01$&L5sz@Q2fUzeKk%@?i;f1X^#u%;`*dI<8F+ZdR#Mmuxcpf;BO10z_p2gVl zF#;mego2F{Ze3uZ;3WrT4^3c})SAzdMy7L7JcKP3PTk_KHSiFKG^7`tCujI9Dj}-Q zqNfxpP)t{fi30twK|o2fcPm!j5Os_rBAYBQlvowalo+a_4wDKGrg8S5GF3=DpG5>& z(!=1s1xx@88`aa0{37ND!pSRKKc=|11y?u@Q$wdUp)@8+qzl$qJab`3E3RXZd6=rO zT!1HhjRg;3X@Vv&p%-?1e)n5kZ>83Yo>H>bvFu4*&6#2bp!V>LhXDI^tx9ciQ%bDE;6gobRrya6 zES?KRKU*dVBvV;ZW0~3#l@sfEg^MZDa4c82WpkRqEp)+)9*(ytH@z0Zv}vMFsidMADS_hWM-dpoX5_hjSMv(DpY!AvEmyc@bIJ3QTm$?Bg0CS! zMEas9x%C#Qp;##;-%!A4!nbcNGQ+6{MP7Mg|MVzz$4XOSUg4!VE*h^aSGZ+!n!qi0 z;d3VZg2l4+7HO_1DaA(F0V&@U466(84v)69FZugwW!Z;A}%0 zTYS9f28at!Q=h~r&Us$pBsr-!akec~xMg#xrz;hO_`hueM~nQuCV5ulr4*m*@KOU+ zDs>4KF$@D5UTmevoGE4iXFLCAL}GsQoV>#I`6-27%N1_fTq$H&>H|Jhz<dBH`L%qcp~3(6I{7bnBc)CX&MRD+mLf7O zSGZ+!MNDi|(>OEm@*Y(@$BP*-PbqAj{7ZZ|?7?}4y*B|L#sZr71jufH^Dz<=uHoSO zsQeJ3NmQh+yuu@;D^sxL3b$-7)6`|5oc~it=^bMh7F)bd^OVBAN#0NS?_@9m3Z=hF zYVny&5+FXS#&QFD>K&uSQ4sVsoQ#*q@e6YLI@SmIj zj#2#5G!N5;g_|jDn9PK!ndd}ux=zi^cTF!FADrhV?j9b${rrd5-#>ox%|gBU^y`PW zfA-?77Yp&;dk-%^{>yidFJAuPx1WCf_}S}+mmmH4)7LBK*WY~d#pA=vUwrlYhu=MZ z|G}$ozI*lUidtr`{Xkye)#y~SD!up^7~Kz^6>Ikk6(T9o`Q5iYTfueVa0wNGh+Ezxrf)WWWbZwA@57Sv}V%0J=qRdsr_7c@` zPq^^7gxoGy!MMqjnPu8`6`P40wCyb1n60>mf5wH!CFJ+Hg%n9$JlYjTdfEU%TE@gx zEEgb`P*w!1MO$N;iqGULCNyj}-MKDAE};ylt35lh%T&Y?X+`I4O;U4N1F za>8A0*|M0jC-y?c1UBFU84Amx->y#xWDu!%Y@J`7rSL^{q#PT8%nL4mH zQwQE*KmrF=IEV^u<`ZAaSk#h|I}X|Yk)0mpxMBx!rFAClah=^w#YN*jgib_gx1RbI zRzOA!9fg7s+Ye?Ej2u_1>}o5nb(2Xr#S~en*BL{ISf`&y!-k!sfH`6(=4^!NceO~ek%-#L zW}y^82BgVAI^yFf7YecEByqH|uR6^=8?%cuK{+2nma~Fh1aHI5*Ns8c%GOMCycv)- zwH%3Pt{MkIY@gfFYRI7kaTYl-w>cA>g;YXnRt;?vLWl$e!y=W?W>i9jmd!nw zQ+5t>(ZOz4xr@rvgwxd`CM|8wBrC7UIS)q@a^!+`6xv`Npe`m&xS_8=Pl_1y?k-F3 z6wBraa?<7QOY$hNBPTf`BXJQIwu6ujYw>UpGhCj{8!Bw{m>N@3GM%m#v2!&oB{dA1 zd>a!Ri{=l0L*awaVQ`R*&yd*J{K42h*p!Z`*(amlPFD~+m@w5A=0WOgaH3#3(Ke-! zq?KG^YLz^jSLSHADHTKwP1E9yx!AsqKyA(ryp?(6oQwjqM|so9QRIMRlRqNe57d&3 z&1NzN!+_5fqz<~9vjZ>Q!JR$=PM*hZ_1=!`ibHEp9eHI9IYh1K5i zn=$!2(*uC3wjv-VmaJ5IN zT)|Rk9-P%fY{um8Oc%CYX#d`okKfy@jc^f7s~?SRquplQsHs-sYS%fsS^$_XR%Edm zlfN^!nD(Lly$kK%X(@Xa+_bu-wrND7wlp?gzN-kl#gOHP9K>cUKJ#4IcA@>7wGTvk z7NVyD2Xo6{)3Bosqy;126+07FHUviwjaCQN#Ddx6Gt-4_6WYI6`9P#+7g3il)8DkpIiQJr@QtbFtQVV3e+8aV8c(J2xFXPpI zY{KH-crIw05Pg{lb`Unc-JQ$XE_^eYHY(%=nd>Uj8}X zJ;e|UBOuAZk(U~64o~qJHga9<;B<70otSxpA1#rPbwS&N=*vO?gUQLwq03nS4qAfe zBy(NG0$A*XF3EaqB9uRHT+lY5s3TZR&9Ot5GnQtfR?tGqBy(Nu0q8U?c0vbaJ)Bti zq4<$Q%12%>+J*M-K!CGj%m`LOUq~@Y;`n5apU89-4PdpS+(vQvoVuiTq5WGyz>sFn za^sU?>zjB*%Fh6?t7rr(1|fEfb(ygyj=XTRMHNm+4hs<>r*=9%vrDYsPO(jA^Q$8} zSd0$xT%}WfNG+pU2 zqwEPb@9dZLK98X1Llimo(RA(gn&T1=7=5goUPD(a zXZhIWH^x5f_q{qgGw%{QGZM~IkRiVVCv-&|d~V*haR=YpCCE2=*);c-_f*os9deX z%Bmrym7)c{DP~+y?%K4(Vstky>fp2%_mQAq}|LD6j6)%ilbH`vqp+e(T+z{nyVP z-hcmLLk8?`?7zSN{qH~h=}+0@R`8M1Ul6R=XtO@XA+)@*vB7#Oh?GvSjtK^ z6IhnF0s#=*J&_?CtLP*`Eo#s-}Pa>tCsF(ZHxeZy1B!^$w@2eUt+) zRYvaoUBek~d?s*w&ZWmc{_&60y=dbBd&^*VGSa6-^IZkR(?WhHXlDX1F9bh?j_KjS z?k-Pn0RT?XfBeUP4A|`p5Z<}UOyHdqXz;Cju)8}+vJ(bh>Tr|%=Rg1H)S6_k@GpU7lV)0Q{ibst|I0vCTUqa4TzgRc@F-f7PaBA_M%Z4SH|D z-%AX3mk9iRrsRH$OI-~x{(b)rcM=m)lPA8039L!J)WtDP_j7EXD2kkVb7+3wh0>!& zy#pWYu6H=~_GLmUAA)|-xDxvt`4>aBPb%o@XrKHQ;>lq0+b7% zjew}Uo{{Ue2{gm;GZ8qyNR*M{t+L<9bCQ(R0o^;a!R~s8Q*2-Eu~_@Xc1RJcST-}! z*sS2Cz;bx(lEJd}z>4FaY#3zypMSSaU_q9Yifn8S6GW3ORQY-;L)l1Wt(X<*V0T&A zh6&5HhU-M7U-cXWF7LI)$+Q_ky+wtjs^uB_5fy`nza7wyP}2*Qx^^ zhz7g6Dys><@`6!+U4bLn$(5IZ*h}F0#*haJGLXp6=~VLso_ahLh;1xy?E72Fn0!2} zEc$5)ATZdS2hvCx8GhOGg+wb?S>>(*v$#vhZHnpoJBIu$zzdWVx`UtZXnTvzz4gf%?KWPu5VW3OB5PhMH{(667ACxhMHPZ8x4LH%__z7oO8tqfCIs(<7c4N&*CE_GoEcMM z%@e5X&tazw3@+SYcb$^vH!C+%EL*=~Op>1qnk;;EWtAIC3_upY9&PgkX5pX0H5rg^ z##)_&2|R<{C6M%<;x`PmU~3)+7%KgOgKGwJY6!kj$SnmlmUE3+*5x0v%U+E1NFZaI zMDGl!r|g>jn!Iz$KVS_tG8jQ7QDT*vd@2fTbAMG2`qy#waPM} zj;$td?Gi`^yGtPHJ*8e>)Vt$_R(1gh0VssLu{3!t40rS(Q+y3p@Iw5PbLSc0jsnr@ znwwz|Ra$6gDEr&s9tms}*RurbzFkmO>mM$7q2bEc1i898a`jtnTmV@Ud-DV~N!m1$l>t@6-cLh=-DRbs zm2mUTlaki(PXcJ0`1ZgpSfjioGh#?vZ+WiX~zWd>9oTfH8Pp&INi2BQ;S?VPP1E?O;lM9r&S z6#~PCIl8Kk>gL(%K|Y3Ru)7$HPW=0S)*JAGr6#v`l|XF5xG17y z=})lm2^yTTJu{XTRHXRtlVdhLd_1V);6qTj!S(>4p13jepemN>;SQxixsfHLhQ$V1QdIe8v{=!VmYb;GNdmE@#1cgrYqd<+3j%MFK&KJ*%MH-{ zM!|o5O)jvSoY>058oI-l%YTT)`DsgFo5~7PdC%RKvV4^Z_kO`rhKjZBA%XHzhX%tC zb;MQ!LLOUKDPS`40s;-p@%CPK5}vvi5{BGXmj+E*J=MaCDb|YF#2qSvLU2*K68^xO zgywfwAc=(#%Tg#*DbHdVX5|8jxy$8WoN`qZo`pmK%!nqsY(#qQL3A(uuE8oNr?9*g#nFz#fv%Bsm`mQb5_ zlyvH+uT3D|Rnq;huF7SPFt`hG{<97*e=-x2Y5_75v`0d#U`pkx_x@StPIVn;g9zBf zO$M34KM=}=5{9YtKlE6^wNPE9Ff6D=SCu<|!E#{&`OHFNq)UMFLbX%Dn-*!LpwrR_ zPiKc+Tn87lz#Yo1s>%Ba&KI+?VDcHHbUPi;YBxJ=(bEQKDCMVRqWSvLH!e^#+40em{?FS0#{6I%ije?UehPg|92{C<`>0R_8nVq4`m$ zPWImMX1OzWm8><(=MgWZ9yvr;Nc*63`>l6hg^fgjvy#~rO4aLg5ftoFX0`lGuffxNPu*Az6Sn2&cRHhgpdsd=O~+2oPSwdc4Mw5oOWlia=A{!?{U;T#~@7>k4p&U6l1gk~h!h zuSv6-K??H=pWGc%8i~>2apv5>V+PZFk302(7g3|8X|w6s@Tsb8al@5+R~t*XBIu}U zySt`Kke(f%KtAC7-Ol$7${s$mUU>2|5l}f4Ar7jwX$Ven!SB7X?~~ z58SrrEHx*G%nP~e#&YTowPqwlWStASR zU4$!wGSKOeQkiiM?>T`8f#3AX*7ZNsu)1Hx%p2Pw81;8fI>(#5_Avp=bb-#=icN!Q zX3Sl9wzdkH-+r^}R+cH!yImL9Jvd}Z^gE=|rH{?tZ2}2!crYQEu~>R zBI{rx^(+-Lz3Sw}1;!L}GWh|a$wPtZRAvlx{Z43lVW#Ph!<4hFuIth!(XF;D3MyQ` z{ffnD^bo2QIS*~a_aI5j+-(90Hs_6rtTjSUqxEkKtEEwDvKq+=^~PXAca}kKO9=+ z--@VeR-TNEs?tuP6BJ-HUS$RnzAzPYr<%VZjPL=u`5T7tIj(&?46;WdDg+&p~g zw2Z#b1X3(v|75)_;e81)mL-R@cq>2=>yHL{>sW6m5mC6(D>IPrg(=frc#T2!AelDh znKdmp-#N{oJn*{8ge!tJmadPwWf9$H0x1?sn*7XqsNrY)%Cklu6P1^FAfa&TpQjS# z4iAeaD>~-UbjOj(^2ID<@nt#4c&A-jA_v`k@5+jrgb}GiMZ>Q3Ex<`C3hF&15WvjN z%-SM&d#{X$Z$3y=Wd-?1(yTyoD~otlO>-?|$(!y%CSuPr8x!Una*UO`eaw+s#aV}1 z%w`SWToFh@r+u{sD(T)^0tuB|&fG#-!Ey&yUKIJ}Q~9F?ueC}$r%6z$>)m*!I}Vm> zm-QGMi!r=l_lu7EheGJIeZ?XT`6|zx*gJf|Lg4Q$frN_h8=S!0&g5SuYFa`qkg(i- z4sYO<8{Mf##LGzof%=}R)CidF!snwVPk+40bAbJlss3W*^7R|82ueb~4AgW5bnh*J z6b^R|6WFn{BIS)GcSm9`;rUqn7E~s=_YarS7qZuTMVRiw)YWY7RFTkT*Snv&VRCPb zCwL(!0%;i!#^dqc5(v!Z<7Do83Eo&x2u~hD8EJv4S$6EoOKh2i5L<$yj<)(0o$!UJ zm^;<~^?|D$4EBrn`E*1yi<^K7!K2kl##|AA*Y8QNK9IXgAcdp$I;wAOr1B9j_qvEn zg;eJTE2yJk6{O&s+pMH}>2-$K0t6r}E+yuB_f0X6SK1?PAH7XA^fLh{~+S z+%@6fRRSrZa8VaL&d38U>&}e+3GXUg&8&V_uV`|g<_hWy@C=m*)VIKnQzhX}t%a-- zgx*y}3i=_mdCF0l?0P{;gHgLQ1M7Wiq*0yDGEO2cOdvs3crYwjlIq&yyo%$ARrN3w z6&`FCrzwSix(ZgVERRRXgvW$au}m!CF5GjU3{Whb&Z(89-874fyGe4&@Gy80U6G6)FByyIJp(J?&2I z$z>T(2LztHhOH)r|FnOKtCm(YR|J|6sYokcK6@t#q&%obDo$W{V!{-*2&@H6$(*Bb zp;PiplIAR#QcaExP$d&~@UQm*=Wvww^ajXU#YEbjDgo`%S-#X(4-2YxS=Mre)!9^l zKi8uvuP$uVQ6rnmMCD=LNdgHf%EzfAqIgw?rle);4C=+BoCVE~gxEdQlp4ZL!W5>4 zEe92H!A;N8Ff4QGPPLZ*X#yEjx4!W&D%Hk_qI2NG2$ewDcu4**7-f#`A%TosrjF?1 zV>eNh(2L@zB@jC`l$JT{y}CJdAQS*O)r0o9Q};dIt`m5WG4=QfBMJF_Q)=h*fUg0A zm55Ue|KJF1ue_^lV~D*Mjf!+Z1-kfGuJE+4JOZ$f z{vX+aVTSu9F!Yt+C>Y2dl9P}>okF8}N+4x$&oRxabtF|x8psFNRAsN>Dlik0BG@)3JWJ~Dwcs7zRF&200r*UUKFbfiavNxPNZF3dJ~fVDU?Q;jisWJ ze@P#zJg7+3?3iJg#>BPR4+-0*icUGgtkV%psRgA>;hc4v^5b_(N+gKLsZ}gi><*g- zeojIfxhO~)hG1TPMG3Q^Hp4qa7-GIF&gBU-?}rVKUD(G_hz6!RIW;q)E;t-%X<%JQ zQ&<-Trdss?T+5Z-`vN@JU8^h=*g*%%#NypZfsr>^ zCwSSbL|^r?BFxO4b5!AaKamY~cMr*@XI^T{`7~5ek*gA@dX*~J`#xWgpZiontMj%z z;Q4W|yL-qv-dS;mLEPb=qTNH55*V&Zpn7IU?FRg=k;uanno^g&-mh&3yStx4$TJu3 z1MdgeQ$cb`0;N+r8hS5~r&5knoboIfa9tVf?lk;i0y6Mp1s|5P5i|V&a+F1PR z1u;G+6}cx5cq=v7-Cb2m#*SrjSJ<8en92mAz4>pS@LLc5s4N||d}gOzW&R$N&KS?i zQvg+CekWqEyG~IQo0V?@2V}b#=iMsSBrx11()UL7zb2U1m8`CiM*ymprCT68*j)j_ z-YW8sA_m+KdxtaLepv$LiAGxleI`mE9g*<7WID?&vyC)5wTi_CyDP@oRZ;#ODYn`9 zz@D4!vINQ#O>Qi)y#gDK6a$S5PcGCqR$gX%z)$mo-Q8_j@E%F9%kj4I8VcZiex3wys_Z^9Bvojs9goC zV?M6>3na4_rq^%BDLL4k6VP|Yfw{GWjj z_$6qtyR1}PD=afJABYNS;ZGp85q`yoV-7nxou}X<^BBsrkDiidMY1X)pGpR7$b;Qw zrQ#lh`Hw5ioB2H;ymJix1Y!?S_ZEJ~CS2yn2w0TK0Zfz5>P;RAO2 z9wA(7vnGLaC$Fy^UmC}pjDy|P=jTETXm8$x2Rxr%7-=WhGl88Fduo*o(IfB)6zufKfp?pyCZy!_4Mw_hyuyKnuU|9W`;{f7;V{8@6+GXtp%1pi0q zDd9OcGmw#i^#I6_pQ1AZ?hMfF!Yw`pX9m0(;EStQVam-6oM(XBY9r1yro_yEHv_Y~ zyqTJE`5D-|>nA@UD&NA?m>D?F!0fK`98HPR49xB-&D_*G&%o@i^Bhfy(hSV*D$U%~ zJI}!EuJasCiP8)_`R+mhrLkYBcNy%Vj?>*W6iQLC7yLzv*D75Hd#LBdS-d`}xogX_ zdB1yrc9yP$J<|8$E8bn}%T_x<_rOhKzXyaShKpejbicYvoGk;Pn3YH|?-^SH_vNt1 z0a!gHx{H1)O62OosRjFm?n_-?4|^Db#ZkIOXY-{=uGTw6UhScafqQ^Gs-|nK=^bDc zl+0RMRibE&Phs1bC6Lbu$s-$%vNw3 z?`8Msp0ar41*0)g0=Fqf91=w&KLa~*lITDL3@v5JHkn z@K8|rjOl~#kzuKXot&u?*nue@#z4)-$OYrGdX%C7jyz*D0*c`_#yWvRLE$r|557lc zlS)|0n>v9V81rEa)O?H+FznkwL>-cDbb6mSfwGGY`aVO$2}$7b$TaS*GuQ!IAI3n< z$w7Kx28J_|fa8&&?n)TRn>vFXSlclM6HORNIJ;}#cMK0{ z$7XN*B$S)j5b6{Qrz8Q#BeNc#2^)D+r?5kF1Ty5e;iLd@dOSoFjvIdpO4NFviE}8N zk~jc|$hvjKE#%Ie!wxMjIw7|arvy-*>(zrNfc{Xtz#WiD1fOx64v`L9R{~HRYOfhb zA}d|HJ-7uc0iCO_NYY{i7N2o3r%2pD?u-L=uE|>Y?vNMM$rz%oZr@fi{1`M5~it&0#v&|Jt~6VcB<<=JPyGZYsH zA6}BeXT;_*b0V`$N3;vrQ;N zR-{3e*^|2&iJbaz3#@?L(gOuoV9xqy!y@Be>s_I^usacKVcFfaOv2fjj0=xbhnS#b5p%;s@nzAO? z&LWWzD41gSnn>Fs>7&fi!f|dNL1rg|@1uS&Qt~vfn8uLpgmcT(!cB$oc znSpIUEwx3);%nY!OS5ld61a_9P@B{6D{VZ45?C+|K+5FbDje9^8A^}XifIgYb;B>F zR)w^Pp=h}Avb?YtdyFfgv`#sk@3!Ki2`6!-J~IK79liKAJTJ2bTjx<2xsgXb;vaeD zhz$g@%goAjhy==o407dDUS$P9Q|l&VPBSweqY~lam4r$YgO@~z53?cD)mvIo`8TX? zEC!@SmI>lTMOI{5uWC%LTqbV#_Fc?STkRQq&EgQP{BOb;*tGf9<0F(C_yeV#E|Z$K zr|zI=4UUQ=apajJHl=5m3F0|Kv~uZ~TzRx_@E{#iTlpSqw-p?hjyZ{IbelOqp@H$K z+(SZfFf`N*mewN?%{9hsOU*6(jTIAFpee1|A-Qr`Sp;ulq$U{K)XKk!C8*7UG^(XZ zL~}10ODK#S#IakB&=$EP2P2_Ob2mmHD;Ojt7%`H~DFN_zPC|rbcG<-D%^(R`x?b3e zoN%=v6r7b@*_s&{ZziNwB}o#BdCgEjv2a^Fb1T>dWz-f=M@cf8Ym6ht7WOX9BFv!~ zA+n1`zHb%|RzqnL4EdU~$O+zNUvO4ZN$Kh1IAY@_L;|<*g_M9I$QvLdmW6c_AZim+ ze4BgFC6NQm9_+S47dLrZX5rps5)`X%#42iQlSIN6O=)Fm_@=yaZ^IMHwjq>AKrpT& zZ%}U35zWe%EHLD7p-DH&*W$PFrg&pSsollV_rkrYm@-F^o3N&YvLdx4#~V&44h%`o zZddX^FKoq14arJeV)GIg7&pUE;+WT&8=_@+8?6-S25ii2GfMt8Jev8`$03@-fE0EchI(RZl|GxlncO4~g;;nu3En9WOeG@4Z!{Udjfo=e!P+LW z&1eNRUZf5zTP+Yf=oo_&1>1{Zr$1|ll0+;gK`T_73C&)mwmGG78=lSIB&}mlW7&}i zC<{v%u}RVk=VJUFOQ><+XxC&;<5{=|H6Fw!;u@>!GL3(1=0bvy&|eKlVF<8-+{Jej z`&fRb<`y}cml{!eGbPfta1P?3i0{_5>K!c6fb8W=9AqQ#4l;>5{o-B8(l9!)NiXve zRnuNaCP6uYa|3&$c1*j0eSG-dCJ#J0pn1uO(z~Bq#=$vCn<7f)sIiV#HG{u3zcE9O zjEN*`gQsM`RU8_oQJE?mvkYCzV)5J-ax6x&y9hC*Tx|vvcN-=rAw%=FuHtT{b|BWG zcZevX%W%~)_=%|u*uwAzPjD6zT*aYb99B$YH$#5*(WT!Tlt_phv_)tonPAMMA5-6E zSy~e`ues)UceK}H87o0860O`pZ`C?*co3T+M=a(ec63MSg?r@CDB&Wa!B!HgEHjAk zLD>V^zi;43-%JpM(zE;g&02!mOmQtjD7!Z)5(6e2t%k)|kjs=9GP$alGb|Dkq@=YX z9=2FQE8xUbcHts)yK>uaACxViMOe8fea+p4(z7+)Wk9jIYX=hlCW!XDDZQ7 zNoNYCOpUmU7$`OqS7nh=gb&IV5xx{IQV-a>)Hb~jgYUC>p|E?}5MU@Ki3~+TnTS%r zUKxu)Yi4s~O~rY(Qp5u_uxTu&u?yRN_SvD|PAH2QEm?&wt-sBh6DfhSlTcR8;cjg4wa}K3lCeYr-mVi&Bp91c zLL!{9brxxJ zpE#+Lk~WnZ?{1XL!d9$xxQfRnEdGs0o^Im{DK8X~3lb4wZvmxeS0S%|2yfO1@8J zyDS0rm}qsw@h#ax4{2-*{Wco)pmNHv%g8oo-?^IvkN~|*rbDrl^<{wgOnBXnxPj;EUtt; zO&Ph9ktXz|*g|jimM=ZEkA+B7W|x)UQjcjVplK4)+{AdZ8c3{s#f>8HdG$#tpM8d2 zD659Na|WGE!dBLU$+Sw4zBwF%!ehWFQgR*`2T7 zQa%)wvrIe1SiU3ShO!7+IHCrk6UvHLF0;Fo7w3?`@Ml8H4|_GTn+z;&6F2_O*uVFg zsD)i%|0cnGbm_Mn$|7hYjaVSIt#Ysv(Lc!0U^5xPvC6QB!?EE(**NzUvk~y4={O=5 zBSFF%j{?g9gG2-N6%03&MbHFjTOh8jaWrG=A7yB?*^J;g%2@h-p2L$L_Ud-CXh2|J z2SW7If$zvD$s3-=v)oW17(r*4AXZG_Xva`L3h-#Nnlzi^nGGAnsV_h5)p{J)?&lxD0Tx0AJ^vK*yL;5yQ)S0ET`GYwU zjyT&U`HMA~lT>GMB1l#-uNk_bEP^SBWQadgqQTs%6>trPL(m~23`1Isj^t`7KD})c zN1f=1jK!>Nv!Tc6MAT6ptb~~sQ!9Ljp+)XQ?3RfW!C;y+19r&pq6jr3oK#e&s7?iL zPDwP8!d)Opa&+Qm{77Y>Ix4mwxuGnA?cHw{b5NXt$OD>+YDJZD=Z3xCh5BVsz|24; zw7QUPD2reh1gp^%MnCgW%gLzDL7hwNo>$498QdK`$%AoyqP|7Ynxf>lwt8-F@f(#| zK}Bbm2{&vKO!!K=$(nRy%CcG{?1r)m7P;^#^|l{DvAB&)QR~DeH@+A4Dwpte;wER> z3n|BDp{yIqB3S6drM3d;>cNDO3TuUAYTcM#*d#Y1J};tM4BaR{ltr=|jK%N@rK< zgu{Y)qHD8y?6F%Yv$`tOZLH>pvPd>|9+>l^2~-Oit4I1cTCjLWiQ6cI&1QF@jj<0q zeurQ>I!l}OL-9+dJtk+V21${|lN1*Dy)B+?d}E}&hOl=7y9MnaZLex}bya1dnX(^> zU$O?=7%u|h;t<2tul^8XC*-OrWNwy-xs8QHH&R3C=IGpT29!ng++ejt2BK@wl0Q!v3r@gJAxu%?eqd~r=QUGm9Ve$tx9x9P!zIlc=rJB4fY)+?2e$= zRT3}JV*>ZdM`o`9cA4Wa+z6D1$8SIX;q~{ApM0}WuRi_y;q7-`y!B!s-h1!i<;Q>d z?(xOTKm7L7uOB~q{qXXmKY#jq<^1}aPri73c=?O3UjOjB$L~LQ_04y$zJ2`m^^2c9 zy!_zRpI&|c(RZJG2E`8_fBfpR$N%}|FCJe0>hY^DzI^@S?YDmZ@bdRxeg68(7w^9H zE-e1{CqMk}i?@Fcpa1jl@;8s)eu0^{fBv(#-+kxd{r4X>Xv@-=|7Hee24)6k24)7X z$iQF!`q#hx?Qd6jo<3&=W(H;kW(H;k?kfZT{`bG%dFLH^*!=t7|9)TKCYqUnnSq&s znSq&su^GUlqI>~69~;M}e|no4m>HNEm>Ia24B*-D_~VZ_5b;+xHNEm>KAnfq61^OYJl~GcYqSGcYsoBr`Bi#wS^}33_H= zW?*JuW}sUJ=E>MCwbSs-z|6qRz|6pt%)mSupJdr4=$V0;fti7sfo>U?Cu6tNzA1+B zr_T7ZXMDaX0na$|GccPZKWBv+Gu4HOJF4|N8E1ixnSP!l{x2!blks^LxJ6X6Nm^vl zYvUjP_y_IkNV`{O$^{wdcQVcb1<8JH4E~Qu%>O{db1QATcxIEd%ca*6)+24~NWNER z${jP%?_`9ZS)gOGpU+7C|Fht~9r1hun~}83z-*Fsxy-hN{~Rdo?fCyu;{UEowv{(n zq3g+ryv_nWzvjY1KmD4Vu-tk!ur=4P_@$p}2NK)FS^ zb9w%M^8|6{P$#^rGBBIus?1Bj{3?4cRhbqKJ>X;nj9DO0EuMr7mlFRi-gyyy5+xfC zayH5MoX0%Q*E_Myr1@h`Mqro)N*Cfu%<|(u+UB4C{AU(s$YaAq8{qnif1v3f{(=tw zU|Ien<}UIfsX!P1Aa?2(e<+JzKc&GKO^)zMzQ_?i;Rv5uF~TD&f`~=Op+N@!;0V7s zoJRD71dwXpRk9NJgkpR`Q2+I>e{nhHp9J^|$4Mii-ya#y0{M$_pOQFkxLXRA7)}IM zuO!m>!ERh>pVj?mmTYfUcM^E|PDk{FW-FWI2}SyZpz>crq9N!1y2@ENwRroTjKDJs z*Mx2cGjsOf{B5G%(@()gOgDSXYI8hB2t8bF# zfRS6&5f#DXIsSKK&Fw!Gg9xA7(%;ojCAuCsIbB3_JsE+27N|!N2iTN_tA9m?wFx7q zPm$Quu(RQo3*oZmi~|db=<3t65@6s6!j(Us!UF81L!NhNIaf>htS zm8h;#M_ck%k1|~a;|clYbd5O~XMvtjZ!lE;pWdKJP9ND=%R}JDIMsnXZ0m^syAy1m z37k`COAp#C8Pg+t^}c*&fov$;uSp6(#vb9(Zw1z#hl(r^=;skszbJTrAY#C>odxPw z%^sHJWd<92TNkn!WGgmz1lZEPr2Fj>DmrY-l@FwCli$!<*Cr{zsWQ*yF8d*%0Kk2! zU|Df0dfW!@GwL!_oG2m&oQ%LZ3shFDOSI%;UGw(98%5QDH0-g1$*z-5`~CcccX#aQ zdB4Ky+9U;SFY#~*K(u`kQ2^{(6|7&*M)QWmQH!O76+QkR{9>)Oy>@bfJ9aYmt91d$ zOH|}4K;c?ph&`n9DjP#ITxAOIn3ECZ=v1Iqg`RdO1F}p#-a5*+aH_E#d7UkiF4wZ;@Uk-TVzCPC#j&=^lTT!M)w^^-k}K7uX-xBn8-}N-P8FMNPj; zZw$bb;Pd`K#K@Cz7U-TkL_X2u#Z*72@}Wa^BQE@HoyJbawl86T8I4UrbTPEY&5eZ_ae|EPe$OG1u~0rIg@`QqxR_cH!6sf|4c=-VsodlBe?nb zg@;gzrTJs;<&7Z$jBFC=chdD4n6*32q1uiHpNz9Wrv_UtF$)N2WLQD6x%L=!GUyg$NK{jZMP#2=2;+5mPX3( z-cBvi<7YS-PV5h38vgvD-rK95Z~Hch&WpA-WxDQ!9^52%67_R}!EZKbIXv(88wG_^ zyTtgDaTchcYF$;-;}xFkySh^izzx~(nJaeqvaePF^8XfT{5onCg4536CUK&gV*U(p zuhJ@LxZM00?pcyI2O`F==vkn9YY+Kn73hlI@OuAY4F6|#)MhR_zg3Ksx;Nq7)Ziv* zRiJ4{W&POkQioxuI)+nmJII(d*eaN$p&D$m23J7A3CkrxFYbn zwLVNfd7J-LZ9TTO7REP8Tl~`+Wq_6juZ3sdw^?=Pv=DL0$v6v?RkE(ayuDLDVA$0i zjH{Oh+>msZReERRwCdToBI_|8GDlGtfhQe3SHuV%k)7oG(;mOQ3 zNLJ)pdi*U#{e3bwWRtfC^!Hu-M?~_^z1R_m`rlId*U~1BpV#)lsrT_satdh*6l8#Z zXrQ&wd${sogyE48JwFFab- zM9LvtvV3Zgm+5lehBZkU&Z%{p0aZ#~DW{6hTOj<2r`3-;xp|uf%FS30dEViv9Alb6 z{b(gSp(aK)D^Dv#B<(X@`Kp8t+$ImXH6f4Dy`)LTg!Tq{QFq14E8^2iAg%#;Sw#O3 zI5q+N!*v=9nRfbK+b=dT+Rd=PHTT880#Fb0?+(o!-JwC`mZGlw?3%Qi0^t%Hdlul3 zApo)Z>L8ieY}+0gSadK5gs_Yyz?druY!SI3t2FjliDn66krwZ7-18u$N7ZKRx2B*} zGNevAddBosO`=kYGci_8Dr>|2iX9EEGW+F5ZGQX08fW7muxY3~KjR_q5;6k?bi+;y zvt3potd7`IfEi%TqXA*Y;RVZ0Qh~Z;fj1*cGqGuhsZMZ|wcLX>VL3e&yAKotpfZK~ z7*0SHBMniAG{V>{KR^{9;xWs2%U203u2D^ZI3O4XYKI|UU^f6EdkOnIm^F@|EBDWl z2M4znM+zc$MW4owyh;0@PgSPC$P5$|2r62mhUfO zK?(fE(~@+Mg@GecX+?83Q6`>JzQQxqw5*ueb;(YXo02kqpTi5AgcHI?2C5dWM0t>* zI%Sn*Um)ZrgYe~4S6cd&?OL`d5>Taa&?93^pqf*hfvf`Y>QGvqVezXo>eZUFHTNOc z6HY<~Cl06glu)Mzf<0AfB@nwO08*|CWSGiiR#`r4$h?(33!oEV1n%k|Omf4#O8&wo zp^*6nBX)pT5~u;Vz9@Q3@|4f+V9o5PQwwDReCgsSm`DU(=1ZlkV9}NNom$Qe_zP5X zEK-9NEEe7qinl>^o8?yTMBrG=y8fv*jrEspXWbzNUuF^tHUWwvc3QY`P4?SVTykaAlVbO`lH@u%7k8AzHm zTcv=A?VO2(Q==BQrP@*yX2gyM5E#cl5GoZ)7^c$yuz?i3a-k<6_Jv_08*Qf$HT#tW z!pw5STUl)9}BAl<-}B2H7A#QzW**u!T6cSt+GlHNU-cENKE=fsCPrRLKwvx&{4~IIpQ23w})?NXp}| zCZYQ+ynD(NE}4RO`GFBm)8*(o8(!>D!L}aN>bo}HwxK-_Yo`U`UZveEcU59dm07^y zOCCLEnW}|(EM_4GY_%N$O!L(N*c2mw7HlRecK?tw%-)H}y1vqWczT#B7d-SAmuu=* z@uwm!iA06lK8GL)h=mp8JSQ#>X#mm%=+H%4y=)d<$gk6#0*PVbs$fDwW!Xrsu4%BC z87_YmvDlia$m!*fO|i+mDg)^P@uEiga8eX+O7h9nc{_4$xnbVaSx=2uu+U`eWCV~x zcQqWj6%^wv1`w7$H%w0T=`%%m%^+XS!vgk6zQ^SxkwBzKo{69V0KLQu0l*LfT18&} zKyyMMOvv$>aFm$3s!1qtXU~Tq5ie&c5uKdk%MTJL`IpdY`4?;;Y1pzcs6%qom9{@; zD>INN5LP#DXn2m`#a`x7zM#N{lQzPewsYrXYmn!Sh>7B^=J456+wM&ypCjr=n7Klv z&Z`Uhfzsl67?}=-8U)6fjMhOuhiH{U&)feT7W9Z!-WQLgA1@?*W|0C>2zB z!4NxYXjyT%MLohww`_>aa3dkWtQO)k0wJ>zL|Xi`dr6ZJa(p@y7_JnA@6;tRz5tZ{ zT|t&Fr!e*(?pUXaUo2dGS#9QbG$qS25G#~}G=W>>tjP&KXY0#;fyVIVA5EDRX{P2RK zp`apR+aToJW@dQfn}n|-&f)?pXN-%RdlTReLH;@RYYE;@dh{NzAkNsZi{G_beJb8# z1>)76+u`ZJx&IT3j%57zRr1K^DR&xHYr(cA@dG4VBLdi@KqWnX(^G&|bUZxWov23s z9fLO+c0t5xcX5hZUC&eo)DR8Bn|#@^NCvsjIbP++KjaLssmiWCb&aCHm%q5-9s>2O zn*buB=$foAEL$Y4K1;j@w!IHi{yAhWD=?pyW(o|;K&(L67N}(P4JKpZ>uBt0j#pW3 zpI{+#j}dXY>q=lI9iFzi=e22;nY{EEIZurt*smhe#}Ho_(qb|M+H92<3{UqQI;UdY zB3(40Wfz@Z4-y_#=lD;V(B}9iLEu<@{_r6jRyGVI!QmLQ&QsGMZ(Q{~!*M09@g@c* zQzZ>aa4Jr*F&PL8#K-07##MljuhXV3JzQWvG-qQ>wGmN7^=Eo$w(ZFno)@tIJMsDX zNcBK^gQCqRt2cP-Q;yQx7w4zGl%51ikoDUXZ_x<3=90!q;M93y87adnni1yS1js`D z;*u52-9y5RapwJ(gwRNW!|5WTrb!ZB=2US8!UFM=U5_1!Z(`>5Th=7>D-4J25R&xkh)_M` z(7h3BB%Er(kr@MBe=%r+Y8v4Tj4u$iT-dsFT!!iYO`KA}9 zj)ILXQc6g{X=UDC;45|^XZgg_tJw_2O!?r`#3^3}3eqK`xV%Xun2-){k0@&>mf*03 zgp6m3@72`9;lKAiqljv4wE>%t4a^XTIq`tDJ7Q*Kd3KO*mb!%QOA+9i) z#0ed7T3XdHbfGxxkswuWs$`s-yz&WDVFSX!O`>w8hGAKAcX)bQue?7172T!?kGgd$ z%$^}#8Y`do6OO_afkG$b=hWZ~Tv8x@g5akQhLPJI)WC9iwrXbe96>Ic?3rBR%Qw9c z0EHP|;CY`fKCNVpB&`gh6IyMRoaa+Q-4Jq{(6rCFMMS26lgV~CX_W?@em!FKYlOFg z-19Vq$N2$Kf6h`9_IrWGJ08Ps(sf~4CZ{X|R~3l*ft!I}8RbSHFN$QdRWmarZe0+$ z@Y3>p+^~zmn_dWjkc793`i+8PRD`;0&>;nPBU7R7SGg}P%qmkLVJ1!C1T(DB$jl^w zVXA(OaC9KjzS6UN!cupsrb_FEvy7_JPH34q3NT<-W`HeEqDcm>DiED$e2USq;HIax z*@g{9KYvL3<~zokDul0s`>jM1X9$4e#la-y`LvSET$;{SnNOnmy#WkzH}aJ!*Grjv zxWm^2KrHCz`htcvs<&B|rBEweBjMYIP)l++^Rf-3fRpC43{9oF*J(kD(GLgpcBD;3 zbF1@;sLX(}KZlhWxT-+Zdvwc=9jvwlF#`;!g*mTf@L@r zmEqInM|r_enx&n#{yB@mI|;e3GQvCAsV;AlL=HJuOyHzT$cIz>w4S^6l_}h07z5w8 zm5g)9i=yD7?sNe$-t-uDla0#{U`nPla8-fm?``OYN&8{JD=h9|?k*7Nc%8Fyp^@=U z7f6X5v^*x9P;11(U6=8&S*lb)b=U$CRAsi$1V5c|D~>;s`1EH~L|~7_lnP}0P@x*! zB(ZqS)t7s~aaU9Z#m}C|Rpk*wmv-36jU|>SlOJBjOtHzlDg##)i0+DbI^a!-cSwIK zLh$t)IC>%xZX-C|G@T9YT_8I$!MrCR!(xFCmpD z^{G4F_o%^8;!~9=Ffs#I6^Q(z52+Ptd&~`--@ozpRc1%|4fpVV%S1g%H93P+IO!qf zpA*Oga?7VxlQ)X0)7TM0hJAtonKat2voVAWRT0?Dpi=)deHzr|O=2Qc*}$;ijR&8M z1*a;Z3h%MSPxmsj}XmvB+kZ>^!tuJ2XUZan_# z$Xk=z=x{93X;rY@nQg2p&hD@!(p3cROvRB*RSpK3CV;%Y@e*MwRO6c@#AZHX7p!90 zexVl+M_QmVm0gczf0kMBpk*2L#ND-j*y$wv8MvxIvJY#vM73qrx3sz{z<%)+)Kdk1 zF5^HvS`B5e&9ZAr(6QL?R-j&au`hCjVZR6StaR~}fDt+g1cDf|d^v?LZ;}wFI;<&0 zq1Y)$wqI@o;IU4sbD0YE6Z!TD>b)Nrkrr-yf}I=tX=0~9Wd^P)kX%_c_a$|*SH6@8 zZ^AX$Jf#Ue4p@~Em`WgTFGMuF70As;dBN}=o`X0oC;{poK8%F0Lr#w^?(!z#%rFri zNoXXV^%L?Unsp6BjS>aQTDI!W*6JlmA_)MmI;Y@qJ7IrLRc7GA0?`XJYLA*fx{%MF zu$HyB!tANFR<_tfvuTc6BMlFuv|pN)g-}S^h97S4(%pUT3_yhjOJ5#j6h!x^pz_kg zg{NCsM&ZG*>_EX0CQUit`C!LTOEqj`=kvRI9&@PB}Ah zVS%_O)7|R{L|qrldRrY3*xcHl3yDA!{?nZyVX9y%+-K;(Y7Qg3!;m9JTg_=@B*h!eeRF9rl zsiUC^x$JSeH)aQhE=-PURP}?1sS;z3Jf0K=mEJkL zJOfu1h;Mfdk0JFgg>RCHBx5aLXO>BTk%WA|DRo8hfNuo`Nst);-S4zg*@iFdimd{< z){bgFgx0)>7dDB^E#guQgJI=0AZ(1#MaT({W8PRo;WVdtv1G;+trCc`DuFq?HUk$H zi0{~8Z`b5R?M~`GDJ|nTP}fU5IaaQ2X+M`%$VVQ~;bzirmr#3q%`3Rv3=fc3PsEA# zD+6<3lSse{22LCVE(Hqc@OqX$$S@nbQ>kt3)DFP+Yj`siDuE*xyNPEqRR%6B5T8m| z5eil15bH&5P`HcY@P!xb|M-Vl4AuS&`PeF}1mjm%JHyCpqV(xznKt!S0N@c>!{ z@?7m)SRg*UutD`muR8Q&D-J7q@O3c}ta_o8kZe9B^V4;m%Cn>Gsg#=&+C0&RxrzyS zeiK6Z?9o~mHVFqVyM^dhcK{syDnR86vrb;v3Z-|N;=o%G5(y$|Wp>(Wm4T}Y z#8=<8`%;(|Y)#mHu|Rma!6SxXUjC36qE)B)NQ9i9wlBBC82Ri#Av#@(LZ>E&-ddm; z%-J#~`c1B>9(Rljn}l+rVx)N6MhX|G4oZV2fqh!D2ps&}xewTM3!8+(QAaZ(MJ9Vh`dn?&m5f(<+e^iBP1?w~E-VoL*o0L!GUWUB zg?lnD84&jm_=zIq^QCPE%2NXmCY_RVZIdYP=+d^gi%v)T@52>)j+h?5o=KYmy$| z-vpZ%7D&Fuz5JEh9oCxO^3k3%uaun%#4k)5KJV~zC~AizvJ-MLdsUODeS^Amz7O=* znqQY8b@MH>KX1b%FDww=GSPy<=dgI6kR$#Pma=s1pQ${dyk$YLRdhvVGd6E#v(@;-x1s@XZbJOdXNNN!4VO~pDv76|*#d~A#*s*KM+ zGSc2&e~_W8`N+VsdNc+Lih*kLD= zM)LE|=Mo(fPRWF$WTC+1T$_Pw3nbT9dh@w9OZVel-emgyH&yN@-T_GXeZI^m&Nb%q zNrA^e?Em277KcJW9yI?jM`9RW-pRR5f?zpDMVPV3!c6YNtA zaJ)WYFjLf!~VZW&<*&_q@P#|7nvqStPmN#}J(62Zp%?zOT%wtgs!g`vDi(~H*Gb-67h zcf5J2$j#mW`8z2PUqR=q)Uu-Ez zH4jJLJ&?oZ_NT$h4BStF_(D712Nu^9mkQdraHU6Oi|tIsXPkkoCc&d37A92q5fTjs znto25?{mPpi`27d3zWMIew~ybxe(|%1mmj?P)2r`4`tFm@p!nhAk6(TE z_{;A<`OCx0Up;>H#h0&Ny#3bCA71|ctIuD5`QqKT-+g%bo5ydzSm^)z_J94?!~5?) zY+%$MmCxbKzXypMnnbY#LPfN240Nx_E}Ndrc!1GW}jsyY>F3U zVD?#2+NM%w24_qa_G+Q-NV`aVwES-lwkK=-Sw)VVVd zOMd}L3#^=DFEBbz zD+61Yt<(vT>uid!-hirel% zkODZcticd0mg5-j1Q3OV&zL^=9vPNO*eRJhfghOkVGY!Lj9f52t4Apc;K;K^Bd}P0 zW4seQ6c#>X`rvzHHmQV_vZ)jJfl(jUK+VTE0mHr>MARYaMyGk=1PjXzBF^A&N)mWH zGM)PD41R#xhc!@hGLmrEwTp;(B<0ww;3u&NxiRD!8qP@qjz@<2EMcT<>I{Bhb;lY^ zG+`v+?5=&^F+8Lln-%;d79lr;JO#r^Nx<>QtcPpDM%mOU{Ln0c4f$<2DL|Yi4-tjq z$DhIyHQ#CC91ABUj=&+ZZf9`|r8DR7L(7X!$Zf2hqXI#uF5;ssfT<_BucgmUUw`m z6cF-YCK-IjjXFi*1`209@C!{Bt98ee;UGh_I9`|H3gkqRz~VD1#}a9gsDAN;2Y#{f zQpMh&DBC`Cy|MUExVE!R2#8}wDe!bi3H6xSb3Qpfmm4e58&!_|9NCUpa={=We8zyV zKw2cGUe0&HFE?MP*&9`k{T$iCa6M`(j59&PiqD83&&NfUJu#wP!(Kht80e$h8P;mv zo6gQydxGPryRCP{;>(H?!WNia(q$6f&SZRm z@}$UTp3WHQ9>_Sunm7r`#&R=qqTXWKh7ek2P~p_lU<>y|#J&0q4^fsE{$?Nrkwv1; z4il@X1Lru%M0Qk;j2ONqBJw-i!g4gROCG-=b7aWT(LgYgqM&JBF^wVH3Fnrng_{uB zTQO9wV{)XtqN%oL(y=P%ksis>@vQD(mLe;vD=D^CY;2TI?V)FcKG7kaJ|eL>>!iE z%8fiK6933EM{FRNU1nCMLnKhHWROdrkyTazHMMR+<}@?ou__TBUP`DuF?vaa05Kaf zeO;zC6#&aD@feX7Std?I)}2J_H5t3%Q+9TrQMGkqmr8t-f#owUL^ARDkuyguGzva7 zphZCQFb?!=#!-`Gjy!Y3#`NqmK|F_uR<0eBOOKTsOi0JnR=&sDE!lDDn3K3hznKFT z8W^9-KO_`q85(*9ODmFy<{D$RrREm?#)^q7(3DoIA-Qx|TLf=nq$U{K)XKk!C8*7U zG^(XZM02khODqf>#IbFT*cQ1XXBi1?n!GVW;TwmfZsRD$=9C2ZJ0~H+GP`V}Z!i2s zPPp8V3eHNdY|V^}HxtsTk|YVmyl5z}Simiwy*uoZGH#2f<0Ki)HO3KR3wxJl5$4d0 z5ZOgreUr;`Ym1zaA~nfbCzX^?Fvy6FnnmEX&K%|M3HjH=Td0}9&egFjuX3& zgY$(cRAMqhM3O8nh~&JSTspiw7xlq&NRD7>DVj<~oY$DN%?WIJVltJ&2tR zP84h}XGZ(X?^xFFh>Jrwhry<>8!_|~Q>*mZ{LSPhc__ugyGca*Op1i`2?UxB)mF}l z?xwX!9SqoNf!IOE7@R2BUJN?}SUZ*^WH||1!`f^F{6%h?(<(eZn`c2bCH-qKI}!n9 zVF@E4x$A^88z*I9Q;zD=goa?djQi30ySuo?DzUlQr7!*7u_PgjNkKC1-3BuRk(yh? zXkIA9$<35#n}u_b4@DLS2a#Z~=>&Xcq%4p!i$(}-!FIWDO#}H8n;G(B+8oX#EYVO1 z52kO>HN@S5=C9*z(wtkEG#{Oo6T6=s%Bm~{c54u1_M*fCli19fa|<(Rfs~`VkqO%+ zxTgFn9i1^JHf9;Rl*RJ7E#_E|WOxx`O8eR@Xg15=lnoJ5HYP&W=4VG@b$~-8u)FC5 z{GEaMoeaN8Ipn7~w#%5KRoXNd)7XW{&px{Ld&81Srl{y5t?-h8fW1j=vr6YSr1{%8 zLG6xq0Lxg3YmxI)bK6h@OE<%zm)l&>BF+; zVE-0~$bgw5NTp}@d0{S2Zl<^zaV%0K25k3p1~6Sr(%x-3zipRBIIF#ciI3P-LOnQnM~Q|GaV zuw5=(Q+pMU&6xb1xjEX0mwtP(tXWt;6x_6d^ejxB3f$anqFXsIx=k^4kXZ&i6CpN* z$Sl}t8>i}qVOwY68p2zGVlx(>dA1{-9!hwztXZ&9kv5Q?MWm+!w`^>pR1OSoGdD`g zEc9(ALTw6>S$hi?!e{D2lu27>;j)MzR%tQ5kr9Q1K+Nh*Xb`oAVMlmCumoj+-t^5B zaTi5q7YAPdH_;WW1x1+KWfoTY-y5-!~i8)%OV`eP=jb}T$&5xwKSRl9b zL;x+VpPpTfkw{?IU~I;cJtSln(y(%5?ea&i7@Zj*147}HjJRCbmhLJZo3Qvd9(lTr zucW+KNG{Aoj88G8XIB|700?i^P>+Q&vvw0PS4E(+$p?I9#2oDcWMCh8z9TLdwxyoS z7dFU~U|dLgvBczvZ)S)aBN<-Iu%Wd1qCPX`!8(XUP)W@s{LP+}59kc|n{LGA!Vau& z0U7-GQo9M~W4r0Lro32Ua>TbX1f$exTfp)bW2db78D>8X7zM4~dg z?9HO!C^F%SB*~%DN)0!Jfyl~N+)XwN*XPwIrF?c8da7KXS1nmH@CPipnNi7sCj zl7;6Gk*b@xWF6>~D-t}ja4@$FVhSt&D7}d;U)IEt7mhadaN+`v8_Oza0VE4~GY9Fo zfrA(Z8(4hl86Mw6;xa7E76s=>F6NG$U_>4Rc9gLp4CX^Sn`CSvu%H>CqLvspc4Jut zO;}M2(FtY7E5}_CL$cTUcgFs`&qOWk0{b@! z?xSnJ-B=bu8*0P^u_HRtQbb>hZ1iR_24s<95r<=zHeB62#wTgU4}X>40ESkN$i+yI z(Be^OL32n{bFUe@u`Gf%MB4;$BPs_&w*En68*DaXKvt<;#?lXXXCRmPKuIykhGNEt zahKbS`VyUWoQb>GXGne@UHk3E0>Kzk!v?XU8V5^;`eFVy*sLba=6K#WhnojQEyffp z7?Q()9b?4tZ8OKO#mtctH=tdvlA3wZ*o$S6i$YwD$Z29oPE;2YfqG2XW7Z?H+uvm4 zI3cjh#=pr*eEu+#a=Fim?^RcfnLHS^2PA9Hjpn+sEP`=xM>8}^$sa8pwU2X$(PsF- z(*w6LD4yDbfVLlwb37(pZg9lc=1g!lGDHz_NHpYM!Es|*1QP(s&fzm5t)@s#F|DCT z&?B?k-tg|j;Cq=5m;oclW3tco$qkn9&76%0Fj$N%T$X``JU5m_FzJ^p@n=$2Pp(>; zX^kC%4iUDzq2;kAFt1tGxSh)l5PeBk(FrM}=p0x|wfWGCWsy5`zS{B{JQyR*1Ir#P zg7yq^a{!RvxW#jCt6MU|2vWr6G3nAaw`;~#m0#P85*jpgV_5|IVakDVh9UBizsc@2(2-3m1dKhbI? zSmEbPb;Z%sfej$-)*o})j_^%_T~oPxb7R^SI)1yctb!eZ(34hA2d3?q%fHF95aYfSCh48kM#ZuXfbL#Zifv;4=f>Ua%R?m-Rk*xK0s_%z$YAQou^?Hns zSQ$1}(GdP-`exklmFvYRAA)fzb`bMp@k`dgq$<={DAFaj+ze{yHyOg;P3=o`8~aU` zORlcU)thSivG^sc01k4aF|KaahnDe-HT;`N(%!}%Q?)W0O0B&b{R}LNXpJkcZU!W; zNtfK}SA4jXLLmj84U*(O4E36G6p-fja}4HSS!8o;m&)c~D)nLOt)90JTf)Ir@Y&|7 zx{n-osznr#YI`*XGO%Qb)*yoJI8T*8ZFL2I9d0XB(zbFtu7c6daDk;9EIG0TP^8L0 zSJG`O`Urm=q0hE&e6{kEv~vWJ6zx8lg=G=$j%ag`1#A>3zn>%gb#(jio2ijJLa4D+ zubYQuk*@dYw2%kQX>^>Jg1-*wV-$wP+bCaWe)6yk1-?MLn>?N6F`T#H4-Llx5W*b8 z$;C3X@VVf|q|EK*V)z%kKcwlNupEGGg9V?(epX`ExhE_kI^qChZ0afSFN1%XW1}h&EDw+0e*VMj?;k(;W}#kv`t`%x|M}vr7Yp&; zdk-%^{>yidFJAuPx1WCf_}S}+mmmH4)7LBK*WY~d#pA=vUwrlYhu=MZ|G}$ozI*lU zidtr`{Xkye)#y~SD!up&o6)R@bXuWUw!fA>lbgo_49|9zyIp< z*I&MP_w9FK@xMR$;eTJe^A>#m&%?{#JbwEHX5M-0?f?4EcOKq<|6zj$@bllyz|6qR zz|6qRz`bSQuYdjP-~RTudqXwx%nZy7%nZy7%naOH2LAo;f4}q2JM@_P_rL%B-r!9< zGXpaNGXpaNGXwXN0X$~P7rXP3^L|P*k<1Lt49pD74BSr!@Lc)v#~;fRljwPF-cOAt zl9_>-fti7sflD%gBN7jl`1i*@{_(>PKm6%We;OW_%$eurB{iB(X9i{lW(H;k?k58{ zEBRQI1fDl>q)HCxd2ZfM;UGzrW>UwU@8a=aaF~i~iu*Uq4W|;Yz%tQue^CXhfX$tF< zwtXbOlZ$6>w(Gfx?9CcI;}(+tPdfPTX*}adXK2kcFq@}&O8o}$pIxP$AOBBS{NKRw zt53<^=O!{dYxFGJ49kuGTgUU_`YcP_FR0l({c`KHjQ?CYZT?ur^XPOYjl~9>oA5Pj z#0h^k1pj}wf_OGT%|OOvU^dT~Jg2?zOY*sd(}@aa$DEt+J8Kjs|LJnLn)ojt&&%r5 zt>Y!gXY*W=cGKy6Wn`x1lsW9&1d>^!({els0e*Xc=K1G8|Cxmu^4K=f3Ap0oA87iA zzwX07SeE~Yxr=;AD$vD0h@JYyANS%{S7|UtlOueRFLH!WIKpREjPS^cAY##RXpq4_ zIKs~vrx85^0hECEoUFt?gV^sdgn#|(UtEs)Ckp-oangwB`X`aIM*h0ott1X3?wNvx zhVz2eD~WW9uqRjAXLbLHCOe$fodllT(-A#`*~;d51{t`+5cp3w(Wvu(N9HV$TGU<7 zO+cD8a@OTO#pJnwN2CIfID>FNsIJQ$!ounECeF=zM*xN}5w$Z?`R6XVK^0s=oT%}1Z_qmA>W{rB(ag0q_yZV=G zSfMa-`UHxd4f`8z!VoT7)Hu$dh~7RuNdX3qAYA#QEiAxJIy5@{DXuZ)yVgtF=BbRu zyjIn>bS0{*)X}bd5THy~!FWP`IbFlf%~_)-)E*Kl|L=*=DyNToQt_0=kASKVdDzww z|A#o(J`*^_(3z)Da|KL~@HOCqnhUk7e81)?fE{}+fIcj+_B>Q%fj~cxp!!9@`vwtX zmh-Gpzk+tMEN?s5_S<@q{U95%xg)@q_9fkKuTarpbFO@tZJYc7*19%N0e)2xZiBL) z9tr^5rwW!Er=rIl@;;+3L&b?AV$8V-sIx|8^}0$+J`y%>61=NaeMrL|`9pU^ zTX_4&j^50dU|pN1U`0qgTpAEI73(pSS>LP2GZZ|1wN-p!-3?HQWe__P0eW>041B?pD`sCZ;z7Ztex2ha`gMGEc6 zbF)*8JawEh{tWQr5?ZCl!zPg69;o_|hkl$+$=DL^)cIJd6ibi$hBM>~#RfD_S#+um zI#s_6+qGKqp3^EVSOvH}#(pB<#omuVQ268ahKW^BTP4bgut$xYuBVtY1G3xuZT_kc zdD!sP3dI}y--dL0+@KD}r!(8nOl(Z^lqC(n4q&^(mfpO_%JAHYmV6lRbWgsMNNZs5 z21Uf+b92_Hrgj5#(GRji`t2~%i=>;s+r;@O?K9ouZ$h}e8@?bKQ1n(VhBZ$sz|#&g zpkDs;yDC5FZ1cWB#Ncyt*67ZgN4^litF3-$<%5arNjwy^bs9T2+rGvDX7n}%)irNz zlhfAPu;ytCds>q(vF9VF*$;A$0zLTL1f*Fbvo80*2|i+-dB9 zZhpGq0hVHE{>Xd}y>W_RWb>SYnF3iEn6*1im)fSrpPRErr!~4tKwfFkCtYDEU)+{$ z86-=+tOyQ>N?A>A}r&=h=9Q@c3;BEt5C% zok^l_YWKM0+?+K^6zHlc^=O9I0$q`)9^kfY_`DW7n%P&Y0QrAlb;)XK6-AAm!Oc?x zb?TZK;2x&c(Qp}>?w%ZzHw_{#S?RMzci1-ak2=sBy%F~Qa~=Lq5~(d+_J6AwDRpo1 z+pWRP)2eXOj?92u8YrlonzT#~=u6H`R6)X+HM+bl)q6I)b?glZjVF76=~k}k?~dp! zW8;dzi`@D!`CM-Pm%#Pd##k8NJY(W|)4b4<;WhHc_On@cP74uNotv{pW_7M&^5#!n zfnjeX>YW3(C7pDY-q|>fD?)l0~_k9)FEde^$+H+2rK|{oxt^X_NdrG*Z}w24H;il;NCO z=?w5s8?;86++folpUNy>k9qeP@MK{oXV%C}%T-M72Oi;B_e>vr|Ol|D! z3y-BWk#Y!EEutFm4Rtx6!F`ITRzD{dBy-lNAZa~Rc>kx0 zjA;q=qnK=lni$!vJj)P~w9j--bgnX^;CCzhf$j{ijx?xscET2}Qa7n-m zDEf!Mu{q!$F5y_W;&>(V4QCEKUPFhWk zaLbK7L~zs)fLMKjkWcKx%}*07J=g?D7{@|j*p&n}irlDGCVQ+$vkI|Di+4Hhd=S#3 z>NNISQ&TD#QYRg~f%H|)qf(6%Ggf6Pcf;L`9SyEN`{f31erLnlXX7BSnW#KJ<00=J zG6My4!%j1^T~;G3kl5pc8Dq^e1;NI-2FtCof$C)8H-kzuv89^{k1>_C++#Op_LLvH zEffQwN`<=_&PNp^4N-_wkfs1XWECIrrrD>+REaIFT}|vbJ{SgSiXmWNqW~d$45t8? zHIASwch`}}3b!0b3L^7N&BErRi?n;3>4G|DsmyH632$c+anUfhkN}Fi4}*1 z76aLq?=NLR75v82l61_4fg@3AMRPV$DV|ck!V}iCteDt)$xf@Ql(PSXh8H#uXNeCK zR5M(p@|Z)_$|}yjK*;?E;mfJ6wDc?6xNNZ`pi1MQN5+^yHK$|-vTDQ&L}_`3#c$-O zU29HW#GCt!?1?BLgY!rxIZdlG1@Wfk8_vdV5rCBI1sSGFnT3|mBQkGg&kJY<7=gR` zhnL(i?@j)~=Al&Zt4nMSvE)!=aNW@iG09UtyMr~e(@rgv3Gh{oqhKNtc$qJiu7br_ z=67oOGvKdL&7ny>ROMJ_Y)-K!sdZ@-V@TbP}j4v%M#q-VV2vqpmV5yia*s>$w->N^ib&=iw z>{=4odjXPROABDKU#S8bd@0$AR)=*~iYhV0@`Lj<%Q9_f2qdP(2dhdchA|bB&#gFq z+cfc9&b+F5uuSMqiFE4M$Dsp6rzUYdhZx7oz9Dh^~SR%YO| zMpz(fufuwYJys|%IA~~bNekv_r4(sMy2Wj2HaVKma|%NSPc#xXXyEaKHzP8cDn*@6 zXVZ1;hTz!@*&si6BsRmai#WGgDWzOBzu|K%PmZ{%dFW#7ToK_?D)`BUA2#9i!ZL+V z1kEqHYE@nv?}e$pXV<4S;&!EtE_YYQu2^OPM>Bc!9CKlY%|kN_JdmqR33!^X5g_Li zgouJIB@Exm;Up^zSyx=z6;F>^<${O)`f^SEDzQA^h(|NvA2NW1_rTliGt-O!zVjHWqK@T$_;^B6yPlO z9#%g$OiuOb&L3Vv$XDViRmKJTB;VxfLZ%8no!!f6ak?lA>Z<0Uwdq_7AxPvTcPHU1 z(>=UuP}@TD1q*|!ZF18k7tW-6WFS!^d9%U;$mzzIh9}=|V7pEW^M3B!RHZejsIJ4X zxVOXIzHJXD@-KtxM4P!nx}2v2pJg~EP7%^(TU;7`F?j08BY=Jmk(_dn7U!=9YHK~U zT-KkLG!KV%x{9d~EH9Jbsgac7W!QH0Nf&;a+nyq74k=ufW$odQXiDa0AWJsI?z5vD1V$u|T>+a%SduaJo)&wdpV3Wpqe zjo>_FV@DPC)zGryaF=?7m2P^7Y$FL_6(}1B5L*^x@Gou0oP`#QqhWa4=On{2oFc9= z%j7PEU1QA*A!O3}!e=;Ta>5maPB0~7OuimCFD)@U4f*o7r-o+9RJbZp=;mIg!I})j zYJ>&IYaFY)#s%wg|HCpfLxROXgtKW5?c|Ic#OWEGHWyBjn7h3kn2QK$p z{gX0qvNa+Ak3H5C;pH*JoHiJzsMY;VWdK7y4kWg=?)dm< zXqGd>uzO#+=pB^5=;8JPs9E=6zS=cecUaCyT78yydu({Q;1|< zI*}HWfN9HBUNAh}dFaH6HH>soOos;$oEBR%6)EtxQH*aMEKlU>^iIVY2osAu@T`a6 z7_&}W(=zXA^;O`w68C=-gOjP236kJcoMOW=5Y~tf)6+ez03LKdTaKvQWS1Wcw9tFDi$edH)qcSx65#T|~fLT7J%s&p=osUgkYE zE553kJ9BZLgb$lpyLv3`jFz)hzl5bPUVv<0&JLi%yb+Sb4o_PUHlM8a2s25J5*sPM zeCU1O4lfTt+c5bYdqbNrb$Rogh7%?>_XwaS$<+#h(M^x6)h}VXXw{#;Ax`2DPX4S9 zKjvuii!;F0A%bdzL(M$bioLKRHd}HOZic+QWNpZ>45%s!40DYzLP^MLD!EAP^HR}C zBijnOQ?Zp;_(VW>Vh0D8FD4KJ#;)e2Fm5*O?+(k9>N zn!M4HmYL?=fQb5oo-I$JRR+e_h+o;s#-rXYc$dX(ECXrvo=w^$y48tHk8KtCr@+ zD_-~@Dle<57ME{*ApiEIRX!0^i zW?Qv1qv8ezQGhU^!iN#N7`*j`00>EV_o&}4I7UUNs|dfwACQXh=&64mQRSxoY}J#} zcv!mu8Iu4Kbp6`l=s+YKolf!jOI@d$?NnU}Fse#B%B&nJz<^zu0cm{FO)_v*jnrmB z!?LTO+Jqan8U4H>?VE2eYYGv*WbU^fO`IVBidP*Ue3qF;oXr2<-k0S{mK;~=`+fBi z5(4y{LyZIoeu(Ur1gIf_Bq04(kx8=Hs!F0NMYMVaT7uS~C2$Q|g4UodsLu_%al*oU zxIX)h_xu5T&)wXH<7VdOLqry3=hgm{HZV{F6Ov~t4)tirWl%$E8)BYIdz3ymc7u~A z5)pUpxGxwHaSUx;`KY2^Ps9qB0MoM40})$msLTViVkGG& zHHyo>VAZoOF~`urq{_UZrM#M(SHD^Q=S<;q?K<5i4_#3?eK{Rz6VlddrQU***1I;` zt-S4i&7ut-HlN7!A!^K};-UR^H2(!2Huo{||x$@*5 z%R_3@>71Zx$Q6k-u)bEv{%fqDOUKHER8CXr_=`E+m2C_OGv*u(nb9pwY zy6!EkU-q&-$P~DV=xKIs({-jH8>PUL7xhXQtYF5FY%9Frx4rR2FuQn~Bo8g}Oo%Kc zv29~|@_47it0Dtk;8;0wKts)nF!jNUHj&69O65L&XpSXOyoV4UiY$h~9+(v)v5Qoc zY?R7bFn7M}afKGE($?LI+HbL#TUe7FO3&r6Eg_%-*?@1km&x7pP*t44BpVH3%Fr(` zz!O)}aFmsqNZMZZnVe0$=biZUf3W}cBT_)%>hr%ca z6`1o1_8_AA5da&-dFVwblX~9C<4zntq(9jxaI8*C*GdXSYY-%5hiaX-Wg1e@lE>WE z>kAq+uSP2m%!-jt#mZ{QwOO+?v_H*R0&0tosakEQ%{v_@65{McH*bA}A)98yvTq*E zj3IRUUFu!exnL^u&@~}-yKAMLo;>cX%{fq_?6MtFbXw*n1`b79TxZ&$UBkdf11Ld; z^uBDux~w~5&Yio#zq&mFS#35nPc_wHS6#O&$~BG20Cjwo5NMB zhZomrq%ds=xZtWzZL8740~2GUt5)UrK=joW$(FUmT(6oHSGMF`wQ&m9h%_2*RdKsA zs$*f0w4J_NG*%j?fU4M+`)P zN~94#BOy_7Vl*O&yRC6ZZr5zqZ4a)wU>3jE0~2G!w2UXP7q&|@N6NAcH`@nZu-on$ zE^JZ^{=@n}!6ps2+DOG{4#T@!iLKt3GUF(>CIg1ysqD%pAkBT~qMDmL29H@p@GAUZ zcoMtbY{3qQs%5eTo3(3KObe%XR8*NYjxFB!Q}T1z{$;E;DUXQ`Uu=mUm>44-lFbrG zL~hv35|cxw;fZ(6-T@6wfW?h+)Rgf8{8UxYFvlk;6exE+JRr)=@A1XKWIph;EsVTb zmmT4oZVAMFg?cU9!$bfn~H+hWDjaSjFajZ8pT@zl4NnrC4j8`N?9JzTJ492~ydj=28 ziV=^0ZFea18pG3O#MM|4ri4OCgumaAIm4uYZv_TUFqzPAFEieTUDU=_6G_zLZZv?= zwl>O1te+drOeZFfMuMa@iG;3s2-W;4Z8u?D6E4NwtXXqh<~U{KN;D2cSW{fIct(0) zVvKkichkGl17_3iS1U|~uX)7F^)UHO=1bY+ zXp@HM#A|R9ZHG!GCXdEuV897@UeF8$ZTCM&Kc4rvE?tmYRqHC%*_(N;W^;;*3sShKMn&$r1_7T9i z%RGrAB8Fi=*JM5_XWQ+Yp&XV}v?#m4$mG%SGRq2Jn&cAP7}?$Q5CFt8DqR)oMqHJi zc&oN?;CKM7Ci0B+OpFotwSJ%exV2HQFSfC+2OlXT8D*ZNBAm^K=nyozu2%hpoMG27 z<1VvzW6EvcJ)lkeY3z3GPD~!oOJ|X^BM&~5N@?I=U?ym6VKmVeRGHFeRG~U0s!Bng z#iNm6Mp?3pd5i~U#fWEPEbm-dBac1s0+)ZJZ2mH@x|Za%|1x9cbn?7=W=3uMRkd4W46Hb6oXkj65@U zozyc^J~2i#J@`QW5D|n==pQtei+V)O92(*0R#q6kDbIbhE-5rJdCXVK1i-9M30p;T zq#hHyDfu&UzK>{YVvP8Tg_Sk&rS8m8lMh^^@~mTLk4U*MicRjDd?}q6wOPqyN{VFf zdTC70UcSP?bqHd*;Nl$Sfr&A~C-1VR@O#*NAIlIw{}o3yDd~^pf!=8K;Z2;}LpCdU+$;Q)m+Ib`(@DR%t*>tcb@FqK+PN{}S28A^$!okfMpoY%)~CQde6Br= zt+W0`k!R8AFKl{h!;(iEm7~Zi{^@zEPdo5ry5Qm*=7EVZ;zJfz)>>APi0c@^R}=3q z5s(i(WS(j(PjTEd&ydxvk|#au-23}V+N{-~PaX9~xGd9)Ine_XW5j>Ehh^2|Wh`;Z zkI1IObcSmDh(3&C)*dcSNNg_r9_e|)q^DMZ3hR{bLYUp*QsuD$Zj_((P1<o zLE!YzYM;adb7Q1G1UZRAP76bS(PFKp9$_-KB)it3edE8A9TVcdA z*j2B)g*l1HDbA;_Od`e{SLUvR^9@xKs?b~rrwLT3F~)0`V4 z{o&@YuPZ!OfDBsgF%;)@hBy9c(luKrDnFJ<$km{OU+)ySorRd2z$;c#mOMP!a>tBs zg|7GDkYda)P*6KO@yzxDy)<{qb7Q2J*a^?)b3+rdu8%tSCp;mxMX&Jy>XqIKWv9U1 z6I%cdcnAT0<0A%s!=V#d)w>bkl>;Z^S~Km#8tMEBrERvR1Y6!$u8zx55U`a7{M72S<3erxE)=bJh8W) z^Hnx9&8+0{-Z$X{cQ*uu%URA9@Xup;CgibUbnQUb!^2=KLlF;5kC9%I>qR0GDen-< zHE%u3dtMhUV#oto$)g{IkaFm{yP^KTMbdJ8f)H|kh_3(nFai`}Tl9$@I75u|g?AmU z3X(ww5zZ{outZ+02hx)VyQIElHDOqQJKhTG~4c%C;N}o*N!+M2F zLvs(DCq_K+u4l%YDC5*2m_>yXwY7QFSZb8i!W_E2)R z7~$jZbxf@fG%6U6L+itldVjts4J&yjhMRA0SikEWGBFSl(ie($<>~cb zzyId9zx(*=?VBGxz5a)9e*N)xuReeK?&vsaVp>12GTCSs=!-#+C;vJixJlWT8ynHF(* zpuz(y$10q+M3X#l&9OiGGifCWEvDsxA`h$_D{|Ws%J9I-u?%M|)*=tA94m6$63Xzv z%CQV*E!H9rtQ;$H+Y-v~z%$4(Od(^!r(&H3eW>As92<(IEd1LH$|R>t&4WJF@@6a& zqv+uD7;ON~k1*(_nb1et-fTs3?Cc>tKpzb62?i!ZA87t!Dz?`Q#F8KQQ-h07XFBw8 z04|ndIVPVr#r-vHbVEPQc%9+-(1#(|3?0PjkfF}m71GDpE0p&YJp=SnfxXQ2pcah6 zk{eZDoMb+p-%7b>R7i>kO&{AmM|tm}yIj1D0uH6_Vj7jFCe>-~gptKzp5GF{=hUj$1U~$aG2ysXCx75#IbDoE(?yawGod8wyv~p zAy|BdL$m`xGA;ZL$%CH4L#~LP+@S;Lj=D6Qj#wHY7fhPgdoG#4J2Q7npYNb?X3of3hQ!gJYBBRcYj4xzg$1*l7JLx};Ri&7dvIO+If zSc2+14IE>kQ^E)mST1EOtf6G&7`m%XN;ll5*mZSZ2QxT9ZBnzlQ;f`XRab>B`V(#UWG!Vjt-+ma|@Ij7U zSp3qZ)Ji$*LSu{)72*|F1?1b=}h%?jh$@S3$R|uM0v9Iu2|AMlL%p- zm_MZ3Agmqnqyb9j5_{?V<2ZXDqjzoNU|N1GHzfz+Er$INT+IaK4qY#d2Q0}e&tt($ zN`<})$Ka90Ysev9R5{ceArsk6Fw!D?+la_)Lq06`D*Ot-;~%&wy;q}pMo>l!(bJ^{ zcWfKls1cTH8oI(26tS16fZ%qpKCz9*N4Khje5wACzY04^IlNs_cU*h3Y^hxe!z701X;|2u z+Aw}1dfjjVV$>z3Wtf#T0DNkNMnsln8#rLOR1qsz-A{%tp1Il!id_b-T#>(`VEY|r z5}xq*$dP+2(sO=WKpTUlq3_7~3HOr1b5Ha3sLYOT142t+vBEWdF_)s@1`*sLu?sy# z+s)Bo?vRnNM8A z8=HtJ!aj7N-`FCpU4vF?xrN12=kzreLPz61W$v+UeD{>Cr=(@@MsS&L6ydt{gDt8v z9H3t*5f<`Xc^mvqg}(7Ab2~~!xil|iOAPdP6(6W{EUI}! z_|bTd#;~s15y1*9VbGV6o1LwD>q$$5UHVn6BR~ba zB>UmU)yAE!ji^LIJc>m($)42El3RNhvSi!e*fcF5X4$ler!87M13M{TB`nZ!gjg;O zzoBjDHgeb5$roYGME3BAupEt3(KV#^Rt%V3+a1qFyJ@*=kv*w#CyLH4WXZN~&HKeR zs+ElP4+Q*Hq8hsmUa?&M2CUpo=dQC0T$Om_BSRPNqw$-{o%1df8|}uyu-_34i(L5WiVq+Vdj4Od~b62H;u~F{$U6#$j9gFHX;uzaCD6Xw}p&D8ubZb9s z!0NyBH}<@Nom=d9MTZmjIfteqcy6P&7Li^xkf0m;peEh5W&Dm5>Rj#Id=APzvzNv2 zP~yVOo-}p^hI&adAI$;aFgXOjg^;2Px1(btY$M)*op_Oqa>S(DjtQ0n#J6Fzto>bs zB}+d#2o@Rl%Npvg>IPsV-18)`+yq?lD;%R0B90}Y`N%f|-qsG$jD-|kxDBs#LlReJ zv2*Rs{kvna(Ygn@$@ID-z&e6CMyjt3Qi>?}!rpw~;>_QuBNZw2L5`9V>MorieY7*KZH5YEfE8UR9 zmDz9SIy&}mB9@I!mX(DUSFn$|(Y&gOi(k1ef3Lbk+19%oc6t0PyHHHr(d*T;5%J?N z#|R=~g@S4>>|T9GhId0=+0n#QESEX?CKgu^AH`%38Ey{QS@!^;cN=2sj%Vv|#5TNR zySU}`*O?HrBdrL2nT@KL*c5JdRU;%p77_JoCC{ivDi-khOL|;Ed=!&BWVktEXO(cE za~rv}G|$$)jo6lN@G5P2r{sFjLk^TPH& z`xBRsk6v^Mi&g9E@5(M9(Dt!hQ+6BO*u6Yq;%*_#a6cmK_q2F#H(+sXWS`)LJv88> z-)Lg#)}Pr*#UgyJCqi_YQ+)KolL`RLyEepQYk9qPW7&ATED_=^9pShe681aNK__5f zBl{$C=}L!KQiO@kR4gGrp?f{Vq=-&0q}U_0+mamfjDvK?5`RAKRUH(@rXu5TDRJ9s4E!GkK7>60VqBG<`T?)au(5(vF&&FmIH0-Bh2~I4cK!*JJ$0j z^3J;b@gdo02`nK|$_5$iz;4Wv!~KxJg?=v9*Zu zEMN>-_UI5&P~uLLNBnO5*4ed2)#g~fY2I1|lIhSdrotBXk^4Uilsj-y82)t;2oDb( zNyW191%X|Z=wTsfN>CO9j(CVUMQsX?Uw?^YGW5;lZouo7>zMj`L8HD#}-mdtLW;@Bstl%{T9D0n9Wi1AOA5(vJvx*XvHz0-8 z5GQq$v22VHjH2i6cZAyviI^e!x+#n)JU-pm6pPK$mCLdw%mD-YApg)7DN%8hK_H zGyt?jAO%bxo{9_zLBC&>yMcRR$GP-TovrmU?G&kG#uQ}%o)I-eRP}cx5Dkw4LEw{k)2Bh7X4n&v0G6ls-~IZBkKe!l>f5dL;p^W&z5Vpnn^#-o z$3K30{mXy(!~0jS|MBm>{{8!3eSCWTi+}$5($`g<*MMd0=^9d0=_qY##Wp|N5_Y@7~FE^xyye z-_Hhb;aMJ79#|e&9#|fj>j7LR^`q^&TFwo}vc5d9Jg_{lJa8Tl;Qsi_U;a|>lG0v# z<#}SXkSq@@4=fKX4-E4FwnbbX@$;MC{N`sr``MrW`JcO6Bq?jJ92S>lXnA0HV0mD9 z;5;6{{>ZIRH*l}SHmWITuf6g-fm=wH2bKqx2bKqhc>sIm|G50%Mv3+x|M*92k@!B3 z09bqFus|$B%LB^;%LB^;59)!nS3YRq7VPDL<$>ja<$+-ySbOC#S1&`$1Iq);1Iq&s z>VdUaK4{<;?B#*wf#reafngq4d*v`!FGI@%%LB^;%L5PUfwfmYXy6v?<$>ja<$>ja zVIEj}3S0B14g`w+Sxnh(Of@i?P{|40B zE1y9$2TWll%m63T#Gn53C#myrJBh22>w&I&<%&^mI3AIo|FMhpAF_DF@Qug35@x*5 zu{NdD!};T_KM#vt_e!{E#prqDiFX$I|Dgu|jSDZ&A}$Zm11n+Zit!EnXHKQsdTaariF{uLJ7I zgLMXYD`CzM1;MbMgUVttY_9~o6{E5kolT0b1W2C$_>cd{f(L$-O=JR&wfI3>e(()F z{6Mq*5#p8QXCeYw{DAGyF20nDPf@kPP+JV)x7ZRx_zgq&oi#^Tq#zoh*>P&%!4C}K zql&{BJtza*&N`Fj%m!iYGR3LyynsK}RbS=0RtDa@hRJC6aUfJFmoGnT6bSuLPtO zqr|wJlTGghxC#}3#J+<~!DL--7a9)lmDnrm4FMRYiCHJkRDXRXcTxohk3>`x+3FLf zIe7RPF-3H6oyR|FYp(xM6k_^J(ew;|l-c#bNq0%3_g;x9tQhr(;~1SfcJ+^GSfNmI zc+*5>Lw&>P7tCdg8e13yk=uv6C&0iEm@7Yog$C$}Pfd1wnb(-`jknS^VJh)^k5Bb! zT#0IyI8v0wA7PpWT zuyY|Z525BVcrC)#fJ136)aLyC5~cuZ=*o}WE70~lM09}AejbzRHw)GZX^dIID@OeS z+DWrM;h@yFwW9MuCuDO&fUWiGcE4I-W{2Wjd1-Cy{7%}sCQJcl69tC8?4yJN0Ou6J z5~C}6oE6VG>oQbylr+Zdm4LcpR2HvUQu^xGJW22lY4T9IJ?fZFJZ-e!M^|{|qoJ4c z*wr;*3RZ!}!*HO{_Ti!c*jy2;WqPA|a$@tvvcl>f{{y>NcWn=)bd)rjm%&gbbd6ES z=%SZ-0IAMA>2cT7y9o`U(POWKPHlqietRWT9j4nZ-m+*8km{W<1ycy^mHpyg0CI|m zUJ(dfD-5BFJXhS9M#B|n01w+M5s^+YY8C6HhaS+8>hV^o-|I|55<{zo{)v!t! zsI>TU-ne=vjPY0{7_P#dZ;L2RgbsT$w`eT;0o90q_NV1l(m8f{BcBK{SlL`RKeW3`vW=<#u$ zo=)g1Hw`~JF%SMG^V_~V$*$2>r*_u~+k+G4gdTWwNPG#ArSWp!LlOgLD#nz(a>Xby zSR>iY6%5z^uGUQsFfAM2%R<{RZMB*p|1s2*)zoShxq1dCOfI~|f9L_`t*nTKOYhM1 zLol#VNMp+CUNJghs^~9iAUAp=?ERG+{-=RVN!R(`YL4Q%m-dP^IAK}^Yw6J*(8~b< z)kCYTorCt2y%JH-FjkDFr=@vM!;4~XNJu=L18lc4E#DoI{fo*?1CO-z)8t;<{2RRW z*!pQ0pD_LA@{%>nGU2*-Q8|1Vce+Iyv-Zjrqr*szWMILUtU$N7b@R5sw3OYg(mIvP z+NW~UsQ-Y5ABi^q7buk;=q)}zVS3N#W$HI^T+gsN4NSS1wO6hf>7Yz+k3YJYuR}8} zn>;eem&f?^B>i178bYJ~Gg*G>+T@BlJq^+Uj8B+!Y>PA91N^8$) ziZS2@;dRK0k=HG=h|C9R41i%0fB@>hO3F_{xqq3$PFuKs*36Vsn6-#%z*oxBhr<%4 z67UiadBB8{t0u(%Lg?;?M6Es^DsbS6QGwHXh_L2MM8>3q`M^sjL(LqiR_|Y!k=D<4 z<)eyh!A&m0HB%lhJ0)SpPxFOXG$+Z*1LR{l4F>}}F3Arjj)H(69JaBjStWD>CwY9@ zg4zN$@Lxs$RR3vC+;8wYT{Wf~5zY z014$-2!vhPK%vN;wee(+_2`X4Xr{$gj+u{!wrDbqc57lPA%p9*p%>Dgl`zJ=*d;@e zl@K?qU^Fy1;t3~wLNv}Sj#tfmv1Jej;)pI_pg5qR^9q$8#2Q18)fIK*R>CynOwq_)-G_6B-?VF($hm(5QTK*aZcIV+=;_caY65B zBvKqQw%lFStJx4ydqq#HU^6tchp=Y>>AcF3~)LR=ORTgF1LPOUaOkWRmZEL$a zb;}k=1gch!_Q*L#P^}^DfvgyDff%WjZt-iIq-)J?i}~i>g;Qn};lUoHog8nQeFXE3 z^EVs~og4ru*9tr=k@5yw-$AtB%I*kA1}K5K`U^|$G|#|4F=1r-e3nE(2suQOfw4vc zgg6iBGzV?o>^js?#=s*PXTe5f;$^msy9yRyncXFo?t%0e)ohfKV+HGlWuc}jno}+l zzEcAmW!ACKyie92!qcMzpoQuuH#lttZNxXr z5SS%KU zL9PNc&_%&CYFQxBAPAIhB=zn4b)qJBy6n#MB3FNXoIdfTeZywo#moR z3?ctu56#jn1q~AkNpUkZE=4ya;-xbc$Cphno+-px34^5}XIHH5!-*S^2sA3gp_F0J zN37hOG^&cb-Zj!3j5)PNmQwLVmSCj^4r7D`V(J^#OX&Jwz+iKc#iccPcPJw$U6CzL zOK*}R2~&1n@Zjd6VWSN^>EOLH@)C`UI_=0_)1gyAN-?BD-Zdh{(9I(HHp`{rtLCSA z&gCH*vl2!Qz=^BCT|NaL!SGTEqZ32pp8T61Xw6ETJKu?}KC|h=7%^R?xaC%IRKhY1 z*p9_w%GTz3*t=0?fd_I^lz^xC8Ub?d8qz2zDem+WDRi>Ikaet;s(84)8WZfM$Coip z7fJNPW3kb7(ioF4ywN9`Ga%8;eF{L7sU%mnZ9v^pka$^0he7vp%IUI;bBqV#G19dZ z8%J@C(zn;dBU54p_Ik-203`himYbfwC;=+3#bTl^2*o&yt-I0BohDskb7{QO<5ny`AT{Uo# zW;kr~NB|!mGLKu`u~j8xlp@wzAQk$a_%GAAgFL(edC5*M{DHQH9n*+cf(+JMpLhFtBSj&4R6ee8TXck{D>rlvhIfD)&^tY(biZ;y9Sj+R`cyHGZxpdaNKf zw8GVH?txH@xJTqBc^n~^KxEwsPx>L27P-kX-|BC~Ze0aDTC8u3FMS3xePtSlHA=#i zUN=~3jG@B>ql*%^Gc!TAt8YEPpLIB40&^C*XD3*sY{6-e-k_2!{H`|+DRMkW542lS z05xl-Ji;|uYgoc?TD_N85_2Pd=wUE$$_y(orwA^dVIBy@hzH>M9Mf~*88vj><3cM) z64i+BJ>%#>68;oJ|9kl54D>dsunok`hW7 zZ6dKv33J~&S?v;f_;7Nbiq7rvggPwv~M1|6D)wbO$ z-5taL=-qXn%OoG-WlBm=R(h}intY2FG5V)Il;TP5@&#`WdYj`c3IbFkONZ1bDZrdA z!Uax*>334GA{y!!nohZbl47Pz&!-<7jD~oZ?ve(~#rfChcn`QSVohjOp!B48Jo8rL z;yiILm06WsBh+o8rI+fLu-4B7Nd0pt99zO z;N1*Yy-NXZojx;1js3Zl&Bn1yIt!@EiInCXp0oBX`-CQMJ@U69Awm}}^ z>_q3@VPGH@UW*K0h`}obA}@5tP^5@Sb&4>AY=!6qk6DL!B6QbRWd%)Yco~N22@~-T zhIq`@QO>F))Q~0RqM{x_5`VsM#a)V=D$AngYI7;tV`!J9maBGA8hT)Sj3n#a?3Ehg z(hnyqMO9CvRZ7d7a1YHgsp+N9b)8H$v{c0*1^buxJOf*ygF5*mH{8R-Fbq75p^%!P zl&($#X_wV=ku7`on4U0kN4aN9Og1iJMybKjbGwYSc-uXh=PDFExktowE25vjLklon z;o@xW0Y*m}17alW-4scl0}JYynF6}4Qrdl@EGu!LsIf9|3L(x;boVeINW9Zzj0*M$ zKB#i0Ym~kq9IqxMP&|w z1yx1sjRlaf z3o4-oyxPq@Fe^rq63mC1I;IbhqPA5^6BQE}jkY1+21FBsOP>oskhtfK`f|ZJnuaN- ze4=mb3b_;)mra?zMh@2%Bm)@8?nXb1t?@f@*I_GCB!eb%G?Vn28fNaO-e3??olKJ+tA&3mCeYg zZPInui~BkeH^kjmr$k)DJIdV+!7`cb<&P8PlvS@MVufkX?5gxY#MT-r^T4baN&3mw z!{uMF>QS$lU2I@dW!}(IUd^p`VH%p{e**CC0^&*X&=r-_mlF}g#D-QY^|p8`A!fIM z?H;ArrKeD2gCk%xiV?z@I1?6E!s!VUahLXwv~wK}&xl|_DbT=lym%nj4C!qykg}6} zq9N8m`mjk6OSHb&Qams#M)FM_Id)2UEc>PeGnqMtM#{twdGvA<<(&?e8adi}<2VFa z&*0Wx;-PX0R#||k1Puu^^|Jw23mdbscq`H78n(p)1dK-4${9zlVW2%YVM5rvD=~M= zV}?{tiuY6ar*hMgQ$6(L&L!k1FCFtWVfC^t;zSS3ijf>3aX9Clg#|Oq8!rC(k}d$a zMwr8u2h`BK%*$l%Q9PtJoz4lG20{ZRtbz5l!rgJiA{{FiPdP!Q;~&6jVg%Tg#k>Zy z0W&^fyx{fr#6mr6YZ7HSypbvl-ZtS@?s2WG_x=?6ZQ(J=he#=W9PV$$zik zgs5%7f#^n<*U%IX%!-k@&lbP$xl5zI*t$Bq)<&~~j6YJcK(We61ABz*Uj;?ao6IKY zG>5_{hZC6d3eF{(H3Ha8&SS-snw~H&az4~Erf3u_YMqL%l@yBBAYjUZrE|4RLke2* zm|J;$5u@hSXyt)fG1946St0fEM7ut*-P%}uG))PUdu>UPYRF^W^yp97C>x#=%;T6b zgf3jsa9*uci64j-4NRn!@&Y~66UN1Cwr}y3%XUc7shFD#xcX^v#;c&b=+`QU_r6rZ zEhfiu=YHte#Zd2oSuxU!tMU+Kw)@KG3-^Rv3GXmQuEhasQ=>8tWRa0Z!*hZzLBVt=QRaGJVvKlztj|Vw$1nCOQOVk`$Cil19Lop4z?cH1>t5wC#!TOPM-y|E zuK~tT!>&n*^a9=xgR5$8!WcZ>=Yq16kGa#Oc-tJ6AtDbHX7>a=zI`J(-3OM$9o9G` zw`(@&wg=Q)FpJ;ofr&9}{V`N!|n=J#c(`|PO7d9ydf8ueP;*|}z+MuxD zr#TGwR3nD)8$*?|=p=4FqyW^i>}m^dZo-(kn1uru!D)skvFptc?0TqFCPT16yLQF2 zaC%2Ym08!=){Q@*2S3C1EMvV%NlbM3VoUVE#2E2lY?eSGa>Hhpm>et(PrPgP3utHp zEN+ye<~Ut|pQ;KP=Ex+40_CoU2SmB~ecIySy$JVkOK#NWCX7MLwal>A>@u!4szn2v zoqKxG41A9E#!hoWPec`lh6UP8x$H`Ag0i}8JuopwlBLM}Rx>iy1NA>qGgbsIxw4eT zzXt+?Ud3o9f^WiRTqj7<9hil|txgSdAPY$fvwMm-3EH^{V_aua7u}k}k2f1#6JCl* zTKE0jE9E7Q+^`G)v4-Mo?@C?DN{HxVKiVQs!1Mn%_FDgPiebJ;+k+N?gq^| z<1)u7BUhhsAi|pBqQx`P0~2G!Kxov}d)-y3i+{^k^9&-}#t}RSNPf9*qPu z%935oV>~b`Mm!G>s65yQQIN4rxaeRMT@a^VB;6>R{e2`t`ltD;xS1w5AOxb{Ny!*3 z>+2#l zWY*Oq1bbq_2qd#v!&h)x2<@V~9x&&zw#N+D+@chCU}B8;i4_)F0rKZ9VqS`#_hipJ zJM$T??3gDkWpfk8ScjJe9JkJ#Ho4gJNo?fVI2Y$j=ARfNnjZPa_$aY9-$Pg~niV(` z2qf(}Z%hW~$b|78C(d^Do|Qi-c1`RiJ_V=`D;NSB~z@8_}!^7C9NJ}3VI zOxYaIFU2oANfhw=v^S<%31dFTfs5d@^GEh12+gg0eXHjranUg5#)u_o-I#PxOk3X+ z)~CA0IRm<8jmUO+<{Q(LgwaODMXTVaC#OE)z?12Mi*uLwI!>l8hMC_#E7X3TIKOkg}WkM$y z0{2+pUkKW{F`{)GTwjR8Yo@9H@!EQ&sqti%tb3`%j&T0H5_2p|7=3=$dtW5wv>_3B z2>)cIK|f~g@Kp)>`ME~(+!*N(E7$i`QsSsRhGWJ$x2HHQkp~~Q;XIEOfgfZeey~Nl zTY%m>aQOn8h{$j3Ca1a-lqC#LuzIp+V~$>DV%COpeNWHps1Q**93cy_E&4`BTxBasva(K}DU_-V5Z^u=}^s0xxz2NBLJ(6B^aln2ri20J6a$$&#O z4r8)HK}V*ct54df_P9>249v|XT>#fHBiDOl_)iieo=evQY;oNAkKnvdWW{Qi;B)mr zdct5^G`CCMfOG>2y+WF-u)lUSz^;WZPwKTRa_oeANBrx_8L~g zObjvK)39dO*<)fLBBoc2BF=dRLp%trH|=K-%>h$b2{XXS#st5l0q2{c)jf#^R*X&( zh^{dBWsLRx^R9k=Hp*ARj0`3J+fZ=(NW05cx(8N_(tY*loY*DtA;{V*A3cu4@UMhf zt{&!r^BZci9G>2P_v;@%e*gZfZ@1QmuYdpaf4_hKo2NIg-o1Nz!=G25fA-lYpS}9c zE7IP6_UbbF>O0cjzWv0deetD3d-v{BhxW zyEk8a{-weE>AO$feERlY-)BGi{GG+}<>zm|{PJEO=KAK7PaQ08-hFBGy?OKbm!E%e zZ{zK!UwrZI^LyGSUw-lKi+dYyKKta&8#|9Le)Q>QU*7xl?VHa(`SeSL<>U8Xee+N6 zzkmAikDp%u;+y~Xev9SnpMUu9@fDa}{ru_m-+cF*53c|e?VtSQ>4%SBegE+i^|zmV S0$uN({^BqG=imLWr~eO;S3$G@ diff --git a/example/example_tank_stepresponse.pdf b/example/example_tank_stepresponse.pdf deleted file mode 100644 index dbfbe12010bcb20d87a0a128ad690b3a3b95d5cb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 486894 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%0DPPM*RACzvi)Z5V?lBq7 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 From c4c49fac23b361572833e53314ebad8dde28f960 Mon Sep 17 00:00:00 2001 From: Marcus Greiff Date: Mon, 4 Mar 2019 14:48:37 +0100 Subject: [PATCH 64/66] Change naming convention to be consistent with https://docs.julialang.org/en/v1/manual/style-guide/index.html --- example/hinf_example_DC.jl | 6 +-- example/hinf_example_DC_discrete.jl | 4 +- example/hinf_example_MIT.jl | 4 +- example/hinf_example_MIT_discrete.jl | 4 +- example/hinf_example_tank.jl | 4 +- example/hinf_example_tank_discrete.jl | 4 +- src/ControlSystems.jl | 5 +- src/hinfinity_design.jl | 48 +++++++++--------- test/test_hinf_design.jl | 70 +++++++++++++-------------- 9 files changed, 74 insertions(+), 75 deletions(-) diff --git a/example/hinf_example_DC.jl b/example/hinf_example_DC.jl index 14276834e..b20f3fc95 100644 --- a/example/hinf_example_DC.jl +++ b/example/hinf_example_DC.jl @@ -29,7 +29,7 @@ WT = [] P = hInf_partition(Gtrue, WS, WU, WT) # Check if the system is feasible for synythesis -flag = hInf_assumptions(P) +flag = hinfassumptions(P) # Since it is not, modify the plant desciption epsilon = 1e-5 @@ -39,10 +39,10 @@ G = tf([11.2], [1, 0.12]) * tf([1], [1, epsilon]) P = hInf_partition(G, WS, WU, WT) # Check if the problem is feasible -flag = hInf_assumptions(P) +flag = hinfassumptions(P) # Synthesize the H-infinity optimal controller -flag, C, gamma = hInf_synthesize(P) +flag, C, gamma = hinfsynthesize(P) # Extract the transfer functions defining some signals of interest Pcl, S, CS, T = hInf_signals(P, G, C) diff --git a/example/hinf_example_DC_discrete.jl b/example/hinf_example_DC_discrete.jl index 54d37f7ee..e91919e07 100644 --- a/example/hinf_example_DC_discrete.jl +++ b/example/hinf_example_DC_discrete.jl @@ -34,10 +34,10 @@ Gc = hInf_bilinear_z2s(ss(Gd)) Pc = hInf_partition(Gc, WS, WU, WT) # Check if the problem is feasible -flag = hInf_assumptions(Pc) +flag = hinfassumptions(Pc) # Synthesize the H-infinity optimal controller -flag, Cc, gamma = hInf_synthesize(Pc) +flag, Cc, gamma = hinfsynthesize(Pc) # Extract the transfer functions defining some signals of interest, but do so # using discrete equivalent of the continuous time objects Pc, Cc and Gc diff --git a/example/hinf_example_MIT.jl b/example/hinf_example_MIT.jl index 85232ba66..5a9e356ab 100644 --- a/example/hinf_example_MIT.jl +++ b/example/hinf_example_MIT.jl @@ -33,10 +33,10 @@ WT = [] P = hInf_partition(G, WS, WU, WT) # Check that the assumptions are satisfied -flag = hInf_assumptions(P) +flag = hinfassumptions(P) # Synthesize the H-infinity optimal controller -flag, C, gamma = hInf_synthesize(P) +flag, C, gamma = hinfsynthesize(P) # Extract the transfer functions defining some signals of interest Pcl, S, CS, T = hInf_signals(P, G, C) diff --git a/example/hinf_example_MIT_discrete.jl b/example/hinf_example_MIT_discrete.jl index b3ca1ecb1..41c7c50fe 100644 --- a/example/hinf_example_MIT_discrete.jl +++ b/example/hinf_example_MIT_discrete.jl @@ -35,10 +35,10 @@ Gc = hInf_bilinear_z2s(ss(Gd)) Pc = hInf_partition(Gc, WS, WU, WT) # Check that the assumptions are satisfied -flag = hInf_assumptions(Pc) +flag = hinfassumptions(Pc) # Synthesize the H-infinity optimal controller -flag, Cc, gamma = hInf_synthesize(Pc) +flag, Cc, gamma = hinfsynthesize(Pc) # Extract the transfer functions defining some signals of interest, but do so # using discrete equivalent of the continuous time objects Pc, Cc and Gc diff --git a/example/hinf_example_tank.jl b/example/hinf_example_tank.jl index d5c049296..b07c53dbb 100644 --- a/example/hinf_example_tank.jl +++ b/example/hinf_example_tank.jl @@ -58,10 +58,10 @@ iWT = [iWTelement 0; 0 iWTelement] P = hInf_partition(G, WS, WU, WT) # Check that the assumptions are satisfied -flag = hInf_assumptions(P) +flag = hinfassumptions(P) # Synthesize the H-infinity optimal controller -flag, C, gamma = hInf_synthesize(P) +flag, C, gamma = hinfsynthesize(P) Pcl, S, CS, T = hInf_signals(P, G, C) diff --git a/example/hinf_example_tank_discrete.jl b/example/hinf_example_tank_discrete.jl index c01adfb0a..edef3e495 100644 --- a/example/hinf_example_tank_discrete.jl +++ b/example/hinf_example_tank_discrete.jl @@ -64,10 +64,10 @@ Gc = hInf_bilinear_z2s(Gd) Pc = hInf_partition(Gc, WS, WU, WT) # Check if the problem is feasible -flag = hInf_assumptions(Pc) +flag = hinfassumptions(Pc) # Synthesize the H-infinity optimal controller -flag, Cc, gamma = hInf_synthesize(Pc) +flag, Cc, gamma = hinfsynthesize(Pc) # Extract the transfer functions defining some signals of interest Pcl, S, CS, T = hInf_signals(Pc, Gc, Cc) diff --git a/src/ControlSystems.jl b/src/ControlSystems.jl index 57ad281d1..e0558c270 100644 --- a/src/ControlSystems.jl +++ b/src/ControlSystems.jl @@ -74,9 +74,8 @@ export LTISystem, numpoly, denpoly, # Hinfinity design - hInf_synthesize, - hInf_assumptions, - hInf_visualize, + hinfsynthesize, + hinfassumptions, hInf_partition, hInf_signals, hInf_bilinear_s2z, diff --git a/src/hinfinity_design.jl b/src/hinfinity_design.jl index 8bf8ac598..b92e1cc0c 100644 --- a/src/hinfinity_design.jl +++ b/src/hinfinity_design.jl @@ -16,25 +16,25 @@ in docstrings and comments are to the version of the paper given below: """ -"""`[flag] = function hInf_assumptions(P::ExtendedStateSpace; verbose=true)` +"""`[flag] = function hinfassumptions(P::ExtendedStateSpace; verbose=true)` Check the assumptions for using the γ-iteration synthesis in Theorem 1. In future revisions, we could suggest possible changes to P should the system not be feasible for synthesis. However, this has not been too successful so far..! """ -function hInf_assumptions(P::ExtendedStateSpace; verbose=true) +function hinfassumptions(P::ExtendedStateSpace; verbose=true) A, B1, B2, C1, C2, D11, D12, D21, D22 = ssdata(P) # Check assumption A1 - if !_is_stabilizable(A, B2) + if !_stabilizable(A, B2) if verbose println("Warning, the system A is not stabilizable through B2, ", "violation of assumption A1.") end return false end - if !_is_detectable(A, C2) + if !_detectable(A, C2) if verbose println("Warning, the system A is not detectable through C2, ", "violation of assumption A1.") @@ -80,11 +80,11 @@ function hInf_assumptions(P::ExtendedStateSpace; verbose=true) return true end -"""`[flag] = _is_stabilizable(A::AbstractMatrix, B::AbstractMatrix)` +"""`[flag] = _stabilizable(A::AbstractMatrix, B::AbstractMatrix)` Applies the Hautus lemma to check if the pair is stabilizable """ -function _is_stabilizable(A::AbstractMatrix, B::AbstractMatrix) +function _stabilizable(A::AbstractMatrix, B::AbstractMatrix) eigValsA = eigvals(A) for ii = 1:length(eigValsA) if real(eigValsA[ii])>= 0 @@ -96,11 +96,11 @@ function _is_stabilizable(A::AbstractMatrix, B::AbstractMatrix) return true end -"""`[flag] = _is_stabilizable(A::AbstractMatrix, C::AbstractMatrix)` +"""`[flag] = _detectable(A::AbstractMatrix, C::AbstractMatrix)` Applies the Hautus lemma to check if the pair is detectable """ -function _is_detectable(A::AbstractMatrix, C::AbstractMatrix) +function _detectable(A::AbstractMatrix, C::AbstractMatrix) eigValsA = eigvals(A) for ii = 1:length(eigValsA) if real(eigValsA[ii])>= 0 @@ -112,7 +112,7 @@ function _is_detectable(A::AbstractMatrix, C::AbstractMatrix) return true end -"""`[flag, K, gamma] = hInf_synthesize(P::ExtendedStateSpace; maxIter=20, interval=(2/3,20), verbose=true)` +"""`[flag, K, gamma] = hinfsynthesize(P::ExtendedStateSpace; maxIter=20, interval=(2/3,20), verbose=true)` Computes an H-infinity optimal controller K for an extended plant P such that ||F_l(P, K)||∞ < γ for the largest possible gamma given P. The routine is @@ -120,17 +120,17 @@ known as the γ-iteration, and is based on the paper "State-space formulae for all stabilizing controllers that satisfy an H∞-norm bound and relations to risk sensitivity" by Glover and Doyle. See the Bib-entry below [1] above. """ -function hInf_synthesize(P::ExtendedStateSpace; maxIter=20, interval=(2/3,20), verbose=true, tolerance=1e-10) +function hinfsynthesize(P::ExtendedStateSpace; maxIter=20, interval=(2/3,20), verbose=true, tolerance=1e-10) # Transform the system into a suitable form - Pbar, Ltrans12, Rtrans12, Ltrans21, Rtrans21 = _transformP2Pbar(P) + Pbar, Ltrans12, Rtrans12, Ltrans21, Rtrans21 = _transformp2pbar(P) # Run the gamma iterations - XinfFeasible, YinfFeasible, FinfFeasible, HinfFeasible, gammFeasible = _gammaIterations(Pbar, maxIter, interval, verbose, tolerance) + XinfFeasible, YinfFeasible, FinfFeasible, HinfFeasible, gammFeasible = _gammaiterations(Pbar, maxIter, interval, verbose, tolerance) if !isempty(gammFeasible) # Synthesize the controller and trnasform it back into the original coordinates - Ac, Bc, Cc, Dc = _synthesizeController(Pbar, XinfFeasible, YinfFeasible, FinfFeasible, HinfFeasible, gammFeasible, Ltrans12, Rtrans12, Ltrans21, Rtrans21) + Ac, Bc, Cc, Dc = _synthesizecontroller(Pbar, XinfFeasible, YinfFeasible, FinfFeasible, HinfFeasible, gammFeasible, Ltrans12, Rtrans12, Ltrans21, Rtrans21) # Return the controller, the optimal gain γ, and a true flag C = ss(Ac, Bc, Cc, Dc) @@ -145,7 +145,7 @@ function hInf_synthesize(P::ExtendedStateSpace; maxIter=20, interval=(2/3,20), v return flag, C, gammFeasible end -"""`[Ac, Bc Cc, Dc] = hInfSynthesizeController(P::ExtendedStateSpace, Xinf, Yinf, F, H, gamma, Ltrans12, Rtrans12, Ltrans21, Rtrans21)` +"""`[Ac, Bc Cc, Dc] = _synthesizecontroller(P::ExtendedStateSpace, Xinf, Yinf, F, H, gamma, Ltrans12, Rtrans12, Ltrans21, Rtrans21)` Syntheize a controller by operating on the scaled state-space description of the system (i.e., the state-space realization of Pbar) using the solutions from the @@ -153,7 +153,7 @@ system (i.e., the state-space realization of Pbar) using the solutions from the transformed back to the original coordinates by the linear transformations Ltrans12, Rtrans12, Ltrans21 and Rtrans21. """ -function _synthesizeController(P::ExtendedStateSpace, Xinf::AbstractMatrix, Yinf::AbstractMatrix, F::AbstractMatrix, H::AbstractMatrix, gamma::Number, Ltrans12::AbstractMatrix, Rtrans12::AbstractMatrix, Ltrans21::AbstractMatrix, Rtrans21::AbstractMatrix) +function _synthesizecontroller(P::ExtendedStateSpace, Xinf::AbstractMatrix, Yinf::AbstractMatrix, F::AbstractMatrix, H::AbstractMatrix, gamma::Number, Ltrans12::AbstractMatrix, Rtrans12::AbstractMatrix, Ltrans21::AbstractMatrix, Rtrans21::AbstractMatrix) A = P.A B1 = P.B1 @@ -258,12 +258,12 @@ function _assert_real_and_PSD(A::AbstractMatrix; msg="") end end -"""`[flag] = _checkFeasibility(Xinf, Yinf, gamma, tolerance, iteration; verbose=true)` +"""`[flag] = _checkfeasibility(Xinf, Yinf, gamma, tolerance, iteration; verbose=true)` Check the feasibility of the computed solutions Xinf, Yinf and the algebraic Riccatti equations, return true if the solution is valid, and false otherwise. """ -function _checkFeasibility(Xinf::AbstractMatrix, Yinf::AbstractMatrix, gamma::Number, tolerance::Number, iteration::Number; verbose=true) +function _checkfeasibility(Xinf::AbstractMatrix, Yinf::AbstractMatrix, gamma::Number, tolerance::Number, iteration::Number; verbose=true) minXev = minimum(real(eigvals(Xinf))) minYev = minimum(real(eigvals(Yinf))) @@ -319,11 +319,11 @@ function _solveHamiltonianARE(H::Any) return U21/U11 end -"""`[solution] = _solveMatrixEquations(P::ExtendedStateSpace, gamma::Number)` +"""`[solution] = _solvematrixequations(P::ExtendedStateSpace, gamma::Number)` Solves the dual matrix equations in the γ-iterations (equations 7-12 in Doyle). """ -function _solveMatrixEquations(P::ExtendedStateSpace, gamma::Number) +function _solvematrixequations(P::ExtendedStateSpace, gamma::Number) A = P.A B1 = P.B1 @@ -370,7 +370,7 @@ function _solveMatrixEquations(P::ExtendedStateSpace, gamma::Number) return Xinf, Yinf, F, H end -"""`[flag]=_gammaIterations(A, B1, B2, C1, C2, D11, D12, D21, D22, maxIter, interval, verbose, tolerance)` +"""`[flag]=_gammaiterations(A, B1, B2, C1, C2, D11, D12, D21, D22, maxIter, interval, verbose, tolerance)` Rune the complete set of γ-iterations over a specified search interval with a set number of iterations. It is possible to break the algorithm if the number @@ -380,7 +380,7 @@ terminates without a solution if the maximum possible gamma on the defined interval is infeasible. Here we could consider increasing the bounds somewhat and warn the user if this occurrs. """ -function _gammaIterations(P::ExtendedStateSpace, maxIter::Number, interval::Tuple, verbose::Bool, tolerance::Number) +function _gammaiterations(P::ExtendedStateSpace, maxIter::Number, interval::Tuple, verbose::Bool, tolerance::Number) XinfFeasible, YinfFeasible, FinfFeasible, HinfFeasible, gammFeasible = [],[],[],[],[] @@ -389,10 +389,10 @@ function _gammaIterations(P::ExtendedStateSpace, maxIter::Number, interval::Tupl for iteration = 1:maxIter # Solve the matrix equations - Xinf, Yinf, F, H = _solveMatrixEquations(P, gamma) + Xinf, Yinf, F, H = _solvematrixequations(P, gamma) # Check Feasibility - isFeasible = _checkFeasibility(Xinf, Yinf, gamma, tolerance, iteration; verbose=verbose) + isFeasible = _checkfeasibility(Xinf, Yinf, gamma, tolerance, iteration; verbose=verbose) if isFeasible XinfFeasible = Xinf @@ -416,7 +416,7 @@ end Transform the original system P to a new system Pbar, in which D12bar = [0; I] and D21bar = [0 I] in order to satisfy the feasibility assumption A3 (see Doyle) """ -function _transformP2Pbar(P::ExtendedStateSpace) +function _transformp2pbar(P::ExtendedStateSpace) # Compute the transformation Ltrans12, Rtrans12 = _scaleMatrix(P.D12) diff --git a/test/test_hinf_design.jl b/test/test_hinf_design.jl index f4bcefcb6..01c045e6e 100644 --- a/test/test_hinf_design.jl +++ b/test/test_hinf_design.jl @@ -32,21 +32,21 @@ execute_tests = [true,true,true,true,true,true,true,true,true] extensively with detailed comments for each test-set, and below is a list of all the functions tested in this unit test - hInf_synthesize - hInf_assumptions + hinfsynthesize + hinfassumptions hInf_bilinear_z2s hInf_bilinear_s2z hInf_signals hInf_partition _is_detectable _is_stabilizable - _synthesizeController + _synthesizecontroller _assert_real_and_PSD - _checkFeasibility + _checkfeasibility _solveHamiltonianARE - _solveMatrixEquations + _solvematrixequations _gammaIterations - _transformP2Pbar + _transformp2pbar _scaleMatrix _convert_input_to_ss _computeCoordinateTransformSVD @@ -231,9 +231,9 @@ execute_tests = [true,true,true,true,true,true,true,true,true] Ahat = A - E[ii]*Matrix{Float64}(I, N, N); B = Ahat[:,jj:(jj+M)] if E[ii] >= 0 - @test !ControlSystems._is_stabilizable(A,B) + @test !ControlSystems._stabilizable(A,B) else - @test ControlSystems._is_stabilizable(A,B) + @test ControlSystems._stabilizable(A,B) end end end @@ -243,14 +243,14 @@ execute_tests = [true,true,true,true,true,true,true,true,true] N = 10; M = 5; A = rand(Float64, (N,N)); B = rand(Float64, (N,M)); - @test_throws MethodError ControlSystems._is_detectable(A,nothing) - @test_throws MethodError ControlSystems._is_detectable(nothing,B) - @test_throws MethodError ControlSystems._is_detectable(A,[]) - @test_throws MethodError ControlSystems._is_detectable([],B) - @test_throws MethodError ControlSystems._is_detectable(A,ss(1)) - @test_throws MethodError ControlSystems._is_detectable(ss(1),B) - @test_throws MethodError ControlSystems._is_detectable(A,tf(1)) - @test_throws MethodError ControlSystems._is_detectable(tf(1),B) + @test_throws MethodError ControlSystems._stabilizable(A,nothing) + @test_throws MethodError ControlSystems._stabilizable(nothing,B) + @test_throws MethodError ControlSystems._stabilizable(A,[]) + @test_throws MethodError ControlSystems._stabilizable([],B) + @test_throws MethodError ControlSystems._stabilizable(A,ss(1)) + @test_throws MethodError ControlSystems._stabilizable(ss(1),B) + @test_throws MethodError ControlSystems._stabilizable(A,tf(1)) + @test_throws MethodError ControlSystems._stabilizable(tf(1),B) end @testset "Detectability check" begin @@ -274,9 +274,9 @@ execute_tests = [true,true,true,true,true,true,true,true,true] Ahat = A - E[ii]*Matrix{Float64}(I, N, N); C = Ahat[jj:(jj+M),:] if E[ii] >= 0 - @test !ControlSystems._is_detectable(A,C) + @test !ControlSystems._detectable(A,C) else - @test ControlSystems._is_detectable(A,C) + @test ControlSystems._detectable(A,C) end end end @@ -286,14 +286,14 @@ execute_tests = [true,true,true,true,true,true,true,true,true] N = 10; M = 5; A = rand(Float64, (M,M)); C = rand(Float64, (N,M)); - @test_throws MethodError ControlSystems._is_detectable(A,nothing) - @test_throws MethodError ControlSystems._is_detectable(nothing,C) - @test_throws MethodError ControlSystems._is_detectable(A,[]) - @test_throws MethodError ControlSystems._is_detectable([],C) - @test_throws MethodError ControlSystems._is_detectable(A,ss(1)) - @test_throws MethodError ControlSystems._is_detectable(ss(1),C) - @test_throws MethodError ControlSystems._is_detectable(A,tf(1)) - @test_throws MethodError ControlSystems._is_detectable(tf(1),C) + @test_throws MethodError ControlSystems._detectable(A,nothing) + @test_throws MethodError ControlSystems._detectable(nothing,C) + @test_throws MethodError ControlSystems._detectable(A,[]) + @test_throws MethodError ControlSystems._detectable([],C) + @test_throws MethodError ControlSystems._detectable(A,ss(1)) + @test_throws MethodError ControlSystems._detectable(ss(1),C) + @test_throws MethodError ControlSystems._detectable(A,tf(1)) + @test_throws MethodError ControlSystems._detectable(tf(1),C) end # TODO: write tests using the above submethods directly in hInf_assumptions @@ -455,9 +455,9 @@ execute_tests = [true,true,true,true,true,true,true,true,true] # γ = sqrt(ρX*ρY) + ϵ # # with any epsilon greater than or equal to zero. - @test !ControlSystems._checkFeasibility(Xinf, Yinf, sqrt(ρX*ρY)-tolerance, tolerance, iteration; verbose=false) - @test !ControlSystems._checkFeasibility(Xinf, Yinf, sqrt(ρX*ρY), tolerance, iteration; verbose=false) - @test ControlSystems._checkFeasibility(Xinf, Yinf, sqrt(ρX*ρY)+tolerance, tolerance, iteration; verbose=false) + @test !ControlSystems._checkfeasibility(Xinf, Yinf, sqrt(ρX*ρY)-tolerance, tolerance, iteration; verbose=false) + @test !ControlSystems._checkfeasibility(Xinf, Yinf, sqrt(ρX*ρY), tolerance, iteration; verbose=false) + @test ControlSystems._checkfeasibility(Xinf, Yinf, sqrt(ρX*ρY)+tolerance, tolerance, iteration; verbose=false) # Test that errors are thrown if the matrix Xinf and Yinf are not PSD down # to the numerical tolerance. @@ -465,17 +465,17 @@ execute_tests = [true,true,true,true,true,true,true,true,true] L[1] += -L[1] + 2*tolerance; Xpos = Q*Diagonal(L)*Q'; # slightly positive eigenvalue L[1] += -L[1]; Xzero = Q*Diagonal(LX)*Q'; # exactly one zero eigenvalue L[1] += -L[1] - 2*tolerance; Xneg = Q*Diagonal(L)*Q'; # slightly negative eigenvalue - @test ControlSystems._checkFeasibility(Xpos, Yinf, sqrt(ρX*ρY)+tolerance, tolerance, iteration; verbose=false) - @test ControlSystems._checkFeasibility(Xzero, Yinf, sqrt(ρX*ρY)+tolerance, tolerance, iteration; verbose=false) - @test !ControlSystems._checkFeasibility(Xneg, Yinf, sqrt(ρX*ρY)+tolerance, tolerance, iteration; verbose=false) + @test ControlSystems._checkfeasibility(Xpos, Yinf, sqrt(ρX*ρY)+tolerance, tolerance, iteration; verbose=false) + @test ControlSystems._checkfeasibility(Xzero, Yinf, sqrt(ρX*ρY)+tolerance, tolerance, iteration; verbose=false) + @test !ControlSystems._checkfeasibility(Xneg, Yinf, sqrt(ρX*ρY)+tolerance, tolerance, iteration; verbose=false) L = LY; L[1] += -L[1] + 2*tolerance; Ypos = Q*Diagonal(L)*Q'; # slightly positive eigenvalue L[1] += -L[1]; Yzero = Q*Diagonal(L)*Q'; # exactly one zero eigenvalue L[1] += -L[1] - 2*tolerance; Yneg = Q*Diagonal(L)*Q'; # slightly negative eigenvalue - @test ControlSystems._checkFeasibility(Xinf, Ypos, sqrt(ρX*ρY)+tolerance, tolerance, iteration; verbose=false) - @test ControlSystems._checkFeasibility(Xinf, Yzero, sqrt(ρX*ρY)+tolerance, tolerance, iteration; verbose=false) - @test !ControlSystems._checkFeasibility(Xinf, Yneg, sqrt(ρX*ρY)+tolerance, tolerance, iteration; verbose=false) + @test ControlSystems._checkfeasibility(Xinf, Ypos, sqrt(ρX*ρY)+tolerance, tolerance, iteration; verbose=false) + @test ControlSystems._checkfeasibility(Xinf, Yzero, sqrt(ρX*ρY)+tolerance, tolerance, iteration; verbose=false) + @test !ControlSystems._checkfeasibility(Xinf, Yneg, sqrt(ρX*ρY)+tolerance, tolerance, iteration; verbose=false) end # TODO: Include a check to verify that the bisection works as intended. From f1569c29197a5877e5d1c24a36412f23625a5e6e Mon Sep 17 00:00:00 2001 From: Marcus Greiff Date: Mon, 4 Mar 2019 14:58:39 +0100 Subject: [PATCH 65/66] Change naming convention to be consistent with https://docs.julialang.org/en/v1/manual/style-guide/index.html --- example/hinf_example_DC.jl | 6 ++--- example/hinf_example_DC_discrete.jl | 4 +-- example/hinf_example_MIT.jl | 4 +-- example/hinf_example_MIT_discrete.jl | 4 +-- example/hinf_example_tank.jl | 4 +-- example/hinf_example_tank_discrete.jl | 4 +-- src/ControlSystems.jl | 4 +-- src/hinfinity_design.jl | 36 +++++++++++++-------------- test/test_hinf_design.jl | 36 +++++++++++++-------------- 9 files changed, 51 insertions(+), 51 deletions(-) diff --git a/example/hinf_example_DC.jl b/example/hinf_example_DC.jl index b20f3fc95..92cda95e6 100644 --- a/example/hinf_example_DC.jl +++ b/example/hinf_example_DC.jl @@ -26,7 +26,7 @@ WU = ss(1) WT = [] # Form the P in the LFT F_l(P,C) as a partitioned state-space object -P = hInf_partition(Gtrue, WS, WU, WT) +P = hinfpartition(Gtrue, WS, WU, WT) # Check if the system is feasible for synythesis flag = hinfassumptions(P) @@ -36,7 +36,7 @@ epsilon = 1e-5 G = tf([11.2], [1, 0.12]) * tf([1], [1, epsilon]) # Form the P in the LFT Fl(P,C) as a partitioned state-space object -P = hInf_partition(G, WS, WU, WT) +P = hinfpartition(G, WS, WU, WT) # Check if the problem is feasible flag = hinfassumptions(P) @@ -45,7 +45,7 @@ flag = hinfassumptions(P) flag, C, gamma = hinfsynthesize(P) # Extract the transfer functions defining some signals of interest -Pcl, S, CS, T = hInf_signals(P, G, C) +Pcl, S, CS, T = hinfsignals(P, G, C) ## Plot the specifications if MakePlots diff --git a/example/hinf_example_DC_discrete.jl b/example/hinf_example_DC_discrete.jl index e91919e07..318345c35 100644 --- a/example/hinf_example_DC_discrete.jl +++ b/example/hinf_example_DC_discrete.jl @@ -31,7 +31,7 @@ WT = [] Gc = hInf_bilinear_z2s(ss(Gd)) # Form the P in the LFT Fl(P,C) as a partitioned state-space object -Pc = hInf_partition(Gc, WS, WU, WT) +Pc = hinfpartition(Gc, WS, WU, WT) # Check if the problem is feasible flag = hinfassumptions(Pc) @@ -41,7 +41,7 @@ flag, Cc, gamma = hinfsynthesize(Pc) # Extract the transfer functions defining some signals of interest, but do so # using discrete equivalent of the continuous time objects Pc, Cc and Gc -PclD, SD, CSD, TD = hInf_signals( +PclD, SD, CSD, TD = hinfsignals( hInf_bilinear_s2z(Pc, ts), hInf_bilinear_s2z(Gc, ts), hInf_bilinear_s2z(Cc, ts) diff --git a/example/hinf_example_MIT.jl b/example/hinf_example_MIT.jl index 5a9e356ab..ab9df2f9c 100644 --- a/example/hinf_example_MIT.jl +++ b/example/hinf_example_MIT.jl @@ -30,7 +30,7 @@ WU = ss(0.1) WT = [] # Form augmented P dynamics in state-space -P = hInf_partition(G, WS, WU, WT) +P = hinfpartition(G, WS, WU, WT) # Check that the assumptions are satisfied flag = hinfassumptions(P) @@ -39,7 +39,7 @@ flag = hinfassumptions(P) flag, C, gamma = hinfsynthesize(P) # Extract the transfer functions defining some signals of interest -Pcl, S, CS, T = hInf_signals(P, G, C) +Pcl, S, CS, T = hinfsignals(P, G, C) ## Plot the specifications if MakePlots diff --git a/example/hinf_example_MIT_discrete.jl b/example/hinf_example_MIT_discrete.jl index 41c7c50fe..ff7045a37 100644 --- a/example/hinf_example_MIT_discrete.jl +++ b/example/hinf_example_MIT_discrete.jl @@ -32,7 +32,7 @@ WT = [] Gc = hInf_bilinear_z2s(ss(Gd)) # Form augmented P dynamics in state-space -Pc = hInf_partition(Gc, WS, WU, WT) +Pc = hinfpartition(Gc, WS, WU, WT) # Check that the assumptions are satisfied flag = hinfassumptions(Pc) @@ -42,7 +42,7 @@ flag, Cc, gamma = hinfsynthesize(Pc) # Extract the transfer functions defining some signals of interest, but do so # using discrete equivalent of the continuous time objects Pc, Cc and Gc -PclD, SD, CSD, TD = hInf_signals( +PclD, SD, CSD, TD = hinfsignals( hInf_bilinear_s2z(Pc, ts), hInf_bilinear_s2z(Gc, ts), hInf_bilinear_s2z(Cc, ts) diff --git a/example/hinf_example_tank.jl b/example/hinf_example_tank.jl index b07c53dbb..1152bb602 100644 --- a/example/hinf_example_tank.jl +++ b/example/hinf_example_tank.jl @@ -55,7 +55,7 @@ iWTelement = 1/WTelement iWT = [iWTelement 0; 0 iWTelement] # Form augmented P dynamics in state-space -P = hInf_partition(G, WS, WU, WT) +P = hinfpartition(G, WS, WU, WT) # Check that the assumptions are satisfied flag = hinfassumptions(P) @@ -63,7 +63,7 @@ flag = hinfassumptions(P) # Synthesize the H-infinity optimal controller flag, C, gamma = hinfsynthesize(P) -Pcl, S, CS, T = hInf_signals(P, G, C) +Pcl, S, CS, T = hinfsignals(P, G, C) ## Plot the specifications # TODO figure out why I get segmentation errors when using ss instead of tf for diff --git a/example/hinf_example_tank_discrete.jl b/example/hinf_example_tank_discrete.jl index edef3e495..d13e3cb4c 100644 --- a/example/hinf_example_tank_discrete.jl +++ b/example/hinf_example_tank_discrete.jl @@ -61,7 +61,7 @@ Gc = hInf_bilinear_z2s(Gd) #Gc = ss(A,B,C,D) # Form the P in the LFT Fl(P,C) as a partitioned state-space object -Pc = hInf_partition(Gc, WS, WU, WT) +Pc = hinfpartition(Gc, WS, WU, WT) # Check if the problem is feasible flag = hinfassumptions(Pc) @@ -70,7 +70,7 @@ flag = hinfassumptions(Pc) flag, Cc, gamma = hinfsynthesize(Pc) # Extract the transfer functions defining some signals of interest -Pcl, S, CS, T = hInf_signals(Pc, Gc, Cc) +Pcl, S, CS, T = hinfsignals(Pc, Gc, Cc) Pcl = hInf_bilinear_s2z(Pcl, ts) S = hInf_bilinear_s2z(S, ts) diff --git a/src/ControlSystems.jl b/src/ControlSystems.jl index e0558c270..f6731864a 100644 --- a/src/ControlSystems.jl +++ b/src/ControlSystems.jl @@ -76,8 +76,8 @@ export LTISystem, # Hinfinity design hinfsynthesize, hinfassumptions, - hInf_partition, - hInf_signals, + hinfpartition, + hinfsignals, hInf_bilinear_s2z, hInf_bilinear_z2s diff --git a/src/hinfinity_design.jl b/src/hinfinity_design.jl index b92e1cc0c..aae6182b1 100644 --- a/src/hinfinity_design.jl +++ b/src/hinfinity_design.jl @@ -197,12 +197,12 @@ function _synthesizecontroller(P::ExtendedStateSpace, Xinf::AbstractMatrix, Yinf # Equation 20 D12hatD12hat = I - (D1121 / (gSq * I - D1111' * D1111)) * D1121' - _assert_real_and_PSD(D12hatD12hat; msg=" in equation (20)") + _assertrealandpsd(D12hatD12hat; msg=" in equation (20)") D12hat = cholesky(D12hatD12hat).L # Equation 21 D21hatD21hat = I - (D1112' / (gSq * I - D1111 * D1111')) * D1112 - _assert_real_and_PSD(D21hatD21hat; msg=" in equation (21)") + _assertrealandpsd(D21hatD21hat; msg=" in equation (21)") D21hat = cholesky(D21hatD21hat).U # Equation 27 @@ -245,11 +245,11 @@ function _synthesizecontroller(P::ExtendedStateSpace, Xinf::AbstractMatrix, Yinf return Acontroller, Bcontroller[:,1:P2], Ccontroller[1:M2,:], Dcontroller[1:M2,1:P2] end -"""_assert_real_and_PSD(A::AbstractMatrix, msg::AbstractString) +"""_assertrealandpsd(A::AbstractMatrix, msg::AbstractString) Check that a matrix is real and PSD - throw an error otherwise. """ -function _assert_real_and_PSD(A::AbstractMatrix; msg="") +function _assertrealandpsd(A::AbstractMatrix; msg="") if any(real(eigvals(A)).<=0) error(ErrorException(string("The matrix", msg," is not PSD."))) end @@ -291,7 +291,7 @@ function _checkfeasibility(Xinf::AbstractMatrix, Yinf::AbstractMatrix, gamma::Nu return true end -"""`[solution] = _solveHamiltonianARE(H)` +"""`[solution] = _solvehamiltonianare(H)` Solves a hamiltonian Alebraic Riccati equation using the Schur-decomposition, for additional details, see @@ -307,7 +307,7 @@ for additional details, see publisher={IEEE} } """ -function _solveHamiltonianARE(H::Any) +function _solvehamiltonianare(H::Any) S = schur(H) S = ordschur(S, real(S.values).<0) @@ -358,8 +358,8 @@ function _solvematrixequations(P::ExtendedStateSpace, gamma::Number) HY = [A' zeros(size(A)); -B1*B1' -A] - ([C';-B1*Ddot1']/Rbar)*[Ddot1*B1' C]; # Solve matrix equations - Xinf = _solveHamiltonianARE(HX) - Yinf = _solveHamiltonianARE(HY) + Xinf = _solvehamiltonianare(HX) + Yinf = _solvehamiltonianare(HY) # Equation (11) F = - R \ (D1dot'*C1+B'*Xinf) @@ -419,8 +419,8 @@ and D21bar = [0 I] in order to satisfy the feasibility assumption A3 (see Doyle) function _transformp2pbar(P::ExtendedStateSpace) # Compute the transformation - Ltrans12, Rtrans12 = _scaleMatrix(P.D12) - Ltrans21, Rtrans21 = _scaleMatrix(P.D21) + Ltrans12, Rtrans12 = _scalematrix(P.D12) + Ltrans21, Rtrans21 = _scalematrix(P.D21) # Transform the system Abar = P.A @@ -437,12 +437,12 @@ function _transformp2pbar(P::ExtendedStateSpace) return Pbar, Ltrans12, Rtrans12, Ltrans21, Rtrans21 end -"""`[Tl, Tr] = _scaleMatrix(A::AbstractMatrix; method::String)` +"""`[Tl, Tr] = _scalematrix(A::AbstractMatrix; method::String)` Find a left and right transform of A such that Tl*A*Tr = [I, 0], or Tl*A*Tr = [I; 0], depending on the dimensionality of A. """ -function _scaleMatrix(A::AbstractMatrix; method="QR"::String) +function _scalematrix(A::AbstractMatrix; method="QR"::String) # Check the rank condition if (minimum(size(A)) > 0) if rank(A) != minimum(size(A)) @@ -454,9 +454,9 @@ function _scaleMatrix(A::AbstractMatrix; method="QR"::String) # Perform scaling with the cosen method if method == "QR" - return _computeCoordinateTransformQR(A) + return _coordinatetransformqr(A) elseif method == "SVD" - return _computeCoordinateTransformSVD(A) + return _coordinatetransformsvd(A) else error(ErrorException(string("The method", method," is not supported, use 'QR' or 'SVD' instad."))) end @@ -467,7 +467,7 @@ end Use the QR decomposition to find a transformaiton [Tl, Tr] such that Tl*A*Tr becomes [0;I], [0 I] or I depending on the dimensionality of A. """ -function _computeCoordinateTransformQR(A::AbstractMatrix) +function _coordinatetransformqr(A::AbstractMatrix) m, n = size(A) if m == n # Square matrix with full rank @@ -493,7 +493,7 @@ end Use the SVD to find a transformaiton [Tl, Tr] such that Tl*A*Tr becomes [0;I], [0 I] or I depending on the dimensionality of A. """ -function _computeCoordinateTransformSVD(A::AbstractMatrix) +function _coordinatetransformsvd(A::AbstractMatrix) m, n = size(A) if m == n # Square matrix with full rank @@ -527,7 +527,7 @@ can be both MIMO and SISO, both in tf and ss forms). Valid inputs for the weighting functions are empty entries, numbers (static gains), and transfer fucntion objects on a the trasfer function or the state-space form. """ -function hInf_partition(G::Any, WS::Any, WU::Any, WT::Any) +function hinfpartition(G::Any, WS::Any, WU::Any, WT::Any) # Convert the systems into state-space form Ag, Bg, Cg, Dg = _convert_input_to_ss(G) Asw, Bsw, Csw, Dsw = _convert_input_to_ss(WS) @@ -645,7 +645,7 @@ the closed loop transfer functions operating solely on the state-space. CS : w → u : From input to control T : w → y : From input to output """ -function hInf_signals(P::ExtendedStateSpace, G::LTISystem, C::LTISystem) +function hinfsignals(P::ExtendedStateSpace, G::LTISystem, C::LTISystem) A, B1, B2, C1, C2, D11, D12, D21, D22 = ssdata(P) Ag, Bg, Cg, Dg = ssdata(ss(G)) diff --git a/test/test_hinf_design.jl b/test/test_hinf_design.jl index 01c045e6e..510f1f14c 100644 --- a/test/test_hinf_design.jl +++ b/test/test_hinf_design.jl @@ -36,21 +36,21 @@ execute_tests = [true,true,true,true,true,true,true,true,true] hinfassumptions hInf_bilinear_z2s hInf_bilinear_s2z - hInf_signals - hInf_partition + hinfsignals + hinfpartition _is_detectable _is_stabilizable _synthesizecontroller - _assert_real_and_PSD + _assertrealandpsd _checkfeasibility - _solveHamiltonianARE + _solvehamiltonianare _solvematrixequations _gammaIterations _transformp2pbar - _scaleMatrix + _scalematrix _convert_input_to_ss - _computeCoordinateTransformSVD - _computeCoordinateTransformQR + _coordinateTtansformqr + _coordinateTtansformsvd """ @@ -333,7 +333,7 @@ execute_tests = [true,true,true,true,true,true,true,true,true] Z_mat = zeros(Float64, (min(M,N), max(M,N)-min(M,N))) A_bar_true = [Z_mat I_mat] end - Tl,Tr = ControlSystems._computeCoordinateTransformQR(A) + Tl,Tr = ControlSystems._coordinatetransformqr(A) @test opnorm(Tl*A*Tr - A_bar_true) < tolerance end end @@ -363,7 +363,7 @@ execute_tests = [true,true,true,true,true,true,true,true,true] Z_mat = zeros(Float64, (min(M,N), max(M,N)-min(M,N))) A_bar_true = [Z_mat I_mat] end - Tl,Tr = ControlSystems._computeCoordinateTransformSVD(A) + Tl,Tr = ControlSystems._coordinatetransformsvd(A) @test opnorm(Tl*A*Tr - A_bar_true) < tolerance end end @@ -393,23 +393,23 @@ execute_tests = [true,true,true,true,true,true,true,true,true] # any of the matrices which are to be decomposed are rank deficient for A = test_matrices_rank_deficient println(A) - @test_throws ErrorException ControlSystems._scaleMatrix(A) + @test_throws ErrorException ControlSystems._scalematrix(A) end # Various bad inputs - @test_throws MethodError ControlSystems._scaleMatrix(tf(1)) - @test_throws MethodError ControlSystems._scaleMatrix(ss(1)) - @test_throws MethodError ControlSystems._scaleMatrix([]) - @test_throws MethodError ControlSystems._scaleMatrix(nothing) - @test_throws MethodError ControlSystems._scaleMatrix(1) + @test_throws MethodError ControlSystems._scalematrix(tf(1)) + @test_throws MethodError ControlSystems._scalematrix(ss(1)) + @test_throws MethodError ControlSystems._scalematrix([]) + @test_throws MethodError ControlSystems._scalematrix(nothing) + @test_throws MethodError ControlSystems._scalematrix(1) # Check that errors are thrown if the matric has zise zero - @test_throws ErrorException ControlSystems._scaleMatrix(zeros(Float64,(0,1))) + @test_throws ErrorException ControlSystems._scalematrix(zeros(Float64,(0,1))) # Various bad methods A = test_matrices_full[1]; - @test_throws ErrorException ControlSystems._scaleMatrix(A; method="bad method") - @test_throws ErrorException ControlSystems._scaleMatrix(A; method=1) + @test_throws ErrorException ControlSystems._scalematrix(A; method="bad method") + @test_throws ErrorException ControlSystems._scalematrix(A; method=1) end @testset "Test application of the transformation to an ESS object" begin From 8c2658b2a2a10e4f05af87cdb0de0b2ef5ed72c6 Mon Sep 17 00:00:00 2001 From: Marcus Greiff Date: Mon, 4 Mar 2019 15:15:12 +0100 Subject: [PATCH 66/66] Change name of all function to be compatible with the style guide --- example/hinf_example_DC_discrete.jl | 8 ++--- example/hinf_example_MIT_discrete.jl | 8 ++--- example/hinf_example_tank_discrete.jl | 12 ++++---- src/ControlSystems.jl | 4 +-- src/hinfinity_design.jl | 42 +++++++++++++-------------- test/test_hinf_design.jl | 36 +++++++++++------------ 6 files changed, 55 insertions(+), 55 deletions(-) diff --git a/example/hinf_example_DC_discrete.jl b/example/hinf_example_DC_discrete.jl index 318345c35..d8b29da49 100644 --- a/example/hinf_example_DC_discrete.jl +++ b/example/hinf_example_DC_discrete.jl @@ -28,7 +28,7 @@ WU = ss(1) WT = [] # Create continuous time approximation of the process -Gc = hInf_bilinear_z2s(ss(Gd)) +Gc = bilineard2c(ss(Gd)) # Form the P in the LFT Fl(P,C) as a partitioned state-space object Pc = hinfpartition(Gc, WS, WU, WT) @@ -42,9 +42,9 @@ flag, Cc, gamma = hinfsynthesize(Pc) # Extract the transfer functions defining some signals of interest, but do so # using discrete equivalent of the continuous time objects Pc, Cc and Gc PclD, SD, CSD, TD = hinfsignals( - hInf_bilinear_s2z(Pc, ts), - hInf_bilinear_s2z(Gc, ts), - hInf_bilinear_s2z(Cc, ts) + bilinearc2d(Pc, ts), + bilinearc2d(Gc, ts), + bilinearc2d(Cc, ts) ) # This solution is a bit hacky and should be revised diff --git a/example/hinf_example_MIT_discrete.jl b/example/hinf_example_MIT_discrete.jl index ff7045a37..2d0421753 100644 --- a/example/hinf_example_MIT_discrete.jl +++ b/example/hinf_example_MIT_discrete.jl @@ -29,7 +29,7 @@ WU = ss(0.1) WT = [] # Create continuous time approximation of the process -Gc = hInf_bilinear_z2s(ss(Gd)) +Gc = bilineard2c(ss(Gd)) # Form augmented P dynamics in state-space Pc = hinfpartition(Gc, WS, WU, WT) @@ -43,9 +43,9 @@ flag, Cc, gamma = hinfsynthesize(Pc) # Extract the transfer functions defining some signals of interest, but do so # using discrete equivalent of the continuous time objects Pc, Cc and Gc PclD, SD, CSD, TD = hinfsignals( - hInf_bilinear_s2z(Pc, ts), - hInf_bilinear_s2z(Gc, ts), - hInf_bilinear_s2z(Cc, ts) + bilinearc2d(Pc, ts), + bilinearc2d(Gc, ts), + bilinearc2d(Cc, ts) ) Pcl = ss(PclD.A, PclD.B, PclD.C, PclD.D, ts) diff --git a/example/hinf_example_tank_discrete.jl b/example/hinf_example_tank_discrete.jl index d13e3cb4c..12aa0fb6e 100644 --- a/example/hinf_example_tank_discrete.jl +++ b/example/hinf_example_tank_discrete.jl @@ -35,7 +35,7 @@ C = [kc 0 0 0; 0 kc 0 0]; D = zeros(2,2) ts = 0.01 -Gd = hInf_bilinear_s2z(ss(A,B,C,D), ts) +Gd = bilinearc2d(ss(A,B,C,D), ts) # Sensitivity weight function WSelement = 100*tf([0.1,1],[1000,1]) @@ -57,7 +57,7 @@ iWTelement = 1/WTelement iWT = [iWTelement 0; 0 iWTelement] # Create continuous time approximation of the process -Gc = hInf_bilinear_z2s(Gd) +Gc = bilineard2c(Gd) #Gc = ss(A,B,C,D) # Form the P in the LFT Fl(P,C) as a partitioned state-space object @@ -72,10 +72,10 @@ flag, Cc, gamma = hinfsynthesize(Pc) # Extract the transfer functions defining some signals of interest Pcl, S, CS, T = hinfsignals(Pc, Gc, Cc) -Pcl = hInf_bilinear_s2z(Pcl, ts) -S = hInf_bilinear_s2z(S, ts) -CS = hInf_bilinear_s2z(CS, ts) -T = hInf_bilinear_s2z(T, ts) +Pcl = bilinearc2d(Pcl, ts) +S = bilinearc2d(S, ts) +CS = bilinearc2d(CS, ts) +T = bilinearc2d(T, ts) if MakePlots # Specifications diff --git a/src/ControlSystems.jl b/src/ControlSystems.jl index f6731864a..2a5d3d7e7 100644 --- a/src/ControlSystems.jl +++ b/src/ControlSystems.jl @@ -78,8 +78,8 @@ export LTISystem, hinfassumptions, hinfpartition, hinfsignals, - hInf_bilinear_s2z, - hInf_bilinear_z2s + bilinearc2d, + bilineard2c # QUESTION: are these used? LaTeXStrings, Requires, IterTools using Polynomials, OrdinaryDiffEq, Plots, LaTeXStrings, LinearAlgebra diff --git a/src/hinfinity_design.jl b/src/hinfinity_design.jl index aae6182b1..65036acb9 100644 --- a/src/hinfinity_design.jl +++ b/src/hinfinity_design.jl @@ -529,10 +529,10 @@ fucntion objects on a the trasfer function or the state-space form. """ function hinfpartition(G::Any, WS::Any, WU::Any, WT::Any) # Convert the systems into state-space form - Ag, Bg, Cg, Dg = _convert_input_to_ss(G) - Asw, Bsw, Csw, Dsw = _convert_input_to_ss(WS) - Auw, Buw, Cuw, Duw = _convert_input_to_ss(WU) - Atw, Btw, Ctw, Dtw = _convert_input_to_ss(WT) + Ag, Bg, Cg, Dg = _input2ss(G) + Asw, Bsw, Csw, Dsw = _input2ss(WS) + Auw, Buw, Cuw, Duw = _input2ss(WU) + Atw, Btw, Ctw, Dtw = _input2ss(WT) # Check that the system is realizable if size(Cg, 1) != size(Btw,2) && size(Btw,2) != 0 @@ -619,7 +619,7 @@ end Help function used for type conversion in hInf_partition() """ -function _convert_input_to_ss(H::Any) +function _input2ss(H::Any) if isa(H, LTISystem) if isa(H, TransferFunction) Hss = ss(H) @@ -698,7 +698,7 @@ function hinfsignals(P::ExtendedStateSpace, G::LTISystem, C::LTISystem) end -"""`hInf_bilinear_z2s(Ad::AbstractArray, Bd::AbstractArray, Cd::AbstractArray, Dd::AbstractArray, Ts::Number; tolerance=1e-12)` +"""`bilineard2c(Ad::AbstractArray, Bd::AbstractArray, Cd::AbstractArray, Dd::AbstractArray, Ts::Number; tolerance=1e-12)` Balanced Bilinear transformation in State-Space. This method computes a continuous time equivalent of a discrete time system, such that @@ -710,7 +710,7 @@ in a manner which accomplishes the following (ii) Finds a system which balances B and C, in the sense that ||B||_2=||C||_2 (iii) Satisfies G_d(z) = s2z[z2s[G_d(z)]] for some map s2z[] """ -function hInf_bilinear_z2s(Ad::AbstractArray, Bd::AbstractArray, Cd::AbstractArray, Dd::AbstractArray, Ts::Number; tolerance=1e-12) +function bilineard2c(Ad::AbstractArray, Bd::AbstractArray, Cd::AbstractArray, Dd::AbstractArray, Ts::Number; tolerance=1e-12) Id = Matrix{Float64}(I, size(Ad,1), size(Ad,2)) @@ -739,25 +739,25 @@ function hInf_bilinear_z2s(Ad::AbstractArray, Bd::AbstractArray, Cd::AbstractArr return Ac, Bc, Cc, Dc end -"""`hInf_bilinear_z2s(sys::StateSpace)` +"""`bilineard2c(sys::StateSpace)` Applies a Balanced Bilinear transformation to continuous-time statespace object """ -function hInf_bilinear_z2s(sys::StateSpace) +function bilineard2c(sys::StateSpace) Ad, Bd, Cd, Dd = ssdata(sys) Ts = sys.Ts if Ts <= 0; error("Error, the input must be a discrete time system."); end - Ac, Bc, Cc, Dc = hInf_bilinear_z2s(Ad, Bd, Cd, Dd, Ts) + Ac, Bc, Cc, Dc = bilineard2c(Ad, Bd, Cd, Dd, Ts) return ss(Ac, Bc, Cc, Dc) end -"""`hInf_bilinear_z2s(sys::ExtendedStateSpace)` +"""`bilineard2c(sys::ExtendedStateSpace)` Applies a Balanced Bilinear transformation to continuous-time extended statespace object """ -function hInf_bilinear_z2s(sys::ExtendedStateSpace) +function bilineard2c(sys::ExtendedStateSpace) Ad = get_A(sys) Bd = get_B(sys) Cd = get_C(sys) @@ -771,7 +771,7 @@ function hInf_bilinear_z2s(sys::ExtendedStateSpace) if Ts <= 0; error("Error, the input must be a discrete time system."); end - Ac, Bc, Cc, Dc = hInf_bilinear_z2s(Ad, Bd, Cd, Dd, Ts) + Ac, Bc, Cc, Dc = bilineard2c(Ad, Bd, Cd, Dd, Ts) A = Ac B1 = Bc[:,1:m1] @@ -786,7 +786,7 @@ function hInf_bilinear_z2s(sys::ExtendedStateSpace) return ss(A, B1, B2, C1, C2, D11, D12, D21, D22) end -"""`hInf_bilinear_s2z(Ac::AbstractArray, Bc::AbstractArray, Cc::AbstractArray, Dc::AbstractArray, Ts::Number; tolerance=1e-12)` +"""`bilinearc2d(Ac::AbstractArray, Bc::AbstractArray, Cc::AbstractArray, Dc::AbstractArray, Ts::Number; tolerance=1e-12)` Balanced Bilinear transformation in State-Space. This method computes a discrete time equivalent of a continuous-time system, such that @@ -798,7 +798,7 @@ in a manner which accomplishes the following (ii) Finds a system which balances B and C, in the sense that ||B||_2=||C||_2 (iii) Satisfies G_c(s) = z2s[s2z[G_c(s)]] for some map z2s[] """ -function hInf_bilinear_s2z(Ac::AbstractArray, Bc::AbstractArray, Cc::AbstractArray, Dc::AbstractArray, Ts::Number; tolerance = 1e-12) +function bilinearc2d(Ac::AbstractArray, Bc::AbstractArray, Cc::AbstractArray, Dc::AbstractArray, Ts::Number; tolerance = 1e-12) Id = Matrix{Float64}(I, size(Ac,1), size(Ac,2)) alpha = Ts/2 #Should be this, but the nyquist frequency doesnt add up @@ -833,11 +833,11 @@ function hInf_bilinear_s2z(Ac::AbstractArray, Bc::AbstractArray, Cc::AbstractArr return Ad, Bd, Cd, Dd, Ts end -"""`hInf_bilinear_s2z(sys::StateSpace, Ts::Number)` +"""`bilinearc2d(sys::StateSpace, Ts::Number)` Applies a Balanced Bilinear transformation to a discrete-time statespace object """ -function hInf_bilinear_s2z(sys::StateSpace, Ts::Number) +function bilinearc2d(sys::StateSpace, Ts::Number) Ac, Bc, Cc, Dc = ssdata(sys) if sys.Ts > 0 @@ -847,15 +847,15 @@ function hInf_bilinear_s2z(sys::StateSpace, Ts::Number) error("Error, the the discretization time Ts must be positive.") end - Ad, Bd, Cd, Dd = hInf_bilinear_s2z(Ac, Bc, Cc, Dc, Ts) + Ad, Bd, Cd, Dd = bilinearc2d(Ac, Bc, Cc, Dc, Ts) return ss(Ad, Bd, Cd, Dd, Ts) end -"""`hInf_bilinear_s2z(sys::ExtendedStateSpace, Ts::Number)` +"""`bilinearc2d(sys::ExtendedStateSpace, Ts::Number)` Applies a Balanced Bilinear transformation to a discrete-time extended statespace object """ -function hInf_bilinear_s2z(sys::ExtendedStateSpace, Ts::Number) +function bilinearc2d(sys::ExtendedStateSpace, Ts::Number) Ac = get_A(sys) Bc = get_B(sys) Cc = get_C(sys) @@ -873,7 +873,7 @@ function hInf_bilinear_s2z(sys::ExtendedStateSpace, Ts::Number) error("Error, the the discretization time Ts must be positive.") end - Ad, Bd, Cd, Dd = hInf_bilinear_s2z(Ac, Bc, Cc, Dc, Ts) + Ad, Bd, Cd, Dd = bilinearc2d(Ac, Bc, Cc, Dc, Ts) A = Ad B1 = Bd[:,1:m1] diff --git a/test/test_hinf_design.jl b/test/test_hinf_design.jl index 510f1f14c..2bd58ba15 100644 --- a/test/test_hinf_design.jl +++ b/test/test_hinf_design.jl @@ -34,12 +34,12 @@ execute_tests = [true,true,true,true,true,true,true,true,true] hinfsynthesize hinfassumptions - hInf_bilinear_z2s - hInf_bilinear_s2z hinfsignals hinfpartition - _is_detectable - _is_stabilizable + bilineard2c + bilinearc2d + _detectable + _stabilizable _synthesizecontroller _assertrealandpsd _checkfeasibility @@ -48,7 +48,7 @@ execute_tests = [true,true,true,true,true,true,true,true,true] _gammaIterations _transformp2pbar _scalematrix - _convert_input_to_ss + _input2ss _coordinateTtansformqr _coordinateTtansformsvd @@ -68,7 +68,7 @@ execute_tests = [true,true,true,true,true,true,true,true,true] @testset "Empty and nothing" begin # Check that conversion of nothing is OK - A, B, C, D = ControlSystems._convert_input_to_ss(nothing) + A, B, C, D = ControlSystems._input2ss(nothing) @test isa(A, Array{Float64,2}) @test isa(B, Array{Float64,2}) @test isa(C, Array{Float64,2}) @@ -80,7 +80,7 @@ execute_tests = [true,true,true,true,true,true,true,true,true] @test size(D) == (0,0) # Check that conversion of empty objects are OK - A, B, C, D = ControlSystems._convert_input_to_ss([]) + A, B, C, D = ControlSystems._input2ss([]) @test isa(A, Array{Float64,2}) @test isa(B, Array{Float64,2}) @test isa(C, Array{Float64,2}) @@ -97,7 +97,7 @@ execute_tests = [true,true,true,true,true,true,true,true,true] number = 2.0 # Check that conversion of numbers are OK - A, B, C, D = ControlSystems._convert_input_to_ss(number) + A, B, C, D = ControlSystems._input2ss(number) @test isa(A, Array{Float64,2}) @test isa(B, Array{Float64,2}) @test isa(C, Array{Float64,2}) @@ -126,7 +126,7 @@ execute_tests = [true,true,true,true,true,true,true,true,true] MIMO_tf = tf(MIMO_ss) # check that conversion of SISO tf data is OK - A, B, C, D = ControlSystems._convert_input_to_ss(SISO_tf) + A, B, C, D = ControlSystems._input2ss(SISO_tf) @test isa(A, Array{Float64,2}) @test isa(B, Array{Float64,2}) @test isa(C, Array{Float64,2}) @@ -135,7 +135,7 @@ execute_tests = [true,true,true,true,true,true,true,true,true] @test ss(A, B, C, D) == ss(SISO_tf) # check that conversion of SISO tf data is OK - A, B, C, D = ControlSystems._convert_input_to_ss(SISO_ss) + A, B, C, D = ControlSystems._input2ss(SISO_ss) @test isa(A, Array{Float64,2}) @test isa(B, Array{Float64,2}) @test isa(C, Array{Float64,2}) @@ -144,7 +144,7 @@ execute_tests = [true,true,true,true,true,true,true,true,true] @test ss(A, B, C, D) == SISO_ss # check that conversion of MIMO tf data is OK - A, B, C, D = ControlSystems._convert_input_to_ss(MIMO_tf) + A, B, C, D = ControlSystems._input2ss(MIMO_tf) @test isa(A, Array{Float64,2}) @test isa(B, Array{Float64,2}) @test isa(C, Array{Float64,2}) @@ -153,7 +153,7 @@ execute_tests = [true,true,true,true,true,true,true,true,true] @test ss(A, B, C, D) == ss(MIMO_tf) # check that conversion of MIMO tf data is OK - A, B, C, D = ControlSystems._convert_input_to_ss(MIMO_ss) + A, B, C, D = ControlSystems._input2ss(MIMO_ss) @test isa(A, Array{Float64,2}) @test isa(B, Array{Float64,2}) @test isa(C, Array{Float64,2}) @@ -528,11 +528,11 @@ execute_tests = [true,true,true,true,true,true,true,true,true] Gtrue = ss(AcTrue, BcTrue, CcTrue, DcTrue) valA, fA = sigma(Gtrue, freq); - sysB = hInf_bilinear_s2z(Gtrue, h); + sysB = bilinearc2d(Gtrue, h); valB, fB = sigma(sysB, freq) - sysC = hInf_bilinear_z2s(hInf_bilinear_s2z(Gtrue, h)) + sysC = bilineard2c(bilinearc2d(Gtrue, h)) valC, fC = sigma(sysC, freq) - sysD = hInf_bilinear_s2z(hInf_bilinear_z2s(hInf_bilinear_s2z(Gtrue, h)),h) + sysD = bilinearc2d(bilineard2c(bilinearc2d(Gtrue, h)),h) valD, fD = sigma(sysD, freq) @test abs(maximum(svd(sysB.B).S)-maximum(svd(sysB.C).S)) < tolerance @@ -584,7 +584,7 @@ execute_tests = [true,true,true,true,true,true,true,true,true] [EsysA.D11 EsysA.D12; EsysA.D21 EsysA.D22]) , freq) # To discrete time - EsysB = hInf_bilinear_s2z(EsysA, h) + EsysB = bilinearc2d(EsysA, h) valB, fB = sigma(ss( EsysB.A, [EsysB.B1 EsysB.B2], @@ -592,7 +592,7 @@ execute_tests = [true,true,true,true,true,true,true,true,true] [EsysB.D11 EsysB.D12; EsysB.D21 EsysB.D22],h) , freq) # To continuous time - EsysC = hInf_bilinear_z2s(hInf_bilinear_s2z(EsysA, h)) + EsysC = bilineard2c(bilinearc2d(EsysA, h)) valC, fC = sigma(ss( EsysC.A, [EsysC.B1 EsysC.B2], @@ -600,7 +600,7 @@ execute_tests = [true,true,true,true,true,true,true,true,true] [EsysC.D11 EsysC.D12; EsysC.D21 EsysC.D22]) , freq) # To discrete time - EsysD = hInf_bilinear_s2z(hInf_bilinear_z2s(hInf_bilinear_s2z(EsysA, h)),h) + EsysD = bilinearc2d(bilineard2c(bilinearc2d(EsysA, h)),h) valD, fD = sigma(ss( EsysD.A, [EsysD.B1 EsysD.B2],

5|G$ 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 Poly([1, -p]), *, P, init=Poly(one(eltype(P)))) + q = zero(Array{promote_type(eltype(A),Float64),2}(undef, n,n)) + for i = n:-1:0 + q += A^(n-i)*poly[i+1] + end + S = Array{promote_type(eltype(A),eltype(B),Float64),2}(undef, n,n) + for i = 0:(n-1) + S[:,i+1] = A^i*B + end + return [zeros(1,n-1) 1]*(S\q) +end + + +""" +`feedback(L)` Returns L/(1+L) +`feedback(P1,P2)` Returns P1/(1+P1*P2) +""" +feedback(L::TransferFunction) = L/(1+L) +feedback(P1::TransferFunction, P2::TransferFunction) = P1/(1+P1*P2) + +#Efficient implementations +function feedback(L::TransferFunction{T}) where T<:SisoRational + if size(L) != (1,1) + error("MIMO TransferFunction inversion isn't implemented yet") + end + P = numpoly(L) + Q = denpoly(L) + #Extract polynomials and create P/(P+Q) + tf(P[1][:],(P+Q)[1][:], L.Ts) +end + +function feedback(L::TransferFunction{T}) where {T<:SisoZpk} + if size(L) != (1,1) + error("MIMO TransferFunction inversion isn't implemented yet") + end + numer = num(L.matrix[1]) + k = L.matrix[1].k + denpol = k*prod(numpoly(L)[1])+prod(denpoly(L)[1]) # TODO: Chcek indexing into polynomials + kden = denpol[1] + #Extract polynomials and create P/(P+Q) + zpk(numer, roots(denpol), k/kden, L.Ts) +end + +""" +`feedback(sys)` + +`feedback(sys1,sys2)` + +Forms the negative feedback interconnection +```julia +>-+ sys1 +--> + | | + (-)sys2 + +``` +If no second system is given, negative identity feedback is assumed +""" +function feedback(sys::StateSpace) + sys.ny != sys.nu && error("Use feedback(sys1::StateSpace,sys2::StateSpace) if sys.ny != sys.nu") + feedback(sys,ss(Matrix{numeric_type(sys)}(I,sys.ny,sys.ny))) +end + +function feedback(sys1::StateSpace,sys2::StateSpace) + sum(abs.(sys1.D)) != 0 && sum(abs.(sys2.D)) != 0 && error("There can not be a direct term (D) in both sys1 and sys2") + A = [sys1.A+sys1.B*(-sys2.D)*sys1.C sys1.B*(-sys2.C); sys2.B*sys1.C sys2.A+sys2.B*sys1.D*(-sys2.C)] + B = [sys1.B; sys2.B*sys1.D] + C = [sys1.C sys1.D*(-sys2.C)] + ss(A,B,C,sys1.D) +end + + +""" +`feedback2dof(P,R,S,T)` Return `BT/(AR+ST)` where B and A are the numerator and denomenator polynomials of `P` respectively +`feedback2dof(B,A,R,S,T)` Return `BT/(AR+ST)` +""" +function feedback2dof(P::TransferFunction,R,S,T) + !issiso(P) && error("Feedback not implemented for MIMO systems") + tf(conv(poly2vec(numpoly(P)[1]),T),zpconv(poly2vec(denpoly(P)[1]),R,poly2vec(numpoly(P)[1]),S)) +end + +feedback2dof(B,A,R,S,T) = tf(conv(B,T),zpconv(A,R,B,S)) diff --git a/dev/test_hinf_examples.jl b/dev/test_hinf_examples.jl new file mode 100644 index 000000000..0d6d88bd0 --- /dev/null +++ b/dev/test_hinf_examples.jl @@ -0,0 +1,92 @@ +using ControlSystems +using Test +using LinearAlgebra + +@testset "test_hinf_examples" begin + + ############################################################################## + # Test the DC motor example + ############################################################################## + + # Make sure that the code runs + @test isa(include("hinf_example_DC.jl"), Nothing) + f = [10^i for i in range(-7, stop=7, length=201)] + # Check that the optimal gain is correct + @test abs(gamma - 4.466640) < 1e-2 + # Check that the closed loop tf satisfies ||Pcl||_∞ < gamma + valPcl = sigma(Pcl, f)[1]; + @test all(valPcl .< (gamma+1e-4)) + # Check that ||S/WS||_∞ < gamma + if isa(WS, LTISystem) || isa(WS, Number) + valSWS = sigma(S * WS , f)[1]; + @test all(valSWS .< (gamma+1e-4)) + end + # Check that ||S/WS||_∞ < gamma + if isa(WU, LTISystem) || isa(WU, Number) + valKSWU = sigma(KS * WU , f)[1]; + @test all(valKSWU .< (gamma+1e-4)) + end + # Check that ||S/WS||_∞ < gamma + if isa(WT, LTISystem) || isa(WT, Number) + valTWT = sigma(T * WT , f)[1]; + @test all(valTWT .< (gamma+1e-4)) + end + + ################################################################################ + # Test the MIT open courseware example + ################################################################################ + + # Make sure that the code runs + @test isa(include("hinf_example_MIT.jl"), Nothing) + f = [10^i for i in range(-7, stop=7, length=201)] + # Check that the optimal gain is correct + @test abs(gamma - 1.636084) < 1e-2 + # Check that the closed loop tf satisfies ||Pcl||_∞ < gamma + valPcl = sigma(Pcl, f)[1]; + @test all(valPcl .< (gamma+1e-4)) + # Check that ||S/WS||_∞ < gamma + if isa(WS, LTISystem) || isa(WS, Number) + valSWS = sigma(S * WS , f)[1]; + @test all(valSWS .< (gamma+1e-4)) + end + # Check that ||S/WS||_∞ < gamma + if isa(WU, LTISystem) || isa(WU, Number) + valKSWU = sigma(KS * WU , f)[1]; + @test all(valKSWU .< (gamma+1e-4)) + end + # Check that ||S/WS||_∞ < gamma + if isa(WT, LTISystem) || isa(WT, Number) + valTWT = sigma(T * WT , f)[1]; + @test all(valTWT .< (gamma+1e-4)) + end + + + ################################################################################ + # Test the quad tank example + ################################################################################ + + # Make sure that the code runs + @test isa(include("hinf_example_tank.jl"), Nothing) + f = [10^i for i in range(-7, stop=7, length=201)] + # Check that the optimal gain is correct + @test abs(gamma - 5.052886) < 1e-2 + # Check that the closed loop tf satisfies ||Pcl||_∞ < gamma + valPcl = sigma(Pcl, f)[1]; + @test all(valPcl[:,1] .< (gamma+1e-4)) + # Check that ||S/WS||_∞ < gamma + if isa(WS, LTISystem) || isa(WS, Number) + valSWS = sigma(S * WS , f)[1]; + @test all(valSWS[:,1] .< (gamma+1e-4)) + end + # Check that ||S/WS||_∞ < gamma + if isa(WU, LTISystem) || isa(WU, Number) + valKSWU = sigma(KS * WU , f)[1]; + @test all(valKSWU[:,1] .< (gamma+1e-4)) + end + # Check that ||S/WS||_∞ < gamma + if isa(WT, LTISystem) || isa(WT, Number) + valTWT = sigma(T * WT , f)[1]; + @test all(valTWT[:,1] .< (gamma+1e-4)) + end + +end diff --git a/dev/test_hinf_private.jl b/dev/test_hinf_private.jl new file mode 100644 index 000000000..dd55fcafa --- /dev/null +++ b/dev/test_hinf_private.jl @@ -0,0 +1,65 @@ +#@testset "test_hinf" begin + +using ControlSystems +using Test +using LinearAlgebra + +""" +Testing that we can re-write the weight specificaitons to a feasible state-space +form +""" +possible_entries = [[],1.0] + +for ii = 1:2 + for kk = 1:2 + for ll = 1:2 + A = rand(ii,ii) + B = rand(ii,kk) + C = rand(ll,ii) + D = rand(ll,kk) + Gss = ss(A,B,C,D) + Gtf = tf(Gss) + append!(possible_entries, [Gss]) + append!(possible_entries, [Gtf]) + end + end +end +#ii, jj, kk, ll= [4, 3, 2, 2] +for ii = 1:length(possible_entries) + for jj = 2:length(possible_entries) + for kk = 2:length(possible_entries) + for ll = 2:length(possible_entries) + G = possible_entries[ii] + WS = possible_entries[jj] + WU = possible_entries[kk] + WT = possible_entries[ll] + println([ii, jj, kk, ll]) + # Check that the system is realizable + if isa(G, StateSpace) || isa(G, TransferFunction) || isa(G, Number) + Ag, Bg, Cg, Dg = ss(G).A, ss(G).B, ss(G).C, ss(G).D + if (size(Ag,1)==0 || size(Ag,2)==0 || size(Bg,1)==0 || size(Bg,2)==0 || + size(Cg,1)==0 || size(Cg,2)==0 || size(Dg,1)==0 || size(Dg,2)==0) + @test_throws ErrorException hInf_partition(G, WS, WU, WT) + end + elseif isempty(G) + @test_throws ErrorException hInf_partition(G, WS, WU, WT) + elseif isa(WT, StateSpace) || isa(WT, TransferFunction) + if size(ss(G).C, 1) != size(ss(WT).B,2) && size(ss(WT).B,2) != 0 + @test_throws ErrorException hInf_partition(G, WS, WU, WT) + end + elseif isa(WS, StateSpace) || isa(WS, TransferFunction) + if size(ss(G).A, 1) != size(ss(WS).B,2) && size(ss(WS).B,2) != 0 + @test_throws ErrorException hInf_partition(G, WS, WU, WT) + end + elseif isa(WU, StateSpace) || isa(WU, TransferFunction) + if size(ss(G).B, 2) != size(ss(WU).B,2) && size(ss(WU).B,2) != 0 + @test_throws ErrorException hInf_partition(G, WS, WU, WT) + end + else + A, B1, B2, C1, C2, D11, D12, D21, D22 = hInf_partition(G, WS, WU, WT) + @test isa(ss(A,[B1 B2],[C1; C2], [D11 D12; D21 D22]), StateSpace) + end + end + end + end +end diff --git a/dev/test_hinf_public.jl b/dev/test_hinf_public.jl new file mode 100644 index 000000000..dd55fcafa --- /dev/null +++ b/dev/test_hinf_public.jl @@ -0,0 +1,65 @@ +#@testset "test_hinf" begin + +using ControlSystems +using Test +using LinearAlgebra + +""" +Testing that we can re-write the weight specificaitons to a feasible state-space +form +""" +possible_entries = [[],1.0] + +for ii = 1:2 + for kk = 1:2 + for ll = 1:2 + A = rand(ii,ii) + B = rand(ii,kk) + C = rand(ll,ii) + D = rand(ll,kk) + Gss = ss(A,B,C,D) + Gtf = tf(Gss) + append!(possible_entries, [Gss]) + append!(possible_entries, [Gtf]) + end + end +end +#ii, jj, kk, ll= [4, 3, 2, 2] +for ii = 1:length(possible_entries) + for jj = 2:length(possible_entries) + for kk = 2:length(possible_entries) + for ll = 2:length(possible_entries) + G = possible_entries[ii] + WS = possible_entries[jj] + WU = possible_entries[kk] + WT = possible_entries[ll] + println([ii, jj, kk, ll]) + # Check that the system is realizable + if isa(G, StateSpace) || isa(G, TransferFunction) || isa(G, Number) + Ag, Bg, Cg, Dg = ss(G).A, ss(G).B, ss(G).C, ss(G).D + if (size(Ag,1)==0 || size(Ag,2)==0 || size(Bg,1)==0 || size(Bg,2)==0 || + size(Cg,1)==0 || size(Cg,2)==0 || size(Dg,1)==0 || size(Dg,2)==0) + @test_throws ErrorException hInf_partition(G, WS, WU, WT) + end + elseif isempty(G) + @test_throws ErrorException hInf_partition(G, WS, WU, WT) + elseif isa(WT, StateSpace) || isa(WT, TransferFunction) + if size(ss(G).C, 1) != size(ss(WT).B,2) && size(ss(WT).B,2) != 0 + @test_throws ErrorException hInf_partition(G, WS, WU, WT) + end + elseif isa(WS, StateSpace) || isa(WS, TransferFunction) + if size(ss(G).A, 1) != size(ss(WS).B,2) && size(ss(WS).B,2) != 0 + @test_throws ErrorException hInf_partition(G, WS, WU, WT) + end + elseif isa(WU, StateSpace) || isa(WU, TransferFunction) + if size(ss(G).B, 2) != size(ss(WU).B,2) && size(ss(WU).B,2) != 0 + @test_throws ErrorException hInf_partition(G, WS, WU, WT) + end + else + A, B1, B2, C1, C2, D11, D12, D21, D22 = hInf_partition(G, WS, WU, WT) + @test isa(ss(A,[B1 B2],[C1; C2], [D11 D12; D21 D22]), StateSpace) + end + end + end + end +end diff --git a/docs/make.jl b/docs/make.jl index 8fb504aaf..07476d8d3 100644 --- a/docs/make.jl +++ b/docs/make.jl @@ -1,4 +1,4 @@ -using Documenter, ControlSystems, Plots, LinearAlgebra, DSP +using Documenter, ControlSystems, Plots import GR # Bug with world age in Plots.jl, see https://github.com/JuliaPlots/Plots.jl/issues/1047 include("src/makeplots.jl") @@ -23,6 +23,6 @@ end deploydocs( repo = "github.com/JuliaControl/ControlSystems.jl.git", latest = "master", - julia = "1.0", + julia = "0.6", deps = myDeps ) diff --git a/docs/src/makeplots.jl b/docs/src/makeplots.jl index 1c0138bdc..aea50366a 100644 --- a/docs/src/makeplots.jl +++ b/docs/src/makeplots.jl @@ -16,7 +16,7 @@ Q = Matrix{Float64}(I,2,2) R = Matrix{Float64}(I,1,1) L = dlqr(A,B,Q,R) # lqr(sys,Q,R) can also be used -u(x,t) = -L*x .+ 1.5(t>=2.5)# Form control law (u is a function of t and x), a constant input disturbance is affecting the system from t≧2.5 +u(x,t) = -L*x + 1.5(t>=2.5)# Form control law (u is a function of t and x), a constant input disturbance is affecting the system from t≧2.5 t=0:h:5 x0 = [1,0] y, t, x, uout = lsim(sys,u,t,x0=x0) @@ -71,7 +71,7 @@ Plots.savefig(plotsDir*"/ppgofplot.svg") P1(s) = exp(-sqrt(s)) f1 = stabregionPID(P1,exp10.(range(-5, stop=1, length=1000))); Plots.savefig(plotsDir*"/stab1.svg") -P2 = s -> 100*(s+6).^2 ./(s.*(s+1).^2 .*(s+50).^2) +P2 = s -> 100*(s+6).^2./(s.*(s+1).^2.*(s+50).^2) f2 = stabregionPID(P2,exp10.(range(-5, stop=2, length=1000))); Plots.savefig(plotsDir*"/stab2.svg") P3 = tf(1,[1,1])^4 f3 = stabregionPID(P3,exp10.(range(-5, stop=0, length=1000))); Plots.savefig(plotsDir*"/stab3.svg") @@ -84,7 +84,7 @@ f3 = stabregionPID(P3,exp10.(range(-5, stop=0, length=1000))); Plots.savefig(plo P = tf([1.],[1., 1]) ζ = 0.5 # Desired damping ws = exp10.(range(-1, stop=2, length=8)) # A vector of closed-loop bandwidths -kp = 2*ζ*ws.-1 # Simple pole placement with PI given the closed-loop bandwidth, the poles are placed in a butterworth pattern +kp = 2*ζ*ws-1 # Simple pole placement with PI given the closed-loop bandwidth, the poles are placed in a butterworth pattern ki = ws.^2 pidplots(P,:nyquist,;kps=kp,kis=ki, ω= exp10.(range(-2, stop=2, length=500))) Plots.savefig(plotsDir*"/pidplotsnyquist1.svg") @@ -92,7 +92,7 @@ pidplots(P,:gof,;kps=kp,kis=ki, ω= exp10.(range(-2, stop=2, length=500))) Plots.savefig(plotsDir*"/pidplotgof1.svg") kp = range(-1, stop=1, length=8) # Now try a different strategy, where we have specified a gain crossover frequency of 0.1 rad/s -ki = sqrt.(1 .-kp.^2)./10 +ki = sqrt.(1-kp.^2)./10 pidplots(P,:nyquist,;kps=kp,kis=ki) Plots.savefig(plotsDir*"/pidplotsnyquist2.svg") pidplots(P,:gof,;kps=kp,kis=ki) diff --git a/src/ControlSystems.jl b/src/ControlSystems.jl index 69f07b137..b66cb3fb2 100644 --- a/src/ControlSystems.jl +++ b/src/ControlSystems.jl @@ -2,6 +2,7 @@ module ControlSystems export LTISystem, StateSpace, + ExtendedStatespace, TransferFunction, ss, tf, @@ -71,8 +72,13 @@ export LTISystem, numvec, denvec, numpoly, - denpoly - + denpoly, + # Hinfinity design + hInf_synthesize, + hInf_assumptions, + hInf_visualize, + hInf_partition, + hInf_signals # QUESTION: are these used? LaTeXStrings, Requires, IterTools using Polynomials, OrdinaryDiffEq, Plots, LaTeXStrings, LinearAlgebra @@ -98,6 +104,7 @@ include("types/SisoTfTypes/promotion.jl") include("types/SisoTfTypes/conversion.jl") include("types/StateSpace.jl") +include("types/ExtendedStatespace.jl") # Convenience constructors include("types/tf.jl") @@ -128,6 +135,8 @@ include("pid_design.jl") include("plotting.jl") +include("hinfinity_design.jl") + @deprecate num numvec @deprecate den denvec diff --git a/src/hinfinity_design.jl b/src/hinfinity_design.jl new file mode 100644 index 000000000..9b5a93015 --- /dev/null +++ b/src/hinfinity_design.jl @@ -0,0 +1,683 @@ +using Printf +using Plots + +""" +`[flag] = function hInf_assumptions(P::ExtendedStateSpace; verbose=true)` + +Check the assumptions for using the γ-iteration synthesis in Theorem 1. In +future revisions, we could suggest possible changes to P should the system not +be feasible for synthesis. However, this has not been too successful so far..! +""" +function hInf_assumptions(P::ExtendedStateSpace; verbose=true) + + epsilon = 1e-8 + flag=true + + A, B1, B2, C1, C2, D11, D12, D21, D22 = ssdata(P) + + # Check assumption A1 + if !_is_stabilizable(A, B1) + if verbose + println("Warning, the system A is not stabilizable through B1, violation of assumption A1.") + end + flag=false + end + if !_is_stabilizable(A, B2) + if verbose + println("Warning, the system A is not stabilizable through B2, violation of assumption A1.") + end + flag=false + end + if !_is_detectable(A, C1) + if verbose + println("Warning, the system A is not detectable through C1, violation of assumption A1.") + end + flag=false + end + if !_is_detectable(A, C2) + if verbose + println("Warning, the system A is not detectable through C2, violation of assumption A1.") + end + flag=false + end + + # Check assumption A2 + if rank(D12) < size(D12,2) + if verbose + println("Warning, the matrix D12 does not have full rank, violation of assumption A2.") + end + flag=false + end + if rank(D21) < size(D21,1) + if verbose + println("Warning, the matrix D21 does not have full rank, violation of assumption A2.") + end + flag=false + end + # Check assumption A5 + D12Pinv = _compute_pseudoinverse(D12) + if rank(A - B2*D12Pinv*C1) < size(A,1) + if verbose + println("Warning, the matrix (A - B2*D12^-*C1) does not have full rank, violation of assumption A5. Returning candidate approximation in Atilde. Please re-check the feasibility conditions with Atilde.") + end + # + #U,S,V=svd(A - B2*D12Pinv*C1) + #Stilde = zeros(size(S)) + #for (i, val) in enumerate(Stilde) + # if abs(val) < epsilon + # Stilde[i] = epsilon + # else + # Stilde[i] = S[i] + # end + #end + #Atilde = A + U*(Diagonal(Stilde) - Diagonal(S)) * V + flag=false + end + # Check assumption A5 + D21Pinv = _compute_pseudoinverse(D21) + if rank(A - B1*D21Pinv*C2) < size(A,1) + if verbose + println("Warning, the matrix (A - B1*D21Pinv*C2) does not have full rank, violation of assumption A6. Returning candidate approximation in Atilde. Please re-check the feasibility conditions with Atilde.") + end + # + #,S,V=svd(A - B1*D21Pinv*C2) + #Stilde = zeros(size(S)) + #for (i, val) in enumerate(Stilde) + # if abs(val) < epsilon + # Stilde[i] = epsilon + # else + # Stilde[i] = S[i] + # end + #end + #Atilde = A + U*(Diagonal(Stilde) - Diagonal(S)) * V + flag=false + end + if flag && verbose + println("All assumtions are satisfied!") + else + println("All assumtions are not satisfied, consider a slight modification of the plant.") + end + return flag +end + +""" +`[Mpinv] = function _compute_pseudoinverse(M)` + +Compute the g-inverses for a non-rectangular matrix M, satisfying +min(size(M))==rank(M). Used for checking assumptions A5 and A6. +""" +function _compute_pseudoinverse(M) + if size(M,1) == size(M,2) + return (inv(M)) + elseif size(M,1) > size(M,2) + return (inv(M'*M)*M') + elseif size(M,1) < size(M,2) + return (M'*inv(M*M')) + end +end + +""" +`[flag] = _is_stabilizable(A, B)` + +Applies the Hautus lemma to check if the pair is stabilizable +""" +function _is_stabilizable(A, B) + eigValsA = eigvals(A) + for ii = 1:length(eigValsA) + if real(eigValsA[ii])>= 0 + if rank([eigValsA[ii] * Matrix{Float64}(I, size(A,1), size(A,2)) - A B]) != size(A,1) + return false + end + end + end + return true +end + +""" +`[flag] = _is_stabilizable(A, C)` + +Applies the Hautus lemma to check if the pair is detectable +""" +function _is_detectable(A, C) + eigValsA = eigvals(A) + for ii = 1:length(eigValsA) + if real(eigValsA[ii])>= 0 + if rank([eigValsA[ii] * Matrix{Float64}(I, size(A,1), size(A,2)) - A; C]) != size(A,1) + return false + end + end + end + return true +end + +""" +`[flag, K, gamma] = hInf_synthesize(P::ExtendedStateSpace; maxIter=20, interval=(2/3,20), verbose=true)` + +Computes an H-infinity optimal controller K for an extended plant P such that +||F_l(P, K)||∞ < γ for the largest possible gamma given P. The routine is +known as the γ-iteration, and is based on the paper "State-space formulae for +all stabilizing controllers that satisfy an H∞-norm bound and relations to +risk sensitivity" by Glover and Doyle. See the Bib-entry below: + +@article{glover1988state, + title={State-space formulae for all stabilizing controllers that satisfy an + H-infinity norm bound and relations to relations to risk sensitivity}, + author={Glover, Keith and Doyle, John C}, + journal={Systems & control letters}, + volume={11}, + number={3}, + pages={167--172}, + year={1988}, + publisher={Citeseer} +} + +""" +function hInf_synthesize(P::ExtendedStateSpace; maxIter=20, interval=(2/3,20), verbose=true) + + A, B1, B2, C1, C2, D11, D12, D21, D22 = ssdata(P) + + # Transform the system into a suitable form + Abar, B1bar, B2bar, C1bar, C2bar, D11bar, D12bar, D21bar, D22bar, Ltrans12, Rtrans12, Ltrans21, Rtrans21 = _transformP2Pbar(A, B1, B2, C1, C2, D11, D12, D21, D22) + + # Run the gamma iterations + XinfFeasible, YinfFeasible, FinfFeasible, HinfFeasible, gammFeasible = _gammaIterations(Abar, B1bar, B2bar, C1bar, C2bar, D11bar, D12bar, D21bar, D22bar, maxIter, interval, verbose) + + if !isempty(gammFeasible) + # Synthesize the controller + Ac, Bc, Cc, Dc = _synthesizeController(Abar, B1bar, B2bar, C1bar, C2bar, D11bar, D12bar, D21bar, D22bar, XinfFeasible, YinfFeasible, FinfFeasible, HinfFeasible, gammFeasible, Ltrans12, Rtrans12, Ltrans21, Rtrans21) + + # Form the controller + K = ss(Ac, Bc, Cc, Dc) + gamma = gammFeasible + flag = true + return flag, K, gamma + else + return false, [], [] + end +end + +"""`[Ac, Bc Cc, Dc] = hInfSynthesizeController(A, B1, B2, C1, C2, D11, D12, D21, D22, Xinf, Yinf, F, H, gamma, Ltrans12, Rtrans12, Ltrans21, Rtrans21)` + +Syntheize a controller by operating on the scaled state-space description of the +system (i.e., the state-space realization of Pbar) using the solutions from the +γ-iterations. The controller is synthesized in the coordinates of Pbar, and then +transformed back to the original coordinates by the linear transformations +Ltrans12, Rtrans12, Ltrans21 and Rtrans21. +""" +function _synthesizeController(A, B1, B2, C1, C2, D11, D12, D21, D22, Xinf, Yinf, F, H, gamma, Ltrans12, Rtrans12, Ltrans21, Rtrans21) + + gSq = gamma * gamma + + B = [B1 B2] + C = [C1; C2] + + # Dimensionality + P1 = size(C1,1); + P2 = size(C2,1); + M1 = size(B1,2); + M2 = size(B2,2); + + # Equation (11) + F11=F[1:(M1-P2),:] + F12=F[(M1-P2+1):M1,:] + F2 =F[(M1+1):(M1+M2),:] + + # Equation (12) + H11=H[:,1:(P1-M2)] + H12=H[:,(P1-M2+1):P1] + H2 =H[:,(P1+1):(P1+P2)] + + # Definition of D in the assumptions section + D1111=D11[1:(P1-M2),1:(M1-P2)] + D1112=D11[1:(P1-M2),(M1-P2+1):M1] + D1121=D11[(P1-M2+1):P1,1:(M1-P2)] + D1122=D11[(P1-M2+1):P1,(M1-P2+1):M1] + + # Equation 19 + D11hat = ((-D1121 * D1111') / (gSq * I - D1111 * D1111')) * D1112 - D1122 + + # TODO check that the M matrices are positive definite + + # Equation 20 + D12hatD12hat = I - (D1121 / (gSq * I - D1111' * D1111)) * D1121' + D12hat = cholesky(D12hatD12hat).L + + # Equation 21 + D21hatD21hat = I - (D1112' / (gSq * I - D1111 * D1111')) * D1112 + D21hat = cholesky(D21hatD21hat).U + + # Equation 27 + Zinv = (I - Yinf * Xinf / gSq) + + # Equation 22 + B2hat = (B2 + H12) * D12hat + + # Equation 23 (using the inverse of 27) + C2hat = -D21hat * (C2 + F12) / Zinv + + # Equation 24 + B1hat = -H2 + (B2hat / D12hat) * D11hat + + # Equation 25 (using the inverse of 27) + C1hat = F2 / Zinv + (D11hat / D21hat) * C2hat + + # Equation 26 + Ahat = A + H * C + (B2hat / D12hat) * C1hat + + Acontroller = Ahat + + B1controller = B1hat * Ltrans21 + B2controller = B2hat + + C1controller = Rtrans12 * C1hat + C2controller = C2hat + + Bcontroller = [B1controller B2controller] + Ccontroller = [C1controller; C2controller] + + D11controller = Rtrans12 * D11hat * Ltrans21 + D12controller = D12hat * Ltrans21 + D21controller = Rtrans12 * D21hat + D22controller = zeros(size(D11hat)) + Dcontroller = [D11controller D12controller; D21controller D22controller] + + # TODO implement loop shift for any system hot satisfying A4 + + return Acontroller, Bcontroller[:,1:P2], Ccontroller[1:M2,:], Dcontroller[1:M2,1:P2] +end + +"""`[flag] = _checkFeasibility(Xinf, Yinf, gamma, tolerance, iteration; verbose=true)` + +Check the feasibility of the computed solutions Xinf, Yinf and the algebraic +Riccatti equations, return true if the solution is valid, and false otherwise. +""" +function _checkFeasibility(Xinf, Yinf, gamma, tolerance, iteration; verbose=true) + + gammaSq = gamma*gamma + + # TODO Add checks to capture singular Xinf and Yinf + minXev = minimum(real(eigvals(Xinf))) + minYev = minimum(real(eigvals(Yinf))) + specrad = maximum(abs.(eigvals(Xinf*Yinf))) / gammaSq + + if verbose + if iteration == 1 + @printf("iteration, gamma\n") + end + @printf("%i %f\n", iteration, gamma) + end + + if minXev < -tolerance + # Failed test, eigenvalues of Xinf must be positive real + return false + end + if minYev < -tolerance + # Failed test, eigenvalues of Yinf must be positive real + return false + end + if specrad > 1 + # Failed test, spectral radius of XY must be greater than gamma squared + return false + end + return true +end + +""" +`[solution] = _solveHamiltonianARE(H)` + +Solves a hamiltonian Alebraic Riccati equation using the Schur-decomposition. +""" +function _solveHamiltonianARE(H) + + # TODO fix this computational routine if need be + # TODO throw errors? + # TODO eigenvalue solvers as an alternative? + S = schur(H) + S = ordschur(S, real(S.values).<0) + U = S.Z + + (m, n) = size(U) + U11 = U[1:div(m, 2), 1:div(n,2)] + U21 = U[div(m,2)+1:m, 1:div(n,2)] + solution = U21/U11 + + flag = 0 + return solution, flag +end + +""" +`[solution] = _solveMatrixEquations(A, B1, B2, C1, C2, D11, D12, D21, D22, gamma)` + +Solves the dual matrix equations in the γ-iterations (equations 7-12 in Doyle). +""" +function _solveMatrixEquations(A, B1, B2, C1, C2, D11, D12, D21, D22, gamma) + P1 = size(C1,1); + P2 = size(C2,1); + M1 = size(B1,2); + M2 = size(B2,2); + + gammaSq = gamma*gamma; + + B = [B1 B2] + C = [C1; C2] + + # Equation (7) + D1dot = [D11 D12]; + R = [-gammaSq*I zeros(M1,M2); zeros(M2,M1) zeros(M2,M2)] + D1dot'*D1dot; + + # Equation (8) + Ddot1 = [D11; D21]; + Rbar = [-gammaSq*I zeros(P1,P2); zeros(P2,P1) zeros(P2,P2)] + Ddot1*Ddot1'; + + # Form hamiltonian for X and Y, equation (9) and (10) + HX = [A zeros(size(A)); -C1'*C1 -A'] - ([B; -C1'*D1dot]/R)*[D1dot'*C1 B']; + HY = [A' zeros(size(A)); -B1*B1' -A] - ([C';-B1*Ddot1']/Rbar)*[Ddot1*B1' C]; + + # Solve matrix equations + Xinf, Xflag = _solveHamiltonianARE(HX) + Yinf, Yflag = _solveHamiltonianARE(HY) + + # Equation (11) + F = - R \ (D1dot'*C1+B'*Xinf) + + # Equation (12) + H = - (B1 * Ddot1' + Yinf * C') / Rbar + + return Xinf, Yinf, F, H +end + +""" +`[flag]=_gammaIterations(A, B1, B2, C1, C2, D11, D12, D21, D22, maxIter, interval, verbose)` + +Rune the complete set of γ-iterations over a specified search interval with a +set number of iterations. It is possible to break the algorithm if the number +of iterations become too large. This should perhaps be tken care of by +specifying an interval and tolerance for γ. In addition, the algorithm simply +terminates without a solution if the maximum possible gamma on the defined +interval is infeasible. Here we could consider increasing the bounds somewhat +and warn the user if this occurrs. +""" +function _gammaIterations(A, B1, B2, C1, C2, D11, D12, D21, D22, maxIter, interval, verbose) + + XinfFeasible = [] + YinfFeasible = [] + FinfFeasible = [] + HinfFeasible = [] + gammFeasible = [] + + tolerance = 1e-10 + + gamma = maximum(interval) + + for iteration = 1:maxIter + + # Solve the matrix equations + Xinf, Yinf, F, H = _solveMatrixEquations(A, B1, B2, C1, C2, D11, D12, D21, D22, gamma) + + # Check Feasibility + isFeasible = _checkFeasibility(Xinf, Yinf, gamma, tolerance, iteration; verbose=verbose) + + if isFeasible + XinfFeasible = Xinf + YinfFeasible = Yinf + FinfFeasible = F + HinfFeasible = H + gammFeasible = gamma + gamma = gamma - abs.(interval[2]-interval[1]) / (2^iteration) + else + gamma = gamma + abs.(interval[2]-interval[1]) / (2^iteration) + if gamma > maximum(interval) + break + end + end + end + return XinfFeasible, YinfFeasible, FinfFeasible, HinfFeasible, gammFeasible +end + +""" +`[Abar, B1bar, B2bar, C1bar, C2bar, D11bar, D12bar, + D21bar, D22bar, Ltrans12, Rtrans12, Ltrans21, + Rtrans21] = _transformP2Pbar(A, B1, B2, C1, C2, D11, D12, D21, D22)` + +Transform the original system P to a new system Pbar, in which D12bar = [I; 0] +and D21bar = [I 0] in order to satisfy the feasibility assumption A3 (see Doyle) +""" +function _transformP2Pbar(A, B1, B2, C1, C2, D11, D12, D21, D22) + + # Compute the transformation + Ltrans12, Rtrans12 = _scaleMatrix(D12) + Ltrans21, Rtrans21 = _scaleMatrix(D21) + + Abar = A + B1bar = B1*Rtrans21 + B2bar = B2*Rtrans12 + C1bar = Ltrans12*C1 + C2bar = Ltrans21*C2 + D11bar = Ltrans12*D11*Rtrans21 + D12bar = Ltrans12*D12*Rtrans12 + D21bar = Ltrans21*D21*Rtrans21 + D22bar = Ltrans21*D22*Rtrans12 + + return Abar, B1bar, B2bar, C1bar, C2bar, D11bar, D12bar, D21bar, D22bar, Ltrans12, Rtrans12, Ltrans21, Rtrans21 +end + +""" +`[Tl, Tr]_scaleMatrix(A)` + +Find a left and right transform of A such that Tl*A*Tr = [I, 0], or +Tl*A*Tr = [I; 0], depending on the dimensionality of A. +""" +function _scaleMatrix(A) + # Check that a scaling is feasible + if isempty(A) + @printf("Cannot scale the system, A is empty") + return [], [] + else + if (minimum(size(A)) > 1) + print(A) + print(size(A)) + if rank(A) != minimum(size(A)) + @printf("Cannot scale the system, assumption A2 is violated") + return [], [] + end + end + m, n = size(A) + if m == n + # Square matrix with full rank + Q, R = qr(A) + LeftTransform = Q' + RightTransform = inv(R) + elseif m > n + Q, R = qr(A) + # Rectangular matrix with rank = n + LeftTransform = [Q[:,(n+1):(m)]'; Q[:,1:n]'] + RightTransform = inv(R[1:n,1:n]) + elseif m < n + Q, R = qr(A') + LeftTransform = inv(R[1:m,1:m])' + RightTransform = [Q[:,(m+1):(n)] Q[:,1:m]] + end + return LeftTransform, RightTransform + end +end + +"""`[P] = hInf_partition(G, WS, WU, WT)` + +This is a relly ugly function which should be re-written using the new type +ExtendedStateSpace in the event of time. The reason for it's current appearance +is that I wanted to be absolutely sure that it was doing what I wanted it to do. + +Transform a SISO or MIMO system G, with weighting functions WS, WU, WT into +and LFT with an isolated controller, and write the resulting system, P(s), +on a state-space form. Valid inputs for G are transfer functions (with dynamics, +can be both MIMO and SISO, both in tf and ss forms). Valid inputs for the +weighting functions are empty entries, numbers (static gains), and transfer +fucntion objects on a the trasfer function or the state-space form. +""" + +function hInf_partition(G, WS, WU, WT) + # Convert the systems into state-space form + Ag, Bg, Cg, Dg = convert_input_to_ss(G) + Asw, Bsw, Csw, Dsw = convert_input_to_ss(WS) + Auw, Buw, Cuw, Duw = convert_input_to_ss(WU) + Atw, Btw, Ctw, Dtw = convert_input_to_ss(WT) + + # Check that the system is realizable + if size(Cg, 1) != size(Btw,2) && size(Btw,2) != 0 + println([size(Cg, 1) , size(Btw,2)]) + error(["You must have the same number of outputs y=C2xg+D21w+D22u as there are inputs to WT"]) + end + if size(Cg, 1) != size(Bsw,2) && size(Bsw,2) != 0 + println([size(Cg, 1) , size(Bsw,2)]) + error(["You must have the same number of states x=Agxg+B1w+B2u as there are inputs to WS"]) + end + if size(Bg, 2) != size(Buw,2) && size(Buw,2) != 0 + println([size(Bg, 2) , size(Buw,2)]) + error(["You must have the same number of controls u as there are inputs to WU"]) + end + if (size(Ag,1)==0 || size(Ag,2)==0 || size(Bg,1)==0 || size(Bg,2)==0 || + size(Cg,1)==0 || size(Cg,2)==0 || size(Dg,1)==0 || size(Dg,2)==0) + error(["Expansion of systems dimensionless A,B,C or D is not yet supported"]) + end + + # Form A + (mAg, nAg) = size(Ag) + (mAsw,nAsw) = size(Asw) + (mAuw,nAuw) = size(Auw) + (mAtw,nAtw) = size(Atw) + + if size(Bsw,1) != 0 && size(Bsw,2) != 0 + BswCg = Bsw*Cg + else + BswCg = zeros(mAsw,nAg) + end + if size(Btw,1) != 0 && size(Btw,2) != 0 + BtwCg = Btw*Cg + else; + BtwCg = zeros(mAtw,nAg) + end + + println([(mAg, nAg), (mAsw,nAsw), (mAuw,nAuw), (mAtw,nAtw)]) + A =[Ag zeros(mAg, nAsw) zeros(mAg,nAuw) zeros(mAg,nAtw) ; + -BswCg Asw zeros(mAsw,nAuw) zeros(mAsw,nAtw); + zeros(mAuw,nAg) zeros(mAuw,nAsw) Auw zeros(mAuw,nAtw); + BtwCg zeros(mAtw,nAsw) zeros(mAtw,nAuw) Atw ] + + if size(Buw,2) == 0; Buw = zeros(0,size(Bg,2)); end; + + (mBg, nBg) = size(Bg) + (mBsw,nBsw) = size(Bsw) + (mBuw,nBuw) = size(Buw) + (mBtw,nBtw) = size(Btw) + + Bw=[zeros(mBg,nBsw); Bsw ; zeros(mBuw,nBsw); zeros(mAtw,nBsw)]; + Bu=[Bg ; zeros(mBsw,nBg); Buw; zeros(mAtw,nBg)]; + + (mCg,nCg) = size(Cg) + (mCsw,nCsw) = size(Csw) + (mCuw,nCuw) = size(Cuw) + (mCtw,nCtw) = size(Ctw) + + if size(Dsw,1) != 0 && size(Dsw,1) != 0; DswCg = Dsw*Cg; else; DswCg = zeros(0,nAg); end; + if size(Dtw,1) != 0 && size(Dtw,1) != 0; DtwCg = Dtw*Cg; else; DtwCg = zeros(0,nAg); end; + + Cz=[-DswCg Csw zeros(mCsw,nAuw) zeros(mCsw,nAtw); + zeros(mCuw,nAg) zeros(mCuw,nAsw) Cuw zeros(mCuw,nAtw); + DtwCg zeros(mCtw,nAsw) zeros(mCtw,nAuw) Ctw ]; + Cy=[-Cg zeros(mCg,nAsw) zeros(mCg,nAuw) zeros(mCg,nAtw)]; + + + if size(Duw,2) == 0; Duw = zeros(0,size(Bg,2)); end; + + (mDg, nDg) = size(Dg) + (mDsw,nDsw) = size(Dsw) + (mDuw,nDuw) = size(Duw) + (mDtw,nDtw) = size(Dtw) + + Dzw=[Dsw; zeros(mDuw,nDsw); zeros(mDtw,nDsw)]; + Dzu=[zeros(mDsw,nDuw); Duw; zeros(mDtw,nDuw)]; + Dyw=Matrix{Float64}(I, mCg, nDuw) + Dyu=-Dg; + + P = ss(A, Bw, Bu, Cz, Cy, Dzw, Dzu, Dyw, Dyu) + return P +end + +function convert_input_to_ss(H) + if isa(H, LTISystem) + if isa(H, TransferFunction) + Hss = ss(H) + else + Hss = H + end + Ah, Bh, Ch, Dh = Hss.A, Hss.B, Hss.C, Hss.D + elseif isa(H, Number) + Ah, Bh, Ch, Dh = zeros(0,0), zeros(0,1), zeros(1,0), H*ones(1,1) + else + Ah, Bh, Ch, Dh = zeros(0,0), zeros(0,0), zeros(0,0), zeros(0,0) + end + return Ah, Bh, Ch, Dh +end + +""" +`hInf_signals(P::ExtendedStateSpace, G::LTISystem, C::LTISystem)` + +Use the extended state-space model, a plant and the found controller to extract +the closed loop transfer functions operating solely on the state-space. + + Pcl : w → z : From input to the weighted functions + S : w → e : From input to error + CS : w → u : From input to control + T : w → y : From input to output +""" +function hInf_signals(P::ExtendedStateSpace, G::LTISystem, C::LTISystem) + + A, B1, B2, C1, C2, D11, D12, D21, D22 = ssdata(P) + Ag, Bg, Cg, Dg = ssdata(ss(G)) + Ac, Bc, Cc, Dc = ssdata(ss(C)) + + # Precompute the inverse + M = inv(I - Dc * D22) + A11 = A + B2 * M * Dc * C2 + A12 = B2 * M * Cc + A21 = Bc * C2 + Bc * D22 * M * Dc * C2 + A22 = Ac + Bc * D22 * M * Cc + B11 = B1 + B2 * M * Dc * D21 + B21 = Bc * D21 + Bc * D22 * M * Dc * D21 + + C_w2z_11 = C1 + D12 * M * Dc * C2 + C_w2z_12 = D12 * M * Cc + D_w2z = D11 + D12 * M * Dc * D21 + + Pw2z = ss([A11 A12; A21 A22], [B11; B21], [C_w2z_11 C_w2z_12], D_w2z) + + C_w2e_11 = C2 + D22 * M * Dc * C2 + C_w2e_12 = D22 * M * Cc + D_w2e = D21 + D22 * M * Dc * D21 + + Pw2e = ss([A11 A12; A21 A22], [B11; B21], [C_w2e_11 C_w2e_12], D_w2e) + + C_w2u_11 = M * Dc * C2 + C_w2u_12 = M * Cc + D_w2u = M * Dc * D21 + + Pw2u = ss([A11 A12; A21 A22], [B11; B21], [C_w2u_11 C_w2u_12], D_w2u) + + Abar = [A11 A12; A21 A22] + Bbar = [B11; B21] + C_w2y_11 = M * Dc * C2 + C_w2y_12 = M * Cc + D_w2y = M * Dc * D21 + Cbar1 = [Cg zeros(size(Cg,1), size(Abar,2)-size(Cg,2))] + Cbar2 = [Dg*C_w2y_11 Dg*C_w2y_12] + Dbar = Dg * M * Dc * D21 + + Pw2y = ss(Abar, Bbar, Cbar1 + Cbar2, Dbar) + + Pcl = Pw2z + S = Pw2e + KS = Pw2u + T = Pw2y + + return Pcl, S, KS, T +end diff --git a/src/matrix_comps.jl b/src/matrix_comps.jl index d38707240..32d5a6293 100644 --- a/src/matrix_comps.jl +++ b/src/matrix_comps.jl @@ -12,9 +12,9 @@ function care(A, B, Q, R) B*inv(R)*B' catch y if y isa SingularException - error("R must be non-singular in care.") + error("R must be non-singular.") else - throw(y) + throw(t) end end diff --git a/src/plotting.jl b/src/plotting.jl index 62beec140..377c0df83 100644 --- a/src/plotting.jl +++ b/src/plotting.jl @@ -38,25 +38,11 @@ function setPlotScale(str::AbstractString) _PlotScale, _PlotScaleFunc, _PlotScaleStr = plotSettings end -""" -Get atributes from xlims or ylims -default to extrema(wmag) if xlims/ylims not defined or empty -""" -function getlims(xylims, plotattributes, wmag) - lims = get(plotattributes, xylims, extrema(wmag)) - if lims isa Tuple{<:Number, <:Number} # If x/ylims not supplied as empty - return lims - else - return extrema(wmag) - end -end - -function getLogTicks(x, minmax) - minx, maxx = minmax +function getLogTicks(x) major_minor_limit = 6 minor_text_limit = 8 - min = ceil(log10(minx)) - max = floor(log10(maxx)) + min = ceil(log10(minimum(x))) + max = floor(log10(maximum(x))) major = 10 .^ collect(min:max) if Plots.backend() != Plots.GRBackend() majorText = [latexstring("\$10^{$(round(Int64,i))}\$") for i = min:max] @@ -71,7 +57,7 @@ function getLogTicks(x, minmax) minorText = ["$j*10^{$(round(Int64,i))}" for i = (min-1):(max+1) for j = 2:9] end - ind = findall(minx .<= minor .<= maxx) + ind = findall(minimum(x) .<= minor .<= maximum(x)) minor = minor[ind] minorText = minorText[ind] if length(minor) > minor_text_limit @@ -208,27 +194,6 @@ for (func, title, typ) = ((step, "Step Response", Stepplot), (impulse, "Impulse end -""" - processfreqplot(plottype::Symbol, system::LTISystem, [w]) - processfreqplot(plottype::Symbol, system::AbstractVector{<:LTISystem}, [w]) - - Calculate default frequency vector and put system in array of not already array. - Check that system dimensions are compatible. -""" -processfreqplot(plottype::Symbol, system::LTISystem, args...) = - processfreqplot(plottype, [system], args...) -# Catch when system is not vector, with and without frequency input - -# Cantch correct form -function processfreqplot(plottype::Symbol, systems::AbstractVector{<:LTISystem}, - w = _default_freq_vector(systems, plottype)) - - if !_same_io_dims(systems...) - error("All systems must have the same input/output dimensions") - end - return systems, w -end - @userplot Bodeplot ## FREQUENCY PLOTS ## @@ -240,13 +205,24 @@ optionally provided. `kwargs` is sent as argument to Plots.plot.""" bodeplot -@recipe function bodeplot(p::Bodeplot; plotphase=true, ylimsphase=()) - systems, w = processfreqplot(:bode, p.args...) +@recipe function bodeplot(p::Bodeplot; plotphase=true) + systems = p.args[1] + if !isa(systems, AbstractArray) + systems = typeof(systems)[systems] + end + if length(p.args) >= 2 + w = p.args[2] + else + w = _default_freq_vector(systems, :bode) + end + if !_same_io_dims(systems...) + error("All systems must have the same input/output dimensions") + end ny, nu = size(systems[1]) s2i(i,j) = LinearIndices((nu,(plotphase ? 2 : 1)*ny))[j,i] layout --> ((plotphase ? 2 : 1)*ny,nu) nw = length(w) - xticks --> getLogTicks(w, getlims(:xlims, plotattributes, w)) + xticks --> getLogTicks(w) for (si,s) = enumerate(systems) mag, phase = bode(s, w)[1:2] @@ -270,7 +246,7 @@ bodeplot yscale --> _PlotScaleFunc xscale --> :log10 if _PlotScale != "dB" - yticks --> getLogTicks(magdata, getlims(:ylims, plotattributes, magdata)) + yticks --> getLogTicks(magdata) end xguide --> xlab yguide --> "Magnitude $_PlotScaleStr" @@ -284,11 +260,9 @@ bodeplot if !plotphase continue end - @series begin grid --> true xscale --> :log10 - ylims := ylimsphase yguide --> "Phase (deg)" subplot --> s2i(2i,j) xguide --> "Frequency (rad/s)" @@ -313,8 +287,8 @@ end yscale --> :log10 xscale --> :log10 yguide --> "Magnitude" - xticks --> getLogTicks(w, getlims(:xlims, plotattributes, w)) - yticks --> getLogTicks(magdata, getlims(:ylims, plotattributes, magdata)) + xticks --> getLogTicks(w) + yticks --> getLogTicks(magdata) x := w; y := magdata () end @@ -332,7 +306,7 @@ end xscale --> :log10 yguide --> "Phase (deg)" xguide --> "Frequency (rad/s)" - xticks --> getLogTicks(w, getlims(:xlims, plotattributes, w)) + xticks --> getLogTicks(w) x := w; y := phasedata () end @@ -355,8 +329,15 @@ the sensitivity and complementary sensitivity functions. `kwargs` is sent as argument to plot.""" nyquistplot @recipe function nyquistplot(p::Nyquistplot; gaincircles=true) - systems, w = processfreqplot(:nyquist, p.args...) + systems = p.args[1] + if !isa(systems,AbstractArray) + systems = [systems] + end + if !_same_io_dims(systems...) + error("All systems must have the same input/output dimensions") + end ny, nu = size(systems[1]) + w = length(p.args) < 2 ? _default_freq_vector(systems, :nyquist) : p.args[2] nw = length(w) layout --> (ny,nu) s2i(i,j) = LinearIndices((ny,nu))[j,i] @@ -444,7 +425,11 @@ nicholsplot val = 0.85, fontsize = 10) - systems, w = processfreqplot(:nyquist, p.args...) + systems, w = p.args[1:2] + + if !_same_io_dims(systems...) + error("All systems must have the same input/output dimensions") + end ny, nu = size(systems[1]) if !iscontinuous(systems[1]) @@ -572,6 +557,10 @@ nicholsplot end +nicholsplot(systems::Vector{T};kwargs...) where {T<:LTISystem} = +nicholsplot(systems, _default_freq_vector(systems, :nyquist);kwargs...) +nicholsplot(sys::LTISystem, args...; kwargs...) = nicholsplot([sys],args...; kwargs...) + @userplot Sigmaplot """`sigmaplot(sys, args...)`, `sigmaplot(LTISystem[sys1, sys2...], args...)` @@ -581,7 +570,10 @@ frequency vector `w` can be optionally provided. `kwargs` is sent as argument to Plots.plot.""" sigmaplot @recipe function sigmaplot(p::Sigmaplot) - systems, w = processfreqplot(:sigma, p.args...) + systems, w = p.args[1:2] + if !_same_io_dims(systems...) + error("All systems must have the same input/output dimensions") + end ny, nu = size(systems[1]) nw = length(w) title --> "Sigma Plot" @@ -604,6 +596,9 @@ sigmaplot end end end +sigmaplot(systems::Vector{T}; kwargs...) where {T<:LTISystem} = +sigmaplot(systems, _default_freq_vector(systems, :sigma); kwargs...) +sigmaplot(sys::LTISystem, args...; kwargs...) = sigmaplot([sys], args...; kwargs...) """`fig = marginplot(sys::LTISystem [,w::AbstractVector]; kwargs...)`, `marginplot(sys::Vector{LTISystem}, w::AbstractVector; kwargs...)` @@ -611,8 +606,10 @@ Plot all the amplitude and phase margins of the system(s) `sys`. A frequency vector `w` can be optionally provided. `kwargs` is sent as argument to Plots.plot.""" -function marginplot(systems::Union{AbstractVector{T},T}, args...; kwargs...) where T<:LTISystem - systems, w = processfreqplot(:bode, systems, args...) +function marginplot(systems::Vector{T}, w::AbstractVector; kwargs...) where T<:LTISystem + if !_same_io_dims(systems...) + error("All systems must have the same input/output dimensions") + end ny, nu = size(systems[1]) fig = bodeplot(systems, w, kwargs...) s2i(i,j) = LinearIndices((ny,2nu))[j,i] @@ -659,6 +656,10 @@ function marginplot(systems::Union{AbstractVector{T},T}, args...; kwargs...) whe end return fig end +marginplot(systems::Vector{T}; kwargs...) where {T<:LTISystem} = +marginplot(systems, _default_freq_vector(systems, :bode); kwargs...) +marginplot(sys::LTISystem, args...; kwargs...) = marginplot([sys], args...; kwargs...) + # HELPERS: diff --git a/src/types/ExtendedStateSpace.jl b/src/types/ExtendedStateSpace.jl new file mode 100644 index 000000000..f1bad8d62 --- /dev/null +++ b/src/types/ExtendedStateSpace.jl @@ -0,0 +1,190 @@ +##################################################################### +## Data Type Declarations ## +##################################################################### + +struct ExtendedStateSpace{T, MT<:AbstractMatrix{T}} <: LTISystem + A::MT + B1::MT + B2::MT + C1::MT + C2::MT + D11::MT + D12::MT + D21::MT + D22::MT + Ts::Float64 + nx::Int + nw::Int + nu::Int + nz::Int + ny::Int + function ExtendedStateSpace{T, MT}(A::MT, B1::MT, B2::MT,C1::MT,C2::MT, + D11::MT, D12::MT, D21::MT, D22::MT, Ts::Float64) where {T, MT <: AbstractMatrix{T}} + nx = size(A, 1) + nw = size(B1, 2) + nu = size(B2, 2) + nz = size(C1, 1) + ny = size(C2, 1) + + if size(A, 2) != nx && nx != 0 + error("A must be square") + elseif size(B1, 1) != nx + error("B1 must have the same row size as A") + elseif size(B2, 1) != nx + error("B2 must have the same row size as A") + elseif size(C1, 2) != nx + error("C1 must have the same column size as A") + elseif size(C2, 2) != nx + error("C2 must have the same column size as A") + elseif nw != size(D11, 2) + error("D11 must have the same column size as B1") + elseif nw != size(D21, 2) + error("D12 must have the same column size as B1") + elseif nu != size(D12, 2) + error("D12 must have the same column size as B2") + elseif nu != size(D22, 2) + error("D22 must have the same column size as B2") + elseif nz != size(D11, 1) + error("D11 must have the same row size as C1") + elseif nz != size(D12, 1) + error("D12 must have the same row size as C1") + elseif ny != size(D21, 1) + error("D11 must have the same row size as C12") + elseif ny != size(D22, 1) + error("D12 must have the same row size as C2") + end + + # Validate sampling time + if Ts < 0 && Ts != -1 + error("Ts must be either a positive number, 0 + (continuous system), or -1 (unspecified)") + end + new{T, MT}(A, B1, B2, C1, C2, D11, D12, D21, D22, Ts, nx, nw, nu, nz, ny) + end +end + +function ExtendedStateSpace{T,MT}(A::AbstractArray, B1::AbstractArray, B2::AbstractArray, C1::AbstractArray, C2::AbstractArray, D11::AbstractArray, D12::AbstractArray, D21::AbstractArray, D22::AbstractArray, Ts::Real) where {T, MT <: AbstractMatrix{T}} + return ExtendedStateSpace{T,Matrix{T}}(MT(to_matrix(T, A)), MT(to_matrix(T, B1)), + MT(to_matrix(T, B2)), MT(to_matrix(T, C1)), MT(to_matrix(T, C2)), + MT(to_matrix(T, D11)), MT(to_matrix(T, D12)), MT(to_matrix(T, D21)), + MT(to_matrix(T, D22)), Float64(Ts)) +end + +function ExtendedStateSpace(A::AbstractArray, B1::AbstractArray, B2::AbstractArray, C1::AbstractArray, C2::AbstractArray, D11::AbstractArray, D12::AbstractArray, D21::AbstractArray, D22::AbstractArray, Ts::Real) + # TODO: change back in 0.7 T = promote_type(eltype(A),eltype(B),eltype(C),eltype(D)) + TBC = promote_type(promote_type(eltype(B1),eltype(B2)),promote_type(eltype(C1),eltype(C2))) + TD = promote_type(promote_type(eltype(D11),eltype(D12)),promote_type(eltype(D21),eltype(D22))) + T = promote_type(promote_type(TBC,TD),eltype(A)) + @assert (typeof(to_matrix(T, A)) == typeof(to_matrix(T, B1)) == typeof(to_matrix(T, B2)) == typeof(to_matrix(T, C1)) == typeof(to_matrix(T, C2)) == typeof(to_matrix(T, D11)) == typeof(to_matrix(T, D12)) == typeof(to_matrix(T, D21))) + return ExtendedStateSpace{T,Matrix{T}}(to_matrix(T, A), to_matrix(T, B1), + to_matrix(T, B2), to_matrix(T, C1), to_matrix(T, C2), to_matrix(T, D11), + to_matrix(T, D12), to_matrix(T, D21), to_matrix(T, D22), Float64(Ts)) +end + +# Getter functions +get_A(sys::ExtendedStateSpace) = sys.A +get_B1(sys::ExtendedStateSpace) = sys.B1 +get_B2(sys::ExtendedStateSpace) = sys.B2 +get_B(sys::ExtendedStateSpace) = [sys.B1 sysB2] +get_C1(sys::ExtendedStateSpace) = sys.C1 +get_C2(sys::ExtendedStateSpace) = sys.C2 +get_C(sys::ExtendedStateSpace) = [sys.C1; sys.C2] +get_D11(sys::ExtendedStateSpace) = sys.D11 +get_D12(sys::ExtendedStateSpace) = sys.D12 +get_D21(sys::ExtendedStateSpace) = sys.D21 +get_D22(sys::ExtendedStateSpace) = sys.D22 +get_D(sys::ExtendedStateSpace) = [sys.D11 sys.D12 ; sys.D21 sys.D22] + +get_Ts(sys::ExtendedStateSpace) = sys.Ts + +ssdata(sys::ExtendedStateSpace) = get_A(sys), get_B1(sys), get_B2(sys), get_C1(sys), get_C2(sys), get_D11(sys), get_D12(sys), get_D21(sys), get_D22(sys) + +# Funtions for number of intputs, outputs and states +ninputs(sys::ExtendedStateSpace) = size(get_D(sys), 2) +noutputs(sys::ExtendedStateSpace) = size(get_D(sys), 1) +nstates(sys::ExtendedStateSpace) = size(get_A(sys), 1) + +##################################################################### +## Math Operators ## +##################################################################### + +## EQUALITY ## +function ==(sys1::ExtendedStateSpace, sys2::ExtendedStateSpace) + return all(getfield(sys1, f) == getfield(sys2, f) for f in fieldnames(ExtendedStateSpace)) +end + +## Approximate ## +function isapprox(sys1::ExtendedStateSpace, sys2::ExtendedStateSpace) + return all(getfield(sys1, f) ≈ getfield(sys2, f) for f in fieldnames(ExtendedStateSpace)) +end + +## ADDITION ## +# not sure how to best handle this yet + +## SUBTRACTION ## +# not sure how to best handle this yet + +## NEGATION ## +# not sure how to best handle this yet + +## MULTIPLICATION ## +# not sure how to best handle this yet + +## DIVISION ## +# not sure how to best handle this yet + +##################################################################### +## Indexing Functions ## +##################################################################### +Base.ndims(::ExtendedStateSpace) = 2 # NOTE: Also for SISO systems? +Base.size(sys::ExtendedStateSpace) = (noutputs(sys), ninputs(sys)) # NOTE: or just size(get_D(sys)) +Base.size(sys::ExtendedStateSpace, d) = d <= 2 ? size(sys)[d] : 1 +Base.eltype(::Type{S}) where {S<:ExtendedStateSpace} = S + +function Base.getindex(sys::ExtendedStateSpace, inds...) + if size(inds, 1) != 2 + error("Must specify 2 indices to index statespace model") + end + rows, cols = index2range(inds...) # FIXME: ControlSystems.index2range(inds...) + return ExtendedStateSpace(copy(sys.A), sys.B[:, cols], sys.C[rows, :], sys.D[rows, cols], sys.Ts) +end + +##################################################################### +## Display Functions ## +##################################################################### + +Base.print(io::IO, sys::ExtendedStateSpace) = show(io, sys) + +function Base.show(io::IO, sys::ExtendedStateSpace) + # Compose the name vectors + println(io, typeof(sys)) + if nstates(sys) > 0 + println(io, "A = \n", _string_mat_with_headers(sys.A)) + println(io, "B1 = \n", _string_mat_with_headers(sys.B1)) + println(io, "B2 = \n", _string_mat_with_headers(sys.B2)) + println(io, "C1 = \n", _string_mat_with_headers(sys.C1)) + println(io, "C2 = \n", _string_mat_with_headers(sys.C2)) + println(io, "D11 = \n", _string_mat_with_headers(sys.D11)) + println(io, "D12 = \n", _string_mat_with_headers(sys.D12)) + println(io, "D21 = \n", _string_mat_with_headers(sys.D21)) + println(io, "D22 = \n", _string_mat_with_headers(sys.D22)) + else + println(io, "The extended statespece model has no states..!") + end + + # Print sample time + if sys.Ts > 0 + println(io, "Sample Time: ", sys.Ts, " (seconds)") + elseif sys.Ts == -1 + println(io, "Sample Time: unspecified") + end + + # Print model type + if nstates(sys) == 0 + print(io, "Static gain") + elseif iscontinuous(sys) + print(io, "Continuous-time extended state-space model") + else + print(io, "Discrete-time extended state-space model") + end +end diff --git a/src/types/ss.jl b/src/types/ss.jl index 3d5aa5b5e..518b8e78b 100644 --- a/src/types/ss.jl +++ b/src/types/ss.jl @@ -32,6 +32,10 @@ function ss(A::Union{Number,AbstractArray}, B::Union{Number,AbstractArray}, C::U ss(A, B, C, D, Ts) end +function ss(A::AbstractArray, B1::AbstractArray, B2::AbstractArray, C1::AbstractArray, C2::AbstractArray, D11::AbstractArray, D12::AbstractArray, D21::AbstractArray, D22::AbstractArray, Ts::Real=0) + return ExtendedStateSpace(A, B1, B2, C1, C2, D11, D12, D21, D22, Ts) +end + # Function for creation of static gain function ss(D::AbstractArray{T}, Ts::Real=0) where {T<:Number} ny, nu = size(D, 1), size(D, 2) From 61ae0a36e1ce81b1cb4b258f98590c1a988efdde Mon Sep 17 00:00:00 2001 From: Marcus Greiff Date: Wed, 24 Oct 2018 23:34:08 +0200 Subject: [PATCH 02/66] Clean up dev and remove deprecated files --- .DS_Store | Bin 6148 -> 10244 bytes dev/example_DC.pdf | Bin 753752 -> 0 bytes dev/example_MIT.pdf | Bin 753035 -> 0 bytes dev/gainPlotQuadTank.pdf | Bin 231313 -> 0 bytes dev/hinf_example_MIMO.jl | 104 ------------------ dev/sigmaPlotQuadTank.pdf | Bin 1335028 -> 0 bytes dev/stepPlotQuadTank.pdf | Bin 460839 -> 0 bytes dev/synthesis.jl | 216 -------------------------------------- dev/test_hinf_examples.jl | 92 ---------------- dev/test_hinf_private.jl | 65 ------------ dev/test_hinf_public.jl | 65 ------------ 11 files changed, 542 deletions(-) delete mode 100644 dev/example_DC.pdf delete mode 100644 dev/example_MIT.pdf delete mode 100644 dev/gainPlotQuadTank.pdf delete mode 100644 dev/hinf_example_MIMO.jl delete mode 100644 dev/sigmaPlotQuadTank.pdf delete mode 100644 dev/stepPlotQuadTank.pdf delete mode 100644 dev/synthesis.jl delete mode 100644 dev/test_hinf_examples.jl delete mode 100644 dev/test_hinf_private.jl delete mode 100644 dev/test_hinf_public.jl diff --git a/.DS_Store b/.DS_Store index 5008ddfcf53c02e82d7eee2e57c38e5672ef89f6..68bd7bb51ca19fbf19d0f2c8e20e5bc62bdbda70 100644 GIT binary patch literal 10244 zcmeHMX>1%t7JkomlJ2-o%8s35G8RJ&3L#d=L1I`IGCqTYgN?^$VlwHOt~d?t?xDLq zPBxge_6Jfpf&g&{1meCT;13Y^gG9IwAx?=PBqXk%%L;_V{#kg{)iWNCoj)t>3MpNq zu2=Qyy{f5izW2)21^{fEG&Tby06?KfNTyM>KoR5OnO7=8%`%cm{@`RYmXo0#n`av- zA_O7?A_O7?A_O7?{u~I5AbM1H-!mN_QGhhW0a3N_W6uWtt~k8N(Y2hF1?v z1m=KADWf_s5Wx6?Wq@`t3bK;_{+oz}5F-2Lkep~DA(cJXSk3RPJ6Hh+%^vO3ROcz3En*ETe)Sh=cUb={hHnk~=h+3Ut# zv6FVka@;m+lBd}+k5KE*I(E335uYFOQ|8}jsIJVRpBwvTRRf1}WK%z@2qxX>a&GS( zcTJ=BzyXi@BPH!ov0B!3EUVA)Oy6|u(Xn84pHFn#2OL^az}cGvl>Mo68afr4glZ!>*ys;hXL{e&UTc-+t%a z_rCl72SSiaF;mpbezE?MS|O^Im+zB#v*MA3@rreJb*|8^IBnp~O%20Y$C{k5y)>)M z>Q;8rBKTS@ON1Qh%0s&(k(3RM?C~7er*uJ+r5T&_ct5AP%slU)8NFg0GgO~FYh^rf z-USz4bn#`Mi=3v_Yb%EHBG+1ca7v`%QQgaO+n`Y2L&@3p%>yQP)mm&;2W)+UORv?j zH7a{a88c}9-Hst_j9?_TI(D|A>=pWUms2g(+S=H;D$|t#kM<^~Sf{O5nWqk1N9Tcb zZPqp_%uok|BqUXvwXF)fQXS6A+$ELuT8pBNWSxl#`g)$!{U!ESg}tln6ASm~p5L3} zHmzNE`Hp1k>R7CNYlSV33j0>W;D(|oC0Q)YY?Qq=g+x%G5w=j+_P~A$up@9A+y}?u zMR*xbz)AQ3K7&(~!2St8!O!pu{Dz1XScQwQ4%c8D8*x2u!L5|iw&SJPft|P$ufW|n zgu^(BdvHIRcr98ufs=S6{vBuVDBg*8;oW!-K7r5Ui})J8jUVGD_$hvdU*iubXi24* z47+8&P~%V3nx$=cz*QVwn6~k*om~xD_n()xr{n=#Pp5Cd-b*fTD-xjWH!tO0KsU*! zfM*3B1x%hx-c>~Dc%yc9ff?nD86=wWLyCw4w&e4`dTsn%!8xYL?z;GTg<^tL1YNB; zzELoqRm#zT$%e`n$%r!d~p76E=l|xDV5)V+IW(qm4Pd9zDDPrvp;{ z18>1w@fhBYci{c_06vHh;lub0K8wfkIeZyU;4Anlp2QDOoJ&-S^xP%;g&M!0R!Glz zXSGkKum^tG875BB(le|uRU{(>A_O7?&P)U<<+c;z{eS1_|Nnnxf)njJLf{NR0INDu z9c{GP!po8JeT#SP33~R^BZ{z_kuq?hDtH}FvWnEABVNY`7a`IWu0g^tDaJ|8NJ%X! V|M!0e%zqOZ-T$Ne{~2}v{{xzb<4OPk delta 95 zcmZn(XfcprU|?W$DortDU=RQ@Ie-{MGpJ516q~50$O>XJZj4{SKCyv&F*^r`ATvk= ksE8X#xB{{2#=`H+llfH?85t*=su;0?3}o0G&ohS^0Ke@IWB>pF diff --git a/dev/example_DC.pdf b/dev/example_DC.pdf deleted file mode 100644 index 28fd0a6e9f60e693cb84fbd6743aeb7c958d9043..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 753752 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%0ApOfUw?812mB^~J zk+8w*`&I}Lw+q&vcJlY9ItVl9Rty2p#Ps0r zh_EE9ceo)=*9ewhnA4^dqBaW^A>n~So)`cKh=EJ+T(U!@H7kFsH@LtjYT%KZk7t3G zZ01s3Q;JsQCwK$;&*hzU?ekjq?gy>SAM!%nB!&Rn&z;!>>msmN9Xhzk0dX&EAy&Jh z ze)!U9K3dn`r`kt~WqX10tf#q9tGMf-_A^Y#{6;=Z0AAHw{1i`}1^9YABw~$9Wb}yC zJQ8H~uoQ90j0nUrg@BXp&5Z8G(D~IFs9As+dujuadZOGc&_Akx9MrI79Q4x-*WQ^U z4j@H`fsQM|V5tu}?SzQ(;Q+(;RQ|gaD%e`}Wj{kzS-m z+zhp^g6doZ(Yp=4$4GdmAhBSIQx2V;l8v(!4+uPa#Ju0Dg}vpS5%W2yx3%z+Q=>XO zEJ(w&YnA#dXuFYhbcSYiQsh+A{DMo6+7wlCGR{q^{j3!RkI@l~^rDt&gmewDHnBE^ z#G4am4$o`NazBV1K~{fR0eei3EBKNMiblRm6pdVuHXm~1d@Mk;Gv#BL$8cT6h^qK$ zceuQux8^*ThlJ|QYo1WJmZNn^W3Ly8y2bhMVQ3~KtBATIU(TXVAx`KIZ;V=}q6Hlu zw>6K|9n6MR(_fK|^R=!`a;3I~o{SuW0bz zqoeQOG*c#j=uf45S`=2L}OO zVtyO?Q6X+GJk!OuZFq^vZD^|iYTsM&Z5@JtG1T6O8_8{G@oRCT;}FR$fO-mQ`aH*+ zLR|Peaihx+sRLk8GvzsQ07e&gw`QsR@cqsdHADE7LCH&A;?rvrnN}&pShi?d0o!^pmKB;Y8^O^59O)pWa3cGU1j*ZO^}Lxb7eXfHi{x=tTdTn+K*s@Cq&>`3=g`Ru@$ z*1REr-d}@2HDlS4UBAx4vZmeXg=dQ-rWK~%l{JkX+hwJ*peL5y)+HcdSqd-Nk!4F2 z82nIC>QXFgMk}w!N+Kwfd&VEh$A^Rv~jDu&kbuLt7{`g^cv_AX}poGZ}?D z@_p1_7SR;6s{k^b7Fq}td#!Ysx*$&1iU10&*58w4A!%=##^C?t3_~^EheD*g#I(}6 z)(-iGxnH zO`xMC%u68*{>29jSJtMkMQ7PZ6tJ_IRs}1n@wYhhAMQ#iqWPTg zpUPSG&_V*5o0t6yg*JFJvFK5IknKTA1(Zgn>e<{mhC4uR>|CZ5(U?FkqS;f-fZ3vK z|B!Um?Fld!?vIusBEE(pQ+}=hUKdpsoZKejsDPj&+zktDu)SRuW-%U}UTcLtCik(g z&wQ%SOp5!eP>-{ZHLB*g=&!ssZI35DofF?Pq^1z!-ajKdu(HE%-oPBgFG_-IuY-J> zT`$d>ZZg7q;y!!(_41%noqQaiEDD|2I8S7q`|3P7zE|JrL;N68jOnXl{pJZBGbV}; zxSx5rfI>StP<56a$=Rkz3LAO1a!79c;r)`;)vi57se^|k>V~J-q!rAT4yVkM+jms} zZAnpL1m;S|sy!=n^Gjw_yIxZ%+FmiQCHJi!_LfTP_La0w754T;*k>xj?TZ8jhi+}H ze_*|yEOe&9Cyq$9FEIcw#X3gZQ6j3_IR8Sw@S-p$8DXtE<22Z zW-uVNcy`xU4d-Gi0A@^V%4<5(CA!&s!URun_BJi=*P+lb%#V*zS8*{zC zo<3P==rJ!87_(PX%-q^4VmqSP=gGvbmfX6w8N~%R_NH-|ExE{0I53ogQ||p=%a6Xr zr(@=^Hf^{0wEv1CAg%on^YH%tXsYqp5z;#$7r}Yd2{`_Qnh)>QSzg<1Y>?_@pM8ob zt9)N8oJarHug#6o4-JsfjP|-Xr>Po`jaH2*-pg|*y5##mNwLU?Y|=V(XeY_431dUjyzqi!-xgA(>2J{{GUgij~Qk>+DHaxUPJpZtCL z*gmi=3gD~A1TAU0TLC=ceD*y=jE=HODLd&58~UNJe&A~IADu`3vS_eQGjW zBu**1-PJN2uK-TS4R523@PrW$!3Z*AAKpL1=HSy?_s=6@@^74?JU1FUf~mp4%$%a! zhPunXwxFb}Wz!5-Z@1y+@U61BCS8pcA1;eq@VDUo3%XG;R}9s&mm?D~FCN;z@hm(K2Oy4HVx}iieqDM@}RAr z&9p*oca3Lbm9XXbbZWCJl*(8KfcC*;Drb`c3BLp!b7?+e8CCO@C^Y$O7`>zSt7cpnF7KUtaos4Y8?c#Ru`WvRI=2LsDmS%Bya zpkFPBa%bsC~084syTB*1s~^02~dyk9kj~vx2@R|b6&WHX_doNie(qa zt(u$7J=g&1Xq|sW0l}rTfZIsMQE0eSS|KMXR*4xh<7rFtN-NaqQw6KJ1-~40lp!SxIg3$yv+tOy#q=R%HbU1rvlq00XM{ z-pU}i9>G*FpiAH2h5N%iP6*-QD#(X&tiFnHv#@1a`PIgzz&eT7%;wHuz@Dyw)d3&{ zGbfuH$8N``7f@^$cs))aJJo&yzh{wu!~G=eslT616nUGDa3a#Omf@p39&fGw810{b zBNUVJtZBO81Qb*{d0RnO1Y%~F%ib4U>*DhFe4TITvE3$p^|EW>Cu;RMPMI#=%<>O= z5?8ANU>YkvEdRy?PnE%sXbG+GEG@XgX~O4!+km4l=vA2BV1;O>?pX zld@*kqt6SuOe+S(?JObh{Z7i;L_ZaO+gQS`@{t+h+j(O%Ab3lN+z3%YM+(g}zhyo3 zm@>*V|3=l->3yhmJ8a4#z*oDTAv93jVhFq1RN;hhSot`hN(lAnaBLT{x0K8h-=>gZ z<*V2N;zEon>`3HWxV8DS*Hf2cjhR-Qasx;JJ6Pn((xMx{Uaq=HK9qk|IYj<&|Lc6W z<--+Fk6uSTC9NrU$OUH?reGLEfkT&ToMp*4o4?aC4_T;QRPFlRjl|jBP1|lBV z*equPg|;r62$1_FtwGu@OQE-y$d%M2YYhUMsI|MVWhn18xC zW%e!H+a?`D?w9PSkavgskH^(5+~cI~2o`JWPu0b;ILFnqgIK5{+yD|}`Q?s!sNeCj z`DA>$llLIF^ma~(E6bnAqtGg=7wmCLA!85;?ir7r&0^FBC65i%1{qF>U|Cyed-N;1 zOn_UZd`Mxpxu)tc!gvBWiR0lUnf=+SmJ`D+j(3Fhg-?oSYr0e>L%~UAM|KNmg1{sG z=}r{6R)6_$%!?kSQ2_)foR7Fuj)^%vkZF3vAUD5mj18d+9bz`lyZHm11#j;WR0!w{ zK*R*4VH-qxz(yqrWAN$h7}hPA8>2@>xvta&`-##3luu$f*e>1&UIv6wwL#ev5r_n3 zDIk!t7ATKsogLU$+hbMxkpsomCp}gv5=9389C%*sYzaP{j*o?!cwTnk=hdL%{AL{n zUx{RcWv#+~#i!e2;@FYQP?)cZ&Q(|z^C0-5v+ViVT(xX)J&tJ@@RR;3ZCdL(!An&1 zsxrdDhQnYA7j*u_2rK_sg=}x&MMynzvVHP}GC;420UD5AD}DtH7Dz`W8WBL=U!i-s zwH<|~JVXb#RrPTSu<%wn{YRBD0hF2Fps9=R4OqM7z)rfur(|CGuYyA zKz1z%Vm%OcF+~C=?j`Ii5Qt&B=D?jIh^fFk_vGcG*MRZ;ArraL1h--)FBGK;x7ZD# zt{38td?BP>5pLNJ_bfgW9y$$?4hB#^ToPt(8zR9yp%d@KyH5_0S^#!cn0aD|1c8?m zbn)(pArgdKKBNjWX>I7BFR;<@93garh}(|}@zH~KYgY|L$VG=iApsx+l6icHbgvM1 zkS=ZvA0mAWq&|o4No{DKFNEW3c#bZA6Z!d<+YEnq!(q8B-~7*;Fh3@t{|M~P=APX{ zrLe6bUwz0*7K#eWfDlh1K=R>o#NUT<{_dvCAMqWy;^h8!w;KLAv?IIf@UNjANVfaA z8x@j{gZK`GEvkS>RuN6z4Q5zrJA_N}R~dn%NHX6K*>w$$)ae;LHIOoIJtiynL_u9s ztg8VbNIYDaL#}{LwvWo%4aHALfcz#2GU_QgfYmz{a_F&_I~a~s3tQ1sj%uGhk_&H1 z!SR-kPMW$7L>$e#V3C0FG@ykNMKJC=xN$Lxg4q9n&=j9;Z~<^4x~w`wrBQ7`8IXzJ z>2!u2*`p8|79}Li#j-S7X9{CGf$6M}Xh6SnqabVO&uHc@Ei9YpF3Lb>=9ye%GoMbw^!Ea7hW=AZz0FK53}r%xaz>OtO2OQ3gcH`C*c$WQAka#D%sw zw?;&sUBUzw+99k7(D*ZxSm;VJ<^(kMr2ycA5&*Qw=J^ucSO*U_dUv@gRQIh%sxM)x z=taRc^=M(Z$#DRXAIw z4_Q!|CHa+FEc0SgFr`Nn$9pr&+_-(%t(lq3)#zYbwfPe&BYurvN5kOn?b8~vkd|GU zA5@k%XLd68ET>WjDQBGSv1S&@cUd@1_{v$()RD_#QB!L9u@U{#Eof-#-RLrZ0`vOI zsmWaBoDZt_G@{Y64ByCt>6$FX&K*;0!zw~t%KS5i+ZW)|4B#%(jqquJ$!lgu;+@8# z#y`yXxVLk=mK+dt?w?~p!!&C_KOZ@y-yK=MmH0Fq<=)Zg9#O^W7s{F})W>9t#G`@n@mvd=cRa)B|OGtSABx~l{e@-Lfk6wIb zDeZc@BsEY{etnBB3zAP$WF3|zq;X?hzFb0@FA4RRWz4$Th9)N%bUjlL!$xq@OI1*Q zqrdKn8bUElA7Qx0@pBsFr8?GqmI1#4P<8*mzhwAtZXf=2+wkA{*v16hvU$O@ppLZvrxz;!^GlBZhzXJQ z-{ATwTqXUd>#4{U*KgXVQi~N_^*9?)uOsSX1I*6;`8WPS>A$_?`H!6b=l3?>e470~ z{cG8?>VMAX?=GnR*RuC||Mb83`@dG0Vl6+3LwNYxvt28^?(C-7Wu_%RL;$cT8OO|qSu@h~^FcTFr92H>J zHo|-T$zs;2QRU&+pZZp?BFp_JUVp;dcN=(BY9*4>RCXkD=M}=!(seYH=4Akc>?MpQ z+GSe`dOv4?NO}AQ^iZFu4;8YUII65U7>_&g`3AtFg$-y^OXwrj5$iII?5Sn92osrS zD>cR48Y^uD)mnTVaku5Dj`-V7TH(4c7)#cWh2(RZu;!c-jqm@PJ&oUMVLnprxEPDw*`^Qy+7u0(JD&1_i3ShkH_5QuDFdmKx`iQ-R_e3pq+rtkv*}_@OAWQc&#yj})pRTZ z?Z3W-(`DF;?!boo74p*9JvLY(uJXj>l z3S+pK7a_8S+jEsj)gxx=XkAsDn+46q`$1e!+YG7K=L}BLvef~#c@1}&9A)u0xBa|2 zf8S=U;U4d`3!P~|le(Vzws}3|o}?_*(%4~?r&t@7nAD3;(=deQg{ws2Qw5$?d}V>B zd(R5symULHS1ioCr2r8X{BsBq)LaLGc5^H!={UPl^#D1AWna21%(3kohD0U@Kc9xs zK%eU8>B$qNsp<<7rUG5N?3diSvYJyMrJf$_T4ghyyt343Ucb*EXX>)p@uSVr54;HH0 z?(r*2V%`LG9pJqMyzbECw7}{SO-ok()OUf^>A1NX!@4Z2KOqIccC~P*MAtT$X2 zAmVKve0vabdV+s_#@_Oad!^m|SC)PbdT@M*OR`7}>^MQQ zB>Jx|>(@}d4{17(5jeF&V_{z2ngE)HrZTh}9n!I61z&GI&9k%Hyk-k6teS5bKwCwl zrv|$D+n_92dC?~DyzB|=&eg3;;6Q@zU|fdA)QhuWxQE_L+xgXoMXQE8+#eAL=hL_? zqDZ7+$p^?ca?B#wf+UcJ7y_&@kYcnuZx@imVXcNoRUQiw%y|jZ5o+~7d7j2oU6!?3 zsU59wJ!Uhl(0!W6=d{)tEsEBWn+7wcfJVxz!at`eFKb-N!oK9XK-Fw6AQQ7di*2RB z$VF51xMb5WH+^P~(|bhU4s$S{r?=Q0ma%t~A1Yn)NvLWW4Z-(UmZUQXV%Z#ZOV$~c z^{Iir@p*Es)|p-5=m47X=!ws1)Mf>xfPpVu%m@7>_c+aA|QiruJ>;+)H5nI zAbReIMF2$6>QD3HyuJ6rS%&xAWNs)w&YuI=yBi>Z58aV`^OYs~3}mo{6IPZiyOT(ISwd&nSZIe z`LbMnx9fxwP1d>wkExFh2+!;M-P(T=&P(P-eR_dOSw~YrI<*qVT4@xdY0K)VwHW#rRAmQ5*@C-Mh>$#Pu;iy?Zu;`)()O{stMcgoyHR3|#N>dp@%0`t3u1K$=hc_tegcSf-)eX{`RqyyTER?> zGA+deNOILA@&JN+gv=$gQI)*`X`Icu@@=V$gDq(V1CgggP9Gj7ucH-sN1YBiE31Z7 z9Gv=bWb3gQ&|9&hkyMV&c+Rx)pqp#1baZpO+iAP?`6ugcVmf%LSDUu_T()L zv@pM}*P^q)Gye{ZxIMp63nFN#{eo&=A;qH}!7O`8cz8<+QrwcdXFi6a8VYdK1Idoi z+w7`T_=Obp`(wz4TW(fgfou^82-lXE;6vL-AhbFB(IvOB#m6$l9e83zo#xbL9~+B& zbLxWNT8M2Ht+qh&1K$rhThMqu)sT04+hJ!+Pn)k}wxT!u6ApCn5L;Gh79m9MOKsZy z-8?+ZHCe&Ge~@Mjffz)mkhE5xk6*_usmp07d>SK;E3e5Cnhhbz$rK%x+QRnn*veLZ z<`U-A5gMZbYwrIA%6BD-r9P&Ix zeS8|H)`HX%iTN@D(e}N4$1P}s#;NPzw)BD;9#eGKBYSM4$hd5rdLQ@`tSN-N+P57XNFwy; zLnitDRtOz9Za6bVlQn)#V^$c85fuqN*&Ry6k|CO>6II)MxRr-Fo8wM zNUjQ;?rYa=`OR$Uh~~)I)KFUyRx5$^)BAH(TxR+_K$)FX73i&dt}3v8r(VWV^W|!E z5^gW_$Y_8H-DQBjC^|* zkBDO3W*k1g?#=p@t7(?Ng0cmne&KPf!@;(l2OaKer7lR`d@!vO5yTjVW-#QurJFD0 zh3PWEg0tkTU8zHu9l$INWNpic55H}tcHCe3vl^Xsesh3cWA+1ugy+hN?GDx{ti06F z(u@bS>c<)CW1+f(6-zV{Sjx5DdKtCcE(dE|YUqV3ZmfzOU~SWjTbepwaXM6Q)&lD# z{>#+pjIE39b$zyMG)Afm>~&YG#Y0n*!&<1)$f=>e^j2j&ugY2Px236OY8428!>QtC zrq;s%wpN`kdK=(0$rNi>`Re_G1kCh1}PWETkAQ)+zy9-TUWh;Pa z0&6vTmd8*P*HjedqnF{LJg=)aA;)2_z3$-V+X%TK6d=DNTbI>w$YF=gK(24XAecPv zI;7YO((nJ!BT;cY>r?h#9hZ7;NRkA}>pVZ}RQyb7jk;p(u%C4^Wv+y4pq9++49(r} zvxw!Sr&&ool#nYS=r!6^7>hJyfDs41^Gj3nb<0tbBtSNnj&||4PS97+$)BQ1#q=wd zUL!u;+&rtzW~50y5?Y@-xPw-PykezoW{t}ctvC%=i!S>-|Fvu#DAt#WDNwOgp+t0_ zEL5ZOJl@GaArLkM2iQCm?Bu-_k$Hu~WWX_)tRB`N=zZeF{XML%B^%pkoc>d*D& zObl98EfUIWR7IdSu&C@k*&y@`TExoRuo{XHBM}QdJ{>nw6-KkO>q=@ zcpp$gkgpGuQE&Y~AEU3Yg!)28Ki4TUMrtJ8dsCs3=w^hQFA03VNu46({><`ti}_Xe z$rR4!gKrsUrNuLcb-s|_oD09`kjNSYX7vS7tm*%Cq}a!7E24>y4i=pW&y^%G#7#zInS!#)D#_04q~+8@Yi*)K zbXR}DRS*pwnrBK2-QAXnSZDZefzX$eK5of>$u1k8$bmA(&Uzs5(h8#6Qsx2) zcM+@@qz(C}R*<#9GKF;m0>uMwWJ!f3Re?@dFZsycpz8zci0I~zu@JFd*n<&Oi+ex- zYaK?#LG+8Rrs{#8;wLrvVnF1~Kgt}qBz1E$8TP=P*OlBxbRYV%| z1Yo7}=qaEbULubbO}w*F3idRF=Fq1}?KYhO1!;`p{wUP$0A9jV^#xp~jGdzE#BbA^ z=%ULEb*@uAk%{p;vw8PhO#0bh-(p@kXkNMOz*c+_pmyA*T$}5pg77i$-~WrQPs-Uq zy~c1|(=X&j2<6q$`EpBB_b+8?COpq@SCxh(R)Kv50eWV2I2?_EJu)6CNxqwBY3M2MlyXUiBXckSYT9$ zCmc@UUlSMqiMBU^X{5 zez+4w>sAem2r5e}C?Hi-v|1NZz=)s%LJ&|0wG|Z?C@#fTh2m0osjdFqi3>tok+^Fu z6#)y13PeB>2=ISq=A60jnVBPp%<=`jt{da&tQmgw*6~+kcf9GAv%j}>-mftub>E$MaQ)t`>mOM&{Khr6yja!t z6)etqyKddNe(&}ze!XPz?R^jY-KOzh?ppN&FzSz3Gkn3CmM>McZT-^jTW;E!)qc+{ zdwx2dQ|vP8;^Q{-I}U%cg=whXYv(2S+p4waE$KFsg(xoHt32h?>Hj)l+M>F0wgSfg zzc0Eyb$@05=Ji(tsOT<^Sj zOpEHB>fgZ`^VGfv&gj1NuDNUX+@t;Is&VPu;%~1^{OIoeYOBwEX9w&w zSDdo+n3cy&UU7I`bqDtTz={KB+yf~e^sRmKxlOlBUHtsh-TpOoCianG7LmTU59H*>NqZXRdj;bxr3MkK+iwcI&}4`@Fw5YSH4)jCW`2 zn&)fRf6%*g>9kXER^PeXu`N0tu%t_ij%}*OwW$8iiuZdhdU1Sh@6OF9jyZ7HueN-4 z;Ec0sFKvCQFWKp)xi{@tdDGnQ-E{Tv1BYEy z`^>bbcdM*r2>sY8^`(uy7aeldaVPCD)qTI+rNs`d7Ig2q^qDSY`@Hzt?xQ~* z({o@+ixH@m4!=G>pwF7A8x+xY&f$vyio?p-l- zNzbW0?#Gw&w0Q2ZxudG~+j!uPkG(eWu_d#QMKjGlxaPbOTW*~D;-~X_?fS!gwocpQ zkZHG1>2d$lGp?We)19k2wYclR`jx#Z9(t_XDNDzlu=Rw2zxrZ_>*l_=S7pV4$NsGB z&be!^Uv_wl9q=t(!@pSF^X`6Y&OdO+_tsRke)GYl^*@??)%s-}OJCgO=__B@GNI?v zaj&dENuJ*C#<`;w_3biw#h1%EvJGVI!8Om%nt4D?=f@7lv~C#Gcj>rYsyen9viD;x zF{MjtaWen(;akRj^m6Ic9v^P3v{#l1UpEwfa8(R_d+2e_M9s^DA$9skCMP2dXzO`*`{;)uZt@Ws_Ds-M03> zFZUb1E0i8-i8$7rd*Z;4UxIupm(S<&?p*#r#~ty62_%)=1_^%-$!O};T&Fi)6^Z1RH6Cmlp{=Dn#elK)^ctX4W4}P>8 ze%0ut^$YQbflpdpiT-IhXA=|PTWZ@?Va?$?qm0)V4_fT1*0 z-{GrJ@#j+bbF70gIrx!&{m2&8%@?xk4)|6qxW%_(sm}Y4nJ`Vp$^YC6U#E<3GCk}M zWoNXjdf(`@;^Ysekvakb?*x7WRhZdECZm*jwkX==jdVz3>Z&r_Mg$Kcg$Vzwq$N%CGBx`ohC| zRj#Uk5#Jp@=FGSI-r4HuRS*4s=F#0ooPXv^qi3v{Q2Pq5|M?bvrE2_B-@-3iEk5~M z?~i+#eUo-`{0i2HzIT1={klm#SAOSd{02+EjxUZz3*wi&*EYu=>0G_~_rJz3uRV9@ z$H(GVUhr#0yU*Es2mF@Xl@ImpHyoM+CLT5cUs?M~zu)e1@k7J^{Qax&OJ;|!|L%D! zT73bn)kj~&j8EgnKLY%D{r<+_fBzwVy?mF8SGD{{1%A04e?E6$`yJ0)(Q@IP|ARo< zU;N_eEiZLg%Q*`;XACo1u-}Ng$~vvxi7D>-ZKilFXCJ`XaM^O<&%xg5sRajt^YkZ` zL-6;Qw=60>d1Td5oo}0iZJ+~t!;*QJ+a1pA+V6sT++R8559hH;{29M~*6nQV8v>Ot z4Ah4F+p!~mUxodm;CK4Hit$(aJIQ;KtJ8HiM*z)Gqlh*ax z|7WN7n)bt+51e#V@BL3Zz1M9&y!oI>6}|T#aC)yl{P5-#iT(eDI`o zz4yQB^j@=mc=I8Xjyh@oX{YzP?}s-ZI;rBM{b!xt>%kx1eAuKXPV&EjFZjzUb4%N< zufQ(?%4?e$CzW9{T64z6mk)opXMN0X{Wktm1#bY$SA`3sz}KVj{=%l8*A!oPhTk{12?vOA8vVzXfZj(fjl z-|rpCzLGoa8`6!nO3wVd@&)VuFPPRnee|z;u9`me;vL2=uYBgby{AmQc-hB@3V|ZT z+<%7#-}d;=`qS~(!uWc1_SWIgGrqr2GVq62AOC*iefYDim;NZ;#vV3d$uvHxQ_m<{ zKK-PP_uX9i;JsyseFhRc1^(989}z)T5_hYIE~tF)=DPb%T0UJ2>b4F&Zf5_pZoc>W z)vNCx+vis=eX#Jl1^+za+Xw#sfpZ7G+2@Tm$3OM6zbyOrvKvRWJ8apyOZ(q2k2Ck}aZW1oMY+4tHb>;C%ijPIZSRry(6_PyfHnlB%^ zzx&h{tvKt1+WU5{I%>)EAJ@Nib=e=+^x3^~$jhZCyJG(JxrM`z*s^qK>5;+9b1Of4 zdq>^3&6nKD_1T^H-eP z?cu5m-XFJeW$C|0&v=LRVFw}X&QIPp{vVI6eW(9J2mkH!&ZA4$-@@fL>|AyG zn!GMb9FMX19%SLwz4zS3%h)`=Kab7hV>fl5x&Bs`#NTGLdv0O#^S?Tw_SLJ)exApL zRid^}%ZZ;YEj_>fz8k74YNj8#<*io{N*xbnZTIPzz7^MY{ru3sVXg;vDZl)#RvRB_ z-hN5T-7DMXbD93dvE3^EG5ydj?OrYWbM0$CocM>OrTyy5udl)hJ~Gn^XSgs{OY8#^J;Usz-zy=CbCw3*ISK`6ry@? zFqYuxIqO&Pg5rGXb<~9Su6<_B4ZBo5o#9e{>eqM9-n#kys>=EmJ-_(Nbrb9BFY7XF z{WCw>x_a$B4|SVR|MpW8r?$H3nUgk5cy#lP%|Cl){fhT${xkABFD>i0wPtqLEj7yy zeq`Xp-=F!#)EBPbTs`6XE9T5;KK|zQgH|6qI3^%Z@lrQ z&KE!YkEbSXsaw{3>zYxUzJ6+JO=ZW*@}pmz@`FBCuKMnV7Bd&OfBExY9x%RYhwI*$ zbKRN=`|kVZqqkk~{%-rOTfO&P-A<~wv})p%Pb;t3+U3Xx&U)rgl{LStdU@umvu90Q zeD<~bzjw{qWqs#;IPvYln{WKiFUMTn_s9hs&u_i1#gc#Tw%d|7zB}=$E9Z?puKI6f zN6cBZ@XVt-F1zZ&iFN<&a>$Ua>j!WCe8r&A`_KKs;;#;wzj)@DTQ{8hZ0S`a`}}P1 zzYl-!?XAz>Hfpam%{T0P$!;I+G_3B`X+QbJhdtSQ{l6+&J@em|J-^y<&eTO;-OzgN zq*?dwS+?$@!RI}`=I+ZDe0ABkr@Yeqf5+|fNz3^s4F2l#uD{#(aO=U3eDVC$JI`BE zcSGxY_S$+`tKKh6sbBo%ukT;oanj(j4-Q=a%7*Gc-8`md)BE!`UcP0QO|@TbtX=u{ z*|Vq4o>ITDK;HKGJ@dQ%-!q-(Jl%D~o#*XWc7Cf)r(HGO~5@tMA3D_2~7$hG75J^1-KqmF;%;4kOz{N-^6&uuwx#bv+Q{MFT~pWo%; z->%uT`_$v#9ozDw4gX!;`S4Sox%(I2z5n_8j(7ca`JtWbF0AVI+~Ug@ZaQG?!cp^v zUpeF5v({Zcz4pc_)7QRz*5d#9YE!dOf1Ld5h0EvF)O>pJuzmKM^4RiuXa4!qA;ZqQ zamtkC^PXJs>EK~Ibl>pi>x*i?-1UV8mwt8HUly;sYV@9qW^A7OmvO5WE?>F(uo;7{ zABjIb?EK}UqxLwg`mRyCx2_%YWw(I?{@d;S!~e2saor&gY;1ML19dace&m|#x6WyG z(8{*QP5;TCKCBuwsrk^&i=WwRhsRF+tlNHPcf9J@tz*7Duif{~sGEJ}un`;1?059j zxBu^twhUT&!?7y|eKh;n~Q`0VUQe!c%mw_JQro9>ebUH$d0_jUNrci)`*#0?#uIJoQa3r;|ei$yaT>eb&0U`wpx=^@^n%{$H2wLvFhErDxhMKj6$t_>o^Q5*bKk41&tiwjGJz(%5j~;i_(X;Q_ zY1~cUf9cN^&)0TXxx*drz4_bcPaLyH#k!K&Z|?m;{Z0FQa{s7)?V$Q*%h?C7-*i&h zJwMs?*em9~cTuxTPVCvdUC)!puiEpZi!0`Kcwq5a^?QA1w>x(01Xsge{PCD|C8Lgd zWyOqHKfLGvj$FCnwyG0b|LT@bLu+SV*?#}QhrD{xZ^u@?vu6GSzd7-RVSRpk$GBr) z)#AFoH@Cm_y^DT*&9Zy0nfT`Do28&z83Ove!uqPd(?+&mW(BP5WDa@$ePbPTA}BcdwXI z-LgZQhu>XPvwF}qZw)k$;V!k)xyt3P8J#o$pHRFB-;g?fZ54v;K zx)1LdjVzuVHfU{U==|c68La^Kd56bZVHzHNZ)_!dd-w4@uWNtn2PbWQh6VN62R;6| z=SdHrdF;`jj{we1^VZ*h;rcyi@6`U*|ND7G=l)|~8hYuf(v@T8Jo1a>A1s)Q2>$u} z`c1z*_tAfTZ)(dKe>vxtnWt=CIQ_nwEqCuU?#UldeRTGZT6LT{@|x41IH22ui-#{7 z+F{Dcd)zteiFKd8vwHk5ADy@3zWY6X&JBZhM@3F}__EHeuK3+q7q|Ut_bz{b__jUj zuG;UD`!>DD^yWT31VP^Y?|a92EX@}4FDyaX z_L|vpXze{u?lHTxe$bHdTOL?acI>WyMBW!)cF8%*cD?Vun#x(2l>eK*{3lF#L(g~C zl-^W(+ACG(+*DI}_cdFe>^OVWHE+H3^vqe;bUSBS**n8#T~;-3*Zbc8=!u1Up44Y; z-OFd)edfO&JZsJ)Cx1S+%aWh;`S-p3>%MyL>5tlW|Ln<*kB&m7NB3QMTj}SAf2aTO z4_-Tb^#)8!#U+2{p2rP>`1oauudRCIy}_TfzYu9u@6!I(-=A2|l*S&(^V;`{-%Ve> z_S&keXS{QG*(GbPII;OxZ=H32|GK|^wBy{j|L2aDmB0IV*Zbb+)b+?k_g&WIPdgn` z@qD*Wf7XBF`n&tr4P3Mcv)5* zJ+1w%$9G&grFPA@S=Us3`cdCY|31C@nB$&oUG`PYzI8WOFP>J~a&^lGmULS>scO;e zowkgu`e>KBkpte|ckm&T<}EwMTt2tu9Zz=Z{@Ir2Pkp7; zv#0f~oYQH)EjQ1^>Yg;OW=+dw%ZDsHwb{P!vvK9=eUE#r+m@UEvhIc}=1lqgN003G z;RAmteR|GId(XP-k9EHp|E*Cy=5*??_SN007u9{c+qcGDJ!R~R`%Rnp+dtNQd+Ux9 zd(8R%%3W%fY~Ja&Ju1uI*#Xp!*UsJi@!k7fS6cb^Pj)?M%IUR>kk_)suarHq!xSv1 zis$>c>HXXmvx)FVb%>>-g^Ado7&&Hbju#I z2fu~CsvG%M*|Dn!-?HVctNKIj*rk71H+|vfS2AWPm~~rD*|Z5%hE;TxBSUtU(L$e<$=<<*S@}@`NkWTZ8`#tvw3dax|Y|L zA;gRB>^t$YVb@Q5qwMcHAeSpnow{t(4ucQ5Y~4TDE_UqFac`A9easYAt{S*FZ~mSq z&8iu@Zu$$)Z0Yr`7p%2JQ-&6?FRKnx6 zf38}y=}`3DiO;W_-o328>)tiDl-+p8kB{m8*&EgMHCs=Z(00z)E}u;A*L+^f*;DIB zuDq)DcU#%;xDK0N9no#YuJ?6+yX@)Sx3s_Y`&}-dbMJ+7KCbLuc}$13ldf1bzW3|n zCzt)9{~cxDe|`L{NMlY_r`H$?s z;|12KWyh7B-oEUC6$_`ov-Za39qLc0Zr}BtH7zIHRm0ZR=U}xtq3nczL;U`ptCu7G zgFc$G_Mr7=F5MS~Q(LTl5`#l(USBZ%(fNBWh8z#Mua{oC-{A3GHXk&)+wA!>w%q*e z%=ZWNo!I+@wcj~*^Fiwuw)}M6^mh&_+xS4;TRmT&Uit3$&ps>tdlmFPtRBDLXQdBr zUa(@?mYc6w@!EUGmHp}MveQ?Ozv`5Uy}MLzdcBtd0(sBnuf6yFxNbeZH}TE0CYKKV z$qjQpysYX3jNTttHRr9e)5}(D-gFW*`*+#@`>5{Q6E?l}-aT`#-1OQBh-%~4(;po( z=ckLe{FMdA6J(U!lC?zVY2e_M9PQ&pFIIe7e9C~m%y@t&NyrStHK|GHuYzAL`; z+|}a?)Kzmfmw!I4a^meU=`yvpQ}+iyt?RrVN@Z)`0c*ld{g|Ks-v9qlvDqzV4xV$# zgxhNGp7&Qg6W`Ek)$iy1__BA_wAy&s;`tx8-aHBQ>VWwEu;u2BNAAeBhU+h!bL#z7 z_pTcJd`EU2&#ni}K|NoXI~|3dUW=5koLsv3peH%GY0t&4mp)j%a`NSC`wX3UMwjZ^ zVU?&Px%L^4iVvQQnME{Z8~dz$m;r4(tmeL|d*>{yJqH}t1NA3NJAzmO}6~oA4@OnP=+YZ|LVWXSsM(ioV6cg%$hTF&Z7F`yIhRx zwDrit}AJUk6GB@p5=4!G0P46J$^SPrtswa^BVFv{Y>4YbJ*i_fayPDFIZXn z^#fZ5PEGR0Ka#m~)*0&#sX24vl3nj(AG+X7G>cx({Rj5EW1qNfJmlTyPwaFUI%#RQ z1OM;KgXXM^^O;VJkA2K4FJpUrY>V;w)QQbUzIjmD8^1lT;vcACORT?3zV7to%$h%x zPx#=ygUWLH%;o2`ld#bq!9Hg3o5TC;rR9QC4}12LT`oN2M_2_|ieI)2XJoA-R|I_oGnder0{Joi*YTv0EaLrpYH~nyZ{h(&A%zoni(o@b^ zG5f0xd+hYp*Z(+o>*D)6{bb_g`IG;==H0KhEVAs19!G^*rW3`!dG|BjtX z+Ts89h@(S?qxt`xIvrDT^wAwl+O=y}(!PCr@jrMSIvvGz{dZ>P+eE!HU9JxdX3zhJ zzqW1KcHqvK!;Wys{%7>jZQGV~gb^Ea!!~U=pE>G;ptvsN+|JXJb{@ttM;#@x8J-^m zdq3)EBm^v$qzoQDe46|83c_@_9^~wu`SpV@Q}^5TDVkYge{ovHgju>ibjyOJIv#itbC73>ZABqMfs(_DCvaVtNVZvy~>9SzNn(4W7|&6N`E$LP&qa`PBV9Ga74Q{ z9h;T*t{8C1kU>8iHu#eAk~T-SA;GrQch$4|4jfuOh;FRCFC8$r9NX!TiczPQkL*7D z(hv_oKKzp5Bm0dQFbG?2kMhfh3@YzAa=^G|*lvvTiIS)w`Q|%OxC&OVga^@Qj}&ZUMb8PrAdytSgK?ZC9hJBDI^ajqeY&% zSgS=r{-UymPVOTSUnc1yC}BMy#ECE|#iWL`f&f+wKm>2WnaK`uTSnaj7nCF0H&n#GMp6whZgfXG1a zyD)w{zj-M;9~>nl4HiU*C=NS@ zIZxB*Lr9FGIKEx$#K@(w&j+t)L|wL(`G}K?cmIgUI9hC(dW$F%u5T=+!?*}6BHy}* z@0kjbFiwjvizwPj3}dE(mkCQqj3SeI&b+WF^Ki>EHv?NlW&^^FW6O2SH5VfDToEtD zA>-uYE)wP~1kEA}v5@RIrc5Wqw-ANJCA}1f2#qoq_dInovPEPzklZ+yTxT1Yk2tx= z#Iq9?cNS5E-#C_B$2=dNsBx^1IJrcWBaxW-3o)>WLM%LX97CoP;#r77gm%yFrJ+%} zcf}ET@@8y{$ZX(oW7%;fb0-LqS!Q*dgD_SuF8x{@T13_e;@EK=^AhkxP4l4^IZjr0V0PU;X|wZ zh8x>+fiw^~jgwi@u}X7flLi;4+F~3K2>^)@if3DJ(v4>Ap|dxs)CdS3R#+S)R<1`Q zXN)jA&etrYw#Af)G<%KV19E{sFux01-p)6iK8M+`ZbQR3es zxP}Vn3pGm%o~JADG(Zih;Th4n@EBD!Q|(PWV}dFeQSwA)4Kp|X`XGK9Eg6<$Fkr4l z+6&{Lg0XisCC|prq+I1rX5Q=;UOWDe8eMdrd`RW02e(@-MNIi3R3Rh6lT%XNiNvrvH_PzazecK^;C zrbCU)g~4k1={6zPd0P%RCH)kFzV=lBW?&Zm`kE@Bs5!^~y&Ms)%#EW=#-ik=p6%s4_S zWWHvM_kyXaETBAOU5$%X8+9x&2-kxvaLm93Ii)Nvg@|9Z@`am)ON3j2rvcKK#H9LH zPr~ddLeRiID%b|~yjTivL2+bnadmD@40UHl4zZx5ibiBY#II`kj7(u_0pto6Q|X)O zU_hY=%}F&PX=@^wg@G@C$W_(hB9*C(g*jm|1{ns^5CTo5pwHn7LrMt|zXlzcTu4I; zAkz_WDxS0!1eBz%C!(;FRxCq?%t9CWT#jeb-~!z)z!Aoj#W-Xv6jTmT2#{Pmz>xz_ zWY93Mq!q7tVWd*rG!U<T0Z8Qsd;(^I9nJj1|dV3gvLx zy9ftjAZWvti4APV@W0$X1;LC*1`&cbOcvyLBb$*> z;Tl0>!6H{NXM_>d4|rx;0Y+iqi#Sk_9clwLMZI9iC@!>F6LsIew39MODD8p9dXsj9 zppFO|B!>*Ll#y^6U}|yrSr-HWeLAo>EQkseOa&;#P-&*2@_ajC9gX2T@^QF@KVUKV zGzE-D`RmiltJH?FiYziBGI$h`rrW!b>J(-eGk}6BXA`RLK%7@vndeStwTk@Eczcdw}!K6Oz z2g1h@cG4y$5%3eVv510-p`+{w`oiG(hk6VZz)Y7FcpSAb)K&Q$_-vvrNMDfooxz2G zSVSQfI@<+?j+%xOo@ZP%k_#ifx)rFnI95H0t7}WKs{|xj_j5FEYE33!|{D@VC(YB}H@s)@W!E8TG@Mu5iNei^(tK!YJ?MG5|n^ z!C6FMCT2bh+br4kxFi=wx=zf3Xb~kXqeG~quAS@Wnu`V8B1)bkz>*s^Qi~jOvDDlm zN>isClSmUzCY$_nv2?8_(*Ld5W3+$6G2_3AczVy{!~RjkekTtYb#V#*hZylMOnU!B zVyC0oKbTnfClXl?ZL_b39(riis#V);_)URt0~KiMF*!-jOW_<)hT7N&Y*YBRq;X4I zuwX%Bi>)c1?V|!sJ*Ld#0S6p_75D73&no=XL+600Bgxfp(V|5^_`wfQI_%H6I%)#{ z##W%I$MmVk1}@g!?YG~qOH**11Ez=}Zxh)_mtTH)-oBdfznK+i>annSM`gt4bk|*X zU6@WHzH`7t-t$(L8}b=voRPP$Cj4(^1)6%yKJR!Q6kC?7ryJ*h_V|k_6`xt*T1=-+ zzP?cvXzH=Z>BjS**s@%Gdh8r9GKC^2;7lc|gfnDDcc_ne5*L6OuYkfQhdp}qz$2=| zPa`wt*kqof0uFmDh4*d9L=+00kK?G5u$==si7GXS+<`%)29bsrUU*@~J<4tl{Op^m zjJAm=P6gcdm_24J^KH6AEPJc;9Uq;Emk z^MwL5^%q3waD4EH-AOz|C)wrD+uQY#-j zIQ;oqL(QW+5xF`jItMITW$5JQz24=Z9ro7j?`lWa0fN?q@yN+D-d4B}t>ccCUviv+m?pNqfDQzMePX&tBV~r;BM9K$A^B3GbjJyztris_Di z0O(|?ItMI5HRz|-c^{kQ`BQdp#suYETLOZ}`;j(d%-=xsV)oefU0(T18m@j&=o~Qb z`pX{^8k;KHd3K|6rY_>>QASJE!S^ z5Rp5_r-05syaG5Lm*mY$( zO+=gu6uHOZgtV>e(9czz{FKl+U``dLac*-TUdi9irQ2ZMS>!Yk+c9i0du%%{BTbFo z0-XH(!Z{#~)*($lP;&CK21{(zm)K#@$rk-ck^Y+uMK~fxM%ARCRDjNVem#cABFsL{ z+xSQaFMNiHXB;Jx_(R*q3P<`9$l^tYih!Mb z5Wg=Rk_)!@wkUJ z2undI$cDkqE=*JMRu*4$Eo3|-(4~}R zACS@70hQ<3m^%i|7x-~*95Nn-pj&;M302JF50y+2Htq=UZhxVF(Cz3Sm}6$0%t-v0 zn>3wN08=bifvX-9pNZklWr>iU>kvR>^T?+m%N}TPmq;WZ7Gf^>FmQ>31f7I!0nD=P zP}nTD1B&A$->|}pJD2QR5UyG`%wrS3kyId$9us?@y<_P9vBG{Q$g;f zk-MlJkml%QL4^S#PCAcC_Z)i0##UfY$|9vP*k|7Y5=TULD$sHICk||rPUEkD^BzN^ zqJ``m3)UBHxj5@f#F^_Vkdq~T29bRg(CsDTQBA}a1}HaJQPrf|EH#GKOr*^&44Ci6#m9JlOcpSF{LXew{pP z%W5wN7-tv@NBVq>o6#FvUSdk6gxpW=I;pjs}hbD2{@1x5374w6Zhh#txh~(_ulQ zn@N^^&*DNRD+!BolPFFFuuX|#ZWAZfBJ>z7nzF>=Ja&minsoD*{hVm$5g(5vJ(AG` zDNPSQN#mzDl2!m^r={*UWjfOBcrrZ9rYyUY1FA$8gqR)a0z?r$yh4fa#3Y&!SClAD zMS984u%Iqm97-6DtLo`vipHDfBEGf^m6w6G5upoSuZNsYep?lHxwJba3- zi*xuvMo><=-UWV~{g6f|cJDY*QL8Xo#2~I=I*IrSpt62bG`}((84rQtlMoT4s~Xb! zP<-Jf?<0YzFgg&c557bz;%e_k8K-eOrLzX8usw|?o;QvCQ`FPRT}Ejtfs9O*{uG-P zr1oMexy#zZFpnNn+|lhZW~d@xC0PYl8DiZDt3>sev*x6Q03u?*6_cezm|~~{($0sM zMDs2Jpr>o&;z|@JZB+DCBHK91G+I&Hj2o=ospuj&mHi+W3z!yLIqya_Y<*GzM54yF zIL#;$wavbN$`a8WC5`2es-jWRD)0q<(mPJxJ*JdV1S#T=vx?;+O|+MagJ{xfh}e=I z$&>`;5R)RO$=J72GbW(}%57OVlFKS4pxmE@d5Y~$aYXk|S7oFwWIZK8rEX~y6a9b} zttu9mbWQoxH7$a1)20eQOS)jGFNd`3C2XguVU^Tmt-^>DzNm{ldW_~yR~%A^;|^UR zl8vJ*d_hyzC;mnu9^qk#iK8*6rkxj72b9GT`G&2auoUF34s+wm3NsAj)A@~G`7ktv zPtzCqWCq@`d#4ACu;V@5_Y&QRX)w-d8F^UPksie%4OLPW5jqnu zR1AES6n6p4VEh$L{pQ+Z)DdWUmP5cXXG%0Du1Hw{)Q7aAgke};QCrzR>1s%!BrP!! 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 `AFQf-Uj%!2JM`_Jh+BKm>WOmi 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