From 04ae0eace29ed4368c2735514a7b1c2372b92a14 Mon Sep 17 00:00:00 2001 From: Riad Elimemmedov Date: Fri, 23 Feb 2024 00:04:55 +0400 Subject: [PATCH] Added apache bencmark and middleware for stress testing --- backend/ab.exe | Bin 0 -> 98816 bytes backend/abs.exe | Bin 0 -> 111104 bytes backend/config/base.py | 1 + backend/middleware/metric.py | 27 +++++++++++++++++++++++++++ backend/poetry.lock | 17 ++++++++++++++++- backend/pyproject.toml | 1 + commands.md | 4 ++++ 7 files changed, 49 insertions(+), 1 deletion(-) create mode 100644 backend/ab.exe create mode 100644 backend/abs.exe create mode 100644 backend/middleware/metric.py diff --git a/backend/ab.exe b/backend/ab.exe new file mode 100644 index 0000000000000000000000000000000000000000..9bd469a2f3162334e9330aed90599178495759e9 GIT binary patch literal 98816 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�RU?aM1(3?Wu@WzP=hT-4;GzkjPLQtW&LlTlc zw_DAFr)Cg4NLP4o*m%#{cxQqK!5+LPGX(z#V!Z6Z>y(^$>m=Rq*Aq~3bRcDvk=JYj zE5#b;{TYZPHVHvh(Cv0Xf*! zhHnrtX#9`RF#P{(=P59}pIz$|@))@d@8?7rf2V+YlU>}CQIX!wh3c z(-EUGIbM}?m18fn8Hj(i5kofOSDDUuCWE*VL~Uwwtu|`kJ$FBr?U+U?%GpwhXw zkP$LbK{xy{0;=$d_OE8-x{b~ffxXKvs@g8^p8P^j+loyZ%sUi_8f`)>sB zEzGn~sb51{m}z5m@5RiYAcBP>yb>Km{w)p~JAy`6$*|XFNcL@&#*RfXh@OGEt4&>J zl)XfHINqFBTbtewhK;ZsM`?aZy!wMARP$;78LQF!H+gOlI= z)sNRON44k&JHyHENwRLdueW@aqZ@1W7V{F_W2T{oKqJP1aLeJGu+b*ah-aS-)sqhN zP`Jec+HOO;oV?J7zm_kcx$4$`+K?P#^qQE**z<~{`9RZa zeB&S&Hr9~g?@vMMas6O7!ns4X9!f5Ax*GOJ!v;tO>NODI0Ocp3Q{+5EUac>cel-iig=()ZeEx#j=PHD?E`_Wq)?SPSf&S>i&#xr zbnp5Fnlt_9y`2}9wmT$9`euJ56GhLe_VlsT_FhUCz1pr<6)5IxNizJ~>|9q%(iJ3W z%l!}7NjFK-Se4Otue^W9&hfAfo+C-8krXfcavD`pE04k(NMh<3XpfKzBz+GFX7^y> zz;~X!f5^Mx|Cs#>DUV6YTcl_O9CrAAOH>Ba0kd6UxosM&1nVy<yl)XuPyQ<5oTG@WBI;OvcL|}ZRqBeK)J{naDe@yobwvjo z{=0dhzEZcOJl7!e*_VL zz8|qK0--+z$nwxiUO}{%f~z(k2x?btB3Fl4~o)mI{wrURfzD zf_S#@KXsi<)IOcO%+gzWco_(CyzE`sjz*_|MuyR3P}paE1ABL#w2aRUKyW?296^Dy zO4;4gtv>Hr}Z+F72u^ zvcjc1!^Wlis*;y8g|viGuC+*OxU>tSL|Cip3KwqEOW)VEs`n$M`y*P_{;JaMDs5tS zRjEl}MoRZaw26BotXkT{ow}P7fv{)4*mGu9dDsbrn4vtYWlo%_$8SaYWZJBb#f@P< zMrVWT<3QYNW_qKA#unF#xjt?@6iwIy32L(8n=dFwz#J8MU>;>#8@OJ3Ps_-auO z^mt3P)og6lrhW+4b^*aj~a;fRlD3Tg{02jCJzo%>&vrNm(Zfk#^Nvl0UeD#4m(DA!Z61gr@D+3N{EK9)^=m zgUD6u7|7EoY_%Y^IK>Q7#I$L96lO1Sxlr2YXkWn{X_9sk(6w2DxX=}TjzW79^RjqLp5C&XBjAo;A^n}{!Ca}*pd&j_c#$?y zoo6>ZeV1;^E@(-+yhT0sE4DKgO0ymNX-F%u1v&nOd(pYc3JXDG%51i$%4>I{X>Yu% zzY@BTHtE&WV69+{Iem*P(FI#m*_B$st4GhdkDQxTPLYO5n0J8Vqu? z`JBqSPi6g-Mm`=zCzA9%zemh^0U0|ruULKqqjjXl`@|$n=H?OOB!#@hyA2(qESvp}e9?J)uE)Xn2LI^=)0L6Up$~ zBQk8&TlNa(VDxSb2FyA(6L2&Wj>5)z%Wu7_c*#riGUaHzTmtEdN07$VVv^ftMint= z=%s})!=J%$K9$Oe>uLM~au77?TZe>N4z@^jC$^QNPFOuXXWthpiSg z#8GtjSrB$Q3ybz@X?``hj8JZ|?g{nFv`T7dPoH`}W$9H-X@uNES$1+o(4^(Q`avFEEI*29N-uA&eWBS^!j*jPWBFlR(y5N6ybbP6ttn0myVdAxK zL#_^I_KM-;l6=)U>CI-V-OD?A8bwr}2wO@=D89B?l|~8MVvyOAuCceWyKNc~0@;!86eH(s z*)Jlx0duj+^GLo38FUtqO*WndTEVV}@nU`*$&#y^lPpOOm=m20PXZysT`B_yx>~_I z5o1>V0>MVBT5F#|2OMlAcS+yfV8hLua{5~kF>cMTRxDK+ZT5NaelHp=+P-&aj#7A? zHH#|AGABw!M{P(uXU}}*{HYyKYC!^~wbW|objsJs=+H1|L9f;G5rzyxL zdd(~c5-+RNkwsR1XFH%3IC})Gz}`1R40}rvG3+gd*02xW<7Gi)*sVRp0wSXHsj&XB zhZ+1Zj!grh8Gb1}oraA5m5u8bOI!FT-RuCZ^GD`?Exz6fm!~J{ zDQ>LcZF>D`H9nKRPHBvT%u0utjG6akGTv(53$avn&{(%(cw=gk_9x%(Aa)S<8Lt~k zE$@3}BHH7nMHRVleX~PuHRQqvO(7S-RHjT*tAoZi^GqmO?VNLF$F08F{c>EG>eo{n zmY^a31CNdCG;!>q^8N=Qg@5E*(m8S%8XH1Y?@@^ZNK9Vl#$W19tR&#Zr55;k#ox3n z_MI2Jf`!F+M|Pksye$Qz9t@PkkkQ)sR_rt?QjFd}78ym;L|47`Z8h-Ba!6RMDO9dm z(P^?p{u9j(elGa3H72Rm*&cVu9v1NyB4@8N)=85Hy%{WqQ0}4m!A_wGMeU(GrQ+up z-m9RR?wvoND12+)XUPjS%l{yCrJ1^xI?W`;H!3!hfnfRXQ9v`@Ofs%4|37!qOjR_~ zBfLm6{hnmq*ksOtCiCTZnJ*veCv=R%;g{b!f7u)NzjI;*=hue+c;Sg@{8^Dirs!%MAX}M4a$DTEyP0jAg_9>Haam3gj zMqp&mrvzpz1t3HbT-R`=L5jM7;qNJS&SsI`gPqFo7fIT#uSZ#t+AlqL_Hf&PhZ9T7 zp}`SjeOQ?^*V7KK%Ir0D2VK#oCl?1wFW4}S$#sdB1e(Y4pG14b7v|4#MF*^;b!f`V zchG`bfo+13Wk4(i5yQ3|=)|8?t>{=57~J#{?Y1O;tF#|SQfIEDtqaoDyMna!uE4S0 z)vu`|L)z(27|;DSC&F%VBAn*%bpw2f2f~kDIjTS5Edq{z!=Er>{2iY}@g~Hss5s=j zDMW{lR_?^j@ElIul82XF*25TU6Z4SgomGi@1LC~bj_K4DV9xE?KkLSX+_c}`zAEg8 zZ{5Y5)fMmRuQlvs;Frz*svj%!W_jKDrM$Mv>r|DxLSFOL>mTIx=L+E$^7`k~`h)vJ zUUgQ+V!iRhSpTv`gXpVegL!=mr^L@F+?us|Asd;v zL_$rohR%$aolcQi3-k2kWGqh3GatF%cBimC2`A*5^KKFC z{&+aSkJx)Aq1Bx5_9cvW_tPH!p<1Ojm&*J{W8Loc)Fgn7q^FI-cWZmlMVTaXv; z3N@W7Bq?B!w98;>Dm24-dkbR>UoFRbPLFr@oj+PnR`(5x7*I>>@0S1A*V$4o%r82R zrp_N7J0V`SaxDIZ3(uvY_kF<9bTUF%bU{%Oe&Xj-m3Z0Xz_S+0V)!(0@q{Tdm*FAX z9+!Tn(yq#;)2aCPz>7|Ccv}mqxm3=W;O!DgY>&@!&|!UrJNf?tZhJfV@7>OLGQ0-KNX*7gVWGqPa$Cj+s09R)EdN$s zA_>*rA}*oCQ!^=p*K(d>bEjh4yS>TnS|#%V6;jM|PRDsCsU%1>OnbWCU^Wdx-&-iQ zw2~1|A^=gkCLnC!TjtH-#k_K}tn!P2xwR#igPHcTzzZB*Dd+g!P8P=tdwd2QJ!NkK9q&2*c`;+DUA@7XE zS5dl*H_Wn4cqU=TN&5a*sEv{+k!yjP^;;zp{{Rv6UO_XfC5V&3#H1p`V(pytY0^B)+CN?b{(|W};Q(sqYQ6<-wD* zgg+TySR^OqF}0pbZOpR!WLk}lti`2tXl>%UljOS#fL;Ms|xNeYDeeOYNf$LgT zeOhTX^V*H+>TQ(hWfDE|pZdO_$nfTmk^b3P;=NEw_Ny{d*!Pu>{?I-hp!KU|p4E;1 zdg2z2I2phRwE!iak$H>+9Thp6W4?bnBixUkb~Bm_&Nbq~&sOHCGe9!@V@PB=%he5! z`pAG*G%i1>G8uH6+itR#5G2Z_myBHX0FuKR;~ykhSjNp~XW0nz1%ZTBxwLkBg^Y5_ zpAe``+;UPVIksC*OfN7;-)STN3@F2(s0?P*TuR1db-8(rf=Bz8Jt&KIaRH4V7B_`#ugg@ zFGI|DgE4lh#Qv7a_l!{eqePGRS3Vi{r}__a;h5&xOzj*^aG$hq*@999@O{Nn8)YE) zXOLk2<{T8N<-TdWb3jv@@YOc3Knw%?2VTr3z@+2DDd~7_jwgth6$`E4%c^Y>{tD7! zw~^%@USM~!uzMJ9!FZWR5Thp`Ri6t#N#A9_z}!vDd`qG1C>FkwULSKJH6JSoTBXc0 zr9x*JNI}^-m2Hxo%)t?PsTuYw@~wI@Ac^>>=4|AJ5q>rvZTih`NxJ3l2d3@Vw$yG} zvw&f(sEr4IBUGje6_AArvbv9T*YdC0U=ur2i1C4%^v(u{(pMmhgWRvk z3e%4g82((y234;@^nXb*-9Xg zV)#yuOV9W}CXvak98zL|DpGbY+tl^K*@B3H-Mb#76kB$G3olIO-z$OSxn%1r*^nb4 zslHN3dQav(Y-|@g0rSobi3jbRQzR!FY~L2vW|+xSY_21NS((9|ZsYEwDi}82{tlQm zzITX`!KA^+J`I$K#()j68)4@ah3I|tUEzY|Yn6+Jk7$+6RCs3L)fLDwN_*(0w z&faW5l4kpfK>N=SaCU{h<&?f;{qw*&w3%z5atetPn9cd#iJ7bbVZy4Xi_$Pg${dbQ+7rzKw^5ACDbl8ykpN-?jtifVh#zeKS+Xn^1~T|?+;+gc6p}x=cue-+0l2(9%1c@ zz9B8rfch6SJ_wb}%Act{v`)!plzj0ve32W73cYLlu{$i%8h%7fTYho*=k2FOS?)KO zr|h#VV%1ustnj>LNAC`m+*_nIo+3?Q_yZKK7R8&ck*pI=vRBeSK}hX7X#?4F_7ybQ za|U2h*t!+AR6dLEQJAynaHdr6ZwX~#`~jg_FDEO!4Q4JMVOVS7I#7Bm6+hT*X3ENYFY{>=ZQK%)J3?G^?)%%8QPjC#Rp zuP72txi(n3C3;bBc{bl4fLR+#+>25-S(G}_QOtWCz2zO%CL7FBrq<4h zaHuV>I0=I7Lak}wBOk%)L0fNr8nm?1 zaia7{Om;t4BNnj%jL!t%&NZO&{WEEncN%}~j{Bn`u)!QB)P5@wzI)w;9KZIVYPWyU zZc*Jl0~3(!zm({+FDp`Yvxk7}&qVaa+{{D;BTJO~m?+Q>|C)IH8d>~<*G+F7z0OQx z9!$NUw35rEocq|c+xq(_Zxg*;qVVv}J49O65Mi;obD^5Nv%p`qfL@WE{2cRtMqv<4`f~ja;HEZ>4998f&5S)_w+z6$w2-hkeNM@5gEt^fsE^c^v^){ z3*_t`$o|#oHqhP$GPnowMg~$QkS>JSk&wS-AoB$BP7ma%4CJ>0STG*phC89}8q) z59E~$mJB08OZkqvZMzxDFb;~ zAai>l7iJ*;6v(t5$gm8g|G$7-+yn7sAjb-kB>$$e0x>bWvvl=JtV-#k*m?5bDCV zqQ}ODje&e!|MZOl`KuU(Fc`7h^geJUNQnxaW#l&_1>YAXg&nQO_l(376CfJN52S{q zEnyztszLyz-P*(ZsRi1=^Tb6J3Fw~5)f8m5%#?I;vHW>ugM5ST_We@GxhGWXXHL+y zMp-A#Gi^ps6-E>BI=HgD*MlYtC=0U(^0inFwT36;4PrOJ-wSFbN2%Cwi@i8M1u#{` zIYG2Uoe@OOQ|ANGLUlF}%~$6F(P8RLAbOlS4~S}(_iW)O>H7h_lR8g6T!-ZiW*^qa zR8ehv#YqBHi+u$Jnh)J9g~h@tj6S{~dCVvNB}?T7^ZdVx2~&E4bNX`Kpo3%sKS#Fm zI0Q(~#Me|$w{1OdG?R1gs`L`GTcR}*-Pm(~gynzkZ!kk?_V-b(FQpfbFzBMa?D-oa zgj^s(he5^kwI+~0_DPEq^nzDn6Dz2@h-HU+U3SL$i>FL{O+k>0A(Y9e$6%zK5VU2U zhURFYqyKBm*zCSc+1!FK5TmL8&%Bp*MbFfhRk-<-x}iDtcP<2>f&trLVVf?*h~bn` zSL%wstu3424kzbxfH;r*4yoCSRO}o*d5c>w{7C7ybz?@kqGxH#BBP+*X8A)s=p}Z^ zZ`WPyLP51!J1<9ibfYy@pQ-J}jh$>ndPb9Nzsr>x+D1G+*bw&`V}G!|3&Y8E^G^t_ zI7ALvkKdEP_ZETW_tK!rio=yye`-1+#^y+J*a3zu+Ur9ig}Svak{q9=k-oHcO#|N8& z3gJsZ_$t0f1ECKHS-lXlY}oEg9Ew3tINp*iPLZ*PLZz?VcSE>lJG3t9U8wl)EgNu= zDsfMCsB~-0r^aI)w?=sb;=!hHR;keSh9r9rA|2434iB= z>z#1B6CQBF!OWAA?>r}b^HV#1zzO?N8G)bbgkzoX9w%Jwgl{^bqF3MY&_{=<{1ENI zUrSr5%J2AvU;Kh_R^a^I&@-Pni#+&us^5yby(`H^0hO)@Ke^w%o0qNH~dga(cbwuyiZ)S9NeDrx&i|b9H=a zEegQ2(U$nR%c4JeySRLKyg541O4pSD0g7mRSMig71+XIF!)s{_S(;2qv4*81H#*i9oE-djhIV7zZ^ ztujnZRmT2=_bQSaw`+|*mxf_)88CBhvULa!0-1~k{aG&07<~ro{X2O!;9jW9@dwx# zpPJF38c+WSpn0~rKsjG5+TyFV)@E4oVc_3=bak(3l#mzY| zP}^eWHqc9$f#4Gg=2@za^0xI>vEBWOD!H`A&-ttKS%eOSzw%Dx#r#|%V#k$Rfy5@& z1t3EDKElMXTghqpuYMj}SmnffiaL?A{BKZ0+Y>5!qTHkukZ-AR=6ShB(zhh~SpF}c zlcqS1ym%e39>Rab;M>2~F`Z@AaxxRk!K+|wR`k>)dO&=&O4BM^@pOLM^8Xa^TQLYG zJA-f%E__`u^lgX45v2$@xI$IHvtE?S0`4~hT`XD!VZ*+4PMJEfBEqEkBRVHJ!5yjD z6K?s3hwlk3{|~_rC-5@cS2@~hd~4ApBbByi1r0=cOL0zgkYg`PhTU?7MoH{5y1$0i zA3Ob2DNn@c4cToc`k1SKM#Vi}U}C~e;X`+9rF2DcByq9jKM`E<%8{n7YWy&Is^Y+} zIH;tFQnY2*sKU<=8)Kfi07}%t^1t$|G~imGVlh!2gT+L3R7r94M9cp>)d@rKOH(f! zB8g(l{|EJM_p+RbOGnxtq>DI#97> zA=!B0V-|>)y(~6TiRZ_LQDHAp%YPZ|p74GKt#e6WLqsL| zHiK&Ut4WrWBHh?*P7tfz-_j0tl9A-K`oWLob6k)L_$GI-%#q6fa>vcBVuCL05>f8@ z19HG9)7AAPI9=5mQ}WNoK|i4P-=?p0HQ&Ab=AXZAi4P|fxx56AIo-2OTrb0(tt2bY zx9-96(UtO`>sXO!YHA7fkk``fHCkG@0i|Qb+CTr| z`@w^qLC?09L;a1_1SGFcjLR4K#%W!Id*c5{12DPUS1sHU;JO7Sg`VpcL|&O>m1|E> zszYOu`F!+aD$&tXGaUQqr*w^|i+J|YSE|p|{>L6UN+%5mDsy?WT#sd~ixNEYOp zQ2rRY@ct)wPafM?FbVy0S$4lB56W>rcTog>?O#8N$wO6Wc$fMiguH{f4V|CMn!Bi$_ba=L^yvN?WTBef14mFSw1f!$n zkk`@mRa)KZqNd4yNc5yL(#c@orlSIBsP!$K!#&#+_Hhb3eanv2XLnZC)~xNJvsMS| znu|hB6+?Q7*T)Ytkm74*_Sz-Oc(?b5qDgVdA|F?)3q0t=`_Ewc$KOLA;o>MnFI}zO zKan9DeAyLXk}qwam-CX0;1rGk`&bV!9C?Dh3d* zSyn3)aX-GSK#z~v&#)eVKYv?naHMqgJfFD8aod|7FL6aVCp%s)CX3>Ep(or*l@k>o zMD6~c@RC{Ix^!#3WQk#9+0OY|Vo2wGz`0YkfWdTU0sd&2^8beECv2Q7giloZoKeAK z*&lZ2ha<)(*azS<#`wR?VfX`;fs^mk7;U(RiY5^WCkNyt=CB~>w9#CVcz(rxDVA)R_zx`&;l+Cqv3ST0r+on8tA zWhdFwKgtP*xpp*PgVLN#y{bi1s7n#!xQKBrhgK8wjH!7MLyIKGx~r(8k84Ed)4jvF z_boM6j~_aA9-S3>y#Ti^QDAezrQ0Lgcn+W!zFv^RGBQp<5{nALr5$rMNAZx_)}{ zs)Cn~r9EwZo8G6%ho|)$bPT1l9Ao+Gr3eL%b>a<==EB7gTUaB$RwN7Dm7v;+!q?j~ zc@JvTem(vkKC6f3^_4qyJC75&HLjW#F{DE)0%3ewOS|qmF`UdU!AgjG8y?w5)=D?{ z?0jrMFC04*RPDj#A`e{SsvB7%yhcBuR5O?x;jY;Bu~I!gyApC_Fe(5E7)d!nPfX_R zN(%Sr#$*-%E>oC1l&=irc5A(UuNsO7e9NH$iOI(Xjq+m=t$7#rv`=3nC`ofaBRe)x zCVm3L6HZja%_L|GeTu$w>jkCwf-6WKwRdPgO}UFY4pkkSe3ENL6QQ zP}p#Xh2vmBIKd~<;R0UgM3Uh-Qt(LS&s9=Q)<{Wt9_P!njUl>ytP@=}H=O7jHW-Zw z-YP`5lYgV_YkKVne??rs>j;6mv`F1N#TCpEV-hQEcbLz~xh(`AZO-1INB0E_QajUBL$!%h|M~w9>VMwX>OZJg z{aM|^Sb4tQ2zGL&@>2iIeD936NpsYsw>^52Gv26i1!|DlpwmaKck#l(_+}iB|j~Y&M(Q5e*!*u^8!2trrt*e$GtNlI-3Lm=z8Mb zX-tnp^^!}XC&<*PCyHdDFeVh4U5Ajw#3g!SG0lGDxT8LqUUY7r3a}?qv*Y$iq9kl| zN{?!xveF@#=Z*bUaN8H>@MyMf+*K}O$IBf>t9A?*o;H~u;B_Dq3~0ydjh{!oNqvCz z`U(+w`y$2!oasE=O`;pq_*AoE0TrH&m<+`;t%yZnCJ%L)R~|{+%K*GLz*E38hlf4Y zy*f{|o+uSA#!*%3sXMF9$=3-Nm*wh7X@CiN%Jz=LvT{sMR zsM)n$n8Va_T_BdLw~rsHVtD7SlrFVXi5cC}!6HR!e2PA;E%W;QqM&vhZf^4S;}MlgBw_TUQJgwbK%yOi|AuP!MMijx5BWfGWdTwmAC)n61PIP_&qWPilnkaizGQniA61?)JvY1McLk7i@2#l;2 zOzFws0%Q;QViduPQ=b5W`8+^u*oeJP6a>0iFV$IXuNYx}IS9xf?2XL(F%g zl#mEk!%3cS(#oJ?5R~GlS_g&8UU&$@Ga-&dxwbMz=%S~RHYZhN7bZpdJtPyk75p?jS z6VdvDm?)Y!Jx!M<4D5>Eo0}y==7^$CO&1+=wo$z~*aX?*!u5xn+eTs-$Dn48hG>=N z^VA>JDJw+n_En_u_Upf@FSRp&f;BeH+CS7ZS8_*gG*34)+h>pw{JSd!Wib`CVtb{H z%cYIgj)NsaT8&QUyin~2)z}E23`2s?w9j1;pcMJdgGk}Lp%an=zN43R=-Swhy2Sx( zv={{;-Afbh&>nnJr5!~R7M0>iwKuI7C#o4ZY(_-;ZTa`wZx~f~8?x4`e_e(yiK74V zDP01UUcC2@5m{pap-7^MM~bLBql=9o7*&PtU_weSKk z#uq63>k8V&2N;x-83Apw|1lHaqsEE5Xq|~e!=BB0LSqjl(*(Lqt~~=5*&4EJ?GWL> z*F@MkAAFNvC8GPT<;u^Hv7xQphXDy2jP46*`i9=;shqqjI{=m>WiwIs5_{jz)jWBX zSjP>YVn;PG`dth788p%>&2?rc|)2!-6=FiACzK@ijN02#@!RH;o z-B;>BfvYIE#wppLzU>ajo7q$BNlXs6!O6E_$6v z=1ehJ#}D_pkNwn)Pch}TrB2Y>ah{R^S4RtSGTmA?=6E@ukz?*{Sh;2J>}?Xk)D%e% zyZkqx7+dDdGHZiP15=*zCOS&4Xuu5Dz6kXAn%O8#U$-!qOT#cA4hZYg!?feIN=Ybk z7?E*PoRP=6g(uK}$?5LcXDD-Sb0Ln#%-sml>!N02-yf%VQ)(^q9(iq&&Vto*bkCyX z6zdbg%Ivzr$!fQn>&$@AmdVp5y~9jBDAg8BqqQx&l=qC@lU@&%{FRISkB^s~jxIL5 zAMTW#Z)(f@oxEYjE#m8gzw=tl`}w-qXq%?we}`tgdx+s{7aUA)zSX=mO~~$)g;B5X z-h^G`zWk7Zvw-&*Ko|#Bc>$Si{AFL+w2Vk+D}T7xx23yZ{a*PD(#g1x4N18GtY#;@ zrL&&{n}>9C_gz>L%dI~oh0Hxid&w2zsH6UnoG^$Pnj)(yQk56d#;&7m^DW?#vU8W->C7u3dXl`I_A2pM;pjF1?hNZgIv?cN;}gbmdDHZNl4 zlmit`O+TNqKy9jb+8WlGb~lS2lJ!XblZ5!C{7CL=%Pac? zZnOe!)y->A5V@nM`JO9cljUNEecA&bfDO>ws_^*c{;Dn91ku7xrArh`+5_vs$jGl& zu-}qf!`lcH*c&Ib=g|W`&FwCXlG;oZNgIb&iwwF%B7y=VhGCM zF9nB7cg@SgeTO-qDTlLN;&b(l741P*2`oy_7GR=Z&QP2ZdMZGH#Tz{Noh6XWQ)3+Sx^_K(fu} z0B>BiUbbN$~xk0Os@I%cu&*w0> zh%b8UN=p{Mj%$hBY&lcT1LklZz#wkpa?5h9014qtz`ot`y02+O=(h-(e2gxYW?WC` zwr-x z<9y9ugbJ`PYiMFByTqPX zvx|A$JT1;o(|xRFNY5vgrC%;QjrPPbr%x4*RZV@!6)OE_%pnl8)>M|hw`g~$^sD<$ z3Ko9+Jl{aR4J{$`=KU1x`NS?se#}5Ps9R)>(vuUJKwnhjhU;+T;PPoe;_CgZFpEq0 z3c^^QMoZU1`wx)O!CtSEO_EB4(8{vyH=C&+aCF|hZjoVj@lrmNn%3m$q z+~l^86h7o+AamZ-xNcEyGFYVA#XdmzFl4L_wsd82O%_^1$kWUz_M*ToEwhYGnKOnS zokETmj-yRss5!`~LNKd2tGWCvv%GF?QF)W}Q74yPS#o;>W?(iR^21Lop>N8<*q@2( z6KyfmaEcGfQ9A@d_b?kGQzBh#wHUVSiM|}da&QI}5$iDu8h8jk8>pBEhb`t%KL1Ov zRT7q8;as<%tUbx!=NHI%VEqR>nD&wOYw(Lwt5{<*f?KIA%aeN+5?4Ge7bGRBo)v`> z9`p!n65;Hi@oLz(FvzA5t4olt_Y<)v!E0jbpC%5b)se)FOXX#b41fid4coPbYJ3~? zMCD`l>1(j=(1_@GF%?~?m+qfCB5Z64CoT+H+r(~qGN?kCGSrnhhWxAqKQ4| zS}mn@w&E`!euT3}Zx8cpABk%kDvb{kSJcU7Gr(dSB9kT_inA^Mz(;L&itSR#(Vqj! z88b50H=5m_o*%8oCnQJ?6C7fcDBd8OjphIwk=4Z|P{un4(zUCYc<8y&zZo zsxqGEpgpL)G$dlg9%GwYLm`*BlVi7n6{*=5NyKOug_r;lgmcyWPL3Qf;wIy*V?r`} zStNOWP&l{z*DJi(+nKB+4_P5x(3ot;Qj_WqofRt&8Uuqe%2+_@s9d8`s?pZy8L< zpOZQsbq<#1r1Ipvd}gZe=w|p=Od<|CE;XNQ72%E`uIg%sDudtd8BJ+Qrr4|u!czgI z+7mQhQBs|%f^pZFJ7Y-yTO6om(k~cuYwS2lP+MRw6H@3PrA`?$JEj3q-__bgysOZx z5U;mv>?-Z0ykPv$0`0+_m@pW+cP_Fl93>kDo&SBN^(FN#0!&a>lgx3EwMTr6ev;`& zJ^2$El2wNND|#XHqJ@#t=DW%qKt_MxuwoPAJa}+-%ll|oa-hjMde*woSuH_zqUm88 zV~Tmb^T$H_B|(;dJ^5vwJh)r`w(N4KFZp#N_GIen_#t<+fBaBZtWTx3ypMb;*M|** z;?DUA7R5Fdk~vK0_h|lG{`BPEq{4dP7p#~wnK4+lwT1>!aG3_?th5BkIh|f6Dl41l z_2Nw)uMq_7H=b^lgYraWhLz*w%e&c&FQqC44Jx>vJ(n>n)T9_yQWmi z_dAOFV9Wc%EBO_XgF8b=+``I6E(Q&CsPWoUAN);@Z0~jUHnP9HjeNaxgDP)pxaIvz z)EAv;T2W8<;EwRBo{s3foi2j@YkV|l@Q#bc?NKkv3eHqgMbGBU%S+wE_M+z#&te1i&5CBie_yv^K5{5s{JNNS$yig9es91QIkh z2v5}+;b=(MES6aj!>DC7J1OkzfSZVC%j-6Rt z-x0|V#qWEJx%9TBTEl%<(c+(tpRi6SGiP^1^+y~ zG}bgX5Haq1+FtdoE1s2Azo1`c)tAMd9YAKS4>6-p)2%H*)&pUKt%}ITw6L|Q^En}# z8QpjS**)*wvp(JP{+Da@4k(wW`U|Ki}XAa%F&OuGN^ zx=&-M{q?*}r1gTN;b1a~@x6Aa2kkpMS6$_GdQ1FESqSE=gWRhu{ zU48_CX9M;Ht4Q=B3|Do=UkV~f;TW}_r`<|2cN90|>ktaPjY%N^L-6 zn({)RA%t*_jiMN1^VAO0x|`noLg!R z3~80!s?ei$KqUk1^i`vz`7pouVuWZse1A0FjY$jBt=*b!*&Yzk=Gr&#IyTf)+PRe^ z`iH|6(N0mDXW%s;8=z`EIU|3D)91ei3&nlLh!kp23k-e(7&qPXlVAnC4MNXJ$Pz1{3rcp)K zzp50m`=1p>%(LFw6UO9e&&8Rg;`H?Nk@N>SKU#X!@t8UVs+R+!@H4HO9jRx|bo_UNDUE6_t?IzI-jyJBY$Tgm~EcvczC%}eZqx|Dy|>9qS^exTxs=hDtFO< zJw$MfJC5O!9JXT(Uf^or%Xmjp(_MSsI$Ncti)ldB#WKmnIGSd$2a72;dbXHj5UL-D z7HR%6#~F{A;eAAD>G|bGicAj))hp+%lR}ibugY=cv)>U#wQwj$&4MdLCpAkptKr*w zG#00)!_@E4IAIVs3a#N!v^VE_y+uqk`eG;HYx?DX(#KN4@ZZupWRE?BuErAc-{_Ch zZ2wKKjBWi|uk>oCUY%ib=|WFuU{t4xl;)KgN~4?v#>(fb)B4j<$5UsGtSd>s1=_a_ zsLo5kp$;skV`Kg>dOcgtK8DNaNDU1dtps>SRWbSDMhP=1z620)Twz{hetUOy%13_A ze3l%xg5qCB$#5C%(pa)oowp9bLqhCn=2JWpUS>1mQd5_`mdT_R!u)WJBRLzvQCf_n zFETw}@GW{!0BH*2%7gU-dr6bZ6>2&i(~+1xP=U~Tl=c%z+_n^5>#pZhUWF8lA9ly4 zM+`o)v7(c8qpC^NtrD@Xoc0ZEYn6<8rxa8V3PRyhWHMTpXj^GTEB=u?_M9ku(P|Vu zSL{*>o?j{S&sNnq33~_X+~#oNJ4&64T@yCOQHAfQD*QX{|Ejj*ENeZ}v@k0+AM8d^ zJQ}K+#2Upah5f1O+0Nx$I-#T~<;7&gw$wgQ0dkK6!#CK|JGwPEr*94xCyx&IJXyGsS z|KmS*76f=a89G_nnb)tqcyn|6kd$Lv4eayo-oFQ5|AB4l^$z}+E*PzDaeWdV#rT_t zK+9*IVi+FEJ0ok4Tt6*>K6)MI6!r({7w{M{?o-aHpYi(*= zE#ISwX`17RHif?UV~g|R#b{oqMu5Ig#>G{p7D*3Rw8=4Au(| z)-DxN?d&Wr=ELYuggvd{*Kiw3R-%YQmSqFUbYYtiGw@htnLv-uWmB)#i!kTg|IYqX z+2nTYKca4pRW|T&;m(y}5oiC+e!6Kqw(@q={V&|H+_oIfQ`%E_hQB4hOvqvIHd?~m z{$14w+~(ds-d$MKHeO6D?b+eN!{Nkz%qAS}FUfxrl5&{0a;EhD6ZS1H^=m{tddB3} zKR{Cc6Uqa{K&9)#9&Y)YI8F{39Z1X8i1F5u`(IVrs^oMlcyRC64KRq)>Y~b~V?xGu zl*reDm_ATYM)Ad5RdTXS>&>-G!`Ax$&|X;#2t0Po z)!8y6Vk7Wv;Slx(V)BE{zgJiD7$QSzDKs}+puP}`JKz47PsVp)#k1w;G0$BOPT_9d z@QzRMW)I~$AToUSsqjs)z?S3M@>g_MY`d#=51!X=h1{^%`6$CHWcY9W5N!e7%N5}& ztjEYCpKa{H43#prX{+8pIrw>VmKNGZ9m(C9DYs>~I#oPv}c9n9Zy z{7I)-sbl_1ZCoj@`n7kG^R!CN;%J-S=kKP7{Lq+ktzkJVQCQIEtl#5;nU+0+Rgr!v z!>?6rqsY&jJ+XkqkJaK23O=PS%!ZNUCGogwT9w9btztj1kNXDe|Dhbbl1uXIT#PL(g!t$^pwi@g8v4m&&=$49h>9DB8^c%kSqc`K)~DD`U>)Q;yq& zK{<&N=49rTW|5gzdO*fzorH|dVb>5cCW+##!A+4YH;muS=CNC4a;0-Qi6X8Ia%qFg z^LPS0MLgv^)jTtK=4gZJ>d2@kaw6h(oFlG5=Ad_kgoYPfF-f7sf&ziGmj_VP0OYin zN8~N|d3$d3RO0qkgO&1mYJ^H(8!3OK@(?MG$%?e9x+$e0`#?8NW z8PjayvsI%TT6yuEddypLXEi3t`W6v)T#oSGI_W&rw;ePd<3clkN-2yHzIPkK7+Fe8 z>fS`%jn>ZJvyF+D{qB92>pX4A1;BJ;_`!+-7d6!yMyNQhP@Ka_f0gqc<^t6#0}rB~ zh)G&h7GxExbnKl$K=_r#oIC6KRyajc@Yvga>ewZ_$#jR1#8%0K}@Jf@=3^@WP6 z*7y=tu>2$JSc6QWmVXE_uXKLdjV`VyZ$wXU{Y~1m_pcdD2r$qW9cN!w&u0%gJwL9H z>WdqQWxTG1UW1vT;u~!Fe{mNsebmtvZ56hKOTIrQQT(=KO)i%tdrM^b8vxLPr&<2* zski9ymcNcS#g?5vr+#LEwODrjtKREB7d4L0Yka>{9k-2EKY^m;=f{6R3Lcu@5o?c( ziOvvjwtiuIB+}74`6wxu?eSy4%Zu;Uxqh}(I<(8EC>TLnpXeQB62yi(cm2GE;OOn# zjKozZ+`(z_J??yFj>&?R4Hg|lJN~H`7M`78eTJPRHBzv$VyBN@XZe@(LP3KEWxJp_ z&GRTkaqrF*fNDv08Tj7YuGRxB|9l%h6nfN^=^HO2W?bbjI3+(%j(!7Gn186Cy&cc2 z55c;HOkR4job!uFk{`xH`zZ?7cXvTadq6rIV~Xys>%J&<9;$PBRzWZe zMf_AoFQdr#``LJhc<@0wn`mtU&p|%;NlhR}?+oR2-RDHTb=@;!-wD>;lXXe-90+8Q zBOLF{;y3?L3f{*h5Dsi&2mhjo&R9!5nGKl)_;q)?5CW6Bn=CaC+0 zuzpF^@$A7oR)lxpiqoZ0RFbybqwc!nGvae%-r9E047tRIQd_e~kC_aX^g89JpJ{(f z+doM8mQ@-1!(zh2eXUbG?ih`tROsq!?M>$NBAE$E412m{N%ic5vgkLlSGo9}vzWwp zq=yi4egH>`6DPKw1-6{ybB@dFglFyp{0D(7jF|0$bqjQ+k1lmfP88b|_XD1z2FK;{ zNkaW$S%hNOs;1$09Wbm>@DP5_LA^x_Ex*p28aJtcOlEjk8sm%kWMQUkc`&6gC<2lstBK4h?0MlepzdGB%EbkNdF~j= zmodic=c&FrA>Nf0>)T$DCrf&2K)lNn%OS?;3N;oR+boB(`U$zNIV8fM7!I9JXnCEI zs3;}L}Z5Dxv6ju<5!@o{_9LmuU2X|aZ`c&JKwR3}YQoAu@QO^S^xzppSh z+FyRp9QcjCYR~aet|+}Xjw~JqPj|0y`NyN9RiP4-cNakpNkX$+m9mV~hPF_ql4QXr z?lMfGb1cl6e)>GMJ%0J?K!NB@Ocs2#i_d+zHxeTMm_nJEwEc;g@%6VC9b_i$kTkqE zei%n)Qtbt0$y)nVeBQMHxTIFB_TKgPZGKK@W8da|{5`(8%3dM-SD?ZeeoaX^wmDX zW~#dePm*gnpqFsFf3IF2sFhou`V0Pz!syf*``4_mYMR9`4TBYgvMt*{3-X{&~ zsgBKW*|%Wa?N)97x}5UOj|BUdKkk!6%l8G{H7^GH>z*s${2Dx?A0J167nE;)9bN8= zij|OgQ%bVuWRn>#0z09dOfX;p9tl-bKc!T7c8Hfh;rC5%F%NqK9Z6JBeq8Vf9&>bMu}NQGrdm^WzG zKCU#d4@jfM-1q6k3ygsHydNG`+}<$>ckg_2j641-K7~rUx4y!cYSU=i#E@M=S|Ia` zC=qtiO<{LME&_5BCZ5X~G(fp#d`T zW3c(TvtLt4iQR4I7V~Kj3PLXAi+$-^HA0U3E5c>;GKGv>Vut3bad!{7-+Wc)o@?j6 z&Zo}(5?|!LQ0KNK_jNk=BPRKHgUV0c3A9US<|8r;56H7W$r$X{@2H`4)D*#I-6KMH zVZg?s?7X?^=$~Nocg$GC5;T_Rs%1NR=2OCdETtw&_+9vOzO?Y$P0R_G#k_^Xh;Byj zl5hKpAO)6p=q?#VUjUEbw@I-;pD*ghtE9$60X!oS3uS%wisUCz$%0F$mkFB}YE(cY}SKc}bT2vCX3~mKOf$CHKTycki3<+E%nRSU#`o7jQ7E+4yVW zqo!~3r84c=VyU}S)X;ue(Q&KjC~@a}&m~T&{BS!q$Jko-)n0CKhu`0}37XWi>px^8 zCGqPz`VG->-UQ$xB}|H}J^`l#s}sFNge5h8`qqxk44wMszpxgd&m26SGZD?- z+}oo$b7#iRPv6t{hQof(y)k-z+5Wj#yT81vzjqEZM|0&n%2S^y_8>!kQye)DTt2sx z=JFoq z${>}ewI)K7m$=Yfc=&@`OzSixd7sa#^LthP?0r==GU6mk9^^_X;Ew*dz_}Q~G+FVl zN?sLHUO77#K-St_Rl_|9$%21mzzR*`bCsS0Fjq_XQfz-3E{49V3tQs%%(vjZZR%-30XQ4Z>+$tJC>o0157Y~4TR%ZKhrLQ+7GwE8kY`ek-mHRPw|Rhlr4$HJ@$cJGRL?h2 zvWiuSOO{P+-R&Ei<=>IIzewH2g#Jdo*T;L2{3>@Q)bu_f9m-)VPLnj%7BQWlmY%iiN)vOIsX0Ho z@4gy;U#C}2+O?E#n$N&mpaxd3$tUT*rqTyW6L~7VL@TUQ0Z;D-gEZV-`+>dh=v_&r zruih!jvktIw3{zybfx4s=TZUT6ZHXM@7Cw-cYkn!Ai_TCu6t3KmYA$-iJQ0KA8}pK}OL&uRsvHew3_fW;P0D1!Wy90S*+d4dsG^b~X>x2# z*?xQ1(LOTK&jj^vQ;O1ELz`Hkd>s2q7Hn>ovaZL^-SA+hrfQ-%qv1pk{ScJM8Lb;B3I%5=7-9B}?(;*oV6)VW z+#`tw^c1(b`$FWbDls(j%Op*mYD~>%O*l>^qt_)1)=_yGpfs(BPnu><&aK*$EI5x4 zO+I9@@5xX@)r&;t(OSLtnv?|BS6%N=afg1Wb5+aDZWa{IP zAvU#H@CGfuK6EI*F}kWC!I(t%Fq&e=1O0bly?o4Xzv{0%5uVI?G8TD&o?-!!xNzm9+S;57=94@+=9PTZ$TPTJk$%1bU z&qiLAjnm?w{8c%{?DtQ5jqU258`%Nh{MAVmyh3mMsX_tFTTw~hit<^3= zXMjbLL@yDde&SXWbgl;;m9d|=y+pdw6!cik7;gU@4VVJzh(ZagJ<(%QHyVuE6ZNqf=8 zs^fcIQC7%y&N-=l8qruM!~!1VE%5D-1`idHDl2-4NhLul)t7ZDug<7qsT|_tixMqb z_%JC%k4I@j0B^_oig z9H2#ZEVb({N-X~vsbmnyK0|!-MHiUEr?Cd4qSBT)20IH|;v2Jg%m^pPip|AgKl$T0 z+;ckPQEl_&&yQUmh<`YGJ$Llo!ka~V*iRJuDe@iX3n?V=INX_UZ_RZ{Rg9J*rHr0A zAG)_b3p!BRx{3zo_Hc#*pC7wOF`&Fb9l^~lejX%rtfZ>3`F8I4;!_gU7`|9RjfnZ$ zcFO4Yk4juJ2?%|;zdNW}7jqlAXx%4d@(;Bu*@9PP5BOOJy^QP_%)5LsPn`4paz85* z`Gh|{kmb+b7py!Mp1C*YdN@Qza?AZa_c9fo^SGR<%0@xJXh`b~>g|hSKegpw%${MD6 zU-kSJ?wt^E^TK`AURG3UQ(d#Kxrg}4LVJjOFsd9AVt{fH54RW|K>_5R2tI0{kwx$)CA1747J?~1 zRdPPU69=&_pZ!xzn-jP2E)_#s9}rk;CH1E&IR`1-f!QOgFZLP1iv75k7AppKG*$+ zV!okeFv1*@M@@Po)kHE0WvctKe4I2gBxXqQ;ocg zZ5H$i+(vOx5%zncK$VS#zE7~$ac2A`)XbbjM+|RO%cHKKT#c%+!jfx+mAZ#y)uBLtHJ6nvI~M3)CT#10 z8b&N)@f!YGbFW6zpYNyCZwyD86iq|#3#*mn8ayTO?|2PC&O5wuv9L`JH?!XAbe$jP_DeI za(_|OL+&l#5mNaZ-ceZWe7sNR#DA0J-Xe2^J*Mc|`1^V8tz(38`{XM4_+eK~D}LlpN6*)=bd%g$ zCS*Wbx#JQF=7}fv2o&n%`heR+t*7x-wfozc3`+g5q;h8UbN#7FS-oh=x@?9n2GEw;^ zk$cN_{cWMY@fg-7)hRrKy3j$|Np+e~~?Au~NwxEKWV@cV0!wX%x?YH(Bt- zTg@=|2^G$)#e_4|;6FzvqO37zDC@K^*eUw_=xFjf z{Ghp@j|J~t(MPZ}-Rdu2!h>zM(|fum%=4Z1wdC~BYCnPC{U2897H_>Cf3o1;@XF$J zmGW)JrwF0p%VEo8r5dJL{q5A5zbG0dM5)Su;!RE>Ivv3sn!X*QWIP{Ca1XB<%n$+)fClAv zE7DMg4Rha)T(Tq!o>d6|Dss#QP?4(frdy?U(r{{GC7`3!5r*Vn6>VvY#9T=M@+XA4X$&$%BlmgH6?iuv(OD)l^m&Z7xG)Te8s30o9VE=hXC= zw`Zd~?&EhwuMPIOIYf@p!WfD8m=DVa*`?{vy@!FXa#UZ0v7}m2kIHCtKPFe0C>tAu zyof(ed{y+*_WZOvTU4C$9|9M+l&-iYOW+1StMdPYxKlxBdm+Vys!s11ch9 zCQ@;+Px_l~F2pRAdX!feeQFVv`7J}7LVP_pR>VAHlNxQ7-9yD(acPtly$nMSSeh}3 zG0@@~`(|GCEBMA&q`;d!Ts@y$mWS%}qM>^P8&YvL@dx3CYQbgh7XeRARC5J3%(vWSpmZru-{2!{j5!@*@^Fb8(95w|0H0r z(^c2+48oTtx~eo3rVlm{x0VPDmUe*nxiC1#Eg4kUy+u{~s^%E)zAD5M6|t{MX}3tS zuc}JI^wdcyTFeY$W#ACunmpr``7}ppj=)PuA`uRRb#sSSIEL zOp6J@erzK8Zz)NWJ)y?fLwoJxy&x~C1{M)_4 zM(lDZvYJmyl-)U#hKP1^&pfCyOfDYu8;27Aj^AIo$M3%BkaY0m{$=3ixy08c7^#54 zWbcdSAl0I4k^v9FPl>0--Xc&Usy$4G{&lfJE>wPOy+h?)e4R$+cU0=lnUVB<_Zjvt z7#_i*yiB8hv`DpOZ}a$-Sn+P7DQXos3Ny87iqHOqzkI6PXu6y83Q0_ms`7&6C9yvQ zn_geoKkipD^w3)_kxa+7zT&(idmuOsgV-km_BeDe!`_GCU65;hvEz#9WBaw6>0l&h zjz;(C&w#x6LQ&%abb}L^EO?Bji@B>*QHjTh=185`2s!=dw@0M}@xB|B-hwJ{y9hEB z(>~Fzs42Hia_zSPB9yuJ+qowEWsXuGS@eoUUWC zV5X|hF>2t$MB+h4eqG-+duz7M^iTUx6otuxi&csPqK4e^HpZ*jLj z&q;*N_y>96Hv8$`BcoZ`Hjhs3kMBR3+-2{Xw#(l%80cT%{k^-Z>M&TZ@^PzNi@WQo zK>SJEpX}xanX2s)`!K#ieEx^UH{ir^#Y|V#0mpYBSb6l`e-AVb1S+4{JjuaVz%_}J z4H9@fGnrw;ulNVCkQ2ok>bP+~!qMtDp~80Vs>hjaB4r9Q$m4k| zhbT&flA;;SsEbEKl44gd2`82;bJ0WZK%wDWB$QP` zEy*b@np$sOfU0GyTl9uSa*zCDWOXRBc1?Xo>=y-X9tnA=PSn35v~ZWWwz&S0^+#5} z$E=@&pi6tChFo;XCDiUMVw2;3L~ba|;^iwMA_W1?TlisEl4E__#s+xr??r;`U6()U zli7A0&phi81`Rg`z`Xm@uM*&XWVHK{11*<7$-~QR44`DSdXLDRdin;vT}Sez0PfHT zj@=#T9gzLWp=`OA(H>Ntgbm?Xq09wodc%!ULdh63?*%G%Mb@(6-2+$*JF?t=#f6T0 zAYj4lL;kBK)UjWy-%j_lbLj%mK-4SulJ7rwYV1Kc=E0sLH}X2nsGj{jzHOLpLjn)` z@(=j7E#cO!$%3SF5_(Rm#V@Km7$DNk4Eo(-uBeE6<~O z(k;7tjtumi>WSI(e*Bj=VpTMXqe8*4yJTj(7`zI-Xm+6YqzsbH9)*(ZmfAjETHKSx zGimXG4+Fgki9|yuwxzpH=C{-^^2Y9MspZetC#kD3yWYdqh%(zSG&_gh9X`FzW>5QW z*(wYPus!9M!=71v6U1D4 za_CQ31rTZk#him+7T1^qi=P|&=vEt=qzZYTo*jV_V=ws0}_?f zV!l#xZknPnY^#L($>iA`evZps$3OI_EEr#gZ#n8a^PT{hXn&ViR?d4HRim zz!31L5yAUwgns)|436mQy4Uh|^hrO)vE@w`Y$ukELvQ|BRLU9y+Mok*a?o_@shdMIxA6o-Re_ z$x&cqL+D3UQPCsGf&^c~Yn#%?fW(*P`25lG_@<4nSQ$4ouMtTA_HM~aZO>f}|3%Du2dJUg~8_~;*7(W4a64fzAma&&M6v(D85QZ&_drtUDM8O{Y6iTx~ zE4GpD-RT8l;{LCyT^h!h3>wCkv65n2g(mN;mdXsGUOd?D(@`A6(}{nkT>IEO*~d z7(021zHHsgYy7S+_E2%5ycbXjsMs3$mV032yKnVIoNm7@e?Rt5TTS*AE4egPJpvVQ z-}D-f7p-AaIPooE%UrA1aF^e-;It27Y}+3l05aQat!ht5-H?b7SXX&+eQlk+k9QIi z-%|;ii`GcJSGU$>zZZ1$bVLA=>!rm6#!b{tsV5O? zXwQ2a(Udai9Zs07I^%*6U$!zhp#>1HT+QO{N6r!lWzF=J=oDxNlF`bfbR&kuusnG z0c>F zrBExM_HKXQgp4jpEn36n18>TxrR;4PTYXo_KB_Wk@jWisyT3;EZQHRRVH!e2Xd~t_ z&(^wc+LtWYc!M;4GT6946_0S!pOY^l!nBuSd(pvuj6t$SUip(3Om~u+q_8Is^VR>5 zvK?dhn;j@&tyc=skv-K+YZSfy!OaEj=Mg@mSM#!Rl&7{PFhKWNLIok9vWV7+Darv( z$cgXh^^nftAuKdnP?Gg7Xuk{-E{`Y1PkJJNd%Q}(U6cl=wCPRjE7d)=?18&Z98sUU zev``)c;B}3_?>z5!|QEDcxH7rZ~!Tr*9!JOc&$NodGA8Y*@`-J_|8oB1;MI_n`d57B)K9xi5 zt6cWWyN=`qFbos$Os#M+B$Dt{rDdid<;^`T%Nazy1XxRq>hXj0`*qn^q? zM00B^pS>^FewWK~?4SCQyY0Pol~07fl^Hu$#SZ0EJ{cX&{WV$c;2(r`1^xY4epP-L z8@o5V0;@h>_J>1DFiabzz47FzSRsZelWHnYMAwrqH^#|(8VK!M7i{A7m@gNpHHKBP zKlky?f|;im*ul@wNqm|o-qE0OhdI~nCiB8yqn>VGf6jIBlf00o!SBsRl3?%MKkX1@ z`zzr#*58;cxN%;3{tc}bj*vaLEvlg4G!C}zf(?2h;gd_!pdhdKlTY@{ohCL_*}oY2 z8wIeA#dF$#$W|+d-)Dgk?b|kvjgzG=_SRTEp*ULQDf*qxi=_cyFFGt;-1~&|^aw4S z&HS9gnhC z%HG}vK|~$QZV}ybU$DQp@m@?8obhA7D7TA?#o_~3NZk(zMy_ISs()Nh_I}^AXR@E_ zJw8>+WW*!p&?D7h#8LC&YHQ@1M*O^zpL#IDB1=n4YaaZBzkdz)LsxkUH|E>igx zf%nSOr1fkl`TE?vus9&}8PePi9T&+_j3;l;JimL|e8Fyr$r5^q%E@GbuXKMOdp3Gn z-a&(#ERi!Y_B+bDYc9Ki%!CEpBe!>Mg?sB=E+*F7ir*_c?tbhfFL7_VgRmfn8)vEY zn=P3B@vH9v#mT+kW;tJpZN-9#K@qVFRs0GUAc*6P_B&&b^&$>)LmbBl|1hyZ`-356u2&VTOt?S$V}iKRH~wT67oX5wywnll zhL=5Aa__a^(YvO{l00>!J@eCyGmK>&mGlUC3}pxRYuIDZ zK*Q_hC+a4OaG@-{cr}h7ccMaq4)Fk59zZ$6}vddGKsmn(K>;u3Je{9U`VP!P_h)!Q}_+zbA`1%7sO(NjH_c!dxw=kdRu z%b@W0xg_*SCsabjuK&5j_naV@YzG|~a-2wZ#zrS4+<_l-3(AuBV5M(dY?ON5Z4Z}d zQV0aiC$*qdf1Z0{4$qKy0-Wv%=5y`#raYcA57_hlyrJc(wdd#6We@mm>M=iWVPDR! zp(}mI=d&TWq0aVs>MG|K#yTXi&t976&t|JOFJM=(cb{_*1IWNQu2;`dn!sH}uH#sP z&-b@nxW5HW7#A!YZ1Igf0JgGPIDSS(E^*x5;=`hiupAyDso8CSic#0WJYRA?ru=($ zi~*l&3(<_%dy72wtzzUagmph#uhS7%{dKksuKAvf{VaP>Y|?if$z4=gGtm>BZ11jo zA^e*ipMoV9Qb-E{wWt4P-bfGRRlX4EV&P`@IRKslyI#+k_A)I7DgL~LcEd!EzkG!U zU1&0pH#CQbhM-Z|9MT^M>^htaHgnET4uIIF0(QVJPoYW>wz(5?poyN~dHhZcdU%~^ z4}ZJ8Si`$wf2S%T?T~8FfBLC|Ti8O^*6H4|UhNMM$)d`}$_{WWft%^2J$O$TsJH@TKn4$pjt!w1^e;`r5yh_J`$>JojfjLh1=#^_sIRoQ!VlR9E;rLVURwh<7IrhWXw7P)=NN^ z9dt_@ zuwG44JwtcO++>>GJdTChnV|K~1f_MmT587bb{e;f%NQ8P?D@o>(o>X5A7IqC^fe43 zwafc@^LfeQqQTQiW*3gGf~A9l^Yh(8QQmb^!hLJlO5)#f|a*=q7!&Qgr|k| z{9L^Un|(De35!ITn8E%@a=_h^nOQRpF_di_Hr-`hIs6oJZ)L!qggC#D*}B-7t(QaB z>YeF|3SK6wo~lboKJL7QedBhUiJ7M+CMTo;UN$gddr;|b(o>Te3F_u$Ax4JG#-e0FZK+yd5V|Y*8aWdMVzgfj zrR(hvMQ29OFz(b`6fKJHhcXSBPxUqr06@8(qrV#l^O*^3ApRvOWDXL)a*;i5Fgiun zg)F)K3Dv2ZfId`Ge?>Af{De!dhE1Md4xc=`)#TwmJT;^=h2QOx34^4kCJZxZw@f=; z3SiL12bn;-bC_c67Cy`Nj&Fi5`J$a*-5zfyQZ*Avlxnm~W)WO<1{*7FPrS;dsyl=< z483F~%xU~h?(Xd%!agKsdhZB}xzx^mgdi@^lcV_G;gg*o=j6yAx=Gw0$WFX*M1;cJ ztwc+vi_OWA>1>J1;ASz-P_m+A5z``6iNnJE$-~+{B|dL1aI9F3ohu)@k?C~72??9n@f5+F?;(O%(Cj=|Ik^@?6t_Ppj8 z`j$XyhE;7(?*~E`)=!axpi6i*0`6#df}L~L$k5@A$hcqv>*D7%3-fFrROTjs-~D-B zNg!XID(9$o=b(M%IfPaAyQ8gnR}`|P!LSMSm=eR8LOBY zsb1b5w}*Z718K%)n?Pn>=es>OYt{x+M3)$2Rzv@*@`f(<9rt;1+*^3$RhA-n8DAk6 z@8hc@x@`Y(SkY*Coqa2Wv(`ReUR?0lyX(qp_T)uJCm~MHhmY|So9x4u8-zv16Wd2D zueAD;OrLQ%(IrmyzYvTFh>O$wya3y>$3uhz?`?s1u>)_Cz|#p7$R2?K*l@JE&R)Xu z{D2@An3MH>FwmYVBqTa2xvTQ2@G*9Zr<$sr2Ot%v0ZBgjs;TUeUb&AO=hTNUsp+%e zQ(-mDY%!jyZjr?VGXoYH_tujjs@A?uU(2S5FB{ohL*%#bW)Q4~CwV1$g)n@6`+n() z7ViI+ckj6TC)Zzjug3#TvG>MP6nS7J`*wA$vYDvre3f`835*z5-qEb0fdnJ2vkoE6nU$Rd;8gifN z@%_12vVq!oMB5fd{ZSMG~1Q@p5dJwgv1h2PGLB?oy0=YGAzr zOcjEjNkN7`@Y}sIBq|TZ#=#-xB?tSIUv-gCH`PCCSY+Jvr3q}+GJPIw#|{7_zA=G` zuWkjI{UBdjHtQjVdx?d!om1QARZAsrr;B(jSJ}Q*Q{I>dm&dBfO7m3WpEsCQ^XS)+ zyVwc(ipXKebw}e;8aVMwUgkNk%{k>>S~Kl{JR~#Q zZ*TH*)Wi!6(J7!5NnFF_1pfZNk}wm~|M{Xd_!8&o7{OIKrW;@4Bqs>%FABEAOiqHt zzK(4kQE*9KktW$7_>U4?{j_00MzH0ini=v#{ijMv(lPQ+3nD(Q8$G2S1 z`7nTe_FHmq=7W6J+JCGmZ-SE!60i6rC>i|o9|F7HM2=H)Y<~RSS$SN)^9Rea7TPtl z(2Y?8zr7Kf`CMWGEn&U7MihOjdW5}C8wg`f|FUX?Sf1yB%;bS^79=vt}+M{$`I)^2? zUqOfmXH7tVlCE4}SR!4FK=N?$_E3@VEbcAJ62&ko3(G-6>{E&7eut>=BjE>`aJR~Ewm2p)bqso)%F=Zn>;|1Qv&e#tB$Ty#=Y$Fv0D|rSPlpyYJF1a z17%Zcn|z@kf&F0-mD_69=Spo}NPKv&gk;=Sd+}={?Ky-;mI12IubE3X7$II^444Kh z6T-^KzOCFytL`@yNv=wk`kD9WJ4oKf!`^!Ta_^bWK@zrxzwY!Ur~bZDrN?QVgR{3v zv=3*v*p$G&)*6-Yp&pv7zFOC4r(4BtOnm2VRRvWqXM11WeZZQ70g>pQmA>TJ#HV#i zDyeIGPF2lTRpnQznyssvoxX!L+uXrQoT@4bO;sfeRTYP-61y?s(iOlQ<=5biUOJF1 z%n1J@ovKSys55e24Js#HXRcLEJWX1jk0#f5b*`_HOOXFP6+ur31y)BB#Dt#xv|%EN z@JHU|j=rG(J4N*jaa3dv3(>T5|MdYJA;Vj@)4Lep%NPpUzx40R(qHeOF`MlH`?zzA zE9a0IfOi!uOQ$MzJDQ#Q)vs8Vx?uv!%^T9JKK=7^`*Pz1Cky`9OJ{@R34N!J1#}OXr%i-XrKoi>u zDNMA@6b7(KPQEV^g=APnv|Pm~(N)~@`Z1|TUbKY$Pd*W6C$ay@mwiazN8;YvO~xNg z27^ai_>#JosxwEbS{*7sB@2#ay%sgGpDU$!pb#dXp#l59ul9aoiCWHc*XGC>S9N^I zJ%c)XY;3sEkkQTSd1MXr4O&+eBuPkP8NI*uJTFEoK(f6F+w}(;8g@lzd8P!#lLTqjCOzp_T?1G zC+`~)E-Gt1`gj^aO%N#g)!CpPo%zWuT&{k`(c2{Iscucbq20e5^h!RV*N5cG z&}%KpaP0{DPKhLo1l@31$ZzKqmx5eT#d3Lkk*yNyPaa`pv`aU?_>utT*%C z`x3>m;;du0VZ$dAFT zB!=?2|4IU6((mJlS6sZ0%$Mk&|JhCH&DS10F;8+c!O+JQRv{1-w&`=VkGSgd0sXmX2> zn{AKP^?%Jeh7`dLETOSuL7Tjyd!jtqurYJpeo1cn{4CpkZ0d4f1|P|SLFFCX$pKiQ z=iXJE@VICSN#yt#6`!N7JmOw!($UAG)%nmLUq#nn(GRY_EuGD($??wI@$|2-3UjcF zXQ<`=4GCcHj*HWmyN(&C*Vn$>I|mx*p-IrU*myD}@xwYm?-M8Ssb3n$}JjuB) z$0cJY9d3`0Z4Ru zSuryRB(H&|u z^VW>Y;(YVGZgHmOK78tr82ouR6#1F?@*hofe`{A{66)RQka}Nykc&QZKgQ?KXu_uO zp`QGx>Gyw7dF)>9&v$>5iqzPzNJX4#xOcujCX!z}b{Bcy{GxQ=HB>{O*Yu6Qich%+ z)E#HBm4HbE`~dP~^<6w($6XlNM2d?d5x~3TFtOJ^_J9~{cx9+~Kenf0Pi%#qD-S%y z2lMvjKFbFa%<9X1hA-doJ>KY?_@H-R?*GEe1S8_#`PxCM12vZ)szF=Cf&-+Y!*dVE z#>dBhnb@kni$8}W0!s<~&SaK7e9vmFrKZ!$2Fi1{k%B{Cd*a0tX_vJ}(a+_6gqJGl zBf`r7#n~^J*>SbfU_^85r+<9aqf)`d6D*Ic>-}}dd^-*x-6z@z7BBBVkl1hkO@d^+ zY6>VpXE_=;O>}e?lVY1`a~h9g`2QOzxd1A^i5%L5XC9 z)+19%F;Wo~=-ct2l&a?ER%VKoc%E71(Ns zEk(lgbG}asq@=23!F5Uj0+K&)Mf3XE71$*+4<_}1P`=(L1YvjVIoj2s$e++esqx|S ziImCqsOGrxVl(|s{<$2%G(46!&0`hBAKgNgCafP9e^lnJbdX_?)W!l+o|VXgf_)RH zX3f(_OF}=pgl~hu|Jsg&DW;?^)$XJ_r#+9cnA$j zf1QW(E$0zt*LwVYwG4pIQ#*UWf319P)8GAdh1x$zO1l=d7rnacu-9M4cNyp|+vVrJ zGWiFj%kh+@i-J8vzn2@5Dp37;zg*X!`cPcQ2kC&zn1!am-Z)%-%!6Fs^0-dZ?gDq_4}Us6>Vd(_>lU2 zO8x#&{r;Q!-L8HgP`^R-yI%das^8l(!f#+YC5z{%keAi(8|wFG>i3wc&u;bma}}cD z*AtT2#%G>M^9O9vo#9_beDPA5!i>(}_-$9&{@yuEJ)>qawiz~{mnZ4o5p?0xZg4E{l>l5xND8O$hbEccb0KK zX590PJIc84-mA;mZR+`Rri*Yv^cdc=6F>aM{XBhVq<9dwyp=sA)<34ZPhm7m=^WhQwen>8I z=HGyEzi-^{827ivebBgHFs`})ntXQ~f46bJXi8uSXP?;zF>MJKngXjSJT!|9Y~GD*^-mdUWfpp1(5w z3C4{YH)327tN7QWe));UOimLpYQ6R!9})gr@H0~ke{?NGFjeDPQn~nQP1Lq0j{>-?) zG;YyG-OkA-eU|Zm#+3UF<9^w=PCMT<{(B9a1t$L&jQ>I7e$%-BY}`+dfKzD7n_yh8 zfpfKSXB)TPxR)3>CB~g)+_}be>UY}+zh}2qB`tMaBpc=Tj&Pm)7bSIi$6t7SxZeq{ z|AP+CJ4?Ki?riSb*gET`+6G=6^wmh3`sEE){o-W}@?9Lsw;H;ljqTp97H@I0HypYv z7K%h8-lndO?)FeL)SOS63U6`5TT@YyJr?e3l%0zbvg*LatPnnG>sL8N$`M#y*V z#->nrw5_XCMwl60mbD_>#*hky!(CxjKf$g1bKo!P>YP4n<3=hF=_YH)N#w-e913+$ z_q9{v@H#s2db~%&jh&GeN(nVP?PKsZ>%prKrqiwMYTg8PI@5hEc$cR78|s4I)4_OE zd3&+(5gC@)>DND> z{u*y%Q@ASWtwEB?6Z?Bdzl`S^@$A%E9t&-JE%>%(15p-7~ya~-4e9MZ37Y>TSI z=LlboFK6tX1ALjo@~?L3(#1!d0Wb-G!mp@I_&QUK{+sZ04*1!ihx-2ja?W);omQj&Cghyk{8I$%e+E0} zINwIp=)Vs;mSt#&aTHzlHm+ZXUsK{U(P2gYG?7iwk~7iYGo?Ed-91yfGtt{KrOU4m zg_~IL8`p(|D;D~gVv8ffJ2t1OQ&T7$ZG=uK>Z+F|%UfDp?Dftqy}?`32^$u6IAQO# zr7Fg(B_-`$o$KJi9Nc&p#wytg%xawuM2-Djgi+WpNa8-Op zwRJVGQJe&|>ri|h9G9?qDg0)_Th|%uZWrJgFj*ABQEAv1!yJxbCBfIMeszpYI|pEK zWQ<~c&i3o1%g>)175)~X;syzu8x70n+-NK7RePknv2)%m2^h(z&z%`8vlMZ*{)bMCkY~=^g5u`kfX@a`&4!Wk&sjibh(yDIe?IT* z?JUrg7@)+QGh*SR;iu)rkAOZ5?%Cj-CSQI8KrL<#1Doowv%x=;TzZxwko?XJTM9WF z{NZxs*&%zCZ0N|6r;LSU`V09uWKVfAxr zRiRUZHww_41|h7Y=Mplk`kDO?tPHO0zo>}e_19e7e+6h@2pgifhDcY_ogozbYuh@T z71H?8VF;6*Yf*FF>G;tFp(Tp7pgYnjO*%7x(^2^i!re8lMNbIJ*w_+9rE_hmS2U6_ zBxy$-sq~y0#%d$4YgMPSp3p@peWx&Tq8BykDRaFQT#T&U8ft7-DkG(8Yp%%GTE_AD z;~lok=rt?QTQ$^6%~NvcQlm&?>^6s#@GR=Jl47G0Qt*eTna8L}!A;X?jSt3s6!v+# zSzWC8Xe3)Z8pC&@9FZBKQ*r-9v^CrnTPH)jq8NpZgwL2U!zx)D@^+(r0LE3tY_??T zft$i1(Kl7Qm4=7&GY6@pFUlBT%6SSKxZCa-PYOC zwR&ABT5^?A4voa8=-nN>EI?}%X=SJmA8zzXb5|$YXz=TuTeK9_Pz0J*;k~xJwCuWT z=Xi^5&=4A0+ag~6&%pUL-djRpNlkT~>a!ovy(!$bt~CmT^6R|5=Ee?h!-lp<}u~?hZ;MImbf(fzqx9x^2+M|`lkt^0k zS(n;wn7dYF67PRigEctI`=4*Hfu#Fw?o1k=fq>-^BwsbaR&{CZ{2ks^rW5XHHM=6K zD!QR-cg$p>wwjJutP_iNutI`ZuDsJb9q~3IUhkq<$6Ck~Vs%QSrq@tjvm?=A;7GdZ zO%S6r`=61o0}W&wTT{aTbg--8Mc>z`1o2EbQ5DkO*3lLfxXbi5hYS@~%o*ZFkf+%} z>h!M7pi@r$B~Ru*Jp|YqYYRoBaUU<`UuJm`RUTrr&NZ?;k(bp(3^Dj@>PTbJxJ9`GYeqTp#mD|!bIEmWNLt?QBxI>{)Q)AL)w>-KgtQbaeQ04|UZ z5{t4#@-ZLjt1hqXL(X7>hz&#;7me+aF4ZTYsCRlpCSGG+bR8*h-m}76{%65is(uZs zHnL0!H?&SP-l}0Eey(inW^Ax03bmQJaXK_> zx{U1Uu`qOBme=MhO{>nFKcl~|Os^|CkE-{2FB+w_U6HovCh_~bHh4Q?45cVbDa=fy zwW~`uA?W88g~{%4Tc^>`sQeq`H~p_(qNO`!EGpeT14IiR!W*ehmDJPQ(s|^IHP$Qp z$&>>@Ze;$nc-doCZIk%v8<~#LaNF7#+l=^^@lCBjDH+h2c^jE1N(q!s<{(Dp-*gW7 z884|aOn*$jJ0t9Dlm7tMIP7yRF*{ z9jVXAe*uM6)$`+s5ILUw=Ideq?)^y+L^_$-qX>0PXSh2$Ei=hPVjGA$MjZ%pY zLw%~P@-eb*;+GwxMlc8;16^WI2`;W#rdL?D*uAoW)!i70Z0HI%58q63@K=Af`XO&@ z+;mPglzL2G>18Kn<0iFw;a9n-g%|{=O0cMTJM|)^=fB=(oPLYsPXE*MhFprdF&P9v zXk$ttDygU6na(3$YTm#}Dn?W9QMWK~kOxdT&BN2zbSZwEX}v*KNl{BfNo6Nh>7mt# z8;LN1Fn!tC;XsC4+L|FpY_dnt|x@2<1M1EK5G%Ar<>X0*3(SEYab3z^W@(3#`MA4?AT6dcG+7Zl$agCh$6?$n;12W&2AW#^uDz- z2o?NwN-wSkm-rWJy*2}|o&8XTp0fZsif^IPFc7lBIIUN3p#KDogd^&AwHV1ZrPDD| z8PhSUp(=k^e$)SIx;n3nszD+g#|X($n>;whTas&f2OGQ5)-GpQ)M<~@Cq=VVx>os3 z|Ep<>AdzfhhEXfE7)bMk5ie0#WEWjx6tOa_oh5DrM%%&TvSmRv_{0BRRD!MCT73(Y7!*|}&x}hzwv0_uj-4)dp z{)+kvU&XqLl@-mQie-1rujr^CU!Ze+V|yDGPp9#&y8dP#rK4@5UJ})q=z?N~P2ZVz zW~5W?JC}5@9A`_093|_KNWS{ta4PLZRA!Qk830RdrU)tNy25RDtMO3b)npzJnv$M1 zn~tA;=G;mKcj}?#>r6RZ#fTl*hA@I`1|}QB>y(X@ph)7|46c_i4Qk|)Q^K7-fKN;9 z39MS$$Of9XbjA#{2dUILy}`9m4ai+8OS_mwd7)M;Kf(ft5rndSJ6qp^l^b=l4jcE@ zD&?>GqH=q-%<$>>lpSbK)w%z>fuuLi{`hs*&nd5{oIB5Cv|L%)Ik}@o=Z(o9J8t|0 zw`byc=T9n_d_mz9onY#P7hQbGrQXXvc6m|p6<3yAb@jAsrq7sJ3NLc*CI2_3^v$oX zsa|zE)dx#I1Cim2xLtsXqtiYkSct z#(&88FE;*!@n2&6R<%xlh4Figzr^@UjK9qItBilP@vk)gj~o9+Z{H?}+lksmee!uZQWc&f+A2j}j#(&uOZ#MqC z1-d>#<1aP-I^*{n|03gGWBiMaf1B~w8~=9WUt;_Z8~;+{A2j}D#(&uO8;t*?@h><2 zyqk3WZZUqZ@vkucImUmd@vkxdcH{3c{tn~cZu~LhA29w?SL^Y9*!cfw{Kt$xH8IRb z0MR@gj&%#$7TJWj+2L(Mz_I4D@GEvg6K@OqhYqxe!sM{AGZ&zzTQXsY`a0Gom$XV_}yf>NF3RTHH;svQ9_4V13MDtMnV9#BksW zKB%frqcwagYbu{unHcs?N;36Sa7IL_eCc)$i%m1QreZ1hEimuKN-v`r%h5TVB{~(K zflbzTWfucajr7>IE~RZ`sHD1lQ7DRBd8g>mP?U9A8U9!&9n;h*a=Rtr!YnujlZZ63 zBP8wDhT@Dm$`d_6DvjFQG0lS?ONFbvDB2JWLS~l;_~_Eqwh=1FMue}%_3Q-cq7?{( zXR7J6(3E6Gaynk{oQ{Lnq5W!GN=yH`qrH*VSX4FGR4_HZ!y)#rME*nL-lQ{&(n?zq ziM@WR9b)ODtm_3tMmP`z6&i2~uHvpDq6&&^>R8(aNG~dlJI#3+YXL%pS4mP1JF4>w z@0jWwg1{5XEOvPiz(w7xQ!yVH_)W;F+P*W?(H-5SqEh8EsKshCWC~1$Q`InG$V5%v zyJGNr2w+VixMSUbWf&V{&$?ilrY10j&B~%Gl|S7sIi5hpWUiz4HWhQmlc7!YU#v5; zZ&#r5VycVcP7x>3wt*w8tk)@&uUO`z3gKw1TZvnnWEeu<9Q0Z@g&8d^vG!Dlj-Vq7 ze=;OmWTQjjPtd02EecYWuxj>hK&Jfy% zE+|S=_5 zi2gS{>6Hj4x6)9s5v2khIw*ycUdHLUCD!SiQ$y(-N&vp>|Nig5mu)q08ICoHYUdnt zQceaw{%o^VyIYm`dk&2-c+%j{7juwPY2Anx{v6&9cQH zOcrN#P{e8w1M}`sQ(FsbvNwPx&ulJ`-wYTvhK8r>G*r8zF``I!I%Rs?wy3R%w0$Pv zHRVz87BMA4ooa^}IXKL&qfiv+CaY>pjche+ty{ZdVS?HE{v^ALqF}l+#I~bo^EP$G zl|8bL~wG=viyXsI$;XYI*8U8 zWg2OP8;TAam6;jf$V5|S)dB$WsaVW3)y$-uYW$@OHnUe&2burvZIP%9#APEVO`Ehp zPKGgF8{zmib#%od?Rqi$bLnHMDN-kAS^a4EI(?&8O?kyUOTU0&22f|0K4m2eeZ1g2 z#!Q8al9?(RVbHD4k+7+VW?K$qsd+*j<)7LMZHaa2^Ci-+G87cW&upPuO#qKRGAgT# zaTdJPIHXrbwruSiBFGYco6JpV2+()yf86kvogj2Mk2ab;1BAT(vu7rfdK~snmfre!}1H`Q!ButCYV*{LSKT34iiW^3CJ#cK+_> z@2~mW!QapL`vZS+8T!J;PHRDEtyR|;wtU@T+)dWPSSNq&mX9;B%R=4O;-)C;=z3(W zCTkgSb(cr#Nh|--;aY>HLo>twe0nimb@Hw4T8A}F zakt~&amm)9B|E-h^q9wtTU4dviw157n>Q+q>JZ1jT%e#1wibpSEhpVAw{FRx;rQPDO>{7)rbv&>Z`!>il4J;vQ;-209Dpm85E?wxF6hT6+! zIW=r-Uf6{+?I0tD!Rvmh17b{jd&y*tqpawBP&7GpBcK>IUA> z@%R5qyPjWbxAf@nd=Hs&A|ctEw5)4qT|c9g|E@I^IsB^g@3mK7<^PfYMtMFpdEy1v zPW;lBdh0RlJkO~=HxaDZ;Ms72xu+r>oc_AtwF@q=E=c=FeqC_E1rtXW_do7W_xtdE z9$8t>3f*6Y#w{^!w{Z^}w>>&{T@;(e#*XeQY8(6q*itY%R-Ne!0_I zfl`gS9Bos+x7w8NZ82SF4!wi10M&iBO9lQOYb65z(51>d8B=kmVk++aP0IO`(^Ah? z-M;h75}$6Q6DN1;Y$5Yp;^vw-g4Dl4 zezSVAdL9JkHGDsT>%|SdYgza3H}*Zt`r=94Qab~?&h^5=HJccPrfgaANfbw$9_kB#2~Mz zqf>&8G2^9NC#^4=-fy}T5o$k=EFrDr&VQ;u8XQQsq6CI347k=G8aAx#tr^_nD zHDP5Eme)0`A7@LL+->y$45mpZLxBbYOxmHrTh^yt)`2?wYa>d|vkthdV@x7Oo5F{6 z*kx@e+l+7|+*DMmmiz65B^VGUOw~z1f7CzMGuqSr0-79;Obiylg9Pe$L^nQp>t*Ql2&Gy&USCPo2k5=RB+Q7UV(x9#-(F z7x9)DA`x$mhY&@2*jiwXag|z9XKBX);xFU%*Sw9BtSS=MAQ7&Va=0+OCepLsu*WgK#-$P z*LgE-S9PQRiMPmSk;Wp8MVetSfIZw#ACD+UkCRbqoaiw+gE2atF?w}sj8-wtr<9Jh zF6BX}OI=^EJjW&+9(N#rAg_D$no;$-|JN`iUG7nqyLq(bo{c+eY`2Cz&dLvus=rL; zY;>%Z%iTHKSD~}uZ(F0_SjO^L>OV4^x@V-Da!IZ=&NbiSL6$XHrp&|C>oU&&On>hN ztN4u@t&5+ivI?R;D{pqd@?fF&C;on-%3x_4<_CA=vB+bQ$0Cn)S{|8a8EH<7r`{4j zB7Dl_%-`mT)}#iHHEFinn)E$SxAZerw$$9D3oheU?=eve+L2||ui?c${vKSb$6Ka< zN&)ojdwQHm{>$7#7jhKMsb^Kbi@!fAnjkpjkNKV%?m9ouIv>2A-!R5Hf0p~$_`_oj z&C0Vp?Uwaf{_>i1xtV^~lss!nGk*=EnKPrTDYFW?T~qRzM{dF=5I&ypan_Uv3J$xV z5$DgRZBz5Dsc($2rbhFusf>ZC19 z9fjtK|111`-PCEMKQoW3AdkN0kFp9Vt6%hwSyx6!TNmOVH7je4YuYGl8sGV( z5jr^Kn%w`ly|a&wtE}_*GtDHOq-hCh8xpKCEl8t>w$le$V zyYA=vJa>|tP>}!pLju2kf6wneufONz-nsXCpKIR!M8&v0TX<9C# z?F-x~KjPI%ar|L_x{7eVS-`nv?wD%h=H-61@0}sehl|Xjmlm7(Y&IN>U1Y)^HKqoc zRK8lbt1hwOXR(zeT>Ew0AD)p$S8>`1m^_U(FrJlX#k=O2i>lsXE((;LcfH8ShnMBE z&Xk4n$Mcf8^T<#Q^}Q)*Zi+1lg-$IDh3_(EA97fAy0pMtdag8d(TPQ&P{-ns>{oIF zb=0fx?C^}VMsvP2WXRKy-jLo<#>_a(AswG(4;0PO_=yBaUK%T6eFWFA2GV~O7qg!K zBA8@Vvg>(L?P3jB9Jt67PRt$mj|;Wg`ubFv86r?H%q3K(=l>H+ZMX~D-Ler^$Nk|M zX>{Q=E1!zXnP*jRGv$Frrg)-g+`m3+98@gLGZzG+p`5Rixp~WV&c)34i<$46V zBYZl3l;>N=7_(k}{&2-5tXBtYi^d8@r+pofKQ(t*-%7s3?vmDIckPCK;vbC3KEhb{ z%J7G+U-99>s#)tieHwn0-%ZGbm(Cxy=c668_u67}?YUxe%}evl63Q)J6LNmWD|X%I zJXXwu=n+Y0cXIq#t*BZRL7N;acQm&UUKUhTo6vdD$pW$Nk|MX*llB zms{#)4*h7$)OE>=oO6(>n_OQ0aG2^F!tU(rVKd zuuk#2ietKV_8$w_^DgaH*{zg4KWOHs^XzpI_m0iGkYhFvttWX@W{#O@=UnBBSHbz8 zb+_1?w{|@qQobcYQ<7d(%sHc&d(q~z$fWYsygs+EI20=@mhGcICBI(R-r3<9>Fl|0 zVX+}k&LhQ!^#0@SI=G1WTxjRB>&K88`x(EzevaS0GW_9+6@_L=Rh(;zt?rsaBOvPL zRfch5&l~9vn`19?-S>(y4|#d`!-YY9uPtM&{f==(|F)ks=I4m+840bQ$ll z;J|deD7O7vkGA^aC9!QM-lQ+y0c;b*OZsdNVe7^=nwrk<``C^z3YgQrc&}m`Bi@kD zR>nTwd$FDL+16njRerv9d>GsDQtIrp-HmNOwi@oaxK1Ce_=pd&JDR2;Gjgx8!_QZLFlHH)d;H^OjAqrW@*4S4AB4qR&7N6dxb% zQJVKf_dwYHw94*lr$To)jf!7nM9S`O=epIfA+e|3oZ=l=m@Inj+wg`LOlnwiy1&I+ z)jgU<@i^OVr{g{SJL2NX@fKQVdvCwqTi9bdJ9`IH-NxK%I(ZAE&*Tw1mG0>2r@nZh zFTT6e?%&X9+KqU5ZQP+M3#4wQNVD0*VX(n$NAFNAy^_mK=RktoRdO;OPxS5X;hjre zMcDA3oMEYnlcKMm=WuwStvA`-W^O`r9_U8v=;@+SKR3JjJ30;Rk9+mL*X(IeS?^qI z;G$Yrlyg+Cm3KjRj`y|UggtQxHoLhaVSJ>o+##`JX*SD6)fcLgzEB&_INy<+tWZ^q1u z!3Gn_H#!bmx|iKb{847*Ffa%;U{~S|VlcLNdm{Y?G3>N?gX8LF|KZu~^o>Y=v{^NE z{`NykGjS?t8pS|r){bpANNZtx9#EVxw-Ox3X+*-I3qY%V!kKS(VpfdBZWfs5T|)o;36M{AqKnKlYIp z$MA38sKIMvqyo9fvHt0}#(Zu@%3K`oGv`s3QvMk;-NzPWhXK{DCEd}8AH*Dd#?-O! zq!UWJ&AeZAlW@Sbp88?R9HHnD>KG+%pA(|aw#$|< zC|G(!4`)Nwg}(jNObb1@HP;UDDeL!|?YVGFYu5MktY>X^tyh~|{e5jV<{O@0>LF3< zA%Z^o+{aziYm%C=0&568?3HUp& zu`g9^>+JVO(q3Ur9p;@rYs|j6fYB^hPj7XvL)GuyW{xYC64kmlL%5GaYugy}JG4Iz zEm=gbi1k0a*aoGnXYH+H$(?Fr*jH-Kc)5IL9b?Q_gC6(e23SfwLHL2^Hyfn1eH?GI z)K=;mj3yE{ZGwT?5$&NLz87px_tv!~^?{# zhnKtBdbjkksM7k;{4IUmb|iO9eE@~-uw(PjRm;~se0yF~%4<*mK!e*iCJGOi-Zr1) z*oFk(`sqpxW7a!{p^LG`IZ@qHx3_ACZcfbnEx+F>-O9J5PHcL*S;DL_j-7~I=`9v z<-YRzX5yYN&UZc(ey;NrU!gzfj>>=TH#*N8-JcES`YDIGgC!;0FGuujyas$6xf9*b z%MoAaM@Tnz;m%THZb8@gPd|%X(FRuuJcHbhUEd+SY7ti`@P=x@XD(r06K4$k)KczO zqVETMAAB7Aond>C}$D&#nND>%vGa|^l_pz9Hv7JOfV@~}t2m-#iDhEp*C zKHlZpJ_fGsc6tqXH^1HGlbW48b3tl|Uvm@RH0Bq$?0$ZTcq5g&j9Ee);W{Lu_@MYF znmc|Tig+sd{q!;Q5q=$+Kpz8(lCI7r;2NY?`G5hgTVv>c&WE25BA&?H6m=zza5ZuQ zT^L7Bp|{G$@9me+$G}a4uCM((5Ai*2+)e%AK?qaG2J|8DC&(meC&0!%jA86iP@Ibx zx}SUD=VgeWvGgO1SKh~m9-!I=G}}5>|@|HUtkSEuK~aCMfw^&1Fp!p zK8k>~h#kY=ZciTq3x+u#6JOYch$A5^9iczag;(A~f1?XGBd5@X;Vk*1TSPC1BQOEJ zd>{RbeFE$}?0k|0Tkd!DZv~(9^f7P}(OTi>G>8N7Ki@xOY^z#+OW5^t3Jy9I+F~sovUie+41YP(8&+g|+h(qx;H^dj_v~@Q?H( zdI^~K4L5$m;MGVa_8RcnQRWf)1bE5gF8@~WIHEOb6rA&fR~ESK1bs&QR`BdMnMdg6 zNodW8*1-K>(Mjr!y###mDW^|>U;CD;!zlP$#Ez4vsUxEC90p%Nl#lr~?{Olsw}Ov& z`Y2fR9cM2AI{1doK=)$GQ8FW9Vz|ThzPhrW= z80T;RgjXOn=)&ufD7vs2X+>`ZpGNHb0&^S$;b&gvTtXaS7P$xA&ndY175enQSxd1C z-|-9Th8_mDBg#|wH;CGPC-{t~kAWXJ>*9P6Jcmq@R#<+{*@d;9z5)E0rw@UjMU z{#Bk}2cmWful_ath`k!T9~nYF0&f2;anRG?qyNLYhkgQF{J$>GO7Jfcjq^`{k^f^n z6DJ1tBP#cH@Fb!*!r+g*`0B4B9VY;py ztOfz!AN(Ui(butepT`b;dv+$|0QUv^ezeRuT#~udMTE`-%&op|>YiK0LGAAt=ihqM zjMl{StxbfR__qOFe~$%UVN}4avA=%TPT{roDB}h6WoxZZ7Rc7ZQ?~(cx5oy%3uJ*RB;C*f;|!}o)h40xPG&X|FqX*n!CQ76Um|7hP78@2fiHS zSO@w5dfIfOai7d2O&jrCXl9x#IKI`!Pmx!@-9=KnS4OZ`PUWy{R!PfvcJm%$>?6e> zxQqPvfqjJ2;2^bA$*MsQdYJZU$4l7~?5?0XCv8madl@FImL=^@nQd5fJj_$c9-G5- zOJ>%6C2?+?RfB#!mZml?-!?Drq^(^)wRpX}!lX$X*q>H%dwH%ktN3q^{cj~Prv12* zatC;twaV6cx(`xVHqxVYjGj&OcD=V7Xk;qyEwoRbNLjxOpxunWddSW7;0{|?mF4`= zPPscg-}R#Jp$#fqHSV&hT)H&Yu-EQA*yTI7tEl=o#nDbIdq|~{!i*C2j2n$Rs6pB* z|9m58rr%YH`tHI~(n@~Mvh{@z*1y08^SLTODjP9oPZk}tkm~Les$JH*kC$3t&Pg&3#bA4sa zT%&Z{?XkPkTxH*4&BbpbXN_d}x(zQ*w_3AkB}eum`ujLDm0y5_x@=6Xu39J5nl5Ua zCeCYZVakmltEqF$j;`73>znhYdWmZo+s4ganHn3abI!jCxgMKc_Xci;a%Dw2?HxRb zU)eimD)#LDZKS3#V!P2j;EhFp6%xiqzf>@w2tIzDzCdU7}xRk>=)yx zdO2n1gMVxk29E{TUAuQzZ*CXD^~?E|)pGVnb03&kzkExqVMX=wu-&?+jn6bB)-T_e zNG-qiz4MFKiD$A)AJ!&=zSR2VY}B_l#nxl&&9;Jl`1z_lTV$?)Zm_m3wQJ?>)yuVy zYELKomwFHRTxn#bFW3#R%bFfrdbut8J-J=E%%&q{%6nYog|T=a5#rI@K+kTTXtD$U z)ItB@dbev^f8R#C0l3}JasBePR8!yXeztE}9vfS1xyF%v-Kw152&m)#P=D}bmr!`(&t|e`?wz=I z@?LXa=)RMO#|~HDAH9G3{p0s@2kL>)10@fXKOnZE+GsMNObPW4Q}bvhLhWjXW&UIS F`+ubHR6YOz literal 0 HcmV?d00001 diff --git a/backend/abs.exe b/backend/abs.exe new file mode 100644 index 0000000000000000000000000000000000000000..47203e32bd39e7ffffd42196211e627243a7ea9a GIT binary patch literal 111104 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 U2u)N^v`@@FdWNw0{(t-XUnwV*O8@`> literal 0 HcmV?d00001 diff --git a/backend/config/base.py b/backend/config/base.py index 5509a8a..ddeda0a 100644 --- a/backend/config/base.py +++ b/backend/config/base.py @@ -81,6 +81,7 @@ "django.contrib.messages.middleware.MessageMiddleware", "django.middleware.clickjacking.XFrameOptionsMiddleware", # "apps.account.middleware.RedirectAuthenticatedMiddleware", + "middleware.metric.metric_middleware", ] # !Root UrlConf diff --git a/backend/middleware/metric.py b/backend/middleware/metric.py new file mode 100644 index 0000000..8a625a2 --- /dev/null +++ b/backend/middleware/metric.py @@ -0,0 +1,27 @@ +import logging +import time + + +# ?metric_middleware +def metric_middleware(get_response): + def middleware(request): + # Get beginning stats + start_time = time.perf_counter() + + # Process the request + response = get_response(request) + + # Get ending stats + end_time = time.perf_counter() + + # Calculate stats + total_time = end_time - start_time + + # Log the results + logger = logging.getLogger("debug") + logger.info(f"Total time: {(total_time):.2f}s") + print(f"Total time: {(total_time):.2f}s") + + return response + + return middleware diff --git a/backend/poetry.lock b/backend/poetry.lock index 801b760..55ed496 100644 --- a/backend/poetry.lock +++ b/backend/poetry.lock @@ -1628,7 +1628,22 @@ platformdirs = ">=3.9.1,<5" docs = ["furo (>=2023.7.26)", "proselint (>=0.13)", "sphinx (>=7.1.2)", "sphinx-argparse (>=0.4)", "sphinxcontrib-towncrier (>=0.2.1a0)", "towncrier (>=23.6)"] test = ["covdefaults (>=2.3)", "coverage (>=7.2.7)", "coverage-enable-subprocess (>=1)", "flaky (>=3.7)", "packaging (>=23.1)", "pytest (>=7.4)", "pytest-env (>=0.8.2)", "pytest-freezer (>=0.4.8)", "pytest-mock (>=3.11.1)", "pytest-randomly (>=3.12)", "pytest-timeout (>=2.1)", "setuptools (>=68)", "time-machine (>=2.10)"] +[[package]] +name = "waitress" +version = "3.0.0" +description = "Waitress WSGI server" +optional = false +python-versions = ">=3.8.0" +files = [ + {file = "waitress-3.0.0-py3-none-any.whl", hash = "sha256:2a06f242f4ba0cc563444ca3d1998959447477363a2d7e9b8b4d75d35cfd1669"}, + {file = "waitress-3.0.0.tar.gz", hash = "sha256:005da479b04134cdd9dd602d1ee7c49d79de0537610d653674cc6cbde222b8a1"}, +] + +[package.extras] +docs = ["Sphinx (>=1.8.1)", "docutils", "pylons-sphinx-themes (>=1.0.9)"] +testing = ["coverage (>=5.0)", "pytest", "pytest-cov"] + [metadata] lock-version = "2.0" python-versions = "3.10" -content-hash = "d04547c2e0dd6d8fef5a3a6e4fdb115d0d2d3f21f074bed9065dd51adbf5703f" +content-hash = "5ecf8c533366a6ba0c4a0e95a85c316196fec0574b9822454298a42102f8bc03" diff --git a/backend/pyproject.toml b/backend/pyproject.toml index b834757..ba14a05 100644 --- a/backend/pyproject.toml +++ b/backend/pyproject.toml @@ -34,6 +34,7 @@ django-lifecycle = "^1.1.2" django-redis = "^5.4.0" redis = "^5.0.1" gunicorn = "^21.2.0" +waitress = "^3.0.0" [tool.poetry.group.dev.dependencies] diff --git a/commands.md b/commands.md index ecf4c12..ed84a23 100644 --- a/commands.md +++ b/commands.md @@ -59,3 +59,7 @@ Backend - `poetry run pre-commit run --all-files` - Generate api schema - `poetry run manage.py spectacular --file schema.yml` +- Configure waitress +- `poetry run waitress-serve --listen=*:8000 config.wsgi:application` +- Stress test using Apache Benchmark +- `./ab -c 10 -n 20 http://127.0.0.1:8000/pets/`