From be6b3b737f9728e51cf774fab9dce683aac75ae5 Mon Sep 17 00:00:00 2001 From: Sergei Chernov Date: Sat, 14 Mar 2026 11:23:13 +0300 Subject: [PATCH] task_1 done --- .coverage | Bin 0 -> 53248 bytes .vscode/settings.json | 7 ++ __pycache__/__init__.cpython-314.pyc | Bin 0 -> 155 bytes __pycache__/bun.cpython-314.pyc | Bin 0 -> 1570 bytes __pycache__/burger.cpython-314.pyc | Bin 0 -> 4134 bytes __pycache__/database.cpython-314.pyc | Bin 0 -> 2778 bytes __pycache__/ingredient.cpython-314.pyc | Bin 0 -> 2019 bytes __pycache__/ingredient_types.cpython-314.pyc | Bin 0 -> 383 bytes __pycache__/praktikum.cpython-314.pyc | Bin 0 -> 1388 bytes .../test_bun.cpython-314-pytest-9.0.1.pyc | Bin 0 -> 4319 bytes burger.py | 4 +- database.py | 6 +- requirements.txt | 2 + tests/__pycache__/__init__.cpython-314.pyc | Bin 0 -> 161 bytes .../test_bun.cpython-314-pytest-9.0.1.pyc | Bin 0 -> 4316 bytes .../test_burger.cpython-314-pytest-9.0.1.pyc | Bin 0 -> 10540 bytes ...test_database.cpython-314-pytest-9.0.1.pyc | Bin 0 -> 5220 bytes ...st_ingredient.cpython-314-pytest-9.0.1.pyc | Bin 0 -> 6697 bytes tests/test_bun.py | 18 +++++ tests/test_burger.py | 71 ++++++++++++++++++ tests/test_database.py | 29 +++++++ tests/test_ingredient.py | 31 ++++++++ 22 files changed, 163 insertions(+), 5 deletions(-) create mode 100644 .coverage create mode 100644 .vscode/settings.json create mode 100644 __pycache__/__init__.cpython-314.pyc create mode 100644 __pycache__/bun.cpython-314.pyc create mode 100644 __pycache__/burger.cpython-314.pyc create mode 100644 __pycache__/database.cpython-314.pyc create mode 100644 __pycache__/ingredient.cpython-314.pyc create mode 100644 __pycache__/ingredient_types.cpython-314.pyc create mode 100644 __pycache__/praktikum.cpython-314.pyc create mode 100644 __pycache__/test_bun.cpython-314-pytest-9.0.1.pyc create mode 100644 requirements.txt create mode 100644 tests/__pycache__/__init__.cpython-314.pyc create mode 100644 tests/__pycache__/test_bun.cpython-314-pytest-9.0.1.pyc create mode 100644 tests/__pycache__/test_burger.cpython-314-pytest-9.0.1.pyc create mode 100644 tests/__pycache__/test_database.cpython-314-pytest-9.0.1.pyc create mode 100644 tests/__pycache__/test_ingredient.cpython-314-pytest-9.0.1.pyc create mode 100644 tests/test_bun.py create mode 100644 tests/test_burger.py create mode 100644 tests/test_database.py create mode 100644 tests/test_ingredient.py diff --git a/.coverage b/.coverage new file mode 100644 index 0000000000000000000000000000000000000000..aab5fdb744c3c2a9520ac48febd073b52ea1e067 GIT binary patch literal 53248 zcmeI4UyS3#9mnlBiDPe)+2c5(V+A)a)!vHTh1H?LEf3edyM-cYkaW_R6< z?VRoG-U?N1C@K{NUU);Oh*u$Ss&)kl62T8*{{eXA+_cwaenW_9Jv_xx*Ld=oUN>G>^beZ#lh=B5bdxz+cu>5-im!q{8ib8Zej-nQMyO*gPZ+jF_NAe!A! zw65sjyo8o+1TX6i>3T>y^iV9B)Rmz#5Wa$BQalk}C*xc%#X1m_Rg-XJv)gqVg#71S zrz0DOB;txgZbmy%uIM-ZJReBTM{c;@JeN*T z1pHvCSUY}DRVXUOh2VUfK04K{ZsFBuLJ*^An3?yW~%MoROzaVVOzedgvAhULqS#=WE3be z;ElG|7>>0lVgf-OgvNrj*m~D(%B~VfADZ5_@U0E8m|TsAh3`9%D0G&LVr})vsL<($ zKz*s7G<%1OdTnM#eZ+{uC~2+apbv#m+LBioM$=1$O9N)Lz^pq~Mk zSIH&$QLcAH)oVB1r1rW=4~_??dO)8994qxTIn514)+HAQLG}|GrRgJ5Hn=443`2Pu z*C0p4xY-*qy0ldC0m+<`3w)J*t8H-&vhJ8U2T0w4eaAOHd&00JNY0w4eaAOHgUl0Z49-N4eXh1@c&YBPtE?*QDk zxO8msR+GHSu}>8C3A?y29fZ*!00JNY0w4eaAOHd&00JNY0w4eaeFA0e1~t76kTbOz zBe@G8pZ`x)&M53n_BgwfRjYrlK2beWWtDd;Pf|8E5C8!X009sH0T2KI5C8!X0D+MN zj!$XI?y2Rq`vdyT``X^~d#}9ztG$=^UfKJ@T1#xNowhq|&q)sTrL~T4ZH4w$*P&m$ z-)?Hk&iJDBy6xIwy-t#M8hNF6V0_U~1Yxiy_oQQk{uRO&Zb*7oN~A|0U(Z0e9`1HT zAf3=Bazg&JzF`G|Bu^Kq^2+#?XPn4rSuSYG!{aL%ct95XFs~`W__B?zPyaGRawj#i z+!$XlV|ic4v7DwjD4OAS>l70BoRQsq7pFqz*xWE1{P3A;q<*u*hdzA?)&p46MQoKWZcmgE@4`?-9xJ?Tt zknOMC^QZDXV*JCW~c-}c6XT>s<$|1e~M00@8p2!H?xfB*=9 z00@8p2!OyzQcPd|$7ilq)+l{_{+ZrKufFK0dXCPfbHDkhs8XV8s`B~2$=*=d`|L~hC-!gl zS6cu7lYPkEVE_HD9E4sF009sH0T2KI5C8!X009sH0T2Lz@d?OvziOD#p=d-0jcx)M zhN?#=rRdIpS|~(kdOkYjwdjz`$-4!HDWCr<)8p5Pk{|#AAOHd&00JNY0w4eaAOHd& z00R4ufPDUs_5c2BH&_e;AOHd&00JNY0w4eaAOHd&00NT`!1Mn}XrU|!fB*=900@8p S2!H?xfB*=900`_)0{;h@YPaYB literal 0 HcmV?d00001 diff --git a/.vscode/settings.json b/.vscode/settings.json new file mode 100644 index 000000000..9b388533a --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1,7 @@ +{ + "python.testing.pytestArgs": [ + "tests" + ], + "python.testing.unittestEnabled": false, + "python.testing.pytestEnabled": true +} \ No newline at end of file diff --git a/__pycache__/__init__.cpython-314.pyc b/__pycache__/__init__.cpython-314.pyc new file mode 100644 index 0000000000000000000000000000000000000000..f5e6dede16f8a18b3114534690d9567e5b325f9b GIT binary patch literal 155 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 literal 0 HcmV?d00001 diff --git a/__pycache__/ingredient.cpython-314.pyc b/__pycache__/ingredient.cpython-314.pyc new file mode 100644 index 0000000000000000000000000000000000000000..3cfcbd2c46c1a4476b8c751cf8d7b710fc3175b9 GIT binary patch literal 2019 zcmbVMO>7%Q6rR~#J8LItQj(B3t;7-|=(bf#DF{?mhyxcc5iF{6z;tBRo3heo9cIT! z>B%XGs!|14Dse%aatkyODOJl24qRq$)m}MqOXRBVk@ueM*yX2H`lNX?^Uchg?|t)g z>d1JJf&KCOc33eO`x85TvwDs8JTzKthP}uw9CY9YMba z>po_RdrTRZxH6w-4Op+N3OmO=W0pm>XM&$pIYKN#a)jgw$rCa{$Os`eAq7Hguc!(Y zri$Ju@EFUA@5Ps8P!EGxHGhNci~2i#PjBlTeJ8!)=v{qR-%4B1-G=s#zMEdvTZ={g z?Z5H!4q#j9HCpqF-onLq^sbX`=zHlG=?1L&;eP@;dMDjTufm29epmnMoOp65_cZOL zf7U&zK;O^%ovZHW40ZB-Hv^kXdnUHOO*nGV}x2$jn5^EVmLhY6^P!m4;lcscc*b zKdL23J@l0j2}W9IJ$Mr;|9tgg63C>gzlX$I`WDc>U9AV7SKkfSqQ+{k5@)M}jThI} zvoRrRaokWf6$p{d4o+@yc)*4ok_B*&TCBs&+_8Oho8}%?Kc1uNc9Xz1%wm53(qac$ zf+}|VBs5xVc``~e{(+BM`TRB{Yl@5G3uJc8&1IOLp6gCli$ZhoJEyZHuH15Pl3 z3>70iyB|V@z26%cuF6b42Yujx>27j~@e^Fy)2MJcP=an-Ha#TL0ZOEhGpIB%_05&* zSF~Lkkm(=Wp#+k1T`mQvo-PX>Mtew>66#U9S*B{h1ZI&PQWm;W$6)2KC^n`~4{`Y7 z^g$vtkYxS(y0+&AM4nv|`2z5Gx*$_9OFHNd?kRN04w*bf`p@L)FZyTl2-1?5U^Cj> zH3yGR;?R;iiq8(UgJ)M1Vzp6kM%acQ=Cfuk>WxeYu@cHeMPVGo4HzB~qTcX@kTV$j zIJyONuYk*D;FE)|DfC56DH(p!R6zo3jt+f;eh@`Mz&)q;g*v>`eO~xIOLT}OuYr4X z4KDM(Vdd=382nrGYjuk7)b{Ybb@Fh#uvMbgLu^s56l4i@z+ju*{Coe*g>IH_%d`D` T@ICLDob!$`#Y=4lj)MFR1f%G2 literal 0 HcmV?d00001 diff --git a/__pycache__/ingredient_types.cpython-314.pyc b/__pycache__/ingredient_types.cpython-314.pyc new file mode 100644 index 0000000000000000000000000000000000000000..2a4b436353788ed8a806b1c016adc85525f945b0 GIT binary patch literal 383 zcmdPq0K8#aNS}B ztG~q#RpY10e2YCkJ|#anKK_;{P*aeri>Iq!NPI|SfNMNNtvI?cRPRcL&mdoZu>}&z zRxzQ)sYS&x7Z!qjv>E8coiQn?Wic+91v&Y-P%7RqCNnR+C^aQBHLoPTq_QBjSg)Y+ z7Kcr4eoARhs$CH%L_uL!ECD1wFf%eTeq>@{Wck3wAgOSHLG*@{@+AiGA`YM=01a)E AV*mgE literal 0 HcmV?d00001 diff --git a/__pycache__/praktikum.cpython-314.pyc b/__pycache__/praktikum.cpython-314.pyc new file mode 100644 index 0000000000000000000000000000000000000000..d2ecf100476ef6cb87e2d7c23ec7931d79b55e31 GIT binary patch literal 1388 zcmbVM&1(}u6rat`ZZ?~KShWcWt4V29LQSPmL_~TBp(ZG;1`IuHvuv8BE=|%fyD8LD zyl9Vt2mulFC?2JU9{mrpG&DL85I+u{thRrEGuz!v5j@lfJMZ^?@8!LjH*YdMGAsik zyFcHVUmyTqso_h&1BVX@Xn_(aaCwm9Y%W1@ARox_Ht%9S4|9SoxESWeT+j}>SjbDc zkR3{Zf*1w1yb>-1Z!7~)AvG1SB2R!huLOyZCfzR;`a!uAhv8k*vWez1%{ozHris=J zM39u#ZN02p2ElT^zJ`p7Y1HjiFPE#xSpZMI!+nnKT_x+W_!S#KrG8fi99IPQ1fOMk z;13Xgknuhm`1vAtFXXdK7Xu}5HO}lgZ#M}*;=_#hQIRikr;LZEjOR}oFZ?rp*xxnN zr9g?B^QOl=<0$j_sKm1_sAE1$`f<+3O#A(1zbJ5%AQeEg#$rlFBGHIm93Ig(b+f9M ztAO_tA>(gKXdtt0jPO@;9G3sWxSO;5@M zdM|RVl_mD2bZ;u-Ol9__vaLJB7Q#=L9xpx1w#Q!F?n31=lzTAdz*u|wwf<_R3sWEe zi*YmeVBCT6_H0}4!lcJ24piFryD&jEDahNGd$Qul%AS02A0`gTApn*%jh;=@7E?o5 zw6_|xb@Z9yVb%fCR7Bf|&z$7wf5Y(zoMp6sBkq9U^UT4n1kv~GHj`Gb>or5u-U1Y* z>^Q9=-KuR=npI;SC5cI2u9YUs0nc$!vd=x|-tV6K zn){tIuea@s6L`jz+l4O#LUL&MkL)SCr$AXI(?k=_5?kPO z(8R3jqt5eP_bs>VCTXwY1e9~HG>z2Sh(@cMWQ4T0Du0Ig&Zd5CkMH*(%uAC(D|$3u z^vBWUCt@WZdsG?>?T;DJB3d*PIVv>NMzihy3`3sx`*rmaRvYy_`{iXpQ%(w|cv4`K zaE>q5(Y|Ji)A{E-$N2x}*l=S1@HuJ1KsxH5>&J3p&n(0iXP_zpr%ZV1tfUulH z)Vf@*6!RQP=ZfVSy-2yc7`60S13frxr}-KS<yZ&X(D{Zc}5?Eb1lQh88En z=a*6(*)oc=4C%#b!7<$p8V(!jurcZyuFE&W#&JslFa2Ho`F#xZ$+xl>VY{tt?VH-2 z_2t^_+MU{W*}U;__DsPnmgl{K4rlpJz)=mERi~31mSOXiQN5I>e6mi`qw1kO0LYit zJrK*}r?&R5j@%sGY)h_4zb5v7xwyJmQ+sZXbFrT2*-^dUrrNWz7+8U_Vg>33AUtck z4&Fj<0Vb>f{zn+Gx>~KN$(xg0tS6E?s`uMelPlH03KSf}Lu>%Tv$pHtE%X*(!V0wP z!m3F_2y1}~9>RLyrF+&8w$M`#DW(MBY%(MBaCXrT7IQy01&a_}<6Q88a2Cr%Ae_Z7 zrT^REOpAm9)T6_s><6Z!asy>XwWy|KqD`Ssd4|xZ_@4a|LZ9k}K2w75cR^D<+SK6& zGQ7l`4;W@a$dGA;vk4yDm#QaG8sFJ;w2Da=JLqOCAcvLSrTz+ z*5$I{V;1)H_^XS(itYP2)%bI9IvN=dQUMLL0=Ry-X zu-D-2;^e^kQ0oT~Fv8TcGlG{h?Li4Kyl))xw4A^OU_y_$)osD8b`y((4_#|skIb{j zyfs;PY|OE<1VvDVAQdZKSf^?sYscs;NJ1#hy4*Z_oQZKEf*VXNK`)V1CK9##O) z@AWPCCXP8Ob@L?Z#3`LG=PN~nQm2*Dg^FIp+z_k;rLzTQ*~LQ1D3vK?Nj$DW6vH5# z4oWQ>62lzTZJQNlDzHJ&t)0?b5%@A+$k{mqGE@rR;QKsrzU}VIJM3Mk!x>xftxN7of*|}t$Y_I|p@<2{{|u7+Vhtpmtztrp zQ;UjYE-bvT^V@gtsONwLS<1_OzOXB183My}L e*yQG?l;)(`6|n+M0$ErLVtis|WMnL22C@K)S}B_V literal 0 HcmV?d00001 diff --git a/tests/__pycache__/test_bun.cpython-314-pytest-9.0.1.pyc b/tests/__pycache__/test_bun.cpython-314-pytest-9.0.1.pyc new file mode 100644 index 0000000000000000000000000000000000000000..314e3f2d2101ce0b604548646bcbeabb5ee697bc GIT binary patch literal 4316 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 JJq2Bs`#*oEh1CE6 literal 0 HcmV?d00001 diff --git a/tests/__pycache__/test_database.cpython-314-pytest-9.0.1.pyc b/tests/__pycache__/test_database.cpython-314-pytest-9.0.1.pyc new file mode 100644 index 0000000000000000000000000000000000000000..318383e628f9847ff2c7935630abce4f26c16d24 GIT binary patch literal 5220 zcmeHL&2JM&6rcUDz0Q{tXu?PH;gHbcLW4t`4@lF3fC|($idJBx%4M{%H_1wlZD!Zd zfLi5Hsj29JN>$6P^q5PligM_G;SeBbRH@f;1A;`$sqgK2KkNnwNbQN0{r0_?H#2Xa z_xxV&EBxi{#oFtZD-^CMBS?nPvWGmEzJ>tpm ziHH^HA?>7>sM0o~$|=zqZz-zKM-riXXig>st{l@WZCW$+n$-lyo2-w4qQQEfz*;J? z#Iuqmb&w*gzKvM2DuN8*3RYN^K}OV&rKE`!Rl~4Kgg2eiP0L%sofRi2vf{=5k->mi@7iPN%=_Hx3 zJ7P+4HUAE|YDkBM1hw%@YDi2~Gp-7%n6ZBs^qgw){avk>xG^1srrF-Qm0Das|K3Y7 z)!7MgBX?uXyY0*qmXI6aop3=ft!tNQHTo#^) z6BEnA#UwTlCCr9PRV6-QdnOa+9&8y*n2CnZ;uB8m2w05_YnZoa=QSg*P3Lur3o?9> zdBfq-f(4~UHOAX$R?Fup(@QK{oG)oi=S|QJ-bUUsAjELK2p%TiPR+SuIiIs#>1@6@ zt>tM!o7Z`in%azxGw_xp_EQ+e!g0omjBlkgMK-TlRR6S;*9w{iJqd-&rk*q#VPUZ!~BeH1Vn4h&$J#!(e0&Wllpn%}nLT%8ix9%Js^P%5RyR zem--|DCLXu)f*kmU>;0c(p(kW21*M&;pC?#dGO>`nH5Z$Ei$HOEx4Bp79R!OS7Pzi*sdk{QJA!Dy^^}TP*J+B9HEvz}ZQaCpQVsxE-(v3PceW1;HDQ!YtEshF-8thOalnjhr>3z)f$G#ZYYn;R0>D z546F-_MEtzFx);^JBkhzuqP6>9mNh5J3%BA2D>?7ohbI8fZvp`ZWKKz;wXSHkQ%^a zyP$<9>wqT^#8Yr<;#s)$+~JrI^EwD0zB;zAbquU@46Jq}ml_@T8efg|RFwW}gSJ?S z^{*+_&n>0D66^6yPeIJ8y4+Oy1D4keQ(YPNEO2tIJAo--`fG!pQ&52(wj1KEfiV32 zZGK5!nqQ{HR&pAc^#Cc0?{5J=~&z-*bEIwTNNT0ycC2h zv$|!|Cg!7p4Fh%1;G;q`fC@HUk}#~dak2n$O4?u%q(wD^X~aZeb2(Dn!HjMjGhEt3 z=QNX=B|U4*7+GYCeDA*z;;GK~H0HM;d_1V3GY=H9FS**9Tuxm(`hDj&o!@mYr zTz*yckO?^RzpDC;s(!9$#Z9f8)%~is3ylpx(%60wlPrnq0T6CkC$M1%#miJQ?(?F-Sh@>bPcKe-I}7Mps)$m&d(29>+Q! z{U7Rhj2(jLmf@eM2Ch&WMJeSCl+G7(WjNtd-bCrSvX)1n1}jGCjKNGRZxr-Gky6%& zIeiNS{!_&!K=5`-O$!dDS*lqUGp5UsS{U0#X*LgM(wvdCvO1iQDg6D_9B71LcnCUd zLn*^QXl#LJeG@6$Uta8RE#XlAeFDO!AohSnlq>FG+vbOS z2X&6;1J02cj?4p0zrbKa;!&@ON2+c1TgMd_nC)Y~6V7`W6H*-q?Ui?&G`-6{gf@)b cL=t*m5(ME7LcSokN!Me!N9bQCAnbwv0C{P*TL1t6 literal 0 HcmV?d00001 diff --git a/tests/__pycache__/test_ingredient.cpython-314-pytest-9.0.1.pyc b/tests/__pycache__/test_ingredient.cpython-314-pytest-9.0.1.pyc new file mode 100644 index 0000000000000000000000000000000000000000..6864f17f38675ce6e86ae5986d8a5a137598cafb GIT binary patch literal 6697 zcmd^EL2Mhx6`dt_$>EaJ%64hlsasN#t&)yRDVFRyN!=t()JUi!s2iJV5L$~hwUQR0 zNP2eJR4M{HO@Sz<+2Y$>XDQTNm#Uq4+VcHe(_}70UPz@a)=?8}rs9*>#!MESN=(YOJejnUS(HKjNEQ2#Dvd|nZtavR45C8p-;|v$ z2#!2eTO`K3Y1HgO#K}xezp75WGBq)MUAz9q%!Ky(OE+GgaQgO(e?E2X8p!r|j@=Q^ z?(cxm!S|csw~Fk@oMcB&qB^=M&aioVdR{e?-pf-?6>i4W$lUx`^d?rLbAN+6u8MOP z$D+lkKND5zL*t&Qols+a$d=W(oh%`kBZfI9oSy53We4+H&6u@C&0c93!?~Ki3}u6u z6=PMl>P?cX5JO*fVwI*{HSE=7Wy!3XIZJO=jEcV}bhIS=MG?ZgOL4kCWx;a+%^ojB z$DxHj4Y4H7cq{Ho-17E~e(v+_g_3Y(5~15~|HxCB5Ee5Cok3+j-b^fP?b5KLsZxAQ zP}8&eSY+JORRuLt_IChvTjyZpXQ89TAM6_`)orAbIPT5Q_i?^&pIy(_+r0*UsnO7k zy6a2+II4J{Zj9?nYU~K+EcpE&a?aci<{TRlheLbUz-nB@B|IYRktWK={M8H1`nWF( z>V8y8_+I(-lAtD@7aG#@0$GG;`(B{!Q~RPV@{OXcXZF^2KHB6Xh_;BopNEV#ZU@mO zKk;Zg>Bm@5?~AtRH;Oi8w(^~iw&W2+Tl6ubjoU%AC7*1xsR_8td;b@?dewgZ=w`wMVxsgV?!q`NqnXf<>FJOgkdI^&N@b`X31-0l`}kR$rw` z;{{9ptw-dpGP{eu2nbI!TCj?XhRra9{7$|gzmvP_Dqk*GkJlA-sasc*hxdxj>#KdG z2t^_e_8oWR7aJ=!AR|pD&M~c`SF0K^8l+NRZs^2tQqZj3YMNEstXWR1S_ciwIi*=k z^=5URscMVW`YpYxvGq)7mcC%n9-N++*s`1T+5{nW;+)VH>SS5BHRCsps$SD=XmK5J zEvZY)>w@fvmQh_G3b;z>tw`uKNGRHJlGGu0L!SvVV`1i!%edqHILth2QPepEPmVpG z{S4U3bLATlAy&El$Mz?kyX}wLpS1r{o;QA7e#LB5>&srHJyWJDWwBBVBCpt3ar)RA z1~Lt1V?&qD&|cVCe1u*c+_3%y`06hD>^M4^YvFs+X6Evm{6IOqtqgROfi@m(D+8O# zSs>PNM;YD5-g}?6oaHPh)>b*Wfk%CAi}mBSbhQM9bsV+~aa;@p81Dqm4g1awuZtaJ zcpH1~eGDz&Tp)32>W(Mdz{5VbMYRXqmadkdur7uzLmU?a0mjU^!HzQ6#>KWWxT%~2 zVm;GQird(G@6(oZoaF>{$5YwBMW5SZ{kSb%EkR*D6SfR-Tnq&0?ZSSe3eOjSp$8Dl zCH@Ln5poHtz@7%=O^wLh9~#lJmr{_*0aXZH1P zWxU8o5HB2YA2MFJ9mI?LWaZ{W)d^W4RWz+~ga2a|d^x`1&8y~}VdyqMRWo=Y9Lp9GBufQd5H88lhJGl*xb+el1c^mKf`?plIdYCF z{ct~`G;5}9>Q!^qMc5Y(0HAx-=_IT_F&z5$6X)0Pj&f>E-03~BCjB#$4TI7T?|g8l zjnB989p(Hs_TEi=e(etDI6(oFr?CMV9=Fv+8Dy<|SUJRTF%ZxVz&qE6q1M@sGPI4o zcM}g$9|D0((@{Oy255NPRu^TEwE(aN${~)6fq-rp#LRY-Y#ZlWmpTf#?!B8h-&V4m zj`DWDsI;Cm1 zn|hT7KX8hsEttfzt7grp)j<$*b3jL2*2!B=5;8wfw28TD5DGcncpswF1t^@1rdc*b zS4Gop(7M%x5QJWiX9z07ddfH z=Kjtp&UH^SmP+@Al0JGESfM3jQyiiCbc5XAEB=YQD?cSKfQ+t(MbCzZQ9%$sMd