From 71eb2814d4e125e906489260710ee9c63359bcaf Mon Sep 17 00:00:00 2001 From: Oliver Date: Tue, 24 Dec 2024 07:19:36 +1100 Subject: [PATCH] Remove django-import-export (#8685) * Remove django-import-export requirement * Update settings.py * Clean up admin files * Remove much of the old BOM exporter framework * Add note for future self * Remove dead unit test files * Remove defunct AjaxView classes * Remove InvenTreeRoleMixin * Update docs for data import * Export docs --- docs/docs/assets/images/admin/export.png | Bin 13816 -> 110377 bytes docs/docs/assets/images/admin/import.png | Bin 27524 -> 0 bytes .../docs/assets/images/admin/import_error.png | Bin 73578 -> 0 bytes .../assets/images/admin/import_preview.png | Bin 86260 -> 0 bytes .../images/admin/import_session_create.png | Bin 0 -> 11782 bytes .../images/admin/import_session_map.png | Bin 0 -> 36206 bytes .../images/admin/import_session_process.png | Bin 0 -> 47273 bytes .../assets/images/admin/import_upload.png | Bin 28274 -> 0 bytes docs/docs/settings/export.md | 12 +- docs/docs/settings/import.md | 97 ++-- src/backend/InvenTree/InvenTree/admin.py | 122 ----- src/backend/InvenTree/InvenTree/settings.py | 4 - src/backend/InvenTree/InvenTree/views.py | 360 +------------ src/backend/InvenTree/build/admin.py | 48 +- src/backend/InvenTree/common/admin.py | 12 +- src/backend/InvenTree/company/admin.py | 152 +----- src/backend/InvenTree/importer/admin.py | 8 - src/backend/InvenTree/order/admin.py | 277 +--------- src/backend/InvenTree/part/admin.py | 493 +----------------- src/backend/InvenTree/part/api.py | 9 - src/backend/InvenTree/part/bom.py | 58 +-- src/backend/InvenTree/part/test_bom_export.py | 172 ------ src/backend/InvenTree/part/test_bom_import.py | 263 ---------- src/backend/InvenTree/part/test_views.py | 27 - src/backend/InvenTree/part/views.py | 85 --- src/backend/InvenTree/stock/admin.py | 232 +-------- src/backend/requirements.in | 1 - src/backend/requirements.txt | 25 +- 28 files changed, 125 insertions(+), 2332 deletions(-) delete mode 100644 docs/docs/assets/images/admin/import.png delete mode 100644 docs/docs/assets/images/admin/import_error.png delete mode 100644 docs/docs/assets/images/admin/import_preview.png create mode 100644 docs/docs/assets/images/admin/import_session_create.png create mode 100644 docs/docs/assets/images/admin/import_session_map.png create mode 100644 docs/docs/assets/images/admin/import_session_process.png delete mode 100644 docs/docs/assets/images/admin/import_upload.png delete mode 100644 src/backend/InvenTree/part/test_bom_export.py delete mode 100644 src/backend/InvenTree/part/test_bom_import.py delete mode 100644 src/backend/InvenTree/part/test_views.py delete mode 100644 src/backend/InvenTree/part/views.py diff --git a/docs/docs/assets/images/admin/export.png b/docs/docs/assets/images/admin/export.png index 1180684c11f5f993373b1fe59ec68890e02863fb..e8c30e33f593a34b02e6062487d935251ac02d78 100644 GIT binary patch literal 110377 zcmc$`2UJt()<5iw*Kq`et5TGfJ1QU$K#(d*MjSZ+7DqcZ@&j{e+Tn# zfv<3)bbh#L7VNM(b7J}u%uy1dlCD3xl6{NM(2OrPxJ%e&!0}9VdZBN1uXM@Ng%{5y zdSnzf`$?xy-^875`6vJNUmt(<4gd4$w@W^ckG{Qe^zFb&zbz)CXnDD;tZaFGxgK5L z+)f-?JWjE-46@v@B@o(+)-zS$6GA`y?a0&MGC%#-BktK{v)g~WMf$Z7|6lJoUG$5V z`QPryyYRpDkn>?GUXvp0En&I+zH=&aQ@a=bJgUV|*k7LCfE~-|hxXOA{_@B1w#2mr zwVW9=BRU9Ktf|;7G3`_ybFjS@^GiRnuTM3#J<%)d&k4j?4~=sXWDpNS)B<)~J5bul zD|R6r+MOs#gm{ME0=i@WlxmWJ`~_-y)t3H(JZ#G0&$&8}Uft5#=@Ev1D+yvG`OF$0 zm$>b&&8EKcA-Ulqx#e4~Ob0SVG1Ta{OiW350$q2aPVmn+r|vv2F=9=W)}#Ck=?-dC z4Uji~p&%&i`@P|x;3u=0v?NjsoH8bapd%3yB{x`4e7ch?Q8DT3vi4cO^c()isl;;= znkf_Ky^*wL~-YGIr36CBZ2eJ z(Fmk@vkz-X{)ykiL-oDs5zhdyMHi$9d^G;myNjh?u?6cX8i@F8b8Y1o8BECyw_kqH} zcK&_!9U+Su{N7FUNL&5F3mni7bc(ECp#XuqX`N@;O)(w?iRa)Y%L*%!`+ zjLiVErGKxsRLqGBuc6En89r*eBfyJUNk=7j4ItD) zpMe0^ntOy5xSC9f`j!*P1BAHMut0(2~V*pdipV;1p7Hm|o8Y}eg(Rx!0`>t$j* zr=q{C>bn#>AA0geT=}%{Y?Zs|_@b9^LRU6q@?0S4n&2y0cLNC0FL(li5nm2T@jkI= zUnNeb&vRN7GJJns7!Gj`KaVxKLATBR))h%6cAP%mF0)FDO(JDfw~rX-vGdpw&^>mW;jtLk#w_t$nUqMp4726 zd3!kQDS6pIwKsg}WniihWR^CnF-e{qq6|fx+#q=*ViWoR+at#^!cFqC>UTeGOd^9_ z_ZE*@qzDwznJbd)t1X*rloNvXTaWVqO?Iu6h?};2Jjd8T8Yqlf{@BBl!W5WB*=~1 zInq@}{#{a61)+_Y9ffue`4wnncZafp@M7a?!HCSzTu^flBaWjv#G&o3(~i*)D?g6J zT-{W0nj3<%-sWHGCI#fDo6X@ga8s=M#|&u5ewkrDW?9gZp-Iqj&OE=oSdAnD#{-o?XUu$J(JDbh|^478>XnMhxhf>H>q!x z&pB~ce4Kk5l!!dY2`kkh#+zf}S_?8x8X#A=hWE1 z2lgOtBOKaFIY*%=DfS~=&xrpN`I7tanZh`NS zDVvKg=ltm;>+>Z>qF}gnlEX~c@+4b)sdq7dWw#WRxk_k{POId@DipVcx&`B~l*smQ zDo%+0V9QS=IVKyU6)<#Ee(hY~=1*bbaJlx-fW?}f*G8r3WnPukbnNQ9Q^#4ZN_4D8j7f7vTNM-*rk2Qa2MfPKLy`= zHKH$#+)v&Pq!QC@l6D}v+=RWj-(ci|WQ@P=*@g%6vjesrR3uroqdJ?l>a!LwmSm7% zn6Y3z6gujIT9zX22NSiFbz2mb^VP0H3$q^f#jR=W6dKAiw3H=e%~Q7WE46C9o9b`d zMa@sSzUsf1BUFE@e6izeek_u1i4+YCon@17_GB`lC`_e?qW(@Rptl}lwAS~QGbod5 zw3dosWcK};wCsyBK2FcFqq4-+B1csCV<4Kv~;D+VIl-xdt`;trG~? z+3kBXT05m6yUaYb@KJ8Uwmx|}eN)FHD?;i1V*2(3f2muQYFf1_b)@*wHC(qd{N5r? zkjONQjvTFuHvFxR@xEn^uz8BACf7W}^jhO{i1^);4_hjO^0+>07~q+(tJqghs7dfn zsakYgWDP)-XBHccMY6AtE`&;7FVHr2PD+9YB=BL0dJq?yeEWpDT(eD0@drIk9@Vht zbaZzN{%Lyw=xj#p5HiC@#9=R(WI>-`7ZSm}tfH3Emvh&VqMGkoUaRQtzYLx6uFL4D zYHvgaJNT(<2lkIpe7is3l)Y(3V_-?i?{`e=)>iUq#E?3ury-Hf%hkjgonlPwI<1Gd zEz-io@!m0biYa!NpUzNyvz4-=soDxpLUNK;B-(kZh<<1VS}zaY4=M9`!6~wtbd3?2 z8!L&=EBl{QyF&0ih8N9Y4ulPzg@X{mXwzr~(M!T9JiUB@OQyDCH@>$jx}rj!2q zkYebtVEyfVmvC6X=ynIfBLOy3tS7M051pj ztI(>gEQ!TI!DeAM%KXC_h!k1)-hsU?v4R}HD?&@b>=afhEwl|6kTezLzxp_A)l`}W zhjQdD(I81lFz5cJ2>S2EewKK$vo_fTlZ}a0m+!$tF zr_(^u6#1ShY+9h(k~uaxMp!2&l+=wwfwJ~ue188G%F7UaXrb+EV^P@Srpa7_Ke;+| zO~npLw)QhF43wz4Sqd%PbCo{)OLV%7@`@lfvv&ZrC?h9>e}Qsesgx|*Y?vGBo)5adjseoEF?~uq zl}QY^Dmui8Z{I--(U{bhMNRk%R;X|Lh!Y)#EVuzjhDyy){4a4D{2;ghXz=w?C-?bl ze4pi-$`RRGs}YG9DmdOgxt*DPS9e@qL^=3`#=2QjhD-GgBgXB!gt>l+gb2Xk; z8G*g1%=_fn|ezh@14`g*BO~?!>ky64z|v0zqQCx z5}KGH;P}`M6S@_$gk!OLA>Jp)low>vU4)*}q+EU@CFn65X7?&vCn9=Hn3svIoJIxa z&e|rNb=StFhvNz{yg>7u6k=mS=C@SaAi-|zS_+2RC6hu{?8`qN@sRSB1Z8u6R&^k< zc6Mh(4U=Zl%uLkgpY+VV+`E*b`29ae(7k z77aUf#T_#=yX+77>0_weHd;36aa0B$JA{)P-<1s{ymIMsgMRC7+NiTUNJEqSL6aPz zsQTG1!&#+4h~vH4ZTP97S+#ZA55J5E^hi>b7AZ{wp5cC3S+t@Lb@*h#DA`<9T9|-r z00^#^QLqJ7{7_GLsJnmtL22|H`SMh9_u`$Uz=3=nP}qEv*ag_U?aT*mLd_4;S6692 z4gOq_`{DV#qqe$rZg7ch;cioD)tRfhj;Sno&`FegIm7ZQY^u#WSwClTC&=vKR4Hkq z?E+-r2wr}+ypPc&at37RH??i2+L(PDah)D;`LiFdI!9j)8o97KG+U{V5n>$h({3)e zN>oaln^W-SifW|1*o~QDQ!=dqu@Rjf&&c3^!8%hAbKvfi)yrCTBj#z660!Jvnb>rT zoc&!ihFClmXSKc1Hw%^@?BS2Zq2uLjckiAdPEAW8Nk5=zM>Lws)@eE^wmCux^5*!y z_b(?=%QH03laRfATnDC@I3jI6#M*D};B8~h`YauTcqU;KETIvOYQHB$MIMFFQ9Y-i z;|lA;+=g6|Vw*WW>}8fMY`KXHIm4z-WqUu*UT?R1Td+F7%F`QYPqho~@DE>vI@vMw z=eAERZPO5jPqt4jgc~P=>&ZG+ikghpu?XqrwS~1>kcS`LDfm85dK=2U6gPD@qrm8g zWO%Vu!DdTvfbU|w{8ThLm*|)4VT;>DQH*3$T|PyM{AwdF2h3yxy4z7y+_mhoUIC~g zSg$7~eC$EFR_#{ZeNrmaLIk=aie-7%e?W{$nKiHL`q8hN7UmDFm9flL8Z(hRuIE3{ zXY~-EX^(7^#`0h42~O>%RcJ~m7!S*y@@OCNnDH-pEXIhNZ)*QS-=rF;%rq;vEIkT* zTF1#rkC!oqHwAb!u=7hvd4BbmI`78`oh=C2X@{R&k+joWs3v|Vjv+pJN==sav+MP) zCvISuBr>gLU1+fJmd(dbHn>gJo6#_YLL==+bB}UV?JVTLfZDRhH?tha82J-h`>nWZ zlU-j2&}M>o4a4WoHhlSIbcyQ^mA(g(A zv=|8rr=BIP!rR&p@HK0VH*%y6>D;ikJEaTvv(dqi4EndLPlsP@QD(o{{l;+i$>0ES zC5BTaslVmizaW2IDjjZ7-xGBGY3Ou8)l}?KLwU^RX0sA*yGumkF`sO$7~GpB4*y{3 zUF=p+ktw_c7UM$adS;caS*f&DWL51b{Ji-6f#2)aQkLT4w)6{3%&@i|4}T7T2)6Pw z+yZ4{zqc$BNIk-4E%a=hUC2|%T*87^DtB6D;u-eEMqcbJC|i}AobsZ|3#!`685EXU zFW~W9y%;8dRXBQ`=yYxO*BiT1NsMQ~8aH+|MDcL;tc`)wB&>Ewwxs&bvttibTKtgd z(Bm-tQa#TXBr71fdC>+!D;*%AXRRDwbhp$ftiLLU^B`H2CCVm8b*2g9A3`3~gzHi| zLsIhVvuAJzkYv$59$~l131c|x;+YX|pu$Hft5F$P*GfMHL6ecaV=aa*N ztXYj1zeu+KF%D^1PoH(fF-kHi336jvwa`duvue8tLX*#2kf!J$tEb(cued;DH`Zs; zH=9>j#covEggjILLRzVjg)?t2(*brZ<6*y`5Wea4w#pCAy9eM`QD@A&suRFkx-ngX z63=db$yiYMV=3?xAbMXbNw!!;{I<0olb##nC|IV8$6LKNXf}(%JZNEA6=p^F1{h!a z=ug&b8F;zpSFWWDDa$pI)l-dOc1DdbsG#f_J|GIqnvwx`En=xM6g<50b@ZK32esEm zUh`Qo=^f&N8KMU4{o|b|qC2!w2+1aqI6{M(^R}cKkl1+x`u_0_aSzS+(kAjZ)^Cw& z;K&Php`^xM#lB?O3)DD(7fil2EaR+E# zSc9(sj6AW%bFJm&%>rRp1N-L20LU|S7IO)ay?()^7v-LuJrioH#>jK(T!Mx{aRe-p zvz^`%2MROAnHNF!ccVHR3&Q26L#MX(gQ2I-f8qh}T!W;kxtPJ+^(N|4u>S1gvU4!( z7wTvmucS*j1<`FEQ+Dv$ccqM<^in?0c`3cA4ye zG;5?NFuTdETm3UHs1 z324?mMg57E3yRtQMk6@aSaYgnN$}YO0R)osRrV2^WKdSC_$p&P&^Qe?AEqh+3<1kU z*yF6a#=VRa#9Ei_^c73~haX&S z037%Eu>VBDqJf9?Wc{c2VP0eGZ-DVcMEvaprgKRCaa3X}cUAHS}8zxNjUWi5XC{QsBJ|Laix-;G3LX1jXo z@t5U&`04Lj0F+n`j_;*V(x1yz-(avF%20 zo!8VCD(LWY;o4DtY^7d|xI5VFtHV(U+y>~5X2k&N!oa|HhnJ2-JHFCVcF1h{mGXa)<-yU9kbKj`&>%&vC|LwDL9tY{yjIhI2 zWQ^`TyMtO6aJ*5v{ADK6z(P8__=tw+Fk5kIVeqhbH6yYs!=^yh8qRZy$@vT}LVp0xYq_EH=%|YJrTGWz2>*y5d>q3~#s#?Ftvc#X3zmnXkOmq}G#}JgBAIc*C;zP?T>< zY#&jKyfnza)#R-;xYt+}CL@0EDFf@5U6*BiOIlF!NGkgLRCxick-k#7g;zuiywWJ9 zJq6JPFEd&b0x6f<$qLjR-u0&6rbVmPI=t@QP?c6Kksq6ca?i-$*RcI8m>pOa?qHn}NUl>V?iNHE`?m}8@O>ht@;dTa{YSWYwv&`-^YT`;h|jrT&z z#C`+uhp_OlV8^U7854ZZA~zv&L7O`TI&e_21djfnk9`s1k;v*t#GKF9ublfI7{q_y zm{7p_U7MVOU|g)IBV%_> z2Y9Q*-+YGR*!e=E7??ZQ*y)QNDlYE}U?-A_(pBN!JfGc!)k(l}Y%af#5mr_Ciw8KU z=lxB30M?YZZCxpAPP=tD(jx+owfGNDU;X^wJ+rDBu+?f<8)S5p2KBqlMWE3+cfX7h zJONHAvYvCgZ1TnB=vr794c>pohdq4VoA{)pgzA?UzAUN=XW0A)aQ>eUu(noLkCyuD z*A4#b*UcM$m(=L6wU_}&e>;_d8k4*)a!)QP$pA0xr>}E^7=6hb+VJUffM-(LTvP+c z%A~sv|NXfO)%#suB!0>`kflXGCC6&I*)Fvt=*4{zh*ee9Lq$9%Y^rA?ek=tVlV)GL zAFt}oCGV|QJv5~n(66z?C##pUUoUAVEVh#xE!21=!=E)Xkn?$}mlKl`tgDKRp!7j~ z5*aEhZ&r=|3gLT^9wM3fx>68}W_>j5bkYnp*8oK~R;dR*jMv&3sWfUW49wZb=pqHg zeBYuIS|}yLX}3Om0X=K=RB=va+XRPiPoN@=2$BOSQW5HhcHU%CJ^#oFf-OTdbE$9Y35C`nX`FMvdp1?U^rUY)$(Vr{amDF$H#K^i{y-kl@`QBW23}S?S;=K#;nXmsAkb!B6zHi3y3vK%bI1=CRWmJ;cK}FcL0wjmd%e9^pr~N8IHl8T}>}i9FXzpluDIx{5=;5)0*Ys=M6gYJ9V*HWh9= zfz8U@lCYa(B)&_=yqaR>h4H~GGYlEl<2z?p(&#$lI|+~zNLp)PQEJfm?fNKfP`H~m zoBTXI-WM6f+#wlf_i+)z;vJ*xAKGqZV$u8kD4nu44_(EU%d%!el*?vNMmEGNqTJmA zD-cZxKDN@ydqeU%liPaGd%9;~VZ7&|e7pK}X0$6R3b|CWk>yvezf~chd0s4V935{L z5p->>lLwNUlvH4sbrL@{k1s&kw>@;1;brwn#e`72Vh_E{qfHqZ$?_I&?O=+ls-)%X zo>xB}O+OmW2*8a%O%Qpk&@gSzYP8$a6zgr_$`kX5{uJpfs1Fw8SE79)|JW z&cz|G{1oNR)-We0VOztO;%z%GLZ++>@APW3 zRk#Vk-R}82GuWuCbiU$LL6D!D3ASzTrEWZNL~Cc&qA0C51uJ9dka99w+?^p!$gYW8 z+nOIqP~3@L8ID)B30a1Hi3$?ZGM9KEfx5wjW|e@X*N+oRU?Z&CPS#M)dR^>rwKNRl zo(UAQ9+aTm7ecZd+p5fFDDS5Ztg}9wMO%6wdQ-Z!5H^#4895& z|HiD}Fz!t2gMsc+6J^FY5r9qi2!au`4reQqLNPIb@iSv}QnIp79{=RO9_iq@dQ)21 zSs$cF+V@iQNiDi{L5WEUzT?HSjYT_~Z4m`ww^|{-OMR_zbuRDaGca2Sg zq(qQ%>G{&P&&rz7H0F0LiYBGaggI!GyIz}-ewmRMqQKqQqL59wIDAG?){Klh0u?J; z3P8D2!_0Y`_v$Q)_E+W2Qz}wBuW=D}alF}p?{~|YyvsBo=z%Q{tOdle#h4eW3>z1U zh54>%m^X71KmmN%R9Z$*fOe4(@{6E*xq3_9_NTl?(&f`Tpe-^i^#w9?=8VJi9#W6s zZ`~_Y@U(qVcj)F;D%?xoM5WB~S&vDfgCB0UVzB`JfIXUw$ade)#9D_4aX^r-)daAc z?gYK98SH@8P5`d99kd-locSkU;x>gn6w{blsrDOU9TL&cm+DtXa= zZ)A^}G`99Fh1I_>np6nzPw5@0g83lIlt&W{5$LB_qBe8sQ(*H2HOXCH?^GD8iw8=& zOhTa4`F34ph67D{>IR?v{) zjFAmi4DsvCfYju0vDp;Hot=xMT4G%=?tw7(cf<%QE4+W z2NdDM&@eB)N9dGmEHy7=Yv&kwK{08`*mBlQMs6T6X!MjlW?473twdc#09#+vW?I{9 z6hkZpYG+yJ9cmV8#sz`di`{{G=c=kLC~S z>`8t76cHtTIH@byRa#qKpqUK5SIF(27?Klo;!Ih4k^QqnK93PhM2vJ3iR{e*QOu&6 z>7OYV7<#Wv)7Lh*TSG-0_JE1B$XbZ%cKaq%u6@FL5`Esk>2KfuKWByiouo2wDs%qWJXl;a@-L%EukQ~m5~75K zpS=CWjX&c0-#G))^r?C{ZxAse=ucFBuEA)g!PjZL#?934@}UymFog?^W-6Vu$6G@D z8mNOBodc>w5r9Fv^LPBvXbA8FeE?7eRpWbk{GI}ksFq6sg(rs|&l z4HWeUd?RO;YlVIGx2xcL?q4GEk?0@3Wb{Ti|Ci5lEOJ7D<^T5)f%Sk9k-IbkSHA@W zWmx4krSe~9d@vudsnb&-?#~>+qucN5jRwl}W&lzBMW_I7vMd0=V&&h^<19eS{GCZb zOf1_6%@9OBGb0t}z95t%{QtAF{=DL{R)rIX3VoiSm6ZC$R(?FghwZ=gC1Xu^WdxIu z`plEO{0B<r%9FU6)2H_Z4_!IIW$qIH8K6AUF)CC9x;PGBrT6py z<*S~+poQK56BWLwK|DbL{_l)-*nVAsmutQhvKb8(ncXQ1LJ^8BqeL|Vl?q&pzt93N zpTGcKF=Rf8)HoF34K!C}hAtqPXwK=fw*BP=JMh?lrsWGtp{>g z-EQRTzO%(;O<48B5X@(U_~V&m^Bf`g%ES;N@F8X?jL4W>`0dwL#tg+^A%acK&IU)* z|8{R^pH#sm)B~`2vE~Bpn0)ZfctzhVC}#(1nC#ng-c>1TwA!2Stl~bQX#s9p;Q}MG z%fBTzaeG*-CzfOnmYnoRBWstDH%m^)X#3m#p;AX{ek_Rj`|*UIDb#FExZmA+2bBBv zk|FY%bx#z8Nm_UjD&bJr)8RWmzT7WYX(X!&q@m<%!h7B)BLEz9sPO(|7!V<{IaFl) zeaiNTA)Kd(l9ym`FL|>nrL{yoFY7kgEVsr?v|`olvt%p&1W9I{~a%LkiOm#k_zCb3iRNS)A0@CwLD_{m&aRK_e z%zA_!a)fGEi1_5eVe%~Q+!s!bOMu!5-KTrd5<2dp~Vh&C;$PQ2g0<~O; z6H9;20U8TC0ZB-66YhWY@|SL>>IZsdzky@rM?#WZg48E+{q=y(Kk{O}njy}-B=Z|- zGYzhHX1H*1lzYLmGs+ylt#K||Ya~Vh8#EmT4PKI@P0c1J<}lXkp@*Y8Sh3DbjoHoE z!_mdZSLXf(79}PoMlG=n5@dA3_<@S=!N?rB3E{t21?$O$1MzRI~)Ie3Wx#;uv58JM*4ktyQT3L;n{90v>Lwt zq4e-5_nZv9h2E5B-4CmB{a1t1bEV7@6l-%ot|Gvq0Pyd_y+mGb%oe8B2*zm+#u9$R z0aBdd`Ngsz-x9FY8o|%r@6CN%3zU0J;M(K{cl!o637|?AJ5pV?Y0cHiaD`2KOp1)!Z}l=)=>$y9MelHwCEKq>i!TtzDI?M(5p9U&??Cj zBB1Es&fQpW*BWnlY2NzZ)G z>i{5o9T(zYFT$6kv#C^^Oc;m#(zeqS5_oGXEJKy2nLH~>62%cm&xsW@mnkqKH|D7n zH@WZl3!c`~I&O_gjyR8WPaTrCFY92Ig?EZAO7GpPvx;4B=dc|C)^k8%X0Bl`vlwWa z9>PJ`n+xX_CIE46Uqnt}ma|0=ekN>w7{Y+k%K8#%5bw){^&K|YfOf$5|N(MMj zHmvi$R4Bqpy>%OGrh5;dF=AlL+`KctDQoH?Zp=ry-gZ}TlS)s{qkq6pgvZ&O{IqJ{ z)X3tsl=oL%A;RlO4x_;GdYRQ}9?iYqedeA@M%uz#m8Zk01HD7XMg5J&{f2HNxQXq( zIW9r1IG1cvD1lkf9t}!7AdqO+9zbei z3chW@kRf74ty6G@JWsS`PEWBx^=qZ(nTEkCN8j)|%|T)Xrm{ahKKn4i&v%;;z`m;; za}dtrFc%9zC#EiLhMB_~92JT1-mQv6E#+t3Gb@(FQJ_Jhi+*< z@?$FPWO<^Gxh37t5lYEqIke2x_5oSeMY@)9SwhLT1A+zbG-BIZmE{ETjCaHI+I|^K zsq$^pYbhy&*mfleZD1Y8#J!J>E;30px;1o6&&aGh;=lpPdTv3d+5uNtu&b+&x#< zw*_GQjldkCZj&7fnr;m!7&)Z*^|?c5Yy+fjdB%d+cNEY=KLAr!witO`Dqq)T_fRwk zA_)MlVpiR6ymq%&O)n>n!ycK_W+(UN#}om+fnw(+hz;4ST!v&e0T6Y2oba5qQ|S0AWlMh-%zf~6r>AK#jIGI--i=@l zda=IKcj-yFzOyBXvI1CRw)?oJm3%8u`15U=XxQ^}0Gm_~Qz_`i+5iqf&lBOHzoo9R zzE`o=V`(Y38v2I#1~UQ!p9qRIwJGS^6fVGd59cU!Fh>j@mOfVlE{8_g`t`kcINpu^ zx-I9T^-t$?e=GS2)&=WR?>E{2kFrPv?6A_OKc&()%^{Q@3v~!H^sw_yqmBWAg*ASv zbguek_{}tsre{tXj|Z|Ju32dnb4=#Y4wa;U1Xowe%*j!x++-l75NJOAj@f;>K9KKm zYOwh-RAjT-A~j9kEcd{fO`IcwHL5QtH7nL$mXjAKrT?tt@JK@uFtRnH5zxVzB;st-^R{yuyzy)j6x;GcyNns9BEmXrEoHxVw*^t0eJIC6arILOUd!@!8-0>AFfVRhDP7_bdph87dmd(3X2a18M6!6(|4H9?Z1RMcfUnHFSeEz3^Kdz-yG7H;krw zTX|UIQ-kc3ZNQ4UkPB*-$r6@X$@Zj)42eefnxIsn9l#?~P%=(rmLVlGX1QjSdhbPN`1+b9Xk3GFl;d zopgfq{OaJ{o}ILV-1r1gp>|S~gUq}cE#;DlzU{;&!=rDzm{_QIORAPsGgsyGn%i#G zI;Xt``ay?a@4;rmcyIY@5#ge$wR)c=`r}}igSNBT`J6W0^g95{9_ckvg;576y%1RE zzHW4{=j_Wt#mXCPH(IV3jwNNm$lT(tyQiD^EmH&ev5%+Gqe<1u+=SIOXX{um_b-Lu zg?>E`;J72nkvGiBB+`X5#1Y|u3eNjqTS)mL;(h}z^E*GD9Lfct$DK{- zk>Gi^P51Y!SVI4+5ryo}c67z{{t1Djx(bnt@2X_Xu5N0WfHoc-e{x)N<0sPVXgPPD zHI>Fv*};gNc-5sZ%y`$DMBXr`%l)2_|cw1K)Fb2T-XNOrn> zbqM{b%R+)QIz>6@A#W`>*!)rQf?|GGd*xoe#l4&+PtVyi9bQ4Rg5Ir8yYV;Bb57^@ z0cyt$KzPaAIPj)IV(KF9Q=3e}Kclk-Z0l5zM|-|w$8@*X0tqn8$pZiW*kKBr4~wUbKLxItzWns=g9!Vk z=CYZiA|DnHt<1~7TsF(m$(bzmY_k582J1y@@k`vwX=3v0_E|sE;!oql{!hMG+!v$D z0y7ugTqU1EQuMEu{&fI5tw1A6T~nOn*%XDs`#S2n#)Vp@yEv$&^-n4D3$~PR3$pzX zYWobyD7YBo@o?8+wNg8kH6jeRuFuc<+2Wq7 z-0;Z?MTt`Ba@qK@1__afaCB9J!upm>xm0FQ{6VmO{wI${phqx^O^bve7xRI313kvi5wmp)t2Fum>0?42YKkIc zAD1jxz5#CTt6tx5JUJEZygUd6OEKnUL2atQZbTjJ94>uJ`!J{YrarC~aB+LkeG{-l z1Z#hIQ^D6R!)1qNAT0{{G*rBC3@-44g5)I{tE7Waco0yeEQCiySgd*4_#KkI2Ql*# z=E9yd`P3LAvY&L(wtLCg!{FPL(q`#tzoDK>n~S-lB19n&&`W>B3)pB;kEpS~mlf8# zyU`cq<(~A|oQ{M~of~x1({P{IihkA!Z>F|wFHP%N`b!bd z@#g>mucoY4CdZ`v^I?BeiUsn+G8h;aP?478+> z@$T5v!KPI@sF+FEwhW*X`Vu@oW{ZRwPWwrO~0PoVDWk- z7nQ^FH~mEF_&`jprhep&V80aw-nm)X@0cUlZH6U>?Dv=$bzf&fzL)Hk=Q*91YlM87piCgD-lC=14t@>p$t z`_e+Ta@5zId{}ueL=7d)v|bsP7!4yUNW!_1`{<=@NSmj>D1PxS3VSXqeF?Gk1Vr6tQR0d5|)qEjEDi$GiE&5rLix;Nca ze2P=~T!7hMvMfYw78CXQ-pL?C_5JQ5SISzhr7l*KBb(LpVo#BtFN6i^7_?lNekXDj z5fl||aQ&j4zbn=9Tn@m4f#IBBpg!8#RW65M9Um^fioWjX24YQ7E{0b#lB6=(+`53O z`{ykw-y)d{{;An?myjZ%cGrOUuo1EX<&VD>8NtGr`LJ+~ zmCdsSYMCL=uIk@SmSOzX*rR zGKz_7a?wx*Xh5-clcO=&{K97I*!;hG*A0QW(dU+Bdmr+!@3`vNB&+EI8cG0_8KLrx z`LLgS)4Dz2n_@`;XBK1dR;<>9d$>ivQMA0b06HZx7X6ewr{p_XwQ1d#s2@Zvt&cJt zy4GIVZ*?U51@mBg_GaMyYx&Wjqtka0fO^;euHNkt=-s||VJbZA+fQiI)e5PSgSPlg z%O@1ku$v8a^py`lu8@5VwQOSN>t%!JL9^_iAwVQyBw7k9q{)TLibv#aauB9FYdp63 zcj!MWW@pbJpnFkADW{N}pTar~%ZcxVvSwU%!$fFJJxXx;Z>^<{k6j2UK(j~!w7ktk zIW~Hv%PpFG;K-h7DMK&Ii3cQ)6bFmc_&k?N03mVqv`e5;#u^#%5=?#Ta#QYnpcVp8??@WM00rmt zPYrOVtNuOjajE0*C@E*~a?y6?)3SR^UeOYfTK+>c8Yc(qogoSd~bw>^n}NURmY6Gnr|RiZ~?Dfhj2G+b{{ zX?yQFES0zkgHvt08G}ndS^-X96|ph9VOabP=jEF3N80JOiH+A-Qm*3Qlx%V$y{p)e zgSCFy!@&`&r@+FNb%~8QJp+ z-Bi!%xJ`yVntoGl_jp0%${2B40os2`*qaBJ;d5_=9KkRcYk+Hug=vlLVV{#LW3((X z4rrzClYjz&XwWRb=0=?1sqm!bc}u$_J;tx-h-;}qRyuJZo@L*!UDh%6P1`EAcAA(B z5qGB%N??{*J#O3}x-j=_$6Ch~z;ZXqp-w*uK-z*P=UBh=cD>%Y6;&HOx(Dpwmok93 zo8v*0c52m?-J{6 z0naH*`v`l#2ld5eZ7NbwPOidQuWJTDr0E|6#pVf$HROvCQ^0Q7QW@K7pl?D;$HrtZ zpAY-oF!P{AeOs7FoD>> z#7E0my?cb0K-!aS_Y`QJ&-Yoh4~oK%+9#dV?Ll77TzGYh2Pn)}zo)eg7waYr*Hrz( z>toYgO)v_pm9$iBTFCyr-%BTMH-*zAg#cW1)y5&JbLcH6wRMumJ9Lk!P)fD(MvG$Giv|@u=aOIN#)_NaafAI5E@x< zpigkD)8=#FZ#3-xLS!nzq|z7PR}ac(2HHs_#NgLWne+u)xS^P9p!jkcC_|vEbu+(h zq#KtIVd#ly(sBM0>95|+5%MCoU1ToyF42lCVD09|qkyzEF;6e19mgS7`HxtyE`r*E|CJnMA2|IyOS0BjHM*( zV}U5T8=B4TC2ji+^42TiaXJ`1m9kaeF7#RqkQX2pZ$uQVh^dT+o;UBg{fV~w9`aZK zo4NwG1C5Fx@2jn@5P6Duu3ge$(i?gzgh%0b^Ph?@`(WH{{9PzR-TvV;x3Rr&w@EQ} zE57Vw1j_w&MM<8Ld7+{v;BP**;Opw|bv#CopQ+p4+a_AQL0q?#b~%rltGWm5edkW# zyd|QMUb^Fq(xoBmS@tF-qTjbNuRqyVMDs!NHDu-?7z2o=onLtoJ| z)V_NwGJ|Ft)t}r}e5O_VamPx9r*#+mR>MoO90 zdvlXya9*c?bZhWTC0IU!+_OQTw}pgAn)KEInMR<^>6&n$ncLz1H5OB9Lad z?v`)6uB#K6D9YFF&cvRvJC90U@^gRT?NbRzQIbLyz zq9>cLhhV}i?asz(vOj!i%jXzE`cxrcgR39?=`gg$!RW5Yl7Vvh!5_lnVKY+_Om_UD zB3jk?1crb_d0}B{om)GzL3TCh?LviN^#?|-s`p7G8))l3#UQ4KU)qqZN0;5jhcR&L z`X**UdtksAC@ek3y=h14?2z}m&AJ-E1;l4-=fQ;=MF66{vaM2W0QrG(LNepUNgykT zb`wFl6M&A~tEHbt>zfvw)$#6FV$WQu|)qmnXtrR|Xk%5*5C;O8Kq@<$=Y8i|HQgsD@Q)zEq=-S96 zBhGohjexo#eauc5$hHNVup zF?`zO)wB3K_Oka_e%!**(+4Bv2F{`^pE%j&M$daigNZO`a=xG+2g6PogzNaR<>FtI zznBkt!PPvfbUk<4DQwoF(E5Pce8m|Pv&R4#x$swT$Ca&PaI(&AE-;3%Tg^|HzjT&% zGu^wA?_zIs0lS~%-Ix0DzA1CG5PzrTFwtou49@48cl`pSan0Z`zW<}&L#qSKQn zG%d%I+R1{`EMTEyrZOhKiECwpyd0Zx&6fW}8Zhj(@(6&o+q9>#14MRzD!wX{+qNNv zy8V3T|bW@*ti%UoduXIBR?z6cvVQMq=G5#~l1nP01sh2>tV8KG4t ziiInf&}&_8xIR|Ze~iv(*MzEU1YW|!N=%_pGWL!K|NEyGxZ;s0_bh+oTt!jrn5CUr zrw$0k(4DW!3U~C`NinRMUU<8}ex&CIKpzuiIzrukAPtpQcQyx8)S%S;+i{gg$GHPw^kj~U) zxiK}LpzTcn^~Q>Mnt;>pWSJwU%-syh17Hx~g#W>yII}(Ofh`ayhy=_YiVsb{J;$Oo zRLp6Z=x593%bP^tcsd`G+Ldl+46{@?`}3omur7v}KCc_!0FZJ^6cC@63M#TUhthNb zXC&(4ZG(@w;VjI-XG7f6sZOvzWM8M-nnkY==a1dhFPXS=FrMw?YoIZ|fZgC5kT+*ja zJp6K8kbi@?=QFQ4ecQaKX=Mgw{Sa&}8k7N13E9+$o7;6LPqSRnr(X4_i}!<`3Gw}R)C}=If`NdEDhYxDD9kkvp3~u_7x!~Z!5P&r= zd6Sf(ciP4~=4-9Pzl1xuoHi(#XKBM%%BiKkIfsQ%Rz3l_+U_#{PBnZO+^ zr?xnxXyn#ut%~zTCuC6FYGZ!sTBKzI7lG!e%4hBDc9u9$RKHnyI$dADo zWK0DK<0?GV@>rKK3n5Ttl3YP$F&HxzRC#e!h}UzSu^;tSI)DXS|2o0g@5uzy&9PXh z&%K|%T{j)rT~1XOjkmdXze|sN46r9lgQc6-==YxGD|Hnf$X|G1!uh?d;z8(8Sw>Hg zsGS(CHpF3V=^{p^hCvHyKtqo3VO@Q}eAY>m0)gZch_H{0Vq5*S)Y;n3B5d4Ht7Umv zjWC9~E|xV@%qfeV=Q0A#uHq$bfPibs^COvhA?uu-N?79Y`SUh#ZG+V#!SW;C-qi9o z7B2mKdXDmd>4Hurj$6#>wdil1z6S(3uYWboSNz5+MET4>*en3GcjcrLwC=18A;upn zVWl5KMSW(`Sm~a!1n@9OU;ktZLJCZ9Ul#}6)Qd*4zcGyGoJ!qspWa|=a=jnC z_r9EgLIQ-%e!-}cmfe^0_|HekuF>zR(4+fhc?3JE8BY4Lo8}e2z-v1 z+K`sdE{OIuRlovF4SPbLkE|Z8XTK~yEkCA`Dido9*(;Yl=SQ}}#)Z7az5LlDbs(z8 zlGQ{^c7@VNoOR?}c__Zst3_Rbl*6PqttRue;>Io=(Z+dz@k~2bI-OB<_2>Lfm+#M^ z@)EM=N2^R#IzB$`C<_wY`s^`839T~9utErHCpeYUZmFlmUMMVh5)`xgQJqLP*f@|Y zBUbrWA%Qtx%$N@^9tNrt%v)aK}= z(Lgn$01vX#hUAwcF5h6jRKfCt4`eTp%V#u*SR?HxBdJD88EY{0m_w~ zdS#AOBWbGAgA~GwCb>0Lq^LDpE=|x`HIs5dwQnfib_X>dSA`<$_*HwTr}_;bciQI3 z|Lk5^P)2z0#E08_@9cL)tHZ$EXOvX2qwh>(CuU&oRL`$vk_Bn*GwKUTT0@GA%C4Ec z10lzRECE%2Ps3yC9U-dVIFDo!HhU{_+XH*yY`^Km8J$YX?=cdCPiC|~_|Yu%h3{Rn zKLuH_g4EW+_6KBA=ouU~33o6ogcGZk|t6I5GV@Nym)yIrfkN@+n=}fs59EFGOQ}UX&1ICS}OX+ zly$$@hcJv9x;vgV*A00O$A5@~!UAUwbi7{O$T+5jFSN)bjotEHI)3?cwT?KasoQhk zS~Z}eJMT-8QCU5$a>ch$~5-;cUM zT$k56Y`M=YORjj5E`18TNW2;Cen&=p5u*jZaY(0o)#+|2k-lk0`@58`bZUIBhMEb& z$7x7e-AI5p8-mRH$itF~>uFse`w5T6L$}dgYH+L`WLh>F;X0Q;N&kJ~2;uaPh8XaR z*G3}6+N=&^hN^KjfH1T!C-*9{w%_S0;FM?<6WN30mHi-YcJzI}6)C~n9-5>EO&4AB z$nra22hL>qUV5gZOM64z+Ok~ZEIoZc(wB5`gWxq->ZT=-v-54Dy7!SUOfhh)6P|4C z0dOm}^;^61TpE`lZay=C9|!ENvZ_a0935^_`8kP`;p#baR?gZ(%MroF6@~$0=7j^! z!(9~893dDHUqbN3y|}~r)k}P(8eQWtiZDpzR)Hb)!3#x<;%L^l%PpOztzVMM39Wz` zO({153ad$u&2`A9ez5s}~NR<*}YD&tMf8bK0Kh7@xkFg>)3kVJeAv zW`en}aa!Ji^c*Eq>imO}f-)x=)V3m5jU4x#xr!$Hh8CuK@FD=%%Q<1G8%Dhg?N}XV z`(L53lZsayB_QuYPDc6dE(ac%&;NWf<=1l?mhX0>JB4J@*_3H`BZEut+98=qHQyjBwnh4oz7*}Y<=e&kbA|e-TJ)f(x*oike+iCx zB^=6bF`^yff7XSnALc)l(foMQ3iq1TBNOLzRuf{e;XPesNfquq{%%9!2(WF8RP$S4I$9mPp?PSh&o8-3 zXu!JZ+UnyH34SFT{cyY}wVu&fb%fMjyjh|Hez9PIz{56=4asuXh*058Q4>V443TLp zKdKx&P)9mI;?V+Rpo9evxPCZMKv*q;8zQ3xu%wFJ9iB>h1&0>++b6p_E7-j9$nG2! z$vZKiz9_LI94iFw7T&8fn1RfVI&G!Jy0J29v*6t7eKxpEDsanSS1B;3S3U{ZYvGtC zh;^_vLi+)B@XvOgb<+_ZYW0b>0Uby0SiDj+DUUg$KAqsuz{0a|lT8nedHHYLF+6*O|FJ${eF8?RD78^1<@a z`xmFTp4(>ULYb;}M-Ij}CJ*@y$Tx&5cj~MTI-m{rHvN|}kfA2zXimwtEZ!cl4e;27 zhAMsMl?+56PUB4vz%B65^4z1q=WmYwMR(TGpc^l?e7MWKH*8iZo!y>!sADe* zExGha*LNps_C|WrPIMViQ!jZDZgg9)PVX>1Xtx;_31JT&iT)serc2QBx;Tee3kXh! zAXM9b3JRhWDs(N1ycV_i`!=nUY!p{Zee&6b20*osd68{|T#jv2C9pdj1E&K}tbj&F z8moR97=8ZH+1eizKKkD@!SR+Etxt_}b+)?M_J;HC{=>%ifBi=t|1IXS!*uTs)5{xR z%Y-IC1a12h!#F3;6a&CT5hR9NV_WMHo~nX~mI0tkVxJ%8fV~st`^P$Q4>yl&_l*Jh zBfr*Pes(b$wEwqkjUfG7n?l|PQb1tdvKCIav<(1UM4gNsd4WGa%5&d5;P*#~;Oz!a zQFLx=-G^hn7ijBWD@1e^7Hfo^I+k%Q%tZ6hyIy6XZF?Yl9iIbZ+Zq5aMEY&*$~Z$h zM^8!zVeewL0WdrV=oEM)w`P+zL!|8e5;xrjU_ec^TkAj$!vT(A1V96&f(;z#@)izs z+OK2t0a{M}H-B%=HK*f%;`n6SgM`{mfay1RZ-9`90yyF|ZOiDWSsVo6z7g-W_SxDS zxo0*`6jb5{w&izsFC9I9Pz~gUNIxx{1#8Q;h!O>`k;fitq0W9|fTi(6*s08kw?AeV zgSWA_20c>cA)+CMdUc&^-4P=yKw{x!(&^%J9$dJM*^tL0gEQspI`D%a*ZfZhUC?=c zGTs_4@(1w}IF4P~_!Td*IuY%dyd|nd%B6_V@zPTA*HXgfyp`EW)=7>v3FxT{E=Nst z>4`xxW8v?QD-}RioKOEnF#P#&W{>=OYmb-WbAcP+EV=aD&fU1lN&TB-#*83tN$ow(r_HBq+C41ibu9k}HDyaCf zk===o&Z}W0`R3X*yTYxlHP4rt0chxGJhD7r-t~ikNf$`kEyrLUx@a>J$ARp0{rx_S zI7SLCL$Vv<9ddGBrQcLLm_IjAB2p4MCD#ZNO?S1shUxTuk)J?;Ji1N`6UW z?|MzCKc0~TZV7wv19kz3wFNS-aZ$i)ZHzst?2OUXRMg~NM;o>F!Gaf$HK0(RO2TC{ zmuALy!MW7MS4v%a(;cX9@BVclsH;u&dW=I!1g-jcCyj&HJ1F_XkEEy3Q*fD_W(Ziv!}1FjRD9jw!!zACVvSHuIp`49(w@67u*#f zmi>f}mS4+lK693nOMYc0wJ&XTl)SSGNrFGr)tY{6Pqp>;nEY6DOS#5v^`p_{Z~+&> zHy-4*bZy7j@?$6Ap&Vv~i9+43=X%a&u+JU0{^{K`RKb#}l;=6B8fE;W^Hn1Vy)rV4 zGb}M4t11H)z3CqqVmp4U$Gdm)43zx#!o4$n3_& zQ5;gEMr_qy1Z6YG&Oi%`1g$wVT##C-Ui=iHeM%F5nk%3&Fyr$+orW|R_x-2p!oQB5 z$-R-?TFhz)cLEZ=SRAmh9g3?(Ty*2IQ|Y67kmI5{fvq=a;`t^L)T)&JxV)yPb65H- zc^dDZl$Lota0Js$vlq-5!}1Z&x=MbDN$SgLoY)p@2hxQ4w&%d-rKdo@hi=4MLJx$? z%=0G~dvmnpGUxR$&|Pizb(^*dzAn{1q)>ob|ud1zwo^pA-ZONQIl2APHRXQPR@?N^! zQFS6wHNGvu=vCRgZI6%ZTtaijg{) z!)B+8RF)V^3~)rXO0FXM#>bO(H^|auccQvvTSD^k+#AMATAOh)lf;zeH1n`V%73Y+ z>?Os*%zmO&U#TS3%GveqMbSe`fZKF36h;q)SCY9rOuBUZ&C^ZeLz-=s*Tx*sT2?(% zjC*S(KP1#Q*P{O^Vqb;k1-D3J!coC<8ZiYXQuT~u4X-3|)@zkATFSEK>FoIf<9Z>Q z$22LHz-Vo)oUk3vkH9_zc6}!p&J4`hC8wAIHHvuN6#Ttn&9#Mc?%AR0W!ERbedYuL zm?cR*4IxP-UY^B$h|PKjlDS(E#}PKj`PKex3tcy4A%No~%TRfBP2&3I>7@k%o&ScT z$NOaioDb=IYxi_t!H&M@(7BP31|ChcHXH+__Dfg#U!n8xF_rR^V8MhmBuLNobz)}W zHHDoarrinI(yra*c0PfDrYausj%lGwR;hugRvOi~Y|?MQ3u)&qJVe)uL{eD?DCI{B z&uJ?7vKB%VH2~jb!x~{Zgo~PfbS!$iQE+#xRnN3ip|V^ZCeE=bzf>{xXrcV!w05kw z;hBpcYfa@&5j*0V*S{e5Us6Dgj&gdt-vD{HcKxh_ebW>2l_z}>(23LbXf34H{L%}T z6XvgJ41wJN#p=bEj>9Xny}qQ4SAAL4k@9u%KwlcK8QVkIMIJqmEzn#L>$gpErt~~m z@(yJnm&ztZgU{RrIXa6}i{`umvj30r6=pe7=4thJuQHuxG-o1b8u&^yRcp$!lLZns z;y@S?!w{nKr_LG&g>>x8=&$xo>$D#tm?)6a=V6)toyiK=R4ziEUoaR5Tc$*|ove$} zX1!Xx-tL4h@g4I|`Q;$i6^XxNIVJcFt1;v;MV0Whjw?am(em$v@ohH!)D!Oj1X@Cn zR=R3LiUqAr8CV*lY(F>UL^-Gm52Zvea><|TFH_3euwi5lj?*BDAG8HKGRW)w!Raxo zAW5XL+g;)hChJ|<(U%E`hlV``#+0)&VFl7nu2DeZonFSNc_HsN*2Ea@SF@8hs>A=5 zd)Ln5GLb8tCq_P3W6*uN-jo!dVlH~7NT<@k3qRg8;p;>p1i2>G-ZHf+x-@52w6mqe z9bBf^bBGt6<=YW%4&NRBhqnMcwAR+%z${m8NC&Xtv>n%nscUjepn-aUgN*^ZL{RS> z8Y$_Elg&a&jj>BZ0XfdHby0j-=%c2xGa5IK%kGZ{PwfWc+0(Y$xV$6e_XpWjM za?_$7Aib&$Ao_?5nFnBaX9rddOlJN>BR=6YIJfi-M>sWEavV>{u6lC@UJ17^(AAmA zY=lQiZ0x*>HzoFHQ7EZ(M2;`l-&df48SpZA4=HCS_)s98qnF%CX5BNxGR|Iyhk{)d zkD;KHrI(fM`6HhLpx(sTR^mVnvfGPI9I^2vdgTo`%mA%1m2$+*+O!ybu09AFL)3VW z*t=m*lV~uT65zoeb#LeoNPosBtnzZhmd^r@vrwC&q)?Qb<%ZeDs3@N z<(5E4J|jzSF~lGX>B9r0K37{n%U$U_tmxL$L=xA z(v|uOu9R(n%iawRSZawipcZ(VT3okEx^$q))#;;p#6&Rs*NoN%fD9+pf}+)VVn<(d z86)g={H@ou2u{@^jxHf($Id4RmxPRoH)IWR1kb=}fYlE>LKrqq24s$AL`!L0*vBRu5i76Xx zHqX5eaO>#q+n}#oqUKEB_@!n}P0P&_<$A7f&vupCS36)$49>5Qn&3gM##(z$QRFP4 z5@=O|q7Ow*O5d}#_}z%u+p2sUsSaYYjiEKuVzUd$#;8+mtx2f|Gp)4;kOD;o^AMZL zB%8i`6JEPZm5da{`UqbJRd!6zE07!bsS8oeY3;K+46Xw|=rR^~nl!P2D<22(J#<-B zEk{93RifgWLNcLwty%AO%sgw7_pIN8rH(Ny2Mn+BvmJo?W6pd{@UrMz@sTNJUD}$A zKFR}4ha+$b1|~`}7jN6)Ejsu}iXd{iXZ~__0qa(FDu3JS<8ko!DmT>dq3o8pUpl@q z*7e@Tq^YK8kaInw=mBKMTZh-f(t5$XA1CiR7LelWn_j)5V3N$hvXY1J5JJg9B@7}p zKq4P(HYeFpt4T7hHBQZ5ao>3Dr5{G5DAd5U zHc#*A?Ty%6Nl+g|Y`P{T-T`qb4IJ}?WnbjX1Y}R^_uq=?u5`yYwW2#m`_IX2AMZ)0 zg~FDmAmly%$jjSZ()#%LUL%BC$e9H-sv??xjfVx%+I>q&PcOsjNW4I}um7xsd66?? zCvZ>W-0+8DV(j~E*VEitHIBp}AGs;I{z`CqWpJpbu3^{dSeYxwrl_Bre8!ledSX3S zUta6bUdGC^(O-9lE7)3Q3!(W5Ok;P3P1C?4^Hz+cs^jWr3 zGKvx$+^y?_ub~}uSOHS;M6}#~qy(pbv|bAiNk6BFH9|9@0M|C9I0U!LG}m7%K4$7f z3ltyY_hBheKmPP*2ileTqCIyCT1UEQ?(1tW@;5r%vJ_)#eL?*po}NPj*kC{#t5>f7 ze31p<%##oGA?~7C7@Jy!P{EqVczk*mfe2h)KYeo{a7KR)F$!<5CK1kY=6$Y2b{y|m zKHGE3tOug+;U=2pT9b5`b__+~$=0Ro>y7zgUZhG;DeM<1T?eo9lNco6L6Vs>+p`-s8vcG1i-@YQ8y>t@` z=XVTDBp30TsW-ezX|){*T=Ax{Ft;VxFMiQ*$=|n~%WYdb6VfFZiURT3YsHGe+WZGwKh&l65KrU-k^kOtUJTIIHqAe04&JL41#urzgn{J8)>=)HNXv%@H4s z@LIwjU@bV2GlsQnHOA(O7{^OzRhC(=I0?@+@$;-!A_f5X^RhK?oTUEL($6PS;VmQi z-iS%MJDRhp);<#kCM8$2@z^yWXgZLO)9zNSDO(+rc@b@$IU3s5zxYmuB#LBXF08Gq z){jH)?PLkf7) zbOKi%@PlNU99SJ>DlpgB?hlu&_8B76SF{?G^2 zL2n+-gvM5q*FtMCFwH<}Eb4+rqGEt}syTVT$olD}DzTm^l1Y4vGc!$4E)EctJS;7l zlVzhGSt}OiW>2o8-rqLOECDyw5K>Fu$435>6-yTCfh0*{G5hZ?c%^bym=0H^+?V(j zM47x%7t!pwY8bF~NGKc0^@0X#;iJ8xI9@mLzbMwg^-f9Zo3m4l7<@%P>&k2ow2_qi zINlju;2pBrffy*RcGh(lTxU$(9w2^2>{f;quM77@gEbKSrF8QA?G(tvObZ0FoGxS( zGK|oBE*4P~+7W$sWMPWIY^x>{ENYgOv!tn+d*Ot6WYp2he%mF@syJ?q{nF^`Mg9e1 zsAUpEq=I`k>b~A`<8VuQTf7SpTa|U6m9;c~XzKn%N>KOJzZ~SzSo9ZEtsF<=q*uS6 z^zOwwO%-f@<6bD;Ek6JC@hDm33%J?uRm(}GtIMN-dfu(FBMqo}R7l`ZoBwh0t93rF zD&mGw0V_4H$zbA0u$6g!^jvGNeEB;6!WQ!?_M{1>Nta&?$SU!1ITE57D*F8ghT`&t zj{oy}a_S8G3s!b!WX|r(X2UjUXAo5;b~t`X!@%J!I|fsKT$7R5C9m)cCaHR~nj5G= zS?lb*1%Q$tcg2JOw;=metnF}OGyQ6jm}-|8TJ6%GuH=5ZGDWt)cnYI@*?ILB znKMuR>NEcgNwyr{(RY5AhSag$8za3<%y<)Q@op=^g3GAB)>rm%+oQHqbx~!3&wq?O z0#M|pe+GTtRUOeTuceh8E!=_@YJvJ*rs=buOlmLC>TK|j+xJnOb|iHj+oBcyM}VW^ z)*t-`r6^iB7Qr0Kso8%b|1}NBZ#F1J{}C)&SGZkHT=jDE_1t0@LA!q9K*@HIp!XMI zVtk*?m$fO5o0bHd4wl+q@R2nzaS(s^#|`nH;In^&fSkUU-K5C<-v^EUPtOd{)BdkS zq+6%={oS1L`BdE2L)@Rg0V=opNBiwk>dNeBKs@vUkoCXgxNS^fjB{hQ0B*pb`(Ga< z{6F>uGHHmXs8>UR@^nTSVH~(LR%FY5A0L^B$WVRoZ&;$9hyNPNz0@`2l<`{YA83Hq zaDq}H&e8T9{bjnm?B;|ne*=&{%ZDD!*6_b0GJ>UVmpZq2Y}^nYWPOgO>vE#;%!X?x zKW#+XEd*&H?92=!?JWC?dDb6E;qETnKE3*Z$ONoUR9jzu=r`q1O0|@W@A56%9o+p0c z6B@^F$#ce*vu0^^bV-#vgCCAGn!KZ4`;u!n$F@cw%bLu}7k~-Fj*o=~Jgz9=h$McF zHa?CH4h?+wDt)&k^Zi(ZfF&m)!V3A+X+JQQw%=|Q!wG+dw%bRmp{6;mpS1p7ewz|U z2mZa~pUI@JUw8zOi(DQqxC<2TXxO7mS93XG0Jw#hKW|1vvD8ScwL{^`<*02NBUdn{ zFMnBqxsx>JKT@=c%9`EZw9xnW(d2Bq60m~dCXg+%n+ZMTU23YDJWDwM_VNcez+QFD zNqe*&GCFJaSiqQ;=88Rf7Yp^Fvn8&eE0D=(tRr*ogLOv%s?byCcu3QPs(*ZaRNSUjBJ6~dwlMdKBpf& zOTIKxTNG1E02lBPmkQ9@Cp0-hggthPA&?zLsA;?L({)<1;7itprv?lG>?|PY9mU(c zNLyZW^>9cS0~v}u12=1JsOXp%!X0+}(^&e19P$v!-L7XA(m;_)Kf&Sol?aWKLX!6l zoNccf^)o?+$kZ%GKty+E!ZxAg)O_e!d>%C$%*c*cc!K8qx59 z{G7C4t3lr55P+Mq*!E2flqz>xi2tJ|yovr07P73=cuaD2ZLy$EQ(ZF=lkk_Y2z+#AHTL$nB6M1Mk=-@vl1UR*P>u%<+ zh{{P-$Lu2pj5_;RPO%>7B@BrM19D4R+WH*Q&?1qHDYEDrREoCx0zemMwOjwBW>>hq zhpdbqe;sA|C-4~vt+3-=K_WsBk}Gzx%RQOk|A^vEb%tmcs?~ceKy%Eqvhu7tLmyw9 zxskTF0m8qvUBHC@G&J(eknUcg1ok!y{BSq+$MLCCiN zMao@D>s_R)`Qlulh1DeSEd=Rig6JhcV~g8ZEntM3%});}E->FMezpw|G9poC#$An2 z{^d5j)Y1V4>`)pXfT_>Xh+Bc(H_|2e)0Oa@kPx<9Lk%?r(+9pi!P8lE}MrXWh zC47+JU!-?WdpzOroobXM0XUtDWCi4*0n_@cH_N7+lz;_j#8?dL_gk$`K2#Wt6)C@5 z3o*;aSD()2vVvCE2O{nYII5kygHy!0lQKWOi(CPYR@3*y+;HZ>bBD7oPHJX#2ITj1 zG*12jKg;%df1^&eUQk5|rm$!ERWZJLRLkNpw?untn;f2~CHV>|VlPWqd$*wZ8%zA} z1@$oGso2(Q{{pdXw!g@_F-My>1TaHxYH3@ezv1$ljHWDrO<^Knz~|HOgetHLZ0$+g zm&T|kZ%3^Tl>AT<+6N0uhU2B#;!?93Cb0mFjxGwNR!{0wb}ir7z@lq~RhA6byLFVc z4xt5aeuXx2ZIw2z^i3%G+`P~S^<~aSJI)vqOhjUJ{C?d+qW7eJ0z~OUy&6*7%%4_R@j#{ZFCH@{X?!Bb56u7}%vu zQ&D)nX}({TQ&+(aBfiDwP!{7!DP?lP7d4VHU0sTE$8%SPfQh*`!@oVf7VhCWx;xJ& zZZ?L@nK=iAs71`P(k>DhocyJZqlG6Ge9f6!7>R(4_1{G6e_ss&davtDj9s4fq%lakEc|>YPz|f>*sfc`>*QqEFR>Rfsavy$C~M7)awXXIPRm)?dx_ zFj2_KSY~!pehINrH=>r#!}1T(jcTC~po&LHMG8)-kTBe}i8HO9uex|AL+1^LD04{p zT@o_Snmm%yA=YM1gii}GV`fOwc$F!8{e8cKPs}uTstdSkClqFM1%cJak$H&M>%1C~|wAbOHp$YMtu+%#P9xtB4KAtMK8`pPh#Z9aODDTPF*z5840t-kv+(l zJVT8$Zvq3H*p5=N>fcHX)c;} z74epS;yjuzEzp>~raoZwlCq?N8S%22U9|{)+~cR+nNelxpI+OqdxTUk)k2Y&)c*Rb zH;y|Ioz_;l@wN!D$_R|z+u>`3xAe4U$Tl5H3`{TzoJ95sO7L zgEoQfi({POJ5p)122RJw5zKs}91~{?5L)&Q&e9c$u$%b^gU@zwiMhOGl_xC1IYZBy zICP04&sUSgt-UkL1`i9X{F{eqjdl`RwI-=*{`G$W4GDNm1=otCk()Du_qySW%NW&d zlkZ%~Yt7S;Z}Q6(BEXW=i4_gP0sqlhe%gyymV1&quqw&WPK*E-Ov=1AwumhnxpJJ~ z!m@t^M7M^WuKJyZ8sGmaO&z#C#0}y#t2Rr!ULlFN8jjA{s3?P_CQ~6_dD#|Q955?t z_lU@6tfkQ*D;6akBe~VvrdU4_>K#MO>*3eb;U-I?`N#eSl6+AHoiZ6|5sA!l<8nIQ z?e*I*drsHAo_&cYa_e!cs$=pgA_fAj*_#{m%j{*^L$O{#3E)XD*OuPE z)^r${uK_pT4*=0%v7ck8ozHN8Xh-)-nzMZp%&w^(RIH>+>H=e-J}=ZH{BOv%KAW=_ zM{+5WlRYpBkn&>zap~2*^Q>h^a2>OJD?Yt!mcH{ql9Q6L z)P{7>Q5Wu-IeP)J_5&+)57^Q z@_A!_{}ePe4nW*bsx}~Q^4|25r#pNGfysLIJXfRABFxR9uFzuWvM0hMmBVZ(Mk88-CKg9Se#v57;(7Xf<%LuIgY*e`x}m6(Fd6DB@+!4XB&+3Uv@)X!cED;IxyNZBqJjAHH3S<8WkvKR_M*2E(**NRSF0v^A% zh~Za{QYqTX??mt+E&4ivA0FsbFSky=2?r|<#v`CRe=68NLHr83c>gEvl2i_1;JS-7 zDFD=!Aa@rRTpn?93m6*W;sT}JjGqBVNxQybF_HtRnQr+*vfh*a{>4#l(TJPTjrg@g z+f3>79|1i6Q_YXk0ntNjk{f}|fe^C1kcpWlf+>UiYYP078C87otd24Z+4zR;ZlX{y z5Ufyd{&AIL(ucUMSke`8e2k&8A0@RR%-F)_er^|frOr5Mvdy%r+%O<~=<8$IKDuM@ zP&?Lg4Vc|ElwVVOm(x5R+NWEa^6Jq ztcXG%IuZ0I&5<)qzA~XiVWh+*iE``ffm$QBD}%wT#!WT_gxFBEalC|{w@sWL$@EO` zblZet3i7~}wqns)C+u|!awRxaf+EIpFx^DWA3q^>n`%>)>2zbP>C5@o2Wjri>Qh+2 zyfx_jK&?Lz=BBO*i}pwDylY%LtxXCbL20T!)YPB2!zE#hZG!1yzY>^(OR7pMR(%AY!Ap+7ohj>wYUKBY`A(R@hYTOlig`BWGr z)c%YIlhdw$<)a=>%48MY;r?VprS%V5)W6a1nP2Gl={}^HwU20>LBMokk~DadeIm%8 zAC`BzMIY%d-RLb%ib9;+oSg;2Nf!r80S>%r8GJgpTTezgVkMyA2btrHcR|$i%Pr6L zt(oKpX3fTwT#fo0SiLE~1)bTy`&>4FR}K^4XXBrbTpc`iXQRMznkqA(;F~!|=pm`V zW+Q2c@ZitN*bNwaf}nVFS!_=G&uQ8+q@}hrsI4Dp9U=kTF4o&F`T6Fzf1xS<@^}0n z;MrRQd@Kp+V*IeVKpzuR{j|F9e9-^EV%N=R1wN1e53;uZ9|K$eQ#SnnDj8j0!32(9 zjV?tHqn(evX>im2!@3~zKOMw?O(o*0W63XWFSY(^ISPD?tic$k_CNjKh1>TXzBoaC zn|n5XFj*&V>Lh>9PDaGfLV(w)_2Kc;qyG(EJTC6m(Z&;eiKkZ_9^+(9ETbo+-u{f* z4v6N7ecz5@o67(pBqSzX}-egQ$a4$A*wT-JzmOp~tGwW}+rzr3+LZK-{+9frCz2i)v= z)&z;@a})2oH)-GFa9_KBCs>f0^VGhjAuJho>cu0}w~gGNdWYDf-g67~3(|89L83fI zy+7uNfUe(#;=>>2Kv!MIU8COpwld(4y0!K|uu5pSC~CXE%5zN26SrEm*l`TKQ^3iB z7&bS#GP2wZ|fKSk5y4V0Rz*=Yq~$TOX;Mh z8p-QW1ejBV!t=&d?PfWn^jhMLh7#z)OiNrY=<^~Q!5RtiDmYovv)1)O^;CRvL$jfH zwK-~fiNIcPEu_Aoa$e=v6N&0wC`&8Qum6j3!eOjK z_YUzbaAVlJ6)Nf)>4APTx$m5S1ln?Tlqe$@j*Zded)0-B@<~FCs{=488lFSDyHGh0 zF78>a&0Wbc2mBA*Iay1(>rTS@Y(eAK+awP$gGp)jtT9RQ`e(Am`{n}kHqQ%=F?kFw zChK3uvyQSO-fiJG8sZst;#HD@$v@2i0%77?Gk{jfksp@=e*VWWot+PL&bWq{*yk@| z6g*K97NH$TU7S|MsnrxEd)CU120A$KZ2X+g(MQW0hg^6kZ35p8-(_cE!sm){ig&;= zZGcWff1n40^Jws3olBUL~3{&q)wjwnGB|M4@Kq$_ZLee zXfdIvSxKW{?-`GkuB`EUIOZ{79n1NX-#MyqE>Iy!)I*xm=wE%92+?c-og+8xvY;h};#tVc`~MdEh`gn{)# zyJ;bAq1DNtuxdvDF!NkI;`jB^>NBS>a> zdYFQB)k74Qh}x+kXe|jJlM+0fyfOd?!HNC%b2z`;ur(1@`3IW%%2yKPv!3lRc`32B zjva%@Ft@r~kAsCcyY2G7R0+oBbgID$xp@72>{xsx7Q#StD%TvTXcUFu<7XHe&s z5JODP0Ui~e!`7aAM$JyeTF0rgWIArPrH0NDB2>XHmmz@`O<}w+#*6awZ`apWUI04~ zwb!4cuUzRPYPt<9KC+cO$V9T+8UxT8Cv12gN<+&8wV>wK*(Sa_AJw!M`QUEqyAdr8&+hmK&L;4Q~~( z%T?J+o`g*nn853_9txIW4OI`IeWyc5GGLdxPZypxTw|w~AmZHqxDbrp$7DDS`G`*^ zW65adFrC?EJneBQLw&lvjk0@#Sde!W@Yj7BpxVWj(I=YR0y37LMQnCdYknC&I(VoB5cB}J=b2m-S~FQYR*QlH+14U{&o$e;?<;Inu+l-wQL5E~A4 zbeV2#T{%DRA7PYQV1nV2jEL-@mKsL_Oa4?Rz2}xcdA!pQv#hNL{7_CX`TD$Ga`cWq zu&I(e7qhB*3M^JJ-n_gsIy+qe8B|8wo;5k!JtoPiKHkF0)Aq$of)xi#z=m4ss*t&D zjiL?E1&nX3CEUkIIRy9AEkF7i?iDk&5AhPTwNCOFiFv#$K@K)2=x zglA7VdCf>qzfrQXK-#a&$bc$~Yk<;-R+MGVdoI3;h{P%@qQp(xTr-!MNix@pyk<00 z8_N)Pm-v|+>O}pJ_ecww$mQ49kYZ4!H!7ckcgY93gBVdpG_Up4xcd3Y$XO_?s*ogj zS*7$qGg`8(cob>My0MWh9D^J``;fo_>z9W*j7F{(SNVLFQn7 zs@+M@F<2F~B}#70h*=$#(2uP0sm({_c3bAA9prlsr2f073LD`)*7HZ{tUt#Y4K6I{ z-O8wClxUyRisNc zX9`IDSi-7@ZDUAQCj%CLaDz9vFHM$lS^uthlm0Zbo`$ls3g18PXzxz_WNv_>b}(u|b!t!QgEP#R_n z<=w|QSq(@Jg7Kuks`+an|Jm=ND&aGOq56mEthD?%9=Z5i0OB)`N-=@Eq_XFr1LxB zVG!i_v%4M2&|SKcOHuvAZ;8N6I!{a>D0I;-SW#JbdG-LtO0Io?24jVR`^9&!%?DDj z>bxC&{xjCA6F0r~5}=h8*APQ(F}}OdVY6fc-aWA7Z$${0GR#Z8tYBG=$tc=#DymBg zM@6SuC8ki(8-oKU4zD~ssj4^>VLopTHaL3OOfCD!s(t@%6;qr{TkU_Hb_)I~P!QPz zl1j-XTVrhMLk>YI-$UuD%(wIP;3&%4rfZyTXi)j#?0WE9yZM()0tMo+Qh|Hs~YhBdWy{oZ@q*w|3m ziV6r)m8vKpT@eLD1O=oM1tQX=*O0BEY(zQ)5g{VdLWy)~iHOodQ6ZEBhynp2gh(I> zA?++scX`gf&;6YDyytqK^Im6tz)!+jW6n9|n7{EKWAYI{YBV(gt*d)?*W~cA-}Th> zN2xOp5GKDWWjf^oo-tbIYhAzCN3~{~`5ys~OgSqt?KhxU;g6JqIiOBK#~MCWzS zC-dF&9Rz<_R=z)9WeRLc%TmxC_iwRWBdY!H{ffBnVGrCEKR+BM%a-N=bM-7xs9@LrEUDq~S#cw5RTFS|CCWzk+WJgQ zA*ST@H_bPP!{K$eiPo@2n{boRd2fu;Y)f5pjJNbLoi_g)k<`fLiys$Up+*+PH!+Xe zfew=$w)7FqRR%@kn7D$<(PNr$rSvlFauG!&DBZ7oXPB>@{TKRWO2y*u0d3*yOh<@b$K;yG`qezgHduv)`z(+{I3>e35SBcq0hM?-FpcSr zo?0$BZ5uj%^HRiZ-3z3^>A=< zAHqS|k4@J3dgn%mDF}B+{nj6Lv?rk|#Uq0&C46$c-*T*Go%yDL}euU#O%F0F4C|ZPK*K!`C zZk}^GLa}LfxnLoB^%O<0p}(QA87168Msrz z>PJKc^s&Fyz58;n#_uB9pA~cbhUg-2a|SgM!uDmHeaWh$P7P@M4z%IbNFHEnZO2|n z#rL(eHs5X_x_?H=>79rHafvT!B1S<8gf*I9%sQ1{jQp7PW(GcvQ$zhZjUz~Ui<`9> zS8~ofB^cDc)E`@Zy*ZFI3o3d@?aaCBp(?l*H*_|5$G*<0t92TnZNd% zMarS%9HQWL?%SI6YcsX)uNxJ(!;)3_Cc5GkubUpu{75Z>MqSY|UwX)%sS#TiE;=T1 zEkI=MR0Hc;qxrRB1En8aL;OC%_`GkEt~W0mZ30wP>@Q{LvPM6nigcBZU7dPK2C@Sq zQ7kb)_#gMDI-ivDwKFVm5OvXPW3g84giKfiQz+W8>G3fIh19E(*%z|3Qg;H==;_+? zj|KrSA#ux5SMojzr^jgCucOAoha7*AZsJk$M8qaU&GQC46OMj`)UF|kC%-6g?}!4r z_AjYl>`<_}Ve-dGaJzNN#Arl!$v;5|+#CQQ4t*E7-;5kru-YgSb7OXBQrK=IKAPq> zh@lo$wRrSB=I`XwVZi;Ll7BAleOXc8n_Og(f%ZEa1(+#Bai9ZFT7fra6_RgK8Np6# z8_Hj_vA?E_dCS7R>R&<)GXa_ZIw1Iupa|$PYRcW{3?Zm({IA<>`~&RjSE`@L{WWiC z{$qhO(4n++LA~4Me>ZRpN&eRjME*Mr_Fs{h{(t=e(>!;I`KQIBq%+;tuLQ# zyMsA%Af_vpU$9+ug|{X#)O&UTXvYjZi2I}p`Wc7Da|^hi$+n_`h@bWkO58s9%e~{w z<7eO4KH!4H-!^Lg4zzj(o-?(#$FYZRnTG!Er2R}R{+z+S*LM$XQQmxGkF2L z(E7&3n`|w<8{4ulao9OBC+h1xp5+9s;vR9F5}ibeB!vFnOf09QYlyFefM{zfym=&1 zmjXfa7_Ag$>0?R+gEf7Rx7-#$4jzsz*mSBx;?ak?GymSI-QLw6%li*HSK9AaihL$# zeGpOhJiTO!Pk)uy*+if@_cNG0fYNGN?T(sqm{tJkUiNJvt7|TLfzm=z%h$t64ihpI zUMV^SO^xbj?OqZpm2X8@nP5Z3*_l**9-Oxiw*9>*N2m3y`oA|;UXQx`-p0V;#jhFK zh@IBgu5=GBFOH8#s60knBx=r-Qt9>Lihki3 zZJ_d%r$I%bb!yVA5^}FvZ#reBZ+<&@*T0_wN2?Pe8f!r5$4W1WSsT#AC}Ek+tWS*Y zY=MYuQRch+Y33|E^Mh`FRUk`wv?Wm5(bA2+5ZO#L!Z;A<%HeqY#JC9pQDkYYYRwUT z=CKxj_n!BEoTr0WSX*0L0JTdF1N3V4*IfN{j|hC9JHeWWpkkv3xrhh;@BcP4k5>0e zNLvxO^w4hn1buh-07z6CO5>h$8z?m6vYJ8`U@7DIRqn&Z3lj|;EXrXXWK|Wtlr!p4G^glwn??zMm^)Zo{$V;;tKjS6M1#{i-&=gT!?*1M63qsuh-tsc zFufY=a2T@kVaUzh3Bj@1I`!;tKE&c?_F3cgYi~iFB7{}h@HUa%$w2QqNC1$`=?=~f zoasq%hmS7kr!p9RS$KkyAGD*D%Oct-rR^3| z8ECT+D@(u^n@0D^LH~Z&lPApUCvxOcQEk94lcWll7CG8^v10QKOGQy1zPS))`g$8zcBPb zMY}8`C13wYlYXA24C>>T^!zCd^thDcM_;SwD?WZg;d7?vQ4HObT_SI`9-gOAqHU&S zRIU(eW?@$4RPK38^TH?BXfHhHMzR=QN{macjH5lot#y=7NQX~P2mu0`?{7G?=(VIf zoFsO~GSxb9$j4C1Pc6^OT{(aA8^vh!`? zs5dM&N>nz6eQ+6F8@mP_|DYQQ9!}J)3Ux#3=ki#>=yVPP+9J9#1565Cfrx5GNugqn zkU7;bUoe%v#pBFG0Q?bEYS1K#9pnx8bEW*TV4KyIl8DJc^K@LU zg_$b#-a(#ky2CJFo9HR_t7Ti8$_GmGGX|Ub5#})RpEE8<|&Jv;9p&WvK9gvXAu(;UG zdGN`3A*|ku>wGw-tC3eJpnu&GC5BJ4piQI;?LLsYdHYSk0e#=y(noLZ5k$;uSP|GW z^__R-y`UXpU-S#sI(SoRRcHpGp97bgPBm2qk^wE}D^P2mS$docOtM&gcWQwt@ov0w zsy|=z2WXYr#ZH8r)A&om*K2a^Wvu0JOq1J~#qj03aWUuQj)jmReO1@9S0j&sAFxi=n*sD2bG4Y950yx}_P|G6 zlXiT@6Tc*r^iC?|=Y2yyjau%H@#n!{-j1Qu?ICF^ffpMfc0B(ig!b&wjj8GQ6d7(( z44Zr)V(3h-`g;F?QXay>ylNuAboIG}^*DMJX#MGH=Dmg!M6^d5tsWeZFqxmV8+KAO zG9+DC!+(hz4zh-Fu*=H;X!Ncy%(nkzn{}2NJhmj< z8ROqd72x4xSz58{@uA^*Jo(LmqL|O>BT?4eNi)8!AddFp8N%=)FCrXU%8iBJ(w)J8 zmf%(`i)*CmS$$UAB{Xw?c!xGY3A$Fq>Jn)~?x>K=LtHkTypI8mjY0fN zv-*(90nE;{$2cl>LT{yZ^Icja%?fNNY<=Tkgf3R|ndMEK9(DfnyCaNM#o6SMr3b|J zK4H6#)cXxNb|GDml8E;C!)2xS*T>|ipRV3U%_u#!*oFG2L05aN1w(G}l>+e^JNfkX zpnkCcFztA!F5s{N=I^7%i+|>nLy1T_ z7Ip851r4dMG>oj&_!UNi-1mu0TGg-UYlPpBBk>Phx;iiP+0oZ5-LC_9VO-TJtFp*I z&4t3^zoy$d`pz8p1Ye|c2iIDqlk!FFD`UXq;{$$dlJjdD?xrt)F?J~u)ozYJ5taN% zQ5?T?TWjt+P_x~{iZEXn$ywtvoxtnoye(NPx2B;kzF5N$f|5lez7STy4OhNSXGXN? zNC!8xux$gZG_+3M91pvOc_cFO5W<<(-2Y{ke|Oc9q24R%^wBOI*TkJFf{n}1A$ALr zlKxj-WO$gY+AYoAhM@0^zrB9h0Na?<9C3hXpVS|)J5CH);G5NvdZ#?Ga@mXtVa_(b ztazHgVc>^TQN7uj7Q5g&y=w@ZUq!80$sGy?Tw>R8?ZfTG$QNu3LVUC_elPwHY?LYZKz)7!;_=<;{I1t!l@Qp z-)|ftzxjREHdr=Rot@o&kW`>tpMks_1cO@tsvu?C5wSeF_Orz4)`03pyKP9GfHH7W z=x#^dHc&f}RM^|!`tE}JZfpEIS*!d@n5Zm?KwZqcI8y^Pf5lN@%hn@yE_<|{O%I+= z8hu;mw4j>_IZw0Ujn}Ju-LMW_2AF=;f{2sRpX4leKok7(ik$ee&&R)Qx+bK_V*|Tk zf7FF(HRN8q=F?GauGH!4;{~Q|8r!d8Iq_-cLvVGq8fmLu#tOlLTqYFhsfH`G-S7bE z2|4hnOJlbaUOEDL9@~L>fyIIL)azn9oJoaa{k@W`Fay!<@@%T>vx*o`!bL?3(^^z_@sET!C7d6bE#2kn|dg@r%$|eI{IWQ1Z&fvyfe1 z#o2c{^|`KJ8+QVm+=0V~>txj-ZPOlxa+QbJww}fsR}M+rNR6SWHh|+ykI#wTsJ=T(t%6rnN$VKsfEiU-2hOsXq;AHL>MPpz&T$AOu z{%zA=>{XX$874HE9V0cR5x)#0Nn|jd~g!|Vu-Y0{Nm~w}l zRRVMIy-8Xl<~j7b;K6L*u-nRN#m_Y3offm#R5TK3F0}58#q!>)qgRs3rs9>B=TDfJ zU$&p0NefVno36gofSg-BdE8P}HGd)`(giaR z?OqG<9+jldXv80AawMHPOv{DVB;rqdthggcF2 zL0?d#Xx|ckb-!--1d>_3#H;krB2C_<9dq*CoG!lEjvsrR--A_tRoCvI-mXKD-GjVd zD<5r2Eh@=2V4$uAVPjwLYq)vw6QHzExALOFJ_(U^6aqx4K=3>$@SU5mTES~!4hE<0 zHE;3WYjv>1#Cv0%y!;$B4mK-(&~=5DUCf^!+(x*B?d9ZP=`Ve)w6QEVgbD(6AT#oN*B zDe=sE0(v7)ej;02SIC3NMGpy=)NY8@{EbWjdvvo)?ZQ~Cb`&vD{#=Ijum5@C1Ng>) z8Kr1RD_tjC{08%QEb)K&+5ZAR`>z2jpOZHvPa7l`V7X!ycJ*hkAt8p>%I)M74%;g1 zc#z4YFm?zcjwc&#exc}@ozoOT8Q5(gwzo8u3xWe1V4Uto4{n#*0Dvocn1;qVX}=JQ zZ*rYg9;E}Q+Lxq0%3j!Shi+9$O5etBeZcrnHaTev`yc%d)4#JxQOrjkDa}?xuF_~j zA6Rw`Aj48VbIO%ou>cwVp%=^buvr2MK#j8xTtgZu1EEVzEQqIV)B zd#JmjXt;Y>L_9sGU*CP4&n0K~n*%=a|8g|{7>T@|>1zLhn}5Zyig-P5SjkjkZ&Eki zNVqGpBQxH+5frUQjAD*u&34b(fR1I3hvfHwj$7v1>e|qCP=;>H9LfIj-DAxcFKA4t zXp1|@;twB$DS6GVzf#rW=E}>M73hN5zt1sP+@xNKv!D^2KValtO8BW+!Bw;mH&T?m z+^AsTt~(%2lZmKF>G1LM1Jl8?j>>*io#`=CqIf^r3bmG9I$h>5i~+Q|vI?0!F!v$l zbz3;0fdCf0g z`stx;wq$t6oNzb3&{+w%?OHY*vu}X-TERDE7!*;>o&#RbybpbWuFVPvpHhjIieEKDs&IQ zq<};-@{TM4z^n!Jfs~(gIK#buq`tR$zD`u1d(^9{S{cjrq0PrWy7#wLY>?IE4xppR zdY|MacaDKGZH}Kh3(AsanVmLwUWN;Ii$h5o)NYF75f#>=HFeU@QC{UV7wFH4yRW)} z1!3Mp*%u!qY8p9zweHXFOV4EYyH3NhD^gRGl581wY>WQseTy!pqiE%k!~&Il%)ZbI z#Jt!h^A`v-nnS)4-eqbyL9c7MY=V`?SCzdB-Uwz5Zlgyn42G+TeR?$(k z45|@mtwc2J%_w!2z{yzPjdxMq33?zpi~egk8R~Qt$(gaD(1=uh6eNTFIkY03z-k9m zpHCHb$0sr~n!k!)P7mb_47<&ZWrLT~yvkUep#@Ly!k)jkYV~x%vUVTv3Fz z5bpIP>Il72Sz!bToj7gSXM4l$TB+H)4dvNhRsl?~7l;ff$c_1M1xa_R0}3G7L`e{5zBo7>1{?`2&^J6yebvGH&?WX-Au}9D zOw0Qb-R*(lcgWgnr2Vhx>X?NuFUy_b&fVpsRM$_NG=06YhdPjVf8-o$F6iP91*Gh1KV9twt$L!jaBLpmYvt zI#|w88p*}?cV(g>4|Q%66vJIw+G1b##mR*~x6@nNBXtKMBCSj#a=T8`q@OB+%Hbn= zm!50`l-|F)`xzP3di?O5U{|=V->%yR!SEa#lj4niYIh^Rq-}CknzXvEni|mPX!w45jgPUOPPXQmgbja(?^S*nwz=%S(UrTBssO9Wt<&L}O~@A2TA-+Q!1!+6tn zt-a3h;DDvQAF9&MgH%b=QqwNhXCB!FR5`@zQc#pf_BOsRS$jf7HAN5=-PR$Ir_ zrzmM7N|x}~F2o@}=7~MhRsz{B4nw8Zu<@opcFpcfdO+p|5FIbVKt_n>qV0KrtBe)mrw4xXf;NZq$ADsDN@B2L-KUcf|>JmYO#kb16u+ zl`|uyzbibgAI4|XlOi`v@EbQmD9CoRIC60d8o4Kh5ZtXBq2v2>AoKeE^Kut`%!_5mgFni- zF-$^jGZXe98$yzR+LhEW0?fi1A!q0J>IBE+S~g(B)sYUpoBs~0deau(<+=(t`PMrs z;1`$X3mqAJaidb>6)ns3EbtKIcVO;~P|3!?Wij%MK~)g3cDzrvy*~K?O@(4+ z39KLSmH4go?;J9Hvdz2z5qy`=Mk#JUkl)%`+(9?8a(JYKG~UPI%eZ~2BDQIGd@a(+ z6>k(Gm6~_e; zr0G$k{g^-!B~2+e`*4eSZn$@rPN`s-c}24OVJF2TMYvKmH1yt6jo>QL!1;sJJN){o z!%(haIPr5wmjichhpHbvC_IeVLJfioA?BrDm_Mr%Sz9xawWA2iiS^5a&>*nSuHyvFWR=zZtU&lhse0tl88~E`r*l3WNao9X5j2H~V zckiBv=Uni5TqCBD$HKq9B8k29W}Xx@G=Pym@`w22TRZ`WuI(MAevKMk`|{E|GAPd5 z2|dV)EP-E#3VyaovKBViI zq#SyB*WC4{>w?xO=;Yh^b2mlZsIN75ki@BeJFt3T8*Xvo!Cfy4RZi7D^;1nc?;x;Y>cC*Y)agLtKr)PRWukG2=-RQ|C$fZYACBS)!4J^X2sR)A zop2zTk5vScXjkY8(CSKInTuf|oY78OQ% zBi@`ENMAG5%5+Eras-!dA1aiwzr`CBnam%ZvT%k zePhp?3(Nse45);$!%s8s;PmQ=y?O1_uahqvDgb~zDdT^lFrx%^uR1-uK(R5!tOldqnJr+1+@)77% zZsp85l+v)=h|Y}Y)0E;i?%2O5g3eoOp+E^wMpkP7fyH)Q>vs-{%i)z@nxU0lMdvO) zZmu&M*Yk(?IBS#+<7l_&heG<2&$fL^J8pcd7 zLBgMs_2xXG)IsBCGmH8Te`dsG;dcN4DrE0_2*2X@YY}o5J|@WPHt|qFcgG;g56^RK zC4W-zU+0V$%d)Gz7piBKAQja;kr9F_{!6Jq*UIK+#-n~N(e?f4Ru;|?Ft&n`rR-RK>YCLGhWfVLKnuA#5rG_!`~?w zUYj78rB~QC82L6qlDwm|!pc$GRt30crh%0A*f2*Pn2aZ&+)Z9C0~(idF9Zpewk8!k z2ofqd8=&@vtN^u!tnYvI%6 zX={W2`jvri=zLH2lHTM>TZRSC4m{JlFNlCO;-Kf$NRJ1(s)C3T)_c;8_TxIJFTv|T zyQu#DdUoXQ#?c-OxJWb8;$Uu+O*F$w4RzYjf;JDjN0kK;j$mm3aNwTBX;L!F~mFR0GW+dglu{ zD<4q51IdPqix#ma4*>0p%6TDPK;rjDk~=HPxOhJ{Bw)LrXk?m~8+%)2gAQr>raqG? zce|YJcCZ2;{=fv=6Z}$;56E>?{D_5AXBtP?!M{H}@c~wINx@V@ahS&^Qx{AF8oaN3 z(x_|$&qO`Bnkm8WAsTNtJP1AESteX+bIrio18)=;;U)&U=`bRQ=&o@+yS|^lRn-Cj zK5(|nS>Yd5Ygpy9RL*=qe$gs!yfrTaZg-3%icv;LasbPnN;;I`u8vf$i0oP(Y^r;v^x|o@M@G8!KMMv@M`l&aRx_8r|csdgHE*28sG7bOB=f zWQ+4LwT8Sr*8$l#j8woKwwFqsmp~K7%$E2uT=80?Q zd_YtzrOH|iKxcW{cc=wfnj@~!+&rZj(YPDTkRIdWh;94>@BKS4zhZ<6D}#Hg*e}YM z(T}ajkE6QPbn_1B^*&*`d7t?E@JSA-e1l87FD!fy@+UuatNBHil`3KV9wWBQcIeSh ztjo8``QJN#6K^3_d#x-1wUp=%@?&~!EBFt=<~kB^uEg>DkYB+2{1q=H|L*Y(xXoUF zn;Rql?FdofxLo(0N8te%h1?sG_Sbl3s<8J@M7&Nz@cL&Z3;(rXv<@ZKO9&>P{lkj^ zn#G#vyM{f<{}K#(`)OZ5H{n=*MHl`!bpg7_q81@(7Zf0jlpg9eS@^~?OEUmrq_IPz z=>qNu+1Bx|f8_Yt{|g`g7vLkHLhY#f&l&qe$ae+s#y=ywhs*F1rNerXr9)+D`vl4| zwzgr|4A$0lGW`7KtFY+ZxrhTXTAQr4e$NB_qkdMd+kFvNYYMbvP&U`4S%IdE4EAjk z{6AYz`(Gm=0H~LbS$2FF$Af1JW8H>NdVv|$B*QwtJ)@JH(2j_d@uc{Ll`-z)N8S*t z5WjH4kOk^WN?WlXMJ=5@I7*AMl|K`>69CIQfW712$d3WNX12Ot z%IAHh;15-N0Hn(6mcN*#wK&Eu_J#(fEQCch*nDOYXD$0O`*Xr8o<`F$0!Do_y4hP# z663Ie;QlF7Lv?}*b!`51Z>d|*6sKyr5?n=2xiMN5QsGTlwOD_bmE|pbqyGtUxGKKb z@JpXlQ=83Vv8t8bdB7k!{bgz8NxS2{?WEFFnv8d|yG^JwLULUse52m256$ZbrU3 z?+l&mr4|XBrRi((4vkV4FvJA(YJw;=zJyv5sGN#~hvqp317fzo0o+Tg-)4RYKK`aC zx3F>8Eg*pDl7lOX^Hw{Ez;PM|NU3umHW{VeHmobG(nJ3!x)p*1qeKmimkubnD}frD ztHK?Fb`v1nQZ5DY&*JF+1zqqsXF-eEIopmg)n|gJRVq2kDr@y|sw>1U)gboyT;cBb zF*|hnGlfN=sAiyZDNHz;w<&z-m?iO@5L8Ml426!N?&kC%A+T+6PeNzZM02(`z<{ z;u*%k$;lu46Mpp)xFJ zXcc?3zCV+L(mn6Y0tt6}p*69QkOp>=A4mqenxjBup!~C%zq~4;K6j0lQDMgl5uJD| zYIa(To1^UMCokVumBCD66Eo*Nm+l_uz`TEN(Q{6&e7CUtUk0n`pvVwRx?94P#MVN^j zexq^G0?XM!6Dh2lzG-=FDH}1y^5F9&pSIqeG;T`OiSm3^rn?h<`waU4L|@(#&^HAA zMQN1ppx&vb;dG3}Yr8_7hqCUlKl7&%lh)zo^t36MCmxX-l+vtzse(Jl003cARNL!V;i^|X;dFtu)n13?!-%N04#WiAc~A*3y){$CX2 zuA8O+@4vc5^ZG60N#;OFK-g@;4b9KL9nt(0!w^COO;}hQW}l2ro3`MYNU{=Udtwmi^2!9J^JV7EyRGOGlw^y94YvNL zavnl&##&L40xTeU-k3f6t}HexM6CsN+f&RlYyrI>Hmy|J%FOrG*=exK4$v*&%(I;) zO#*I0RoRei0oR~T4ZSTyD&=`LhsMB9>`HwRoeSKQ7+_fA`vRSi8)mkyLb^>U5=-|n z((iiAJmuLWgova&O2qC;NJI7mfA>@VdP&f?!i#!+&P(s;uoQ2I%YAQ1RD-v3z42jZ zb<4#ya%}+pJ~~w;mny`3y`&H0paUA4*`@B?6fu1}?pFs(B9@RV&k~EQ6AgN+G2JLq zksP~-wo$JD?St9xXC=62SeUh#SNJ}ctGhxRLCt?~j@D^Sj+(^!XbU3De(Yj^6#fTJ zh-)w{&*v66Utg=)|2On|TknhVj=DIsFt)7>db@0<&g5gFiH|s^?P-mwH>sq5fg71mFhHxRgX783Q`?sDJo zuMR?p9Z8w~0ApzUp~*bJj}4|SNW~KyXpFA?{borMa{W4WmvXK7hvaNJPbMkDj9~q+ zQFPPUzHBYKL`~XG=Ia>oE|Na38PjoerixwxOxENf*{d)z%9@$iJ1jZpXYQmAH7km1+RwoTB!h zRwtL1Dr@eOMXkyp8}^sjG3zx^6XUs{aA$M4z1k|r%E5qEi`)k!bKhv38f@%1EP^^} zY|T*VmbK!%m{a6<-MxpTIfX9mogl2)a6Lg}Kt`~3h8eOm_Y5r!cJtam2X|dij8%`2 zR97@IPrMLkCG|m*b{i9d)9RA;TMw9lluI{q_?U(O@ zv29Yo6_?)OVJL4%kZqlAqhVbIXr9wDX#P@<)S$UWam7qGbhPmFsw@tpD3=>p^ilxe zMJuEA81BynE0PqOOmo9~Xkkhk2}06-#(ek^lapTo<=s_ZQ9Q;*;~g!g44SW1mx~EG ztLut=WIVPSEB_-_S{KKzlOekqUC829Xoq0fyi)$cZiHgs<)K+)mZ-=xB~lcm2`zEi z#Ti={FXp-}s{_!WEjVE1?Dd1iZ*qErYXU5j`UT-5OZI&lSsfd)v7f+z4%`f4fW6)> zV2p@huMM{juRZ~|`IaZeNIul3yI;?rMf?Yf>xH5UN3_+7HJQgeiL(X-rzt%<1~L*UXF-$}3E^W|LHGG)hIAL*P)1idl}A>+;i`a6R^1@?&x5zckG z+~2$--z=B#O*7?eFv}CrdOt@p^Vz~L=AQ zDk^`y*x@wOjpJc?4p7iXne%pG`?M;HuI2kYl=;I+Ajt=0#G1M;ni^QkC@X;mM9T3d z4{l1Iz9;9XmQQ8BEdgiS8mL7bvL>KhFB{ZaQeHj+C=UCw0j&>}xOrVT^}{^?SvtsO zmKkFUH(_#x#ztB^8n;b)nF#^|no$87sy5=i&7Z1bAnW*Xw(+TSuA1iK2lALGswx;A z#~jz=ZKHSvmN;vO=l4A4#}3jIO-zA&*rcr@aqUZod)(QDFeUJ>x;MXh%y-|CW%R{; z%#jX5=cVl_YF=+NbPq>axV7(0Ia=`SJCPOVod|P!fLH|W6cBI_%0}Iwo_d~UyDM5z z?M3#{U8$veeL>99`2oLIjDg*29}_DLZvm;MXqTX)%zfzH{Mbi+j9NkSVua?LB(vBi zv#k&)SpBk5uzIw57eDs7t?!{yk#|$H>^H4uGlNCmY>}b5?1AkLOwY8i@Mr_|y4-f-KaJo^sqzXRAmSDI3ag&4CH z2=fG1k6@J?3@6w(Q*2r;PCo(6q*j5lpUy!38jf*ju)}~d1Dy0r}ycn;pN1m#AjW+ua>-Q-zfG7sZ-ulZ%;cWWo zgBZ^%DH#A4B7vjq`DWpqDgtSIrh~XKBI<2W7(Wr}z6b_{|Sww?|Y)fMu-q)j`sW zjfR%Mb@zcPA3$*S=X$X>2yPdcL}zyU6}OMnnN1hx-$kxi$6*;Q=F>Tpoq{FvEh-Qb zpq#V~sBNTi;{Ph1oiNuvicf5l6U{Y#wAOV|Y3Y`!^ES|EshnvW@;!FA8c^<|gk>#+ zSn)o>>n0!Tq`SRc}1Cp&RwdRklCX{9X^r2Vm8;ImzXj`#Z!+rVcfh$XS<0sH)wK z)F(gl)?PEYpl?^=p~pNZqpM4kv%dG%eR#yOY`cR2R;q6NXSq%*jAiLkRf}p*5oq6y zt7>)5uR0&-<~16Hm}&M9xNT^lX6=)}M(NRC)xP)kMgk;p{W<>Xb}#<$yr(G;|I4>B zmy)24>*6b~O*J+f(kr-p^hsGCzczcFcg$9de^v;! zS}$m>3AwxF=uh9k*UojMyJ3LWpWXmS_gfMBvvTq+Jtv&NAC=huy)GB0b#~LQcm8G3 z_pNi!L-U#}Yp~ z{-0OA{$GZ+{qO1(@O$044aLN_A8$im-5lR$*FxWGS9>$3EbMx@;sNIwG(p9<_{|x? zUCC9&J|T;^7IW=if(^?q{*R=yi-|c+Zun(9v7sFAwp{Jt#@SY{bM?^Q`!M|fUw->P zLBKcqF#J!X8{n$JW7Y14^amYLVoy9>SQ2MR%}?jwvk8z8WT!Am-c+&5)_oA zm>U`2ljC3B!yyN&GD2;-zAkuB-#=th$ErnSF1D`4S=00>=sJkRkVh6bspUT*u?ECq z^K&1g^SZ0ZZ8x*D*19ar#b^=uz-+fRDF){5C;*6?3cH?^uK@Jj7JD?sz5q@pE*rlyj*QyWfBcXeoV=BA8S1#!z&-P_ev{bpzZ6fv9bH+BO= zR5&{AUA13&0b@)Nv)F>=QM%uqbRz}!$J9SlkZpEyo;No3e>Wh}*?izCG z#eWveN?o{MQ0A4EdsJcCK$}VX5l%4vlx?Kdt zEP&j=J62toBNZPVnx*q!#9^ zy5GMy0zdSzJNHM5?z=Fut${=UWwxe-z2!Qv&CwLfMbk97g0 zH{E?yqL6@z)BbQkPf9nsY^q54LLnJ9=+W)*b@_FP?l+k?50D=$ zpCuFBqNbtJ$*C(41R8!W;=ny_rRS33$gpL9y!E?^y8+d+YAkg~y&=2zF@DWr;qjV( z;#}(jv(U>Eq^daXT&b6)i>5&@HR9mQ9;2j+W3dNM=q_yXVQvk0j8dEds(8^3>sq#} znR(g46X@c}E~^18xD^qI@c@}-3V_G;z`8wdJp4jSkyur>yBpYC%& zrh6%C+B}#Ym)t?QVqUP#yl6K;OxiL-VP;&p^nrWl`J%(eio`g>)OaC1#WZx}W5+0* zJMp23QCBm*u)9$1aNVL*Z?gby*nCjGhY#qDa=g503~l>f*?aK(otEb7_$m!>HO2-! zPn03e;v0%h7n{O3m5+W5VbO?tkCD^zY#n4)*5ta&VoxJb;=Zr(NMRzLv+YuemZs<8 zxt7I=Eu_yEqLcWs3scu3!vgBrx->6bt9R$%*wq zQ+NwfA4pnEz>##q8d54BF4$Ys4L|tj5%Vg5KCkiXQ z?i=b~BjZ@in!(^<_7w4@?einXKTXSsv!%;m2YyK{8K1t(JTzWL0{TPbSUPN~*-lzB zvtH!Xv{A_idTzv;eVACDY4G1VQ+ss=C}oDU&*#k#WofKe)N{&({s{KI3E-r1qu4hZ zi1UGN?Pi&s1~kL@F$eI6g>1JldO`r(7YqAY{&h#b?-2gThYHU zhHb<@`3Q^dCb}N^;nNCS;hN&aTRlDrxj8A;a^G&U+UMZc+myfwr!Rx>ErbA@MM~Y5Bz6G)`j=5%Iqplp8=@# zxROSPwXUP9P1xn5o};U{A&L*Tq@5Z(-#@Z&L)mnsziLzUY_lMX6sfQ1Yp+dn>+Kle z^~*p+?`c+AEcqeGuJqd8HT|KdO2FM#(QcX#9w4#Rv)RsTsiu)&zk!ijgXb-*ld#B^ z8CqK2RAOd042+6?eg?V;oBFy~!tVI~auWCa;y_91{@75LeMuPW_!@A0A!hB1F3&HC zJTQg#8lt7kf0KUH^csC`9_lYT7bu8evZV61TYPJ_^=*uR&7O0jF>*MhfeCCv50{~m z!=RA5o@Sz|T~NPSw2QTFUIgK(198zoIhmxgn&%j@mN`weOiErxam=ZtG(9<+-0(+Z z;lz@v%4tA~DS#X0*H7ys3`xw-zieI^(@>-Y-8)-F@jG2myR!3|L5V+sxbGb^(T|?`r@XpI<95P%hgjKZ3VX0*Q#Nf-vr(8uXYZPnyALC~|9Q2V1X&r)! zrb*~v{kX>@)=8F`b581h@oezC&)|t#G_K~Y1l?Ib@x)+t`p&vD;5)`_FlbgV45o2;4kgNkA+Q&3zY=m&SaR6^fgXZE%D~~bBGb?J|?tB z+j-)dA7f30wL}vBBj!)fidt_l(_R$NK`&S3%r8$r+yRxfaas**2>B2zS&hv7-G{^tO-g`zhnYMf1NE7Kb0z&990Ro{#r9?;oDG4P&RGJV1Qj$PI zlIOxQh;J$fSmghnkYuCPb+<%i#JxlaK%JR+{|<_X*`ahIyyIgHN(caMi@Ug zUL*O_Kr-oW(?wD zrYkeELH#&0l|F7dpqX->sX{MGDPUS>Vr`^|3Slv$oCE$jX#9${Fz}or4H`+c5p)9Q za@~~Tt?Fb@v2_{a?xHEoVFoM)$Y;i$d2&gh*Hr8G2l~0!XtQdj$>{PSp)xy{{ZvWD zffdGi5W_`Ql}gI;LK;S=CKux%_KnJI5gaN8n(Kd&l(ibvh3hD@x#Y<^>TBTXT#_}< zUvHvF=L6@1^0bH+tRS|=8og{EF4EVaIOJH^q3BXFP%!6^dcCGWDSC){2GV729tF&> z@bi!;TT)F0cmKvk+iS^uM#`kdI8`BNOv8BUit5W@y`l11@hJhJrNCT4Qc? zbzFmu#Q&GD;5VgG(m~Z49kX1Y`T9p<*pvO424{2j-%K#p3 z#$_EN%R*mL6z>qxES_qX(z!9BR^kF(P(P(0F5h`^dz$cxdlfplbzhY^ibS~(>6 zfpGk6jt|vt_P2ReE9+wwPShgkmc^cU1><8C9L3tI$YDuV2N`ppaY7N(^4r@bSz=?u_3{EhYz+8RX6td9rtXuRo zqsD+l!jBAn#=v1^yGBeKu$`R1hO7lXcOptJvywx1zEkJ-Md&&{nq8nOO@FZC+%l_F zIN(+&cCUw!gbq|p$plXg&=v=Ux!8VjSkC_J|iL=Rc>tNs)R*pB`|t` zlsPK%qHABsaM;VlBKiR0Kto*9l=V;g4a3KCAGrZH;jdI8 zGj;vEPwj+kx3b%Czw#spI6i|Mf|_J&>7gNSn}#qS;@UAQSYIE((2EZw>>a9Cr!&}DFT z(Bb43LT_Zp0gCicjv7=M)#WZwo*gU4V;dn2q81~|geOh|^Q>&edGNSE)e0Y84;D!p zDn{vt6@gt;op;0-yA5iO@-8w!F^vvjy8Y~-=mfVApLIEI&&J%1Y5NbCe;kyxgH-#- zPTj#m2di7{;3zoZ!1XzW>h9oK@H_iFCmc8x%u%#qc>&s0ZA=`YF1rb}#CW_q@?&}p zsvl%RPhvPb^0X^zAQ>>kYkLKx!ZTpn1fQmjkaFJ>s=_$zJup&JFm|;(+~45C@ zq0L!-VW@05)JP|8Lh<CiLE8-(+vCL7Ttm?4NWIuJYX}sQ{q!r>&Ep_ zD_31z{b+oJ?a@930R*=+ppz^j&xhb{#SB$Dm+8HuV?Hl_t}q|wgA`+9 z2BdNEZ%0zEyg1&`VYjboKUumQChaaBWP)FrytDDW42(d-vH}h#w*n({wV0s4KuGap zHr*&SpKJUFue)SucgbN!^+{q(vgyEeZ)dpcs*}wEy;Bi^95#aHEF;AFSTnt1o|%K; z)pntEtLQ;e8a@gL2` zjKkd|Q?S6fg+yr%WUQ~qt&5br>nl@p=9YeY$7_eLUgM9)+4%JqX7nxb6|b~Mlt8>Q zwWTbYL&85Cn_dPs`f*>~geSIJGLvS^gcMJFC_q&L{ zik-}v%{wo6;jmixz@2i*I&f`h|4+UQdP=FzzG?#jVGP(}&WME(!=L%c-tw`U>;$X% z*G#rus#Hyj8P^-Ru1H6*AnP!@stP9|9rqdElTOGo9-;fEskM%gNW7+%&uWctr8F+b z$*7jr#cAibrH6?vkMGlwcSgna#14Ntl)8f(l;ZL+tIt+)t3Zn>t=jBW`f!_@5lz-& zx@w%LbV4fdf@7<^6>3gfq`yyumR1?}Ne=ewAw+Vh|w4S3kp6IcMf$A zZRD=W9G5L}b^=~VPCM_dQDU;o4SVCx!D%t~O|2_C)w$MNsT`C)$NcHRZTgL5KBg@K zIh*NxwztSyVUb<4i~f!`N^N`q99Ep%Vdv=s#0tdeu%^Y8c!g4hg5p-WO2?H|cY?aF zw`ij8yyuJ*IxUU5m1l;6Dh@8k~H?vvi%2Yl0QeUAhz zVhB;|Eyjqg2ezBb7-| zZcWvry*!m?kkW-aC+4VjLCn?{smWWtcTP#=YDcJ`n$hgDx(V>_9vv4iyC+2AEKS`1 zwIPPIBPL0R$G>kkyG2)bt!In=dFuU3!&@$=b3mqFR}%B+8q#HcIHmDrk`~|{8}(dk zx^=Hzb8H@0purBJEi>84W!7b4Q6eh7j`aRfIE8!1Q#{+P$vvH=5+-PgTI3OiM>O1- z{m$Obx>_#WsLZg+Zq=bkl1K{L?I72@kkN=f5^$hUKMHW(dF0J=}NJGg*v&X?idQYn}qxhBuy>Z0#To zTMzr??=}r5W6FZthR<2+1ZFPs-%*Dm#Wd_QFVe45bqUv5(SvCN#Msn#HR&O;J%L7` zPOF7gMJYlAayYd{R;8Q02M!Oh5IW|bgXXPf1oRX1meMdf_!J;|kQFX`5LF2&W_5V( zhiX;Ej;9<-L_}R(8q6=hdaOe=;IsXJYz09SJ=NWexvpkLONLKbMZYp-0M!m~GfDZYbf} z8Pdy&w^+yZU75#3*5WBK45W1cWu76>^cq-THS5~&pef0@|^K)lu47VhO@1w?SnLT5U=pf zu8+`WmDut-I{P@CZ%e90(K9HJR!+4TewLv7KAIn+=%sF)yz#U43k}5{m-s;wy;mmM z)zi6*dnokP$M~|SH?X1(ETi%yPVif*9ydjT#PC)}*j&tm2f|qx{gq$_%ngG^;drA^c?kbToZM5e16?OnWSWZgv4oIp- zg{JvbckL^C{3f<0v2KUV23wTraK&Zyp#0Y`#Q1)C`eq6`k#Q&b0h zfheHN>%@~e7Uj$B{Z|0F@YhJ7Lg?fIXO~aNv(p>kG4GRt@l*Z;pa@7XGCQMmB;96o zi3D1DeJ{EJd>8ctaQPk(P{pT@QT~jD@q+X>3wFqo^Fo5S?@^^_SzuTV@{`3Bp&s>cQ#L(Qj zp-=+Y1%S7o>)rpc*q{GF?g-?+|8K_9A9lb0B0yj9|7g*Ar2nUHMw``~OLA!2dJC3*YkmL#0<+KU`-obare0VxI%;5ZLFAiHnLdWUW8I zH=l0*_tgX^yMedEi(kJ;Ck-=eUVqEh_ZAq4l2_-78uuSJK#Z=`%GPnW+6E6)FTLR{ zyU|mSAUb1IMAE7q`AYlz--Oz2IkN=8li`^P5=b*`6%f9x_&H3R2kE!~PR z8MptoU*Pg(-Svwf+6dyw$NfECC&oh_YaOe1n_0Ja>x%Jm9V5{v$22OE?pGEPq02C- zXb;*6{RNzD%4k@rfR-HX@tQK7vt57l^_;Ki&VTCt_=c&MiTtg@CHBBU(S&6EY2q$x zrz6DuT~FSHK@zr9`XpTnGEQx+ENp+3-sjrm*ylQwMRlENRBf-G<|9cNfpM~&QMaYH zz4a4OOrh6Z+0^FV?=tfL?o+rh3SL9#8>1yJa&u4C8y(p8=hhM>Dv;C^@C`#()ze(i z@l}UU?ZVt-8Dg%pZrS>E-?E*>P0Wk94Q1K8O}^5Yc%rN=;{jh@a9v{S9N(YAS@2uF zr1Ru{Wkmu~%vl7mKFo}N%4Nz;ti$iE5ADq@CLS$}AHa(1XoU~l#iJH`ZJRL*zk)^M zNlTqdW^BBjr05|9)x4X$+*4njBqJb%ws^qnOse11d|gy$epBRCq&m#8df>jPuiudT z(+u@iz4;4}ff=PSfSO>UAfWMR2|ffmfuHn)e&NXhN0(q3Tdb3nP{0B`t-Ea>qTj#HtMR0^7#Ydosy&NT{2*Ssulp`ki`igfId}4eYM4`L z)Sg9EkPrO=8Z=8#E8K>e&Xg~Pwm-cU*2*zpty2VwGgskVNMK#K8*%gY{+i7b5$`_6 z?lzyisWl&IyoE+a>FCFthWJW?=3N|lPnWb)Jnm>SGaukYapmg z0Fw!+Z6uq zW;Zu5?l$L!pSbun{=XO9ofYqQY6{!t^W@p%hL?Lsey*e_`sN>x1@>l1C5guB&6+1y}Op&v;xtY~3Jk8<+dei#fL@X){lGAkRo{Gz1O&5XGABwh3&U z$_`z9eE8<-JHOirCd|bAZCOVa57Xb-z3NYKJ&+>2`=OL$t|q`KUqjUc$nS3&wvPLe zkAjEtW-!{J-2y6zyRyp42+%6%XhZ~>G>PgJ0SclwU-ZEntql43`TPT;jb8O5;gdMO z)-|03x`Kwi`1`$Onf%_+YhsYT27V=Pa9s$D}GN8 zN-bvQuhj-?-Fifkeu0G(xov94n&N*Oo%aHX&u%qGhA(U8i|1Pt^rqI@ZE}8!05<5| zgth5fU|IEK#N#$?4Bg@WZ(#U+w2$ZUYHW;&Z*=QX8>y4}&hFSmnl=Z!1rl27M`FHr zLy8(>v?T4PzgO07Q@lhpJ+)hHmr%1!byyW>w(qoGPU|2J}O`>M+WVaKoW>)@~wr zyy(Di{JDf`g-c5Z>JXb=S-!&R(=My02guxV>Idzo$Ux?}3z>@Shd{QqUzqr5nrcT! z3uP=N6dAMK3$T&wo9j~_f?gmL`OjC^g&5?(-dd>jD7v*Cf$${KmknP6vlRm}zLB~b z+NQE~$af$fN2RGN`eo7Qc(qs3*UmZy6@OoRHDfp8Hwg>#J^7qa^n~aBf zvBr~e40|^YdAfb?e!f9P-N$La$s|O_uGDO~N}qa%eKcr(*`XY1eGkW@`txSBmo5ZL%#eEE8CS|{;kdUQx8)_#KS@RBYx`H zHubRpmhcX~YP9xoZUcvle#YUEd0&lTH{+pg4%d&X)wp$!zHFd2&Jf!#kl3Z0n<*nv7FC16b9S;`vht$FujpRhh5PIZ-7nMWEHWkW#AJ8!bpM#=yGNzpJM1eBS z_XJU{oyOjKU3D*ED|MX7LV4@SLIhGNUIRzMfbjMeXnj}H4sc1;6h zaf=NnW~`~isF>hMIc95R=kWe}dSLxCyMczEN(P$4E-zG~(MXDx#cpy_hN<#s( zZtwQARL}U9tj96N>uLR~E0n7YWe)4o^K$Wd>o6LnZ4rbfTOyQYxq4N4R`~W(^F45! zwpc(XNZJBY8Ruzh2d};s9e`QK5C+SQZP;C`MP32>VEj?uscK;J`icqS9TQzXP&e3t z?w6qizFa+VOB2mlQ4vZ-ib3{NL#Grc7&5*)XL-*d%&el0LCV}VD_L|jI5BW1C-9fg zDAK*Fy3aD|k|G;iT2o^+oMr;I#}1TQ$NWykuk((UnX}XSn=I5ud27&eb6wz|aP3kJ zUB4;}LAgxVtg1+cfH3t2$)FYsl>QJ-zQ-rTZD0OMKx)omLkWw%C&Huba^vTr&l-hV zi-B!xq&tj~v2MZH-p}ZpBxbX_64l03Oz&1FnmD3zT+ZY;Rev+b8oBDsn?Me`lT>0GF#z7si?TJ{9&c&!b#iQgoflWaw{NeepiOU=HS^o_f{Gv_Cj(3rx z{X#V_FJ1QVoxc>fc1?|U0ngkFzq6zfu^&`yS;MF|STlL_^;R;E?rz$&=U9-Bd76Ka zpO`)gT{6`@7%|r4zu?L|x!|saF~g&sX%Mn-O|YtKWl;g{==py&o(`jD6;k zp|%C@_Z&8^0m}uPVvCfP{$#Ci%G3E=_{uo3`C%z+r#vGU8`XHD1!>Z_!bw%zcOT5l zQo)Mqr>|ZHI1*JG-Cd@BT#v4g-Z(_l8TQ}X1B=#?IJAajQs^3%cj*8T!@1_v=&eX9 zt}$9VkOwX1Wq@=6Pt59T^_&qE1=?4?H%0oU>rnft!=m~KBNx_| zd{RH?6esN{z?1wcJJ&fHVqq?{lu)VHXN|lxrc5OGiv9d*W@qr~b*L08=+}Hi&<*Q|S9GbhGWRuT*Q4PcNy08V-~5|Em3p_cE{m9LF&z6L zv#W1xN6tk@Jip~_z{(l?Bb)bRpak;71;Dx~ob}*_TF0Pfa+<*4$?~EmU#vKqlX_M zV48Thz9Mzoe5PFVe44C2M8n)_6dF~Q11~Rw{}!iNbK{;WRQ$HGb{awZw!O}O zc!{S8i&OfvSM0T2WtKXG79l^lk%tJFg}aj%LcTf-Yd0w5m5XScoP^Dm zyn2A(HFjMuOXlb|BSZlP=<56hxp<$ghY01fV)g&gF^Gp{d4_n`zo-HcHGS~A?Xt~Y z12^9r+!gN4D$_Avi#_7{;wLZIAYH?zRyrHh>2ArMv|x>*+UfY?jTNH|4bTX+O#mr_ zt=*!koTxN+PGy-;KM=09NtHWY?3Kq@PQOS)0> z3RHQ$kz9vP+cwO)M%d@YYvhZ9Zlm%2+T*!3_l=`MC$Wwj`}!f2lY$rZzN=__fCkig zlKRUc?w6ww=VHQBiZm5pw+eND&`z&wC)79@IbYG*nlF%c0n|M4ayxoBWw;X}{=f*y zR4sKX=5`AgGcwP=Th07{u41Y2&ORX|6?v4!08d_f7G&K<{cvS`k5e%t59KlAe5e>) z=yF&_B=LmsCrrBD+wl}$Ra=jNwMaqgq^q4uPS_P%|Cw- z=w=ztA|DU6s{)-iKE5YQvK?b-OQAhtP4~_xR3?XukW}{>I`0u$bJwFm+VvErOT#=C6?8)?QFH!o*_41GM8R= z)K8?x($`%}P9mk&|4Ohc6?21RId{}c*FO{lUN|94-EtYW_V#NH*X~c62-BYt)blR> zZ0$gR068t|>d!Ug^-*`Fy$ZNWh07NHw5WcZ{ZkhAZnHA$Cm9*9^hhUU6{p}abmSbb zH+7pUa4D~XwsCwZz83p7Cgr}ELZi5S2bo(~ZiHt4u%aX5u2JMyHBcg}Y{gd@tZ1)CrlKUb){7dQ-C_syZ62i6u!qyzs91>YPTw7?4f|&KsD; zw*eh|(fD(+Deh2Bzo~Z@b>?pHB!-p^6Pl791eT>Up0I+RkQCEHV^UydffeQ`5CdWE ze(ne7AX}L5sY3WNf@T7K0;nD~)<7Fqvsd^}F=xxwcu(hm7oYF{%6m%q4SNx(E`pEw ztO(EWFlLZ~IZ&|jrI8j`h+I8ysZ~&?8g9l+I1@e5rVl%6Ets{y1$G#(BQ225p@k!U zYj9#GaLr@yTKa&ock8@+W9j1~4YxjXFOBy84>tx}g2jCZba7X5q#xtx3+_`5ZC3k$ z&3vx>$rT~eeTe6ESI1j!sR-y#KM|UIaGVRKe;hAkO5(*LJF+t^L;UT#M#@tb%>Q83 zfgS*>j`&Za>Vz+-S{y*t_JHz10*qJ;24t{qi+VE`fV6J8Xz2XnKy@rJtI4*g>jok9 zl8I5-jKv(#1T$ZGPOEWov{?V9>};b?fU-;fFN3MW@?)u2v5~LTrJfN8;s_j6a=rcy z`U5xmdH)$o8y2+P<%yW!lzVn8iP;I-mFmGzwn9p@wz)esR#NlteL;kq?1s{zZO1A% z<|ih)Cr}Now=qE=rV_g}u%OFX3`a;DuqIaD8`kC>SmLAtVnOu-bk{a>ovyp9ldbd* z~TIHdrhkWA67r`ShMh=js=%~7_@O+>Q)uw zFS-Hmv#MG*Y_u3{&PFP({DM-KqbyHipRhmmsq-w8Nf*}`1QdlmePt+ZGbO6Ge5B(-#Pz|I;u9RG@ZNm;&a7#9SUf87Nm{e<> z5fAHDPo0q<%5x%McIU}7BtGY)#+s0M$FJYskN_Q5kz!rY>ENrD=m4Uwt@eTyZmn0( zuXDnD;=vB!pb|{U;+Pmjd#@TGl#uaweGCvuAjRRQuC(du*)HH)x9faYD#XiO6r#M` z<_-;6I)B7TcWR4nM8-+-5U;*V_`Bt3q8tt{-GbeIn@ zv!1*Jo!Ocg(lF|;A2h$vG)-TSu|?Tv?NRl9UrQ;j7nHF#_iL*Y!#kB2;J^>h^!^D_ zCjyXK>JLc$?B7G`f-9wXy&t72Ik2$S4ob(PR=uB+a%)m)Mx0PJQ0YCpZt7(}a@9Dx zr4v~XGqExXU$5Ir_^EOKg7Pryeq8Ga;wUP1IljQ&dKUnwmA(M#mcIh(OteDpV4 zjQGAHYb)wxizM%WH;)u^t!At#Tis1G{wP@E(pun0ZjzHz8438R>P?JQzqn{g#JoS~ zwat+?2yWp2%Z{rQ)0W8Gap$&>ML^T*) z!%DI4@mil0M5!su4%kUs7OGC?yd`(mHT+R84V3ttFfP&+#KsI_-SW%Qf}%$Phq@>0 zmW=^%m%1ackvCG&JZr3?&AN@a&8(5mHrP@W_w{<+(qyadZ2N=B-8PP4uE<;NR`4PF z&2ZV3%$JwEG+g?e+d?(Hv|!};*p~gggD(BIa%N}hh(M6}#i&RVDpYXfr=PAWRV(yE zckw=Lsn37fQr7|m`g84Ca~87Dj=y->TeMP^QQBL-5UEFwYgaq1m0MD1joO`V+_vw+ zq#6JizSfB;UokEU+@7OC#y15~Q;@*AnmQRL)19=YT=5ZMAbM~p@k(JEantqRx0b-h z{?SjG<%&l_6bC(?(ss&MiB{cttJl6RrF3o1jOIW9T3)W_$(071Rd-359|IQXzsXjC z@Hrpim(qc&>FH19GoQ<2Um3?ec(5R`r_??t#6T?MW`b%?5EsQntucJIy^;O;r~$ck zgL<%0@u7gOjBv7>FaAdjGYN z+Kv`CwNS_U?wfa?_i#h2aYPAHKg{$~ULIZQ%I%&1l0M#JVL>bPrHz6>&+mW#OEzrZ z8t48o@wLh7e~Zxn%SGt_Q$X`aaOAhinT(sAb-OU3jAIzjPIcSG7k0L%8c1-w^F~3c z#GxZ@rc|KVD-03%UFpziMv& zUy;F|%2zg$YYjx%a|aUuxf>?v7789776?gY*dvk?5=Qx6_YXDKVcGrl|4m-+%gqr* zF4J+~rIvgdSMo;&#;4OI#Jz9p5E@z<6BDya-0MkhJh@54Xa6&^d%hKbt@>L9lh~(N zU9=r;-ZQ?cpuVNzua!c7lrg2N>qhmIcY~j7i$o>AOW*&xOa?E%ACXs`OB1^vIp__|4o1DYHBS06ihb)?ESyDaQx zu55Nl$_R8))wONQ_~bkhFYjN-`*n&Iirq;IK+7V6vde50&BelQ;k>PkE9M7}9<%ea zoHVxtlso^zd5#8n_4Kn#0vB4t`aAX*mtLdJUT#0ma=)z`zxLG7S;`9zN# z7?8b6JDQ&#cBRPWMo?#yJuA!aQ4DM;QHfJ*+@51@ob1RR@p7yw`s&&HwmFO-Ic#?P z99XZ{$--@zWm)j|UiD+g>L+_5_W|@e_4Rrt?1-|wrkRi0vbkTk;dBSDISBaQusgB` z_!s9JXOKz)iofei@O1k+wL69D?s$~lU4K=~E+kbG_YO9+I?)W%0{rv_t0eb>Yw!0r zDnAVRVR0nv#U`LdDIp&(p;4phK~o|8t=s8EnH_=Bc9NWbsS(pt;I`k9}O+N#nexx=o>## zQ_cBh2P`N-HqAFdHaj3nHpjQAECZelxL6A`*Izi;3f?R&85eE%%8MGdn=kW(tpigO z5W!bwF|XzmGxn_9o#WvJ#KG}<<0O1m%- zv-h1JzG9gEs^l!rd%ulg_IpWoZVmnP+WA>EX~JINNnWHu(j?YR&0VafFa##v%Sweh z=#e>C{`5lrqh(K_#dhoJ%)q%G7^nY}i}{eS-RKI3{EVh*He3Z^jQW>Fx2g_xU*M&& z0459i#AI2gQt!LB)e%@mDdnl;3!_~1smkhBDQ4EZ9qLj1Wo9uSwtJ@Uz)F0*jrbKU z1*^UFKXi2F49rni90j#iP!G}>cM=$SBGAAxyzs;|R(Ri;YK4O-J}4VRdk&4GBk9Nh z5Dp#y9lJ#iNeNF;Q?3b9LIin_fKn=YxLNhBxgSV`bbs%tHBFnE7i$#R%KT<*C^S^M z#@&%{8!=~)-MtTRF<(&fdG!w>CU2|TVU<>FnJzNCU&9E9<0<~#z4h2+6w5q_gS-R# z(e45=jBI=ojnAP?K1$r3NXuG;C@q&Pw3B3v0b%=k;Yb*R?e>nO?>316#2J^ZiTCsu zlB6hd%ZbHox!Ow+1NWFqfx<#wV%;Detb+Bf zs57{-;5CNdM4CeMI)8y!v3G`0=e71jLMq-tw<)v?=$QKYh<^5}lfw%YYPuV_y$;D~ z8oY4>Tu5Gun`2CX1%UzETxgMf_zXMODF||xdGi>a5aG%4Ed{Jsa~1oU=nW#!*`C> z_#l*&14*iYwih&FYHrNg{n8W9RZJ1BsGky77`L!rePS}2`e%ze*$+)b#8*xat~2Vl z5|_Gb0;4+_ZnMIJD{99KYk(#w4W3#j=lfy~;h2`>1zt$y*jg|A5YPp$)QvF!x=~-; z{c27CLe!>fv}B0;N9FaWM^Cb8s`^%P>AysKIR2tsp>uh@c0JN>e9bwPw!T7}tTAtr z2yzN28Bt}c0~I-k1*NyeZM5yJcGG@Y_ApL7Q@W4KtYRGN{1((FUcZ^gl9#|3J&yu& zO`7mcobMp@Z%;VEO2geNU+-`NL<`zdEPjsk{?)dzWlF++d@WFt_2r}O`poZ7`xqr< z*O#hq zwJLJe)sE`%-9XbdobTg46`nPD)NlDbx%o`s{ppCjlvos)H#UXvlyye(V>-pAFcE;5 z;?(bAib6n4LHQ)6=;a4%w>-uZr$yFGveMv&&s zT;!&IVPW^|Mn}gQN2;l~X)A;_RSy#zaspsCR>Knt%r$iVhmw-i48uy4S+Ij#Q(Zl> zd5x_x`LBT>++};$wf7pXiz8ImcFoChjLS?mCbV@F!@6@H!T zaLXBhxN0<&_~?Gk>qp0xC+@f@y9Ia20oNFyPz4KpR%{e*E69_o@O@<|Rn%grN!&Ko z6(!5P0Du3F0@Nfj+~$NCj5q>iR3B9cvwhF&f%83_m!Uu~>%0iWpaJo%7t=r2aJlfx zXVTw4a)2+RD>#4QchX<@h4c$tO3e#%lD1P851EYFWQTDRCWC9$*A~}`mvg2j*VK8k$ zzJ`5n8Nl2Iols=IhMR#6(C$<78-mg~FH)zQ?T;dNf|gc5r5#am(lT2^=u(|okRM=e z7_Y-&SL<5_l(CAWxOy0AluwC;SQ*5Ct8rap@zF`?sO5nDK$hZ$V{V=J;|>5aMF zI{_4**n{U$Tevs2TUO7%R&7cT)*=3J%OE;=7cs||&476(MUQ4Wd4^Rx)$9~Jxa^S$ z5S}v%HtS3c!u7)tm-$_6RAWu}`->3XM=01{P^&zfYu{j`#*J@WNX~T(mK^>i(Dabb z{NTWF@qt^EU99{8vVv*=?xZSDGdW}g%`40V?jpi;df@w1=wWh;l#SIynns{D`xaIH zO|Qoa%QE1qmQ|%#JEr&j9#xx~uyOP9Qv7aqBEO=<*6q*0mwyJVOj;Bg}zAWG)tYiRtHt zW(HUgdpV_s_GO8asakD5&=|GuLFZ7!c4q?1yzndhcLd=7@bB27n{aaVOfn|IQmY(IGY>R$m!Mvh@EP@vM)p3`(cE}B+ z1`PVjYO>0hQ)?Gw5p1yB<{FfKlJKzDDHY@Im^ZrAAzS#zjE7&J@&IPM0P*Xnwqw&s z$bx42vC;3nq;l(=v|2qi8$C@KM5{;`)qZXTJ)f>Y$T&phZXK_Gvqo`$pOF`XadCqcOhV4NO2)JVl4Wn<|xJ#`rX2poSj=f#Mrjy7Ow##uLF+nSZcr-7)4o7ufANaK&u zUk&tIy7jPtE3~-dbetO68Du-_Yu|xM2L`%tcAR!SX1K23cST0~<=_eU=2{Vg4{wD< zn#l|aP~keitNotP2e#K2CGpy3JzL0LBGsrR)pIemvxK*wEU43p$F%Ry77XA?=o4W2 zbQPLm)6t@1wgG&jpzdVp8+Oi*VmpZnjpRY^V>^ zm=r^?3snl$&iA8$CO9YFr9AMo7J5B&B;KOhHf ztpnr(&;DLM(7#p}4TQ&gIIw5KFz_E|>2o_?KA zssgFEEs@MBVedA*dWA`(EKx>>1q&PTA49F97SGUV0fLho_XXyQFi8aBPX}zYqj%Ac zJES!mRh1yAY4n_kuG@g|aN|!Pd!NIol2X`WN*eK)+$YJ(jt$Am?|K9I`IvF50Jgl@ z9@TfBWGiy<;QeWV-suF!z`0WMN1tubF!8uy^@WYgL4i=RVwpKc%b(-!l-gV`Ko~4fe&!khty8oGW13 z&pdD^NFh&5-wV+fe=NixDzvTRL_MsRwAL11(5%Qk#7G{N=Y*#43(|+(Pqv{ko9_k4 z@h-+km7_8h^;gETly=O9k6r@WZa-x>IIr2yZ?}}|$#~zio{TSEMh6@op4OwYqSjty zCH8xPbEKc6j#3LKNRS*SFlNAeBx(~8+O_)K}H?35>ti|oT%rZ9-)5dN!oy! zmHXOon4JH>NXVEi=n5+<%xR970D%#$;gD{%X%2nfuJ!~Amh<%+C3}!Mm0!!he>cQj zjyO01#{cL!w*dsFVpCdLZJtfK6tx_7tTnp9jc+}z12ZL7wx>M6Zn1TIfa*@I27bw!gm zc&AWK*xICrmY;GP#LPEx8!pR5x1KLvC=J(;&{n-T#gJhh$P2J&tQ@wn27~HVEHZp! zAc>B!PeK=H{TrM514Izf;NIDvjY~4PM#VwiqW+m5syPt5^(SppshIzw^&U9vWax!D zDlWijXXG4Gab|7CepMBy4zTraVp)HB1>36x4lVnR9nP$Vo}wjd&e%H{%?xDI;5hEO9Hoou?+x)Z;hvy11+B8V^`|4R@T zDzKazZZxN8Rh<{J$JKD%WJm8j%3=Np!p{~@nZ5zkE~mA zuAD)bj8=DuXuv;iQ{u4Uv=G$q>qYjU{nRn$OT7PL!kJWQ|0y40Y;=oZ^5FdqSz}5@ zrm(6ViBrlG!6WvSmku@WCVAS1XXI!t*tiFbvFg zDu=LM+Zs31WVNNCCm1#jZs=|;ejU~~y-#%qS&gxZ+1U{_ zYGRF!Cd<@!Z)L8u1tH~MqKnw-gv7o1aW9+t0~ebtFj`3zwO_Qf`Ku&`@;lo7xJxwW zX9X4L4b9$E-bU796i z=l#7=U-fsR{ti)m$Vf_PDbFo-yD?c6fAg6sio~04q0&^!BH2L@_8|a1e~9#iXM<#c zqi}Amtxu<^tSPB*Ukxd+XFOAs-hvJ=Xv38jAX;2pd_-3C8=InFS@!OV*{FKp<>*fd z5V$P%5zE`V<4W%$jW@?c6sMTP<~Uhy9~fk1csgU%SE#^VCg)hvkiR#dY4Pj=)r>tVCvmP4ylbWf!^h{;e_g#O*szq0VL!d+I^CDKhq(MlDhVLiSyTP3PBrbl z^YY$<;6&A+(n)UbF3II!GX3e;C=SofLE%xZjV{b9BhRDgc1S>vHYT*9aGp6C1&AkD z{3zjZZhSQ^h%{S_A8d*VZD9$ka%+zzLSHwe#Q|q8LJ5p$-!c6EVS9g`e-bKWfqOVR{!7thd(;u9wn-QX~}PZKPuodxm0q%T zT5a0H=DBtO5&QxJdckMbcN~!}e*aWTN4VWwM=^czRtXXpzpiu_8pNhI#z8G1L5`M` zT3@G-P_sc5RVm355W$`mWPc9t`S~O`!k;*+ZX_V08|! zb(j&AT2715RSWif*Ew8>KJ$@q9)HlG8hcEI7f?p1q>Nkh2CszoAQasVr=_Rq@_S0S zSpm)$j1TY=&iphiWI2R|S{-ML4`0It8gMzIFODpx8>DPCj?kUzzGJEu+N)d>bISKn zdHz7Ic@DCqUZBoO0^fAtt7o(8x4$nc6J3r=RgG9!gFTe8*tCA`tB^AF=){1~zMs zneI1t8yIEV49I!@k=^W~cn^7o#e~bnax(ypNiw!s<$xwGNpMjz&XN8}JP~hL<+j(j zgt7)yp^iV@;EAJX|5WdBRf|pUzg_89dPpQ##PY2!qL`CmtRluMnse+5ANfy!lF^3O z*4J~{vRpvhSy3g5)n_J0!JNe&OHH8VGr#kTUT`dxH5+?yOJ{kFz@eFV}1)x z7r^j<&}XyW>0di~yI-2`y=QXycF9x0z&5ncZWp0X-4P~o4ng0Tyf3bi9P0zySq$oA zF*0Y?YyJ0ljL$zxn-U=DI6~?CQ$ypg_H`HLhBq;64*$8@_La?pe_8+VR5bd+SDy0! zjMU}Se{F3Osc$bBft8r8?@ZhpCZAyWa&P7YWJTX zEI>2Z5>avpb+Wjmi4#O*X)OhL$R)rv!=l!S6F`w^(0nqUGvpG|GvMBlX_RwJNE_Yh z>EB>$euslYhJd!2T1a%*pLZ+`)qDFu+o6MAyD8&o@5E2J;YhS zLb-NpU4}yK(+V~x2V`MpPTcZ(*XemJzF%^y2OUIhWI`D9#~gCK)e&)+@@O zf$_^)Z?e}!bZS|W^H}w{vGrygKlEi{@hG@M2^xMjJ@BwXU$fho*+KEJQMi?{`spUY z1*!Jg-=YlES4`4>Za6_$S#+|Eqn>yE`b&9tn7h%v2x$^o_&@BucU05a);~Osjt&Yk z${^Ae5R_hoNFSw%QU#<5D4{4-O2813s3?f^-ULKcAT$91X~`f;FH%D2s3f!y0tul7 zlJ|>>C>Kd7-qo^>qK*%@0h4KH0spC1sY>h4tkr=T_z1 zk!KsGr?|jA$M*t&l8EEJoqfm#oQ8}m2H)oss8iOoINbB*20QJ_*DR~0)M1>tnzW@< zU$RuXG%QfTDz|}-q_DgPaVBE>_ zm{k1C>~>p9!Z1W%$Z?<;QKLLZQHak<)ctZS*z>zO6=u7T3$0AqNP6JL^=$-_=S!UX z#1&(g^DhP<%+EkCj|x#uc$3K76N^ToOet~LoD8%I4EMzbSfp2VJ{z&*|1#Fn zyX6V;_s?Qyri@XGg)9~pVGGDHp#Ja#*Y0RP5-{=Ugaxxo@Bn@YqRfJahX#%UUb>su!htbV|&E4!E$jamAQHZ*5zzOJZIW6r`R-V}0vakMG$z z>PY^ehUrr|wPX|Ee0TU_iW>zh9QmVp9Vx2hOfkQD&u4#6;S?U;nXcAe1!in<26Nty z&1XFtzp4IUuhDuOq2cLS%{ElSq<-qW{>ajt6)|X<;X7@OMBX9}t@@dQa#YrcQ(J4B z%7?$Z4M0DGr@*93m9uyH{7Z`_>&*_YHy(uou6Xj=)}5NIxwa4@+Y) z%Rarwok_B+=scaROpvYY(!-~yIhZ_vr9~Vjpl*?qzo- z;j+%^F-l8&5>tZV$@L%I17YOJQ)GH?0|k~{qusqpvO(63tBab0jW5c z|AsY4|F)J!RZUR2BBbth?S4>U4VRtFu9PmdOdwSpvh}dnl9FFhA9b~;&_8eGCl$_r z=5#ZDHjjkO&Kwa;0V{y>1udJ=oFy}5W83M^vAKUPi|!hgSwcDv)0iDZ6_|gy)57>W z{4E4@RdhZ*8trztgMQ#7!q>dRVJu)(+Sg;RU zI^N{?P-rzk_u0EKyJL3&3`g5xtGAuUwuO{jz{Tov z%l~dUox$D+xO>ZMr?gXzTqZMH`GdIjvO&FG^}zh8l^H}SgMkD?6uM7^JKeYkj<}%= zg8KJ(Zu)lAmdwc6S__oTQVLU*-?@|hZ;%gpx~q8GZLqB?B{Ed%Lx{ka=#sUr8TIGxD~$1xHibm}a%yJiXg<&_?*lk9 zVBzE@!)(e^*cH?8dJn+w2Y&7zeo+c-(%$1htt0Q$_d45Nwfh4)h(w@&^?2d>T#=abY_?3wC>Jo$g*DN3?2pd-Rx#8ReJ zKrE3>bL-&!gF5hatfPiCuD{^mw-PV|m*$HinjucEp8$Iimna1^DcxS*e|HEi$zlP_ zT0QZtQ|^wD;O9?Lzj0-ywNNmbYm4gaOItXwjXQ#qLF$HTz#5(elMZh5ZBPlR4l=Qs zb$VNq_Wa{S2GH|Vk6Ot)UY3CtKwLOsLpDh}+g9JkJ8``#*;%+gt=PN&j0{=SFL+c- z%&>1h-LHa2Jnx%}u9r4M_w&4TrPH|Tg=l9a6q~(w4Z9&XWBT|Q>4K&l^Ht{_~~_`JkD-#k`@9FttC5b?YN;|8cLRM z03z6%7r>e=q?r9HZAO(0_iLAkH^~folO@}AIbSsUeiUQ*QoWHGVJUJ0gf`YO@v638 z-UhBVBM?K3a6P6u`KhY2Fs{f;HtLBRXU*;eFaVimLgqg7alcw(3t~WjGioNd? z{l9@m`v3^+9!zz=v3K)yWulmN#3}PiUo~*JX@^;9BMcb0u;sdlmz$h4@fI>3RxK97P%5gW;t5S;p!2a zgM4#^f#VL`2p_bYpoZ@owIKix(DUm%o;1yfn-!sQ?}CGY(9*;#vJrv}DdySs+SqD)9` z!7tQhC3Z|}N@41l)-}xV8A1&|?5))OWfF1QILUeRfMe$2x5qsr-qk9HtAEh|$4XzI zOYg1Af#G&L-FbhkTdDBrci{#M(J?95Q!xwfo!TRSDhf_Cu*iQf-`bkbT#MJMZaXhF zIa6aWvEFcsG9xA(kAnx^1f~?h~98zH#*G*YDpQ&+|Wjf9}zo z`7e0;J9)_2@c3MJ&|<8X*n|w3zI;%5eSnTH*5pgxYh-h}bh}$^qse67LFg!Za{DOqoTRtPt+@J6Fe;%^tUJXL?iyXc{w9r5S!j7+ z3g+~>BGdC#6-OzBVJ?5icqk=y&-efW0#=(dL3h zPS#nAHq#`L?G-$o0GR~l>Pg31BHc^2;${xTVDu1V%wkebErm)UZ_q>dw?7J|B;-;GjHBAmINmb@{wOzWA1$>N5m~1zrntOEYjZ#dB&sM*m$Q!`DWv!50@3g*e)NSL`j|0Abo` zEXS@h*wapTY&%O3BDD_3DO?q)Zi9@(?I3B64!h}Xl@hj#cZC1$ZF1dW&>sPUG?w9Qmab7xVon!0nmcKd36CR4^kGHW2Ibjd>D0%IUOHy2Q%i4Y$r`P@=uD_^*>e;)MA0JV6E)odetU2T^>}-`!71(O6 zR)F!~;`lg1ULSiORk{gpJfz*N0TWqeB%TpQZ^GO%xiD6jG+)?!$Kl9N#RXCdkKO7x zW|%_jg)t@tM)O*#aYe*4J54>cssmW#GZ`Tl2gNSR#5UDCtDn-E0qS0^a8zMuHKSA( z@1(g}zXV2yUqAn~H86$yotU|vUI>0Rv`f`_>pgoLFoMqVu(D@P{o=bCN|^&|M@x^j zC~{*8S`NoOVyYH4S~4~>)&X63nPx)s9vh4`p>b5Ffgb7SA1>czd{qzWQQc&y5-ivf z5%Vvps8J7ZTzw-)Vcm*|giXWrh&rV_Xy)(40G+LK&Q8UAI_c3cb>UpPo4IvE%9Sqfu z70OC&D8b+m+EKxD|5e9bB{;J>QlGYdK>(IzSmu?=x*8*fmOQP>cnw{V7MS1_fSD{whuN~uj!O_h zKHYg3~ZsV9>LW492okk&mD96;D?L*8A;Kwe9Be4Ra!mBPxS7DCXYe z>$?`Vy<3etcNC@=1BrL6@w;&jd5b#X>pcOCO`{KOrJfVy6C!Jh*keAv`2y!T18|QCi!;Ck0 zf`TxoH22HosFurtr_V-huVYLN{fqc_F;gV<$REW9J5L-l)G zsuq$h4O34FuD4x-lJx!X%*{;$XdBM8?GQSkdW~TRB;3X&Fl%X-@kNs*wCd4u@CC)y z2Z_X}*`cn_e`*iMB|{SSgYaNbIX0oVVDtr6@r`wtnL2IPOOfPkfp`lz&{EKP18Mglx}2}iYBL>TtZn|}ODoXP0L#|V%G zw2yxkBKrwC6SeLz<&I{C8%J)YlM71^WT`1{;N6mUy031wPx>0?yM+(_zR~U=nR{8a zIUy66wla=uCg-JxUnVNObna-C?lD-hnKYxnQa>^Zl^JT`MJuJ0ZvFDXG~`d`6FV~> zPXPoO^kN{P*^ct8$3d(RrzV|UhetqrnXt66dc4oZCn@%}2=wiSF^#R%`p=W4@iNzB z`9#duA~%hzbpZqCLUHk72R*}LG~`}?MF)@lg$@>teXCz_9UjVXm>iLlvUbs5`ejgA z6Gf}^EuxtQ^zhH0+pd``#4snV#v}dog{-YU4msL%8)l9BWuV8(ONda(K+J?Y?ko87 z?W!B&>Tmcam2Pzfc8{q~C`Po_%rqxF&)yu!uisP@@|%GmWoS?QbhjW}l4BsG7HuVI zW@n=2L!_2saJu4*JMu5%_?g6(4d zm(Us$4$R|K3S@1bDw*@XBv`qli^91ojBB?%!C4d zl-zf=|D}9X>7vD!|6qdrN>54$>5yP@TcCF=^PG3I$2j`3OVO~97ITu#cQdLG|BxAw zRKIl@)V^vb?B>qRPcjB5*!RUrFH6y0OSP~B%i@d_5v(~VvVjKFEadTXPweZdY4aFc z?=Go^_VX52eQQ8qExyWl!qs)Tw((l}#n+pnGuTD%{KXJzuEPP^XhAPJgo1^Q!)NJh z1|o<2qNQ&9CfvZvyrW9YXc;Y~T6H5}xAy*M?1H*3U#NUz>^Uao9n^0R#TIHyV}v#! z=oC8*q0-+JrNFr7pRzLFIYJi;3kD||Ibd1Hi=@`5_kA%|HNtsWOmLYVCi+l6fX+4;*W z96$F4g|%{XbY;|kVsmk~R%*%^-c-t@P`u<@s^P%oBO5zEud86fZkX5cZX(;=EZz}O zE~R+GrL&O1_olQvrV%m4a$UWq;B2?V$TH_<%UPBtig}-$WL_54Y61bf8S-v9faqjg zFTA6ORX6~ptP{>{}SWd#c7+dM|Ql>=YPSC>E!?A1Vz|#6De%SU7*KW%+ zm(uA%uYwN3nT~%Sk^_jbqbhfs7?^ba%9U}k4++`f_=4=z&O0jD{xLlScO$xvPP1=8 zqpIsl#NEfvm8z+q@qo=ME!)3}0S%G^XCg;oPuffeHpFN@r5p> z%ScNIF?yVFJgfG4ZvB!1uH7evl}_BaLoRe~|Ml0W}@)WQ3HsW3oaxLpbuZmCee(udM2?8?HCnfvl zIH95RXqgIX-#>2Xn=?v`C6=rXncJc!l`Zr?AT#}n{woLyP!YaEN9$}BchBt(E(97Q zF_17FnZifT^KV>x9%cVpnbTZyDGS9cxf7hh2k*X?ro@a}+BRik_#0^d*ta9bS^ujU z8$1aBv2j)YDMOW7BV}*?>P%{&!3*+S<;a(7Z!R2S{Pa|5i?sa=1{fOD9q?uVa=Lmb*;vSWX5lGL4T;e6kAaUBu_|z z!QgTzbsF8wuEi-H9`JK^w8=xf*8K)&|$rtq&nKA^?<=e_^@@;6cb zD2*vtR8)yL2L~M(=Tio|CXHT$roriczP$}Ht;Wgd(}AT>ok2B>mi>55wYAXfB&ylC zasS=;f(wGhhu+ny0e$3le*QqqE~409ztDVFBJd%4uF>R|+fOt9%oBDxQ$Ztm%GU=K zOWJN|8~3TaE_uBkaGR#n(jwN`Bat;OEvU9#7J9Y4G^_Rkf{^G;nebMZB&(8cY>=p- z1P)EBGt8~lLobmrAVaIW1%GII-;QN1lV<`oL#b?VM+jU7@Stzv{N(?W!({K{UTIP$eB1X5z!} zlMKuO=h;GlbJJxvA*pbZgH1804$5XCx?SIRUjEQ?Vx=wO!u5b z`$r{C#3oBrN40JUr?kagj!xk|#GVo}>337~7PnL(Mi3|b=OtgDntH~A zhZIIXS4TpRH>iauj9fOmf%?$H%O|2$)DbeY_lpMM4^5S9n)urysJ+8RTCWBBfD&AU z3H!~KmFxLGpZj3+vHwVUV!^WKc9dJtpI@6`IskxKc%P5-nE zhP%618mPiF#npQD(C&%XgE0Xm2HyC(w28LLw;N@|jS6(N*IL0A8JzY>;Fq0c$MP`c z$XMUj4`r?+tXh?|DBM5Z8*`B)4nWo^}I%-;MiZJ(+I~uk}*1V$c*jM&I<4Nk9j@0L$_QBKj zgITf9PP;KKU}grK?@s4DLz^YlWCz7I@bA^aD)BV&fe40JubLtJ4R_cA?_m4GHFYtJ-{O^uKyUU! zv!pjUZlYd?WX+>|GR~ck%&~F)zTWp5orMi}OIEBtaIbfSJ#SFugL~DPK6sX=(+S;S zQptKy;a*IR&F?y04*qtTD&_Ui=jHk(wk{-FC1c$t&*_={VCpl16ldk7Z_DQobqo1q z-S2c7?Q^MDip!QRRifdPPeTuo@8Ee4w12oK)*fGWieibm|JPm~OPGs^{_N*J)lug( zt*I{Mz1bW>iSrYPTgxifX5bGrQ8cCP&tPDyTJlw}vEUxJrB(+s5d~8%3$bz%ZdLm= z_)4v3yk$(%OCrf>N$E7x~ep9 z`W(d*+OFj(d(0DB)?sone%0B3doZKy9gCf- zXDfewK5UH`{gpHH@uT`Q>1Mvo_55R(OsQOY(#jLJ5Il;8eeZ=EiC{gDqPXzrAM%cCv zbmsO!D6TrWtcL2ZGQl0J#iz=AM00SLZE#mZ+MiS7gJ%&OYy^YV21CddN z(qT7i)^ib~zs^^PB~KOF%ydN=4ysxXDiP;`GyrnmH!B_NSPCslYObAr>%suY7bCh8 zhgh*^k_AT>5A-{4uFTSYsROUYUsQfUhebT2>BN8_RraGZ5t+8P>J}5%Z4Mu zNB)%NLSj7Sz7QXd^VPT1A4i!*Kbw|ukyIPIg+N8#Q&BRG_VlbXKL%=lu;0DIgdb~B zRE8})JXiDh?$@irABt+T4e&Y?9e%t>l&NERcYo;3vtm5p!R~uGaU-Zg>uRv=yx!qD zU!S}&ch8o;UQ9DiEeq0z>o4XsxZ%(g1Ntf;Ed36k8H)WWjQ{4V;H9D@3cBKI8@=0J zN-(wIN~p_(XkhUO-wJ8DjcnTW*l0}m>ctHsZ9UP5y(9C7efUO=WKRm7DUq;MO(yym zH##Z$^}g@>W`2eJ7P{txRb$*r=ADKVAK}3n1*w9?K{Oklq*_CB`po`S_`8qPiO+Jc zCoSLBa8A;#aMb2GfBrKQ-nNlDm-46m2gq_Vq4SBk`5O@;T9D`x!{MNUN-3*w6_ub% zODe&grAOuL$KRSflyvge>-gZIptN_vB2%fCbQnDN+vs9z_`M^~E89@uw7f*^p$L40(4#%GyB*ZDMF1J)y4YW!6 z9S`24Gp(mSfog%Ox8obMCiB|1qlh4;UWrtI%q@jOX7$y-M#IcP+F%(ClRiacc&CMB zNUJ)wn(Z^WTIwr#GbCg!l}iiKZaT1~(3ZMw9Sv|!WP*H&F{fgb^iyF&ZyTHAmlr*+E=Dqs@p!?z;)aw z@ZvGu*3w!?|A!um=is~kOD5*xvrjM-TToO}Ek0+lSN>e}lU8LDZD?9LRQ&GVZ*RRgH{d+k69gAw=R+9_HfhXO z1>cQlQIwPv>114UK*#;Os9+TJ$6*I5`cB9awEZ%T@x?s3cM z9#SxGB9?V?s)BwHMf-6S2M5r4@3Fvkg{u=rlODdcz!2*q#`0P=014^I(|MDxY|ugP zuWXEHYDm_tMrM%hGlyo@S{?4H&3?Pv=NAs7rJ5f4vb36y>WgnpGJStn4`oc}R%Ghl z)O-%K*rKxUoKAp^wTfiL%VC$B{pOx+ne?AI`c+Ec;WxoBxlq*6hOAjY)4zuk!2QIM z|G?_4i6etIrsP)&1lu5Mn$BoTT4g58KoGt8Ns3b2 zzh8@UXF*SYJsyY+lOK_fNkZwA7_j9C4(uI~Q#aLu7$|v9jN#UAil>KBDg_!twg4@wf z;2k0sh`)Be@AS{jcC?(LssXaH1;+L1wOL}XmL zPgr+n+@gAyCF3T)jit>dwy~0of})tE6R+*izRO2zZq0>Gud+~)r|%YA`0wMf0pg!K zoge-R1e<@wVqY{|Bz~yvyYQco{r_Z4;x?ZRLG&_0+ELG2?z)hNDzR=yby zp)4(3s%UVy4(K$C>cy+CJ4?o4FJGf>NBv4TrNMk3Zj~bD81wBDHXi#}!nJKTBZjbA zKp;;VtF)~mA5XA!7?qa6lpE@THa9M2{%P{?(z6|9GC#Qyd!qM51c3Mm4HCkKgugDt z1noFxA=sPD5DK9EMoP8+{_=>62p$#Taa!JxF#-blBd~AlZnp%`1L2WA2LQBq#@~PF zZ|9*MBKbco^2Tmlii!=s7<)7J{S4;Z5h6u<;mB91oOX~~M8({^j66~o^eDhU25^lJ zjIac&T;PmnXF1ANzP`mJ=4hAoNd21-2@=3oeh<7mm=8$I_BK(PN%1>&jv3zU=R zpPfIJ&HSug)WK1v_f_UO!S4Zt>zUNH&cgi35xIu%;D^OU4UvmyTR&4Bo&aH=(CW7% zN-PD8kKXGSm`8T%+Nv+PcCUQS!M3n{;rp$F84(<1(#G!uz8x!t69~v3RjqK96@~#( z_}g6v6%f8tO>btU*i)5opOvdG^E(a`* zNr9u7Edf=R*XHD^;&|F2haafSC^;(oq$}y@jBx?}=cs^6ucfzd&{q}j;>j|>nbgTG`&-?kZq{2>GFmb@l z)}?__G&&ghoLS$JM4-k5?dZBSn4G<~aP5hM{i0z^2UKuwC9BrX&z`JbTA;PKhL#Z- zNQ;R7JaWJ=oG$$Jl4cS#ryDM>1}`2TR_MDmIU@=gv5N-pH+D;8Y?hJ}Kn?nMe1aH$ z&Q;X%`Fsy@Es%rK40_Dx|3O2>tg>|@Lhb6yW()i!Y-gDQSlylRX*OddI=s{L-CEx1 z$#`X@?Np8B`oZHvr>R>7$$<`+DbNVhRgK$8!Q%BUmk(sEznU5!F<{(_Mx1@SqxBrHjHliJkej!$#VPN_6jmjIGPafUsZ z(>;nSThqnUOtxH^);@xJXIUw_HrK+4prR)>*Yz&zxgscKuuB{hPG5%}N}8BG)ZpXB zmrD-BKFRGjygn0LjGMe2QgcIHRb^zP>eH}mR~4@}MbkUEM|0i~u(Hlk4akWKKcBzz9GS@(m&;>-M7Y6~GVQRL_&%dzPJ(mWdj6_kG)ucpO7{8%=N+b zdAHt+^2EwnXqlaJ$>&kPjvRyW1GrqOoYQBVjI4Q1{MRro-k8%eAEjJNS%%0{@cV0k zDR6{2T2I?zvyWMK#hj_cX)l_h@W|h)8M&(lvO;!s(YNH9M^lDEWJH1(M#=T*> zh3SD9e&mhwtd&8l7w?*=Gwuu9RC`5MY&V%r3v1ct({)~FQt<0bGXKnDszl7GN6yf1 z;CLY^bbhgecQpFeLPZrR9a+1uF*euhxmOfEKt|BRule`haiS+#M)MAjuB3wM&&!uy zk#b`^BhC-R5xUasofEEAcaBthWJQLKcJ{C}PwRBpin}H4bUcov@qw4T{8IRvAKx>D z`nSu$tEno@qqUk{;udBx$&fCYJN1)K5*zpd6iv(J{Y+lTV~-3}EyYaB_hX)h)B#;q zY#8C)-ciFF>Po>5N3>}1n(;Zz6&4N*0)PgSw0GVzz*3`b=A%}6(LG+ljYa0;_s8B@`+%&5Oh8*YC6?fLRW|o1Tqi7h^Gg8PTuANWmjbs2;?Gtj<#;6T)wBmduY77 zzrJSTIS9Q}8vT~H1dgbSZd2)sLPHGhL}|>hcDyJ0o;fEy>~XWS1zx<3wRX++oJadH zwjTLsEczws=k6M_b{-hB-jy84=YA#~v@jLarO>#Y1MzVGgJX2DNVwjG&a-g-O3K;{ zyp)B^)`hb%o?3s(Cfd`lynlJ^WlI=j1ovCrL^LktWf6SAiT}KM0&YyDgtDgh)xn4- zs82(9P|2T0XhV&CG|)m42xC1`RmW>eZjvTmmYIFJ@L~}?}Spp#SIfFvpzX5 z|1n6Atw|CUPNoa%vd8V68VwfzTKF98vX4ET50yTuRpCS$`!R*|*6GsRQs zE&F0fB$JYa*8=K;MW{+v>^kvfCxGM`^Po~X1P}9{aL7QWggaoq`&~P4*I9GgjB|{} zjrisWTZg#b8KsW&N?v@jszB^060JSm<=|mpu`P{#YG5*mGx0p7Wr5!ho_x?}fEocQ ztD~t=1t2X&L}r)gRb?vL#@P{~JMXvPt@@Ix+>f68m=ZawxPShN@o43$UXYo}?9-5E zp5$18+?Lw;i&y@#EbzrpH+R|oV0gb_S2nCmp^NV(KX||LRU`kyB{qH3TSjH2#Xd$e zFyDGjJq@E27!Yx5aPZRK3_(X6KL+*q@w9-dZJl%1GM*EOSF7xL-@J@4BrL{!b(BuE z!a9j(^)n_jRVF8rU&C+vkNI#=U>J-{xo20aeVQCN`x>n&K+7U#I|I|UIyCuDVZn~) zjU)2rdJs-`4;o4TdlGf$T`TbC!`&L2=IQ@s3LTAnM7+{YP2UKeu6LS& zh8oQ)g|a2BAgE@m0shBPWqMOp0tN28MbRxk*P&Ymj#s!nRdT3i#a*@gG!-;j4T0ld zd8RkB4SaYLl~Pu9AawqyGUM(^<&ST4lr6$yZpeq3>Cv*>saSO#bqQ+IN5*%=%NFJ(C3{78X2Y8f6W*}sGB!_Nbsdcwn0mrJ>7Bm>uZ|{O{c?1Nj*Wp!!1(aW?rl_3 z;nfWAiWQC_vg<>c4Gz&~)M1#ZArsG+H_RHQ)83f6|K3$M&W2rw3_~kB=oO`-A^wCXpZY{5t73;ttz$qI& z)x3E@3l0ot8Y@=WR>z6>VzBD^srlL2GmXS0In1SZcOdTVyeJnn^6?6tX1I9EkSRfY zGB$1UCic^DQ0)M%zHz-zqdB#Z1w0)9;cW_?Uqbj@T@856+GP@#RM2aYnOUtGX^jgA z>*YRP7VQ~cXbz?Y@t`cXe5SS;y@Y91a{xNv*?lvTSg{}YuuMVQ2BX0uJDI@AI)g>n z?T2IZKVQW$>OV3Fly?cdJS}QiNsdHPL=I0HU#0g2JFknIeyKxJkn}%DYBlLD6eUEH zp9hitz^8~2Nd^hgQ{ud6ukGBCzcUvHEUOyC^%xu39ofwH4yj4Kp90jIXX?x=zPZ0& z-j=K#__Ejq(Tg7CSz1YV^+%5WB%01u$BQE2)VO1$$vtSa7x~n)kBI3BK~-b5{oQLt z^Is(HwT23C1_4_PRCi4|xBf&yZvUXq*Sqo}b_e@WOptEyA5&`vp|}0AGh`oo<68DQ zAfWVitO%zfGH#`H(nG>rDz`G^B}Et+#mz0)Q}AT!!)lpb3q@r*A~7b0msY7Lz#2me zupgfc&=~jbF;kt7YLyE$+(1N_0QZ19%M?5itXJS(nJ*`o@$$vCpFtcYlNFl^P4~!G zK?`D=OzfV`ocl;DzlhP|)Z#qxC2rbzYpQ^O<)(_S1+3*9S^KfVJwQR2aR$>eMs0j+ z<5q=nOfR^)VWfo<c_ zeP@i1z9ei$RW?&H0GH`C7o!QQ%bqQYR~^ca)Qee3`#ze~e+!;^0jzUe^;^l)Rr7 zXA}yIwn^T!bOq;(LRTOdu}FA#+NW)$62fWvxrVAi8E(7zTXlns(_Z-{ldsNCP_x!r z_Z;9m(GwkARYjBovMjcL`HohS*~4!5h_>^(CN0lz3}4O)cQB@Z6nEQt&-nyXT(6*) z7q0Ub7JjiKpuKWcnb$4iJRK^E(W)HXe%VihNQ{=;yjJ(V*%XN)N-Z-UeUY~b7c>T{ zn)?1jO=~max`*@H$ z4qAkbu$r#{ua?&mKWZNK>H_D}hhLIvfFW-)VS6z>yUMTXJkvccU*(r#R%;wn7Byf} z;^!YF#yCDK);_yb?{g|EkDa4=5K`3{);VMT0*+ap z`i!(rGLMqNmZ5PI&nL!RwO9FSbc+Y?aUs0VtEc)}}gn z#+PI~DmX(=aBm^-lYiUzcwnuPbx=~=mm%bny`gEEDrDqlVr^U7yNm0?f-k=#?;!g zVA2mII(sA{CIMiv1g1aN?~}K=N<2NUYBu#xa0&p4?qW7L;*xZ&OME_PpZ^W}X#-3eS4Z*=e0f22C_{Y#n`%Xa5@U0}!1 zP^!m7eNE|d)8C-z8?m4MyFdQUhWmnB|L2##aRdLi(r{|fCFM3U8+)dvrsUCq&z6}Q zX{oYxteX{HhgPF9z+xTynR^orIX7?GofstS_N1dc1TqUxrM6E7>?FEkHu-?8fZVry zbQQYZFx0X%$yp+MR^KLUFzHzKnsY|3DbIGGW1T^3baPK~-Nww2ha z;;U?rwK2TYPkHmJXd!OR>iK?<85d&u%(_x0a(D^jTAE3Ltac~8c{f!z-h+Y-y*6<$ zgS0;lGG!tE;@h>XJ!^bNAMKC;_-gQX(#n=@Z>+0_xx^>;mIH#c*uN68!`b~#GzI8D zoU9h4>`&tTq)~^2hihu5_28?=(tJLG<)^k~S_QX8E>o5r;Q9#iT`oKrvw1(5vYkO- zXHvz}Ha0SxH_9!_-El@{O27Yek|bZU)O{f{R#3TR}4*3 z^hY9IcR%};N4Cm~@T$NA%aImFfep36aEQiBxc+pe#f zcv*U@X6#OrZ_R2Rl~7OZNzq}Skjl;F#S>B-l$=A7N{*vUG2EYj!&2Zl#YsaC<#1vy&t*_8u7YN%NyCknQ@5a(XnaJ2-z z=~hEawk6a}HvG|j4qVln88~t3@-a;joC7kXGfUlex(8#XDIh+t`fY=9vgXufV`@=d;P=#KzpQn z2Lxhmy=rvO+a&J}eX&fDnJ0eHl2)(&5D1z*S#h6s|B!U-`v|U%bVYak#!Pk!Y11Hj ze*+I{I;BFM72C``V-({}+-tCuvYTiBdRoW!Zyei6@Bg&07n9x%L`xd+bb{KB+M1{#~?U6%4}{7&tBTw zLo$hGM#?(fYE%R8YYj@PuBzd{$iE*(gT~9 ze^6Pm$xz5}OUr&L-u8NYp(F#xn~uL2;$?}|tt zeEd}Abe?Iyh@INedW`^ovni}^8pm*H==>SqOz82al|3ibEsw~qnX#8wgSq+@%7rjF zw<<)kD50)~8Dph=?LvhsdkwRM*PDJ{L*FfAzvbcWah3^MHKzBajBQkf@kRV_hXFBF zW;3>CG*do(x?x@J6n-sW*x3a#ABd*%*GxsLIuY8Fny;&`e+(f!;4qSHSsW^BO0-Z= zEE1DaY4jFrZNpx9ynQ)+imR%1AEtwEcIyy$%!EyJN{pBd!qpyDkMZNQyxo0K8Lqi% zfXHCkqq9q>7It6gXsfO@?s3JsvYJbH$9sQyvaUb=tUfJ;HDN;@ZUGynEnj)%J#FAF z(5WVLPEA^4|Dm(W1CO(-HG{W_LW0{jsX7S|qPE6{ew=&BEw5J}z{V;C8$zc5-dCs9 zoj3hk=G=QB9$9>&BLM}HUWqJhgULB6s6s1np(X!c{3lUfl%=5KOzF!bZv1@5vsUGz zHf`v3kOQMalf5HnJ-gbOqB(IY&{UfLPZ1yP(Dr{$A@_} zoG=rozkau>R%#^j;X8-@s&-)vUv7mXD=8*)mDGWfYp@B_S0v$rNu%%WN11I<{^$ihx^^pu3UhLZil-p%a-X)OqITL-=VetQ2Q_0>01 z=`vTY0Cy@rN5$2B>TYq0&FKB4{M_8UeWgt;TjEEiuu`lRtrq}(9M2Ou2<3E_+raH4 zHyq!PS3W=+dsoeydlvCzy1!Ma7<2is(TNoWAPSY-WzGRWmSx(6Uyr)WLlnXRr7>Y? znQ!mktJ7>^SL4)@ zvS3Kddh^EC%-;9C0Lllkpz2(DoQ}B|g!iuEL?!o*oL8f8l>TJLj+EVI)l@B2 zJ(ZIk4lu~SF`vwUEQn>QxLe}?hN!f_> zsINVN8oWv-hvo2WOPkSCUSIziK^gi;!{ciNGOour&${K?B&@XI-tA+WKmXymOYjZ> zlhkf@^G@sUYVQp|doAS5yNLMZ%;}8KHR>i_Gx*&)Sh!rNb4JQ$}RF{M73q@s0!u1?osKD@c6m5Rj)tpX|?-w zy*AM3tjzM#-_NcwpvCC2RZ^>VIfb6REdTd~`=`6_>#j?z+Eo;~{p@V>^EONo`;&pA zD_KdLuTOOOeQ=lKzVPkzg0Hv!T#c!Sc|3jp&W|TQKbY=N9vdjcd-Z}%#x>*GcQLQ6 z-eh|j9?Xvw{`}|YMcCq2aG7_u>gt;kId5nhUfB&y!@w1Vz2OfdF7QlQ^qXhm$N0}X z`jU45WBvHHTqXG*4JSZjOMkzf?G>~CJ@bV1J;hJi`^_>pq%8za)gK96RST>GgGC{W zT74oGN}Z2adv5y4_0Er;Cp+9~*Pd!iy|(2?*Odn~f}6KQuHU{Yv+%BSf4z}11f z-mZ=py}5C5Wr16loO3;BCyg>>Ck*+la^Rdltr)c&J4QW=*q!CJzr1gn8*0R&d)1()AhnyhOoowVBb^OCJurvDA^JvyrN ze2y~kwA_Q=SInzkcfy(9w7e?FE&AEUpsgpSu2cl=nQ_cG?$^(I&I_e?1zIV+W&W*Y zD`qVPHhIm}R;_cp`ab0Dmdwd}zFhJK78~nL`m^-e1I(~Fq^I&Vu;&69g@W#-LLG&= z!2ine@9m3UB@*qO?1d4no;2V}rJGx;{Xb8&2lW%Dt$Bai%;mDwl8=usO<~k%f>k6( zAZObv!~>UFvERBR4_wKWb-&Nn*3GsHz2kXSV&Se`Tf{R#Yb>+oD=-S-9)Gy9UH0(% k*tdUo2RnZ<4RQTvZ{;-cP);1zWKigOy85}Sb4q9e0N_7JnE(I) literal 13816 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 MqJ6LM?&FaE1M_TZLI3~& diff --git a/docs/docs/assets/images/admin/import.png b/docs/docs/assets/images/admin/import.png deleted file mode 100644 index 74901c3b256dfacb51040450e92c1b3050105c03..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 27524 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

3;UbGH<4?2^e#m8p)N5;>a|=J`VtXf~{vo6`dlM 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Μelvi21UJ*#@75WouJ^{+(c6v00*WVg*x1zJN#$ngTDM6x!3$Dpv7vP~jfzOapc_qy{sRUb-}6QJ}ys51RrB z`}hElw(`!fhv`%yqqQ@+4%%DANf&jZfvw$u!?RToD3;2&kw^UjZyQBTaWJ~h_U-fC ztg~=Hu%0DWW3FcX5kK1v*)Jf(tZlmwm<`^ZQsCb^oVPAw@70#H7{Uk@TFxD zVcv&>BiQfU2~KPbP{l&$Q~}C3qQlTct=2$Ej^2F16t_VOb2>4^$-wYw0G;Az3l$If z`JDM$p!J<}cZS#`$?(Df`(Mb3AwlGu(~+K;>;jven_v~zNN^R zyOa@(MOQS8T8@tVRoj=y+UMYbv)yQeM3)eRKE89Mbc-+R@x_*ck8`l+r_mCZ@g8!{(Z2^#)VS+rIbxOymDK&UU1Pqwpso!i^J*zjkj)L1?+>V z@LFzn6m&}cy7ewx^2n}mmoEHvek><*A9}J4&eUHTE~-V?nsv?O?%AYXn&ygMq_yd< z=-)AN9aGbx;iJl?#{1N2e~Aj~5PX2Wh#l^K9v7JTOZmpnp3y4*Ft=1q@&dn|GvfB2kG`kVQK+*dV+T-(huY+mnSi?EBafdu1` zm1)p;m#$p8FqbRb;bO`PM25diTLPZ7Pjc54-2YYL==5eJ{ zczs7~rq$W!`Z!LVjRA;=S8&z~cVRPQ?JL4{&YiFfH+Xz(_1(AjIj;3;r_4r^_jOuI z!55Hx4zN}6IinE6YhFn4**$JdD~V*!k98x5* z(i*z`%74g|U5{iAh3Cx6HhX&Z%BLs0WCAKPm$8Z&Bm^2R+1&JB_YE5tgXD8>q3uT= z0`7eaZr#4?xMQWw!sCWF!V@<0SM?~Vzxk-(jo^;$hr{h>&lW7adk&IYA4XQ;?AW_Z zMs_8tR1^fWoc+xUc~U=3J*g0x`>!`g$Bt#>S|{`(vxXa z7Lt)=+y{ubJ}_P3-J4q+*@|K8!rosKM10V-r~4gdeBd+y$NuoYVWk92*=wTThPC6= zN`q)eSf1FEWU|oBpHshem~~&j-!d%f0>_GFZ8nm)oO-A@(xi3iw^+)xx;tQXP}oz8 z{2tOw3EjMi^<5wV88N2bKCL@Dg`0vux|6oI)iE$|DWbi+eZqV+VlzF;VUNFJpg~mg z!d!cDss@;Nwem6>*+HBmq%3UU!Il>e)wGm3Z1*O4&-r3sytBN#DM$%(=*Y|ZEQ$cY zy?~SVvZ);&k}3Jgb6C<#`_<0zXNw1M86zC44}DA%h%1Qw#;gVA-zKOag$W1VwQUZ0 zrUZ29@E0%YqOjcGg!eYzzBGREH2Sjxp7mkGo?2r}tfOro!n!xj5)xcClK3$af|^@e z&S}uV#P&N5hC3JZ!9CmzFBc_#+}Zh9%h~a1AwSOEL+&yi*jLs{J;2ocOH| z?_Z*QB&)1NV`GfIxow|AS^762h#QXjHhc}<8|uu!P}=6HQJ>+d_S5UEY}el-*i$xM zm?&E57f`thmQX;J@~u0TXMm#25b~65pa=~N*>7fH8{+eRC(y`Z`i{zNQ;C!&Oq$pU z?52}ur#t&he^fT$ct7RE&x&?E;^AE*AiHRJqOA^%- zqiib5zPR%(Jrt%Vkzks@Vkx*lmmq+Iq`&2;;MVc@R4yfq2DrRAyD>R}$q0=KN|NR{ zqjb{bXE5onK8BGJ_5eQa;F!muugy8*cJG=OkPlBP+Zsd{O4%V(RcF#}4KqHVS7qUT z+-*@mO3F7nOBDgFHOdhj@8_19)I$1X>X%nS60T31oO_Cf+H>i(j;ILVXqqO*7 z#6*Icw(Bjv2Qq3)p^qFfMO{)TrYI-6{qt&z!b_5SbEkDnrMQ5u{6qLm3v#Z`%6EB+V)WB!W8j*diFxtfC6lC}l5IbHgLvLmU4pBxQEje^w?4zJINpn-wvG3}K@ zY1p-tOz@f7nLKtQjt^AH3&@*{Noo@-7mX4H!YrbweX<61`9&N(OMI}(lZ zZ6Fqpd{%cfdETxK0*SN3w{8Skbsihl4~dDF@xlYcJT`tBmv#{)eD{LEnG8(>dsD;b z5zvL?=jVB{7oRUz>7cS4Mwcuw=2$J!k*s?2mb>j9Whb-4bI3vaylm9>d)*nSX|)ZE zzm$G?GC=xhC#AG3~#fh={TUFZV7J20q4x+8u>*muzPa0YJds`iw?0}KF`9QPQk zI}k~XN;9?&95VHFbFSaL(=6y$$fo7NsVNQ{c+wEjXPYkgu(4-~KGWD;A{_rE^`^Xg zQ4&Gw4PAY`bpw=MO=yvT3yu(8g{j*fWb;Xz5Z#nTml#mm)uk)Vmc8X6Smv#n2Ss?; z%zW|IOVC?s`_ET|Llj)!`J#orZ5du?xP;SCQ%=y%+8T2^yMw3IP86oqfpceGc!?Bi zUspjM-*YGZ1Wj~bM|-dj$?iQOG5XqjviC8jhApe<=Cdz|(uToU>` zhRwc7K8S%kQqw2!k4wRz!J+sz?yk&(7@c!yC^ufrR&6wMMbWUFdTfidS$Y!bU{T>4 zl?v$W^l!t{HizE5Nz0!TZQ7*_!QLwS?ku_qjc6;T(c~9tQQ7q+Od z8kW;AuIU}!uG>>CexeFIM1K$r0eag5MO9KVHax1LsARGj99T5=1{6CbKg%~~_Z8Gh z$=66G3QQ;zss_v~TFN_Y6a^3fs7bmGw;&~Q>-}DligZ=S()0zoNYM<&>O^!5@93J}6j^KiIG}`@lx$h)4-|cz4f5&6b9c}?p{Tf#iUeSUSHa(rc zpJbBM23Q|1w~LJk8@F%^KWBUW3y!jx`7Dl;^Xv+>gL&PvWue=yrmdN(QE}fs% z>M-6}7KMzcPv||UVOl@(gTKv0J}5uASN|d0vV@pJ{s%E1J1X8|rlH3d-Zazvp|`w2 z<<%(DjF^MB>Q6gQocQ8r7Z2^qdm(tSZ0oytf7*(yr#qg!F!oD(Oq8cI=1F(z_^`d% z6NKlavaW(aKcack@9Rxz`6Z>KlW>Vzr=zvImQf&pe{c$=mIo4_*=eb?GtYS1t=G)v z5p}S*xZ4ZXcZIusJJFoj6Ri1zL-_!6F!EnvOA~Q1s9z!$zoF~qzdj#@)Bx!xV+kc0 z=xci_+xB~wo!q8t2TBcX4E_olUk;~Brs+7v+46sE5LSP%ciSAqyngiqVVqoSX}p~2 zRR{;y1+$8T|8W6>+O{p<;Xge#`+wx5e!f`KQ}n+N=@VV?>w5eI!-s-0S7|8KduFS5 z(J6rKg#p~5Cc92K_<~63jWfT`W}a0>bX`WhX2!CJpYfNjuVl{XFFiHg=^+ez+MR5| zg}NIOBm2rPO1T;+CcBVwl_8O-4h{9X!r&)XTLU9LyuU^){6 zKB%!fyu6~3+K-=xkUkiFZynJAs2P0qEN_G*aOcEB=9?+6Ce=*?M+?Jg9+RTRIa!M| z>n&FzbTU&+Th2(iS9DQ(HpHrPFZT#O(23S%(0W?2Vd5&h)-L?`zDZy>tNZkr#^oHs z@|rv8fg(9l(zl?P1zt=E>3WYozsvr&C#30D&jGoaEsiOb;+Swi^G5rlHmW$*2GP>f zB=vo|DA(y%26URDWXWyn+?6m1r7K)c^ukSf`#$2Ik{BXzbZfQX(dx^s*@1B@ZfFsR z&z}W?QyKXoqmT;7aH1=A7>2%og7ajSF99}>czVpV?g21}8sNHX9RI&(I)t-fX zNaLU_`oP4%(G#8KuaTyQ(1RJ;L?;A75JGsaN>JcNi97H_$cgn?$V0i;VY;FC^hg~b zp?}H_bvdwXFqF_T0TjId=SQ}wnvKa zmvsVMy;=+zYfh@)t8(VETDdonJKm~;*vP0TWd0CL{JFmfE6|2YwX2^7OSo)WB}x^4 zPq(`)TD-H~z7ek7wk}8$fV$dsRG|!+-DAY?BCHI*u3C1uHB+1$MYF`Ko%!2g6ZmqD z{GJ`;A_KBV=&4#7xtZpB`3Io{vsfL;?6r5owelX=gwk5TflYDCN?7JL*6k~q@7b!{ zv1d%=Oqak?dXI&-`-SfH*|wjp&Jmm^*0x8=`9Q@l)sheQF08{`>Hg$^g5Tt|=CL}ljRQLi5%l{lD*Z~7Lt_UlhYeh1d2 zg&#_^Vv{W696AUga^8xqN@y1bGnpaE$+Fms+U6s@Ha;$$P%GTYW5aJV7v6Io7_G)i zj#AomTR`Tn2Gk@rdvDoP4+xuwteG(%H`hL=HuRRhi<$f4Pz#W4%YWrK^ixb=mo56N z7H0wtt8^5h9EtB5!u9Jd;>I19tVr?Z)h&_rF#lE38wNt`ST@^^8wpsl>KHMZNf^n1 z0?Of`LdS?{$>Qv6t;w_U?%Qqaj>yD54*GIf?-O>Z0;(&;@&sSykxCBrkfZ%YlD>#% zdER#nNU?ih>Nlb@V`tKv%&yBX2t3Uh-F6oa*$o|*-k3lKzq#m~E7*?iJ>o4ek1L^_WvaCTFW+1ywLHbV7eFM^igQ@g` za+U8sf*_*r&ThW1WBkTXoXMQpG&(P3jZ407Gue8fXCdkT@UyYXs$3~DlkZdszlz1f zOSgP#IgXsxz()0uJdlMK&V0p?R7|oO)%xrfIR=4~FvrvKyUJ_A`76qpcXbzHOH;aV znYQ(3RAGwmbYt6RJ{nB*sLEh!rfO;kBN4~Jh1U-SNLx9A2T?UF_j`5-iZa}VQDH-E({yeFE=A3sa7ZPKf^Jp#!dNAXhGZ)j zLH{!4$a2j-jtW1|?m0r*9O5-ou3eB@w0b=+FzN3S!Dmbg1bF}G*!CJTK71M3>^R;7 zVV#QvRp3L&@9a%z=BM|P&Q2Ap#NlqqM_4g7w?_!SuY&)xQlb7eY^QzS(kg$Lthl5! zc^)`$Qh{sZ#S&hq+jryD!+rDk6gG!_FXVIsWae?SVkN->)({&q$|6Dz0EQsv;0N`M zs?4fKV$wmh;G%f@FC&J;H?6n&gcNOh7t>(ru|nZW{4Q>~_+St!DR^vgc#%VAv!ng_ zpsH)JqkRRdXo>?XlA_*Slne&7&onzuo_Hkr=-*6BidJ#-cd4f+$N@Vn+0;fjB>nxpcoEs+nd$xj=#JC3ma)k4$n{U`%W80EbvdAFdt5Q*XH~xL+T*dV;ZXiNj4-GGS+br zE5;f`cnuUt*Q{6)_&g4`YFAI_l$Ige#jcoWyd3o*v(YF~7W~zvb;0%^pC9NEO z7EiM-GRXr~91`>me~_=oQe&rWsUlQA@oF4|y7?>(A_@0l#`*3{zR6X`Y_6C`eRPJ>Pu~x>pq>P#ia={_*T;;aKxh7MX#y+Z5^N9VyNcKHt{<0cG#LLJbIAv8+xByq^S(}R1rm!>zai)S!f~os zZrgVC9&^3SF3(VaT1>KjyBIw_fTc$rf^OvVERwcd!O=h8oCBE86tct@PRsGYV&#F8IJQr z-}Lj7MXfa5%tq)B?MCPA+u%`dL0f~<&{XUEBN}YMf`Mlxe>j&RN;79C*OqUEVRXqpnNjcgqy2L?5bX=#>vrgqy^k6t|#TqPT!U+4~D{xJ66kG&(X0E)CI#il=<6?hlSac zZUyUkI;YXE#NZ~pw@ZzE3|L-oFT(hBzSrjQH%=Yd<&u126_9Znl2nf~>ZbLg1LxdE zgIW$;Y7#46WJ1X!IgNw->|?PTrQ)!hCBcEvm>sn45liQZSJIHY5t7~mlBCZ0<;pZB zPURAN4Iw&}`IZ}@bMUugekN%^#9f_+zqEJj@N}L<%mO(mxJ~%>OY`FL+7eE7|6=l z^JSq{PE=;fBHzKm99K%N;l_?liLax(u3u8=eUkmBr0<&@no0WvBTxs8CVTS(HX96m z`AAbdInrmawksw3WR}9zlhJ2k-@Y1VEU1vH2%i>ewrQ#?e{cWtHHvcf3iPPByUd{x~);6lEn_PYL4b}r$3}BxUZYa=4H-WLlt`+5q+w&U)zs~ztEvba@BKb zb(UZH+q%?P?)&1=-4CUr!54kiJur}4Ip%13`^B8fS23M-hA3ebJ2b`WXyVCA*i~0s zVSs|G%D-t4?+MoY!$o4<-!Ysx2hNqLsJw%|4&5f^bQDtOOuu0o)z=BeX+q^b(&id{ zQB<44+=W2IXUL|iW&Y!`*;*B`0EobCCQEjAl|+K&sX-ZhjTr)DXm69fZYL7TkBMJ= zop&GYuCPXk7m-c>Jb>iey&smiP0adNJ7za@ntF|&k5p{6{bSaSZ3fMVkBG8oY^FII zW6?LMDL_zwNWeM~rsZk6YrXGTPc!$~e5A`btX9Ra6B7zai;%Xpp=IiPwkeS7kN7@g zd2?`4b+`d3LdtRAgb!l>B3d!|Xj)4Vk%JS}7Z?*2DN^9NqQq{j)_H{;m?^uX%38W;!^6827i?8-&}s6e~8 zsC;D>_z#_PfXF|b@o(jUzd28AxJ|HA%;XQEQ21Y2&rCf@?M`e~+g)qb;*U`tYSakq?DhS9&9#3gsuFi|C6# zm%)uXyJ82qn5ofwAo6f_L&bORLyc?UVZ^V7EmTTe3fEy}tW3DwTOIHe7 z?@BORW#BqOmIU)$oK?qgq5&8suj7;>UA=^?Sru7mi2i3bMsD=GNz8dTsCEptGje8y6$;1xa(a>30))5$i~8*l+&b9KR9#7 ze9+4=`d8)wPtz4!ErWd3nbqKEV@OFU9p)00u^u(EalIfgBO>VL$Ssw&@}r>Gq3~B7 z>$PxcNX!;I+A*BiDP(4TCFyuT#96yXWhsG3b@y2|He=2Rh4p zCM>R@RRCQs>7Ac-_0>Xd3$g3Aw-+t{awDDf_JF6-TA@h%NKg@n-=Pdmrr3?!+*+r> zFwDBqj&t$iPGFAKMs!Ra=B}ivB0dq*hss6cHF*gK%l_t_14RUMCCU%Irf)9#aF|LuJ3U2EWePmgpJ((?So*3ncQNr+b&xfpp(KtD`1{pR9JUZ335o^)_e|c zK*M8zS>OPF{SAIDWVj|5CkjdC{+>X#6Ahmh(V^fB zE|hU*3V8GnM&qZin;P>!Up-%>P zoBqUy{Bh5+pwOap*Xmz(1K{D*E>C#rr)!A?2UF`v3Wp6U?&Cr#1JH+&{&4?Wt~j zkgaX94Ec-3&?^;79}5cPKuYVP{?yH<@BVeV+TAXQX6t#f`a$s}-c2Q|eV(C^CNj_L z;sqJ8!g7BM&Yy=-K8kEwN4ns<&12{`QC@*6+BcxpBT*6M? zsN)%?NcGJ8xOh+g`2Z&x4w@o+g_2#$SWiSX9r%I2AX*&XAU+YD`2@P_f8C*C_@*%O zpRZ(}!<>c=H=aWhJAu%naIeeI)aY>8qQHVU8RI+nI%8+rd%h7k*NBni-0a_J;?s&Z zYsHCPrEavwFvlimI4X8pHd+3)nm4(?kv#Bk9LhHZ7DkCPppk>EIlV$BTS0fhVB=oK zT@;eMu-~+O{=H&4V~UW+2o(R=$6r|F0T@bY{9xhY!;ZT>oPMRbg5zH{-{SvYh==2k{Gmlw++PV7t34I3_s;9*mLKYam$=?!JF&=&-WQOt!cg@q*5WDb+ zFcr%WO5;rOMc|w~724>sFLRLk@;C(l1AwyGeY@JCxVl^JK?q)BEPW;~h*8qOU5A=L z@NWzV3E3s_DtYeZ5pYV;yn`$g;dSQcI_C)&#k^=|`7F8vctSRN?kDL-TbzUvJjoXaka zTpU3MA39?}2c#Y9wA2ugjF1`$a^yQ$ii@gGzSllN53gr13%dOl|78riHYJQGI1?7U z^uln-HPn2tpW7lvF=5JnOnguZ2!Au4H#9c*=Pt% zMVf@m=}FELOH84w?_lJ*_)`2+Mi2;|-SAC>kL~d8$KJe-({&*s-rqx=CvNf7l~O5F zq}W7dGo13e2)<{k@ks(iV|Kl_v0x+QChic~KfuVwG^bN2c|Py^p7%WOKl}p;zu$e|SHG_B-LSga zJeG+gPwsGn_PCZQ23Hs2xA-BKB3t8LIpsQBc9EBFq@4Jh_Wbi(-v_%7m9PGjlFQkB z=>FL)0e@eD;|G4L1OGREJ%7)t@-AQva6O$z%oDfBxd@5Pb>84$_ri7*FbTUC5*}f1mYSZI$r+q~`XYx1reDYa z>k<*6=loFn{jz+775e+XnI7Z64=w(;TFhT<)jy5(_Y+Mn7+JU<_-7=-?&R;H!s!3M zo9O?4lvDe^jW3Ac=G93^nj|yNZ0F7YVIj{Iu@1>f1?Pt2w;YE)&3=iJH$o}E)a#5B zS(X3KxQV;3?axA<563^r97*1PYZREboeP-GepYG{^c%9oY|vg@@LVSiJ_39p?xX9P z-?Fj_VwOvzA-!fSqUnV)lZ*fI(bK=>t^6N@sffBcOGPLt(OAxx2CBMj#>fu)h%_sH zMDXMK`iPy9e#_uEY4XkT&p*t}XAE-Yul=e1w>+2K8@^KQDE3)6#7xm{4h-2fZ@PA>Fwf*khrM-_8$2$4W|AH?I{$1>$FTY2W zPQuH7iwe4H{pVxG|6c9!pFToq?qAT>GGA_p^@L zdUNW(z|da*;f(*o^OMZ~{B_R!*RNB4p+%pSoyz#&yv!lGDtj}8VrYLlxqF}f7&eXN z4gZQ;AmIj}>ESppvy7__%?7$H* zKAzf(3D!#-3!aCWR9mpfb5oeM$B!bli|_u62Xsa`Qs=-m{0b**e!L+m1+Hm>E#+g$ z>3c17A&$tY-EkL3wM+)c#4jdYjL43MWnEa+z?*Ou%t5uKg>CI|;|omc+}g3{*5x(- z)y|oLqTePnp3etYmGKL}sI9mq^;}bKUB$datV6-nW#qeH*IVo*zD2GVPajTP9{4>l zOn&jVoVp#AHM>8YYm?R!X8L#}^Io#S4jv76j5~@nIW=m?78OagZcOQ7`q0k__By%M z%s5u-$W;wK7exO>Hr4Bdk}vu3$0apuFP<80{g;!n(a-f{_waDfgu%wZ_t- zK*`NG8YuSxpENJ}Ex_;fCqOi)4EzM@eL8$L-;&ZvkvvN(Fo>|IZ8)NTg}v($9lmQu z-zSwR3;Lf!4-4NyPwJTDUJyxsRigBZXW~%DDl?UR8A<{cQL}>XoQncevRH zlk|6@vM&Bk*DEYINz@gs_O1XcU{EVefM8#R9nqd@j%40 zV^%QSf2!0#++GH|E^2#jW zp&r$DE_;4sfld}gFYkWqBPSmN#)C3P!ratp(}vSsO4FZRzs7RBRBJ8rwD z?dqHP){M7RK^@n2`)XdvX4(*t;hG~U>m!7txz3u7drdZ`l>SNam@bifm*aU6t(Ex; zw-HP$9E=&J%3(UPC=+|Ngox`A_K%U93Y(xITu53ZF>H$Yo;0{@pSPdi4?XegKb`y8 z-4vMcQI57fJ&=3;GcyHrAJmkK&a{`W5v4~JUf#cX8hL@>VT#qiTz#*Gf&C}XQ48dj zuPX`8baJnl z|K{XKU9NiCaUc-pLwBjrf15y>ebhDkhevoOMTryT@P zhELe_xtV2nOv~MoUL&f1nJcEN;x3aOZfRsuSBaqs`}BWV+IKxK6E^KIYds;1TqsZ8 zu^&dZvpo!{_1`G!eY_MKL(Q$f6N$EeKHmjvBO1zmJAZ7~Pk$%a)tZ^734nq=RKSz2CV@5EHFy8BZ&Suvk6D%%RZbC;M(N>pb{ zky79d%v@Mj<{HO<6J6jT>Tm-!vc`ya?+W_|VD6@Ob{#&=pytzte!d9Ns$YQ?w;5YSut%5LUXR*T z`S$ns&p7LHD*g~wyw5x0Eaa~DQd!r>rG+n>*Uyj!7YKIoGRV$&f>U^ZC%CEnX(JgPJz*V0;aYHs44vp}F^^rpi}+rMQ%AwNc5XAW!+}Y|*55#8}%tfjh=JF8~wvB@1=9O!_Q=1u ztAlu-auXqhc+kSuk7s?3=M-#QWqY5~s4+?i4>umP&Fz)#^e5cSI-R}zVd3YWDugz! zhaKG^9umdE@XLLo2rm@1Xcxa}#$MQ;dg^A9E2Mi~yKGN$qP`#dYmtK|2C}Wp0^y<% zyKVRC!Jz{I7)6$Dnw2WytVX4IrD;y6#14-AeD;XBsNpX$!h}H#?0&RL9LI)`;K43B zLr<+MU!m$!{l#ctJ!tjiYF;l2GR4HrFAknahXirKeM$Itz(lGx6%m6fu>J}-v?t)g zTLSm}w#4=WJE<#&;r_K}xR*|jYzm_j(g&9MZxO&TQVRg9Lc=c@lSQtH-BICh8-xAP z2Qsr^Z2H7`{5L(G0bB1UDAp>~K|DUPQ@Ka7`y~x7Z_%ov)fo@9){C5^vzsPmHmPyfG#*XXYqmdP)7(BBim& zMfYA1@N9LBv{vLqAy{zSX3tFn-f~=#@5}2`yB9vDEi{Gd-VN(y=11PZMr88}PXFZV zUc@)TVP;hZyW4vCWZ0!k6J<9B7y#vL06uZ)3o(;7?!zciIsfq&o%=q+1?cK%nRnJs zInDSB!IaSjYv$Z{VYqLCr##Nz_m+6)o=2{262}*{Uta&n)QwgvKV}M)?d?QsJLo$e zdPhvpB?F6iJ;sF$Y^xY}1zIm?vBWU2fTgT&@aCA5tbU_qkJ6XVG1iUH;Cms&7-ZO| zXR}{Y0|soW05S2sa8#AgIG4iPw@%%h>Dfo!bofA8F7ESGyX5|cJnDX3`Yfd@Mz>b_ ztm8a1O1nFb-?MSsNiTx@eacmb&A)1LXUH5typ{FptGbSf*Mn}Px?h|IXGEr0+vR!* zf@`R==SGdJ3k$=O&xT#3bv`tljG2C0es2;n^{!eafmUu&jYZR}ra z-aX8bt`wl}*XJ3!4h`Gfqgf_+?(3|-oAq%iuYvZp;X>1N$3A=l`%A38D7pLBH{oaR zk8?ZCj8zyH^Xx2Wk>@gap+M?OFZP9osHYUACr{12a6n zNjEfsMt|Fkt}>p(g4TRR3fCQEONyd zLsDqa0+yK3=y1WRn36y5ZB?3Ehf9J$I>Dqc%cf504pse+B@a)H+E3OKh|$or8q*zt zCo4#H``yG3K{3;cMGByi=8+YuD3M2JuYYR7gW>qMRf4z8&#pedCR>iP$n&$Kqdbvt zAzZ-zsrzB#kqSBU-GY55{AsP(=T&j!$A#JEQfkphY`a{rnsd~ze|2xDG!IK%wOCWkv@AlgIMkF^S2C}Yej3f?N}_E& zJ?Om|{)-9jYpw@vIgT;hp3ime_1C(J7lZ8O*Hay%y@cr(OewdfEqfL#knHY7Sgfl8 zTyyKWTe^eo%WRDiMZ=R? z^;_YS-6DRCUolzc+5wc@g!H_|Xj*0a5=YSYxxhSa{}8AA>{?87EvnKT7pnwi&(qdU z0ljT;loEl~1Y07f@u>S^W@StASI&v&ty$gC=yT<1NloPWBIz@&{n-nsOQEKP>@IiT z!+#>>MXKf+7%|8Gmp}su(Z7*UFMs$y5r7KU=G8I$C@y*Qd-cLb&TzM8zbVCKXV>&f zWkwWjPist1Pv18lpj2P$Qo#33jd0$Ai6xn5EQCs%Yd1f3%0*5^ZH&KJg`}6{c5}b; z18{7lr(qoj<`SK!om@KXYLxC@hFY+<%1C+6#hR)uktsDb>7NVvwgsnTY%i~uh+huX zk*&ah4broQ9(*bL+2lxnEL@RWpOJxh_F@ z*T$V*OCw%Bc4zJ5E54N7fY%giw$-xRhWi?3mbW|Z73vZY@rUHr+3~Vb=d8mm1-22R zsMQ0*LQ);N49ncT0Qj1!svy@)KO$=OOq2oiA;az$1$K1?D3BtcA->cPIzOt|)F%H_ zOyXUt%(Ve{n1fYE%YpWhGXNLOoV+`3+8uyoF@Xd*&C%tdQ>x_FXBqkFoEd+2oZw9b z{6p2g)+8^5~%?kh4nMGzq#M`Q;&VUTGW~NJ) zbD6!7vfOrl$36NE9MI)AoA7jv5oD|BCCtvS?77^D$G%N2U%1r<0=O1gdyFi)%NoC* z6YvX zMEJ}WTJl#G09v{n(m??{Sz;DCDnBGX&$z5I_gS-RhfenMYZtg+H2PGTDZl!e`JOVF zKlFR*00mB6;Q&gn9`#OD)qpJ*N%;V7q?^UR#VFKod&m=^HZ50 zs)7LY7^Tb11DL?RuT6DZOC5kSYtvQ3$>osr!8>tlX;(PjQdiZ{fO+@oRL%E`zu*$B zQfvBvFv8k3@`O8Nx`67`za!7~zFT|RK^8x+6^T4PunfOgCi#>|>fSV|+~P6THQ7N@ zP6&4G;XUpta5n~?R8L7idGtjH)sNHBVM#;L2bSmPp3(5~?uZm+>bl&zW)A;{8C3vi zZhjHwRq&yhwIf|C1coo7xfFhpeTc#zw$TKK6x0NvlWG$&)Pba0`R9<(ptwO!{x-}% zl%5PlrPUf3kS%4*&2$B{f^|^Q4o2O$wxyHfcS6yAd=Fln-FL3emw9711 z$IqHr_NC@vSjtScudQRb{T9>IG`+*$&brC%tu1%6E{hg|+WtW#1h{~Ic(sc_@!DTJ zFzbOch5G(e10#03^tBpbS1k5Sq-MC*7)f$P#Xc*!!M(V=l)oW6R{)^UQl9C+qkRCq zjIcT;)8^A6s@gX)HT(~o*y47_)6%2NLh5ax8LDs`=`nPQXtf_>o7)cf=cw)w=NjWC^HU7DJQb*Do^`ClfM@oAQXNb`w~5u~U-f49=!a-xZS_Ywe2m zCzkq^bIn;54qIp~9OFB+wfs*h(EA%O*7pW)pH74smN%^4iw5^QRdP)=?fUpQ>Y8-O zQyTy?=zqL0oE5D*3coTHj9kwRW*jC-Z!B`Kgy}u4sMxmb-eqaqUR(5!%HtW}6CWZn z%J$W?M`NG99`7!Vf%j(Rw+;+_`i}O#Yu*892o;D3AD+!Dm#oKpPQ#U6O7~2lM&W#kw>n}zk_J+&GKOy$0^LbW$6IY!*K}iC-%3@N zZax8$X_(XSmh?FN#5^Eq!CTSWM5M|>_8zI)qp0=9+u+t`UBln<^oPszmq?6{i?sH> zi8(>AAzf2#W;p@?yRfGh?|3C}nl)oP#Cb!hL2cTajK%jKxURru4;%7hs%j!-p9vsU zL6F39hfLmL$JxnF2VRU4*3P>NwAx;^`zH;-YFbn$o|#;hjUvRIo|i(L0sMukh}l63m9kr4{9O9UN~kifE5x9yU!wrWc1K zlF-}pmi=?yE%~s%3&w@TVHUCGN$Qt01hmCOJ~o>x4* z-449AUfo98$!Q_&P10S_OSV9{PUq|<_fVPu5t+%I3sG^VyF@ACs=V20xcQ?UB z8=6eteP0N3-m`z*&eTg9A+#L3rE_o%Eue*^D$6~3LNGRQ0|g6TKi*y{dE(Z)XZJ6y zt)CLw+RQ1Uu??mtI88OE+ZXLk8l?8zph11O@1bqbWpKdVn}BMK)%W7O=_k!w`=aau z?dtAlWgnWh&HGt;%ig8?#UavT-Sj->rTn#~nyD1TZ{*Ca$8z+mJ=#>yZ7gw1($!pr zt-@@PK~mY zl>9i4_pDb^NLsriuIna$ z;2M~rV9O$aLyh}dGq&6vxs<222>r-w@z*hPg)Ge>bYHTiXOVIwjJ?0F#RkU6#)k8* z<{>BVwB&Ka<70#y9y^3vT@?=19zhsrBLqoV`pUp)bnM?n5i96n>` zmwA@5wD0%v&_7_H1>=_3S_dTHluq?tg2rSCH?U8*d2U4$oymXXVX5kR#0+53pNBD% zAMeoaPW$9NHTuoVuapCGLEPYh2;>6vveC9pxpr;4ifdQ@LJAuni=|Z8lzXnwG`Htf zrqoVqZ6deFS``V)18IIb2`?EYcU|>g%&-N8)?I1>GgH?8vh9gn@V{-pM%CIQZ;hWr z1+(d*O-(W5-fo^UYO6E3{38}uSdXwcOurw0Y1f@SlTCgh&Lfyw|Iw0>pg|}h@Y;@R zG~gD6RD6t=&PB}eW-I4Kg&El+pYv}46GMzQL&f|t;)C-|Fv!!7^0D_>FHSvBB%&r# z?s$+|u7vr(^2aJP%W}!#?8mnr(cAv6M(|&*(U}33z$gHS`X|`j(}{(zj@@TGXD`JZ z)vs4y>nC!kCtk(J@RLOgbmV*_P4|8C50wY$e_84PqxRig5@fs49(8WQjj8D8PN4Nt>dxqWK%bDF0j_1fyitRJquSrH(? z-A&XEfP@-+NCiyDYa`EvXMJ1Vov~YgO;-@1%abo0o;kj2OrHZSH^N8COs6<3-;V6B zp{~p7NNKYVs~;;Q=MYx*T-bOI)d_d58c`d^3<>y-b{6A|OQrLlx2oN94G_QhYgm>3 z!{lg0taaV}3DTFUctK2vASTQhS%%$GijCG};|m6#?hGp=+PQt+DUzz&1~3D+;Q{5H zA=4O~0U*XAnkwo{uT2gxevAb~QXC=?jswl^;?}dTR^3a*sQrBO4~3_Pdy($Ph-vt> zf*2u2SzTyDjX`gb3wB{rIqezE+O}>)<8DEn<7e~;jl;3icUB_&3X%J z2BuHN1kIB|Npl1j>@Xc;l+-RyV~kO~eOf(VDX-+Ok!A=!W z5B>Qmd8(6Fbod6gZ0FxMtQ+#&c2jUDW97?| zTWWrM9RK>svf~Hn=R-*D^s@s48Ijef5*FZ>Mn+$rS^==(kGLII6V)~)_XuNK}rc27(@Hr**=UcOXJY02}*pr!g?wobrCL>AVyz`eh zP{-HB6{>p~AH@kXdqk13iiyLPle^X%E#=>FthCHCO`S8uB|tp4c-!@OK!)uaGiT+i zLks)tr4Ko|?I&u|n`o82$839al!O*0e6^dyuQJlcW+%ZMTNyGZ+q`?)#cHj(TqXF* zDT=_D+oTYtEh)$ z@Hs1s-0b5Pv6jv z>OPRfutS#E(R^r;gZ;PQG4fY`StC-#q44L0$7KPU@0%b;w^(*Jf5?7Df=_U-Zd!JD z+}1jAkh|@4{*xKPNh@F=zz}BUne42Xi$q2M87j8ELS=a`r!XA%2l9(iC);^IS?QQL)4#70Oaro`L{k}<*ox*xr8h12awWE@e}DA zZVvpqyOinG8C+duvCwUu;+*1LdoDR`u@=M%r@(759cEa~oPL66e^-_THR((YU>{)n+f*y!Oz1Xb+i}G)$GA|95em*7Es(d`PuS)_Ukgv{Rw0R1I1B3yQ9AWxR8-lf zj3c%Nv`>E&JU7-)6f|g-aUID92lrwDtWcNxE=EP`JLe?zxnIcr!<=KVLfTA^_alc3 z?c<5lkT$Ul57K<|){&M3yotwxR5#RKL*xBh)3FZb`>YkyZ*Rk7BZ+VDg=Yjf*|V@o<#_CZiBJ+5f5bE^+(Y?sIll zcVGTx_~$@K$PF#8F6`;L4e=cdy$K2M`j21Vy8PJ={%)Z5?w`CO0Y$`9CQmtZcSs03 zT=c$eyBD~216~-vQ^~tmfq{|K{g8q(hT$6km6-AnTA_R`5>!`pT7Le5pWgbPy!BkV zoZp%Nl)SZ6QIWS-N`y0;e$oSIex(nuR5rtdm5)BC1P?`+jlT>bTu%F+X^#BIRZ;dh zpqqKU(Qj`9wXOsDBIPWyzVo-OkblYjZO72v|E9Y~lOwiWAg3UKX5_ZAfOy-y_@xYY zZc`0eKC}k@%E~G-)e|Y-C!M#`dTUpj6DHfCxwLjoi(YM)O9dwW8x~dIelTPRtIS(f zkFoi7hKuf;%nBD;`iwd%)2&biH?aQo1|w*Hb${U?v#v=p^Rsmzb1rq7XbGo*z~2T>2fyz zb~FEiVDG%J31q4Ixt9MZ0x_hPwZ+dAP-%%(G*C zj$WAM_BFvfsj=zP=klpb)~GG*iaq9~|6UH?Pk zBysUDH+wJX)4cbP@?nT2BlVrVzYZ}L&|2*lI3%!}jD6podAl=HmL)vMiN;HqW7%$e z;mD#QDh+W|#8F+t7Q;Q3^mUbZ`BHp)2$@woR#;ocQBRO8H!UHC@E^@~ZA4f~paVx$ z8I5A60rt9FeH{cAh)h|DosLmTWVgkjwvA}e$U7yZyl~JfPJHy0QWxj4FvzJ-93DxX z99X#9`eX%x9G1UxEiP5Cir9!0;r17feQ4gX9a!Rrn;F&f8PS{HX|m75us0bMR$-?J zkq>V&1esZ)5MDt8|J9;C+wg{sS}5U(Lr?ntFseA{prW^`o*wk$DACi(hkn!Mh$5AT zj^a(z>{5)$8FOPD&#(uD3w^z4l2;i%^5zHem_j%5Nn)oKfWCszfjH`4Xp*^lu za^Jf7ZrAsPAII)M?sqM{B%WGT)npDslmZ5|nvF)#WO=J|0|~o=Qd1K+3ihIXJYNQ~ z78*YK#J6c`BfO+t3%zuP=lK=>YsZhItFKyvk0*ZWdeLkUI`Z@L=pB)Ak45Ks5v!Pi ztO!dNZED@GkpzT7M08=Z*N|p8vPP}mD9O>wEmR&{>EveDlEK!jPS~Ouj8rmRIh^Eo zRaVa8&)tqbLuS$Z$J5(18pYTM){^6ya!evz_WayqhE-4L;0B$NigEJ2N@%pZ!pl0A zG?bRqIF528mHTiM6vj658}mZ+)5JQrh(nq`_wLvH4ohwYePSn5JT>2tn1hvs{RqHC zP{)s)ZTMDR&oHKO23z_9PQ=jEekvqK|8>i2(4S4${~?iyGDi@?o}^AK1d(Gy9dW&p z3vJ0ltvq`TEFNn)6^5tEl>=LQv3Gm(Vle}z*d^$k%WE0*U~%TM1N43(J9)|@H5fl! zWZ(H*Cdii0JtX*~ACcsTtJGIjVR}Jo+MDI>1;sar0M$|oTdPRA*Vx7iNu_}Lb#Cbc zI>Yr-ijc+#zLSiVbr?~R-~n#VXP{gVbiCa_%(Bx@4F}FI5!+)8j~TE~?JHx|OGxIA zqX!Q>hJFG=>!4~%hHE&(nBrWfoG_ih%Y7}}r0vtcQ*p1t_-b(D-VtoBsw17a&qmEe9JdD8(6<63!v z$O;DbAU?0r({O%~t2^I4(loi9r#)5cQRMV&VdOA+%{;U)8ITnxk5YLo4;3HUxyf{W zz=?qXewp&Vq8%wK%W*e6$?mq|J3!A3sH4*UT;Ay;eadP>29U~CJ%O+xu^5!l*Pshg zgzO>{9nzMx$qCkq_%VI`q*V)qe2{HO)Bo;8wT~;>{bHwI<`)xejAFdKtO2$xRa7?w zxgS|~JD*AKi9SpIQDi>+7|C(g-x22&>_$lRmlUq?ZPK7=usi_9KHcP1TSy|dPEa2+ z8Yf-Z+|q$>9^&y+y^SGC2Br2Ls|U?`0Cz7^_8p>lR>wlT9u`Ly0DSz#!vkzfGY*mx zFJ)i{@q*)EiqLY>yw~zjZS&;nh>PW&X>t2@hcR-yAiN0qqiq6-+|{Jy6weHKda<3UORl`4DI8Zaq5TE*+2gN)qu}Ere`r>t#@l18CFN1CgZkpUiH;Eo)jCKos01wvikpPSsQNJt zpdRm9Fm?5?mD2#Goq=|1Ok8;7IM`?e3cK$VR!JV-m<7L4)NfiS}Q@#AFB zbU~#)LK+RXXWUkbfs3MmORaquUT7ZgKnk6EB?ds%FH8GC--~r{FD6N?*EBL{6pU`H z;|fnT%toZYA{HJ>r2gR*r%|pcd&YyVjNl|)$94231*y^luk>K(UDVu`km5zf1omFR zp#V206scbMtyQmrv;#_ZMT7}GZb+snLdDF}*=k(BF`G<_;IvDtX|mLAcenj?3vhnt zVbb!ujKnt+mhxB~bzh>6N7T17GWaviT*vHlq&wzTNZsUeH;yC3xqs=@G`M6}P)Jif zrd|}F4u)g#o^{PiXC7ZbOC2WU%<4h!3uT>J$rr%G?0#I z#=5BSBZpL;OTf%&v3YTITzU2z;u9a*`m2*iD9|sA(Si%dPuu_0NLIYA1PUXK=3uqy zA5$=2ufZ|j4Ek10WaMr(iwv23HU=#)apM*%4%Rl`19Ud>Jxb=)x`(&gyWS!N19(a3 zBBCpaJ8cg#b3$wR@OfccF@bj|-5CQxBNcN;SN9=dNH^ss{8=l(W@p_4{S7T&T}Y+E zP|k>oCSCicPQ^Z?6tlK5BF^ho3RBVer$4Dot6>F)_L~K$S>omdovb1bueVvBks}JP z&Ui&n>tLZBL+57y+!;hzkn>6H(q=cL(503KRD}*tG_8asEb$$0nVtorxOV)nEyf*}h z3Z>XDody!e|7KUSkCS+maZ|p1!l^paDwsY1e^Q-=$~62a-_M)P-u z;@B;#-xH5j`3!+94(8eJF&^5QZ_Ksv}yzaLZxv8)z{>fGkZ&mu3E<2lX6)SnE2#AV&$`wWX*)wJM1F;1OMB95)6)0d5={RkbI zLi-bixT|u{=~%}48MfQ9-IYhIO40r8tO`BDA$!;NOcFOIvf5$uvi;Gb*oqg02PI`> z<@1HkN6}{p8ajDBkGdYyIFPBBe%bR}A&NIP$Pq zskdjYt}dn}S|1nVWH(E<(HP+N@Qbti-1w`RdiXx=rESghGmE|zp^szAN zjQt4^1}rKyZwxP835MgrX-&nJPRGfxyw?Yx+`wL3G`gy<;J@KBpHcU+QSR8=EK5q=37WZ1RmH>tA+C!2{l z9ilfbcsbQl>G1YKHIwdxg{d_^UsGxVG|tSG z;SQ{iY~_DX{;HI=H>aT};tR#`6+7&`&|U(k=J=-BSyHh=B?m5n1&<3c#1T8@_0;SS z+}a+@@e0vO+Q$(l?c1kDL&@QqyvQ7eU;6fd21P8g`L@%imlf$T!`h>j-JPDdUDw{C z*)bef@ew~?h`#<@WW)L-x3w(tJ&ft?0-;~g?T)uL$XHw0*?FyRLkVi%*4VIs*tl0U zqXQ5tF~5_m-&9XJHo|(=3mGg!@?}NxgwjebOQoz~V02oQ<=lERcH2IreY(q8wF{!J zzLTx^@hCZA8lC56k=2R_?oAFZN`!yJkF%Wu))yipg&4+Eh&#^tO@bLXxFHjx1dE>3 z1W`$jII(w8=E&KQN&J~^Yl>xbl<3lu;n94)7!=iadL@AA*_zI~>o~8Kz7}A>mVXG* ze->~CilqJNf#Ft|Vf%Jh-^Nr;KW6Fm5)M+kdj28ude=c1whcy8325B2u6W_mfVW-O z?kwbZB|8q($v>`WLV>->b|kl*N<(})H(G3ekEq$L#RO?U>s=?|ewoDCfUXN*6Nc+rTuZBb!Urdwkwnj`3rroV>6R`pCuh-W_d*YeB{tFXo2Y1s5AQ5j@M8-B+vP(|KG+e%iH<`gtdT&Mj`;_ozlsXW+! zh4Th}cz5l|cgP`Ya*A2DUwnpLgLzSyW%{h4ne_ay@676`51eUSL6wUedFt5g!*;nX z#6x(ZW0$3*nqcX!RxWk>a$0}-q}Yj?a+-ZwcLuskZcb2ew`zE6G$djD9Bb9nW#;L# zbZAWQ)lVfK>n?VB^Mz$`A*D&0fSBiytjsWoo1&@ZuO%#tv~!e(<4%+j|HjBAIky}kTk?K0|Pl=ZdwsbokL8(FY-)wf|S+s?k%qDL%I_`(b=L-dF*`7 z3Y0`IW6y?qi0YB(45JU_I!R-QQmURV5KtF+p!O_v$qcR>FI zVq_ECUta-z$E9>7tZIWSX}Ws#KG+@K2EF^&=&i@mDWt`kWkN}5U{e~D^eQCtl;Wy} z9n|f(>pBHm4mF2rXN-eSJc+3pgT(t@+|&?Hpv2?)0QZX*kw-#lHcMvpj+?WKAmA6%42R&U5@FSh{)$nRrnzJ(Fgr1DVY$d{WQ88mwO(5;E=I90jyNXi*jCc_=HO5|e|X$gifNOSzS(r=b}Mg_kj z)tza^!*(sdpb_t0x`=HQ#^89g zg&@NdZ7=DiF2gBB&Glf#x|wX}LMV~D3N`D5EZ};_ebnYYWxp?a)RLpCtSyD|HM4gk zZ*!4n(IX!n-X{2WdKbTBIE{7OreEg2v^48uqK63_9xQJBd z`Lnfo?Hj2HIdR>&H#Cvg-HnFhUn|oqSS5}3-E7~5 zeIB7r{Lk(GQ6drR-BK{)G?huMZwvqu_kOgZ{ID+FVsP_w1hi!G&w7DA;SCDpC}fo| zIK-6q%&g#7%dTS1=kIl~Avqap%-K^l=;?+{X^xo8=FRGb#L&d8l!-I+E|lozYJy{* z*5>^c{xNUn%?SU7R==!4lSN( zyE_OF>J8b|Juf5ytgxcK^!?;QS9;bq@{g z;*}X36W!*nalrT6LC!UrTvl3tGg_Gr7ZofRWpK0H9R(a_Hpy=r4Xo?Us35fQ8xpip zk-H6Vjwf);gwC*!(y=CPZKGn?E>+8no4Tqg>4stcA@WH)yoP#V65PH$vXeS;s)6-A zw=lO++Cmqhm)P?Vag4uNdf;mN;68~_aDl>}WtezA z@}9V!^i!-^C|eAOdLOH!p!%6cw6ItZXZh3*=OJl^_LEqUyhIiqTy`n({BSQB`Hl}% z{>=>?gh-8WIVwCa@`X1)_we{*9kzh?j30Q?_ugL35*zhvw14>D!?P&H>==SJ<&?U7 zfk%OZ72Q{aOD`slXLD0De-mrGZz2_$$b-HRJ7r8wBK#Its1GEW4aY3D?xk)N^ElPO z{Yx=b&%MX!`M>z>pc6GgE?l?ZU@a}phA5X6~Q>UFn|P{|In#&ku# zN>Z&qrkSd=BtWH4R6*k;;IfNp5C++K2ti&wDW5(qM%D^sk(!tSy%>kt`YD-&h@=Gs zTQv^`x*B%d>RMTg`EB|W!zzB`@1IVCD@OvwkJ~u&>)&_#9Ityv4td>Xz{qc-4s+_~ zXd#>R_*im5Uuesr^*qpCkiPGb+qLb^Tc2}11;I#_%wj0*axec`)wQSD7u+%RsACz) zd`x@vuzJRFD1K0gz6F7_{h(aKRPqdCU7omAtDF|cr+JqW9|bDg7d59G?>1UOA*t+3 zQx%5S5J6@Aa40dLlUds6X{nS52TX_R>xRalA{%VQ#0&Lr2>sq@=zGbGYA z3VR-nifM`}giZY30tw^*Y(YU$9OkrNf1aJ^mh|xHZfjo{G<9B{PAypMq*)f)+1+GL zfGb87p(9K+_3t@FoWuG|{o%||u%>kJJsucai!g-hH=h<$KRTg%K4O+k-vALoLSL4q zlaVdePjshvO;sfAsz63`h9B2|g$yklzFsC-3GHr+9?Oxxwg|<4tAel+MG=#C?T=L1&;*U-@lV6=kvOR;r3fEc zfJaiCH97d$6f&+(f5;wT*{!)}%BNT@9r6qsVOa92BWr*LA!YkgvK*97oDSv?_wLh`Rd;ED9!{X zGV*PpU~KJeav_-Jyb`pRXDXo=wA1h~UHnWHs6jVut)9DfblkId9K?pd`BCR3(!{1- z6*nB7vBV2-{+%grsqNW3SV+N)b93Ubd>ol{(QxP<3z(@zHsO=f$ww?$a^Vh8A+5j3@&Qmy483bkRt_WWn0o z1TaVG^omTbBR~!Cc!>v`$SBS)JX^41l1vbZX!f34&BGTYWpaj7pXWz;Dyp2Pol5E< z-fwh8=)u+3%08>hTaL&7bp~gWb?PAjrM831tgP~Ar?-*A<+sphTV6uL z^V~J>71c2`%}{=NbhhH=f)AYTzo~%~W~d--`XRKFK_4aZY^P* z-f;<8qi$>%R}5CBOL&2pD%!eNrL>t+Hw!F=xhf;7UXMrz2eryCmRah?RSp6>xOs1b z(dDsyIj)5^nrBMHn)%DNmj0b*9dXAhDkx=zye+J-z)BNx@>prtBGZYw26qXm9{1xz zlk`#NTIkp!XpVM+)DC1*E0;{rXhCUd7lC`XTl}GfEb>OE*FVYuS(hH{5yy#dyGp?d+^R}{!`F$a|6|uC8k>&CB&@3b-p-uLR!lyZY4#Nc$J2eKRV{bKFXrAUoYC{C-w^{;Wd z0clJSk^6cHAcMdmJ)O|V)jMGwPyeC<6dWLLg2{!K=hr{vcZ3iY{@mz%tseRBp>%?o zlfX62!S4T}?Y*O#+P?i!Jhr0QU+h@*+wEMi- z^A!zz9fL-%tPaAD1nN!{PRS^)bBiCFnyMu3^!qL~8ZsIQaN;!B)jh&%E9_QyF1(M5K88@yVt;vRgro zCLK*S1D&QWz!ZQT&`V7YT|4~%qEGq!bi41CC|&`U;4FO*1I04B8TJ7QlM|kOHYhOu zZP!x-K~hL!TqCT;P$vv5}AJ%KuBfqzvEs?F3$M5Z$J$MGQ3ZH02k`% z%>AkMZzz~bC|sAe{pQ9-N4u7bs6iMZ&@F^pUb389I7sX^3tWW<{;7;6ZO)8xc4*CS$7cW+}hh8+>903J2~uNTD`4= z^LW}pzeG6ia=gZxQuE8%?`mqmk1T<%;C&nRw1dq*2wS;a=x$mWVTTfAtpYn0_C*=3 zC|9o$;@A($sdP%S$PUkuZ25^?)LW_NnfV>N4!CICBV^J3dqh+sc0>EOYEp*I!oS&NAj3d5^@&VXpOFdupF z1dMQDjS<-ySpUBj zM}7ME^Z4I2`I(yU|5JRQ>D~Wz0^!J0|5Z1-1c_cociP{=FqCC#5TS?g*HCk7Mudzqqj(7TgW|9Hq)f)=8F&AMkaK(T z-aDnfTIAP_w@xvN-rP>EdMxW9ar3vY)`uZv0ylHc+%5cv-=3N%sb^AKddo z`u09-e9l}&-gAAycP*{3e(Mz@)2)VVKsIDudt1n1*YT^RfT&e_UVf#4bZ}B+b{T@O zwX=`_Xb(^ePL`jo+kgT01%iVnmsw(E)mKK3*LJM%G0O5YQW#~=-wu)@DZ;Nxm=Upz z{B~@3o{aRb1V&>{Nz%5P2i+Re^!BKO|G-%NTH|mJIpYDN!aZ~88(e2m2$whXb{HwmWh@AYb^V>n%+_pz0OSl9- zwe~iF^=rtg4r*iAIup|3bw!a6xXQac}c=MGWNcg2CwJs2FlE=ZWn~!+M=48+YdkgS>1Y6>r9uSTLK)KM5waG=wFO&&DX! zc1~IHJRAz@vp{|;s#xA%B*Y^gZNL89DE zC~V;jKKT~;!gdNY{bdx%7%EXajyNxXC&NkZ%)7?w>1;#Sb1TN`=&y=ho>#>lMtHmlIHbhey`O_t4H^0l_Q#Ys%l#JH?X~cp>hR zW3UxYnSOuwkFYbWj4jqo>`;@yMYiqccU&#&ROU%&|N4|?u50s5XW|vdsD7?sO)D3i zfbJO(X)0#ip7aypjD5E2?r~8z$k*su-7VQtGx|euxT}9B)OczVaSAWRIkI>A1=X2GAQz_h;$fo;*ON)NH(-fTcapJ7^1CG2bfE5%s_n zeo#`pbM_#kRRG}bDSNawbQjD>+_$t`wssZ*t5B?*6oMI@1_-flwS|~>&j3N( zt5x7v%edO>m)i!~aa_^(;jw}I6690ANAVIp@5d3B64S-^C@)CV{g-Qx!49{m-}L3G z$?l{tZ)z9(=4yAoePtwWwk=e*!AhgOI8zxVV~ajNRd$IUJxHPC;VyLH@v|as8jHEF zAsBrOK1W2E_^1q51UNpuMau?lY>!8!MYatrVC=Tj#+zI&MaYWu##~USyuoPxq*4j? z^;N#rGi8H{F>z|S7;sl2O`MT+C&)}wOM?pY_}GOiS2y@zrWma)n1!PYS7}%Jjm19W zTmoVi;V^-Oo#HWrYBiF=82$KIzR8At9_MDo2L(WmmWCRviT{y}o4ax^-DF+a1BG9) zwIzc9k#CCIViRdu_G#&6JHXiz1VzNdJ*$ygMsHLMnCID8rOWM1gyNfn;x=A7AD020 zB>38PaFO_{EYr6$7b@f^w;ONm5{qd;Pxr=$+JSm*1BzRAY3bbxTV*k;5@ivhM8xf0 z`iDSj$fVk$hX0~EU2M^8FctuZqZfxKCFCovjo}2`NOZnHa@l-T6V?71dUtiRn4aJ^ zJ(+BTnRM6=9-uqY*K#njkYx-q-JA7Aw>Rm|0uaV!Rk-Iw!auF@YuQ#VvO=W?{dN5d zn|=G!TCAbnop~dFsX|(7{eCN9f1#&}Eqxh?+{VRGYAdRYoL5r2bk7x*z12!pSaZsr z0tYeDg#%Bf-mg2YAeDN)iFZ|TC*6wJGulUo1kexjbOvGl(#_{C{B_SWyk(K({wFxy zPNe=v8dh3v^2f4}(5_gx^|kkTI+<;kJ|DB!L0OM?+#R!Z^0 z5>NGp`xFU@>ot>R5ZD(e6sll`@DyrV>+Kqn0Rf2QBP4m*FRho?->TM0f0?=L9&e_b zC!g6=(Mq{4IhOxA;OzyIXXT|gDEy}4TQT(S6Au-$o{|Zn@pds6YB?a8V-lTI=PiJ% ziWB*~0=85~%{1+^u!3zBaX5FaGWhA44eAIhK;b0--zl4Sle%QGXZ-vPbwBq^O)cx{ z{gIg`xnycAaL|Y?jg=blHM##oINzeUa3#tpFm~czoz%Tq+6dcysKGm%{_>A)^Y4`E@X$dS|zS!}Pl58i7->Zp8%xI~KNel)PPS z*W?syN5tw11}Cxtj#K9RI*|QF9ubbVP$`vdLlc}f_s6iTnLWQY399FS4_r_evT>Mt zGb>%Z?^%4!B>RGg)fyMBzxR5##&@0B5|UgF zIEFveRqhi%)M`W2TzMX_Q7U&L7@nF;%}jGNTj3fg$m1h>P4(1>0q;6WpTv>y< zJSO)TDIf+bkGVL$Fj_)=tm@{;d(^`)^4L!UG++mv0GX{WS$!H1fC z72)!=W@~(NC~^$!gU;G*oG=@v6f1>2_~pdF|eE3 z`;1yLKTW<{=pF3Lm#E%OHOuuX3dIpnPIY2VrrQF+@F-@0V8Gl7lTefP%Z}<^P572Q z_ip(m7Q^Q(Kj~4+{aFccg^V$FBddt>lO(Z_pvuN*)^;~JM&oLwb`G*~E3I|hZShK@ zNEQDfXzVV~o`n!qN4;VWF2AUt^jurcS(iqE76k&{#LtyPMN*`_+-~qZ+;bMSpi$t? zD1WlHV|ilvqL^ZUrq9X4Q$Vu+@J+=TZ!*7~_vStY59Fi7Wi_|Ro*CwK&AugB`0^Np z=ceqLIY<-f(x4ymwaKzv2`H02m?lDm1CgPL7P|qDBx4Fh?N>_dcez6?dNAWWPQZbt zCG(xWz1(S$Ec8Y|1UYys_}0t~V8_fr`1W73@=r)<%IAh}zLhSNXxf9UKjT=X!^?-R zBp7|Y)2(V%S0wIt3Lw+eU^m!#i%7Wm9gFfn0GJD^`2Z} z&UoJ0V09KkPZr5(7kl&4+s`if?%$I|l4SP3-GZn0EbmPma&g-VRwBgHgJX9x*xZIo_`-yg9GaqIT{&mp01X*?L|3c~?@)!}`9KWw9Tc z!f$-Zs}oB7Ni8EZ>8)p>Au2Fo<<))bWfB|k;JB&%I_k>vk$TZI?$<#R11Y_z_eD5&Fp9>uDjWlih0Tkn z{D7zJ3>P=1i^%rZDylx}sy+|hC&LxX$U{lpxMHX?du@+j?59N+c+sV`pp%Kid*40~ zs`&Dp5)8h^7uX;dT2J6S#s^4k<5d2W!hpbsZ}!So!ZX#+1>d$e$vq)H37a5J_|~7@ z&gQB>)X(CNufF1p^CUv0Ruu5v-S~v;JvJOq@7_)7{?xa~1hu8(W1%>i718Tk&n7o% z1qwu`9@i&iui|qR&zMn$;D(YV8Oij4GsLE;WH|(5*Jt)8B8B7lNIp?%rqO}&Xiwuk z;;q2qXL4zyyjh$Z!G-B=wmHW%ly#pV{QXQ2>9nR`s!n5P9fD|ubi)G^$uJ4O<2y5w z_nV|9YhJJOu&qX;>_X9p8<^W1L3%4XTqK()>fIiiW8Q3w@z*!U19OCK(eu<;<+!)5@z~|dbWp;7K}k5 zBE^kwg7bHpqVO9locK3T)z}$0@$x8R-a#b++UHD+1}QR|#`k4`)MhGd>yu-{O#&9@ z;Zd(X{W!v8BM1oA89ACdQMGlV0)W^w;FaSwxwm^7*S%ZPRyaK$uRA2R&U+c21d2F4ShN%FTvfcWMa|iPN~eq9Gg?Nr7o# z4SVVov%kYXtXFt$_>QSWBqc+1Ak=8>(FH=EE>CV|K_SqVo{d~krY1tj&|u>J>K^qt z0Ln%W310n3hMC`T%U0fC(1g~qQmFLv+kMX_0OyZTDnA4qIY%{t&bEAlxb>#0okS?e zRqBL5cD<1N3V$preAmkBgU}EA&E%n3Fzn4}(?T7$Daz5_Rd_bs@g$l6MjazFuj>TE zkS!ThCfOn-^1U2_79`o1P~e~ZD(DLWJV)UHlXNm^=H_Jjr;txV0|HW#PXg(G z5XQgk0=pA=*N+_MLGK?Wvl=5Vf9au3^#{2vCR!}Z>%#L;Dd;(L;tP%AZ%C2R;o`pC z#mb^fH&}3#7-4EZsUB}2W3F7mmuxQ1ub%qDG5y_8fN=6(wJp3lOR{|?cG?e*lUp`O zAlA-=sBeAN61FcKonMe!HL8sI8z`CUL8F^wIyz%)^G;y7;`!il*<*LG>XG>6rkn^u zz9P3?+^$82i;1Lfi5BQU z`sX6ZqYj8#zSO2Thf3_5#;#uQ;VJLi6(-7CDwLt-$YDQf*)&fkZ2-n#qznbAMK|}v zT*+76!`ro214Kk*8u{8&%R8i(swKZ*qZizD0!DB&CJ@pSQed}J&Y>{ z<3-pA$Hx{$6?Yze@fFSuW6+-W-?S$cTmDNJK>)j{YQj^**A2T-GL>$Ri-O`Y|4pq~ zK&D$HC{M3JO+AJtj4qO4E+BXu5I6NEXVB?3OXa#fEz(tor7n7(gH<$@hk7{Smt z-L})&it7ThI7L^l(U1Pgp%SRx4%H2QJX6Wgtszou>Eh;iEV9JO+8EUm9}Py~hwe2|Y;mmO ziL#Q?IWalX&pke_aSxUUtk0q(TjP^;YxDbf`lr1d?S}xR){xmt1*fKP-Sp8W_H0}GDz<==bD zAj;Bp%9J{Isd-|XkM-+VYhp=_Fp$S(-mjB6Y~LmN%X-H&z6qn;Uy9`r5#_L*_#GRVDT}=1mmC>WHJ97u$re zv>XdvjE+~5Ur;*4*~I@Dd(fkrTMSZ^?$dr96E4eYe{1UsCj=AFb`+HWImM} zL|;Y6C+z}|LQ#@^5|D-@mjYkPIs0+id3UY5tTcQPX<&9wwwXl3QSLW0~$)7xTL zpqXC%PO~#XdnawpC$*NK+Y`FZQef=^B?)ej4%8bZ!nT3)A;JBr$j++Z5AfLL0fmh>-`u^WZNiQ+ zIWy@3Umy5kIV^Rwlj4l{4E+BnOv-}H>v9hTiz)2+ZTzuV>5!1-ZSL~On0wTkU^#Hu z*i34i>3Ozs3l#;wD0w!k<2Ge-K=oKo&kfOAOwSMhh+;W-;OJMe0iSYsBgfnJwBzM_ z?xlyCRV%tlKCcVz>@OlQF{d6TKCv}sYChJ?#lyItsi@=iUh3#&1WKXB!mHu$qg}=SnjFIN4dlCMzkBE)e z|DsOvE9i2jBw-&(CawS7t%GsL*rofwI^Hs_CEkS=VYel#r0KdG3%1*m*fPf!$e&D3 z7cT$jT|6Df{e$YV`!F&D`Nj{r0ar>q2!m8V{-^o-ScINL!RE&w~8i=YK zeF1uX`tLe_OfTXS4!A^1oj>z+oPOu`*RME1*gVk{hr%aU-oJ}m`~H1CWn9VVql1q9 zc=J1%4>3rFZSJHptc0BgMe{DLcYH2*qN!sjx@+i<6_c(uiv}sxU4^dIRmrAl7sz`( zFuKcV$fcC)@=W)%STLC3~yp(LvPn8VF z(qYjynUiqYx<3+zPsF*K)H{beo&QvAF`xV1P`Xf8h>rD}#Dezc$tN|*tNEJP_ z)T)*GP;w!h`M!Qx=d7Tvn>B1+EEhDJ_j&MXDvx%T!$7^)Y$a7jg9TCKRA(y=Oo~Vd zD>yL6#mNtag3Or8_kLU8tm`8L=i#Nd^zWd*ZLI6MqiZD$ApcnqAhu8h5}(hNu34g;6YvvkT6G;nSnS3()SU&PTwe z>6~NSwe~x&D0R3xotZ(-8!WmZ>!aL8GAkfC^-02SbVaVTjnIe814p%WXc%RoM>ovXN_40-k9uHX@XkV<^sL56s4P@`RqHA( zzJP^WEV1cq)*lo1ew&ppO-#(m&>7J+6XW%&;?{%>6Vi=yq%meP zGFbUrP5dj3!ZCUC)iFySmLEo(e17=yKP`Wlp64#ueq>2PmpF}(GS&SW7E-Q<%QRwB zbD*kWqqrUNU)#zfW`~tm9?EE3yXb;W9jpfUF4|VEIBX;xDs`I7f1f`UzocLrqUY9# z95u#9*Ol-WU7)v)WSt&O?T9i{m&Vsq_-%ozOkx{MYLO z#+Lm26l>^`1&%TWp8IW4;u+T&hX2DCOiX|M%dd>b-2eC9|6$13q2Yo}fQf$MLxGuV zqhoQSkNOF=^R^)2;cS;^kVdtgcROT?p&*S8&nggDSFa&Q;!<^kzc)D8+@Hfq-OgK` z+4zGAf8yVhMsRKDVNuFRfv`wD8>g_7*g^ql{=>Mg7q^aNp@W?&f#%(G`khIl*wBiA zxc^ghMz)4@$>uS5iIIQ^awnR}52JHvZ(uah|MnyXa}AbeO^cq(N_s3dI8u~tF+{%f5nEMcVX9}ykiYkvskorqC@Uc}tKrTzpI)U9siXev=rnuHj(O34 zdk-{Exo|ch3oSpEir`-foe^?8|4DzQHb3+9_SEIvNcgJk_?Hm8g?_?~? z<$o84iRtwH|7_a-Zm5}C?5CV*ha6!lxc=|_$Npkm8%zKDu3{y|b-CxitYfVEn@~G@ zLanRxjMl(zs@J$UI73;Te+FFiQ?5xPlAT;VA0l~Hr(I8s)@&_(TR2Jylv3&Iv#zNs zR9~)m`dR6xyxa)$_`u7Zbn5yd2nnA|kBzy^vUW1O!YiqNs~}g{-<+Y5{7&$GmmQVK zJy6HZfzTdqEosJXSHHym5>k`SBRKGPoFu@}TslYJOrs6^ND7*f%s=Glc>a5i>~jT` zR30Ola~Ugmk8PQjxfENSt-=;{r)lqAEys+O!MX45va5Oh3Dr1%)uA*gLmBCIl5#gqR<+UH(G$u{e)N3D)wJKinLq^dA~(j{M@y zw_?Ui0FCU809W%M%S-W(0zw6KxxBGs#l4|L*HuswGFMTlk0DQr!bEn0%(!)ni1n-p zNdlW>srTuuG+zC-1PinB0iFe;EK)Q_9z((7`0WVnX1C zQ@8Q@CGlRJ7WXj>(Tc*bZ+B;YT)A{<6L6;zZUDR7Ewl{ zc3VJp4hZBvsk=auXM`QXn(p*9&=17m;>*9~pz~lkWOuoB;VNxwdIPj(IG(WXyC{~r ztgD&o&^_+0m{GB6>wm^*_>X28)!!D~#O#o@FqdoTcyb+I@_JviAkOJt)m6D%S5Pw_Q^wBtDL-RK;p~wm z8=+7AiE8nlCLC{teJqSi`rEkWK*QkiRs&uf2wNyv#8b=0WK92!-5iYWI{NI1&nTYa z(c!Ol@$P`kCtVn=W#lIOnB>vcb-So*m-R%AQ(dggdMbVbr2l{`X0an4%q`|SMn(2& zX6ab%YU+4#uWAZ_mXfFeayUk1vf*|k1e&V3?MAIM-z}t{XBw0KZ3~kcvZ^hrOg_XM z9Ir8lxnZuB-A*zeH44h!+3#JpGnv~B$7y&2h^3D}D5;@B73}*5WhccmodY_Y1f+&k z5GgL%C);Z?ElLH3&F?BQl^^;|&mKYp#;cSu;}3?L@IMv!U8Mpplf00xBLXLM;etA_ zk8qbupJg(pXWkqffZA7O|cEQ4qFq71+&a2FbDiJ6{FIx~i4RmZc%1 zEDaw}v23RHa4>-pVog9@t(oY4_C}^ujG-a3{Hu$-;2_NzHGK)m$K~dv1x7gD)ym&V zD>yhu=V^rp`@Afdwej9i{L~{(Oj-3;zPj{CvI-phurMni%m1>AyUs}0%diLshK=)I z&P5A`JLyI~^+IZLpL)a7)POvB2=EEdJBeKJMIRnb$->L>X^7)r;*&@2DTi?Xv9X!3=pDKIqf$snF&*@A3*?+9+|7$J%e^B6m4l!cB3}?jHnw?@%deAI8 zbhr8N1DiBa)FZ`zG)#uafb;&yCxv|-de^a>+?Hian?3Qie@BgZ{?xUKWY0Ke6LwG} z@zm49EP>_e{ks4FAV;k3oTwhxmVd3`{?7U$4>$ymI$1Gwsh7 zhnVUmnW6qPH?d?Q;8$BACZ;dXH@wQk*>r#N9ymYI0juur_Vx)Nhx2mc9=EE0nQQ)3 zI=+6yQ(wxT_)?X+H;-9C+zMPGZDi7DiI5_CV8)#+1n7g&Ky+c*TNzJ8|LM=Bg5-E zD_rEC_8oz}n{KqFQ=jtsk$R@k6HjZ+7-E#6{7%fxK|65VNhw5F{q?k)x>)=_?Mp3|B>Jejz8dczHC+c~0 znxccIfBNCYi(O5G)y-EJk2?*k+_L2p;CI8@6^922Re~34)Go?K=O+>yp7Fd z+Ajl|aLFc*nb%8nvVGu;!+k0^CDUZ(Q~m5}Vkxf%N9;h!malf)VHVG6m#nS1WqgGz zANMh_h6$`8{#BSM%0`SkjUXMp-7vSRut>Af_vHmQgu@z$jU~Pp9#kORee0pBE~{Mv z=ZlMBz}#eN^wrdOASU|i$|EuRjOy?QwOoQ(ruemtq!eKrw;dg0n&*H>z5u#{_Qe-A zHNGHV(4_2t)+uNlFi9b!1%hJT=84A^i8lusn$ax#;hz1A z$ojF(inFVY7kj=|6_1~ zRV=?MM9Xn0_^A<2ft;uP3HKaZ1a*NX{Z*7{DiXj8BEI%Z$Bh)_&0Wcy z@YKF9h66hBJU8*z{Pw=H@YTOLcG4@ZdsW;d{8}m8)&I`v40gT{}@b9bhB1NRRW+QSzhrkjwGB!uJGky7NISbad% zMS4#oyt}py5t&(PlS*x!plnV|j`HO%je|pN?Bg3dr~G5imCl!6-WHWPTio`+Mt`fx zby*jD*zCR$G`7tWJ@|c0QMcCp9qe1B;G{4MC5?CVE&VYbn2o&HfbqK}dWqk+{JLK! zCCDn29L*Ajvg-Xld;fEU3!k-F@Cow+68wy_MA}=NaJ1D&UL;oyLh8><25ltCg$*>U z4i6^SBCqB!b5h-pMOH^bUqG%4zm+5$|>J}$kWGlvNE&iig_IC#>-VG(lRIPB~;m*V%b`>0nY!@UMili|Q|4n)`En>(I&t&;O^>|d!^YU?l$ zMdfUrAPUZ=*bcA=F6_AJ!Q$K%3&P;QT%l(QOA4&$=9a`egrN5au(z93%kbDE3=S~$ zR5aRS-eV7Pbe|RxT@+|7MIHko0>!tO(HWE1>GSvednu#KYbUnFrSM$5Wk?lBT#|q6 z6fpG|;vudYQ?99<@-bz<;l21v3lo0VDHc_1uR)cP&#+sTI$VtocSS+x`s2vVd!&%n zZLW@%L^T3eQ|M2e$&5UB@R?(y`>1)>;EyIB7sRfO?U+T^9t(OLj1pN|ndvkd;OGXt z91_ts7WS%nFyi6d6@au!=2$zxyxrTGk7&4^r^J$MdJ-t(6bOsjdBh%uJf~1+4%Jcq zxaq>@EPp9oWZS%1uXOqGm!0Fx=sVqKGn-}Vz_Bw$HB_v(MLlRRquX3*QmmjVFFUAY zfs&d_meh0(kkCKHtClRN8{&|3eKjgrPWP_77s$TNwq{~6yia}dFn84UW#hd)_}pwB zC;eKA^qo&PQZlNL4+^%ABS&2H>(BEYcn4x6+`x5jN}V@u$D6Aydk*xi&K3kX18!wM zID!OQ+@`Nc&}$OFB3SWUr?Sc#45)h?&hixJQASS9vzIlt4yfS7EyC@3@9d<&{p(CS z6XeL;7gs54ZTmJ1u)YbqNxi>5T#LmOL909DW2zyxy;4A}6fa`Wdt>9HV!Jy5LhgMG zUJ6pLGScBs;K+iOId!DFT7>IOpo8KQQd7%FcHaHzwVy?ZR+AxISd^dX_r65fg7bw0 zxVa3SyU$0OOeMDEPcIne8geK2(=9@8k>pzhChg)~OlJndP7Qt)@uQwo|C(tGl8Cgn)u@%^zS^LHy&XU+RdIBO9; zWvHQI7xVI+ZDHa4R3wki_q)w2>LgFm?wpm6-LFf-y5RX-uoV=?LaB3|0-e62iQ1AK zy?;6^>2%EuATUedAyunsJMq6D^4R`NtQ&NB7AnGzZqZ(k`nnz-Eq_CQSFcz#Za`Gy6b1Rrv=H1e$^8W}|@ny0$(j9C?^Ic-gu3^03=rq6PhVHaVi7 zJ`#9GBsITAcxz#BU#dsGoE+@JWgfObxI^gv1M#$`@?QRJ=Uoca8ddDI7KMMHEqa02 zc8?roPy0*qaTE2U$lN+MWQ(>_#l6=A@mya#k(+#$7ArIs89_dEdF8G?dc3%Ej+l#P zHrDvM87ZYYX}<=pxgI;yr|^ST2N{OyKZ%p2>ng=VWTU*l4>pZ$Qu~J}$+>m#T_4sZ zBF!&NB}fCKKmbIj23|U+MWA}fGt$!NYVPKui9M|1W(#HXQeo@xEncLGr+ZZ4cX>hF zhJ|}>nV;E)_LjL~BPu9*dvAqJla=WvoE28QZ!?!jbf&8^%L5s{|voKZcGj01q0nY8Z$jk5(Z>uGOp3AFF3Z$s+T)$9_5s=B-fxU($6dZ2 z5AroF*D`Zvp#E_9#MChzpguMW=-CRGU$ofy>-x%Hd|S`HCR%tcEWF9&ukP!Gbcx`{ z6$n)JTd@sRDB4fRv9+H`CidpVYg3>LCO(X|H;a7PB&ULF`JdOcUC`5jpjH`6(`w*D zt7kzzvdCN&Bk%>Xx`|LX^6atg5&^LsZ4um3d4;;c%ya@sskqt($H zx|HNo)MmyD4G!?D58S_yi|l?S#x+X$**>Xb2TMOISI{qd_ss5^WiNLZ zbztEGS1`=Fo$Q&|?%LeIx(IUOa_tDMatRdL8n#Yyy;ZTsnJxnK4ForJlSK_2JSFiI zHge%6`SrIT!{u6oYMi03oAYB^N*^RGJovfUL}|8ysq%o3m0uzpFy7(^%NmFZkT#4o zE)8`RgiRZIr9<^!GnoXqU_7gd|eKJ4T*-apV5bFbWnrVqt$ei(88xR7Fdlw4m;#`=VSS z*iO>!G(wp5u~vx|nk!?S=Q8kt+h0f4cx0-bUjeU?@|oSX+Jh^s5XA=j?_#7jB9flV zm$@aXnh0XpN7GdNo`qvX`5|w=|0JxLaXmCV{*vN;8a%RBAn-RdVW{G_zP5FxUP}Zw z5nHqN!cNJ@wQn&W;ZD>-uC?!-IMi2p5^(z{qIT8DC-_2=joJRH8eu*RviYS|$#Pen z8qF8@Ju-KG|N2Q3wIvIoC*bGCW5ZuQEmCUwio6uN-EG9S;=N?OF~zLgqf?3zC!5cO z-`9+oFub2Y&UKG2WZ2`LkG5pn$+_OKMs*A)oVfoff>{?QJ+0sp@`#C<#^-`-0|=0w zZqf4&loh_>$@1z6`Vhn;zE&Ost1oTieV`dVl@WG1q=Re&tSB*;YBKHJ~HYq*v$y_kq z08N0nr!dGFX00LNJZGdt-))I{A(iK!ps~eg%p4a zvb>PMGfH-&w>D_X;s&&|@+AeqMj_*wfsCJ0xUsGkV-^B1Cc}_5K(H}+FuzH;K)q{hQNn@pqi zKLfx)E8(>+b3Zin?XX4Svg+qvXU?1+ov6$;qn8n=1ABeMvQ;u5P#|aruw`loe_gPU za3FIRfZC0~Yg308exw==fg8u2-_d)%MgoRt98`7Mb31{^zpcZ?{5 zm9!fR7@^+-D~9~SE_N3Dj$Kr+$3a=}Tt6U(JnKS~0@$;wxV_m__Rw2(Z^*qt{;z@@ z9hgtiP6#2d>+gh2%Xza|-baiHH$h%PFgZUG=NZ`7mX{7Z>pvZG+=bbrx zct;~|7VfX+fRyrx&}^|Ijv85Io550Epj_nB|7 zo8E3v@oM4#B7$==^S)DSOPh*a$;R>!Q0`3nL+3w}YD|v}CmF>JFPNFFR=&)8@+myB ztj*P`oe~gG3~-f^yuVwED?wzOnB2r)UOb-lMwHtF%1%lC2m51fdz1jD)guGvJ?acI9KL{NOnLo(@MI*(gR=8_|7#K+5eI>jnoBlBzIQ|2T`Oc@XsuGwJRB!Vd6Utw4(;F!9Px?u8%AG-N_Ow!ar7J~z3|xh^94 zpU26&oox%9dJUhQY2q>m-~>*E{*wSAlsN41yelBoFpw%7&wf^DpwEb7u1M!tW|? zqiaWo3Kbzv_gLO5S~g@}O%1+hkCk=Y$6qv9u~i8KK27l{2FjE^Pi868siJOO-1tK& zd#&oO9BR7w`YVE)t?YzDg3%8A(q%`p2Gb%g3E#HG>xt%I4s4IWB;l4_GTbO011X5< z#;_+$*})-!Kw1Dqb0A}{_9&{6toj|WZ}Sv-Z=a!#qP-aC%a4uZSD-||f{gr64?}KG zmx1>si(jsV1B2-!!?mE90x+$xu^exQrP8O*Sl#9VgxVZtBmg%9w0Cs@AS2gSej>r#0=dl>0TqhjaVMD z%q%O94c=Y+$ebU#m{Z}B<^KLVcrufbejnj-bf5&?bLZG)$5U15)M6GDE@s{6_E-8p z0hzyG5ii8&LdJcZya>9JhIv#|7BQBzg`1CezQQ%(6)qGu#AG}4F5D;O$`&UGOt zi4lb0VfqzbF6OnV+xxbsC32YQMeIce9@Dl|pyXT@H-fh97WqoQ^!{(?O4j=$QvGS8 z;q)GQ7JUw~9ZqA9qU;VpEJ8-;+W`6#*|!%GvI;l^{)vdZxOr72x{b|+rjx$!w$Fc) zvaEv{Pf)S)_@S(;5Bg8wB%}LJ-MMw;uM0eOGPR^s#1E}>Dw1NijOGXvou+iZIGUq%wbXp3 zfaAi+UyrzV3b3?|ijjbvhRB>;rJK$<$?0#MKe#Vl1~`tiOp2T>lgu4<&ivG`i`m6SYD zdB=@#r)h!WtrgxB0~>P9w12umcG4Hgn)!ry87*pa-TW&f?2umvO6&_yWmFGtZao({r z48F|z<6>l%emDSM9?bgOgVEYwQ+#1CfZ%uBd(GuL6_7l3 z1GE(B4SvkR668OO4)Hc8@Zt=fs7G*5Yl_$NI}ZPNy5Ma(S^9d4&Agg?-K>7MGz{g+ zSYTEM2F&M6RGyWqp_PNr9+f>x3=7j#!#0MulT}j3|4)109o1yEzKh4PB1KVA>fopd zh^REBj#L2ygeqV_Mv>lo38-`xaFn8ZI(}50dc0The3@4Zc2}`DoFa6@Ouq+wY}AEDc~HoHC9nM0(&T>sJ|9S%Mv_`@ zg%0DKaBA2XvErSIcjJ1;a#^tOa4dqNU_Wcv>f1upbQJ4!Rl(&SmcIr!UXSkQX81NK zu}Qy3zsfsRg4#L_c3&x}>!x?=UWw(eY1g2lsw>9Oh#}4Ml!TBY|l-HeRVq^gKITNA}`!!T_3H~Gf%eFKQrjH$<6Ulk{rLK znC|rm7k(|+v)@R_H852ObK1KLT##k85?#**c-#P+$G(&6w)B^6unB@fs`%8NWr~wZ zR)EX3D`<)7=9>(9avp{McG-06(m#awD@eG1z( z)na~G$}M}7Kk$OQH9cS{zwV{R3A6Zsb~ekf5R$l9+uwY|M6lu{2H^U`O=2&7A>{nI zZ~8nj8{osGaB*2`ZM<#Otn^P=Xz_3Zao8kW3-633JEO2E(}HiP%bkK+_{>~NpH>$& zw;({~i1P&<_M#G-`RYytd*TU6Q@6Zj^H;G_$9pl7M(qBVCE+dQ&PJgwL7sD2cVzj>u=m`ujF46 zC9+pr0)X-0Fm^S8G|4H5^v-2y<4q#X&|=G}6P5OBSP;}qS(ELmnhfW!;mmNBPq}SB z_{I8OkdtJxU92C5+m4ok6gOnJQ6@Mh9vwJRO>{rFG%2+gO!`6%db^TU?PD(412PN{ z>*hhqaD5c}Vs@t+R&V26`*#)Y8R?AFjj|SkH;vJ0AGg=1G3D76Gv@UxA14<}eR1u4 z;F*TmH4x+3AcVcuaeYP1ax5e1e2G)$0^$oxWF z(oU2D&bY;njWga+S;`M5&pwG<8r&5~yM$hlAlF7NU8MSg2g9E+CCEkfi>i$1CHnSU z{M;Jz2HmZX#B!8rUojKja;=IVH!0$oWdZA_%9!KUBhI7vK6Ld(1YN66xfuYLqLSs24b zQ8xXh$+$Lt2kwe@SE~2f2jUM$4An*Vf{Bsgn&!0*ZWal)W-H+pX85qvUw$JXe_l@} z|Es+w@Gwgt3;b7yH}LEoZcmMK#WLU^dUd`yh!5**qJz4!W?<@5r>y{f3Ec+ zdzb=2dYwM~w-`}6a>!{&U}%epx*-knkNlzyGVL*_C6e(y8`6UbSf)r1{hbQhPAgDW zUBxf7Swox`4A8^oJlxE}JgjbY)lEMLvu$+Dx)~pLGCDDo801Z#%)fDYd&6tT*^Q*I z_$Em7ZL?wm}PtyJH|6V!uI&PixmBdhH@c(()$Kv<-U;6e2oe z^116nkChk3Z3ESBpU}qF`4(tzE1`&4BL&ntT2H3unbDAlbz5u4w~Qi)o45b4*?2i9*%HRzQ}dn&c~II|xR3@IJ2S?6I? zw@o}3VEe63hc$-MwD24BN!An9g;yKwCW0WB$LYTZ-P@LO$8^@?!!cPF9?<)!dq(;< zMXso0{hys#3ziaqD=Ez3DcPC#wJjLPnH#$nKwRPD@d&3p7hqHh=ghvb3>T*ib()%q4h^RE+KQTt}@LPt(v57c;5Z)8 zFGY-9f2GMUCN(nM&@0W^29p3hQy40Gf)JLPJ&%;*iADIaa;Ch^v`J4UhNB*9i`vs( z8Jj_Vc|#6DxeQ=e14bA2M}<+ARf0<0jY8DE$OSqS#@*}1y9NT~F$txvK#}&H+b9bw zmAU<4{B`?M7!7q(pb0SIY=Dr(O4)Wj`$zv-N(X@IYo04ac%iz~UhL8LUd|SrZwST~ zCUX*3dtY+B82K(Ev%>TSo*)kg6m~`Uj0N$4m~(r#b1i(?8-y;I$H{g$`ffMEOI$a* zyO-KjHdu`ClCdyHN)ZOjR2Z-Fp=-k3Y}4M&>3iRtUm|!+^+Qsv_Bg(D?mkOlo^Ek- z&8TmR_k=Bd#?S(t0$ibak9VKD2%OW428u#Fx=Fa(GnP#6`h~(=zIP@!koHFZ()Ak}CpMZ(y#(~PDaDKyt`jV28 z=8q-i3H&v$l{_;Hj!6`GK66n$@l{j9ReE$I0vSJ$=FYl;dFe2hC@Q2Jl^bSo6npWi zzpg_|j-bLM!#R%F*PBmFN*0Y5wdU-7rG+?@Iu{j;D2m1p~fTPh?OrA48S2`TxXw8IrbOS(FT zjV>uiaqREc9z&l##Ty$E)YPD$f-g=7QPd8~R{iy&^EBc2Agba(|44Q#lDn$x-rbLn zT+cXbaSqg!Uq_*Xzw&6zK)= zsR51ir~qEqlP;)%Kz%8lJ z<9T#sW62IQ;dLq7@M61AXu;WRK#Hj1$+oAVoJa6&DSf5QPf35&=yKKv-^WXPfO}R zC=vCRLiy%*4gQoQ)t($sEaBKkVkmg0cfa>W09NhOHy2EPu@h7~ z=-pRNpwftLfnvCMTOt(rI zH;VMOaJ(Lf58bptx8c704*`xIfHL??lKRIf;R}bLTu(~{u+LwPojjG@v_KoS@m zE0q*@==C}ISrn&#)hkkVKRhnFdDtKFmK_(3yC+d1PSK!OcdW(kxqg4LDnKPxx(U{6 z6@)}xXiymCKs}#<67}OTzxG)EA$$lc-CO>YQyx2=eg;`QiMLk3 z<~gMfTJG*KY8cOz0S81J+7x5lP8yG^gd`8;UMw2SO3lO~ z02XOsp7;vUS)tzZJ|GF=d(**N(mdTe-@v&sgHmmZ0Sd#F6zz%RVuGt#*f5_4QpBtk zsurSj*-qw4TO4Ap_1e7nChZZo>-JL0Mlv9&H~6Yp%jagM74*V1`@nmoPlD}XtMnZY zVoMIb9&Bmj1rt?hg~qchaMTIq(DpZ!sA9y^(aM#|L;L@XExe&!-8Hk=3XVF7#}-%i zhsa5|g?_FZ<_{dC9bL?Hz=H4GoT}S9(_!&;$vG3sX(VMK9qz{>oRFBCV)yJbtc&lU zS0nSKkLi@Z01=!HeCV{Wded%S)%3QFtg%%915t6E97u-&Lgf><3Y{VQwP`@>_dg=$^u)6z4bBDQ)HhWNeKZ}j@1F$k~mVb5p1uI6jJTVeo@n}vf!l|U!< z!NnjeNaD$wYWyI#DB1R2W>?J}cgDFL=g0uhdA&?LcC@6eVWGyAcIzT2y44}Z%>rfx z%n1_IHy=!rHf;8+Dn6NtZj4Otbq~FW0s#6|eVj(v* z)Bm7B#J|V^O?&EK)s_uxnKr&B9G=tnmVA zCu?Y~-q-4IB;4H%bDgmy8-n*WB zYzC1wuazVdxm$Um`bA!64&H71%r>4&D}uC+DDkapb^M&%Vuty!B}^SH0-pmTcis|a zHK-02@Dro-4+I{t;1cHBjIFlPKCp1d6cw^4Blm%xX_(BFO66;W+Z8LFq2sZE4LQR|G1Zh2cbJCdlryE^Stje!wY7)5YQbv99;lad zv*+w_HO3efdVst2EPrpgIlzl1hV$IAZ4h@oU3MR5169QX7t>l+m!&J`j!Tqu z$wk=$7|hVEI|O<72?s9W{To}!TXV8h?ep{3X~IN_$=@XaY#l}3>>6AZ@LNxkrH^ai_}mhevBw)gDWqxCJWQdC20dpOZgItiUBj@rQDS09S~@p z9na`QMACXaB{V#V2F4exT}zdTPxXT-92x#&QO^oO84EZ&YKW8O0Ym6+cmOzE06H0Z z0H(iQ!o(b(1Kja3^eqPGG6l_(-J9BuPzRQ1%+PccgU`4ajtr?=k<}{9V3%y&G6Y1fD~6 zPo=exdUow6?p?ADW2cCEQdnL(zz25!YnKUF&&CJL@UYEu`R)0M=0)~qg;h2ih$&#q zjn6I;=73E70C`5-%!GFG#DU~Td~@BOq@rqz$5c>nggb!5bXQP>go+OI26jk5if49^ zOeerU2#>tD;ShG&KvJz;3KZ1u-ZtV9IWWvkbOX}5M=VAfTh?&)$WpzmN~g18(=T~+ zw)gVbg@S2zw%gz*dd9%>ckv9DV=m{(; z3=2{#8kF)Ub?;y5RW(e3J?rKMXQMDG&Uahnk>qDUzIMtJF}U!YH22(i_A)RrL9~D_ z)>HFR+$GY@&^i1OC4?2Y^5E$NEv#e^Osy&^c%$y-GF-~ddEp#R?uA7boK@G zNLr??X7w0Eg`n*&=wQw*CS-l$&At$-2Me>Cq@&*Nndpu|Bt8$rt`r{bFm?@kZp72U zo76C-@W$+ii!W4Ii#|uZXda^0cPQrJx|&*c(P8&_QcoT#ram6?v8V61_LU+28lxL4 zKIiizi@cxz6-DM6IPB9&Y)P=rp{p=7;Nj z7{hZ5As8(VO4xkEUDmA=x%r6j??9zQaNStv^s6@pNY`uFbY5^! zuGJcFg>^*GuWm?R=#px`Jj6ONz%_Aqt?+#@T&ui*ma@ zHlx{;TlL8z&Y8(syW{ql5E@e4-GPabIS3%ywr#}4dfc@4V_a6>33+2J3%3*B9j@Q- z!`$I`Fm-*-frp9vGFab^ev9aprfmTd?H|ZMg|%~eyY)3;8frXkBueap27vPEig^zJlOVF~G)N1HD0-`__0cR9CzY8w4#k>7er-~4zw#HJle-bO523mc{Gx*KMy$!b~C z!iG%)1Fd&y=Bu{cb;MTKps@sq&DuF#@XB{Eg_E^T0y92SA^79%Na)8s?UBRK)%kK* zR1yCR&WBLLDChVSIt2*b?@Trw0*q2vhv%^@YQ085CSQc1|DaX^ps-AtiFR)9EsjAP ztZ~_d!M{c@0PojIV0Ji6^>+a6m^+Qkrc8Le%QjY8$xo*YS;_OZNsZX3|Z_ z6VZG_&(iqQ;KzRap{X2%6MH<93AGZB7=~U+Fa&r1U^(IYz(i(4kqG+%@J;aVHs_x@ znqOc2hr#>bZ{Jx?eeJu%o}F_0{a#q->4vQ~!2e25^#8TPENkX{3irq~OreCJ4|Wb% zYLIgek}e_a?Zvyd1}T-E`Q4PoQHHbfN*uoK&Sv*QApc$P@zl#Pt;N;^L5AyJbH#sh zGRnF|4XbDS(*W2J{Ivg|=#f64cUkJ~ipC+lp~`UJd*|}>hnMCLK{N!2P$(YJlX%!^ zI__aI8@at>`E-U$sWHRfB<>3oY!`721RRu4O#?qtnk^V0x?lmQ= z%eiz=JNGq|m+ChNi>mUfR;(Vn9cwCcim*nB6b(VxClgE{{za8?O;5zJ=4%h*>@Qeq z@S*N)?;4(;To^O(aI@;{a&H|xE33fgpJM-DSZdFSjn^t`}z& zbJ$nc%f?h>@BC~;uxkLqTsCt!^px$bw~o0ss9)wr++QFus%Z{_>w~nLPvEX~MCc(? z%wZ$cPP^Y83yF`I*OCXW+;Gp>xmMeqUG%w9?g5hhzDV()eN=NmQL_825uem_$e8D} zNY9lnkC&oUucV#CIc6Am^6tv1!HU;2D3{Eu)#0S$zdnMS-j5^g*gQRgC!$7^vgt9j5*|6L|!lEXBI4HRlj&$?b)XwPvOH z!4ww^9aYkRoP3ChnegmvEY1)ww~l5psW6IU9De+GS|r6&RnrURFDGrf)#1!Q;(XE0U^=acpP$5Bp9Idu8;r=Z!NoZL+auM!cKu550t1)TbJbcxME;G}OjJ8{qW^$|+l3<^)cY-my)RrSKLTft zQf`>ctU5g5LWO7;6`3RcDz))+Vz}L}G7_MW`gabch6D_7TX?2jyC{SQIC{U)M8zER z*q3~!7{a{st@he3u(q5HCP(&5*wmA7A-rfFSZg$x3D8vqw4sypCOpH3n} z2iS6l6y>ieIiQaHqpmB!BjIpZw*5tNXAD!>k}gC&p(D$uks%B}6Rr^*Nt;oYez;HF z+L8FQq?Y4R)tSox<`%iX*pX{%f9pnD%W z#D?hn_aJQiphV;X2LAgk{gkM=K*DTE=oyjcX|ZmF(m(kg(!O90K!reH9^hL5w#RQk zNnRu-;dh#o%rTwQm;*I47YS;f^FAjmr4C*TN(jpZq%F=GL}}igf(-|1?4#p}SeY_a z^ZT8TgPnZb8Q5;nn%hVCw3V$r-Ph&lQyH+#H6CFIV?Vq;%^!WostCkZ{WdS=6XoeTsI#W(Eo8&6}$dS5L(?&y-_OKatx2~w|fP!AHr^eaHWw13bsS@b6MzkU`s#J+sP5t7wGCggc(6N}+aHH|B$ z`M`nn^-^OZ!+q>cxWYUtN)8teRBFs4t(_(i8gEiS1CED65R%kU96JxX9N*{JR6J4X zB#dXrA-o1}L1p*^0Z+2|XN$&V``A(}#B8)RiSm&4=R+_30K35Nq9`7AS_^Nuq>W*X z$K!MN5IX}EH|Yi6Hr3Rdcmil-qACPhbeTQ!R zQEVdA(g8YgchO%F<}m!d*Z;CnW!m2>z+ z(1S4I;q1vOA<{-(wd$J%pp?cn9)2t%53_Y6*srkUu1%5*yqTgYo(b!fUxfK_LQavJ zevp4}#bn%UY8`bdfk_rE&IT7$?D~jzS7@Q?y|W0$Ag*UrOi_W-yCZ6#N`1)@91UKR-%|#2ZV}>C`m~%T9DX8`o>~xNQ zNA!g`O8s#0=CHNqCzLEHHL;n!T9@T?Kq-fraz8!wo;J19BEGTradm$=5#gCIRPZw5 z!c#C7h_fDfxvxX2guM3Ei}qcIR_WPG%}th_DaahJULqs0QHI=ai3C64c6JYYCo&E;`$l(G$jy~^KsBkcfM~oAt;}NO~IZ+)k zX|b;3rJld`4^vM5Tw|Ski{WPE5&?*!>@As#0z(}ACBG~FO%7qk{p^RRbqwgnGB8@} z2XI9?WUJo-p|$Onpt23|J_&9WI>eIhel2#)Oj@;VCXP8Wq8F$EJ+>C%IP})KbHX^P zQ%OEcD5Oopo@s~=;}Hv5JE>D(Rk?NAw<;9pK_}RUa%<9OgK&qgm40mT$R|H7i#4hf zNk9>REc^bbcn(v^>C?siM8&&8BA9!4#3Be(ufmx>eNoeYCSHH?xf;W&MFnYk145qR z(i$}#S&U?fYBopdV!JEk{MhjyJycS!9rHq8bZKL37`-}9Jh0lyyKm0wqE0W~Hwo%m z+Q08};jKABgB@XAjqVf=y=>5;Fy3Gwo6S-L{3iPyj*uF1^Dp1^y6b`&AufY$RuDa!H=HHiBLlTk#nPrvx$1 zP0uWOMdkKf>kA0i$AZ?liJXDxpn+WIYA#vOM6@^lRxO+}>?;B_#4Z~TpR?5Y3?YlJQVzWkl79G%o^TZNTDQR^jIAGFWJh%aB zhFz_C#2E=)$3a9V*EqTE9og@YW^38X*H|=4#Ii)mQ@KegHpHcA54hNJOL6kmMyh5P zqI;M~Rto#of;ofnO0FQO7;lT~z8iZy0x^AE_~uOl#KcA)0QXOCU`E$Cdt$=8 zWkm-3=Fp;ZCKYO088G}rF1mM^hq#ncf| z$o{3`*Jp#8UU%+jro3T(tl}e2ND`JZgLeb(X#e-aS~Yubx8Yj16%n|zVkv64G!{Lw zK%U#u-p?l$ndyybMm>NETZWAPljamv0Z5?whF0a^huBWL|#>?Pn91PqVH0-exNPdKQq!kXQPU z#b$=&*)0Q{s7TFGKGv)iwbcwAIl@ZU)L4HEb!~id7%PsS>yu#9%QgFv%9*7`nuUBh zvJ?}lS}C6fC3$8n7dL!oJJXVktr~0UYnX$_=tSl zrs(Edd+pzk5dPoi((mJiTdR+!iY1ZhVEj=Co6-i$zDGuBDK5b(v)fCIj^mrwlBOaN zt=CSt2gDzcWd)u9;6IBAMcrL-ioD=8vfa>}0@;p~ zG=K`42{su=+p^z5LYY-fa^Y0Zfr5~#97nPwVgH74@ps`^cB&3-ANBb8yHDsqEG>Jl`}A7rB-lD;qS}uC{t%~RTAd9{qTh5F|H4%(92r2; z|KLr^#F}89KOl*e)xnWBI=Nvq);bnK?xyIqB)>_PiP~{p0>8JFj%{$*1<(w}=;r;y z#k2S2CR(UKuAV1ooYom#{uh@*@M_&^$brqgTImXRySB}fnWP*2k6FFA#`kkA;DtPO znA#@)Kr;%dd+m3-!w2KF)Kp0jAyKkL+sR^xc;?D8)KH#FJf>#l1UqDnv4%MP79Tz*2!!aQ&8eO!T^IM})e?Dp)% zgLN3`%b#!1QR_d75Y2x#5J4&R(SY zv6eIOpDzsCp4SOX9b&;Dx44m!Z-JsDV)O;IS~ZtaEzXXs7zz!wjG`wrsHF?Q&j4&c zX`Y?l`|8*ygQxy52!__pd>kH8y4W1ju5iF$DU!yjR}5-BL-<^~Fv9|QU#;SZ1P@aY_QgEs; zUVZc~IrCY7Ax-lLE_;=&P^8djxx3}V3j))D*053ou=sg*`gaB%0x&jXU>hTASpztg zHNlg&Wpg@vrVo}ZyII){Vut>j?TG=@A9s{ah>6nwVQF{5I(a9+gsdNkh;PXNNAZg= z*>T#9mHqs%iONY_`Cr#R%Zj=gA;Omf@^Xs>6-=p}@lW6NMYjJ$G%V=>cw0iaS=Y4^ z3-m1}`f#CLePdycxkLAATsrucwZvt)x%8-t>SJ1XUGy~2fO<>xIy0*{itI0w`y$m{ zH><1dUr5BirSfD+|D=y{?Tvp7Tu>1itBtRGQF;3MX^R5>4h{RD1ajX~<-p%M1#4vM z-n#=Oiji*nzKr&a@`PW{D2NKfW9^HqlbP~)98enOUHBewTXg4m9HK3!^BHNCnY8z~ zcBkdl;6mvNO~Nc~l06Z@wmq#Q8$Nde7{OEDXvotz&JecT!u7957FG&*(P2xn_EwDV z3W5JiX>EYjgl*NCt#@#aJbnG8-pkK1n&Yc8Bn$6K{^z=JX(!LRN0{LvUmdM5Y<>n6 z;r+QtFD+=;RWrDCE=W(APklOw`}Lnc4?}SyX!%-e_X|42g-=HNCGrLPo`wh8D}XxF zM+BCVwiPIO_I*TzVoqj>_I3$4^cIMxKWOQ2zOUyX&j?a4XEeKuU!81RcwN8Ve@V&K zrz(PSr5EKHW?ixpMH~sy5K4&7k#JivfdhP+7{XB>%5tj@uB6?c}5 zwmkY*`clow{~nF&TXTN{$P4^>9nrt1OUN*|1UXGUtIC&2K(;IRrxJgdi_Mk zeytH!8UiRd0g04lJ~EcMr(edkMyY5CgGnMsFm*U9udDAPbK0{xIi9yJ0DU89<6;_O zNl0y$14=L~zxnr5+fmu3@YHUj6VvqUODASL2Eiegcv9Ws+Hddl&!_M z`sGCdA+==`iFl>|_c0IL?*h$dM_t1izMgZDBO?NefVU4__sbT+Dr`?b7_R>2JA)rR z)cC?OzAj`Bu9{mVvA3_JCQL-{Rfo;63hmVq7TZ13l zsxaJ{7J00sBDB;z&@70LlY-HU1s7)pGcm5~x9lyOx2Hl3+{JRgpwtV6xOE@+q^m#R zmmdLx|1%nLAm8{8Q1%^A_W$NiZk2FA7issmbdrlJ=G!fC{}um~v$(b^w~J1-4d=01 P&tDC6jdd!tuHXG{rzX&B diff --git a/docs/docs/assets/images/admin/import_preview.png b/docs/docs/assets/images/admin/import_preview.png deleted file mode 100644 index dfa7b6cf43685bfcec0435c1b035ec6b4a66df9b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 86260 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 %u7kW*}F-O0;F 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%0DOW&AR$hnYpV~-x2u;m*{h*>yE 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 literal 0 HcmV?d00001 diff --git a/docs/docs/assets/images/admin/import_session_map.png b/docs/docs/assets/images/admin/import_session_map.png new file mode 100644 index 0000000000000000000000000000000000000000..ff1dd10e5cb799033ad13088c023c11754a2ec87 GIT binary patch literal 36206 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Рg`rjXMwj4~4Wa@ezn030 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 S^95nQ(CHs6PZS?_yYXKHsF&{m literal 0 HcmV?d00001 diff --git a/docs/docs/assets/images/admin/import_session_process.png b/docs/docs/assets/images/admin/import_session_process.png new file mode 100644 index 0000000000000000000000000000000000000000..f38540183594ccbca3660a4935c329f4e9587dc2 GIT binary patch literal 47273 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%0Ag+UqLDGyVHx7cWjiaI0cP#d8qpD0&)IB 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 H_~X9;16@P+ literal 0 HcmV?d00001 diff --git a/docs/docs/assets/images/admin/import_upload.png b/docs/docs/assets/images/admin/import_upload.png deleted file mode 100644 index 1f93b67f73fb4226e02c3cfb6eb6c8009c9b8ebb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 28274 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 diff --git a/docs/docs/settings/export.md b/docs/docs/settings/export.md index e9200c662c..313999556b 100644 --- a/docs/docs/settings/export.md +++ b/docs/docs/settings/export.md @@ -4,14 +4,10 @@ title: Exporting Data ## Exporting Data -The Admin Interface provides powerful data exporting capability. When displaying a list of items which support exporting (e.g. Part objects), select the "Export" button from the top-right corner: +InvenTree provides data export functionality for a variety of data types. Most data tables provide an "Export Data" button, which allows the user to export the data in a variety of formats. -{% with id="export", url="admin/export.png", description="Data export" %} -{% include 'img.html' %} -{% endwith %} - -Multiple data formats are supported for exported data: - -{% with id="formats", url="admin/formats.png", description="Data formats" %} +In the top right corner of the table, click the "Export Data" button to export the data in the table. + +{% with id="export", url="admin/export.png", description="Export data" %} {% include 'img.html' %} {% endwith %} diff --git a/docs/docs/settings/import.md b/docs/docs/settings/import.md index 07d89acce2..ed90511cf8 100644 --- a/docs/docs/settings/import.md +++ b/docs/docs/settings/import.md @@ -15,77 +15,70 @@ External data can be imported via the admin interface, allowing for rapid integr !!! warning "Supported Models" Not all models in the InvenTree database support bulk import actions. -When viewing a model (which supports bulk data import) in the admin interface, select the "Import" button in the top-right corner: +### Required Permissions -{% with id="import", url="admin/import.png", description="Data import" %} +To import data, the user must have the appropriate permissions. The user must be a *staff* user, and have the `change` permission for the model in question. + +## Import Session + +Importing data is a multi-step process, which is managed via an *import session*. An import session is created when the user initiates a data import, and is used to track the progress of the data import process. + +### Import Session List + +The import session is managed by the InvenTree server, and all import session data is stored on the server. As the import process can be time-consuming, the user can navigate away from the import page and return later to check on the progress of the import. + +Import sessions can be managed from the *Admin Center* page, which lists all available import sessions + +### Context Sensitive Importing + +Depending on the type of data being imported, an import session can be created from an appropriate page context in the user interface. In such cases, the import session will be automatically linked to the relevant data type being imported. + +## Import Process + +The following steps outline the process of importing data into InvenTree: + +### Create Import Session + +An import session can be created via the methods outlined above. The first step is to create an import session, and upload the data file to import. Note that depending on the context of the data import, the user may have to select the database model to import data into. + +{% with id="import-create", url="admin/import_session_create.png", description="Create import session" %} {% include 'img.html' %} {% endwith %} -The next screen displays a list of column headings which are expected to be present in the uploaded data file. +### Map Data Fields -{% with id="import_upload", url="admin/import_upload.png", description="Data upload" %} +Next, the user must map the data fields in the uploaded file to the fields in the database model. This is a critical step, as the data fields must be correctly matched to the database fields. + +{% with id="import-map", url="admin/import_session_map.png", description="Map data fields" %} {% include 'img.html' %} {% endwith %} -Select the data file to import, and the data format. Press the "Submit" button to upload the file. +The InvenTree server will attempt to automatically associate the data fields in the uploaded file with the database fields. However, the user may need to manually adjust the field mappings to ensure that the data is imported correctly. -### File Format +### Import Data -The uploaded data file must meet a number of formatting requirements for successful data upload. A simple way of ensuring that the file format is correct is to first [export data](./export.md) for the model in question, and delete all data rows (not the header row) from the exported data file. +Once the data fields have been mapped, the data is loaded from the file, and stored (temporarily) in the import session. This step is performed automatically by the InvenTree server once the user has confirmed the field mappings. -Then, the same file can be used as a template for uploading more data to the server. +Note that this process may take some time if the data file is large. The import process is handled by the background worker process, and the user can navigate away from the import page and return later to check on the progress of the import. -### ID Field +### Process Data -The uploaded data file requires a special field called `id`. This `id` field uniquely identifies each entry in the database table(s) - it is also known as a *primary key*. +Once the data has been loaded into the import session, the user can process the data. This step will attempt to validate the data, and check for any errors or issues that may prevent the data from being imported. -The `id` column **must** be present in an uploaded data file, as it is required to know how to process the incoming data. - -Depending on the value of the `id` field in each row, InvenTree will attempt to either insert a new record into the database, or update an existing one. - -#### Empty ID - -If the `id` field in a given data row is empty (blank), then InvenTree interprets that particular row as a *new* entry which will be inserted into the database. - -If you wish for a new database entry to be created for a particular data row, the `id` field **must** be left blank for that row. - -#### Non-Empty ID - -If the `id` field in a given data row is *not* empty, then InvenTree interprets that particular row as an *existing* row to override / update. - -In this case, InvenTree will search the database for an entry with the matching `id`. If a matching entry is found, then the entry is updated with the provided data. - -However, if an entry is *not* found with the matching `id`, InvenTree will return an error message, as it cannot find the matching database entry to update. - -!!! warning "Check id Value" - Exercise caution when uploading data with the `id` field specified! - -### Import Preview - -After the data file has been uploaded and validated, the user is presented with a *preview* screen, showing the records that will be inserted or updated in the database. - -Here the user has a final chance to review the data upload. - -Press the *Confirm Import* button to actually perform the import process and commit the data into the database. - -{% with id="import_preview", url="admin/import_preview.png", description="Data upload preview" %} +{% with id="import-process", url="admin/import_session_process.png", description="Process data" %} {% include 'img.html' %} {% endwith %} -Note that *new* records are automatically assigned an `id` value. +Note that each row must be selected and confirmed by the user before it is actually imported into the database. Any errors which are detected will be displayed to the user, and the user can choose to correct the data and re-process it. -## Import Errors +During the processing step, the status of each row is displayed at the left of the table. Each row can be in one of the following states: -Manually importing data in a relational database is a complex process. You may be presented with an error message which describes why the data could not be imported. +- **Error**: The row contains an error which must be corrected before it can be imported. +- **Pending**: The row contains no errors, and is ready to be imported. +- **Imported**: The row has been successfully imported into the database. -The error message should contain enough information to manually edit the data file to fix the problem. +Each individual row can be imported, or removed (deleted) by the user. Once all the rows have been processed, the import session is considered *complete*. -Any error messages are displayed per row, and you can hover the mouse over the particular error message to view specific error details: +### Import Completed -{% with id="import_error", url="admin/import_error.png", description="Data upload error" %} -{% include 'img.html' %} -{% endwith %} - - -!!! info "Report Issue" - If the error message does not provide enough information, or the error seems like a bug caused by InvenTree itself, report an [issue on Github](https://github.com/inventree/inventree/issues). +Once all records have been processed, the import session is considered complete. The import session can be closed, and the imported records are now stored in the database. diff --git a/src/backend/InvenTree/InvenTree/admin.py b/src/backend/InvenTree/InvenTree/admin.py index 66346e9eef..2655794159 100644 --- a/src/backend/InvenTree/InvenTree/admin.py +++ b/src/backend/InvenTree/InvenTree/admin.py @@ -1,132 +1,10 @@ """Admin classes.""" from django.contrib import admin -from django.db.models.fields import CharField from django.http.request import HttpRequest from djmoney.contrib.exchange.admin import RateAdmin from djmoney.contrib.exchange.models import Rate -from import_export.exceptions import ImportExportError -from import_export.resources import ModelResource - - -class InvenTreeResource(ModelResource): - """Custom subclass of the ModelResource class provided by django-import-export". - - Ensures that exported data are escaped to prevent malicious formula injection. - Ref: https://owasp.org/www-community/attacks/CSV_Injection - """ - - MAX_IMPORT_ROWS = 1000 - MAX_IMPORT_COLS = 100 - - # List of fields which should be converted to empty strings if they are null - CONVERT_NULL_FIELDS = [] - - def import_data_inner( - self, - dataset, - dry_run, - raise_errors, - using_transactions, - collect_failed_rows, - rollback_on_validation_errors=None, - **kwargs, - ): - """Override the default import_data_inner function to provide better error handling.""" - if len(dataset) > self.MAX_IMPORT_ROWS: - raise ImportExportError( - f'Dataset contains too many rows (max {self.MAX_IMPORT_ROWS})' - ) - - if len(dataset.headers) > self.MAX_IMPORT_COLS: - raise ImportExportError( - f'Dataset contains too many columns (max {self.MAX_IMPORT_COLS})' - ) - - return super().import_data_inner( - dataset, - dry_run, - raise_errors, - using_transactions, - collect_failed_rows, - rollback_on_validation_errors=rollback_on_validation_errors, - **kwargs, - ) - - def export_resource(self, obj): - """Custom function to override default row export behavior. - - Specifically, strip illegal leading characters to prevent formula injection - """ - row = super().export_resource(obj) - - illegal_start_vals = ['@', '=', '+', '-', '@', '\t', '\r', '\n'] - - for idx, val in enumerate(row): - if type(val) is str: - val = val.strip() - - # If the value starts with certain 'suspicious' values, remove it! - while len(val) > 0 and val[0] in illegal_start_vals: - # Remove the first character - val = val[1:] - - row[idx] = val - - return row - - def get_fields(self, **kwargs): - """Return fields, with some common exclusions.""" - fields = super().get_fields(**kwargs) - - fields_to_exclude = ['metadata', 'lft', 'rght', 'tree_id', 'level'] - - return [f for f in fields if f.column_name not in fields_to_exclude] - - def before_import(self, dataset, using_transactions, dry_run, **kwargs): - """Run custom code before importing data. - - - Determine the list of fields which need to be converted to empty strings - """ - # Construct a map of field names - db_fields = {field.name: field for field in self.Meta.model._meta.fields} - - for field_name, field in self.fields.items(): - # Skip read-only fields (they cannot be imported) - if field.readonly: - continue - - # Determine the name of the associated column in the dataset - column = getattr(field, 'column_name', field_name) - - # Determine the attribute name of the associated database field - attribute = getattr(field, 'attribute', field_name) - - # Check if the associated database field is a non-nullable string - if ( - (db_field := db_fields.get(attribute)) - and ( - isinstance(db_field, CharField) - and db_field.blank - and not db_field.null - ) - and column not in self.CONVERT_NULL_FIELDS - ): - self.CONVERT_NULL_FIELDS.append(column) - - return super().before_import(dataset, using_transactions, dry_run, **kwargs) - - def before_import_row(self, row, row_number=None, **kwargs): - """Run custom code before importing each row. - - - Convert any null fields to empty strings, for fields which do not support null values - """ - for field in self.CONVERT_NULL_FIELDS: - if field in row and row[field] is None: - row[field] = '' - - return super().before_import_row(row, row_number, **kwargs) class CustomRateAdmin(RateAdmin): diff --git a/src/backend/InvenTree/InvenTree/settings.py b/src/backend/InvenTree/InvenTree/settings.py index f8c53e1271..30d6cb7358 100644 --- a/src/backend/InvenTree/InvenTree/settings.py +++ b/src/backend/InvenTree/InvenTree/settings.py @@ -282,7 +282,6 @@ INSTALLED_APPS = [ 'django_filters', # Extended filter functionality 'rest_framework', # DRF (Django Rest Framework) 'corsheaders', # Cross-origin Resource Sharing for DRF - 'import_export', # Import / export tables to file 'django_cleanup.apps.CleanupConfig', # Automatically delete orphaned MEDIA files 'mptt', # Modified Preorder Tree Traversal 'markdownify', # Markdown template rendering @@ -1052,9 +1051,6 @@ USE_TZ = bool(not TESTING) DATE_INPUT_FORMATS = ['%Y-%m-%d'] -# Use database transactions when importing / exporting data -IMPORT_EXPORT_USE_TRANSACTIONS = True - # Site URL can be specified statically, or via a run-time setting SITE_URL = get_setting('INVENTREE_SITE_URL', 'site_url', None) diff --git a/src/backend/InvenTree/InvenTree/views.py b/src/backend/InvenTree/InvenTree/views.py index a20836fc9f..4dee011266 100644 --- a/src/backend/InvenTree/InvenTree/views.py +++ b/src/backend/InvenTree/InvenTree/views.py @@ -4,15 +4,7 @@ In particular these views provide base functionality for rendering Django forms as JSON objects and passing them to modal forms (using jQuery / bootstrap). """ -from django.contrib.auth.mixins import PermissionRequiredMixin -from django.http import HttpResponse, HttpResponseRedirect, JsonResponse -from django.template.loader import render_to_string -from django.views import View -from django.views.generic import DeleteView, DetailView, ListView, UpdateView - -from users.models import RuleSet, check_user_role - -from .helpers import is_ajax +from django.http import HttpResponse def auth_request(request): @@ -20,354 +12,6 @@ def auth_request(request): Useful for (for example) redirecting authentication requests through django's permission framework. """ - if request.user.is_authenticated: + if request.user and request.user.is_authenticated: return HttpResponse(status=200) return HttpResponse(status=403) - - -class InvenTreeRoleMixin(PermissionRequiredMixin): - """Permission class based on user roles, not user 'permissions'. - - There are a number of ways that the permissions can be specified for a view: - - 1. Specify the 'role_required' attribute (e.g. part.change) - 2. Specify the 'permission_required' attribute (e.g. part.change_bomitem) - (Note: This is the "normal" django-esque way of doing this) - 3. Do nothing. The mixin will attempt to "guess" what permission you require: - a) If there is a queryset associated with the View, we have the model! - b) The *type* of View tells us the permission level (e.g. AjaxUpdateView = change) - c) 1 + 1 = 3 - d) Use the combination of model + permission as we would in 2) - - 1. Specify the 'role_required' attribute - ===================================== - To specify which role is required for the mixin, - set the class attribute 'role_required' to something like the following: - - role_required = 'part.add' - role_required = [ - 'part.change', - 'build.add', - ] - - 2. Specify the 'permission_required' attribute - =========================================== - To specify a particular low-level permission, - set the class attribute 'permission_required' to something like: - - permission_required = 'company.delete_company' - - 3. Do Nothing - ========== - - See above. - """ - - # By default, no roles are required - # Roles must be specified - role_required = None - - def has_permission(self): - """Determine if the current user has specified permissions.""" - roles_required = [] - - if type(self.role_required) is str: - roles_required.append(self.role_required) - elif type(self.role_required) in [list, tuple]: - roles_required = self.role_required - - user = self.request.user - - # Superuser can have any permissions they desire - if user.is_superuser: - return True - - for required in roles_required: - (role, permission) = required.split('.') - - if role not in RuleSet.RULESET_NAMES: - raise ValueError(f"Role '{role}' is not a valid role") - - if permission not in RuleSet.RULESET_PERMISSIONS: - raise ValueError(f"Permission '{permission}' is not a valid permission") - - # Return False if the user does not have *any* of the required roles - if not check_user_role(user, role, permission): - return False - - # If a permission_required is specified, use that! - if self.permission_required: - # Ignore role-based permissions - return super().has_permission() - - # Ok, so at this point we have not explicitly require a "role" or a "permission" - # Instead, we will use the model to introspect the data we need - - model = getattr(self, 'model', None) - - if not model: - queryset = getattr(self, 'queryset', None) - - if queryset is not None: - model = queryset.model - - # We were able to introspect a database model - if model is not None: - app_label = model._meta.app_label - model_name = model._meta.model_name - - table = f'{app_label}_{model_name}' - - permission = self.get_permission_class() - - if not permission: - raise AttributeError( - f'permission_class not defined for {type(self).__name__}' - ) - - # Check if the user has the required permission - return RuleSet.check_table_permission(user, table, permission) - - # We did not fail any required checks - return True - - def get_permission_class(self): - """Return the 'permission_class' required for the current View. - - Must be one of: - - - view - - change - - add - - delete - - This can either be explicitly defined, by setting the - 'permission_class' attribute, - or it can be "guessed" by looking at the type of class - """ - perm = getattr(self, 'permission_class', None) - - # Permission is specified by the class itself - if perm: - return perm - - # Otherwise, we will need to have a go at guessing... - permission_map = { - AjaxView: 'view', - ListView: 'view', - DetailView: 'view', - UpdateView: 'change', - DeleteView: 'delete', - AjaxUpdateView: 'change', - } - - for view_class in permission_map: - if issubclass(type(self), view_class): - return permission_map[view_class] - - return None - - -class AjaxMixin(InvenTreeRoleMixin): - """AjaxMixin provides basic functionality for rendering a Django form to JSON. Handles jsonResponse rendering, and adds extra data for the modal forms to process on the client side. - - Any view which inherits the AjaxMixin will need - correct permissions set using the 'role_required' attribute - """ - - # By default, allow *any* role - role_required = None - - # By default, point to the modal_form template - # (this can be overridden by a child class) - ajax_template_name = 'modal_form.html' - - ajax_form_title = '' - - def get_form_title(self): - """Default implementation - return the ajax_form_title variable.""" - return self.ajax_form_title - - def get_param(self, name, method='GET'): - """Get a request query parameter value from URL e.g. ?part=3. - - Args: - name: Variable name e.g. 'part' - method: Request type ('GET' or 'POST') - - Returns: - Value of the supplier parameter or None if parameter is not available - """ - if method == 'POST': - return self.request.POST.get(name, None) - return self.request.GET.get(name, None) - - def get_data(self): - """Get extra context data (default implementation is empty dict). - - Returns: - dict object (empty) - """ - return {} - - def validate(self, obj, form, **kwargs): - """Hook for performing custom form validation steps. - - If a form error is detected, add it to the form, - with 'form.add_error()' - - Ref: https://docs.djangoproject.com/en/dev/topics/forms/ - """ - # Do nothing by default - - def renderJsonResponse(self, request, form=None, data=None, context=None): - """Render a JSON response based on specific class context. - - Args: - request: HTTP request object (e.g. GET / POST) - form: Django form object (may be None) - data: Extra JSON data to pass to client - context: Extra context data to pass to template rendering - - Returns: - JSON response object - """ - # a empty dict as default can be dangerous - set it here if empty - if not data: - data = {} - - if not is_ajax(request): - return HttpResponseRedirect('/') - - if context is None: - try: - context = self.get_context_data() - except AttributeError: - context = {} - - # If no 'form' argument is supplied, look at the underlying class - if form is None: - try: - form = self.get_form() - except AttributeError: - pass - - if form: - context['form'] = form - else: - context['form'] = None - - data['title'] = self.get_form_title() - - data['html_form'] = render_to_string( - self.ajax_template_name, context, request=request - ) - - # Custom feedback`data - fb = self.get_data() - - for key in fb: - data[key] = fb[key] - - return JsonResponse(data, safe=False) - - -class AjaxView(AjaxMixin, View): - """An 'AJAXified' View for displaying an object.""" - - def post(self, request, *args, **kwargs): - """Return a json formatted response. - - This renderJsonResponse function must be supplied by your function. - """ - return self.renderJsonResponse(request) - - def get(self, request, *args, **kwargs): - """Return a json formatted response. - - This renderJsonResponse function must be supplied by your function. - """ - return self.renderJsonResponse(request) - - -class AjaxUpdateView(AjaxMixin, UpdateView): - """An 'AJAXified' UpdateView for updating an object in the db. - - - Returns form in JSON format (for delivery to a modal window) - - Handles repeated form validation (via AJAX) until the form is valid - """ - - def get(self, request, *args, **kwargs): - """Respond to GET request. - - - Populates form with object data - - Renders form to JSON and returns to client - """ - super(UpdateView, self).get(request, *args, **kwargs) - - return self.renderJsonResponse( - request, self.get_form(), context=self.get_context_data() - ) - - def save(self, obj, form, **kwargs): - """Method for updating the object in the database. Default implementation is very simple, but can be overridden if required. - - Args: - obj: The current object, to be updated - form: The validated form - - Returns: - object instance for supplied form - """ - self.object = form.save() - - return self.object - - def post(self, request, *args, **kwargs): - """Respond to POST request. - - - Updates model with POST field data - - Performs form and object validation - - If errors exist, re-render the form - - Otherwise, return success status - """ - self.request = request - - # Make sure we have an object to point to - self.object = self.get_object() - - form = self.get_form() - - # Perform initial form validation - form.is_valid() - - # Perform custom validation - self.validate(self.object, form) - - valid = form.is_valid() - - data = { - 'form_valid': valid, - 'form_errors': form.errors.as_json(), - 'non_field_errors': form.non_field_errors().as_json(), - } - - # Add in any extra class data - for value, key in enumerate(self.get_data()): - data[key] = value - - if valid: - # Save the updated object to the database - self.save(self.object, form) - - self.object = self.get_object() - - # Include context data about the updated object - data['pk'] = self.object.pk - - try: - data['url'] = self.object.get_absolute_url() - except AttributeError: - pass - - return self.renderJsonResponse(request, form, data) diff --git a/src/backend/InvenTree/build/admin.py b/src/backend/InvenTree/build/admin.py index 1a12166fa4..a166700fb6 100644 --- a/src/backend/InvenTree/build/admin.py +++ b/src/backend/InvenTree/build/admin.py @@ -2,57 +2,11 @@ from django.contrib import admin -from import_export.admin import ImportExportModelAdmin -from import_export.fields import Field -from import_export import widgets - from build.models import Build, BuildLine, BuildItem -from InvenTree.admin import InvenTreeResource -import part.models - - -class BuildResource(InvenTreeResource): - """Class for managing import/export of Build data.""" - # For some reason, we need to specify the fields individually for this ModelResource, - # but we don't for other ones. - # TODO: 2022-05-12 - Need to investigate why this is the case! - - class Meta: - """Metaclass options.""" - models = Build - skip_unchanged = True - report_skipped = False - clean_model_instances = True - exclude = [ - 'lft', 'rght', 'tree_id', 'level', - 'metadata', - ] - - id = Field(attribute='pk', widget=widgets.IntegerWidget()) - - reference = Field(attribute='reference') - - title = Field(attribute='title') - - part = Field(attribute='part', widget=widgets.ForeignKeyWidget(part.models.Part)) - - part_name = Field(attribute='part__full_name', readonly=True) - - overdue = Field(attribute='is_overdue', readonly=True, widget=widgets.BooleanWidget()) - - completed = Field(attribute='completed', readonly=True) - - quantity = Field(attribute='quantity') - - status = Field(attribute='status') - - batch = Field(attribute='batch') - - notes = Field(attribute='notes') @admin.register(Build) -class BuildAdmin(ImportExportModelAdmin): +class BuildAdmin(admin.ModelAdmin): """Class for managing the Build model via the admin interface""" exclude = [ diff --git a/src/backend/InvenTree/common/admin.py b/src/backend/InvenTree/common/admin.py index a2b02522db..1326085082 100644 --- a/src/backend/InvenTree/common/admin.py +++ b/src/backend/InvenTree/common/admin.py @@ -2,8 +2,6 @@ from django.contrib import admin -from import_export.admin import ImportExportModelAdmin - import common.models import common.validators @@ -45,7 +43,7 @@ class BarcodeScanResultAdmin(admin.ModelAdmin): @admin.register(common.models.ProjectCode) -class ProjectCodeAdmin(ImportExportModelAdmin): +class ProjectCodeAdmin(admin.ModelAdmin): """Admin settings for ProjectCode.""" list_display = ('code', 'description') @@ -54,7 +52,7 @@ class ProjectCodeAdmin(ImportExportModelAdmin): @admin.register(common.models.InvenTreeSetting) -class SettingsAdmin(ImportExportModelAdmin): +class SettingsAdmin(admin.ModelAdmin): """Admin settings for InvenTreeSetting.""" list_display = ('key', 'value') @@ -67,7 +65,7 @@ class SettingsAdmin(ImportExportModelAdmin): @admin.register(common.models.InvenTreeUserSetting) -class UserSettingsAdmin(ImportExportModelAdmin): +class UserSettingsAdmin(admin.ModelAdmin): """Admin settings for InvenTreeUserSetting.""" list_display = ('key', 'value', 'user') @@ -80,7 +78,7 @@ class UserSettingsAdmin(ImportExportModelAdmin): @admin.register(common.models.WebhookEndpoint) -class WebhookAdmin(ImportExportModelAdmin): +class WebhookAdmin(admin.ModelAdmin): """Admin settings for Webhook.""" list_display = ('endpoint_id', 'name', 'active', 'user') @@ -119,4 +117,4 @@ class NewsFeedEntryAdmin(admin.ModelAdmin): list_display = ('title', 'author', 'published', 'summary') -admin.site.register(common.models.WebhookMessage, ImportExportModelAdmin) +admin.site.register(common.models.WebhookMessage, admin.ModelAdmin) diff --git a/src/backend/InvenTree/company/admin.py b/src/backend/InvenTree/company/admin.py index ae33a409ba..64610709af 100644 --- a/src/backend/InvenTree/company/admin.py +++ b/src/backend/InvenTree/company/admin.py @@ -2,14 +2,7 @@ from django.contrib import admin -from import_export import widgets -from import_export.admin import ImportExportModelAdmin -from import_export.fields import Field - import company.serializers -import importer.admin -from InvenTree.admin import InvenTreeResource -from part.models import Part from .models import ( Address, @@ -22,50 +15,17 @@ from .models import ( ) -class CompanyResource(InvenTreeResource): - """Class for managing Company data import/export.""" - - class Meta: - """Metaclass defines extra options.""" - - model = Company - skip_unchanged = True - report_skipped = False - clean_model_instances = True - - @admin.register(Company) -class CompanyAdmin(importer.admin.DataExportAdmin, ImportExportModelAdmin): +class CompanyAdmin(admin.ModelAdmin): """Admin class for the Company model.""" serializer_class = company.serializers.CompanySerializer - resource_class = CompanyResource list_display = ('name', 'website', 'contact') search_fields = ['name', 'description'] -class SupplierPartResource(InvenTreeResource): - """Class for managing SupplierPart data import/export.""" - - class Meta: - """Metaclass defines extra admin options.""" - - model = SupplierPart - skip_unchanged = True - report_skipped = True - clean_model_instances = True - - part = Field(attribute='part', widget=widgets.ForeignKeyWidget(Part)) - - part_name = Field(attribute='part__full_name', readonly=True) - - supplier = Field(attribute='supplier', widget=widgets.ForeignKeyWidget(Company)) - - supplier_name = Field(attribute='supplier__name', readonly=True) - - class SupplierPriceBreakInline(admin.TabularInline): """Inline for supplier-part pricing.""" @@ -73,11 +33,9 @@ class SupplierPriceBreakInline(admin.TabularInline): @admin.register(SupplierPart) -class SupplierPartAdmin(ImportExportModelAdmin): +class SupplierPartAdmin(admin.ModelAdmin): """Admin class for the SupplierPart model.""" - resource_class = SupplierPartResource - list_display = ('part', 'supplier', 'SKU') search_fields = ['supplier__name', 'part__name', 'manufacturer_part__MPN', 'SKU'] @@ -87,34 +45,10 @@ class SupplierPartAdmin(ImportExportModelAdmin): autocomplete_fields = ('part', 'supplier', 'manufacturer_part') -class ManufacturerPartResource(InvenTreeResource): - """Class for managing ManufacturerPart data import/export.""" - - class Meta: - """Metaclass defines extra admin options.""" - - model = ManufacturerPart - skip_unchanged = True - report_skipped = True - clean_model_instances = True - - part = Field(attribute='part', widget=widgets.ForeignKeyWidget(Part)) - - part_name = Field(attribute='part__full_name', readonly=True) - - manufacturer = Field( - attribute='manufacturer', widget=widgets.ForeignKeyWidget(Company) - ) - - manufacturer_name = Field(attribute='manufacturer__name', readonly=True) - - @admin.register(ManufacturerPart) -class ManufacturerPartAdmin(ImportExportModelAdmin): +class ManufacturerPartAdmin(admin.ModelAdmin): """Admin class for ManufacturerPart model.""" - resource_class = ManufacturerPartResource - list_display = ('part', 'manufacturer', 'MPN') search_fields = ['manufacturer__name', 'part__name', 'MPN'] @@ -122,24 +56,10 @@ class ManufacturerPartAdmin(ImportExportModelAdmin): autocomplete_fields = ('part', 'manufacturer') -class ManufacturerPartParameterResource(InvenTreeResource): - """Class for managing ManufacturerPartParameter data import/export.""" - - class Meta: - """Metaclass defines extra admin options.""" - - model = ManufacturerPartParameter - skip_unchanged = True - report_skipped = True - clean_model_instance = True - - @admin.register(ManufacturerPartParameter) -class ManufacturerPartParameterAdmin(ImportExportModelAdmin): +class ManufacturerPartParameterAdmin(admin.ModelAdmin): """Admin class for ManufacturerPartParameter model.""" - resource_class = ManufacturerPartParameterResource - list_display = ('manufacturer_part', 'name', 'value') search_fields = ['manufacturer_part__manufacturer__name', 'name', 'value'] @@ -147,61 +67,19 @@ class ManufacturerPartParameterAdmin(ImportExportModelAdmin): autocomplete_fields = ('manufacturer_part',) -class SupplierPriceBreakResource(InvenTreeResource): - """Class for managing SupplierPriceBreak data import/export.""" - - class Meta: - """Metaclass defines extra admin options.""" - - model = SupplierPriceBreak - skip_unchanged = True - report_skipped = False - clean_model_instances = True - - part = Field(attribute='part', widget=widgets.ForeignKeyWidget(SupplierPart)) - - supplier_id = Field(attribute='part__supplier__pk', readonly=True) - - supplier_name = Field(attribute='part__supplier__name', readonly=True) - - part_name = Field(attribute='part__part__full_name', readonly=True) - - SKU = Field(attribute='part__SKU', readonly=True) - - MPN = Field(attribute='part__MPN', readonly=True) - - @admin.register(SupplierPriceBreak) -class SupplierPriceBreakAdmin(ImportExportModelAdmin): +class SupplierPriceBreakAdmin(admin.ModelAdmin): """Admin class for the SupplierPriceBreak model.""" - resource_class = SupplierPriceBreakResource - list_display = ('part', 'quantity', 'price') autocomplete_fields = ('part',) -class AddressResource(InvenTreeResource): - """Class for managing Address data import/export.""" - - class Meta: - """Metaclass defining extra options.""" - - model = Address - skip_unchanged = True - report_skipped = False - clean_model_instances = True - - company = Field(attribute='company', widget=widgets.ForeignKeyWidget(Company)) - - @admin.register(Address) -class AddressAdmin(ImportExportModelAdmin): +class AddressAdmin(admin.ModelAdmin): """Admin class for the Address model.""" - resource_class = AddressResource - list_display = ('company', 'line1', 'postal_code', 'country') search_fields = ['company', 'country', 'postal_code'] @@ -209,26 +87,10 @@ class AddressAdmin(ImportExportModelAdmin): autocomplete_fields = ['company'] -class ContactResource(InvenTreeResource): - """Class for managing Contact data import/export.""" - - class Meta: - """Metaclass defining extra options.""" - - model = Contact - skip_unchanged = True - report_skipped = False - clean_model_instances = True - - company = Field(attribute='company', widget=widgets.ForeignKeyWidget(Company)) - - @admin.register(Contact) -class ContactAdmin(ImportExportModelAdmin): +class ContactAdmin(admin.ModelAdmin): """Admin class for the Contact model.""" - resource_class = ContactResource - list_display = ('company', 'name', 'role', 'email', 'phone') search_fields = ['company', 'name', 'email'] diff --git a/src/backend/InvenTree/importer/admin.py b/src/backend/InvenTree/importer/admin.py index a33f2e7b50..45579ab44c 100644 --- a/src/backend/InvenTree/importer/admin.py +++ b/src/backend/InvenTree/importer/admin.py @@ -69,11 +69,3 @@ class DataImportRowAdmin(admin.ModelAdmin): def get_readonly_fields(self, request, obj=None): """Return the readonly fields for the admin interface.""" return ['session', 'row_index', 'row_data', 'errors', 'valid'] - - -class DataExportAdmin(admin.ModelAdmin): - """Custom admin class mixin allowing for data export functionality.""" - - serializer_class = None - - # TODO: Add custom admin action to export queryset data diff --git a/src/backend/InvenTree/order/admin.py b/src/backend/InvenTree/order/admin.py index a26d7499a3..097492b06b 100644 --- a/src/backend/InvenTree/order/admin.py +++ b/src/backend/InvenTree/order/admin.py @@ -1,54 +1,10 @@ """Admin functionality for the 'order' app.""" from django.contrib import admin -from django.utils.translation import gettext_lazy as _ -from import_export import widgets -from import_export.admin import ImportExportModelAdmin -from import_export.fields import Field - -import stock.models -from InvenTree.admin import InvenTreeResource from order import models -class ProjectCodeResourceMixin: - """Mixin for exporting project code data.""" - - project_code = Field(attribute='project_code', column_name=_('Project Code')) - - def dehydrate_project_code(self, order): - """Return the project code value, not the pk.""" - if order.project_code: - return order.project_code.code - return '' - - -class TotalPriceResourceMixin: - """Mixin for exporting total price data.""" - - total_price = Field(attribute='total_price', column_name=_('Total Price')) - - def dehydrate_total_price(self, order): - """Return the total price amount, not the object itself.""" - if order.total_price: - return order.total_price.amount - return '' - - -class PriceResourceMixin: - """Mixin for 'price' field.""" - - price = Field(attribute='price', column_name=_('Price')) - - def dehydrate_price(self, line): - """Return the price amount, not the object itself.""" - if line.price: - return line.price.amount - return '' - - -# region general classes class GeneralExtraLineAdmin: """Admin class template for the 'ExtraLineItem' models.""" @@ -67,9 +23,6 @@ class GeneralExtraLineMeta: clean_model_instances = True -# endregion - - class PurchaseOrderLineItemInlineAdmin(admin.StackedInline): """Inline admin class for the PurchaseOrderLineItem model.""" @@ -77,35 +30,10 @@ class PurchaseOrderLineItemInlineAdmin(admin.StackedInline): extra = 0 -class PurchaseOrderResource( - ProjectCodeResourceMixin, TotalPriceResourceMixin, InvenTreeResource -): - """Class for managing import / export of PurchaseOrder data.""" - - class Meta: - """Metaclass options.""" - - model = models.PurchaseOrder - skip_unchanged = True - clean_model_instances = True - exclude = ['metadata'] - - # Add number of line items - line_items = Field( - attribute='line_count', widget=widgets.IntegerWidget(), readonly=True - ) - - # Is this order overdue? - overdue = Field( - attribute='is_overdue', widget=widgets.BooleanWidget(), readonly=True - ) - - -class PurchaseOrderAdmin(ImportExportModelAdmin): +@admin.register(models.PurchaseOrder) +class PurchaseOrderAdmin(admin.ModelAdmin): """Admin class for the PurchaseOrder model.""" - resource_class = PurchaseOrderResource - exclude = ['reference_int'] list_display = ('reference', 'supplier', 'status', 'description', 'creation_date') @@ -117,35 +45,10 @@ class PurchaseOrderAdmin(ImportExportModelAdmin): autocomplete_fields = ['supplier', 'project_code', 'contact', 'address'] -class SalesOrderResource( - ProjectCodeResourceMixin, TotalPriceResourceMixin, InvenTreeResource -): - """Class for managing import / export of SalesOrder data.""" - - class Meta: - """Metaclass options.""" - - model = models.SalesOrder - skip_unchanged = True - clean_model_instances = True - exclude = ['metadata'] - - # Add number of line items - line_items = Field( - attribute='line_count', widget=widgets.IntegerWidget(), readonly=True - ) - - # Is this order overdue? - overdue = Field( - attribute='is_overdue', widget=widgets.BooleanWidget(), readonly=True - ) - - -class SalesOrderAdmin(ImportExportModelAdmin): +@admin.register(models.SalesOrder) +class SalesOrderAdmin(admin.ModelAdmin): """Admin class for the SalesOrder model.""" - resource_class = SalesOrderResource - exclude = ['reference_int'] list_display = ('reference', 'customer', 'status', 'description', 'creation_date') @@ -155,89 +58,10 @@ class SalesOrderAdmin(ImportExportModelAdmin): autocomplete_fields = ['customer', 'project_code', 'contact', 'address'] -class PurchaseOrderLineItemResource(PriceResourceMixin, InvenTreeResource): - """Class for managing import / export of PurchaseOrderLineItem data.""" - - class Meta: - """Metaclass.""" - - model = models.PurchaseOrderLineItem - skip_unchanged = True - report_skipped = False - clean_model_instances = True - - part_name = Field(attribute='part__part__name', readonly=True) - - manufacturer = Field(attribute='part__manufacturer', readonly=True) - - MPN = Field(attribute='part__MPN', readonly=True) - - SKU = Field(attribute='part__SKU', readonly=True) - - destination = Field( - attribute='destination', - widget=widgets.ForeignKeyWidget(stock.models.StockLocation), - ) - - def dehydrate_purchase_price(self, line): - """Return a string value of the 'purchase_price' field, rather than the 'Money' object.""" - if line.purchase_price: - return line.purchase_price.amount - return '' - - -class PurchaseOrderExtraLineResource(PriceResourceMixin, InvenTreeResource): - """Class for managing import / export of PurchaseOrderExtraLine data.""" - - class Meta(GeneralExtraLineMeta): - """Metaclass options.""" - - model = models.PurchaseOrderExtraLine - - -class SalesOrderLineItemResource(PriceResourceMixin, InvenTreeResource): - """Class for managing import / export of SalesOrderLineItem data.""" - - class Meta: - """Metaclass options.""" - - model = models.SalesOrderLineItem - skip_unchanged = True - report_skipped = False - clean_model_instances = True - - part_name = Field(attribute='part__name', readonly=True) - - IPN = Field(attribute='part__IPN', readonly=True) - - description = Field(attribute='part__description', readonly=True) - - fulfilled = Field(attribute='fulfilled_quantity', readonly=True) - - def dehydrate_sale_price(self, item): - """Return a string value of the 'sale_price' field, rather than the 'Money' object. - - Ref: https://github.com/inventree/InvenTree/issues/2207 - """ - if item.sale_price: - return item.sale_price.amount - return '' - - -class SalesOrderExtraLineResource(PriceResourceMixin, InvenTreeResource): - """Class for managing import / export of SalesOrderExtraLine data.""" - - class Meta(GeneralExtraLineMeta): - """Metaclass options.""" - - model = models.SalesOrderExtraLine - - -class PurchaseOrderLineItemAdmin(ImportExportModelAdmin): +@admin.register(models.PurchaseOrderLineItem) +class PurchaseOrderLineItemAdmin(admin.ModelAdmin): """Admin class for the PurchaseOrderLine model.""" - resource_class = PurchaseOrderLineItemResource - list_display = ('order', 'part', 'quantity', 'reference') search_fields = ('reference',) @@ -245,17 +69,15 @@ class PurchaseOrderLineItemAdmin(ImportExportModelAdmin): autocomplete_fields = ('order', 'part', 'destination') -class PurchaseOrderExtraLineAdmin(GeneralExtraLineAdmin, ImportExportModelAdmin): +@admin.register(models.PurchaseOrderExtraLine) +class PurchaseOrderExtraLineAdmin(GeneralExtraLineAdmin, admin.ModelAdmin): """Admin class for the PurchaseOrderExtraLine model.""" - resource_class = PurchaseOrderExtraLineResource - -class SalesOrderLineItemAdmin(ImportExportModelAdmin): +@admin.register(models.SalesOrderLineItem) +class SalesOrderLineItemAdmin(admin.ModelAdmin): """Admin class for the SalesOrderLine model.""" - resource_class = SalesOrderLineItemResource - list_display = ('order', 'part', 'quantity', 'reference') search_fields = [ @@ -268,13 +90,13 @@ class SalesOrderLineItemAdmin(ImportExportModelAdmin): autocomplete_fields = ('order', 'part') -class SalesOrderExtraLineAdmin(GeneralExtraLineAdmin, ImportExportModelAdmin): +@admin.register(models.SalesOrderExtraLine) +class SalesOrderExtraLineAdmin(GeneralExtraLineAdmin, admin.ModelAdmin): """Admin class for the SalesOrderExtraLine model.""" - resource_class = SalesOrderExtraLineResource - -class SalesOrderShipmentAdmin(ImportExportModelAdmin): +@admin.register(models.SalesOrderShipment) +class SalesOrderShipmentAdmin(admin.ModelAdmin): """Admin class for the SalesOrderShipment model.""" list_display = ['order', 'shipment_date', 'reference'] @@ -284,7 +106,8 @@ class SalesOrderShipmentAdmin(ImportExportModelAdmin): autocomplete_fields = ('order',) -class SalesOrderAllocationAdmin(ImportExportModelAdmin): +@admin.register(models.SalesOrderAllocation) +class SalesOrderAllocationAdmin(admin.ModelAdmin): """Admin class for the SalesOrderAllocation model.""" list_display = ('line', 'item', 'quantity') @@ -292,25 +115,10 @@ class SalesOrderAllocationAdmin(ImportExportModelAdmin): autocomplete_fields = ('line', 'shipment', 'item') -class ReturnOrderResource( - ProjectCodeResourceMixin, TotalPriceResourceMixin, InvenTreeResource -): - """Class for managing import / export of ReturnOrder data.""" - - class Meta: - """Metaclass options.""" - - model = models.ReturnOrder - skip_unchanged = True - clean_model_instances = True - exclude = ['metadata'] - - -class ReturnOrderAdmin(ImportExportModelAdmin): +@admin.register(models.ReturnOrder) +class ReturnOrderAdmin(admin.ModelAdmin): """Admin class for the ReturnOrder model.""" - resource_class = ReturnOrderResource - exclude = ['reference_int'] list_display = ['reference', 'customer', 'status'] @@ -320,54 +128,13 @@ class ReturnOrderAdmin(ImportExportModelAdmin): autocomplete_fields = ['customer', 'project_code', 'contact', 'address'] -class ReturnOrderLineItemResource(PriceResourceMixin, InvenTreeResource): - """Class for managing import / export of ReturnOrderLineItem data.""" - - class Meta: - """Metaclass options.""" - - model = models.ReturnOrderLineItem - skip_unchanged = True - report_skipped = False - clean_model_instances = True - - -class ReturnOrderLineItemAdmin(ImportExportModelAdmin): +@admin.register(models.ReturnOrderLineItem) +class ReturnOrderLineItemAdmin(admin.ModelAdmin): """Admin class for ReturnOrderLine model.""" - resource_class = ReturnOrderLineItemResource - list_display = ['order', 'item', 'reference'] -class ReturnOrderExtraLineClass(PriceResourceMixin, InvenTreeResource): - """Class for managing import/export of ReturnOrderExtraLine data.""" - - class Meta(GeneralExtraLineMeta): - """Metaclass options.""" - - model = models.ReturnOrderExtraLine - - -class ReturnOrdeerExtraLineAdmin(GeneralExtraLineAdmin, ImportExportModelAdmin): +@admin.register(models.ReturnOrderExtraLine) +class ReturnOrdeerExtraLineAdmin(GeneralExtraLineAdmin, admin.ModelAdmin): """Admin class for the ReturnOrderExtraLine model.""" - - resource_class = ReturnOrderExtraLineClass - - -# Purchase Order models -admin.site.register(models.PurchaseOrder, PurchaseOrderAdmin) -admin.site.register(models.PurchaseOrderLineItem, PurchaseOrderLineItemAdmin) -admin.site.register(models.PurchaseOrderExtraLine, PurchaseOrderExtraLineAdmin) - -# Sales Order models -admin.site.register(models.SalesOrder, SalesOrderAdmin) -admin.site.register(models.SalesOrderLineItem, SalesOrderLineItemAdmin) -admin.site.register(models.SalesOrderExtraLine, SalesOrderExtraLineAdmin) -admin.site.register(models.SalesOrderShipment, SalesOrderShipmentAdmin) -admin.site.register(models.SalesOrderAllocation, SalesOrderAllocationAdmin) - -# Return Order models -admin.site.register(models.ReturnOrder, ReturnOrderAdmin) -admin.site.register(models.ReturnOrderLineItem, ReturnOrderLineItemAdmin) -admin.site.register(models.ReturnOrderExtraLine, ReturnOrdeerExtraLineAdmin) diff --git a/src/backend/InvenTree/part/admin.py b/src/backend/InvenTree/part/admin.py index 89a23cefcc..82a0f9ab13 100644 --- a/src/backend/InvenTree/part/admin.py +++ b/src/backend/InvenTree/part/admin.py @@ -1,225 +1,8 @@ """Admin class definitions for the 'part' app.""" from django.contrib import admin -from django.utils.translation import gettext_lazy as _ -from import_export import widgets -from import_export.admin import ImportExportModelAdmin -from import_export.fields import Field - -from company.models import SupplierPart -from InvenTree.admin import InvenTreeResource from part import models -from stock.models import StockLocation - - -class PartResource(InvenTreeResource): - """Class for managing Part data import/export.""" - - class Meta: - """Metaclass options.""" - - model = models.Part - skip_unchanged = True - report_skipped = False - clean_model_instances = True - exclude = [ - 'bom_checksum', - 'bom_checked_by', - 'bom_checked_date', - 'lft', - 'rght', - 'tree_id', - 'level', - 'metadata', - 'barcode_data', - 'barcode_hash', - ] - - id = Field(attribute='pk', column_name=_('Part ID'), widget=widgets.IntegerWidget()) - name = Field( - attribute='name', column_name=_('Part Name'), widget=widgets.CharWidget() - ) - description = Field( - attribute='description', - column_name=_('Part Description'), - widget=widgets.CharWidget(), - ) - IPN = Field(attribute='IPN', column_name=_('IPN'), widget=widgets.CharWidget()) - revision = Field( - attribute='revision', column_name=_('Revision'), widget=widgets.CharWidget() - ) - keywords = Field( - attribute='keywords', column_name=_('Keywords'), widget=widgets.CharWidget() - ) - link = Field(attribute='link', column_name=_('Link'), widget=widgets.CharWidget()) - units = Field( - attribute='units', column_name=_('Units'), widget=widgets.CharWidget() - ) - notes = Field(attribute='notes', column_name=_('Notes')) - image = Field(attribute='image', column_name=_('Part Image')) - category = Field( - attribute='category', - column_name=_('Category ID'), - widget=widgets.ForeignKeyWidget(models.PartCategory), - ) - category_name = Field( - attribute='category__name', column_name=_('Category Name'), readonly=True - ) - default_location = Field( - attribute='default_location', - column_name=_('Default Location ID'), - widget=widgets.ForeignKeyWidget(StockLocation), - ) - default_supplier = Field( - attribute='default_supplier', - column_name=_('Default Supplier ID'), - widget=widgets.ForeignKeyWidget(SupplierPart), - ) - variant_of = Field( - attribute='variant_of', - column_name=_('Variant Of'), - widget=widgets.ForeignKeyWidget(models.Part), - ) - minimum_stock = Field(attribute='minimum_stock', column_name=_('Minimum Stock')) - - # Part Attributes - active = Field( - attribute='active', column_name=_('Active'), widget=widgets.BooleanWidget() - ) - assembly = Field( - attribute='assembly', column_name=_('Assembly'), widget=widgets.BooleanWidget() - ) - component = Field( - attribute='component', - column_name=_('Component'), - widget=widgets.BooleanWidget(), - ) - purchaseable = Field( - attribute='purchaseable', - column_name=_('Purchaseable'), - widget=widgets.BooleanWidget(), - ) - salable = Field( - attribute='salable', column_name=_('Salable'), widget=widgets.BooleanWidget() - ) - is_template = Field( - attribute='is_template', - column_name=_('Template'), - widget=widgets.BooleanWidget(), - ) - trackable = Field( - attribute='trackable', - column_name=_('Trackable'), - widget=widgets.BooleanWidget(), - ) - virtual = Field( - attribute='virtual', column_name=_('Virtual'), widget=widgets.BooleanWidget() - ) - - # Extra calculated meta-data (readonly) - suppliers = Field( - attribute='supplier_count', column_name=_('Suppliers'), readonly=True - ) - in_stock = Field( - attribute='total_stock', - column_name=_('In Stock'), - readonly=True, - widget=widgets.IntegerWidget(), - ) - on_order = Field( - attribute='on_order', - column_name=_('On Order'), - readonly=True, - widget=widgets.IntegerWidget(), - ) - used_in = Field( - attribute='used_in_count', - column_name=_('Used In'), - readonly=True, - widget=widgets.IntegerWidget(), - ) - allocated = Field( - attribute='allocation_count', - column_name=_('Allocated'), - readonly=True, - widget=widgets.IntegerWidget(), - ) - building = Field( - attribute='quantity_being_built', - column_name=_('Building'), - readonly=True, - widget=widgets.IntegerWidget(), - ) - min_cost = Field( - attribute='pricing__overall_min', column_name=_('Minimum Cost'), readonly=True - ) - max_cost = Field( - attribute='pricing__overall_max', column_name=_('Maximum Cost'), readonly=True - ) - - def dehydrate_min_cost(self, part): - """Render minimum cost value for this Part.""" - min_cost = part.pricing.overall_min if part.pricing else None - - if min_cost is not None: - return float(min_cost.amount) - - def dehydrate_max_cost(self, part): - """Render maximum cost value for this Part.""" - max_cost = part.pricing.overall_max if part.pricing else None - - if max_cost is not None: - return float(max_cost.amount) - - def get_queryset(self): - """Prefetch related data for quicker access.""" - query = super().get_queryset() - query = query.prefetch_related( - 'category', - 'used_in', - 'builds', - 'supplier_parts__purchase_order_line_items', - 'stock_items__allocations', - ) - - return query - - def after_import(self, dataset, result, using_transactions, dry_run, **kwargs): - """Rebuild MPTT tree structure after importing Part data.""" - super().after_import(dataset, result, using_transactions, dry_run, **kwargs) - - # Rebuild the Part tree(s) - models.Part.objects.rebuild() - - -class PartImportResource(InvenTreeResource): - """Class for managing Part data import/export.""" - - class Meta(PartResource.Meta): - """Metaclass options.""" - - skip_unchanged = True - report_skipped = False - clean_model_instances = True - exclude = [ - 'id', - 'category__name', - 'creation_date', - 'creation_user', - 'pricing__overall_min', - 'pricing__overall_max', - 'bom_checksum', - 'bom_checked_by', - 'bom_checked_date', - 'lft', - 'rght', - 'tree_id', - 'level', - 'metadata', - 'barcode_data', - 'barcode_hash', - ] class PartParameterInline(admin.TabularInline): @@ -228,11 +11,10 @@ class PartParameterInline(admin.TabularInline): model = models.PartParameter -class PartAdmin(ImportExportModelAdmin): +@admin.register(models.Part) +class PartAdmin(admin.ModelAdmin): """Admin class for the Part model.""" - resource_class = PartResource - list_display = ('full_name', 'description', 'total_stock', 'category') list_filter = ('active', 'assembly', 'is_template', 'virtual') @@ -257,6 +39,7 @@ class PartAdmin(ImportExportModelAdmin): inlines = [PartParameterInline] +@admin.register(models.PartPricing) class PartPricingAdmin(admin.ModelAdmin): """Admin class for PartPricing model.""" @@ -265,81 +48,24 @@ class PartPricingAdmin(admin.ModelAdmin): autocomplete_fields = ['part'] +@admin.register(models.PartStocktake) class PartStocktakeAdmin(admin.ModelAdmin): """Admin class for PartStocktake model.""" list_display = ['part', 'date', 'quantity', 'user'] +@admin.register(models.PartStocktakeReport) class PartStocktakeReportAdmin(admin.ModelAdmin): """Admin class for PartStocktakeReport model.""" list_display = ['date', 'user'] -class PartCategoryResource(InvenTreeResource): - """Class for managing PartCategory data import/export.""" - - class Meta: - """Metaclass options.""" - - model = models.PartCategory - skip_unchanged = True - report_skipped = False - clean_model_instances = True - - exclude = [ - # Exclude MPTT internal model fields - 'lft', - 'rght', - 'tree_id', - 'level', - 'metadata', - 'icon', - ] - - id = Field( - attribute='pk', column_name=_('Category ID'), widget=widgets.IntegerWidget() - ) - name = Field(attribute='name', column_name=_('Category Name')) - description = Field(attribute='description', column_name=_('Description')) - parent = Field( - attribute='parent', - column_name=_('Parent ID'), - widget=widgets.ForeignKeyWidget(models.PartCategory), - ) - parent_name = Field( - attribute='parent__name', column_name=_('Parent Name'), readonly=True - ) - default_location = Field( - attribute='default_location', - column_name=_('Default Location ID'), - widget=widgets.ForeignKeyWidget(StockLocation), - ) - default_keywords = Field(attribute='default_keywords', column_name=_('Keywords')) - pathstring = Field(attribute='pathstring', column_name=_('Category Path')) - - # Calculated fields - parts = Field( - attribute='item_count', - column_name=_('Parts'), - widget=widgets.IntegerWidget(), - readonly=True, - ) - - def after_import(self, dataset, result, using_transactions, dry_run, **kwargs): - """Rebuild MPTT tree structure after importing PartCategory data.""" - super().after_import(dataset, result, using_transactions, dry_run, **kwargs) - - # Rebuild the PartCategory tree(s) - models.PartCategory.objects.rebuild() - - -class PartCategoryAdmin(ImportExportModelAdmin): +@admin.register(models.PartCategory) +class PartCategoryAdmin(admin.ModelAdmin): """Admin class for the PartCategory model.""" - resource_class = PartCategoryResource - list_display = ('name', 'pathstring', 'description') search_fields = ('name', 'description') @@ -347,12 +73,14 @@ class PartCategoryAdmin(ImportExportModelAdmin): autocomplete_fields = ('parent', 'default_location') +@admin.register(models.PartRelated) class PartRelatedAdmin(admin.ModelAdmin): """Class to manage PartRelated objects.""" autocomplete_fields = ('part_1', 'part_2') +@admin.register(models.PartTestTemplate) class PartTestTemplateAdmin(admin.ModelAdmin): """Admin class for the PartTestTemplate model.""" @@ -362,141 +90,10 @@ class PartTestTemplateAdmin(admin.ModelAdmin): autocomplete_fields = ('part',) -class BomItemResource(InvenTreeResource): - """Class for managing BomItem data import/export.""" - - class Meta: - """Metaclass options.""" - - model = models.BomItem - skip_unchanged = True - report_skipped = False - clean_model_instances = True - - exclude = ['checksum', 'part', 'sub_part', 'validated'] - - level = Field(attribute='level', column_name=_('BOM Level'), readonly=True) - - id = Field( - attribute='pk', column_name=_('BOM Item ID'), widget=widgets.IntegerWidget() - ) - - # ID of the parent part - parent_part_id = Field( - attribute='part', - column_name=_('Parent ID'), - widget=widgets.ForeignKeyWidget(models.Part), - ) - parent_part_ipn = Field( - attribute='part__IPN', column_name=_('Parent IPN'), readonly=True - ) - parent_part_name = Field( - attribute='part__name', column_name=_('Parent Name'), readonly=True - ) - part_id = Field( - attribute='sub_part', - column_name=_('Part ID'), - widget=widgets.ForeignKeyWidget(models.Part), - ) - part_ipn = Field( - attribute='sub_part__IPN', column_name=_('Part IPN'), readonly=True - ) - part_revision = Field( - attribute='sub_part__revision', column_name=_('Part Revision'), readonly=True - ) - part_name = Field( - attribute='sub_part__name', column_name=_('Part Name'), readonly=True - ) - part_description = Field( - attribute='sub_part__description', column_name=_('Description'), readonly=True - ) - quantity = Field(attribute='quantity', column_name=_('Quantity')) - reference = Field(attribute='reference', column_name=_('Reference')) - note = Field(attribute='note', column_name=_('Note')) - min_cost = Field( - attribute='sub_part__pricing__overall_min', - column_name=_('Minimum Price'), - readonly=True, - ) - max_cost = Field( - attribute='sub_part__pricing__overall_max', - column_name=_('Maximum Price'), - readonly=True, - ) - - sub_assembly = Field( - attribute='sub_part__assembly', column_name=_('Assembly'), readonly=True - ) - - def dehydrate_min_cost(self, item): - """Render minimum cost value for the BOM line item.""" - min_price = item.sub_part.pricing.overall_min if item.sub_part.pricing else None - - if min_price is not None: - return float(min_price.amount) * float(item.quantity) - - def dehydrate_max_cost(self, item): - """Render maximum cost value for the BOM line item.""" - max_price = item.sub_part.pricing.overall_max if item.sub_part.pricing else None - - if max_price is not None: - return float(max_price.amount) * float(item.quantity) - - def dehydrate_quantity(self, item): - """Special consideration for the 'quantity' field on data export. We do not want a spreadsheet full of "1.0000" (we'd rather "1"). - - Ref: https://django-import-export.readthedocs.io/en/latest/getting_started.html#advanced-data-manipulation-on-export - """ - return float(item.quantity) - - def before_export(self, queryset, *args, **kwargs): - """Perform before exporting data.""" - self.is_importing = kwargs.get('importing', False) - self.include_pricing = kwargs.pop('include_pricing', False) - - def get_fields(self, **kwargs): - """If we are exporting for the purposes of generating a 'bom-import' template, there are some fields which we are not interested in.""" - fields = super().get_fields(**kwargs) - - is_importing = getattr(self, 'is_importing', False) - include_pricing = getattr(self, 'include_pricing', False) - - to_remove = ['metadata'] - - if is_importing or not include_pricing: - # Remove pricing fields in this instance - to_remove += [ - 'sub_part__pricing__overall_min', - 'sub_part__pricing__overall_max', - ] - - if is_importing: - to_remove += [ - 'level', - 'part', - 'part__IPN', - 'part__name', - 'sub_part__name', - 'sub_part__description', - 'sub_part__assembly', - ] - - idx = 0 - - while idx < len(fields): - if fields[idx].attribute in to_remove: - del fields[idx] - else: - idx += 1 - - return fields - - -class BomItemAdmin(ImportExportModelAdmin): +@admin.register(models.BomItem) +class BomItemAdmin(admin.ModelAdmin): """Admin class for the BomItem model.""" - resource_class = BomItemResource - list_display = ('part', 'sub_part', 'quantity') search_fields = ( @@ -509,72 +106,32 @@ class BomItemAdmin(ImportExportModelAdmin): autocomplete_fields = ('part', 'sub_part') -class ParameterTemplateResource(InvenTreeResource): - """Class for managing ParameterTemplate import/export.""" - - # The following fields will be converted from None to '' - CONVERT_NULL_FIELDS = ['choices', 'units'] - - class Meta: - """Metaclass options.""" - - model = models.PartParameterTemplate - skip_unchanged = True - report_skipped = False - clean_model_instances = True - - exclude = ['metadata'] - - -class ParameterTemplateAdmin(ImportExportModelAdmin): +@admin.register(models.PartParameterTemplate) +class ParameterTemplateAdmin(admin.ModelAdmin): """Admin class for the PartParameterTemplate model.""" - resource_class = ParameterTemplateResource - list_display = ('name', 'units') search_fields = ('name', 'units') -class ParameterResource(InvenTreeResource): - """Class for managing PartParameter data import/export.""" - - class Meta: - """Metaclass options.""" - - model = models.PartParameter - skip_unchanged = True - report_skipped = False - clean_model_instance = True - - part = Field(attribute='part', widget=widgets.ForeignKeyWidget(models.Part)) - - part_name = Field(attribute='part__name', readonly=True) - - template = Field( - attribute='template', - widget=widgets.ForeignKeyWidget(models.PartParameterTemplate), - ) - - template_name = Field(attribute='template__name', readonly=True) - - -class ParameterAdmin(ImportExportModelAdmin): +@admin.register(models.PartParameter) +class ParameterAdmin(admin.ModelAdmin): """Admin class for the PartParameter model.""" - resource_class = ParameterResource - list_display = ('part', 'template', 'data') autocomplete_fields = ('part', 'template') +@admin.register(models.PartCategoryParameterTemplate) class PartCategoryParameterAdmin(admin.ModelAdmin): """Admin class for the PartCategoryParameterTemplate model.""" autocomplete_fields = ('category', 'parameter_template') +@admin.register(models.PartSellPriceBreak) class PartSellPriceBreakAdmin(admin.ModelAdmin): """Admin class for the PartSellPriceBreak model.""" @@ -586,6 +143,7 @@ class PartSellPriceBreakAdmin(admin.ModelAdmin): list_display = ('part', 'quantity', 'price') +@admin.register(models.PartInternalPriceBreak) class PartInternalPriceBreakAdmin(admin.ModelAdmin): """Admin class for the PartInternalPriceBreak model.""" @@ -597,18 +155,3 @@ class PartInternalPriceBreakAdmin(admin.ModelAdmin): list_display = ('part', 'quantity', 'price') autocomplete_fields = ('part',) - - -admin.site.register(models.Part, PartAdmin) -admin.site.register(models.PartCategory, PartCategoryAdmin) -admin.site.register(models.PartRelated, PartRelatedAdmin) -admin.site.register(models.BomItem, BomItemAdmin) -admin.site.register(models.PartParameterTemplate, ParameterTemplateAdmin) -admin.site.register(models.PartParameter, ParameterAdmin) -admin.site.register(models.PartCategoryParameterTemplate, PartCategoryParameterAdmin) -admin.site.register(models.PartTestTemplate, PartTestTemplateAdmin) -admin.site.register(models.PartSellPriceBreak, PartSellPriceBreakAdmin) -admin.site.register(models.PartInternalPriceBreak, PartInternalPriceBreakAdmin) -admin.site.register(models.PartPricing, PartPricingAdmin) -admin.site.register(models.PartStocktake, PartStocktakeAdmin) -admin.site.register(models.PartStocktakeReport, PartStocktakeReportAdmin) diff --git a/src/backend/InvenTree/part/api.py b/src/backend/InvenTree/part/api.py index 9412bfd169..f097cf39d8 100644 --- a/src/backend/InvenTree/part/api.py +++ b/src/backend/InvenTree/part/api.py @@ -46,7 +46,6 @@ from order.status_codes import PurchaseOrderStatusGroups, SalesOrderStatusGroups from stock.models import StockLocation from . import serializers as part_serializers -from . import views from .models import ( BomItem, BomItemSubstitute, @@ -2225,12 +2224,6 @@ part_api_urls = [ ), ]), ), - # BOM template - path( - 'bom_template/', - views.BomUploadTemplate.as_view(), - name='api-bom-upload-template', - ), path( '/', include([ @@ -2262,8 +2255,6 @@ part_api_urls = [ ), # Part pricing path('pricing/', PartPricingDetail.as_view(), name='api-part-pricing'), - # BOM download - path('bom-download/', views.BomDownload.as_view(), name='api-bom-download'), # Part detail endpoint path('', PartDetail.as_view(), name='api-part-detail'), ]), diff --git a/src/backend/InvenTree/part/bom.py b/src/backend/InvenTree/part/bom.py index 58359e89df..a479b60a53 100644 --- a/src/backend/InvenTree/part/bom.py +++ b/src/backend/InvenTree/part/bom.py @@ -3,41 +3,13 @@ Primarily BOM upload tools. """ -from collections import OrderedDict from typing import Optional -from django.utils.translation import gettext as _ +from .models import Part -from company.models import ManufacturerPart, SupplierPart -from InvenTree.helpers import DownloadFile, GetExportFormats, normalize, str2bool - -from .admin import BomItemResource -from .models import BomItem, BomItemSubstitute, Part - - -def IsValidBOMFormat(fmt): - """Test if a file format specifier is in the valid list of BOM file formats.""" - return fmt.strip().lower() in GetExportFormats() - - -def MakeBomTemplate(fmt): - """Generate a Bill of Materials upload template file (for user download).""" - fmt = fmt.strip().lower() - - if not IsValidBOMFormat(fmt): - fmt = 'csv' - - # Create an "empty" queryset, essentially. - # This will then export just the row headers! - query = BomItem.objects.filter(pk=None) - - dataset = BomItemResource().export(queryset=query, importing=True) - - data = dataset.export(fmt) - - filename = 'InvenTree_BOM_Template.' + fmt - - return DownloadFile(data, filename) +# TODO: 2024-12-17 - This entire file is to be removed +# TODO: Ref: https://github.com/inventree/InvenTree/pull/8685 +# TODO: To be removed as part of https://github.com/inventree/InvenTree/issues/8686 def ExportBom( @@ -66,6 +38,8 @@ def ExportBom( Returns: StreamingHttpResponse: Response that can be passed to the endpoint """ + # TODO: All this will be pruned!!! + """ parameter_data = str2bool(kwargs.get('parameter_data', False)) stock_data = str2bool(kwargs.get('stock_data', False)) supplier_data = str2bool(kwargs.get('supplier_data', False)) @@ -73,9 +47,6 @@ def ExportBom( pricing_data = str2bool(kwargs.get('pricing_data', False)) substitute_part_data = str2bool(kwargs.get('substitute_part_data', False)) - if not IsValidBOMFormat(fmt): - fmt = 'csv' - bom_items = [] uids = [] @@ -114,7 +85,7 @@ def ExportBom( pass if substitute_part_data: - """If requested, add extra columns for all substitute part numbers associated with each line item.""" + # If requested, add extra columns for all substitute part numbers associated with each line item. col_index = 0 substitute_cols = {} @@ -122,7 +93,7 @@ def ExportBom( for bom_item in bom_items: substitutes = BomItemSubstitute.objects.filter(bom_item=bom_item) for s_idx, substitute in enumerate(substitutes): - """Create substitute part IPN column""" + # Create substitute part IPN column. name = f'{_("Substitute IPN")}{s_idx + 1}' value = substitute.part.IPN try: @@ -130,7 +101,7 @@ def ExportBom( except KeyError: substitute_cols[name] = {col_index: value} - """Create substitute part name column""" + # Create substitute part name column. name = f'{_("Substitute Part")}{s_idx + 1}' value = substitute.part.name try: @@ -138,7 +109,7 @@ def ExportBom( except KeyError: substitute_cols[name] = {col_index: value} - """Create substitute part description column""" + # Create substitute part description column. name = f'{_("Substitute Description")}{s_idx + 1}' value = substitute.part.description try: @@ -152,8 +123,8 @@ def ExportBom( add_columns_to_dataset(substitute_cols, len(bom_items)) if parameter_data: - """If requested, add extra columns for each PartParameter associated with each line item.""" - + # If requested, add extra columns for each PartParameter associated with each line item. +3 parameter_cols = {} for b_idx, bom_item in enumerate(bom_items): @@ -177,7 +148,7 @@ def ExportBom( add_columns_to_dataset(parameter_cols_ordered, len(bom_items)) if stock_data: - """If requested, add extra columns for stock data associated with each line item.""" + # If requested, add extra columns for stock data associated with each line item. stock_headers = [ _('Default Location'), @@ -223,7 +194,7 @@ def ExportBom( add_columns_to_dataset(stock_cols, len(bom_items)) if manufacturer_data or supplier_data: - """If requested, add extra columns for each SupplierPart and ManufacturerPart associated with each line item.""" + # If requested, add extra columns for each SupplierPart and ManufacturerPart associated with each line item. # Keep track of the supplier parts we have already exported supplier_parts_used = set() @@ -329,3 +300,4 @@ def ExportBom( filename = f'{part.full_name}_BOM.{fmt}' return DownloadFile(data, filename) + """ diff --git a/src/backend/InvenTree/part/test_bom_export.py b/src/backend/InvenTree/part/test_bom_export.py deleted file mode 100644 index 69d9bdee24..0000000000 --- a/src/backend/InvenTree/part/test_bom_export.py +++ /dev/null @@ -1,172 +0,0 @@ -"""Unit testing for BOM export functionality.""" - -import csv - -from django.urls import reverse - -import part.models -from InvenTree.settings import BASE_DIR -from InvenTree.unit_test import InvenTreeTestCase - - -class BomExportTest(InvenTreeTestCase): - """Class for performing unit testing of BOM export functionality.""" - - fixtures = ['category', 'part', 'location', 'bom'] - - roles = 'all' - - def setUp(self): - """Perform test setup functions.""" - super().setUp() - - part.models.Part.objects.rebuild() - - self.url = reverse('api-bom-download', kwargs={'pk': 100}) - - def test_bom_template(self): - """Test that the BOM template can be downloaded from the server.""" - url = reverse('api-bom-upload-template') - - # Download an XLS template - response = self.client.get(url, data={'format': 'xlsx'}) - self.assertEqual(response.status_code, 200) - self.assertEqual( - response.headers['Content-Disposition'], - 'attachment; filename="InvenTree_BOM_Template.xlsx"', - ) - - # Return a simple CSV template - response = self.client.get(url, data={'format': 'csv'}) - self.assertEqual(response.status_code, 200) - self.assertEqual( - response.headers['Content-Disposition'], - 'attachment; filename="InvenTree_BOM_Template.csv"', - ) - - filename = BASE_DIR / '_testfolder' / '_tmp.csv' - - with open(filename, 'wb') as f: - f.write(response.getvalue()) - - with open(filename, encoding='utf-8') as f: - reader = csv.reader(f, delimiter=',') - - for line in reader: - headers = line - break - - expected = [ - 'Part ID', - 'Part IPN', - 'Quantity', - 'Reference', - 'Note', - 'optional', - 'overage', - 'inherited', - 'allow_variants', - ] - - # Ensure all the expected headers are in the provided file - for header in expected: - self.assertIn(header, headers) - - def test_export_csv(self): - """Test BOM download in CSV format.""" - params = { - 'format': 'csv', - 'cascade': True, - 'parameter_data': True, - 'stock_data': True, - 'supplier_data': True, - 'manufacturer_data': True, - } - - response = self.client.get(self.url, data=params) - - self.assertEqual(response.status_code, 200) - - content = response.headers['Content-Disposition'] - self.assertEqual(content, 'attachment; filename="BOB | Bob | A2_BOM.csv"') - - filename = BASE_DIR / '_testfolder' / '_tmp.csv' - - with open(filename, 'wb') as f: - f.write(response.getvalue()) - - # Read the file - with open(filename, encoding='utf-8') as f: - reader = csv.reader(f, delimiter=',') - - for line in reader: - headers = line - break - - expected = [ - 'BOM Level', - 'BOM Item ID', - 'Parent ID', - 'Parent IPN', - 'Parent Name', - 'Part ID', - 'Part IPN', - 'Part Revision', - 'Part Name', - 'Description', - 'Assembly', - 'Quantity', - 'optional', - 'consumable', - 'overage', - 'Reference', - 'Note', - 'inherited', - 'allow_variants', - 'Default Location', - 'Total Stock', - 'Available Stock', - 'On Order', - ] - - for header in expected: - self.assertIn(header, headers) - - for header in headers: - self.assertIn(header, expected) - - def test_export_xlsx(self): - """Test BOM download in XLSX format.""" - params = { - 'format': 'xlsx', - 'cascade': True, - 'parameter_data': True, - 'stock_data': True, - 'supplier_data': True, - 'manufacturer_data': True, - } - - response = self.client.get(self.url, data=params) - - self.assertEqual(response.status_code, 200) - - content = response.headers['Content-Disposition'] - self.assertEqual(content, 'attachment; filename="BOB | Bob | A2_BOM.xlsx"') - - def test_export_json(self): - """Test BOM download in JSON format.""" - params = { - 'format': 'json', - 'cascade': True, - 'parameter_data': True, - 'stock_data': True, - 'supplier_data': True, - 'manufacturer_data': True, - } - - response = self.client.get(self.url, data=params) - - self.assertEqual(response.status_code, 200) - - content = response.headers['Content-Disposition'] - self.assertEqual(content, 'attachment; filename="BOB | Bob | A2_BOM.json"') diff --git a/src/backend/InvenTree/part/test_bom_import.py b/src/backend/InvenTree/part/test_bom_import.py deleted file mode 100644 index 5b214aa81c..0000000000 --- a/src/backend/InvenTree/part/test_bom_import.py +++ /dev/null @@ -1,263 +0,0 @@ -"""Unit testing for BOM upload / import functionality.""" - -from django.core.files.uploadedfile import SimpleUploadedFile -from django.urls import reverse - -import tablib - -from InvenTree.unit_test import InvenTreeAPITestCase -from part.models import Part - - -class BomUploadTest(InvenTreeAPITestCase): - """Test BOM file upload API endpoint.""" - - roles = ['part.add', 'part.change'] - - @classmethod - def setUpTestData(cls): - """Create BOM data as part of setup routine.""" - super().setUpTestData() - - Part.objects.rebuild() - - cls.part = Part.objects.create( - name='Assembly', - description='An assembled part', - assembly=True, - component=False, - ) - - parts = [] - - for i in range(10): - parts.append( - Part( - name=f'Component {i}', - IPN=f'CMP_{i}', - description='A subcomponent that can be used in a BOM', - component=True, - assembly=False, - lft=0, - rght=0, - level=0, - tree_id=0, - ) - ) - - Part.objects.bulk_create(parts) - - def post_bom( - self, - filename, - file_data, - clear_existing=None, - expected_code=None, - content_type='text/plain', - ): - """Helper function for submitting a BOM file.""" - bom_file = SimpleUploadedFile(filename, file_data, content_type=content_type) - - if clear_existing is None: - clear_existing = False - - response = self.post( - reverse('api-bom-import-upload'), - data={'data_file': bom_file}, - expected_code=expected_code, - format='multipart', - ) - - return response - - def test_missing_file(self): - """POST without a file.""" - response = self.post( - reverse('api-bom-import-upload'), data={}, expected_code=400 - ) - - self.assertIn('No file was submitted', str(response.data['data_file'])) - - def test_unsupported_file(self): - """POST with an unsupported file type.""" - response = self.post_bom('sample.txt', b'hello world', expected_code=400) - - self.assertIn('Unsupported file format', str(response.data['data_file'])) - - def test_broken_file(self): - """Test upload with broken (corrupted) files.""" - response = self.post_bom('sample.csv', b'', expected_code=400) - - self.assertIn('The submitted file is empty', str(response.data['data_file'])) - - response = self.post_bom( - 'test.xls', - b'hello world', - expected_code=400, - content_type='application/xls', - ) - - self.assertIn( - 'Unsupported format, or corrupt file', str(response.data['data_file']) - ) - - def test_missing_rows(self): - """Test upload of an invalid file (without data rows).""" - dataset = tablib.Dataset() - - dataset.headers = ['apple', 'banana'] - - response = self.post_bom( - 'test.csv', - bytes(dataset.csv, 'utf8'), - content_type='text/csv', - expected_code=400, - ) - - self.assertIn('No data rows found in file', str(response.data)) - - # Try again, with an .xlsx file - response = self.post_bom( - 'bom.xlsx', dataset.xlsx, content_type='application/xlsx', expected_code=400 - ) - - self.assertIn('No data rows found in file', str(response.data)) - - def test_missing_columns(self): - """Upload extracted data, but with missing columns.""" - url = reverse('api-bom-import-extract') - - rows = [['1', 'test'], ['2', 'test']] - - # Post without columns - response = self.post(url, {}, expected_code=400) - - self.assertIn('This field is required', str(response.data['rows'])) - self.assertIn('This field is required', str(response.data['columns'])) - - response = self.post( - url, {'rows': rows, 'columns': ['part', 'reference']}, expected_code=400 - ) - - self.assertIn("Missing required column: 'quantity'", str(response.data)) - - response = self.post( - url, {'rows': rows, 'columns': ['quantity', 'reference']}, expected_code=400 - ) - - self.assertIn('No part column specified', str(response.data)) - - self.post( - url, {'rows': rows, 'columns': ['quantity', 'part']}, expected_code=201 - ) - - def test_invalid_data(self): - """Upload data which contains errors.""" - dataset = tablib.Dataset() - - # Only these headers are strictly necessary - dataset.headers = ['part_id', 'quantity'] - - components = Part.objects.filter(component=True) - - for idx, cmp in enumerate(components): - if idx == 5: - cmp.component = False - cmp.save() - - dataset.append([cmp.pk, idx]) - - url = reverse('api-bom-import-extract') - - response = self.post(url, {'columns': dataset.headers, 'rows': list(dataset)}) - - rows = response.data['rows'] - - # Returned data must be the same as the original dataset - self.assertEqual(len(rows), len(dataset)) - - for idx, row in enumerate(rows): - data = row['data'] - cmp = components[idx] - - # Should have guessed the correct part - data['part'] = cmp.pk - - # Check some specific error messages - self.assertEqual( - rows[0]['data']['errors']['quantity'], 'Quantity must be greater than zero' - ) - self.assertEqual( - rows[5]['data']['errors']['part'], 'Part is not designated as a component' - ) - - def test_part_guess(self): - """Test part 'guessing' when PK values are not supplied.""" - dataset = tablib.Dataset() - - # Should be able to 'guess' the part from the name - dataset.headers = ['part_name', 'quantity'] - - components = Part.objects.filter(component=True) - - for component in components: - dataset.append([component.name, 10]) - - url = reverse('api-bom-import-extract') - - response = self.post( - url, {'columns': dataset.headers, 'rows': list(dataset)}, expected_code=201 - ) - - rows = response.data['rows'] - - self.assertEqual(len(rows), 10) - - for idx in range(10): - self.assertEqual(rows[idx]['data']['part'], components[idx].pk) - - # Should also be able to 'guess' part by the IPN value - dataset = tablib.Dataset() - - dataset.headers = ['part_ipn', 'quantity'] - - for component in components: - dataset.append([component.IPN, 10]) - - response = self.post( - url, {'columns': dataset.headers, 'rows': list(dataset)}, expected_code=201 - ) - - rows = response.data['rows'] - - self.assertEqual(len(rows), 10) - - for idx in range(10): - self.assertEqual(rows[idx]['data']['part'], components[idx].pk) - - def test_levels(self): - """Test that multi-level BOMs are correctly handled during upload.""" - url = reverse('api-bom-import-extract') - - dataset = tablib.Dataset() - - dataset.headers = ['level', 'part', 'quantity'] - - components = Part.objects.filter(component=True) - - for idx, cmp in enumerate(components): - dataset.append([idx % 3, cmp.pk, 2]) - - response = self.post( - url, {'rows': list(dataset), 'columns': dataset.headers}, expected_code=201 - ) - - rows = response.data['rows'] - - # Only parts at index 1, 4, 7 should have been returned - self.assertEqual(len(response.data['rows']), 3) - - # Check the returned PK values - self.assertEqual(rows[0]['data']['part'], components[1].pk) - self.assertEqual(rows[1]['data']['part'], components[4].pk) - self.assertEqual(rows[2]['data']['part'], components[7].pk) diff --git a/src/backend/InvenTree/part/test_views.py b/src/backend/InvenTree/part/test_views.py deleted file mode 100644 index 74cf57a323..0000000000 --- a/src/backend/InvenTree/part/test_views.py +++ /dev/null @@ -1,27 +0,0 @@ -"""Unit tests for Part Views (see views.py).""" - -from django.urls import reverse - -from InvenTree.unit_test import InvenTreeTestCase - - -class PartViewTestCase(InvenTreeTestCase): - """Base class for unit testing the various Part views.""" - - fixtures = ['category', 'part', 'bom', 'location', 'company', 'supplier_part'] - - roles = 'all' - superuser = True - - -class PartDetailTest(PartViewTestCase): - """Unit tests for the PartDetail view.""" - - def test_bom_download(self): - """Test downloading a BOM for a valid part.""" - response = self.client.get( - reverse('api-bom-download', args=(1,)), - headers={'x-requested-with': 'XMLHttpRequest'}, - ) - self.assertEqual(response.status_code, 200) - self.assertIn('streaming_content', dir(response)) diff --git a/src/backend/InvenTree/part/views.py b/src/backend/InvenTree/part/views.py deleted file mode 100644 index 5185631872..0000000000 --- a/src/backend/InvenTree/part/views.py +++ /dev/null @@ -1,85 +0,0 @@ -"""Django views for interacting with Part app.""" - -from django.shortcuts import get_object_or_404 - -from InvenTree.helpers import str2bool -from InvenTree.views import AjaxView - -from .bom import ExportBom, IsValidBOMFormat, MakeBomTemplate -from .models import Part - - -class BomUploadTemplate(AjaxView): - """Provide a BOM upload template file for download. - - - Generates a template file in the provided format e.g. ?format=csv - """ - - def get(self, request, *args, **kwargs): - """Perform a GET request to download the 'BOM upload' template.""" - export_format = request.GET.get('format', 'csv') - - return MakeBomTemplate(export_format) - - -class BomDownload(AjaxView): - """Provide raw download of a BOM file. - - - File format should be passed as a query param e.g. ?format=csv - """ - - role_required = 'part.view' - - model = Part - - def get(self, request, *args, **kwargs): - """Perform GET request to download BOM data.""" - part = get_object_or_404(Part, pk=self.kwargs['pk']) - - export_format = request.GET.get('format', 'csv') - - cascade = str2bool(request.GET.get('cascade', False)) - - parameter_data = str2bool(request.GET.get('parameter_data', False)) - - substitute_part_data = str2bool(request.GET.get('substitute_part_data', False)) - - stock_data = str2bool(request.GET.get('stock_data', False)) - - supplier_data = str2bool(request.GET.get('supplier_data', False)) - - manufacturer_data = str2bool(request.GET.get('manufacturer_data', False)) - - pricing_data = str2bool(request.GET.get('pricing_data', False)) - - levels = request.GET.get('levels', None) - - if levels is not None: - try: - levels = int(levels) - - if levels <= 0: - levels = None - - except ValueError: - levels = None - - if not IsValidBOMFormat(export_format): - export_format = 'csv' - - return ExportBom( - part, - fmt=export_format, - cascade=cascade, - max_levels=levels, - parameter_data=parameter_data, - stock_data=stock_data, - supplier_data=supplier_data, - manufacturer_data=manufacturer_data, - pricing_data=pricing_data, - substitute_part_data=substitute_part_data, - ) - - def get_data(self): - """Return a custom message.""" - return {'info': 'Exported BOM'} diff --git a/src/backend/InvenTree/stock/admin.py b/src/backend/InvenTree/stock/admin.py index cd1bffab79..77f5c49fbd 100644 --- a/src/backend/InvenTree/stock/admin.py +++ b/src/backend/InvenTree/stock/admin.py @@ -2,17 +2,6 @@ from django.contrib import admin from django.db.models import Count -from django.utils.translation import gettext_lazy as _ - -from import_export import widgets -from import_export.admin import ImportExportModelAdmin -from import_export.fields import Field - -from build.models import Build -from company.models import Company, SupplierPart -from InvenTree.admin import InvenTreeResource -from order.models import PurchaseOrder, SalesOrder -from part.models import Part from .models import ( StockItem, @@ -23,61 +12,6 @@ from .models import ( ) -class LocationResource(InvenTreeResource): - """Class for managing StockLocation data import/export.""" - - class Meta: - """Metaclass options.""" - - model = StockLocation - skip_unchanged = True - report_skipped = False - clean_model_instances = True - - exclude = [ - # Exclude MPTT internal model fields - 'lft', - 'rght', - 'tree_id', - 'level', - 'metadata', - 'barcode_data', - 'barcode_hash', - 'owner', - 'icon', - ] - - id = Field( - attribute='id', column_name=_('Location ID'), widget=widgets.IntegerWidget() - ) - name = Field(attribute='name', column_name=_('Location Name')) - description = Field(attribute='description', column_name=_('Description')) - parent = Field( - attribute='parent', - column_name=_('Parent ID'), - widget=widgets.ForeignKeyWidget(StockLocation), - ) - parent_name = Field( - attribute='parent__name', column_name=_('Parent Name'), readonly=True - ) - pathstring = Field(attribute='pathstring', column_name=_('Location Path')) - - # Calculated fields - items = Field( - attribute='item_count', - column_name=_('Stock Items'), - widget=widgets.IntegerWidget(), - readonly=True, - ) - - def after_import(self, dataset, result, using_transactions, dry_run, **kwargs): - """Rebuild after import to keep tree intact.""" - super().after_import(dataset, result, using_transactions, dry_run, **kwargs) - - # Rebuild the StockLocation tree(s) - StockLocation.objects.rebuild() - - class LocationInline(admin.TabularInline): """Inline for sub-locations.""" @@ -85,11 +19,9 @@ class LocationInline(admin.TabularInline): @admin.register(StockLocation) -class LocationAdmin(ImportExportModelAdmin): +class LocationAdmin(admin.ModelAdmin): """Admin class for Location.""" - resource_class = LocationResource - list_display = ('name', 'pathstring', 'description') search_fields = ('name', 'description') @@ -119,168 +51,10 @@ class LocationTypeAdmin(admin.ModelAdmin): return obj.location_count -class StockItemResource(InvenTreeResource): - """Class for managing StockItem data import/export.""" - - class Meta: - """Metaclass options.""" - - model = StockItem - skip_unchanged = True - report_skipped = False - clean_model_instance = True - - exclude = [ - # Exclude MPTT internal model fields - 'lft', - 'rght', - 'tree_id', - 'level', - # Exclude internal fields - 'serial_int', - 'metadata', - 'barcode_hash', - 'barcode_data', - 'owner', - 'status_custom_key', - ] - - id = Field( - attribute='pk', column_name=_('Stock Item ID'), widget=widgets.IntegerWidget() - ) - part = Field( - attribute='part', - column_name=_('Part ID'), - widget=widgets.ForeignKeyWidget(Part), - ) - part_name = Field( - attribute='part__full_name', column_name=_('Part Name'), readonly=True - ) - quantity = Field( - attribute='quantity', column_name=_('Quantity'), widget=widgets.DecimalWidget() - ) - serial = Field(attribute='serial', column_name=_('Serial')) - batch = Field(attribute='batch', column_name=_('Batch')) - status_label = Field( - attribute='status_label', column_name=_('Status'), readonly=True - ) - status = Field( - attribute='status', column_name=_('Status Code'), widget=widgets.IntegerWidget() - ) - location = Field( - attribute='location', - column_name=_('Location ID'), - widget=widgets.ForeignKeyWidget(StockLocation), - ) - location_name = Field( - attribute='location__name', column_name=_('Location Name'), readonly=True - ) - supplier_part = Field( - attribute='supplier_part', - column_name=_('Supplier Part ID'), - widget=widgets.ForeignKeyWidget(SupplierPart), - ) - supplier_part_sku = Field( - attribute='supplier_part__SKU', - column_name=_('Supplier Part SKU'), - readonly=True, - ) - supplier = Field( - attribute='supplier_part__supplier__id', - column_name=_('Supplier ID'), - readonly=True, - widget=widgets.IntegerWidget(), - ) - supplier_name = Field( - attribute='supplier_part__supplier__name', - column_name=_('Supplier Name'), - readonly=True, - ) - customer = Field( - attribute='customer', - column_name=_('Customer ID'), - widget=widgets.ForeignKeyWidget(Company), - ) - belongs_to = Field( - attribute='belongs_to', - column_name=_('Installed In'), - widget=widgets.ForeignKeyWidget(StockItem), - ) - build = Field( - attribute='build', - column_name=_('Build ID'), - widget=widgets.ForeignKeyWidget(Build), - ) - parent = Field( - attribute='parent', - column_name=_('Parent ID'), - widget=widgets.ForeignKeyWidget(StockItem), - ) - sales_order = Field( - attribute='sales_order', - column_name=_('Sales Order ID'), - widget=widgets.ForeignKeyWidget(SalesOrder), - ) - purchase_order = Field( - attribute='purchase_order', - column_name=_('Purchase Order ID'), - widget=widgets.ForeignKeyWidget(PurchaseOrder), - ) - packaging = Field(attribute='packaging', column_name=_('Packaging')) - link = Field(attribute='link', column_name=_('Link')) - notes = Field(attribute='notes', column_name=_('Notes')) - - # Status fields (note that IntegerWidget exports better to excel than BooleanWidget) - is_building = Field( - attribute='is_building', - column_name=_('Building'), - widget=widgets.BooleanWidget(), - ) - review_needed = Field( - attribute='review_needed', - column_name=_('Review Needed'), - widget=widgets.BooleanWidget(), - ) - delete_on_deplete = Field( - attribute='delete_on_deplete', - column_name=_('Delete on Deplete'), - widget=widgets.BooleanWidget(), - ) - - # Date management - updated = Field( - attribute='updated', column_name=_('Last Updated'), widget=widgets.DateWidget() - ) - stocktake_date = Field( - attribute='stocktake_date', - column_name=_('Stocktake'), - widget=widgets.DateWidget(), - ) - expiry_date = Field( - attribute='expiry_date', - column_name=_('Expiry Date'), - widget=widgets.DateWidget(), - ) - - def dehydrate_purchase_price(self, item): - """Render purchase pric as float.""" - if item.purchase_price is not None: - return float(item.purchase_price.amount) - - def after_import(self, dataset, result, using_transactions, dry_run, **kwargs): - """Rebuild after import to keep tree intact.""" - super().after_import(dataset, result, using_transactions, dry_run, **kwargs) - - # Rebuild the StockItem tree(s) - StockItem.objects.rebuild() - - @admin.register(StockItem) -class StockItemAdmin(ImportExportModelAdmin): +class StockItemAdmin(admin.ModelAdmin): """Admin class for StockItem.""" - resource_class = StockItemResource - list_display = ('part', 'quantity', 'location', 'status', 'updated') # A list of search fields which can be used for lookup on matching 'autocomplete' fields @@ -302,7 +76,7 @@ class StockItemAdmin(ImportExportModelAdmin): @admin.register(StockItemTracking) -class StockTrackingAdmin(ImportExportModelAdmin): +class StockTrackingAdmin(admin.ModelAdmin): """Admin class for StockTracking.""" list_display = ('item', 'date', 'label') diff --git a/src/backend/requirements.in b/src/backend/requirements.in index 18856a8242..c1ce6a7aad 100644 --- a/src/backend/requirements.in +++ b/src/backend/requirements.in @@ -11,7 +11,6 @@ django-error-report-2 # Error report viewer for the admin inte django-filter # Extended filtering options django-flags # Feature flags django-ical # iCal export for calendar views -django-import-export<4.0 # Data import / export for admin interface # FIXED 2024-06-26 see https://github.com/inventree/InvenTree/pull/7521 django-maintenance-mode # Shut down application while reloading etc. django-markdownify # Markdown rendering django-mptt # Modified Preorder Tree Traversal diff --git a/src/backend/requirements.txt b/src/backend/requirements.txt index 0bb49779e9..f9d3c282be 100644 --- a/src/backend/requirements.txt +++ b/src/backend/requirements.txt @@ -383,9 +383,7 @@ cssselect2==0.7.0 \ defusedxml==0.7.1 \ --hash=sha256:1bb3032db185915b62d7c6209c5a8792be6a32ab2fedacc84e01b52c51aa3e69 \ --hash=sha256:a352e7e428770286cc899e2542b6cdaedb2b4953ff269a210103ec58f6198a61 - # via - # odfpy - # python3-openid + # via python3-openid deprecated==1.2.15 \ --hash=sha256:353bc4a8ac4bfc96800ddab349d89c25dec1079f65fd53acdcc1e0b975b21320 \ --hash=sha256:683e561a90de76239796e6b6feac66b99030d2dd3fcf61ef996330f14bbb9b0d @@ -394,10 +392,6 @@ deprecated==1.2.15 \ # opentelemetry-exporter-otlp-proto-grpc # opentelemetry-exporter-otlp-proto-http # opentelemetry-semantic-conventions -diff-match-patch==20241021 \ - --hash=sha256:93cea333fb8b2bc0d181b0de5e16df50dd344ce64828226bda07728818936782 \ - --hash=sha256:beae57a99fa48084532935ee2968b8661db861862ec82c6f21f4acdd6d835073 - # via django-import-export dj-rest-auth==7.0.0 \ --hash=sha256:08dbc03a35223872da9f59bc2d7a71bec2e721aa69f7cdc84c7a329aeae1f86e # via -r src/backend/requirements.in @@ -415,7 +409,6 @@ django==4.2.17 \ # django-filter # django-flags # django-ical - # django-import-export # django-js-asset # django-markdownify # django-money @@ -473,10 +466,6 @@ django-ical==1.9.2 \ --hash=sha256:44c9b6fa90d09f25e9ebaa91ed9eb007f079afbc23d6aac909cfc18188a8e90c \ --hash=sha256:74a16bca05735f91a00120cad7250f3c3aa292a9f698a6cfdc544a922c11de70 # via -r src/backend/requirements.in -django-import-export==3.3.9 \ - --hash=sha256:16797965e93a8001fe812c61e3b71fb858c57c1bd16da195fe276d6de685348e \ - --hash=sha256:dd6cabc08ed6d1bd37a392e7fb542bd7d196b615c800168f5c69f0f55f49b103 - # via -r src/backend/requirements.in django-ipware==7.0.1 \ --hash=sha256:d9ec43d2bf7cdf216fed8d494a084deb5761a54860a53b2e74346a4f384cff47 \ --hash=sha256:db16bbee920f661ae7f678e4270460c85850f03c6761a4eaeb489bdc91f64709 @@ -944,9 +933,6 @@ markdown==3.7 \ --hash=sha256:2ae2471477cfd02dbbf038d5d9bc226d40def84b4fe2986e49b59b6b472bbed2 \ --hash=sha256:7eb6df5690b81a1d7942992c97fad2938e956e79df20cbc6186e9c3a77b1c803 # via django-markdownify -markuppy==1.14 \ - --hash=sha256:1adee2c0a542af378fe84548ff6f6b0168f3cb7f426b46961038a2bcfaad0d5f - # via tablib markupsafe==3.0.2 \ --hash=sha256:0bff5e0ae4ef2e1ae4fdf2dfd5b76c75e5c2fa4132d05fc1b0dabcd20c7e28c4 \ --hash=sha256:0f4ca02bea9a23221c0182836703cbf8930c5e9454bacce27e767509fa286a30 \ @@ -1010,9 +996,6 @@ markupsafe==3.0.2 \ --hash=sha256:f8b3d067f2e40fe93e1ccdd6b2e1d16c43140e76f02fb1319a05cf2b79d99430 \ --hash=sha256:fcabf5ff6eea076f859677f5f0b6b5c1a51e70a376b0579e0eadef8db48c6b50 # via jinja2 -odfpy==1.4.1 \ - --hash=sha256:db766a6e59c5103212f3cc92ec8dd50a0f3a02790233ed0b52148b70d3c438ec - # via tablib openpyxl==3.1.5 \ --hash=sha256:5282c12b107bffeef825f4617dc029afaf41d0ea60823bbb665ef3079dc79de2 \ --hash=sha256:cf0e3cf56142039133628b5acffe8ef0c12bc902d2aadd3e0fe5878dc08d1050 @@ -1582,12 +1565,10 @@ structlog==24.4.0 \ --hash=sha256:597f61e80a91cc0749a9fd2a098ed76715a1c8a01f73e336b746504d1aad7610 \ --hash=sha256:b27bfecede327a6d2da5fbc96bd859f114ecc398a6389d664f62085ee7ae6fc4 # via django-structlog -tablib[html, ods, xls, xlsx, yaml]==3.5.0 \ +tablib[xls, xlsx, yaml]==3.5.0 \ --hash=sha256:9821caa9eca6062ff7299fa645e737aecff982e6b2b42046928a6413c8dabfd9 \ --hash=sha256:f6661dfc45e1d4f51fa8a6239f9c8349380859a5bfaa73280645f046d6c96e33 - # via - # -r src/backend/requirements.in - # django-import-export + # via -r src/backend/requirements.in tinycss2==1.4.0 \ --hash=sha256:10c0972f6fc0fbee87c3edb76549357415e94548c1ae10ebccdea16fb404a9b7 \ --hash=sha256:3a49cf47b7675da0b15d0c6e1df8df4ebd96e9394bb905a5775adb0d884c5289