From 04abf4d22e9e7b50551d1a7a32bde1801fcf5203 Mon Sep 17 00:00:00 2001 From: Mae Markowski Date: Fri, 9 Aug 2019 16:40:44 -0600 Subject: [PATCH] Adding function subdivided_hyper_L to GridGenerator. Added changelog entry, replaced call to .at() with [] operator, fixed lines breaks in documentation. forgot to fix indentation changed parameter order updated log file and error message --- doc/doxygen/images/subdivided_hyper_L_2d.png | Bin 0 -> 31223 bytes doc/doxygen/images/subdivided_hyper_L_3d.png | Bin 0 -> 37117 bytes doc/news/changes/minor/20190810MaeMarkowski | 3 + include/deal.II/grid/grid_generator.h | 39 + source/grid/grid_generator.cc | 71 ++ source/grid/grid_generator.inst.in | 8 + tests/grid/grid_generator_01.cc | 16 + tests/grid/grid_generator_01.output | 711 +++++++++++++++++++ 8 files changed, 848 insertions(+) create mode 100644 doc/doxygen/images/subdivided_hyper_L_2d.png create mode 100644 doc/doxygen/images/subdivided_hyper_L_3d.png create mode 100644 doc/news/changes/minor/20190810MaeMarkowski diff --git a/doc/doxygen/images/subdivided_hyper_L_2d.png b/doc/doxygen/images/subdivided_hyper_L_2d.png new file mode 100644 index 0000000000000000000000000000000000000000..e9a39bc37ab1522fabac130e60246909884e09b6 GIT binary patch literal 31223 zcmeFZ1yodf`zVa4q<~0DhaifSz|h^&BGTP4G((4yfC6) zLqQyIx}vH^LVAR6Att6IBPK?rm}&8tS{~Zo=f|jK@(*$hZ+t+@(UC za?|{Lol0<{kkZ8E&|ZR^lz&vF(u5G`5GXq_`M!E-_@jkJzZgg2U5v9m0qINIx55(> z{q<|TLVCM19&7c{e2%6_N~LSdD=VpaNXr<95^O(i3Nn`Q33E}YgfTzgbDICY5OR3+ zEu9uACh`V;uuESN=+O6`WJ|B}Ha}(@cJ)}wOD(w{lZYHTjc%=~592o~uLG>!4wHXrNZ?-`%G_2g1{@}#%~z7{fN z*N23MgulmqZ{hKlXm5;h=jDqMTB&D;0Vn1eR6-mIA4bI44e|GfkPQ@!{b~9S z<~oQ_JHjS2Fh7b?2Yv~pVC?-Y8*?Z=K!EmyhB`}ZhPpotOYKbXRj;vB*ktfCwzvKC zkDKL*9=3M@SqruIrFG-U<7gq67XV0F6IPT?y^RHyEca-TS6YS&+f^ zf+bz^e1b5eM-tPRVru?HTWt;YF4$uccW(<5Lc1GSAAVN)PSTVP<;neE>NcuxD-1Zy z#!2@fXlOTJX0j8{_@tOnyJtbR`)G>jN&cPwr2aN7o#d`cyi z#C&TUcj5)Ad1}1#`Ep4<EXR-JV=OG(70**@7S|ms!qra+-0>bamyGz2J*2_@VOp z#(O8ThoKciK7j(3$42-kE>>-RUT5L4lMdSq;~_~um<{CB1@sNFOHm52_+GT9f7ug% zk4{_O-c@7L%KZ_S^pfOK@Nz(?w@a6V`A0QKMZVZ}_hLtz;hCN`@i#6boY%l`IsU9RG>PDqg`XUYL7O8w-r#$3 zPmK%%DJ**fNy^hK4jVODr@IX4~)G7m{kGRA@jy zK&PNqm0OjR>+`(td83_7H>^i^ibsUr8x^dn?@mUQN_EVQNjMie89A+O?hXS-$VW#e zFvojFrZZgL7we_u!t+xyn{{tvyi@MAexDZBFPWRK_<l^C79x_gr0e9=D(5Y~Z$c=!r3bWvS zy?symV!w_-1h^(%<8ZQY6tgwkij?n_##<#5yL@qeRTfFz2VsP<_x%G%g3JhoR`JX#{On; zag)X&*LlN{(_Y?rcG0~@zLg0I%$$~R`B>k4DSAqO8cxAXaZVw{e{)oE+U%JnQD){I%#!s|7bP_ZWb~5P1t$PJV!=JWRn z4@5i>Um(|Ec!W48-i@uW^z-CK>7@~@{k*dKhyPRU+$`knPMY{yqRWyMf8YjmSYyB zJY5ET)~@1p@2ACg_9!EwBUKq#c2hIpnK*vEId@%3Sg2lyPweg&-PjxcRz@QoNxdvZ zQ#aFQU#7`du1N$@l>%E{pm!&8+Y55t7Imr25pISEGTHvoCWtQJZ*lzPB;E;*Q8uBYeu2{;BE z1)e3qCBTBn0Sc#%+#FX|Nx$5D394GR(I{QHem^%}1Z38lV{ovcm z>&^S=g6l%C?Ow-c;IhSH)BFxTG^J9v)}y;Hx9i1r*{@pvUJX7m+gyiI7&&@G9`BI4 zr2qX#pyo6*DJVYZ4US)HR4a?O{Ppo_6040 zZH8-44j0x~bkXYUs>X_sk0gpi<>UC7lWMj>wKpL>U+MsBRZGo$x84o2nT@-7TVsLP zr(qra=txzEjRm*X*7v(;|ZDX{L^!wZ`qvuPfoyLh{C z{7PO*H%g}lV?wWP?Q^CxFPGDOrGVi^l(4OZlLk*3?}J*G4Hf9fff>p`UJ9R}?Iz~t zmMh!21iYsqPVBnfC+E6!0{jB(lZ3S%Gi|+>5qklBt>QW02 zoQv}uyeWaFPj`+heo9Hk>bsD;(B5x9kX@SCD?SZ!3<^5rrU~1A>H8xvEBpT5gf5bK zHxeuF{PhQBACK+_kT~TJqD?@zlh$xVLL#KQ`@JXg_SqhygGjP?r|zUKFUMPo2#@xxtj+ceS#l?l$g`L^f!Hk8ChlhuS^)<`u z*GvcqCPz0LCj(a|8%NrI-Q>^vh?_VXIat^^S=ic8-QCx~(AL>WfQIG{(Z65+qSM6H z;x9}#j(@O)V36hR3=11GE6cy{jkuKm?kKO4g{z6Ry0`_<#KsYULy(7)oBtR5|KrSG z82@&q#$Q*mb8!6q%DnK88f*AZP{}#O<#daANXh(cT%ZQ7-bG^4ciyDt_Qgyq}j)FoU;)MRusz1bD zo^*yYD1R~GK0}BGn=d*Z&1!*FTjF>kftrpBmQ~n#nH3=(D-|-maLW~}`ii}`nIxw>K-dT0bjMmZ$jEam#<%{&UH-eW+?ekh`-3L{Vg^}(( z`0MTUJrq5_gTEa>oca(#sJ~aZ?&{|FA9s1wWPSfX4iPYYpVu1NKUn?imcPCcdrqPJ z$Dx;+zCWtJEv@uX|3(@b>scAr@6@8bt3dLzmFVn&i2X+FWBol7(%j()+z>r;Ue^aw?z#WUO-x~yeqxt_g&;i7rR@sVN z`FR+(Dyl~fZvP>jg$FO)_mU`3<`jc`jJaS=0nS@hu{$Ly11%4GNhN=?tPp0UAwT#j z%*U$H18B?Ad{h9O_EM`qD$@#0=7LlHrYMF);dbmMyyrLi_Z0+NY?^m8A!f;L#GaVd z7Keeje|LiqDGy%S?18hn!k?-b`6=v};RxD!oG?H2oSOL^ZV}_%=se#_C*@9Q=Wg|f z`(b56oV4Yk8e`+*4sF#n(_C<}-$*D4A@*Fd<2%V80vXWM>n8+F$agNw zRmoyKBXqjI2BiJXNeI}_n)a@Q3J0h?)Qi1v${SC4MxoVuZB3WES_osd|J?@XkqOw& zI#iN6!*8Lh$sRUV)1b6E>8GAs3}?SP6GMTp#G|Hi+3+7Opx0M?zxlNi*@wIVsesl@ zf{QK`n9Xt1lE--=!G(gG)^C1*gj|lNzn7Hs=r-*4AfSYM7g=y=ZIOQypRhg%Syk`d zS#H18)vZcW^;T29&d=Qb@@ecdm*2TCybCt~%{k)V$nq7&XIP%ES6|D^*qBHje`z6< z@JHYTiWVoWOoG55{R`CO|0Jl=z8@T#?^2qpl08{9y<F;ABzIDC_z*(jx#DhsNEdGzxO}h#KXbqe-Vqq9 zyxdqV76bHgF-knFjS=O6kr+o0fL|h{lS=o1*fVMKQImqOG7qJscnLZ*N*-BU8M6%c z2k&%LD4vqK0zgz-^Ui!fArzRD`VZ(o68JwVfxIR%RV_%3SsK)NN898_i4y!gZqKy- zQBf5xs@x4-!)QyRWZ4T?S9cbFId$AYFJ041#M0W;1QF-H7a)RIc?id$3kuBipP2y0t)3cYAtvAsuNU%Pb;ae276{Q;M5XBw%+tI>W2yq}0rXcc5)|pi2LM{v&~ZB=CQW1XO7)Ev@iQ zU%jhmPRe^lOt>j<`($qWo0{5m*Zt?WPjoF8bZMtzY?qBylBXhM-BzFI5g?X;hS!M1 ztN$L6q%|ZG&OOLHtrV@sdS530UU0>P3ujVt816aSSds1jDqe0|LiO<~=pYY*zY!YK zesr#)BYK`%l4$K;(?4#!^Z-9L8vJ--s1B`G8Wr|J#k(RQArj!wMg*{5#Hs2k=GB}i z3Y`|ktaND`E~x+{<_fqSJj;K|`MQ9!g%% zy1%k^ay+4@u{D0E(Wwxs87Dzh{(fxiR)y1TIAhywAIGZr+{)v+Z{T)~r~F22Oj{M8 zw{>2q({d`fMRFyml8VL$?{&HCx%g!LlZ&P7#ej8JCcopS;t=buEYF8OPrsDHV$1*% zT@tU)Iz(P$M=J8~M>O6*Lr=!yho$&J}lhn?(C0TJJzBtMzW((JxyAAyBw?b7Up3UMamtE=91f>1>hRV|(awXV&Ew zsOP0>1d}69!K!b@5W9GpUtj>SKJlpKZimIZ4L^*I-v6Wd6s&yyJG1H~noQN8aSeHc+ zM96pNKpG!UaX<>5J(TF8JD=zCx^TKY8VTQl{vevh3m39Zmjri(?N!+}mw>VSHn?D) zt0h_^N6A4@c2Z;_E$dI(24UoU9TZ;6y7g;Cke$M6-OAe4gdSdy_Gn%!F0^KKG*<=K z{^floxyxo`Azt|6xX%?a%JS_ak7=8F=MsVQHd=#qav&!2B!F+2Gzd27lNLZ&1?HOi zd9pLx`CiLwr@-@P%!`xo?7&Gu4_m$F*?}AWTV!B?$EnWt$Izn7skMU#&BC}K-R8GF zPE?Rsd)uFR#v}Nd!$LvYZ*1pA3A(d#-)8zyOvTJK<+OOea|0m*@5uIuu7)t zO&cOTcca-;=cN}z)pM^WnVa^G>`0vWrpwoEs-`I}O<_V|QejKVv!^gpLItxX22$%d z4bVfrmC-}%^1kZIv!umOLRXK&Uiy43Jif$wU*gkvrhDReeamjd-MoL%Q>dE1xs7&e z5JX9-aJ>8W*5c~b6ZNA!JHB+knxx3!iLqE~ZO>uDvdDu~8wKXtjpYDi+UNa^NK?yM z(L_<;MD7V>gdc3olLpO_+Sar%^WSo4xo@mkfB%kYJK`jmf2a`~ZudAulVI&glk6SPmr@v;OR)-6@!vI%Hrl6}&X2yQr z1q*3J3@!cnYNG|h0FnuOoo@O7!wZV#s5uT*sWKV5uT3~p8C>#Xk=AczvUXJbwWF|` zDE&u*6nXa1E+-ssOJFy8pCne*aU@^kq_^KgL^ z-(vwo*!JiO?M461(UL3lWaRctYutUqB(|Dcc;F)5c@He*FND#$t6{M2b!Ce)Rn}9e z|2)Z|2uQ*l)t>HzEHUXOoBb6;S0=OdwTyHsV^nS;RC`z>YgZhQD=~6R3vr6g<%^WJ z9OAeRiI5%saSEQ$tGYg&eNpeLdMX4rUDI=wPnT(f56*#lIHz!jOyYEgP?EhPfff6) zU_qC0AJ3)ZxB{1A^42lP^QmNklb$fbfr~_*Yl>zwPvF_jz8*7APhDYEtPW_UuxiGE zu`ky+%m?DUM=o?@Rln5_Df`h>S68`HYG%t<2J7y-p*SQXS_v0oRPs+cHN*XRgl?>o z^}|0-04sN4 zIRQ#j2gQEQR(klHl^6EL*CazSmWxqG_m1n z)lc%!Vbxx@*SFBM1?huom^WV79;hlaR&%`0S*vFi;&X!{5QuZjz(>NjJapNDy9C|| zgi!VtA(1zaTyE@z1C7_mEa%=YfTU%i7>q@RvVnq*?xU0l@)DQyy$x>#7x-FkOOMBI z{gS*_GZ&Dx7zc76`rx4pZ595t!CWV=1-jjGQ7maLg;x@cAuw6?=#noTq@`niPC`)uxRYPATAT6D3h zp0&x|wj5x0Z@z@NY)_`+l)21#w*p{>T71rf5+ImB^_1hl&8%eD6^(X`l^n=qJ#2xZ zm9e-%GY7`QmszJ;BmdSY{K5~uo)9?|P+wHHc(q+6z0ddKa@#RjH2~9epP>+uisptx zvb4a~|F*^>+BlA|5N6|aCHawP>tXJfbrE3EFijBG-6jQDR4LLuZ>?$xRUJeRO^`ep-@srMoQl?8gfs0$gQqD_{p=n}kdx<*RseYGJ-wcSu!@2iPcq+`edHH9&@roXh!v`+s z@4FaRztFVIT`6$h8lPf{5#}C;&s%N6}%QG>j81qIoW9BfmtG@gClX=u$_@NNQ@GxDYI&o@j7 zRPMq$!^n-eX6-VQD0iDl;n&kIW=L`XGtpew-?s`+J*+0Y7q%Bw_i41k1wD%eZi{`4 zrF3z4Yl?SVzDG`dNr7Sb9f(}+Skg**;wp68*kbx?Q8CregjC6Mm(`2c;Mh5Hm+@JS zN_*@FWS5Hw>bhN2H(#b>kvWwzRbSnD6S;QGlZNAWGHU8M{jeA>UHS&vOOp!X3`Z+> ztifdskHSP4I1`WMw}*(SUPda`6q*uV#k06Sir?R+cvT2plY7E3{cLZo_jG=S2{1ou z;@jbwM$`4Ae$<5M+3Tw?1GFCQm_1K)I&; zQcYR_eSzsqLe+*1^TkY1A z!;!KTLKqWkm#)o3pa*uRO18(2N6xXpMa)y#(Q7X3CcSaFfv{(tTF)9!cbkE;tp0jV z8(34y8+FeQ#AF_ZlpMz5b1WDdM?Yq_XDpL>l#oMS`|Klr1vTkC%Wtv9(P(c61FawA zplcFR#~J(Cg7OaUyO^GKf~)B_J&us3fu~+1VCuPp=M>;slTP_^EsVYmQT1a|Pj-Wb zS+_MXU_K+gEWLXF-HI%8eeTe`!+bl%1=6DWS7aZ^@xz3JMELoT8_jAOhqOS(DY^jb z$-!;&y?dw>7O3RIEHhFy3tqn2@(|17#*1&{cuk5|-JO)iFrudYSk%^2AFVMTnJF(% zA+nn!fvdsUDVOl+3JWU_|9tsQgM{=(teiI&vIvKb`be+++4_kgy^RFmlL%fVZJc<- zM}RS{u>5G0^%D^cXapFEQ=|t`Hd^mp?{{{eh}YQe+`HU)QdBcDhK)`H+9YSz9Gf)S zL{zGyDq_|tjaAhONp;44YabSzmQy_B5;%qe`5jWoLDJ#d@755dogtB~gIBtVkj}k} zeQR(4kw)8Hy&Jae5#{x`=*DvxJ;;oxJVXsBxRuCgeT@aMuISuT6zsLBJ?d&b^`~v! zf>utzv`%#vo<7_UhBMke8bH}TyIyj&$`CQrjl%lLp4{pq%YsNY)kk?2@1H^b2tdcD z&xo4S^6pRN7+-sJci84^3Ikqh=)rz*mPFBHbtzh-uiB8Le08&<+lXCe6vkIL^x#)N z!$3y9>oV#+H3T&Z6Y2xaibxASmZIC%Fdj78-pU$ zj3{TTE{n9(x9o&wby|nkR21t61+R~cruCCdNcaaXdm=jZx&!xJ`7(v9YcxQ%^Jmuv z6imsVvGh4C~C+9-ppP#cGEQ{)kRs4wwzx^%X{-V(@o_B93Hd$iYe0kPU}{n zu6y-Cp<>_?VAX6l^Gy#JoVLnm&E`_ZqMLlC$|DD?WYX|6UCy(x?KeZf zmVi3zy+d>6e0LmZ>u=Rq`%L zx~(m(Usc)u=sddu+%{amJ*BXG7ry?e<%n(s`B;63$?FBw@FK`6+GUQ)wiWV z>eF^O^R6o^fZo$xb6X%Du0=7LA+IXgQQxmx$!pK@`Yw0XdD;ru?t z`KZnt$6Mjf$haCcEqJ5kEfNn4L;-H2N1V&wxccjnrYQMOF zd9wf5t=(F+&e@r%%_sLZzTFm8bR4)I8H+N~-ltIy7dlBzau|*zWN{z}Z=;yFJ(3K6 z#6@VUy)@dKCmRQv@!1qpLbdwv44x zmUe;{VT;0~L2Is7>BkeWK?VL5vaNAoU){x-7+K=dwHIoVyLC6?&BSNlvDzmkd+*ZO0XaWs7JZ@Dtz1B4H0$=TZUhjaw={r!u{#J3L zd4BOeDc|9C53q6!G5N4uY@^)1D^s6S`b=sLaOr_Cj#jm7)J{*K(2a$ky<$85OE~3R zFju;IR9pBpPBo%Se#uuyR@^}rjsbJ;(XZbMgOq)!k*ZlyhNUYO)zcjM@9{4B3YyQe zjn^G}R-F@0PYGUz^*po$}%;Emd{m=Fax@rV&+63RdPmvU2^-(6j>2aYJ2mCuI|s75{!)E9m$O zQQ+k&HfA<4i-nbcK69r^@{<15jmK@Nny&X;Rv@)2qFXHWUU;{B#%s#I7*KOp+SG4H zm6uPD*z)1S*Xoa6_XHt!XRT?aye-69hvp~EKGDT?7x6as*ff^WHnY3;p4pOl5}m7} zk_y=*UhgYHrm(m=wJ7@dmIkh>10EpKV%6h94~;T=yq_cy;Lqb@@!Eg1mURiy;7~

R_TSul6z!Sq7cSo|o@(=8fN=LF3DvNZ82ADM~NBRY< z!FFw+agR*}^y+sPXG^C$KQ7@FQWQ(gm^^AWRiZN}vGbb}5{-VO3F7DI3g*RMFaz8v{%Flg@8@N#1%F5I1j4fqSUs&~? zyU~s5ZbSH~V(}$>xjVWny@sXn$eK7xYZ`;G;Pv$7cE{yK$4J7`#uz6jEwFc8nJ|16 zv_AQQ59n5DXL%4M+jlcAQMpj72PQW{eOPo3K)0o(g9Ps;=)ed zum7=MUt2k1)hayOPx$DTZ%cWOr;wAAj4n(nvKg^O4iVC3$OqP+Obu=DjI}klt0YN% zF1oJG-amcvt7>GkC|l{Ge`<0dX&jx%AtUDShor}!$#>JEr)Qu~NvqGw-_2*bh72s1 zBenF0SkF*eXO8hLAMom_0@JY*3M>@V;*h5PpucZ6QQKjp8?#$dA<^SrS-1RimS?0q z_C*gvA`n$)k-U*9t{+@3)Zro*5zlzsxYjBo5mOXncW@j&za~+U)b)h zE=NHWbfp2m_jXK5{@TQzjzALjP-0Ir&6p8IMD*zCuIDKZuue!%Ayy;t8ipTogh{<0U1ZYu9zi6TmL`Kc$Xdt@jup81OTlsk{7Dz>sHv)`8q z?UwurspqNvb8K{qY#jZE1hg^nsfkcv+K`T38Wh-9!j+>tq8$!w`mLxTtL9%$YK>Ji z;aNqJ%zp`4C(=6MrRv36r2Ix7q|6Z4!C(*gGnO@IjrFYmUiQP=cZh=Mp_`8E-{ML) z9amCAg!OV;EfE#uPYGzI-YIJp%3(^#cGh3PkbOsVY_yA`F6I=6RDQ((9c0*@%bC;R zFClM+7>~Tm9Tp0=Modd%2tx0yMWxE0hd=0t3pO{?S@vBl=-Sdu_#YUYWm+!BL!sKd z_$J7qpqw)OV9BrOPEBP{Npk+$UR?r~=NJ+4=QgN+-)uk}z=(k}8Z{%P?st}2>^N=o z>*JWMG zS2)&Hb3`bwJLHbZV#h;+e-Qm6y8jhpNZ~#kPagj{72xpub3`i-?ks+Vkmbiu)%1?h z@mT$&5S?#`@abpJ-qftONxJ1^QaSeStX~$;{O-en*X%aee|HLqumy8&2IgYU>^Qr>+|vy98WJ z&1g<2fwC7f`K;!eeV;eu_SDv#cVYl1rXC%n@ zudAuu0tP?TX95<3bx>0QMMIxR-V!M{NcQJ~aRrr)ENMd~x_BztTArI)`!RnDu#F*+ zYjWL3X4bCp?TKTdl~3T1h5*RlW-IJ`HHX3jFxONQLw!TyB+nHg0H(K@ZwTH!@&d;( z>o^td4`<3sC%xnx&XQfzwqnJ0TB!H9rAxO$qsN~1m;4^Mj0Kh+wvY!#g%PUhp;y)> zNDsRz>O=)%e<=D0eef-cBTN~RktUX!p9=Vp<9{2ERTqrkR2M(mzWd?+Wr@Lc@nnU) z0AfQpghnD{sl#DKImb@fxF=SJAkIQ3zW{Tt+^k>!G&$+)c#X2u>k^PC zjEmZK?y4(_Q|qHd74uIVNetnt?u&AFQi;?%>?ZsU!1ntO?&a-oSRk* z5nP;2dX?SBoNZf)&p)G0Ml?wJwwTKSThN3e2S@2~g$;P+by^+>2A7P|qe&ZBiUR*y zm>c>r(*(dbMzTv5gNoTeqxuCJhkh!ao62*cL@c?HlW6a9)Sn7?;IuGR&+UFj3d$>F z=04q-_LG43|A35i8l4vTkPErTsD)o`;==0TxgTv%gqKB<5JX&hTCw@ z49}limZ*mlX4`w~zNc+|Sk#COCaD(p3uK{oj4iNdX1gGH8N(QCg-Ph(jAfsA;A{54 zT3UBN|9m?bdiIFl-)@xtfw~|dlUc9@n+?Ab9XCF_FBcqMBKAlEDEeSk#gWu$zhQ4I zy$I%YN$2il1=gttQF(+VGAJ*)Yv*Ig2)w+UNP*ZdE~9JvT!URJ2S{ty=1~2TV+))o z9_CTVB%hCqebu%Nvdt8mOl%|F=&vqhsJe$EzeFGg88^y`N@5Ky>xydKU8(y)Ac0% z4D5#08gwGY%gM<*YE|RFb|vBOi`C7D+>e?)+JV}|ET%*nH}Bt<6UwT8|8%qiDY@iD zB`%8fd@_{yJ03@+2$3SDp3Y;Nxr%#@9#tx|O|Vq;{kQ9bxkQ@+=O1ZDHdL}ptf$@{ z!KZb=5xZ@LUv|I8SRC5RfA}cUlatNmbFuNnX>$&s>tY?2xakHxA@}%ZkWN?%eTJBcwPBMVkPtSo%L?>pVT%RI z3updxX@AY*zRbGXo4kr&O(&}xe&Z*(bc0Ia09_9#Xu4j-$l>t~N=s`K<~m>ZVmBNADm8^H{#;HN>&J&#MM-AuZ=Ju(3Y zpJydg0XE&;P-P;GCi=Nt@b59s%*u~BnXt+I<>9urH8J99JWLEfKX?b8FB%4VocQ`e#WRI<*6jP7 zon$faW8F=;kg$-b3R=2kyG{^yjM1ysd~_n2!g8w)-W->h^PI?0Uh6j>DvKVGQ|ufc zNvpoDBPMY6B)XFL!be`Ma*pPD37t@U zu7l1@%`r4t1&_r4*BSaW>7u0ik)pv#q}HLG%k^Xs4G%kqTc#!MmNzkgE-B1&#j(tvVjO_MY+|VcAk$QSaI2oxj(rg=mTxl<> zFdkOdb-=l=0F+zrhQ1~J)1Y{?5RxxI1h#^nI4}PW%NS0d8)Wm$=CK7^m0s)%o z91(Ie@v4A?keNDQwXnP&Zx&`BBJ^^n7X)Ebv|Wa-85NMoE9Ae|D$*#&)}?&i|Dt2b zF)I`#5aMw%qtQ74-}3Iri7Z~quFO|D34{z5dQiUeSda8w9SSJk;C$fJ?^lG5$SFk& z{!-)^Zxtz&gisP;-V@LaioBKj>^9l8x>e}uJ6y1dD4lh+;M=KoJs@z zgpzB_#q+g9x{nx=m^qqncV$QOwFqh*Rz%Y2nN;nkxb&y>v3F<7F)@kyI}jB8sB;#| zRsDMFl*O_&mT|1xG*xDzI0$Y!N%7GHXHqtVGC^*?4_Nx>32bU1h#tE9GEw~MGeMV( z(}I;d)(6kScn@U2vtke4g~|-T!b*yglV$Ydq`jnc<^`h^bz{qD;FAdwqS|i^n`k$<;!1=NN=a3IiPG)kG3%d^PU3Zb6gt_wX%?0(PoAI5N0F-_&Txro z>CcUqH<1H2?VC1Ei(p3DFGDr%< zipp`UEsD=LDrFuh5i6=d{=JA-m`)8f3xMx0b>g+oor07S`HD8m8k*F6Kh)EubQ~gsk&fejLMaHB?RU6kT9J`dI8}-!Sw1)+urTycm{C!Rs3~jW z@m`DTAm=^Os0q$QR?@c+R?G-tSIcOmMAqbQ%m)4`(&m=YXsN8pS%AM5NmX}Zhs9&Q zCwTepfzH_IN_Mi%<6VOw!anmq5-J2N6=6kfGPRj}RraSm^vLA1a#VRIp zuafo0v*8{2e9(^LsJ@je$|g*y2wvmPVqA{jqgjrJTod|87XKl5@c?M4o#5%4)MU`z}r!M^C)3 zSEOcKZpGsFPYgLZxpl~#LAx_yxUDGq{o58fN~N!}f}o5T{a9q zBx2ENI~-^xhU@-t*Mo(}GK=QNvQR0`dG>Gi?u>OE6zTA>TC_-e7Dy(B;=c%cVTsSB zRy6aW#h@n^yq-z8b#Ve2u}sOHpM&kzz4yhpZ1r644^S=4DSn`xiOh{~Tm1Ubs4UJX?c}Q0ug+67^Ig z-&Oectea{w08RQJ0)J>t3%!lF4x+!r76xjk<8fvDtqp|!Vl4oZXzzHUXRz%2(2{ed z$8~w=`QA?}u~EUg+QgRkitKZZTY9~&Rx};CJ3%3NjiCC|_2Mc4_tlVyI@WPa*^Qk@ zL=zbB+46Sgm1Um8k=1ln;X16EPw?6p9V1Vog4fw?tW+`O#;3iwO2}=I8}a0kk(1iM z+NMPHZf!M&WLR?8)j8(;Ol`UP$y5-c5=vv=(Fm8rAqOafG1hKvi(w3$WuCZNW9IO6 z<>LG`f7p-82}04WDxIO__VIp`wgwb(+tGL~vAV!@kA?rbrH;McejBhutjgLCxy&j@ zb~q*pPm}0T=t_Fda|Ay5oR~-ZGckP#wl_~Ji?sQe$W-^U3 zV|$D<5x-8Ir(=kwryjH`JY+~G+7!r0)T$?b*PqhNd)mDLdirj^eo$$Tt}ywz4(&d` zP7(NM9v$+Q)ZjbHZZ7y9zlh4enmXD>t!kT&L29qP021f1^lFRY40}mnc)mp8QBJXL z#Aekr{Dr=tkuLVLF zVe*jb_VNMFPn=&gSfVmhU^^4pr0)wau(K7DoFqLE)f2kFN00Tvdus`f%UuDNl&)wx z^~cH&L8a;wPra~`cma+Wo;r_$9I#3g_rYtwTGh1kVC5x$A2;?|6-e)cc>{B2H76*#bttxtKF5;MRDd&JmEpH~3 zNPW2LKZycol%lIkMTkmUxHKtr$Tn3Ik7M)&oNH5Gf)Jv6>IFT^W(I}lwp^t6+WO*YxXqB? z)f41j_q3EDdsdHO1WJ&zF8@<*XLOcZ|8FV~|8@UUvdX^}@I=HUhNx*FdLX5%ZVznB zN9$AMtBj0`NM846T^zV2fl)1 zrF)zY7>sSi4lvU2Tx9PiUjK?noEgmDT)~Mdq_m#jIz}b&iz6K^jrE1Yn3#I4yR9t~ zk5eOR5wie)g&C$wT&Zndq)No#Z8W0p->@Vqq<_xA*o;V>5WS1^&Q5Eb74o@5u9+te zZkm;^XrNoCl%da-qv+hmxIfb0#%u~YGf~mi>3?;s)5@f79X2$RclfykXalh@VZ^La zgT;Vnwoh8fhclHR5q9U$c<5OO-@5)No%y>aL@;im#o?u@L?`(I$I1o6yZkWB@1}Qt zn;83Ch6|)Z5WD13YPZ(ziD!WSOHhNEJ<~5TL+$;Wqma-e{{AC;Koc=c6lk(wHA%^{ zXoaTKH4|uC=>I=Fn#8@VO^Q@T{h2T6Ngzf`$#Ie_Oi`IMbkD|YSwJ0!|1BvF6-I3; zKvW-V_AQZ^@5j|q$;U-$R+dI+N`r||v=&Y~;GJx-c!L258h)W)CJ=qT8~fKJ)>2wW ze4m6T8z6Zm4$cKL=+ds;4Q}I0vFb|pIJX56SKq_GeM`W=06I9tTrT%vW?3QCL3awXYtPBrDxQ8tvfZ zRTkT%`Ew*~DF^&hA#I<5g8>1>2B!#||0wU@G3|Jvem#~HsLKH70VSd=*j{8(MAdbIs+ZM;@)j(+1J7piqc%TjC+VqJ%(G zWkX&dZvD+}xr_Rhs~KU_jb-gicbtXZ4VA9=7wirzKfx^lp=lb2RSfSNGO~4o1B$b` z1sqKgLwA%OGpW%Ivw3R&bO81DgVGnye>L~k3P4YPazh47JQ~)Ngy~;c5FJ3E$bF9` z!~jYEbT{d4V+w=lWypQh6N7$fPIsumH1k@Ay$>b{L|&R{U_j z{uz3P#@D7aN-wT2$eGP7_yL3)2(9s5jYhBBN3RHF9qo9?K`CcFNGE~cM8urfIr_qg z&2SPak=Oajm=%9uc8Z1XcHWtQ{UW#bwFwjbXUed{wE@0%xW7z!1d|p>vFiDMtm{ZU7MRoq{@%mBOEtl>a$5H2iW$ju_0qarQn0f;3ZfpJI zIfv>5+gC1pyA4}{kH|PMOm0ZW#@28sX2Q=M&GdzDlciGx?@NNe2J$+m>}MbCsDJFrS>)+$obPcWQ2*nzOrGoQ-Y*zDE6t&aDg3`RWl0+r&59-fL zBnWWln&r{oCx>WuWo(0!h5`Z;bIZOSwfI)ec7|O8eRzix?cuo)HR7((|G;9P{Xx39 zXSTR`9})MCsTQ%{yfYilS~Fh^Pow?x9OUupkDA_5do{L2aF#8XGxwJIUJx6XlA~j~ z_;Qaanf4jHQ;`Fk)w5Yr1h{5yZ8V=A{J%$+u^4ERNig?%FK*6C!f{t_MCbfS&x`t@ zjM+c|&1%;N^%F_2zE{VKEP_UDqA1f1C*pwrq6OBQ3ocRIakw)U>9Wu_)%LNd7u^`< zZ?7cvrCEZ_gi=|_>v5R9V2`k!5z-aG=)pyvdd^4Gx_9*1=?=8py~poni{s0PBdnDh z$$1hK07+v`kW(M8-(?>2GLp(ov>&e$@Z3Ik=8lgUVr`;oag z9-EWRn|1AsvaLyVvBJN@#%p&J_fLy-6jC;3)b!rl=zP#gJI8ET6!6noA*|ZIl>a`N zPOEdm6*#Iv8503!c(hQ-Z#yHVhd$8bL`!PAXNkiMFdG{7^;1`;f=ATvi0wT6(|8z{ z1sL{dRRH8aw2KJm!_7-h-TG#jHhs^0ZQ((!@^e$e?1r7OEh-LdwIIH#Dcy1kE_lsv z^k-~61x6A+_jhlonf=$`q;~$wjgaghPFp_3!Li&w0pZrhJdwFN!z>+)W)}PY`9+HG z#&0Ez6R+Exq`OZT<=?&FJSP(Mf2GP`H<_}zb@$W+5TZTX8yUtr1ZB7$ztdT>|rRafqC^frCZ#fHYccm zdzUlWlCU05JsRQ^8;rhMabRbsw7I9&KdS!swZi%0f6%<8_II!S%+&fr*t@a|P+!eL z?60P}lKS(CjBKM(Y(@&q2Q$g+?iE8AJn^(AFExzk@2>#1Ti_=9JT@o(05soEPHe7j zMsv2v>QWGHMWCG(wpmTf4SijR9RT^*R9Hj+)0&9IOqCa zr$uo)!z2H8rlqOGk#9Tsxr>hm5}#75g=E_Y9zF$AB+!n=A+Lien(kP^VPrp=uB0PW z(}X(DeVVQmOO3J%(1RGD1gqnEsR`*?QbY7bxxgy>b2I(A@<^=rk4dmu^khzHeR(S& zflHT*cq@QyT7P(=)P%j^^VV!zsuXwTw9s3*&r4%ce3@rGK^K#HBOOf_7u;Y@&Qrr* zYUZ-`-XFnKTkRY<9vS9AOa>CuA>5HS`86r z-cW5_xxz%zp$P}s5Y(m97d0q+SQAZ*```$-5#V00;l8Zp>+{FS`_K_k{-nY&?Oz*U ze_Wr{7vWKhPQ~32p}dm`J+~p(%wi#Ozc2IxFqkW$tBx2=<=iflKzz(hJr^ZsvZaFo zbrZM`iOoh@zPp=G4oLGH&+rHI+p9mL(q!CtltNB@$!MU`w6NfKg06vroXFNkw}bh% z5S{63*QLwT!C-sBNGe{KB`$~|^1B9-#S&i%k44%*o_$GTyGK_22G5}@BVn{c8kP-CwFj9!ZnM0!C<$DAGW(f)Tj?YXoC*$dz(qJGgW> z7q7`1OAg1m`UTZ%TOBtkL?pMhBWYT7wd}B z6aYWKw3Wt;_Gp}9=}m=L0p(honyliKM!_KLm#O%Os_Y2;aUCo!64IRXhQc$0k9wB_NJ%Gt8{c;{rb3 zlhoV%oJM^16krMEpDXd-P*!$^g{c5380jZsk?#R|!Y^5!fQ2dfd$7_&nPZWGe;E+! z8qlgc(xU;(ZR9|lkp=3le;R%b0f;`ePYn&y0UwtZH5oo$^~aHQhdlui5@w@AQwET3 zH8lx`smBAm>nT4&(l|0)M^E!iQNz?@|1_XPlW^l31d`_Xb;g`V-1{t44)-k3AoE$FU}fq7(}Z@?~Ekfw7&SrZo=K`#WoGKSfco{Al^d z-;;%Y;RV+sA*Qez@NkU2pznv$NpDRmN5zV3n>@z7rUe-Vl|3Stsb>xs^n)plo}Qkh z@AB2?49V34pReHj>y+1x;`-fM8T@o&9PwOGclF6ndtT1ub>37NFAgcEIpytTDLLY5 zi2y)XeRqaJ%yIp|NM&K!i=`{eqjhR8!p?(pI^q?FQ1nT5f#VuHL7;BG>=V}EPfi3( zuydM7OuF|XtwDjeS||1){sJ@zIoX#Jv55X={>kDmY3hvNYOCB~zlPDZ55leGiJ{i|oG16GcnwbYcgTsJyo0vFt{j<|Vq z6^*)VG&;MR0$OpBvLs^Ho8zo?K-n+3>Tb`AiZ3{>nouZE8&s%RDzhe?BsI;-Cf5(c zE=X_R;a=Qwu#KWdCw~;A0cqprbh)~X)j+94(zd}tHpLNx?P3!2)=%iFho3n9e>={v z`q6MHwa!!_H+7A1)ZOtr#j=~TxFt5sgQ{milm``R?5#OkZ=2vP?K9CbYhq!V`Y?4o z1XtJ;>ak^QMTo`P#_v#d;vHCjyH|UHwnQN4&Eky!5~yHF787tV)E<2{oF`>cxey65 zhwEF$n+a(~B1ojdmFsS+ry{u}PIQ!N}2#3vC=rcq89{Ky5!U=gt zE?5F5qlLyIF>Q>2AjZcb;z>VVSEZO-@pSzQ-;3U2AGdfc_LH-~-fr7V`t3)!Wr-V( z%?zlha8Q@fNGR)1YtZ_-;_HDyOwtB0!H2T$MbHhCJJzmRPz;HLL2kDKk(ZYS^GbYI zMo1zd%qwfN2^7Jdxk$G(F4nlXIP;)fW|%q)MA%d^rUYvm!qP%N1xkxjz52R4%Gb47 zHbZ<_Ygq^UvQBTWjYhmPaYgRD+ix|FMS;*3#9%XvNuMnAmg1z(id((jvezK=+9=Xo zd+C3%sm~*eo9TXyWtFJFv|q%gvXtm$BE6^13mq<#E#WRG!E~W7|FXOVrR+CXG$?&^ z*8A8M<#>K=w3@yI)5pFhoH`?0C+S2q5c~DnHq})YNh5ydteoxjE0OT%nT{C6`CCAr zSUv6D$lZ}rip0&QL^jHvUBuRtyC8oXD`2#ms7;oE-q%9<<=1-jbDtI4d?C2MtTeC1 zhsk^I`xr1rIpbD6jrc@a$D2fnOKT#BU?VY9O}_bby65aoWM#_D5vgkOOA*I@ZT9I3 zu%VU)`%`#+x0^G#oi3{?G*k}%VeXY?g2>_kWd{Kw@<))%nhDlZc3P-OpDUV^84X9b z-n8rHU$d5RT=Thi!(%bkU;GHpl^%0?C7IU(Yu8idBT;e3;>)HAjW`S_7PjX^Vys-% zWD8-+2z%eA+1iw;=2>V|rzCWC2Yy_B)P#;yX$lOUu9yL`#5Fd(q+cIOVZGtA=#C1B z!$qMRc4_8uX(0dbD75D&QGUxnD3_J(s)LX`g-Ad9%}*Q2mXVLv9I3LM6+9vDLWY17 z)bExu7ZKEOh6Ave+z-WazX;u{6})&a;=bJ7eJDuG|E?P4ZpMzyxlbPHVR4U9WRWcO z}728!nD%5-0o*8@G=uHgLa#DVRLnIPP=dr+}Rh_s@8*7Xt*+YGj?Kv0SRP2PIfju{|KB9*lr{Ju6;0axLBm>rJE)l zEWT2k*EZ27+1&+j*woDLVmCj~40W6E;3HOVFdKL2!RQCkJ4hH|xh z3Y~9bW*qeMoD@vG7qXqNb^>p45M6Gs$3zm^C)tjCG!Jks{Vl|p{LyB?!#NOgI&a>4 z;*Omr0ZkyCtmISGx$Bp5kt0(52O`!RO0bV6o~(SN#_ae}X{n>fR>83QXE@(3p1mX$ z0s!36OSB5-3t?{UWS^K$Lcwn-&}DM#!h1?koo6@XT$GtCHrZhThxZsz8Bn6$c#!ht}wD^GBjQZIGlUH7^@a_0KkM;SD^8f zOK4F$t%!F1utQ1{e{nuKUk$x_H^Q8>upc6NLHb^SL8}UlA?t7vhi{6cWBgWIPm%3q zA}-AbzwXKM+~LwPmFj1dZ5QOcAhePhb#4X#mRFdg7%N%lJ|-& z)>$&yw9pThH2PO!+B)A(SS=-J+bR|o;r0agM1R`((8(}%IC4+03Cg2|uF`l`N4at0 z+J!9OgqkM(k52mzQ;;jTh;~C6DGxF;2 z2J>p|zOQ#CNAq+9M4d;Rngd(rv3>!HPz9U99=JujppCU74>ilLh|V#}UF|=ccQN;C z{55B*IaysALl&EX()99{_T8=dv@*0;F8Cv=rCoR10&Mz?LY zr8XO_@$EE)T8xH8?%bwaScZSwuC`D zs?PYRx^X?hM_69!Zwv%l4HPah5LEt4#*93hz%nTm8wW?he-w&@|DJVk31^dMthChUcrKkKdpk1Xx@@S`Agr69QBCcqA z!kOg`)HCN~RcWpz`~@gz!A5TBc?qrS6WR1+upvj^%vJl6(2If1dVP$4i8zC~&%XVYe4^ zf6jvTzG3SMdSl66}dC8-<*L_G2G{%jZR= zV*TwQ3HkO$6KDI3zWWdRcML4fkp`DTKN**|HLw57)w=Oy^DIHcJi{+5ynMvDwqhaG zOzI@(HI732yMC-qZAG`MHFt+r{3~J7N1R+eBv@#I#lReRWXe{OYOb1g(j6$)paAmN0k;#i5Lv{?P zUDfTP?S4ZAHB~_}TMc+kKSYUG99|vii@|;_pq+S)?Bvgkz-OU}&O_l>&Fepmbk`zN zQ}7tCT+e!IR$;T+NUOG2+3IoApdP8DzY0}CaU9|Qb%G@{+DV2_f(C@O@<7XGW2W_S zl?-0A>;pBz!p-j~@}c0&Y(-dyf))ZTi76W;;JC&~#T!+ki$A-QtlzvxCrYT%@Sc$b z3^Y+<73`0JcsLdr5SX{sDr%E+v2vTXeH<=rD|uq z^Cq)DuUjc5=pSf+Et4CdWceiGOk!h_Xl|MJ&yKS_4V<8xWlzP^B}qopg_Y=JaSx6{BcGV#ju0>MT(@7;x3HUh z0r6U3Id%>vxXq>eV(lX8r%9j-SnR2^ueC|71UmdT5Z_VRe z66k;Iw~-bkl!bx@yONaFen)&)=V?3M^Q>}yMRA?!vG^3tMGDz6Ey3qjdq%0H2@(4~ zXt0+2Fv!>EvrBmP#ZP-|zG7Nz8VXZagv@qG{dc#TQ@+9kcdvT6{*QYHX& zB6WmnaZ2@zk|fru@t$=n>h4DgtUVD#LOpr$+Y{cnFCXN4j0#*rO%7hkFa$xOqx8>H zrz!2Ny~5KiHwGNyPRU}<*#jO7)IGDvW>JRXOB@6)@sZeU02c&YFdo}|CH2Sv}G9F-0uii!HPgdtI zZs%VN&vP0<@0KE}nSaU<29}z@t9Ll?B>uO-K!1of@L&zQrT0H%pwayfTEPB9F$(9w?sumdhY^4lp+MA*8~+2K`=I?7eRv57=_S5 zDM6))bO<%{5;}x5-W@!C%lX~+uKV}Bti@tyXYc2knP=)}hG-)Ltt0Gb*jZRuj%eSw zX2Qb4if3W@!|dPz;LdcWP$mn@VJ9gLJ1839XZ)o!^Lz}q9k;Qc#C>s5r!V#AZ(%^1 zX0QFdxp_ssOfL8JwO7rwLLEqi(3z@Ns=m%FM%bCjsj19-mPz(?O_?u@!grHgC-d0O zUgn7X!*A^Kc+5I2D_fA|^$W)G8tFpGW1lvQGYbyQy9Mu8$xf0iH{=@K)MOM-O~6>j zYzS(`5SB*@?-kSIGcGo<9(8|m_6p0BaxRyz*f(6c->`A57bG7a!Ah~*7L5}8&T?OJ zs!epv`LmLrh*s!1!?TZqI2uO?dYqsM>d~Re>Gu0pk%zIGgMr?c7$;@nau=dr$;3=m ze0{`s_UO#iy=huT%W9pFqSmELQO7*G^^9-C%DI$#Qa`#p(v{(!xZr4Wo2zmDr~}u^ z?JbiqMbqQQF&~y^Vg~NDv7BJxT2cCA{OH2f*4MY2sUjZ)wf z*%3=JM7;I3*0cU6f617%UpQK)f9lVsuW;$2o2xhM6ZsPaQ#g9}O{Zj>K6QS(=_PsM z-IHUSYRJo(sjPS+2a%f~ZDq%hVIQ5SPIZk`$Hirw;1hIkS^Q9bHlVRg416*%jQ>Nk zb?OJ#rkl%aYuUs}!ac5QED8r%#LqsEIMT{uefh_T!zd{Ho7O`XwkMYljIr8AIyVX$ zE1Z8cYGrhgasLUZF&oMFXbcg)Pm#*D+37p^uH`z%ZGnL?k;aO0PEuUx#IcnHjub)C z<0=#xYj)jP=)iH-C+8Z^W=#o$ByXp&rW`!Th?C^o3QJ6T{q){nQC_PD4G*O~YJSA~ z$g`gRIZOK2Ea5^lN6a;-w9A9&Oy27pCbtu|5CP?89Ujc4a9{9OKgTGAQ*SpDuMjB6{F z0kwXzA6zEejvcymY26yRA~*f%YUE8--Z$Ab5vnXdKiMJusvW<#dpru>Nh$uy#UkYq z6jVN!B1t>J(tL|`B*uN z;TXrhD?Cs3d7nM47a^8@$miUQ^(_Ib!!cJxtXLK9x7||h|8wg>#Mr_2Z2Dt|%UO!= zbKYYmMEG}d*gyPZh4b*agIBM*9%Svje)yi%Yj+)Rp#zh~t;71$h!p~(G9nQ%*^IqWY<7XPfMo>AvIE~z_ z)3bUdN9|&YuZsN;-C(haO22~1RQ%z&A*Ax;553bcr^ksB(~q%OVevn8o3HinE8H*E zod3b5@ED_`?}KL{nEK>|_ks3$xFh`W*s9X0jA*IPmJ=zfh#-C>XWe6HJ=+Rq|CuWZ zxAa%eK05yL;OR%!kDRV5JA%fQ#?=UlHID+XoqwS%cd@b_k)+ppzFnyJFHa$X^9mw=bCXl?ul4!sCe#zaM^FoNTVy}*TeKvX4hu!*y~tFD-46P z3kyBoEf%Y3TW40^sJOcGVNG*N>pM7a-b_q1MI}=7ZE+SUN5OR2X!M7xoNTg`MC2Po zTg?J=T8{cVM5gR)z=n|us`k0PHYPi;(;-hdFEO8-r)Mf+CSs|a?_-|hV6NSx7hm+< z*e=s1FXZaxoB7N$8f{l3bR;a{IfKYj-Mbw<+Vjry59ZZ2bLOkMJMy=sr60>gw2fVQ zBOM^yE*m2M(?~9vw@kf^nY?mbt;Ym-r8J@{a7V9>pEp%gqjredM;%FlVu zqe~gn1+{<`&RCK9Ut+cJBR!h_MSd{9nR(Jrco%dUh0GUUXou@c{k3c%8H|~%qDQ~s0RW5NWom8 z%p(tn#Qlkr$DtMz1C9k~25bgk@JX?{r^^CvE|g=o+P9Rqs+N|O->W`S=2DhZp-s6? zef2N&t0rCZW%sd}?H=0*soo4?kl{oxRoT>wDpJ0l-i(Qf`SU(`{&T+a-unK-6Co}7 z4HAR!oFUD?hgEgdtJ@d0Q38?zI|5p2jE$1b)-A&FPT0ep{ftM$Cqk-YtCj3kYbtB3 zNAgBgtE&))5lRqq2nrF02(Aqc%h<7|+}Yt@37zsq<467e%|+xRcGHI zYY!`tRgn#H_!9f~gZYQf91P%0=Oyr6J$MLY&Fdp(CiR-vhF|6A^ce-{;!P!aHH9!= zGVx%+LE~%0Ykp4sjs7Q=wUV#13oc||HgoN+e9zW7-6@+Lo^mafOFhr$XBSUYVz5jR zHnx8bONEU#?KBrXt2*U%Oe)$-+eka{rBT`nMCL439INVf^C#_{*f*7L4<{dUndn^o zp8opFw+F8j^+;(GYB@pQ+w!JOT?}jF^j&P)OI~%EqkYj}eW7<3&?G~8YxIPf_kpgf zUAT8g?hO#)2nlKqBO&(S(Wegh@HeD*`!@`=1~Hi3bqBPebFg#WeTjbYpfv86rRoca z0JE);#qrd}RE>&BLO0>WRewj^3gIyQ^d}d;Y3mv88UK!r#0tmh`@%O%v|^v+#_+Dm zkICoiJDuCnUVHz!D)Zx5L*XN9Eti6}lkJ`BnCUr{O%VE64sVfE}RQ<9gXDeqaC&SXm(w;FeJ`WtoGy>#+1OWa!Mq znepTlcSJ8q%v4NFe8F1L+ip0dm-2GcOHpt1US3$(&Q{#(xR-Im+{d_&r06LW4QvGa zPEYg3GvcFgv!2%2DZ0f-Z!x@f=x*5pTxyu%7Imw6Dea5uLVj!h_rPO;+>0TVs*ZsR zQl52Y%bf$Jl`}2&<0B-547J_7%EEHFZ@8}VK+%it4gN%*OyaH2Umn{G4W>mUM(Kbe z8eTR?A@%8-(=S#8CA5a0^$N(UmXimmnW87cdNmG^Kx zn9U7M%v1dYHOaK{#efP%OiO&F!VHdBr@D)*9?q#D}W2xR3~WAo5J7I zu~YF)1+Z`mV?g1#+z+bFMhF=b?^QCoh)`v~TW)QPH3U{HKORX4`@#6IoITXsYZ#r8 zex!|}N4dG$w5Ch!TfuBc`9?*pE1iF~D0=_PV{|U-N}oN8>o*o@l`;AQ$?(u``(MGU4=!)3-j=CM{B-I8crwH2JzP^fwqgV* z6As+M*J^dVm zBs_fue=YKRoojb|VLop6{M@`e&ob9_bn^1|Q$K&6xzWFVe$ja+$nD=ddHVj%7Qmns z^BXA{NolEntqr`Y#=NUyb;`8A>Y2juTg6d!#)^-%cZ*V^Ib>fBuCyCL~i z3(DKwt;#*S6gp{cX|Aklx5KuFZqSh?yS`9hQS2vo@G{H3qxV_%pJn;u*X3oyL#?!s zKO?;jYi2&4`+fKC2X0-yU!N%VpN})Ycwm1bQ<_vtzp3``Wq!S2#Pf>vzg7os|8U>O zg|ES7JdOH$(SH%Z4)gif^>4aD^zYY~_ig#E{&Shjj(VK`gLcdzBcAO+q@=)q^Te`W zIQHA${QY~=S@}QMiS|PsO&b5)HBv_TAB?l?tGOWUyAu;H7OH>$e^CDahyX4-65Od3 zLBEgYx5{KnUts%v{aZCM`v8%L!l9=?{}ekHe)8W(@b}{z$t;oHn5CJCf9e~cZG69% z{C!COJ7IGu-|H9-tXja-wGRi+@RN|+qhE{4Mkw_oH~zWwt>cGUZz4Cp$G-}4dKF}l zU{4X-Zt`vSQ5*@X37!7L7+k7u@q87OoO(jR=HdA8{OWK0{PjrUap3G88gt?IiNE`Y>q0+bZpHO~qS%i6~!V9p$YnmKu^M|!8We047p#y#v;WQQ3#1*6CHyW8(S2n`Nf(P{z+*~#5Z zd7pNS4%-R)f|`PXRWBhM-;0l`(5xU^SiuzV<|sRnaZIpOZeax$mMRk4+;}NWm+$dA zX-+rs;jqOEcePx`>{USZg5z2@U^_D~MPpSlO7mJ!1h}Q4X6`+?^P2NqpW?9Uq8<-s z1vYm`ulLv-n7ADQh+1#KE4tx17yevaPLfy1du+C^pxqe|&3NztoVN1%jb{v4w^?QC z2KmKRw>dd7*00d?*==O^sLo@mHx%SHnbC}*#l{PcMO_uM({)U3zx(3joP@V9ld{RQ z)Y@AIsjD83fc`c_udqpYZ z_@7V{;T-qaI(a}p*JCb{9UJj|fZm8VA3FraU-1r;`Sn300Q02CUFGC9>cXX^1(8@= zGP$g=R#+kL1}@Y5G*4~QGt0%1Y~>$rOo7%9)JsU?)7YC zRJ?S^d3L-SzVaq$c%ZED?U;GQACq$9mU&<~vibZUMCtwOf=68^MoMbujxKN_<0%Tr z_{u|uYm^Hl{e_f$M6DA^8=H87O;`E5poic&Ldt8ViU;=+o7e7nsfZ%wURbAZ+HFS_ zFO6IK?jCfDRTyomau21y4>Gy< z;njElSewh#Ci zR4uyNl=ij7GA_LVq{@aD?>RIh9Lwsg?-k7&z460~YRnV0QL^)z_jb$$HPMJ`Hv|z7 z{~x#~z~Q_gU3uS#dX8V~0EiDgn*Im!k=&bb`-+RggOE{Z*fXiRs?;w^2mR=uzk)U9 zz&OJU>Jt~Vfk-S{BhRhwk}Lm_OMT$mZ^DtcLZE#r{wNh`b>m+3I$6d(ofy+gt?wT> zK4dAK!^t&&_6sj@!)!C+(b9|gC^v3H@?6p}U3c;eyjz|b0Q$e{dKLk8OMRm=waki4 z4!Nn>K^Kglry;Dz-8;?I)87S8R8ZUo?a42`Yj-BG^)4!(f^zxjW-q}V`4|opsnObw zsc*hAwe$N(OnQndduODgMkGela)bN;?6&`cF86ehQiji)m~=*`es_?~I#kb`Jcx`D zfW}&d+Uh_T^;Y&n2LT7wO9?V{AgS1z8}81YuM7&6;viCXg)C0!cbf7@8C2ej!RN`X6*Bw9FVAzQ(65g&F?Tvr~)0Rs00#pz=KC-S0 zurjMwM!9*S8NInlr+>@>jvu~S5)JF3G#$&A2gsk`ihEm1(TFQDCFh6Gq@A7)`Rq8l zJiJK8CVswM^fp{C9gGc)g6d8QWVuQ}i1E3pkR?q=g4xkfy}MZ=AwXCNM&6|r${*ok zcX*mT3-Hum{}{{>EWUjlDPG3Pff|*s^@BU`=<{Mc9Pova`>TQifsaR^^J?8wk|TCQ z3(cmR8>rxi_;#DFPw{Zm9VQvy&2?8BUbDkA-Lb0;!mdT+`f`SQmyFupmc+^5RJX;O$TpOeYnIa$7oODdfbC{OTxzH(UfeAs`a zL$9x&owDw8_+(-#Z1c1(wWFFrLBnlsJ9=nh5r3XIvhUTk%cq5X(*mthbJI~ON5v?$ zputzuQB!sq>R(Vd1v^~5S7CCV6Cl{WuM$PVdiv4J1sBit-5W_Pk=Jzh zHd9Bswwl%E*P@U-g6@o{Kz3P8_hzF_@>^L`9xOl$bVBnf`1;uqmwbs;!$@paX?7=cMKImJ z>r=oy2W%JcoMq--^=ctGvSKz*F|$+)9!0F1%`%-mH^ySKVFPidJjF_(2!vQ!kLleq z28fs0Q;E-@(d`7EyTNyh>>mxN$VYM4WR?2P>F$08`G)$OLFzp_6>xzpV~vbm_dr)l z7uN}Kei2qwW%9p)5Q!Z+a40^h-ZBnOfvEM5MJcQQ&BO^>q8ilcPb{=0b$h>jfCC9k z9{=RElWV6uSXzVpGseDi&|7C2jBhwYhdp`w6_qC*n=*1dic=)bx^qy*3^CW_&5q)V z+cxZcHlYPRK*C+Iz4I6hk=05;ujqD?v&C$B+`AG8(Acz6?=8^N+#tY+6p*fAs|^QZ zduPGf-Yuo4kdx%7~3`Rv5k5Bph7UIJX0W0Qr=GcE zYlBX^*;$3Xq9ABr9_R|%Qow?%s7Z45%k?|YO)+>pNMdvjeEqVQj=iXj>Ipz6B?6-9 zf{L>7*et0Y(E4ANDarL#+WRANX1R;b3~dP2%CvtIckx)yZhUb5;-^%=To1Yu<7^~C>uYjMFNF>1N^eLMiRG3+^868p z0Tw(rQK(!fZBY_1E%eN?!q>{N&=uHWk{{De-T={fE=+NS1J&4<%&U&6fth31lM^r@ zutpFqu_QDr`IYkKT@L}d^{tDv_aO!KS2}%mdEjzpfSm!fbOgl*R@b9CDX%`Bid?;K zLAnxIuOtQQsXNZ*8Gpr~<_s@%7W`e`-K^+k0w57B=Be8`?S5_3`$dB5PP(n(?q`&v zi8I3pe@Ihz_p1lt;J8Sv%UhA?LRSeOMI3oxyP4g{oA>=}u6(r$Rl|>8#Ml+DSVar!R6z&;>tv3qHz~PLD+Y^)ah-g$p0d=GlWf?)6SI zVo$h8t2#?1;Xwj+Rb!nK8hd}_b*g1azy)Q%Q&)$X@2;>yH#)UOHBOsy6(uj{*LE}B zswUPpx0?4A-b|8ofJ}*j6^RCQXX$3X^F95xYWMI*l%&AbhqWwDPj(kz`;@)$!^nfk z$$3MvvAyxKdG3XrlwUa?@+AXu0q#kSVc86dT+ z-){v^R-Btj?^^M0`c1wgaPP-QnzREqXN*Fi2kl3710ZEZp&9O?G;ITQx}cOp57U(+ zHafSzDx)W3^>^P_TL8L&7psxV3pL{DIBt5}w9|%soC8)R3Gm;>pYp)=|3K2|4CCM; zz=^DC%oJQ|nTtx(%|pENai(Q(;XmocH=324Os`j3j)8i z&CCGl{9kc~BQ&bfqvD0>*P#wM!U)h#{j1@tzT_aysATs$}2yFRVRF^aWGuR91-_{!1 z(bo)Lr^+1w6eJ(3?~nx!u&X!|xhifgB*R@4nJe9U;1CRb$zmgi^Ef-}p5}Nl^9Glf zriQyfW(zQvUzqTm-58&zqGlw-+vYiw}nBp@Kj?QCR7FOW~ z&z`qiy^w#&G$;>iu8y2+3j~xY`1H)8;Ra|JN_(FulA)Y56$|gPasq#2`ai%4q}5w> z+W46}IPJa{p4oXPoj#R+Avp^mQ1xSdpSaoI1Qx6Txyjop%y-KkV$`uNwQqn7SfQf( zf}y_C_uBif=QKiIzOrubCmU~?GNb2ger+Se*tmUN8_;)ieK}1-$HKtdkr?auv%0{M z9Eh=)Dwtnwc;cp<+6AZ_D(3P?N2+qFEY4U2i<-RsMpgl7MmO7&XMS$@ul(Q|G{3Op zKNmc5+&Q}5vL`|1hHxua(ch%`Kyt%@r73)uZD|T_Y@xn%|aI8z5F}vN6ka_sR3-c>Gc;Ab1tj7%(HaJcN=9?X0 zmkL+W@erzQDm_`1KK@vQ@wKV-`D9ESc>Pc=5DsF(A(GJ5KA#cal)z62N%LiYKnzQ# zOXqD7#W~kaHe!08W#n(GP_$HJmoY9g2}5WRn=Y$QE@FWAabd|DaDZ&i96#ERR<0WE zrUm|*ml*dm54_nOdO+Y$jaP=O$O{}5C2fFZri4gBE+EY$g9YH}JMb8VCeTxtw%yO~ zuNmUoJPvwn!2ky=_|CRXES9@SbNMH+Ie+Ixy^`8Kq~FZ#ueyM+Old3IoKM^6f|zi! zqxBmMw=ECv$KuIDSkb}aejtP7ZtB$mD%0`EZV3Kc;Ypjd_AR*TsUhb!5J8A@FaQBR z>=9Zc0=S4~x2_=t_YqKvROc&&0|9NDXdu4x=jwxp9)p)!Et*tm?`NCVireLHT5QCe zgsxFLo0K*x^xbQ1IF|WwtwA|)mUz86L46yV^vl)WM)6`i>VjkoHoZRR4W;~LKah^K zy^}6>6=pKx^|QG*A?O4gX4L6GI}Q6}WnN@lg45FTS}5!RN+Y}I^hTckQU!S+j4cJp z)D(Ss4AwaO6ynr+GTPZv*k(uw-Hf_W*+b#^gj452=sg9){fNp0oK~#&D+oHSXr1Z{ zWQ7?V6=?X*DOG0!gm{2Q8WeM!8dZnmGi4`Q=fkzRSsnWNMvq5Pjd(2O=3B2`-vn}D zYVRh_Lt^WP*Mcse@ciLLm7(M;AnLVN*4EyHO3|!Z3)_Wnk|s{yh1V8ir200263IHv zxSY@=+dUX&=ipGhunLp;q>@eXIn`wZz6&3*>8feKjk6)G1SUNk4bXfSb0I(^xZxea zcyZnBk~yFzwU79rP5DOPP+dNJCLo_jtydvfCMlsc`bDMc-TeUq9@9yuQN`0c0duqf zOf#w}yrf+=-%$M%h0+g%Zh8&ij>*R^J=-yNhyt%GTf20XEGEgrF&N7Y`-R+1tIazk za4>xxLUv0FN1O&6efkOIH>T^I&x%~lYnrx-7OeaHgtkE8bY(O^kC~SCgy~jcz}9X; zd0Xc3r$pn#96u+bl8(oalsqz;wMn?uBslIkFVy+vdZ!hTSC`=8ezylMC+#=M7+##$ z4I62j69qilLD_Pnl|gM{1r^@F zDV-blUbo{(V;Il8_*e*p)1`hp%Dqsaz8?`9ftn;ndYC!eQ7Bs!pP)rbSRS$)<9o9O zkj`IKFAEvXrIj205yG)mY!lC|PdN;Ew(W9#(govjJIC4BF;mDit%_*zudv?+EhGJ#{TjkUT>q*eq!Uh9rg!_6!zb%m= z)A(UbqzP4P(WV*u3@|AtQhpmSl4+i2earx~fo&?Cri@0LamGW4y&8~ES3?A2RLpFl7$P^WM-35xmr!sgH z`Y1is>th2Pn-~YwfD%!&U_&tsrf!F{6cgyNsBy znHO9;+!0?kG7juINS2CFD!1Nz0r%VN&Q8O6Htl9gcF?k(pDT40%!kYm6l5(Ambr)W zFAiR8Em!4iLK#zDVR5}UDWp>FB_5!-*c{<^5Qz6u8=NSGK#=0jT_t!~_d$VT%Mx5h zA5rTD7BM30ZfS1IU9>d5i5&EgHA`y}Sw(vG3iWJ{-S z)(3`&Jt->XZo&;Oz#%!tJPWO{STDF{q8pHG@s*n&$exY!PdG((+`p09h>EdoXBN|& z$f4Ja7o_mB!wQVzXQ)daB-c+8;g=ftILI*<8`>vCy zwi|jCuSCCiGrcGS{TEPk2MKX!^zDcs-yMA~r<}Nxh)niTi0Pe(XF>^FoO{8L zdOZdyED#2GYc}Z5#JKq=84I;9C^>twW0HJ`sm~=KQOgc>3`I+CY2E02oP2Mj*)>I! zV$xio04exb)E9}BdIA`^STx$T?JPTybfqZ~fZS4<8K&y>Xx7N@nYvy>MdQs!8*YH@ zVjD8;Y-k7F;sCT%DRwZY$O|JCg>_nwscl^So+x~{vSf2CA9BlqLS>p0$a>fQ{OK()FX4 zn*O(M7bK8OT>59DQotkNy3sWbK%l)%OPD6MFFM_QeF&x^`?tDZQ3n78Il{;Du zHPSbCxb(|W`BFWvo_{N!4mIYnz2Z>>bgPzhvP5j2>N~1+^z~c2ht8HQ{Vgw`g0Xiu zbti5#Oze;qMtfFZ>6W5pW@#=Mrij8uCR0U~=Sl(Nwa-%lYjt)(MepKUZTe~&8Hks%;=6J}7cX{#1Wla)?4PC# zJ)|Z4Q5uNgN+0-*R8Iswq{nqj5S$J&}&kDJNKS*1MrwO&Xbu=@t;+~Yik zaK7}GS2P{Kw^e-%5MU0XN(aTqvg2Exl=lyXba?Ch(0mKfF1kEAf-kQvswMcBq*7`( zK`=Lou=m(IfIl;b0Yy*)D&}f!2bwQ^gW-5hXHk&+LaI+InlPs^%)oa3Jy1cMwCmjd0wOvV&Ar9rM1YbC0DNNmC&`X8CRrC9ISoyL1Xb`dP$y1O z3%60YP&VY``nkZ#Jc&JY@pJuOoPE?CUa#sAyWl3wuzX+PJ@?`YGV!u8&KWiEd_u=(RG!@z^a-Bc#_7hD{p}sv+OjdOCzGwgPf7`6^i<% z{Jfze#Q&rfgSTNUwQK=&7|O#e_|LV1!^+7AF|0RU)fb`qcG@TL2;QrRdn zh1%h@8%6EIgnzN~S(O^rR~#9$utoTnHR+$KfDY29NFs)aH$w>2#quKx<%VMGXfm!V zw}Wvia3t8lw`?S&MH=5%M+q+LGu^i4^4jdN2&C5dgl~rjhSRd(T_5Usta!IG;W9(y z!L1NeW_cY0#vAToqq^f!E~Xv4Z~iqWbNSSR*DiKo!5P_CXF^5Nu{3`}s-Gwa(JiWd z2S`hG4KG)`jayjkPDx;9{OUl>4Ipcm0U!ye>#dk|>d-(Jv_$4lXnv|C#8=jILd*uh zjy`_Z>l7O_p&LIDUJejlOYlmxx2mHVl7>5?Dwlzk`Bl$(uIDXe{{xZK<@cJYs~Vv%QHyd{JK< zSFPX=APgX;O~L+D#!|tlCTnHEjtu)%(+k!I)(!|qnl7ZTs*>>toO(T3WvvfGd z-SY9r^V2Cja(1aqZBf&7n9zv(ez`}C*^vS2=ilH`oCw)i#uVavspa%g@rzZR1u$N3 z_1Yeu&Fr;(Z8-&v{d~K`o*NIQj8O@0%b`)!C9iPeGu71^(m+S>3tRW1(wWp1{#`K# zN@3{CH?0a?$(^Q^zB~uABDI1#vW@grff6^71BQnDd_>mVy3h~hKWpfdU4)F~&BJ{O z827cq$!PsnC!oNm7K8|R$T^EL0~z@kFB`tXpiLX7uuo$|Eq^JrYA9X|UTxyb#P^tz zm6yNBL~jAhP7a-$AK}7pg+D>5tm#K6esL*}6Zn8t9dF#Of)1~XaNO9rMx8U`LkM-#6$!!w#QZeu@Sr5KrK5_@m-5auIxQRm-YoLrn`^PucQypw27DH5D69 zsFKQuYsO2doH4VXhKsAzFW6jD6k6>F-+~2Bj(gqP>cf@`zRD0Ro5&X<98si= z3{TovLy36oLvRm|NOG$nO2T6*KDL4rR-_ z4n!Qmhk?2;q4HxtW~J4{(3mOz+W(Y43h1*$1K85y9GH@r1+YPWQ3oB@8VOTm8tw{Sz3=7=mL|Z7-b~ysJVZO(+W7do<)(#eeehkrQnr zJmJ$_V1E$5>oaB2FbRvIe)`kK_TVNmn?5?RT{Ckna4zQ*DBPU7BSls%Ymuy~h*KQs zR(GQ64~K^>xR9ctatdc$&sz5*gsbtSW`!bNSp!jpc4L~PJ&lf!2&O)~qQ zu>24Kn*1+YP6pp?XHInibz%v6`Zmy8N?8^43aj()q*%Nc?po3tsx5vu)(kc^dWZlz*scd#(02?Y z9_g!6tXaK75_4drhEBX<5cos-S3PI!0_?_;z>{8#27S+6#p-Uvj&6oGDwLK^`p|$1 zM1@Ueh%?=k)ZmW~=fz`-$hdm4sY`g!%JrRE68|#ge&~18ZMS}3AIpNnd#;6(u-D{M zK+eKq05u`-CFXcOH~J|Vt^TRow+%Sv1f_ew2qeGQz8(V(-WlZCOQrwU#I(}h#-50I z!+0^EbS?~N_`ue-PH+agqzC8Qy0?`Qw3n5Jmo{I!NM5}YOcN=z>!xoCl$~mNzI_PT&P=8)eGRyX(i)sV#)l7+*Ee;N16{)g| ze+5r}9KI7$P=xbtPFq1WC=U2eh$JPwdxlBZjaD@IyQ#Yd=^xXQe=qtE!vjzYpnYUh zJJZ_*U4bROPJ+JnzS{W{dWrYqqh)hPk6jn?@UjY?zC0#n2KJuRCPhkxBn{o#0>Ofv z-+V=dH|3EK%j)0g(~4pT{#*zh_D!ccF-L$yzY$8(H@4`_&EU}Y)SsuIOC&|IC|Yn7 z2yOlJr^*N`p52KVsJB-2)DaSGy~E#-(p5t^7sani)39UGpC>!3vb5Lm{Rayw|I>Gb z&;W0^Y4b~CCq2LOymeiw_MO*V0xQ!<022;x{TdxHfupqPz9=u3CHI#B!IPezr9BoY zF!$&Ryn)m`X5eaow%-X4a^D^XEA~TVb5~_I|H45lH;V)LmLMBnwkx2t@$1|9mf$ga z%35EgzT$9L`BSM_uR3}_AjNI@%)DngW4pnj2f36e7to0&}NwrwZ)DmbPPB z249ia9o@w|B^+u7PuJ3m!UJtRcaCn?*9BL6!oUW@*4ZlB6zzuTeIThoU^L!^&Zyfn)ccAc{=UPl7>7@UIb2zMXGA?`1XUY(WQ3fnO7uI6)8Y62mh%l&*7HZiQ0gHGbA^|a9rr{*zPH>x&}c&4d;Cq!?!+xD+EVB)>Vx?^s1~W z^Y$Dq%TOh^^n@#v4UZfMA76K=G93;7NbQjdSD-=hs*4|oq z=o;}aYc5Zyp>2{@4f}mbRnKPj>3`E}f97$JIkn*=d(WLY_A#r^gu`93fH2VnfcjzP zP+;0=ENV)Rga-UTZ@X%4I^#tGW*&?*Q#S_&o1TKXNBJ^p#A26gw(SGI3Dw=p*dby0n| zr>{7*%PySm-vF)O-0^KcW8hUjzU`Uz#UZ_R31=JSg;pfE62~z|$AY17u6A ztm&j}WofTXOUn#;ORRTvm!TPhCDxp@ApbQt7+nA*$Qey8(6NCPPBZ z71}6$3;0*%yk);;5F@egLJH&uylj}0^d-Wf^cme46OyX!V4?CUt8@YA`Sm*a3ignh zIZ?{q%*tQ?68KmYgfbf{42#J!U$^T4Kr>908g@yy6H>iBrYKrh!lgCAlefS1l`1GD zJUXG$Vbo97ayMY*R5tqkQdx5>^>bO5VTEq^41ZubuUF-lVc!mQpcv>4WLxyFnr9szx7y5&cTo1qAye}mkyuP&2mgw4aYP|y4kzutOS4@`f- zN0c=j0mNk+npw?U;SmmE*}Fc&hO`i}jDI9H_;vE(e2X5j8SnLRSVL3Cces-FYAx7mrSwX2wczF<@7j>35IE4_~MLQ-0tgAkoX zu9{8I0&lNQbu?O<$DX#>T)y)dYuYZP20_L`M_02A&PoxbGfshnSCb_XXl_N>~ z0x)=*RjNL;fon^yO8`<@EwN8JGP?u#Kzn&;9~wh-3ig#|Xb%lZEP?I9QPy|V4 z6|8f}iwHQu8a_M@KyOImPg_2BM0vC*fQ7B{CIC~j&eg!+KoNhDHVW)5HJI46$GjloxKhfMfP)jyG<}vZ= zyCQmh!3hgn09sw#r57OSZc64QI0rkgmR_fAP8v^^bz`9o?{49GT)}i-?fIwNps}y&mXE6GBb0z>Gn>a*lLyr{3J+xTO8) zCNS)6#N!_ENM=0@=tc$CWS|#Kldo3_*5X_D@_Ec>mY^vot*}G1Z55cZ_;kEz_=egJ-OpjghD*RHXZDd?kb%5u>mO76}QL z%;6klXNA3;H7$92A$6NDgcb_Px@5E=GH7(7y$o1!oQ>WvbG0}x`BhA(?Bx^G(&#kTZ=13xDY8P zq4T#3rWBm90KdQoC%=TiYW8MP)hdNuCzp<(99efKK3lNusr4@yU{G$QLRue~mPoeM z=Z9|na2P7}eNkV2wYyR2zz1#jg`ys>cUT^TZC_(ybVQcdPX+qt_u8X=l7t(jyly8P z{MC_i$3CN+FA)cRzAn)3Yk00^Zp1Gw6P|P(%V#SmZQsm01DA$?dEX_WEfhum87!&3{JM-@NpTcousH207oI!ox%a6O zBlq>*WC2Q*)8?Jfui{h5+=%!3I}eQC8!7{tm}mU|*V%hOHQ8-zqo^oi14N|=1f(e_ z2vVdaNJp9of^?-xM^HdoBGPN5_ZAe8P^3#o>7CF!N|De7LJI`$ihg_VbB^b~_l|#z z3s_;~x#oPHx!!o8C`x~LP%i^ciWhD{k-#$j5^74{on;{f+OpxaVkRqk!!@U1 zakxAQvp@rMmKAkMf72 zwwuLcbxq7^juIKofaup8(kQ$o0hou;%B0u`*Gc0aTwd|Fez1Otry>J0JNv^|?c_Ppr?)RE%aa zW}P*f_r^YPSDilhB=*RwaVYzI>KMyCwX#>67Ct2hL%vswsOQJV}o(QqNX23a|_ny=ij^T<}X3-nV)^d>{X! zv3i%KGcCDawt)UlK8*m&%iHLSJRYl_6Kt0l^p;2OFp%yOEN zgejW?w05ax-h5n@x_`yespcA<%ETgwhNC(Bq8nyij77-q9v=^rX3&|-4H5mXPu{G% zQ8Nh(Druun$5X0(xaloklizQwiV{uD8s2t(P*TZAXkAc(tz@7pU2$=p{r$)#@z3S$ zv)0R<9w|T%4@*_HXgOIIEc=H(-cf26Sf|Rfqn_E99`}9O+Mk)Hq?dW1%pIUrPBDlS z5GuWGz1%o5aT=}tI9HC3ubWA;B+|N&7e9O2!|QCCw^uD z*91--zP^&m5cnKY+tTFfH(E>|vRyr)>4Je_;Lx@px19DMIIRm=fovhqAYQdP#Agng z>E1Vto>ixx&264=L{URsoQ zn%F9P$S+rdV?}B?En97~E>EPFeqwi4x0Vt|47BG4xM1*XuVf%O5JisCTKlTT`>Q-p z^C-ht<7r(O14=cl+pd41svU5iU;fs>^wa?FpT`@7v=Gz^I3?U(KQz9jlWQPgt|y}e z;~KCr->H6{kW^{WDFk%+{1_`*Tk-1^2KY%Df1Y2wUB*YOzM;y>!@M9P=@rP>l2zRP zuTy#F332O;gqv%1T__85r!^Oz8&5c;-4qQR>WF>6L6LQgxWA0pG+(~?`_H2eQ=xB{(`=zat6Q9L`pd?; z*Jc6-qP-R&?caudL#+*@cBIFDe)EFIWz-)J3{tGp@aR@G2Y}@Qm0~C;G2mecX;yX; zi=EL>gB|WrY}0HM7!V%G>3SfwD=F~lSK9A<vP>AceJHC zK{K=i3(?2zK&d29gPuS!PS2lNuec_<4~e7XOVaV_tL?LC%O!CL)j3O(=QF1ABLr5Z z>*qBLDZ#u9N;4p3H0>m2epsqIU~o7=a<&-Ji`+}Y9YzSLV)^fEGZef=SUO?mEk7pX z$p{K!Cv{)xJo>!|bXG008foby69)^la<#AR<{pKA?6DF9(pA@2>8WgyAAI(g|ax1BRAQplLt-V_r`U#wE`+LynRq zoF7D`K4x%gsAJLcN z3@iI=dY(ol(29%1c|h<#hAGTK-blgj8s0S0RQq%LU^>>KXJ=@oEx;G|0~{+ahMizZ7YZDzKO4(DJ+RE6HNYjPGBaL=El*Kyh1SU@hoB z?T=9j37-)74vFR!eK|Z6II4Yz@5>$X_ay&$rIG4K8ixiS-aCOo6+VG1!MICo z&7xzJLrOQ4!`ekjb$KuGGnX1Jw}0Z}|8he&FBv$4x6ro>Aigc(&lBSu1zw%e>*rYe z0^j;Qp&m%|?Ahlb7J{OvEJ)Y9{}6|!8rO#o*VQj_BNG%VgL+8T8f7Pev9`{X6OBwAOQe2t1SaA#NXo@qu?i@bZRh%BNM7ZMt?I zgmi7m&)=5; zZJjS{@L!MAS$cH~ltY$RXsBmJPucfRvT%yYpznJwNmpk-h~J+J9`c3Xg&ns7(|GmC!YLzwJ8BCbHLw$Il9*^nPK*f^S1<8J1Jlkh(U)`BQy`?Xj#Xs@EQSt(*1d_3@;D+{7Qh39dfG`{ad~<80Gr^Sw7iNdvhFX@paSu zUqn%MkU<~Mn#ky>7+u6rr*?WYYXRKKIV=+r&3D>$8@yxX(E-^^a&Syw;rWl31(idT zeA*txlfM6Y6|;2dx3n8wA#hV?@6M~x`2CQ)i{}cF#Ayi;vS0K0fNcz$okBQe;{39cmYOZK0fESGKyWKy66iPw9`K;14H(rp_H1{?Q~=nD*1-N9F;X0YaLv5(Beq9L;8ZuLGJIM^0R37o?UX zQ<6bil(Gas8zXPFlMJ$YU`BE%{>YdKc}Q|yn4UE z=QR9jf2Y=!2Ww6R(N84G{I@~+vY0}sTJ5E`;ZS`{9aUf5(i|^Oy(43T|CAEEIDsN zhNC9lUAE)2Ueh=~)9t8L(^~9r)Xu1Ao6>1Q{zUI!8TQq;S$9j`q~&n|VPbqECq%T(tal z^{%Ea6aTd8!=3 z_&{At@E=L9zx^XA(1;Bl@J!&|Xz=k~3W-Y|*Kl#TPx2=IBd`H$pHrx9#zgqDDGUXB z@5r~tFDDM;X@yDL5?71jRYNQcq{PEf7d)0QBRFpwp;~{nKOZedd`9f8LFgeOJXCq> zBP=@<)14l8njFZIqKlf;Cu1W!431ytA59R*_?%PkX^5(_y zqm%y#MwDVw`aZMnbm1b|Pe!oX-aH6%l|c(`e4;2te7|IF|F!XcVrV&t0X6An-z!Kx zF6CC9C#Gv7#7y-RQ8$G8Fqa()_P1C6OiwrmVIiSYN&V%g|BZubjHgJffFB9L;=*oq zjp4?d7gI}RMlC>6e-i51Gm`ej1}GXA=(fTNQWg6izFQivW5Yw-$lj8A7){)m6+#V~ z-*D4J2ac>f_+hY@!SH_eRAA^{mct^Mb2Y2S6LiyH-Frgz`Al-Axz{L7-b>pYxY7>U|nf6@zV||nB1{rGs@n!pQ31t<{JD*%aZC|tC)1h%Y z6>r{Ics33ZtTA)mz$EGLFW5!@#|cIrI~0>j>K=H$>GL#(27^r=>YieI;iiu}+&P*{ zd(n=19L-PO&6;O{yl)M7Lw2c?b4Lz2EjhEf-{0x&0fLj~{ z-Op~mB7+`h#^1=xAC`g{U)WHhD&B8zXF&1xaSRtDp0!koMwrIoxc8xIsrvG;_W4Ad z)HG-Oc*2}0KD?*H{Ke163tgMJmMPE*9!*%$h-Pt8po8Fm)r4Q5LnujwD~s3Mv!^9q zYMzERuVP2?jRH=&FrBJeHJ{3Y@;Z-IQW73@TiOa9Mrz3DnXi-(`Y1ZZ29URF+|rv4 zy>Gy&YkDd0&%;iq_LmegTO&aA5taVpxYaR(p>`D0KUY>KH$98K#n0tz@$vOp~z4DVnJ62n}_3Y%-N)=@cI`CtJsp0l`TlPffG0e(4zT22*hR$W-$sZl7lzD1XEouaO?(JIF0M#D)VAWURCe_ceEI9 z=TZ*oxIy0d-1tI0s)Xxg>4jV#F_{_8QcIV>RZlHgAck!2nhi{{V)&|H~k#`Lz2nsAkYwJx4!w9u->ckEQ(VO57t>vbZ>5k1g@f z!*n(AW6Kd+=_#;?)!car>RDavlL`>hxV}2v3wYbXYg7Qyk&g}nerPX81v=!BqDN8!9j^9%Ay=+9dnxz; zROA{T)HoVt-F~acg7pGr9zS;WM1C2gDl$OKb(_Tbn~oJjxxL$iyAErb`!JI z$~?cOGx8ra=8tm<=It>(e`^sfn*y~p7%RG+iDON*r!N<;wOsCt`PejQhRYC#MODSj z-B*OQn=qVGtv22G2qAwoG=AGW=0nGAR8L>b4}UGLMn3Lf9UAIf;Q*+T66|&w(~Edo zcb~+o34spR=y-S|C5OHzlu>{fkhKV6MTByYlTLzRY*sX-8fr|{=LD)ND37m%jTc{x zE4)AN3xbguxXmrH*wX9}lc{sVWK5gF6S_uTb|#FC6%l$p{jh;uw}a6&4484?F&dpIC-FsA@0?mUiDQKB84;KO;0PZghqWDRWa585uZn zNCl)2K|4&sryp^GPJ{8Qi)2EXH;pucy61B;AbwgR8XV2@FMUvV`TSn0>$9IQ{VY?W z%Q%?YFHA7$w;Yt65$;#iT<((k2jc@U-}a5~5tNCQ%){E1D)$Ub;)MkIf$N`|cxF67 zg0=mkL>%EKk3-$TH~*ldq#z6C5WyIN`X+|vFOk8-DRnPqF=b=XKgoxK9SI{diebC5ieyOm2EcMqUyiLKdY0i&lYn8 zr`eqc6WdtFFFWVX`E{a+I_c=Z$Nb4E3Xy<UIE z?pvxgmpAJblM3uY!i}|Fp(~Lj55L#nbg1mxSV$0XPC06*P)k}9+yb{xHf)vvh>)x@nNw)#xf*#US~sHq6PiB*_B~yh}{zal6OE^*JhF(KYfqS?yZ<| z$aRvMi!OmF)e&wgL0yb9Y_%VRDxmvJ82>kypD>;E7Vwtt(vj@YA`BT|ha1LLa8 zgN@xvD=Q8mro9N#2Mb&Ez?xT$$9JlKSQc>){qaOL?e1&h~pPt4IehZZ88xH^CuPw!L(Sg7uL1^-V1?Gb7a>V5bhdkHe3K{ zK`9RoJmG?>Ie=K8;?>i?uM4in4LAXed4D$bnn(vVK3op%6vM}7_g)(~BWZ1@bE2RH z_eqfTHHT-FJBcDK(3tXmU&I&yIOJeav|2@R(Lel$*tp@kcYqi@M_wCGh?S8NEQ+L= z26!Q@!xCRo6Nj}c`{P}0Q06$Pv4m-l?kU!6i1sjDfWZx3aSa~18HXnG3|Uf z0@6-$O1c}dl4H-}LH$M(U3v&J@O2o5fVC;JRISqp0R9GQ_IUm1Y_Z#KE5e> zWMyCvi4-mHC1hyjl-k;h^YvF-@X))v6NQ8jh2&}Ys_dkr<$xI({|$MjLAGj&;}^Oz zLa02m;d2`@LwtO47VIUUaVt~&c%q*leyCKmH>1?*ciryxa{lgg5f&B99yK}5&$rg? zqtwp+>`Z$JQYCA(4NK%Fh(PA<)tP!*+Bi#k4fl9-w+#^sY|etfd2O&Q9<}+m^_^BA zek9N*&AOXM51ym?024D^qI1}L?FRfsGECY1kP59fC%20%I?SfX`#F6cR@d9hc;?iQLzQN#rIP+?j0Ma{95f`<4SJZy8QP5UVq zr_fr|fxio8BDVmL0~Ofk*<^w=`S;Vr0(OWLAQGXB#>c<9h%UeAe;JgM({4Kycq&NL zoy~7x4oeZiJ>kK;^tY&|J@uRk8*6>AO0jA@y|ui$==}DuVYJt&OR@eCx4UrI(#*1H zRx;v-g!|4)86ch}-@km&M%o)p{u@rrMaCP6PI11qUwVW0%XGk~YUz}l*2ZV^Wf zChQFqBlhNl0l0=GgW?730C`7p@M&Eo+=y}WyzAT#GSiN{vSRP;x_dvV_D9#;I|^Ga#yrt7s0o&vzRS1f=X3rc$M>yo(&!*SXwZu_Qs4Tm07ev~ z7Wo`R^NXd3UQqe#|5ijut!*EyQ^Jt}i+7Mqt%_jIyaeaH*i z=w2AytUC6X-b>drkijHUHTbtj$08#{UYU1bx$Prt%SNHM0M8P7mL^K2e!m5UEfR^<;qT`t#*YBa=X>P=lC~m{xy~9b2RgLG;C;)VRpe61W(#q#4_1o73K>c+X#ylYhr-TZq|#ipxHLu!+5cpSxC?7=DrQhYNFw|a1De^$lC zsh{t+(Zwkx&uGh_pU8qGZ?Yv51d{iMB)qK-ffk@CXL|(#-$xx`DDYlL=-xGG%azo^ zQ5csYD}b$9xT|^RZ2{tf3@f$kYjl~@CR@LSgdKf8>`~hdL7?B14i1%E*?O^E)l|2) z-@Wn}(m(}m1 z0EU$AL|%&2O!~AM4NA_sVIv5yzpPp!e5tL)6e+PAn}L*2)Y364?abRf+*jSKCm>?& z?MmVg2`QYFi*d9r(%()qon`jsMh)f=BPdXN2~hjB?Nft9)Jc9H&`^JT%_Ho=Z%{kz z0x_k*2BiF{SsqDzdY}L2-m%R!H{}nHm|b_``HFU-WQuheYVV`9bOm26d%`zZD|V;E z%)sfIr~`;cSz=hAgD{)^cP|phO{o&yC#m>HWVU~31}7$PgO3nghUm$z(&!$OsTVdW zFs>FV;A8;BQ-dXRP~@p(r)Vk+?+~p$ZCy}v`53yPfjLzQuWf-lb~?DVd^uRBPJHRU zc66!&R%uc_`ctoMdd;ozc8ai>u{g!)7vh&CRSf~UxuOACN(;R!4FJhXRUaa~(NG7u zX_9*6P@S_E3a+z}nPC1xcOEa4Io>8xmWj7uz!y&>^W*Y@;Z?J zFPOC7h`a~?7M++T?0s!i)@t151Du%5ZC_IJ&b_BQ;|H9Zzod6Nb}*5dWE6}%%ckPd zZc78V9D7exb(kQJG~l26k@I8A$9;E>9F?3D8f(WLd6>QU$r--5`s;%eMfaskbmdd= zOwyvJ-HLYGJdv^MPtV>13qI#nH>b&O*M<{adn^?z|7t(IlpKKZEuVV;qDjb*N)t2` zn=&z8Ss7py(yB#|%tW?U)E&P+s9VhhG4>)k%^T)Fpv+(v zv@w`|x)Vz_A|Yc&5IC7uzqT~4k@H?^;UEm}m7D>15akDkoT65e_OJm9-e4A;Un2`np0wD} z|K8ZV$o_C)Ie-f@9N06LgZ;WRM`XPKVNw8+#5ZRFMgW}``!6~#ofH6CR}O3NP`~iK0Ik56f4CbWUqI+}j#iJO^}h0=E8!MR zC_PICZ4B`M8uA2W({lHvevu;9k{OX z+>ZZ;Sm=_%5sAwGE8++wKVQy;Bx88>C!H3I<_=$hrzvM3m92|x+WkC*Vir=}IpB%A z1C|`kezaLoPzC-LTMmdVd-4B;{QB(xR@X%gpA)3xS%_@Oqm#5me%rY5WA$B7L}zfc z+(_nkT5{j)`%=g+R;f`vBdir;pZg^Ow^E_t!Ko8DZOYfiPd&>wHw3odVz6Z3sExQmq?*@O-yLgSM^u7HTjwWQz3WnEc~{aWmV<%&u{@#{~}kG4ZsP z%Ml&QgouuQ|QC;dfoy_*8kD-~hXXW**%X-FRKPfp@<=PhEED!kk1Y_cbMcu7-o?H>D2wj?n zJ$`qns9cpd*bU%<82#AQ&UGpmHJ_?hl(1!+1wnx{zP+o!+5Mo6D3xFS{->^1J z$Te85lc!DVj3@-a7j9)+w19n?EyRL5ywa%Nv`MRGv~E-@O9!u8>bz3oJnD3JE0aeq zRm)!>PbWsW)P%K8B!4^}QS!6N{-YBXX6*qO3AAc3+69#3C$yU@ebGaEUyputcix|A z|3VKN0UHvM^1xpt%sLsM8PU(Kjwe<%nd{1)wUaujO8TBU`3xY^h6HzTC!&Kpr?Om{ zk7Z_j5&m1J%PC+2nSgPy(nq$@)=vwPEYq5X=_Qux#DLbGi1Cs>_YzMcc>%h%4)mFfA-87tKnZ?EwuRP>(u$AfK>Q}- zSHN(2p}z9d(GvSj)WQuTja33v$O{oy`0m;YYXH3o!ozDVYCf58t6_xj0}D+`6@o}lDX{pHr9A4h@b=A&C450A4eC6-Q12}QY<+VYuZ=wxB}?*KIphj^qTC>bxm~>E97hVRMgy^bBRQw9&Gy8C%NPIz6Tpit$3xbV2o-R(B*edZ1HHtPrIyI)fKD7+P+ zm*AsGsRp{I)!ZL(sU&&C zU#CL16DW793UXukF8$N-G7w9W@FvPYY>pw+qBJGnZP3zEAo$DWi*N_C%t4uwfZA)Y zIK*q%Td+U8csv-PdnsSHEH9^MBHQ-t9(}+?$=JPoNTLv5WdD1-|9Rdj0u)EDah})e z&>)+Z!r%}+hy;IkeD&P#m!R(ONGbmLIZ`LB$a!XSdl5wFA*MkJ46l||4Fb)TCL z8S04~j~k5&)p{>pLESxg2y{H&(EMyjaq|w=z*y`y#lyri3mt54FC~~Qha**9l!|>g zQWu(LD@N_fE=O)iA&{Fl^^naSn;8ZNXWMzz3YJR-B7DsD``bIV;@HQ10VO8x84v%A zU`u|8Fye*v?M@{qf&b|F5dQ=ECm%Pzx%&7xAbnsD`0SatW{k>aO`p3Ygq zH?pH|*e&+HPWdCef{sU|N9RHAUZuVg9jAJ6!J|x_&b~2!3#WtIo}=)&ZDe=1>f*}b z7E49of3y;LeR0Sov#9eQ0fa9gB3|#6Bw!n!wvs$jjOv61_YILNBcpzpz<-M77@Ow!hiI zJKrUI#A;tF^5B}Dhr{Tb*{;0O=ba!Nev_97C>d~!yjsj+*{dVn$=X)unm6SJ4nAa}f-2jgyqH_tPu5vii@#=vdXdZ2^Xlyq7 z44Y+G)El}dZ%3rlxC^Rt za*Nl_Y#JSxS{Ozy*YdR8E;t#WHOsbLd)SJ8h0asr??A&)gZC9ZH$A6nJ#zbBwUa@V zqrY-8a#N$W0#oF>MeIwE27&?{)FzaOF_QCsFJr(HG&P##ym!1QChp9F>T132*znNk z$Sl@CwRR&k+H~38o-@&|((KUa`a;^3va2UvGv~<~?HJ5hg}7nU59Z&2?1KpPNM9n< z5X;eAj*wwnVoA?!y9`L6QN^bW0%TA9=1WbGP$S9EPqGuYWBXc&sF>;u!K$sw5Pbp#{5MApz27p+1Tl zrNh+YYOY}eF%|0b)QuVr&nlIJ6^O-rt9PRq>N8R^KBm$@Awe{#QR~h#*4yGcTosIMlg4Pmeiq~SJLDi<%PbHX^39deSEjQnLP%a4{Mu)Y zLriM*8~x!F(j3MB1Ize5=-TC~p|98!#2TH*arM3V_2b=Ptm??{d~3#;c0>2$zFfP6 zPtSioW|2W}giI+L>|oaDeXgPe;k32e)!D8GtHSd$>a6ocN?%I*P7+a9b*y7>ZDiTp(X*GSXg#SM;(5~k z=g78dz{TK&RD@PHZ1+ON!J60%Qq_8M9B8Bt^s5SsfwOd;i~AVFEt&|=T``%Rsa@uMHylRz4g_%+KJjXIdPeLd zSYaV6H9Zd;8^Z}^^G~#j8(yZ68lO}s3bsi6!BYs|J>o5&yeWLV@8;@s*nygE87^AN zu`U^8G})pEGQS_#e5R!LyklpT)%C@ex?{q-3)lIXq4G9mqcM*7_=OglyNXIFu5KY0 z7+(5_69#6B28X7@Bh^IEx0pW6v_Bo6%>fRnxR$pw743lDOP^*RT348IUQV4^zii~V zxLx!-HMDAEb1^Hm)yTe1=hDIIiH$6zDxGMxWo?Z2-j5}6`r`AsLJ04oSC}e`r9gw! zNyndyoE_MX?%2WMr+U!CmzByvcq-UK12r1@>H@h*cA+jNu^m?t+Y#~&-!7!{q)Hg{ zrwnGjYDBh9`V-`I<>sb((TZb72f4RuF!b`SiQYHY%K?B4&J8Z3t5p(r-? z@%_c!x8!yw^pI?-5u4GMmF$M9J{sf3G|&ylQZ49@tsZRS=O$mIx;}QsAH{66pedkx zcSYd!w^W`RP|cdMZ{fPW%NNz=?Ld+Cx_X1$1{!n&RqfomZs>+B}K8Xv!xz{c>OV53mzNF;IkAlZK?&(O+AT=Qv`?n14 z6K&44-I0>Y%=XNxH`@D!q@`?@&}w6Y{^u4+B&>&Sj~aK_&eeOvxp`$NK3x|veu{fp z8SSkWlDNTUb!hp~a*8k2Mn0vC?ywhGEy3ssdwlTLuonwc+CHIYDSNz(AVBipN2-a- z4F#;7T){_9n$_2*TlQ7*beJUNDiA-XFjRhZdVx>XS}g`@?W%hrwF6fb(Vyu_DdCG> z-J^D021u#uHP6qzAjGpCtdv?GP9Cr#>6!hH@U0(mS=QCVbnv_{nNbjEV$?F21C z9zxO_e@u{3+LmC(*TEkMuKYP zSI?mKX8SoWh(2)+V9Jfw!U^9}3#;XRHJh3rZClr`ZCA58B|sNjD&lntb-oGR@`Z6) zakYe4wy~?ZjMo}wZ&x+i%fR?y)1`|*e<+0 zBx7y#Rd}-|PoZ|yr@Zn7>gW4q4^Q6I(6jH+u5hDkjzwBl0}N;aDo zQsosTVHHa`N^^wSn`1i(iRe}=lun1`_$$Q|`5d4zI%H$$^Wi@=O z^CiwF&uSCP6RkrsUpSXyUFNH=t}oh3F}_IXz=m+$Dra37lwwmJgmR9 z*!7RrWUx%-lq(1~Da4{QWM)qbXBjkwQA=7a-Su+pEaYqse2}rnxjTLd&Ne>Lxh{>H z?Z7UdQIn-G6BlrIbr9=6YEbT%DRN4 zz7`w$eZH)Kz31h4W<0hzaHAfZF~FVArsCd0i);AhwB3u<^UP_vasHno$44eDzGpr` zTREOzF>Gzux?(p)%&cX7^|D0T+GQQPih|~A9(cu>unkW&A5)cyn6R57HZ|yJdYfLK zr%LxYnsf`wr;?bnE=TwY=GS!PuMC8TnF=r5XdVy>wx={2KF;+oSHEuo~`=Rwdrh(6u-Ts$;g$qZrk7r{g|!X zX8?AWUG5QZm$ErqN5|eQUCGwWDI2(9Zthh637)!Hbd%5URhQFTcuR}3Ue9T^@BA;V zL1uS#{qp!Ff5(=m68(MWI3Fh>xVx)x6f`RL$_*lo30Y`(C3X`-6I46>Cepr5ku#M_ zLenfUGpF*rHI0gfV2&^M?6)!5ey+16_R5JnwTByc^!&H;-C?QEYB0@-P2}IK&;_Hv z%&!ybSOQKARQ64w0QMhgtrj+bEzPG14|M)=!;nKQK(#20ca> zhsj_Upo{k_MDT5ys|RqSuw~d&p{~7~rSO)=u!j<&_|b%m!V?N>$1V3PSt@e7$gfrvU=WS`2s@u;+@A(8YZzxR84ZzyrCShWqew?|w|JCP9?KR)ImV@;= z&V%);MDdNihN8`Obh~=Xg`hfXduoEXTN&mv)=S^MW;-*ta>9MhxvK5bB$Vay2axT|)?ogQz6< zSm4Hb5l>O8_6%q6Qu14nDGyJFSqCIFNm#pHteVNZMB4Xdng0$8C;0Y@W{L?!`3fP} zz-*%_HlUy(|9E!wQsd#nu|bMDO*E1z0#Z=36J%4dU%9~toX2|j}N zOg`9wMUyPVkocYo`#xp-lJQ4K+bK=OySfMSEgWzw~Z!Lc`GW1a38+X9QEV&zqg z9CFf8fDc?v%1ZW~^FQjxcGnTuW24{^#&ZE0^OG)9VTj$MxLMVx)1uej&&M3+c(@#_ z&)bc2aeF@u(F3hUo6q)_SIb*}75ley^B(Jkg~6rQdyODeh$zlaRjWhS&E|eR-&{iT zc7SLf4)Uw_QNJX}11?SE9a1X?_~u2>CJJq!rr%pkXdd|AV%bYS#vlNR>1d3LPU2G& z=j!0Cdw0l>htK_}gK1qe{E}s9)vp=~VR?fodG8fefq(v5(&C{aGwsP$e#4C)dUsy8 z`bAvf-W)c%&fDO3DXMM?ZjJN&3|a_=p|{`)K?Kt;w=_69Dp=JbuiJfjSbJ1@br#tI zz8hCfx0O$;)R6Se*T=kl6BNW#yZu8Pb7lWr4mVFk6Keg^vUKSV$i?@T zPct$yZuG>dcj%}5t342cj2p~rm$vN@}Nj+){U$JIeTgvO}(Qo0JxTAw3wJ`A+%6M^0V~@hRRcEo*K8&~K=EHUN z*a*R)r%J^34_E$tR<9V&G|#!|WB3C+#3fFgk)Tz`bWpWkTW(Xlx`U#~N`!hQh#!qe zZ!RPrF{gTfbA(w5sl3uNu^*UdPl;pnLyG{YaV_{|k`weC*BMWnc-K>W_DH5~m z(`u+NxTBi0TW4WzrS^H zBlZWU@*4>_n;T9M5-;*9^EMqJRwMOfIUvfLj~55BIEvm&RsjP|tjSBdmm8&Wr{X>v{&fmm*FGG}Y2mhO z_*iJ-rOBu#($h5hiI(-KP|*zABcT(7`J`h)hYDbldp?-O7#PAU$5YJKQ9m}`x$S8+ zSh{7`kK5OQeArdFxsG3zLoMZ|k;jJYA#?r{Z9QorB)sa)s?&l*v=j-+X>;PU0EU7Q zN}Ub)bP=SwVf9hBBIok3%ct@0SqRV({*K$jj<(Ny6@MS)U6PiBXk|g-hYGSiaXtLBJ-NMXXi);GV8HNW$)XFcy{oVvBr*Oo1UNJZZY8 z-dg|XXz;(z2q&Gr%jf(}hU%Yu>p$lyC9{DM{FiQz%l@Ya_|JiVw(l};0}H7+h<%Cw z<0Zvj-*{j1#VF6e8m<1cTM>V90?;J+uDZ-$qfv65;Al=4?QjnNHwf~tU+z;qGhXot zyz$p)UXRG{@?9F#DGUCeGf=1xB%wCpRKD`}Xg);O&+aZV_(zQ2PcQiMyDF*ZRO-;^ z;)f3be+~GS^duXQN>XE#?XP*9Z~;ZmLJEfq76>O?|2$KUh#0(^9(JLutGqj`}K zrRvob3jAvl^~pdg7cI^I07d`O5vfAjEMf7mB9p|^Eb@Pt16(qIA)QHO>HfBF9MQgu z+ +(Mae Markowski, 2019/08/10) diff --git a/include/deal.II/grid/grid_generator.h b/include/deal.II/grid/grid_generator.h index 1c51c127dc..1015ce464d 100644 --- a/include/deal.II/grid/grid_generator.h +++ b/include/deal.II/grid/grid_generator.h @@ -873,6 +873,45 @@ namespace GridGenerator const double right = 1., const bool colorize = false); + /** + * Initialize the given triangulation in 2D or 3D with a generalized + * subdivided_hyper_L. + * + * This function produces a subdivided_hyper_rectangle with dimensions given + * by @p bottom_left and @p top_right, with the given number of + * subdivisions in each direction given in the vector @p repetitions, + * and with a number of cells removed, given in the vector @p num_cells_to_cut. + * Note that @p num_cells_to_cut contains integers, meaning that its entries + * can be both positive and negative. A positive number denotes + * cutting away cells in the 'positive' orientation, for example + * left to right in the x-direction, bottom to top in + * the y-direction, and front to back in the z-direction. A negative number + * denotes cutting away cells in the reverse direction, so right to left, + * top to bottom, and back to front. + * + * This function may be used to generate a mesh for a backward + * facing step, a useful domain for benchmark problems in fluid dynamics. + * The first image is a backward facing step in 3D, generated by + * removing all cells in the z-direction, and 2 cells in the + * positive x- and y-directions: + * @image html subdivided_hyper_L_3d.png + * And in 2D, we can cut away 1 cell in the negative x-direction, and 2 cells + * in the negative y-direction: + * @image html subdivided_hyper_L_2d.png + * + * @note This function is declared to exist for triangulations of all space + * dimensions, but throws an error if called in 1D. + * + * @author Mae Markowski, 2019 + */ + template + void + subdivided_hyper_L(Triangulation & tria, + const std::vector &repetitions, + const Point & bottom_left, + const Point & top_right, + const std::vector & num_cells_to_cut); + /** * Initialize the given Triangulation with a hypercube with a slit. In each * coordinate direction, the hypercube extends from @p left to @p right. diff --git a/source/grid/grid_generator.cc b/source/grid/grid_generator.cc index 283b553aa0..74b01ddb98 100644 --- a/source/grid/grid_generator.cc +++ b/source/grid/grid_generator.cc @@ -2891,6 +2891,77 @@ namespace GridGenerator + template + void + subdivided_hyper_L(Triangulation & tria, + const std::vector &repetitions, + const Point & bottom_left, + const Point & top_right, + const std::vector & num_cells_to_cut) + { + Assert(dim > 1, ExcNotImplemented()); + // Check the consistency of the dimensions provided. + AssertDimension(repetitions.size(), dim); + AssertDimension(num_cells_to_cut.size(), dim); + for (unsigned int d = 0; d < dim; ++d) + { + Assert(std::fabs(num_cells_to_cut[d]) <= repetitions[d], + ExcMessage("Attempting to cut away too many cells.")); + } + // Create the domain to be cut + Triangulation rectangle; + GridGenerator::subdivided_hyper_rectangle(rectangle, + repetitions, + bottom_left, + top_right); + // compute the vertex of the cut step, we will cut according to the + // location of the cartesian coordinates of the cell centers + std::vector h; + Point cut_step; + for (unsigned int d = 0; d < dim; ++d) + { + // mesh spacing in each direction in cartesian coordinates + h.push_back((top_right[d] - bottom_left[d]) / repetitions[d]); + // left to right, bottom to top, front to back + if (num_cells_to_cut[d] >= 0) + { + // cartesian coordinates of vertex location + cut_step[d] = + h[d] * std::fabs(num_cells_to_cut[d]) + bottom_left[d]; + } + // right to left, top to bottom, back to front + else + { + cut_step[d] = top_right[d] - h[d] * std::fabs(num_cells_to_cut[d]); + } + } + + + // compute cells to remove + std::set::active_cell_iterator> + cells_to_remove; + std::copy_if( + rectangle.active_cell_iterators().begin(), + rectangle.active_cell_iterators().end(), + std::inserter(cells_to_remove, cells_to_remove.end()), + [&]( + const typename Triangulation::active_cell_iterator &cell) + -> bool { + for (unsigned int d = 0; d < dim; ++d) + if ((num_cells_to_cut[d] > 0 && cell->center()[d] >= cut_step[d]) || + (num_cells_to_cut[d] < 0 && cell->center()[d] <= cut_step[d])) + return false; + + return true; + }); + + GridGenerator::create_triangulation_with_removed_cells(rectangle, + cells_to_remove, + tria); + } + + + // Implementation for 2D only template <> void hyper_ball(Triangulation<2> &tria, diff --git a/source/grid/grid_generator.inst.in b/source/grid/grid_generator.inst.in index f07d7ab060..13a3316611 100644 --- a/source/grid/grid_generator.inst.in +++ b/source/grid/grid_generator.inst.in @@ -64,6 +64,14 @@ for (deal_II_dimension : DIMENSIONS; deal_II_space_dimension : SPACE_DIMENSIONS) const std::vector &, const bool); + template void + subdivided_hyper_L( + Triangulation &, + const std::vector &, + const Point &, + const Point &, + const std::vector &); + template void cheese( Triangulation &, diff --git a/tests/grid/grid_generator_01.cc b/tests/grid/grid_generator_01.cc index 2904c93488..3360c61b29 100644 --- a/tests/grid/grid_generator_01.cc +++ b/tests/grid/grid_generator_01.cc @@ -146,6 +146,22 @@ test(std::ostream &out) if (tr.n_cells() > 0) go.write(tr, out, format); } + if (dim > 1) + { + deallog << "subdivided_hyper_L" << std::endl; + Triangulation tr; + std::vector cut_away_cells = {-2, -2}; + std::vector repetitions = {8, 4}; + if (dim == 3) + { + cut_away_cells.push_back(4); + repetitions.push_back(4); + } + GridGenerator::subdivided_hyper_L( + tr, repetitions, p1, p2, cut_away_cells); + if (tr.n_cells() > 0) + go.write(tr, out, format); + } if (dim == 2) { deallog << "hyper_cube_slit" << std::endl; diff --git a/tests/grid/grid_generator_01.output b/tests/grid/grid_generator_01.output index dfc9a0c74a..e0a2d90899 100644 --- a/tests/grid/grid_generator_01.output +++ b/tests/grid/grid_generator_01.output @@ -1585,6 +1585,374 @@ Single 2 1 0 3 1 -1 800 0 -1 0.0 0 0 -1 0 0 2 -1200 0 -1200 -1200 +DEAL:2d::subdivided_hyper_L +#FIG 3.2 +Landscape +Center +Inches +A4 +100.00 +Single +-3 +# generated by deal.II GridOut class +# reduce first number to scale up image +1200 2 +0 32 #ff0000 +0 33 #ff8000 +0 34 #ffd000 +0 35 #ffff00 +0 36 #c0ff00 +0 37 #80ff00 +0 38 #00f000 +0 39 #00f0c0 +0 40 #00f0ff +0 41 #00c0ff +0 42 #0080ff +0 43 #0040ff +0 44 #0000c0 +0 45 #5000ff +0 46 #8000ff +0 47 #b000ff +0 48 #ff00ff +0 49 #ff80ff +0 50 #1f1f1f +0 51 #3f3f3f +0 52 #5f5f5f +0 53 #7f7f7f +0 54 #9f9f9f +0 55 #bfbfbf +0 56 #dfdfdf +0 57 #ffffff +0 58 #001f00 +0 59 #002f00 +0 60 #003f00 +0 61 #004f00 +0 62 #005f00 +0 63 #006f00 +0 64 #007f00 +0 65 #008f00 +0 66 #009f00 +0 67 #00af00 +0 68 #00bf00 +0 69 #00cf00 +0 70 #00df00 +0 71 #00ef00 +0 72 #00ff00 +0 73 #1f1f00 +0 74 #2f2f00 +0 75 #3f3f00 +0 76 #4f4f00 +0 77 #5f5f00 +0 78 #6f6f00 +0 79 #7f7f00 +0 80 #8f8f00 +0 81 #9f9f00 +0 82 #afaf00 +0 83 #bfbf00 +0 84 #cfcf00 +0 85 #dfdf00 +0 86 #efef00 +0 87 #ffff00 +0 88 #1f0000 +0 89 #2f0000 +0 90 #3f0000 +0 91 #4f0000 +0 92 #5f0000 +0 93 #6f0000 +0 94 #7f0000 +0 95 #8f0000 +0 96 #9f0000 +0 97 #af0000 +0 98 #bf0000 +0 99 #cf0000 +0 100 #df0000 +0 101 #ef0000 +0 102 #ff0000 +0 103 #1f001f +0 104 #2f002f +0 105 #3f003f +0 106 #4f004f +0 107 #5f005f +0 108 #6f006f +0 109 #7f007f +0 110 #8f008f +0 111 #9f009f +0 112 #af00af +0 113 #bf00bf +0 114 #cf00cf +0 115 #df00df +0 116 #ef00ef +0 117 #ff00ff +0 118 #00001f +0 119 #00002f +0 120 #00003f +0 121 #00004f +0 122 #00005f +0 123 #00006f +0 124 #00007f +0 125 #00008f +0 126 #00009f +0 127 #0000af +0 128 #0000bf +0 129 #0000cf +0 130 #0000df +0 131 #0000ef +0 132 #0000ff +0 133 #001f1f +0 134 #002f2f +0 135 #003f3f +0 136 #004f4f +0 137 #005f5f +0 138 #006f6f +0 139 #007f7f +0 140 #008f8f +0 141 #009f9f +0 142 #00afaf +0 143 #00bfbf +0 144 #00cfcf +0 145 #00dfdf +0 146 #00efef +0 147 #00ffff +2 3 0 1 0 32 900 0 25 0.0 0 0 -1 0 0 5 + 2400 1200 + 2550 1200 + 2550 300 + 2400 300 + 2400 1200 +2 1 0 3 1 -1 800 0 -1 0.0 0 0 -1 0 0 2 + 2400 1200 + 2550 1200 +2 1 0 3 1 -1 800 0 -1 0.0 0 0 -1 0 0 2 + 2400 1200 + 2400 300 +2 3 0 1 0 32 900 0 25 0.0 0 0 -1 0 0 5 + 2550 1200 + 2700 1200 + 2700 300 + 2550 300 + 2550 1200 +2 1 0 3 1 -1 800 0 -1 0.0 0 0 -1 0 0 2 + 2550 1200 + 2700 1200 +2 3 0 1 0 32 900 0 25 0.0 0 0 -1 0 0 5 + 2700 1200 + 2850 1200 + 2850 300 + 2700 300 + 2700 1200 +2 1 0 3 1 -1 800 0 -1 0.0 0 0 -1 0 0 2 + 2700 1200 + 2850 1200 +2 3 0 1 0 32 900 0 25 0.0 0 0 -1 0 0 5 + 2850 1200 + 3000 1200 + 3000 300 + 2850 300 + 2850 1200 +2 1 0 3 1 -1 800 0 -1 0.0 0 0 -1 0 0 2 + 2850 1200 + 3000 1200 +2 3 0 1 0 32 900 0 25 0.0 0 0 -1 0 0 5 + 3000 1200 + 3150 1200 + 3150 300 + 3000 300 + 3000 1200 +2 1 0 3 1 -1 800 0 -1 0.0 0 0 -1 0 0 2 + 3000 1200 + 3150 1200 +2 3 0 1 0 32 900 0 25 0.0 0 0 -1 0 0 5 + 3150 1200 + 3300 1200 + 3300 300 + 3150 300 + 3150 1200 +2 1 0 3 1 -1 800 0 -1 0.0 0 0 -1 0 0 2 + 3150 1200 + 3300 1200 +2 3 0 1 0 32 900 0 25 0.0 0 0 -1 0 0 5 + 3300 1200 + 3450 1200 + 3450 300 + 3300 300 + 3300 1200 +2 1 0 3 1 -1 800 0 -1 0.0 0 0 -1 0 0 2 + 3300 1200 + 3450 1200 +2 3 0 1 0 32 900 0 25 0.0 0 0 -1 0 0 5 + 3450 1200 + 3600 1200 + 3600 300 + 3450 300 + 3450 1200 +2 1 0 3 1 -1 800 0 -1 0.0 0 0 -1 0 0 2 + 3450 1200 + 3600 1200 +2 1 0 3 1 -1 800 0 -1 0.0 0 0 -1 0 0 2 + 3600 1200 + 3600 300 +2 3 0 1 0 32 900 0 25 0.0 0 0 -1 0 0 5 + 2400 300 + 2550 300 + 2550 -600 + 2400 -600 + 2400 300 +2 1 0 3 1 -1 800 0 -1 0.0 0 0 -1 0 0 2 + 2400 300 + 2400 -600 +2 3 0 1 0 32 900 0 25 0.0 0 0 -1 0 0 5 + 2550 300 + 2700 300 + 2700 -600 + 2550 -600 + 2550 300 +2 3 0 1 0 32 900 0 25 0.0 0 0 -1 0 0 5 + 2700 300 + 2850 300 + 2850 -600 + 2700 -600 + 2700 300 +2 3 0 1 0 32 900 0 25 0.0 0 0 -1 0 0 5 + 2850 300 + 3000 300 + 3000 -600 + 2850 -600 + 2850 300 +2 3 0 1 0 32 900 0 25 0.0 0 0 -1 0 0 5 + 3000 300 + 3150 300 + 3150 -600 + 3000 -600 + 3000 300 +2 3 0 1 0 32 900 0 25 0.0 0 0 -1 0 0 5 + 3150 300 + 3300 300 + 3300 -600 + 3150 -600 + 3150 300 +2 3 0 1 0 32 900 0 25 0.0 0 0 -1 0 0 5 + 3300 300 + 3450 300 + 3450 -600 + 3300 -600 + 3300 300 +2 1 0 3 1 -1 800 0 -1 0.0 0 0 -1 0 0 2 + 3300 -600 + 3450 -600 +2 3 0 1 0 32 900 0 25 0.0 0 0 -1 0 0 5 + 3450 300 + 3600 300 + 3600 -600 + 3450 -600 + 3450 300 +2 1 0 3 1 -1 800 0 -1 0.0 0 0 -1 0 0 2 + 3600 300 + 3600 -600 +2 1 0 3 1 -1 800 0 -1 0.0 0 0 -1 0 0 2 + 3450 -600 + 3600 -600 +2 3 0 1 0 32 900 0 25 0.0 0 0 -1 0 0 5 + 2400 -600 + 2550 -600 + 2550 -1500 + 2400 -1500 + 2400 -600 +2 1 0 3 1 -1 800 0 -1 0.0 0 0 -1 0 0 2 + 2400 -600 + 2400 -1500 +2 3 0 1 0 32 900 0 25 0.0 0 0 -1 0 0 5 + 2550 -600 + 2700 -600 + 2700 -1500 + 2550 -1500 + 2550 -600 +2 3 0 1 0 32 900 0 25 0.0 0 0 -1 0 0 5 + 2700 -600 + 2850 -600 + 2850 -1500 + 2700 -1500 + 2700 -600 +2 3 0 1 0 32 900 0 25 0.0 0 0 -1 0 0 5 + 2850 -600 + 3000 -600 + 3000 -1500 + 2850 -1500 + 2850 -600 +2 3 0 1 0 32 900 0 25 0.0 0 0 -1 0 0 5 + 3000 -600 + 3150 -600 + 3150 -1500 + 3000 -1500 + 3000 -600 +2 3 0 1 0 32 900 0 25 0.0 0 0 -1 0 0 5 + 3150 -600 + 3300 -600 + 3300 -1500 + 3150 -1500 + 3150 -600 +2 1 0 3 1 -1 800 0 -1 0.0 0 0 -1 0 0 2 + 3300 -600 + 3300 -1500 +2 3 0 1 0 32 900 0 25 0.0 0 0 -1 0 0 5 + 2400 -1500 + 2550 -1500 + 2550 -2400 + 2400 -2400 + 2400 -1500 +2 1 0 3 1 -1 800 0 -1 0.0 0 0 -1 0 0 2 + 2400 -2400 + 2550 -2400 +2 1 0 3 1 -1 800 0 -1 0.0 0 0 -1 0 0 2 + 2400 -1500 + 2400 -2400 +2 3 0 1 0 32 900 0 25 0.0 0 0 -1 0 0 5 + 2550 -1500 + 2700 -1500 + 2700 -2400 + 2550 -2400 + 2550 -1500 +2 1 0 3 1 -1 800 0 -1 0.0 0 0 -1 0 0 2 + 2550 -2400 + 2700 -2400 +2 3 0 1 0 32 900 0 25 0.0 0 0 -1 0 0 5 + 2700 -1500 + 2850 -1500 + 2850 -2400 + 2700 -2400 + 2700 -1500 +2 1 0 3 1 -1 800 0 -1 0.0 0 0 -1 0 0 2 + 2700 -2400 + 2850 -2400 +2 3 0 1 0 32 900 0 25 0.0 0 0 -1 0 0 5 + 2850 -1500 + 3000 -1500 + 3000 -2400 + 2850 -2400 + 2850 -1500 +2 1 0 3 1 -1 800 0 -1 0.0 0 0 -1 0 0 2 + 2850 -2400 + 3000 -2400 +2 3 0 1 0 32 900 0 25 0.0 0 0 -1 0 0 5 + 3000 -1500 + 3150 -1500 + 3150 -2400 + 3000 -2400 + 3000 -1500 +2 1 0 3 1 -1 800 0 -1 0.0 0 0 -1 0 0 2 + 3000 -2400 + 3150 -2400 +2 3 0 1 0 32 900 0 25 0.0 0 0 -1 0 0 5 + 3150 -1500 + 3300 -1500 + 3300 -2400 + 3150 -2400 + 3150 -1500 +2 1 0 3 1 -1 800 0 -1 0.0 0 0 -1 0 0 2 + 3300 -1500 + 3300 -2400 +2 1 0 3 1 -1 800 0 -1 0.0 0 0 -1 0 0 2 + 3150 -2400 + 3300 -2400 DEAL:2d::hyper_cube_slit #FIG 3.2 Landscape @@ -3230,6 +3598,349 @@ component "connections" value "cells" component "material" value "material" component "level" value "level" +object "grid data" class group +member "cells" value "cell data" +end +DEAL:3d::subdivided_hyper_L +object "vertices" class array type float rank 1 shape 3 items 205 data follows + 2.00000 -1.00000 0.00000 + 2.12500 -1.00000 0.00000 + 2.25000 -1.00000 0.00000 + 2.37500 -1.00000 0.00000 + 2.50000 -1.00000 0.00000 + 2.62500 -1.00000 0.00000 + 2.75000 -1.00000 0.00000 + 2.87500 -1.00000 0.00000 + 3.00000 -1.00000 0.00000 + 2.00000 -0.250000 0.00000 + 2.12500 -0.250000 0.00000 + 2.25000 -0.250000 0.00000 + 2.37500 -0.250000 0.00000 + 2.50000 -0.250000 0.00000 + 2.62500 -0.250000 0.00000 + 2.75000 -0.250000 0.00000 + 2.87500 -0.250000 0.00000 + 3.00000 -0.250000 0.00000 + 2.00000 0.500000 0.00000 + 2.12500 0.500000 0.00000 + 2.25000 0.500000 0.00000 + 2.37500 0.500000 0.00000 + 2.50000 0.500000 0.00000 + 2.62500 0.500000 0.00000 + 2.75000 0.500000 0.00000 + 2.87500 0.500000 0.00000 + 3.00000 0.500000 0.00000 + 2.00000 1.25000 0.00000 + 2.12500 1.25000 0.00000 + 2.25000 1.25000 0.00000 + 2.37500 1.25000 0.00000 + 2.50000 1.25000 0.00000 + 2.62500 1.25000 0.00000 + 2.75000 1.25000 0.00000 + 2.00000 2.00000 0.00000 + 2.12500 2.00000 0.00000 + 2.25000 2.00000 0.00000 + 2.37500 2.00000 0.00000 + 2.50000 2.00000 0.00000 + 2.62500 2.00000 0.00000 + 2.75000 2.00000 0.00000 + 2.00000 -1.00000 1.00000 + 2.12500 -1.00000 1.00000 + 2.25000 -1.00000 1.00000 + 2.37500 -1.00000 1.00000 + 2.50000 -1.00000 1.00000 + 2.62500 -1.00000 1.00000 + 2.75000 -1.00000 1.00000 + 2.87500 -1.00000 1.00000 + 3.00000 -1.00000 1.00000 + 2.00000 -0.250000 1.00000 + 2.12500 -0.250000 1.00000 + 2.25000 -0.250000 1.00000 + 2.37500 -0.250000 1.00000 + 2.50000 -0.250000 1.00000 + 2.62500 -0.250000 1.00000 + 2.75000 -0.250000 1.00000 + 2.87500 -0.250000 1.00000 + 3.00000 -0.250000 1.00000 + 2.00000 0.500000 1.00000 + 2.12500 0.500000 1.00000 + 2.25000 0.500000 1.00000 + 2.37500 0.500000 1.00000 + 2.50000 0.500000 1.00000 + 2.62500 0.500000 1.00000 + 2.75000 0.500000 1.00000 + 2.87500 0.500000 1.00000 + 3.00000 0.500000 1.00000 + 2.00000 1.25000 1.00000 + 2.12500 1.25000 1.00000 + 2.25000 1.25000 1.00000 + 2.37500 1.25000 1.00000 + 2.50000 1.25000 1.00000 + 2.62500 1.25000 1.00000 + 2.75000 1.25000 1.00000 + 2.00000 2.00000 1.00000 + 2.12500 2.00000 1.00000 + 2.25000 2.00000 1.00000 + 2.37500 2.00000 1.00000 + 2.50000 2.00000 1.00000 + 2.62500 2.00000 1.00000 + 2.75000 2.00000 1.00000 + 2.00000 -1.00000 2.00000 + 2.12500 -1.00000 2.00000 + 2.25000 -1.00000 2.00000 + 2.37500 -1.00000 2.00000 + 2.50000 -1.00000 2.00000 + 2.62500 -1.00000 2.00000 + 2.75000 -1.00000 2.00000 + 2.87500 -1.00000 2.00000 + 3.00000 -1.00000 2.00000 + 2.00000 -0.250000 2.00000 + 2.12500 -0.250000 2.00000 + 2.25000 -0.250000 2.00000 + 2.37500 -0.250000 2.00000 + 2.50000 -0.250000 2.00000 + 2.62500 -0.250000 2.00000 + 2.75000 -0.250000 2.00000 + 2.87500 -0.250000 2.00000 + 3.00000 -0.250000 2.00000 + 2.00000 0.500000 2.00000 + 2.12500 0.500000 2.00000 + 2.25000 0.500000 2.00000 + 2.37500 0.500000 2.00000 + 2.50000 0.500000 2.00000 + 2.62500 0.500000 2.00000 + 2.75000 0.500000 2.00000 + 2.87500 0.500000 2.00000 + 3.00000 0.500000 2.00000 + 2.00000 1.25000 2.00000 + 2.12500 1.25000 2.00000 + 2.25000 1.25000 2.00000 + 2.37500 1.25000 2.00000 + 2.50000 1.25000 2.00000 + 2.62500 1.25000 2.00000 + 2.75000 1.25000 2.00000 + 2.00000 2.00000 2.00000 + 2.12500 2.00000 2.00000 + 2.25000 2.00000 2.00000 + 2.37500 2.00000 2.00000 + 2.50000 2.00000 2.00000 + 2.62500 2.00000 2.00000 + 2.75000 2.00000 2.00000 + 2.00000 -1.00000 3.00000 + 2.12500 -1.00000 3.00000 + 2.25000 -1.00000 3.00000 + 2.37500 -1.00000 3.00000 + 2.50000 -1.00000 3.00000 + 2.62500 -1.00000 3.00000 + 2.75000 -1.00000 3.00000 + 2.87500 -1.00000 3.00000 + 3.00000 -1.00000 3.00000 + 2.00000 -0.250000 3.00000 + 2.12500 -0.250000 3.00000 + 2.25000 -0.250000 3.00000 + 2.37500 -0.250000 3.00000 + 2.50000 -0.250000 3.00000 + 2.62500 -0.250000 3.00000 + 2.75000 -0.250000 3.00000 + 2.87500 -0.250000 3.00000 + 3.00000 -0.250000 3.00000 + 2.00000 0.500000 3.00000 + 2.12500 0.500000 3.00000 + 2.25000 0.500000 3.00000 + 2.37500 0.500000 3.00000 + 2.50000 0.500000 3.00000 + 2.62500 0.500000 3.00000 + 2.75000 0.500000 3.00000 + 2.87500 0.500000 3.00000 + 3.00000 0.500000 3.00000 + 2.00000 1.25000 3.00000 + 2.12500 1.25000 3.00000 + 2.25000 1.25000 3.00000 + 2.37500 1.25000 3.00000 + 2.50000 1.25000 3.00000 + 2.62500 1.25000 3.00000 + 2.75000 1.25000 3.00000 + 2.00000 2.00000 3.00000 + 2.12500 2.00000 3.00000 + 2.25000 2.00000 3.00000 + 2.37500 2.00000 3.00000 + 2.50000 2.00000 3.00000 + 2.62500 2.00000 3.00000 + 2.75000 2.00000 3.00000 + 2.00000 -1.00000 4.00000 + 2.12500 -1.00000 4.00000 + 2.25000 -1.00000 4.00000 + 2.37500 -1.00000 4.00000 + 2.50000 -1.00000 4.00000 + 2.62500 -1.00000 4.00000 + 2.75000 -1.00000 4.00000 + 2.87500 -1.00000 4.00000 + 3.00000 -1.00000 4.00000 + 2.00000 -0.250000 4.00000 + 2.12500 -0.250000 4.00000 + 2.25000 -0.250000 4.00000 + 2.37500 -0.250000 4.00000 + 2.50000 -0.250000 4.00000 + 2.62500 -0.250000 4.00000 + 2.75000 -0.250000 4.00000 + 2.87500 -0.250000 4.00000 + 3.00000 -0.250000 4.00000 + 2.00000 0.500000 4.00000 + 2.12500 0.500000 4.00000 + 2.25000 0.500000 4.00000 + 2.37500 0.500000 4.00000 + 2.50000 0.500000 4.00000 + 2.62500 0.500000 4.00000 + 2.75000 0.500000 4.00000 + 2.87500 0.500000 4.00000 + 3.00000 0.500000 4.00000 + 2.00000 1.25000 4.00000 + 2.12500 1.25000 4.00000 + 2.25000 1.25000 4.00000 + 2.37500 1.25000 4.00000 + 2.50000 1.25000 4.00000 + 2.62500 1.25000 4.00000 + 2.75000 1.25000 4.00000 + 2.00000 2.00000 4.00000 + 2.12500 2.00000 4.00000 + 2.25000 2.00000 4.00000 + 2.37500 2.00000 4.00000 + 2.50000 2.00000 4.00000 + 2.62500 2.00000 4.00000 + 2.75000 2.00000 4.00000 +object "cells" class array type int rank 1 shape 8 items 112 data follows + 0 41 9 50 1 42 10 51 + 1 42 10 51 2 43 11 52 + 2 43 11 52 3 44 12 53 + 3 44 12 53 4 45 13 54 + 4 45 13 54 5 46 14 55 + 5 46 14 55 6 47 15 56 + 6 47 15 56 7 48 16 57 + 7 48 16 57 8 49 17 58 + 9 50 18 59 10 51 19 60 + 10 51 19 60 11 52 20 61 + 11 52 20 61 12 53 21 62 + 12 53 21 62 13 54 22 63 + 13 54 22 63 14 55 23 64 + 14 55 23 64 15 56 24 65 + 15 56 24 65 16 57 25 66 + 16 57 25 66 17 58 26 67 + 18 59 27 68 19 60 28 69 + 19 60 28 69 20 61 29 70 + 20 61 29 70 21 62 30 71 + 21 62 30 71 22 63 31 72 + 22 63 31 72 23 64 32 73 + 23 64 32 73 24 65 33 74 + 27 68 34 75 28 69 35 76 + 28 69 35 76 29 70 36 77 + 29 70 36 77 30 71 37 78 + 30 71 37 78 31 72 38 79 + 31 72 38 79 32 73 39 80 + 32 73 39 80 33 74 40 81 + 41 82 50 91 42 83 51 92 + 42 83 51 92 43 84 52 93 + 43 84 52 93 44 85 53 94 + 44 85 53 94 45 86 54 95 + 45 86 54 95 46 87 55 96 + 46 87 55 96 47 88 56 97 + 47 88 56 97 48 89 57 98 + 48 89 57 98 49 90 58 99 + 50 91 59 100 51 92 60 101 + 51 92 60 101 52 93 61 102 + 52 93 61 102 53 94 62 103 + 53 94 62 103 54 95 63 104 + 54 95 63 104 55 96 64 105 + 55 96 64 105 56 97 65 106 + 56 97 65 106 57 98 66 107 + 57 98 66 107 58 99 67 108 + 59 100 68 109 60 101 69 110 + 60 101 69 110 61 102 70 111 + 61 102 70 111 62 103 71 112 + 62 103 71 112 63 104 72 113 + 63 104 72 113 64 105 73 114 + 64 105 73 114 65 106 74 115 + 68 109 75 116 69 110 76 117 + 69 110 76 117 70 111 77 118 + 70 111 77 118 71 112 78 119 + 71 112 78 119 72 113 79 120 + 72 113 79 120 73 114 80 121 + 73 114 80 121 74 115 81 122 + 82 123 91 132 83 124 92 133 + 83 124 92 133 84 125 93 134 + 84 125 93 134 85 126 94 135 + 85 126 94 135 86 127 95 136 + 86 127 95 136 87 128 96 137 + 87 128 96 137 88 129 97 138 + 88 129 97 138 89 130 98 139 + 89 130 98 139 90 131 99 140 + 91 132 100 141 92 133 101 142 + 92 133 101 142 93 134 102 143 + 93 134 102 143 94 135 103 144 + 94 135 103 144 95 136 104 145 + 95 136 104 145 96 137 105 146 + 96 137 105 146 97 138 106 147 + 97 138 106 147 98 139 107 148 + 98 139 107 148 99 140 108 149 + 100 141 109 150 101 142 110 151 + 101 142 110 151 102 143 111 152 + 102 143 111 152 103 144 112 153 + 103 144 112 153 104 145 113 154 + 104 145 113 154 105 146 114 155 + 105 146 114 155 106 147 115 156 + 109 150 116 157 110 151 117 158 + 110 151 117 158 111 152 118 159 + 111 152 118 159 112 153 119 160 + 112 153 119 160 113 154 120 161 + 113 154 120 161 114 155 121 162 + 114 155 121 162 115 156 122 163 + 123 164 132 173 124 165 133 174 + 124 165 133 174 125 166 134 175 + 125 166 134 175 126 167 135 176 + 126 167 135 176 127 168 136 177 + 127 168 136 177 128 169 137 178 + 128 169 137 178 129 170 138 179 + 129 170 138 179 130 171 139 180 + 130 171 139 180 131 172 140 181 + 132 173 141 182 133 174 142 183 + 133 174 142 183 134 175 143 184 + 134 175 143 184 135 176 144 185 + 135 176 144 185 136 177 145 186 + 136 177 145 186 137 178 146 187 + 137 178 146 187 138 179 147 188 + 138 179 147 188 139 180 148 189 + 139 180 148 189 140 181 149 190 + 141 182 150 191 142 183 151 192 + 142 183 151 192 143 184 152 193 + 143 184 152 193 144 185 153 194 + 144 185 153 194 145 186 154 195 + 145 186 154 195 146 187 155 196 + 146 187 155 196 147 188 156 197 + 150 191 157 198 151 192 158 199 + 151 192 158 199 152 193 159 200 + 152 193 159 200 153 194 160 201 + 153 194 160 201 154 195 161 202 + 154 195 161 202 155 196 162 203 + 155 196 162 203 156 197 163 204 +attribute "element type" string "cubes" +attribute "ref" string "positions" + +object "material" class array type int rank 0 items 112 data follows + 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +attribute "dep" string "connections" + +object "level" class array type int rank 0 items 112 data follows + 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +attribute "dep" string "connections" + +object "deal data" class field +component "positions" value "vertices" +component "connections" value "cells" +object "cell data" class field +component "positions" value "vertices" +component "connections" value "cells" +component "material" value "material" +component "level" value "level" + object "grid data" class group member "cells" value "cell data" end -- 2.39.5