From 08b68c22de1ceba86c9b67678f7fb35eb36de3a0 Mon Sep 17 00:00:00 2001 From: Emily Boudreaux Date: Wed, 9 Apr 2025 15:17:55 -0400 Subject: [PATCH] feat(poly): major work on preconditioner for block form of lane emden equation working on a "smart" schur compliment preconditioner for the block form of the lane emden equation. Currently this is stub and should not be considered usable --- .../laneEmdenVariationalBlockForm.aux | 14 +- .../laneEmdenVariationalBlockForm.pdf | Bin 204176 -> 214202 bytes .../laneEmdenVariationalBlockForm.tex | 108 ++++++++ src/meson.build | 1 + src/poly/solver/meson.build | 3 +- src/poly/solver/private/polySolver.cpp | 181 ++++++++----- src/poly/solver/public/polySolver.h | 24 +- src/poly/utils/meson.build | 1 + src/poly/utils/private/operator.cpp | 245 +++++++++++++++--- src/poly/utils/public/operator.h | 48 +++- src/resource/private/resourceManagerTypes.cpp | 2 +- src/resource/public/resourceManagerTypes.h | 2 +- src/types/meson.build | 1 + src/types/public/4DSTARTypes.h | 13 + 14 files changed, 525 insertions(+), 118 deletions(-) create mode 100644 src/types/meson.build create mode 100644 src/types/public/4DSTARTypes.h diff --git a/docs/derivations/laneEmdenVariationalBlockForm.aux b/docs/derivations/laneEmdenVariationalBlockForm.aux index a4b524c..5dcb826 100644 --- a/docs/derivations/laneEmdenVariationalBlockForm.aux +++ b/docs/derivations/laneEmdenVariationalBlockForm.aux @@ -1,9 +1,11 @@ \relax \@writefile{toc}{\contentsline {section}{\numberline {1}Continuous Variational Form}{1}{}\protected@file@percent } \@writefile{toc}{\contentsline {section}{\numberline {2}Discritized Variational Form}{1}{}\protected@file@percent } -\@writefile{toc}{\contentsline {subsection}{\numberline {2.1}A Few Quick Notes}{3}{}\protected@file@percent } -\@writefile{toc}{\contentsline {section}{\numberline {3}Representation in FEM}{3}{}\protected@file@percent } -\@writefile{toc}{\contentsline {subsection}{\numberline {3.1}MFEM Integrators}{4}{}\protected@file@percent } -\@writefile{lot}{\contentsline {table}{\numberline {1}{\ignorespaces Selection of MFEM Mixed Bilinear Form Integrators}}{4}{}\protected@file@percent } -\newlabel{tab:mfem_mixed_integrators}{{1}{4}{}{table.1}{}} -\gdef \@abspage@last{4} +\@writefile{toc}{\contentsline {subsection}{\numberline {2.1}The Jacobian}{3}{}\protected@file@percent } +\@writefile{toc}{\contentsline {subsection}{\numberline {2.2}Preconditioner}{4}{}\protected@file@percent } +\@writefile{toc}{\contentsline {subsection}{\numberline {2.3}A Few Quick Notes}{5}{}\protected@file@percent } +\@writefile{toc}{\contentsline {section}{\numberline {3}Representation in FEM}{5}{}\protected@file@percent } +\@writefile{toc}{\contentsline {subsection}{\numberline {3.1}MFEM Integrators}{5}{}\protected@file@percent } +\@writefile{lot}{\contentsline {table}{\numberline {1}{\ignorespaces Selection of MFEM Mixed Bilinear Form Integrators}}{6}{}\protected@file@percent } +\newlabel{tab:mfem_mixed_integrators}{{1}{6}{}{table.1}{}} +\gdef \@abspage@last{6} diff --git a/docs/derivations/laneEmdenVariationalBlockForm.pdf b/docs/derivations/laneEmdenVariationalBlockForm.pdf index a26eb454eed104b99539b2f6cf5e36e62e0ffb66..092993d7994465dba4e7f57f06d2c85efd1235aa 100644 GIT binary patch delta 101316 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≥FO3*#> z-YqA8GJ^WtMvGOR_--hoq&gk2P2c|V0@z=&8!g-2OR!cQlKy)mw6nrRN7 z1v0|L19#~Q4+1F9OE%;UeX~=+R6nWA<)oi1+0R^#FT1E*KY6r>KHiMMcNC2ldpynO z^^IwnNsoXK6k_Ig)wC2g8huV-xCT-*n;#2*^9LR*-m~nBw9F&yy*QTxil3h>tgk?l zJJnpejO8VpPvt%iuu$e4YyL%JQwCI%(s`M?`{mO(_it`bVytqa1s3Z;#j-DZ?kueB zYlDQBKg}{m<8k@3DL!SIa zzKx7IlgA;$(XbUZzNkxo;8K(L_Uo$5aK4Sj>dHJ^9HQddG$NUfi;7h@_wB2{qG|Mt zG`_Lcty+kzwJiI~C*ix4=I&im#j&Y>0wIPi&XigMv0uJoB~?}0wZ!IJ9sIfkI{~}u zh?}vsDUE|6oy1;&jOBIZFT(csD5Ekg9__v}%(0WRp-*>|6G%-z1Aet)e)%;APBMXK z>|>GHr)mTz1VXmqC(~_IAU{960orC_lmu)`vC`=W#{(3JyruEkWmLw1 zjN8-@hY*>^NtH*&{0|Ag)9GEw+Kn?)T$~sNY>($L1=rifD1~}kOfV*YM{3_Y)})as zp}_ebaZpyQ^!8*8S=@o36o6me4{oR$0)3NLuJCZMG`>nq14gjvzaDa;!#J*AxiQ`R}PiQyx13eOU{t7I(HW3XFe0H!0#EjXfwZyqnKJ!H1P+-lwi+Qpq zXO{!CtcY&s`oA#@^m9Ld!x87)b#l4NyyLY#X({n$kh*@vcK8S)G%{R0|BG+wM)`n$})!FTp`C@F`Ao z=>}^)6^;wQW;k3k7~og%+G|7O-hR93>US;v>NU5Gre*eJ5t_1p(oCU6#!{a63Ay-a zEZC%xxA^0Y*-=lXlcCph&4h3&s?xH7KAFt$=VMJ z(gh-?NzY!Nj3UGJUdBd@uF=1%O?M?r5@~TU>F#hkPv{o~Pq$gUD%X=47sgC9ueFumvOvW43JTXy`21`U7Ym7)&!wHpD6LV6M1E`v_2^>a@gQuqnumYs56L*P z4!HVKNywYu5;59%S2U!W=7n`lPLhoXCw)LA!lV{|j=|B0I1e&RvZRXpumiTgWtff( zi3#5$+0KK4eJEd69$f_|B;78-UrNg9_x_q`ktkVDYeuj9GMmkb@iMsggisap>%A@Jk0cL+=PONQ zy$ZB{Xv(|3FN5W{+gyfysRBRA6vkmpMwSN9b91D z7gJ+zW?oM1hPA4yspe+B`|&=a+8Ts6n7C3j2;XrH>n@#gxk{Ty>GFJ| zlXo%JGpu*#$W$x^JIjy1^KjCqr*loi7Rb2|a%|uXP-&xiFyTJWF-*W*h4;dA-RoF? z-UgeH({)H@e56lb*_9SeTi91g>atsX|4xwRrVRN^g|xs()v~_e2@!f!+I(cl(Hmw-# zY1J@w^^umw*@4gy{QJaAN-wXF#A?ldC<0g=M$ZL;m7ema=%A`MAs0Onob8ec@@kv- zrZHl(cc1QZT4e!SOBM1Ov&kMPaX7y8@l%m`&fs;D`M}YIs(gd@yz*LuZ3}aBDP2-1 zSX81W$8RybL={(N(F3X;M({ejLqS2b=OHg~tvo$_uoINUG8z=Sw94DV!E>X3%~D1` zQaA4kBD9=-z;#xfr1x;EWCe?guZYdKYY?`9oZ2eCYxIqYwA_3yq!lo-Z(oEx7&ZTH zIesDOg}6P=B?c~p-UP0eWNqyvNOmf1 zT$2D=aBvSt1Tqia$xccprg@2f^-HBybxuS0PTWf2DYUK#aSWPRm`#NLVdhSSGfrq7 zaWsRpe~>F${mZdA|GJ2B1HLlK%{hz=tl0TE_JSvRJ#9K=2)-Dr5B}%4`lx1QS^lcC zbqUQcGUlRS!<5aMXxI0n_;-9qj-&-Bi<*|Cd=0q|$&YK}z%7z#=DO5>(@cBz^eQ)1 z@#^A$mn=a>2jveIVwlA#j~w3Xus(0QewxIPO(dZ;^J0$+JjtKkzXoMI|3$ z@Z;$6K?zJv!7b9nDI~|sY791;pEmhav&gb^Xn>X2u309-69Q+^iSO&NFK(?bTGt2? zLVXq=3O-!CrO)Xwv46{I(C+~Y7wZ#EyY*w*@fqz+#rE*`8F8?GpLXL4sFpzF+4KN{ z5MF|suU&@tG0r!{3$OX!HW^F@`L@F-YD=Hs-j>ZWPE-b!x{}N>b0!>~jA3EuRqXUb z0=FYCVEWT?zOQF{YOT1f7#i-SbX#MXirjne;5V}z5^zlU2=$$JQzouDh9~ z6souC;Xmc1at8H(2sVu<2ATffeeYX;Vc9F`+LT4kbd z)`Al#KXiZ4l~$;pouVGhJ1F>O;WVW|GDXsjJ>a z70(G$3TN$FEX|$$+PdLjYHo0Hg7Pd?uwuZM#Z;+$!UG0xaKw@b;}1eg;i*fm^ZeU^ z#w2olxyS*fN6TXGVuq!@qAHtCQS7h;Y-&!dt9o-iWu65gFg@Ryr_Ri24fV>bse{#R zJ*G}MOF)o+g1T6giU4G#cB!j&g>&vPVm_*;9mZ0r@#QXXDkgHvul=tm+e zB1Vwlm6V-3U!Lg`mY}yb?gy2m zL@SES_Z8qkeaV60-;A7d+cn);e2PIlgh+29%S!}@iiR6ll)kHib)VFb(l9vro&ybk zEh!wN>M!4qQO7YhzxPJB5gvA4&lR`ciGJMMYgOK$&On(<2gFS$&WkmV@u;_Blr=}u z-&Djt7i7~t@4YOs;Dxo**qf&7@~Vkuis0O(=6~C7Mc?q%&!HoT$|uQCmZ^i!OqLF7 zA^~uJz+!giW&ZrK8C5>QfJZ1}8ee!25hdnP+co^X@5BECESWlUbu6xZTTaCdiy;_fa1f(3%R zLxC13?poa4wPZOGIsZR%?_?(Vp5^QP)_Oxjp{B_qVFk7T%7UHT zSU6bO1p!jZl6oAR0CsjRR(5tyWEvVRkedVWKXPOm9U#ON1a=bqmxUArXzunRlQw^M zdoff7I{_5j9RM6$01jS34n9G4b^s?kyTE@8!4N@!w7Cb!3ZTpiPyjmtU6E;|z|P(f zkd3X|OP>Ec0_ZIn02~4We9V8k10)=Q5Rj$06F}MA%@*kRlF`!K0iX%C1OeT=|0@K& zu&tY$vmhIrr>7^YxuYv97-A#Jzzl!z1i9G)G=Q!^hzHOL@JGu46>~@6->tDC(*U$= zL9Tx(G{M$xp5_oB;6>m7vIIK0zPPwMSpgw{m+Sydc_o0VGtlWTW2L_gm;rwu4uFG| zFTla=)!ZCJTGvuQhlT-<^3(tq2$h>(BFY=CY6 z9(HziK3)L;&;z6iw{vd1M%MY@ztGNdd z;0AFA`uqM{@!y2Z!2z%WS-Jr%fHoi}#6au6_~rdWKwbbt_LuSF0I>h@`RB>_ zWx}k$P7dC`&HsGGY>HBH5>m=cf4BUPQc@D^1@L9z;R3L5@^An+IJkcV0DL^`0RR7v zqh=2JyAJl>zVc4iV1U41<-VNLe@gcFdj{zLUJwSrf5%b*zf3L=K>vHtjo5kEEnmJk z{-4MFPnZ9{DgPtN|8>y+w<1}02ZulP^nV%rfAr>#AP4WiEnX(q-R)%yl)*2%;Pk(y zy1>6yR}$=C^}jlKH}ij&U663HaroyLL9VhOFQAng$j#FBuW|WHuKmZNIe?siYG7B; zA6E;2g@c{_e{?U~WoiF%eYn2NvAAFo!_Qy^+~pMv0S$ z2jI)`vW`|juRo_4z{ctXc6)IFyfo(zum(er|9GRkJODO{KSY0j5g&j}>NoKN*rb1x z0Dw*AAL3&Nu*v==E&!YSZ{h~9Dg36Fn99HDC8o+h#QzdS?Kg1%*wlX$CxA`kH@(Ev z`c1q5Hl2S+;3b3kZ+gjK@ta<%w)}_wIAJ!cf8k3;;J@&t4V!=AOHSK=;mc8h{)I1D z?f-=@X&wHBFL{3*eemX6KM76Sa8;ANQD+&sbma(L;*{a^S}kmqmYd@0B0PyDaZvvh|* zUM}E2FNc@8{15+m+XI1KKuhG6MX;q%m|cBX=dW4`Vo!gTok@{7njPIV1{U8HNSFH^ zIzlo-O;*ST$VATZaBhe3kss_pq%IA+kMDz2n~R!SsX1%uWaL@-*Ji)W<`K zhCxy!5*97-UB5>cKb>HE*f!`M1)4k;cYbuW0_9{EGYWq$nWxFO$X+0zgm+^hMP$S}^}?9Hx}L+zoq8r$_`rnhfApTK$k*T-XYB2Q z&(}&VPS;*SYC;17QrIi3@fliQ$^8@s{3YMg;y8tfm||;Elf@R%E(~)Q?mCK|72)!+ zsm(EhAEv=l_d!Ze7 z!|?q&^PifMb3)89ywuV^7S)=DA{nJJ|IA@akt+mmcATR-GE|NAY%dB;T=sqjM$vA( zZbN^e#|QoSlS8%aR*4Qo+f_nX=ipC_k)fB&`zs zX5`DKe}=y?@qDX{QC%?wq>`3C;mEGw(oKIX?2Td_pT6i(V8!EIs-7nmPSYY(9zCLL z5)Fe8&=Xdwgbd^6q@ZqvQe}#^7})h)+ZK#AF{NogdDc9iZ6iN4QpbP)G`(fCsjI>& zRYb2dYjmQryGxSS)!)kX8Xaz4LhRhZ6w|e@OgTcW<)$2^JJ#D;)4OzYvB%=u>xq9) zW&-Y{&ap$+YFi`mwJPqAMFu4iciXbqg^<}1>B*J+_CB@w7?Tozf|gctxZd7*q8MQ2c#*;)V%jc8VSqOfF zTinUheQwLtFh*<25*UCpFvuiz^s~eVheg)K2akrx8#zX(Kt%*Nr6(Qi9HU<65waT* zK3XfGW^b(cIiwa>aP6zzY3t;kY0 zHB>rn_>r)bA3F5&oyHKo5k_fP`y_V3tAUl-o{R@-=Tq!NifKyHwF`lUcNzc@K7(`r zvaGduW2QqNU^syef?@h+BqDgnCYEl-jqToV+{HN5D@i)i1}rrxebwpnx~qyQ&P_F_ zKMPu$^8>WpZ;DPARSz3Da6f-kQrrfU1ej;i@^OC*-Gh7gV{Nu)5P?~wooTFGM;705 zmurx#c8qYC-+mCq_Q(|O7~Y`+cTd6zF@D25W2Y&k5oJG?T~~?1E$^mbCpV`d>>zR{c9Qb@0AaKdnG^_);cf}-UlXDVi!#3ns5Yq> zfz}qS33!dQ9>DNQ06#@8mj%Z(jA?2<575h$&8Ig?TPmbabwL(;84v4@DQOs}aP{g8Kjgvzfp1bP9Y zl0AGYo<-q;bv^EKxDFm{invo$J*iCiS{X8h>)49!7EGh%d1JkN9D?=~vc~GnhZP6L z*7Ns zoMGgyHUIbd=<1V9rw9UEI=+DJWcBwBi-&U6P0d?qd{7iZt0RWy9!#E8CYGKfKf!61AovlH8hAx>cC5Wuqi&E_FB-#Zxq(@z}rWdL}%MRrioBh1H}~?bzwSXqH5e;nU1n3bR~Zcqgaqm7Dg6c7+A%fmf1$8 z#Mj5f4TyTF9G4ZWJ8#Fi!WL(@$teY`s216ZUgXY!-(Suh=9Oj>^+K&G2%Rc0895?P zl9MP9-t!WC?zbnzj$L#N7NCSzK?Rse&-NL1odWi4c|Cn4Ff4^d)~h}IGsiL1prnd6 z5N8>q{ak+~mQs(b6^EEEt2iivtKOF+YC7G19NZ3|dLL-|nlZwdG^fc3bV`AHt1tn| z`s^~6=BNNrYyeny<-PT0)Vzg8_rHz;$?5QVnzumXZ&EwfM|cQh`WUDanpv8x zyql6QN3nYj1@`C7UdQ?Oh_C$Ks(={Z^Yi$Ret8~d3}pSR(h(#iT=^@z$%@p;ggAx! zNa>vbX0E{cjFj20uAj1{@jJfFX*@?I7WHePH3yAb)*)1I9(@R<34ZXFHd1bUtts$k z`BZ=Xedj_p#QIXM#N@$QGAcCM6RYcw&7!eUYu(XVL5x_{~UbG zK!dNetZ1#uiSe~Mc^B8%6)(Xx^Nz8vz?Fl|Q zg*y7?lMd41%$f5lOAa;puko8VtPXkV^U!vqvNU$NrD~1H96vjJEI3E2>vV(Gm6;qB zTf*9ghOLLD9S4oKi>>B%4XZopzz0c_r9? z^xO90XvhlG=4vgX`o_~2(58Q#Qg4LE2MUf|+V&9LJYU5rKil>0A(ZB#E)yTo#LL3q z>x4b8zLnb=@n{Kw7cOsq(@1J_)#dOy zOza^d&fK@|&Baju1M0gTDoP;Yv}yWBC9YOH^xUdbhp!QqFj(hZpigCtWg2p zsNEQq8JSsZZZA+@LqvbN879Qy*@}s71Y(6V!Pt`8mHb`pU}&~AVImvL^5(oU{ z8P^-}C8efBy~TerR82>r;X1ifu^t4slItvF_VRR$!#J8}bxv_;_ zTo|}?9ha?=gX9asgQ<&irN*=}8NEWw2aWH`_fi-x$w9f$&~DrYnJGF@^Tv)lQNcQM zP#;!R?-PTAs;@d3Y@k3-ZOG>|EHDb%LwSbQwOW6AeDiFqMB$c^crn3<+OOU+-`Mh< z@GBQ^PaTjT`Roe_ZjU!?+C4c!Jgzd;E@P?CL=*B5ErPtxJGM=4I*P}XKD7?yqIg$C zlqZJPUQY2~%xH+S`C1>UOP%>wSbgqA99g;!Sl)&-{Gh0TQR55V=|#*PDB66Ys&UT*VlG=V)SH`Eovs?VBBu6LDPTs=~yAs2W7@JB6^|ud-Ud_ z9X?X&dP9IurjoCVgb|d+tSvP|jG&K-rh?K}ZxTC`oPng_1kxtx_#qN9hFPuYfN4bo zSP9%aHFmhT5O@VOya0O90D&#qPetn9+X#yz{Z` zJ+xcC?78>(Zo|&i8SRPhg{Qh9lR>mXLV-&wGE>{8ILgVkqZ9LnowAdRwLGdLN~wQ_ z9BGaAtExtQ^cw#Dj9)6@_@#x<*@~Fag2cuHA0;Wu2k}+Jf)sG0Pxk1RBv`NQdwqq~ zM*365cBt7b3btu1H5!8>Hk~>tUNMGlpJ(I?;Nb8_ldq{@xSMKaA7pSeqmtA9WP}5L zR576~ahLbIx(#D`USuz8qC^oyfsTK-!q-GNt*Yqft=9IuQl*qxx(_6sK0QAak&XK# zJVc&{F=I#>?!}G+^?LgeCH>04*Ei(-r^|J6)-VFpWB##Wx@H5U#=Z$ta~c~fw1AGl zc#G|QMcw&|L+w1Dh;!)cf|$=L*%1ZT%<_O~;7<_J9*l!%^TS@%rsZ~FL@$3F6Ptr% z-b?@vtWWq2%WfV@w+dXAE-tpNWd|f~8v93h6#hH0z7qLvt)zp`$;1elVAjL0^C4rtB#eHar-u^oQdM;-gt^Pu~l&XXBJ_wvVE#D)EH1 z5FVFI#=7@f$_!`IX;#y6#E9N!9UL&~I$IlXpFT ziTllMZPC0vXu3-!Q|gJS2E?1XDj;yd~`$ghUCyrI+rG zoNG+btVn`SDlR~e$#j1=ty_ai?z@D}fSYl&^tu&VcOwPTB74vlW3c-M+!voqi|_cg zA!)V5hZPY0nd9PmmFU{sW}1r`LK{S=^ARF#JzCp|x4iMos@;1Rci-l9Cpqg(RtbK^ zL!E%ufx1{7ru(@L4(estypQl8aA{a@f~;^uJQ3G?`hx-N)7LE(8oYIN zcoWY_g0G=5pL{cEWvbo@7TAjbFrt1CpJk9pme#e%`xPZ4=LRgSX4Y6MmVxZOiU4sx zefk`mS^+3?Tz7vf4FQhF_Q)EAEJcAW+mMbob%(Agt5K^D1|>U{<*cuapZbjP3xp|} zacvpK0iXObtqtGcmOHFPaD55>Y`78WGlV|K27oU)3Dtir=}2MTx0;DGy6E8rzfU`^ znP2YRZzGcF=ZBJ8FvOh2Mz?M(@fHu_(=*IN#f*VQ_+fvArAx=#p&(IuFL$NDc7j43 zAVnHW(YWQGhqfK`N?EZ1MWV$(@H&sMyASQd2e3cRc(ts0{<>g{<~zK^7ByQ<1iZ=J zRgbpE4DCWt12lgH!RkpPud&HZ(y9FTr_Rd6Pq5_@O3H~+digFa zed&_nFw+?4KFSp>C59*M6*LBel7&NXhO&Q&p#yGf&_qJ`C-d)k-LJ^u3kUq!cE9N1 zBaC|9I&8C1N=8-t!=cb8HEVjf?IxcOn&?P4mhYSI&{Uro*R-*)7^{Sj;4Gdr$D`>A zINN+Oc2vrveXMLehANr~Ixs6V$>r0g%a)3Aj+6@yxVg0r*dj;D92bw z7_ns#BvdgrXv7AFlek;A2jj^T*hUA2=^vlO`D^7+eB@|mP+U@DMH>}W#&JBHNrQO3 z>LfVZs=K-E3-hHpJ#sfCjKFlRUwD6INQ#Nv)QQVe7+}VA$RX;yacq8AWp{4{)|wnX zNT*#k{?>!2U^wzr`_*tiNPM`5mP(c%w2fpUkl8Gp_zpVEa|Qv(l+RM)(9$KDZ{h5EKzxq+}Y}RzC*{8Q?R1HnU5@4s#njqKb|Ee9*CL}k~ zzG?GW7EIGemYA@lAfiu7E7po+u^1>aEc?E2!{W)1`UCjsM|(5lWEWvOyP5lU{Io`I zTEDo_ywh(!3Y;)jq}BripHYowEzzoXD_7p$Yq|1AsX1(D^9iIfDIb5vDs`pqB+_iS zW{}mPj7W@-H+JdlQ5&Vq*p&*=J~v*P#1SPWGA3%9qL>A9q32vg!iER}Ckl`luP@8}1CQ#}dwo!QD#ncAR`V&9x-#}Szc*01G0Iyr>Kvsk z?T!&flmxPtiArO=&UOP0KV%~I(0N|6nh2N#eLYKuS5BdjQ3#ul6gK=qlTr~)VxdYV z#`X0~cVODJ%Q#3*;2g20^2dr+l#JcdS9KENn4F0dd&@CsQWbx0fx_=A)aZcm^{Bf7 zBjTp$V4@*F9d+9J$jR}N$@>o-g!EHk*$5h>+uc7}RjCLj&^Wgbs1dVY-_MN?T*arc z(A4s0RmSUH%*M!z;gcC}hziYtON?Rk(e)GN)EWo4pJtf%XGU;o1on(8#HU@FCj0f+ z+YDj7ZpqTWiuZqF$kB63Q9Myby{bOem=Y6`t+OL-wi#bo2!{)9RSLX(_PvoYl-i$J zO5|0#EUP+1`gQ0sU0s@07>S->h*cbs5U%|lto&Z!V#X0gb1%>+5T-uW*KEfxugS03b+KwHb4ZnNeldy#{B9*!$r=~`-{T~ zU;cl6>;i=sUzLjjk?hd{jh~Ws&d!@VviN!HNQjG2gVLObF2j>@$f}5GNilWE#@gMb zKTdeX5p1|X_J{9G5%1mI^PGP*a7TB1;Af}_MR-Jx2qP5pzN13pw>S!k;y;FZF!F>F zNz?uo?5=Mgd4$M}QSyfSl)(^z{X@%GX>fn93kV(=vnmx2{kkQ6NJw6q$FuVyHF&gT z?8lf$#+EQ={uKkTY7eEr-+G^G@7p?%9nzva&TH2!!AjhzM`iLc*h|F=j-LNUSM_PV}uUgOhi5BrcQq^ zoH%gml2sas-}5Bu+ip_ANSX8JH!k?BXlx^IHjBz+C``o@_(#VCmu<`(A9qHY{IH}> zXXuVqIPCf3Hj0m84J(h2Fl!jGnenPgaefXOQHI<|%GiUYg9F}uIY^#gZ>WC8xx0qd z6^)AF__B=ooyI_G%AC>p4bkR7yWZrFQ}t_d@jQKI0yoN`%*@_Fl!x#TefW~xA{Dnd z*)K>DU&`raj}>a%H7rA#kaYXGQxyi*vXeG^G92#5xbyWa`Ys!fFMz;b)op*A-#_Be z2pO=u*Bu3~689VjgRF*5s+w)W=>#OYs3bYrwoW6C zn<6-kMVY__Q{KinYnY!cqVvrpX1p^AwaQ8`-cpCBbsQ;;bzB&Tme*?G#kpvFC@N4i zZ3!OMDSD2fd?*E%xM%7RnWulw6BN#9H`ry_zHxkC;QeU-HURIiZsES-@=24fl=P%X zQ<4%||NZ29NcXi1S8hCdu84tIjKwLzxF3-c&s200$4(`n)B#W z7fcZvol4Vp?>wE*?z;Y*#;%H$C{oR!h$$TP{D@Y=WJ|*HW|LHI@1@6q<04Ut9)Qpx zQC!zD1z2nF;SJ6@p{;-JX?J+G0eWUQ2`Aa)HC2}dYxtbvj7F-mH0jPcZh2WMhc@mU z9rwIk(T3~8!@_rmsY4(Ju=!X`^twy;RoSR+etE+_*oLS~yS=<1B zK!CqE-<|0TT;rJOko;mlD@3m8U^ZnJ54!c*UNvbk-_-l@35|80PzsuDZF0d9FY2GS zR~_z5^Bnqq<`ny7U?#SI3x8(v>nnd1+px&|1-n09g)Kq|F<8}y!6j|w=q7oEI%#3H zt?xKE8ESG|y=Tf=Q+AoHpsQWq>a~(bjiEZDDdt`=*)h*(U@HZUXg*t^LLxbUy5x-p zR90{{Dz%u}4r%L_Z-UNBq;UJzfhWD4CVow3E7A}B6-6Z?pyYvn7oT5W2!bq3C8isW zp)af2Z1SY&EQ>d-vLv8XM~rwCpWuBrheyo=XIAMcoBW)*k3pld5+Q0i$suUkF;A>o zu5=I(tBzO?J((UeTx^OY?3LAw26b+$g5LwK=tPZQ%pz~Sh5Ky&Rnsp|r}VunSpKNA zuHEdQrjT#=DI(c_IUl|4W&;bUU%&_Gh9)P0QpiKcL$p`2YANS;6dleodt{vWtypEj}Eh(GXj}LQz{Ped#mmR@GqNiWX}5 z$M4Gpn@LT7>?xYFb4{Q7EeX_{2Ok#mPSMQFS>svT=~nfIEb z^0m+H;Uk`l@TcjT%!aot&+OHjMggBpW=WL#(EaCsG==SNxS6Mg1~Qfdir-4i&16N~ z-#ln}jj6|{2!L*4nMRy0+ol5U+HZYt#<2I=evKx&Gf5o|3P45M3j+2kijLAOTI0>YA zLP;-w*-ccooCtk9G;tljn1>xnXGHjDWq;s^FjiA);JIddydvv7@-7Ygm^Pe#W3-0D zarxpkOW6mD5rSe+#nTT(jv@6Md!LFu9Q(#aZ2xLq?h~nOdDA6b)D{1?tQ(#W$`Nm}%X29Zio2>(Y6;CJ^o!Od&PM6SG}6 z)9%x^K?2Brvj5@T58gq<)ND2MZ@;GC#jRU-!y&vSoQa{2_wPjzvM$C8r7m-;UwIEM zy&VqD-R#n{;N*Q;c89|h+Qw;HAe1CnUTryi@JRNQS&zuBw`-((QxsUbKkAZ#IUSoy3a zuFxobcmCK^^vhL_VR;Tk>78m?4Qc<+*Y#It59-*|_+-dS5F)g5KeEt&omTxlzQqo9 z*hxeQcL$g|yvQO%n^!#6Xm60Z@yCRi4>ypB6JBvnFnjfW2~e2N)s0~f+w6LLmrEGL z%UP9b!;yMxj2&$dXQtN%ByMlB=lEjz)ozG;?He$a4~BdePgs1uF{zX-+^N%v5a+wF z4yNJ?PV`uk9Ls)nww{uIzGv*gy_DkP0kR>wQ$@@hMV{`eNXU=S<~LGTakpr~$EFX^ zL*XOq#6ng5f(uoXr7%m7Ze?iIYBGA{bMl#qq@SO>Rng84IH^Vot8k-k&~Y4Paq^!t zUNQ3+zefOB`e->BNTtKrX1y+GjbJ86=yFPrKy=afuulee8v)M8Dc%E|S_KflaLum9U&LiThRuXi1|gre7L1=SJ;UZclat zz2X8#f2Or}8_pkS0$>@N@^{X1e#BcjKUmGqA?=mHFQcG;tU9ZQgsX=2BX&q4M#DA zwB$?50Aid@dGoJc()y}eQAbvC%NYrN4Mej7OR$zIH3g%GcV1C$8EbuLBiB!hO0MA7 zIwz?UA7d!0G@67?TSzo5@|M1Ue`(fOlyD_X6l(+r5?-Nyn~em;q2b{9>CsY0f6hVX zLHkk35vQ{IWQsikax#K1MTC_o+MpKmic&9s0_@oUgB|z!E~$X?nbf|QMf*G6qn{}3 zeF#bAU6`&~0?IMxPshgSZImMdTsh35ez91d6zlfCX-Nj@c)4*5Dta8<>Tom$EX=G% zntSvrNg{QBp{8N2LooU)Tzp6C+AMcLDt&_kgsa!=egLvpuVGR2@My-CMb zmKPTDVX;RVhlG=F{?@)l)kF+>KrdyWn;^7bg0WM7US~>c;tlFdcd;U@d^kPdG^ihK zqNB|WL&U4PgaDIy@EZujqa@PT zF~cm3Gt@3soG>xZ7g}8X1tnoMpfRw`a6);IsQ#F7s4D}PtVF)~wPAXXfjj^nGY6L? z*@}gKEvO0|`)E~xns4)fk|KQcP?*zYfQPd&v+}V*mI3w7kQA~NR&}X362+;_H?#_ZYaLFK$PL&!Z4ZrmM{kK;SUwD?#>s2OyQZ>LFCkCKJ9MOMol6||%QxL2#uJqx z6+gb<*d?IkK-AWjD+H2)_-r?6se|gZ3Or!Ntt*E1(*Sk2VQT*Gw?{cK4+^-9_AYQ`zd;f=w6jg`w% z%;wT)znw11pz35K`**dA6UCdkhIn=IC}dCxUkS;AtjZ*!bWwzX@C>QB}VporJ5LJ{&BYG@zwy$%}xHJ%<{|cG1fzz}aX&AXz zS{O$fe@N-0C*yn65ub1gGvJa2yaW3nnJ24V0EM0@d%Ob=q70X1q!jts+S)x&GWGK@ z2TEFpWcv!S{Gdhk@DXb1&mimq3?3f}d#EJBr$hW66<>Q=($mpm#3wO--+PCJz0+E# z_F31@Ju<32;Xr_29KUv!9yO^VJ5uujLWW^6>w#-ib9|JKW1L%N(E zYpM5@w6+&qF6_wVX*<+5kpy6;YsOjp{p+?TF?$`fO*T%Jfndnh2YtpnmaXGxt?y0j zwm5Z@#cOX#zSw|`?47=URMq%{*?rFIPzXH0Bqguhz9?B0@M@0U7JlNM^c0s%jNy8V z74U}Gh{mgZmb9)NfF=YwdxdJPe*EL@GU-4}d8!^Usw*XXh@|+@8{gU=)3IG6xF+-Q ztooFNA8EO<)hs_{tZI-9SF<*EO6!GjNa9&VS_D&03CBv8JwUa8JYRlJdoPb@Fcw;8 zW-k5yUBx3bqmRH&9jVS1OjWI-j)e`Vz!ZcVV$x)xeIU+bPk833aHt;Z^R=C36wSCg z#*8TT)GKDgg$A)Vuk&4*`+B7Sz`8CS%rnWckl7 zt4NFwrX_;;6f|XjP_IlwL@{LW7*dvpPbdnNvFPhKQe5yqMB#{C&DjKyc zy4ggE$*5@`MytG*=H>SNL&AzGOXg1W6aKT3 zjFaF#QM*m+mBM;mH_^ zYpr&mOM@{*|Bi=LgzENQx5=#PMN5$qc)*34#jKusBy?HPwzeo1FFrxSm9)ykNgz$*~zjt3fx9` zE18IRFnH88mE}GKY}C~T(W#-iv?6)Y!!N!MvKnOi()UDw>j1|E zII||5h1ZBE(W{o-Pq88+>>!$>k|^&XeVA-DEC5XU+vj`4X2TFY{gI920#ejjC>aTX z-efx)Zyz-VhPum44SG+RyTJQLNrDUlnF%(3)=rjLqlDS4Thi8+nThsy(h6kiQJ&_4 zY_l~K@K%)jh!k>gWuh{oXxrjA_1I8!$5lE#QO%#UtZWge??}oXdK8zw{#>rk=f9P9 zEE(liakd+5A{|>y4@!=ZIxE{FHsHxpKw@ags-0CjYvU3`&W+%{h}O@ZjW6$yBwLMt zj{>ms-RI-G*5!3n@Rq8Cnvc>oyy1M4GPLb4$BAKyj$&S|7 ztG1A_#1DCyF0YkGS0B4=NIo^l5AQgBB<_jI(a%APZIIHtALt(Xu%6oS)%V%G^_^(Q zYWq$^1))wYjeE4b)uL(|PCRd)v5CnghbJ!%8J`#~Ao*oMwzv;FSg)UzicpA&U`ucW z12+2q0J{vcGnf1V0VokUH#G_`Ol59obZ9alI5ajimvOKG6a+anIX9Cb2`GP!wFOv| zTNgG=H%NC3Al=>F(k&$nFu+iQ!_eIw(v5U?NsE-CARt|WbP7s?@S*3t=hgH6|Mh*> zT-P(tUiXT7?R~HPFwko0a>!UiEJ2D8XBY<$C$}g-PF>+C4>y3Dn~#&5n-_zDK@SXb z1pUX3!C(M_x`H9jqQ7~_K|y~&*n>?T2zzi;hd2YCxH$rN_y9bDqC7&P+}r?OZf=qP zI6|PJ0C}K0*czbD33vi=2DxG|$U$7ZpkP}&*h8KFyaJf5SO7dCB0}uH!T~Z)ASl=h z=nPN?!t6j!4;8I|jsRVV6&M8b`XdFixE&1UBFe?(;o-pvbaLf{Ky7~|S=a#{V3-|1 z2jmKZx`V6%KU)T90G&X8x5kOV0MN4oyZ!~}LTq3jKqv_CU~mLmft+0*Lfo9KK~TU$ zb%3sl8bH$p`*bxNK zR8-@HdBWHMKxgZpjzE7$SI9#=&>aYN1X?~g{Gtv7D9UI9fDax1-Jh!!6zl?X<#Yu* z{_K(KXPSp?R&chKgE%>XoMEmQKl#anp&+Y=efQ$}`*0ncAs)^?|5@39ovm$twqfn& z!lmyFe(nZRk^kH0!G!T&n=J?i5a1T!6%rH#fSvq2TKMQ~8dAWdofjmFW4?Xz# zxIkP0HVxc7)f;|By+z;~O0dW8P{qtt_pfGEQv!mC4-G3c1m#mzwvbF)+-!14E^v|5dsvw*a@*!-MDlS?|9>{=a1YGt2)~>HlV==;rA73upez;eT+T6WGz~ zZ;uD*y1^dCKppZh49@>{H3a=NyXqiou$$ArQ56{QVH|&CoNXQd*+{UfBG?mTtp$cz z+5M%MzwG)yXU!4p4AO$Qf`8sF01h5*?tftq17_v$aD%u$$nqBidYGR-ODZ^9L9Blc z8n1vL00@Nwy)Yh*`C%mh@ZouwNNbSiFChcCIGrJ|hY-L+dwu{L2o&SzneuS+1Gp@q zKr08(!!>_s1Cs^Y{&e_-@%<0DSzWB^pMc%L5UB81hRz!9j(ExE{;I2 ze{hk94*&l!9zg(?%foH#{O=y%#9NdeJtLWX&R(Lr{vI+-tztN+}9w;0kIvv_X)$x z=WfC{T7?9c9s^3AO@oz-AHrugwYTa7RWWZXCpqHuV@-p~rWgt=bEiq^P+%NXXsr0h zo{y%^&OhPjf4rx8@`4S+?;wt^#K(A*H~xQW+IzWLkJt4z*<&(eQYyqV{0|e1KC(M$ zPe^8c%1c&?rfB1BT<(>mOwRR!U=D6MOajE3SXuy{Z=)uhwX*MIQx9Yz+$p2j9}FO9 z$4X*BMc+K~_bJY*<~ z@hUv(eSAJ%ff8zJ?P}oRroYYg6aIhDec`z)ANLeR_0z)3fXgp!blLvZ+sH|K9$D_y zUxue5?ud9=_U{JvRp8*ToSr;&AV+sViYJ`j9TeaplFy5aTp=AYd2a}Daa@1KeE3z2 zXwoBiP2BK@=F=ry^m1aCK%*=`D9R$SN5SyynshRvReA-J3em)2%5^V(p;v!fP{Sb0 ziiMj>5uQxy1gb6MfC2T)Ic+n6p5d01MNO-&mX|p4m1UXv0jXKKvjO|m^#uWCNVmPo z6p?b{RFgrNdXl}RaLK4McK zPON3z6&>4`a5S5yKFFMah_*m)M?M1tZqNkudCqLHMZ{bZz`UHRBkvTb(@f= z^5(HZX`DB%X6kryUXF9NPc?)}mOJ_%_o zvJ7&-&RB|{RVk=2KU+#tH+l3KFxmZTU(cr8q-VdE;=T9suFrqVB}^!;+zfARuhDm_ zFLHy$!^kCr)zmczS2mkJNUq%9JJ;wP+3LyK&Ofv12-PGkHmt@B!|mZyUAEnB0=pgW z%q4>)DbBAn+QSlOQ!nwWOKC2im-Ec&a=xD_WJ~Dcej61azIIV&*80IcuXe@>)%fD5 z^hnoiEe*G13RNfj5>EdHMG0|i%VTQO#2#8L8^BR36^m$9g59ENEa$5*3owB z?}+nBURRKhuI)3umX0Lj86sNaYw^K3R##n43^YH#F`pk$0xs+I${_+?T|>&4O-O%4o0uc%)58^eTfcKq!)C&t zDEplijxx0u?K!`{n9$26d4K?7n4uJc?nNi#EMIE*#L9_@+UDU^)%o!=CZE__Ef#|h z&He?l?Abir#%5G{H*wQ)yo4Yz3F%KlE6&$-f*8JJ`DfGAOY91GK`&dbgV{zp8S1{9 ze@Xs}ls83xXtdJ?X-O8V)VAt{y2XWDBy13?jv?3PXxqjrwRWa+N| zYwjZxZ08x*Fi_r_8HfBPXWF-n94i>3d79kdS6_2J8P*fk(}QuP#1y>ICNry!Uazsw(o;_n$duyblv&Q@umZ1rNp zoscevZ5)wy%XU2;k;)O5RE)u4XRIBYJ~)3i%l&{3J@^&FqI$&}B$*_^nQ#rCfUvg= z9jRtD(JJWscOLg>}@sB!tObyvavyc+PV@|JE;4?$M{u_UE z0iVd&w~y)I2*fCMXN_*ns^TqP(t>$Td~O>Xj6>_4ANhWVs}42LWp}R=TpIksISh1q z?7PlDI4?Od`Q?yBFF>w$J8jB=uIL3H4dFVZQJPgpf0jLdMlfY6qskwNd`fksAk!~V z+%P8kUR`qvI5f#-@bsO@dZ{J*GL;i>p0z!iG-*^&B;7c=-fX0}vnw*hx6XokcC*C*{2P!SU>0x;{KAHRQxpPhJn z^&Q^RKimiID=qr_BJX$N#&Bnlcutt*u&hl7`LTBEs(;?do5FgA$!eWQUsEhuuqvwt z!?FK96;73p`6Q#|e4Y(doN@z-5d4?|Xrq&uJUnpSxPTFjQjpgx0>Hqer-^^nehM9T zG~5p)?&>h)CPV%q7Fd6i*Cch`^(u|`KwqlyHZom-{nDXrl^61xOqNz%RM(d|PLOXxHDK)`+AHqfX z7#hRr@|bK4w4y(yE5{4fTNoi~xfZqVebqn zB=h2e+gZW4)=6#!L=>dZWnD%Cn`7m3m!T~7C(Z@;FV&BW&E_?JW+Z3!Iv3xKavzN^( z!I7P@JRBC>v2{>;S_k(r-QiXzmRnJ-HTw%!t%Y(M7TY7~h+uyNB~4ZDvs8@0jjh-1 z=(>f^j#JJilh|o=rfm`rTJIFzm}b}B7l7gG>D(*y)8C7UZhke_IR?_C<)2N2~is1HE;IhV??r``1#{LcvA#vcBoJdud;%-UWMf$+)?_ zmGsdYls6OVxZi(&cWk|O;FEk+gEmRFZU`g#7NYJ#5dIRp5X4MSaKUEEPJ-=XY$n{+ z+h5pT<6-4!u0Vb;cl-L)SfCODJ;l}R)Tf5NH?8=4HCYm7Mnd?kIq@^l5bZkvt)ceP zr%>qNS>?Gc{HnFO2=(hv&g86}T8)6_9?E!xoYiQ{&wPKORlBkso=A^CxLD`XJUVuo z_Q;oE#AsnxrWYBbvR+mmI2qo=xi~{3_5fT^OUtKE%Cl05gS+_6=&AatX#RvQyB`#S zDIe`@loD}PI|K}?B-gH5@!N{e>~@lDEXwY6Tp911_9Dm$h9rIQ-m!!WZjZy>HP29Tl(Yf;0S?v9;$WaO{} zQHF>xh`huj`JQbZsw)^UMfNmK$}c>YZ9Pxzol*IdkI%fMd9FrwaA*Mg%yvHdjpVoE zphhyMszY`~F6)g9s^}>yI%OepsWp2IpLAp3-aE)f=;th>SgqG4iAKn$q(7ig%Wn$i& zr=@??^I5Kz%UOau4vXLt*^lWrt68%}wj|rQ zrF6Y78Sr<~E@-f!?sru>Q6IA$XW7#+;$0h%to7oxj*>un6*5NFssAYT1gQXYxIcIM ztsPD{T$)v!RjOrUi}oxbk@LVS-%QIco}?(nO5MA#eqXE7XG6HF$~#m-(tn#M(udmJ$&9`icsKMB`#8#Um|~(Id(S3>bQJ96Qq%rQgcI_DQ2WWZR}h+1FK?= zlUCnz{G0zHkdD2CzQkCG{PV2_)zZ&NjCpP%yEjOq&$Gwm#YH~@TIyo(*3>M!Ir+Ly z?gK)tHtvua7Cgt z(;XqnRP9%{44;9ZnQN^{j`4`H8jqr1Li2@lCzk7tw*8@AA~AL`gHn4|cJp~@wAZ0D zRv3gvNZYYtnz6Xui`Q1g_-B7he$OBE2q5RDr=}L(VNH1erzF7*4-Mzlz_bKbL7C4T7Apj98)uea(7o$ z-+n1I2S{Uayk>3j)E#(OF)k|FGj)_%ILe!6?TW}cr2ksj0~MV!m;Bf=kS?d5K^5&8 zSRkxlq)*QG!i?(4_67n8e}N0kelWWKgkvdJdT^s73f*}F$@h1u)1HWtZHcs?~?|euKz%koLUV4V@>muS~{V> z!7FwG-vn%Cjr2@#YFRWIa*s|h@qQ2I-kMp08*{($aO5-t#W-e;2L~KdT`f}$($*TK zr+a75(7pc=qWIZCXEd{QdTf)uCdui5|r?U{@MruvAf{Z;X3R{wD zt3NO*)s4TtDc~}E>PW1)n}Abm*5^}hpNR3g!6rR5(mcw=H)V5A!dNqVnE5MPphlob%;ooP3$on6}kep2sl3Z6bDWubh8c;pHun3ut%FBg2u9w%GerdMR-2(@RhI zFX!Vy@WXFZi4j0D6g;ahzmv9SMl{FdN5a&B7mn{S;htLEa~w(aS&=#5%02l~S*0l_hQ)zV~GMOO1a4 zDfBX7V$#g+Vqxtw?6a#D-vz{??8hU)q7}Xbc#h4=ZtTk@8t(47k%$!`{w}pU^{?rx zWIU{rtU>ZhEdqhcxKAe;hg@I1AoY05dUBawko4yLh8V@(hAVST9KDw8d=J15q6uS& zev;7HkKRw}HUW2zv%)EQdvcl6g@x zI{NSFy&vyRYliS7>6pjCveNai%&CdjM;B!lZVZ33LJq>l%y(T83pD1rXwTuOCF9?4>#uEbOq)ng7zSl^ z?#NBM8vuA@$Sm{4@lrfPC)StAqo6twySJQDYqBvMmHozn;l0_m%`ZZjllFJNbV7@~ zN0vO|Cp}g9>4{VWUQ5WG`a+Cee7g}3OJ-nLnWw!>bsYu3MMn&>bOL{E#pQ37eF2Cr zjdHdTQ)KwB2X6X{-9C&1%Ucu+_k!W9glFb@>tX}`Xgw?(Vy8T1^>+?b)0vv^tRirWwm`@$LS z*7pT-@izA5ayDEJoP>i*iIG-0N>hxKi#6>aEZ95sFKVFRk07PKul}}ldz+yra!ZER zZw~2$t>Lled{Lk9L6aG0Hoo-VXx*A^uZhBT7*gE1n=-4zftwdA{W6# zn@2-vc;PET3%cq|+Ge^QBFC+8tuG6Unn&p|-<9IzkXRI;oAPC9_;4tr#^0nKrwWNJ z5COmM)L?%`2ObB03o_f@q&qU`WEoPnBZ2q$S+i!95Gc z^E_`+7&BF=b+qmD!>3Okk4F$)pFkojgB_#cNj|zF+BC?Q! z@oCpk7#-*BW2{r}Np-8rVjaR^2_K#(sJN@VFW0!v= zAH|%t^CBohcM1VSy|P$L2kpK3 z?WP`5rVfJq7u?6aA&rFWpEr?hs)jKEq}X;2Tob%(>8`!6qlD5%3YR_m8c;A_@#Rz2 zrCtiFo*s%y-A(KxRpUHDT)oNZ&H4$a~u&BqakQMd>*(Qb^{K?^;qJLaGnyB<`IyeII z`t9)DCXaQh8Gq?TAQ@yMPd)LdW^8a!n%x1_1)yogyupkd%5~8DdSz)Sk)Og#pS^L|-qQ$+Xt)|IH*JD8ymb^RO#WO@> zO5zGUML!o0Hyisa0w0BmH`Q#x*LsuSF8prWyf4pFZngRcA?Y$t>d?J#RD%0;*yGrYs`i!@AaP zWi{2u4Uf;rk!_ZrwakBHOIn@Ftw8NszG>+gJ^S5AN^ zGAe8Z)~5H!bady?$5NzZ*lfp1ouoiYH`9dD)ibS;b;APEVmKnYX4rE*P90dhqYO8;jE>wA8uOPp|EO^n@T%% zkzGtYckYb}U%?yzO&khz^YI6|AiQH>8DC-fkAsvuamCsS?j2$1TyOO!1C&NpYeUH% zMs#&_tYLh}m!n(K4OaCJ%=q1s`?~X^{ED48D9V?Tbc8lwohBS`no+zOjBV8IjHvi z7&@z4if@0zQ^KXDr;l?pPeh^4$xEG=uBE_o`wl}m)B0Jw_7Ma2aIYc;($}T-Mcdgl zT&v2>nF}Q;pO?f{tqYTEXV68#}U{bVd4v zrjJT^W$v=7ipxhm?xL)+xh_A>JuCa8%yK%$T<(91E60oHqGP1;IUizX2;Rw0Ytxj0 znbgawQ^K4mvU>IH{OHc@RJjWoEz=b4N~!!%--MBY4l*mxC31_uB&iPLwJoJd*ay&x z9QX#cyyt})2MRavZtEt+(?vrW(B--kSdnG((~MBgvlyvZ?=G>37r!5q ztbl(wD5;LL)uOm|vMOF#<43U_9>`qDMJ2%KTB?*fm@czcqL#Z+$*zhkvX?SuMa>P zmWg*wkHgEuFZ}7Gz3FRWQT~^e;Iwr8>yL5o~M2^B)!> z4j>@pMSms=guEEa+1dc4ovZ-NtN>;X9%fD+CMEz26BGBp3~e2F0HQ!=un9np0U&K_ z19C*B6tT5)a{!x}LtgUy>k&Y0Oaox%=H~qHmpee%8sq>r2HF7RfDm(#^-D%$pcO#H z)))+excyfMYCdxa#EyrN(Z$7u0ch>WVC!HeK!5WA-~xu21C&9IAO~lV3E+3j0C}J_ z=%3aYkSPJG=3vLa6)Lu-5Eq~W2=F4X0vm&D9A8|VY)n87fS2q56)9POf*r`_Z)4fN z4L$(=IUE2p1M|Pb{p0;R5ZLA~XP~jMt+gG{#tm#^1~3I%fdC5PvJ4Pc$Oiz>#^kpl z(0|I&_QfCQ3~VP1||%*I5- z*4i3m193$DU7sk}0c8Ag?rx0#4A;`e*2Tu-U&s_}V`BQd4HG9jMl~C-y%R`E^dFlS z5%M3I83+PkXX4^y;WKGV{^ve34c`G>_C4hnSYC4dhqhFv$X@5zO(`I0-J(f zevmyJfzBWR#K8&V%z-2Sn6p{^6;WewzP zUzWkqt7Xv$U@E`n=)z0w`W`1#b zVLaqN>STVY#OXiai-q$a$nsK#^ItdIf5={vxc&wIYx2fU4h}EW_-kcfXz?%n*Ch-B zxq^(57v^k@c>^tK0^4q?gb7{fx5xP4j#F+lS?I?K^bsL_Vp9g|aepeA8H+NX#TULZ zi|bo-%73)K$y%8|_t>f>t#f0$q9+yKH6t~OnR~u^H52b~O+-G2-UOAak@S&-r`Vwn zN|87mqYFvU#H>$+65aECP4D-37b=_*aZc%=Hu;XOs*(&@Tq17u!wqFfv(cdHHv0wM z`|J(t=zz@#-A~E#X@BH0d>yyQaW0h@YXifBOPF7YyTkpYo&C2@D1srFV!VSyqHGA2 z>PvaAAF_*`57Mwaj3lsy4ov#WR%w!MYUIz%x6Tgq$fy&#IL!?cOe2^N-EWC8?Uryp zra0u}?}VBB$O<8aX&exUzjjpbO$AH#tdwsMTS|un$+#`f^nXsSJvhlEOX-aF2U35K zi{pR#vUTWHPuU*nY#I#R^1dnwb4!d4H-l#1%QPUbpTa70>54jNMuSC%E5*D`RiJ2z zJFvx96O)w{%^93hq4t`w{^tNfq1Kg$JKIyhL%s{ z0Lj2Xz#hKaSF1z+PN*M4Ry1MRRsI&2%;4%rDfo5`I5K2JX_I83z}vW`qRi z8T_wFbvg`4pN*bv4c?r5BvLO}z3cZML1;MBASeBW553ipnclMoJlnI?7I##Lr3p+Z zpgcBVIe%+*iI8tCpOzH36!p41LHv;!+ozTIy6sn8HM50wMSxk!YxquPqmJeb>CZq< z!w&PvVj~}#ZWpb9V`CjECX0lV8cirpw;MBL>=bi+mByevDmWi6EW0QAseRKqeE{%& z&H%ZO(2C7neeZnNM)`cLlh_~dz7s$+OvmY%;er2E?T?0KB`|85cI=d+^SQ}`95fSr0kM5z0QLiLXr+@ zK1OCdL;BRROH9;_hwFC#tLe2@U`_~RXHhdRpoN^%_skv=xMq6i)rGY)nLtw&%mu5W zJgtA3==K(iFT=5p#UfEbzimCB1%t8+HCipRC1}k5dYI#~34~#VA?Uk^7M%!zlrBtOe}&lxf=#q0_1Aje?*P{FLcL^XaN``E-!tUP#`jf8`IS`w2U%s0=*>QeYsFdWnd4szr-pCCadzP zchTFbY;q1@TOH{3RUZ4fKzn5P~o zpi(b&YlqOi*>73Cf+~?9L1I>oS*Sjkfsq@UcVJTL)&97+djdsKhp*aqMj2=rt9ern zSNpXbVk9@@8W*o>e@RKkT3Ua~yB|i0mhqJjTGej0t`iLw6-UXg`86u-DKNTj^)xnb z1zWPzcm1Us@JVjr=|~3&ErCHfI=JpjqoygD;gB2;W~BcwaFszNwN;4dyyq+h#ZuzV(N*N*st<^RPl^ty%>K5#@H>f4)Lz} zm0a=^o;Y#YA41;|@+8iG$Wt@Gl~ojstsfYED=$*9qat@T3qGDjTNFrqjoCkb9lDLW zeacEZZ}Co}H&b+y&RY;|}vtm%nhZ&5a$*T4taL@7yHilU(5)QX-WPaDvRyf&qvq z=X1g{eXDL()c%{YubRgptvRGH$7(THM~AyeUHE0zLQ}N3_c5wC+%Z4InxP9d6wK%s zljgc3(5oc(>~`>810~@}$Psnj3m$tg7^kL50>v!U;XE>#Kb?Owj|Qk#C#uUnPO-ab z$auQ@PMvQipLi}dKoANnKAP+Wsq3PI*m;easLTYX(NY&A;T34_XRfs#7F zog_A($<$6gpD}*`VTip}fuI$t8M7aL6ImAu_qXk1#~5&x75&yJoD$aH^Vla}L_DF4 z2#^i`m0{ZNy2Bz$o#a1ilT))em+=F<6#034vNXaGt#_dQ~62|W=)MT zJ8>}SIU4#Q$6X|PrnSUVSL3o}uNG79oqVi$q{p;uYi-WzPqHjrzqoIeA*rwqUlv+1 zC=hut z^mP+873K?HZY5#I{`jM34}(XtaaD-b4O3KpD0MOJqK^n-3f<8+q9&pR?WQL?3INq9 z2Cx{tjza8noVaA9H5AS2+m!-VxG#`Zla2=ec9e!j{ zxhamLy3{s-_JIO;96+G_qw3DlG@&lP;JdE1udyYwZ8hDF4`RsZ&MK^Lx7dD&(Q)_( zkqZ0sUaH_nP3!}y{Pg~r6j+CL-5(7-{zHGy8~4f}TSMo#^%e({w|0Vu<1-bN8K$!$ zV{hQAOXr$3;I8a~XU;9*^8&^Og>y(Ts2B9)w(#dM(UCB4u9jl-{mLh26%wnhmd7XD z_=zq`^xfITBK+{(DW3dCjDM{#jaaIL*+sVtpFo=zJ2;{QwTBwQNq>ufvJ7u)9+iI( zGoPW_6?_vA1jxr;s~|K?%-j^>4kt^o)fJMB2dXCPDML^W(cL>M-xJVwU#sy3(~C_K zYzM{LwyGL!EO)YRRW^1$w6i312$UVlxZ1P!7Oo8$K#GaW)AwQ~JSR2gDMOj^NBMWe zVudPO5*UtI^w%6}3wg4si6sTTfOdZu6-SqAXLu{GzYomk26|a*WbDzO*2}F6kGVS< zIvRP!WJN4I_Bu8R;TXg_wlP8{XKjjyb_Sv=#EJEkC0iYZubAsf7#h900+MhQq%~4d zubd6)tFdBN+NagcTpn+pi@=eWJv(=XH(gphVM0X;rexnOjR+G@H}0@AlsJF#bm$Eb z@=CH)1hv-)T6Nad7~^1VJwYiJUSE)b5c7ZR(?gh}zB3Xq4#XPq1t-QYJzCx~ZhNf4 z?@cDyrjO-d2S$JEhuJ(V5xwBP?;Y{(cp|naD|AY@Oe-;O*|gygLGKq=8<1 zn}heu+qh(W1HfBve;W6Jqczpd@qz~xVz%@xV%(tX7k4g?#k|oE|$+b zp21jy@31^r`)ac0+AU=+#y=2H99pOsr{@4rjqCD4YdMngzyFoavW#Ex4y`Z*HuY)0 zPY0g|2hd+sZf`_>-L z?NPn*5Zdg~(==lYDACmFQGz%W173*b%nE&a<~|!SWpQx>oOsFYaVkFQ&GN4rf>$uY z3fa^Z!Hz?w)s)mr_jY5VKP1UnsNhoQ?ZQxGj=ifs8Esy$lJS2#iJdF$B_tzKABght z)>>439d5i^U69(oWpTtI&TCk`7p^l4mWcl*uQCv3+|M%e&@%6U#Spx_$vG<$r7!X^ zXFYtk3WtB$A!gDr=?o{s%D$YMMQ^z?RUSl`DYKivR7-p)SUhFNoOFGPq92)Z_8R96 zrlF#@$}=gy%<_M;pxEt>3}JdYRW055r+f!p3Kk>^o%skx*Eu`Z4yc0-Ew$V)_5pD9 zw9tk*4uH~YVU+TCHLm`FKHC^tJ4aNaTQsr4D=W)lBOx0ly7N(9<=6u%GJD@;)KvrCm2nZQM`R`1iScx}3}Y#wt@V*`z@<4 zlveH+Olf~WZ^xhUqKYE&Y%;nH%V#@+V((6sZKkdh$@kYS-z{ff#0jb7+<8i)&^%vA z>cSGj<9K~Ym~vJV6y>Aw9Z5RYD@cDVI7)0iiTkp#vL`VyfY}`n2i2ISO0g>?ceU;o z4wc4*%f={2>{->=`7WE^kb|Hf4jL{Nf`&cDWjTLL0?ylo=QFxZ%*bwjg}j-K7fMIM z%a4{0EAhj}$DIpXu-7PFt}e>Dn?CvnepiEt?lLvF*66O)Tn+`q5Q~qCn_PlHf`LD` zMd4Z_p<;=2qAuJ-6BarVtTl=Z-o+V(1D}&TU1%_+4A;=hd%-}UC$QhKot{BDQ`L@~ zbx>G{YR65e{TJ@Wv_B&}d=PY3k}cy^G-Q900L2w0@%)l*6qlB>;aGCq;6{n>0*~3* zQNg!4K=oDa56fBhWD`xtyClh|>Hrf<4LiU9-S|SArNJh7tO+}G(NWv~}Wb%=(+W|!7u^CADVjNq8E!Ki2vI^D{e7aFmJn5^9Wiem_FX~ibF|&`{y$3Ndp);Nd zW$y@rIcEyXCFr!fMzTLfRIi40?(=^)A<|Nf`l)i3ae4cM#Jo$HTI=t$O6=hxebYc% z)7Rc)E`8rv)SW|=M{N=LY_v^_%kK$^ApBrF70-m#$7I!bTvhkYkx#wF1?tNH^Hjoh zE-5W(v^ajiSu%Y|?~mGBOdoe!_JF~{rLtO+FEAKlKJoX%RJ}O<-{Jd<3vPdWWSbcT znd+A5XEzsB3`J0({5kDGs%Ztd#e7DED0X&`n#Pr>Du}9vf?+Vx)Cn7df-8kt0yfP)7u3s|2t<4eftEo?M-#edoz*>3k>}yc z&BuLj2D?|Zil`>ILbElaY(zPEzi1oL=$o=D5XOPF`E|gXCIv|$4!Nv!K+}c&8zcG1 zx~FAo2{j0xf)Q^;x~xM2rD-jmWZ<$pi-<|?()OLX-K6Rs<=3C0#PTht|iuu=b{xpWCrO8T40}XrB4+z(6@$7hswfe;YD}nwv za;ufLp~Q&n610Yb-;~AWO3>DNeV=AW%{HUc-|-dU#e;KUQ zjQB32YV~B5f|-tKZyIENCC<||3JHK1=of82Pe<=QiQre@qr)cU_WN25V;uKS>U!fV z)4ic^?zK%4ElgcB3tmNha`U_0&)EeM5pz1$^wZ!PpB%lhWPVMTU%=4)cuF$ZUYdRr z`3`qL2-i4YwhVt2OlZ-?D_<3`yC(9{lRB?!sB)uGs%cu5t-P9P;I6-oYKbs9{|U!v z=UlYAtrin2+~-&|i?y@9iQqwGFCU7JA62x@tkdgMs9ms3Vx}|bx#-=_blv#HH^C7} z_*Oj`q-efAv%SSs<;z<|$$GeD&2hsl#>@oyAJA9LTC0C8(51oRf=COj^R*A&J0)QX zO4{Y&uSag(`+vQsYr9)-OI6q==X;lgTT{d17hG~NVC7b%DQOQ`kn(iW}Q ze;}B)^Z|dnRex8N#Cr3Q4PU}JMD^C2o|@ljW!yJ5np1Qkp40h3RabpVfTHQ{reT)> z<4tg$h;zJDS*6t5P~0*&<;Va*HCTSP38=3y^nR%D7ap;@h`avhhZ@J`r6%K3ojE6j zrIYsLNk_zj+=yTdBnyFPO z+GA{mmZOJud$us|Y65TYU-dZ!PzX~I7UGkk5+hKOS623Q(t02Sk#)=daG~HB)S)@S zqr>;B#ZJYQpHZRyHo-Mh6)aSHUTr6xP_akO4KzQ?`&s=x_xS4M;vUW7Jqj{$(C1KH z-JE~1{S;ln86VC;MpL)P?`G7j_DYy^=In@W{1wkBISowM5$Q0$7|-NOtui$RXAge> z!gJZDYxO#^?v#l{sSM@lC^JoV8e^8c{Wfqe!OUV}7?`{k#2KS4A283Rd)TGShf^9< zY{&bp=@!Lj(;W}m6g{HD!(k3YB)E&rh3bFsvVbbX6U~=G_ltpxI;YpPero$qIgm zy!KoYD3}I!SHih*;QsvOkm1A`bEyiQNe!>Dg}LseMR)I3OHcE9eMEStMDBqUCbdB1 z!+~*Hn(z;$Gi_rC@hdb$Zvg`GO?`jzFabtrK}=Aq#HL|!uj;BcACYt@%baU_hnY|c zjENU`B|{ae@yZl6EhJC)P&XP>5HIJPvO_4jeZT6pM~y5Qd#%USKz2E^9D!1Ewv-t} zzpjN1)mboYHie(b1vAqh+Fq5D+iKY4k&p}E~LWY5N`2$#YG%zkuHDgS58Ve zvajA)d2>*H5DjJ-RAG9g(cA9?b#AB#wcboiUF0=3`v`FHNwSpSb857k(gNBiMe2yV zw#Fij);Nw7#EQmj1W`f~^RWu6Yii5hU_U%vOiO|L8O4hwqo0lA+;9pzYyK*k+MG@} zeKGLUXEDcH+V0WqIs|AJsY`!~ns3JqMh?8}Uj2mU$D6QBpKl}w zEc;rY;s*N!sGeC736BW$c)XdtmV^d>(H{mIyGH5W{ycrlCMw3zB_%#fhpnqjrLXUT z#^j#xbI1j`0B2LyhP-e5^`(wkv=f#><}Xj^1LMK|jj(Z5V8I!Aq%?nPmD&;6$j!MB z>zfaEyupj;4>FeFJ6@A4%Aiuh_+CfF z->Zt03kzKM6g=-iLPON5$Kg!m6Dg|Ox>4Ds$#{!shEHgDq3C9gMN}Jdk!SR*B53O7 zhIuSAXKz6Beu%v(=7PoanVNn`R#=xWbi6|*!+_Bc ze)GIz;|{de4k)o_YqGQ)?JYwZDG@0m{ot~7o3{gFWG*7ogvaCo#c_g>pdC3T-kZ2z z+y?hNc;W`?@uJ@<>{5eDOjjbRHKCt&j4NDG!F^=YG2|l!a6Bjs*i+=KT`&N>WXyfjxP$%2BFE+qbV~ z!3$ScFx|`ELeVE1O7HAM*GCsl+L2%+wrumR8WgeWft6qFtz%?oN2lk0h{}FX3Vs&5 zf>&*7G|?M9^*n!b0nptQMr;=gBW5N|R!gIY%V3+n=OH53azGGLC1Scpg(d|!(>$w6 z88LlkP)Km=%hsP)EtB%&hs@kpvkZyVE##xz^CSS$N8d*TJ0pDha$h=&Magcl?VVdA z#5!0cvWyyd@*W);zpNNqFQ{micA_juJ>se9U2~u2C-Hy5+t&9YLqaT1`P6yrI@Gcv zyfO81_|EjqFf>RzLv}@z;f4l0k9_>pTe?EZ^S|N-38GssZK7J2Q1vcxJE}6x6;M77 z*`~Oq*q>o|-+vuU#UKwEgK_wzojrV9?))J zY#(8mp7norqK|N+d^34;H}X?#YwIiiwYx8|jZ*?~lBN@dt3)C4H9i_y$veWn2JS;b ztHL&|>4Nq;7(e>LZO2}>mVKZV7^e+;5350$inqx7Hhz<2^7>vsjf#^4;E^oql#t1I zc06~8jd!TO8#XtB44$m#Bl3%hsMreJb>%@&T`Pa{Dpu|onYw|QG}UK{oQ*OB!R9gq zRJ+U^w@WcNhkb?^MV1w$L7SO>-V)u(F(oJT+wSC}DuoK3H&S{-OXcm*+yiUc12LH4e*eRmOQaq(rn#hV>XC@xH-nQ%spA)~Z^H{*;IB@NUy9>$UNLJ@Q ztZ#qOj3mjE{wb++U!K3D!~Q1^vYgQRDV&uEeBNMywGz|bS8D&D2b+*Z_cwk#h^AfI zSr(fcm*bm#lyOA~^>i^x!XxW-C&Ax*6GWb@XijY+Ncb$@{#e-?&k4=qclMJAkrhnZ z(H-PIQIx7JjyO6a$!y!eU8O0q+((Oh`<;JEvtfVGaO$Z1kiuQMqiFCvq{)7adAY$8 zN2cFK(Xi5{Qc)v$pQ{3?UqVwuY(0DRsoi0^0HFhU;gNzkpa4CP&uk>Ov6&53>+4&J z*l)glH8-B0bv$_`E=q6~mGOn@aK2uda=m}{ z(Id4BA2^Je2TH422K>nAr`u^`r~b8*h_F_dQ8&(0F<+A1&Zs?HonhX4;8SElii-XF z#wXR;b!Yy1hL#E8k2`5_T1ldo)B%BRXuQ43IeK#mOvgA{P7d}6P)t?P7Tq-IjyPxw zCOdB^!=J{(A6m&+&Rbmt4TUab2it#E1rQLPR0+UzrpKxvmM&%ZMch}CIr4r#`vwukKCrc7~{c|w0%^z0Gm z+Nvi;<8E)moOpI=xN@rQ(Xej&&*{UPa5aB79o{Z<&Zn{`!4SQ2L$P#Kci8Gj88=HQ zCXzsAT__tbSXjN)RvbM>rmA?X&eCq`DcI1QW0wCW*5;hGyozl-u zf-4!;j)a5~Zo);{ix;)CT5{P$}po(zRcXJ zG$+}$`(jUWFdusrd1T>?YX`3J$Y!;sdiEk0eNae8^T!(VY&H%f*J*Be6$eoRKw16(cM{S^6KVh8DPUt%fwd`>+%y=3_RG{$2u{}_lCw_)X zd7l82;*?Y8?dH===9c&x`rD{`cYb67k*`SWxP`{jo=!ac`>4jj4IduYWU815whdiq zmVQ!Rtn^FQJW&U=yxo69O1O(}IF?v|Z_VpItY(=pd41{T;R>J%1VS{#+M7A5b%8n# z)de)#uBi|AukNgSC671G+EqJEOum{HhR;)y@tvQ@n}5lQgZQWKu$=}x(y?@5Bk%*K zH8UbBC+FXi8o1dVyFt>CVEdqdf-%jn?@skp#5s${a+;Cz9-)7nqZa}e^^n5U6ew6G_ENXMPoNH0p$PBgb5zfl zPF8QFgNr;FUX!Sg9IvQbm)GXCljhF;gmO7p*5MnCS=n*Vx!KVVOi^wE>~?E;6??e- z_&(*#YR`o+Qc-_GcM@-&yi_0)d|iL08BE=A=TD~OL(w82tXC5iS8RLV2qRLeA6F0F zWvCk?cwGs*<}+L`OeT}6vVS3~o8!bGo-IQavJByG)#?Tcd4FjiyMIRiW>%O#OkP2H z81b&X8xOa(oDvJJytk8LhnGmApQM~N%={FzdUukB8HRtjj$f-G^3;M81ST;OJJyr_ z#y9d_*R(q@3!$Cw{e$fQ$*Fol$+XM>i8e#P;-@a-!|jfvj`OQ_gB9--r1gq-TI7li z_(R7abRE3IITdO+A?z?+KJz(x3s{dE>C8A)GhqEt zb~wJRgbIHUdA9MfyS$<95n&IxupYLEzyjgi5GDq^DG}2${H5;f-t6hI{E$SuQBWoj z8y%by^kHEl2MSAt;q56ceBYJmhnReJ8=j;n{8**i*4uRLKrR&-lfeh2CRUi}0KVNw zBI?nMAzvj^09#7H#^<#dG7-HMiNZOPHcrXw?zMj%+HQgGgHrA~#T!NPYrj5MB^gM3 z^hj%3C=K`Wf32B725}MeBE_+wukd`O+^*Gyd|m*9qWuJ zzY1NnJS<0ED5C?^%C6k-xeJ{-(?p7KVao-+i`TiB4VVRy z(OvhOO?%#(9R9b3U7lAi_00k;Eo?zy8(u(zY{nu36)+sJye_f1I;lEE&7)L{?!-hj*G-g8rPk1$^j8Z1PXFRw5sneRJTUy3i(8ZGB6K2;&(S=o%Kd zbI=ChqVo_w3S*%4N1uywin=!e#*Kfwd4o0?1Rj+l zqeNA$VLYd!Np+D)ep-$Z@;_tNe${B%kdb|u}BkCba< zwsv}@apw!;;8pI-FnM!X-t>tN`o0EK%@oQ^5wv>hYt=dB()1SOK(nu{tHkE`ZzoLc zxWaoE24pV5hGZzG0->Mu9J+rP>BU15yBu=K;Z^GKdk}h-sUr`VDD7llomGUx!y*Z$ z;mq)RJEFU~S7m*RMT<&eZ&8`Uz7b3qjT&}hHW4;IIMVsx-}4<}aRTE+AGBSfFmV~j z0p;QGQ>j3+n>g46OP8=<&B{(z=33SnufDdD;gj%cq7&tNv1;Od1gd{VSRAQBS|*&v zM7bOS$L+KkO%hS0>Jmj#b-iQK6kHFX2gn(eyak(*>J_vCEo9udr(o1k{Y|P~vEN`F z7ht>d(K>dO&1#$`AolTd!{7MHFrzZ!GnEwX2kHj3}ouFP0fv2 zjy$pIR@YTrK5X1#PvL(t?uWwAmOArct93&H!aqD7q3TSeBnHBD`iF)$pO@g-rJuFg zK`qlI{6~a4qmlf@5+OmTQJQ;$+Mks)EhJPN)Zof2f{i@3$aLLH?ITEV)D7mft34Te z8fXxF60{$GjHsUga?RS+9=k(PsyqDFQ$rtUclz=M;Tgr@-kB zSSP0496g+6_rQLpyVJ;+nQB-)oalDa28Th`9S zvu$i|La(tupvix#{`$63PODFW+{b!eHzWrOkqZb55oD3nIosU7Y^gDzPTHu>ci?w> zcJcPMeJ>;+y@tR0i(3lSOs`dRx?YryjkNhVb1-Y5%y|QOt{PcfE&b_HJTcle$Z|nR zriQhx@vUlmB9Rq6nUYcTd)AX)qREs1qVD9oY&Ip74$*(iZix?v#I?9JJ$dse;fQFf za|l~IT{*i_ixpgsTH5!*ak=|C=8c$qV1@S2b-o!`i6x)86UDhFWFDAdk-Hl&kpq70 z%Q&Er?055KHOtDk`T$eGYV^hUr8{SJezPB*LAgb*Ov04+Q?rm3elffI5Jpyeu;ku$ z%=S+G;(C9;MNBp3Z?MBUOFz@0RK)*|<~%u`RrO^<2UBrZzC^m z{NoI$5pRc=;2IkM=+75J=kDu6{*c-yLhr&!P-TA*KNKK&Vqe_g_X<}cyY8-fjPIIi zPKuS-zgv>;GR){ywm>~M?ah(JK|T76iViy{;8QVIjM~@SO9z$+O759~$Rype=%eqS z$3Lbpl%D1>A)qQDU#@fLX{r)HRZw*R=iD0v_szQCg<$T5mbiUi;lT;;#Hh%Je}tp) znBIR$we(kCu236tX)^c;S)Xg4<4J1z@GS%3W6b=tQ1w1(XGF?8BNqE>=QGt}VTt{B zST$Xuk-guCTl*y%XX|8Gcdr!=7lK}YW;ngAMOE!}jWPs7?6ulCaL$?h>-P?97x0zT z2QiN^EwpeR-;YHrj9DysmZpaP%xoR_I3Ir-v&a7BsBf<#UCp>l4)NA{PIl7jyA;8w z=;6S*hB`lGhw@&_3^;pCN5_(O-&CBmAU#2nSz4&{m%06CMclj^2%LLSVEe-E`=)L@ z+WCn$J|?ZIoic1GaJZMuuk$-HhY+9_{8oSU zTt6zQkqu=`Evr)MT13RVPC75jd^wSZobD&-p^ml0C7&APE4s+Yr%>K(aS@XO*5})j z)ej=Kl6BUU$Sm`$`@+#y$=xSOr2!s>Bp1zk=}Tx&pnEkRcGhw%y9!e$Sb=XHH|sY< zRd@n-6&{;P`ogbBhLufCmht=^)`EZD@y;3sO&?{)$pR+O{?0agxazn%(3q=R?6mo|ttQX(i@=cQ$m4(eSM-eq zA*2MjSH`a_E1y(-ZWBm8IYp08>#1XLMEk#2**fQoct+d2M#b9RN>db>MQcyTY@Z

RD4oO5b=c!^BD2J#-alLF||*mnW7hh9`s;bP@KnGH~+6`^T{!hSXeo-|I7tDLTii z$|lp9&%;AA7UIk!xMs`zC%I2`i0g_NWqUSq z*MvSUJ&fi501)EA%9l`v0VuQm;}IX1O0WSI5;rzD3NK7$ZfA68G9WQ9I59Yvaj*du z1Ti@^HkWbh0w;fswgpg}=@KrC27`LH2fh{|XRy0vdx~Z4!UR;MX`sdpm%fiw%I49l*-P z$I8ve!UAApVd4ExpuH0xK*HD+WCl=V0?66h0i6*j#qAwDoInfljVKGr;eL0ZPWUz&|@fY0bUOWsLLt)ilYnOOf$_ZRzjB9Pr5WMflP zds_!%I}ebZ1;89+0|Y2bDKLTE!3+RnJG0+`#x{S>_OEkfRGwR^qRaR};cNHVYsaz{$eH&CbIH06GGI?xvQ^ zztewfcsKz6aI*e3zjol`eBTilb^Xv6s`;Y&3-^^zJf@}b0^MAqD)RzB(oB(Ff zzaSTY+3H{L^HpaFlX8$VYHQwgWd*vV2tI(P4{smuY_J2dJ*YkfJjGe$B zV;eJ&`9FoRzmgm*|5eIso3CO9|En?9*J@n;1z#gv|AB0;rMUiaasA8o+Pmi;@V~}t z>f+?|I`==e@pb0^!GGMXK%hI&6k&1B-jqMssxG+wwnmiDjd5pO0QNNfR)>voyx0I9 z+%Gw8xRI!ylf5MWQEIV|Rmy+Bs!K`C@iupD{=#d!o}|Hp8~YTtsyB!2GY8geGd z>xPJI4z(GgKs#0J9bcJKKZFW#6x!Ff!e$oz>XfM7)OEcJNp4hFoA?-??Uu(*< z6>x}nwT?H{z%3?&8ateqc+`2DwsApQ(H|nxlrqWW1v>8#65XoNehhyM53Zp15qC!g z$hijYoKb{=(Ixo@i6l7SsPnryM8pXP_F5q3sfhzB4`j?uYRPN`0G zNX?SjjM!;27mwEkW`NGaq$B|c&rGRhb(TBxYF z&|1v%#xMq}g_)OE1vW>mi3HK++`Ook@zP8`5asQsr}ZjH&3=Evr#{0eTwn85lAI&D zd#f9)s=EZ_{0Lv8RvPOBXOVpx_{?}+nJ@bljp3bM2NgnJoo5!xi}QHv*KQ`#RH>6G zdx{OB5hp4dBdDt|cAy<|HL%~#C|rppP=?gNg@ewuZLm)}_!+(xD+u(d7y@u+1W_a3 zRfmq<<+AXC!n}X`EB3o}xJgvhiutI&_hBAm3#|7p-7pWqilTQ$b-*P8t{^R zfG`DU>ER6jRQrI$fvX$+S#~9gz81?Hc^yE*Di)=xMrHr0IoQwa)5i}PL5=HP63xz@ z0LY?3!hOJm#!OtvZ)ZMG@dEE0y%x5=-TD72iw!toP7No*z=nwr#!8WYcsk=QF3k*sWCG=-XOV3tvX_|kX+W72Ta(JHt@QeFV*X&;2GkkCXnl=ex z2b)q4;!3kE&I`b6Gf0=s>2TCRO8slKc^MMaP2mg;N?CO|rwK<0KU=F0#W@i!UJp6~ zv^cgS4z|H}BZyg8tp;~P#+5*r^)!bM{Yxb;F|qd{lV|2!gR|DnFsR=pYh$!GmX3d* z%34{+-H$Kr?(8zop>+m|tRm2bYfQzKKW*fvU$ve>WI!+Q@-Ib!Yp!8-w2N!?8 zu~+7a9;cgZrJ5pEPCcU{Udgg>ppH001T%jHW*iC0 znKfPq(gd#*=Xf6_q3F)nAAxIOU4GnUtwTR%nrav`D#O4pi1ahDWw8;JzFik6 zTLv7+Z49{S<7C0)>2{=z9akkI8jiA^;uLhXJSf~xPPZf@Ed)(CTzDZ`#UjlkSNx= zG82@^m*xmDQZq&D-VS;BdFTSt2DQ1n4~1xq*StqKS^UHy6_5j}2&ir?f#C|2R@DL< z=Fro&U;>8pd48fZu|O5U;Zo_*84gjFHS`E}+4mWmn9#Gg!pG7pX1IT@&`UI5iA-jk z!u;#*8w_GFBYAI|fq{z0wBh8>KjNw|dbVeN9nx3YI`8s*+zp0e$<)-uh3*&#A!2Gt zjPza>HE6ZN34!Fat4|o|a}Jg}Of?Dhv^%^a7X(t<#wLXaJ^y2d^@2FbMcj4^gSyx9FL@a-A(Wdzp&(;B@U5Oej zPHaL0tn!EJG1-iP5uyqs^Km&icA65`8_Wlt{XNY1Y0 z-RKJVv5%8Y0vAx$$a(W>sDo#GCv8dl#&TAIO(Eks3*zXuQ-o$&qcSS+Ghb{?gG#k- zo>aHa1NlLaA3=YX41G>$;OzG0bpZ_?+JmvwO33PKXQBM@r0(l-UsIx}?IV`=#|z|b zCK*xp4z*7B7VN=R@08NsQ3qfNbn&NZamf0^Py){K_q#&IyhEX=9Sug_YHc}Tx&JS?S>Ccq9#iGo6ZT{z64E!=^-Hm`mZH&@1)F<@Fplb>mw_PNB8&y2lp)` z6{EHxYF%Db6CJbya2%+(^>`hZ(N*nbe?C1nYNf)&DYEGs_r=`-x@jOtsvbA|pS)|$ z7nwJu;+%gz-oYoMs%g1CCKy~^z?^-43wb^2-B-bw?6BZ2ee!e)U5Of#1Lr494YwC% z(dD^-V^de26n1-d$dJE7I9^ZQT$V6CrV;zt}D}Tb861VPc-wMu2s;dq8H8t0H7GhLA&uvl^vdns?Xy5{OR*`-U zXg(aB9jFVxxoo<DLjcQJDRy^Oqpa~94@^NNe&k&>5mA3asDsL?s#BwQ59m|I;DWWjqnIxVRY?$5 z_~)nGHxqNOo8^S4evn0o1)jgfQ#Z|=kG#ZxH|*obDG{(^E1`dx z+HN^>An(VjNNfG=YyqBDw4s4yX!&*BvKI0@#`;%U zSXcW>0`ZryA@Rmq8^GlcV-O6LH8o4eX?kPYF;d)VjjL|By)`e@@B;gFJ=SMVwgsI5 z9;e4KzXN@)JytqNT&Ps&qA(rnV5EP9!IkZwvf z%uZ#P*Yb!p&zUcV^sSW9&_dK#XOOAJ{Gc?M62a?tq)#+ZY2p%{+;$=P*yr;DCRl|} zng#~eDriZDPR_@e%t&o%#xSoDj55^UDh+W-lwAsc)`TQAO zZEkJO&v2qp#j{^^)Ou$f#_`RJBCQsf2heG-hjVy?T=&67J}xf?swxo7O|HLvRQM6Y zT`5IWOG3p89H!bRS`&w^vB)!Hd={QL4v+j%3{P^dC1l6Y^fRnlELs+us}jaH8>zJ{ zO%m$nZ4d9=VM&OhYs^J;_sh^ z(vN>6zlZwz!K<$INP^Kpc}O63sx>5J)hA<8p6F#zl}Zz-czbXV=M6Jb%PhY~aZ1rs z-xQF*Q%WJ-gEIMYFIwUB&f>GuQchb5?t>jH9yUyAhdkaj`C(_}-Q|CrVHY1}IEu7E zEiLS(Iywf=VEgcU@`?sgOWN8)0fNsT=5V9%cRv(SB`&3^yS83GQxeLjsUAjdQUi92 z{A%Hz2sn6SC^}|iuw~#ShFEkxENN+m_xR8C_*2W%TWY2rXVCXN7$kq3-~E`?dgz}V zl=F)~8N2DffV`m&ppT-ZNrZKGWRbtx4mjw0TA7;f09QrigR_$2OWVoNn8Cr!iUCPga~LCTZA({o z2*4p?ZhA8qB5e}i!YdORu8Dzg;YCx!ajU|61pVa>tyxP!#=?I?|%zVlV> zmeW;!SMnaDwMKg1ym!~qP|NR_f|~da6@C{S|ENsKt?ij~k#=I`TibK0X`$=b9=vn1 z7Z+!&<3+_!;(ZkSurXR zs&r~}6!U*Grk@_Wmll!Hdt}2FkQn3pviwgjRHjDBV8LYF0`qw(axESyd*7H06w?vz zjFzh}XGG%G=s_mM^#qP>QRdbjV1>`eCeAvws0Az`hQ%`2=Y#aI@8a>0GRm7!2Pm-> zqSn0c-#Oa2mE?uK@ZfK~oxdR@Q?;jm4Pa=v{!04kQ_0UFi0tLJ z=txg8nXw}+7pizMSez9xyov4Hq83MHB!z`<8+p9qvglSrdLwm^ z>vBr5(vo+730MOe*5!JBRfH?wt2KPOh-oTm|HM*?KFRls2nFvKA4+FFz^M4(jTNL8 z`&PjhUE6bV7xI=!1*4TFWymtok3yF~J_O=1QR^3_VGi7rFBM8-IA?gR)~3pix6x#g zfjop|RJ5{7hlwJIpYo$i5Nv4#%k?-o9Gme_4J@=R$_3IBI#vmCmsJSV|ay#nr!7qAFx% zeyN6kUUo&G(fw0l@1(zM38evZ#tYsVg`^*<%qk9orhB)dG70w!8|A?%OMf5}eu9yG zy_ZrT4DB^O@XW;m^UFR?T#^{|CholnX)vuoYH%2-$RHgr;J$c~Aq@eQk@H>vuG%Zu z)9Gu8)kqGoBBy!^nm> zD80mwyr3>D`ai1RwSeaMF*FJk$qWU5pqONoG^NrPlETg>!u$HdQ&w1%G8E{UZCWt4 zR7Z}h96NQe<`L>nv)nGH#tgKN-1;8RKB`LS<7M^witzZ-B$GYApMKKJ!RGAFlqZ9n z=9JKQzCZw_rMnO~k%rnxF<6}mRQu`RshYcsZ?&iB@F8AgQ+~JcPZ?@+9BE#Ee4aYC zD?m#^AUy1B?lS%*VAj=VFmdci0f&#;+H8rh*B_gn&Yj{7e-DAv980NNxWDMXQF7#g zbfNq>;ID-VHU2BmWV({|WD#1Q*Qe+q4EEd)F_i5ZXQnbBsHA;-_zvk^9*mu* zutF-Fs!%A>`=Icz>WT-OUB*9uZ|`{eiTcT`Gc3dvX5tXOFFcTyPbB5Xy_>MXBF{c7 zgyY3Y67yHI>d*=J>UYRKUA0s*czt9iiQnpHq;ce2uGjblb8IPZk_f&|sd{}j4QRE= zB(Xn&;ZlZ-$fm3sJZ_AicWGs+o^D27-f(BHr+-4$eRkxN*ci~80LyoO6mm*;f`irQ z!Ge6$MyAA>o+x~hNpk7TcN(8GPlTNk8PPoWf{@#AMwW`dt5~f!BvFd$Sw6Vsp2@m9s zVsn+8j{~uT-vCSKz+MQ-RfS1cP`_@ss+{s_i~zC`2DHS9B!r%Aynvl zh1$lMSP{{;2u7up8s_K$g z^Au)+sOAXa95cz>LIb!}9I7CPd12K>)$$>h+&W+`klVQCxOlN2Y14I|nNP?7C1qlb zCUsS*>=-^K!^Y8nN9RxABQ`fDb$3q)cU>gz&QcM=Q7{yd@U>O2Kk!0%pKXo!zL{|g zT`6bUsF4mEb_R)vA0~T2vT+8kJeEiE<3Ts9d}bS-m2TIR$Qj~BkE{;$2&qd@*h?TyG_JZZZWadeAc-Fc)K~S5Qc?L=)Zyf*;ong?Z zn9;DYk1dd38n-ENHAHkxQOTq+(3Se z2)4vr!((DNY#f3`>WW%6!a+$yqugf0%vFEbNGp4P@D!U~A`#X<0Z4zpIE08E#9=_Y zL27pj-*sF?7pk606xD?io0U!9)<|3C1bwyaolQm%>^r>U05bS z`UX;emPPLTt%hKumYvzMsqy45E6{b3pa?&sg)HmK*T$C9D!VWxH0^p>7NDOS|SVD*Qevh6-scyiwvy!_(KP;@_A%-bY2cbEPk+906HSMEzP*x+s(7+ zEc|i;infl~s`T|y&$iP&N@K#D$KE8rkTDgdi0^6Iak!d_?~gTm2@dY%AH{S(+|ASxmTIv zPS*(zfn*Qm#!|pRUIg4V&QV1UrH^{wf9Wex9L6LI@0ZeOmTJOhpfxnXZ$BOL`=*~& zN4SWi;+?hg?H$D~Mg;Ei`QEeoM<(=tjy$Xe(Dg!Zsi~O-A!HKi)n9(b)*`Dy3e|Aj z3*oP!5qpdFX$sX?^FO5uK&}0QrCOi}=tL38(SLrpe=fmZjEH&gzo_%BpHz|bV(Ee{~=MdeFg%iMkv!rS) zqCJa1Prcyv^b+4TIHwY>^^=@)?HkKwKG?qK_*SPVDXm1 zpHiYb7fuaDrF~I}KY-tThDL*^I41HpBjra{U?U{d`)a$nPdE%~LgO_LU5MDL(m^{y zD-KZ?I?KF$M59Vu!zIo0Hdocs!xI9gsf`sS3Rf}9Tl-w7Osk2@H_U`sjsv5)uH<1{ zz~2#A=ibMDrhgKabVGN4uE|T!Cqt2s@Wc|EGAi1L&aX1M1qoNFxkqx3mirdkEEXJ>wxOjyd9}GvzKIW(99(Du!yQwT zN|%RI`Oppf5uZfh8=S-6*a=whp|58c*a6sgM;$D*znsMspR>?^&xdnP{Ic)aKT)om zVgm6lLjsm1Fl^QcQYdl##q4c7^$uj~!Yhk@F=>yA&{1SZ7)a}>-qz<8pR#3{dAOk& zl>n#3XH&~H3_lJEsa{w#*}nc6AF5Hf-k{#jidqc*VZf@2>cH>%u$HwjJI%%GTM%7N z;2PFToXHbwEfBDO}j}~^`I2My7_hdy4 z05?+hDEdH0<)ig(&tBVA+8y#-l51yP#;n`j5=qY`x3&1|iV#GqBf3y598O=qRA#oi zF!%kFU(V3$uI_@L)O}GNJZrdk1h*38o1W{mCPoV(A!qG>4UWoonb{XGYvIdvaQq0r zx}5SdPTx-Nj)oJ22s0=u4oc-n$1%zC8}a)lq8WD35Q?nRG#ABQLBOusJbmaTh03~Y z7InZBBg=g6wfcC2oUzOPgBwRgQIg{`^o$*bUiO%zILq!_pAFVN1`*QQl}@JbW6r6U z#P+Um6Um5wysF62j_=S(nY%MEwb5J>&OXqjWN*+<7~yqGaNgfZCLw( z{0AwK1xovZyyC8IyoOk$MgeAQjAp{GlQhcAcBzN@7BcCViVO%kc=*1cNXh)zqUUb( zMX>1Xuz~EFs?Ndglx^!Krw-D1K3i|G1{W-U{o=_u3Bt?usq>N|jg@$TDOVb^DVOJzIRtkKChAyhH$9 zmq}FM_3uNc7++%4Y`%C>tIs%20-*-;RsSe*v1n!J7JrJcOm+t<%r6d22i^Gu29mfS zE7!(m3icWEp3b*}B=;A21rzzvOqTF}gK_7*GQJ#@+r~m#>(H0Pi$__kDn6IOBXOrb z`5O?UYptiCG^Mr_CzLbb98|h4(qYCDXC&Cmjp#X)HelH{w~XC8en6)4#M6+ zR=zEz2^#R~+qS(u~DW7+{h0Xt$H!WWpq*V^Nr@cPvk8)pCqt%Q*CZ@n~ST zDX}eGm0XN=!AKi7@MU^$_t%kX#t)!?0L}cG(^+K<-J0#*u%ZJWrXHgY_BDc(LDiUAi*(mS-=^KclDs7e~+ zoAjdxHxDetQu@OLY5cm>Ux#~tw%OD7F+i7oi>)q;Lq%5c(-@bKd ze&Ev((w1@WWKP^_ zAQLa1;qiM!MlMmA6#Q&1=OYMhYNAUSIHaJlS8Tmf);ZX*kSm(2zL#i!M)Sc>c3y%U zycVx22j6WZXW}c_)mLxF=eOpbIp@VXtqXOcC*LQY&kkkx(Ixg?GK)ff(kAqL5t|L9 z?jdP$Xx`BsW@+9JXJm>j7A{(4GhtNWwc$v;%{v@NAE_+%QS7vsg+mZQ510}G+=d>U zpXYes2h;RC0qr>kv!gkG2!{hp&tdxI-i*vZBg5*22Rx4!GuU2MJf#HG;jA9Y^qNL| z_N}iZP(XnU&tM@rBfuKEsv<$dWkrA54GdJV#tG zk|*Ic#(){T`{sCmjS+R^Cb^rx%*E#W8X40`P-xVzhkNqYmj=%BX-2M06!cdM;uwvs zayAT;+N{cFJJ*E%x?2yfq5IrcDoQz(JHAEGeA-3b*(anYb*y+Wf+lLVT& zY!xg1)}&O31ffseBAt|qZu2JL`w$$yOziVvNdWRy=Ze;UOyK9dULokU6%dRgY@+Iz|OBTMq$sPB{`oL)-3CJU-#Wz-VxMR0e)+oqP0TO~i>ri%90 zgY$9}jY4K?j(yz4oc5*%n|5b@*{}!PA7spn#VR5Y@9_5PWGmno^L^{td@}{c5}=>r zrIdZDN@VkY*&8@ORAaLnhDCiBE`%9#7AtB+yjoMwyO*g{TU9ay{czKbRvS_`8RF5C z0&SNfR(QQ&eT)%=f4xQ*T;}5kgBn}~RsJs7>AMzjDMolkDlW?arENzBYjJiMIPjBA zvqlMdz_v5@%135z9nSjYY3txkQVJ3j!F6aS^Ks69_iE)eLTGbWMfy-=yRPP*4BX~# zgdw&+8!^4K5nmitE;a!A5U@7zk+$>~c~>-He|(k}b9&RznZl-X%)zq;s=Cx{P#zc2 z*>PFXr3L4LHqhPslbNR^+F5aH;p3-;#_>4we;exMZsWyw)u7P2w!# zzQA#R>H%s~U*bF?A@h4LtmSIZ9rDuYS5cXUYSX077-<>XzueFr%}2^_RWc-`<#vfp zG>;D=<_RQVp zL>GFW@;6(O(w7+?3q!Wb7j3e~bPd%mz3fzfr26_syz~!)Na_!+5Y;B%n~^nEyi0O~ z1Tri=27xJduO|e8&nkR!W^rnrC88m#*}-qil^82CD83u&!8Q+dZj2)I(1BPhUN%IL zZOtqfqNqsV3>*oh>D-mi)XCNa2%-s27A@an?7iN z>+n{`KI(m(#n1hI%XHR58Mhy5(D?iv+xi-(m*U1pCrxhHH1e(GhUXG*HLGSoc;>AK z%dvXuHTvDkHx;yCn5+`meHh}h{zLDV@o`q$e_QRX zr53leo#SX>#CqmTcm&^pbh^*;jK^9f-jf2mj7?ndU@DzvT7& zY`>YM^cv38{FDx3ewxClZ7&9Yo0fa&Z^3$V?*%d5emQR}fg47D&?kdna$SC_cu2E&QN`>aG3QE@8~x2){qC0h=*QTT>-Z9&tA z#ex)$uc6|&w#AANCuu`}U#|U_Pd$5wm=g0!xia1sZ*1XE%2Y}m+ci1YWALuY-%@I5 zL1M8DG0mpO_?X61qW2MlEz{SkX{>>nqrwH=<_WcO zKgLuSf;4ZqC40%8zp=4bBe`(DQvW+R2_fYaDLjt zEgwjW{%~nBLZ^fggYR5@qQrQDZ)){xtdZP#&y|M2(2hel^}38Gan8ecs%-zNfPy@9 z%Sefru@iJg`$fd8oN)n+J5!W5eFnItk(tWvn%HU|OEtXWDsNlz=VYsml_zL9?1)ex zi=l+3pkgE2`2)g#WEq3neV!KkUDz}{+Y66%u8G|_E$qKO_fG2?i|3_`@}!`y$=1H$ zbaFyEI(1mF;C(!Ma9@2<_|&zJ9{Bdab&HV?h?-Cbsq3bEmf%?dDJ(T0inybPeo%r{ z=5$!5<11jEfyb8bc(x3V__F@S*#Re(C1~q`lXP$++4q7FlYabz9H9mw9?Sm$M0s7J zmkZhfClfL?HZTe=Ol59obZ9alGBGtbHJ5R)0Tcx?GcYtYmvQR?Cx49h1ymI5+6D^K z(n>cBUD93B-QCU5%+TE}h#)BqlF}&ME#2MSB}ms9_q+Gj{r&%1=PcHex$eB~dIqV< zRn(b8Ex=|#DKN;DiH(_+A0V!%#>NU@W#wRIWo1XErq-}=wFmxNj7+Tsbat@;gZTe4 z5O)TexMSm~|Am?TeVB-L=ar3kB@UyZ4*jZWm{$mJs<_Acay4zR)6qx~X zU=Yv+nOYp|=;dr++6Hs+=vfTF3ZHP8W)(cIJ? zpbj>-0lIqqPY60eYgboCeijxF4-aNj2N!0rv(-ELw*U_tSAT1O8qfvk><+X5{4N-v zWaRm;*sB5Dzzy1<)A)Ne)n#RRAbE0zv;6 zEBs^d7Vz)h0N9w>{u}P!-oFFcfd1udYHkj8a5M#Z*?_D7mNxc4fU=YVv#Y1;TYxFZ z;-b5nqns4Bn|QsBSKb1`?eaddTIcCoSlT_VfxFpw@w zf-JCgi4GA1E&sug;XB)S0`yrS zyT=A#{r&UbPlk~7vH*kZz5ba0YrZU!da{~2T8#fx{9m1z7}yiw!^Fu7U}EQD1+e{I zG9JhWzkmM?qhf0FZyJC3%7QGx0KR|NLfZ5n#_s=K0J?u42R-0_V<~|lTMGox{aJDY zRxVa^$UkiVpI7}~F8}{F{CAZ9wntO8!d)gj~-5rj!JkgDrla7&{j?z|`5< z)C(ChWC-E{_^?54(E{lCuO$YsFoVFZ5ElTXJU@UX*ctivM7g;DETX?f{~&Gvi`XB; z1Akx<|ATk|EE4}kY!CpncQyT^=7TKYe-RHWfJN#Lf>=xcLF@n)nLmgFz#{txaRON6 z{vZfB`9BCkPT>!NkW>7FAmo((AP5)bKU5)HlpTOpf4K5O7^wY05C-ah5QKro9|U2b z`3FIAYX2AULC~L=d=Lg^e-NZ%GiOtCJAWYLOU2UlkDTMb@_!EFzX}Lt^FIhe!raE$ z+|9w#9x}iGh`As+%)$1MUHOlM^S2@76*T>;T1dGTe?bTn;GYPP9s>U-G52r1lN;pl z{m5>!e+V(F9>AT%u5Ym*t$wM0H@L$LdA>&|b?)+EF*naQBAIJrX27;X0UwTMK zz<>Bb;(`B14GHP^M-2()2>AvD{m+;=+5Rp4-yw5C3UP$IdEh_u;e_4XNMN1N@f*B!=5x5HcP2zaWH}$6u=i@%H=+ zLc)9f1tFdG{zDED$s6eWPpbcU1I^u>A+2`(*S8epf&35t*WVmKpeN8Ad4FLRY%UOL z`z^HPwn~)9gK1|}Xo`AA`!hY0&w_KS+dcZLB>KvX;5FxK(WHT{H_Ka+bXOvaWKTXv zjWw?#ni5o-AABE;KdDXZG$YTC*=fODa`D#7c#j|jL3e+F&qUxdh6^T?`FJL$~4$rItZu;^zcbwuP}!vXne%>ljZQ{ ze2NQ}`{q3x1q;Zs(cY#kGreKnXHT!RQHuuEcUQX)FSN03=Oh6_X@80Ou(lJbzt&?L zJ5wm*R5lw&W4Tsy*a1oQ+bqRaTCTM^Ep1bX7x^Z?zW}Dubghp98#;X+YMfRE2K$(9 z!c&@V2kHm6I{mbZgnNaFtvuKmB(3$MmY4X`NmAfTTt{F!w1KkNZ{9AtC-FYQn}!Mc z1pgGfCuG~qXJysng@5mc9wt8J%JKdA(XYJrT&Zn+8e`7h1Jf|%C4^h)#jHK${5+q) znnThgBb+WbU9$6i?rJQps=zm3?Q}>9%lUdaF0;f}FEWMrO|JQ$Kd1^gWu?1!<|+oF z41&FE@A&eVPqoT5o8!3hRLQrGqnSqbYlHg5Lc)6Zt}XUAuYXHR#f)$cz*=|b)l{RBlp@0$lWi}zpcGEjkcNam72sNr+OrnZ{{jrFT9V(N=v^MS)zP5s?` z#_E9e`D#w+TKPdBVr^|zRl4v1fr;=XPx28iit%s`yna&KC9kK7ASc@l$)%9%*sToI z;%hVk?$pKxKWBM2wgZlbG)-|Rc$+lb8X4E}Z+{b0e%D_3q_fZd=A_gHYffi@22D-7 zoXVW;xoHcwIY*}crDSPN6FKMce5+A zPJd~oRB+3xP*K@G9Nd>RFeTuv>v!NEO#?>;qHli?A`-|C&(W|`TP2!RdPm&I4HKlk zbp!h=ma+HXd#}31r{+XVb2FqhGZdorcA=F{yzsS;7Ox5SJriDzpI`2yq9;35I1CMUo zSo<8tO!PTG-WRNhVvIFAm7UM49aL*!Z9fubwW$KpsYemJmap_*Yrxkrzhq9L@@39Y30SHK#_9b_v6kT%fDt~}*^IBrD z+G50hds_5yaLelbOEv^=bI*cSi_X+AaT{<8TAQU}e!!Nrs$??nw<^F*1bW`W72+G~ zkLqYeV&MI_{H2;xiKe0Qa^)V9bB7EZd>ilhyhs@09AKSr-;m&j`!g=|g9)R(4QNWZ~>o{ zl3}Eva#ar8eJw44`P`O~$SHI*%nD^@<*ap^w=KN9rL&|V$KBy!R@p)ZLhB+FQtS8f zQnwnpW)Gh~wP^)?w5PMTs_4vIG@C4sSs`!OFPTZ688X;-x-;ceWq-q~8uka2@@+b4 z6*LqL7Xad2jOO_21p0}6JKTE8T(ctXJHr2Q9~ zz1mydow*v?g;6N&#eeag5SorJtU>aCX9Aow78@j+g-JIgvn;|cab(^fJ>H@+1vA+k z(8ylQ7y3D#jhid3Y@%-EC7Gy>qGQbZoO$Z=>}DQ`jOGB>ulc7+Ktgo+ob}GJdOtW9-ai4x|`C-Mk`#B6(h_02{@R<*~ZI_$$!$dHyh^%fpnyzsP^?( z6Q^t@%e-#Pmu`%wTMHETm+u75-v)RO)J#w#gPSYYay()CSwFi3W6bswU~02Td5)b< z@29K*tezb{#ngIgd0o{mVoYRG7*cxs2&Y2R(>o}ZFun&^Dr$a!Q|DbdkRR}GxzENQD zT-Nn)0v%ue=5dXoB}%ZbFgIzd7b_I21lFaakWa8yIu=b_(j-jl;EVNo>p%}Rj%vcF zQ~_9}wP$kzBP4*TB(9ZWf`g;wMul&V?^rL!g)ah{)_-KHoD}WYc~Se0Un#NRxZh>! z>PKQdnFxYq2x^8AiS|ku4Lhd?=2v@flwGQ6cI`8)ZyqaQeaFgtW-oa=6v~C!Sc4>DWot}Tr76iq_%!_}!ZzAH7! z^TbvnGJmS2&K~PK7ot6L@o#;9N{aUK$iBSupZ{~F)RPKKvk4iynN`5)MeEx7g zB_Gl;^IGNu?YG)@(0ZyOqpxKb)?KOdwqKGnI`oU_d3tEt9&@ZmL7Ax41P8jb(@UmZ zbsF72X?2_frq@zgK*pdXSUH7UTogpQWD(?Vdw)4Y<7vp{wMryD@=~>HOXo&*>1L~4 zphJJ$6BC8XJVV4K(|pZb=*C{3$4E@~%`=6y<)+;)oC&|!K2rr?IXj5HoVp}oclBLf zfb`a28B&{tzTOPFT%Ci{vCTw$K6%ZeAd-uVlSTXBnIkf52k6xupONme;(<`s%^bt5 zTz^zPTTn4g7+hD5PN&l-2s*aIVK%(B$3pdO^iQwh-M?oZ=t-_)v>g56?N#g^LbhT2 zP0YJuFd{qr7rU_gbPFN^%;9Cr)m%ik4zy_=IWNIXz5{adQUt!0#{&5)WW-yZ9VsMT z5ifN^|DR#mFsbEt_F%EugR%r9vgAy6a(~vl{rV`W#9-8wwfobrl53{=k-?U?DxREy zGGRG5zK5^0A8Q1bq)BJ7-{@jdaESflTDW}Nz1@&8pqMJvN4RB69!)(l=Tf@mD{*|s z&Lh_>_H#HY@>RWWzcls5Zydw$HF1-yw{A6lWe1_cEG?DiXUVjzz zHnjv%?gIz5UDw*h(F#3kVn!rtVy5=(N1oq}bLMn2`M+@~7FEKn?Vc`SpGCdG`q*6l zx|S%Q_<_YXKWx2sA(z~5)gFtykS-*) zFf40G6sV5Cb_1ZioNB_bMjzH!4Og%((Pi2R_E&d)_A=!HD5~g6f1Mc@AmxLLAvT2j zI)SGPg&Q3v!W9_5vNl0Sh{2Qg?Rx}hk}D|%_ZHKtE`V|LmJ{1j-svXwKk9|QY{{BKiKxraBn!U4x5S^q z0o_4RyjVe*Qo+OqTUym69KDyO<)Y+XUM*YvKc^V6v&_l!JkQ~igU!YipJ(51uvq$W ztR<%(4Hf>_qLBWYjDJzSM{B9*GVyAfOh;Su$?x&Hw!T5Pr#8k2C2)F<+IHjzxlG$x zw6e?#;=ss9GUL0tXo3BRZ=)9hpEl(h+;h>t1sN_=B2z8ADtWy`D{d_u#FZ)-s*e9e z(tI*h)%jB-p&UOGDb2L3CXfj`RW!gnD*V76tPNeGNOuv7;C~ENUqrcNGB*y=^|4(t z;qbMGaVM!TX`+?2&v^=1uO{EAdCa|(!wdFakAGzNJPEj8P<5|n#lM&LIvms* z)m2KnaT!aezq+kmU@Lrh?aK0D8s&LCW_a@)d7blpHCs6-()dB*ou4BDKLOn+VHHwPpVSJ(WpF^d+Yuha@)R{#m3t{A9COeJw|vFSIPOiS_ynyfd+`1GfX z++GmX_wf1T;|W4BdNky}n(9z(dsq!5)G3GPZ^C#+6FL0|$@7AfrAvNkv3Sy)UDa1~H@GHSF=8kU26bOwjb_J;0vHo4f;<)D%;9nIwNXU1=Y1DG_dRA8PJ1 zGI)H?5RWtaq&m1!tYl^x#< z7a)aap(U*_`<8JJ*9E6c`Z<5yh^67HQ%yJAz%{h>hu+s^cXxWEW!|9@UtL8|Ic|WM zY3bSfit{4xZ0QBHtxdKSTO!}R%zu3uc=6u=uAgX0$j$hsG&SkG_M0dYcaG}E>(l5L z?cYbS#D9YMoEM*{;wJzfMKRSPe?3Jx`bi_F9$o6@-e8aL>BeX}0hWXi7DXTxsl)eB z4Ip9A6O1O~HqHH_+WR#AnKo0Equ)%xld|C>8OJ4=`Y?Zqtr^D25_N;C+<&K6Ebj($ zm0wOXNSw7+gSrSj4XYXvTHeubo@IB|8V1^D-obK#+urE!<&H}Uym_lcQ%s9x^EJw# zT1mB2_CjWQ8Zh)m>hKdxq+uWrzkjEJH^oiQP>npwWlv^w#%KO#b zW&8j$@NTA%k3p8z4|l58fWl`U2l0$UbJ4r+=YZR`RE8z&@Irprm4C`w@gTiqTqN)7 z;784ZjC&9IigPQhs39DuY5sK!TgrmQ%4M8L>sL-cPzo|yT)=2djUw^L^03l8v0D`7 zzN+I9FuNu9I{>{4Zx`RNV86T`g_#<4tf&J1K+BRDhnAu)QI50N*>iOi_8uXEPqX^p zE$ZhJ9_2C&mcQeYmVXmp;F=#V;s-w7z4k>Ia&5C^o9Igy-E)49!l~$(sCXtAmUHiV zD^KPNjdW2HHkPEd8W)#={P{6mHMB;5c~wxeQ-_}zE_iWC*qrg2dc7LyM5%dMOr47_ z{5GWXJ9JD*7De}LPsVqveT{>bm2D%luiCwc2upO|7^narJbw_%ZujYNqCO;Sg&AQh zkvo@n>v|Um7KGE_Ij0DSTF8nMnXp6#`5`me0-(9Q4TkJ5UJpM-Wyo_9GK>VtGZDxch?YpxhV#A#H%Dd(cRV_VEQICfGMf?Y0faM zU+n#6HWen6;eStdYC+Y;-A(^pSZkvV(yfExT-KO2x8xy#TfA^6+d}GYkB#I%9)&Cx4oL16D2o?FiLwR7Q-_Y>E|` z%wPHrMN;5n32A>SoKni9R0~eWuWbwP?VWY6#Jm@@c)bjVDrj>Dc{p(U?J&BvKCUL;G-GKn@r?2x46u_^d5+mptz{R@d?`(M53gX4Z<4#S1 z8m*o(EODaH40F(K8`9;bpwDzl!J8;z?)yhS2=Vldez920LMNsHwH`tUK;D2Q?9e1teytF_(`+aXuzwKj8|=8 z;3e^Is?ZV>PUBe9aXF{9F+s8mxg5Glj{dR(ubmrv6Io!-9TLANMaEXN+$h!$N&2V~ zRexW*z)yWqi=E`>CLQj_P{T@;W;(RVVqQY&3a-k`=Dcc;Ck%jNj8)w}$5BnT_32`e zJLNAm{~r7_sTHN}@0`4T`fm3@BY4fARhR@l6AgY%L1I!6!58~pp-_Y4pz@5nF{W<% zY)HO8$kLme{;c$Tm;b1g78Yp0ll$y{nSZV7?Z6UXn{(qWvdQ{3e=0m5J5!TGhQf8z zMe{@fwSijFKXttJ*_xXuO|WrDhXC^)(Z!CimtNgBdqAl5_<-FlZ@D46tA$Bp${^AC*WPU;XRaLEl)r8EC!{^K%G9IGPochwtt(#WY-C> z-H-@*h&CY|0Xuvp2$YpWICL@rg$0b}tB{PXW-E=@JaJF9^KoSB`-hUW=($ymKykFZ z`Rpm=!H|HOHJWxu@-&R1aI%KUAXmt2sN?3j)l;d@pnHj{OG4Ec%-9WZlxQw)lPy}x zr7DDu+%0Q&xlX8cCM#6{{(rP-+9-Zelibi0m{|0|rjDzxErRza@b*`@=0f>STTc`3 zSCUHb)!j{nN#&K#K?yGI7skAsL6pxw>RXT0ghp!j1aT^K4)c#DesUQI%#QUOyO_to z3p0PekG|ltXKXr0haJ2ic35H+vX7U7U0jAgZ(lPo(0V8>PEmP7kbl51E{gMsP8%k- zdl^qS5~^fTG9=etPhUHBBn^s_>P*n;@_*h4-)N7IHC_>Nvso6Z zyK}w{kZ%Wt< zKA-2O_I*s*8-E|3%Xy%+Mq?PZiD*lahofZDS}8=H)X0)MoGBaZw)AJ7OD--pVscDb z?#xqXLi-}$(s-^)@i9LyX1sTu_}CJFzu;OpUMXKK5XM+*Vu=rmd{GN zT3f*?lVTm^NdUjZImO{w)^OstQ8l@9!u4gU=!cA@B7a(pZ9Yq?xo^4DXtDm!P@31k zxTNyteIKSMA~W$7zL%^{oP#|(HtH~pNtczBv*|E8muAY=88@4%P)w_m235(-qexQg;KE}RziXcZnkH^ zH-8NeZ8m^*e|vL@tc3*E9#54rWO(xJvZ~B+%|vc8OlbCXJ;fgLJt2I9D=UwNH^R#3 z>p7a4pNtX_m7*}A_PM$3`COe7%G?>lDA*}lb85mlaPlG}PPE~I zjH2xcGxd~2f=SJL(Xbjk6inIl={cg2Y=4`qwm`ybbkO3OAvy#vM8i|W&IkLZ`?NxI zj5wGlL1+l6TiGg40c)8r__+obo1lq}d*>;GqkpXccAPiVd{;0Uy$6UhkK5J_i1HEvRvO;4gAoccuSuem{0FF7R3P@iokIj5<5=FY&$^?%NA&*YpEHNsp`982(YZ zM#0lT%vStV!JT5%ydnX4Pp+zaj1wBu-02@v#iMpOy!H32{TRWuXbRm-$lt+LPcC(z z!!1dm@=(ebX_)Y>BE2TH#GR8=@ul?B*kDov6f0N?=09tr{enW26iIypU4P~0mXR%^ zLtFZWqco~b^{e)t)`ASadjXt>$2?nLv$SYo0D(Y$zmiv9W*TSy;)`Pj-W!GwgXD~N zP>GD#GnB-W&$}!W63IT7pM^(10ob97KA;izc@jd~(i!;Ogyzq_eKG#lFov3Kzn>!A zZGXx4QC39maU=2RO}^k%`$;CrcjAA>>#JHazW0Xd(IIS@7NDR_r4l$TTi?BrG-^K9 z@L+Z<_cS$~aA{TKhM3iwFcdk%NA(b$71H|_ zIAkb_c9E?RJY|38sDnA`#gTHnow^h2V*XZ7pL1`1WVCN=c((1N$Lp&s1k`_!+~@W07sdGoLjtUH*#$=Sn~ zc%9Y^>yPA=&;WVgD&K!pldaeAdP~a+VcqE@rbpHzAC>+gVDC~$DuI*GD6Q?8I^W$`n4>dmcD+`qc;Y~n z$S6GGjPv#1bWooPwvJAJ*Vr=jwG2OcUoowD=WU!*QXv026QO^tcw(AuBhCx_3w8_p zX+IOZKUQYWw<|^u+29P^0?<8RHWkWB`o3Kz(P!1%>*4xnbW!vpEb7LRDH@7Ky^aTS z@be}@V&Ep{O z{%m=8sh8!4JbHfxczR8{Zc3kqG|;5g*p}TAY6t5g&+#;%Z86Vow~Eb|gR{AivJtH{^MWisXqqeeGH*Yc^edNeLgMGb~Z$yem+RV+Bj`!-o* zD?>YgeQqV4&Od1AQE~$47-&tNVWLVU9uf7x&M;OJn;L(jj$t1OvZr;Sb!($gnXkjG zp;dgd!ek&B$n#DR=2iZVXg6z@I4Wa~@gWVI{0C`$!`3H$X41uz`Q=wS$Kr>L!f0i) z{drLl@kY&c{^-;XCk#7h<#GMp9-XuTR?k$_fo|VdV3Qs>?QArYDBiPdGBzDK?daJ{ zcxex9a>{=ePmt@>ZL}zxObLSr|AR$~mgHXoD1jUZgM6xm4W33KA|Z%I<9@8Cxf z%eorM4`4u21PTq)jyD`<_<8k?FlNvdbG2cdkpL}lNDS@)0Z6>*z zF~#D#C+o43_)YkVRpr{SzjQ%p>eU%9Wo}b>c;DQeY zPKJN4Q<7Y$T=-%Yps3o!PI!l47`fNV!`-?`pHtJ-H3?sU4!ph z?bn9Ps3^P=>?^5H#6P?npfTcX3>Ue;pNfV}h-9%y5ND!^Un*YhX(Ce6Zx>D6o9CY= z>srZ#*<`)qNWTtOgL0@!xY#$r|D_k@=emDDOW*g1dR81VQp4cp_EP^jonW>snuE2O zhzxEG(a!V~KAzi94%%rrfOsk)cQD1I(TLOm1^dg~!rjl$0~r`;1d$FkxP%zguLN#W z*r&7_mTT40a$r(A;!9uM_ocJltOUZ{IyhVDw!}Me)9C!Xl3SL%@`53dF^h0$`PhHL z%SH=~-p#evmA7uHR%$?ya()LT?6lFdKyDSw?>n?HL(~o`p$fI;4S>05e0iat}CF z>-@zUw7ht(?L0L-ZyRv#-B^w&0FcnnDpc6^0gYzWOtgs3{@nTy&iupZ=|o#;X$k?! z6(rs{wv>9lMPmNN+mehZtTn+jdx;3&iqfOlaM)1aa9->(eUyPUeIJxY{F;9T${|M@ zE*Z4zI>)&bYq%`XBsyBN^Njqx$YVitw8z=)hvW)qZ!Bp<{7o&@DNjpp|N6=Y)~oED z^brYa)e$bTGwiz6FC;k^gIubizaIVf+=%*oc3MH%NCi0WxfO`F0r2{saX1Xa?`3`M9r*cGW*^nfh{Wv_q0gYEn&x7>Y}jYQPRZFIAZ^*zPPC2adc^ z1ywi-SRM#t67xQ-MLFx}k{@n8sFd1J5jbI(-rrGHRS(2V(@KA6f|u)44CZXBX5n!tuI{k-=lY}BiVDzrp3ExUzi>MoBw zRuF<#tv5sS$GRroJAaRIMi=ZZ@wWG?cZ`+t`*qT%`SQJbfu%kfK{lX0LaSi0PrTj! zP?NS!opsB@={{rF{#hghrW^R5$gr|&xFkmEFzxF0B9fkXoK=4*!tJ6DGP;*~(p23A z`IY1oYIWY{BbASaD^!eakyU5xlYbeh@(2{O^(~S!`}T&N`(hL$bkD~tQ7TOw7W+r~ zD~_&Rv_VL~y(E&!{j-&&F9Nfhj6~nqPnQ?L@!+Nkm0U*U zZ9(oNT+MI=n0bHY@JBDdVY1ZIc}-5jyxt>ckeZvyhKA*5=N&rC(!IFY~wVNZazE)`JaCoa`r~eRe;N+GzS}JpH@`; zbA-ia{ORm+($NkLO2Y!sUAOUe$$#PG$cHcMsSV9L>uX(OW+7(&RuE(&| zWcA|Y@=NNWQBHGb3HmUP9B%CR*Zh(N3`4t(lm6m{Y5iq8eiwhV zqT_SB8DTE9DlRy075#H(fKSDsi%e1lQy7A;yrtk9ay5|gTSH!n5vjK6 z;p&9;H>+B@Y{8kk*>*1k`O-auZjRY|`dSfkObkksVdD?va!jYc$S4dqmo0N!8ZUo> zHFHhNjiBHGo?dH%nNrwCli%Kf3SMM*2tOvCopk!DztBqM%R1a7lK$XzZ>W@dm}*$@ zYUj~*79t{CVo!m)&scO*l@wX!Qo{K(#sPAz?vf2`mxs#F;?;ou3=@Vhyw}RH@BMG19t&R87k`{j0JbUlN}G@lS=b+1(t=Dk zbH0S3P|J_&Jj{;NR@y&j#UdHB+CDy9@e=fn#f6EretQxPL1toSDS9lZO0j><_=QA^ zTpKnb`^gl8E;X#0k@;74uCNFgt9`{)lHD*6=lP=?y@KX#+%Z0U)FOFs;QhKck+r*-T zL}e|pu8;pvhe8o5l9(sTt-mFuLkeQd#Yk^MmW{EkMwS@;tJFTs@1wG;4 zvUa+$hO49C@EBf@)S_wDME&*idx_C3F<;pM$|TKecIDyomp$Rmcfy@@lU3iN;Mn45 zYu0B+D^P)$N%O)F9$b7n*ea!ToHeLR;Ps2++KZjyF=S;Ehr1^}qIdjQD!OC~@KXtM zT`AgvZWm#jMbUpjI1|&w3*%wlyTjKhvjohYnugxZ2Yh3&5h%Lti1R+Usd_YX;IHmN zWD7psRVL?g`?LDxP-p~#lL4`K~Bn4{m*55iY_z1dLPgEPsk zN4k7YrU@3+&DVSOjI}$Vb!y(*w3{yK*{~oax`xnc$G(3xfolMbCz|bioezdmc%HIO zcSPWGQ*!Z7gU-6|fTtQ9knyA^g?UiN@bbe*LmYG7^O91zkRN;DB`D4+*pI``?TAds zEJ_&iCrIh^diRV%heWHL`F&!ZJp0+3PXy+qcB7(_fm6)l$9UP#OJ96hLw-WF-)0UP%d2cIaj_Akq_qeyG_WqL_ihZLTLM%+%sGOf;=KQs_8S(blB z;u?lwp*tneh09@f(a z0!L+-FE8PVYmGYz(Tl-wb5F9#30&l9a_{|OzX*S@UIGKS@f~GJ8)vj zR3t6s=W7bui|9}nJ`4lx2!!7weViKZ{&axPjL!2WK5^VAlZYUg+QkRF6pxQa2UkEU zoQfBmT}>@v0d;Gsm2j{Way71O?l3y2uGIBOt-K$ zeaL@QppN@-#;Lb3T$beSts?)BUxW8hLd#lR*gca%wR-RzjPQ&vOylsg?SOl~owNgF8#_EPlp1aar^c*5W2__t2l2lWkVO^t;z#X$Gd*4c_&p zI`()!DP93GZXhE?E>-%WeOEm?VvuK1lEr^S9z3r?Y{L1>JmdRz@Hqc>ZgquC1sQie zJN(o@w(8J5I^Mb3$Gsj0?*jDlyjgIyGn>?p?o!$L6VaQ2M6i2UPU0_Q#OwaAL7Z6` z&0>J6cRO$8bwZndIA}KI$0*Vc+0r|)B4xZ*^>!6N^kG=j?!3Sw4Gq-qnY~C4*ROvJ z7(FR^>jv0WD_T!MD8|}A4&c8bu6e4n-Js&tZ)z+^jj_AbCGZ#S_qydd|AE-MJj4`f zcufmWuOEfHvUX^&*22t7bNF8JbKXI9M!mY+%I;oO)-hno`Sab8N#{0#n}q8JG2BX3 z(W?$P$CUu29b|`g64N+MF|HMo)n0$KuL>VjN4yc{<>YerK7R{y+lPupHMC0KvASQI zEkD4-m(TKBk@mqzk$S*3kupX$W(H!zC*97JI6Q&1v#DR7nRgaantPvC_ju4mG7 z@*LE>_lbG~7$ZTLZ0UiM=WDP&Khd&B<~QMLcoAc8!JxRK?~*AsL}v(&o3wxIJ8A+u zW^>j&LLGWN58;%i8ZE`97EIA8Ritws+|M&Muk>L%Q5+EE68mDE#29RZ8rdnA?7gu#DJ3sfnjg?V-+5Py%sGTSuMSTHpZ_F@f2JqrIk*bqm! z6&)C6W)P__B&}N*$Mqtqn{R3PO;9ofC>p6Wve8dk<`P zy_02iQ_7rPU&svxESlwXeEn%#uw{lM?5^B$;O`mnC7Gu51p=0f%+SDDg>2UFfu_-$ zJ8Tw3+`MQgr+r2h$C}DmGLmeYcV@$ri`YtqX9{~N@7h34K->()*q^y#PRz+$$2}MC zoQSgLTw{;xR#53atHysmjImugs`c%zB%juZ+p4+m4MgC{=^*ck%-V4&UJIr{;d;Bu z42^eU0^ma#c;MPDehnV^PSmwsM1C>?Mr?n%0-a?yY({EV?HIjouHyVUZ{7eydndS| zw-~Hu3~PR7$2r|*P^s?sk`=m_U*G=>{dp!y(F{$ey`hXK@O*zPo}#JahSu%&6o2v^+Is1AQ+m0k*rd~UH>r$yG4AA32mGqu(+66o>JZ#9#`Yx_Hy;@QT&R`zqo^$w&nTQ=HOD#Z*FI~T5 zJu7Xc@Qr`VJkeU9p27zt-_QKLG9#}Et(8jGxo#(Bai)VlU<{ss{US^0&`bl=2g7n| z`ho?^Bvl0%QY(7!uZ#{;pi2@gEhHMe%`tT`x0Ev+gX&lHMrtbFF-qN->?#=gIoedo zc@2vXhJRv{VcXG!o`7S?R!g?8O-J|LEkk7fy7+(Eu5`5>_7~jU%R<*@CQ)sq8g6y| zcluf6)T=PBdec1e1+@=UU&zo`_>ppQqN^4cB-~)0?Qb)GqEuWL|FiYs?^Twblw|D=%0<14#2~#z2zrQLX!g)gAmmy5m9KPwC z1jm0C9Tz;T%Z3R-f$5VFzvy4}3C&%aaMpY=Xb8Y~)%L&y-PmFS!-Lrr+$~gG6Ma{D z@d>AM%!K|9x|^eh>1Y+77BfJ*trs`qJR^I0c`7J-};@7SM>e&^;!5y^?w~e<10|*tWEvbSRU9Ep_ zq!JkxJNoCuKh|YN2NwwLX}d3mmEWCTvK$)y)ZQH>Zq6f_!Px2Vlg&Y^L`|UCH)go# z5l$JCf#2=|(*N$#laqhCumENCSQBOtG1I>0%zVOUu8FK7{KRu_h{T_lmG+q8wp?~-?x^b%^(YGuQmlI3B75NUJCCcJGnLKm0+!ts>ESs zBmscz2l?NmU?Dxfjd*_z11^YKLf#e&KmjnDNS|B-Ta@pehnuqH-??tILNU2x0lLQCj_kM?B!efzfpAJZYp%k)?lf96}v1RAK}4@p&1$ z697K#Y|&a``Xj}D%`fczYziQlV17@hICN%;mWz({J`ugN&19v0OThy?bz`t_h4iTv zE}`ut-$dr5NUpg~&!O)nw~3mvn?oL;g|^1L#To#f{S=ZV%P%Qa8s{)Z326mOLm*>l zkD&MXc;x(SL#R6nNb%>xxkUaVYt5D%>Lk^|K#4i=ngz*-{h^N&9F_i zETVE$4)%ZBpfj8l1R;C&)i%8QZ6-EAUJ)M$QEwFB`C7t=3Zx1qlePz@ehTXFfp`tW z0k8n>=qasl{a1mKWtV9{cB2A6Y8LLR9UqgA#$c4>cRv_bUY{n+xc@FCv)F4HmcS> zgZ78uX>vYlq%I2<-*nLW3}-`%T`rGTQ>o|S95h?v%#7g1Pmo@y=mlGHP*3O=5KOC` zKRy4_XdZ-v^*bGM2!=w@|PN>vRa{R7NUh4I!E;o^i zpacfai7x{NL=?*fN(6i`+zvp(*rs`%m0GRX?vileXPHEB2?jD_5^3tEjX1Y4XK1HP zbCvy$Q)J2D$bZ@;r0S3of7>322gp9oUBX_h9%<3FqV$Rzs18ikWH-EQKTVB&tcZW2 zR`FPcAx16=;IG_C9L5O*83Hv98HukJWb|O^NDLmP5(AF!2S$XG+(Nc;+|Z7|-_~#J z03ipeXnPZMZQ!Vj1bLz7>*wbCGBffsx!+0u3##O*iVj3PG?c%WS@HM8ut+({?Ep-- zAo4n0XQnikq0KYp!dq-XWLOPht%!e|P51@9``bH-$-NedBm#}0_!xKeESHq+rFFD6 z+Xuwcex*#8NO|BuV?WUneCl*(p0ay1ajUyngdX_P4%PXA?;pih=S znJc!G4HHbc2z4FN+5x%W-@}UiwEIS_IAyUr_6S{+xMWB=kx$P;{E)7C^F|dAjPZSIGs6bGn?2F%}H%a ziaunGVI|q6`WY0RDYU!)1ML4E4W6#^Fo0Jp$Su4tzpJP1YO6mlizDZ($N-d-j|khd zokq&!H5I;V^yWq+?G)Xhr=2B!vRTKpZ{0!S!#QgMZA^H(sU*a_VFZo(R z4Khvmh#bHET%Li8oXzC-p8co&#H1>Krm>m7+iqxt(1TR}DL;Qlw^Qy9DQ2&~-rvH8 z2;gmL^F5;q8#r`*gq^|2G4Hsps-VtI0O_x#cb*``Touhl(6TJn8LpCP%Qy_wh0R2F5rW>kMdGYn5ov0&;db%p8%A- zoP?^6%xC}f{NaD8SOVF~=Shzw6p!Inqgs+vDM{i5D}*LB%SL1@!G!jYrNm>U^aXs+cJ5ozxF@mn47 zW-1#Cm{2Ve5!T>|4#l!rMyC`|qx7A7v2bY+^>!rJU;TfT?7SEZAKpdL=US`)stnB) zvg0}Elg}5oB-izRif<;w4Z+({k+GMW+SJkFYoi0oeM5h{eA6FNPf7?xIYzj)(*M+6 zQb53+ZfVU{6mboRL|DVq6gc~NVLPjoWbRYPab(_s#PmO6*XuO1P73tyZYJ=wl21XP z(2&$xg=2p(m_SwLT*DHByHV_)L0i@b(e9DyaZ!XykRuJ8i3UnEiNB!fvLj=p*KW`1 znFb9Geb-{cZ*@B&=Rj!VHC20&cg7lFm=Fyu3YjnWc)d3C)qUCO>rB-T?EZFZNuwQ# z0xprH66olXXleGehVM0r2cSx1L2B9-Zj^FX&LDpZ=y@|vaUHn;$BvXc3C1jU#*9Ne z^}e%*J_m1a?arixDFVY`O$kqaMM?z_!X2hNnF%hs$b81%$pg{O6Ti#16&*Zv(nf9v z31rE8C0FC@tkB;ls15f4a@%exTFn?LE*$4YiFc{%QHQ~E3Gx~PmavB;bbS+Cv)0g- zaz%ePa2|j)?K2nb847<&Ma|5gBT%9IL)*>KH>HE~FWgMq@x956o-}d9t;{--BZ1XK zsHW;HlCdb1Jk1)fZuyLc$8JfPM-Hh}SVcS2rdNNxnjQfmWBoB`f5u&&nnh(**R)&J zXu%5?4_V@m&Y(a=PL&G$3m_aPJ$>2{)oFj(x`e`7Y>-7LR++UL27qYQy1Aa$W;q0z zg5gvs8m1>R-Eqx8;V29yB4Dih!>^{~U3G*ydO%zHWo!sEOhbCX@|tRRbhI+%O@$`PN9jFanCAut--sL2} zpGD#s(+9ucHnw_()nKQK_~L&K0x;jdzv$5wIvT<7{ zB-JWwDwPEnIBd9>%reU*K{A`_fjX{XY7Q{bLee1}T6|HH1M(rxc7u0i#BQk@Qt1!*ur?Y0$aavd0G3AukaZ*0!if^vjM zK}X$efopty8*6Xk_-Q(VoLbc%#!pU$l&2x`>eqf@Q9MyDjToAdY%yBn8)T_#v=$QELI|?K@FhQuJu@f8k6c*U_eh5TqEB-d)SM3-BW;sL==&KZ}d2MG&v3Ht!+CH&I4m7f(V0QVL`Vr`I6j z?Ji*ES{RGF$x{pCu&PX4j-hr5NfxoY-Yr5W1lT_j-77J8JsHMLhPgpG85lInu0e@5 zsQ#)j5Jjxd7!rT-vN0d(Nu&k&Fg-Gt9U7cz(rm4t(_nm{br%>|Ubp`;XU^p0N%8Vu z-qjZiR;y(MTLirxF~ZLIrA^7KAD=?nR(5~Gf^J9mr3}Y1m*sRI{h}<6R}MqLXO?p2 z^yz1o15yOQ)9+*zixCiNe^VP~9{NeO%;TdnL*H&XHbj5hLX;iBb5OYt-6Me?xeXLP zmKc7gm0XV{$aa%QMq5IzYGI?MybDEU=w|Jn!79;--^I@S&{@g`$OhxarW@M`RD?^S zVbcErzAjxt{PmRG?$x@&mpimfWy&QOF92Ydv|*V{I+C>$EH|thDke-re4g8<@Zvm= zUQ*oG`!9dX@iF*@=qix}p!y^k+VNrKx6u?`ksjZ_`k9*%rfiJ<%4NN$m4m^0ri zq~~1bEi7WN%9LjlsK>7d_daW)bYfvHF=i))y+C8b5iI5CNw8PWkur&4vi`Q!H{{O! zv{g-_N<+DKu(xW3+X-y*2F52VHOgt(8#nm?h`4{-637e+94q-+5i97B3&lDfJnL@6 zk$>j4`^iPWA`D;ImAy!`vv<&T1%FwS_yZDAiyR8*Pb~?3GQ=J?NZ$~DeGIP%wW}1h z4i+!vLQ}H*spLLaRB_3x2 zg)M`6rjeZ*_5+4TipSt0b?h>M^Dbnp@Eu)EXLnJ*H{P;nKDDH z=u|_--iZB(A}{--z<&6jMAV~+FzxT{DYJjfOr8h=*R%C+NZOv|R21xO(R_8Unw^^d zj`b*sf(#|96?C2x1YQbH56G-SQ&9f8hophiI6a3;~yG*FuZY?cgjFWC}OEaHDj z+xe!&5uv{>r%aDX?+p|Ia{Yn*L5xH_#8*=bnLfVV#N#q;slqp_Dh}11^7-Vib*M8Xw-&IcMN!YyvnbiX)7yaulTpkD#~w zb}rjnM>ANkw%=}2%P|UV9cEFMJAijBH8h68ptgk)~e05S*4vLdlNL4HGG@?3JW6g&M<$u%9Yi; zXlY_Zss7~QKSS3%@nY?yKs7BptQ^=R({0i>iEcvl;IADPOVMR>$7O8>i{-2DnZ}rf z!!-P<0WTk5*!7XM3u#bRb~EGgrNZ4HvD!AdPXd_lXt zU2rv4HV54p><|rYOh)L6IGKO^!P?yh$x)+(Ya9-RN+TC2_ip z-9Q*p(66u%-_+*{jV{{-J~X^OyHI%o=Ob1L9Za}QY>6;ki^~m$g}6C5rxg}?VJ_jO zE04~@Cd)u4&nGfCZ>eV=5Ou4Wa$dBk$5H3C>6mM$m9A^wkp}0&i*A3vK8zvjO=8d( z%cCOUz3UET+XfGlO$Ry>*HIFo0FX!jg6QF2Hf-sN)r1ND%{lyF24U`!z0h8#1Z9pm9TyLsr~6>+_axbU)m-ac zFd(Epv^S+j9MNV-*HeF~06pvY6#8g&!3N>g?VlHTp-d%|X4_|Wy&-HA20Dr#(|hq# z#{ysVHrH7dJFT(BHP6zjc6-fv=z^bFq%Lj;FP98=7zw!LhW*xnn>^knxB+bX89p9r z`(t~YGe!Dgq1>WRAtY4c8R8=R@GOL$KL5 zKV)C^P7>#m=ehDC&VeH4t7;N#4Yc;MRw{2R(sG(4=~wT@^&H z`3bp6*und}-OE4(NSwbgko1`h=YY3bO7b|)$T-PZnvlq!Cd)bFA|d7ejo-jiDjwNP4gO=h_CaGav@HIvTT5&3$HK*HONn_+FpF{2& zBjqJBPq~Tjp%_hqisKZ?d1POwu?c|fp}4-{vC`u25wj94DnVRrID~K}F8aSA*Q~4J zCsB+xxLtP+1FJvl1-^H-sR)Q|7rJ|R8IVc7eUX11PMEf3_h#0$chssk zFQ=EmK1&Pcbg}kJLKUQs!C8$sq(Yy~w(W=9Lg=;#-JP71$I;IuW~ZP(6H^gJ_D(=I ztQmi_YK4URw7)(fDXd+;CbiE;+?>_wZg^uGn7h7nYCK@q->!KDqAyEln(j>=lk{$* zPp5^&{LroUOVCyX!D6vy=BPCA)*lE)^plz}DCPxR;LL zOBO09)bM(uL*ccpRaMoii%9PHbVq{Gup6PBu_e(68evj8<*$w1i?yW-fLPP%BVB)E z@N(R@^wSwZi+z`umI3JVe`P}EnKH>#nq{4RpynX*_MZk98r0UQO$$JSC+$+_!BC91 z160hMK-ExTHSroE_yVc($CE;~`;{Vco@gAzsWWr<=G!c*`Vj;5YaXd1@(FY+2=a7p z?+7pQ>~P;^+$wtYkO*y7rBJj3Lnt`T ztp>&sF6+gIQFZn+8K2(*L-wA(i~JM>lT!JYUG)Jcw|9mC(!znw|y}J93+=w!2%SwtyKbjAeU#>0u#4Ab^@Lp zm(kn;6SwY?0&^~x7vcgFw{*b*^c0sS=mHeCeAWUX1D9Fr0u+~g)&jJ*W!eI50+)>L z0u#68+yW~Cm%#A?6SpJZ0`vlx^7H}}w=3cT^8%M9_yQD{E8+sPx8>ymKmwOp`vMe~ zZ0iEEx9sQwYyy`p{{j@ZZ0iCa1D62<0~EKP?gAhKm+=Jy6_;)60!5dA_yTRWhVlY! z0s%Ic!SMnUm!R$fMYl}#0^0%sH!uO_yTPL0XUa0{{qanC;S2j0|7a=FaHA4 z0|PNIFqaYE0u#3u0|VOv12Hf$m%;G@6SoEi0}2BJF)%Zi5(xuLDmgJTF*h|bEig1E zFfb=63NKA>WJF6ilyQZ0h1Q`^vM^p3N)*;v zcu{yM3#E%7U@{cZ!ILkfuzI9zAr$~^3aMdI!@SY404y>%Ko{YE)0@J;77;>W6nsWk z7{KK5(-c~2T^K;&q8}N21)Gg8Ob7x%VJ#41V&SBhg%ySKK%13?H*lC$g%9`))G6;^ zaS<%+v%UyH#gUCgloB@s+13?K7cl~I;7bY#PYxL|h#n{v5m3S@Qc9o|&`N2PD?BWg z4mkI)SVk{K9u_NqCEyTPtgKW;fW^uKo`4dG5kv@L)iQ!$BFY9h2LS_bhztf6@PUxD z!}DOX4$_QpWdt%&iXsB<@TowC2BivTX$1ods*r%(IG`V7CruEr0AEFrBM>aD2%rl< zY?TTl4U4VzumJE`t6_n_2PgIDmtRKZ>G!*;DBq2*t5LasH=nJl*=kv6u#MwUd0Z{$ z_lwJF35G%wN7dD2ygUC^d=fC>;8-8k=MijQz&<M`o5UP8R5c@!Xxfq?SeVt#p2t%^^;+^hYfJgvU1 ziqAD|8@ZN$p~tp+65lyn8KDC#HslYp3r;2DQ&?20%c2s`#^Oe{S{lk&$yr>p)fPiz zAwSEl?QyIB54dfSpBv|Z6msQm;ue-`^yH^-9($bo=i)qPHg?$vt7rjVwA?B(-V$7$~9cX|`>< z`BA9T$MBo{?Dm`1*7lqi0S%Yn1DmvpU_|vE7tx*xLh)&FF@I3dF^=rqHEWVM!1hcH zGbZ@#DE$r=s2bf)39#@GA~>Rx4sBQloDTtiW}**Z;fNm`H=r*Bk52C+LaB{{kEktr zt{|Tk5ftOFf>ZcMx;Lql(u8Z2>QS!0pc2e zY!4(_8V4W;gv}bq6#>IYaIEz})AYa)MF;^?;@D+l3mpcJ(lfLzjMP%-O=IOTQdyaH z@NC*gvrf2XCR&t8+S#n;70}%Q@5T}Yg{s!upalkc8Z%@nEcHQF&;b5n$n!{&HIZUG znqn{*Bm>QO$fM3Vl!)dG0`I}#VV0tQKbu}K1i^4X9dvXEm?4}eSz7i>V-O)Auwcia zQHc<`Cpq+Ch<}Ejbo+Fesiw70aITo~|!(OE}v0zD%dGE0T-3H>N~Fq}bA12PsdH5~m3A*n;PDM~{IZO+j0>+x7^g1UAps=dEY5#p`Fsj!SUkQia|`E6GEWpK!<^ zh)Kbc6)@x##HvEwCzuh*r}>C~fzMe-VU)tXr;wpIW@8$_FbC&=Q-LQFbd1NLZ=#Z= z0_~#J2rBf@m|a9Nf+Rx87M&pS47#pURHsRdYBBIpWI2vJkm{?P)eSHcnK5X4eOOCh zlZY6q#&m2WcpUM3Ap7+YwrGU)S!VaSce8*JB!BKh#FPKSyCZT(`rv?n#xUQNqH7NZ zl3yQ6COv&{`JJGr2=F6G_KfLanARuU%^8_KSc(uzNI6_qbA;k4$tmK&CqWw`nH!^E ztV2*5TAHNLKJI~!xM3Ih9;55eFf9bJMvykSgKO1f(PMSRP%BM27i$OWu-+Pi!H^XQ zk6Dyw2!HTCJwpkoIqXw^?uGe;oglB_S|%T_*BRp)m`+&Z2!@K#HKwP)oGymMg{FW) z5TBW23_`Bv6*?wvC82oIo_Z_FQnb=Y)p!fu6no*wp~ww+38LlgbO6=V4zC>;J+Cor zpjNE65p+>CwC8;EdEyyF%=%i7a!uoGu74-i7Qwoqea%{apR{Cu6;)g=F~IMV#o-vE zlcCO1VI0NS8ERXM7-g-;c`GBog(#-T-xY;=nA4c+T|isH_=}Caqe2~ZMA1!Tq!z{sM{yTC z)rkWFk>*3QWeIwODZ)QYivj5qNNIeZ(g{Avz{6aLpL}Pg=h?>LlicD2_9R1$E^jO;^{KP`Pbk|+ z)@5lOUKxRZG^xN2swp_4F-amIRl?=yb}cV=7_Oyas35Zn1Fli5dBRAgn{nt4CLpB- z!!_wqbK--1$?II9VxWK?>VQR^tQDGyF%Di5=gB-%o8U>8w9?Z>h9$Q!eBtK!VvWLY zz<`IfD99R5wNlH?B?!qsuWNhbR90nmab7Ziuzod{r5mgO@vjTX96LToYROYV z&fAo=$?-AkQNAiykIm|QdY6&+vu2wcZ&tI^;z7~zoeHx>!GR6ZS!B$!qF`N8U&bf6 zDD>2g3V4q8ChS}xr<)VP-&DY=Io{Ug_nOh}C=&r8OWMfBnf7S5rBk)WkyK&Zt9gZ{ z5?qsiWhI4VZ<8fuIq6)aq%Y=@Omp#MGL9f0~U5c_vcUpnc6+es3(&VGI^7X1$8u zv4nV>AjJ~pRUO}+01-?5&pXVVn95CpJma;Y?>}nYc*>+0x$pvw1+Qrp=1hgrlXfcd z3ea(CIct2pGvNVT38VI=C=A74jT=|t7iU7a=D|{sUNhVtt)CE$(U#J1JyMZUL-U?? z(43Wyf1C;{tF*US#qTs3oDP&aXuN*Mo7_+#BD$ zsV3JqD{K!&B_4zCUPyd-uo_P%moI16)2aaUC#&lA1Kzrh%8zLigh;?~GhW~qmH$<~ ze=2`1kIHxD`|_k5msjQ0d^NsAgk@EJDX+^(d0WoPdATT8lj&9U-%RQL1n^svf1COv z#(&%U*UP;lW?T(0u90!P0MPMy7#DGn@t5TuF#o#TFAqor|0W?Em#5_i5X41!3BssA z05>3l|CG}thWV^2@5;MsF_~Y1OqS)Ue_Y)xs;XT5H81bWzskQ`5^~!}Xm{`A&HE1^ zq1S_^p$teUI=u1#>4UMZMPx)SA(6=k3c&&S7@vtp%UnDci}B@us@1gmvf7q-t zWtPBwlH1(fOv=0E1RSSYjlpTYf0kdXOJKSDmW#-VZAA3;@YnYTzmbUSMhR)31f)%T zCILk;C?FKToERl0TYRZ)_&PfM{oUCq@#QybUe?LN%V**%$U(kdC6%9cl#N01e>SOn zjy|!PpznS8vKC0L^;X1mTjiA3e;k~B#E5x3 z9~0{X0YGauar~QMZ{nj_w*#zOowF|5?vGY|2)28k*zeXy3)Fhff34ptjGrGIzuG%Q zZrwluRQt1x`dJhm^q``_J6fD<6}XSzo*$gOLrw_Q$~=hgj2`{65$Z#Nq|D1JEl%J7CxB0`EVU{mpPyGhQs_ zf3c1+PgPCEN~r-XW%6}At!9^1c{`aw=D59|t|oWW@8xWKF&!uAAPv=`g5DuSXyMak77WgkP8pXgGjNX#4|qWAX3M{F?2d26?DEwqh_5UffToRm-)* zhB)?mb~(SAf6T7oD5!ox-81}K^-of}gy3_ZbvXR~VnvTQ2~yr2FDv>}_1@i4OH%lg zDf%1u{mEjvLQ=tqN9Ex-JxB$S?0j;yx>@3{wrJ_;{A>n=+!c^N5Sbn#r+cH*A;)*g zF|I|9YRIv&M~>f~obL5Whn(0YN4Cfjb}b#(BPVQ6e@?e)ZkDNhe#U43vdvZDr za)%oIFf|w;YHCcEnkcrXrqkATsIiZiP3Tc0x2LAlMs}#_*|8ilW6>irkVAkipkxqkBmKN}`{L!@ZKKLs8$5b<22k7K@WC z>#7HTINhUhLv+R;_bu_)efL_LAS5PGJe~$$v|13}O&+Qcd@>ucD6gAP-DWUep zP|3}&M~pT5!QcM^rDiq}3T19&b98cLVQmU!Ze(v_Y6>whG$1e_Z(?c+JUj|7RC#b^ zATL-_Wo8O5Np56icpzIaATcmCT?#K#X?kTKF)%d>FIOO2F(5M_FlO<9ii)59Q$vRnp zSGl%lTf`#{5)9he9Ptw$B;L8#O}Zf29~(DFkOUx=e}bLW$R??hH4-8{kb1(d^pZXj zCM6Of{Uk~T$RHUaF)~czBtep7grp!l-?n)aa+0$egESAU(va6(t8u{B`KAdVSGCFj z`^Q#U;OWCE2ee+SCiQ!7tnzTFFRLlI!?slc?lfjK4R`lwRfKy!vYLVWe7Bl~`)vz6 zNh;o+Fyg;Z0#{1tRteuL(KjU)P!csI)lkw8N~Wdcn@aIaDK%_q9bWlT$L(|Z2g5%s W8JA}r104)8Gd46b3MC~)PeuyWc#|Ih delta 91225 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

)_txoR|KXxMB6En-brt#BG+FKN6lPU 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 diff --git a/docs/derivations/laneEmdenVariationalBlockForm.tex b/docs/derivations/laneEmdenVariationalBlockForm.tex index 77e0b36..6604047 100644 --- a/docs/derivations/laneEmdenVariationalBlockForm.tex +++ b/docs/derivations/laneEmdenVariationalBlockForm.tex @@ -122,6 +122,114 @@ We can then set this up as a matrix operation \end{bmatrix} \end{align} +From this form we can easily see that the residual matrix is + +\begin{align} + R &= \begin{bmatrix} + f(\bar{\theta}) - M\bar{\phi} \\ + D\bar{\phi} - Q\bar{\theta} + \end{bmatrix} +\end{align} + +\subsection{The Jacobian} +We need to define the Jacobian of this system of equations so that we can use it +in our Newton-Raphson method. Generally the Jacobian is the matrix of partial derivitives wrt. the state vector. We will let our state vector, $X$, be +\begin{align} + X = \begin{bmatrix} + \bar{\theta} \\ + \bar{\phi} + \end{bmatrix} +\end{align} + +So then the Jacobian is +\begin{align} + J &= \begin{bmatrix} + \frac{\partial}{\partial \theta}\left(f(\theta) - M\phi\right) & \frac{\partial}{\partial \phi}\left(f(\theta) - M\phi\right) \\ + \frac{\partial}{\partial \theta}\left(D\phi - Q\theta\right) & \frac{\partial}{\partial \phi}\left(D\phi - Q\theta\right) + \end{bmatrix} \\ + J &= \begin{bmatrix} + \frac{df}{d\theta} - \phi\frac{\partial M}{\partial \theta} & -M-\phi\frac{\partial M}{\partial \phi} \\ + -Q - \theta\frac{\partial Q}{\partial \theta} & D + \phi\frac{\partial D}{\partial \phi} - \theta\frac{\partial Q}{\partial \phi} + \end{bmatrix} +\end{align} + +Finally, we know that the matrices $M$, $D$, and $Q$ are constant with respect to $\theta$ and $\phi$. Therefore, we can drop the partial derivatives with respect to $\theta$ and $\phi$ from the Jacobian. This gives us +\begin{align} + \mathbf{J} &= \begin{bmatrix} + \frac{df}{d\theta} & -M \\ + -Q & D + \end{bmatrix} +\end{align} + +\noindent In a fully assembled, distritized form this will look like + +\begin{align} + \mathbf{J} = \begin{bmatrix} \frac{df}{d\theta}_{00} & \dots & \frac{df}{d\theta}_{0n_{\theta}} & -M_{00} & \dots & -M_{0n_{\phi}} \\ + \vdots & \ddots & & \vdots & \ddots & \\ + \frac{df}{d\theta}_{n_{\theta}0} & & \frac{df}{d\theta}_{n_{\theta}n_{\theta}} & -M_{n_{\theta}0} & & -M_{n_{\theta}n_{\phi}} \\ + -Q_{00} & \dots & -Q_{0n_{\theta}} & D_{00} & \dots & D_{0n_{\phi}} \\ + \vdots & \ddots & & \vdots & \ddots & \\ + -Q_{n_{\phi}0} & & -Q_{n_{\phi}n_{\theta}} & D_{n_{\phi}0} & & D_{n_{\phi}n_{\phi}} + \end{bmatrix} +\end{align} + +\noindent Where $N_{dof}^{\theta} = n_{\theta}$ is the number of degrees of freedom on $\theta$, and $N_{dof}^{\phi} = n_{\phi}$ is the number of degrees of freedom on $\phi$. Note how the Jacobian is a matrix of size $\left(N_{dof}^{\theta} + N_{dof}^{\phi} \times N_{dof}^{\theta} + N_{dof}^{\phi}\right)$ + +\subsection{Preconditioner} +Due to the eventual size of these matrices we would like to be able to solve +each step in this using a memory efficiet approach. Krylov solvers, such as +GMRES, allow for matrix free iterative solutions (as long the concept of +multiplication is defined). However, for these systems to be well formed for +such solvers it is useful for us to use a preconditioner. However, this is a +somewhat strongly coupled system where we cannot simply use the inverse +diagonals of the matrix as a preconditioner. Instead, to encode the coupling we +will use Schur's Compliment. Each Newton iteration we solve the equation +\begin{align} + \mathbf{J}\Delta \vec{x} = \vec{b} +\end{align} +If we expand this out +\begin{align} + \begin{bmatrix} \mathbf{\dot{f}} & -\mathbf{M} \\ + -\mathbf{Q} & \mathbf{D} + \end{bmatrix}\begin{bmatrix} \theta \\ + \phi + \end{bmatrix} = \begin{bmatrix} b_{0} \\ + b_{1}\end{bmatrix} +\end{align} +We can pull out the first equation from this system +\begin{align} + \mathbf{\dot{f}}\theta - \mathbf{M}\phi &= b_{0} \\ + \theta &= \mathbf{\dot{f}}^{-1}b_{0} + \mathbf{\dot{f}}^{-1}\mathbf{M}\phi +\end{align} +Then if we pull out the second equation from the system +\begin{align} + -\mathbf{Q}\theta + \mathbf{D}\phi &= b_{1} \\ + -\mathbf{Q}\left(\mathbf{\dot{f}}^{-1}b_{0} + \mathbf{\dot{f}}^{-1}\mathbf{M}\phi\right) + \mathbf{D}\phi &= b_{1} +\end{align} +rearanging terms a bit +\begin{align} + -\mathbf{Q}\mathbf{\dot{f}}^{-1}b_{0}-\mathbf{Q}\mathbf{\dot{f}}^{-1}\mathbf{M}\phi + \mathbf{D}\phi &= b_{1} \\ + \left(\mathbf{D} - \mathbf{Q}\mathbf{\dot{f}}^{-1}\mathbf{M}\right)\phi &= b_{1} + \mathbf{Q}\mathbf{\dot{f}}^{-1}b_{0} +\end{align} +The term $\mathbf{D}-\mathbf{Q}\mathbf{\dot{f}}^{-1}\mathbf{M}$ is Schur's Compliment for this system, and we will represent this by the symbol $\mathbf{\tilde{S}}$. We can use Schur's Compilment to precondition our equation if we let the preconditioner be of the form +\begin{align} + \mathbf{P} = \begin{bmatrix} \mathbf{\dot{f}}^{-1} & 0 \\ + 0 & \mathbf{\tilde{S}}^{-1} + \end{bmatrix} +\end{align} +So then the preconditioned equation which can be more easily solved by some Krylov solver (such as GMRES) is +\begin{align} + \mathbf{P}\mathbf{J}\Delta \vec{x} = \mathbf{P}\vec{b} +\end{align} + +It is easy to see here that for this system to be solvable / well defined both +$\mathbf{\tilde{S}}$ and $\mathbf{\dot{f}}$ need to be invertable +matrices. They are both easily shown to be square (with $\mathbf{\tilde{S}}$ +having a size $\left(N_{dof}^{\phi}\times N_{dof}^{\phi}\right)$ and +$\mathbf{\dot{f}}$ having a size $\left(N_{dof}^{\theta}\times +N_{dof}^{\theta}\right)$). + + \subsection{A Few Quick Notes} A few notes on the dimensions of $\mathbf{M}$, $\mathbf{Q}$, $\mathbf{D}$, and $f(\bar{\theta})$. \begin{itemize} diff --git a/src/meson.build b/src/meson.build index 1219020..2946320 100644 --- a/src/meson.build +++ b/src/meson.build @@ -3,6 +3,7 @@ # as there are dependencies which exist between them. # Utility Libraries +subdir('types') subdir('misc') subdir('config') subdir('probe') diff --git a/src/poly/solver/meson.build b/src/poly/solver/meson.build index ea20457..f88a183 100644 --- a/src/poly/solver/meson.build +++ b/src/poly/solver/meson.build @@ -35,7 +35,8 @@ dependencies = [ probe_dep, quill_dep, config_dep, - resourceManager_dep + resourceManager_dep, + types_dep, ] libPolySolver = static_library('polySolver', diff --git a/src/poly/solver/private/polySolver.cpp b/src/poly/solver/private/polySolver.cpp index 8f290ab..99ea033 100644 --- a/src/poly/solver/private/polySolver.cpp +++ b/src/poly/solver/private/polySolver.cpp @@ -21,34 +21,33 @@ #include "mfem.hpp" #include -#include #include +#include #include #include "polySolver.h" -#include "integrators.h" -#include "polyCoeff.h" +#include "4DSTARTypes.h" #include "config.h" +#include "integrators.h" +#include "operator.h" +#include "polyCoeff.h" #include "probe.h" #include "resourceManager.h" #include "resourceManagerTypes.h" -#include "operator.h" - -#include "debug.h" #include "quill/LogMacros.h" namespace laneEmden { - double a (int k, double n) { + double a (int k, double n) { // NOLINT(*-no-recursion) if ( k == 0 ) { return 1; } if ( k == 1 ) { return 0; } else { return -(c(k-2, n)/(std::pow(k, 2)+k)); } } - double c(int m, double n) { + double c(int m, double n) { // NOLINT(*-no-recursion) if ( m == 0 ) { return std::pow(a(0, n), n); } else { double termOne = 1.0/(m*a(0, n)); @@ -60,7 +59,7 @@ namespace laneEmden { } } - double thetaSerieseExpansion(double xi, double n, int order) { + double thetaSeriesExpansion(double xi, double n, int order) { double acc = 0; for (int k = 0; k < order; k++) { acc += a(k, n) * std::pow(xi, k); @@ -101,7 +100,7 @@ PolySolver::PolySolver(double n, double order) { } -PolySolver::~PolySolver() {} +PolySolver::~PolySolver() = default; void PolySolver::assembleBlockSystem() { @@ -121,20 +120,8 @@ void PolySolver::assembleBlockSystem() { blockOffsets[2] = feSpaces[1]->GetVSize(); blockOffsets.PartialSum(); - // Coefficients - mfem::ConstantCoefficient negOneCoeff(-1.0); - mfem::ConstantCoefficient oneCoeff(1.0); - - mfem::Vector negOneVec(mfem::Vector(3)); - mfem::Vector oneVec(mfem::Vector(3)); - negOneVec = -1.0; - oneVec = 1.0; - - mfem::VectorConstantCoefficient negOneVCoeff(negOneVec); - mfem::VectorConstantCoefficient oneVCoeff(oneVec); - // Add integrators to block form one by one - // We add integrators cooresponding to each term in the weak form + // We add integrators corresponding to each term in the weak form // The block form of the residual matrix // ⎡ 0 -M ⎤ ⎡ θ ⎤ + ⎡f(θ)⎤ = ⎡ 0 ⎤ = R(X) // ⎣ -Q D ⎦ ⎣ Φ ⎦ ⎣ 0 ⎦ ⎣ 0 ⎦ @@ -171,6 +158,7 @@ void PolySolver::assembleBlockSystem() { // --- Assemble the NonlinearForm (f) --- auto fform = std::make_unique(m_feTheta.get()); + mfem::ConstantCoefficient oneCoeff(1.0); fform->AddDomainIntegrator(new polyMFEMUtils::NonlinearPowerIntegrator(oneCoeff, m_polytropicIndex)); // TODO: Add essential boundary conditions to the nonlinear form @@ -185,7 +173,7 @@ void PolySolver::assembleBlockSystem() { } -void PolySolver::solve(){ +void PolySolver::solve() const { // --- Set the initial guess for the solution --- setInitialGuess(); @@ -203,6 +191,14 @@ void PolySolver::solve(){ mfem::NewtonSolver newtonSolver = setupNewtonSolver(); + // EMB 2025: Calling Mult gets the gradient of the operator for the NewtonSolver + // This then is set as the operator for the solver for NewtonSolver + // The solver (assuming it is an iterative solver) then sets the + // operator for its preconditioner to this. + // What this means is that there is no need to manually deal + // with updating the preconditioner at every newton step as the + // changes to the jacobian are automatically propagated through the + // solving chain. This is at least true with MFEM 4.8-rc0 newtonSolver.Mult(zero_rhs, state_vector); // --- Save and view the solution --- @@ -211,25 +207,40 @@ void PolySolver::solve(){ } -std::pair, mfem::Array> PolySolver::getEssentialTrueDof() { +SSE::MFEMArrayPairSet PolySolver::getEssentialTrueDof() const { mfem::Array theta_ess_tdof_list; mfem::Array phi_ess_tdof_list; - mfem::Array centerDofs = findCenterElement(); + mfem::Array thetaCenterDofs, phiCenterDofs; + mfem::Array thetaCenterVals, phiCenterVals; + std::tie(thetaCenterDofs, phi_ess_tdof_list) = findCenterElement(); + thetaCenterVals.SetSize(thetaCenterDofs.Size()); + phiCenterVals.SetSize(phi_ess_tdof_list.Size()); - phi_ess_tdof_list.Append(centerDofs); + thetaCenterVals = 1.0; + phiCenterVals = 0.0; mfem::Array ess_brd(m_mesh->bdr_attributes.Max()); ess_brd = 1; - m_feTheta->GetEssentialTrueDofs(ess_brd, theta_ess_tdof_list); - // combine the essential dofs with the center dofs - theta_ess_tdof_list.Append(centerDofs); - return std::make_pair(theta_ess_tdof_list, phi_ess_tdof_list); + mfem::Array thetaSurfaceVals; + m_feTheta->GetEssentialTrueDofs(ess_brd, theta_ess_tdof_list); + thetaSurfaceVals.SetSize(theta_ess_tdof_list.Size()); + thetaSurfaceVals = 0.0; + // combine the essential dofs with the center dofs + theta_ess_tdof_list.Append(thetaCenterDofs); + thetaSurfaceVals.Append(thetaCenterVals); + + SSE::MFEMArrayPair thetaPair = std::make_pair(theta_ess_tdof_list, thetaSurfaceVals); + SSE::MFEMArrayPair phiPair = std::make_pair(phi_ess_tdof_list, phiCenterVals); + SSE::MFEMArrayPairSet pairSet = std::make_pair(thetaPair, phiPair); + + return pairSet; } -mfem::Array PolySolver::findCenterElement() { - mfem::Array centerDofs; +std::pair, mfem::Array> PolySolver::findCenterElement() const { + mfem::Array thetaCenterDofs; + mfem::Array phiCenterDofs; mfem::DenseMatrix centerPoint(m_mesh->SpaceDimension(), 1); centerPoint(0, 0) = 0.0; centerPoint(1, 0) = 0.0; @@ -241,12 +252,14 @@ mfem::Array PolySolver::findCenterElement() { mfem::Array tempDofs; for (int i = 0; i < elementIDs.Size(); i++) { m_feTheta->GetElementDofs(elementIDs[i], tempDofs); - centerDofs.Append(tempDofs); + thetaCenterDofs.Append(tempDofs); + m_fePhi->GetElementDofs(elementIDs[i], tempDofs); + phiCenterDofs.Append(tempDofs); } - return centerDofs; + return std::make_pair(thetaCenterDofs, phiCenterDofs); } -void PolySolver::setInitialGuess() { +void PolySolver::setInitialGuess() const { // --- Set the initial guess for the solution --- mfem::FunctionCoefficient thetaInitGuess ( [this](const mfem::Vector &x) { @@ -261,39 +274,38 @@ void PolySolver::setInitialGuess() { [this](const mfem::Vector &x, mfem::Vector &v) { double radius = Probe::getMeshRadius(*m_mesh); double u = -1/std::pow(radius,2); - v(0) = 2*std::abs(x(0))*u; - v(1) = 2*std::abs(x(1))*u; - v(2) = 2*std::abs(x(2))*u; + v(0) = 2*x(0)*u; + v(1) = 2*x(1)*u; + v(2) = 2*x(2)*u; } ); m_theta->ProjectCoefficient(thetaInitGuess); m_phi->ProjectCoefficient(phiInitGuess); if (m_config.get("Poly:Solver:ViewInitialGuess", false)) { - Probe::glVisView(*m_theta, *m_mesh, "initialGuess"); + Probe::glVisView(*m_theta, *m_mesh, "θ init"); + Probe::glVisView(*m_phi, *m_mesh, "ɸ init"); } } -void PolySolver::saveAndViewSolution(const mfem::BlockVector& state_vector) { +void PolySolver::saveAndViewSolution(const mfem::BlockVector& state_vector) const { mfem::BlockVector x_block(const_cast(state_vector), m_polytropOperator->GetBlockOffsets()); mfem::Vector& x_theta = x_block.GetBlock(0); mfem::Vector& x_phi = x_block.GetBlock(1); - bool doView = m_config.get("Poly:Output:View", false); - if (doView) { + if (m_config.get("Poly:Output:View", false)) { Probe::glVisView(x_theta, *m_feTheta, "θ Solution"); Probe::glVisView(x_phi, *m_fePhi, "ɸ Solution"); } // --- Extract the Solution --- - bool write11DSolution = m_config.get("Poly:Output:1D:Save", true); - if (write11DSolution) { - std::string solutionPath = m_config.get("Poly:Output:1D:Path", "polytropeSolution_1D.csv"); - std::string derivSolPath = "d" + solutionPath; + if (bool write11DSolution = m_config.get("Poly:Output:1D:Save", true)) { + auto solutionPath = m_config.get("Poly:Output:1D:Path", "polytropeSolution_1D.csv"); + auto derivSolPath = "d" + solutionPath; - double rayCoLatitude = m_config.get("Poly:Output:1D:RayCoLatitude", 0.0); - double rayLongitude = m_config.get("Poly:Output:1D:RayLongitude", 0.0); - int raySamples = m_config.get("Poly:Output:1D:RaySamples", 100); + auto rayCoLatitude = m_config.get("Poly:Output:1D:RayCoLatitude", 0.0); + auto rayLongitude = m_config.get("Poly:Output:1D:RayLongitude", 0.0); + auto raySamples = m_config.get("Poly:Output:1D:RaySamples", 100); std::vector rayDirection = {rayCoLatitude, rayLongitude}; @@ -302,10 +314,10 @@ void PolySolver::saveAndViewSolution(const mfem::BlockVector& state_vector) { } } -void PolySolver::setupOperator() { - mfem::Array theta_ess_tdof_list, phi_ess_tdof_list; - std::tie(theta_ess_tdof_list, phi_ess_tdof_list) = getEssentialTrueDof(); - m_polytropOperator->SetEssentialTrueDofs(theta_ess_tdof_list, phi_ess_tdof_list); +void PolySolver::setupOperator() const { + + SSE::MFEMArrayPairSet ess_tdof_pair_set = getEssentialTrueDof(); + m_polytropOperator->SetEssentialTrueDofs(ess_tdof_pair_set); // -- Finalize the operator -- m_polytropOperator->finalize(); @@ -316,20 +328,52 @@ void PolySolver::setupOperator() { } } -mfem::NewtonSolver PolySolver::setupNewtonSolver(){ - // --- Load configuration parameters --- - double newtonRelTol = m_config.get("Poly:Solver:Newton:RelTol", 1e-7); - double newtonAbsTol = m_config.get("Poly:Solver:Newton:AbsTol", 1e-7); - int newtonMaxIter = m_config.get("Poly:Solver:Newton:MaxIter", 200); - int newtonPrintLevel = m_config.get("Poly:Solver:Newton:PrintLevel", 1); +void PolySolver::LoadSolverUserParams(double &newtonRelTol, double &newtonAbsTol, int &newtonMaxIter, int &newtonPrintLevel, double &gmresRelTol, double &gmresAbsTol, int &gmresMaxIter, int &gmresPrintLevel) const { + newtonRelTol = m_config.get("Poly:Solver:Newton:RelTol", 1e-7); + newtonAbsTol = m_config.get("Poly:Solver:Newton:AbsTol", 1e-7); + newtonMaxIter = m_config.get("Poly:Solver:Newton:MaxIter", 200); + newtonPrintLevel = m_config.get("Poly:Solver:Newton:PrintLevel", 1); - double gmresRelTol = m_config.get("Poly:Solver:GMRES:RelTol", 1e-10); - double gmresAbsTol = m_config.get("Poly:Solver:GMRES:AbsTol", 1e-12); - int gmresMaxIter = m_config.get("Poly:Solver:GMRES:MaxIter", 2000); - int gmresPrintLevel = m_config.get("Poly:Solver:GMRES:PrintLevel", 0); + gmresRelTol = m_config.get("Poly:Solver:GMRES:RelTol", 1e-10); + gmresAbsTol = m_config.get("Poly:Solver:GMRES:AbsTol", 1e-12); + gmresMaxIter = m_config.get("Poly:Solver:GMRES:MaxIter", 2000); + gmresPrintLevel = m_config.get("Poly:Solver:GMRES:PrintLevel", 0); LOG_DEBUG(m_logger, "Newton Solver (relTol: {:0.2E}, absTol: {:0.2E}, maxIter: {}, printLevel: {})", newtonRelTol, newtonAbsTol, newtonMaxIter, newtonPrintLevel); LOG_DEBUG(m_logger, "GMRES Solver (relTol: {:0.2E}, absTol: {:0.2E}, maxIter: {}, printLevel: {})", gmresRelTol, gmresAbsTol, gmresMaxIter, gmresPrintLevel); +} + +mfem::BlockDiagonalPreconditioner PolySolver::build_preconditioner() const { + // --- Set up the preconditioners. The non-linear form will use a Chebyshev Preconditioner while the linear terms will use a simpler Jacobi preconditioner --- + mfem::BlockDiagonalPreconditioner prec(m_polytropOperator->GetBlockOffsets()); + const mfem::BlockOperator &jacobian = m_polytropOperator->GetJacobianOperator(); + + // Get all the blocks. J00 -> Non-linear form (df(θ)/dθ), J01-> -M, J10 -> -Q, J11 -> D + const mfem::Operator& J00 = jacobian.GetBlock(0, 0); + mfem::Vector J00diag; + + J00.AssembleDiagonal(J00diag); + + SSE::MFEMArrayPairSet ess_tdof_pair_set = m_polytropOperator->GetEssentialTrueDofs(); + + // TODO: This order may need to be tuned (EMB) + // --- ess_tdof_pair_set.first -> (theta dof ids, theta dof vals).first -> theta dof ids + // --- ess_tdof_pair_set.second -> (phi dof ids, phi dof vals).first -> phi dof ids + mfem::OperatorChebyshevSmoother J00Prec(J00, J00diag, ess_tdof_pair_set.first.first, 2); + mfem::OperatorJacobiSmoother J11Prec(m_polytropOperator->GetJ11diag(), ess_tdof_pair_set.second.first); + + prec.SetDiagonalBlock(0, &J00Prec); + prec.SetDiagonalBlock(1, &J11Prec); + + return prec; +} + +mfem::NewtonSolver PolySolver::setupNewtonSolver() const { + // --- Load configuration parameters --- + double newtonRelTol, newtonAbsTol, gmresRelTol, gmresAbsTol; + int newtonMaxIter, newtonPrintLevel, gmresMaxIter, gmresPrintLevel; + LoadSolverUserParams(newtonRelTol, newtonAbsTol, newtonMaxIter, newtonPrintLevel, gmresRelTol, gmresAbsTol, + gmresMaxIter, gmresPrintLevel); // --- Set up the Newton solver --- mfem::NewtonSolver newtonSolver; @@ -338,13 +382,18 @@ mfem::NewtonSolver PolySolver::setupNewtonSolver(){ newtonSolver.SetMaxIter(newtonMaxIter); newtonSolver.SetPrintLevel(newtonPrintLevel); newtonSolver.SetOperator(*m_polytropOperator); + + // --- Created the linear solver which is used to invert the jacobian --- mfem::GMRESSolver gmresSolver; gmresSolver.SetRelTol(gmresRelTol); gmresSolver.SetAbsTol(gmresAbsTol); gmresSolver.SetMaxIter(gmresMaxIter); gmresSolver.SetPrintLevel(gmresPrintLevel); + + // build_preconditioner(); + + newtonSolver.SetSolver(gmresSolver); - // newtonSolver.SetAdaptiveLinRtol(); return newtonSolver; -} \ No newline at end of file +} diff --git a/src/poly/solver/public/polySolver.h b/src/poly/solver/public/polySolver.h index eb89cf1..ce2aa87 100644 --- a/src/poly/solver/public/polySolver.h +++ b/src/poly/solver/public/polySolver.h @@ -1,21 +1,22 @@ #ifndef POLYSOLVER_H #define POLYSOLVER_H -#include "linalg/solvers.hpp" #include "mfem.hpp" #include #include #include "integrators.h" +#include "4DSTARTypes.h" #include "operator.h" #include "config.h" #include "probe.h" #include "quill/Logger.h" + namespace laneEmden { double a (int k, double n); double c(int m, double n); - double thetaSerieseExpansion(double xi, double n, int order); + double thetaSeriesExpansion(double xi, double n, int order); } class PolySolver { @@ -23,7 +24,7 @@ public: // Public methods PolySolver(double n, double order); ~PolySolver(); - void solve(); + void solve() const; double getN() { return m_polytropicIndex; } double getOrder() { return m_feOrder; } @@ -48,17 +49,22 @@ private: // Private Attributes std::unique_ptr m_polytropOperator; + std::unique_ptr m_prec; + private: // Private methods void assembleBlockSystem(); - std::pair, mfem::Array> getEssentialTrueDof(); - mfem::Array findCenterElement(); - void setInitialGuess(); - void saveAndViewSolution(const mfem::BlockVector& state_vector); - mfem::NewtonSolver setupNewtonSolver(); - void setupOperator(); + SSE::MFEMArrayPairSet getEssentialTrueDof() const; + std::pair, mfem::Array> findCenterElement() const; + void setInitialGuess() const; + void saveAndViewSolution(const mfem::BlockVector& state_vector) const; + mfem::NewtonSolver setupNewtonSolver() const; + void setupOperator() const; + void LoadSolverUserParams(double &newtonRelTol, double &newtonAbsTol, int &newtonMaxIter, int &newtonPrintLevel, + double &gmresRelTol, double &gmresAbsTol, int &gmresMaxIter, int &gmresPrintLevel) const; + mfem::BlockDiagonalPreconditioner build_preconditioner() const; }; #endif // POLYSOLVER_H \ No newline at end of file diff --git a/src/poly/utils/meson.build b/src/poly/utils/meson.build index e97ca94..9b73678 100644 --- a/src/poly/utils/meson.build +++ b/src/poly/utils/meson.build @@ -29,6 +29,7 @@ dependencies = [ probe_dep, quill_dep, config_dep, + types_dep, ] libpolyutils = static_library('polyutils', diff --git a/src/poly/utils/private/operator.cpp b/src/poly/utils/private/operator.cpp index 7dd3815..7d42500 100644 --- a/src/poly/utils/private/operator.cpp +++ b/src/poly/utils/private/operator.cpp @@ -1,9 +1,71 @@ #include "operator.h" +#include "4DSTARTypes.h" +#include "linalg/densemat.hpp" +#include "linalg/sparsemat.hpp" #include "mfem.hpp" #include "linalg/vector.hpp" #include -#include "debug.h" +void writeDenseMatrixToCSV(const std::string &filename, int precision, const mfem::DenseMatrix *mat) { + if (!mat) { + throw std::runtime_error("The operator is not a SparseMatrix."); + } + + std::ofstream outfile(filename); + if (!outfile.is_open()) { + throw std::runtime_error("Failed to open file: " + filename); + } + + + int height = mat->Height(); + int width = mat->Width(); + + // Set precision for floating-point output + outfile << std::fixed << std::setprecision(precision); + + for (int i = 0; i < width; i++) { + outfile << i; + if (i < width - 1) { + outfile << ","; + } + else { + outfile << "\n"; + } + } + + // Iterate through rows + for (int i = 0; i < height; ++i) { + for (int j = 0; j < width; ++j) { + outfile << mat->Elem(i, j); + if (j < width - 1) { + outfile << ","; + } + } + outfile << std::endl; + } + + outfile.close(); +} + +/** + * @brief Writes the dense representation of an MFEM Operator (if it's a SparseMatrix) to a CSV file. + * + * @param op The MFEM Operator to write. + * @param filename The name of the output CSV file. + * @param precision Number of decimal places for floating-point values. + */ + void writeOperatorToCSV(const mfem::Operator &op, + const std::string &filename, + int precision = 6) // Add precision argument +{ + // Attempt to cast the Operator to a SparseMatrix + const auto *sparse_mat = dynamic_cast(&op); + if (!sparse_mat) { + throw std::runtime_error("The operator is not a SparseMatrix."); + } + const mfem::DenseMatrix *mat = sparse_mat->ToDenseMatrix(); + writeDenseMatrixToCSV(filename, precision, mat); +} PolytropeOperator::PolytropeOperator( @@ -31,12 +93,81 @@ void PolytropeOperator::finalize() { m_Qmat = std::make_unique(m_Q->SpMat()); m_Dmat = std::make_unique(m_D->SpMat()); + for (const int thetaDof : m_theta_ess_tdofs.first) { + m_Mmat->EliminateRow(thetaDof); + m_Qmat->EliminateCol(thetaDof); + } + // These are commented out because they theoretically are wrong (need to think more about how to apply essential dofs to a vector div field) + // for (const int phiDof : m_phi_ess_tdofs.first) { + // if (phiDof >=0 && phiDof < m_Dmat->Height()) { + // m_Dmat->EliminateRowCol(phiDof); + // m_Qmat->EliminateRow(phiDof); + // m_Mmat->EliminateCol(phiDof); + // } + // } + m_negM_op = std::make_unique(m_Mmat.get(), -1.0); m_negQ_op = std::make_unique(m_Qmat.get(), -1.0); + // Set up the constant parts of the jacobian now + m_jacobian = std::make_unique(m_blockOffsets); + m_jacobian->SetBlock(0, 1, m_negM_op.get()); // -M (constant) + m_jacobian->SetBlock(1, 0, m_negQ_op.get()); // -Q (constant) + m_jacobian->SetBlock(1, 1, m_Dmat.get()); // D (constant) + m_isFinalized = true; } +const mfem::BlockOperator &PolytropeOperator::GetJacobianOperator() const { + if (m_jacobian == nullptr) { + MFEM_ABORT("Jacobian has not been initialized before GetJacobianOperator() call."); + } + return *m_jacobian; +} + +mfem::Vector PolytropeOperator::GetJ00Diag() const { +} + +mfem::Vector PolytropeOperator::GetJ01Diag() const { + if (!m_isFinalized) { + MFEM_ABORT("PolytropeOperator::Get01Diag -> GetJ01Diag called before finalization of PolytropeOperator"); + } + if (m_Mmat == nullptr) { + MFEM_ABORT("PolytropeOperator::Get01Diag -> M sparse matrix has not been initialized before GetJ01Diag() call."); + } + + mfem::Vector J01diag; + m_Mmat->GetDiag(J01diag); + J01diag *= -1; + return J01diag; +} + +mfem::Vector PolytropeOperator::GetJ10diag() const { + if (!m_isFinalized) { + MFEM_ABORT("PolytropeOperator::Get10Diag -> GetJ10Diag called before finalization of PolytropeOperator"); + } + if (m_Qmat == nullptr) { + MFEM_ABORT("PolytropeOperator::Get10Diag -> Q sparse matrix has not been initialized before GetJ10Diag() call."); + } + mfem::Vector J10diag; + m_Qmat->GetDiag(J10diag); + J10diag *= -1; + return J10diag; +} + +mfem::Vector PolytropeOperator::GetJ11diag() const { + if (!m_isFinalized) { + MFEM_ABORT("PolytropeOperator::Get11Diag -> GetJ11Diag called before finalization of PolytropeOperator"); + } + if (m_Dmat == nullptr) { + MFEM_ABORT("PolytropeOperator::Get11Diag -> D sparse matrix has not been initialized before GetJ11Diag() call."); + } + mfem::Vector J11diag; + m_Dmat->GetDiag(J11diag); + J11diag *= -1; + return J11diag; +} + void PolytropeOperator::Mult(const mfem::Vector &x, mfem::Vector &y) const { if (!m_isFinalized) { @@ -60,7 +191,7 @@ void PolytropeOperator::Mult(const mfem::Vector &x, mfem::Vector &y) const { mfem::Vector Dphi_term(phi_size); mfem::Vector Qtheta_term(phi_size); - // Caucluate R0 and R1 terms + // Calculate R0 and R1 terms // R0 = f(θ) - Mɸ // R1 = Dɸ - Qθ @@ -78,22 +209,75 @@ void PolytropeOperator::Mult(const mfem::Vector &x, mfem::Vector &y) const { subtract(Dphi_term, Qtheta_term, y_R1); + // -- Apply essential boundary conditions -- - for (int i = 0; i < m_theta_ess_tofs.Size(); i++) { - int idx = m_theta_ess_tofs[i]; + for (int i = 0; i < m_theta_ess_tdofs.first.Size(); i++) { + int idx = m_theta_ess_tdofs.first[i]; if (idx >= 0 && idx < y_R0.Size()) { - y_block.GetBlock(0)[idx] = 0.0; // Zero out the essential theta dofs in the bilinear form + const double &targetValue = m_theta_ess_tdofs.second[i]; + y_block.GetBlock(0)[idx] = targetValue - x_theta(idx); // Zero out the essential theta dofs in the bi-linear form + // y_block.GetBlock(0)[idx] = 0; // Zero out the essential theta dofs in the bi-linear form } } - for (int i = 0; i < m_phi_ess_tofs.Size(); i++) { - int idx = m_phi_ess_tofs[i]; - if (idx >= 0 && idx < y_R1.Size()) { - y_block.GetBlock(1)[idx] = 0.0; // Zero out the essential phi dofs in the bilinear form - } - } + // TODO look into how the true dof -> vector component works + // for (int i = 0; i < m_phi_ess_tdofs.first.Size(); i++) { + // int idx = m_phi_ess_tdofs.first[i]; + // if (idx >= 0 && idx < y_R1.Size()) { + // // const double &targetValue = m_phi_ess_tdofs.second[i]; + // // y_block.GetBlock(1)[idx] = targetValue - x_phi(idx); // Zero out the essential phi dofs in the bi-linear form + // y_block.GetBlock(1)[idx] = 0; // Zero out the essential phi dofs in the bi-linear form + // } + // } } + +void PolytropeOperator::updateInverseNonlinearJacobian(const mfem::Operator &grad) const { + if (const auto *sparse_mat = dynamic_cast(&grad); sparse_mat != nullptr) { + mfem::Vector gradDiag; + sparse_mat->GetDiag(gradDiag); + for (int i = 0; i < gradDiag.Size(); i++) { + gradDiag(i) = 1.0/gradDiag(i); // Invert the diagonals of the jacobian + } + m_invNonlinearJacobian = std::make_unique(gradDiag); + } else { + MFEM_ABORT("PolytropeOperator::GetGradient called on nonlinear Jacobian"); + } +} + +void PolytropeOperator::updateInverseSchurCompliment() const { + // TODO Add a flag in to make sure this tracks in parallel (i.e. every time the non linear jacobian inverse is updated set the flag to true and then check if the flag is true here and if so do work (if not throw error). then at the end of this function set it to false. + if (m_invNonlinearJacobian == nullptr) { + MFEM_ABORT("PolytropeOperator::updateInverseSchurCompliment called before updateInverseNonlinearJacobian"); + } + mfem::SparseMatrix* schurCompliment(m_Dmat.get()); // This is now a copy of D + + // Calculate S = D - Q df^{-1} M + mfem::SparseMatrix* temp_QxdfInv = mfem::Mult(*m_Qmat, *m_invNonlinearJacobian); // Q * df^{-1} + mfem::SparseMatrix* temp_QxdfInvxM = mfem::Mult(*temp_QxdfInv, *m_Mmat); // Q * df^{-1} * M + + schurCompliment->Add(-1, *temp_QxdfInvxM); // D - Q * df^{-1} * M + + writeOperatorToCSV(*schurCompliment, "/Users/tboudreaux/Desktop/SchursCompliment.csv"); + std::cout << "Wrote" << std::endl; + + // Note: EMB (April 9, 2025) Where I left for the day, so I don't pull my hair out tomorrow: + /* + * Need to calculate the inverse of Schur's compliment to precondition the jacobian + * I think I have this close; however, when running there is a seg fault when converting to a DenseMatrix for + * writing out to CSV. This bodes poorly for the underlying memory structure. + * + * Also, there is a lot of math happening in these tight loops, probably need to think about that and + * make it more efficient. + */ + + // TODO Also I need to actually invert the schur compliment since so far I have just found its non inverted state + // Should probably add an energy check to make sure it is roughly diagonal + + // I did this manually in python for the non linear jacobian and the energy along the diagonal was ~99.999 % of the + // total energy indicating that it is very strongly diagonal. +} + mfem::Operator& PolytropeOperator::GetGradient(const mfem::Vector &x) const { if (!m_isFinalized) { MFEM_ABORT("PolytropeOperator::GetGradient called before finalize"); @@ -102,31 +286,34 @@ mfem::Operator& PolytropeOperator::GetGradient(const mfem::Vector &x) const { mfem::BlockVector x_block(const_cast(x), m_blockOffsets); const mfem::Vector& x_theta = x_block.GetBlock(0); - mfem::Operator& J00 = m_f->GetGradient(x_theta); - if (m_jacobian == nullptr) { - m_jacobian = std::make_unique(m_blockOffsets); - m_jacobian->SetBlock(0, 0, &J00); // df/dθ (state-dependent) - m_jacobian->SetBlock(0, 1, m_negM_op.get()); // -M (constant) - m_jacobian->SetBlock(1, 0, m_negQ_op.get()); // -Q (constant) - m_jacobian->SetBlock(1, 1, m_Dmat.get()); // D (constant) - } else { - // The Jacobian already exists, we only need to update the first block - // since the other blocks have a constant derivitive (they are linear) - m_jacobian->SetBlock(0, 0, &J00); - } + auto &grad = m_f->GetGradient(x_theta); + updateInverseNonlinearJacobian(grad); + updateInverseSchurCompliment(); + + m_jacobian->SetBlock(0, 0, &grad); + // The other blocks are set up in finalize since they are constant. Only J00 depends on the current state of theta return *m_jacobian; } -void PolytropeOperator::SetEssentialTrueDofs(const mfem::Array &theta_ess_tofs, - const mfem::Array &phi_ess_tofs) { +void PolytropeOperator::SetEssentialTrueDofs(const SSE::MFEMArrayPair& theta_ess_tdofs, const SSE::MFEMArrayPair& phi_ess_tdofs) { m_isFinalized = false; - m_theta_ess_tofs = theta_ess_tofs; - m_phi_ess_tofs = phi_ess_tofs; + m_theta_ess_tdofs = theta_ess_tdofs; + m_phi_ess_tdofs = phi_ess_tdofs; if (m_f) { - m_f->SetEssentialTrueDofs(theta_ess_tofs); + m_f->SetEssentialTrueDofs(theta_ess_tdofs.first); + + // This should be zeroing out the row; however, I am getting a segfault } else { MFEM_ABORT("m_f is null in PolytropeOperator::SetEssentialTrueDofs"); } -} \ No newline at end of file +} + +void PolytropeOperator::SetEssentialTrueDofs(const SSE::MFEMArrayPairSet& ess_tdof_pair_set) { + SetEssentialTrueDofs(ess_tdof_pair_set.first, ess_tdof_pair_set.second); +} + +SSE::MFEMArrayPairSet PolytropeOperator::GetEssentialTrueDofs() const { + return std::make_pair(m_theta_ess_tdofs, m_phi_ess_tdofs); +} diff --git a/src/poly/utils/public/operator.h b/src/poly/utils/public/operator.h index b809280..1d2e4db 100644 --- a/src/poly/utils/public/operator.h +++ b/src/poly/utils/public/operator.h @@ -2,8 +2,11 @@ #define POLY_UTILS_OPERATOR_H #include "mfem.hpp" +#include "4DSTARTypes.h" #include +#include "probe.h" + class PolytropeOperator : public mfem::Operator { public: PolytropeOperator( @@ -15,10 +18,14 @@ public: ~PolytropeOperator() override = default; void Mult(const mfem::Vector &x, mfem::Vector &y) const override; + + mfem::Operator& GetGradient(const mfem::Vector &x) const override; - void SetEssentialTrueDofs(const mfem::Array &theta_ess_tofs, - const mfem::Array &phi_ess_tofs); + void SetEssentialTrueDofs(const SSE::MFEMArrayPair& theta_ess_tdofs, const SSE::MFEMArrayPair& phi_ess_tdofs); + void SetEssentialTrueDofs(const SSE::MFEMArrayPairSet& ess_tdof_pair_set); + + SSE::MFEMArrayPairSet GetEssentialTrueDofs() const; bool isFinalized() const { return m_isFinalized; } @@ -26,7 +33,18 @@ public: const mfem::Array& GetBlockOffsets() const { return m_blockOffsets; } + const mfem::BlockOperator &GetJacobianOperator() const; + + // Get the diagonals of -M, -Q, and D. I use J01, J10, and J11 for those here since the diagonals + // are not just from the matrixes, but are the scaled versions in the jacobian specificially (-1*M & -1*Q) + mfem::Vector GetJ00Diag() const; + mfem::Vector GetJ01Diag() const; + mfem::Vector GetJ10diag() const; + mfem::Vector GetJ11diag() const; + private: + Probe::LogManager& m_logManager = Probe::LogManager::getInstance(); + quill::Logger* m_logger = m_logManager.getLogger("log"); std::unique_ptr m_M; std::unique_ptr m_Q; std::unique_ptr m_D; @@ -34,19 +52,39 @@ private: const mfem::Array m_blockOffsets; - mfem::Array m_theta_ess_tofs; - mfem::Array m_phi_ess_tofs; + SSE::MFEMArrayPair m_theta_ess_tdofs; + SSE::MFEMArrayPair m_phi_ess_tdofs; std::unique_ptr m_Mmat; std::unique_ptr m_Qmat; std::unique_ptr m_Dmat; - std::unique_ptr m_negM_op; std::unique_ptr m_negQ_op; mutable std::unique_ptr m_jacobian; + // TODO I think these need to be calculated in the GetGradient every time since they will always change + mutable std::unique_ptr m_invSchurCompliment; + mutable std::unique_ptr m_invNonlinearJacobian; + + /* + * The schur preconditioner has the form + * + * | df/drtheta^-1 0 | + * | 0 S^-1 | + * + * Where S is the Schur compliment of the system + * + */ + + // TODO: I have not combined these parts yet and they need to be combined + mutable std::unique_ptr m_schurPreconditioner; + bool m_isFinalized = false; + +private: + void updateInverseNonlinearJacobian(const mfem::Operator &grad) const; + void updateInverseSchurCompliment() const; }; diff --git a/src/resource/private/resourceManagerTypes.cpp b/src/resource/private/resourceManagerTypes.cpp index 98593bf..30c4de2 100644 --- a/src/resource/private/resourceManagerTypes.cpp +++ b/src/resource/private/resourceManagerTypes.cpp @@ -22,7 +22,7 @@ std::string getFirstSegment(const std::string& input) { Resource createResource(const std::string& type, const std::string& path) { static const std::unordered_map> factoryMap = { {"opac", [](const std::string& p) { return Resource( - std::make_unique(p)); + std::make_unique(opat::readOPAT(p))); }}, {"mesh", [](const std::string& p) { return Resource( std::make_unique(p)); diff --git a/src/resource/public/resourceManagerTypes.h b/src/resource/public/resourceManagerTypes.h index 7700e03..dcb27fd 100644 --- a/src/resource/public/resourceManagerTypes.h +++ b/src/resource/public/resourceManagerTypes.h @@ -30,7 +30,7 @@ * @endcode */ using Resource = std::variant< - std::unique_ptr, + std::unique_ptr, std::unique_ptr, std::unique_ptr>; diff --git a/src/types/meson.build b/src/types/meson.build new file mode 100644 index 0000000..5b71ae8 --- /dev/null +++ b/src/types/meson.build @@ -0,0 +1 @@ +types_dep = declare_dependency(include_directories: include_directories('public')) \ No newline at end of file diff --git a/src/types/public/4DSTARTypes.h b/src/types/public/4DSTARTypes.h new file mode 100644 index 0000000..7143d3d --- /dev/null +++ b/src/types/public/4DSTARTypes.h @@ -0,0 +1,13 @@ +#ifndef _4DSTAR_TYPES_H +#define _4DSTAR_TYPES_H + +#include +#include "mfem.hpp" + +// TODO : Need a better namespace name for these types +namespace SSE { + typedef std::pair, mfem::Array> MFEMArrayPair; + typedef std::pair MFEMArrayPairSet; +} + +#endif // _4DSTAR_TYPES_H \ No newline at end of file