From 24ce51c5ca335fc3c463a67299b7fda815f2e77b Mon Sep 17 00:00:00 2001 From: Oliver Date: Sun, 3 May 2026 12:18:44 +1000 Subject: [PATCH] [UI] BOM compare (#11853) * Refactor existing components * Select assembly for comparison * Rough BOM comparison table * Select display mode * Layout tweaks * Reset secondary part when drawer is closed * Responsive grids * Documentation * Update CHANGELOG.md * Add playwright tests * Update wording * Allow specification of secondary part with URL search params * Update URL params when value changes * Clearer display using icons * Improve diff layout * Adjust playwright tests --- CHANGELOG.md | 1 + docs/docs/assets/images/build/bom_compare.png | Bin 0 -> 42968 bytes .../assets/images/build/bom_compare_icon.png | Bin 0 -> 135286 bytes docs/docs/manufacturing/bom.md | 93 +--- docs/docs/manufacturing/required.md | 90 ++++ docs/mkdocs.yml | 1 + .../InvenTree/InvenTree/api_version.py | 2 +- .../src/components/images/ApiImage.tsx | 1 + .../src/components/images/Thumbnail.tsx | 2 +- src/frontend/src/pages/part/PartDetail.tsx | 143 +----- .../src/pages/part/bom/BomActions.tsx | 191 ++++++++ .../src/pages/part/bom/BomCompare.tsx | 428 ++++++++++++++++++ src/frontend/tests/pages/pui_part.spec.ts | 31 ++ 13 files changed, 764 insertions(+), 219 deletions(-) create mode 100644 docs/docs/assets/images/build/bom_compare.png create mode 100644 docs/docs/assets/images/build/bom_compare_icon.png create mode 100644 docs/docs/manufacturing/required.md create mode 100644 src/frontend/src/pages/part/bom/BomActions.tsx create mode 100644 src/frontend/src/pages/part/bom/BomCompare.tsx diff --git a/CHANGELOG.md b/CHANGELOG.md index b9861c4e8f..6988a362c5 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -11,6 +11,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ### Added +- [#11853](https://github.com/inventree/InvenTree/pull/11853) adds BOM comparison functionality, allowing users to compare the BOM of one assembly with another assembly. - [#11809](https://github.com/inventree/InvenTree/pull/11809) adds multi-level subassembly display mode to the BOM table, allowing users to view multiple levels of subassemblies in a single table view. This is an optional display mode which can be toggled on or off by the user. - [#11778](https://github.com/inventree/InvenTree/pull/11778) adds inline supplier part creation to po line item addition dialog. - [#11772](https://github.com/inventree/InvenTree/pull/11772) the UI now warns if you navigate away from a note panel with unsaved changes diff --git a/docs/docs/assets/images/build/bom_compare.png b/docs/docs/assets/images/build/bom_compare.png new file mode 100644 index 0000000000000000000000000000000000000000..d67f3c416e1e6d733f334d4472bc31be08cfb26e GIT binary patch literal 42968 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

CMH>wHS(lLc_LDNclfaO-TX?%rU~ef{a=3b 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 BUoQXv literal 0 HcmV?d00001 diff --git a/docs/docs/assets/images/build/bom_compare_icon.png b/docs/docs/assets/images/build/bom_compare_icon.png new file mode 100644 index 0000000000000000000000000000000000000000..e22b4c1b078b1cc9dd715a56a03cca4bf301f15c GIT binary patch literal 135286 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

-Gx!9IgYi$ZzX`mn zDs#+L7;fHjAGF(fmhsT*vdJO<^+P2}I4N%ipUWma7nizuU-Sq7pd*Q?)$^2FYt&?9 zWG;Z<3a9s(gY80-ek7;m5b2y_H<`+thZBl^X+tAa&Q(_C*IqTDvE9CTid|fw<+l5}gg#^I2 zQnS|g6vD$DXfm_p3RYnhR&@#ppPxC-mZwwQ7XcezL}$%GVFCrI7_`vjLn8x_XDQ@9 zM{k#LC}yhdH352v8cA0+0*LvT@EweHew`82tpr$KSj)IzHZMY4Qru*nJkNdK;SIJR zte8p1R5NolN1ZI2nLnTIEja@}%#!FjUE%3e2W$WXf2#bVF)df)Y#~JVGku+&1BEZh zQKc1*Nsvujbux5hPs_?N9+LoYF%Fb>W|xA7X_}Tl5(@FpZA*L96M-V5Xmf6#>w7jb z;={yFDXJvo+3fh(pOU3n*dC+-OguS|wL6K5Nu>oKnYLErE^y^4CpNUu_@sql5&53TP{-1Pvq>9~)nSUM6+L}UVxC{jcOs>YBk>}N1(;8g_34PW5DGqR27 z;%<~Th4^H51aKW`We;7{9SS5TjP)yZmSzAL>HJz_!10ZK5;)?RC@hSwUO8_{x7ElF zdDdKDBF%mGC}=^$K?J0>QyiqoqOc&=;Wf#>q!t}Y`}R;|T(_qhmHK@zRhbjGM!AY~ zpXJ`ca}3xxe9+l{a?L%c7Y)6~#+@9@Gh`9bORdgmsnT9&f!RPK|GWP_;oW*=0JwSu z(9H_*>|m(GYK-&5Uf9>EX6Q5|~Z0<83#_7dwlxn^!Va zjTF^-5z&X*@RQ7*TDNo%e$YQhQu$dt<#p$5Qq(P*zqP9{sN ztxw-vhxsGypA@L9DUGjRzh*v_DKzIPiG{Yy&HogmnxEL?R|Mk&422aewxe>xJ~t`k z*4w!!nK+f^T~9Gdg$)x=Q&pkVa%vv%=3{;4^JZTt4e!w9nzP{T3g_TLgW(!!s9NLo zD<957^*Ocnw=x}$%^10HS$sp6&3{48^j~Mw1aUEn)i;fqJ(gd5b-#4mc^yOFt>3Js z;3=3pyx=80?>2Yn;h|G%`f#(Cq50iRt(tZQwBWoYU+2#%+536szz*hwzu3%$!s|5^ znt=SHY=xuoflANX{RU=bgd)UmKB40`EGNw98q>exFeqj)o3hs6iC^u-Wqhf$k#|~(b@K%8#{32-Sy-@ z-hrzQR=z=B^~;T^$1!If(>L7F%L}XD^)%R>?0Im=X%45^d~a!3IVS7FV;Rq#Tmc=J z6Q)1eA`j;-$cJ!2H{c01?HLHNi;WW&b!VG)#_Q{4S@`8EeRS53><-8-O)USjSP1~f z0clo&oZniRZc&#U0QtOor)*pTDr=~N4HIKa|I%|5!TO&Q3OdouE;q@H3tliC5@JvYZR@1?Jq{A22&j!JLI5w}W?r z3DAI3wNd8sp@JJ#zjxQ;kd@+_1Zt~gGt4Bo^s+%?Z>F_2)Yt1w#U%y1V0Y*wXQ=ao z?#Bzv!sLmE$(hIN_B3!Sgf%mn#sW5b6m_N2O|o-SnTZ zZj#IVIyg~bYNR0f)_=*Zq$oLT8j}gBig5|Bdw1f0;7U6y%gud=5jZXQ(fC7~S^OXo z(~lSKIYEz#UunGpaHzB&Ypwt?zPKo~hJ?EP>%5u#?|B2R5PrqqUvSF9%(*j;hIzPs zQ~QTJrolXxk%TD%l}zj369F)IMJ5yHfD#I1cq*rEJA1J1;P{@-tse8nk+Tc^?T?#x z2O+NZo^K6!YmLqu7p5@^cZdpd;u^DTCl$v=@Y`3sCX*v<4`V#9TRa6d<;W-BEzzy4 zp`l1_{4-aP6)$K;Tq3Pbp#!_7a6Nd`p)UYxhJ;@Pxw!I>xL}ZAPw!V{QG-%oD@S5E zMj(TLK);c88tTz})EdpX<}!YSPfALrLFJ`Y>+~yl(}v7fuN~gw#`(>F6#6Q~$3n>=PaXqJQ=h<=d10Ld5ByNHCPFT2IG&*u3D& zWc-2WZ8S)9e`e;IX`0YeqJ#a}gpJn?8keW7lw=+gZayScv){GYN)C#rQ5Ol-_s!PP zQ_&nu+#adWjD@O!>bB4#yRi4l?-*Xf>9N>#*<15j02lD zI^Nh?V&6?FEy%IZpJH%40I{Usnke@(X!tq$7ozSDA1zY46DcwA|3Q)c{l7aO+`&OX z4HzbQzK5-ap0<8}0?XPvRF3mv0cs7uBt9>)baf4ly(v?zGfhz(-1v?0_WX&(`TYqM zVfE@itrraCXpo_jseLeUbYAR5e>`S~MscN@6EjG9Gg@N3bF^CvIqrf|a6ui_x}wXi z6KM!PR2uCDQu({;x!pP#7@jJ(taW<%_&?P{GWfSj3;vmPL&RCXy=L30@JZUo=zM~V z5i2S{+uOJM&HcgXr0sXv!M}bC#%qu{*-ME_1J%!Zg!+R=0ETPuru_LW&cFEs{E@pM z@((@{>;`Q~m1SXq!AT^yB>}xtB`TaO!Oc3{Gl0S9RX<(Hs*YP))O>_4OzKL{=$|WP zyLsfB6f3NvcmeqVt@P3?{bwxa?kwFxpG}IQ(q7s@#P#?3*t8*^hj-^A1c_&k*c&Sb z4@=Me4D{GB3u`+RH3O|9HX`J%QZs8_l(;%Rq6J-k+$ z1*egJTT2w>N49{>hB8k`<&{#>>$)XJ$w>7ZR0wup06U&9YLX4ZZTM4-2Omj6bv76 z8MUCuj3P%%Y8*{ZFJ|AP=CK!0(#oLkG34u7&{%%%yL-PJbVEl|_L&-^9l_B*Ak+!WHk5*(U)E&f;QgKVo+InY(G_h8#Sg!x6g_yv@oxeF{{|pB?fjZn(Q+s` z4sOArcuxeTJzx>TtgpfamGr`Azxxg88vbAuUIRT&oiejv1Fs#f?5wP3K+<5h;ZU&= zjDysHF*={Skn=7g(a`#XztNWfdieRp-`I@E5w>ZDTwWlO6rIP+@#WpGvvWklEpP~b z14cmZI8kG4ZP>1aS^2*qqc)y;QxjjfyQZP=Wba4@$G*M7#-)GPO_{=)N_Gh&v&$sJ z5F**H1aC1!VRi`=YFr}_A4y{kM(0|2Sri`rgMt!a4P%kr+L8eNPXh@*N zT@P}t^64ui9G-@*e-)dL<4bQCvi6da^z!$dly<2lIQGx5(Eno9_G&39ssEiZ|NZ02 zg~0x|l(!|w)xQ7D>AJ0jNyOfvzw3B@@Z0lfM5@xX8>_ey6b4IsfKu4zCY*0NH^PzU zu482l##4}YHh#2NTmU@b%0v#|E=*XbFz2aiTY}-$eT(d8^yqf{Q7EI4#)nC6f zDtRdaXFqin|GeM#&rAICF+c^VsE@jBDCeaD%}@hK#2HEXcA&FfJX` zq%(y0wL==n$gK31kScRPoOfcu?-p>Mcy7e%+OdI}VRDUX_%{n+9=h`VMM=2Tq(43A znv2XjYV^XNO#kHQHjj>eh!$v$kB6@2^0I%~3JJ*m&*N9@+K0+4RCH&HDFC@fabV)| zt^w0IcC*YfW#oKWQxMqqT4$^HzG%Q3l96HNs=>n<@VQ5YD>ET6TN3lMs@7V)*Tm5V z4Em@BwW}AZv%t$lFw{1Qw|9KJc3EoQpg+0?vf^ul)c0lK_GD zWExsRpwiqVO2TuZV+uHUVp39IV03O7&tG)cTQrh7-z->qIa(J8`O4nz37`Hz`yUZ| z!rUY^t$qz7<}ypAm}H?j$XCEb19ZlrSy|Lz{{VOv4``RKmJuesDDg#Mcd?F$Sz`p{j z=1C`^AOWv#z$i3##X=GJb0#lg;qHghgDE8TO~1kN8__&P&5u96QphLg&p7Vv3yHjF z^TO`L+}j8Z{43*rSeKoXvpHVdA-YfABV+XSAGGLy7Q+AToBvrB0MdT`ubGAa{0!Rv zC+4BHf5??sWY7uL2TF{09nFSQ82NqbCW(~*vxi23I;hWqibS*{pDyTTdq?V9S#=Si zod0ejjG~qiZXh#Hde0BGZ7EmLB|;990v6dG=v6cg_O%kCag2C~(nBPq`W?J~l=q*8 zpPCWw5t)5CeaJ%Fuz-BhpXWwiq~VEj&>sVF$9AuaC1W6iT|V7lm!F@{=fYB|-0<-K zTIYhF8e0F&jfQ;popR}zh1f_i!vA^rFJ=FHF!6uBMt;_b{=et`|7VeQ-sluNxG+f- z(6SzUjVj$B1%@tzQh9sO_OSI{x))P1foEDsQbXxqy0d1~EDBeAFie!9My(`VJwbkLQ1 z!%~S_tpDaM-cy7MJ-sdV)0L)T5%y-`NSRcD_^et4?Z(=*=V0i;063tl{KN7VO&;Ww zl#~=&FBzN89XU>Rg@d@Zcoxg1Uuvf7gtLi?i^BufNTC>}pRLim_|(6EXI6rCC{fY7 zC<92kIN$#MQ6ecWF1|t&D$#k78sc!(!GO{-?X*_1+kN-PAVDo7TqO*fk`l@yu%>MO zj7m-S)kHo!@);=`LI$l@1PrsUa)JfgKXZY9f|4~48geX*zXZ^2@1`3VP}0oHnH;w} zWC~|WPzlhR9mZY5zHjEzqv1)s0dge*OwZBK(RcQ~Cnqxx(`GP6#>QF*pFj_uJuw$p zyC2cfAx`-V%_6u;Gx9Y~hgr?3J=oM_1Q_IWB0y zR!Kq-uKkAXa33rVdhzT@r`BZ8+E|}S%Usp?3{Q+>_1+OeKzefShBOh*5N*<-e)-EP z>~n~SUmW0${i@$t>Ft-rcp8}DR9Me%073V-+_I(f+o;T5tl1IE*N+aCQCp(k<3Ynr zCk>r9=tkw=um9nFox7hEUTwXEC}V5}%sTR+QNnj?8^w;3NC!^Ct#NQCg6O5Eak5nk zF?rzrZJZs948O>qzjs#eUtJ&ht#cHxrkhMK(x&mc^wRb$i$M4pXjT(of<>bVGMyy^~P0ed+YHAb|6BCnfNl7-TaX)@&Wje5(2;k@Ky;nB|BE#>op9?-OV%!aP(d>rU z{_5q*Dqav2hapBCW>3-)EQ}#b2Up_h3~Ht$iCZyFy;F)9C0ZshzKNZx9s9 zH=7n75pjAh`A(s?zyA{yO3%z3V+qew4#D1U&GgofjEVWJ%oE+&-92-wC@t-9mXv_p z>dB?nyqw}VQHBW#&nH|3mu~`CFIlLl+8OLV>F0F?O_7JJ^=*bnK{I@+pcgD_%sXBs z2E~LWmBU=UaX?g}XY$)pt*QWvii!$!o0y%n+9$6v^gX*JAeaz)35*hp{@E{jya1h- z)*l!7SbhSX8OvMUy(Bu{RT0|6K%^;1Cm6FDrGL02C}fM1ia%bVEJXM4KPG{1dW_w8 zcvz|DqfWw|ZYed#o}Q>aw6Uj5Zc0!Nn|H=K5}K8zRso7);axe}hToIdYhHF^v)MK_ zGoazoU{8Zn(&v2Noh)1P1@naCbog<{d1(oYMxi~kQyvNHcHk9W+?Jg9qQq5(wu;Kq zDg6$gaFAY(;ZeWN97nJAm58J3rh1nD!^yW+ z_{0dCV)e&*@mG0gN!_jb&bF% zVdJJVe_CPTg(i7>px-nj`S*pobDC$y=D1?D4DD_^jvu+{uqv{#v0>S!CDAY2>1tHj z&nEY$mG22y9j+|Dp-yGOPd@uRbXgZFT!uqIDVDnvUCfM^OrE>419OC@^c)LLE4{~9 z-|<`T$dL?ZJ$LF&CE=Siu(Go9O;!4xV%}lP;Hx=NgZT3ETpm`#KapN8%(-M4ce}T< z7FS(8E2&v6nhcTtUJsG>sPA8sbTm|(h^<4M5dU3r+{1&?jOwD}*n-oW$`3X6xHve@ z6es zz3R17;k7#5z-9$@P}j~^+0JbHK_+Pqc(q1&pY&}}lbinJeQ;zzr^xP+(y+scIMDM^ zn(Qf#TMNW(JS;T8(Xz72-+dxGS9wRhvQa-ds&i7zvUaz}aeMRnw|U>1na5m(Z5kQw z!G(L>*9y}vqgT%*0Gzf^vFarR0~@-Gxvi^?c`#XP}QE2|nC z>@K0mU7#FGw8y#fPCMtA`gw$SLh2IbW6X1DM`CUc3I>%?owUi3bYEj)lNfh1S#;L^ zu)vJ^U+iXG{i&rG@%u0#D(trbpFiKfjGK_h!X!TF*sbjE>mxm>zLG$zO59k&4Cdr% ze`Hm`s(VnTCnGQKEbE^y@9o_%2Dv-p6;ZW&Q1-Uh!5}_9UU7zI%Bz&>AjUnDgPD17 z@lF!0kkEX=8Hfs;`MwxI;`GQSJ@*PGPkMHK(1T-T#e05!uE>*%$0K%a)!?(|@cagc z|HX?pr;@o>5IfDwa(2)CJ2S3s62*eWeb+C9)(NT=(qDDRKKCmn-(GQdaKVDt@IAD& zu+X?bi2ON5hzjg>ZoT~ejHC%mFfKNBwZgZ=mZElWRPFRQ*t;Qgh5EY#4f!6GRJijL zt$Hoyij(&9TE0n0Fa>NWziydTFUU4`z7o}DtwSVvSYTRddU{%sO<6-jW25pr)BgUx zVyc{hZ^qD5S@2ftc8tvHoHtCGePb3h`B{!5;U9zNkHZb($s1ooHz4C8`eGNJyRfhV z2#(r&!B1!ucgZLC9 z8xE+Px?6&$)grq4S9sTEuP^y5(@jbdmSJL&`O6nCS|_dxRPEiw@$5R#o%Z|lbF#AT1ESCB z+f=bnUwFraV(JAzWH|ifMuo+&))Bd?9y(v&~>z>)G7E z!p!V)7E{G75I0}!BC$j$QCi@~Ko}7R%FI`?B88`c zb|c}0J6woYPbrJ+^z=x}%FB0l{9i|>NbWUcP1?C5!h0*~Oms7@p~QTRbXHq*RcuX7 zZh5%&;ciB${q^HpW0^e$y^=u7o{emx{1F?lgm^?37q-NYa8+}_(P()%7 z9z{D!ii)n%8aSrX-t7^i;SJF1Gd7ms0$<)?&8rI%*!>Z#;V+XGAOf zG;Ud+ikxECQvenw5Ed%ggw6Wi&1b3q#M$jDJ|W@SAE70#sHveqj&pZHQ&Aze+L_q- zZ4!@KPj9P3qnSX@$=fB*dM~48mYW{go82tz8QFdQm@4Lb9zJiUeQ{1p33%Q|Xw5s| z59=hpFd%7@nAv9DHwZGA;RJHO%?L}kS+cDZoa*?RRL0N`Mvan~D_mIy-tX4z>=7#8 zg-=l#FYR7Te4p%`I~O1gzEo>a`mLzGlL+zvueOf`d)_xcFAbKUdP2pQ2ZHpoh_KD2 zL6@ZJhG6|7dHIa*GuS&`L9V+XP|&?1XJnBRFz9f~b|(#TR3q?Ttn>-CYBZI&v@@JO zb#{zTna#y|xWuIpK^`L%Q+=3)nb*6s!-93RuD=}8T}yZR+$^QT(|ks{Db>1E%i;XM zTwF@(9tyeV`isjgQG8_Fn}=tI-?Z(v@z(0Snya0JY3jF_hnMzum)Kvm&sWt;bIUz5 zEuaW=qzYi=W$BZv+Dz^+`Bv9J8O-G2DiNtUJxYpq(HPG0%~-dl#wOaP5^FGCaB#j{ zM}G6Y*IbPw)sD;Y1i$f@s-fN=%w}5~aGH!ix$DlMq`0`t2gc%hdP&zN4cxQ-&!v`% zb$}1rZtlVLi>I4co(M8TR2a7P@tk-3kOP`!*OjU6xZ?Ir>c=*_MgZO&erK3vROUbbo>8G~{2?+zk!Z1=7_(|P8amU9VD)06@ap@%4g;f<# zkoU`Q!pPk(jpo`ujFo5 z2g;kNi;o)(-ggYsRu{KQHcXswKKOV}%%wc}4Yt%iS6j~xGa)CRCCuBd571!g)-_){ zbf7Vi3Kst8oDDtwDj7zx!=Kt*u|=_e`LX^z8$Sb9=3a`dwsyQ& z*gF{>9gKR}8+gxxdgbqs?oa|@0yjRpe&JwShL--mTF-f zwk=sjH(OMH=Ii-ndgVfV5unWAi>s0DFWDUYez42iRu@VADDX80jR&g^wcni1Gc7j|v z=t*0Hk2JPyDT`1TUWD8Jo#1&fXTM%>z~0BHQFg`6^QP4;v4Ye(=Ke;Y&@KXFe|8l% zx36Y?**oV(eSVt~X)3eIvfE$_BHvF6MLQTViy|*}+?0y#p-aS-jO&#Y34O2^zu66! z#a38Wnd(`eQxwD8y@XCR=&L~eLRBN?Qc@_w`jS>zcs<5ceHp5^vUi%6V8bEGKu~bN zH#9Sa-(O`nXKl#i7_Mui3m&_A#@D)-UJ0ZG)3;^5@S376(b|S z#&q(&@f3@ulG51ryi9L)f|Z=dU;&$uRj(v&0eo>vjnO6;?Dxlt*m(xi-R(x0bUrlb z3U^ZMj9s}3GbNdrX|nT0!OPbHZG1S`C3`I|yqhcp`+Tnl)32)U1^zjoT*%y>^uhX_ zE^^5g#qHsV&3uy~wtbvYg`WEin83sYj+&VQHA)?r{ z(`;2_uH;nnHAP^$^APswr-DSQ_hspz#c2z5yaYbWzBDqX$vvDP6PJkGnYFGBX!tp6Cqxu_X3n|Bj)rZ&Uy4ef3vK zxW7%)>pts*y{lOK-f^GNu*vTsC2uY_b`(}wfU#72<65_on*QWB_1?*TW_7}ToW&$2LX-+YJ0whSqcAJ0 z!+?b@v6j-8Lch*Azn{7h)W(XNb3Hs~;o|b$ot+!BQJ_uc?h?TiZK7k--_cPxI;xV# z*N*#8C9TS>mZXFu5|A-)o^ z!uHfoib`;B4ppC&@nEL!xf^wrOX5jqHlr6F(+9Ecchj{ch6yekA8Hs4q}WX zys_xDX;%E89u7@I_}wC1E~(b4~UxxwL67GO^F!-Q{Jc-ot(T=@=}v0<=&gCGG^MvULL~6MZ3AV zYvM@y+2Gy*5Cfl(R4if26!Cj|9IOylEjcnZ8zeH;pKsdouQD_m^7r4po=0xGSC6yH zp@IC=LDoau#+{c~`T4eE(1zAcR<=8D_*2~vrUj8EK&seMegE|+4)2N#d2AO+$`y1r z4ifs>iXLa5PmbC^Q*+|-!+c%HlcTq;Gz@z$?(#=o-HJF8y4_G$22Ez0-2F&5 zS>So4O=ur{sV_iR6Z%2KF!O;*8tjD+ubXC<{=lV|VH)2M^3e2k8<+=UsMp$a>aYjC zp0zPwbE{28%M$T^0?p^9iZ;O}-?se9I_cQd0h?fnj*gyMPLqltKQWJqiJ6Ytp54)m zubM?>+ouG@W0kfqx<0tepHV$!+hN+d?w}Z{A)(bIkY!`0eeRj?{MkBp%fgO69C|_i zng8HgEwu9^2#MRx*caOZ&|kalk^(Zpoj(c6$n&(?a6oL}``cxOrB|%^=H4BYNtf-g z2;pni(G)o;XvCPD)9NC8az1tewu&ztNRsf(L9EVw(IALu{{d&HAC@|Q$j*yG8H&#= z%$V;cval|i%k*I)20H8re+z}(E*uZZDOpJajm|h&*?>EJ@cYTsY3VQpu^0X;Y@(jJ zb(I4;G}sIXF4F<&FsIvrz9;5ANjXJ^FGfe1Sk!R4rnvd#kKv_b+pLtrl#ezfLcWm{kgK62HM2_J(8m zPm_dv{0T7LmYxR$y?vys7@TtLNp~G3*>rpgeZS`W^ow`6F=je#eIoN<#JriC+8h&w zXiG-nK_v3uRg9_|$BTIrZAza6gxtTxhdXYgOEQ+KAi#21vv8oy3hL|Cj41)XJLr<5 zS#`!YnMm|GII0VIySnDM#9$i)Kzv^C<$MRlSCqBNyG<<0TSt4yZ7wgD5N+BEM8v`Y z{H^by{K{X(dvIr8B4)LI`nuYVDWAaVb=47e99ESZlfk7;PVk55M(Y01%S_4k$CnkX zy;f{CF!!k}cRAhqYckpB0C60O`6!2-ecg5Ro4b;Gzi)&~o9*!xSFIZ(t~e8No4gKg zK3Kazqzc_3{;+k_w3Jw1%XEUOHgF?6y(nFU?mUzJ&6T1Uh*Vu&>wB7X6@Lb$*ALBj zh`jWEAg8q*NV9yhbk7{fc4FD9O8RuPw1@y;{BTZZv%2=XtJ|GA{p`%57DRhoo#a)2 zf|z%VgUg!X(zn;p51qz)I|509r%}TuUVI#8;Rg4q8MANQs9ya>+SWV9$t6CGf zD{2of$|%5~Ap>C+nQWF7S-w%4s8K74MMl_r#<72LV1Lux^{({}Lw9NYi>_>ZOjZ5F zylpp1>efOt#ztGNOXZ4fU{ zRq&NoA+;SG-l1r8-`$P_5N1yLEgwE07jU;$KHe3X$A7^AOxs869ZL_PgSG&2sNC`tG1BL%D*5n;V=O{UTcz= z(Dw&cdU*iqZ(HF@hSZNaxs(%3Oz=FcaH<*i;yI8=y7T|pUwm_?2sDH+jAOQ2#Ifs> z71RB-`77Ou+b+W9M@jvH1{CrNW)RotSL?HJv{P}YSrP4yUfkz@O}31u;ecCsw1=rw zLA7$x3T6`Ba%yO>DFP6jn2IZe;#==>lQyWrGoPa z*==pA&mDhB4^rbrt!7MIPfjDf2|3(f1}l&#lP$FrHwm)gWdhs6zAk3#L=!Ox4hst_ zJUUt`Thu3*F1UPMi28;2vtA6sfZi4vO2~0nxD_%f(={mZwqXFAjo`4DXo38CbspJi zj^MP-V|E2rtiONuBqMluqA| ztLCD#RWI~?&l6{r4mC5{&42!B=p-{9p>CQJuI&9BrvRp<1k*XMdN-N@&IX7QgXo7= z_scRV+Si0=yM9v_=2OK0BHBidh4r@SeHqnS5`Bq%IF`*kvK9~y+X@7yJCy_JAAWCS zMF13ODiud3pk)y4op1h#s>}xa4`+Y?v;68%m`U2);J)pjaL5O84-6@a-*I3Ux zd}qIv?wGxb0oiTocZv@@|QGg(rSl zPx9wt=#JxD|KL*JOw-a*eQohE>TX?EfN*xynKUX5PEjCKxYb2U~*`se8}*Q5Th{<IRj>5VZh=7zt62t$$~xLedD8`!A{HR*3*g`BU_5zs(?GErVWo+uwSC zIt%h0V zK6iI0(D`wQ>PE%H)U8P|F*4dWdq_%IOAdOelW`d@#b{6aGSJg6`UQ{f7W1Sb0c=T-X?m*8$$?@W{x(Npt5$QI{~0 z(va{!`BM&lLLliiu$PBvyv2NDk?xlMgv71^#eDm^i*@`?gko#lO?HO#Ll<(RY}QVl z$hFY|-@M0ST8=ajfj(V4a=xjg6ci_}*G=}ynwsWHALZV?TMwGnR(w>iR}#PP~X z74fR?5vI-?-mOdQ68;XH@&GO^P9xS&(-LGf{(m&UmL4AqnGgIQuNn}24Z?3c%EN?N zvthjLTn+v6Vhnk)!inMky53|J7h@y}FUvN*la~+9W5mFmmdw?7RqVN_tg(q33zReD zK2!@2Ymz{$6>4V+a#d-B{D-?|O#MzcHg>JJPzx3*M0r^js- ze4(dJ{Ht`~MX7jSeG^sNFNpL{paH}f^0lOr%?)C$^$Nz-_lnTUV%rSKp*I6_4YmY9 zVy)0j-Gu*|>_FW{dO9o*CLSIhYaF$RLd(A1-a%>qqvc`Okf$GEbe|axuCwd7p}-)! zClfni>H0cGaOH;hw4>eQ%!%=w3|I+{$;I~W z2=x6jCg&pth7-wcoX{c<_q`&dUoG2Ixa_xFw{FcOau`edyb%MLZgJw9{;`FaIgfP> zG>~JgcdbHjB5ChNT zwU9&*#X>vAW&3v1wKsO%z7hJIQ9znlu}U9UY2w|lj>5|@L1kEeS1%53F=E49Tof4H zFL=*ePNcn^?gh{N+!6IX_kGWsjS1R4JveMz{ipcGmSkNBM z&hOaN(Byg1xmhPGn}_A(ji&Uc@(6^qQ^;tgP}4i!4-(veZ`}s=BXar+q(FJk0D@94kO&J$9Cbq z-})HuEYMfeAZX;7RWGw2ozd3JFnaL{ppf2Rx6%k5n}PM@(jV7`uGre}=HEC7fG_Jq z(()S!uZLFaSwyNN_UGf(8+Ylf$(_B2R9ww=>caHpcn zH#^aYrriZz)DRqZEd`N))gEa_Z&W<34!e*l{Gtxb2#nT{QDd{Nar3vB^8PezvQs4I z9~SUji|ai0Pn@o+cNT4*RsFWTjC=$q-dBjEt-2rh)Y|&g^;AF0 zhciZ+_k3vfdTzVtO_v09gNR?1aGuX7B%inAfwp12cL$>!mzg0~uxZ)-NmlH+$2|l0 zQf5Q_D|VLU9gZn6K9Lw?y?~$-u{Z={0#mW}ScIj3k5@1RWH2 zyFtq7Fd{KKb}X~T^P9D`-s9VRjx&xoA&E?ldrH*0*WJ2%{2DrULdNiu@#& z(IPhMScy&iHq(Zz!DdSwt-TJ;kWFG}ViRqFPM7x?f4u>*C^xpvVl6J}eZIdLY#Lhj*C8U2UH-OsnEY&7`Z4S$o;)3Dp5;oXHxs$!1$g;gqKC&Arb)6KcL z99cVVs7s(JOD^Qv2&}cfj4k}@!@;&%=$UW*KsXYTCy#E)-WI<1<*buC z%V*l-_8TT=OASo0s35b(RD!<>a!kP5THhcE4hJ}&m0zomO5!gw_O}<@7r-;&srW#C z2M+D}Cu%0ty~!d`?yJulB<67yxi^&}qXBWTjdZKCG^_H1MXo-KSIKU0i1d7!YDY0!MBzXJv4#tn&4hw#_W2CsN6wgTXSJw zz_+rXy2?A3BT09l(G?t+;+f}jM`90~o~zmq8{_wK@mm)5B>rG`^=WkOC*k9UBFo)@ za;?ZY!Xso5J=|gm(a-(d=g@eQ_%FNqw-*FX`qGdu$19Uq{sO7j!7eV~oP za=$?u++RoTaRo?mPVCU{+h3lY$v-Rt$}Z2cO}d21~M+Kmxg@@$++*KfKa-gD7dN4a9w+!z=lQ6XJb%d*oDU-@;P@_ zUx8L)!rdNR&ViJ$XQHm$hkNA5J0X7^iY`?>(!_Q}>*e4!47%gqJV_nUPJ6$fU(yc3 zTS)N?|BD>hHMg_F;CG=|1sz{JRAFU`BfIoqgb=Uz$+;J2>`|4`L{@*3l)r9qzo%9r zt{*ONx!+GBKmFtPx{Pk~9@?~ye%Fi&K=8jak15iF^SZ|{Mv7nW%zv@#}kbavTh1Or$@Y@FljhK`JNYM849HKGr?|B;Qm3H=5lMf$7Va zx7MSS_j{6;W}gxsbon(`mqjciM#kXwBTJP^Hw6NM$w-^)|0f{g?xmM z+c)0#iY3IM>isn8OOGf_!&K}6e15I}j;3TFG<7K#z$5n~MbY2oT$SsS1HywXt zIV`Tbb|h=q{oFbJ08G5>sA>h$iBI5oS+qA{bne5YjFvOB>u0jM-p>Jp5{K5t^{u>8 zGCbCq*r@WdlS;XKI350(Sot&K=I7J{W=;Xt{G%hEuGk^+=$JP=CPtKWoLK?FCK?mIKoE-=e zQ?@omjO(T%JkpU=|AX@w583G{P25l)oIU;zs}!0O)r0egSg!C!TgI%rLejNI8_ME5 zRW1hBFIDDdSo&lnarj}r;;UYJ?vE!F#v@H^jdquO*A_=Cy&4MjX)_8+CT}!yW*+<` z0%cBcq6)-dh+HR!ks*&V4SByzLE8n_h!*CIDZP0_H{*eFywE>`~B{ zo2SZV=__H~HD9UMgG4WnP&kE{4=TITSZ^e{%;fEA(;(~`!TAfppP1bafPGs#)c+ctqE2_(R!q`N7EH{rHOBGu&+`Z^&Nk}Ev28_YhV0* zUq9XF5$6;Z7Y~P|oiS@{_Tnhb!zhxIg6ZvAHW(=h1U(=e!mbxeMjHRreZBAE$oLwdPVUMER}g>@5Z!_?Gs zO-b!niB4t5X*x*Ok2FIc?dBK;k=P0!cpl&&E)o2H8!7=I2Gm;b&?x3Vd*MGf#Ry)S zG}JBPmw(l7{|^axob=RGRYzsPKUhm)`}V7F5|3)BhZrbE7-Wk_wzARYabu*Rrd~S~ za}Ndv+55jY$VOu9^TQB1s`Sc!Dv5~y4CCK7h1wkd=c5F^_8-^(e}DMR2eN#)9VLps zy`CTZZjS6ZX(|nhWKI9HeOUCRSSs&6M8Ca1R}h7+y2F#Cn5~}=(fCu({X-B9^Zp+Q z;`tfKUkRpfkoDQ^&y0q{?Tp3|%#Pavn^-YzOS!=N1g_R%W;vJT*Zyo#5Uk7{b6f1w z#y&>oubp;h-GzHg-BxGW^7m4>zb`3-KWy7Dg|PJ_Vci7Tyzq$Plsx7TE#x(7O%#g8 zq?R#qlFtys=($ufWQ5`KYocwRpZG7(&Ox&|u`TmU{6DT3MYQ96Ex!V(C~Rv}F<5VQ z8qDCyyjatO5|~V)M$g4}rn;V-Z*ysSZOK>*Xhr|7>DUb4<7X>L*|vnk%azLU_@vs) zYaXW`(_$iimi~(|FIRWWs<^n@xQbt%J`vfBUH6T1%dF#trQ7Yfg_N{(mpS(v72yL5 zMsqJs@Sv~MRxAph%l=%@WFaMWHzH1Bow=2PRcCF$(UDl zktH$3Ny72UIn+e}oB7qXpJ;ITN11J<;l3{xitW^-7UR%=g_gmUJmZ!1EkZ~;qqE~dg>Qb*m-0k^NUeP< z#r7&PaIo10%ZNKKcJhVEa}u<_tv?FdkMoXjcQ;Bjv2i4|DB%{*LVQBsjJR+&q&Ke~ zDuh$sh%5JE5z1{5^)rVA#W0|7RILlJh*c6ZS^9pG!DISLp&1i_Fku9afcJ1M!>^SL z#8$arUh@KhmR*U6xFrMM&US_Jj8w70)SY(;!$eKY@+Erc8_hT4bEMSJ)$oSvZN&56 zDlavp>>%Q{IMKTiQb=uK)>Cb<_M-vXD`znnq6i2>IBCc}rxD}ri+-i-FHu$*H^&`4 zzt2RQ_;*7rNw1kT!7r#tFwaT&|bOZyX(zJuVj`8r!7(ni@Zl zVkd<&h7+Q_)nrT0WkSIXQpr+~!qp^T>r929?4uC{HnZwbLPHO*79fIB^)^w0G@(7$ zt6u&GYj7|B?N_S2P<{_1sg)%GhGJ|dNd-)k!LNQ`ifD~mKk(1H=TYt^&VbhKTK?1& z@Q^%h!ok;_AOsXONisrQUNb2*m!xdpH(Tg)G{(2igzb+M_LnTvSt7apz2X9ngrWD| zQo@gf`)K57pHK8}w*RA6aZvy%a!^mxC02_r`TZm)#whdz6P=Ar>TKwO(RA>H6}aT% z-zLBmKTv_{`ir>V2>fQE>;!Xyqo9rV= z^I`m?;9K7uQsuB&ey%!%p)2eQpYnJorg?i6W^_a>rN4$6%H9!AAo(;H!C_N_I8PTE z74}y$S$~0GYDdv)<3Wy=9lE4yNvd~7_pVvG@)ESTn=hj2s-Na$aJ2A%CZ-(g3dsUm^~nN~;Rx>aWnUd@;LbLF(x-Y*CBI zE86|QhutHx$US>B|JgD@I4Hb0-GcQ`n+{6~_S1UKM4t^9&7ZP2aWfL}-lOvS>9YMa zeEG)Vc|SJi)8=dUMr6kDrYAsZ!$T77*&C^AnG-j4f2lGEs8z;DIK;jejQ%L<xu}cVe;$r#T=j#SB zUeAB&5tf4%AqvPA@)_ZUvT`(R?logP-~;mC^exhe4foZd z{A;q&--1xk5NXg55h9BR)x*QRO|Q>Y89#sK5QEUNG@!?u(QJkg7~WrXY#UoW=-38q zoK55$F49fVQ}abe%7M^&82=PCabPfa^CnafE{$xzrbe+EaN@X0hObTKfD794_)A!M zI+Y*Gbk!mVj8Yxu1w~q3Vkj{l-@fnA^^W0BS|4ZS*$->@B#W%oLX`xaDzw6%Ev zcVcK-61my6vRd`^Dl@u^(Epo{lg&kN(a9&YuLr18)wbgkI4cm(l^(Qz%NlT;j4={k znp0f;4ZBlXcwmZA=7n6`O;N#?76{aH2MaaY`_MGMIJG!60Ro||L8EYhnNHxs`6%*$ z`_Y6@-?vCCxNG(=*TZsLLX4c4Pu|}#MVGPZfSJ%#m@Nff@3AOxeFM&KHl;Y$;EoRC z{SV~m*)576a&kq&7{k#$9BTMsp7+{jC>D>0UP_B?*C8CE*9=LaA3V|re3Yus%`#uH zBxgOSvpH5AI(b{c`_ngG?0?cRdi|E$4jy!Uvo7q-Hao}JxFqC0{&9^$zrri^sa!dP zMN;ZHn?ZZDT*{a-8lpIQcQDVAveo6#3`d^lh2t0gUThWg*WP!mzZyBGfkVG$a3J}P zqk$hYCELaz|HTplka!hc8&-(ulKp&l(|bR{Nm4X|2{RWVBkhE`(Ie$JY1PRewzRjS z%t)0eIENK@`-400S6m9+*$TvbZ05b}7p z%22-ft|BYS%D8~=(p^lIgTv>Hn|wqh=z2%LZ~iA#_b=}`EjQy)j}59Q#y3O&K{eVX zFnjQVrB{A$s8n3T(;gwFcaJaJ8a%o9!L)JZy9b3&a&M{(e61q)DDd1Rgf;eecCcsv z$1Xk6=JhK<)j_D&T1!j=fe~Sr;lr7{s9G7&0@N;@0;w-7YxZ8>3`IyreqcNAeQDo$ z(C1k(5|_SgILe>Qg7E$pG+&oYEqqsn5QAnHe_ouO3LxgJ;mv-kGm%*>Pi-)viREvv z{jgf$<^Hdw>U#;t$dp5vLwOzgoHcC``GP*l5c(E}O_zJ4yH6oCx@nh2dW~CxUL%^yAES3_X9n22Z zguhY72%S5M@yH}toKPjeN9)-~_KZ*kS9umH+kx9Oee-#+hRU*>lpQC7(G&CG(0T%+ z=ye+#acaD@&Dh^ZCXE-d%}UhVi=HoJ*_O0mn{3~>3J{9I)nC?2J`#~dSsT#hNe5K^P+l<-R3s;90qRmoJF zm@j0IqVIILgmC2KmW9J zH-Dvr^)p606zg|8d-j|T-#6=lQN_ZBPf0zG;rb%0L7(U`!5OXi*H*?>#ZpF7-#wxHYOSTC522`WRj1KHb?)7$DCXy#&zmU$6En2g38k4af%;ywx%4a5p0J8bs8x@OqE zc3>Qc6G|46-!dtu&e? ziuSSs$?!p#fOK}@V}&;nzD6|@NIBN4%02c#?e$pRcZg<;ktQWwR*as7+;@`g49cCo z>W9TFwu|0FGH82t#L#4?Wf;1-daT!liTwpy0Y8=p{?1liaU(t3a39psaMzhLbigP? zWF$bb1OlrWk+9{4<3^iKCI(C&a-6j$8^LW|#dlg#X}8Nsk+OikVL zHjzGe{9EFlU7@q?^@>OHF!gRy$`N-eSrJwY7R!zappiO;_(yc?mHPYT$ zO$~cBzn+(pkXMxX%S@ku#eRRL?{aY*)xl_+pYOt2l3IbWYb)lrq&9Uie!|g`WRpEP z0p_Cb9!-%BAGT#2Ifu=yY!c_a-8vk~XV=15eLdBu0RJVC*%m=T4urY<*VJ`FN8w^iF%t>O%Rz zW0o&=$5P{bR^7Dh*^X0_O`FOBuLIiJLyZx=aKI;faq(>m`^|0s2^OPOVlD^bCc{cKf!gQjJot@^6_!W-Eh;$ zYC`jFEm-={2px1>-G&iT`F(AJe*(R3h^O)X8WRXFP=4^Ard&C2BM#Tp8;N#U!HwjG z)EnWV=9bSRN#6-QU=%_Yg>^;+XyK4YUU^`D)qRya7NZaem{b@8e$C{jzJjmm{!rpr#RgOtRB4jZCk_SI5U^1-XR=DvB4&#E5UZ%D za1h5R;{v@+&Wpo%faIESbhv*Wp<#64Ge-Y?pMolN)1^yCPzgt_E$zO5d>dzlZn=z9 z*SnagXNnpA)pps!C4o_>Y@bK)LH@)iM@m8Af$}Pxt{_H0F$-o(=VkHB8$evu#)!&Z z^a+8SkB>7-5kVp?`CR^FeX$P)(r!n`r?B_iv`xYq2h81@+uP#K8qSGk0(*hS(BY+7 zoryeJBa$`#Iq=cq!k&Wj{AEE&Gr*Y&rwni5)LeSe^?!3|DBoU+ z+NNe!0t~=Mp1EEyhlwM1rDv;)Rx-xbdkL^T#^d=pQ^p=pncZ4QSAwN(&yTc7k1--| zB->nGrTE((qE=ERLR&0R*4mm)ITdeVIScEXXf1q?`vX^~-Q@qWBQk zaUiGOv-V(2!N!R(oVlo6z1X@^FQ)yb%4N}vK&&?nc+vr3rH{|xE5~u0?^mvD7ey}S z;SMMS+hjhXC3<%jUDdt6X&J|LH72P|i4vwgPx_PR#xwur7h+kRA|4RY$Hzoi4H*7f zY_RExf+y2a=r_!L``O#z>a_ET7C;Lz2&>rgK_lQG_s&xO9M`(hyc?lS_E4ZRKWs%x zZDmyH0Rd#_z5UtatGXI)QXaLG@O`{V(?WE3iYXkh?qalKG$<;P1iKj{Y-#ozdGjS7 zxLe0?N*oq@x{*8K@5~m1hbA4R33Tax-{hEEGEA3{L?CNwR{8KL1{9QF^J^n-hKE(x*g4M6hYhOIeva0w z4uQsi1yNh<@^6Y;(VZ7gR%F}1hSF?Ir0D-T&I@{D0MQ3ZZkCVSR(+5TG z^?IH&;)IaT9^Vcxo)Lp^V=EZ1#3^S};Mrf^NsrZ`*D>~Co#ycfya3(W1R2BH&IuXa z=rv)&iI^9tWy@Rvnr0{p0rOYDAw%z~@k<%fBr}4KvPhc+NaOl(+saiUyjPcZn4# zq`$FQoGw~k`7R|rq##qrNf=!z9w5P~$!>~k$8J%q*ib$xe&cGLX!dS-hM9>iAu7C( zSj)EK*;kc(!~3}o!%+uc6yH5Dt;YLqR1T%ILuGQvVU2RVb=UT}bK#sWm?MsHt8uq$ zRQ9So{H=hqP-XRn{&srSuB{&2Zn*@VNT|B$ddkTT>Pz-dR0Tj--Lp*INa7BJz%LuOHn;1{A4kUUp+x=kxMcKJ6Sx*$xD54a0ovmW^oEKAq zSN+2BU7=)7=UyLQrA4ywjU&+8Il@o}GiayND^Vl~QY*VRZfcK2hVwZ+^35>KBN$JU z@?}&CWZW1Tl)8m2UbBh8gq0i0baa{c=ChfPc5)vp_GHvNOhgNLFTkyh>c@q>-N zOJ^*}s4vuyYPRAmHHMk6~ z9olsdyQ4Tp-Ivp7Yx79dj5LKlKN(RAGidIk!aK@H1I>ie+?(fU5M#& z(4yuP5y~g}%wN&%&nGneppsl6ne=3QobFl?agzBTkS|oIgXX1TwrEUYAtPZ70QZ<7 z2S5HC!N!^)4C;Cz4TsBmCT4%r@OU7AG!+KFeda0GgM(+JZI*i#=D=KK$XMz5hCv=j z@Io_bnq)-M>Lo{B<#%4I&=CsOki}Mn=x;>fhj^IamXkLNEpz%Z3(a`_9!^*b`7JzJ zWg6_d+O4#dLzYrqhKHlC!uy%zcZFxF_<(@Q`CD;vbWbEgkN*rfhd04UiK3b{;cEpmW$!}Fr0-xU1Z`Mnko=_QE zoNvNWPEc)iT^s@hX@W5F#>h%{4*?GDl_Sxg#I7T_TWtE9#-7-1pq#nHSs0hrUwI?T z_?y`w<%*Xz{>vU%U(fL?zYEdZfcynJLR_*k#ML-fFNuwyueB7~^3X>c1Y>W-yZT!A zheK}p9yFDmS{62YIknJ@qb(8vAuwdYYK_&PSQNRl3LXmk#M95*l(=lmuPvqjia?{> znhCLtEJy+akgZDmskykSai`Run`EF9>#rjN?#ZRI)X?{|4J2#;D*8k#@XJ&sw-cnU zUQ%14q_^!fIbg(?{%*QN2NG{{_#TH>KDK`!dGmf%Q`GopPtZjbvw|i^E$NwUX(3Qn}K{}0-c;SAa0TXj|8hm&Lp8VwSkPDoyIx-i*8Y1ukX z;pGq7gNTnbJTX-2oP;$N=vk@0?~o?x>W1e+J?!8)^bR>Kmf!1Ya-adyq%r+%0guG> zd%lx2YqsV@kv+f0Y`Svb5XtsxYAcuPHobf-{zMnoFPD55cL}9N?TYf1?X+Z~Fg%h1 zO6}!-t`_5-{#TC0iXcE*qS85tV(*-~F<@cPb3d<02U7*peF3uq)&yA{Q#LmK7(9HhWl{k-%vhfF3`cr-QqqbxB#Pp1RI97Uqq(=Z9ijE5TBSBv`}LPX7{^6CFcDUBvU6>h>q-e{>yi(of{tFChYHfC5#w#^P273v)S)6 z{Bu3wSSkvf_t!K@um^%rbdp@_WssD##L*Pe*VQ&7qOYJjRfZcnUlX_SEyZ`eVH!Q} zu~l49LU@Dcdb@sD8o%{>XNV%Ajzb~U74iQjrNE{X)>uX~p)Z8h(6Gx+pb;q<7@7-( zI?4kOD4CF}lwxchK?Km%BG>2c(tSHw!~V}G(G8sx?sGNuzCCc*ODzWYw~S{#!Y+lsW3sjl#iwU7Hf7K57nqCqN4#f-(=Oll)lBqh;&TJCGFve z6nG)E#iNfihXJnK%!>dt1aRT1v51`XY;$Vqqa|w8O*1d9LsMDkt%Fkyqi8t34x&G0 zZkBY;2TIuzeMrb_BkRIjv1^*;FJEb~>dq_%*BSUd;Kd0;Up#f0V9{-SXOTHW<_eV}SN!j|hBgZoDR^fYisWR+>*KKx|%{uxJh0l6=STnH+8K97PxV_k3 zkTRl53Vj|^iW3k;FutC$N#XFh#MOM|QX9a9r|1T@rj#ogUt!~Xlna?utuz`SJx_{^ zD7-X!k}2gr8Aa@U1x-4o0>8tr*vzMN4j$8+qa$GBJ5a|k|- zq4VR!Z|ihNM~=3*QZx_^s*~~U{hHXvD00Ufn;HuSu%vQ)Wvutl(`0z1t%ELiXBveN zxjT?!sELPXTJd8g1838M>(+el(AnG0u~+?IKB@9}=oaAq7|1Bs#1mU*7oLW$5&K%5 z6@lq!YCuK?>49<(FRMsTBl!2#5>M&3K?oOUxer&{NcQ&jp47AbQQaIhGczjCkYXT})8vrk{8z4I>g&%adHMN}MXQPp z=yvf~JDTZ2#9stP(7)#_pQH!4$c(ZpT_;4Y)`31URhY1a9EoSGr`@R67jp)X-*W7^ zKnotI9I5mEG%_Ft-Iqs8oVLsSUN>DqNI>69+R-eLrQCKulmz?|@d$uwO;}DXHB?hN z;0xiKBIDe~@xO8ze}BPMe)_(P8I2KX(W^*PZsN?ZbJd^a!eCEHg8z9Xv{x!=dR?u! zL8euea&1?dLH+ z0aT}4BR#e305r!xuJ1I5IJ0To7J+jHeq>%($9+x{B4Nzsjqo6QAU)lB{#$PMSMIZ? z)m1G}6lk>t{`fmZ#kas)mH8w!P!$gfkBR96ntw!zcwMd!F=RWtqyNwGKYeP#zeKi5 z!)MiA2Zr6BCE~^5^hciCY8DM-58aY&z21y6UuzdJ9ZL%tOXmXzAd!pjjAueN!YF{O zISAD3au5m}NxZ*5n{eMska?;P-6Q))6-M}ACNNRyTxJ;BwdMh@RDZ6ocLkX*H*)H` zZy*3wSrw^#cI4Xi*2o}!ht20dm9k?=Y#ZSK+6RvGF_8cDwL6PJJE=~CZQsMy8fH+J ze_$YdG%*hfAkDptbyh#zN(FxUlyEv}@^M?egp*duk>VDwu{B9(ktudBCp?KgiK*9a zYmUKM@e*ELv-rXU-zk9GAw=G`#48@0C$6%e=g@GcJAI+=ng=f}E5$26f75;{>Ozvg zROzAVr|66Dk4XzD1|A1EL)i^b%yQVR3fJ1Lk;jQ#5?&s!L?NOR8v?Ae^EGCetKMe{ zx;_^(7!@shKhrBcFD$JWsu6m^FvIc~uYnolaNbou-=9IH@HxlApb!Plvp&vmxbXZ@ z=6&l-5qi#!k#|&v!|C+LgwR2TKK z2-D>tVh1&(nLqfjmv@&F@(fqE5#LQXKJr_U$xA;AyhrD$7hB|b2e)8s-hvCM2AK|t zprvea&;4hONBgMr?Vc#MN3hrLxA*@chqzz5MU9TcU^ke+Y9oRg-67PgzIQeN{|Goi zhFrqJ;?@3aS=0cz7g~$kNq@)V1$#6JABNRjc^{_Oy+6>k5d><#-b6(s<$np-%07U* z+SK3@_OJ%qxY@~WfOXK@zy{<7#TG#MqKk3e6RW+b?5z=>vu(Nqz*dkg9_=#l;G+qO zW9(X>$5JeKr;dUW{EguBk6Fk(Op-~^h(X`umdyOdW?+pd26DqN$-l8S-`4Rm+b2GN z;I(MyVs;!jETZLf0Tb`!B%A$o@wZN;rybF(%mJlZt6nD}Pr3%!&OLyx0c0Z}jKY_Y!uOiWw&jQy)X9+T z9hh$0j0_N=yAs}VadKj%^V#(e1JEwuB`l6u{r(}B0@CdaSX1O5FI>a7NndBp#wT=$OfZYeQrHFCQglc26;bAF*%#-N$Y9W8Wg4-{`t|| zU&U#yD|2>ItBl$UycgyL$M2svW=!Dl&m}AdmJl5T*mR$(l`w#5$r#{3+Wq|l)lg1X zr`8;++3h42;MIK+Py8qZfUjV8p@!k{1onstbakm@H=D0Cng?)H(T8(YKw#zE!_o-& zY*_?}#;z~-%EL)uOphAAiskU$XJqxD`7~cvTuNe#r3!GVg4H^FgY{eUfq13LMb9L`tGH@lSh5CNx(<^j?g=-Jt1i3WSB zJbf#`Oyd4%O5*4&q8{{K3$uxy{RQ#y$4|P`<8sgKvSg4W@ zSSfbH!Fa0Or3QA>%)HKMn10qjFm}GC^~QeQ1S%u za$kQt{gZA-&C84bC^ndT?MKjP}zL9QLf54rG&uv%>FZ~1DXP5^%O;w z{S;h=Xgd*ws4q_5@JE`5@>s(5dBN|d1P9#?GvRZU)(fu*RGDt!#1Be-VT0Jd89KTX zjFBI%u&4ZE;<1{3{#7Q{{y`njw1#MBB3lM9>{|;w#@)flnvM3kl3GB&DL^sFF9VIX z{B6vC0UP}#z*XN}uGeC}lj&ysXY^YmK%ou?N@3IMzB}oN10nzu;K49PhKGi_=BrG| zhVNAbYZ%HE)*@4<;gd{zhic$RyGa`Ax)RswWh^CLIhV|*&dN)LNt|qozrmkw{bV>M zRZDu#7K`pp64vp^^QSCwXQCMjlD%TAd3-VkYECynGT+l8%m+Sp|EHtYtA`P||?3e>VP zIrfbkJ&Z~arnSSF**-8_`ke*W5paVBu977!h+^oCjkWgV&s%xPmJ%HuJo?N*A@8DM zWK6Y8XzyDHM_`O>OTj*J^y_x}Vb^!&Rzp`xwGthCn3Sg71e&nN%*!iy3@V{2=6*j{ zTvMQKK3SZ;^ri*yyQ+=T-~aFWfZE+@{Qo&{*O?MrS4n{lQ1dLit@+H?+mPV1>qi5! zu($)L8Vt8p4+h(|i;tziJ#f5tPS1_(sfNK1cDJ@WUq$nHzau6@TS7-mYk2l&?D`rU z_beMg*jckXe}^EOTdzjAg}I1NnXYiGuX;J0#IJ_iF5@=DZwnI+ubtDETnv(Y={6;A&Ewj=Wzl0(x5;7Uz$8edL=DTuFvsD0j`_1KR4Z;R z3XUv2uV=UK(L<8K!~amHQpqpwf_Y-{ z7zueSai6RM;9dhZVMx?&rP-zNVpa#(7H;b^8V1sUj)I)_V47SVuUrcLTPH!G#q=r) zzg`Pq-ZhL51o72MwxJ3^#-Q7pj~;Ls(z;Q(MHG346DYJ%3zndAqFavReS2~`g9oH< ziS$%lZX${<@A~fp#|C%xCgZd}ouJ_!>4y+W3T^z3oq%MI%BG6KxNzr){D&y;*ClmM zEJ6N1^C6R2@S_w9co)8Rh_IoIU?SA0fG#@|ok_V}DmA+QHhTYcS1dn|iM$`#XWW%1 z9rff8J~?<$>lVP68v;$!c2`;&grgV_?cXT_;av}J@>7_QAT}Qw-$2N2K)YJ$w4?a+i(QQl;8VaM1lLT6_KfkZv1t6mgad5VGq=D(eQmr1+^syj zwRWiWKc1Buiu3>J%3;Rh;$p|#3N`hR1?&Esvz^I86&ep-EQBVY1{?&MJklPiY5mZC z<-axp@M$vF7d_2?_#{1k{8l&1gIi` zYGli|#Y|}JrL7n>EmC=E0i&wX3r_l6MucX_S!3bTVv4@P6I1?GM3X9Mm?b4HD`wBq6?sxN>fs$ z9-(Le_SF?PP;c1X|LWS@z&D1W1kN7?kK$-#AUH<#6kNp$J=BgtwvxhiJ{R&;%Pn4f zUdUvq!rJJ(2hXO`OwQ|1sq;|YvHo1w3ff^cF46oAw-{Lmn^q-+H_7)*T<(kGJ zC_d6p6caJ{1*M7LTXq?HU?5cG{Dt`dxM)ZaJBDx2PQB^+ufBX}DY4t`riyR_&ocwk z`?p!@R-8bweBcLZM{VgZ#5v+Bpc&)PA!oRqiOjyfs2zvB-_ogUSpzptX7-Rx0ZkUu zr4P6T+vY1uuPtK2TU|HcIm|HZ2gt+|>BT3q#GSc+730}Yh;+7`XyYvW_b@*db$BDV z^x*(ma%BzSuGP>t!M7uRLA+0}j;wj_f#0?+oI(KHE_OA1>fD+CQSP0B{rQ?D4D`s$r9Le;?|O{qZ3(kn+J!VNWO3$Gn4* zjf96Y)mbF+NC0rddIt<)JPToS(|=xb{nTiEN+}=$Ct%4A>GCkaK;b{yJ9ixrplrni zxuD3~JzU^JQ)=K)AD6ONCQAw;SwA*hE^b94QN`A8fisWR+cPgmhhLr-J6HDO-ui6i zE`JSH=HNkI1y@rIl}(>NY^p$MeRL0}(R~A+r5FJ*Xx@t$q?xm*pI^)*PoMytj-nmU z5Dh>j81FK!deK%=1*GAj-D@z6^Sx*HP}KMgH0xEg3^7bxTu_UvR^nXy4PxWP$Mu7X z0CExk39*!vH@N-P35AT|3d~7nyTgiVIlVu-Y8C+)uw8z>K@j~RO@@+FCrjq(`P8_k zdA@b=kY;5ic4*Bd27Y|^RLlLT&;5serTx|K98$#TWJ!WJP$-6L564+=Zh2NHn^uuc{5CAS<({gF371mZhi+4#C6IVNxUGV*7BK;=*GZtv$U^LxJnwT~h`uoL_hH_I?SK@@v`%%g37=LDyd-cYt z5Dpv2do8OkO7-8VdF9U`vEd&V#(Ya0ubg-HxPfXEAbc80DIE5dE^2jd`YWIR9)4!A z58k<%qCW} zS3~33cLWbjSZ-^=dg5|zR?0^hHR@5D$n-~}K1p2ro;FkGU&0n+_{olV4;{XTZ=NA* z+nbc1Uz`e;asQGGFZ7K5_Y&MF_5>U5{ng1tcf~JGvs{N#A*7V1EwPdJ6goHrfConi zr7=>FK;YRa-NNb->b^y+$JW*c2~v5%N}iYOnDHK{RIJY`h7*&p$0 zY|!|F){QsqiCmp^XzK=i|4|@jS12Ii0Ra8LPm`mgUrtri6;A`5B(k@qmdEl2F5Kq@ z$oZC}J9XTjsT>7--r;`ckY>o;7anlmPP;Wukl_ zD^P%Za1bC0=sbGLZ=a&&jXit=K8hO4%TuF7GyiE!%or{q><4)j#N~h1O1EopBTj5_ zgC{3Z)H1l*MyGvMJ%pd&C(!n9@?D$VKEMBqd>17i*zpnao;8xBJg!?w)NfX52Q&wm zs6eRh<9E=3{y?QX99BiJZL)frDEM3gykc>8Gi=TT-~r=%{l>$ zaaL_hw$BUu^Dr}VbQC@jj1-oo=oXAq3-K_i8#{u0~(c zD&F?GZ>xL8odDiheamQzcg^EkxY~l5R!=t;K~V6%x~KT`A}&hzrv{(wPiZtB8;*pi&G_A82py`-yPv!CqcI^P|DMwH2P;_s0WriO?;<+4`JdbjlZu{72q^c=Mvw zu&D(^YrtBXsW1`ikNsNTI6UWsF3TpTzcE~b2%+WG_S^TaKRkPe*<~l8n${Nrbkt)y zvO8YQyciizUW6+cTLM0evobBz zFUXNc_A$U!Gk_jT^Ve)8t~9x!4#WPGa0{Xs?L*kK?VAz}2)o&VQmTL(;UeUovbZ=K zXzv7chd6wl$YovggIir)x!(Q-@D(c#3*KJX-6PH2g$OzV^^rzADHID+Ou|hxr~p@P z52pR&2? z-XqQ>&gaD=*!YJSdEAVZVf9ZQ*R?N%3Ag5L-FCbDG&HknpPUOyD9;T(jr}~c>|-uO(eY%RU<-PY+3(dFdkNgcGd>IF z@%7#fCGERW5=!mlh8#ww-`^L~hLrl(Z|y&W&L4QDG3ZgWy;t}*VQ)8x@~rG-Q`Myr zxRVS-o*MFb7Al}o_(>5?`R0$C&~3!tVN#j-PVynJ@8zih&mzI0zEMCxFzfY4)HjLuMzjlv0% zA&dE3m86EhhK?Nc(>znni+UH*@I_@gPzdzG)E)6O_{mavY3bvtALnS%X-OY^JX>Rr zqvJtwEQ3y8$(I5hS;|jYBy-n#sB6W@ zH3UgKp4^5ZdBMa>^~k%zM!hm7q08Df$j46;}1-Ii!cCEKs#eFQi<;0q2F<##0g=1Tho>NTP3bJChjQl0$5CY9 zaR5KTXRyJ6-F#OF6$zQ7qr_m6{DefC$ZcCvOdVpl z^&^*i*CA&#ps?_YenH~{3yQ9jX+|3&2+K_P7})u}E+Q6~&~zfngD%K`)(RSkiwoJ& zH09Hf!Y1pR}itrAtOeTaOJ8}l?GR_6fDPEVIT7P5a<&;D#+U;8L~*=qGu|MW z@iGeiMEw)|cDvKzd77++Nku{ z&QNDX?=+IY$PdD%P9l09ew70$sA0v?R3!g?@0R~$W2&t@&>iQl>{U?CBU*9Rqc5$A z+)U+OnoKESuffL$)vX=L4Lpl8$|*fQ2IuVG|G2s{O6g(Q9l$);^5g*7LSjy{M?ig4 z+npEIP^xhF)hS%?1;o0%M6;ZdRiD#zcgDf-Y=<9{Qs^O&Vfr*}TQ@bneKjnA|E-v? zV`e#dh0p9a)NVw!6FXBpw;Q7?yNQ^RIbRp2=R+ri9tqK6r143fVRz*(f7T+!e~#@lk7O9;Nq9Hu7h?)z~C6C5b{I^barJx8XM0 z4m_@$^imOT@p-3mLo71uUIriQ;y*;OkFD05L`xmkkIc0*OG%BLmg=i!Dx-4Uwx8Fi z)x>=V-!W+yu=~o`7MaOj1xPiXAZxyrz=2C;#qrIcIQOd4f1K@#4iyJdUB``a5^q(t z7!@Q+eJJt-)p#Z~Y;iu@j1bf<1o-4(?N75K$)(nmeyv;HFWX#-o5+%!ZF`h9O*dHd z>Hn;ceJCd}yV#SvFvYmKFQB@4myz(v$rg48kW4TxfO;I8Fe(HYZ84epqz5Z~GK3uxt}8785P+Rt-092|t4C-WIy z7DL?{ClFmFbJ+Q~C+xKXq+oswi{5`hJ%x8!am_rP3qa)IhSOWMs?W$=LnEc`@9I0P zxPY8xhf&2@aXyRUVRZ<%v{Ns=y0Q`3%ZbClYIun2UByB}SkG7tqN$UBC%=f6c*3sR zJ5>f(0hc0veXq@v{?}?)E31KcbOEj2>-+?IwX`X`y7%Utq(Kd0sSY5VnWIn4X~!{c z&g4y18x3!JtMwoE!dWAFSw;<>pZ#VOE_D3{+RG5znTl=%CP;;QYElwkDE4^GMeaZk z?FovS9;#egS=N!O7i#_tK&(|BR4zNZmk$xRe+#F=qNx77)3wO05WsoZ9Y*5eivrZE z>~|g#tW!Svaiy|^V$xpNSeHeZ$M?XX<|P`ESi7Cljs!zwpmV|Q!q7LLLPM+dbo3v9 zxx@I;<}taq9PU;px{@ixbkafC{zQ&QcRuz!HCVPxff}%P1Ay#yIksc~P}DJDBQ+5& zrU@(q6@8QKd*6fpY^8qWa!w{_<-Y~;0|58Ci^2o*=RO*a>2Cev_v{DCr(_*gr5{h> z{vE^ZJDpUh^O4~4Rzg5;(uVmvcKOFWnvUL2%pRI9FIR~#CF#_*tzY?^w#~(*jY-Fj zAvj^aP1*!g$oj=bR<9!b97vKO7497y?>UMV!4ZD?**3?&UP1jWhZA60Qc_4kK^^b6 z-o#F0{z@`VyYGD-c^oSKIT1#-ICI3OB`D}JiJTI}$UjA3&oa8(CtL4F+gf`$3^fJ6 zW;6jDTHTH2=Hnu_TetUB6s>dR?--}+B;EJQg7nY&;d93{bL7>3)*DGA0`C;Pm5)Tm zm+xTV5v_k0#GXl60@Y~mznS4Do#q8R?)B>ny2|rYJUd&XuKC0{M=1U3&Kj=2`(%Qx z$2$##pX8PwjUVm1pFNK^K=x8>bf$G#+}XS=u@&i=5>Q377Mx#}F8c7z|5C(4X~b%e zV9C5lAacRlzGGvl665)g6o^ts`aa=OhB_K?7Q)BdlO-XqKiW%&6G9H!%cqtS4dp5= z26ZMNL_t8zHp@8Y&AZm(&tDg-s)fn&zn_WmicU4U8xN@zEQ@=)hL8Hnz)qBAx)0>0 z8?OuvQfW;U9w;U74^|H^=K)DH+>buFa4hxcv~ZsvMr(Xq)~0@C$4zFiXYF!$4?`K9 zU}+sm933~8Vs)yY9`N&bgtI*u7J+MtSjX0e)P8#vc(zLc!wq`sFw84bx84V=Bl-NT zzsZg+$LAZ%p70}Ib}8E$kP}>4`c#yTUNHL~(=^5&$_dFl)ACnEJk zwy`4A#Los2L19{`v znfKyn{I;ZfCZg&!Vhe|emue;vhU2I0Hz%8frs0o2E@VIFDn-3A z&>Knh2={A~o@F7swZ5%e3;>IFw2@TbiQo;e7z{wi3n)?z4DTecQh6Gkj_nG!xV?{g z-qGOHA$n&_@lFk%6+y4&>DzW#$)cE!1uvYbbQD4{f37T|xK;5|PVjssE;TXep=TP% zjPB?2YGx#DFD7*W9DKNDE{FrqXueTRB4kRVbE&Aolu3#)e!C<)^zoFl)2SJFx@pn4 zx@32wz5?;oyrIFqrlqQ!-(p2GJI_}`VLYuE)p zD82uZnwl_AIvezq;OwT~a(AxD58Hgvbk0(il=xyRsK9!rFs+8EgQ)o&{_6EcH+&1; zqXpwvP(8#B@ZcF(H*JyAKn{qp3qic#zak&p5NWPT53Y~jjTB|T&{C3M060)m-Zo=x z(BZ8y{sQ)TP)^J*tl{RpnS0-d;tl>Ys7Z-#0*RqAZz~ywoMmRX*02tVCrVLhpQ2M~ ziaDHA6E87PMfX{%2Akh3W}&mN#|o!XvBjT_;EKCkV6-Ew8Q2QI?C>)_v$6(Lh0C%4 zLGC;P_|pvZTtcx)`Ipqi?*@~Rm^2@-=zxGoltqiyaQ9ko0Q*84H~KUvurN^>K|k>6J> zG*;YgGfnCEHR68+gG`9n_aVibZ1Z^wAXaOmT~G4UgO~x({DzTs*oXW-BupOp13PCG zrC1#$bDZxI$o0rUp+f&U_<$ZjA(WZKjT z>{wugFneaQqcIbyGBG`vbXc}Jka8n z9e{IrO>&2d$0IJu-t%9~i-xU!g9|VW0eCo`8jA8vDZD7& zX5K{PRh%OZ<(8MqH0qb*DXm}g3t0^`4Iaovam`I`^LT1N5ZR)CI|7~ODcFVDu=`n} z9>`${tEgit*?UejQSRu|zd(^953H0-N1!PXr>^C=sy8>qgM=YOmR!ZipyX&c`;fW8 ziPc-<>;Eyw*0IkK$*;kKtGrb4miB+oEg9r+y5pNzi5J`ARq|iNNEHD6O9&dsq$AN- zjP}Hv3|NcA)KnWadeKw(4m91maXWbvZo0Kj9;|Y|V9%cy^u5Hq^RN;ILW=~=Lpwj0 z!+QYs3$y0q!bh|ZShfv5gUQ@Gu-YdT7QDzb0U~@3gfj4d zf@|dQ%{r5petmoOyU~RXXoPIcMT$_yMgb0-ciPOJ7f?(0Rd2-{*R+q5pduC@w#jqWjG!bAql`D<1rdc=02+e z8i$wye;^b*LurCArHp^PRj7|D7!Qg~DHQ6x-%13$@W)%;`AibD=069Zbe+F9{^*D}64V^;+I5r|$yIBhh#leO{gI zOg|s~$N4^chBMjpsn!KHWc(|MgU@;G5oife>%0MkwPWMsha(a=%YeeVb6in00+57! zp%5g*BIN>s{^%UJ!3i~7|9roB42MXcriF~r1k0D96IMzJPp<{EKkJr^H}YV*1P{cG=Kh9 zW3kcioB`xLAP_q-Ky=+ISf73;;JO(A3=bY?q`}G5)1AONAhJHHBNP|9Rrl`H(HLf9 zwm=mH4z^s4)@#kL-Lo^C!u{wVMz+(V2&k(dmAp%rZx>!b{!?*-tISv8h7JzFp+W`p z{!%p0o{6VJ;DF$?V`DI-(haULQKG4su8*QaW4*x1tZR`5wHFLqZPr{?Obf_i$`IRz zIp2cleaN1B*GrYd9!$IAOBE9N z|A^B9hG1o^ekI!rSM=)0^pD%sb3Rf-AZwnA_b%qfzt#wZT;1DC!kxVB%-9YqfXlvMEYtCpx znO*C1(#+isuF?fdXCFKFXF$_z6CR_P6He5+vd2=NI}UyUeUveP7%oUm+oI+6n9f3w zwNvnA5-XCJDVMbk6Jt%ArmYT*qZP_e58Hr8QmCUJnG z$mK&#J*OZcrcB`M{zNV_@kyLk$nl^GI{~lvDaFO1{A;w*I(Qu`uMWYt@DYdJw1ymi zi5;CwT<3O%kfK9AAFoY`7jI^WFllM2(C>dqr2&nX)@8v?o$&A{$Ai)rcEeuGi>@Fn zfrZHL^JK^%`{WwTqFY92$LHPKfu~iO8?=H$f+wi<;NurOu z?4((M#DEB`+^ZGa3}GZ~8%o9mi_UzQgIN1?H@lQU5E<%x&@7r^_$xSuQcEpnyc8(naZkr z^*eP)MwXzS7h5H=o4Kv?S?3&l8#F#n#?%WUH{5q~_@KzuwAU;Lo5{g47akl5_my^1 z&t@A>lU#2h@9hdmj5>Al`p+rFQZxnu-NUn^?{^=if9J=_1BkmLwAm*|gr>oOUP{TX z^F1BHn}~d`@Prr*Uy?W+-=289HYB0q<-5ONbbl%nePp#t+$28OV4@;Z`rkOU05|!? z(EuB;yC*HMhC?A2fX#54cbh^25whxq#>PJNR94RfI^NEV<%V1xZ;q`b0RO= z*U^?BiOu0N|9S#&%c!3s?^Aw4WzR7yIc~BSc7C3)A=_tj*RNPaELZzl-c_;x$9VxD zOAQaN)RNc0yJ>1gH@Mj+14=rsB3I{sk*7-HC=7diE!8NZl+mYt0lf2o=t|!`7?f0R zET09j9Tt4=5kc}Zu$)?60oWm3`5tZy;$#JB{T09e`weVRRErKyZ`x~uvxA|`*Y~^* z3p?!XHe6yov(kX-7JeeOU2^gM7h)I zgO;;d{`Y1=86v;U6^*8TY?|3$!mkQ;;7zvEDesMcQ9WUygQDxWhB{p_H`VQTu!5|{ zv8Q^ETSkjnX8Ozp>h^!50RI{)_xPtPMTA(b0jW8M(~2a*@o;E8O%T$ZDsR8Dxz`0s z!Zv)PWY2%SaZ1xY?1xr2yg#Du=k>LCODw;Gp?PVd$u+twSgON)bO}F>c}T z=9N+yo}z@UiT}Il0UjM`0p3!0R8&tW?sE``h|S;!peP=#G?hk_7$D@O$-EAcK=Rdi zsUvW6GzU$N9LXOHH92XG>YbTHw8qeh*1@SdF zlnWK0&VR5>-$BXo#7ZYSM0MXbk3mscStVX1xVu@W3DM5?-M_BW{|BG6w+u>K ziqrvkr6EAf6MA>A-|TL@J5&1`sKi3(Pk`E$QvGH^z<)avP!vAJ-x$ttxc85M3n1Z~ zaX!!;ALX_HQD$&Ij#?B1aqOmpUcM9iqSwxOYu_F5W@%^TFqG_DaLu99d$UTtqO0z^ z(^t$2R$sn?(9Q@QZ6fMO(c+>+oXEK ze%ti{P%pFs=Q{1GPQ2p=IfILYnZlg&j5_R2*tjyKVg0A?el~vFpXxJ-ngjg z;kFv4l@qDd04K+OPEO&tWSJVC&NF@o(Yhi3Cx-E(&P=hg8cySSK<=t}P2IRR+GQpz9@ zLW_(jM)BmCbWeGi)fG{`+zYIX8(or~_FD7^oFxLQD>T6LFY1mn2LRYLy8r&%R<)1z zf5$Bqdim%JGRCtnQW(5nwq_*$2**PZ`*MI{>j(3A*ts=cfJ;Dtk~3;G+*+&v0Vun@ zL_t)(Uks7-7V9&F!vDj-goX+MAdtZCM)Tx=lYGQnOiL*0Ok}_!LPxYZcO^?KT#jj# z`l)B%fe}FV{pW$hZv2+reMgJS_V*K@)F{zXnZ;?VBQa@i6@zP&4+K;}u31HjzbRz0bRKc(beVvX?TwT4eI4qoQpwfEF z71NH4;lGjYvi*Og{L%{%yp>99LJ;hpo(d>R#R#=C^0it5^t1@c)?D(&eBHmGlJAl< zSePjK0mx(Z`E26fzK0D0V~IFyxOF?D63om~niQ}O6^a1xr1Pqt(Gh@Ev+4|@a2Zi8 z!?WT(OkZmRSP~^EpQN1m|2C}ZOaLVmaZGCb0qr?3QyI%wjO9nDj%b&W*@V^SkdG2` zc`klnJ*S!F!*JC0N6L;=1zlOgkBme8%3Q_+xP=y+doi)lX%9O$= z;V>C(Wq`yLr1x*jEk5X9+wbB*0gv89+@Na+_1b}G2+9`#JhlUHT^fg8Bu|HQ~6u$6FRB}S#5xl6}}1C#4&u*CO}apTne z-OmSlelMl>7F8!)hTbs~W5f-o>_vY`5Gf}g{mQ%5_VfGEwUR?$VVIlYpTd6lOT*J| zXvQfi6`)l+S>3&pA6D?84xY+}LSjLX(dpBW7iHOV=JY-6UyjVLXM%InraXi>EO-0+K4jZB%J8Wm;|fCTWUbK4vX*m3a#1w~RC$)AHmOU~??}m|X-I zA#w?#ogcQ|n)bpR-hKFzrUa#pR&_5JLd@vFCNm>hUAadlwrps@HY6$w6_9XM6Rlx> zdTn-0E#Za69@f_3H9EMvVbHg_7u8a-tCgf(?DHRuwFU;7jlRnnulEf8ShLFX@wD&0 z8<6e%G#OpT&;EynPc7(FThOo_ZBJ7}8myoiC_Vi=7zZ)gS@a6%z& z*9uRb&ehn}81;~6Nq0DDRXSk^UC7vPvFXkltS9mIpZ+U{@Ru*TfRLc05af)4q?C=6 z@Jsb7ACQoc^bQaANXv_Kw)tKgu@f6rYGoD|->5{9Ao>y$Bb@te9hptfVjtG4P3#^m z?I?@vu=F}EXB<8EI)llYh4Iwb+%V_L79Zj_gF9hXahY1WMX9t}ka{5;D|mJaF^@fd z@PpsR{?8*E_SYBqekGCH?V3ZZ7%j?BgT0dRVKr2?!t3b5*(^F$7@_GONZ!Hi9XZ5W-&S68kV3<7Pl#J}dh1)-cta!Xa7#cY6AlD~Is zM1_XRi~|?_^+7E32e&b?q^^mw>(t&@iL0cC6mOB$-$`O)N|68ttU7u`Ev^}JeN=xG z0wewcfFh6dbREp(HMZKK=<4j)JdS7fHj7^|7s0RYw)kPs6(S9S(0PZXE=PjmaZqe> z>ZzLC2wv5NDYZyklq=fGI_h+4DYGUdO6Pz*zz-5zdFz33jIgpQS(`j#S%`FAuC20% z_CqB(W*u|Wngt8$E+Mhz=Q|51Pw-y;&4lzigl&WCLa_hVlx;!=KtsPS``dmuZeKWn z2a-I{O<6>yjh5kagKp7&@>EVv&T)XHerda;{HOV`xzPDkdo~aP#Fho?tR%CsCbRYd zkmT2vfU6)2Bjbn5JBAV35NWFJA7Nt0pXGX?k@*|7lI50u#_ z@q2Lih^L~R_g)fndG+pXf1p)?r`YJkyUkbS;p~_tCF{LzX`&(UCi~EgJU;YO3-?<4 z5Cq@|#N5#EbUxo*JY)TQratO=mll$^SNGH=9KOYaI`3}~vuEkiY^!DM#osmj z2o&{eJ`ijZZbFixldrg*6G?6G!62M`rumruqlwtpP^OVAKiw1CIh1-H_{S2sKCNbn zI&pY`Cf5lXJ;F6kqQqj8v)E}e6{|8 zflB9f3?NR3b9;R*4OEjkoop%t?dKl=Wr!cL>47?wGc!Pkxr?aeNBQ8^Am_cWp)zc_ z;JnFD^3+rst9o+qd+a2z2LDW^;c}l~2dp%6)#*uIy!XIu6Moms>!fhj_6Mc^Wf%!D zB`#a88NF(bQzitHf6T0=q5X{LREjh8uB_E;-o!O6m9<)ZV@$7MEF0;Tq~zULKU?pu zDLI=^-jh|&Q_o?gUp73)N=DDfiZp`4Dq!^2zABr&fSgIL0g1Urnq(7)h|KbR3rc?NdeE z!*1w4rIXaX9a&i+T`c=U`=oFoE&F zW|5TcU22EhlmQy(cdIuqkX$gTG`f@?aJ;!dloofG6!Cq#m>nm@jhRv-kaOaQGxU## zJqe0_#@s)uIOfC!@PzMdytWxONPtCD}VQ zvapG)?WgZ=VnAuj!t>qr+zdDp(vABOk$?G7ow3FPA)!g4Ah|;fPmNlYFimQcI}mZ5 z5B+d9b^X=S)cag&EJG@7w&7w9;8&D1##jaL-y`PiOl!pG-E`FPy8aOY%K`KSWj00( zZ~s{|b#*7V*}4YDWg&%pd4N{2c<__VVfo^46(BRRr$D~l?3hP{7Iz0dX18ehARrN( zX+J<1+Oq5=>E41JV>g>U6uQjbc23#h9xASI_-mnXN?VS&Usjxotxzf$V^+t;$v zT`Jx?*Bm$D11>Ro$rItr92?@Z%17gG2Bkbt@R`%c@&3h@U3cNoVH+Jl6NdSiz5URv zJl7_b1oaehmy`xt-a+WzM1`Vily}-N$X4i1Spm*a_#|<#@(O!0VjUiyr|Zk&%y+8; z?Bl$M{Wc-u!)Omqo@?W6r+T}&P%O4WT9?#0C;m$D;s#N5dE5s$O;)SV=0x){TM%ms zKL-924O5Elzum>VY2CTC*&6K8C7k@wp4b{Sw3noOYW=f4f z(eWX`lQ8|>iE=>=7k$4v$jk0EVYPE@M}ol!zJ?CcCk*+X(D6nRU#4GC zlm^iXfWub+)9@aL&zsO@I9E#&s&WW? z@#_4%hxuFMw;dXVm*uckC#pzTsyA$C?N=K5@enMR@nlq54dU-lf`+Z-f%ZVnvbDxL z{N<*)TM1=8>7Lyj>)Q)P-DV+U8d=gj^TeYliu&1FGgI6>-E;^WouthqU-@;>g1Y?b zk+{>lvgo+nz&6>!2Q%_z#{=H3PJ7ggE{&J!wP|4AUx^{F9@1i^-Z&djmv<-`S~vRD z#V~OX!7ms1`E|orOHChdV7_NCl&Q#ck3YHGy{U57Pc8^7S@GTI{#AGE>Qp~k<`;Vnd;Hr8{gA{o#E%;+&sirZnJ_hsbyUhmeQCbr*5P1RTx1#22Y z;AQtg={`pclO=|V0MMXn+BUs%;d^ao0!C|GnyKA`03Tb2ma>u0c(mhjz7zD*89s6r zA=oOlHbVe-1mp4wJe{wg(QBC@>jr1ETo&iQI;*BER>P*?*VqO#exN!=rafIS(tI*N z`bZ-F2lqqT?$p=DNmPY$N&EDe$H)ij(*}4yKVt^9%`;UnVrmEdj=LW5`i7NVDvVT8 zHTbdW;&4UrY8Uz=pmc9lF%&oZKKz}^G3nb<{ntf|gWW5|_*25_LtsNGqj!SpLEv)h zWM@8d5nZ5T>X6|t2A8%Rp;TdS4L~*?H)z4cm9xy^&-f5jmKh!WMDb#B*|FEYo{5)N z6G!+Y`sKUSLerio_{C?unRbWvyQ{?Z&9%O-7+6^GUCRd#C$uPQsJFbz?2>FQn43{D z*?(#pGPtfte#0VTuw0j0A4;QpB_P07`cjq~-0yU~+kbh1x8BCB+drfM=$SbqDUL<( zK@S6hbgJaSzL3dkVTplyp;1&KB@2T#gnIf%o!G6%DU>$j6?G+7#&+CIZ6SWI9LlR8 zrhq;oV4l{%+5WO*>P+p{BV&)5Du8Q9Ik6N6d)fruWTrK1$ zN^`G)QiLZY!CAo1XTdXd6 zcjtP^u?+R*?VwL>gxGb=9P5Jw#Ng}Fn^RQsDbvGwRJbslk6KH=rO>9G^7*%X=lgHW zJ^CKH(ifbV(^T)p8rjF2W*Qg{OE7N}kc#RJvKe%Tyq= zk!c(LVvK?o4bmU+fZvrWQ;=?5c^gc^dLCa%AL=L1+@cCMIo3Ou!687gGx%U>&&KhB zj8=3)NT$K#2CDHsHMdUv=W10dPL~_`z9J~Uq z8>odEQv6mEU70UEXlkK9yn{3#UdR*i5Po0Fez+N>RSJv>-vgH-`{?;zOWwl$rQ<6-g9up+fFg9!(Y-I8q{PNk3!@BP(VP4u`{neKGdf}31k!R#|4&K^0Fp5eoIj_A( z*tG4DaT`s%DnF^1r&>euufEWKj?H-WLH~2PVLH4RE&v~E@3OVLX2F{+zRC!NFJLJrq7n?ISvt5uxF6oT@c^h9-lxzckEpYiwli)&8RBM$BOgt zMInI*N~#TJ?9iX+_d~nab4rl|IkgIDRyE|1VbXYtNfc zNf*1d8D`tvy>=jplkJ{K4lZ5FSMVQJeRuI9>p6soYgf7V+`Mo|MexlVQE-k_dlUiZ zt}?h}V$V$!DJnaD%g0GOH)FvZn1wOZf)}z_WqbSRNy2kC7TnRf)fv`Dxcj4bU!b$C zCT^{@jrf1Y-MlFhAJ#-9tVlC%kf=O6wy>idq;TEvV@f#wG!-{a&gZuOLW!)3wkX|; zhicb`9MVt%myJE6{8oh1+H*Y$Op5R-sUab)$T_uy5tf+P5pauW>OMwCR|aOl#MIPn zxO`6;V91^v4~sG}G07YH9_EQ$UYP0w8W8M|E{C960F~!P$*&gEKQShi@METvRwqxU zySw&ljfy<;05yL}Io6nC2HU>gz$Y(FvA+6GiMrE26Ku8fWoq}W?3iTk%rlP?B;C$x zy?OMvhU=V8z1f&_E`btJB(ttE7A_;xwDVWILx>qqT9Zr^jV389ZJ?M~4Tk-`g^1 zk0}HfVG3~>$~qTau&e8@^?k__OrH~2lC=SxE-0Yt+Oxhk&&;0bg%2(;s`YM83nC}^ zdGu!!1(=#| z59T>HzIO@ke4<=BcOyU43Ha@E1+In92;W-4xyg|jfN_vr4x_)Os(Jui8k9eSOriNE z0*n*_I#w5*R^HWcjpSeTtv^c}bvJ0Hb`y|~X2P>hVBrJnYI`JLRoqx%b!eG`&}$rz zhIx`CdJQ*j2jy*eE#~}=L;9p`#$9&&%^WVKoIeG_Ra1dqeX~7z{G~FWDIK$qNNj`` z9=li1K1Of3)Vy+eQ^7cSI-qLKBIhgk1$y#x$SomURevzWBS?YbTTzI6={becCzUks zCo~nP)R~PRZJ-s}R#t_8;JpBwLeNUdwv?2|wvY;kLZ!CC#tU|TSLXjKgH6|}&{A|? z&JJoCuV?9I%QR4xv8B_(rD`*)oW?EJg(mk+o@ia&LdGyR@7tJ|qGzqEFz=1J`I~nW zi6R3oZczDVn02OxO=^LSr0h?*eXPhSMy#>9c{V1tCT_Wbw&X&Y;d`R&;{hEZ8WkOa z{dyHCN*Je73|^hp)W8BwrLtEa>^|?;FZX1ycJNN?_d^|XUxl0maM`&FuT2B0PP>_2 zgJj7wG;5<=hh{o<83U~Kj*8hdUW^8Vq_@d31_QxY1W%vox0unmj)9*^iLD)x)Z8wlW!F{&V=z0na# zbeOUqrs8kt1mop79p)0MozJ&))w2^#=bGr^j7FZ@AUk z&3@MKkvJKvMSgR?&SQC;;s=WHwG}DcE8AXoB_)kl8C$h7U~iVO83Q&!O|sG6l>9<} zam;tu&Cs-!v4%nJc}w{KJ?;ZAh!Mr(_pj!$}Oi%FS~VQe_q{=4R))Ol<^6)xAbT?ijNgLT_$eF$!U%LYOYF+E3XQwzYZq4TVM5- z*I?wdZwjtIEpvw5jP)-b28^+j@x)E%7KyhlnC!;BSZ_PbKYoK0$g|o*Wqxy0{maU4 z`~m1;)aJ07^cJ|#D@%7bzsjxF2;Hq$6R^X^wgcPQ%IafzS&w)@&BAgY zO5PKej~ZO)m?z#AGFGuo}L-Md=@zHDxS90dt{>17=vgJE2H$oThrwb6S(Y~su0(hK@^UQbT0 zmEIipU&U-!`{iDhp6eeScTwO7&f+vM-hG-cZFm~|QqFs?aIN2qf?=)6GM#UyWx2r1 zY=N^cV;6A%=9jdd;$mQb$z97uvp#-lo6UU>3MM zmf`J4U4fc8c7R>%sVV2eM;;ayHnzr~>N>piUEuvero#9{ATnBw)9TCJgFKKG zgbNq6#r~i5Ro`AkLk%eA=F4m>hQxHyi{&2X4tZI7ED%MD#6w%CT!6NE@Ehk>_jS^2 zjp@vm7sIEtrdRH}?r6w@b(*>E*4|Bm6NyB`5Bopf_R+nNt<$`-+I240R(<2uB<_El z>Cil1HbP_=Z3B(FeJxJ~0=+Ip#4!$;rZ}^J55Txv4L2d-8y<#9!8Wv$7huQruQoSI z{dP*T>t-*rlm%OhpUDr=ZV4L;YC1-+eL@}?rh*qy+HrY}^3U^mLe5%6<**>8N?VOx z<$i{%V(d=p^rvb23-X3J#j9SA^!Ove4wXFdNtbnC^Wd2>TCw@vz4d*Yp5FIXHU`q| zQRZAO^Y6lk!EC`te1>u5L%6%8Zxb~q2HNBUEOt(c&r~@H{PrF_T6dyg*la4`&SVQOjaKOpMyUl{#D%V< z>QKxsC1AmGc6OeCc=O&~4*P3pXe6{dQlZY~?FuLOE zA6PTA{aa%Q!|1M9PK!}Y>+<1}9A}-2bZz|gV}2$Wk!#-M& z2tLp=KRcclzcVK< z&m8FCOjcnd{FVN|X;$cr8iwln?@gU&!?V!$-I%4J0PZ2DH0xOpH4D>8)@-#LV(^pq4FY|*Q)J3|3F#|4x zG$p)$2Kd8sQ>}mlTjx^5NyKtAox|4;OT|@SJwJtCC3sFP)V9vO=7v4Z+&i-@E2EPY zaI%m;OeBB=xZt=VjHkeYI<#fhmM6vQWHZaKCrVun4h76;|IiS$?VuV!@)Y_dQ^N43^4DrR?(7hzbh z@f5u%&_Mx4)k^#8!!9t*P0Q(Q{(G4<^|uT^eckqczw1{Rjq5Y;Ut7AHOKwyRuis~^ z60bOZnC|W}4@otJY!arw%g6vceC));?z6PIPsLGsz*p)nqsotN39=j-` z@h9Zzq~t|lt-qfw+1BAmq6q1=RqEuXa+>BYAC>eiE9=-+ghjzW)xIUsvDN0Rq4zCo zlNtnbRr2IuG|Wv2LmG7>8Okth7uZa%bTn>dREldSb(nYqK1Fv(` z^QP@$PW&INy$4j&+1ECTie12l2nvdT^j?&%Fo5)4LlNl-MY?oF5v59K5_*R~5?bg* zL3%F<5Sr3E(mULfnRn)$|NGtVes|q<&swu&5SIC!^E2x{?S{$p2aSgwKIzJ|iP8hjWA|Sp$9f>rlt2L05S=fr> zS1`hA;PP~1!Oy6moj>>VDGoZ@RY5JYGFm<#IPJE_FiBE@MB=o~`0Mvh;}AxEzCO8LS* zZ%(wW0rVr%F1Az#b^Wg}ZgK&FB+&>PL{b65E3U@?3uQ&RMpcepN3Dui=7EmhA})Ic z_sIj{r-jd&!yj<($P~RsTLd!Z+Q~_pSPSQUlHWjHna$j6C%D=qT|fuvhAx_-QGdZ* zcHZS! zZ4*}3c|?a@I!oR$&=C)E$tJ}}R4U)@oC9oo%AdfbFA;oG=jucDi9Y}2jFBYom;xe5 z$rdvFP+{i`Mlb$ckk2=EQlYbY0Jq+HV_uCFeko2zZIbql)L+%2eDyQzLC`mBnNwOl z4M}*Lp{a6=g~V7izP_PB&~MyZe0^`K5_H8T29a@?P7P3h6P-9^NOzkghMZV#JedkidHcAbC=9J+;4x}KeLDIzsuKIfX@;T#( zsgH*!@n|WFq>C1Xi!BBntjAp`~k)1=MD@Ec&nNNplkpIc@prU0Kw+3`j8Zl3?Q^^9TXY& zfk(W*))OAMwd;O@j$~Gawnecb_1Q5wMv;mmpD2Dtjq%2!!mp#MA}6P|w_Mlpt?wv<&AqIo9N@6KNQ$*%V&)k9sS!!mu?+1FiVVffU|gYA02kU75606L@tLdl3> zE+LkBn(urRZIjKxk~R(N+|jsJ&9P%KGNdGcqcFS-Eplk6kK-6wk=Yz#vV8_puc({Ens`U_n6u%vqv6hO-|a zU#QM!nRhO|6C`=d{a+_=`?eB$4(-WxJ?V$JL$FK!XPhqpTbsgWTAR+(LGg_WbNQ3U zTatRiKMG7$bZNie)noU%oK8YXNtrob;}!b`*2l;_47&6Gp&ZB8SS-HL!jM$Uob*Nt zH0e(|rFhd?$ahV;uoWMMq!-42G5vuIlJEwIqg2h4r%HlIFNgQrNxFUq#dcchp4B?? zZ3)A;wY&0t_1|losjGWLq&DtjzBn#)BaOCs$n@u3?d_7aE7w?<2Ytv}-9HH-)oVhN zikG*>e;zfnEv_FHNXSa=uINlpkpg@4=gRT-7b?&(AeS@Vulsz98M-)-n*<`52`x|q z$S8l2{C*GUDgP5|wcjdHuFxOos%`#bEhD+Le+Oz`J2W+$*rD16AA`0Iu{qP-) zz`S}&=-sYnJ#ncBqbb3q;`dkl122(~sL68-d|5Q5Df3FJt&TzkqwQ9|Mbpet?kpZ{ z&>2+=sGehzQ5l+~vC6$(x@C;}IxeyH)cK-(-Xv~Sf8xiG*ZT%T%BIoXC#vUk8|SV@ z$oH)-*a_6sESM;jcRKi*(Q0@yM{a*>Xm_o43mF%Ft&`1PX6>pFq=8@S zS>LoOv6~f#>U36W&NvDPtBgH3ebEea*Q{?lC*mcd3DL=BVY0xMnkV6hBbNkG5Ifq_ zc}Lf9MZEeFU^~IsTSHvaW2IeG)MNR@{2PuD8nY@Z1#Xn)KVP>yisYF=_U}*CFtKL> zXK&h>5=w)9w~tKq(3N5z^=aUIR|WtKHYXxvH0OM}5UdfkP;m+u_noUy9Vk(cNrnG~ zwm|3H=1!@^@UDh`KlocV4(oHU_4RdxuydB@_F}ZdJpt=4G2ABhV>0mDH{rWcw&T_M zppdA&Y|N>h6KPac%4h@X6%2~ZKM&q$d#N0xlN?JB6OyJVxm4_e*JxhHEVS;#%(hL= z-=n#cjO@R`Yf!Lzm5I!jeu?2)o_pY9ze3%$t*e6z1A*JmHsssEy&;K;-&!GXf}rU% zqM(a*1VG{K3i0QIY$tjN8RRQ94f+d&T8PGM-lC4UlAw3#8`K8Pf=*AxOn;%z$v3@` zuthO|nnE*UIHEFKIE@htwz~2U>Xt^w4h>vab4rseyvw@Wc3D``4)X{_r{2YAqwX%R?MvvKbQ3XA#uxn;8?yP?hHdDHs+wwy-N0 z8Q5%e7p#oH4ni2jf0vQE_IYG>y)imOje&n7XY@i>f1~2CZ<&z{*Qx&7E(S^}R)CN7 z+`4=3sdrRH81%scIoxirOUYgI?~g=+j!GfV*Ny@eaIFL_5%H;^;!hgjSJVVY_58_(=zi(;mGDT^~4`(7zO(}fu}@YOGduj&vckz%1yk& z@=WInnn}vtA@#YaKnh!sK%#lTf9KEv;`} z9g4HDBc}F$t{e?;TP+b;biRA0WDg_^<-!djbsLMp3~kTPwAyG?ueDXUwd2jc+CPaf>42gPURzioUQ<0ddzB})df?fe}#xASkxj}ucE{)1}n@&S@~r&A7``l zFI9^In6{-O(V*HV_V%zbt(aHT@;a5<>YpZt^5aqu;G6)Y# z3R%7nD6aJ+N^edM*I*#@#jn1qSScMD0Fz+OmVp*rz~7|vxGF0QhPi)a)rdQIDW!@< z`qiu^78_CJOEbxn;rLB6Yeg$`mo&!*GO{BD{EqE?_Nub_78(&X896@;5RXIO=$IG_ zs=&za<705EX6EzX{O`&n7^Ab9?VQMscHow)g?arYiEVn4Ci0PR0ZEIRoung`;zRv# zSRpKYM_yyh6X~$R{tOEhlAm)WAkLRy`a*_rTff`RRhlFCcA0a7Ga`%SSR}Sf9=#gx zbr0+-@$`j1X6hU~sA1mTmp&{xaBg>GOjPoHW_BlO00jW?>G5qu@>a>?nhFD(KnY!` zdp6zdsy3yf1#_=V1f`4f#Pg#saEx%_$;UESwa-mn2^Ykt(^jsoP*5Mh4+CXxxQM}F?#JN*SH)H`E$7XY^eTM z&(ostdW%7{T~)Q{2837I!SVxaFRvIkSfpW<-g`?hE!AajD!Pm5iL;Y=tjluqxmrbw zk65+fSNR+I_O%nao|=-q_s&6B)=W=RhMn=P_Dd+;J7Qnf_U91-5DK9!`$*?x{ald= z*5}U6W$Pj_83kz1*+K}@;RT=arYh+JUn_Ct<7qOot%}I|Gf$K6)Bg5x8c35$z7K*? zI8ilMYVB{VUAAb7{6%P5Ny_2oo;hDIx(bm{J;y(0R@0!@h|}j@>B5h`i$i!gk00Z5 z=(v@AhnbahoPfTK7?m^#|n+`I%-Aox@XA^XuBP-}n$ zb(Bc$ycqlHb=jI70u0D?@ToI-I&#OW$2B7RV;4H_k4o)y?9=q}s{ZuszK-M)vgD=eE||O_2zO0~53IYojTP;iLVAB*TKJuC0u^OZ zzgj0gbI*`n>DV*qOGd)-4XmPk)HoiFANth*A zjodbhT`Rl?{k?ZV-fiaT;Jr>~-Rh08npXl%`_nmoBhM8K_fRU)%kO|eH+Gi4yk-K}758Q`y{F86}{i41_rYVqu)OrB4n?nOQ2L{H`RJts{`M{g*cjE23Hf{v+ z61)+kJQ%~WI9!}9ak6JdE9~?K`0l~Zh=ZW-(Hk&tL@&_fjwz@8;GV_dw#Q#C{BDMPu*V;WY;JDz8M9DpxV)+6*3r55uY&ie70p=&0A?h8X3y1z!yt zqvC|r2I=(Esdp!G4qOpP*ijWhGr#$t;D@+FT4dlwaRu&-Qr ztc@`?g1h|uc1Af-L>t6>{a~V(cML@$h=Qz!yMevV0Zuik7R>tUmS_(%Ha1;EY*k-) zA#%EZAyXbMWOF3WZR3Sa^0XN7FcR_kBMzd&&NQQ}9At+vz)SD-?i|3FQwbc?Nhj^&CMlRX%#>OQ&h`cBxL-2b~CX2b;lT3 z*M(NRSJY~mj#8dxH+9M;zT`7aZow6M$@y>eikekIl`3$=j|IUcvmL@s`^_s}dQ^SIVT@PmNYYa_zw5pSwrgmP>?h2vO_D@}SM<&M263S6XU2 zoJJwB_pM*Ztm)eJLcbgc4SNxSFtHUduq(#!SDADmIjgw15kPZd7=`bX6MbD$A!U|< zpmtrnl{t`Fs#2=F!@H%q~Cq{C1Mi@NRW>K!Bt$@yY&P&!TUXydxIv8pJco zV_}0ajDpaC7J_z4K><%dfH0MRzJ75Q7NU#*sCjhPB(tD7-Y?qYJHhdJd~;n64vrWX zf3Y${X?RF4eOMDnr;PtP_vB64?VOY2I!&c=mp41-XzGSNv#ClvJgbde15sg?vyvFk zPF%^y!HU~i?dD9Xueo3}6Sc{fK3;4lf+frE^P+~1J;lpss~=scLp^!5$z8i(;t)zZ zt|e0U$E^n^FKRu?(-r78t2ZPWYPMU-Sz2pVx+U>gQDGVD>JIjsG+< zeYT5P4rr^1(dIwvEs`GOHb5ZU2gavvL z;10n-L2yPRFfSC$UkXopGkMvL5TzT+K~Mi23~~Sy9^1w2Ea1f^?aZT@IhDUE*^2Tm zT%$#%o~vZzORKf_u?rt~{QNY@HP6}h(2>ULy)r>aW+mNop_j_ICtcc$6**(pCp|SS zw)tq_0m|K~nWer~4l`z8qF(cH5&VqioR(~!9QoERohDS&pQ}Y{mjY{KfNNCUGgM6>s=Am@qNX#el8iB1|s;ylr zI$V#jouE^zhs+N#40F(*@&13G0NZz-n!zp(hJFEyvXSWM=u8pUMZGG_S71jLh%PRS zR@8Du1N3r=j)?eGra%DVQ`ghuT}V8WZcC?EZm*N0Y1JK-c%;6f(7az@*rHM?BZO1X zdRV2-`>5MJ9qUo}4z(1{RUeu6k@RY`1(sYi@v92y^F&yH@P2{PSZZk9s*G^pl= zruC@JG$@O|4FvTXH-B+4J-jb|Q_^V7;aHt&8D77L)Xt{&JnH6NEF6KbD8c#Ql#<@? z7`sERwQ9mvUnHihm;aoRSKv4jSqby8}@=&N36CMyCmzZ)=121s)5^UhSaV@Yox^ zh+T}Hu$k;oE$QF?rj_^n-u6MKGlJJ5N-P@=k}Uk(0E2YvdV`=%+~In8*!pxHVzcAf zM6&+dcCpub@Y}`-6TaszDV!{5K#FI;IjB2l|zD6OW^K@Gs^cStbx9U!G7 zCe@E0&Yn4Y$@#|jkHSW-q-HNUtz${Cm0(g97AUr9#onj^lZ)S-@WX({0_dIs1S8Yq z$BSUn8W`^xORU#Vl<+Z7jOAhigTem2n6xa;!rW0Js9tS#7 ziUQs(3;btL^&gIaq){yssEq!--m(XNBa$2cy;7vE>w%Q&UrX!K|NNyZ&tH=L>jwbB zLr)Z*{Clx|Fhyk9*l}?F=lwWCS`HXSCiw`?c!Mg1A3h*F{qGf(^yhK$DF@yspIb>t zu*KzSmUZlhZGf)S`nY_3O`&+@kEVK6$Bzmwd`lNQ2eS~rK=SP~jP3vB_LrXn%5P9f zppsB={kn6Cz&pVh(tmP*KR?F*w?`!faPz;{vjCti`S&+Sa;}3n1PnQt`i!(NOrKepoBn|I-mNZhrg4_n@IuK$-fZ;d6nqU_K@bleS)pi{vcK z&1ixvG)E;-1PLh%v;C;75n65bl!CFr;~`0oR@){b=;#0L+C1Mxw1}`eA3E8bX7l+G z9w!QO3>Tx)+q&*N#@Vr@%QNS0)AEUs$3XFAVMrH$OS&j+nNEiDYldv>v#&1mn6RIp zb>Y<>@U9JU9(KV<%wdT%=#RLoXLv6Xv0)JFv{@EYipGNX_^lk^6!K%40viSz6|J^@ zwP6Vx`_G5D1;3bnXkRT@noyL`wl9??qxmDpbjlMtmK6ZSbwx-^<}KL`=1hDOy{$gS zMonLPo+;QXg7hsrDt}Om^vUeSw?#i`{Nb;92wT1btIA@NIr+3~QfiD#7 z82ie83W3nUdqtlkjYkL&8?6HmH62|~I@UL{8v5G%6?*qO1{DH?jXto8C$~FtT{L^y zDdY-3etc8WYp#*lJfH@JRFRODYg%>5!x!bEIA41%c2s}^(WmNEQ*jF;KXrM=y5^I) zaO#jKFhIw+5??s3Pd4+p#Ca&ekT9qLI_FnUa6jjE>cs_eK3`j)uu;LcuiZ1EvC7~@UUsW0;+i4- zalfUjO9uo zEX{@EPz_khV&Ja!)bCoT&Sor>T0}3@C3z86-jz_UBKZIg#a+=2EFd zvo{MiUvx0(X@%_{e8y7$4&GgFdrvHZF++606IP+t6+8E7#hnb@k2j#=VoY)kbmM3V zX~_ZF!aN+%a0S&kMADr!P&C&vu@p6qZqUex-IT5^xLyzs7|LzTZW9K)_Mvsy(w) z-1rz0Nc2@quh8)~p0)>4PH%;GZT|5Md7HRVPkBvlD6utqTXK03KV8A7;+u~F0SlmG ze$Q<8lZ81mx!VSvSx{WPIg1uOy{Xes-a;P}FrxB&TIsT6+L#+`5bIA${aSzk*2>f2 zBvwbz(^L8kE9&H%=D5B>VAK2L!vxLm7EZDQgNA^ckx`>=Y41<;PJ8%09wH&7F^+%E z?G>CB6hrge@Syt8i=u7BHtIzvkF`~sG7V@Wi`C|sf3)! z+yrqiWps2pKp^Mf75jFqOBq<|cPTeJ8F*vAdCTzR{;?TXv8>hGN=CxM>#kh_sIEM> z6@rNOUIDP;=EVUlKX}Zql0|ghd1PfO)IUr&c`XlE{9r0>HqcuVh#6v|2&L@O$WZ99kQa@l@~89E3WdqR>za=u3Q`W;q(eyxUnQc{|^xviIbW)Uy3ezR*^ zZEjTrMsKvVOAn{FRcotzbvm~gZm&7nb~`geuk^!6e#1Efr~EZ9 z`_};tz_YMD05-kV1xP3&7hWfEpH<03$i3pycJ0t5jZ_d!j%&XOtjxQX-v&1ajwgWl zmX(7;3D6aqfR=Gx9^y4BfBifaCuLDQEOv;<%KdUZ9!La17Bv0(sTL5nfN-IC?(57W zw&xIK%`6z?dSohf@0mLWk++KVYz7GZ3m6tYoTrtTEGt0Mb|7ecs|L^ zs~1}_T|B6NAShti_Vw@yYIB&m?!Dv*M=qj%gIrBGg9*7!dBX7MwEFZR`)}W55NhP8 z9ZF(LZ<`{evW}NWPk2-%CM32Fhy1E`C06aGUnJjX)S29r31C_8w#W#PET3y=uH9tv zOgeRwZ)%~9sfhAZDvaJsxFMi$RLtG!+U*rqRr+ULR>aL@eq;!|i)=Sxd(+rfY`QLS zcYQ+!6#sm4)P3%JI>>Wvc*RZ7epK(*uV3(tk7W1QL`5N>ed_NIJyO!r+9(4-98y~m z2)PD9-VzlRl_BgrJ0GoUtd26kikUQ-kf-Z%sDd=3JQsj1*_w`Q;<34VKzllGWmhu4 zTPT$!4z-IW)T}c9R4?I63XMLYs^#lWu~ZNu&^Kx&K|L;d z!OA3I$#_dFK*`HU)=tr@SWc0)h@)SaAt&0#zT{B3cQayl-ARtPQH45s&bn&tot@f$ z{P6*_l_9=SMxf;vQZqY@%eXoRTpv)PvZ$b_*zbS->K5ot%gV|sKjC*;106)8Km%S@ z0fB)z-!>Cw*H1;IGrB+dxX~8F8&oB&b)+^YyiC8ux*iBJE1WgcV6x~?b2-y|k%TmiE0Lfdzu{~&v1!t6vK1S||M2j_d7>5S<&UCgbya%ad=dGvx;qd*7+S}s zjORTu7Tq_AA0MPy68v#^b8`6}!<<}~bsfgUP=DCOLHlFIy~?@ZJozh{+2n%?glyV? z6NnL_bOk<89$;Vq>Tp0Em5B2YL4&W1@@DO)r0g#vhJJ|G^UA_m0xtIVjOtDY!dPY1 zTGK!sReO5AWUO1H`5%ybn|CQH8YJZ`xSTuFS;O1K=4jN0#5i66wRW_wzTZwjS6S{A z>dAxt9H2EF8?3R&MW1l-DQFVQu|j@oXH}^G@SgTLDgqJp!=C{kKDPaoio;oeY4H)0+%S!HH-3n}>q^XNxiR#%{%S__tyl=u`` zXr0l$Z_)9oOSFzlp5TBmxIR@C0?pO+JWFEe)*7slnPW;bgE>-UWoo7gO6u)eI<|cG zN~3x2a{ld~@1IgT_Gzpg^INhIiu?>-B}m*Y6F4DxO?8sGz~D+ zbc@e305+_(mZ^0$C+eIQ*#nlY{mHHB)jL1Ttz}ErtXhj|gffjZ4cJu_Ig@oarC>(z z9WS;&WSGj=vbWlY(~njN#i{_KwV(FmRJGD0pcC%H!XFs>UAjf%8!d7Tf!4kV0%^9y z>7i;Kcc*-MGbLn(R_HqU%Pb}&w%6cu>+1C~U7miL<Pe7_v?72u9?7MC-Rl{~aW zTuOSlt3pekRM}^?dXK<55LFg*PGk1M4>2`Q6?|&T^V>F@g`*zlMugO!*ItZcOOIQc zMN^sEyOwdo_ak&K<>VlBbu5IfwCpoahN*nUH0wr;o`kg>u^1<9V@jLaM_mUzs)kq2 zcWg^V9VFb?QV@O8l_@`G7=3!B+;>C5*MsQCe@jUv#Ihy(={>oo>ILFMkOX%nOJYE} z%O)hG<8!#9t)&$OAaVeP&AfgJ{#L2KTIn5DfT^idO}4||iR=|qbC^0*%fHm~fy>qv z&QFC}FW4{Z7H}b@nROeiQ3c*{gG@GvS5c`HckcL5P*bmze49Hm*6_#r-y=!ccoByC zI>5rj!P$I0=I|?|X2L-h7O+XC-1w%-v36pQv_Tfuh$oc+S2;nKElaV_cSUtWVzbwi zm0m%?NGn7^k-D!Svu&g%7@pPmLIIbS=6(U06><#=DVSJtWe7Dc)V{1vjkpm@#lkrP z(`@VE;oK%n?0aY{%rxq^3g`qsQb=DR=nTb6<)D`+v&*0E;!S$DxuM-iR+<51@y#;Q zZpp1s<6lQ+4_TWicXoU!I(tG`!J+1fbE>1#C3^}`#;Hq2W*bsAHlLy5ma)$A8t&Eu z&SKzxzku7GoR+6O?cg?kty9i6-@bZja3eHOqW!8}`PaDBMGj65aT%6|{YgHy_HL$r zN^h1N4OJKR!O(O*ckYdqkxCIvo54BB!#i0Vb0KZ0Ym$d)XfN6KS)kyf7B2Qnf!TRi z7Y$L)lw!Mbp#9NV_6z&==+m!M2b?+3hig-@=ZT4GH?0zX4O@msAYMvJO03M;$q6`j zqE>R*b}p83^;x`V{;Y&boX4?to#`JiS=kVW*LfZA8IITdY$h*XZnaGMeP3hOF9as= zM)c3k025!dh4fXE@Mc!aj7%pPDpx2ot65-B;S-XFByVC$1rl(EX*a8-Ar`tX8%ui` zf@!~Wo%%B5wzH72HyuV7L%X>s5%0b*%Gi9}W)yW*(~3BAC50_m{p4(ekwDx2B*)g~ z%XO3Z6Ny`*k{IZq(8-HOEg)9xBur<%_dT=^($E+kf!Ybb(U_>Ym44}vuCv^#T1emh zvIcLz_xqXF?#?gX<8?-sVtJ~ zymm92m4%3jp^(K<#aEMZsaq?)n!KAYEF`V8URfLro4i{}YV+*61ht5}2bnU8?yKCR zxMo6bAw2Q$#=twlegSY**lPABgApRG(84mJfdn(#@eOCnrGQd@+Edxb_q;0xBaN}#+dGLtp&4%FVVlAxvPBTWF<>)wA~*^EK=HF+OiqkaCe2wTy?!0fu3;h zqAl6FjqU)xEUiP5s@v(ak@=P@_w%{c!!FnKh-Ou5%a-LUXG0N${f1;J&HIwEjbzDwRMIy)Y(fHY!Oy*{!(qf+vxSCY6>Fi-v3VmjcNhh3U)%_aE>*qS{o zyuWMgkTHNgEeV_bw0@v!E)?#I4`(_o`=0XZc&xjkBKGD=TE=mflJh%4g}>dqJHB^o z>OEIyep8>h^oJ3=r0&}w+qdoOpZ-6R{%^~Q!knI(7+#q9?aWJ6 z5o1u&!C-^TJNqSL#I5BwN9I!vS(CxFAy8M1b}XaP6i(o0%XQitrg9nUM|2xLschMM zuY109-h+=&(X@KtRXal&tVKQ-@=$xWf>%2%)CNu?ze-YY6&M>iAQLQgm_Ub19JCM& zZ9$(b4FLY)vQ-}>uf#y?dqIcY{Dw1zvh?)ye9HaI9E<1_OS0_!k-*X;b`f|E_S0-)vmSuWf?ef};dgUPrOqUqq+Hq zr`=R%vb|?}AH_Y`$0)2`z6iWBJ=#NH#Z}i8o6aX0#H~;AsX{9=y4#!cXXV_Ov8e3F z!^$T=*bOUk%yA@f7#5|94l8%uGj`&u%6C$7b`bO#5i5HDlu1M_k{-m|Jfqw3X#eMX ziW1Nf6~_Oz{o5Au>#Wa6RV5q)>`fYt@0iY`K_=1< zzUOcwk1g^KVs{{iMX@#ua&8MB-&JPUVvC=uKpop2%iG=dNylPtE)6_a_w{w(vf667 z%jz2Ps>UST=5vs%t~$t#R{+NF%vW%!y?llq25Y7KZBbT{^ZtJO(GguqVd{McFKrm> zg{hdp3`FL^?~ry>^=yRu)B0vD5EyqzHg{#VCG7sXfZ?n6{Pz4`5d54OtSBq8e;d2!>Sqt zRL-SNwJ95u$kJVD!RJKBeL%5$LK4DX>WxbT`uh9W@1surRf*x-Q}K$G;6on zzoU!0mu#UFNqJ9PdcQl%RyI6j{ocSi64IpUAzlUTkURM-`8%`LHBr|sJSgNfUoG*r z?Xr)|$3|Ue$_%ry(-#ueFU0SbpVc3y=)Z~cR6^b^ewNg~40bwZcc|nCo+fhbLt75; zwZV^WpDW+5Egc&?gMqz}sSz^r`>l=-3M*Ht{|K9WubgSeztvJTZc=FuYtJ~%j@rCI zldxBSUSDjrT6e%X;N6UV+jQW+yEo6rxw;K|N@Ot;4qbHYjo<>DkEQw3g4fq>rt7vC z5(9l>%I0);>x@C}>~Wvo2iN)mmv#PPKY%8XEa~q4w|hqkh9p+6TYfP!n%9o?3|o*Cm=N8tRW8pigE_XfsTnpv+^)V>aP;0Cb59xpPI+Tg<;9Dhfm}`T zk$8vNTnV3p7jW|XPgAIj-+bpUt$x~|j_1_+rR&<0vXJM(Gg2vsgZupE@ANE*6)~hl ztL<)T{v*~#PO7S^t)s*4+_{qlct{WXz>go|VF<)cuu0>dCYAQSfG;ajBN{4ek z-0)sd6t8se_%5xu^hyx6qt_ZWgh-_Fj{;r@bLTCE; zcK19bB>MWy$;}^MOqJ9FQQ&_pX!T{&b*iotsi}1bdXkfJjLD|1 z8#~66hBZUf?SA1>AUGH_(eNcWST`ONiLsgHm69JmTs!9R{1{cBo#mc`Rs`6>Yn`u- z6LMQ&Hhjl5%`x&+Oq|=E+}v*Sw>FB2+Vze@bBB=7h#L!)7eQMTE-vew-tL+Y*e zy?)>@dQe~)8EmlmQc-4`25`oK&}Xrhi@avx(B|sYGP&tv3s4-hySS((y?sy}tsB8P zS0I7tk>8GY!@W)II`%R$F+tHO;VSYjz{W3z=SIw3dgriprGL(+wx0PEx@bmeA1L5;go-w3}+XP#B;r3K4Mga!{uvRHf#}9 zhRZ{R2hEZv^ztH}TREWj!#uwPsDxMq(nwG`Joc z9piZGac^wPBu>1uyUZ1D)SPBv22YGpoQLP@Y*#!ObjrlHBf>^93o20q3o-Xx?e;u; zPCG5_4p&2pEc&&5PV+c?DDYb>Jutfkquig9F zZe}Yj-w5bY0HjC&G|^p{OZLNq!KC?sylk~ETdG__Yl3ks=71}YkIw^>Gl5Ewh)0c8 zx$A<5^sa}lo}PVXp+*Pj6AY495>5#V=|z7)HC_rh$MU(zSQ>6-bVk>oTU%CtE`)KR z-mQ~bRLXC!Y;!`mez9~=+|M9?ziug~T9V%70^Zm0^kUn}!uHxjImy1Qz3i>nZ7-Ke ze5^r(SkB(^F{OlcHzH^9)(6^B?q2aP?q zI{3R^z=2SID}LgrNhIUG0RCqjtAf0v-IDwKR;#jSWvFuYpg4M>L&9b(b*OKgCJW7J z-?JH=Px_;G`l+km5d$q|O!+c9#r*PulAV5HT2vH{0QWGkQbiAz*kfIf(wlMOT>2+E zE^;$)U5`c&-ld_!^n=|s43Ol3u{j31CO+8u`g)K$6FX>u>D@@nP6Twkx*{z-ok)r| zHZ>tVHml*u8Yds5!T?!_#Dr-H5F@VX&Jy@>|n?Z=o9Lsry9zZwR zXhnP_2DMo^bmzj?dfHmg(CKWx)}|rLX-fdgf|YzvgVnq(Ae_^BCA)QrI(>rur07*F z$V@373t-Wm?o>mTP%1Ig}XsY)Je5i8TW zpZc9loF4imA)!Drje|2O=1aGkpdbRUo%c|ds#-!pF9BjZqM^C99c~q6wsOf_Zlb4P zPb)F(Q?GxG35(6ktNN$3BKhOAh@(d1ntpD>Y|RJwbFG;a+w?r;v8;}uWx$oIS2ZIa zD-VGA3uJU+dK6;6-_m*iem({yImGxK2p)3)gq;f%_{13>x9{9}3<@$YBlW{C17kt* zEMOjTIV6|!7H!_S6u^q*>v%BC)?b|+ZexXn|L7bI@nrB2QBjUN)9z^JY8!* zZ^)$6(}o8pKl}ZL2Qb+p@UCPDiQ1cI-MeYMfRv$kgr;&2GlFBEPiyo9(Ooh(AXy6BXX43Jc;MZ_p%^~gYHmcewOBnROs|lwr{wBcfvt2ZtC;ydo zxZ``UQoleM;>|Q!~Y>Uxp}ewrDsnb3@~VT5UH+$uY-W@gw7OuVdj81*AWW- ziD94CZGJ~d)$yv^$JOzcysHzg2|DOGxhwojrIoD-8*yu zki4Em1Q8`CQRfG*N8SEkYTUkdoFlzH`^cZnxpMLK)BBd76IfhgqMdQ|o8Iczzx+Kw z()l*-oK;r>FMwQ>0vk+M*wlJ-^w{%*`Y^uR?Bd5;{StP>0xGQAiUElKb(RJ(gQq9E zlEgTZR|gBzHN3)i__Hd=i$ifHfBQwUj!2bj zE!}dDes{KTAg+#HmdJ?_wBYr?S%IpmU`@kO+Mo_mgM|cx{2T6)dE1f}ibd?rRyDoJ zSe_kEvZJMNsPKV@vR_7>$iR`j$*J83kuXTA?ON)Ic{Z$h7jD0tJKlJu0$~-n|O1L*&A_J?Vck$VDH&XJ^g)Y2c<*9?Qt3p3;;PZF{ z{Qp=fFfkQ1?Xf$%dlFld5$CnMC}5Y(hws+y%V6wO)yLE@*Yz*^#{B6n{@yl{XhV>M z2Tfu8j`Kj#61O}6^JAr?&dw}6#ndEo;QBJVR{9gI23`;Nx$F(mh~t~`I)*5U1=+W& zMVLBpZ`R!8O^uR!&B_#Z$R0pLRaN&#+?FkU3SL!<;EQ%%XfQK%&~hjD!?xbioobhx zPoz2=>pZFwtDVqS)s*y*J_mV|+(Cg5w@O?t9rv{Oer{ty<7?&PPW*eanh}N5>cg7T zg!{uxw1?|&9k3Mzcc8s3|0$=+IXcUf>N-qp$V9vt+rcJBQotyx0r(lroD>8lqZa1o z^Y1An3RWM<6UrUa4|Z1a9xEe=UZHZm>E1R0h5?}wBrqnOg~`@chg~$e(D3ruqphj> z?~8HejZX%)7G!WL45K z{Tc_EvIlN~rvEK;Vm%4WfK_7oL)3vj_y_gUiFkSceG-qMS4?E)F5- zS6k`6h6Ycyx4g6ihT`N|btfI{O@+Hox7+}dxdkx)3F65n` zoxV)qcP`2D(q>c~DOH3Il)w@uC$A7z)y&7aVjBh3eQ(;>heC2Pu_#7#h0K#DQ6=lr znRnP*T{Z3rS-pVfsdQ0Fiqn(^Y1A5yb&Yi~$;D#_1o5?Jqjo%Yy-v5~tcS-15kkKW zX!ZG}cPI2rToG>CM^#>z&>++MXFZ%JwR_pgbFF&?7_vHIFG|K-;M|DS`C7nl%J+d5 zKmx9dS^$OPnh*lgdDY)Uo)4JH$hoh6C!5Kxpf7m$sfmuM(RQ1OEGtp?8giJvQ-v78 zR;a)S7*_=|Gcs-$FwF}kzmM)})wDt>)449~b1Lho*yG+x{Oa4keY`yuiSIhvsY46j zV}z`!S57z?xE>{1^*@GY)U%Zzr<@D)hA13@x6w}?I-nb=yNcWAr#>*B8OmgU1%9r z@o;-#HW?L4$*3fqxS~O41tFm9M;g{s=_;Zgk-FLe7LCfOsqrq-}3IVT<>Ie zZtNr1xxL+J$Dgj-CBxXcnt(?||HKgBh~B=u`9Cz>Gt<+0Rad}OsIN~576u_fKf&lH zJZ&Z~g3imwKh4EBH(Wf6av1I@ndYbt_Zj1-*<5|D7*JqKYv@#$WVqa)<9Xv3JZ%2w znF+VtL=kMU{Lblo=M!&DQ@P0GfqXj&Wy(CFmfMjSF?#KIY1B9W?QmQpVmS}C>y+6Ul&e7+?JUN=?9>B+I6MO&0N z1elU(WR_dE`0o5?=A<5g4~rdw`VDIk;2D(K#$~S*EpGUq@UcmW)TpVdC`1m(aC4}r z-5asVlo(Rzti0AU^kZXAs! zU{5NI2!J63!qgID-V02%bI61lA#2)YZ(}ME?I`Z*EK}X#DBiMU1KDjS@xXHfSR2L0 zH7~te7xZ>n_BV}F1jE^pz8^%kXpnLydsUlv?c|`X`Y6uxX4o z(=8EzzCe!q>>3&QY~$b=;$Az}vmJ2?s_y7bJwVuZ#y?R7$VX>c&F}iFNoFX$LMhPJ zzfvVxg0n)(US3|F2(yE>M8BxrJpx#FLZ95e#bwcPKU;D&w!ZQ)>v2^yLZ~3r$;~gv zuj4MJ)d7Rwfz}B8N``EA->8+#IsN?#r7)lQ(W*b1&n#QoLCRb8w?X*DKfdYo1k@Q6pKZMO@sp9cOU)UBEu2p1w+c0|CgS!XC zAXut-j`qkq_e5yFtjlbmTCrcpez32X$(Ql(JtO}4>={3ZSW%&w7KkjOu&$^`D_eyY zwo6IuxEo35ppu}3cHU3#b>RNF_s?DD&tWZC0oKai zU%vhA{l3rpJkJY85iP%pYj_XY>jm*y8XSA8ch*h-xAl|}@I)Tl48ECutK*T#j80C5RWgT)1F| z_z$o6x@()TvGDEaD3?>e#6-ZJHm4;^C_WW$`oQbTF$L;M;#AGdDd?z^2Z2-&tZ?G1 zN9%d!E8YSg>NVos>Smtj+*iYhBqKN>$8q(-1PCzSy7LCB%drec8bsCe(E=nk;{j($ zfKQ--$WjR7=YY$TZFQK*zL^GRwB`A>2WKE(CpB3O}7*lG)P@m7`+^zDWWN% z!U+W+RhmEp%hGpWz>seP7Ht$Z^v}(V5yw*exmj`g6nUmw=Mm6IV5wM|JQ~7mGJ-%s zWI6Zl6M&*r=&P&aGaCJ-ps9?=!y=kdB#Kc#(;xzM(ZzXq{&mwxtIl7Mx%I>|lh7O< zNjLPD7kpZn;bXvv>&Y^fB=i;iL(1-DseAlX-MkmZjR3APr~?k^&4t>nf8l~ak227*W`8jC6p;x|os3mY@06Fpa^F!18@D|iTuXj?Go}HNy zY`Oy#ntPklS$1&NGcS)EA0&MmM3kIkr=bN63%a&51_tagcz{fG%j165eqFhGgL|(A zWrSo+!pHDlsNN5emq`x(gG3$wsr&G@xo`sJ+fcD~^`W(J-a+zFWO6*_HKi-2swAS23 z2lwqJ!Hb;%aAlKhymv2{%_yTmr&|U6c?C!U0C*c*==}|n+m+ECgH=p6!-)Zd2R4~> zA*xl7&Ttzg4fx^gCAgWM6WFzA~kdV4=8-62dCZhoQj`GvAxKlLhoqohE$iTn54T$F)nnrzK}*Hx;He|{9} zZ?HRY;s#PtH!?Oh{Zd}RdsP|*&%S%OskhQ+OxI8Y4USLu6!QE))6awXA*^3{oZBQc zwC{=#d;Y!;k{Iv=di$b0B>XE|_s86dilwUjoBVFhjKG|)5$R-cbDhJBVE*y?3m&~b zSC(cc^xtYmVwWqlo(SsE&wNifb)==I(vtFrWrFGEe{Nd&c{aS=0wFsZgc5XQZ6teD zp(%Ib<3W=AqBsXSrK+KkW$lYR6_9~ZvO!eg4#Zf1H-ERmo0^%~fX&Stn+Tfsa9z-= zh#z%FS~2G&QttsU07TqEcH-4BqMKp#FYlT)$RAHGo{@E2D=@BMoU5$V(Nx1eH@32f zRn(?eZ(km-@bEWfwXSm|>i9%qbF=rl2)4SU>Qm!+x%v3X5#jiUsYp|O551Lh7YQ>_ z&0FV5v1T~xEkd6Kgg==}gIkU$xfKfignaiF>5~YHfz(tL5fQOZUVeIl%gVTFX=Q~l zPtz{nHO=a@5;QO=b%S{rT1rAg=fP|HzSt6Mb({VXjp}=Zx+`W?duR_Ys&+ch=`)14 z3t<$D-L+NI$m_YHU$h68!-U4O`}Xg*q?AIUiX8PIZ~Y)jt-QO2DSREJ)>BU=BV2BZ z??}u+F65`QqM{@#2-DFXefBDa4r{#QAJo?v`r$FPpQqe3iv5BCL0C#;p>@&=X$XTufUh_VDdGnwD~eB+0H`Nu4&@Bm6L&pPNl+yZc6kob`jM>uYs0#9@%kRtD?iztPp$7Y0G>~Gz#{Mo64xO6Wgkc zc(xM9U3?7<$iEpM4Z?7qQ#bHpIA>iPPRd9rhD$BB@O@rPfCIPYHtacudNy7p{sq-E%gkV&0avybn)t(AK8UTHg1Z zO*ANQZ8l8$*dn@^*&&ytuVnbiKZaFjW7RV)+-3L98*NGcL{_)GEc=~%Ym%Ht=gcm% zw51!br@V5DNKRZldDTHDQjn)8eR>`qvn^6ma@B*XXv7n^DMm(2oQmwuU|*`#fw0ge zQ0gZ@Pp^Nj&FR{OV~3PNw;iuQ2?9>+UBZ>CG|qTsR8X4ruaCK zz)z?c4X9uoyd{L%tB7S~qn^Q!lu@iIx}kv_DryfY>^0Xz?B` z@W&8K%B0f~o|9!Pj#+iq9d-a^GfwOREeOw%R(VqSfbiLVjOb|kx}aL|MW8oHeascD zt^GSgi#s~KR2^M~0nmdGP*7X-xTA}FK<)FYO_rPZ=2dNp^F*_b?W#|mFNc7*|l}}J0KJ;~v>h15ctnwKwlaq7WT^)jNmzZ07 zX=%#I!O>b6>#wd^mE;E}P<19(aY1O9wA5+AJF#+2q??Fwzf3ocyi~cJ#J7Mr)r9VH zcX2Qm9l_q+mjhlGIh5ag^!3}SNU2VLeKu}ImlRhUpJ>K)wX-j zbK-un!pPaiHL}HJ(r?&nxKgSqm^tc@p8I6G_cG6?)KF8fok*^0I6WA|PV7qYe92=Z z$P-D542nbDBty<6reUs{jNa%u6E;fFE-X=~?=;vkNl)5FRnHj~po%MglKg4q-1B|` z-y}bHI0ch0IZ{|2cw=NZGa;RARX0m3Yi~dK?A`(6+qZ8=#>Qfy^g*wkwF6Y|6s(#A zdD7h5yC}V&QckC87Ey+ull}fiQ0jwIvYGNEMr}3exCv#JTxDy3mx;;`ZT5@68Xc2XQE}4{)x-Gu&2rpKago|tM+hY{X3jc25dSju951p1pzwPVjiSsVz z-!VH~E2GYhiP7PInC`L8Wri3Q5D}BGZ(rsv5LKzDsF*0HO!6G8AtYg@PIFYY?z6EW2EGE@?7Yhz-St zhZ3EJNaehqQ<^UXX$ObjOI(pPW5<`21(x4AIsFiY_!6AY++L_dTg(*Dw1=ir(GS z5qfy!pi>dwku^H;AxPs{mwj0LcL!WZTFxrTJP&l4M{meq-e7RqUp?A}))e>k^{s96 zK;|Cai&zvuXt-<@w_Q&jt$-O-8Pf{#voJTa8x5wSwDKX#6DI=o6O2nk z9+^wXatDH-ujMPEcdut~wq~3vN5&CNFM4H#T*ItH9QCU)fZ@$^h+_d*OaWO-j?bI>s8>?YMgs*7AC&f!`9mN7eW=}?L+!uYNA^CTfm6l13V zvzzC>%k%6ORuNmrbZpuSLCG;pqw>nlIcs3pq?w-_sxTZ)yo_0Z*A1f9w?zRj%v};( zTNTp-)TSpoesl_XC4~)s_pq6dbbSLcXs7WG(i_{4Russ((&4o=g%6uHkI8Y2mxoB- z3~|O}WgOKz*VY_3xp+Q5QI+VGHl>@((p;xOcjv?sxN5Py(*Gj8w2NI#JPtkiT=Z9BK!)ACotKK__pV&PA|g4*{&&lO|3F(`Z_KVG0}Ephige@e&d49oMyHO^kDR&kFD8Sm AC;$Ke literal 0 HcmV?d00001 diff --git a/docs/docs/manufacturing/bom.md b/docs/docs/manufacturing/bom.md index bca4bddbab..87093f704e 100644 --- a/docs/docs/manufacturing/bom.md +++ b/docs/docs/manufacturing/bom.md @@ -4,7 +4,7 @@ title: Bill of Materials ## Bill of Materials -A Bill of Materials (BOM) defines the list of component parts required to make an assembly, [create builds](./build.md) and allocate inventory. +A Bill of Materials (BOM) defines the list of component parts required to make an assembly, [create build orders](./build.md) and allocate inventory. A part which can be built from other sub components is called an *Assembly*. @@ -169,89 +169,26 @@ If the BOM requires revalidation, the status will be displayed as "Not Validated {{ image("build/bom_invalid.png", "BOM Not Validated") }} -## Required Quantity Calculation +## BOM Comparison -When a new [Build Order](./build.md) is created, the required production quantity of each component part is calculated based on the BOM line items defined for the assembly being built. To calculate the required production quantity of a component part, the following considerations are made: +It is possible to compare the BOM of one assembly with another assembly. This comparison can highlight different component parts, quantities and other properties of the BOM line items. -### Base Quantity +To compare the BOM of one assembly with another, navigate to the "Bill of Materials" tab of the part detail page, then click on the {{ icon("git-compare", color="blue", title="Compare BOM") }} icon at the top of the BOM table: -The base quantity of a BOM line item is defined by the `Quantity` field of the BOM line item. This is the number of parts which are required to build one assembly. This value is multiplied by the number of assemblies which are being built to determine the total quantity of parts required. +{{ image("build/bom_compare_icon.png", "BOM Compare") }} -``` -Required Quantity = Base Quantity * Number of Assemblies -``` +This will open the BOM comparison view, which allows you to select a secondary assembly to compare with the primary assembly. The BOM line items of the two assemblies will be displayed side by side, with differences highlighted: -### Attrition +{{ image("build/bom_compare.png", "BOM Compare") }} -The `Attrition` field of a BOM line item is used to account for expected losses during the production process. This is expressed as a percentage of the `Base Quantity` (e.g. 2%). +### Display Mode -If a non-zero attrition percentage is specified, it is applied to the calculated `Required Quantity` value. +When comparing BOMs from two different assemblies, the user can select from the following view modes: -``` -Required Quantity = Required Quantity * (1 + Attrition Percentage) -``` +| View Mode | Description | +| --- | --- | +| *Show all parts* | Display all BOM line items from both assemblies. Differences are highlighted. | +| *Show different parts* | Display only the BOM line items which are different between the two assemblies. | +| *Show common parts* | Display only the BOM line items which are common between the two assemblies. | -!!! info "Optional" - The attrition percentage is optional. If not specified, it defaults to 0%. - -### Setup Quantity - -The `Setup Quantity` field of a BOM line item is used to account for fixed losses during the production process. This is an additional quantity of the part which is required to ensure that the production run can be completed successfully. This value is added to the calculated `Required Quantity`. - -``` -Required Quantity = Required Quantity + Setup Quantity -``` - -!!! info "Optional" - The setup quantity is optional. If not specified, it defaults to 0. - -### Rounding Multiple - -The `Rounding Multiple` field of a BOM line item is used to round the calculated `Required Quantity` value to the nearest multiple of the specified value. This is useful for ensuring that the required quantity is a whole number, or to meet specific packaging requirements. - -``` -Required Quantity = ceil(Required Quantity / Rounding Multiple) * Rounding Multiple -``` - -!!! info "Optional" - The rounding multiple is optional. If not specified, no rounding is applied to the calculated production quantity. - -### Example Calculation - -Consider a BOM line item with the following properties: - -- Base Quantity: 3 -- Attrition: 2% (0.02) -- Setup Quantity: 10 -- Rounding Multiple: 25 - -If we are building 100 assemblies, the required quantity would be calculated as follows: - -``` -Required Quantity = Base Quantity * Number of Assemblies - = 3 * 100 - = 300 - -Attrition Value = Required Quantity * Attrition Percentage - = 300 * 0.02 - = 6 - -Required Quantity = Required Quantity + Attrition Value - = 300 + 6 - = 306 - -Required Quantity = Required Quantity + Setup Quantity - = 306 + 10 - = 316 - -Required Quantity = ceil(Required Quantity / Rounding Multiple) * Rounding Multiple - = ceil(316 / 25) * 25 - = 13 * 25 - = 325 - -``` - -So the final required production quantity of the component part would be `325`. - -!!! info "Calculation" - The required quantity calculation is performed automatically when a new [Build Order](./build.md) is created. +In each case, any differences between the BOM line items are highlighted in red. diff --git a/docs/docs/manufacturing/required.md b/docs/docs/manufacturing/required.md new file mode 100644 index 0000000000..949277b9ab --- /dev/null +++ b/docs/docs/manufacturing/required.md @@ -0,0 +1,90 @@ +--- +title: Required Build Quantity +--- + +## Required Build Quantity + +When a new [Build Order](./build.md) is created, the required production quantity of each component part is calculated based on the BOM line items defined for the assembly being built. To calculate the required production quantity of a component part, the following considerations are made: + +### Base Quantity + +The base quantity of a BOM line item is defined by the `Quantity` field of the BOM line item. This is the number of parts which are required to build one assembly. This value is multiplied by the number of assemblies which are being built to determine the total quantity of parts required. + +``` +Required Quantity = Base Quantity * Number of Assemblies +``` + +### Attrition + +The `Attrition` field of a BOM line item is used to account for expected losses during the production process. This is expressed as a percentage of the `Base Quantity` (e.g. 2%). + +If a non-zero attrition percentage is specified, it is applied to the calculated `Required Quantity` value. + +``` +Required Quantity = Required Quantity * (1 + Attrition Percentage) +``` + +!!! info "Optional" + The attrition percentage is optional. If not specified, it defaults to 0%. + +### Setup Quantity + +The `Setup Quantity` field of a BOM line item is used to account for fixed losses during the production process. This is an additional quantity of the part which is required to ensure that the production run can be completed successfully. This value is added to the calculated `Required Quantity`. + +``` +Required Quantity = Required Quantity + Setup Quantity +``` + +!!! info "Optional" + The setup quantity is optional. If not specified, it defaults to 0. + +### Rounding Multiple + +The `Rounding Multiple` field of a BOM line item is used to round the calculated `Required Quantity` value to the nearest multiple of the specified value. This is useful for ensuring that the required quantity is a whole number, or to meet specific packaging requirements. + +``` +Required Quantity = ceil(Required Quantity / Rounding Multiple) * Rounding Multiple +``` + +!!! info "Optional" + The rounding multiple is optional. If not specified, no rounding is applied to the calculated production quantity. + +### Example Calculation + +Consider a BOM line item with the following properties: + +- Base Quantity: 3 +- Attrition: 2% (0.02) +- Setup Quantity: 10 +- Rounding Multiple: 25 + +If we are building 100 assemblies, the required quantity would be calculated as follows: + +``` +Required Quantity = Base Quantity * Number of Assemblies + = 3 * 100 + = 300 + +Attrition Value = Required Quantity * Attrition Percentage + = 300 * 0.02 + = 6 + +Required Quantity = Required Quantity + Attrition Value + = 300 + 6 + = 306 + +Required Quantity = Required Quantity + Setup Quantity + = 306 + 10 + = 316 + +Required Quantity = ceil(Required Quantity / Rounding Multiple) * Rounding Multiple + = ceil(316 / 25) * 25 + = 13 * 25 + = 325 + +``` + +So the final required production quantity of the component part would be `325`. + +!!! info "Calculation" + The required quantity calculation is performed automatically when a new [Build Order](./build.md) is created. diff --git a/docs/mkdocs.yml b/docs/mkdocs.yml index abacabf74d..82bb9cd772 100644 --- a/docs/mkdocs.yml +++ b/docs/mkdocs.yml @@ -150,6 +150,7 @@ nav: - Bill of Materials: manufacturing/bom.md - Build Orders: manufacturing/build.md - Build Outputs: manufacturing/output.md + - Required Quantity: manufacturing/required.md - Allocating Stock: manufacturing/allocate.md - External Manufacturing: manufacturing/external.md - Example Build Order: manufacturing/example.md diff --git a/src/backend/InvenTree/InvenTree/api_version.py b/src/backend/InvenTree/InvenTree/api_version.py index 84dcb6b9b5..8e4a0312df 100644 --- a/src/backend/InvenTree/InvenTree/api_version.py +++ b/src/backend/InvenTree/InvenTree/api_version.py @@ -13,7 +13,7 @@ v480 -> 2026-04-27 : https://github.com/inventree/InvenTree/pull/11816 - The "issued_by" field on the Build API endpoint is now read-only, and is automatically set to the current user when a build is created v479 -> 2026-04-11 : https://github.com/inventree/InvenTree/pull/11723 - - POST /api//notifications/readall/ now requires a POST action + - POST /api/notifications/readall/ now requires a POST action - POST /api/admin/email/test/ - now returns a 200 on. a successful test - GET /api/notifications/ - now uses user-centric permissions, not a general read diff --git a/src/frontend/src/components/images/ApiImage.tsx b/src/frontend/src/components/images/ApiImage.tsx index fcce1c22ec..05cfcc7047 100644 --- a/src/frontend/src/components/images/ApiImage.tsx +++ b/src/frontend/src/components/images/ApiImage.tsx @@ -71,6 +71,7 @@ export function ApiImage(props: Readonly) { src={imageUrl} fit='contain' style={{ + ...props.style, opacity: isLoaded ? 1 : 0, transition: 'opacity 0.2s ease' }} diff --git a/src/frontend/src/components/images/Thumbnail.tsx b/src/frontend/src/components/images/Thumbnail.tsx index 22c86249d8..c24e7671a0 100644 --- a/src/frontend/src/components/images/Thumbnail.tsx +++ b/src/frontend/src/components/images/Thumbnail.tsx @@ -56,7 +56,7 @@ export function Thumbnail({ w={size} fit='contain' radius='xs' - style={{ maxHeight: size }} + style={{ maxHeight: size, height: size }} /> {inner} diff --git a/src/frontend/src/pages/part/PartDetail.tsx b/src/frontend/src/pages/part/PartDetail.tsx index 645b305a52..4c56646f50 100644 --- a/src/frontend/src/pages/part/PartDetail.tsx +++ b/src/frontend/src/pages/part/PartDetail.tsx @@ -5,9 +5,7 @@ import { Center, Grid, Group, - HoverCard, Loader, - type MantineColor, Paper, Skeleton, Stack, @@ -17,13 +15,11 @@ import { IconBookmarks, IconBuilding, IconChecklist, - IconCircleCheck, IconClipboardList, IconCurrencyDollar, IconExclamationCircle, IconInfoCircle, IconLayersLinked, - IconListCheck, IconListDetails, IconListTree, IconLock, @@ -47,7 +43,6 @@ import { ModelType } from '@lib/enums/ModelType'; import { UserRoles } from '@lib/enums/Roles'; import { apiUrl } from '@lib/functions/Api'; import { getDetailUrl } from '@lib/functions/Navigation'; -import { ActionButton } from '@lib/index'; import type { StockOperationProps } from '@lib/types/Forms'; import AdminButton from '../../components/buttons/AdminButton'; import { PrintingActions } from '../../components/buttons/PrintingActions'; @@ -76,20 +71,17 @@ import NotesPanel from '../../components/panels/NotesPanel'; import type { PanelType } from '../../components/panels/Panel'; import { PanelGroup } from '../../components/panels/PanelGroup'; import { RenderPart } from '../../components/render/Part'; -import { RenderUser } from '../../components/render/User'; import OrderPartsWizard from '../../components/wizards/OrderPartsWizard'; import { useApi } from '../../contexts/ApiContext'; import { formatDecimal, formatPriceRange } from '../../defaults/formatters'; import { usePartFields } from '../../forms/PartForms'; import { useFindSerialNumberForm } from '../../forms/StockForms'; -import useBackgroundTask from '../../hooks/UseBackgroundTask'; import { - useApiFormModal, useCreateApiFormModal, useDeleteApiFormModal, useEditApiFormModal } from '../../hooks/UseForm'; -import { type UseInstanceResult, useInstance } from '../../hooks/UseInstance'; +import { useInstance } from '../../hooks/UseInstance'; import { useStockAdjustActions } from '../../hooks/UseStockAdjustActions'; import { useGlobalSettingsState, @@ -112,6 +104,7 @@ import PartAllocationPanel from './PartAllocationPanel'; import PartPricingPanel from './PartPricingPanel'; import PartStockHistoryDetail from './PartStockHistoryDetail'; import PartSupplierDetail from './PartSupplierDetail'; +import { BomActions } from './bom/BomActions'; /** * Render a part revision selector component @@ -154,132 +147,6 @@ function RevisionSelector({ ); } -/** - * A hover-over component which displays information about the BOM validation for a given part - */ -function BomValidationInformation({ - bomInformation, - partId -}: { - bomInformation: UseInstanceResult; - partId: number; -}) { - const user = useUserState(); - - const [taskId, setTaskId] = useState(''); - - useBackgroundTask({ - taskId: taskId, - message: t`Validating BOM`, - successMessage: t`BOM validated`, - onComplete: () => { - bomInformation.instanceQuery.refetch(); - } - }); - - const validateBom = useApiFormModal({ - url: ApiEndpoints.bom_validate, - method: 'PUT', - fields: { - valid: { - hidden: true, - value: true - } - }, - title: t`Validate BOM`, - pk: partId, - preFormContent: ( - } title={t`Validate BOM`}> - {t`Do you want to validate the bill of materials for this assembly?`} - - ), - successMessage: null, - onFormSuccess: (response: any) => { - // If the process has been offloaded to a background task - if (response.task_id) { - setTaskId(response.task_id); - } else { - bomInformation.instanceQuery.refetch(); - } - } - }); - - if (bomInformation.instanceQuery.isFetching) { - return ; - } - - let icon: ReactNode; - let color: MantineColor; - let title = ''; - let description = ''; - - if (bomInformation.instance?.bom_validated) { - color = 'green'; - icon = ; - title = t`BOM Validated`; - description = t`The Bill of Materials for this part has been validated`; - } else if (bomInformation.instance?.bom_checked_date) { - color = 'yellow'; - icon = ; - title = t`BOM Not Validated`; - description = t`The Bill of Materials for this part has previously been checked, but requires revalidation`; - } else { - color = 'red'; - icon = ; - title = t`BOM Not Validated`; - description = t`The Bill of Materials for this part has not yet been validated`; - } - - return ( - <> - {validateBom.modal} - - {!bomInformation.instance?.bom_validated && - user.hasChangeRole(UserRoles.bom) && ( - } - color='green' - tooltip={t`Validate BOM`} - onClick={validateBom.open} - /> - )} - - - - {icon} - - - - - - {description} - {bomInformation.instance?.bom_checked_date && ( - - {t`Validated On`}:{' '} - {bomInformation.instance.bom_checked_date} - - )} - {bomInformation.instance?.bom_checked_by_detail && ( - - {t`Validated By`}: - - - )} - - - - - - - ); -} - /** * Detail view for a single Part instance */ @@ -295,6 +162,7 @@ export default function PartDetail() { const globalSettings = useGlobalSettingsState(); const userSettings = useUserSettingsState(); + // BOM validation information (used for hover-over info on the BOM tab) const bomInformation = useInstance({ endpoint: ApiEndpoints.bom_validate, pk: id, @@ -808,10 +676,7 @@ export default function PartDetail() { name: 'bom', label: t`Bill of Materials`, controls: ( - + ), icon: , hidden: !part.assembly || !user.hasViewRole(UserRoles.bom), diff --git a/src/frontend/src/pages/part/bom/BomActions.tsx b/src/frontend/src/pages/part/bom/BomActions.tsx new file mode 100644 index 0000000000..764db9f1b8 --- /dev/null +++ b/src/frontend/src/pages/part/bom/BomActions.tsx @@ -0,0 +1,191 @@ +import { ActionButton } from '@lib/components/ActionButton'; +import { ApiEndpoints } from '@lib/enums/ApiEndpoints'; +import { UserRoles } from '@lib/enums/Roles'; +import { t } from '@lingui/core/macro'; +import { + ActionIcon, + Alert, + Group, + HoverCard, + Loader, + type MantineColor, + Stack, + Text +} from '@mantine/core'; +import { + IconCircleCheck, + IconExclamationCircle, + IconGitCompare, + IconListCheck +} from '@tabler/icons-react'; +import { type ReactNode, useEffect, useState } from 'react'; +import { useSearchParams } from 'react-router-dom'; +import { RenderUser } from '../../../components/render/User'; +import useBackgroundTask from '../../../hooks/UseBackgroundTask'; +import { useApiFormModal } from '../../../hooks/UseForm'; +import type { UseInstanceResult } from '../../../hooks/UseInstance'; +import { useUserState } from '../../../states/UserState'; +import { BomCompareDrawer } from './BomCompare'; + +/** + * A hover-over component which displays information about the BOM validation for a given part + */ +export function BomActions({ + bomInformation, + partInstance +}: Readonly<{ + bomInformation: UseInstanceResult; + partInstance: any; +}>) { + const user = useUserState(); + + const [bomCompareOpen, setBomCompareOpen] = useState(false); + + const [bomCompareId, setBomCompareId] = useState(''); + + const [searchParams, setSearchParams] = useSearchParams(); + + // Open the BOM compare drawer if the URL contains the relevant query parameter + useEffect(() => { + if ( + searchParams.has('compare') && + !!searchParams.get('compare') && + !bomCompareOpen + ) { + setBomCompareId(searchParams.get('compare') as string); + setBomCompareOpen(true); + } + }, [searchParams]); + + const [taskId, setTaskId] = useState(''); + + useBackgroundTask({ + taskId: taskId, + message: t`Validating BOM`, + successMessage: t`BOM validated`, + onComplete: () => { + bomInformation.instanceQuery.refetch(); + } + }); + + const validateBom = useApiFormModal({ + url: ApiEndpoints.bom_validate, + method: 'PUT', + fields: { + valid: { + hidden: true, + value: true + } + }, + title: t`Validate BOM`, + pk: partInstance.pk, + preFormContent: ( + } title={t`Validate BOM`}> + {t`Do you want to validate the bill of materials for this assembly?`} + + ), + successMessage: null, + onFormSuccess: (response: any) => { + // If the process has been offloaded to a background task + if (response.task_id) { + setTaskId(response.task_id); + } else { + bomInformation.instanceQuery.refetch(); + } + } + }); + + if (bomInformation.instanceQuery.isFetching) { + return ; + } + + let icon: ReactNode; + let color: MantineColor; + let title = ''; + let description = ''; + + if (bomInformation.instance?.bom_validated) { + color = 'green'; + icon = ; + title = t`BOM Validated`; + description = t`The Bill of Materials for this part has been validated`; + } else if (bomInformation.instance?.bom_checked_date) { + color = 'yellow'; + icon = ; + title = t`BOM Not Validated`; + description = t`The Bill of Materials for this part has previously been checked, but requires revalidation`; + } else { + color = 'red'; + icon = ; + title = t`BOM Not Validated`; + description = t`The Bill of Materials for this part has not yet been validated`; + } + + return ( + <> + {validateBom.modal} + + } + color='blue' + tooltip={t`Compare Bill of Materials`} + onClick={() => setBomCompareOpen(true)} + /> + {!bomInformation.instance?.bom_validated && + user.hasChangeRole(UserRoles.bom) && ( + } + color='green' + tooltip={t`Validate BOM`} + onClick={validateBom.open} + /> + )} + + + + {icon} + + + + + + {description} + {bomInformation.instance?.bom_checked_date && ( + + {t`Validated On`}:{' '} + {bomInformation.instance.bom_checked_date} + + )} + {bomInformation.instance?.bom_checked_by_detail && ( + + {t`Validated By`}: + + + )} + + + + + + { + setBomCompareId(''); + setBomCompareOpen(false); + setSearchParams((params: URLSearchParams) => { + params.delete('compare'); + return params; + }); + }} + /> + + ); +} diff --git a/src/frontend/src/pages/part/bom/BomCompare.tsx b/src/frontend/src/pages/part/bom/BomCompare.tsx new file mode 100644 index 0000000000..be69f0968b --- /dev/null +++ b/src/frontend/src/pages/part/bom/BomCompare.tsx @@ -0,0 +1,428 @@ +import { ApiEndpoints, ModelType, StylishText, apiUrl } from '@lib/index'; +import { t } from '@lingui/core/macro'; +import { + ActionIcon, + Alert, + Divider, + Drawer, + Group, + Paper, + Select, + SimpleGrid, + Stack, + Table, + Text +} from '@mantine/core'; +import { + IconArrowRight, + IconCircleCheck, + IconCirclePlus, + IconCircleX, + IconStatusChange +} from '@tabler/icons-react'; +import { useQuery } from '@tanstack/react-query'; +import { type ReactNode, useEffect, useMemo, useState } from 'react'; +import { useSearchParams } from 'react-router-dom'; +import { api } from '../../../App'; +import { StandaloneField } from '../../../components/forms/StandaloneField'; +import Expand from '../../../components/items/Expand'; +import { RenderPartColumn } from '../../../tables/ColumnRenderers'; + +// Field to check for differences when comparing BOM items +const DELTA_FIELDS = { + quantity: t`Quantity`, + reference: t`Reference`, + allow_variants: t`Allow Variants`, + inherited: t`Inherited`, + optional: t`Optional`, + consumable: t`Consumable`, + setup_quantity: t`Setup Quantity`, + attrition: t`Attrition`, + rounding_multiple: t`Rounding Multiple` +}; + +type BomCompareRow = { + part_detail: any; + primary: any; + secondary: any; + match: boolean; + deltas: string[]; + key: string; +}; + +type BomDisplayMode = 'all' | 'different' | 'common'; + +function getBomDeltas(primary: any, secondary: any): string[] { + const deltas: string[] = []; + + Object.entries(DELTA_FIELDS).forEach(([field, label]) => { + if (primary?.[field] != secondary?.[field]) { + deltas.push(field); + } + }); + + return deltas; +} + +function BomTableRow({ + item +}: Readonly<{ + item: BomCompareRow; +}>) { + const partMatch = !!item.primary && !!item.secondary; + + const quantityMatch = + partMatch && item.primary.quantity == item.secondary.quantity; + + const deltas: any[] = useMemo(() => { + const fields: any[] = []; + + item.deltas.forEach((delta) => { + fields.push({ + field: delta, + label: DELTA_FIELDS[delta as keyof typeof DELTA_FIELDS], + primaryValue: item.primary?.[delta] ?? null, + secondaryValue: item.secondary?.[delta] ?? null + }); + }); + + return fields; + }, [item]); + + // Determine the appropriate icon to display for this row + const rowIcon: ReactNode = useMemo(() => { + if (!!item.primary != !!item.secondary) { + if (!!item.secondary) { + // Part was added to the secondary BOM (exists in secondary but not primary) + return ( + + + + ); + } else { + return ( + + + + ); + } + } else if ( + !!item.deltas?.length || + item.primary?.quantity != item.secondary?.quantity + ) { + // Part exists in both BOMs but has differences + return ( + + + + ); + } else { + return ( + + + + ); + } + }, [item]); + + return ( + + + + {rowIcon} + + + + + + + {item.primary?.quantity ?? item.secondary?.quantity ?? '-'} + + {item.part_detail?.units && ( + [{item.part_detail.units}] + )} + + + + + {rowIcon} + {partMatch && deltas.length > 0 ? ( + + {deltas.map((delta, index) => ( + + {delta.label} + {delta.primaryValue ?? '-'} + + + + {delta.secondaryValue ?? '-'} + + ))} + + ) : ( + + {partMatch + ? t`No changes` + : !!item.primary + ? t`Part removed from BOM` + : t`Part added to BOM`} + + )} + + + + ); +} + +function BomTable({ + items +}: Readonly<{ + items: BomCompareRow[]; +}>) { + return ( + + + + + {t`Part`} + {t`Quantity`} + {t`Changes`} + + + + {items.map((item: any, index) => ( + + ))} + +
+
+ ); +} + +export function BomCompareDrawer({ + opened, + onClosed, + compareId, + partInstance +}: { + opened: boolean; + onClosed: () => void; + compareId?: string; + partInstance: any; +}) { + const [displayMode, setDisplayMode] = useState('all'); + + const [searchParam, setSearchParams] = useSearchParams(); + + // Fetch entire BOM for the part + const primaryBom = useQuery({ + queryKey: ['bom-compare-primary', partInstance.pk, opened], + enabled: opened && !!partInstance.pk, + queryFn: async () => { + return api + .get(apiUrl(ApiEndpoints.bom_list), { + params: { + part: partInstance.pk, + sub_part_detail: true + } + }) + .then((response) => response.data); + } + }); + + // Secondary part ID + const [secondaryPartId, setSecondaryPartId] = useState( + compareId ?? '' + ); + + useEffect(() => { + setSecondaryPartId(compareId ?? ''); + }, [opened]); + + // Fetch BOM for the secondary part + const secondaryBom = useQuery({ + queryKey: ['bom-compare-secondary', secondaryPartId, opened], + enabled: opened && !!secondaryPartId, + queryFn: async () => { + return api + .get(apiUrl(ApiEndpoints.bom_list), { + params: { + part: secondaryPartId, + sub_part_detail: true + } + }) + .then((response) => response.data); + } + }); + + // Perform comparison against + const comparedItems: any[] = useMemo(() => { + let rows: BomCompareRow[] = []; + + const primaryPartIds = new Set(); + const secondaryPartIds = new Set(); + + // First, iterate through the "primary" BOM to generate the initial data + primaryBom.data?.forEach((item: any) => { + let subPartId = `${item.sub_part}`; + + while (primaryPartIds.has(subPartId)) { + subPartId += '_dup'; + } + + primaryPartIds.add(subPartId); + + rows.push({ + part_detail: item.sub_part_detail, + primary: item, + secondary: null, + match: false, + deltas: getBomDeltas(item, null), // Initialize deltas with all fields (since no match yet) + key: subPartId + }); + }); + + // Next, iterate through the "secondary" BOM to find matches and update the data + secondaryBom.data?.forEach((item: any) => { + let subPartId = `${item.sub_part}`; + + while (secondaryPartIds.has(subPartId)) { + subPartId += '_dup'; + } + + secondaryPartIds.add(subPartId); + + // Try to find a matching part in the primary BOM + const match = rows.find((row) => row.key == subPartId); + + if (match) { + // If a match is found, update the existing row + match.secondary = item; + match.match = true; // Mark as a match + match.deltas = getBomDeltas(match.primary, match.secondary); // Update deltas with actual differences + } else { + // If no match is found, add a new row for the secondary item + rows.push({ + part_detail: item.sub_part_detail, + primary: null, + secondary: item, + match: false, + deltas: getBomDeltas(null, item), + key: subPartId + }); + } + }); + + switch (displayMode) { + case 'different': + // Show only *different* parts + rows = rows.filter((row) => !row.match); + break; + case 'common': + // Show only *common* parts + rows = rows.filter((row) => row.match); + break; + default: + case 'all': + break; + } + + // Return rows, sorted by part name + return rows.sort((a, b) => { + const nameA = a.part_detail?.name ?? ''; + const nameB = b.part_detail?.name ?? ''; + + return nameA.localeCompare(nameB); + }); + }, [displayMode, primaryBom.data, secondaryBom.data]); + + return ( + {t`Compare Bill of Materials`} + } + > + + + + + + {t`Primary Assembly`} + {t`Primary assembly for comparison`} + + + + { + setSecondaryPartId(value); + if (opened) { + setSearchParams( + { + compare: value + }, + { replace: true } + ); + } + } + }} + /> + +