From 3c03ef039cc2748eb32ac6394aaf62158bad7d28 Mon Sep 17 00:00:00 2001 From: Roberto Pastor Muela <37798125+RobPasMue@users.noreply.github.com> Date: Thu, 14 Sep 2023 10:47:26 +0200 Subject: [PATCH] feat: add packages and reorg --- .github/workflows/ci-build.yml | 3 +- .github/workflows/create-milestone.yml | 40 +++++---- README.rst | 12 ++- doc/make.bat | 2 +- .../thumbnails/ansys-python-manager.png | Bin 0 -> 68639 bytes .../_static/thumbnails/pyansys-geometry.png | Bin 0 -> 10690 bytes doc/source/api.rst | 7 ++ doc/source/examples.rst | 7 ++ doc/source/index.rst | 10 +++ doc/source/tools.rst | 80 ++++++++++++++++++ doc/source/user_guide.rst | 7 ++ pyproject.toml | 44 ++++++---- tools/links.py | 38 +++++---- 13 files changed, 200 insertions(+), 50 deletions(-) create mode 100644 doc/source/_static/thumbnails/ansys-python-manager.png create mode 100644 doc/source/_static/thumbnails/pyansys-geometry.png create mode 100644 doc/source/tools.rst diff --git a/.github/workflows/ci-build.yml b/.github/workflows/ci-build.yml index c23a6f87..8aaff124 100644 --- a/.github/workflows/ci-build.yml +++ b/.github/workflows/ci-build.yml @@ -76,7 +76,7 @@ jobs: matrix: os: [windows-latest, ubuntu-latest] python-version: ['3.8', '3.9', '3.10', '3.11'] - extras-version: ['fluent-all', 'mapdl-all'] + extras-version: ['fluent-all', 'mapdl-all', 'tools'] steps: - uses: actions/checkout@v4 @@ -110,7 +110,6 @@ jobs: uses: ansys/actions/build-wheelhouse@v4 with: library-name: ${{ env.PACKAGE_NAME }} - library-namespace: ${{ env.PACKAGE_NAMESPACE }} operating-system: ${{ runner.os }} python-version: ${{ matrix.python-version }} target: "all" diff --git a/.github/workflows/create-milestone.yml b/.github/workflows/create-milestone.yml index 57ff872e..e9077152 100644 --- a/.github/workflows/create-milestone.yml +++ b/.github/workflows/create-milestone.yml @@ -19,31 +19,39 @@ jobs: matrix: pyansys-projects: [ - "ansys/pymapdl", - "ansys/pymapdl-reader", + "ansys/pydpf-composites", "ansys/pydpf-core", "ansys/pydpf-post", - "ansys/pydpf-composites", + "ansys/pydyna", "ansys/pydynamicreporting", - "ansys/pyensight", - "ansys/pyfluent", - "ansys/pyfluent-parametric", - "ansys/pyfluent-visualization", - "ansys/pyaedt", - "ansys/pypim", + "ansys/pyansys-geometry", "ansys/grantami-bomanalytics", "ansys/grantami-recordlists", + "ansys/pyfluent", + "ansys/pymapdl", + "ansys/pyansys-math", + "ansys/pymechanical", + "ansys/pyprimemesh", + "ansys/pymotorcad", + "ansys/pypim", + "ansys/pyensight", "ansys/openapi-common", + "ansys/pyoptislang", "ansys/pyseascape", "ansys/pysherlock", - "ansys/pyprimemesh", - "ansys/pytwin", "ansys/pysystem-coupling", - "ansys/pymotorcad", - "ansys/pyansys-math", - "ansys/pyoptislang", - "ansys/pymechanical", - "ansys/pydyna", + "ansys/pyaedt", + "ansys/pytwin", + # MAPDL - ALL + "ansys/pymapdl-reader", + # FLUENT - ALL + "ansys/pyfluent-parametric", + "ansys/pyfluent-visualization", + # TOOLS + "ansys/ansys-tools-path", + "ansys/pyansys-tools-report", + "ansys/pyansys-tools-versioning", + "ansys/pyansys-units", ] steps: - uses: actions/checkout@v4 diff --git a/README.rst b/README.rst index 753a480e..86589c78 100644 --- a/README.rst +++ b/README.rst @@ -37,6 +37,7 @@ of these packages amongst themselves and the Ansys product release that they are The ``pyansys`` metapackage ensures compatibility between these PyAnsys packages: - `PyAEDT `_: Pythonic interface to AEDT (Ansys Electronics Desktop). +- `PyAnsys Geometry `_: Pythonic interface to the Ansys Geometry service. - `PyAnsys Math `_: Pythonic interface to PyAnsys Math libraries. - `PyDPF - Core `_: Pythonic interface to Ansys DPF (Data Processing Framework) for building more advanced and customized workflows. - `PyDPF - Post `_: Pythonic interface to access and post process Ansys solver result files. @@ -62,6 +63,13 @@ The ``pyansys`` metapackage ensures compatibility between these PyAnsys packages - `Granta MI RecordLists `_: Pythonic interface to Ansys Granta MI Lists API. - `Shared Components `_: Shared Ansys software components to enable package interoperability and minimize maintenance. +Other tools delivered as part of the metapackage are: + +- `Ansys Tools Path `_: Library to locate Ansys products in a local machine. +- `PyAnsys Tools Report `_: Tool for reporting your Python environment's package versions and hardware resources in a standardized way. +- `PyAnsys Tools Versioning `_: Tool for backwards and forwards server support. +- `PyAnsys Units `_: Pythonic interface for units, unit systems, and unit conversions. + Much effort is underway to continue expanding and developing packages in the `PyAnsys GitHub `__ account. On the ``Issues`` page for each package, you can post issues and request new features. You can also feel @@ -70,6 +78,7 @@ free to post a question on the `Ansys Developer Forums )Kp|KP)SffeE5JNFDIq(;R8(0`?GH zPZwXN-&f)unKjoAI15 zdt$XcBPVBRG2>zU7y?QEtW!m;kjfl2G=$86hZ-hvA?WPpHkd2oXF?+CUqr;7-{n}T z_P#T4WZEAIVsC57xRDH#C{SZCq7)TfW5;+n72>#GcJg4_c)U5ff4N(SLZL8OhM$Br zx>xa?Ytui4=2In-W^&sUwrT&zU~`8^)E{1H9qUyao$NBl5n(Kg535rD&ouDIW8MeS zS9pmVv+ywBe;n{opvz83ecAUf+m8i^KxcG1FXi~1t+l~2N?$5j2(T!py1IHcXVJx^ z$??%|MWh8ulU}(W!Uc5CTF`a5ozz>n2B$%LGFJJ0#Fhqc%-WnqK2cHqcbDbi%5P21 zH-}#h+B}s%^VYBaE>y`8bmk{}#GY(&GB#-URu_xT+a6wzShTI%kErDUEBo*ruWfx9 z2sZ|sMKrbsFvEI+t@>E`KbBCwVFW&%BGIsDBGvmgivMsd#g2#Olq5L*jSc4F{++hH zF)MF<^Fs8(@Btq!_3u9>s>j;*+qJhX*z=kXCn98US*1pg+u!|4=dmL=am8NP>3GC$Laby6(G9QhU{qfw%QaWzyZi7Cu(11a+so}Gio_;@S6Eb^X!{`R3oqz1%%##r7s-um*q zQjDwL;1GiNvZo-n)#VsDQW+tC)qIOF1yTmO{h9E`VC|=2K{^u0`|gQRYJiGqACV;c+$kE;l%Db34M@u*yDqbTRwORAMtXN<3YScOW!K=kte z3};|wMzgc({Nf@?V}+rMC6?>~jv!%UvDpSd4YgbtE2}}X zboiH>QK|p%do}`NMg|74Ac7t$--_yed5)sLgV~qphXv{#&4MhLqWXvQ^0anX@+58%3=e=RZKOGd(|J2pJ z1#JCPjvVgo3@_%;9+8SMBB9%7;?fK%qbiVvF<$tCSIYdL&T34Oj#Ju`)1m16IuYl6 z{9Qa1i|doqg)b3b4d2QMZ#wR^r~JED$t`w<_Liv?z>cIa(SO|;Ndd7M3cehR{akN4 z|3Jmhult!-sO#rL>GjDI?Iqz5&{8=o#7eBmdJ%_;iY+kUVxtFOa=vjE%Ec9E#Gs#6 z2s4q&P3@q8+cd19oXIV(wmBe68Bo-Qw|Q{`-ZU)={CM#tyY=adfuK(g=JDobM%L!P zmVnK)maeEzbuI?WpC88!SaM!#12c60yq0lud8y>#z+k@oXnwF`<9Icx;Wp-PRygkT zR$SqC`$}Of;-h|8>RE*!qjQ$HyIeXEsWyEk7!g$fIGVHt0R^d+Od=z~i^XUy~ zJ|-pW7WM7?qs!K{v?>};?k((JGGTpk4=`|KRn zlYFfy|3ilAh_fzA%zAl`P5l2b3(>^KEHKMb@qYkwBCV1E$$c51y#9}rxKK5H-%K$s z|NI|?P08#u+ll!8Rp4#b&*+X>MH0j2>mSV4xgU>t(%C;1p?W^}yy#72+jr>EbyS5D z4mhVvty-<3gn?qkn+@!mJ*q2tvKU7_wd(x`QD>Mgs5yD1N-}ezV0P19c%=+p90ZN_ zh&q-f>ae4L*sMl1uM~Fsz`gUWSlUPIkG=u)e<6znlmpxIwYbiPC%O6m9YW@UO72xH zC6}2zPr%hTH-|vCz}~EFVSuR=-7lIuJw6hAqt>o%=5JICL(viXgFVX-#BkyFh@G(A zL34g{nYimo8&hCYPgl00`>keXbd-=$$+YZE+;+BdiXboLbNKjP&b+_o|Bz2ETVhaC zxMz%V&}6eYk3C?`vd$%VW3G7IQrAGlB%qEQtcus)$)i{kphT=?Tl?keo{ZU%qS?;` zCbP*VhJfW8*r;@>rpTYNN&8mZJ1MW$8v5No#}QYC46a>-IhkF^F|=qfaHf+&W6g#?zZ^w=DyV?Q-|JcQ8gRu&=%h4}a zu4-h%0m@Umy62u|o_+5eqnon$!&JPBzJz0mNz!_$so z$lf~iShzC9I|c)SIB2HZ|I@2Y7Fv~pB$0LcbB;m(^b}g-K=0P{1bSJz^rYnOV--fV zDoexJtUF}QrJXs$0pKuzQS_CeEfBu>zC=2AOg^D?#d#J*Kg9Ru$TY?eF4-M!dT$(w zl0SjfjXKt0nnJlGr?-8|!9DMPdi#x|QnyxO_P36z*fZb7#|O>Xo{I>-8?*nyvi9-k z$D?W&p!+L1&A{fm)$q9g|BS%VM8DI&rOdcX^jKKv#5fFvAch!IAq_|PKMV2fd#Zgu z61K!*G&KqlgJdWQ7Ioko#+}NnHu<{~z%eq-L=<@2^%DFa`?UMCu9^QywJjXy|Ch`d z3c&Ar9L@K>5Zy!>QN@H89VDW#&#)G##i-4&MzXfJXg6PNICyC>3f$QUPRzca!yhh!7m%oIsq;xTTVfF0&OLD!l%!uUKJoUR&-Ub9CFiQjl-*4TY1 zP@oY*%UK&WVSSF+>`}Ujp;u$#VwjzI1eY?7%-G3f(;ZiR^wOf~O03i6@8N@2Z~gq5 zUO~O%iQsIRo}`%Xi?^RIzzUMh2_az7|72DY`$%j{e}ajlVTp{yld$6ZIwSM+HvIde zAhR`k0eF<)Xu$Ym;4@OQuV~o#asCWmR3uA|GCLXpb0&RKU-&0G9GcI!xWY49v2{8O zcyB6e2aGe%REe`JRT?enh9*AJBgiuX$M0^GOw^ZX9rKkSgVRc)T%*|Kfw~$r4yNX! z1^~+WRA1bZrj}kKpdgGCVN+@-b$uV@zoRUZiyDdMOsJ)27}8F8!~l-slmMal2qvEn zXl{xV*)_rClb?Lxgybo3iH}updnjB8=m<$LMyPGV z`^=-hT?lA|JTEavK~t*)TU2F6{`P!_953!qRYq|CCuhpHO6>&rekSz`lW9t%3jjBP zFhMER$-W8Bb@Gi z&-zfrWH1%&77dl8auFE}xlkY;!X@DsZ{22h+or|gIBwgJK{cmO8E<$KC{KZSx-ak&WpK?za-}{CK7Egz=fili!^8RhZ4WX zCOoS_XK#VoZfu6ee^O>$^C{@7$)Nn%fzxoyMq+f_ zG3H#@{>~-~>;kM`5Sa=_+(5vUwiMn0a0bUz$yPLlH+P0h9bBA%k_^=hx%_X2Nxduq zE}wf&%?ongJSV@Db8%UY{ix}}xhQ+jwy4f3CS3?P*_fQ0#gk49naRuVqnlAXqD6B6^T+z3|8 z%#Dy$WJ$vc_l(@A5^lU2PhN7kcO3xA5d^yB9*&2%UH8%ygT5V z!q9k3G&1Gph2jkt?Qr(Gq`IYwB5G5>s^uSrI~lPRah4J?{HcBEc>n!%Q@4a~S?*?Z z(7wPRvKKHmqsP4k+LQK0yNs~PXfqx)wr>DiyCHeaWNp-y$^>7oLZtxbwY5DBsCQMf zo5f<7$jVYBPr8e)Rd$Kno(m-}F6-acN=r;8T*%A|HB8aFxY!i-*=Ls)j(Pnb4@#R| zA5bB=A`x6x5E({MQP*u`&*xgW`k>r684OZ@WGlKaoNTWQCBiU49PE}D+_+LSr1o2` zhKR)y-b$Mv+pbb$6FL~iOB?6KbxRA;;1Cwl{dmqkR^_R?Z4xdKi5mLp4r0^*Cr%EB zW}uPsp}h{|Hr}_p&Ii3nD&<~sFBaZaXV?*3$NGMq&Y{8A`+Zfey5K#!%i0oSbKj1X za`I{K=m62$5p0iTz_qyU#A^5()R>4Tvuct!EH(Bd7RR_;T+%9$iD6ecR?!IG(>BYi zd^Dl$LZc4uRmeQZ)?zll{^zt}$d2)A!Ien3f}kYa5D?1udL#RK%+Zs`^;U zA@uf+t|mxQAk=*{y}zJC+TPqnTaU#bI>r=-jm!}BX`THum@ZtLc?MH$VA6BQ^ZVi) z6ciicNF)DQ#E6C99jIC#CeX;~Yzu=m`v~dv_w+VTPs2}*-3Qs~gFwJBq6gi$l_6QF z>E{Yg{id6vc{@b#jUV9@LR>P#wd$7mf->~uzft7Q&fsH7{(3oe#F_-C&9v(;ZZu4s zZA_enqS4_Q8nt6g9TF&B$S^&yosj1D`7GPVuF7v{UNLRggef`hsv_;}A2;5Rf9q76 zl0G;9GtLU?3-<-0j%B|hzAGX4P){Nf&_u##6RRrrfCu6|d5K>&O**41l;ML!XYoEb z^$x@kn#Rm_76vWndkU)Hi(OWx`?Kv*S46hI5w188%0aBxH>D&CYRosfG9wZ;HelG7+R^!zw<@b&i&r?fp$)N`xGMB`PahKtSut* z9c}T4@Ywd31<0HDl!W;mP7FaLb3GQ0iG%{tTS~rbAG!yA+@`~=K^w?FOnOAChfP1T334B2JReqT*HRo23} zU(wVg_V5$Lf&$CiT3UMt2BiI}ud*w4{<8Oy1k#o$TCa#v7hN8 zNdr>_2$B%GoSw+jyyu))NWoAVBK$WC{3qz&6smf>GG9?arg%l?pYk#f`>J=;&>44C zau6@GVFP?+W|LIGGXh8;K&D7OgTzLoNJ2rQI6CD^6U4CAet4Q8NPXUx4j?@3 zv)yd7DuYgO&+_Z*uW0`kF^TYo0}z$6pgE0*!!PdpPe(|XD?h3`|89oGIG;@8ALLa_ zw;7>EaOL!Q{AD0zLwnjY;Wse+F?c>P$ObkST=>$jk|b_$TiZAFGr>8qmO4oF`I#f= z)c^W$3O6t9^G{&`SE`)Ax9Jik+M5ucE3kauUm}rBB>UB8p=0e|cVwjn<|PM&dt}B2 z2fj$&R(CUt4KBF9v?{4}U^ir_M4LG_h%JRL8FU)S8Xebv<@umAXRATK)p?_2aywl1 zHaCB|ctSbF_x17H`g?Qa&9>;r|2&Ufq5lWfMx!)dy%D1s#?Se!)1R3Tn>d(K#)eYl zbtYu7+>E~cZp}|!BJnCDbF^%Vq>t;WLYpa*+c8$y=gRu`e7jP1HZKdZgkl-sn)CV2 zJ*0XIeGC(aVppy)Eas;Ukf7$McUEFhLw^VbQU96Rkj0yTLIO&YLUlQNi&Yo!Au-PV zttf>cuIl2LC)d9lE%ef*h$Tcu2#)GusF z&adfgW3=<7#(MGl>aHGt){SCxq4dmdI=?9_j%G_#Yy3idZbabOJt-HVm%|fKM99nR z{v5g>5hB1#aQR8>2i>-pwTo10G|4~AlO?e7^1q>U+ImOD8clFTO-2|JW&IZwWSL~h znvoV}Tr)<>hwWFLUPBu_&8}OSr_`qYO60NcQ7HI5-&kRq zW;R<_h1|lIysTrMmBJASo>7zX*>8WNm-~p!N7&?zpXcS}k>)7Bzu##b+Xv0393OjK z2r_^Usu4s_%%$vEM9r3KpxG6Dee81CDmiz*OEztfU23zczNSCUy!Fy;@-)mg9W0hZ zjzYSlu%>V*;$Pcir02_)*5}oeKHo8x>R$4v_IE=yUC%a>vM&@~NS9gQtx-@OJdo-S zNAGPF{TWGPv7DeDT0Kq!JHLx}D|BVSkbR;w&$?={WWZv%79#tZFQ&wRg>Kr=+^DTZ zqcf?{B~>o#bBFiyeL2AoH(%Uekq~kr+lws5+&ugv83AqRxDX2FLFydf1tq)&-O6-6Zu+3g(d zwr}`ZGhorL{#?Q@Kk^LU6y~~&`3kIB9T@*Te?x>Eog|Z^?sLo9b18#DUNyI}FGY1ZAZft=cDRhJ{=N6giT18mM@Y<&JwGO||q$FFKJ=!jokV=*LD z|3Dv|8~9qXoYLz>l~dg(fggpRwWz$z>)>JBKZ;8J(pq>Jzm*!vud5SUJ<4F8rJ1Av zpyn;5Nl}n;R8szokCM}nxv`iY9I7gVEf33JZb%1h0)sw6(=5D|Ow`y>@USv?GqhvE z@K8u}AY$5dt#r0zH-4L+uMFL~oO^Is5*BP!BB=$v4r%(_wl2Zzc?;1KwOJ(?S#n~H za#;)se0dF9GRrZ7Br-p@a4j{>i5m3y}GlZ!7JAl6UwqX?TJ_ z3Sk_1e_Rn1O#|n3dZq9n+Q$e(xeYHZ9Jan~t`-LYE{u_p$(@N9ub$ zKGolrzqHDkJ$|xv9W#048Yta`yR*g!_wEgn;!!cx?HMXGIW9-HHJy!I1x2)Zoo+5f znOz!2U=xakP8V|YjGfWQ@mX$o9ISjj^i9MGm2|8kKzZ5cn=!1uSbKHK$cvG zNH0@Gp7$~}&DIuxWhBatg<;%$P)xS__ol^dzb`&m+X4CZQ#V%0rm7Er@8U>A{I5>F zJU1!?*$>jk4RX13zw*GHy99^mHk*U|L;E$2?$xsb6?WUSF5#>U2TTXg_Q!-x!{=K7 zTz$auaw5 zW~d~&&@>o-aQqhGicqRY0-!=Q2|pi^Sf_fiL^npv$+4gsi*Fa7yol=@TJyUr|d4hkl!wonr%h- zlz_)Be52!|VH;-ns^IVWA8lErwmQ|pc6`-8We{jW4Yoxro9lb;z8X;)3mv$kP;x4Y z_eBGDZt8i+lh`dy2d+=&NTF1w`pSVSk30Q{g;KRR{0iil1n5hwP3>TZh7FUVAEr4e zxpdle3K6E1ly$Kh-pt(TNLUndtHfKlaE|RhTcUvWvKmGefQVb*gY@CVdApRe=>Ew~ zC<<;7Eah`E~~?=WMY>tFow!Z^+7ThrGO{U%(PRVY4;nvMeza10wYk}GM7!y}mb35d>Djkb( zs-`e`+WwsdW%-pv!3w);$;Fc+=DK~!XBMt0we4_NFQ^_;fAhtXuRW()d@@36luZ6{ z>Z>vBY1OH2yEn(b%JomOFe~{rA3-6ZQ&)PZfwp5sdL=nmk=2rliI)G4eI!u)wkR&Y z;+V$}9wcEm>9*M=n^a&$!yLD7oLq=I zOyRuEU$G>WbIB}(eeXX4 zUtaRmgM))3^Qm~ShJCCd9TYKPq#r*M`95JI5b~D70%AzMYPYS@QO5Z{oit4w5%_n& zn10r(h>ShpQlo8h`RLLM^=v}YK`#q&?TUA&xRL9T zgt-z)SbySg7$KD+-pXkqd$>q6Dt?~yJN{!k7g`PE+hJ_65)xqruoasfL}^wq;+VO| zb$7n_xjghrUk=5`{a92zCVfE7f5MmF8S#D|36U;|C1n$&55wR&_BSpj?fk%5PnRTR zGgHxwUYn7{cmU73ojaaHr#f8%72WF$g^w_~#{v{(Z0-7uo&P$hgYKOlELflGeG0v@ zJxq4OE~?*jD(oE&2xSSWih@TpM0=Vefu`4Bu;qXI0k4G4k5lMnTsgBL{1_P*M&e?5 z-0Y$eWOMDG&gm1~e)Np2x|_mkZn3)Uzb*WU%MhWH;{4AwfGtmmx5()!fa&(d=SRrQ z^N@qecE_}gKSYi7Q{o}|9`2EL#MfQIb%zmCVx+8xQ(}*J0MuZwCYH>8ts=v5v%c2M zhtFGu;{_zX&ak2;$Fy4kKLXNq#%)pVRi5ez(p$9(mX6C%XA+JhtsuEXiEq8RBJlEgV5 z{6IkF%cj%>KDCMeti8E&ShyKfIbP_5>vCF&&Co0b+m*5orO{WnBQAC)eh(t6a)}$8 zERgg_!hIZ$&k>Y2To$BpyeDbtS^wik&+0-CwMdwUGwATg|JLM`2Byt$^39drDTu#F zF3_P=M$UW~4qK~zsGCUB*aOk_<;bwWo}?ilzFpuuGvJG|MJ#ez4ucjclbuNaIdnI& zEVH{VAahsDf6(JJPn5{MioKFQ;&wK;9H$drU1?yPCF7mLef6VPub*#Nv~wxHw@e%; zHWwCFj4s`u=6FiuTJrWJVpJI&L=gL@xd-oYvu#hB1Bd`BH2t-2wwmrYZEHdMg*?4F z$E4$t=hAIjKi%SgP)E=hBRUg5O(Nt^(t|>BA$JvJM(>_CC52!$_L0*PO@I-JDd1LZ zy90moproDJ9&SQGk&T+K1Rr$7g?bc@-YSq&GbO;pI4G!bG=qAyq(!~mgeA3~Qceat zAXz&tHbLXMaQ!1nq|I~mh-1dNdu~9=2Ye7NU`v;U#xSv;Dc90+sZscmc%~R18{1U> zi)X3SpqnxW-UVmTrr3QyO06uMClm>5 zib!+clWe`J__JU-@+5sxzZ?wLIfX-jWg*JMvf4749`5^k`Fh3tSzE?ixIWtIYaHLd5#G?`$U#<1E`nmI^V<2mkBC=aIFe4&vqHYSb`#qZQF{@lu>5I#p?_UpDSB(vid)?9wl&xuV# z-$~(UcvKeixi-Bu_>ug(7?pi5kbEOCA! zW>Wh&oVGU`u$68@BPk-%67nN{SC`~LJ3@0?o!%{w+l2%X8>Te!mqh z=;SBX&YuKpQ>1qvH>lML);;HGYtD4px+P~eYEWwmcsU2KP>7qW=7~ef8bSoA7<a)bC;V89<3TDGu$V5axNa4WZF_G2O+0xDsDk&UMF;kAuY4mUze z-QE`>F;75s94TM0Ufv&ir^*5bg{=VXyw1m12 zcDYcWsfMiNF4IisPu?t*!Y45=qfs_brd3ULS66WRn7Ro^yE@5bR7`0V=HoyNpdwYAwW~Bjy2uNG@Sz(p9F==$;C#lJ==@dCIF&OpE^D3jy z(<`=qI|<^QK~tY8RMFY{;N%{N$2u3~zJO>MNkXj|W4>Y|1^rfbpL7-76~H)PiY~j4 z0s(lanER9_!{|PuW>JD^FO*|f{q73=cN9Kqx21ABrt8+~sY+C>v}{+f1k!(6Zy9>} zUL=w_-M(>}BNT}~-?-q7c=^0P1$g=780$Qe$_Vgaoa8qOw6Ua#o!Uxy7?6m9PbdWv z3VI!dXj)Aa8t1X?z(>4KpV*#S^m^ntaWLiC!?(tWY}-WnfJz?)$<7yR>sa%J9f^&*sHu{;VN zaSsEHg;Lc?i+SQn=%V-_ao|fT)2hAqJdn#A5=uE3*E25Eq+YMUQ>2=tg32oIPka%d zAF9G^F1-~}N+|lub6gZ4d@f)%&O)J=V0Ty^4p#pu!|!*>EG#VY5xa!t4<(!L`TKN@ zq)gx|Q(ntptR^p)R-*uBAidkwEyi>03D!xGQiWwKjE`RJrj9U%H>xTYn;xhk?cbx1 zL`mLp3urV0K=@gElI|l>$Fx->ITodxw^pHUYR%N`HkmN>Y4>+6(I&_y!arTx7>Z)o~TYrwZdx(+kkYCjb;#tidS z?6enkvADlsF@zVU@yD&jRoTur&cKl*w$6KrLt#d7h(s)$nH0ypkP)JMM9yE-d438Z z&k9R+cxhoMXMpeBKlJ0!P%*K5lkXE{F>%`QWV7Yy!EalG(<)hHAJH&%!dZZYGZplV zHg!e1^`_*WXRf}eI8Uu>9JzV*ZydRmv$a4TzKe1>yCSXj_+{A^vEEyUc+pk*Ud~imQ={-u&#y#0(KuCuh6S6f=EcA z%GRa9j-deBABDvrD&+f-d&uh33?0nf z_oGPXX1swbGM1@1Aw^lUiz%@(LP1Fz|is<9*MA^$XnYGFA867-mY9$UOJbPNX8jG8}P4pAqT z3MX#vooVBI66V^oNRA^(?T^9%%iLrxbOs2ip~yTveTqL z;dLxCE1XldjV!B$60^6q!{AX7?=ALGgJ;F;8)%9?e8Nh-?dp(%@YNAx`0@| z@s^LC$rUluWqUnCHcwZD7|vZ_xGTOyh~4 zlF!bmBQ3pR(QinOAPYL?v@x05%H&@w|7p=}biF0uwmWpE;6DT<&Ow9o$w_`Q@NB)C z?26g)qv@kBj!5G2Vl5{@`;~1TG`u8V$Y6yJ~oj+)Sb^mU#nNkO@z!!Yg#_I zfroJkb@%@`%wUR5KtwWVh@CNB+b<{CF2)PH>Xc{NQS_XE~Ss#ColFEOP zq+yf=W3m0ZUO^~2q5@U&_;UIS?yeP3V2b&EzuaSs#HEi{H?pG?bzRREV-KLKM9hvT z(mU})rxe74L&TUS`B@fYB75;g-Sc3Dc&0=(O*1vm%juzw>~z4m#hX~K&SK8N_ygYv z-e6|RZ}m1K@(0t+t4X>lWU_@W$}lmO!sWl_3zKIY*5^%}%$`m~iwtk!klW`nrjQZ5 zBw;<*?GX^%!{wgrKs3Huvoki0YKlZ|Oz#leKY2{H@wr8xgE80CxcLGEPotsauTf_d@_ z|11dNZx%zhnv{B5dBMp13qT3vf3TZ2W4t6u>SVsDi7JCM9=eMRL2=Bl77&Asz?hid z>}}RDKN8hS?27!OWm_&K3TD^nl(TiwLVJ_32Ri>QM0+nHi23L{aJK$eq|6-LGYy@% z!2PSR;SzRI;f=~Yc(wQXGjou?*=8+J_d`H#&E8Df@?F9+KiV_&fu8K)v5s7jZIHp8Y@$uXD6%Va0AFuN!_U3 z1aysy52Tpiz0uDBGQ~1To7QF(hKWrH54%rcl}al{Thf)Nq~igERU!&VqmSap_%uXw z*XoRj58SoeGd;6X9r{~&?7&+b8)g8ph2x4fj@je`UEMgwjFp+lBkZ2h?haf-+HDto z1FigAi_7idogt>vh8kKi&rPdG)f(R$lJTXeozc`8lOEQ*+R^f+IzCk!FonJrFtLLA z1T>V)fjg42hyMWwIjyj)`oU(~!;W+XkgLI#;0t*a!siO2>bx%LDt_;6^oWg+abV6}%#&;mwror+@zg5qLZN}SwuJx;8LN^Rs_t5+hbd=xd1F(|< z3Et$j{XyNOLxCToihG)8%~Y6BrOGYQnEC~0m6%>kv@S3mALDQ?4Hz%5;(a9}HYn~Q zdg(`@%7-N&Q7EHbwMalh5{#+{wB7 zY&Qopf4MEK?v3gzIX+X08RapUG#Ir)l5o(Oz_I<>f4_R26)2k|By=cMgDgcHa{S!; zBJ}Eqg|~+J^q)DWIGMwP;_CjY@_4&qsWN;rrIB^yT$j6mk2BtV2|4^@JLFlQGQQ-R znv*?X-A}$Q;xov83JT#sUH!d58E(Oi3J8zO|6aw1!^V&_Q!?;q8L={veN*o^o6B^y zq`opqk`fMe8|w~+E6z13@)BvUsYh;WlXj%46se+au4Y!fQXPxg07MLjBfoba8;F$F ze7J)FIa63EY8{mzZHR)P+pjV>MD$7J<2~B7oPBxAK(b2Jyg-a0d+$ZW0Y+t%U?+Mj zx9oj&wr{m$<%y+<>s$PL%Ut{^ab@yYG5|$EG_^pK3D`*E^E_c6*np>?_lBe&Zwe1-~Q(zK#hPG`q@+ zqHaA=tlwOi)f7b~<%_?x>cecZ-{Zv9pu3+brm?1!QdfZVOO=-f(X(bO%F4{fKj9-y ztRMNP8`XZ?WZd{YUnRbZc#|Ob_4Bi^SqXvI95Kns(7|>^EaqI>Uo_j|&9^Z1AEeyY zUo57mnG|QaT+NK=3tGOf#)@IRL@5%o9q@L)XUWcwWAckL)0Vg>tn+oO{C#Hz{v82R zW$)8ebivN9_Z{fio=${gJ$HZ9DdNoU<6_@?5#$$KPQR-4#q@tZQ2T8wO&Ez3L!8m4G#j?Uvk+gm?j%YlatEfsgR!`0WS%cO zw{fKNJG`@(q@UWp-frZ)PtS$@6k?d}A1wN=YPAb6)9S_e1w^U_(zDw^>}hW0L(L+9 zBYNrTIkehj`4r0N*ZEmZvvhdp)>NzoJ-kbq!QC4@OOIhPXt!JYQyM_GrMh^3kZM@D z#}RK$v)G4?5OmKlfZ->s)JffZfQ~b$J57n)*6_ zTuVi++scq*Ez$(jg~cNVJ=;(XAh0dP!vl3t(-ZOYqh%T`OJy-R4Gg`s?Fj>j6N}^% zH|nP?%CPf|3hjmCh&E+;8-4lBWZxJ(GL{Ja0)B7E=B&hcUbzom%+O!-or5lGiB*X< z7+2lv8<>lqH~esELv?E=Tgocv{5%JHM}7#gR1mQm22+XOH=hqKv|9WofGF^L9o3LN&mgt5JWVBz@~be89L#BOFST@SSr^) z@8tKHi)QN4HBII`GJ=_c4&D>~9wLueg~XR0(}kC6HPtz(9I4Zup0$zZjGR z6k?blO(d;I+4PS*0X+F)6k-9Cu-&#E{ZFddYbW1)f315^_czHhS{KDfwV^(1>d_MUoMxD)J7T%!WXip3) z@pC(pi8YoJLR+Oj_iHFY0E{k6CoH-xeTe9q$vp6s-ewJRy4n&!pqw?czaX*p$LX(k z!9V2RjlUXFai`8f917d+Zh@}8MH^HDf_-PBRjaMROMh&K%>rpmV>i}$k|$lLTg9rb z*qZlNgjn<|7(~Zz3z&NZ~F9^k%-FyW)#xEYXUld zXlhBc5>~_jE>=S~${tO9NKUDi z&yET>mufvIf|Sp3aL8qhwPh#bVD=?Q5Mf#F8!*`2_P~}p#H|{fASRbIw z(Xh=XwRT1LC&kc*mySX_Ul}SO0-7)d7ZGXu%l#JclK(T+@q~c7Iqw=!%A?9?Hvj5{ zFO-(aFt0nhz?t9EL(ae&Ktf4Q~#!-p^c$u zd74@GaTk%GV>3S}jh&Yei4S9TP*ISO)cRwvDON4{n@gl?T{v6lUOhMYBJPR zA)a>HtHCfd)1jJzg~vh9Y!NSt!FYUr-z=-c)`fsDE zpOeN?S-v?R?Xrll2}u0gDd&e`{*#?W*<{IS8T(5hY)_vyR&YLHBn*_kBG}l@&~&{s z@*MS{4dCA)mL0d5ND-kQNn@-2Mp7OifA7jKXQ|Dc)jP%i!yAy#kTiNDcE+k*E)khg=V_JOt}JYvaEaKFF9c zyRb&sdy2jW6_gf8T2)5SiSc?sv2egigM6S&7ax`iR>RIvE-Tg1z4=Sw32n3aYbQL{ zR7Bpxl-hiUMTO-)K##L>L9`qd)$uFLFS$Etesu3#F8!9GY2PV-fsCl;ihZ4%84_Wr zI<3m3DMsDlUF6q=PQ&^=&h9k4fEcsh zi=?Do7X2Yv9T#P;J@4jN=e_84c^tAHr%(PsBIet&#u9AXUWBu}p>`$@ zC0>3qcc$+y=VEV-xwsiJso@?)OB#^RcD@3IX-C%ooLEx2AcDiRu(7&R%BY)(=5adr zYc+Pp-b8yI^vEN6Vd$fydE7j%e(EQiy1Q+>bp%BM=s>zPmonzxwIHyDZNCFADbMudopCazzzEf&r22C257`HE#&NdL(Iz*X*lsgpI7&B?ZBD-Jxaq+x9?!EyxS->;s4e<<@OJ4y z(FVum*gnn3brL5$mfPXB{Oa{-K`7*#RNmUsX}C61mp#z%@Q(yD8f%I{%Q6+|H7o_f zqKi|4)g?RmwZ|w z!~l&tusWewiP<*aXsw-4PfuM+L4%doQn08+7F))_YZz~UV5dz*EqkE?0 z(XR4%;>%S;^#tOTc2A6#XtS5G<2Q1T9)ERv-m3A%v6_tKUETT9lcS%EGo{pisaPh( zGTf*l)fNIpGOLlhD~t6SX@h@XA{8W=89I|~GzwgcM>v;s)fLSX8OV%CB82pq{mnCG zoC0I>hjZ!4waPUR4!A5PE6b!Vjl?dBdwxW3RN%N=EnN(RFB!aVParx@z`vnQjzzFeS zmQ3fw7*F+q=ZQzb0%lqa#M1n|l=cxZ$l)0XKUP~fZD3{9%&Hg#Wo_!*B)@c+{FeRh zUBo1Q%6z$+l6u=bLxzyYOY*^!EpMxK`k8p%_?ME6`Ea^=AUYE%4E;h_{daDzF5H=4 z{rl=-a)v@Z2Xy#c=}qw^%9$HK$MkA!TRIyly0|7;b?oFYxQywI@6f95t}b_q`3|&Y zcg1%2{45H(LqiktXQDbj>~Zb81irg!dU?u@{vYu>4$!*(-Z=MC8Y!xPgFwIA*)C|I zfOA8{15=jHu1-|YV* z?46<`d%tMyPABQuwr$(CZQFLow(U+jwq3F9iqo;}li&Z0@!gz@?{?Q1wOOn7dgolv zk_=Z{86p078&VMQ?`*H=~c{3*2ilc3lW z>U6UX%#T{E zCKR@LUj78)j0a3Js*4woN5z};pM_nlHb#$>E0yIoN@hL$V)eM(RE~#!1IHW~_q?|W zp^;z>tBXX7bMX!H;WuY-=$~S_FWURJlb;UXt%l3*o3Y48TVrZAoaNSAXc=itseYg` z`DRA{PVmYnfC~zgh@MKD-sC*%n1BE zz?jw@a~wJAVgX`D$OMA ztu>*}D3D}Ch*UQuc0R3*kXGt8Q9wg(dGy*<0Typ!2&$wT#rM1_PbA57Y_>^>M1M*Y zn%h2PFU)5~{PQM;gAU1LBqou&Ip`ogC9$P7fhw6oCYK?Q2eJzuGXN^!W0(#0)t<58 zXgn}y&80x;BMg(xmo$w|JIX{NZufCY=i28W+{fc;OhVShVn!%;-R+>{rC{^byb{L#B$}>2YbO#gFzWANh{2W8U z@21GSE7ukH`npV~JH4keEfyTq=JOVp!#~Y({j3M0FliJx^>&2&ex|_H$l&*S|J)`h z^in-NSdUWYwt$|)=l1LAY7+pe+*-Rm_}Tr&Xf(-*I+|`U4R*jAFSEm_`}zEVqS92} z6Z*&#;qHOvfTpDL?kpk|&?U{nky4*pbs&G34b$B3vF%rujSM*?b`b;1F&RKGke?G4 zDZzJ3c$rb=CHJ8~*KBu$;%&58$L-xdr#Z%B&jyDh zjMZ*&5tx>RC?s5p#}aP1q}>H&PWbD^eS$(1C^Zh>2JgmTu@K8uERH6y^W6sM{;1w) z{%@S;TXz}LJcO=ziU`G4`W6!ASZD17*i<~9g2EwIl=8| zoPLtVV4sgm=}N4+cfE$FVUuz!l{{(sicbt%jWWvhp&X2{TDOL{jTqR!jy>BGpYvy#0n-Hb->#|w|5>MxrOOTpwmn~+6+db42@HmQ(l9yq=&w1 zqgJCi>t4xpDEVEpp*}gy!w$E{d>NODw;K&yT-x5h0%M4g*w*?WVFth9vOz~n&!~k) z^oc06^(cH=$x^tJFvH~ZJ|~r}>(S6qc7dRMvNBq9yHp$WL0g9diq7PIM@*;w-BYVP z4u`zOZMAO^U&d-%$Ur!6htDQ2d@h=qzvXPRy>ZcGc`rSbCYHt)BpuP|46=(7_DBL- zX_S-eXHC;j`bEoZId@TL99@-v#9qaALsblNgg`5!vq&8yW|GHGl*Fho>g!NrIp zXQd4Cw2XSZ9moi_&+`Exyd}(L`iYH!{`Su#jA*oaEyroJti1s_bl8eSWj)Cg6Lx1XUOoUJNu6e-E#sVai zrP#KuZp(*g`J`*7>sB#$6ynX~J{A%I``tAz-O}dkqTSy)s^<#~pet%|>a{ylI!&U; z1_qfB&R%F%Z_JiR2>8sRr`lOt^zi3v6pg_+tnKCm@tBkZIY#~cUPG79*s)>Bp^Z13 zacBxIM-nBt@Edoou5=1`4NPW%mnVm0+x?!(Yh8{f$VsKL^b?jryV)f^Z(*&-6qEJy zcnlq#{C@XJ@;{5WyKT}J%_!e7=Z4hc3^lJs#l=NqB{4HO!Y)gSrnzWZ7AHtaB$P@t zSJF<#0?{fp#$D=xJu+R5!W6WuvZq}IWVM0!#6uyWHvU`a9j+I$50TXT>2lRMBfrNR z)V-kAG-oM`EfC6}zyiu-8}ny*BDz|^%|}#Ddu~iXFV~z*rz3Zyhf}3F?mCgPF=Vd} zgJp_@O-JHop5vnlA*@lw_KkA}WGuO33GZ8oq?EUsDtmkfhY9{*?_$Ray>sqJlQiX9 zObKc#G9o~^`V5Tes1_s3Foo^B`S3E>VQcf^<}cRHc@OmRzO1mr)tXlY^-@_s=O>y5K=dLJ-u`3U@d7tRmWR9%PV z14*IN`}OUn5-oW+?9toh&SzJ{R;|(1Y9&IRoqxcYCFpFq5)ABmDPc^w0M#R5pcxtn z-#uH}`g;rV(IY4Z<)i16H}2;(ny2yn+2yL0!&zD@EVxE3A$tCZH#q2{zEW8>bLko0 z=6y)5UaJk~fpDR9dbdM8Y?F0ko6^x$yrUDe4Umw`Vb^Hnb`9`l% zoiPLfPrT-O9Ry;q?}|5nWmyd06n8xb?IfaK8FHIE($eV{=eT(K;%*eH@Xp)fqI?V4 zLS^!~j;~#xa>)JD2P9JRpns3j34%839Cs55k7!{0+C?h-y_aJ$EmsP=-TMx6E`vkv zF6?~MpK<*^9#%Xwj^8yXmAXhDFScn6jEBQ~j2prdhC{pjfv=jMXU-RiIr>I>)$KRP zaXy{DcDnm6R0-Pt?v6`5h{_AOB*E$ymmuy*FtfY=sFXo}_Gibwo|FSBIXgf?g>{dO zflWg>S9~y#xEcd4*YxAdo+-rYzh;Fl2m?z>x84pX(sy?E$>KMft%KL@{z=|NU%NjI z?w2X-4C4`Y^F?B0I+PqYaMW!7u2`y+I!iY~U`rt5--p8H7I()sI(@N-tur3JKhf;5 z#fl>kh%2Z&MgxUyBDKtG%dotlzWRM{D^8*C%KzUeoPM_tkxANQ7TFA|VSG#@Mo(_N z!`+=>uj|)z9%tz0%bm4K##-J4!&&_fmf1Vs{E5l|zXCo`J)CbCt<~ifbD#ID<7Mv! zCWFU=zQuN(R)W-Bgpre|Q|p!Ot`-+03Ev0&=hk0#mw&X!bNeu^XIpgK{KYXi!ZB0d zNQzH6O%glFB+|%Dk#K>>7&sWbHI!m~bOu!K;~gT@&k{zrl5!7)pl}QFAcfyr0OvTWRp zX}(SfTj}?hVqvpeky8s?g>B~;$OQXkGwzLaP$B;*pEvM#eF9oq{I7?-MC#cl!bRKMH;`YRLTlvR_Ix6kFID(2iku-hnDFh*YfwFvC1q@ zwt3zZp|aoJKz(F-=D7rgzzak{ml@KT&f~|9jU!Wt)0yX@sZnk<#Xijx-Ve^19}82k z>)u7ABXQpp9;G8K3JgdZ3j>%NcE##&;5TMbqMWK>v$?u`Z3m~GHtJ0FCRChf8dp72 ze`=}Ut6}eLs09PXkFcH zzd%bT(&qSu)8fmIaSdFA_t+WV>jZarJ>vo{SGlTEAP&+fsvOHg@A?PgvG)ZpVWoG+ z98O^a0bTpT5;Rg#tx1U_64F3fG#Q*x9-&m_%K@p5TyFzA?dH_w+fsTW8oQt?{*@mZ z)|$G1{qHykaBI~C^3;6e&^j9>1mDA>ps{3m{Bbc{eSkas|Ll zhknM+45`0Ij5-3MaG+k(>j+vJ8~8E}#Jg#6A=)ueTYQg+&}_^e#V zUoglV55ncnGbX*ck_M8&;WN#i!@NhN92<+DF$52t7s966+}_fBWz8VdS0!<3N<>>P z^-AgK;L2vay_m@DzL1Ok9gi7Qy>pyPtxoBZVCPes7N)JNocJRe7O77wg9ezXJ0@9< zd|l+5LM{LM{$q=ss500&EY@ue>lXC0Eq9+;2~F&_#yG;VUVham$7TJtkiI z&ZfkmVAmLvoYASn@Mw-4S0|-gE&5T|#*JWG<<%Kt_1(*4vq*y@vUU(LSe17ma`2u* zyXNZmd;llTJ^y-Td~cAQW#W$X^1J-qi+SeV+J^~nxZ0gXhaoz$JutsJ5M}cZUX|0^ zZrFejEQO&46^?c#!0`3WgBM#W1G+ey7nYgpX%Q*`4#oFqWSbWjCoTzy_@?;k3=jJ` z>>fA9#EiT>5lt%m2v0+7xVJ<+fk;Cec`n3N`#vMfaV_yt}c0esX+*Yf%q$0C;Fta0J%E#J+AT>_for7xoKIUz-p^hf@8Fz)bgD zJ4Wamv{r{J6+YihdND3O;piAsJ&K?iP+BA_X()?|MT5=>f7sNereLZav1T-Gv7aB z>+ZjwsWV7R_$p4AwyxDX2DZRs&4e77rD~2{{DFJ!j<7%9kl6MHa(#vjzwvU?9@%&= zjh{4ZnSJjL2J0cX=Ql~LV@4ZT9Mi4Uw*K333`c@DnPtEDQgU1B4aQ1)hV%_I6SkPh z(8|uR`%{OS?};af1OmZue=tOIbv7iCg{mW09DIVnI$}@lB zY`SwL@m~Oz^l_J&?N%4o6Twz`w8uEZS$m1Iky{Xgohs6{!Xy8It7lDF?X$cK&=XDi zCdzAV((QXsOWUT)lUmO3paI3Ewj?!j>1pCt|3>V2|8~x#8;GxUyBiy9SE_!2e4obz zCbwz%;uLvB#H%C)yZ8`|K@D$GSGp*QY;B$B-CiEA2a&wkkyo{m9M(uj6rfv|@?K2( zW;^hT1MRGULP)dMKX{W{7lo6YdWAPTerhgsK(nve>+atz=kO%gHx=spF(t<5_ly7y zz)wJn&bQlW8@RczU44+n;5K;pl0J2ow#AL#`DEvHj#A)5kXP6B*Dq1!x!o4(U12ew z9_*H2E%IWz^?Ie%Mc8mZb*QfZ2*IE)YmWF=?8SH)0Drr%Xbj@ zy35VZf&!a`^Jl?A@s~ii z*G`HO(Y+u`Da)>MIh;zTN{(I{W}gPJ$lMN47wa|~DtAv@iOZ5NaMLW~=BY?RO)JKut>C*fEAYob$$p3?qktgK)(CT+-_AEfb zz${e%hw>}*Z1(i_wnl;ao@pXIUHlt-eeL*>@_(6s=m-c1-v9<_oRh_BohJb*SI_0> z|31+dpmkNR(S=$#UuzVL#b*0-5gxH`1&oY9*xTDnKYvq;lvRPg9^W{Q?@NP{8{^jT zDIzK=y7PFk;ppbJWQXd2;(S7&+?5}-2MiJT@$m4F>LWq5<^OpnOu@>EDkLOyeR~_# z$YEAAEPJ_6gj=`fWfvO)U|~aES4qxRzS&cjCne2kd#6C{aqqbVBmW>Eu~1enVL+ja zSM|Du;gEJZjLqa|b6L%;=@<0^*m!(2c6n*Zn!}_Ln3$I**z66t=?!=Lp*_(Rj=sq{ z_3UoED<5V8uNN@fk1j83HmJAEVGHjz?f0&t$#?sz5kHP!Hn-Z5%l2JQ!^evM5nbPy z#pLvAx0(>&__e-%FC}ATaacu2>q(qE)<<;38F=V}UlI(In{BvFXn`G0WRzk&l+HukYN7?gFbJcFr7^3s*Mh9~#K{p%9v>XM`J)~gxN;5qESJ$?;H zk!SBRRJS;<_e?(lcDSRBM+WIdo?eHBKDKX1l;re2TgNo4J4_+b5RuqZ-)5f}##77L zHH*z&YcZ(bbi8054#2*tY!0XWG=j~p^4*w=I2=Ems}BXQ=_k4I%?x|}bmN~N?}+0Y z86!@gZdAjfZgE34x<_zki!wu&5=EQqa`&CF1wr5>B(MKF=I|N=kNZGr zS=Jgla>R&|y-2;q8&OF3tIwvQ4v@DfrRXq zD;Q))tX^4-VpC#-tNzynw)6?~JOV3mFg}T-4gzC;hSts|FcP_W!*D8#4Rf=S=rtDj z3&DZG^Tm@yiI|{G5n&m)fb(6T!pb_??>RE{cJ{L~&XN0rz0G^@g~~Tec-j?213L(j z+U3sAV#}u)jCR{xzs#)({di?LT@Jto=P^k-C?Kc1!S{J4uk}eE69)qLE|091M0t7?2Jf=#Tqna=VF&cf@)w_J3@y z1Gf)d+CDjP^R{|i&t+DQrJXv)?n!SSlI*8y@>0a<5W4t)qr+ed+>eik_s_~#i=aKI zwXG2O`>bc5ey(4xa9gb7reFMvgm(|IR<4{l zjt+H>8PT>LFR*!EO^Cp}9>@J_F1kqH6Mf}zDmx{wy~9FqW2e*+Ujg9#r0dgt;>fLD z!M$Y|$B{tjzO^amuACS9AA5FJtS21x&yJrcuT7%yQX8f@mmNF^4p9V8v!#cO&IBekY&TSkn&sS-#I%$NWAjM^eJ( z2Gk=Q^7tbFNC=<>0rwy0GwZ~QtVd*|XBD!;mM_`j~_9L5Tu%#~iiSa|Xk~&y3$LC)(OvaB4z3_ikUM zFkb;b4&*dokIGT*zi-h2{RX4}yiNFCwLiH);^?{gfXDt(vFX33`p-YGlpugz{8{V+buQs$g%~(hp2m?$01idks(H(9)dldkT0DAnWZ`-o*=hjAplWQ}-a4&nR zQnx$Gc^iHdXm1Q4Fm{5;WM7Q?3v!A^RXCKMWJf3#RfDl6XXS~u@0|`~S7zY+CX`OI z;}bI|AFL1Q5v+Ie4ZjTsdj{%oxZh3uvydLD?xY@IRL;u$;q7HZsA;!wu(o#|qQI+OtI zK~tN_90Lktjf0J<-7A@V-e#ma+l0wx*g}I*y#RldIvRD+ng&bh*YAaFMyp}e#VU1h z5e&S*k5}{$f4SBT*;}I#eGTQ1nBWChX zgQqQl9B~v2En!!&I%UQ(cgAtH#~_!>lwMHYHRv2x@J#&>6KBgj3 zLRe5j(khUE=AU8*QD9wDmBDvy=_h(JIlL-)CqqLIo^;u`fz93)>@B=0&Qu zxkrw_#6?c^flIe%3mQ7oN{ZIDTaQwo!j87};zz=$7S_$smT1y*q`(flZD|9WCILH%!O|m})2M{|+Ln+Pn zSBr`YrMQZ|vi758-y(xKlS(AF@nU|CtO~7^;#hKdjxe!pyN@2#s%eF6T@y2O%z)%; z);*xzkXk)nY|>{NV(3JOhCe)uc6oA$!nI0{)Hy$Tbyg~0M`Q+zdIz7Vi*2iG%BJKo zj9q1IDm?B@vqw~7572jdomQJ`5O#6mQjIA1El5P1AHiM<9rb`P+W+xDd}yIZbt40Y ztdZ{D;eSB4yopgH--EkX&@1wMkx63hz93Cn!!8|`yuy>rtFei)r{UZapv$+L)(f{L8ZqN?gidiOfU0)qOJ0*O z^HNO%6Snlu&|`taIn8px-kpTW=?zsJC6jX`wtp{IzZ*du9_l6}9c$=K)& z!fcDXns-aw4{q4QPu=eOU3TjaUz4Cs+tCLC>11=}cw>|avUhOHU*s$Rzh6O_)Y{PI z^Az)q6~n<3Knra&L(%!mucx~%l5*0a$h-O&E2%G5$$;0;5#6l%vF>+FF8+>1ICx?p z+A`x4Y1kQCBM@;pBd7G&(a9-l{=@T$Q>lE46RFKDgAwDD>SIOfjOfh#a?onXWWJXE zj4DgvOD4unH+wuRzdV(sRMUw+NWKcgDq0oE=)fHKcsGlNp)Jigng>5LHz!ANHpA zPt*5*3X^~C2g^TN&6wyicw(H`S%Gt2(D=02q0#n$BAGJ;q-##hL?op5f0*V9c8~

8S$lQF7Z~@@NO3}5>?W<3u?IL@?yDdvJDtMA>uOKW zyC1?NTwRi$|Nce_BZWKOo?2C{+DYUlwZF7O%DUqu1?Xd(jA{uwVpb*c=IZrLsQB<2 zJGlji-gYX-3qk5EVp=%|giRo!WA9$`-)is4p|c1R0Ea(mj_R5MaGK5=5kX8_0N>^! zTVmkBcs_os!w*00gT8@n2gA!4@ba~Sip|uNS}v)?`Y6)zrxXNat$ZFxtira|OlZU>Fn^(S6mv*1d;~>4+1~2<+ zg?MVJ5U#8jAXHScrP*pr5ViD@qDv}tMGv=w>1D9&#u~!$^j!t7yk_9f-K9A5#N?F$7BOa{FQX z67I#)FLA1^zm=!B_h&994CS-nA1VXH*|$bNdZ6OVaXTz%ep3G()h<9>XZ^=)DBL0{ zUAi=5J zh)`>$LEDg4I*H2+2y5K?@5#ufF1eo;-B%@ zV=;j)?sd2RH#HqX zCSl2P7hy^&b-r53w!VR>-%uW)O{G!KxB?nq6>1Wy*$o&TGw0%ugO{!zIVEJFChRbt zr1YWSz3)L@FzJSmDK&Lqp~Sq(KD%O|^i;D^&F7IUC_2WwLsjK@BN#~RblaYf8YNR8 z8Xg9xrU|ab!uBL?x984}nxsIDumxI}q)pj4HXI-gf0-QYj$L>%T2);B(d1ANT6BGr zfeu(mh_cpvP2vW&f0J=zqRzZP6?X(TlRE8b9&)M7Q!sF4<7NDtZ^`zPU+k1{>2IQD z?@HW2`~3We<4|{TCF5fP9KV-M!Eu82@oJ{@QfZcf(FnAzJ zbbK){0(M^6>FAX1n~u42k_)|${w4e5Mr1Cp^ILa}_~3!XNY%bKhZD5%A8p?}l^+ro z;*ZJ^2+N!mwA|h|vN$00^$ku(j1<^6tA&{<>7ZO7sh}gYFXT6RQrD4{NlUxH#)aBxZw&0>Yd-k z(9lZTw8{*&@D)4Df|6 zena)1Ysc^pK^J?}Zc*x0Fuu|Qqg`u^u6=Mr6e~FG#NUHJxBcVL^>hm5XZ}iNb1{q` zK#9cu(wnWbm(lHV1!+yhm3l`oTs99l$Ib-zl4%z2hR)wBSK#){XilR_@@~&x`5Udr z^H|`X+n|aAKzt6trl>ep_}LVRX@6xlvM)ekbVde){j4v1v1L%WU9#kfyeD`ey*68^ z1mkMIjroRvKfDI<2?-CGBrM2Tj^-smL4H3L9WSFM5l&rN_a;SdO%-&*srdE{mF>$9 z;m%A>70%M>+x&JAatfovS{CLS&6t_sK;R?Xvz;-|W0%=CgCedA_<^<$G!8HPbgkAbm z2*&>iiqmMpYBIShhPhEqeA;sITU|t>Sm{aox=38X2HzmBES`Xva~?F`6jI2to|}>9 z=k@FiL1d#JbiN48Y=;Fx6J`^pM0|cwBsZmk2x}qAd&mdbfW?)8MB}C3Y}*55&bti+ zHf&Dh0*ZE_Tp4_ZTR+0pLWI@%v3vQul~r}*wY2a;=d7nJy^= zR-1>Z$A)zY3;@GnyX2LA3_zv?pr*KA@h;7FKC7hsor9F)ul*hEKE8cTh1%B$_O>!cxnjti&xCE4R3A2O(?H`Of`SK$odKmle3%zU!X(5EKr5~ zdNBTyp>#gpm7JLsvENAd*XZSzo@vc8p4o@`TzTScsU{9ssbqM>&JQq&YgtKZn9q15 zp{XedDNsh&X?9qvocP-|jP>}9X#DO=tsue2_18@1_E7=g_mrlK zCl=dAEyAZfMFO^leh57~d7jpxa4cnP7VYJhfT<)ftMU+2E*|9!5d8$tN13XZXzpQONe`$)2s;o}pqt;~O zO5L_nvP+Y+%Efe+VZ;i9BJDbgAro+fD1-K0<#W+D4uu{B#d;Tzx3zcnixyWzNM`5U z_p8LVb4+y`UhaB(c@cj9gxcN|x2`E;=Or!9Q`DoQVc6WJyBC%d|1&Pw zBFV{N8_R!ilmN8>2Lpp6D!e8dTLVLyKtS2Kk@I*fRE3}XkB>yLSC6VSDi@tO2DaLQ zO5xyT_9&do4faOs@~KX}P42xjVmc!{ITC(a zlYd$R0MLXMjT$_k`+{$^;@(RFuz{luat{Mb!fs@+Qc2HyW65QVol2RG97_C_xtO4z zzq6ILPr7hK{cyQmhF#}+L?nQ(UkFcmAru&%z&$o2UtH|;*+j)5_9R1AYg4qP42fKd zXv@lD(ME!cj9#7yevHmQ(`VfjzD|=~(-bJO*!#~z5OqOcgD8iDMJTuQcosZU0uWg7INvjy-kP$u ztue^lSLnV3UkfzIAt50<-&$gYU~lR5NU(aP+GF0Hb)7yNt*7rHhd4P`2UN7=b1@-0 zFMl3uR&m1-?@#4HxNQS*I<*J;1X3yFD!tCfUK-c7!o3lcsMh48hXk~%U#IxJIG9g! z-?SPY_w(l~XuNN^MX`(Pc?=l_&u**qewr}i3bi@C)$jsVMcy6vhv_W0;|(Of+_(38 zdX}d4Av_$<9zib%-;v<)dm%%BWO^F`gv8e%FWpot`Nppg_Mvy5?kV;_c!J(qI@d9y zO+VABPnei{yUMp0~>d$kjA!Fwst z9WHWoWjvEoJ8QK_OPkG$+1!%>zd{p(zI*P`7 zkI=u1vclA&gjaO~+Tv?~Fa;quT(0lNWcW#yB-oiqCI>yK)$#KX8okdzo+kYA?F=$c zpC`hkGQ3FisC3?5^&{!oZU(;ONjARLoL2aX`;hTS@<-_#Lki_GWH0>-mRhC968NA0 zsbLT|{$=||M`g9erG6i|=N|`-E^Y-HrR2w*FB-O%x~N!xa0N?C1Wys7_qV3)8U0v6 zIo>^pgYVG-xd~PVf=IF*t+v@qCbFPRAY1`Oe19EJbs1dG+u>wh10w$HlQ1=^F!N5U zVxK{@2=yvuJ4tMcjqI&4nrxHNTCHGn^_)fo+EJLyT!x}vs;DxoW16JF3FRkt*4b+d z;O6Ke+#&mgThV#;yX`%b`ZDv;eCFsQc{vBfEm*V^4VJOhdmNdfR`dOWV3z~Q!xas! z^(c_q13*?Wq3}gf0D>;XoXWP$?-^1tpDux*S30%-Jyq%9D}1tPw3+^>u{XK$UD<8G z-T(s*E);ri^(q?sWGnG~g`u=?TMSBNziTKQ(Vd&-qJX2*0X8THWOO3yLmCF*QPvW5 zBcFNpiW}Cw49mp_3L^VzG`b!w8hHgPs#{fiipOn~BAc!F192<2Xw&c9 zqSgDB>cN`i4Y9wc>tP06Lb`9zZi9biAVeGUP=D3Cxzf$KjCom^pF>DQ2UUCRQxTzi z)KZYked()yI+k#CK?qc=$t3$VO~i&+pwg8V~mXcwVC6sC8!|+Gcr>5 z?2r1u*aplS{2K5#L{@j;iIt>j^5Z;bU#&7)ZMdQBF<^%gQ_1a1NiOTNc?b&u3)T>8 z4EsewYlmdo!-tZ61=6w~?KF5{av+QThaq3VJ<$k~gPoZO7pV{uW!>C9_Ki*KNj`YC z+Ja8H0?KFQBShuke)aTa^izvOwe}i{_Jn@~p;%)7w%>aoze=e1M-xCM0=8laAX)>--swMAT~J!5&-=ubKm^?BLZ4jHB*LO)<{sWo zEZL3V#{bNP{4bskS>CrH_@dUJ7ypX~&;K)x*-ZN5m~O}khi-yZWZA)dcLRFu_wV3Q zP4A!fxH?5V|0_b3r2K0)+nPR8Ip_jk^(rWwvU>`teg9>deUV%}-_xS#da=0wSFzt| z6kUS;7kl^r*69DIX#f9jc-|1En7u-Jf6qIX=rU}Q8APlGLr%TV62Yy1gaKQs5c=q9c41u8%h7Fe@vY zw+JdW;Y)X+eMB7+J%8WfSP+mMHp|iFZ*soXqIMdK!=B)sA9m=-m#TXr!R&38pLE=Lndg6R%&kH9+YO_snk1uGWrN5s^D%?XgquA6 zDsXd2;@HA?zFS14J@-W+*Jh`+lBpF*0TKh@5)iwSenSwa+`NAJFN1gekzTxQu_{za27b(BhunIlA}}qu9F@n(Yl8Eg z)q-o7UO-O59rkhy^Fhb0|3Z_mlAug3siUnK#{?ZO@n8Nr>$fvvib}p3sk_;Oze24# zDl&U|%)}yY5+}5R&D!KpO0FR!Onm1y5L~mv7ks$3DD1Ni#^5qea%b}d9ey>NfUa5)ASIRT6tBc@ z>!%ZNvR;ZWUuXb*+jI$b9C@vKfYpr zrakTKUpBQS3}Lu&!;5}_xNe8j37$ao8f}cpWpuu^@cP+YDa+<_qeWXV43B08>~_m) zIr!1Afd z0>KjgBo;fY=crHMDv!U3#dgLHcswiQ>~;im|7!Vh=TR@%9gE#;t@2_8fqZp+e=COU zfZ*v#5tP2rO#5k$_-Jq|@#lLjw9%c}d(kckMm3JU3N!kY&DwB%_-r1yS=wv(8KGXT z)+$f~9w)098(2CmxkTWoHLJZg99xAnm%I>Bs$$FgmKA4CO# zD(bfw zQ3IRqpq!m4^O9a{Cc5`8k$i#=;WDjz0zw1s@My-WfIVY?+(%!eK3Q@^VJAr_F_U&muaOKrAW6Th4PF0+c&L=W zOBsF6WkHYVr+WnNcOJ+N%3iT^>_NNS$61uV&1FRIusUi!+&bX}?DV8PHFwob@v{c> zU3k`;12qQfM9tb@2>j5{Q^vRvJIhqZA(!^M^ z*b#VFcqO9Sof*cFSVnm^bG4?INJK(+@z4lfS#lW}u>_jk$kOl{A$eY1Re^34%_Wll9{$%LiyffW&!?-NkWx#(Wetms04BVu`*`SmLG4w8Cvj*nta9!@HW zU4iPK4O#Or0ao*v+f8|^&#byl)ESbK+~Oykd>W{B{Mxv<+wx6%vKUgbxt&q|!D49& z)}#ABwUT7?cy)=H)p5y$6($j<%+HYmRr=x_ zL>nrK4_@LjbqDe1Z9D~O3q|#Ex5YJ`n^TUc(MIXwZkAiP0hLfnavOc>rqZ=1e{XHP zM-W0MlYfbM5$F+_w;&ZA(t1gw(o>4gk`OWbSKv9|Nts<*bU+BqxA$b}X(LdNWGT(J zXCSi3+x+8gKMrpolOo^h)QHHo2`QgS7d3T9+OybKM|$h2rIv=p;_n}36v zyTq89IwDZ)Nz#wGH8Q{?d+I{WZ(g1@D|7V!Q_)(*a#*NN_#IT|D}n03Q|o!8xK$^| zF-Xi?gqW4;3hvuToGC--{?P-<$NiXml=XBTwY{t`QtFa-yupdE))lUk7vQcAA{!W^=YawYknz88o5h zEt4ECS3_L(UPYw_gb+Cy8+g$(Cxy9)YIgjzR3c{EN&O|oTkg^Rz@bU-YxFuzw5^6|O>!k{*Z?G8aL`8{(b1yIa0qQs49qeuepIPcYKL_f+Sj&ER^)g`|(*v0F0t z;yM%MbSP|iOZPhygM|=A3p{ik@jApiMUR4HDAN9!P)-RKo~hrymB?n7m@*N>Q7#!& z|55N9_{pRFbU_|`y55bH#}5Y>C1YW1HHI&tTL6hnB2DUS^?$^I(}+ZSqc7CxWHyx! zYmtMV<%^y6LtsErkH3nIyU;E++OKs4_7_*4m#4lH3R~*dGqkZjr-g)sPUIQ@k^&;q z@{fpBluPcLcNY6WDYsHO`b6s;dIt}&7Kpk~isjB;=W8U%5jZ`j^?-baNbV&QI@oBp ziiI+-Ai4wg``;+o;Vp73rLHZEQKbgtcGxhrUJjX~IEh2vlN+tOlk1zp#8|*!?!84s z0jv1DUx6yI+R(oO-M)WtZ%p@Z42LfS=B`5u`*DCuOL|pF=#ud?f`?Al^dsdzQm~ab z$ib2+SkKx#p$;-2K2)pd_KRm_`);&ZQV66x{$0aL?A0UmflXI)!*rMvD>bd=Ut(uPH#hRLkre&$7*zt0ZXRp*zvaA6@?KunBWT&yuM*(D zB~myMD(ularWvuVw4^SIh4wVOUthS>K0tgEA}_g?QeToSMHl3GIMSj@L+z)N@K~jF z1WEX?p+a9lkBobS)w+U7HIGxOQ($1wFBap=3olb~a##3;jH!KfIbUvK3k>~`y>{RA z?D}vWkC<;w=^_wsP!-z5h~MpBb^)?fjNbWzJN3<;_agLFZRfFzS~A81A(0uZ?jXal z*fGc9#P7_jupUo?j!^BCIPCu}lW9k@bOi{B-ye>CJQ}W6rx3^I)G0yOP3_gr7Wy*j zLOlt$FK-+DAI9D(Ij&0kh*th!o-T%vdy7g4! zoH2G)oxN+Xwbz_$&b?wOjYb1DPu5QrCk0?vL%!aZMLMqs3C5IeIQ7F4qD! zeey7PWSs*1wR3NlAN7(s{LEb*uxdM1uIR`pI0TDGI5(oO913G(FyzcSUbJRSN;G@B zFxP__j4rR7vN!^u^JUW_YIYu4bB<&BNJ1luV}58j48Gq8-B=P!i-(KkUC`bg+32_V z{2TxB9v*-|!kR8!y1wl3>P9ZKdun?vc|0`|dT(4%s@3q6+Hl43@EnnlWa}t1^jEei zTKIU|-$g9tZ}lL-!M4G0?-qc#cq;sf&O0_(O$-?=&%@y>rXTauBP{WHN*GbIJo)Xz z%yp5hz|5vXAbTTu5SXRz(%^W^?(KAxa2hjn7kI}}+dpdCY;cl!VLb|R2CNy>fzAk= zQ@9I~3>Y27OkO^B4S`s5`@nXlJqE-8heqG&=<)vn z|Hw$3jKleG){!rVJGXU53BH@cBbL7ox>C;8loS-TPemewy;Z65Zy#2G%&Fa6A0p&< zh+PeliBlx9v&^`j)rEnlUTb`}XHU{e9X(%+MydS?hpFpSZ6nftzj-n9=7!n5_`N_pVEN;Dt(v(-#yRv`_)_cQ|9A@Jg0)8D~*#8rr zY0nx}w(6Fkg%r^=pu{r#ZJ`{^k{hQFw@0u|&u7MdL-XEN86GsORjd<6b@nX^`~B6z8aOzt>cyt{g1?8!oD5-x}A|NF~tT; zW$)QWyhLU0xpVsTqf=qUrY9)pS6}|>UxYgAjNeku9)@RX^+`-4Y|H13nL(D@gx0t8 zi%g>G;#qB|Hz{VGM_yLu8aYGZULZ^}CnUtr8eaJTN${THY1&x50J1<45#+yhMHkLF zZr6MBmO=4=cR|*V!1skyuPKIAnXnjmW~N2A%N?VVVC&OqVjOk9kUus33C zCLa@Yw7MCzO&+#C$@`y;$CbBGE;MKZ@dY9`^MnX+)oCc$jm5(|497**1C3ZSh4`<& ztI$?oyrIfuI>I0zCL%^{p}U_!VWTR3-w5O_0{KNC_s3V)4cI)2G>I_?24F+)hzRfn6>Um`U zohKad-3s!rXAE{47p3xa|DtF1n?uM8mKDsY1y%gLO8d@Q!InD{&Z3xibsr2^)szhb zf;m_%Y5}a(O=AX>+x^z30_K_(3TFht#&zK~!&>RL^}*hEsZj&%TKb!nHURw(JR zc@eKpPup_eNNMLZ?HK`jNVVBSj%J0%>K*j3;27ec6tbYNYM`Os@Hz@2rzObPs@PP# z0u-GR$vq8Z2ELkNq(mr^=a1i1sb^Z031kH%16O{)S^Z)VW(=!yr+8UkR}F)306h*A z?E&%-!5|^}X_N|2j>eHA{wVUGyqvVeRk{coV0q_k1cO8VxylUpe31i!IKMxfq_q@@SX zjsA%eCwJ&`=umQ>E+x+lpFwK(@EAGa!nt_>)1H((kkdWX00RT-pX5O1eSq8R9`5e$ zt_Xk;5B`hFPcXe*LC;7@Hte(4+@Y+s--UuK6~nW0{?J9^aD>w6cMr-2XnHUnE321u zA9B!7KOX)_Xblv>$b%09C0F3P&m>g6BnJ?7x`MG&42x8&zB>ZP}^h_^WLtAWqU>Y4|2a` z7Zd{7TS82S`ju71fYNF|ZHNN@zUBVL@n8}~sQ;yxr<-`1JYf@|sgehDoN z9Ck2Xc#%D_SzR2nqsgLX{vTZZ=z;wQ&Y2ZmxBgq2ZRgx&lY@r|&YBKVW&*Y<-j@qu z9y_J140kEbW6o19NyhF@cesMH-6FDZT{qwk{a=hJIMZ@gQ|NnHeN`GrBE0|Krz6g ziT=<8VKELT(kY6=HqnbzXN!eR-u+a@Jx6|ued3{@4&?3cK#kdlMphe`jZTR`nd@F4 zJk)Aioa8c)i%M5R83Rzn6jkzdW}zXtU6o{9U8%d;$^$#A)y=e5?dtx&4wm7l;Mgs@ zpFr&3pXYCI?7zDE78bN;7X|@AET7loXxd7@yX5~M5488yZwltrs+DLP8%FXtp0oQc zV9+@`I|kW&UKqgk*Pwxy8lX|VBIPGb`sA;TE)P^-k5x$8r%+EHP!<|!R4=sFY|#?8 zPRWcJg-y8;vqh$|f$W|f#M^|?`OPuRKnlc}FJVCk4Nzz{V= zg02vDAeE4+RO10bs9Rrltov}iH549!{=XydHZl9RgY!m z^xvbX*|CGhS4XsaXRE_R_+=jAVzq2|Ip|ofZi=L%OK-4}Hh;@1{AYb2kcXpg|43J$ zy}fgQ%>5-DYNOW$KQ54D_vi@3O#zX&#|ht!P@u0*L}Ev1w}VsI{$q`80}(2$tdqt% z!8I6+e{d60=;q#WV4#!3{_B$ukIMstoI_nVpX%R)xcmtMH!~unNbWsd7fKw#m3xYXb*Wq6(D`Zf|XNvTxGx@4mhH_Udn z>sXA4K=+KX89Ln`-5_Gmz>E!@5@xQ~!1egy0;k_v?Vt11)!_EiO~r--N`n5yaIt&} zi_?_nr zL-xJcL<=Ar!0Z1WH5r*9;4%^{_rz#!;#Ul45a9&#)|qrXG}J4ep|!5}bpIn0OiV_? zlvvjEhrkzmyV*P{>1v3nP}!xO(;BUnLx(m2%I5$vOF|le31j#e&{h|g*;@1O>mchH zc1tFZP%4+g;c(ajy|X{ifIiu2kA9d=!40vmGRA>rZ4|#+rh-~oVh09HLO%ZTnS7LU zdK-#Kro&$a9NQz9GMdRMTx76-NyI`7{AwiCxq=oXErCM8Pq# zpxpEi3`kI{R;$9>tp8MadD}ka#Jjn<56!9q?|M^KWQ@@pjp13<6eX+f7t8Yz4-9}H zOGt3V$@qqxz~0{O@yCRM1L4p3df3LgLD`M)K>wldqwPhkxBbOwaT! zAdzMF!j-2#8o%LxfG{IDR@dXTbF>>J9&s;hBov~Uq9RhD`GE+=9DU+NKZ!M&b^qb- z`f$nMFp0$YM$);lPOeOYHt|tJDLKalwBVf?Mk+y*^a3=3m;K8E($Vfs9IB`N`0HFr zsE|ajPs(J%#fF@p(o`kMKkd{S;0!!&+_tJH%!>y^ss_Rk2NoaltourUt0%GzKNT_r z7Be(z_5o5z@2~rh1<`svE|?PiUtkT-uVylW=fs`!YVLBxFY}mFYJAA z-Y?Z?I}Q;18-h{~L$87esFnAs#LA$PAoy?iNc9k{|Gl%r`#;G1|In9cFxVU$Sn>kk ziT-4+1eDt)t8$%x{6(bflmpBv%`T)>>LKg+XbXJB{k6ik_}^e(96+R;oi>M^Ku&z> z&q4(YQ~9THvMsxa!0}+rqB*+}4|YGJ+bhm{@6jJq%2_;B0NHHZf79|s{twJXv?C+~ zEXK~IR>n|Z#_o@3y)5**T)99_y>EbsunT;@sve^FEmNe`FwJPc zOAK>K5P9?p2H)WC*VlrfVKJ!QC2 znuEH~f1`o%>xSvxB+s7-mF9duBt5urBs~6gBvdhlS#RY)szSE}Q}tLUK65quY&0KM z9(dZW@4@uyor*S}i78fC_w{GWwPe=oD{nM{bTr-!#WpvWX5V!8Myf#V`R)b-&Q=GN zO(JHf9>b^J=om-iL?>bza;GhireO8P!20z!9k*XH3>8J*aQx3}neCBMj*-}|dHa*9 zz-QZIF_X4$a*?Tj%GvH_3uhJI8;t4STMpmWtx98^* ziPjXqet6}|4R zZ_*@4cNHL4C#s7m*t5k!do9XAs6vV%)M z57ZZ5AXyeV(I|qL%I1mefX&T6dwE<*|KPd6UBigtu=#G+_#wA$RKDm&9r~mnz}5>t zQnMXabeu}7!Bxt1;p(;UKn?u0B!cA)|;B534vn513c3KRmN~K8zvy>qT;iuFlOMxt2imM$K73!lNVPlLNsWy+$Kr?$e zpS@=gjx-6YhSs*)->P3cy{MDRaJwIeZdO^T#>CViO<{#0@^O0tMaT>z zV%R6ODQ4yA&9wryLE_;30N24#iRX6UigC8nQLW)3G3Vksf*G7TDtrdFQ0HZBxVEeLqf9C-GPG}5Qj;PRFONM44jWD2peBD91>r$uAc?|~(P4oV z3=(I`Jt~WyLBz(u3DuRQ$IfjhNKm+#bUQDW$G*q|_Rj#?UC^ zh8I`)nNp{&!g?NPiVW|rXKK`W+S|#+auHiT+F9DS{v5NN7rFkC!tKk1n%&bQ<^$-Y67L7-ymxFW^Oes{dcGPje@%yH%t#m9Am(L*9+6 zHIQ8X^=z{8ec@BFP37NC=okBJGD4#ZF@l2;J@|@&2gllldY7wEM*X)d z!H8{ip%nbP2QxID|9@#OP*dmMijFDx|6VXu8}Iq=mRx~2_kT&L@&6^zp(y{K3&Yze z+*wBtLYDx!*>VT$=Fe9Si{);2E}g{E<&oxsZe+>V^eI&b$?b}J7Z$624bf}U*C)-@ zUIOXGR}{qieeHE|Qr)S3^UV&n%tgu&ZhiU1=|PjH!N(O`m7d$H@85B6V+&!h+ zGs3Fb=?0g`xDt(QVsqjkw0C;$EhJ20z0GrOEVJW@9b6V+aaf`)5pgh{ky!^%ZbXXcFWkkH!wcu6jBf!HH9#8=1+&Fc`4#bNA@npJ;8t5_mD& zfS#Y?As`qoPbjK?STLRxKHe$aF3C5dClK(LaFt(1j(**Ryl8(GUEA)pN5V~G=<68Z zFzj_f5>U)kzwRZPMyFR3Ua#%*g-jZW?SF@VEAhGMcH(q>M*8)6Pr8Kf*IK~e6;gXQ za@#I-OMJlV8LJg^#+Nmq;kAf^6CS4xKakDkRBwMtkA|Qb3f>vFyHdde=yG>N^?Lk_ z{Ur76YkW}OIXn&UkMd%)xKQA9)ZX4y;r(-eTg3F#rVC)a*cHR$afA|3&Q!yXopSp1 zIjWcb+nVZ-e#plH(Rb%u06jlvK`N7p!O_%*Fs@E-FhRs`r;O0Ae>W?0^g*CI=4#&D zde17RJ&<4EGg@DrFzt9r7B6hpcz9QukubxsWz~>fiPyEq9T+OY$@_%O1|nE)*2YR^5qi6b|f|KvHlyh6qVBjV41RFS2HlMV>Tgi@hOO zYgVv?g!~Ho(zIvV%(O4kS>;2QyMd?x)iyrirgoqwX{#g;xkc&4Xet#djEO>M8OPMl zv;+ZV8rQcLZG@601;qv(JJyqV)Xvbgghv;V3{1Ww$`%AmeqeZr@px^w>h!-Cbu0~Ii!=g3vg_zNcCZ4GrZ^>LZMHu=kdCF25gS}Zm||=h zvI~sLAfG{r>gOQoUpijp~bkFDqB=uDDK#^548gQr=@4BT@$e1WZeJ5JDpThzD*O%sB#4|Z{XD4>*HyA zUI|$3)mD%&_?_{4aY_e8{v?OK@%%(cI4=ig-;37n?3E@X#os905d|V2H5Om(R@8_& zKmSy^N)m@LkWu8;?=8K#L5aFOB}b??vH*S%2096ikRHl3svq3&U*B;V%naI&>Q`26kvKSn{sDxk%IfUC&!rCA<|70eI_!!e{`$O<$rd1-aK&Hp9Fg4I}cA@3o&)4*KBsw`ft5 zDiq}s_F`k1NY%Bt(R7zZyV;ZA2mNLOy$HR^SPE8|UE|7vWEwgAPoP$!GAw!ihXTva zc@7k+pQS&tK+U}FH~K5R8+$Y4EQFlS7ST{0^aPe!P~PZ?pysEvf|pT!r5+i942Hkn zJ_*EBiXD?2qb_FO`OlfL`+N~kqXnBORe_Ns9a!K-qslzvvg2*7~kS^Rsw5Le(sHXFL=9#uVEP@98ezK9R_H z_+B!1j}#93_J@x1u|K|R*iwE*g<+HCUnC)i3@I4R%Nxm52%s^pc%}lbp?g^2To{=Z zDOqptcTjO!@lAFYLqr(S#A1sCdK>8jhD{vZOmFEv4Z}2rYTo*j8|7$oRfzpe)1fnM z|FkU4t2djN1wxBelHJQB7+ZP-sE^x(MWMj>4XkuZ3hURm*m_CapX8)=2TLzNyHcTh zsrB9Tk8z#%4qNmNwMm9cp8N8silB~xgc5F)SqF{coIMKA!>oFX7mG5T-PvHaM3w+L zlHJ`LkgM8k@=18ph%QJ7*B(q(fPvqzPeZ80PPYnG@hbL|X=iGmGd_YwV!OeRl7P4F zu`!%QI;i$_f`4JY<}=*M#`o6uhkCC`M-#`m9&KP~MaG22;6C({9S#bSyBW6&Yw(-q zZGQbkcukWB>6M6cDKHKJN<`n9WWI5?Cv?Ftt??d(Wz|(HDSDe_uc99Djl|lv} zz9bOiD}L%13$%eO2SekUefoc!X3fORi4~i~YC8IEX$A>cJO@92cxVTPyD@ZFBm*}I zcS(OVJbN9%Wek1d#LP{d3<1%`K|%j*&}S1Hf7&n#!>cO+rowBah0_g?+JHD@ywVZ| zR!*dZ&}8B@m+F8m{GOqPpeV-MHHz{bgy$E&lI)0K3~ZRM5vFYcrc>#q!58>DC7@-N zNA~D=K+Srt;I;N)gIzMX;@&*q)rQ ze%l5jg(GW8(K+&pH1u=%V3O50*JsF;219GR3jv>8Fe5DCK;a5yq<|g!sXT-1?pMbo z)PISWKb3N6cze6wSC4IElwyPHUz7&t7ir|`bsc`+MC%Mihl>?13zW~aA%IxaU_n+W z4Ke-IHZ?|#4&mYT(e0)YQ%K8KzsTk=xf;DTZK^F_HKD}aPCr4zWu464)x#YLV_AeKQqfiV#Sz)mh6w^VvkI~oXM2&`9e<*Kzp$+JTJx-T<1;domZ@24_ zVn%NTRRGF~uh4c+9>GjIJzgq;P;;u~`UrfQ)QC=Y<}DsN40;`+so_ZelTTBJb%CE? z8$HyvkfQN1B09VtI`(SYJipbC#-~`GinX)0!5i%7^GrNR)M#~SUGaK}=yN!!Nbq*| z`d82UF+N4JyKnsgpRt_YN16A)Ja)@xFA3keH+T&R6*h-nx8sC_GV}TIw_2At$;WJ& zGGuWz3(`j=`V1Yg!m@Ws%)i?A2&B$SKJT*)Sq;)*55G75gvJAs<)@5}(#HQ~xQboS z6HDy!+h397Ze<}9)5UuF_PpbcoE588y|5h(h$el?*8*JKIBe0#!-z;?)AHT!?j<^h? z->(aL^AI|q3?+%;SrcXcM2ZwNHwb8q9@K%~#b?+aM>-_P1WrrGbj_*nF zwHcQfGD2_nDGWB!^XdVA*giyQFFrZ1%_LSflQg~=Uc%vm(Ha%^?HvaTD zAtJfoaZYV|qI=DL;zIptwSjbY^44g0iqow#dD`rialb+3g{~*wdBx7|I_z>NfInZd zE!0BdD0BS?@Y?;lkec~e$J8tIh0fk+%G1I$SUj3spx+n>1x;&FhCUd+o#Z@go*X+T z0nCD5a69MepA> z#{Lb6kQ>ZDWN5=Wnx%RWTW%Q!8vVuQ{}J50pN`<=lSsB^*8vmdW?+>z-MRXnP<3;> zhmumEz045tJw`g}1t_Z9H2eM{LU+6QDCuBj>UKK>;zPXbCunXTzw;pX1-}wEjbhsS zDTkN0sRpNIui56a{+qV(xSZOE-US!8iZbn5*+EI*)sL}f{n+Tzg;-wxoWirNJ%8O2 z3<6U+|awHLkj@ru**UjYGMy$0}*`TLcCpWY03gVTW{@YVH z?#X5eX(Sp|O!t$2*+`nfK_e+pR+Z^4fXBw*7-TGCl0D<~4}Q4aK8_l-cRqg)Y@oX_S!Yjiz{r0}D_*Qbp3*FxgiErjwg?9JyfL@=%s(z=_x=(RdK zihSoEpM%Y5bKSr?fwaXmxvILR6}?k5sr1=8%=e*)RX{*%y_@r}KiB%fsZ8gia8|AD ziq|bwD*Sn@JpTGXZIz_9;Y2<$VB2YYxUZlF^#b2h@GN|1wU*0#z63EFKQn(neGmv?h;NZ0mg=&*g@UHkknG0gEOka7@kV^U0ch zQIabjva)UuzzQu{uQR$U)P!Q03`mnWF0>0%Gv5+fCEQg&7?|3^h((xecXdLsa@bQT>@xE z|5)o&J?N7cNxpqR?aUwd=Qr1_L->X7Nut2h>g>PbD$x#~PWO~@zxM~J*?bj2M4dol zZ(P@Wwu^V_ zhyFKye6b+zNAsP7*fK}`n_zI#jz6Jl4?S33Tg1K+d}f<1eV74|J4qSq= z&+a%jnXbZh^0wth%L;nrvu1>6iw?qHxdR3UIjUFtXD5NX_Ki+~R?}3{Pd7qtvs!pX zAKb2icGV$shi`T_IxHAD-0el0RvcYPugXuoAR`zE<~CMw512!$4$r#HZZ3n231KvB zm*Fik!vhr#F0`E26n?%^h?wmyZX(BqG>5m%iGjIB#{sY!P3EA9%w|Kn33cngo5j}y zXbxUPAYxL!5E^T~hb`IM>fyshkLZ;|?(isns=5wCjG z-CddZ9yeH0@zj@4n0*p6b(z`cIz#V~pdv+pv} zgx~kIRg03Ory(swmAZ#(_X3YGV%BeEtzC&8YLa47`G`E5OGzhrP=&VE!)E+besX*l zT^DaHY{AS^ng=O4E#UnTT5Of@CX-{nvdZWotu->-R(dP_zOx+$fG_nO1Z+h3^fbOir=xgm4R zbIT#9aVo0K${U|2N5m)j>h^QSIIP$TJ1L@Q$#BTby~dFpp9-BD?wPchFLL*6^Mh;2 z^U%>_uOT(YnGZLX=D=@(!A$;&1S`#yd!4xx*)M-ftO6wO)cM|DJkwgv`eg8a+7BR| zb?o8b9t^mn|81Y(c$AJKt_noXyok zQ}w=PR&tz+&H6%CNGDYQk`Et$n187kE*(0Kk8r+t{9MAxiRkfEnrwACFy+V35bRDR zEED6)oGaj%OP*G#5Cl(LIyg3}sMl0O;nFZ6E2)Z~f~T4Lamz#IJ5*uF;`t7sPN|#| z&*d0s<&@*6_;@89(^o65nx?MYc&q2V?tdm{eGQ+Rl+cQLWzSFAgWS5nl5%C48k_f2 zVGw2z)idARkRq7QYKne;0t~9L0^;*{t@Ah_a}cDR770Gn$5O4x(%fbh*p-^DXin}9 z(VMrmMH&e06uIsu$ZA|`KtlJ*)55z{%c6J>G@7WTBsMbjCM_0SJoe`#OO@zy4qn*s z*CY4u$qID*Jf<$irWUSmFuA!}iRJhTl2d`bp5&+eeI*aZ<(Ul;wY z&C+-}J~(Qn$yOa8C0U6_wl!qj70^4&rXNX(Gh-UXsdZ$p}XY3Ly^FEvoTS!+a_p@cj{MDSU za7SFahcCZjk_E|c)s3ye`J~Y(ULm9rQ>po|Btm!A-V`*L%Mm-=&Jo7@Uk={VE%@49 z(dD$+Qo@?hDZ#MJfrg9N9vh>~s49Pzo^fi0n<`%pE#S4$hf}iB6g%nx*elJ#?_o{$ z8kaHQY%K=s?GWsnuTZF@##kqymSd5PhbfkO8MG5f@2B7(lTKs%>~h-qjjbFr&U;1) zSPV55BmlHps9UxfjS6>t<3 z@SFjxKa>5S*nL3-N)PpX(CJ7A|GM!sbd*ur)@ zS%hqRx*FM~<58^h;d$os4n8+iAKiAjslaZ;9_$-!W(7!MYHRA$*NHG&HaiE8$EyO4 zV`5^EFWz9pE^)^8xhh%33)?t^?;8t$p7H`%X=q5vN-h-?0JmJ$IL@h%50z`ecds}k zg-I=^_oOL3-zQ|{3YZuN3U$?$NSioGvsqBIF?IX9YzP@Qx1fj(8%QdQ6XKJDVGfgh zY%NSdT+#`JY0nChBUnp_sLi1NR80$Jj2#}B(pEPSG3}1Lt$6Oeil`PtyT;Omls;tU zx7@J?%kVJ7Jl9J|%B%EHSg~lMq238>b%hW)fN#qb?{<_)F)qr09a8%{az*=_@TF&9 z?apVJ-E?{obOX(GS3ngMd9%JRgqBjONuCPUx4XbyWG)SM2YZhil7EOJ2Gw%vocU1-L~O(#BnlwiCAJ>JJ>#1l_@>Hf!zBA-nrSBbOK%46oL07h1McP3HNf&E|=*)G= zmMe-9)(L=-T4ewLb7Er{Vj=y2I?}2Ps;!N#7{TjqK+hULT7OF&`$xDj1-*RGAQ@~j zT}?7>Mzx$+?svEnVIfMj(&qQ4i%FuD7Da&1{;SJSNAUhu3oNJ45k&vMzGAzc)o%&? zJK+bUB9E9Z4;aHCL9gg7cT{kgNE$RIgym7ps-j~$rJ)J)L#f2=(X z`Z`$XRJJ)*kttnBQR&NUlFMw$B#FbfXo1FH#c{Apl)QT|TI_RMZ#CklNGBs}GItjq zO7Hfc!UF77@(Ed$q$Dvy;zj9DSTt=SH`u}IAf=0zWX!gTJO+;3U#4UTBu1&ykE`Mi z>;>?;-U%oeatC`(L6H+ppkkW&_jpi-2*%d!e@k$}(ozH2q`WzE#MY934yr$t*JsX&N7w>#l6Kdl4?onw+7?XwJq zt13n%>YS~03I-IKFL_Y2+inFS6R;%=tYOXmf_Jz(QwentGBQZEe3Lui_I@#|n*jou|cRHf1?A42FA_=V! z^)#W;0kKoiOX#J)`205*J}Zq@ zjV(12HCN@1U_z~eWwmVmXNgWmk;%yyjUfeFon9a{E$a0V9b&a{uPggpbW*Phac&q32MBTfYZOT?%kNW0-^;iHiHl(6c(oPD$bP6Njd|xoW6` zf<(U}kaEl1zpIYi&6+lFA?~A{Eb_zDx{^XZa7ZfQaYaG?R9fFFF@s2qs6Z&jn$tn; z^mOSQz~-=VN=#0Uqog!D6OMYq@I)_IiGY5)1RLU{I@EE>!t}ZWU7gO4Qm4n8WY0*Rt=FWke?c${+wi~>!S_mP;U{xgs-;B;ngZnvOx@KL2!wj}LWK5sP!|i^ z)dYqCckJ!%mJGa=*!|Zwypq{cWIrfPi{JV7zy$K-*d{caFtl5(g)$mRBq>4)J|amA zt@#kgN3`v?^gCm<^sg?4%#^k9_&Y#f_C;UFVm;=<-+}5yq6ua!hbR=R%PH$$3|EoP z;UB9?Pj9|lC*gNL+84&6NyMyEl*V62i(^HOG3HjoaJU=~6HyVx)kZT`@u*2gN?l*jWm{eW@Sirz7;nVs#1CAnh@?XBae zWOW;E7y^xNn}#{);>AOte_XlWz?+oO*greEHD4?M<(Bn}43V)`Dyd+3L^ua|(U{1W zNusVVU&EMtQLYIXS32k;Tj^}>Yvl1XPu_+(T5ar8)KX0GchJ3@X(-~!O~nqv*c+ru zav{e$w1|9>hp2b63<@|8thY!^;d7JIAXP$jSZ*~0vub`&HJvFwikxOiP_gNG{XOlI8D2ycauU10$9UrDyINqAYi|8J`23XCMEJn3=R)Qnb>N>bMo^dwK~$dY~z`bsYYqPrbr*lScP<4j>Za2G;kX> zM}Gp-wDy7=8|8M+7KsN8Tas-ok}S^H9~i5H4a9rXe?_7Uv`3J;DQtyGcvlUT=HP>1 zy91JZw4HOkQ6H?*hF8Fy8VtknJ%7gqOZ5TbV|QFokM~F1)^K+(5)Jp<-A0I}MJLR+ zk!Uz3M~o1?njNp8M=G)u$zh2l)P8(vnEd?_%X8?&)s)#^eB`|1s}tyYb;-CJ4pTG! z{+wN)*+j0vEIOe?`aDC1~i(TokwoE?UZ<}Kze>?lW1d@5@u+b1|<}5x#sEz)WV+))L1wzm(AgX5tF;i|6*UYjaK*v28hljIJ zWN`W1E7os@Gv|gEQl9kJO3DqVL){nYHZCgeRa9h+Yv%GRVL-Ogc**hg_V4-^>GqZ4 z;@D<0X)pQQ6Ezq2eNrCeN88(a-s$@?(^v@q=9%&F`)~K064E0tm4zvTujVX03Pz(% zs+Xm;-WVl4xJwOOTuj4`4cVDTh zOcVMuUmWWX@2w`;Jg$&Ut+lDZ535s_Qs)Lz)0SgPUu%48zi5$9@_$+&;b%cbO2f-R-=NW&<_P-NJ-X-2g z8(KcED`bB5K9hPpOeYgo_;#bc)vOT9^*Wy>Hq(FU9LXL+rmbDwD1?u^tRuF}f3kgv z6fy0JGOF|`I6S$;yPka!zKOF2EOT6r5|;LrPvsoCGFPA|vg&`oydi9|`{mUhrxjp# znl%okuhbCBf^-!DB999k$A^IaDp-|4RA}Gndk^%V@U;+ovP-$IaP9Ir`-MEtCKa9A zpVY;0mxT+BxJ#|=6TB07ZQyx%R}$S@((7pg=bJqVz|;{h*Y6_+C%>2Ic@h2@>~!~V zN>juAv&FTNOP2?*KEaH+girz{1R1y6>!l;cw-)7lmu!4; zeP2d0bs>ac?|ABecbzCk^d8*J^Hk)w&W_dd9?ttU95Ar*+lk=9hG$18oOK8*!fyM|1u(E&wjM&o-P?u6(Ri$uwnSUlfc z5jGt-G^A_6F7(@Q?~V|}c;fg;u+f{mS^~Pe`SeW6buXNDIUg@|!X9I7c3(y@vxc99 zu9>P@oC3s*d3O#@VvQBVe!+EwaCu#i&+qGd86Eyj1JskCg|%MwH}`eVTAaWYt1R%f z7*uPt#d1EWCEpjcG1}jX$!gcD^QfbQ{#I@Q_emuDRhQg~y29PXVGZn}sEopNx8TCK z+K5V7+g8IOQt0W@;2j5T-AsY_mB`~|HZZk>k-K#&Gwc4Poz8DY7(LOnH+k571D#Y# zZgBduBGQ@Mq@e)ZC^RJsDX~Www$?h6@-czNb^Dnzu9vGtCz{7- zu|gg2T#N5j@AN{{>_8CgZ`X5U-!cG5vK!2H$6Ig3Z4yTiTsBlr$^6+Lg04Ks@7lk> z=Qg;4d7o7eTlI@UqU-x#wt>cDx?rm;vx1s#$gUD=BO@4GTv)E8p5AtZ)>hXQN4AeD zj)fle`W=5q5+{>GZ!Y|#t=zsX$ZNy$x;QV1V}qB+ZVk^#OmNuap$Kr)-Gu_e+z?4K z`-;{Hte~Rx<$Xg@R_Rps!3}!+T}JT=HF~a=#=7SZ`F7H_6IoJvsB_orKktS%vlYk8 zm!f~17AZZxHsUb6KDP)iI*PKTt##XkYd;R$?#SppB)%so%*;<=1YuCdWdFDeYYr%~ zf^?7K_5O9Ln9bLWKB8ArfkLnsqnf2&=+rw)Qu4iSk<`#?8NIEC8Xd8Euz_5F9HE<` zZs3n;?p(U{ov1{@bWZ(gFL0)^~ zpbXYXronXVdTCRv{jxv*m8~}D4@B~dltIdJ<&G!POV)0ICR^&D|s;5_zsIe#YQ}ByBe0m^Q$nX zh-S+hdhm}eeR|{13d55YH&8VNytvkGi71b)6T5XB8hM(-d}p0|r1f7Mzk+x%KF(;_ zFE<0|Z6DLyE^B$=8+x#2hM-APb3~@Pq(8RfA-xV+HP2pD2+}4_ETib})bdSc@A;s0 zblFh6T&)MLBnqpe?!@z4A5XGMX=Rz5Hi)b@86g84W;vTZe`IHm7_JtYZjZ0IjAIhZ zR;)Z*Emdn4@gDx&X(NE3GuIA%q@w#xsU4fSckSeWmMMdJvN8(8dg0DlbDo-&8QV=> z8vL^a@IV#WU(xpQ4S?t_90Ms^QXH05Aq;uw_Ef7S^1Vl*LNUn$@GRbT(R{!)n^a=U zdhSgNo{J|_X;pJ5d_GBTv@ZH;@i~?OFsfjH5_ZT1J*SuPE_ZU+$$zHDLsE z6{BEr`ar1WNkv1T?p-TxeVkiK;kFN#W=(ngwCwP=D|pl>{O%EVa$%OVcH1?c^e^Jm zD*j7C*-MO#d=}-kdCBQ%BWW@=x=m4QC7_%MZfPSQ1?fwa>*-MB%f%SVSK389_sm+^DwzR! zF_a&h1&yk_bKT5Gx2X*aj)7&oUB({>o{kRa=v4xm1ca&rnE22XmT9QXM@f=jAKlPg zI)@%HQRqbsx8GI9Mzg1$qwwq<5Ejom6MM3=By7lYlG3nOi4b#;1-#l7Y}P(fPG;Xr zn@^BujoM@ndNe#$6A97jwxcP>!n8Uj%gU#7RkrnBE=%ywW)o>F^dO6Ug@>q};~}HM zo!3xhojrtc*Y25T7uY@-?nY=Hzer1P`^SV>o)>Tq7-;695Kinvr|T zjwTu&IG!Yl-foXXPZ@0o7By$d#c$Hu24d}q=wm4v#Zt!$TQPUV_AtVFb&?{M*RtR+z8r4~hdlx~e`4m?Weh#zZ_yb>p5DB&B-IL72U zhYam)TIp)KC7cZ-ab0xmr6!~bOI54pC=&E8#|}%4=L&>-R4UAsE&Q)0ETwXmKHnF$ zIMh66viFIdjg=TOUCDi-E~~6w=c7>>DvW=7I~vQwa4M|V72EZ2uNQoSpJAVJsZdNT z9-zE>1+nCGCI#2k5_fsKPCmZWYm3kmSd;%fPW@tGIY8SiXAM{=&HoG={D0W{rzp#U zCTtMy>guw(e9E?M+qSxF+v>7y+cvvwoU(1(Ra5WG_g>7bfBmEN-ObfGD|7Fau_GfR zQt>?54;peaRAkdwE44qfKGCG7RvPBe>Q;RqUJ)IrqG+AJ+6L?&AA~dynB~xbcA$H_!G#OB`>jQE;nOW zc~OuGUn06!H*;TgJP#`mx^w~{^C;U+;}a`uo}%+#iJHe6l%DZ2B&%VH!c~?AUCE=q zV&JO9iKd5;NH+6Sq0M!9%7A%R1B5-n+qI*kLZmtE^#@c zg##B;S&OPu4FYwmpm#Ul`0W?VAd<3qE2(MhU)SyLvC5elEtY!d98fF*F&4hlc;fPx z-PynuC;7{){pRIk@1yi>ko>uPOaOa?EP#n<+2|p5y8{l%M6-z3-GPl_ag71*n~<}B zB!IGdkSr)^|7KO#`v(Q{Zuq}Z84G@kK-@^Wh=%UWo$0}&;GK*^BAazN-!}$cUc|ax>XqIR<-!hT5j>N_lbiwx zIGHm!-QeMIwe6kghf*dp>Go!nVOt$!Q`0e4=hFqKZZ_H6C#wV2>3a;JI*U#BR1LM@ z1op5o#d1OCY(@F4iO8s)8Ioy|y!PVW zwHUi@OEZYTx4L!sQ!pCr%+Hjt@8yJ_6j=$c#KX|&TK>gWM=_ySMXI7sf}G{oDi>we zm=6wGVx^J>vQuFVVmtc+Q^0xE0E$qEX*U5*ff!=z9J zKF8u)t$Javym!$X9orc(KKv_^jxGhbU{A+z_pW1H*!7=L@_N%oGkRRzP%=O&eJAGq zoStrdo`A90J2VsqL(L4476Tm~BHR-tpkU~~C^mvSZC1fF#JlD88##j5@BEF86{01_ z*S9a@#!1MmDSaQ1T#|wWtm>)iq|EV zW~*hsEfET77;#GIx%r&5gmJB@ib) zZUNk!dM`>kToEzIy8tWErpBVwdM)HE&EA~>U@_?4TT9g1J*XEEXV`?QOVT$CyF{S|X! zHv|;wyu4Fh3VWjxa&Chty+6vF{fs@8%ae9EWi47tWJRAVDn>46K?pSzDy!6o8?wdU zIOo~pY@lv-e=Ph?Z&Hee3V9i~w>@FxUT+463y%I!Y8msnVVXVO=SFmN(d&y~V~Zsc zZU3S6@2TN2Ib>Q#eSZ>E$g3CqqU(jNMwc)Hl6lui1UCiRP%3p>>CY+8Ld#nFuKMRE zq}vl(SH@AGCUv=lYQH!NJNPYTx&Y1-T;8hGehmm_;z$N^*eH}@14wB?!r<+0Z=*TB zn)-5^)$g&eKAHmIwzv#U6v3NY8oVg-Fly<3`tA#P*bPVM=^Q>mh644Ms8%8LsKHEd z8U5q@&I0PH{lZ^2G-I5C(|B0hNqnE9*nOlX47&SwKRrAd!6BcS1!NE-G&&uXn<& zivAQiTZMd4jkda6FELsQ1tVEw4GNiu!BG+M)|}-zK`Z=xCaj&2PT5fF7VuBHoP6UK z>Q&Kji`4KvMiS(5W&N!!(f8{UB_l@0Mc!W|%TK9cgHkC5OUX3Hr^MACK)afRzqnbh z1$zTGp__{+bU#l==ZdysAKAkCq+a35b~4v%I6Z;%y)l@LC=il=f;blk?|C$ zl+n=J&08{R!8m}P>Nrmmqh z*mU;i(r(ncsPlE!%t5}uA;%SXXnnIW{-SEJ8EO`|5H_kLI@%GsnS6aDnL zq%evvVYAIKa0iF9xh4Fl<@n8DXN)qY151@m(-&`yRckbnHvbE?V!ygE1~L)c>3u4dk0}PL?Mm=yGs*rK6ftm(n;V0|8hvY6 zB;V=Zx;TvT9Hicp%7d!EF)c7K1ZE{6H4R>li-WA%(J zL;uAl>Y2JX;rlDY5Vf4G@JLJl8nq*X<3uns)@P(1ad zfbDI11y&M#eEi>V!xR1e92@k8tL%+7Cw}{q-q%*vruNrx{hczrt)JI8;mMTI7mg-- zZRB==LP&LgF6Hmdw*3?W+jpEz)aI!T{Cj)p+pg8f1_?E>&1|Ek|5nY}O zsw{>_Knp2%CR&U9MTm&yO93GJ$Ep*}S7%@aZiMJt;kjymJpQOD^46~938>cXy{@AL z4$p}r<;28KXC~|xY~ul<^c#u|iVcya0Zf39pBBAce|a5Dmxc=|AQEG|QovYby7Uh! zGutZlco1>QoBs`f@Gv-Ec^+pN3pGEdq&7==Ua6Y+L0*j?bGiYrwOj`hH^ygOZV;`m zw7`%{B1Iy?GUDj8Ug=R$5d*~SlNNII;U=!_22*!FZj>{tB+hU#Nq?#fIS!N5Fq6 z2C##o;4ONI*sj?CR@!(bE==%!X+ga{-%%$$Y6O>?X#w>1uvQ&1LfPw*hQlb69v;1S z6W-!6QV#`z3O2P4B51gjI+I2r?(=Y!o!dn4*JcM*KX;8tl=uCeDkF&QKQXysJz|!{ zNd(D;g7+ePAw{pY{DLMe40fM&0rkh&4(cW5Kx*jd8OVcQloBYhKD*}ySO1U!tEHre zlbBF%MMwB7d5+%zHi5%>{nUESsXcCCXfkKvQU%S&e?B2EI%4>bhAttebbmcP$pl!x zb*Hj>6JVbgLH`blJ?{b`%ccO)BV0I!P1tn6m)7k0S+Ra<2rLyiX1ct9lkv2PD2bT(& z7cdN=1u*m?4(pPJA&(GSt>-Y{QRNSGM<+1(;omB&Cpwtp;h~1tAhHs=JqTqCO#!&_ zxk&ZyzYhq01QxxMDP#Dc`0u3~yq>3-8F3-34AMp+zOWu^5tGtp_-j;Q>EHYDwkFEM zSW6xV$;*enzmL`b12jTw1VvjD2 zC)q}mV6j!kBC*U1gtH+sHCV0O+qJd5&=zrWYrQ26K9`|yJLFn^!u-2Q3wI-^&EtY{ z;%x3fCY{5GRHfC1|K&Fss=177XcFd}eh^`ebGvfX%nG>dsK7#K>NS0eoY1esFD_M1T-M)NHF0@qy-dURs5rdetBH zd)%KfHvQMje3*k5#RNx9v&Rhjgy*ZUe`WIC)mbKS;W8SBYyVmQ#>_bMPafdJyVtwy zzl_a4&K$(D@eauioFj%s8CKIwi$EXBQb|C(=Fru?DFI(Ww1)2IswNCC;ehoSt>K-E z6AliNcN&X8CZdy%!vr1RN0NxaA#PY(ER2#9q~O)`X(*A-tQ+%PSnUDc5)kCwe|$uQ zDHv$`MCGchehM+fVd%=_{1zhEDMOGPIB0bdf7Ly(wQ?g5`b)W$5H0%gfqGt+Gv}3q zM#GDan)B)%AO1pR76O!ddb!fWlq1kT$?ypZ`C7K_?Nv2C@mR%$-W_BOD$=11Bh2^p z%4+9ijqKY6R_h@J1^<1&Z@R^-tD->4@28+N9)_ei$*G5OMRP6w_g2_3%9n?@M*OI7 z$~!Z%M=^j={_C)4Qbj5CJ$4ZvEvxH#EFVxDxL!34G3|_c;A)1})PNqx2L;D7?RO zrImaLAaTxIE}ow@ey_5-X-iE+5X~$u%V6YQlW2fvP>4&+WbFb@Ad`_AX!&w)GJfhx z3j;)oJ+-Xzy{HQ(V}Q+tUbd^#zSEZGK(fIn3G?I_DD*RwtlP;lcghV$13r`UK78qS zpVg8MiCKLV+#DaSZmDoocgZxeByR@uTX9V&1;j#Zq_Q(FO92Q>kLwmJg|AJfEIw2x zV3@aPAeq%-G_)0b~v*_ZE+D?_T%@ez{Mx}3MJ+=BQ3*{yExrX`-T&_ zNQR-$w-1{=`HN?~!>4!Lw`BfWP)g>T2w+l*c9?V;fY)KEUhT2sGo!ZJVg zdimOgo2xq)ZD*v=_Ja`nHNSbv-J4*o*Qd|+1%Z>EJMt&`k>O$9(W-loNEC@u%7~EG zQ8l6=W~1d6LTDS*8o}HCNg1!_n#&9AKHA~A zJ8}0AjLy;5DsT2y84PaWTRqCBIBU%h&~?teVG7g?{T zQZg)Ky*-`x52EWeD*0uQJ?(7IuB|dC5QB9NZ1Q+sZ$~};`*UxKz0!itmLs_V_^AM* zxAXRh0e{Ztw?rWa!J@zHJAyo&J65&U5&flKY>yu66^KarPyuLx( z^ly?U)v)SVpNe@_{T3fl|FMV5Z*zIe~Wnth{PY2v%| zzl4eTka4RNQ97vJSIj508-B&~kmNdhLL3u8>AeTycY(Y~#nvNy zpMheaMPe=0>7lLp{+NE>8?b%boAtET%@beu%-c_(8io(^N^KStg=Tr* zeBGU$lwx=J1Q$OSk&El*6`&|`M}ogx3k+0K3OtHR5F7a9rBh3HtM_C&g7JLFKAed6S=E%-(v8Jh!hnM<-^tHjUIPxY>NAJ)uBsB zhbMz|8cU8>C&9kw{u=^bCzfi!4R7-=7*|W5nr_LjOyrk``N{cr*Qa}sa~?Z! zUEi<0IR^6!46}wgSE@tVfMPe#)}^VKTDBGuUJhsqchtWTZ%>9_`f@K^0aw)nm0)kz z0uxW(2Q-J_JgCT_DOaFzD9FJr)0aEX8V9L99(%Cx9@%kAN=W?b_&;$0tiqr-dZCJe^`!qqloYR^J}cQsc!a_1|q{M8%ic+Z%4 zKa>87M}LO9<`kA;YTvF$Bjb_aApG;Ps%d3qyz3gg1e zpsDF?_VmqJrr2*M-g?H!+Vr*;b?giBe$F9tc;h}7*8m87e#PKXMb#SydhehU9>ltN zUB?Jo2{QBcbVeJ7$o1+`hCfJeudm8lr6|uzl+h#KzM?&zZ$|jxA;_(Sbc``PJVzul z+#^1-KmsF%`@C$%&+hu@jC}|9j{kYHyE7FroYlM?2pbh z-`6M%+EYTKQblIX72}hC!kxApgB4(d)ma*8Vc#rlA8az1(VKBOs1NrQsBm%gKiOLa z*fn^uH=EK;__)<%(3PW>1=cLS*jbpURrVlSJ?^=3d#`(WwIG_3y`)4^O>2i9#%)7w;ChIQ3M#tD6ZH?U?m7CJ6hrccFkT^$5OHBAU(H#CEEe#KYZ?Qy}wZr$s8 z{Mos8&fTxE!(ouvzcnr0_yc>JNd1>0nnn2Z$9RX@;C_NYEi@lG_CP z0~l)fa;_Azr$VSmf&U()a*ZPHn@RNG8?0&QQw#iXxRTFE_5%1J2Jm_<;RC?)l?k{N zs|qhVSh_#QSjLS}i8H{11*5L~lWQH4bi*UhD^_Cox`RM&kU&0FtJdF33R5|7yHW|q zkn3z(r#d9LT6UjXGan<@4|#RvzGK|Vi+cr#34_=o+&`3z+`RvxB6;wSyhQa{3f4a% zFg_dPE!bex8&!7N#qY=zCiOY|gWEoYn@$DRW3eJa$hK&y`d+LW8dP72or!bFf*ie6 z2n%&cY_9$r*avAZ+V@|O`-L4RIaj?fUtea|(w{gI80yK%0~Zl<9c>_30=%ygr=SuV62k0wJ?n3ax%%;2oSo&^r~LT)Y0dh>2`I zk>QtAaWtl~>gt;K6(giV9uM(>Ruc`N#|&>j-mk3xcHJ2mQK2C4o=*-%XDOXYYRzTjf4;EC>J64A)`ZT~>!?1~s>0*ASypU8r1ixW&S%uA$s z?)xNy9;@@kBfIVnmjEkpG&9i6P6u>|`%W9|!t@_mvy`vxq?uP$O$AP3_{81px{-%O zwTKX$c45IY$%Z4nU`sAyg#$?QAd{8PE(Sybg|0?k^QFmrVwqn7|7-zA+JaWOb%yuX=)`Goq zIwKkffE%7J^;e_shN7Gua$Yez7)?WuOQ-4ownuQmNhy#VL{ew5iUgV}KqrBSK3tOL z9NXY1!|*h7qlN4l-|N+4t+3>=Z$Ch?QsOb&6geRqY&AuYS2F#ZnHS7#)f2f8z*49d zRBdH5gJ>JRW8Tcx3!cTgED$|82dw0w1}u=$BfB#*++t=9VGAGBi_i;o^t{ef2g@Cb zYTc%!EW(_<PT?c5uAw(|}8T5Zh|1A80FjYb@+&Y!%a&cOy-3JKi>Cnv#|%=@`OMb6W6 zb_?D+RvGin$imPSwKFfGuah7U({U_}%$AT-4fW;Q*e7Ujr>N~Z+W=kz9Q+}EIgOBjlQ`|@9 z`2E4W8)hAk_tNj2YU@ISAWGmrs_DiiETJ-0og&K{S(OX%@~vg{(OC{M6C9e5Ok(z!y#WqgEefu(S-84mlMMx znpp%^`G`EMll~wLW{)P|V4YZ2ed9wuLYL=9?5Y~2>=IvR-mR*J*}+W+N^&=2_QcVq zO1p;xma|JsNuM!hEGI?gxh4h8N53r%5#k^7Br%=#+>5<#*C<9OK5Go3bHK4=$$MCE z3#C*`k)&()aOq$z>TPG*2G-n4iqHP$fXdpSU+^ib3*zuKLpjHGD0h)}*>0jDf{jnd z>i)|ORolEd!L16Cv(-X4?@Ldf1q;?(7u(gz;H05)qpT^gb6pa(sFT7iv7);3px2aX z;nLZ!8O~g=pH&CtBxIpm5WY5qO|v3TI_F71+fg6-_eD zL7V%I!gwflA4;NM5KHEbspxbssmq={Q6jzHCPmL<4=Q!;Ii`TzUN^h)2ABq0#Mp4G&`?BjRP3&$KSu zjQpMUQ&d#4M2eCJ6tI%oFHfYZL6pT~F+kD*az9X;=l{qA9(+rp&$+88o|9N+e`BC= z<9%~u9|{HI_XLB7VhIGBlCjJ!dl947@cG%*QrR1^(Er<7Nk%(6ID#ocxYPFyx+b8C z-m4Xdk|X+Gly$=O>G{uj3xec?bcgVViIFy2K5RWstCb6wJw|kBn#)iFxVU z{!SjcTB{GQ%yb}fT7(qM?%n~_q%Voy2CkcjGuE#6V}ZxYVJNZv;X}gxD@PeaR-IRc z#ObP5yJTy-C8>+{?O?01=Z-EBUjCp-Iw4-r`( zsSxcFdRa2HD!0HsNnHLdb5v@vm<8aQ!Z?VRnjFNreWLduDez`{+i2c7I~tG_mPt29 zWTrf{iwsRvkQtlKLsB8)L7C8L6SfN4@)r1!+m-yJAp0i9W4F0ln5V2&&ZO2M! zdJe&_4VNCqoWtS-{&S*2e`%3q#GIm;ghJs(woFVu{NE9q?KQ1@)M%h5f$dtGTb(Js z*W=`0k+YlFS3ol6x(V?^E(J?{bXb&#wi~{et{ah@H-b~OMc7Hf&~}iIc_v3En8rRX zWx~F$Jjo3qK~aI+<)cQ22Drm3@z@$N<~0S*eLW=z)ns zIha$SyL{Z)99z;2j2Z<2iUo zILE=JbCI%ibX1@}d4q6qELNt}#j{Q5ZEd>>aXPxxu-=A$1X0@!| zbmW@Z&T2TM!cD=1BHPF$Pd1s+5Tqo@pylIV#G>MF_Y}}gm_Og3%`^PMEAF#kYG3l{ zimA5(;1^&^Kc#h#X}W(u_9o1xiM~!QVZ$q8^EBFuPy`4w2B~-rGsc^ zDf_iGa9)~11yUimE|Rp_Z)dS6{wwI0;oyLMXw4$xv}z@U58Fo9)#Hw;>5!aFSiSdXyRb6BmzawU@AzNKeL;RjT&Ez|%r*L^9 z?c&I?v|;r7U~T6|m9TB6F9m3ac?}FRa)l0EXXrK{SwT|l&l*5*&$S|vx9a;Qt3Vyn zLur_SVwL3N0ZfTI9wHmL-Rw|$5fN92!O_mcfe?shnrwXVIJ^`A1qAs8`6A_ERM%%2 zb^Au-*w|~iUfqPDQqe-{>g1H|&ckK)1vf0WSm4sj5pkengv9L1TCpVKaLt9&Az(gl zJKGV@Xd#SA7Wn(8XjVNwN;a)*KG#U|mg~PZu#&~h1XsI=ZoLIzcLzS1nU#0?*CJ7c z?`ONs35TxWh3dRmuAi^rmCtBtw?sxF<2CcbK}j{SjYh-lZ(R!?4kt{gI}o8fLtMy{ zHZVsGf)*6E_Lr=Q2L?u;UJrszPlbgCjlAOXM5Ub~J0m$6a2a<0#K49N``<3)d3a+p z@#yW2tL3^~QK++&LSV+E(k3$t$4s@|q=n}TM%!U`+;jJbg^FI@@}H_`zRH?+k<9Mo z`8lhgAm|1W(HYpA4E;vI<3(g+ogPXm6g1n)V`7Y8QAh(2j(rjJ0ZCfH+F99#Qr*cA zukU|E52yy+gU8R*iWmKm>|dUd&rIzSkru98=V>8kV8zV4IXvFj(DmV6s8uDfTJ=WL z0A3Lehzy6bgbMztL_K9853#-@-F>}F$){&QJiCXtS52B>>>)5{NEEtEWo!LB#KOHw zj~d^C{#WKHha!bmlp0520J@1!*dI z+r>I1gY%b7uPCG9P#n^m%6E$Tnj|`6yW4rs<5}c5>`tIg$Kh#N^!P*M914bxGl8-QKaYn8NI=If=;cOhqum0-^)(RK=xr3ObDF2*kH6Sj5i*_U|3eNQjQ3 z{M>%XZ;GXEw%+r#E>6+t_3&D?lscYeNI0g5zU~I5Lz#52kSSRMh~yxh(euz+>PV#5 zPjr?A));!zn2_@)hQ&+H0;Tb(ElWHb9Tidw#YrEKvh6w8{)Ga}?WE{FuFHSC-qhYKkU6%=Z<;K|*7h3eUqAYaL4 zs8*8dZMoiG2LkagHrteLVGu~TQfP8HD&WnAfp1=4kds+lG0j;%m05yLc9YuaJw_ca zk>rmLD(PINtT>&8*0q59%;bq|k?f~^7)9u7A7MJs#373(x*X&bKf!#w$uy>zPFkIU z2n42eOe87ou3KeX=(p?G%NKGQCOw^1u?ADRVpEW@DpHw!F-}*dm&p$F7{%kK@y9=! z%(n1VyiO`yxKdh+v_gQ^dpgv_&NlmWTyGg`Hq)|`HA6n2efNR?{Y84IE0BEZ3xnq~whp8y{hLUP3TPQ74s&8c zI2!>Iay)}tcfPQ8dr>l;GU!qoc=B%jVqIlEFjGZ^us;-7Cs1>INJJ5pV19M#-e@t7 z=<#w4-vz7OeRms|RM>S!xYp$rHxlyJXlPC{dm)9szh(!uwK>~$bUXRG-TAYVRj0sg z^E|C_@vfPhG^$3UPQ3EV;&y2h>2|d#o0j+M=J^|Wj%8A-kE9`Mar+)nEZyB>rL106O zFf=6Kd9K`V8=!MFzdYyI1>6@?kxh-v+2H63m*7ThMZEEkA5Ih0ywM%+RM4RyKgVZx zOMF~9La@$cl34a^?RGjlWN3qDdQw(dg3scaE%dcDUaiZt+n<1o42uFEEMpG9Q|$eD zoj&3mthUg$>Wo(4+r1uwU2=+Eudhj8BB*bkhd5qIi}VZebiB)%TRnZQCj8{5LmyVTM9Xv0_(kdK0bXt9s-tk0JY{*-J zylun0IW1W?K5zG`oGD_?b@*}?t+wRoa5qX^1rVK{#&q1LHk8&5KAaCFBqJW>HS7Pt zTl1tjc)cG#+0>MM-&L3Lexo$qGq>l;`l2(awYk*22dwQ)XF1b9@{#<6ciyNyeARdv zEI7Y=E4sjG^fAv7@ECz+}?|M?NC9f9q-yR>!X5M_d zx0IyEEYf+P&R?)XfjWq9C z?e7x7n8z)38eSi6CVYhjgd31Z?#KjSvfQEsJ22dX(O9_t+d(yCI6H>O%vnR@uvqKs za<*1>&Y_~KD=wi)cRmS|Tu~|IrEeP7Ez_TCK)%~vEa4hMw;^|}=ycZxMWI!LaFp8| zeo!e;Xwqe3rqV;Ryp*6>5!%+xqXdV=jqDr@AJ-`d&&~-qIKY{i-Gm1*qIgnbTIk}{ z_G(&aEXv)M#o(K;Q+x0T0_w#@k;5(VU7SW!CNBZtq@QWYDnuC7%rqaUPt z7(}yFqZuCGYq(jMh6QP1?d|f#+aFI?s~+;Oa$=+IK8jJX5mCqwMt;GU zdaM(}=TBGudv6q49S~d`%-jV#^E7rRi}fGg99D{ zNt^;!=X78}O7{G^kom-mxhq~d&weU5wP$x$xr+uZ0(e%20B!``Y&S!e*%1|sLOq*G z)g|pT(W~SECHrrYt~@2)u=~p)U5j)zk&G>*rgBxuj!1;0vMqmI&nn^+3Q6<{1~zp0 z;S;js$1wrs4=amFREaNW4)fl;d9@-w^|?4wcgm)tb~Y+8Tk`bva%NRbe}&&o<}(Sn zTiRmQV&qLln->^@T}vCeq$1_1jJ9rq}Ssne}35>%)-*8yc59C=I2`N!QshwL`@h-II={3(W?09^hi6L#0kg_p@)Y;ZwK#dWq$H zo`S+@+bQpc4o_%tmLkwS$y0|Dk+}QpoxGgoBwf5VNx9O}0#4M!Ikvn>4Kq( z_^KcVfiB(`X*O(fuGHz%>we@4M#XYLNtaZlVU=Sf&%&8AzY(VxRLmvp%h3Gcmn)@W z37^h7hrg(evc=^E#!Px~=5^j6F3U+}GxYqvXwk{$l2~Dg0iP4b6yVL!r{-~$u4Rsa zc_y&zy^Q!6BQ2umuQ`uJ-X1OA1Yq~4vlsI@xZCz}c9weW0epLhvWQhDdqxUoVmijZ z3I6u_@Sw2~lu>QGjAKu{S0EL@V|N*#PU&WE`Agi$l-37M#URye3Q26_gT z!Qq;#Se^){O9Xq=bOZ@Sxe`qjtO(&UDouvTi2=oIw1n7IfXZr(i6}TdiXPx*2le(K zne!O!jn9{1e{pG;XIce7T}>&s4&yKI8Bd;TO{X8PWa0PQ-?;07!D&ti_Hql%1QU*# zG?<=65wk@+%TOddg0{cdQUAt_hjns2`UbfOe!Ov@ds;>Nv{{qdFb#*HoL#t+H&E3% zouIgt2)hDBNIH`4Hl1R;Ft^6PmewphVRg+{F1k`+Z}DR=>D~@yGyzHguUkMb0~ahJ zqB994qL=QUIo;chI!(a~c`>`zIjgH#%zA zMAZ2o2Zgq(CW{*bqbb^lx>EVDzN-negNw$)R2PI#Y-|m)1b)OF4ck8}{g6~E^S44hHRvy{0<2E_ z{M19vO>R$;Q36QGp05UuVj=AL^jc%*Fd(3%P1rp|J0*}Ih0ubB_iaJ)KGE&uJ3*XX zi2OyX3UXMs%aO3vh;N@z!HpstkbnaPb4JR~Pnc=V24Ssir=8YnIm0+zr0_Fq zyU7*Tk*Qx7uQZop(`I)R&@~xcH5{=pBtej34!aRo#sGOOypJUpugWi?wO^13yZwxB zUrF-eRVo{DbMXx9oG7Zo+9@Gbc03L_nG^A=Oa^d4E?)1=t+Qk|!#{J6PbQ*wi-UtF#^XR7)@_5{1gK_`PtACIr zw!FKECgjpH5bDzWo!tY*>NEvq`o_BaTn8S^g%%*QQ%;^TF8Cr-HH1n%TOY-Qtwr0v zgT)lLW{-;LorzGAS3&PQrEY}u4__@Tpq1MjpBqhQI6KKZ7JwR(--bN9R)sS^iT;lQ zulDf8Tl;eEr^{r@Uez?>&1A6IqV~zwRFie@2WZIN951_a*Dsb*SGPya8ayhbdcdKdodztzwDgZrv-QzU z1~f!4Z7yYi#_Up_>-E6m8TeeRkQtt{y&q%?eTC;@DR<;iWpSTK@LX8TZR9+GzvGby zq@$M$u8Kj_yABU2-hlv_{(fQG%GKm1;|h)5_0l?6E$-o+jm}Y++PsJ)_E6q0sGQCe za&C;aZt0!p#>*6&i+%D6EG;SSJrW(y?@Z3O>4?4FC#ZgXPu~uovQOUEJmKN)o(4nw zAdP6{F~Jy1I<0Q_a0rO6u__&n-aaQpvwnwNvx6Gdsb=55mptD-QWV-)K&Mc}NPo%0 z0B8Jus2@(ee29ekDof8mcuCiPpB0|y@k2Ue2lU0q@l@Pao?Pu8ods@(vhUNWKxrt_ zy#ow=6Sh2wKwQ-(0fy(ccb)=ADLE(fL*M0#bUG)$5x+_6_IWV@hLImv@w@&}QIiNa z+fUU_J`~5oVq$x*4`(CUJRR?W|G9klBB`GO58rsQP4KXPxAvrmu zs%l!UM5I9M^Y_lB-QOUQUe1hXL}!E7KlneRBuT)Cc!&o?BUo7eLV~WQ^$3Cy34#9d zehIyHgJU$U7j|%XRpY`0U_@+%BKeQXQ``Iib!PVB^9l-+K?4Zh&H4RDmg%s_NMYHs z#d7^uj|#pB93=DC5Cpv3r-o0UZ%kep>ZR=^T!;R+-Q&G^<^~@^vv+d;7$=i-RHEcS z@X+B%wh&$e1iZ-KIxsYZvmZHTmTfAXam^jdphU=sy_J9Ti|2J%m>B}o(#o*srK1$j zo-otWcg9}B0Ihads?m47eF-&xY~ne$1{jfl)>H~{JTZ(ISi@CFBOaT7BmJQ_|10W; zJx)s<+u&px0=zxFCNwQUQVKaX+Fiv!8HyR)0*T1a8xTrrtcIgA^bYuUyDFJd5u^~wyLq^On4+t}>UaP+98CHX0>^8O`_Y{2Yyxqf z0{)m(!cm_B2EIvPvMkl~PcjwQJx_B(t0gmVg^-cgH#re;Os_;`yR2r=LB?FCsR!6) z`Wq?EW*T~7&fQVq4TY*phXIB?lI=;wB_)YDKt0gFp2h8}>68IV)Oe&lM68^@g{~=f z!~>93QU?R!8kYJd*8U_B%?0)`mu8AZAmA=G{`fhjwPrJT9VM%V@2MQ2cRi3t`Ve+A zXWW{im!i`$n~-guut$4id-G*UsT`$P`6Iu8h6Mw{y;DV?g0|M8lZyp29b3O&vdrTP zpWT$NxUrtPlKY7%F)6)yzD*azxgs$(N5FW}2J$LJ?+;b{GZu8g2xKGXlUNPXj~}q062bz?^go`S zto*ac!9OoW-oB# zWzWHw-$NHwLPEmM*?I7r$aUxJEW&s^InR2n`SzagY#I!QkeJkbrvAyOQmYFZi_M0A zaX=0-X1+hwhGeE`&29eX7z#!PHlBqtH61Y8G*YN`mhcWMfgp-T`OEhe+Oa}9^y@T) zT7)XBH$GDMBx=||BMK5za(O1O&K%pNYBku+n<-UunV*jq98uzxp5c>WwOk~ZQl*@n zcEjU)WpVozA9{;=N5Jv2l%vBiwEWe+ysS>G*$4@NfIG0>=6K+Dr*jXFv~C?i$T{_MW#YZoZ4gnIbSRt(J%E%0aVy|wY|Vl0?8LoT3x#K`}<_?%{uxBD#ja2|#pJ0C@%T(c}Wj#U9C(LqNbD*OqLgFzqs!AlE zVLz=L|1Vq$_Bc|+yu3L1h>C2%ER$ZRuiy9Q#u1YQEHinTs7UO`^h3)zNZ)k5vjt+~ zG1Q+HSTYOcDix)^U!SY9$~_CRN8bdbBMD?R>+qroqYhtGTNvpCp7*Hp$7exIZ>B^X ztl*+U;NqcDfAi`X<_WiBArXVY!FR`m;E0$CA5@9ze$I3ah2gE9ibY7sh<2EKC>|M+ z(39}3T0Jrq^6R@hp&)2fpDz338gLw2TU$h@TYe%*`?AT&r+V$_AF2$zW^0b1CRZB4 z0p-7l!>O=NUgXB+k`jLqvg|4c7lCKp5*uq{zUZeZ1DQu-whF}AXoC-m2Hjq5^&`L6 z0^$Nk)2#3x2f2V^01q!ZS1j|jl1mgO zwN%4r_`O4?f&m)6Z;QbB9ZHsMU%GPpX-F{)BTrxp63ik z3H{&dg#SPN^Z!--Uo_pLXdAW z{eNiw|IY@^|Nbo=Q1582|BMi!tCis&|20x6N!9<_arW4{;D5!Qw}|?$>7tGsl;aqE zzxb))ku0k18TIWoY>v&vxd#68;r-8y|7ULGf0p+Df4Qvxxot&SOs2EUx7g}kn0Z(< zY5s2-;Pv+QzL59u_xEpgIsw{3WPK;K?|nxpdN#Ht*>7hxUTR8$l)Wy%DNMx&j|7-Nk6NKa1>p`oG3nl}PM5wNnd z0ugDaGWK6gWe96)6NHCFX(#+PmA)Y?O$`tk9jBd=%FxsbCYl%|8D#?ELJ^;=ox#|D zG3iPtEG!J!vuFR8L5C|6FeVWJ$3*V|YFF+9Ya1&V8=Jty%mNnXrpiI0(u0|~xfnNt zp`i&3!XKjZgpJ6W$y^RV78VvT7t0!(S>eH27YsQQ0ngrLu*KUFCI<2^FvbK9I*e(l zFt7Zh;(TiC8#oEC!ETh!B+;o~zg5)WQ9@;u{0g(5DzQ zXb>h$TMvzuHH^iTj-`k+CYG5+z)@+xoiQfipu<=?Di|5+V^l{E6z;YHb|zjJx9u_J zckhVou9GmkXEhu;aUYG_wnF&^P0=VvC|dNIk2za*!K1JbI!rhWD+^=ocQM8?;-JIW z4-!$hW)n0hY>M(Vs=@F5TeR-wh?z|)V!_dmaB9^6dU`7P!KsmT0SxbDk1;JPVfd~m z&{HSK(-~tw$43WaKcUhjBQaTxrxIn?0<&}`uckE z>z|}oc}Ra%Dm@X5#1)S?1Pl$7*L$dwlc5pg24b8vBB1E$L0=qjQX^`qu9~#0p14{f z@mXlp^0JKmw@Yapnk`$lKNobQ*Wi5m^a+-hmK<~#V~qVv(v?nlcsPm`D~4RTa%rcg z`rV+Dl$3;!kP!Kc7-NjF-y>b1NUy;$F!-@W^zQ~8#u#Jl@4~OaVT>`Ra~yOSV~pvH z9(P;77-LLV_)3Q{#+c5iHf-2HojZ3%e0;oi5@U=p_Vfl5O3bR!T$kxX@!0;CL99*0000_>E{f|~k*rWgNXW`|b8VRym$>Dsi^l)8m6B3dOF5t&cMFCn&2ufby z&jlY79Zizb9NN!kcgSXwPAMy zY*${5RC3=sh(;nQG01RdgvyJJ*f&h%tdZJUvBEIjbP|f|sa$-{RQ%4d!rs@ZZf{&< z{L)%-x1mpaQWGL<jb!8}^^*mo z)rqsyy>4}gqlIxF-e02wdC+Y)dfq00Jl)ErwY+o#D(XTM*X}txo>LzK?acyb2faud z_}NYwQZi^Tl8&4vd;4N6`^D(kk66FHoahG2O+Kw~l<*&io$PMZ+}~P>z!ZKBSlW}+ z@XyAI2>i5+s_G9k<$@e5w39`ZiE7eHpp>TiOSR~W@@d#14Y>hfYP8m;zj2nJ+Zllt z4vhp$k;J`eSC*4Ao3=YU%oH2@tw9tGY}o(z0xWF{gQZEVQ(i>w)lbygoo;4ES!{T! zMCZz7?7ozB9+mA?X(6Rg#OrBxWqhcYBv+7E^|l(;je%AQv7%#Fq1 z8Ns@E-7+OGM&QDY}vY!6W1>>T=`8q8^8g{cePN{?Ia_UTXjBK`=%| z*8|Ynhi`VE(1`8gie?YG&$jaNc&M&7xauo`#@V7Gu}Wug2sPr90n146;N)10kUV$< z>iMX}aE%W)v2TX%V+zo>@zXGPnin|Rv~JlSD;=$&ILV4b#ixIt2mcMH933pN9_x9f zJoYwOZILHRSWt3BS*fs z#G>MBiB0{W`$+YVmEn)wD`WLFRHqDqXZ!8yH)}FAss_*AO4Jo1cbETcK^XP26G&;Y zg)Z1fcbL$Ttxhyg{CFwbE@@HzdFq!P$)o!$Lj(uaZTfQP`HGQx2{=&^CzyDTyPOLs# z8(-O788N5ga7qRTWkcCE1XR@Ws_&~?ovCY2OYC^5?~kotMesPL0|Lu1nf+1XIHxVc zbjU(}W*r29`J}woFyKC1)w%M!qGjbzWg!#vw6$5@V|3o5`Q%y6)5))I=-4tJJbuyhaBfFuXi^ucup9D`Ap33s?;y>cT?Tn$R6w{FYzN z($3p`Mgo@1E~~&d8NAl$KS;v=$gkM4vQ5&u`umSp%0r_%y6b1Z{v}ecsR`KtCgJO% zxOj^wda0F;ESjv*{^gfRMkbFxg#39|X`8yAsvE7BW_RMxgK~+{293>VAu?5CgO(EX|}V=!a5~9!H*H z*zu=>t-G!!n|vNN$4f9uI$n(amuWAt~Xo9|`+R6&-+-)9G==8>PRK%rLG5|^#;BX@8gm8^9 zEqs=9;d?0?wj#vVsul|kxoSAryHUxF&sfNvIv$X~(bu@|5(VYO0elI5V=`8n=+qf; z7X~w;V!A-_zAsojO&0Ia8Czj0f4S`1?`Mx6zqjy>M+-ZFNg6g~?0MK6k=w+8Qo5V} z)&h*y^E!(HT2UyT>k5Cc^jQie8d95ng40Q7+JCNHj?jpe{X#I zAn4teJ2*w9roHjnn5d1zQO0(#%NZi5xTuz;?%615_po48Vxv(!OeStT-%yA8eowJ} zjf$Wd;0PH_5MM0z#HtblolzP7`^h{*b@6LGBQ^P$&(qB$A6RIC(!EYW;s4kw4YWF( zKisn1TGqGfPEuo(Glo6JSaVY4`#8TIP;z)NJkCYoF%RoifnRCp!O{9{{u; zlxa76%U~cITAh}CbKDN2B1}qCr&ErXNof6rPJrmSk{S#rTH8m`q==}FDog(tD(rtK5d&Z{wb$I<4)%I}*7Vp#H zR?`XUCGC(K-4SRWVOHOQebR96q7Tx^8zQIfulDti?g!3fcuX{f&N_%qWvXZb(K!0- zW4U>iht)S)x8x5m6)XSLv{PB_$oE|J37epW{8=Q1N~D@WKhk~tnvTZSveg;stL>UX zYL7Z})c%d1toqjvHLm&z7O7``D?_y3F8Eh5-R~(nFN3;N=m85YLRg8&Y?<&8MRG%k zAreB${;R&Zr`v^NPMJ2dYTJ2?wf+rL+_#G7l9XIH@6}ULlbw8*?Om^D45lMj6~+%G zWas&L^DoQA%zUsrd0)TQbo9ObJpp+ZR^!~uBkwt`vR7mj+7)^{#p}sDG@kY(cE3CaAV=rhZ@GgpQ@S(>e$($nwM>b49Mh9oa6xMEa-$jDVS z@k1(dax*=zRh6gkXyfk>4|@EYrlgvWHw8QcyRApx+kyF0TrvBMw?^_G@?Md7oBh~KTs%k&F4PD7k8S$tu`4oB-&FLYEKmF4iHfZDb z%gkeSwDwz7oqyBTt5vzOz{G>PTCx@G8cynA)0bGkbB#U6NIoW`KwV6}(|?Ht-cCn0 zjyyZ@7_0MJ?NMHnXsrxA+SSwx-dmO2TyJ4yBh?zL){2#OCL;|NzgPU!y2eAYl@7Kx z-dN8B4SUwBy7#GmweEw$qnhy`HyLY(1!Df{;Zm8jp5Rr!Rs%8Kw;otAIeA0@apagf@DJagULF4WH}u#}vhJr2k3w#~r{ z%myFcP==tUCaiSbyueCc@KQ|f_Pb9!LbavKY;&9|*Y76fyT58I8Xt9XPVBeYr!Zc;oovZV`J^Ur zYxZ9ReY?XC5}g_vVf7-=)5J6c3ZSPspU^$lPIq3Ps8#mYmFReb=v8{BiH8Q#gTKE&V+O z)t$GuPuSZTcIKjJ*?K;~W=__SNEsVO)0OoQd@}m>ur7!D)rjx&F6GlQVWRVx$n9)D zJ{Rn9MPrpYFrK5d`7U?R%9+Pr6=0E>G+Ji+cRQJxMJZq%SKEC5644Fwpyx(V^9_yI z30__kaIvg~@XZu(sd({HQ4eF-0oBfv@bD8od*+N8s;&7>PIL;Nl$%|x@a-O|Qc+{AwqInWLVV6eEe>{Oq>-oe z*F-ZOoK}W;3K^6Jcz{v1{#b5}yUpFQEb zJNgu*RLR5FD$`FI=_LOScbdR?_o)+VN9DR;E7I;X>gHTY)Rb{irspOFBthGBuqt6%cy$tY0Ww8MSwg zxT?p`jRA?>Z6|O7v_c0va|F74sl?s*XPip!VxKXlZmqWT!(fzu_p(cHsWH&~YcRpk z*H_rms=eEQ8EJ~yW-r$Y5~VHCy^PF ze79CuIypqm0W15hR2z*J-g%^+)t$gXzSy1j--`r=3$+GGzb6jWK~c{hf9&l$pQ{1O zWFoprApTDKZs8+~O{dRA>)zm+eU8R?Y-gy)-NE!or*MJW8rN ztD>BI+n&b#v_i1`Q?F!$TnM-Ii`|HYfHuf_#}xVR)R*WcPrg)?Dl zP5Ju7eZ{6c&UQm>+yvYAuNt0Lof7&kXog0_+wzH-ov^c`uzp=Vq^`Xfte+!>5;BI3 zy9B7wedT9nTa5ZiyZzf4fg?Aoh+SD$_>rHhu3-|V+V_Hjf=6*AI}UV*ur?sQKp^JH z(M$~tNrlJ+hZ|5u#4%cD`QQS4s%oc$8S#fDhUktS5lY?T^n(U?HkQOI`Gl~p-L zQ+QbG7!9v=<~^hPquDpe9Xa?PseV&lnbVQB8g~mR$?{8BBF5~IbocP6g?!rQ-uU)a z^y8%U-(+s(M{0ID!%qjcG&6zBDF|!!G0AdJa@>1`g&1%OvJfO8s7@& z;=WDyN8CQRsL8<1cYk^ehjIFy3OcHuNx<~SM-12?ebCvu6XUM zq%$=r@WB$C*HH{Ba@PHC%6aw#dl|=s^YJk^6d>(Jd)Yfj&&OqEWnvhZ4#j^jkfX=f zqvcr(V2aP0j!E+-K;cuGXWkJsdSXC62GcMn zN2=Nl(oT@%CNAgn8^$!6MU?I2ESPLnp+o{xsnYt@B(}#pgJH*28CCk<96H~=hSAh{ z@Lj*jL}6%)Z5^C)mp&6+_){U2m zqW0qXy8qHyrq9zS#xL3_GtYjxC_ECSo+PE`eI!bnr4qpGw(qK7RBRunKo}Z211kMUb(upCf;Xo-|E&>Q^tcUMa@e_iIw%BSWo1vEGc}hr zqh2+gKUiKSRljw+4JGgH;90&=;PFPgGd;t<->~6#LvQaT-(X6jRQn|L>F-4!^?Qys zmzREnD^xNlnJcWOZzJfuQ*0@9T9P~1o$x8U zp0CuM!tom_WUHI=3iSM$Z z5`S(!s?Ty)Fb{h6)bAlZ)8gf2V`SS!xW)AjrBbH&kDjv```(!GO5W5ex;O2wwVb{L zz6dq2>U6LtqhA!_7VIYcb!=DbGX}nNT|4tp5H?y~`5hc+2HP)&9>!nXdj~7H>>CyR zLKFqfOqcka>7EYJx8Cf;XQ&A4^^u_4IG1}fJgyZ3iz-r?5fyNVtD`77n$?k9 zc@#&OpShq(7jM~~?OmD-nInwL3b-L`g{xVL?UmuIRpcZhDynC!G+%KzMa$gd2 zA%Rbs@?<_N;z+(M8T~Wyavt89vgVrl&QH_Iqzo>k8|R}(UDFBs?Uy%ZxDGA!g}sKy zT4^|9@h9Foi+{B=9(&ixzq*#by{yr8>V;;6FCBarFG9->#~|-(kxBGcjAy3kFJkB8 zu0Z={7(P6#N`&f%tl7ldY6DdG6HaGAj74N%nVZL=0N?Ii?7d~LbS>?g^YslBg$>+F zswjV>4LbY#LGGsy-7FqybWR*Rnu;;`hCQc$9}Mg+=dzi-bW|jzIdsw{x-i|-ii?BZ zZ(S3Ey8krmKhh7>>P{(`l==1LRVF6gZ~O0qk!M_l6MQ#2uw9^J(Ab-32G;=oUh24? zcS}OOICw5)Gbv7a7`R%CjY#jlMciTOI)I3}B;Q0Q)%v=PbT|cn@Ir{X7D(}Xw`E0E zef(*6H&2FO0LnH}56D5SK2!m5jsVka>EDSt1oTxKohna^zhTI_+TB)h5 zW`<80bsbz5ooDIOSih{2^5EAYw+x{Q70oNSAY7&cmsPTmg5K_lz2cIyYkPV5XnSEG zy%L2g&3k;3BuuD!1F;z-&79+N>Mf#y{NM|coO^HKjd>=r!lRx!S4IEGxMEI)lSYZe zj!4u^y;mw2Dj66>a059pk=K-%vLNRCE&amY`0O?+yDT{QYCzJp7ja*jPBaz#9{b z*HV^F_qodIOInv+wVF8JY~Ab5iG40=YVp+_5N$TYLh-F?tL|X(ljOUdue=#zP#(H$ z=<3MP47^jb0=wxhUTi_-#$&}LUB=PJl>*LKbvzGE9eI&ZNifg7w}z6gZb%@A*vJm{ zEnGhZ-$1%I#=U6^=U+U!6nSWr zn6IwKruxQ8l(@jB)&_l!J18%(5a=@{R_wC7EY+6t6Y&^maL)?xVp#+hEG(_QJQLWj z3x%p~D45r&yNWxG3Xxgitebzn{OtD-b4RHdmGY%SV{`C;JR6f*ed~rxa%Cr zxIG8eLV%A-$qAZ0EPrm|4esr@g1Ty#ip2j3G;G@fQ$-HLL1h>qu8xpV=?%1rQFEXxd|^ew~E8*=st!c zdfU`pr(5-H7W+g(x?V#y;h7?{*2dazike5w-YApq%g>BTvTn!1Aqz^>FB(kYRv`R^ z2`Ysy5i19##os@jvo){r6s%jh(=(eavuWGeY-)20ZZUY3n|1pt zGd!kvg1>Q+$%d8#c;oV4Wq900H z`H$9D*MJqYNe@e`;x6eh&5TNr=sev!v@fTnRndrD{18HN0seBbKML!osg5f#?wJZl z^^i#}ln$+lj(BzrEsa1MK;oiSHF%eGE7pH?bYXXO%sO^GRfoq5#Lr}F;4e#OBwPvf zGb(DL^9j%Kg@uJLc9dTuPY(=1^33Sx&BhOeZ5R>6*?i4*f!Rsl$(t|uevk-9G59+JzH8k%i#~Ah*?K;22U(W*9KArb>i`uO6_4XJ-2ip zHRC>2zI=SQlq)m#SS;98AQXvI)a4lI$&oK(+8O@n_TmOb7pH*BaU61Kvkip(MlYM+ zzw^XxMOMhbt>>z^#`>NV|6m-)tWcTmWvtco$wqRQnCzwLG` zzoD3?MxV*}=g<5>znKocM$x_?bbt`|qt!|&ejxE{jM~S00^foiqMQ;{@^Hc0rtl#E za-7T^OO}nkue=Z(153trzpGqLWil8{O0Rj|4_^7`(Suc7ee*)<#-4cwtM@L_);~l` zOK}chhO9k=8yGPL)rn)mAMp+pjCUSeRz6A`sq=HYb8VxWGwW9ch{&?fB+^PZlm{ez zY$mjJv1_);6d!81Z;o5!VYi}DtNeLrLob&0<+lq&zSQ!Vp#6p!>2aNxbT|y4)zt zCIz^{xJ8|>EB_NWW%0M@O0tnIO2>|14aGf5nz}g`_zUeE>@@$z-o&r}4y&D5r!Y9K z5VBt$41!5N<}&g-HILke_yyb73$TBS|W>6&P*oTdn$+Q>j2wW^G)c(N`+wLzA|mF$8FaY?$=17_xmMt=%-*De)Af+p<{ES1dIJ%r0Jm z*Q_uv4sG#vyV@)ODNiSkqF@!B6+huKG(bk~85Moed1@^ocS%C}KNjo4$DbKpuU%KS zK?DJ-pkvo;CxCiJoj>lu+&(q;bJ25bGG=rrSD_qPuPVJe~8tshA6ENtO zQ0VTmr72Eq>c#Ep`@*jZ;F1dmTXQ)#b|d`Y(`PAqJ?QsSw-gz9X@XGUc%xjkmDj?8taMuglHXrFD8a9m5$4l{-p6Krrnl0LXt-XSP@c?U=7FD+cuMir|@58wlYWE zHqqsncw2(ri&0=(55zFG{2jN-X-T2bf)H^4Yaipo$HK7 z3Fkvot8~TgRSQ@?@l>_NfC839p_NSe><-Jqg$)f+XOQ>SvlkkxZjW67KAyNU{1;SZ zEZ775lXfODqfbI^@VF?g>WZ7GB0_TyLU=-yz11Zoi86#Z!xQjg&H~1LLa{gCZh4Ej zHPpM7kk)EKx&|?b<8`|Hb{&WA`=Lv4b8hjjmo6arpU~W4qF+`Hmyjty=O^iMpvIe# zX9u}ca*L51IqySFdRk*p!gpfvx#!w+MuM4tN!_%|@*@20oJ6xJn>S`Yw0lic@e(af zw)R^#%gvdATebm{QTC~j#>e-~!?A@01@R-*^*~#N%xip4m#x6z;DUS$AX^9Ycx|c# zfy`BJZ7|68{oftFxpPDL)QT!hq_hOq1qO=WuI)e{*Nb~C619fPqRNY5i=fply1WC8 z@%hzj66Gz-53Wir2C)%&7^sq=@Ikwnw`Jm_JtxvzI1lu&GcmN1Ua+*MfrHRnQBVzk zSdC*oes!=C4X9UOaZJsxbnbn2 z%{lIhx4Adw?_M9k0{FG_dLPhrNyP9w`aWBDN<}FJ5nyBrluT7l?v`Sj#!nPB#^1~G-p(HVXnYUVu%eDbcBzVx7!iUjQ@xB!?| zo0!+Tr=^&7=e!Wh<=R4l>OYGjgsAfkaA@@93bcoHX>0~`M*lW7m?U_YSoF9v4=mmJ zE)NIC{DdokYxtdiD*)ps=Iy zZFk1Hs5AN!D|7*3qYK`;78H4nqfLnEvYpIe3J29?`=|$!8_|GyYQd`G1Gmq+*lDuq zP{QXFSp^ii-g-VW^f^j6LO>gIFVF&Na+#fX=K><~g+B)xh^k=fP7mG)3@@KQ-;<~V z9??achy)pNF=wJO_zK{2jRbis*dZKRxMRft literal 0 HcmV?d00001 diff --git a/doc/source/api.rst b/doc/source/api.rst index b8bd58a3..e84dd8b6 100644 --- a/doc/source/api.rst +++ b/doc/source/api.rst @@ -27,6 +27,13 @@ PyAnsys packages API reference :class-title: pyansys-card-title :margin: 2 2 0 0 + .. grid-item-card:: PyAnsys Geometry + :img-top: _static/thumbnails/pyansys-geometry.png + :link: https://geometry.docs.pyansys.com/version/stable/api/index.html + :text-align: center + :class-title: pyansys-card-title + :margin: 2 2 0 0 + .. grid-item-card:: PyAnsys Math :img-top: _static/thumbnails/pyansys-math.png :link: https://math.docs.pyansys.com/version/stable/api/index.html diff --git a/doc/source/examples.rst b/doc/source/examples.rst index d1ec5071..9904dc14 100644 --- a/doc/source/examples.rst +++ b/doc/source/examples.rst @@ -16,6 +16,13 @@ PyAnsys packages examples :class-title: pyansys-card-title :margin: 2 2 0 0 + .. grid-item-card:: PyAnsys Geometry + :img-top: _static/thumbnails/pyansys-geometry.png + :link: https://geometry.docs.pyansys.com/version/stable/examples.html + :text-align: center + :class-title: pyansys-card-title + :margin: 2 2 0 0 + .. grid-item-card:: PyAnsys Math :img-top: _static/thumbnails/pyansys-math.png :link: https://math.docs.pyansys.com/version/stable/examples/index.html diff --git a/doc/source/index.rst b/doc/source/index.rst index e95f87ad..5704156a 100644 --- a/doc/source/index.rst +++ b/doc/source/index.rst @@ -13,6 +13,7 @@ it is now a collection of many Python packages for using Ansys products through user_guide api examples + tools .. grid:: 3 @@ -25,6 +26,15 @@ it is now a collection of many Python packages for using Ansys products through Pythonic interface to AEDT (Ansys Electronic Desktop) + .. grid-item-card:: PyAnsys Geometry + :img-top: _static/thumbnails/pyansys-geometry.png + :link: https://geometry.docs.pyansys.com/version/stable + :text-align: center + :class-title: pyansys-card-title + :margin: 2 2 0 0 + + Pythonic interface to the Ansys Geometry service + .. grid-item-card:: PyAnsys Math :img-top: _static/thumbnails/pyansys-math.png :link: https://math.docs.pyansys.com/version/stable diff --git a/doc/source/tools.rst b/doc/source/tools.rst new file mode 100644 index 00000000..e5cbca0e --- /dev/null +++ b/doc/source/tools.rst @@ -0,0 +1,80 @@ +Other tools +=========== + +Tooling libraries delivered with the **extra** target as well as other standalone tools +that can be installed or used. + +******************* +Standalone projects +******************* + +.. grid:: 3 + + .. grid-item-card:: Ansys Python Manager + :img-top: _static/thumbnails/ansys-python-manager.png + :link: https://installer.docs.pyansys.com/version/stable + :text-align: center + :class-title: pyansys-card-title + :margin: 2 2 0 0 + + Simple cross-platform QT application to install Python and PyAnsys packages + + .. grid-item-card:: Ansys ``pre-commit`` hooks + :img-top: _static/thumbnails/intro.png + :link: https://pre-commit-hooks.docs.ansys.com/version/stable + :text-align: center + :class-title: pyansys-card-title + :margin: 2 2 0 0 + + Ansys repository containing customized pre-commit hooks + + .. grid-item-card:: Ansys Tools Repository Sync + :img-top: _static/thumbnails/intro.png + :link: https://ansys.github.io/ansys-tools-repo-sync/version/stable + :text-align: center + :class-title: pyansys-card-title + :margin: 2 2 0 0 + + Ansys tool intended to synchronize the content of two different repositories + +***************** +Tooling libraries +***************** + +.. grid:: 3 + + .. grid-item-card:: Ansys Tools Path + :img-top: _static/thumbnails/intro.png + :link: https://path.tools.docs.pyansys.com/version/stable + :text-align: center + :class-title: pyansys-card-title + :margin: 2 2 0 0 + + Library to locate Ansys products in a local machine + + .. grid-item-card:: PyAnsys Tools Report + :img-top: _static/thumbnails/intro.png + :link: https://report.tools.docs.pyansys.com/version/stable/ + :text-align: center + :class-title: pyansys-card-title + :margin: 2 2 0 0 + + Tool for reporting your Python environment's package versions and hardware resources in a standardized way + + .. grid-item-card:: PyAnsys Tools Versioning + :img-top: _static/thumbnails/intro.png + :link: https://versioning.tools.docs.pyansys.com/version/stable/ + :text-align: center + :class-title: pyansys-card-title + :margin: 2 2 0 0 + + Tool for backwards and forwards server support + + .. grid-item-card:: PyAnsys Units + :img-top: _static/thumbnails/intro.png + :link: https://units.docs.pyansys.com/version/stable/ + :text-align: center + :class-title: pyansys-card-title + :margin: 2 2 0 0 + + Pythonic interface for units, unit systems, and unit conversions diff --git a/doc/source/user_guide.rst b/doc/source/user_guide.rst index 060d000d..ccce9bbc 100644 --- a/doc/source/user_guide.rst +++ b/doc/source/user_guide.rst @@ -19,6 +19,13 @@ PyAnsys packages user guides :class-title: pyansys-card-title :margin: 2 2 0 0 + .. grid-item-card:: PyAnsys Geometry + :img-top: _static/thumbnails/pyansys-geometry.png + :link: https://geometry.docs.pyansys.com/version/stable/user_guide/index.html + :text-align: center + :class-title: pyansys-card-title + :margin: 2 2 0 0 + .. grid-item-card:: PyAnsys Math :img-top: _static/thumbnails/pyansys-math.png :link: https://math.docs.pyansys.com/version/stable/user_guide/index.html diff --git a/pyproject.toml b/pyproject.toml index db80c746..a8aadaba 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -26,29 +26,30 @@ classifiers = [ dependencies = [ "importlib-metadata>=4.0,<5; python_version<='3.8'", - "ansys-mapdl-core==0.65.2", + "ansys-dpf-composites==0.3.0", "ansys-dpf-core==0.9.0", "ansys-dpf-post==0.5.0", "ansys-dpf-gate==0.4.1", - "ansys-dpf-composites==0.3.0", "ansys-dyna-core==0.4.2", "ansys-dynamicreporting-core==0.4.0", - "ansys-pyensight-core==0.5.7", - "ansys-fluent-core==0.17.0", - "pyaedt==0.6.92", - "ansys-platform-instancemanagement==1.1.2", + "ansys-geometry-core==0.3.1", "ansys-grantami-bomanalytics==1.2.0", "ansys-grantami-recordlists==1.0.0.post1", + "ansys-fluent-core==0.17.0", + "ansys-mapdl-core==0.65.2", + "ansys-math-core==0.1.3", + "ansys-mechanical-core==0.10.2", + "ansys-meshing-prime==0.4.0", + "ansys-motorcad-core==0.2.0", + "ansys-platform-instancemanagement==1.1.2", + "ansys-pyensight-core==0.5.7", "ansys-openapi-common==1.2.2", + "ansys-optislang-core==0.4.0", "ansys-seascape==0.2.0", "ansys-sherlock-core==0.3.0", - "ansys-meshing-prime==0.4.0", - "pytwin==0.4.0", "ansys-systemcoupling-core==0.2.0", - "ansys-motorcad-core==0.2.0", - "ansys-math-core==0.1.3", - "ansys-optislang-core==0.4.0", - "ansys-mechanical-core==0.10.2", + "pyaedt==0.6.92", + "pytwin==0.4.0", ] [project.optional-dependencies] @@ -59,14 +60,27 @@ fluent-all = [ "ansys-fluent-visualization==0.7.1", "ansys-fluent-parametric==0.8.0", ] -all = [ +tools = [ + "ansys-units==0.1.0", + "ansys-tools-path==0.3.1", + "pyansys-tools-report==0.6.0", + "pyansys-tools-versioning==0.4.0", +] +all = [ + # MAPDL - ALL "ansys-mapdl-reader==0.52.20", + # FLUENT - ALL "ansys-fluent-visualization==0.7.1", "ansys-fluent-parametric==0.8.0", + # TOOLS + "ansys-units==0.1.0", + "ansys-tools-path==0.3.1", + "pyansys-tools-report==0.6.0", + "pyansys-tools-versioning==0.4.0", ] doc = [ - "Sphinx==7.2.2", - "ansys-sphinx-theme==0.11.1", + "Sphinx==7.2.6", + "ansys-sphinx-theme==0.11.2", "sphinx-copybutton==0.5.2", "sphinx-design==0.5.0", ] diff --git a/tools/links.py b/tools/links.py index e86b9ac6..16b4d1b9 100644 --- a/tools/links.py +++ b/tools/links.py @@ -21,32 +21,40 @@ """Path to the documentation source directory""" LINKS = { - "ansys-mapdl-core": "https://mapdl.docs.pyansys.com/version/stable", - "ansys-mapdl-reader": "https://reader.docs.pyansys.com/version/stable", + "ansys-dpf-composites": "https://composites.dpf.docs.pyansys.com/version/stable", # noqa: E501 "ansys-dpf-core": "https://dpf.docs.pyansys.com/version/stable", "ansys-dpf-post": "https://post.docs.pyansys.com/version/stable", "ansys-dpf-gate": None, - "ansys-dpf-composites": "https://composites.dpf.docs.pyansys.com/version/stable", # noqa: E501 "ansys-dyna-core": "https://dyna.docs.pyansys.com/version/stable", "ansys-dynamicreporting-core": "https://dynamicreporting.docs.pyansys.com/version/stable", # noqa: E501 - "ansys-pyensight-core": "https://ensight.docs.pyansys.com/version/stable", - "ansys-fluent-core": "https://fluent.docs.pyansys.com/version/stable", - "ansys-fluent-visualization": "https://visualization.fluent.docs.pyansys.com/version/stable", # noqa: E501 - "ansys-fluent-parametric": "https://parametric.fluent.docs.pyansys.com/version/stable", # noqa: E501 - "pyaedt": "https://aedt.docs.pyansys.com/version/stable", - "ansys-platform-instancemanagement": "https://pypim.docs.pyansys.com/version/stable", # noqa: E501 + "ansys-geometry-core": "https://geometry.docs.pyansys.com/version/stable", "ansys-grantami-bomanalytics": "https://bomanalytics.grantami.docs.pyansys.com/version/stable", # noqa: E501 "ansys-grantami-recordlists": "https://recordlists.grantami.docs.pyansys.com/version/stable", # noqa: E501 + "ansys-fluent-core": "https://fluent.docs.pyansys.com/version/stable", + "ansys-mapdl-core": "https://mapdl.docs.pyansys.com/version/stable", + "ansys-math-core": "https://math.docs.pyansys.com/version/stable", + "ansys-mechanical-core": "https://mechanical.docs.pyansys.com/version/stable", # noqa: E501 + "ansys-meshing-prime": "https://prime.docs.pyansys.com/version/stable", + "ansys-motorcad-core": "https://motorcad.docs.pyansys.com/version/stable", + "ansys-platform-instancemanagement": "https://pypim.docs.pyansys.com/version/stable", # noqa: E501 + "ansys-pyensight-core": "https://ensight.docs.pyansys.com/version/stable", "ansys-openapi-common": None, + "ansys-optislang-core": "https://optislang.docs.pyansys.com/version/stable", # noqa: E501 "ansys-seascape": "https://seascape.docs.pyansys.com/version/stable", "ansys-sherlock-core": "https://sherlock.docs.pyansys.com/version/stable", - "ansys-meshing-prime": "https://prime.docs.pyansys.com/version/stable", - "pytwin": "https://twin.docs.pyansys.com/version/stable", "ansys-systemcoupling-core": "https://systemcoupling.docs.pyansys.com/version/stable", # noqa: E501 - "ansys-motorcad-core": "https://motorcad.docs.pyansys.com/version/stable", - "ansys-math-core": "https://math.docs.pyansys.com/version/stable", - "ansys-optislang-core": "https://optislang.docs.pyansys.com/version/stable", # noqa: E501 - "ansys-mechanical-core": "https://mechanical.docs.pyansys.com/version/stable", # noqa: E501 + "pyaedt": "https://aedt.docs.pyansys.com/version/stable", + "pytwin": "https://twin.docs.pyansys.com/version/stable", + # MAPDL - ALL + "ansys-mapdl-reader": "https://reader.docs.pyansys.com/version/stable", + # FLUENT - ALL + "ansys-fluent-visualization": "https://visualization.fluent.docs.pyansys.com/version/stable", # noqa: E501 + "ansys-fluent-parametric": "https://parametric.fluent.docs.pyansys.com/version/stable", # noqa: E501 + # TOOLS + "ansys-units": "https://units.docs.pyansys.com/version/stable", + "ansys-tools-path": "https://path.tools.docs.pyansys.com/version/stable", + "pyansys-tools-report": "https://report.tools.docs.pyansys.com/version/stable", # noqa: E501 + "pyansys-tools-versioning": "https://versioning.tools.docs.pyansys.com/version/stable", # noqa: E501 } """Dictionary with PyAnsys packages and their multi-version docs site."""