From 0b01c3f5e7a74965db4926396f8bc040ed57c805 Mon Sep 17 00:00:00 2001 From: Yonatan Cohen Date: Thu, 17 Jul 2025 01:23:37 +0300 Subject: [PATCH 1/8] changed duration to float, added metrics support, benchmark script and plots --- .gitignore | 1 + config/config.yaml | 2 +- config/local-config.yaml | 15 -- metrics_vs_message_size.png | Bin 0 -> 119178 bytes metrics_vs_num_of_clients.png | Bin 0 -> 99208 bytes protos/mixnet.proto | 2 +- pyproject.toml | 4 + src/mixnet/benchmarks.py | 184 +++++++++++++ src/mixnet/cli.py | 1 - src/mixnet/client.py | 33 ++- src/mixnet/{main.py => local_flow.py} | 44 ++-- src/mixnet/mixnet_pb2.py | 3 +- src/mixnet/models.py | 2 +- src/mixnet/server.py | 21 +- uv.lock | 360 ++++++++++++++++++++++++++ 15 files changed, 621 insertions(+), 51 deletions(-) delete mode 100644 config/local-config.yaml create mode 100644 metrics_vs_message_size.png create mode 100644 metrics_vs_num_of_clients.png create mode 100644 src/mixnet/benchmarks.py rename src/mixnet/{main.py => local_flow.py} (72%) diff --git a/.gitignore b/.gitignore index 578b248..8817eb3 100644 --- a/.gitignore +++ b/.gitignore @@ -9,6 +9,7 @@ wheels/ # Virtual environments .venv .ruff_cache/ +.pytest_cache/ .python-version *.key .vscode/ diff --git a/config/config.yaml b/config/config.yaml index 8a2cc25..81fb8bd 100644 --- a/config/config.yaml +++ b/config/config.yaml @@ -1,5 +1,5 @@ messages_per_round: 2 -round_duration: 5 +round_duration: 1 dummy_payload: dummy mix_servers: - id: server_1 diff --git a/config/local-config.yaml b/config/local-config.yaml deleted file mode 100644 index ff54d5d..0000000 --- a/config/local-config.yaml +++ /dev/null @@ -1,15 +0,0 @@ -messages_per_round: 2 -round_duration: 1 -dummy_payload: dummy -mix_servers: -- id: server_1 - address: localhost:50051 -- id: server_2 - address: localhost:50052 -- id: server_3 - address: localhost:50053 -clients: -- id: client_1 - address: localhost:50061 -- id: client_2 - address: localhost:50062 diff --git a/metrics_vs_message_size.png b/metrics_vs_message_size.png new file mode 100644 index 0000000000000000000000000000000000000000..b39531e1f008a9580c0960e935dea7b782aa470b GIT binary patch literal 119178 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 z -N@s2wndpsD6bat-Cn{V9!McE@fo!i?d;hByqto5#jOSR(zT_?i6x(!A;1xc2% z@LlI)#pNG>tJEtxr@jB)gWjk20EP*<)CS+BGw?{D7ytU{|HB9M$MJpp8<3^UXkpz# zL>7D&?{qD~#=o~A66nh&UpLJsM8BzvtD)Mtqr!|ICQkf#ZrL!Bh(>n^k3gC}7>RBX zP8F0OAX~b-pU)jHNeW!9$tWqAAp}9HJ)W6jKv&9&0nAZBh;yxxJ`cZLy)ZKw&9l&~ zCLzjY1V8fjlhmPqFH+Xqub~7bCpB1c0|QCRJ5YED_KLn*x+5-1^tCqeI=R%Ii6KaW zpihKfVuyBr!1+H04)XoSGb{ie1~%0TmurGh%_*&QF!-7%1;^ORbD|&#g4yMRNi4t| zS%in)wxEdNL$%&7Hihi5WduKp;pc~1c6g(XYPl0?c`ZE0*Y?H6$WANX9ukH$v8hLt z-1}#|18HE(QmK>>_WFx` zB!(2j;c(;xzI^XKXU2nXz%`}~XdTwHZzZFziJ9W6iHe@}C^_|1*c&Z_Mbm!&zT@wZ zAmQc{Z-z~=0llrjz3&6Mw*n=#z|~IxRsGW1A0)bA;+5@PVv6s-Hnbt3S)wNC$|p~+ z5?OrDnNtHN$5$CwP~15BJ%|Ul>C=b%a+t&9fZ0(+K}<9C0*2j})aj1S9OfXr>w znD%b$uK6T3ZYjg=`?_J8yTx{gN5!n=b(nK zg5PAH5bh2}@H-In3~%+FobW8J5!>{rCa#4%1W6Q3wS(Jp+}M4QOoa z^XT*WdUbek{(fJctO6Wxc>cfAYti4&n28ovJ0*O4+(IJx0uTr&L< z>xC=t0{-=NYkB$gz`Jj=Vi++)X6!xf9Ydy0{h}zk9!E5`9nr{EL}S|!jcygo@dOEj zJqQM06{WwIk`M$-EW?!*2yHgY9hy0E7%5#C3nBPz4GK5&0j}zky>L$R!!fcNzoiPC~Z-sJ7c*-!YXV?8yb4eQj~>v!LCJfF)U(Q47aSjMJ#`C_6IS)YCaI$1KfK7 z5ZDEH8!hp#;?QGnZSRcWud7=`Cf~N+zNygDs!N3EckyuzsPS@EtnmoNt9#OMOSqmfG0=KgVPN!w_ zJ3|%tOTdHKv*+V>=SgUO>^bb)`l8t9tFFOmSN%7pEj>ZBg|J0$v?KVp9b#4hb$HdY zYw@2A_hZo?AHX-{b`cUpmu!g4ycU~qIo^3oL-eI24FQRB)=w`JnS7@lR|S;^TNvhm zQ2f8LvZbPAq2FRM)ozJ_89~tMZ*7IH$I#omR+Pf?ROERJ&dl|*RFwtzqM?tP!+leF zN$|@I8fTH5s^};6#qcW`vZoz+oKY;fWU>RPR0opDPT@2|;;pKB#dl6M#e~eRD~e}; zXD7w~bIqv`MO?S0TS6s?ftjhp6h}}bY0M;(pnEhWmvH3A5iA{h$sy=BLTwuitw(3a zY6L^;kW6kPt5@`R8VIxE^_3$LuY|)f9c5*d6s{I?GI9Ejq|i4QN+wBgM6$ktmi;m2!uc5*M;1NJkT=1686D1!qOws6eOAw51MI=)v5-rfQZUll6LF z3~@`?@=zo}a8Fod%8IS&5QR`HttrVu6r55vs)ORvO)wtcoe}#i(Jz%MG+6YI;PWjJ z(|JksD=C?SR4OgRy?5Rrk?$Y5q#WekR1CMNxwzxi{tMqANP(tsO|y8-Cg zVR`ht_4o`@|IAMl5J7E^0F4hqvB( z3(;s)Jk-sbcWfUtjwER#ja{K#*c8}g34Ix{uP0GBP>^LyU<>}b^{-;tWAk8M#k`y# zNFsctYxH`G&~KW=+=m~2SctnTR;+;CK6vLw4~5Y3=^GGx{dIDkM*Vkhh3~=(F&aZb z#N&I=*|`>N?W@rpTn|HUhQk(wEL*m|EHA8{Zpc^@Y(m}4t8iEK8Cd(*NAcPVzYzOu z4kwmh{C+HX&qYu(ZKp?42t2Y4iH(+!XK!+$-T5~(KKuW0F~Xu#8IgTxZu&B|hn8da z3lYGKh+~}|8)ltYE4=;uwJbI;%#payIUTj4R8*W+5CfW?AIV!V>nTVAA>A89A4|*} zSy^x{mve%M+n)6lq!@#4*Cfc4p?jP_&$r1vmf%ND2egcIq2MRG)tq;q5d4ZbM(BDX zBj|M?nd(4F)SUzB{)6~KLx!rB!bYN?t+Y=ZB%#nowY9FgyigZ-VO#8jQ?7;-vO{k+ zpzTfw#}7T2gw_%fMI>d+^r5mb1ZnCpt&gVXW11Ni4sXN0w%5?pvlg+~W*EjU$Z|jD zmJEr6TX^)v6ID!@~B0ssCU@PZXX9jAXCIPEK=Li`KHQdrv( z$_ajJTY~6{^z~Qms*D@oJ4e*V3Kjs5A|zaRz4JxspF*3woP^PeW;_OkFt}HUA5{7q zExWzCUIHcaaVUfgC)@qKz@J5rg4H$|3k+6-%o?^&~} z;ZWJ@grSa-fmdF6MJ%6q;)&vSG8zb{!a~3ko_!giZ(CrSm=4k(3JN{RI|(z(XJV#* zrl^y8QvCMb?s^;RyVfJBMe%CetDHtfpCv=7CYJ$tr@y%P)u z@#dRvV)^prMUT_=?!}&ue;lc8+eMte#-INTo)s%Fk`bOi$$jEkske6%y1UjP6n+P$ zu@|!3Hy9&KUdHTcX&ZuZ4+5GCnxhJ3)pIeY>0ErVayj07@(Dcjqc1^ASm7V$oO&is zx$mn6GL zG9r?VIU35pszwC-x~5ROr4iG_4cSm)(xD)z83BY^>8-UKpr9C zFjA=~_U?TRotx5=hz^R4c4ev(9bzeqGPvILceFJGT zjdx9a7tWt_9`MXfz{@|iUUc@iE$_b(NJ7)Gp*4iJnnPIEVhMh`x(CKrRAmXX>PoS& zu?!2F%3u_ksdh9O8Gqs9401vDdKZY2PdXjxn@TLiLCb599)Rg)+e0Pra=~jHj@ki< zM=Uq@u`LW5@pNAty{!SHMbNc=@hK>V9*JVp%Z|thkFF=hsA5X%ftCu0Q7vn^8=4jr zqYxxs6&8Cztz@=KvOTvv@K|e^f*w=s3Q9gg#h3lu;x*(UU@YU6!yrBtA zb<41@z5(U+jc|D_!@Bj2cI@7`0q$rUJZ2bWms|`@*KpG-H^GF73#MFvlT<(O`}2Wl zCr~xpO88M~#W*<-TiV0c6yG=ZqBCrDNQs#>r9$+(@VI(Zm+}-}rjU&rHzE)Sz~ypb z@#4i8k<%fftwQMA(vuPV0-LcnVvX4MhdlXa_-EvVzFFn7FtuzdT}uMTrgsz+Ik``9)Z z!!U!-$|};wqI*ofAV>ls-E%0BTqLqd6twppPyMKDY(Y_HrW23!8CgamEoMFmv5&m` z_C`e9S3`{=?Fb?53&JRiz^sYG^hcq)dy$fQL_d>6QhoD4v0^Y}*$Ice8g@rjk-8=) z_)&PPp(bk~&q5IVVe>5M?AiRDn=a&A4`cdQU4O&A7wCnk`xZq@)fc=|JCFvxFY z2gTBnpcrl_vKKbH7dE#aHoGt5byy13mgkMw-y>1=K~Wrs6r!c0V<+0$-as(84vEB8 zKx&4=(E}-)TuMxB&$f|*c)T2j(FnVJDtx~AsIEE=H8qXGqwh#RuaF%zzVFFhb;_AIvtgrZ^1ETGD=QA9e2L@Q)~-vL%FjY z-(3C;NdNj8@anIulf3);zzNr5B%m86wswTEt~rFaGGgE6wlLDhKrwG}r3VWeeOQnY z{N~nshcym63xFdCRV{(fyHJ#T=!VwkDYz};IY`1_TdwrBpD>s&4muz=*daGLAQ?6wF2khepcv(GNoNe{9k^6dK92bJ7 zwDlMIXr082!Q9OCo&;ihdJx{$j?~^T5Y%By+6HzcAwf5F^rpIU-h6R20;$r0(utMu z*Ee8d{Yh9<-+;23S}5xNr-|%bYsGD>>|O`&d*1`a=fgc~eGM7*Mj)CJQ+&zWZ(U2D=cC_k!-b0)gz!g(WTXld%g`h~UP-UPLtTFmm#vON1p?DNk;LurHX_&XR#*vp>d@)?)s zJPgS*FzY2qHD&0gWhxJDdQcokzuoM#VXEg<&O@nv@3MWy$Jkyb8aB9M0pfG+=rlEfrrCiLQnbxNLt^6dedw_=A7Js$qOr?9K$I) z48t5clzg$=exe8`lRup@k!bD9Mx4n=9EVI z$=(h`cI`xT?{37qTab*mBW({M?Fb@W7esne5W1rmWya%(QVecSyxy`S*7l;`6ix|2FXzQ4#JwoAo;b{K8dBlJ zx}s1FbQ1N1xTllA7ZU3+BLb;Jfm-H5No55}D=JZ1QI9JBeC+;9l*ZFg)wvesU%Uou zyVl|N8-6d&_pRkOqWqcf0IRKay!Q?(uRrtrSi9K`y)ArZf?Kb0j8 zENb%Qy!$8&Q<-~Y%`B13V$t!(3BA3&!i$Ke6Ov*++OUMdzSx46=ipWmEO#)Rj`~dE zk-iv%ZuiupfpN+6iZZ3fVlh!?OaJvmA|X1JB*;*#HLCMV{aI+p}4Wz%3-tnMTTc$o6(5Tf>k7I_yaYltIQeV)Q^q-hAmUXzn!R zN;_PQev~&fz+c~p^7;n2O1%Sv>n3!>dsB$@CK2n^5X&r!ZD9>DiqjZQAsR@6?x;)F z{0NJF|0A^4J8{|HE)$uoelYjrIRBa3fkX(XUkrTs5x`Y^I8xIMys)`b#PxgTopxxM z=^ErRe#We7A^M#$v-+6Ei#S${_WSZkYlH3Ex8wf%?}w_Y`26QTKjciYM*@n=M?znA z8ZQ-!-$&CriV1X6eN%HDeOd25pX1nhThMR4CDLMf2xdG5H}-54-h=(`Xp~SSJ8hV} z1jz%DKErT90w9&@GCw|i+#;mg+mYJ23qAMUN5&lP6Hh?n&wd7_^wn?Kd77@3v_?eSUg2r@`y2AefCYIQacbhTAf*Wf`BGM+j^)x8}NX2K#6hl?Zgs@lWt!IgRc1KM{?5h?bti~g0ErDc52O@h~ z5ZT*`NasEzX~vftLE08YT8+Z6#b7$)FdYfNmVl(hAxUvaaS4#|qi|A%o_k58x*|g0GkP^3Wka~I z|7f}WUw9X=$V#esEC@s?ZeK7b_^s;~w=avwu3&znPY8XBGJ;>7&w0$8G7j~=%mUyT zG-jF>%EcATdJIM)TSYvF!O-gCZkXBFN7dS!l0ff8q#)sZ~?Kuz(}vxV^L_~2-1-#^mrTwQeqS^ zSJX62n+{XaU`iSclctp({w*Puszy(D6}r2t5DL{m*9%8J==<&;r;lP(4Cb8_4~G%h zvQPZLcC$c_<@@q*wZVP&-G?1Jb_nmk^UpsYM+4o^ z(Hw3Ti8*ppczZUZBc7Rl(+?8$@~7|8G6`xnW$5;X223bC26=BJlKYTM>?^F3Z9>qq z?%kPtc)|VM8pNT&9BX^In8MTl{!Si?^m)iTkVHYMi%m_Y>Bn;`=H>)Js;k^pI1)b6o4%VB`{MCkB3VZdM?_4`t#RoIm5!ut4W zkjzXN1qqliyBu>)smG)Rl~9ziH{ikyo$+p)#{1_laJAybMF;os76N;iiRZ|7UJyzDaF&QOgaU)@=t)HPq^%kB=PuL))e23`}*c$RF>Fr(V_-ix};GU zobkeFyDyLAHfU{a#oc$`Eq-gC`OIhF_wO$N&d`WyF>DQP&1K*v(Qj*DE8=M@u|j_) zlupPc<`80E`OI8=w!xqQ4C(|W68kbDUslw!mZ=`B!*w{27c<2wvgHl>6bgsdfKbek zu{GR=^*uYWwtHhP!AP;`%ULlnn_$GL7TO$B*OBh(5+a_KFY1xd*Pa#n+F@!3_E=wY z+;P}Ca|V3fLDXz)L95-1O=T0Xa@unEOB|^1*x~osQBK8eM|p`=)3)qBs=ZDMKOqfx z{vffnztBf<`sn*A22FD!agR#A;Fr`@1ndE%y=hcdm19b2Et*U}?4dM*ds~G!AI0k< zn@|i{QQ@zv7lS!MJD6jR zHPo)uryPne* zp`^YHC6gUxP3?RzRWQIhXFCAFe8}lPq-_#emHuqqEM>u8c1*f6pO%g!_evBR)^Ek4MpvM zgniJBW@y?Tq|-fcxgw$f`H34OxLi#lC@zg`x!se6XIgf;ZFY+7;ZCwqz{`l-+%&hFh zl(Kd-mbRhV)dHWb1uFG4id~y&LoDG#xYvt##Ge!TQYm`AkPuNLh&m$hx@@Sek}yeA zU<-N?+PDwlu5}22%0O&Rmq@Zy(a>ml^)*^veZFdn$9fQtuk_rs>qY1<{1!c179nXY z6`Q-#8dgUYB+NST*H$*wixuyhh)MIwqk-?e409x*_@vaIIkMv0{#^+_jy~ z2t1x3Jf47XxS(Z+BP#kXbbrj1q`PoExwjoz@x^iC0p)LZT**JnV^EQ;A<7VHmL0xM82E2at$zLJVc*zEiF2sLyA$(Sa@Itqo974Aeyq;ty!`|`H;?aORS=rHIT;{CyV<>k^1(rt(_TdEed}LR=eoZ>TDD zWW4$;v2Q^`8GMH*+KvWT06a`cs2PfI*MI$R3=_rC8%((BKecu!qSjzgf{bkPkzAa? zC`~2q5mSDsbag#5(vlF~49!4VqYh|sZ;B%U8MCZdmoMDWvQ4!?O#*V* zfE-Li4(YH#fz4DiwE|aV2|Sa^Q8KjxrPC{6b5rcUfrd#>YY4WrVdtB#Bhb1Rp*`f) z5``QBN=z?&_9}SomGDaw`tC$|ccZ8tMX#PfD6J!uR?us@5HsmU+&_L534SC{_w&>% zwFz%Mr%i`LO2VPXU{CeJ7VCknw*zX=J}4b~V0N~_Jc#y|TrQ|pRr@U@0Dku6FA0yJ zg^3id2nK)|=fS-E_t?;p#KWt1h$+5-Sf40PnW0GZyI^7chzk_Uj81xbdPIkdIO(L5 z_IoT1Z0ro}Eb!{1sl1dBqZpO0%0jO`|4dBqPJklGLR?E`rsejuy@l31uRW@1n$uuY zL;J@crC{q>G0zhD>I=laVpDee{z@=#lr_J{ahJ zqR5I!BBhWhMa!bj3RFtr_N;hC+ZCnoI7Nn{(l$j*ffVbC+ILK5pEySBr{iQmGoiIb zkf0cB?GdD-DHxQwRx)9TeAYC5N{-}4W@zuk+WF6zkNeFrl_MpCLa87h^f?G zLlx?ZtyACTXm~Ihh7MiRpr_M)wM~ODS%==_1eVJ{APJ*21+zng)Ts-bueHTQiLSD; z(d#x{^!*fLVBegqo|-4_QCK6Ij+^!1OCkot1>wD?mb>7rw!HT|-l?c4^~2%z!!*@? zf}K@&>`9|#OB`BqSKjvGV&1{dlsXt>LxYk|psDo*{Q12S_67H$0V=+@b3LHCfGht9 zOg-bE&PmTUePW+AowqwWu#Z>bP%*zD6SprT_|bafn$nKB<^rbFN0d? zI^=5>H{o;|2HkwqX(W;{1ftyt#sUb$deGC`jZh?ra5N&OAtw?^Xh{v4mWH93fG$BH zu?}`9rjWQGLme?U0QzZ4)Lk;k_k)&AVGb0EGeH5%WeKVzi=xm&jReTqnvN3>IudB? zh@LsPyGbOTpL;6}`G0VZ%yHHbB(#+Tkuy;UsT8 zS%ck-!J$RO6kIjZ1zWHUN@okq&VA6kd*}~j$ZakAd{C<@4guN@j(5J_{*E^!p%HOb*TdvFK)nPiyJY$X5?fP9d1VBG^3H!2EmRP z{`03TXo;^yM|>yB-E}x_;u%ow3RJrcUD433b)rLS$KFH>TH<@KC%#)eP|~1AT2AGP zq3W3Ao0t*%W?-hT2@~8Ua3L{>_a4RFJFuWmo_P*?jS%vLz-O<8U8#XXsexUphTW`& zs(WE-CQMC-nKDEYC{b%VjNG~oQ?r)EHgRmMZFZ7`SeaK(|MsJHl2i)+2e_GqpVoQ$4i79VzX$2G2Av)O0D-v{%?vTBbU? zo#H@+Qoy6h)#Cnsh3z!>BsUBita7&^>29`)vl&TOGcf2)of8 z^&l3fLAk=tiqlX~qTAq0+2BvAD4_u@VIK_9j=6s{m?x=-D|V!08#G0QY^Ui}3TVv3 zt)}5t(r`)|T#5zvK?qnIbva6|XUge!rBCyqo(0?CpjB%35M zm6Om&wY5yOlDFKqUG)D7j=~Y(K2n6$Sj&e z5*CYX%NOhlmhE=fR8{nO3PiTFCYGtsmrh%C!M@xv)GySK&K%pfugLM@7;Om0^lhh1 z!v~8)cB9hSfGTGrDjkjRJ8B^3C5K7s@l4#k5aLD@nv#ZQGm&;E&>eOdHV+hADI|sZ z3Z*b~8&dr|?$W8FC)QD4R5djyW(sOL30aFnp^}aZ4?ZfiJ-cj`MBl!=+B za`73scFMDqd>OxOYsXT`J@A3Q0FzESVBEg-t=1IYwG_9nIfy+y1LOADluX>dOo9$_ zxR^4`ar=%WJOy|daD=TNFa6QlP1TzFZ<42!Y}E#>%ffTYW=LYY*k_QZ7#SvOYD)H> zFau&eNzzL0;W-8qQPV`HSnGSJ7LV9Mzs+vXc#CHR9?F^{XKv=Xb=pri`s{XE?%O8n z%#0b@Au8(cm|25hbq?tMC*&z(3S>-!Uva}PmBJyp3j{Q}vIu$+LMwXZ9z?VtuvLe- zm2OmY&0^fks?B@@p+ln^cseEG*I6+(s6&@2hAG;8sL}i_C|WhG(-bd>Zgw<^maPXITlhLl_}f1ulpT76k%Kp2)vk%CaZW&uYa&W) zez=n!Q7VHqVuXtR#^e$i=$D&={$?Y3DkJnM=+$LJRT)x=1MbRFxZH~90Q!-HUC&Ix zjdnxrr75_rK+8U)JG)@)$CK0S-xf3qTTwo^r(UL3s;VF#q2Ty5J^Z$pzb%$O8tg@< z{ZyR4{tBelZ4=ulYwtO8YJ|7n$V7HSUE7jg%&#P8gHC`&k09f{+u(j^ZYTexug!RG3FOKZ1f6w(L!K;B)5y z3^@heMnWNpg5k_^80oxa-Im#xStdhgsxhRgxH>SD$x$a8a7grH3(#dg{Dyj{iC{?BxRfbo@J<2u6p*YZyCOU{NN>@Oi z_fRH;Qn;hP$D<@oc$+;qYKup zLFnAR%>L{$)p};XQSf>cJ-%SM-+No@D0(diemxHIcx#_-rqPq!hmJ%uI^)ggPVN;U zZbmEg++R#k%q?fc$$Vjw+QFcHot72aEOCv5w!vb*j#wme9HD8=sz_L2WqqbTb=C?g zNJBxJreUA92MD)7k?kn6l|h3I3DX809!PQtB)JxloRDxxLr%pYC!~Bfi5HFsTmH%58*esl-|P_>w{IlC0^nh=%)1z;v}v%D*Vv#g1(`C^`}x^no&zz2&(oXgMtgi0 z+7i3a5#NLK5IjN-mZGg~0yyncjA}*ag=%^-dIT{rtom3{R)EY6AOekqe za6$eAnl-vc9&zN#FY3&QTW;!r0!gvfNpuqKcA0HL7_`~R9nUfbx&4+Aq-8T>6it~P zW=zBl4RJk4A&b;HOzbm&ebFco-5`=%RM~x~c9e!z06V8jw_q ztrv$c7C=R~18SfR=xjrJV<*y`oiO9YV@uJ;>u+{w#7M2oc<`LLn))_ zf#k_Uf-;R5CXm)s(9#K{j1*$&IMUiSq+2#3l}DeuDs9zCdaa=$ zO^H*Cv^ZWfQb-$=EG3P!k;ax}3wq2brlwNxb}zyQwQGf!%Hj!SBALf~7u3V&8oMzi znBiw{dM5%C*8p+rcbll#23b;3VoSnpkHg`J!Rd^_?u75spGi>qD|AN!5m!!-c5biKyMGW3=qZuDe7C1dqc8 zkJE-yyA7o-8$5Our7jgEb{k5lcBpXB!zX zd!ku{IdG~P9ExVeDpfUj?GnnJ3QBAc+hjQo9U(D*NVd!2hy#u|vfWDAD1kj)4>ehf zbhH8;K_}WmPMWENl$q|=1SHCuaB3#pDFg1L0Z$5W=o(~@=UoRnBo&>q2Qn3jIxlWf zWa_+7XDIJ+A^RyaW0QH?q=N0a(6=0As)JHAr1BF|Pmn_3tcYmd*WKd$DU2$I}ykE#RmjU*)`W2w%I*aT#Zcg7tpK zWzLn|W)9evS?;&ZJivSQy>|bdL*c-o8=3yd(ZHJfloQlQWGlKYyDk^m*0)b0=|dXi z7_lrDd0oHr=Z?4H86FB^J`lwQBrkY}0-IfiO{Gk;hE+&5G*THsE-r*R67J+g7;>x^ zax^4jlS{qbP)N|rde#}*!TY(=j6xFXsNYmt3fWr^$y*Akv;?5qTLRDwC~pbOQV+}$ z4@|EIMyU&i%_g4HsPC7g*%77z-PFaP8`Va^wghxD3NzITy+g-in;$|~q6d>x8g7V7 zz}1hztXqVZo|wqUn-%=l@9ixbw~uC0S<`sQv#$*E8-3iz8X_zJ9tNAcdyoiwX)LPf zgDQ$X@DBD6n;k#0{#W$jx!-H7+L|Ux-eoiaMtGU!wq>S}im9X46w%R3G3#lNaau@1tyJxP?mqs?vWTh71P4|WqaiwH@wo)S0K!dmOA)7ExHPeB$nbtqFX za_h7|0aMoidOZn4k_uh1LsuN4Hbm`!E@!vd3iez3@|H8TIY_o!Ftu(mX;)t8Kh<77*6Y^-`(=|Y50Zf23&t~6E0cYh^bZmTp}6fC=pt>5>xA6 zhRqQ{rQLw+w7kiR(ci~Q)?82%75xOgzGWrm6F)c-)U9H9Ytw^W(l8Jc4|lCdi-$c^ z$b1@1q)n3i==VtLRA+yml-!42Psh{Ig&mdLda;gA?wI}^m;BC*_*8)62g)meaQ*g7vB{a&S<7@D`df)=I>MTckd{VoDvdx=Lm;l9 zC#G3(4Pz-0?}y?W2IE>mKmL;A8t}~dvrt`na7nosW~}h%KmQqD_`(TMpb#>ps#L>dgRmisfK~ZU3N6+9Uw)6*smLeY?TUu{rLgHzDOU=?jQ==e;bWf9#^ESpda zS;T&$LK$3DF<>u4ruEFSh!HLZ_2o>-u4g7oi+bR)L9>`dzl)~yDloFkx$XV7S^>X(`T_>WBol^@0;6}-JbiKBwK6E0JAzq*7Z4)DYz0k zoCyQ!VG5|^G#GONF_(mxQ$o~9{iSSem9Wd&7IvBlJAnvoa{@^l4X_>{c_R7pP=2(b zB0K&8Ph?{5 zh9GV-1veL?U|Zh}$>>|pze#0YL(969DKZs9)M+Y8wl<*21~gTNu9!%vKw1S-N`5U_ z+Z7B_Tl+OC%D|e=L-8Pv6ciJ!T-Q;i8}J(j{IpDU+CW)aflpUanx+^+Hk9ZpT)GV~ z9nee%(xx5h?6Q&FW-W_4|2R0Hn|86TBX66?U~6FrfzED4Z6Be~-+^KzGbLrYV$*VN zlqVC5fyBt{HtNLDdYVK{%Y8eyKRc47r*Z=Dk)^fh){q+rdVoNQgkTBPv@VG{yN&iI z?Z-AA0~sCFq`ynL5t>j;+Ga`2w9Q%x8W<( zD#uKW31;*V?bw0ZS(^$5KLlwT!KJ@H;kwgden||)PZ!^hO|Z=yc%?qyj(S; zu@7l;4`?ZEkbHOaV$6&mq&zV&D;DN2XF_!3iIdrV)^sv!nTGXfV8ft}S*C-QiTwdH zDkGgxk*cn@-qN$X@DdCIav}yLEB3{su*)h+JY^{HRib3VZ0%iVR8!lw2GM|2K}rw> zrK^B6qta0XR0I(fIP{J{C?XI_K&gU&g3^0eDWQfck=~1Sga}9pA(Xc^_ndpq zyZ62~?s)J0e6YtJ*&}a!d7U5$;A)ayFmGRo^TkH31Em27{cJ?cZX zJxtB`N_ylp^97UQ=az@%Sbk)3u4;|~z zdFRG6eq+|FoS}C7i3^;RJ?{kUy{&P=p7_TslcgADa?Yr|=#(gzhU_hOBY%GLUuUZ^ z#X}PM+p%j_X%6LU^}C;|Ps@kH4rxqXy}wl9Imlns@LS~qV#rN)X?P@k1QsF;sJZXM zLmdVM4Af_q1JA%%e^nY7he}_(v{*Pa-y&S2!V;>t{$sq3kbq8@DHMyoKQLeVJW5zn zCfnh+U>ZSB!QU3!9s6>#*%rS_TIu*d3^*H$G#@*MfG1cbMyn1Aj{rUBzY-bXMcH2{N7!eGYO6^$HqRC zQMsG1OJ738C5V~cd|BF+F!NS$IhplSe>$JQLci(Dlc(!^q*>nHD9+W^8c-Tl1_XSK z+?-}F!k*z1VaOvsxo9#2 zbIqBY=&Rpe9cR8wP;zr)5bRET9tQTYFV(sa4zaX<=Qh@!J{DxwD*N^xZN4t1b+CT3 zViZAZ=DIm-0})4F2i&iM*E^UHewUNak|)0kQ=>NDrtV}F3>ogG?nz0sk>|wpwbsyW zM;C+!s5>UC<*A5Cub5)ych|Us^CV~xv*glkK%n_d)c0rPMopCrSnA3 z(&+nGOtk3mUYNjZ%WLcmqbAPX=|OUnrMwXm&O951&AxWK-K4YMqLTf57n3^bb0>GR zciet4@$c_-SJM?$VuI*4qo}i2iba;XEG>Er)U5Xv3YM>beqAduFp;tR42Dw?Z4BwJ zaf@6k`TU~yCkOt968m^a!g55-=gBJUg~F&2}@xKRz`#U z%nO0aoGaGJVIxO%v>zBSeL?t-jdKQHIrrGjEmXw|K$IN8KSU1*c3IRZR*t!IIo6Zr z_}m$KJ;t7k(K5W^;XW&idMz)^;Uzq?CSvYNEHr5Q_8x3dSl+7FVUW{JqcTI3f1I4} z^sZIz`{JRoN20FRRc;qLBW@+R5ccgwLJ6uC}A zSq*^uQ!-5Kti#2B5ZTnnEbNaD1AOEOUW_tsvClZ};+V&z_rO*6bR*`H&kv1y3vS(E z%b!3vzju0KoS{svvpBi?qJ#d24H->ZoQCHtSB&m+$qeHH0E5-HB9T&uhqUPJK-6tj zopfBvlFNpb7%FAQP_pRAhX4jma{o1^sa7th<|3n7arE}%ok?oN52X3D7azlpHMP^d zxb6f%*XNEo$9PGQvj>97lCARmkztWN?OxsH06mc9o2a@3)tWp-Qeq+_$%lhy5EWPy zZWceqd*0dLZGHU5Fu70u1LKbeZtIm`w;W#KkQ?8)+}uvF`wM1jaOML&f-QlB3q z{M7E(%KD(18ks6XF^Lwt#jk~GBpnEyRm0`n`STgVv?BmJ)sd&%*ucPG{UT!sl`*C= z9r`|t$CDqHmm*~oNu#;wUVGhn#C&HxPqC$TV%O1!)Me7TG+gG=C0c0;whV1e?C(ze z(W)6+dbu%QGGS}D&sWf4C?8W#`=X7nH$k00a!SYoAWg&RYR4i4ZpBUx+obg%vtCk` z`%Z@nF)mg}fNE#%P;|rc1hhgkV0k$NQrq#*9VeDh{{F+!bl$!IjM1!BNX=_9v~K@r z-I}J)TGB*w5Qp)zBXsPO_2i$|?CsBUdoPt(>?}a_wEDwpe^$?Pk9se^N6n{rI0H;B zz7r91rH7=Tny5Upsq=DBPg>Fm)UG~=^uoURu9&7!s|E-z*f_HF!$5C}Y!E}IVz2|l zZPB@gvkIZ`IRi5UG=~>dgZpv5D2W?#%CR>?Yp4N?jdUxnkQ|N=}2ML&X~Em zxv6@7=&5jeIV*eaWS|aaswdL+*7HgLouI^bl{4pTox>oANt5=hivUB-odc-Xv}PT^nb zn^I|^q1D6>51;iPxLd$adnbt}*&V`)RPv5xJO5y^ftrVPm>mbG;w`q<7kIm-0YPH$ z>VaBi9XWxj+5VAV@_6Ac*zBxfxk6A}`P|=s+I-!LI#pAaAT6=7o=U8v_S+svYyL0* z{kCrNR&-z=`loBv##e)&+q}vvV6v&8(eh$7-!sj23x4lkQ@E3AIEDI4;|c>`BO(xRX-JUCuz3`n=x>-2vX z>8w&$9=tNg0z|gbM6`0G0;3$&io#uZLG0@TWBK4`7oQ*u!0`W3IrKs8Z_u58lm32H2Zm z@?B6!yf4uvtuJJi1}_M8vjbHD7~`ONgN>rQS7lxw`5;bTj>Tq{m$P=oiZ(4`aH)6? zKy=4clWHXRC5GP2)m5s_c$v96cW>Fds*MSY8`|7O&+QiSEV#pOAp8BeDjPm*lnlXI zurGqW8#AyCrsUu(hIam_Gx-=yh)CDW2qMLEE&&QrsCWf^D#UFLct5iyrG#HDW5~rOR4&``x== zPAqfxRPSY~nJ5VOv`>>5NLrf*CY+Hd5FtAxR$|0EgxF}nhJx2$xlK5hX40XQbvedHlz zv|KvR=B4N5Q5$18-o0ZaT1A}y@7nfwM7#VJkQ{49RPv`!cf)mm{P+=ghR@F4URz)P z?B0_$@FR7aYpO4``QD@D?0y2M>z3TxNzUV*^9;ls@uucr1}@XGVemv}S66kwMS7^e zD#gfBQ+#tV@&sow(j4FH-r-MRDVq|;3$RmAPbuz`n8d0k4}BgSycW$bw>e}%6xh>WE zXZ82*-#_S0saH@&m_h{fRpg(w65ROof&zN`!6G(S5|7V{^3=3q>c}J@H~_m1rBpZz zPlnQ5jw0;7i)04LRYqfGdd?!63aul0{=bXc&7vU}%qo}yy#R`XCP$YCiX47KlA@Uqe#jhjr6vN4ydpsX&@aW6Bfbq`g-^6Y+BTP<`#(}8x_ z@(Ytaj)khMi~@wfpQF`qEu@m;j&vy-&0$k`@Rn$Is=PNG8=lvrCTj_;B?yal#L$ZY6I#VoLluwl&nI5KCw2-NbMyJfY7|92Zp5eP`qex1Cu1 zmU)RrTeNas5*cMjMQeP^aVIa;>)n366p{vHiJca`B! z3lvmrbYddegO$JntovbMKIWWr%RKR~zn*m?qn_Zw|0H4(ak`2jm}if%ilOxHW}A-^ zx(4R?z`XNiGJr7h@RGYM#DNZ>(pN^PB5lzHRrx%>-*ZqD+;>ZM64BmB_<7W{v>cl&Yga*F1?`}e2H2Q-^zUMQx@&H?+;)~2voV)kAW_;0I+AX^IDMZTku zMTq|xA~VYIL7XotH&<|HLCdf4l*cG#T$cb=faRzh;7W}bH#^iSW7%$k-nb9F(QHe; z;@Uqp76GBReAaLO0L2e&jL^gdEmmcLW~@XO-6n-)Jg*4AtcI7XaeMMtM#Of!1O>Ys zX*&`86z^Ee06~QXJ54nPp|++%T**{VDHOIEn8K12326#w8DC(2dm$aejn1e|^9+JAY$0i`ABAUO( z_>nd%aVfHUmvAHo>%LUcBD1dr`dcj*d|mEL90lGr>cCTgT;aob0qm{r@BYBs<~&^E zViUo*il5kH2RUiNlbQCdQI84q))$O#5Ca!taxHCNPGLQRX$l0K$H;&bPSs(widjp6 z#1B^HQ#-%na4J?-IYY#8cb}*qO|M+meI@JnMU8G zAn{)NhYkxjTEcUmfXIBLZl#f~2T)E8OgYB`N?ewfg~y30DJkYWr>^m{933FICxI-) z&4w#QwLfLnI?rQRyEqJ;pL!B12HDXVF2||{xwUSo+fCxZkC9CB>o4`SwWADhAVTgY z*3HWwY4ceL;E_fvm^khhl=VvDfM39N(sh5Am<0Is0_ywdF4UPK5Qs!XQjcNH9jE|Kzv`-1SF?+#J-{HAx)=)iK78+}x^(>yAQ@7Gu=GPdelE6Z1cChk80bcaM zlFum*SrcmKhk2;u%|;$$7ft;T*k+&$zzvgTU2?sAGE)KA^kR@_nBv|8NrM?60hWXk zUr=x;{J5;gPu8NJmQ~}R!81!`eeA2^?t~EmdMeIqk}9*avnU{iK<(2O`rR~a0Yy>a z{Q_}@lBPT@v2gmNo?so#E7xCRd^hqT=XW(_*+)$TPuQevd-asR(j7DSymq`?%EhqJf1+d+yzb7r6BBo2MRs#TQX)!&(7>oMP?rpUxvb%`Vgn36XMfhvmk$ko> zuNtzoF%JiFPdzZ`x9N$@Ws|aIZ3A4l6Tqpj(>CR|x3jxrVsb&XO}O|12whxJ#mI9z z1qb#om;-w&C@qG-B6Syv(l@Chuy-iFEngubJ(DW27$ls_{#*q%8AmbXci=)S@hBK?t{(`r%hO;rA?kq;DU8IC}y3;4Yf9 ziAhXW3A}@@GEAqgQ93=e3=el=_wqZzmgQh*DYAfWZ$a;FZ5}@}ub~TvuEhUngPcdCoxxp6l0bJ+06L={c?%$8`1o8+= zFCP9-SZ33QFcOQSS-**yD6t3`@*s|RBt2&rm6Ydxv9RHFePtNTo^QRoz?!QZPR$wo zbY;1AS>cs0_Nmfo5Bij>j11+It{{1t0KoV1^+BT1xkpQW<8`%p3#|+N`##`gH7~*f z4o%)I)~_+9{U!^XtTm}LQur`H$(BwRt)Mp2-G4N2`_gQr-{e#3W}6B;A$MZ=5-8)| zT9g_$=PzO-=vJy38<+}&X)?bi)C_(19h^C(;m zMJwJE{zzC1X4UcwCD$0U3v4u7(JZ);Udj-R*zap19A?S{)`;0V>;>~_e%xU5uuiT9 zvxL~eGETIDjO+~jU{&r`2Vq0gKY1A^&TAq55+;NDEm#hSU?4Z)Z^!?_@%Xcle>0o( sPwfL?`~Q^}^#6_d=cHdiN!LC#`+eQ%%Dvo83h;O1x~59eRa5`}02+Tg#{d8T literal 0 HcmV?d00001 diff --git a/metrics_vs_num_of_clients.png b/metrics_vs_num_of_clients.png new file mode 100644 index 0000000000000000000000000000000000000000..53ecab349080bd5434ebca8e0f194891a59b7a2e GIT binary patch literal 99208 zcmeFYg;$l)yDf~Mgh+R6K)MBKklvJZcY}0ygVd&_Lqb3rDd`RgQMy6cG>Fojev99^ z=Zt&D`4_%Dh6B*e_I=m;toh72pShw`lw>fTlRig4K){fbg{mPSJOke%+M^Yb9J>;lCw#j&GB=-e1(**4D;alY8hB`EMj0V`151 zUwXwjFNOBwFNLI!LSFAivt77|Um(Av{_j`GW|h|y*nhtm4{DG;{Pzz-QMLd75C3Zo z%$Cpp%=M3qCNw^!*ysf*OVF8kU%{-g=6 z++D(hv_u*B`E_1fjk1c~9Z6=VjbvVIeNSeHp*gy|Odk{dXE0eLUoyPh=5?sEz#jNx zo&ZzfT-OpQ)1N3elbK22dbg^5N!ojvY? z_e-t!v00`_Kr4T==)XI4O*LWPvzp&NNGO;oUH=~Rm9qI?UWnaR6)R-ou3h?F9hn*q zZ_7U1UmBBem;|T1GBygl-RC0_^0ZGG>-lb!Os}X>wEg=xlg;Gk#GCU!KcWd(piW+g zE1HnF!34^=Hby9>-Qh~do)^A;4!z6%VuRhu>6qw`4=*L{eJKQ8-@kvqIY=3V?-z{c zJ#EOJE9ko+qs&kFEx0HlA>n7Pu>Ql<29{hlzsu*b7T2w4_urFJ7!mn6hdVnZd;KI_ z?}nC|oTQveKWcx`EArxmne~Hf(1dI#blzX+Ga0tl3p(oj=ZBGgH* zgqjcj~vx+m~4oi)3XUF;Z`Q?y^(_nliHCTFjI;r#Cd~Km&z15}Q zyiYz4?w%n+-9dMju;0by!B{3&$&DAhGvKxRu1cADNxc8*2wxJ1sl<$F_)x=FtFhry z)k6D~;s!`?iE>_GwUwydY~|i(9276V_eyI1^q{U9e*5%C6C~r(y)DITdWKF26YiiS zH^8HN``JsCe6rDD>D%(MVc_)^(M%>$Dh`cwDO|D2phd$R?N)$PpFh)XvA&E|uU=NK z!PfG)<;oC~lv{Sa6$!h`LnEt}U_^G)*0~@Oj-zzJnelF~HynL0!&G@(F0{4XcBY(H z7z-l2ztoftuKev-uJAs+gb#Q&<;R-s-Yy+6>mM*7g0$5}9Z3^~GVwbM#-ZN8WD8wU=2*$|{7#|DzEjNL5SJ3jOhAxn7|9TmM2tiCbNxHdNzh}(WIIYqtU4I-B7g6K z12GJf0_tl@N+dmQASWve%Nm7DNe}i#Vriy?@hn~csqWI)p(K6DugWQ$52dl0Dps@= zl!T5mC7>r3_BvrgkS;v!gYIuUQgD=NpXJbAJRKx|@y30Bk!SII@mmz0|o;snn^1(}M^Np+@V#m^X#rCbhR$oim6Ur@||RF8xnY=wE#_R$u<~tBeGQ&umE$H!GnusC#Lim zo0Qq7SnsY~u}N0lI;fNYty~gRv4u&a^h5M^4RY__W1swE!WsM=*a^+5&_pNKsg2f^ z5eEcyBD^%4(}NTPA4*_?j~tg0fk8GrRiaEoo;cx(osV0?Ej62UI90EZ;rP&lLRmUU zUB^?0DUqV?$GSozouc4oX!;SAZ_ulJzbkPoiiFobgA_p3oH1KG{amFk*W|BAoGk?K zur8kX=gy0enqO5auC?_AhF``8pu^EF==?8>)rsDwvD%QU@&qXpQ;DTe7qf2&^?1SN ze2>?q!Yt``3il&-#`3gtMEMUsD`cwqp6{Kn;FG_>{Ea)_6DCf7m*$*=>~-)Kh+dj~)~9_`+f{HOKaYjll#qY2Sc<_m{RG`HfZ^I9IKVs@La3H%9kn zDrf>Ae^IV}!P|XKSKxY$_GO*=3Tsak=6a4fG|M&inj^+079${?%KnG2c8==MFT%xo z!#JO}iu*;P#-40R1XOGtO5BGnUELjLnskrjX3MX2n2L^mco|BHAAN9HmWmcCqnBBb z72n~1?P?wnGS&o2bg#);Pn)V7Pla;T4aRCkw}-uHD}mo`vy+GH@j4!(aa&x-c{O;t zTvL9evHL+AG=fXlP#ZXAwRb20!IWH{{{`(td4 z2OmPrSw{zt+9ZYFpQ=oo^CM?s9er$)8fOaG+3+&EY3mn(!Ou$a0!a%`^wbkf;WLZE z#lO=F{O-gcD&-nX=Q`P6^|Ok?d{MW?0~z@LNp^&_B6S6|d&zg5g5FbcH@`6u7gHAy z{<~|t2WK|dYn?CV5=Ye!k>ZW_CqWXn5o<{c5s^NCoFpg%NBlo$d;YAGmq>&^S8arI z!(cKwHi}{NMst%J>+1&Mp_rWY$*NeZ^U;~!+s^Tk7xa5x{>Y`~KT&4tU+@2FQGbT9 zc15C^l7rlpuaqNLc8|NnruJF3c}V$-QuiwE4eHOaeAa#Q(#skwonbuKeYJ5{U}D-2 zH8P@oVRwoG%&EYbD}@m^inja1H$=A_i@J-~m7Z00BR(%LSpFJci5!y+B{L+9FzKFk zf51lx4yD7KF0MIU`$U*|dwEz95ko?siTG*wlG@{`bE{t4puFJD zF4wFm7VJQ%j@p;;>~(lv9XjSZnk`UE`V4mXi~yHeTw~~}YFsxMQ-=IkA|4Kdg0;zd zxBbeIOi{wvlRP$3nqBKYIULMVy#inTE@gWp2!4)`mlle(hAocxx~_(7>D|r6eg!EF ze@M?xo9ouwbK=d<-Sx$xC|Kopx++x$0x?T{x8j!3(yXMVwalR7G!YHg==8tVFn7N?THE6)*QqTy7G7(E77`FpcB=nP zzxu`584JuFm$21FnuU&xUA6`lsH^Eguk z@Ax106P2%F<2ZcWotGpz7Wx+avaxK2h(Dp1x8|RXjS&YnA&$S-E;p?7AO@41ONAl7 z5H}A?L~qAv4g{yueO=7MJf2`YT$J^@v^GPJenhF9@vgTU#|K_j9 zG#u}0=Yh9}Nv>SKfjlbD!4bX@!xLkfFG&I^=Ff}YXY9_%WS?E;hbY}{^}Pte%P7Gwu8=eKXX8izq3)usnDr^9iWD) zJB(N4&g9+K9D-FiHDPcUi=FVR%GxnPb_1Q67VEtA(^^YT@@3*7$NP&Vr`?Ap@8gq` z=(85(+&7$`<&pd?)s8gd>^m3nYuhs&f+f1_q#mM>VW@haU-*xtAhMCXE$j6Gz>%!JhJWIk5^sXS2s7L zfZ`T9Uhd8OSl!vNLPbO4oPWMFH*C;gt0~#){yTPQrV}n1iAh3f+~R8K!5Mk@?d*1{ zvuV0aoh(;0$gw@>XtihWfm$k>_&$%Q->mb*YZt{7Gxm0!XlH;TzK#0l(~z-kL6-TGD*Px;cZ=}eGw6e&z|d?2MT!|RPL<}t#+*WaaT(=9J+!s z*}E7{Wr0@&RfdmAv77=SHth*CJnlh8^dWtLdHFTy`}a2IlPev5ahDE@^>WLRmyWFo z_g5PUdx3wuwr>rABuFHqQ8%&i~8!q$Om6o0V?7Cd`zxG-sv1nIa24YC>~ol2n@`~3$Kr*T&00g%suXX^T8KydY<5-TZp3}>wKNGwbojV+tdR{7G|9vw z5R^q?C%bgSv4NX61S(|$WoKTrlc5K!+!i|G{_I@}R^c>^cbwYjsC8C>DL$Ie0mc|H z|6Y}QYC<6F0;zyr;dFj2F!m%S&RT}FhZ{a_V#V|P2h2PX=LZY~WzL*lbI;^UHr@F`8GuB>@tHbz~opa{r zB)*8NFtIQ%Wh(Fey*0R!%kqV47M8Ba>1^; zSqB7$^9h_4-R(w_XHThL{XA@Px0jj@m5vFPf;3zHNV5*egMI2gq-Ta1iM!KL<14sj z&3w_tK4fYOp}GR zuVoicwrC> zz1uDR&RsU6=;ZZBxkvs}F=@B5^8OGK`D=WRR1^Z#6Qorx@kl+WsP7wiRw}M4&dWP( zp&_$H)?q6>@iiz#PIv}$=w-sV|5P^8Y_A52ztij{Vtty8`A|Lepq0h%z|&u}LoFr` z0&5-b)3|zO52q%hXVRz`=!(fRtKY@FMMtr{Th=N?MM$-=@3|d(2pbhS9Yav(`3dhT zf}<*BRer~d7{i1V@KaE^Ll~YABbYph&V}EP;wuFnwQ-J3nLV`iaeKUAHC>Fp4vb-v zH|adg>LR=_zY|e3MptL!hWMoQAByTsGEF^4Zgd3Kxo zYLVk?75;ILwH3;2umD>nkTQdvOta(Nk4qc*4&=0A)WSq_<#SRK!Gh~snfuWD?z>C- zhYstUC$rNIjoDp^8+B((QhvQ}Iufssd8kXRI7YA_2Hu!egUI@OobvXnS~<90~Br1d>8pVsS}FepZ8!cJv{J_o!^{qnW*@ zY!H7o2=<2`n1$HZ-&Re6Lj_JyY*c#8>&XkvVeQ|ZVbDQ;WYB9gAY<+g{RsAFOw)Rh zEV3<2ETwZu7&-i|*BF@BSQTrnDD$OZyc==z1B}i4A0thtmwaA@kH|nQtC;0s;3=sQ?4~wFOr*6Q&OBPkf!CWfU%B*O7-d5l_4|-;kbeIv(%QyO zYb1Wemz6i3vexIX#1c{$r8^>ZFFLyP%O+h7fr5tiMlaP2Ng5#UjFW^c(8v4j#TT<4vQ<6^`L;`GVoQL*`*r9M75g}+JO*wYr6+c{}gu4Kv_D~m3w~WXWK@cal zYE>*8iIDkIGvUV^R#ow^=hEG*Up%e%#gV_ev-P-hLpRsnCqAL|msW?;; zWhEtuEjHmMMR}rt)BByVw{gOmC)_4G<8355rjB=j`?~4oz#RgFB$lH937etQdR3S7 zdkr@;Ma~4Noi&Y0@hu8&>HEe#XN9gYn29B;e;VrTB!o^g_>A@pno zs{RUTWC$8p>hy6W;>dW<$5k7cnSRZjiFB%T6ZL(d@VW0anQJ3zWqk{Ic zgwiMP%SicK8ZMgbL@-cpg^iT|Fn)`ojK?Cr;!yNW+ZxiNJeAm4aP0HAo9qXh{2Js zwJde((~1?Dren*pueve#eJ;!O#}wL+a8fFxm@t>N*D$|`rD$_bDCp5(qd@wLD90CL zyjzC*uruJcS1}=;-GP)qkjVV2W5QoPn~`g>L?(v_eB@6qci)bmsee~g|203H=F3`e zFTfs8IbY0^a|gryW~O%aW?UfBdH|*-n<=B5Uy0LDT`6!loolBk9M*_W_;#ZB$p)89 z&O1!ij9tcW&m1t^pBJ##7GWYzixUU;ilr1OnN3TUhAQND_M1hx^i0;j^GDW$e3mLR zw{(Y8`jSCXAuA4Qe8YpW3C>Z+14Ve8y&)C+e~uwnrTQ;WQ01f?v%1CKnlHuvxDN_1e3B#`8&>RHZ@q1jNB|Gb1n$=W(`jGxx>}daFof zrRM(WWY8-j8AaZ*PZq1dp)!1cpIO*`&OZgMY2*^iE-1ky@b&vKc>7QOmwh5cIRSCm z<~2hpo&}Veg(SDE#op8fKh+9*&xp-CZF7)u%=iUnjpWH*^4vpK1qHJz!#B|4cM4?^ z0uP<$FGqs#Caxj<;TdUU=cFPPG&1pFZScFRkRJNYm|pV{x6_wag>2`f@g&xp1vm~_ zZQ3!L9HO~4g*Oudv!9N`rPF^iw{7Pr7GIksdi|J1_0^~H%0NEEYnmAEjS8|qj4b|u z^?Zlkn*U>9Jd8?a7`8iWw~Ns85bui-YO#$iW&Yz3yJh&O!zA2t${;ZjLRlH|IxEN% zG%FmN8cLgrzJmPtcrkJ$7h!t)vO(%{^Y!(skQ>sS+v1(g;w`RlOycYx>vtrH0kiG} z8&{DVcqb{+m+g4xM1ne%Bw=C!!9%>z2U8U^4>G}LG!_3itP?&(?~)VMhcG@xpxPTJ zkN4UZ_%VSQ!-&XHjGb?j)rZBRSa_;;Tjl&>`dygrURdk_r;eR*evVC6C=Q%+l=7Iw zZfe;f#QM!9)we*avObcWI2f%|N>#&=P_Nb5l(J~YCErgyn0?U(40`ra>RWY7M)v79 z25AIAgzQZl;lIVslkqEo5uhQWn8MLXpSXDYGW$Rs-XawLR;g>^(% zekw|A>BiCp6mB!wD07v`T|d z2JxkjITVMp=r$XWuqA3-dSp|s84;AgM5EhUWH`9=8Tp;_Y7H-GA3kP#v(DSzXeOOq z1j(W(=vQJo8OZ{%5JWAy#YO^Z+9Sa$@T|14DPTd$K`Tr!^-evf56e5GEmQY+@yr4sE?ZL?*ZZ!)4RIKVQy;-oKdmDJvfw?;YD| zre_5eFjsup@l=|()@kh<21K4eEgvU*qvRS5Cq77r7Ln$dAM=w-NV3Zt?HIGZ&X{`$ zg9D600;Q1WTATYShlUwpD#ke}-uw+IJu#aMGctFtb9NJQyi_obfdXHzr%JUALvSrq z@z%gjv@c~|n~eo=V`vW{RDYE?R*BkOE5C4vdx4kK=&G|)F*sqD+28BR-r3boq$YfW zwV0G82G_h^|a`f?=Nc<_W`_W5Z64mS3 zT(Enb-}Ly9T@V065M|w;e8-$0Q%@a5&rDvpc!m>ovD-&rIHZ*x05m`EdN%1!kTv>h zgUipsYrateMfj`HCmf8yZYr$x;d711B7Dlb%Qe{H4Ldp3#`#r~#dtE$23bD8 z6gLbV8+-E_Yln9CX`f&JHHsj^F-Zpdx&=BL;t?dpe7D=7DkZ zyv6`*6rGbl3ezN8KVK1c!E+%$t+=>u?J0j~31iyZs-kJNmS57p<=3YqBM1r#lC04B z^5T0Eo%&dR9lZEQ>PN>PlPAA}i`vlf8IM-()6%em&i7JHfx{J%E#Ove*`{9fwkVA! z?~PBLUi2Ggoyku15~YD9U^_*CfpG=hMl!8j!EodskaFnr8)E}=`g|}3Le_tb7X)DD z1wCB*1>FLR;RTQFGzTyPr90BW#E=-+Y-Y_~hejz&{k&jSMzMx_(M&Gr&iD&nWA6tH zo@qM*HofT@n<@J99BX*y@5_j-Q8ov!>yxdugSiX3skzBcK6}c%CNSE6>9o>*C_J}# z$W`!Kik_c;p2K#UQS##N0tN*IMa0icu8KJ{V9i}N!!EuL*)O-wjMtb-o_EkGWQ>0h z^stq@zd6UK(5~hc8JK(!HT#C@k=Fv!6H6-j63;X-4UTlz+B%%qBvQI?P7kqE;=#bX zqRz&$+4sDB?dzBbm;X@@3bK=vlVmhL(+kZCEgs-@^%q|%#Vapi0qe=`YBO1R+U1qc z$z}wFurKjSXMo*|3-aSc=^+A67-;@`vWQEgLTiKr+{I-)8Cb89oBK7sjg5`Mcq~50 zU#LyODJ5VCiEM0a>_L9D9`ou2gHm=)E5*d>c?{93DkGG`FW^!mo**F;AFOoPP3>^| zo>@x*-wxy8;Gq1)l_FB06QiWXpxD&dHHZML9VC?AaWY+M8wV7{=NAXw9m_}-y-j_= zq+YBsXmWR-I& zg1voc6fVhRv0_E%&iME^@EmYbnO=iT3lBbvmO?-ye>}j~MQ1Q@cTR}1&WrsCY~L9t zcHl_veT8PaJe)kbxfOgPmqGh{@j;3ZAK7oSp$L|$GEp# zBFc9dmNi>ooxYRTGV4wE|lIf+Q%-BriVT$#E|sujq@Alt3^ zBkW`c-5p0BivXpNCmK{Wd|?^BOA-8*5Y26x5dyxhWANvNZ4BVAnpKpJ>WBVLe9?}P-oV1^0KthB5J`Fcs< z_M^m#nDRhlndg&^h-h43{$gSB_H;~i)X`3|1i{wK3P@2EIJOvCqB7suq@4@#&Y`p7 zMuN~hDr&`#(Y6>+ER&}}_L~Ju9ez!UW0IT1TBp)a zGjd~8v0F&D5opsx?qC_OEpq=2XE8Zhch{XJz+ivTiZ1~R^BpFX{T^(?nn5oKg;rq* zY}sNG;y;-%(-S2`HQk|9y)(lU^Tj%mq(V`Ee(3A*7x0w{zT=*) zjIhLvdKU#7axqm!lt;(Qkmx9;bMvBg+x}U5EwFoKzC($ldL@Nep!W;gXRGEajBD$u z^dRKK%S;8;2h|~b^*L*bHF~?2!KNKuK`BV(u~wM;RkB!odNRTGm6RsyoKkns51lQ zf>0AVU;Zr}(#gcZS-{fHHT%{ImRzL8cKMqx_(oulZcg4z z9NaB<`%};TMLICz(DwN>jtvGdGkysIUI*FS*5hJH^oq<;cnoQPEe?--I}Jw3iep^URW zzP^j~_WU^DB@hAdP`Al3=LIo`nC)yO6A1q$|6Ta{W3?x=NVQNJN8}X;hl-&>@`!$@ z1HG#>=s!tR;)oqF;`l7{Pl(Y%d#ElC;pqUE{utsH@P~|wW}_C+{3qv`{TNj0hr^8r z5-4Ap55y({Uw;T>c#1%{tS;czv&^8Su73xNT9l;YNG;F*)Qmt!*>&qIlGqIe(+yE! z*(gE?H2InqkJ&u{uE!|KN_@=zU_#L1b(jl+jN!L@;06+tbN-0;MPO`!hO9LQLXym2 zT9(@4wj(|N1curp5^xh1gYXmd{jlmjUOWL7cgHTDQ)!Rl$I#t5JFaSM4H8EZw&xdW z`OMcvEB!B{@qnb$$_ak?@+EV7&SPn2OO|Vt(VF&#C4ups^X1NubY;+q@zze;+uNu6 zN$t53zn&f+tNts%!@dp?Q2tJAz{@x^OOqAB@*wLm6ZGp6T+B-l_*v?7u1l1q}5~ zXKG6(TrV4(;6{(ZQk!4RwZoT@;liCadn}-+67E3nQ3KQfBCiOA`kJ6n{oV#SMcZeK z;4{m@zWt{-EjpMr%S*$bQ=cwa<&~ie&^Knn7#lgjdyy-mOrI^je}=wya?|Fyp9FqY z9ssX~&LtQMt@yoADviLRtkUwAK%55wo*zZ>>F$qZ4_+;V|M?IQ3w94BNO=s8YB5ap z{h6ySl1-$34TiL+lw6>aGX>m=vjkmMyPtrhW$kpOt~y9ct~XRd@%fH!$I{q7di(jw z1J1DpN)|`t5nU$hZPd@bvk{c@M1%*HXu(QEzgSX$ZmK|nRpUrkMdZ^#2}(7OfTrGg zc?GgW1AT2Sv1JIL-=~17oBYYts&kR*fW^0{6+K|W8spZcMPG-JnI^ypVNdG=MbtZxg+1s_=a7!@Fa|IP2 zLt_lx)JbDEEO(`g1I;0xLbzPX(WUO@XiYLEA?S2FZgVJ666~{TrEliuAHfs*jMbP~ z2?{>()VV2A6)BASqfy}fxwZ$kBD2-vW)cD1A9FvS!VKi5`g1O0UXY@PRR?}{4TR+mv zPa6Sa+w%eLL|O9<^2$FdjY7r{O0EO}4ahc#y(xdDSDI;Xl1A$oWO8aCOY$$Vg#>nhrlmk6=v|jr+9P?>}bXbOrTBT8k z-j{dbvN1zcF9Zu1W1Ek7`87_k;Izm4f17yd5=$J62?Px|pCf@BjTR0|DRi9U*`~Ev z|NFO3QpLcqe_EEnWH0O8@p^wb7h$0(@rXp|#b}Puz&@0&&f%k^R0w*dPOZcv_XNqJ zn49=oNbLJHV`vhhbR)0huhIh18#c?WWps9;q*l8tFbloQ)0fZ;ARM-r<>2RT`eXXJF{5veau; z$pmQI%ofak38&||HnGh|9=o(heY5PfH_e2GfsqQ*29bWOq$A!=dXXHxXHl?%ldEHM z4~1IyI^T!8YwuFmTMb{VsWhfeC<_V-n@C!yF36(`5n-V0TS=bf~TNI)CJ!A zF0}i61u{ah)$5QQgm>ay795s&rK3o>t*L+pYjNM3{_focUgaq`hM_@yu~9W%iq;zG7v?4MaY6|DM=tiQxLcneuop3IYK9WZ`yZUiN~_db65 zQ7b-2fmEUsv1>p|^hPT{zM_A)al|y0kv3lH;rZso>+lcWvF}XJFqUd)8~YXjZd5VX zf6;FuWqHN@v$l>v`ZsJhz|=JV_G@hl-f{sE5{$bDQi(W%gzGURvozWaiKx=Kk z$yUJXacXxRmkdB$c@tDx`HA=0u4?mhR5+Vp#8QJDgL<)oYAP8;=wJa-Ge8O6$gk#M zKiz}G5%o19yoD9$255)mx=+InNh=4Rmw)X!NCngH8iGLMkFVjoZ##r zO{yAYr&@cqzobn!BUP`M`P%X`K(Yy6cqA63R?LWX{itbdtEsQRBXRm-7B>uVY3H$v zrb6ekE|oUlvO|8c{2R?-dQyGg-?t<~vD{3ri@tDKk9D_w>?hOfu=)G(n8Qtn`7`70 z?`{ApHP4zGhfuV3r>Zvi!|+TL$|jUP7cSD{;PmH}cpVOH`+WUof|~qcl?u>c%y@@l zFRM-BEn>?onh_%cd|)Eab4jK%P%H$UoA@)7a|jfiL-Iu&SD3OsQgswTic!0F zKIY(Pka_2uB<*7}3+ zo@e}e(dXH8r;*%|^|;;OB^^p6Ck@S2mtGb+DF{|r}P%C2Va$sY^Dpw zP5b{6x`^yAr{RU#wLuSl?Qq~NEwmzxRV9kjdqWK1)qnHu&BA_GhA=Nqq=6gUTY zlg&2*l_oMz+H4M9w78p8x893Ky;iHxcRIc}Pn|cJQxE>`lV4{RF11NoMJY;67MM{i z_yo__`|Va^&S%*;!Pc;9JRF=%bTrJg1}^&2(XJOhC-T?Z4rlDRiM;>_|1<|}CFyNl z_V=Nz=TfcxE575ciQ&b2)R&CI$TPX3J3kUVDyH`}GQYlEuD+2kXI(gBCj|mxqDrc( z+(3S%Q%*xT+&~_5hvPJQn+;O1Le;p0(M(-7MS+JQN$ggRwM2gr06L)xclhbgj%3hc zRU4}|#mrW+q%Qi?Q{)=?62$=mvOC$+;cDMU>H+bwxmR;B1x!4e5}<(PR5pq0^|*+K zkk$7(wXgcGj+MxT)C0}YA1`re9d-8i{zuEDL(#XgCZD_+j+6D4eZQmh%l|Rtrlu}% z<`{Y2lJ*IDPoK2Wm*h(Xny$gOjvqt-2%}C;Cfb;~QkMeh`)y~MVwk$N=bwO%vG(-p z_Q!VKyYKz?e$)G`&tgigpH~%tf4HFM-ZWh4>Yl5f8IC5Ioi|9vzYTARo z!-Wp-&R<>rs_nQ8X}%rEZ{LU6uVCY-{z6f(&*n0$B44R?++j9UvUR^6J}AD+GRKf> zZ3(<@)q8tCUuzByuc-o9+nnr`khFxuJjo-WN$P;MrT;N-=hO@tbPd0vG`Y%WVu` zi%)Nzd;OO(PX`pCl=4rx=AjbRNS`kNboSp-;i?(Y76<2VPq|Bct=WMZhrKX_32XcuB?h5XVn*Zj2%6zchBYeS~)IP&-2 zO=JU^Y*muwqr%KK`4}}M0uI#(w0jn@l5mQ7JkZI1G}4RDW$m|}b%TwHK1wcnaD?ws z`O1|}X~fM{8v~*!WdU?1j>x<9Z&9z^wiO=F?~(I6i{UaTv4Rek5*&=MVXl&xBj6^@ z>$JjZH&>;ZY61HA#&1LH{-4(!ZJP-p#^0A?cD_w9Bu?L#cTL~aHMJ^%N0}fYDPgf3 z8-=_2@9pIF5MAn``!uKlmk2o+e=ql*r(sF|C3f?Jgv8#(O#^$lxxNYLg^kRxJ zXcWCA_zm2|vx8-QK<(H89;N05-pE1Pg*^W<0-clyM8Po7FVh=&!hXe=LyvNrh8LWQ zNP-96jx=|GfPJ~M8?cv|R13mL&&9DWk2eMjS>-L3r1{%^dkVVmescV1?D=;-|AB&- zm=Rdn$+09{AHa~DVhHxmnNHCHcf@1yM~n3b5De2Bu)mrr-TDLqA;=o5ALo)pyo_x4j{Uytch;>) z(G)N~?ew8xVTeuY>LjCY8qJ<=vCOy zfWzf{NL+4p?d6PMK-nHeH8iS!0tBiEkwaz2|6FygdN^F7v*o!w-D}Pusth&FjEBZ_TL3Nd2D3|1Ha6Q8vMJf~4sy zI5yhgX3qVhP#5s9bin0^oA6SB2*o6L#$IFA|NI&xTtOI+jd>HY)Wb;pAoYOOJwzy- zo5vf8y`+W4MbfuaD9E`a_b1T?s6fnfBrJ*3fg|KVA6pO^VqSGoNmvx zl|o(CXQl@0OfNJ%I;=-pliJ*UI%1#~laEaPk;&0H8F!?_i7KcgRRz0MB?w*OS3~1- z=%XOPO3(A>ihXF*iWSPFKXWfWxdEYG+s_qX=MAV<0q?9#^;NU;+WSR9=GTg4YDJao zG8Rkms9MdvvP-~Y`s{!0#o$?@l#`_LvtbMpsEQcYywPEkiV8&CZotD>Zn^Z-i29+@ z)ws0;-S)m6Tz&>`;-66S%`1V1ePerdV`GizSXGp_|29KQZ~6Chz&N621$ zF!tfrkQ+6TtGj!ql_XiCkkzA+T&+cs0o<5UFaVR+UOT-44a3#{k_T;von|g_ik#2& zFv-rXKuc*nl09>@kV}|rIA@|*bIUie;^|Oc^6BgC)i8<#8+Qm8Nt$Z2;5ew<<-xKg z@MJjITfZy~psIu-V{C#sgf@$$O^pOT^A^ZHl>RUM7oy7TeY6^)H}N)fY3MLt7@6T| zv4n)gG_&^NY1EnL*3gp$ZmS4e?w7W^g_wq)O=c2u3UFy$33eWqnEW2HtE;s4=XE_E zLX69&)$UIZ)XGh{1ZrF}vsY?$6)^_r^e5KUs&rZ8^0*R4ix{F?0)p7mgm%VYkxdEH zhr%kjzP@{gv~?x_5t$<44)igPSdq)tVD%l*L)hmgmU+%N%UB^ZEZ*UPhOx!xaz5sc0z*bxZkcFyzgI zvVni~w_IYe)uW>JL?RGtv#gsDlES911rq*M%nRVaS;Z|lw_B`)`{DAvta6WdNS)o9 zlPe&D9%MLpI$L~}13w=rjJ-2x^$TYpDcRw@EUi}guH%wo0}w_3UoDX-wr5d)jcXOQ zuG$0dV6B^1HJ_tV-Ro2LVBCC46zTUY>1BU-1TR(MUe~EB{f|l&2<3ZaJT$PNzV*l+ zc?qTOu3`>sYniM-M^S5GbEaZf`4n7UU&HDL&J0b%0cg>IyVaDh#{#E@koV*hEu+e&=H^VDb7AwJNS%u|p-T2GYCy5^yN#pjPKf?YlO|>;y zo^KvbuT!?XO-~+n5Q#ZEmYe#VoMqURG#Qum{eeJ!>+gXBa}Wl*Kyx$b@cQL>3&TLK^R1NXYSnkHa=d))*=lb@6>fsw>*O+`%U#Wd75YR~d+2R%emS45`#t31MWf89BpTQrKjD zVQT7nl-D(b7zHpSLV>v-x>vc-uiHX0uIH|bsyOic?JJ{p6%>claobo&lc#-Ip^Yp( zJ#E0e-gA?DCKVrZ+j1IS_3w5=p~dwoxHV3xD{I+Te%<1GKS}(Ls`q(MY}BvP6G*8q z*^NJZwwaQvm`K))3{;>-)09~a64In4pen$Igp_@SwlC5q=3cNHSGxZ5@%EAb<1*zg zZ~Fhp(q95gie&GUHOthfjQh(0ZoKNBTH*|>nD~-T{6tn&uf`?k6Ldcz*y+ z>05C6ST_-80jKh=#dH>*N0V8+H%zU}LxxGKqH|_K0(!g!1dVNev_C<)Z1juFGxqpp zX<>(}!05fZ(+fpvMdY|>)g8*!uT@iD^HLn|%KqNoD!0@)H5mxjXdAkwmr+@Y+Ax*9 zwu)=G6vJ2NQ_j=4W&Wf(aMxgQ2q4MzMblVrngIVUwjFk=2mM)WsCesbC-;%pK_ec8I$CH5{Q_PW?z)@TrKy2MdhOwd zu{teMCy!NSq@}LMnR9qm>@jIEF3Z!9+S|7-oQ`>*nRAVCi;;>?V&>Ennv(fizQYLV zvqG}6CEPe@7zmXWL(Dq{pJA<(Iz|2RLG0gXgRpbBvf8;`2=feGP*DOsHp;$;;FxhN|94K6YSydi{G6k2!Tc#WJ?B>cG|vV&&+8ou7QzQR@%sz+ zZFPa$v@Jj=w#IGlYAyy<6~7f=*3Nsk^)s)h!93D(r2ZI}oS5nW4fm~%HEdCv?2L?g z;W^P%o44o2`~XkgeiP-4N97`94xQpntBaz?(}F%#7q?{pEf)FAVm9-Jjl`ie4g+Y2rtlv1UZkT}(-2ulpSu6l(L5}#zBByii}GJ_ zKh&XXlA771C=$;oL(#{~b|_&U=6d;Oc|E^>!Xg{@CXYl=N>;W*x$IR%6}>oC%g%(S z(qN&9qg$?npU5EQ0anP{!GdfZ(@5;)NLyEjmVK0iWSyUCs!Sh2C?Bc%v(!CXt8M*- zAHm&y($My0y28BK4B8e6L8yP<+fT?x3`T7%&ZqI5Tvf|r%J)GULM$p!V1_m}v2AYo z9*I&ZpS)74cGX{(4%b>u#?f5L{n~KdHIn&WVA=P%US(XWtzfb9-Z|6lguBb9{d>5D zznhM>4nBqRU}scjdMaMFnz9tf5tW`k+4J+nJBMPjedC9Nk4v>!E)jPVMb-Zj&!%M2 z9JX86x?{s%-UW8;h`N|Nn#;xc-=rl$9&O8Vdo*)zsQgIY-Xr{;G6BcO={Eb*)|%u? zO3a|~c506a&P9e5#e7Xu+JU+2){gRtjy*o(*9nN}v_1BP<;=%YEg~&Ob=o|Kzehdd zPI~(mdZq*?XtwT_o4scg?1G_S8Zn2hFV(knJpmUQq(cb)B-E-l{V;1slXFbqbqTkP z)YRF=nUfj+Y|3lO(JI;?%Zc|H z<(7Vt1qC3N2;ZCTr0=Ywn5v2nQ=!DnVWrq5!@*IstMNFIk=?I#UZ|)F;7QYJ&SxT1 z?L;PgXuhcjjw=`g`?HZec?(>v!Mq9MO%z2mT(^Zpw{`hlBt}O^)3h@3m8Pe7R{62w z1_uOJnS75z+u*1&?h3uQu`__4HJTpQp8JS&ZFr)BO|)t0tFU9SiCH`N+R( z-`2@<`)2l!qBtjNDTdBV^JnjO#?zh1CrE5yME7Uc=ik33BqCBcwX@Gw}$M|5U}!4aK*e zp*eQW84I_0OP+Y?@Op^gf{b-MexCF`EiVlG=|Lc~x7gm9LFbquJfE`{Ic|V<8zZ>6<{!lFPJY3Lr zQ@(h5|Jc=pW0{03LPhdh9QoDFPA^-!1Hx>Fxm*eZ(4&&4x<7^Lbnsc5h9y#NCSCAP9ca__b}hIAf-M27REu znKLg;dE_L#VZc-}%e&(Xr}I^7v8eQHo`aR!ALL`I4w;gfsc5=?*o4=$&xlo9du!l z?V;ba>XP<%t}8l$5~Ycz>=Bf!o0YHrY$!0!lb}NE6={()@Mj{xk{}7ATzltZs8uCF z(x86mjbTFE0TXftv1b@$0y>bYWfl++P^xvYue6(2s%YkOKTy#sw_pT!N+^Toz4`vE zu)V{>x31q{VxRW7$q#HGdE>jl1(`ZJ4%rk%8C1Hs2415WwBKJltGTm$ZD2q0zBto! zZkM8tIL{B*evuLB59?Hw4SLpV?fM_tKbV!dHd(P+AUI$@E%Z&Tq=Jh$SLkHkXFZ#Z z#c=$biPT~trs;HKd_w!qz99FOqjzWKEZhtrz|H(zs5ffNrQK*w)Vo*g&bFU6NLXa@ z>)FuetQ&W^Yc*euhbSmqYiq&%LpBoQ8{ugW{2fe0XS$wz3yVjOkRG|hmMYifVM0zK zvPmr+DWK)gNe$I*-^_??EG^N-bmY%ZXNC%YKGkF|3DT+^>iJ1x+7~;&v9M0L9qo1` zikyy?ZA;RN=R1@Ow6~&6#t<$RlvB+f>9gQ@v5=4Bvc(t`d z`L5CGhA5r-&z|j^fwoRjfqce!+ZlXLN6ycl8}**n+9$gO2iS1}D=P#jf=SyGPFVs} z_H1?SNZ`z(6GncO;dNB?@rot6u<*uKC!?W(j=S>3_&p-PoXGPa=r%#)z96^QO2>pw>#+AI6af{ z)hIiNnYSitm^`t_5^-T@k5T{psn+t1!!H5X#RndfLsxQ5+*^*;ZYxd5 zqYh=iMJ}#?&u(j|$4*;Bi{k3qktgrKG8L_IyLf`VYKZp^#$j{lR_slm6(K0djWrxem={YUORVdkS#36>5RH<+&Xtf!T z)cK0W<^8XpiBj0W<{J!F8tuP~Ac%lBWv(OM6wbL?ePJULuP_hh)0tA|Rx{M{v`p-1 z)bn)~Y7-y(VvO@Leg7nU3;&u}68m0AIFqgxbha6EY)Afzw0RWgPbEq$60Sr6OTKjQ zKz;SYV4?8#yAkfbF|E`6lHsAqRUTBLUCI+UR%k{SN>L|!wXtKRvSUn#lJvBPlIYV$f#RVNn~Gy@|bcY{+B# zoq{a8Wo9a7P`W#Yla2?kv15-=z5mB1>VzX|0t;Pvq@mvAjTZml5$h%7UTv<~CD~p@ z-FmuFRWr$%X0$jd>$#%X9|n;L-g@q=l=@MCm7DI~r@3(2(eEeTo_(oT>d)yv5WxgP z;|l8y#(NXqJDh4y@IqeaMC5qdhBGzKEVf!8TDxg_Ko|(gSy;KCdImpGHT^QQm~?)s zPw~3Z%wC8|Qpk*?Xwv7i(0}Q*RFv@x&1Cpv0iG@+od`KA--2>cKjt zYtOGCor7%=U#s3)lXSek4>L3+A?82 zJ0b%XzD42MBG;bP1(%mnWReREI4B2ba^!NXCL6vkUN)5nZ{SsHPQfSvw>^abI}Y<< z6~uzI!E`&dTBp)ck_|`(iDkyb3p&7L%4x?LDx-Y0=J2irjCs;+k<0}vjXtW+o@GwM zxiV^q^DA&SU6q2{_IF8@nFx${j;n1>>U9@f=D#K^=#o%0q2{mSH+k2%X=vu148H!A z7S`O%>C1ljn^%*6hIe4S!lt2IDdVYrt8!WLkLr)z3YwgT$!&eVry^B8U=U}GV=J09 zTH-nfZK!5aAgv+}&WJ}G{j7s|RxfoURCW-Sa#@v*zrbZ5K?tHvGEQLhvC@ z|6rN=`F%*4PTaEcciuKA4Tflm0R}TSG<&D)&1Vb!7B^FPF^SoO5h7$BMw&1ahDsY^a6*09*xpt}eRbffjxgH= z){==RJ*I`JGvC^c*lST&uUt{g(Rtq0T<;V}yIdB3#l5wTRO@)KS`^=pAhKjgup7oO z8`C?C`>vx__)QTs&+monQ;(rl{#xGVuc=L2|1?=-@LdIwK62w&6%idOBxuoxKS;{* z&^=xUdLg6;PdRB+!QxJ?c+X?%@SN2pId-&0(E-J+Z-0S_WK>(K-!wOUAtgltTO-S9 zmaIN=aW3-u_0eTf`67~&`mUtZiiGE1*=Sk6vvV#ynbn9mCA*6Y<9Q8Q!HgtL+R z)yIztL#2DVTl$4s+fB@>do;=}WW4Zrz540t1^v{=)}rMnRyJ4q|i9}GONTh|AG9H>sM8l_RNUdd=g?+fZ`nNQYA`In7Ea7vL9(; zMO&wgmK!G^4D-h6*SN;hjXapYwzuP=Ip|By@mzutlw~Xdv3hJ}?FBQo+92~gz3uz_ zyaVSiiGz&a;R#?gd)xwFi7Z(f_Xyv_c<@)RZuAHj)^NjI!3~zPK2&> zfyPT98z&=f7L=V}|3ily)$owrpn#G+ugmn)z7N@ncp`IOV$tZZ`~0RTi)M%8fuHMS zl_xyn(s|t`lfl7iF096m7Y5vfUTqj?AHd6<`MS*c8HX4r%PWHp;gRs4KTiWJ|8Pi+ zp4<+)xPc<)RLWsh)?t#OD4HtD`S`Z$(=~!SyoBJk`1l}%*nTD@FmCw?wW2bj`~}#i z=iHm6(USr(j^>5Hy}i7jPCUmE#FkB7?}wv>ZjI&MBKjScL<y~}DcBx7D)mDq~8gBY~$r?M~QQ;&LC7m~pXHCFSMfTv;YvZxquz)yEd~N$+lLY(H z5xLx>Z~>(_GYzAug^<@9yN-?2ARy|ty^^aBpAygZ>;oghb{+Af@`Rg}`G}OZxSB2% z?vRky5cpxht3CU^Oof!Pg7D_X5A#6?pvpFJc50^YovEg((-X81)#%469WxO>9 zYc7rP{HuDLknKQo4a(1FEvfAz%r-v1rQT-3s+{v#@GEQ_*b+iC3m9%FWl!F9m>>$6 z50HK9MjtQWJKYId7IfAeaRLHKQ$_=+tQ$+?y6e($VtE?x!u@@haMGs;3PvP&WR8VJ zvnf`W5DCr$wPG`+GVOm}+@YBkrE8{j@ zWWR{`9Y;J474-yNP2T0^jg~2w5FQ~TWN_(4XZIEC`&ft47T8zLE`_Jao%Mk5SsVV- zY;Zx)-MyWj{@7j>q7ZntW^CN|k+*A)zHo!#{oZ`b6$e2HbIa|}ljx$>q*H$wo-LeB z3UQvTeNW$y8n-R#lGv~YS?HSH|RuH**7UONB*D$SGyf zoYSj)FKe6LzR~k=W`2xU&72a{-|sRBx5l51=Prca$cG6htc8RZi`!H5|_!to(JLN17)nzqhLg`AUb2L;}e+8o>UR(}i0_ASD z8G0Hxy7l=c;-D!7cAnqY0(cHBi%iZvk0#EefzFI+tSBdPG!A;2jc^>-^c!Fi1oIw zqJvpuuQ3z~O!2C7EI1+jRko9{Iszs7h@$<#e+TYmgF>}C6upYiBtDWHJoT#5%l>>f z^foygo5JYBscZC^c?sN-)Tl1qvg8kRi%`&XHvFTC#`nU*y#exlV8o`YW0Ogpum}%1 zO8;fsKpKog3d_tXYLl2AZ0Q}g77tj`uv3Y^#E;4oV~!Sv4rP0>Y`o>!=)_O$>lc`P zL+|+S+FZv8v5hZZ(b|fs(pyUjqBc&4A$qF;!ncqrmdE;D?d_?ejSQk=l-2RxtQC{_w$8+duH{n*usD48S&|nx0BxX z?`J3A?N?xV2OBRk3$~nq($+IQciC-IOik`a+6FpB*P~;B*8`^4kVMriqrN7OTpYbu z_JGQ6-1tes(RfBo>`3v$SLe?oPHnng0&W&*&gc1#A>eeBeB;WeN`8P?E9}r5DqM^P}&}<=OaUj@@}J=I8i$Hu}CS z9#QJ$%$~}Owt{F1!zba@4#&G;GlP0@GwXRb=^lKP>pIbC@uP_-gh&=f7Ipk+UDmL) zjs_iKr>ugkOYvy6qx@9@hRpWG)!|aBQQHXr>(}Gl4Q**O;wt4{* z_~)-k=9zx%LR0&GWL z!hdqIoK#%pZr3OXF2v{A%3Z{n*kwmYuSdC@W%z1pph?2{6*;_4C_`SPnqG4; zb?i$thEybO8|wFgRLPP96T-HL^Fcn_&v*UzA3|o^HY>yorF4U`pYeyY6?%R#k(*NhyWQZC)|T=W-tTC09zn;Ovq$+ zE+?Iz5^YvcxlUO*CFRxpLDWtr0oNRd5cnR6m}jVq#G`fsy)1|2KTu!HR*C$e>ni#E zf#^09L5T8ch)CVuY)Wh0^FRc%f*=btm|t9IuhCuCe_g~qljYe_>wfs%YG+AvyC4Ng zGbVxg&Kp7kMDR^NkpN4c0Z=(FA%p_Re_?y=^67+B&Tf^V_0 z)&u@EOx-Fw)-TlJ<6WdgJ9%EOU2opuEHM31ItLluDHf1Fabivf>X>Z9?#Vl)`^Qx` z^#q*p=#A|zMPie&$XJePxZelG^O4gcimstKeymoPA1l)E=HORTZeIycB+lCb4ofhk zHji|X4#cQ4V@^0e%kQl1TpG=Gw2n>Jdwd}g)9M?#>*k$t<{n8Efxr1Hkq+qJ9F`__ zX|O{9kbgH3z&aSE)b5-8xDBmM7|1Z0vnG_Rm-oe-IN~`0G(f~u#fEC*c5tM=B%v38+l~!xzR0(pp|1N>I5z|o+0&49t}n-2wgjC?9VNEIGwp^?jF+#bOf7rYPxjdvQjJ0tM!U0I&$EZ}2-UMo zZ!6cm+L&)y-$3fvxvw0W_uO8%ZFD@7{BS4k;4qB0d^(|ZB8%^3rF3MZR36Wqt`P-A zb-KFil~bo`Y-77P_RQW_j?+?3WthN^bY&-)s|46R5e%4Q<{G_@cBzO&R6Hup}ih#fR^ z&qr$I&b=srDUO-Gs+ZDg@zeroLj9zQPSHQu~i2pXEQ3 zd{QgfpRX!rz7M%Zfco$t?b40;hG*JFkReWnK>!UgA0!_0o~3;@SLqx!w0iJ}j*3bo z&nAtZ4E2jUy<|j@U+j>VTYpRcGdP4KrR17Zf7rV;KjE&lPtgk5ObOIYg)sl;w1N~LDR%tU_wCc^S!xK*>bpw1nrjz!7!i%gq(+K! z7PLp}j`Z7qtLgT5JuO7~f-7+nm&k5!XrmF%^6aZwE3ky6Dj@I^B!XMv`ArAz)X<8= zFbAymMvScOOrqOUsZ-g`<2wYj3;Y$Mwv;5%co;QVl^imfvHao^k

(I<`cTdl4cvN2EG%&AuM;6Qh=bYhM=X9Zk*tM>7*O%c=#RJx&QGZNHI0*<>E zK!q2q^`HD$G?a{5G93#cvx4=<#)zkmbUuTDqy!)!q&8$g zY$?$8-WN7$>9>Z?YXdpzH|65_vQ8qH^#vY6J{lA70|ezS(;5onATQxvUGIrHF^S&v zc_eAa5SFV8vCEkf>0v`|S7j)lIAAK*@yn4F&aUm~!@a#5z>qL__TyvHBn0j!BT5j= z^5?!jWya_A;F8}Sh08}=GXk`|x>WwQ8$+Qx!otGd;3>ZeO7fGnwKbMh`GoQA3TwmC z2@$k1)A?;cnv+>*9s;xZlyDPKRG^mk0pjWClVzK*%jqH5>M^0ZxdbNFhme-Xg!2+A z-|KhfZUDa`@ehD|Z+&Wlz6*W>2Cx~_5^P_dyNCgGG20goq=@JMi`KxsoeI7>`-f0t zjfL)XzDaoLeiIY6}af zIZaePkAiysrK@YT_8%rv_Go%vWPOor?bq4g*8_BJ8VOb;G$(*lvK7p8Qu)0zslsH7 zHrW*vGDM%-93uWWNpV8lt+%Iaj8+q7LvajaTAi%~gIo!*kM5eL2VTc!ww!0*yekP? z*Geq?Al$_iS==5%`BuwgjJ^K{-idc=dfA;bP45ldgoZCB_2HF5W~l|Lf_`CadM-+; zYA`6|w)o_3EuH9slv!S-SGAsjfJ@-@7@k!kJ+JXScaOOBb(t0GS$R>vf^{9v0Gml0 zSlPH1_~gp*@$q!x=WK|c1qeI;Ru(sMVg^m8yA)}TiB0yak`eyG%Y8gi(FLLq_G4()zG z&N=0!&$}=EsUa?ux3&0`dyr(!h7-q*{T8MJ5to|jguu@c4AiKbkqT&b z7yv!`;dBU~2UU7vgC?qXWsh3d0ZAeS0^!sYV-M=l%o81-mZC;eH3=|;BJK6P-yH>x z*2t$$6AvYo(Ga8xr#t*-LmA9nXmx5M#+$5NAk(PpZ68*zN8$YNIor?KRl!5}i z1lq>aUlOtsFId5R_hc+FU)^j#cyx4#1D|Y<_Bu|}OT(MrGja0zHH%u&$Rd!y)9K4$ zvOdi-lW%^=&y7YC9e<#ji|I9D{VZev2OD?UB$<7!%G7U?oQ%=61L{h*MBB zCm&U%sy;U`MG-gyxun+r0bY)r+4yaUK~jT1EVNn%!Y`+P1(qLRW$ss_Vhc_>)RX*D zTO;5BP=N;{3JYY@97I3D{*x_|Rt2$;-CM5*a{fPL_ZsE@UiIn&W_ruE5zzn zYrg}RiW=fk3#?vO@k4>XGonM#t8b-{NTOG*q{}?8_Qxn1f_&dC!i61pw?}XKbchaG)9s zeMiEr^t&VGsoOU=*3%%&lug0suoT5^(l4PammpxStSRA{QGQHssmB*dm8B#Nb`%ht zkguMb1<4rM5P)ZTsCLfLzE&cjDwJJTtJZ(o1%qh`SY(&nF6<4CLN|$tgwIesAE4(% zx*dbLft*Nkpz?ULKkvPP{B~IO$7wg${rTtOqUqkx*Vq`y5ID&5U@I#LhCtpbSxQ8p zX<$NM#eM`^qP{Le?9S60*(?E7BnJE{&Rm^JC3g!rDEx~ULd+4m&16|05`7stLbyQN zyO3;r2)pYrL0w^?l6v2QY&x0(4^P4CU1K^1hHt@;lWYXN;N332=ZTIx7DAY-3UI&B z#cwwkyv_>4QJF=&kE2GY`Um02TSZxxJeem)gKpisvZ-w+cNaalBprC|Bp zr@KoE%c;@Jf~++j>pF1h8r6QeEOhf{6d}nC;?+pUX04HL34;1yRG~)0zV#lS=Tb1G zM0V9F!Kxl^m#s`F&S~we|RLSM^859pEY{RoOjP#rjl#*?<|s znCq-gHGm)?w(h;949giIgTgLwDMbN@A;EA_5Rn-k@C+N43>Ky{q}CT#m$&EK4WhCx znpXO_(ER62XrcboXBwGnN{}Uyf8Lk~y}01gdMQDIqCOQ$aO(N%;!BASUNso$6*%S$ ze97o!qw{|oY3}^xTKX{pSY8D9N(96~bEKyInd=mG$(hg55vW|vya0O}pYYv&+8)tS z5eJu0jt;iq@m5${aj>AL2Ygb2*1QO6=eL#B*Nd=af?V)qF9l+OqFyzIy!FRBF$aYE zcN5`$EV7;wvp)^|soIPpYZOZroP~xAw2(l@FyT*C=d=d_U3v1RMRs_MGWmmvBpXa5 zlN(~l=CuHc=OwRy0TydOLLHX%1*GV-q`XjM{)9A!elq{HF+^Eh902H`*||dgy2R1o4;-V!~A+x*~Z%1WyhNkE!>^F|HjKp66WPI(2tv3q^2^?gCfsvbzJw3 zd_2ii(MXl~yKe}?OaOIc8$PP~8b4WqmXe&|gu{!){*wfu*a!uiQOh;^!b@U30AfNj z!KcNvfNd)Md;jU~a8L`JP7e}97ZG9V`L2%w5hm zUkusN@zKf*B+cFyQ(hnqZvo0l0RE*7*W2{#v(-!YG40YDsbBJ`7agpRXbWvEl#mkObizVd*qXF(?E6%DiJbTwcI|w z^NmRYitm ze`%o-Xmdfx(J|sC>H40vhqVq~r~p5MnoXcT8|xdjpSz7=&E>6;{Y; zv8ZG!2%A#^!p<9>P4(*WaP$({%y#Ap%)*kN8*udyuB?84-=v0|9{#4yL76j48RgF( zJHdAiXU7ora@-Zc^Ar?^zfKV*h`iKly=%+QUuiqSk|ydtpjKu7`#t=hbdVDpT@$oc zyo~lI)pku#uzvSJ4r|p*#q)he`BX*EdMM^WZ#WorbBkL17Gf#}XeOye+S zs>$0AJ@*}dnzRN>NS^k+R_nPSMDWxYDLN@B@6fG!Yg#>a`NXL1e>*S282X8*@vI;BH@s~ zduxISs+lHEc($EP)JhYo%qGOdRJR?A@4O^^fk!R!74}St%~&AYDbwJD{mO^#WAfQg zDT1j?q~;oT@_Cf@ez{P%Nhp;u9h9H5d_Do)wobi#~^l<-+6E@(B-maQ+wXajM5s2H1 zTD}&LcK>=fIyRODELtSW@89+L*k_H+%SZU#hAEU~8Og^2hf8eXRxVIN*}x59btM<# z7cKi>;oIsgoqCHT@k2i~K7{Ofo}+ck1>Q5XV!f%7DNG{y#K)24ZpM-k_v7H%bd%rX zNaMl7hY0I#a;140(FM4QEa%rN^k0*_@;PXKPaCFXj2-8PoV6-YgEbUADizd`v2_6~ zS;!{j!*oP7G%}a;_@L*6xZ+-#RGwo<%Y}?H*KvmCV5SDNlWLm6-hdm&;<)+etxzY& zbXTw8cmqHx1ehG48fa6vbppph1y_GL6beQsMmD5cRW#!&cYVuO=d6pcL?BrUBmR4h zmxU;jpNXMn=v3vDp0t5-O+$TY|U~@3T^$<$)ymmf_I_7|UWJump%O zw(6Bsq;`ZTul`cNxV?ZyzY{^D_y7XE)UZr85{MuC@^|{gDt=0lq(2;i0C@nIGtTj4rq<_0NKoGh-yoW&a$l`O^l0eXn1RFG3C7EWU6+IQ*%}_Qs zif$TsO+Xda&N<8*+=*a|WWESfVdTU!=xB10fBMs~O25 zyeUbeJ4GDZzR(CR_|-9FE3Uoo<&Co^U`8&~5`%x(Mi)F0ul(N#m0w`dy68p}?5wBbp>aRhGLa$+-P1pXzg(Mn{ftZo z1xUSrf?xi3&118qCXI`ppy!>8G7F`_c6JMRMj{`4%SG_EKcl<;$1;n-QXK!J@>9$U%2k$r=$PBY8u0vp=s=YeC99gOJm*~`1de5@Yh;GD3M1$ z5w}e$tL2TQv1)Z>Q!X9ZyA_Z=PFqFN9OI-p-Xf3E>>s@|-xxKo;`jV18>i2mo=)-n zkWcJf`jMQkZZalpj~hnHR`C&hZa3C&e(KvIMt@|4cD(qEPCefY9+Gd9)C=^yq4OYu z=Zs+#*r`5GOiTcc7VS0cn4f%&Ex?kiU$4i10wRw$*!_v%&NW`!*|`t1jlMM?w-T2_ zlZYY$2FK&Ijg5PF%zC3Ak=3S^kj7zXD-tPNhQHHmL=LI;%s1OXQXiN&f9@Oxp!hf- zBl0wnurJjabi>C+u6QL1t117C%qduNMqg$&O4_=XB}+DJRxtpWXIq z!#r~kv6$h{423=kS&W_rPa--?{Lmj{uwy$Qzr=h*4JOW%P~wCEY!IRFOhax7bQF?p z9doKn6ti`W+}~zM5Kd7c998AC;&diMIWZ&E(}LNHa;A>*UKaj_`|SG+Pn`>*3RC zu87MNDKod_;+i_gCH!}6jPPUkBmbl8-39uBrH}8P5jGET{HL~31DO4mV((N9B-K~w)sby(5Io0t=;ExaC&(y6htI~M2X(D6I z4pk8Yg6HJP=nSRy@B2sQ*+h!75|h|27b$Nc+5;Eb328_WJrcWtf(j7}GBA?-6#fri}$Iu%>$k1r!CF zzj}Rc27(|9E?M3QR+6sBNui-};cTB$q0c!r!GOy={#HGYTykp5BTEL$@JD12>rcoP zbj(m3vc?KkWc)@uJRul=Ac2+T!~PrgI4O7`BiysV3bPW~P&UGjo0%J#>Mh9xdX7_}}MqK4CQPIt}{q z+xsb{ah}Z0`7j*Fw|fmj|1o85mxzGjbVx^JR^iz@jQG?hHbfU(qQ55isV9E{`?#5b zl|g4sDt|;VXE=wcS|j{k2Bs+in6W(sMhymJb-h7Ax=`W1FsYzkhOw^M8YEez zhk-|;!4HSdreXvF2WEaAbWf}-)g8)v1GqK45nvTiZ!zF7c9^tA>;ZfZn~~S7y&lLAvG%;GG^+EW?TP1=&=AoT;C?y1KeyOF|>8`Doz(4R$N< ztN3)8<^Y!NVSz;syKTj0L-!tn1UfLQlPGky5i)!Y$NXh&zZl@4;jJ_egJxQ8_P+Pe zPeL#@xR+d=TFW+hs&GPJFgI=_reWU}(vtm^GtgM4loH#{RyQ+RMsXETK5jhdm|`IJlPtvZrMJ;|cI@MgCw_xJYT zI`ccbGK(`?x|b)fjwn|uCY#akbGy17T)CL4uObZ4ou>Gp_VgZ2pPh#H-Qcdvo@1C6 zIz-lvG~oKsu;~)Pq-$%dWPt-7inq$5W6^duQ3(gt&pYkxYau!T>HBH)f#Bl->DWH8 zf2Xb}kPk(Pee!!3JKzNx)NDezB`)oTwfUcMgb_}2s{??d8C&LD%8ualndsgd#0$z?MYh><=^*Ll_{V!CGg$8Hue9X+LDlWgw|c5u|G|&wI16I0?M60DY=u7s8ZV6R)4-hlYjWQr z&9oOg<4hQnf@Wa@#nYGT!N>Fw*^8p4{l>6G0$xow;NAHk^uUgi!t70E$+rI9Ocaa5 z2{)HxEjq~K%oeeHcYyv9`X*jasm6lxpQEZ&=|^9_>w5&pWXSsgA`3VSI=FYG^BoIe ziS5}N7YXCZWtm?Acm3{!W@4Y`iJAKVbPO|eG{_ZN0Kgu#k`9a4I$WkGt zrybxYr6B-*|2f!7urL9&+8nZj;5r^&>WOUd?UxlUX&!cs#Fb#00nZE#^#bQV1V#sl z8rfVNKFM2N?OfTIJYQtnW4YiG?hr@SjJW-An{a=hd3T0K1Z;fixMdH(QHS&jtB-M- zK0saRyfqgxTz>tI-Pl86t4A-)_V>}at4(99XC}aZIIqiqbUM|5X6AMcKEs3h=xHeE z=#}UT0G76c=&-flX)VpAX&TFy;2HBcWU=fZ51D3c7pNuSaNl%vbOiO@zdb&a-_uI} zBzhwbq0D%dtDB7pBjGf}Q2-CLOYki$b?;{^&vt%;u%ITl!TYPhEm{>(D$CtX#v{I+ za508_>I8(POX*`}E31!iD*M^P{5Si0H@+_5`M!G!YJwlgKS*CGYtS?iKy@1M*CA&+ z9)wGy4TcNoMNX3XEC*71vahpW?m?hrt!n zHeOGV)4gNIZ7Y3TfaVXxG=w4sU5^1Ar_&Y7DVW9SZ2-V+y6c;O5IAbCA1>%J_??H5 z8AT+{&sAnXCWYjPV`q(caBN5w z@mA}c+c-LAGtTAnw35ela+27V)0g_3O}6;w^QWND1yY+RR=!q#{@~oO^t~CzM7UV6 zke`eluN)hhnQ$(qqM}haQp$kTgSW&m2{)KNk&gf;gz4}1w#tS&oT(u+fu}#J25$4E zqbYUnGV6e#>wcTvDiKiaRa^47krNAD$b|4At_2ux0YR-!sa|$ptP%zq`mMoMFInWBP}; zr_pSKKE%RRl#Dy+5F*g@Jlg_-mPKB=BU0L)ag;!Z!o#*Cd(LN7af(}ctjLFi0=T_? zzBse*IKB%p)wl%*1nD3)8~uWpkq*9IZ1R+skU`Ic*N#GQ=ihOYY?dIh+z3>wh1!RZB2JET;GNx?9@iNpx zHXxWI?oXF*$N~pwSbGzN&x34Yl{&%*_&GS0o1AzJ9$aF_t^9yMl)N>Sk%W@ud-mvl zluNKto4UfEn*JIFz zQ0R7B;SGRklmW+rkQ6b{`fqRGh8&}#qlde<6ShMZXkZ!P83QDyiBnXn)?e)O%1Gr! zWyl-Nyir7;RGR37VcDcrnL}aIAC~SJt$+e!k|6_RyVRg+yZO)$_m-BI89|y32jN?E z*x<&E8<|WWV2u3Lq|%qhqh{MPO{_3Kfh*gBFh^CNuKZXApiJGT>|Xd?RSz>JvLy{w z?mqH+7oDaDyyF+ecXYLCrq7g!3JJYvyYd4HkM+$>|21pa;1L1Mx-RImG(ac~ffG&= zVf%wtk0XFa`o@Q=p9!>yz!XPe5$l=H1MNjt3YHMpg7gRYvFXX|ml`?+|6F&udp8O0 zz}+7X&H-O}TtT?<-ZV2dK0^@NrER5s7R-;qMNP}C*+Y> zOR6}YmzbGSOc5ABv8~a+ZLA_8~%d^m#IZ!0=+naH%8`ZP0K-Y%81(QXxAnJYMHU z4%q_fvG`+Z*FszuLjTj7yd|Fx9&c*$`*Hwjrg9we0|2He{Gs_j&N{)8nJleslxut` zpBp&SBmXL$U;@ZKx_J!~vBTJt_P9gCeE(z_K9cO>RT#P;J5;h1l3p!M)a&csrD*o% zO9T+f`!Rn{^($t|Pur6=j#(Wqo<5cpoz9+|6hZd=lv)g`RcYN)2a$5BJlbuZ_3p$V z2_w%woq7-c(Pg;LzDN!EwA5Xwb*GH^-TB`Ca5r;gpWdBnKoF$_If!k9`;9#5b+2Gv z3E}Ab+6Lon>VFh7>ub})Xhs>_0OkHUKQ>YXXb*&@Vl5x6kX?p);Mbo?36HTqCmcNU z^KVC)EEd?REKvPlPtK4y8w#;>G&bxz+oj_A+Rx@EH9?{&)% zH*(ZKCew|4@rlfPD7G?3nilVe`sMLRyn4gO{^v(EH;|C1pe+<;V!fOd(ZU1FbFMWT@)~}JC=g5VCtW`0}9m$B%5aQtNd@zBbKK;nqKgJ@mA$5 z#%KUFkfW9>1$!#k=XgcntjYfCX9;+Y)nrK+Pvmb&|Kk}G%P*=n6%UNVJAnKzJK<56 zvqY(nbpjf)|6s#(UFy9CpyWNr6Nfd;Nq=54ml4gahxW9 z1piH2pZW2llq*P1v3!f`%_^X!`3b8sjat%^}e#)zK~JDUCF0(-r~_$9d$-ZK|9?<*Ube z0@yA5cVn}!{sKGPo_}tYl`#QVt&`(*SNmFk8&dzdb4l=K$8i*6uVP(&Pr0a;wFpdQ zqd#>uP6$3y^5>C_oDlU1J9>r8Gh?a4k2FNP9nBQx**`5=->OP>sDI6Lf? zQAtK?5pR?I0oVJJkN}3BrV~kR>G69|LAEUn48s3#69C%0;}J_snf`2BN8ep!odwMQ zn0&*i2dg!vFCa4nYYGMi6|8)qJ~Qi;UEh>2*6%&l}?kIgPQt-H*yDLI$AbX^tI!f7Urq*?E}63Q>+3+#7M3MET^+~91|yh%qti>4Z{YSE zzB)JFwjN+QunpRc%>r}N={wJ@^xRKI(q5yZW2!T!XOs0TxZ3`;RZc#ZOYuo(EG?{W z3jaTJy>~p-eIGw=gfwJ?jO>wJLXpupvSl56R91Ew$rhDEiDPdOvK1kOhH;SXke%$k z$^O1R-Pd*B-{0@?`2KVMaovy0#W|nP`~7-8U(W$7up+47GQosPO-V_)Y{|{hqV6;* zh^X`oDmRc^2LNH}uV`9=FZ43&ml_`=7Tu&p{1X5u;1_nbh2L10UWM}DiqEd=&QzjP z255xmYLGq+5Ky8s?m{2i?~0Eo3t{k4QWQZnT5NV7YG{}SrX}b5uaFOJ6|Bb<-Vfky zO^mYrsrsMqr{W_F6^Kp=|IthhRtiY=JF*HjX}OJBHXf=~`1cXrkCy9#&vfD(@|pgI zWU`*x3gzf%2o{B%A@Z5VzG#!XUYCkQ(pV`0xmo!Dw%`mwnOx2$m@XLztC;gdk~+S3 zt00dIVw0@@xlXn{xeu{Qunj|2kFd82ysfOLhUmZMYa7nxccA5kk;O{SV$oV0#znE4CiP8V7t~~oPARu4@WPFGv z2~kH{L-B2fZu92G##w8u@Nkv)k25UN8p~>dgYqxwLRUNxVbs4}cJU?GF!vMb4)n4O z)mB&4U={k$e`x{&#+|Ji>D;PaIj0UeIh=WrLZz^C92qctzmZZn$1UGRHyonA1U|JK z9~n@A{9amOw&_BOiKGZ&&0)K+a?6@Umv{*@4bR%w*VeS?A>| zg~B9=JQ@aP>ZE=5KY`BUCIoPBz$g-P$-E)^wVLa3q+!f$>I!VC`kZMhq=a@woOYUj z$MT25Ge?i~+J%%MVbZ}uOvt)2elHAzGmun4oyC?cj)NLB2IwM2Cp&F-AZ$cxj}EJl zejZbhV!}Qq281Ijp!2i7u*;6Ul z{D+6of@ZYztV;^Vw6{P~X5_}svG>qoSozYqk;yxElEtf#fB$#fEfZ8m)t4(y6F(bD z8)oFDp20I%JPdCj`h18D6thk2U(Qx{@{5(Lwm8UwL(dpomBAMbUmsPeLy=R=Sq4$1 zLZmhVWSiJqH+|*vi;dsEk@ax>r@2DUW2}R!;y>co<0YWk&x^LeiWI>z*m<^#+oV|q zHGxC+%!v0J;{TeA--IK-*LV2XiVc9QU^dt;e5#SFdAZb+7C8ke1O&}9d!LbSHvI_P zfB4_UV;uD0G=uHP68J+~lK%ghIoV8Gl;J-SKuk38Gs_Lp_Nhq*hWtKnw1~1O(H@j& z8H^RF6LB*vb%r00m6^Id4^=_2yS(fAzV!|rhv4o#9w+yw-U9gcsl>KuU z0Vr!;b?VfFI?PgKd-$4#4$pV`Aq#ZG$_8ZZ1cKwF#td zXzRQ1?)=}9PB;;6Au(wnEXKl#*aQ+_bkMK=N;+4dqE}q)|IwIdtNi})EQoGlyLKB+ zhrGiP*nRhxJEelB1%;SIM(#jq*DG!3|3|4qx9{KHyz^lf$Uwp)1c;xa$mhxft#s3W zq|7*y50mOB3CSw2s?VNliilc~ByZo(-2XyhTIVa$Wq{#`1~B*Q>jw!CG?|n00NSr< zLCaA6QfXpigfvL`a4gZ)W3gnkHwu-~n_6?K4+|w-??=k^E>z@m3?l zYhKJ!Ai{b7Eoq>A9(4RBiU1awX7F&C52@=wm4&2h;TVyCZhknF$!mhXCOwPX{2GS2 zt`^r%h9QOX<83ADd9P1$x!HApRhu0-k>-Tffh5EczOolnmxc5o0giQ8sykRTQqTcer%?kIkA z^PDqmsWHsg9;?dpwn6UK`MqBtu%d?ARrua1w)Is{Hh2+FP}lW9Q(o~IjH%qemrvdI z$myJnGsx(U7lzX)Ww=TJ%7`*n8cUJ9fa78b5IHE~cd!X%8Zm<38t?HlX0<^dnLIe; zsEaJQoVjIL$aT0&o;eftu$-#i+A}rAUk1u^C%@ftU42`0C@<)nMGM zzhw#}`cS423?fZz)uXvjNUSANd(p}0hWw%z|NaG>dSrUS+I@21zW$G6y#fQ)nwmaL zc?LWKbC9sfEHcUAjGhrIv1BadykYnh@yDqEfq?%-EH(R&KTZex*znovzxKFdVY@?g&{-5w{sUv7dU=bGWNNBss!Qp}<(+9^jAMinQ zGe%X93nrlL^`HQR?fm%bU>8O@^7xz8=RbF+AAeir-~u*iEbQQOD9YhVeLny3dyiQ@ z&rqSsHQL2j6gQ+v!|KmY!scZ_n&g}&QshEWK0_u&`L7r=hxWbJMO~5GL2Pv5HxxLt zL?a#I+GB8~(w{sH98;u(9ha80K2wCnXNVLMsiJh{kIw5?=$ME=U&^09Jiuj7r1Pl8 zv8lw?4AQ58JBWW74K;F;a9T?^If0;tpFwWTlf9fx_eAIqxOCAv6f9xV_v6~Ea~=id zcq#r)z53`rA5_xL39@nQP0h~c(4DxUUcO1V!@GnI7Wq z&;FhLWfgFd=HmS>h0<#~mbSnMgCG6ylT3;LR0DY&G@ax@4^XbX@{Mpep{HqtJ7C@B zX5!`Nzn_aM38Bzn?(VR`JXgr~Sl*ymle^Dt>0O4ic_~G9K2Kk>63&@9a2&%%f@I0zI`z9DIh&H<2vV+0mg>*$&2MvqauJ-TGaB((S$iDrQ*PM=K_bg@asL zdg7%)tukb7AYErOj~KALFn?+_tz#8VLNO(!ahZMmoW&j}O$vO4q|b!Tz>Ast;wOZ8 zp~+Yy4&Et6PE|L)T@8J)2U8tV_GgRM5bNs57SMnH#`6a-H$C47aQ%27!Zukzn$HPd z-w&T!XS_*KtK{99R8%iUS+03~`~D#tsU9c~kq^dsY;XR&Dr{aAw-x$8%Wkbdz2v9q zT7R)AM@S0&ndKG{GdH?GcGUs(I6j-=$qx8JxzfFir=Zn2r0XfV<&}p3FrA(^@9)D^ zoHrkLGl=4Pes=H$S=ZnFL=~k-q9fj)%=K8IQMo!&?kZm2&dg{5h0|K6uU_vVm16&J zlQ-ogW+Yqt-D}mPtDS#7L;L{S?d5pP!gui0Ag!Yfm~pV9=!#SGisEL_x2be#%-c7)GmcD5kj5{P{yNIT# z*sD3*wX^BXkN=T)1zt25`)z4WRp|FaaS7gKWzs27yO9_x0+Bkc$gp953+sbu=HvlB zP0o!%Cqjss?R?fn>iTGi_|2ZxRzw|vAu$ILQyhVuOoF@GZ~xDSxr^YC^cJQYLQ(>r zh5D(4H6Hk*C9(8&`+rvX4P>*(-bPYef>*9er_i|n_hamIlUN_k&0Y8{+0L*C$9V58 zmLoI9OTY0bCDEW=LhL*ukgE(;?1Bl?sG#iCP%+F-omCjr*;`2VG}6bJ$obAfSVJEG z4IhFKkKeAd4Un4%dhHs+roM%odfu4H6XC1ZqpZ=G*fROLSqV?cq-XtZ^Ld z_MAlDsfSqm$3L_}Xl`!wHMM({Y`WgBj_Z=v=O$)R`5UI(0?;S>A-+8Zv(P?!-iYfL zUPUQEB6$Ktnec})T!O*L;C}{1m^0xI6}AVNgs$8cP`S4F;p``#p2{FvwS+T!jN{Kk zrlvljuLoISWGIIRVT}@S!{z8wN!-~_0Ts;gmft|WW*tv31)|NPURTzLqgd`?AoesOXUD6vPYVeJaaQ z2=Z_pw&6Inef|r6#Ti+dc)R%P^%5i-=g+K#lsck4<;Y8}q zY%ku69){LBOnG^^wAYrZTf@E8P#DtkJ}Uv9DYmUrtO1KOCxfi_r-awfy?thWb<^#B z@>tI@WY7<+bb`-2mwCp%?k1Q1Soz(r0S%3BPT>}xefBl;*^CBrlmhqTBIs{s_7(+% zf?1GE6{3=7O@Bg#B7{akdN8g6TXyz!BB9sp(NMLQp7^uyD7w%*SZn0?`FMLzfRMp? zcf*F(;AxI3=j~S)3ymkU!>##1P__n#w0Z@H=!b)C4`+y_K{TDv+4=-|EVy#VMLCwj z@0UpMQ%!|9ICj?T1LfK4Pq zi~=2{)yDve@hlL0&)q~#2!b`UP%8Q20Sy*6@p;D{RL|yk^GkatlCdNw&SKV`sWcZl z(~lqs?`xY}@e#9soYnJ-8yKl0f=+*ksEGmzBEvct=%KGx`j&!_Sb2cCg3E5~{$EB5 zmvc{CU-dvtjh8YN(h#@-2O;36|gxPo_@I^D!>rT3g!X-2WD<2NFDm9ZfFtyMMxZ^4bJd6Y*~#O5(k_ z+Xm1&xv%RX4yLiY>b>90P#%b=n>k-nXrZ?6QBk_qaNH5pGW7m47R0}HX2<>mB`uYt z>4q8P5OLcixbI{HGh5N#%@2WgV5#v%5Itr$pHS++dhtmp&=oMCKOW=dSA6qQ`aH5o z0$yW4N0{RT(iB6zu@#!}BTC+xP6Tx8z#ygiUhcK=tzo{;`>T|I;2%Z^~19U{`RG~gJN$RbE|eE0vu zj{GEdknUXt=C-G$wen=TZ_Zz~dSzILqfUCqxp_va@c+V$*+XLkk}|qljU37#3n}40 zBlWT7=+Fy{HNl?D!B3t%$*xZmh9F=oEg$HqPcq&TeGvigL|72B+DeZV`91a6K8n9jTG9F@-J2M{_WRoxFim;CgfB%B=h z2XeiDOVuC-rW8PF&IKXYlNLw~*W$ zjW1#f0xV(CJ&zpkjE%Y6Y!uTazP(3w{ymI)ZVC1I7~@v#W?mg7T~-%wX6xZo7%)OK zp1GWU|Ap+fJmFif>?q0x2#N3zSGJtTaR~Rm;wQRIdr27zF*?(q*H5b@OQA!PY&?!@ zdT`ud?KAU>2ANvFjx6}rVIln)Vpb!v)Syxb4MZVI^BWtL9yfQ_jTI*B2ZjxgMRw>J zq%k^pc#3kInTGTXi{N-;nBIA(t3k(pT)$z>EY;QV=mp8@M|Hs;qMb;{jrY8mw({^o{{@f1@3!?kzOcTs;~?ddPy0f%vkiRpj?>b!8e6QCkzF!-A{GLf!wR$c6Rg}LyU z`N%yP@q8uNvns~iln11xxxqouIkpWF?7Yrq0EEgAp3-xmxWv?-omr62fEL?E+U3{G zXC)DH*GeheZM+~q3yF57k&J}Qz2Kv6-rtGR&nJqE)sVCAcz4Fd%riNhs+>;Y3gn#= z`fd@J-*F1*?${@u)n!6wwh>>WrZ>n=Uz*%|NLYdnpY{azjV=4j|4*S{859aiK7`1Y zo{CSik51>!rE}5{kNxR8D@8=u`4pq^>J;Q|)-z(HpMl3D+k2RC=yp)n*12^t>A#ZG zyNf&EbmO^tK?5Q~-xkK&cRV|JA!7V70f!lDmg-&p71)zI7_ZXvGQ&-AR^eF=D~>7q z#<9C_t-A@)U`Jq)I@vK-`%1}Fa z^GN7dEO=p+5#cGX2_!pM00&_!5gZ#E>-kTbOiULOn-GQbA^T(~->Dzwl+4Kv|2I~4 z`VUr4y2V+}%E6Qdm>e-X;?!)Z2 zYio+?mp4$CD4~%qsINvPO()%y6Ov^cTL>|c3`R`%FIh_EW_QB*lkgxIcI#5XqCOOi zexJ^Fx?pB}^b6*GHCxVkt`3~83p~jmp8Wk|8Ssp??nh>R2bqlDP@tAxSNTEr56ZrK zd2Q?Ie^K^5f5yKk+m4PCiL(xGKa+R#`$^E(M~mr`r|a&s&JZjNmKTMnqIj9psX7hl z&jZ=5+jwX3Tu8s@r^0Hv>mxVw(_c|^fM_jO{g$Bg{oN5*zGtMA)$|%i=q29%hNR#N{)^x7TirT+tSl@j>cg> zGEmW|PMi0cW<=O(m&+Sm_uq3miwBk2*X@_T``X<|=I-<7^kFNJP5m(c*noPaa!a z-2RlC4yLwHE5=-3f{45~2~4J5i>0}}=5CBFJ-ogmRMFh*QT^@G0U4Y@9ouvBoy!SK zr7YAHarunC!m;s0f`sLIWWQG~r`A^YGjxgDC&h z=u(PQ<~kpMoOAj29UTi#Tu?rslr+~r%ujcfh@4{8U6be2W|>&XIIA2}@?kA5m-Gl@ zob3I`A!#qta9QHMV4&XwWrlE!#hBs>h=lL>km1}ThNez^mE$Njb56gJ<)BQz2DX}C zO}wdfz!fp-Y$P603>23XnD1Dsy#93OIMGUCF6@ zVlg^*nfSeQ&PhH$qljT)hNq&I#sMv&D$QlLD|P==qjY+mifS?DM-KAkSo2F8k5w*n zaRjvxe2lmp4G_rW* zf7|<0ftpU>-rVdn%kvD6zzh4`5~ckExG1;oxka_pz(=L|d(_y_33COVmG)M(AQtnY z4$rHo(r#c!lKOH2_a5EfR>v3QPG9wXgdGoGIF&^IWzlM5VK*rizuQeWqinu{Xt>)m8>Q10BPW>bH)uS>`W35b zcqS+t>^5A^H<(n4kEBk0KKt~Z^j-EwcI{cNpS%n-TI=WlUr-9Y26eQoX6d10^=7Z~ zyFbd;ck+sAa<@NFX-*bvMSSoZW-J}C+eafmZUFglm-rgPe&c%8_#LYIo~W<$HgY`Q zhAl=2_>yd8&O+lnV{mAw%(8?QnFb>d5DPzdr={c6cdCe3ZB4ei*CEmcFC7~ zfRz=x9_(VT+hzCizuDBfkNRA>e1uu(c%Aw3?gc^AlkTYp1Ct!cBf3ZUEa(Yq3f9qC>oo0IYr545zjAn5Df(Bnae%yOmk z*ChyH#jOBAE#z*}=oDtVCLc)u2zhzpgF_Q*X1`zl4K?*EB>ExUAVWjDWi;b(7i6+e zP*CXJxX$4$XpqDAvuetzbYwcjt`t72P{q!Tm%^2b$x%|y6Bwx*mR`_VXtB)Ijf_vU zy%ncVpT=9LqI4>%^Yqx{1ZbX)Q9W>39wX}F=BQGPNIw*8Rqn2_TB39W0ZItn4VT)8J`ZixCcP3HOIU+0o8CTB!K8hG(o!P zyG@Pk6l2&ZJOK#z0ep7R7VIrBs)T|fYrJy4u-o$q%Hq3)==~N}7rbZKhuH5X?fkYA z&j_zKWrYjAT!SE&@We!;zHyFp!>HK!rzQe|@^%J$Va)xRv8K7ATrfSzgX}UqJp9dE zg6%zcuFqX@WCkRaO@xI-#5Fr6zLJ%1Cq>w#q!__SaSpOL4U+ATra-1sI`Ep}dofHLe2;C1?~e3Z_z(ERCod5kUo zc4+~xvyOB4E{-!STXh3aZz}$n1u%mNp`n;;9*ZnB9i1qvb`jn!n96dM1&uu>qiG#E zpH_k^Jcpvx`PIt)db>HuR)1Ex7oC_QCqGnTbLlU(ydW&BTWXk@Ru4%XJqHE`2K+eg zueWk838#*)B~c4TEgHiF!HZmHw8x_&4XFvDmc^`!Y5M6UcRqN0b+WA<#C=$~u=API zS$|3yX+EEVuJ3ri{Z)k$7#enhSbZ0R4hzQ>CUEi&;Drh9|dA%ZGF8J46*3g*H*C4m?C5K?f`Fzg$pRfB{?|0 zA;)^6i?j2O@)6IxelT(l0p-08W~-hp8ylM`CdW@-nd#`Pw!ptxZi{c;hhsB#X&Ig$ zaoAGh7bYhym%tM00qecF(K*=ev|o#HS=)? z|JktsX+p4gbf5L1S58qdjTMS)vUnX5A_}Ya!OU_?3ybXSub!%Gew=GRfk%vWMEc%0 z`q&|*`16E;Qp+-vr&*0Wc`kW{ z(*)iTla*=bOa_1V5s!CLOq)Y4?d&2VXRZuA3`}5LfiAET2@)*vj#Jakvy;=D`AXU! z7e-W&e~U7*DPxloW1LbKymopgLApF_ zeKjqSqXSN#S8va{861rTv33+DXZkLKi8gy{b39BgcXVpa6CQ<3(K#pxEHG7paN#yd z7LUbZo##;`%Bre5@m{)MH?=*HCuR{bPE--4Dw{*=$UQjkDg`cX&FazORwyw+ZzV=s zP$`@AZEUzcd-m)LTCuejE`2&!!(MlGUNabV&^i;2`DopGIDhrYIq$##ILA6ku33|) zC{4!76Zva>za^zhg&n^jeBn!P{mCBBWdWXVYI-*Pci{5i$Nn-)mGlwwSPH#j|Ews; zDY`s1r@&d%Ncv!-n?H_+@Ke=NrOGgm+ajV{MJK8gS!*2)FxExfzNJgO5&7k<7%q~p zi2Cl!urQI~_MIfV(MhF;YILi6%eCVr?Xus2f5nU4>u*OK=)&B8cv-v_E}_#E9AkGM zIq&T-hComa0h;@(92EnD!PMgl$Lc%6Ev&pVo1UA}WrMhlv9-PTBh$)+*KM}g3BMpM zRs&&pa@#(xpMSbkM8^D%_EJ4lCzr>2jhxU&!gFgL!OSMjt8cIFj_Q7@nC%!ZZb1(9 zf^4mmOlD?grIc9n{)+qLCyGlbnHfUM><#WvD9@=Y`CO2kiP?0)7KWfuy09ta)3y@< z+>AFAVD*m>6l|jSJeQmI9`a?-c}r_8A__2kCEXpM;_ zFU-k7Gms%#saCwt^#+y)iK2sabac6WR;NG1&L_9o{OvApe zbzvv@8u;VHOWncmm5Y7u`oQPcQ?iw|YsfU|iq!4%U7yd!&F1z7MRxtiVhDl&T8>lK>!NfJC4Bm|SM-uCcfS$xX6z2Dh$FXhOgJEf>>Zu!#aS_8@^KXaxLq!&G+(0?Zl z11i5_UzvlE_;W4MMY#5Q${?>XUwVV7j%DTqA7ixSFA4AC2vyAB`Hf6x0p4BtD8^^{cC^i2f8agH zn+V`d^`@?JU)H_x-o^6qH37+n2m{@&v$qd4uzSVb1RjQ^fKj_AnS>3&Sk26WHqsu6faSgL`agKwktfMNa3gYVj|wa}Q+3 z?i$g*=h+i>+ML5HDk^GpKe22saKq*#-AwRNB+w|vae1i+Jd6mv@U=1_JmDd=Vw61e zc%cghQ#7#Z&1Ymb!cX{b&EZviC{)I&2K!{aw(Q;Z*}4-m%Z9mQjnhTj^E0M~AVm=E zuNjag>gz$#|1J;vx~Yr71MccvzR=Rumkz{n101EKleM8@#aPBDt&P2WJJfZv#byuliL69NEw@!neg@~q9@QwrhzOf2;83C^@Lq4dg5Mn2 z_hPu>n6!H>n(w!k(?gJ4i-{cp|Bc=nUtawwS#nhc=^MC}Ws)GyU*dae6gu z8D+<*BwvhI9p3sqravQ7-Qn}&7y^;(GVHR#a|}Rct0%wIJ{fvtM1yQ1qE#KG!<0dh zA~A8O(20%xfzUgi`cmKlb>T2n(afHDIgN{!7PBD+!=uZ+TzY~$Xwh1rkTM#u{ixXmntxy(nzt1e(8X7U_sF?3`8H$F-Ur{@H zqa5UzT}eHodD$tu0Cvz{USsC;_G@GmrClkPSXe$i=(&n~GDn2hXR|KY&)-t~ivx@A zBu*Is_@<~lOPF>KeiWi^=f8Nr?l|;@A(ZyKvpsifzNz=BJko7DKSouN)atjNC4B8P z3+X6Z8w)%ADFWD=eDqbgi4u?TUO4{Re(=JAZ8>DQ1VA|0tv7cJEq2CY@b_97VcS= z89EI*5!_5?w3Ydrx08zk1tgj{9LcvZQQjIo?>_XD$>}qdtZcr_ZJpFI!K6Il!HuQH z@e9rc1iwHMauKd?^zxnFc1wUiZZZ-axd8`9g$-juOldCejrDqlSxYqV%VK>DORP?V ztn3|;Z?QgdM~}ilDSn<6n}?H44)Fn5@TTc_Q5S%ZO(ufR`)e)OxVY@fxF%0aed2JO z>_kR#!>E~GZm&qqoYXUk*U0<+_#Vjeex$Q;1U+2%c}dJ^gc$_93cyIfBZLoRzx9HR zoqa67tusD8eomIfnhGCQ@N(+Ag;=^$P#Xf`kb_>*WaqU`uLy@hk^NXK@K&k^CR_DE z7jUgNEMDr)$c!-p0i`2C!7BS|I>n0uj!T({$Vj{ctRouW`BpAB`1pV-{q0+EW^O7? zJh-b-B!N`+C?uC%*EZ&t`;vaAmy zWX>hL3dZ4amwMVJReGdKj&R(>{$z^AI55zc%O;d+OQ!&wYkCNLo(0j6)4SBHj-T^9#vS$#G%GY1vl zIQHfn{DHn#{B+T=oQ&Y-V(;Ha{7Oy27?jyFz$B1O^b&X#_gMt8=I#~rFpR=9HsZVI z@Oh(4B{TV9J*Xvmn$DB6DBsTbp%`Ha{N+PZJyVZNL#{vWfY4)1V=ccuBcGFr&iRVc z*?uf&^y+tj_cL*u5UXL&2QthY4#fWD!;ce{Z;6OpyJj@3fEs90R{Pq#T%$36z%!Cj z^9f^&3?R>8F3lrWy>q9%Yfz+mLkm&5bbo+{j{yl@^PFLa1po=GVKA>=)zO=IrxBU1 z8A-6Q5r8^Yi=mD~M#hBX!?*9>(J@9aEUrSlXcW16(^-=yRYa5A92I%J4X6Vphshct;9DNGG4Q=OUju=PCs5>&FOtQ0N;BMZ^{!Qq(Ab! z-g4El?2qJYdL&gT9#aeu)#};%)u(VevmgWl;n#nmEO(K1ai2xP0;Eg!Sa$#c zg}(bC7nvNnj&C(EIYpVqZnFCRxuN!w7BpyY24au(Sqv0@W+6{#ntpqXZn6{-g~yV{ zv32It6QFG-V+*BbU8T~c_m_X z3&3?QLC!H7%S5DY!Na#dE8V8)HI8w^0l2Rdznv>Zuo7E`>sQu9FH=%7zAiiX=^A8w zmEcLIJbiSE4FK^6@w3OZ_U`x|!-bvV=xS)2eEGtrTWR-T8O>!5@3LdU+7OZWFmZC-b>L5$JAi##&ziPg)s>eaA zZ|N^DJInQur#7(Qh9G&DzEZ~>UnUjOGz$V{e<4}f8dte#mqMRd>(=8mT64etfw$-v zaSI9oiq3pr<=CHcHPu88nt3gXyY1~1Q!|M@@Xv)eHvE*bk@K);YH9ErA;}lv(;tSj z_N~j^Qk_$e5lpTbw~q_z7Y8U_Lq>zcxV&DkSIJ*Ql_#{?cJ0a^A4RiLI5)J8j@E9- zN}BV^=@(Xp$cqMl497-c@JHLFhO7_2b3H>{{&k~JUQ{i`drb+=WlGVIc?l1Sw>%1e zr;16sf*=LdVLY%T1h4f7m#aDQ=6Ps!dAjRl?Atm8ojjw=$_TV zSwoOaUDV-@=)H-%`dN6TVF8X@)?6J`@vJc^YMU0?Rnai8N~E>Jxxb>wU}H!{;K z!wx1lfpjjvl2xT~9QY?)d`^@(-;QJC8$K#LTxwq74`&F5WTYQMyY&uGw_d$+Sn7a@j}WS{F~I3~MHaYa5ruPaTL$OpXR zI>`^7TQI1sC|7<|zT(_eTtd2>+Z8ooyjM6g;c0A~bmCcNMn)9*KvR#|ERP`f8Dt`( zrHpd0Fp5uyp!J`&cL-x>_`0I%l;?a@2sBefczAAC%aY@i-re0n%sIEix@gINu~@8t-gp0*0J-OR-k0)CAtp z=7QczIyT0|q#58Q&Q2&n&ehD3ak41i$P7-Q(jXR3MUv}Yn{$}~FS?%8ZIyzb$H-Es zdBbWp#=D6-Hi~>m$vhI|UbzHskKMA|Ut=!5BS0Ra^qtltN$eq3%A2n}b6viyeej;MSRrxhD8z5d`=p4O+|b%q(D73z`(VCI@DXky{A1))omu%#0WxFT)RL9y0p8wwGY2?zwHvS{F<%jKM<#DI+1UQ|1l;S)l&de?z=4y%XzKBPM*Jk|zAa+CV7wCjqk!jOc&){% zsn~sH_Lm?-O4lFxEPoo!#og`3BkixXUse=1QlCTud)0LcAl2jM2N&gCNm1Uha+U{8ABHQ- zcrK``C7?;ik?TYLf$TkOxNLp?ByWEY>|dDpCVZ9PCqz+oshgs7yd>HV7@8U>z7NU~ za4z{~E6X5!?*MP+jJZQ3~% zxufe+O=;i#*&p<_c4a2v(8;s}LmzD-`F{x12Mcf{w}3CGC`@Rs#slY6b-5%L$ zvwH4TFKEf@C{<^rr>BdSuU=2YeEbhmY*t)9CmHWmvo>EG+W8>A{1KI8N$W{pJ??04 zBBDzewN6a-(cUyDL?!6Y>1%&OlP0!3VoQZ15)#EL;TM@}n(Y`MiE>iVV}0ktc6^Zvhz0rG+Ai z8@|3Zz2DiKuU^yJe-20Mud&I{d+xGd{*Y(}UtWBNQPi%Nf3Cm3dMd7!=OgRIV+CHD zc;v(26%s1=$n`ubJAD3kgo>~x+24fkiAv`#b@SE*r=DHzzTsD29`;&uOIeft0!s+M zJ$+EVG#97*&ILI?wq!{3MFn0nOQs9A zi1ZFlMqq3eG;hepc#CRxIdt0Kj*Hc1zw5olQEU_@y>=W_E%!=g?SEbb&CVGJNzo*0 z12JDO>{U_t-V7xgE-tP&aN;FM*GAn5kK}{G2OZv>>DEN|UWo_-WHp*?brv?GbL&?m zB+7nBXhqzZd#~(4+Jvity{NJ^rNQD*g*M)C6N*fV_6o{Jq~0r{x&GWS6(zpUamEOCv z?|y!I#JRt}e-Wz0&z?OS<;eN9R>o`VF6=<{As6w4AY7!wncLQumiOu~RC8DF10H(< zq}VF5YXK#Y$gmX<{+|wa=g}(~>I=s3m)Q1Kd%2f3+(Z>B%pFczWpHNPGvBEAZ3s`y zgudE!RUYlkaFk8&|jQsXyF4v zE{11bVisPxp7fhZ3%Y38d=^$-Y@(vnNTuP4CrXk}fdjm=rB3lg_Eo8Hub@ptYV!?Cm50sr z^)VnTIfYP;UyH!B9W|my1KPC)ka|C=r`6MWQfo2Pnj}fnF0;)H2Cg^ipA@fb!P5|J zby8Vk3-ntn$T_g8Xr2XFi2&)c7*JPyx0RmGffSa{z(%LAYDp@()4`}_3_yQlw&vRv zg#CiecASI*W2O6Yp|XsQo8arVvQyp23KE|F2U08?3Y6v6ypIe1s1$^K+Pg6$BLk}) ztT|wXg&|-?@n=r#q;c_W-G2LF<1i}fEc)FujIioGQo{X#UGV&sOfc> z9r6NiNj{9_t1ZU4mVj|P>9Q9*PFJpL8b9c<_;C8QPCbGo0UO$bc7}u)0g}cpt>QC% zMXWGlW{Gw=*6dhKOiqr$`KlMX!o_xhumBdfD4E{fJ^iev<|rMHq+?ltI-2;y#*O!c z?*!Zx<^EZTn>I$Fo+Z!;uz0WBKmvtH`YeuY&X&ZRX=Hra zJvtaYVuuA!GF23-6g(SVv-FSM{Jha_jC}xx+ba)Xt6a45W@*r=7H#e1;NjtM=^&N4 zA$PeJ_1N}A0O#9FD-A}lRK(s25A21NaW?T?fhM+DWZ$<8aHYf58&&v4!{Xa?q@LZ{ zkbAA%aTZgw$eggY5x3C~MpX|GPU!qvgy%x5yeZg`yg`XgjmVnb#8uOVQpGpXP^mz( z>09Kfn@t1@9cjeB$H!H+U1X;R+&!o}BII$)%b=%GwUlgum1>v;MRR7)0!_r}3;piS zRo)cMi_JluPuFd=Gmzv zbqO@G{tQU$gqLJE_iA=6TZTmUY-OL+qN$HbN{b#)hu1TA;}Z2sWJwz8HJ2PO6EYN3?mfgz{bX1b1%$2V`+zgL^?JqyiD~wb<5v2n?v}qv9U+JP6~sA`MhD7 z4W)oq`!4`mWi&Vi5*bU{+V!?;^wLXnOGd^06YEQ`jnz4QDL*5x@R(?3@C)OCh@9%1 z#l+mVR*kv-aH*j6{p@(TxpUg8be&CXISk9OY`H>#U*AX(8?lPSuAMXLou3|T06HbK zo(ebmM(oDw<|ewkiTgnnWDs=OU+0jLi)_MVruq;>c4B&ccGKKM4)@q|9}`>zu!QIN zpw<~{r~(}(Xlp?M0ZQYh2^d8X zcX!7dIQ?svtdP@RW8%#gGQ^TB7mz6fPWXcG5yclWE@womW^$wtybE}Mk9#q%IPq-b z-!-mV@r?jikc6OX)wsLWmD}{Ki+UPBWZ^8)_3NhXVZQ{9QZ!Uwlz{su&tA5o1E4%} zBJ$5l#5{K4YPKB84suQQXV*Lg83w517C_iixwu?=q+8pWDVyq+Xr1aqS6^SBc|)K4 zMYEScw_m{^Ze4MlPN2VG*TXFO!&M@WGbx^PeCR2~tSo45)^+=MG?!PT^NoZmd33AZ zk8M^lzj?Q6qs$9=`OQfQxN*GVsAj(%oI!o<;jW5WOM#u}X#-!B;?tpKTo}nL2T%7U zP|)JfT!>fx04{b2kp1+n5f>%_%TF?5O`nkAj}&{og#iGU-Y)qaV@Zh#JkF8JD0wx4 zSe`FSNj)U7OZC*xA``}_A4KK+xM}(_$~t^D53y06c&JpMJG)_5 zfWELi2ExC5QN~P*z^Fa!3tp{0yfR}7Zh_U~zW{j!u8i24zP|^JVR+Y*+v-*(Adbqd z*+sBjfIrl1RM|d}M@6@&s@Dyq9s>IMJS*`h=)IAIW^`POl8VY@Xd4+cj?d2*Tn97i z4>ubaN~T(btMU!Q`1tun%kBHS_CXPZu55)4stdy^ZHDl9+uiE{{Ea5Uu?d?~VA#UG9Dgitw@x0(znkoaKMuPQ^IL#@EooxyC zCF6C#Qa?b*e+8O4OoT?TjTpmAu z9Pa>>$Gw_~2$ddLMsZsUU$|o07~A2e*gJM-g?gq!*Xx5r7~fik;5qNv`U{z%vvF}M zDJiMMakR`K(X(~y#i)wKor%l8VrScP%yU`IJiF{g8Iif;ySH#v)6v)0iat?vLWbFe z)}jY#QW^I!Nt^p1dCE;9{0U=n^ofmW zQ?;yIti!wb!IQosSegF4c4fiC6_Zb1PkzOe%cB13SpWWdsc0pGtixt?`@}~$SK~Yg z5lJn7zw$hMwh?d%|6;9F21|(R?GmBm#wp(M&57n!l=vXx`QGebscpk1Y6q4pVcAwt zRIADw`E6D-T0Ltl7~x5L%m83S!wF)Fw~b`OM&)5`@}Vi!VkIoMu52SbU$5*Zj{v2n zfrml7{?0JHZS^v`@A4l79W`qbg3PwmMfxzY-f#-jvh&px%vb#@*`5b*6I`grwphC= z7SQlT*li-p_6Ee;{S`*7hlrAT;l^ytZHqh3UES}0=iTYqt=BUR!c7VN{T3pYpMn-V zyHcr)fe~s0zTc5M$e8_!!Br?(o92$Su9{UA(Rxl`|XjS6j#cQ<>(cJ1WYrPhxBEL(A7N#ahq`>%fOCb548OGb1nd%aUj8+_3$ma$iAyf|2R54H86eUA2Ou|vsjKtxXMemY0x#jZuI zW>i!x=vy<@lYpVQAsfrTYtK;}vD83YK-0NHOFLoSAIqAvxn$nJo{MHe=8o{TklQ#y zot?l7EIL$ZGhN#gy1sVtj6F`j)sEYB=^#_UXV@_QhL=Z2{K&pGwFbQ28^B78cfzxT zuAarg3yc4FmoLx)v7{%2zQnN{?2R9>UlS*JI)YtN57)qlNW)xRPzS+}f z{tsJU9TwFabvuM0NC*ZYC8-FAh%^GyEiFhYNJ*z4t$<1+B9emC(A}-1NS8<{(g-3$ z$K410-S4^2cjqr3A7;+XIq$pQz1LoAZBo($7)4W7E(WkMzVY??9Y&gascnSAGw1CkiCV7#SJMi0K zbbXxE%Bwxkt%aXk4!Mj79_ocv-xiC{^z7us`uav|yJu#ja+}WssWN$NTga4iV!WWC z=vfJUC;M@m3P?;zkS_1c^71RVe0B3``sDQgE)~N-%u@K-6)-6)j}g$wYxPD2FX%I; z-CL@MCF7$<`h4ldQ@aBwU(mnyfbI1PSkE!K!TO2JS{(Zal9a@Fw^l0*d|bbQS@@1jRvNq8rzT8c| zM3u~ZMbW00?Eqh$>7Xo~FkIrF0IZB%4luDc_E70})@EjAaM5-bq$xk-zdV>7&DzuO zsGBY@wJMb1O$&!PkKOv@A(39eo+F#yXv-Q^xO zwu}$?o-m5hqi5D@0$9;`Vx(#|V^!a;e_WeNi((I)+VzE4k$R>L#h}K?9T#$Mql1X@ zC1GD_m-GV9<5J{aC?J}9p|{b~6VOF9{1L#qSbOF9aMy@Y)UrBhAtTUN%VXd9deqUu zgRzfkWAsz9PUF;_O?exvA5>E#3;^h$dC)~iCnqfe-0T;6R0M+^@)tW^PyWSV1_>g- zS+3uPdAb~uLyr69L`dVq?-M+^noV!PsvAIB;kEgy=@qDWI23E>A@B7@Cv)(QO^CEL z)PNj@-n(YNCPx#&z@_jvTyTnH56vs6s>&jQLz%trpI#y1B*ul3oLoJpM^f|t2?Y39 z(a0Z|VpO17KtlGDw+8nfJ<8CX#I9nlK6`2Y@PW7a_j`YG)?LD!u2q4jNxu)m*&|As6EvYyP(HVEntZ1g*Mc3{j*Lq(OnWrIvK`2!4_FM@CU z{jo6~d5Ze_G=SsV&d$%r0}UaEi?%yOBH%O9Vg|>tjycd9V(c)Gqwvqq&c21%sa?|0 z&`<>?$#Y<tA2Xa>ly4y1sz}*B=-S zGt@8y*;ld~$NX1hTw&LWIke)IJa)~%*daZc3L;Tf6)3A80Vfy}XI8g%r{hoiaxUbz{Dx04C0_5UFg3Qbx_3z!gSKSS* zV@q4;q%LBhFYpfR&hF3c?r$zWtOx#zl?%tv;r)WuHP$EeB(y@N`J@|kMvfgU6s4qe zH`Tn}ZErcd=wlkp>26#K#XCt!)*m%sl--y8i{r3BcL^IwmWeU8+Kr2wMUWDVzN3#V^O3%~smJR`M)E`lrA zE#+?4%f;p!Yx$Ka;?e2V$8!y!^uero0Yw?jH;>Tat@Eq!Kzysw?ZeEZoUsbs#cYzP zC|VX>b%0!3fb5w{XWeZWZCT9YqE5$lOFa2M;3q$8GE0e|oC~m1FvR{3`O)&2hVGT7 zhSg7uoR|7C?9&b=p6R6t&-(3XQ)Jk9hnOLEqpXiXC5mfd|_nUvb@Q z?FbIhWj?UJe3qFB{}WZ^HrE1Pq=* zP){{XiqEQkz@OjpzIz$rLj`-%1^zqsUh+8+2PZr`pJA}^o5*DhG)2xd`dhNs$cDOk zjpH_~MMq<*ePQlhQ=;3X?oY3FEQ@eD(ZUCx2yfMW)@xAB?`m?9-U9=rU$OJWQHy4d zH4zMVr1A3|Yj~+I!`SBLJD=Yn)%+!$#y?F~LfXuKF)l@EN0yd+W8R>Ox0J%Dl~mC^V{$dDy_ZBf0s zZj`UW*X~`vJ9o*&a+T+3^kKLOOd(iuC0OZLowvS%*raR5lznchQebFL$Blj5A%FG> z-MGy=emn2s+qv5vuLu9c=w;;1(MbJ)xsh;rC@#5D*aPFo|Sr^vE-!so=2VYRq`jzyLiU z;1WLEnIJ6^=TxJO4sa3Vj#8qto>ndvMRHRYaSq};Xa$nM*=g`>2U1F&)oBGz4(q~S zKu?wcUX5nx?aR6X0J5l;MYo30<`mm~2(B*kjybOr`{@nMV26Y!Y%uHJ1`MgdsdyP< zdf3^Z*73ch7%z(1Q>PfGpn3`2|5;p6kRi_hPVu0r5&1z$R8J^cXr%rc)2;PcTz}_~ z7;4)GBl!mG?t>?+e1*c+yxS2WD8}yOYt>&!sT({|o4T4U9!?Yf zJe;9(bJ^xhmfsj-jqC0|+oB*erof=_&Z0e?Gw!SP;Yt+IC#T3BZe4V<-ki7so!q>^ zwJNUU_+cC7V5=@;?kwBd;Wiy@nWinlFFIE5%Ue^+AX6V6ck0;JJX(7X&@~#z!HoI7 zwo264BUG`(g`xDyx|%}kPexW=9}P(F*lDo)23wIryYrUu6)tTJA7vRPz3s&y*F!v{ z#Ts>lfa>?s@nda;BU{^x%AnEz^YEPp5Cx&ti%4Q2|V&gvD^6ROuhR=(o7fM0V9E}_JpLmG3p@%s5SYK*(hxyVyY#Au! zH2vzq;u5WN)uDx$KWlnu!fh%PI$sKACt%JlvHkx8<}fRc@ma8G`1~wUQ8+Irh)r;U z-YXl2cjFQs5AhgYM7l>`kO zt6-+JOpGW?|GUpw3aSF98Y1v0-I=Ue&keCa2tZ$*>BV~d&OC09_uvcu^d*a{gUV8v z5nNN4pisH<{ne05$3aAZgCIkBVzFkt^x%v3U3m@MxVGP%Lz+6HXmJ0X1GOa4u_*h z1211>k8Ru@N7G%ZirS#!o~74%S)oOhQQ$0Rf{5eRR69-OdNr*kH$G5}1)M;~er7^@ zy~4i&VhfUyT+zz*QOOt)1&apWY?~aURC^|}&bOgQyE7FX9qGEn44vU;MWkX#<)y#m zG`7Wn(Pvha%6KZs_>YwzMaC)-@RyYz_rWsa;C@UB9k3g!b9}gJ_LeiNO?aqo%#XE2 zI5TU7VlPA%nFr_v9j9LD z-H9f*mC^SZMV+q|K!hHQw%h+M25%@n;;IX6(~`o>D0xaU3S~y`yFOe_{xi52Ttn|4 z?&Ax;44U2^jEPU|5CXzOl_j*iB!e|=8PF1RTxRktB0-0-5b}9eD)(^lcyO;V-ZsET zZs^iEGPUj-I1yQdFV7GHv1<+I(M=&@s<4X_p1`(;k3`F=d#b#7DQ8pmSJf?G2Bi#9 zws`qLSGdU)4ozAgVN$C1$i2dYIHFbf=nH?loPxNxg#g}^Vm4YRS|UT<8lq4SRqiza`ubmq8>EV1pygz!4TU&cgkt2}aJhquA+vFhyV{CGlQ z^(v^QgMzgm3RbS?SmLQpS3Y;OM5#VPWAaR_AxQ>t^kke8YhIAJX66pRisrVq z*Y+tyKt?w}B-&<>4g79>5*VbL*z#YCh%rsmPY*7n^L=rVAWXMzoQR|DWE!v5CY2{-Vrva0XqNJeUy^E{n^`k*3Re@%#o~lNN z>(sYz+)MRW*J18Dd{ZeYi~=?z9MH0N?)Vd8lM7yhEcWBak68^*7|{mOr*`jc{gkz; z+kfkD!nVFlR>ce(lszIjIuy|U6kr!pg}1H>|9uk5ax$-RWr*-_LS)hqk(CROk$aah zpKV#tOvgt%K33XV#_r5}s1q9WQe&V1Xre*2EMHYUMI=QBA^=s z5%J=J^&_9O;p#>sUNm1`7Kll! zdDErpl}S{n#aaT0R*bx-H21Y>?%uC6Ws^RDX4%lB{oi+}{H00Mp|cUj#rqSY?BDk| zJA7@p?L{xWyK6C;A?l&;T6MDL;i)(ZsH<3>FcLr@@Q;xo^%G7yF6*}9PXa}r_+T?Z z>2iEN={@{4ywDQLn1+U3qAIGz(=TkFy(*~H1~f$N6y!#+uan#fbIg76hVduebM{hC z{+=;)X?LyQ`RI0!0!THvzfT6e-`+&JXqs4fsE(g+m1GVu9ZHmhXZk=f?|kV7@@Xe8 z!2~2u4Q(5}Vb$if9Z^HB!h&3-WVL5Ec&dRS36$zj)=VoGcY1tJZdsO4@qqg8wh(?} z9_qgGDe=w96$E&bns02!uX;Ve_M>ns^H^g!z_$LJ1X<+Crib^nzo&fp>UW!G0U~%Z zxzWwN0c@4IxeQEU@B$5Tz02kqZ=N2|g?##C0puScBcVJ0^A%&JyaS(&;;e7{X?Z4_ z{5+_l0&Z;TA7fO6erv{V1LJS|+`TAj?;c4JNyPl$`Mr{iB^DZUB{++2bf{|D5@V=1~(>tRo})@8Bk(~&yp7qvITNv+6(m1;#gh5PeSv}R%f56T zY0V$+9lTS>zJgbqP6R>1J)gNfKWV+Nz~H4(;Jo}r(6-c+#cH2=0Sr#2bq=;uDUr1F z3HeExwRBnRv<+9i)ZZH~7}Vl}!-_M#XjkREVApsz3zHR`MY3|gh7fd^I?HMF?zrzm zP_2;CP}B%r&6ZAdmeC4M*I@xEJ{}{i*Y2IBmmLqU?<5fJZMC z#rC1w3*45{UlT~bSdAFDql>dgqNBz3`Fix;+mh?QNs-tEuP;re8h;8_ucUO#b?r5= zyd!xPY^CF^!gsNDpPfkhxy5iE{+@EJ1bj^2DOeN#Aj!%Kx}BQ-IJ~5Z?7CSqG0T36v}uR(0IDrZ;VrJ z0gabN4+707?;1tfZP+Vhlch*BN!4paF$jh>*NPlq7Wb{{mV=8dzNW|j`*~ct1mevk zC|mL68FO2^o1KnNBCy06WnK4X2{?}21NGK!Y&pV1Mu1f{P7}CM|Cksr(Q5yQ81Pjh z{}k~ZTMW{!hYJX!C>t)cs|-GREafag_{Z_aaiWfzendDcZ4D3^Dv+>`mL@_)X$Ta1 z-E=L`Cxl%#=%q2excV<#Ch(&y5|6AeoF(90QY)8%p=v}W9nU_|*9C1pbJtQlEWWCG zXZ}kDz0{YFw%EQPcOeIp$W9JW{0h%MM5tY5p%oSULTuLOpC`Xpy zp`-y*ij0W3TMc8Q%KL4=Mk@&5FFLnx4*2DEQ(@4J)#n5uZvM!P=&k?VjE4m|n-F$< z=KMVNQKY!$2wYNw93@grc%?IEdj_&KbB(-xvoJk+*S5o8t1%?tM3&&AFdm|SVk*QI z!myqSuj9k*8&-o?5UsVvRJ|xv(18F2{(ynpxyV&%(OY>2r$8$wBf5TCM5L}1wktdu zCn30KWg0LU8Ze(EHg6m5bUOvo#+`I*yyOWxF6_GIn#;1YKpNl&%?RWbSFA{ zGEi1(NGxe@c|cb#RG0)pP>AR3)yiejQo4)CSFwj7V3l+4tb5ZHDPlU)+U{rh(-n<>qPt>YT%qWIzLFPdp|Zwc%08&0PBEQOSn*p(dl>WKdw zzg363PK0ud@_n|7;e%VB#Cc}^`}CgA;P1go*`z>_*(2v+J~@ixx_|&B5NVpAE5TlC zWQEJh!V*)ZoZqz?^Lu0Cj(a{95UNTx*gPB9X6~I~kTIVy&;ppMFDEAU*b zKfd_+(K#U!>cD)aR^*Qz%TUvZHVmfS{ebqwy$V~}eCW7W*3|siTjngAumxevt>+^M zvmb3ZjWkR^U;6`mahieMzdjv6YPG|jmA`6OMkHHd=T{SiFC(^o`Ws-`C)wWYHocr_xAW#&Xx8rcR!%sogWlJoR1Nb~u)jGw90A>?0F^)6D(;X54ZtibA>{a### z)4^5yyY&+L^iAMX<^|oM{`^7j_s=%D+a8p+vHU2H7jE`?dRU2aKw;(@eH*bZN&0gH zR{Du9@w~*5&l8fzOq-38>%&tIp7K5(#}aK-`R|ld724Iq@wJiBJaph8-uWmr-N=}- zZQ#Nug06-N1#tk;P^Rd>98_$ouIScb+u920^Zk^^4U|54LPG#@JB<}Rz5%u`Saq=! zG81B_gc581`w{&e{QRH#$M`dhhUj72xNp)c5=->g*6)D;Iv8+XY|s?KnY}dDapvHS=lHixTLJ;&yO1(rK6F%Nr2tHepn~~8ffW^QF?4@GlErl8N|rNNJIg1AM=!N@ z+KI_FHy!?$kjh>-#sk~68}IJ8E^l@S{H@tKxj;8`@i6I4B1Lve{Wv=e0>%k2*t6m~Gt(BM1ho``lfPw_tXR%%ew-78xa^ z97SrhxwKpcXXXNnNJYb@vn-J9L;d5taj~L$+Jla^wWfReA#)QRDSy(37KCJx)QN&? zSm@AAvzu-$ze0(2ayL5tlKnt^nUIK312Sg<@LMyWiIk5cJam!W*=Tz=v6`YJFxJ#- zcVM9t3cg_E{r_aXk+hItt@QuPx)pTjoAfRq*THn%Jxyb1scYwj#rA;3{R)cj*|!$){?4cpWqcsP1nwUqzN7TQ(p3Ax7-5lrZ4 zgnn?Zcl_7$f6)}qT)nUYoR^NMhSLny_q(?TtgfW|L8+5sXOfQ0oqmz!ud8{+y#7VP zK=x_NQOY#>x1H2WQkr12X6lxRe)DvbPDutw53}^jHI@kJslzLu&2=$urQr+#gF8M} z_a2U{HWvOxoI|?Yvdik-2&Z}Z@?BcpoBP%uS0_$^z-(v}@--dgG^d?eL=|8A|0eFG z42ho7@p@S;k5}5G4#wfd_;c^_-ikD|UIB12qCw(&7831`FlA(>kCLBeAW z_iZhtNt)Ecgkl(b?&EVr-~au`GzE>nqFsXyU=^^@tMdC78=#N$>oBsgl38JUT!JxT2jkMJKM-+o4yO{79 zA1{$}-0`3{urFNzPpXsJwJN{m8kWY5-jq{khtXSG17se(Syci&xxNG-m96oA}#K@=WJ{@hrm#_s_|)ytrJIgq5DMw=V@ zAqZy6NvUDLdd}WH+pG=~{B_D_yw7|I^{%_D!H1FJ?%UX)-L?9cpbqCO&B?B3CM(?M;p4b4}dOYy>iZoG4NBZZ{ok(DmXl>pd?zT z^9wmAzES^mN-Q$^CLk;aeV%e+F62k=O)4LEM)y{gEaH=C5##u37O1qf&1A+VNogyP z-$}iMo;I@AEdBdUQ%BSJ{DgYGPBmoG_tu)C8Ede>nriSsxYi5@6o}j=OE=ev36VWB zD^7{};1TV3ko9gWKH8P~edt5Y_3PXm`pYKB?TZw+CyO~|e~0%OvhN{B=Y1%Hx*nI^ z-VECZ8A~X#!0=m83`4IzO5$s^gdgN8N%7jfcyYZR$=C9NPR8~z3KIyF<^5VZ*3}Jo z#a4k5>~Pr@ky2rXQvG1JX&mkPXk;d>?};4k(IpnfOjxc%Rnhy~2+uB+fgium=IhM6 zd86lc#u0yi8)J?ngx$UgU*Gm>&!k3+lo@ID?iHoh%Vb*Yu75lZcAC#!`P{A5rY>n) zcmL!m04B9G_&f1d?;or?7%sdXu-JiF5xQbU>`78NVy9Aia zX#KHk5-v!sEJWQ%teNR#GxD#Qlw5uf54GP~6y<1$u(tiT4FifQDFKjc+>uT83(ABt z5?LsW_X8QH*A==vmOW0R6lfc@3b16gu|Mtl2B}Vnu|?uskSbc_kCt zGJXG-X`2yaH3Jb!JyD?2g!3o?!>0s&AqZ|o(aFA(0p>YSc?Yk2d4UmEk>{XTwd#f_iXc_5hqEc6gSaHfKO2s1~4`8XPs z>>FE9Ff7T$$c8M)m&6Un&wPCL#L6Z;n};fA_vGz=#OWg+y??Q0(2;6@Vx0utFhAs} ziygLqRH%gW2!N-%fH7S3*`#~GpQkb68CFA%WBc|am8O&?+uI~*if>6r$@KNth>tMI z?&ku0q-MEq?=3JPDx=BC$%TPTQt&Ww{<7)=B`yqoRI!<=ax&-8E6v)h2aOhT4llWi ziHY$(9z9#}&G8Ikwn4A6+>!ekePA>3oQFk`Hkr z9w`Fe&(41PO#aD14IDR46B6Ee^oSKCx@B}>k~e@tbo8@rw5-{2*c~(lY2(3BC6!WA zBvy+7tE#30@*yfq`U##nIhxkUm?@(CS8Fjmj+X+5H{Gg zr(uvmr-9r-!23V|I2~wSE^mG^wYtc~3b6^?XT11ylljU_VFfbS4wrn3*0Ae-Jri~O z>!Vm^17u0SuJHl8K5h3^|JMF#qVQhi>tiQ(eMWt-x=9s!Z=;Xs!U41-Oa>3bxnZ}E zq(fH%F8-;|#QaM+SP;5+0TtxJZ5i8&2}8M7W3%xyyXtRp7pAAD6)K?i)-?KFeuhl# zQ0165+kj%SoJAvCkoc`WgWm&C8Wzs}pkm({LF*XlZ+G4&I)d*F`vLt4;K%0esgLz# zIVr%)80`p8`;qb^R@t)<6C;NND2-B~*0lo;m;&v=MR zWSLPn82FwltXQA825k52c7=RpM^MiNzlH{6kzAPjX>v3^fEaTwAq3i2zcrErGb_T8 ztwYg_V$jlcP`f8h|eavY4&TAtTMOtx!W9PVo_=S|I+*V_I z%CU>nVlXQb-N%M_TLD*p2HNDG5Ctw2sSjYd{0>;UDhBufBl8wQY!ip8284xu~FZ# zzHVABMrQd6OB}6fD^o3G9Rm!k+kO(2dt;Wt7Q=UtWis><$V(TYeTNteX{NwTFWY;? zrt+3);lOUn`qHQkyQT%4WY`65j@#nsKlgoxz8|F{w#|O$Qprsg0BFH4_AciI-4k|&0m%BS zvgJx1bpyN$O}Fgh5xtgQ4L{3hZ3s}Eywfw+twpI*trUeXgg>#XOASljG&H3AGo5BJ zQFD?XvP0&gHJYv9@1uKF9>PiEt)9A<(^rHAgq4us~Y#p8l7qmEAsc6EN18ALJ^fvZ;CvDWB^X z2uRQ}Y=-JMV9fMRn}no8_nCsG>jF}c3z2EHf2qgFUwaYsP;31gfQs6l-wP}=7p2iW|HiEUgs23iXr4D+49n8>tk<%yg#%^L9yJ}jdwRr5hpdcgy zq0i&^J_A9wR(FH{HyWu5+gH|x?iWt<>93Fs$SQhpSW(m>yKH1beUvtPpJI}P`;wpJ zwNg4_wdd+T!XADp(Qt5FvvuFwnSRM;C|=;8Q#^2;Y)ljnW$^8{!ST$CQmi-wsl3w6!p#dFVBwME1wJWFZ6qA#{e zds45!Lf0awLDdv8jq^Q(J`hr-KQgF!h@jFiH~DY+tY#2gHhg>utA@n|HSz`ZAXZoC zVvUmm%b09QIH%7+*e$2}m}>|FyH#|9*IXF}<(i;+rD;JOa`g1r=4}XG>5|KhRu%84 zTi1{upP*$zV*fbLtWH@zPtA=k^xccT&_ zjGgo*{e}^7h2Bx~)kZFhHL+`e*u=xRlYh(rIMY>x>i{1+);Hu^bo#U<-m|j6iTg*YFGtWv=tIIw6B{WRlI1JaX&@CBAQMTyfcImgk0CMKI45H(nas{m#hGl6$LnaQvlg4d3{awICI!jxsnb}i)aKtoxD01Jx4&2xg zXbvcR)}p)+9a}fAQ|yr6-~X|l-qhfI&JJ`h&>Qo+(AM^2eVt4|$W|moP!P~Jnx>|7 zbDm|9+L^Oo-|(`V(2AqkfOo(1=deN{z-K}>ye&qx?jv%_5aXc|MRqEXmRF_j z3q|Zq-R$K>CvWk|;XKGbR^o7bRBVfKD_m1h#&?+*(60{Ar%2x5a=%!*vco?= zCL8HId$tw_+X3S=&}U{LkH-%AeNjAW8d@-6KoYtPa1nfbCHUt#OgH*D-JV0#!()%j zUsY5DC|PGog0mCo5fohx5RwO^yuCKF_x|on3WkT1BH&>jy)^yRVvY#cz)Y|xcKzEQ z?h6;KL`8~q(7QoY!AnHAe9t5;q5F5$1@&Ud7dFC~NiSkRD78w$;|)DYm4%##k&62Z zElR)6;})I!G!_CX!}%!b;BZ4GgwhY1R8F_KxVg^~5D=tyfzo-V6M(FX-5&U!+Shex zz1u`KuLu#-ADm2cW+s5AL6N8Qg#Jt>{tu#ij(d!0L8h86^X; zuGW|rn@U3C@E;}X$lQjktgL<(kof0!-qjC*D(*_Q!TUC7OWdhJpo^0ShkB@eQRVgl z_vcfm)-Q3ROtz;oZQV!-?+iNij{by4v{<+WMtO>m1|W-MHntaqe^&vaA#0CvZ_+U7tT|#u8KW3e39- z3JO|)mKY3L{Rz&o8iPqrjO~3e3&_pQ<#|PXvIhd zOFg2C6N`UQYuAK)<<)p{pt285Q!Ul_@1IQ8h4abom8tK(6g#@IZLhX=uHDvIhQjUH zBLmv?DSR@uTZ<+^O04HHl;Zr44)@a#djea;3Hii=0Br9FDeFO442u3_LTo-ngL>2W zdc)(m+dq_moyEPjs$&l`F~CC&DPGe~I8R7q;=21)$LO;8C&J1n?kV8rElE%AI1Ds7 z(eQ7?m$aNBO4p7_-&ag!blmG8q1As-_4pP|ub>6LMmA0*=2DmSjRtE1!Z#Wb8X+1% zJQ4O+a572E7%@_ON~}(CHc{c`Ef+dCuHEP9QsBWddou+3#+jGJ>Kg0+L($+<0Dg{1 zES9*SVi`Pa*&+D2g(8M>hOtEA9W>6S&!0Sb zyFaIhFhS@hZ&z+)Q}k7O{glu^@(QA=OZ=C2>!_?mH^$6o2CBX{Z_-7Q1-pNDV7`5f zt^TO{PGjNw^^h0Y^LTDT(jnGgWJyrIykaGOwvd!{ge@pnnoa1@#vV)7q1JF|XnBr(7vei14Y% ze&!C~KwSNW~)v^86j)Bbc$fy{8TSY(9*6S<)~*^Q~E-2r+!vED>-qNvI$9L}I- zwK$BSTzEBkCJ8gs%y@u6OkzMnX-SP?kkl??wF@_Oc`@z*wxky?Re@;E634Zx@yxGc zN?t2RMGnI0Vp`xjKBCtHwG*C)g zA#gf?t6Xy&Se^Wcwe0!6*>Mh_#@1Us%19IEZ%i*^*iCecY_PfHd~{?Xvh1~>;EkUc zZa$E4+Gpo7bHgD?)Z|k|7ox4;;H*EtqY_^pc3sXmzDPk8>CCL5{4>Va=zF9R##zW|dIef=;=1W}b9~f{LF>uQ^Hj$G%4Z~9XT$YCs z37Y*}YFUGd&&5T8%;_nH^CKe1?9{xulbV*WZ;DlQ72hzd)~pSBwD21SnU^djPFr(Z zk{4g(lxa#5m3w!DCS-^@!`^u+?C7DcohbR%2ZoBuQrBet3>vW-lc3lF!=bh4?AoXq z3c7QsZ9Ah=Dz6JhF{Pz7toyfR^;AEpG7ynivnoSMUavAyHbt@Rq%p@DJ{<*|Tbn}bwS?`tjM-%#7VPeXgY}D0gFm-alJ=o>(OL>?OGg|6vCkB_(J3a#;eW4jGoy$RoRo z<53KW_rGSlAMhON&L*fx+iUXXKRLQ}qS@hq8;CxY@l8MB>5j?Ujg9H?8vf=?rR?AJ zwc{1C3$$+2oAb#`i!qk#%LDko{QSy<3>{xDHl%$JH?2$RRaO0bjbO)&;W8h%uu{l}89=&$wnW%k3 zCyGPJm8iq6A#}lVz{;l9bly}uveRKlUy9m4(k0+e zQ7NM9K38Sifvl^ejBu+#q<~Oev)ss*bAM;GdM@dGu~2o zwP@wgF+2Z0w)^mS$S2mJh!#gne>HzkN8OFe4VOLkAHUv9YW`{L_cbzo)%ewN^fHw{ z53&1?%tk+;3-t>oj@IGi9B;?y(Len|8@xCujr3nEp*JJ^25b)zWaIqY9AmMxwLWI$ z+6fH|iPoBm8|8Mg{os3wX>X$su-pDs25cR}y0cFw%G!5+voY7MW9xlR*7+IMY-xjg&kzSW^1BiJShUekHM^O4}g)1AwV^ggx2$t`3*A62U!nO$_iKH9FtKWrgW%hfd;V_eu|NGiE=*nzA6YK7 zPCYw7x=x7esNuVlCmwD1H6&m~8_e-RtHzG7uE$a@1WsU3u&l{qj8VNR8pHGT7($}w z&n^0k&T#pBf8y@(Cqxt$ObPd;&|sfUHOi={>9JbD)J)Za=m1SOA0Mf@9Y&Q&AF=-W z-HU!{ZH<{4vX$u4XZi;fE4U<&6*MIpmZCgdh1~doDI$?MqRTbm(z`eTQw4M!Ck%{! z^}Fszt$yqANN}l}J?i&bK-0bM5+$ykP(Nz+mEFRY2%Xm4OcKvAX-t~(3wT9^`cSe& z%LV)|{?g{)*MoRXTFiMJu|+uZ zb~&b9>P@v4;G!lA$hs(DFN7a^k83={cOZ&LoZpS%$@K_tqSKZcnBaC21UmwTbj~oo zYW0~=VP}M^FXb8p`wp3u#<4d|tCd^c{VCS?vt)RaLC>)W?7A->u5giLCOuWp3;O1K z&YvqMStVny_pX%4;d$~T59(}suV=n9Ei*%@f(en%r4tR8)s!*aN*y{C@_a_)^=g$C z_lW$Nyk=g9;7zX+LYFJjUay|m_icUS@3KZemc~!pR-%mk_n_|yCAV2s*mGhfBNS$?j6$6Z?l{J9r+= z*`I8133;%R@x*^5*<0}t--8)H_&}SC)z-i3ySt_&E1|*%WQxOI`PIVRs^j=0w3}7{jDZZX57%pWCH%4 zJz}|zDXGn_>oe<>zuTvZFHngcheRyr2c&f=bhr6*{U}_U(%?QHKWKwRT-)bz?_B8` z1+l6f#ctK5{n($y7<=*gUk6x?={?wO!+QQnlPUs<@o3E{r;f}uCd|hh!2W#*jq{X( z`5rBp;r5-eA$Vn=T>4MZM$PrXJ-|;)Kv)0AHxz&|r3~RO-VOns9#*}*r0Ij!DhX3ds=Y<}S@`DtsM4|KRBc_<-}fB@epp5h=dVEI_>W@f9h7xl^T z0f?>nH&9uTp?|!azS7rgEZ4OfJ;&nz)(Kz;nL$MEz^?s3)qC!qlQS~*8DyQ^r;Gf%u{yFIq5@qhX{s9tvBRHZn zKi1wK-48wx^^Dl*Nk19A(JV`#Z%^kzFM5TGhfxyS zQ@%=0wf!3LrWx~mlj#+Cifgj-Pa}y!HXu$?_}H;q98ch z#dU8S>7fmtI2ArO(kLc`E1f6H^w8Qd?(-ee>)RfOw9|9H!WI?>>}NZ3B1#-tiYczk zOuxNRXudJoW-G5w<+I_&=`6%w`s>0A+m?rChezqTILn#$3xN2+Fvb zGq+uDmGOvWW-0mhc*G@Yqcmye18Ra)T>Nd${(Kc-LEx%~og_haI|fhmr?5T`u9Kp_ z-xJ;E>3&W9(gxQx{Uo)*)lTVS?UWUBkZ11x?A6^L_FU5B?!Dfg^X>JIsAZP1=ePZm z>5{)v|1(eJz8qi2E@8 ztmt9-j?Jm4Js+EdN?^Mwd)%i^n$5(5KIEfVXsw{}fnWRfc*_|{iK<=h1GnBw=>r2J znh_7R{9?>h9dlHEeOJ-|QMEhM-;_YWV_{#C~htZtvT#jgkwLcCd4B z@iyNzjeEnp`YXU2RuB}`VJg!|1(4Q18J zbKHIAg$i?Jk(Y!aOMFkd4TAV2+OUX+eDK-TUgOj3w_&h-`xm4P*TU#I29S;9;m9~w z5N>`_HJ%|U;yqlSHpe1U)4GAWr`ptDX5{@0CN!Fx2Tkmvs!7bzLXcvrVk;2e56Vh^ zDj8C`^Q}KbqT}Lg)cg0nS=i5tKib|dp|6XrAq+_bHxAy**($OR9u~Umlq;oM%6y%nP<<=m5wc%kIOghiTJU#d@JZDd{X+%GCIwxPq{80vn#7zDCx6In> z{c)qz=RbF|Yu+N!_~8^m9h=58m#h0s_DDFoXmN4Xko+vsmF|nL8S*9vHj;Lomjff> z?e6St9|ysN3#nIP7scn@ei5~OWyP9@%4oEH1vhM5Niy8_!Uv%}zSZ-3=40t9Gt=Z< zX7OZis`m4xsFNx^u`PrA2JbQCmJI_J!qIg9(O*&~s7$5P%2!VUOp6Jskc5gD56OFI zz7<}y6{2kw*`)l6xs-JRs#r<+bMvffzIkNO-03_FIn8xT5p{KBD^=;}%6{*ZYh)Mb z?8&&D%+kv?X0xT~S;&)-%9xPAbE2w?mgb!HhLgME>QM}kdN{PL2JwF##59gI{VFxsLmc(IT z03gz`hjngLe1rypVJFER$qTGTp$AvETASnSrq|zuvMV1J%O*)J8-gGRAXl}#=*EQf z$UypDrqoSW$)ex6VIQMzTp^Y{@E7UA-SbcTa5c!NEQ4sADLY-K@FAPCpPvOUU^2C} zOE&CoKU|3iAKZU+*NmW57dwDmfHFDYVC8#MZkGtn*Qm#1l|N10c{>7+!`yif+-Xy5 z_+>4Apf32jj4WH#N&Yzk9+I6jO|kmMkPS~+g~61C^QEs+r`WPzMs1;VfBR12Tiix* z$ya0Lpr*-F#BhASWLyy={WJCC!t*Cp7Ng}j$Z?8L3=y48E)H}}?ydi_7ASvs37nb` zR_I9umvZGNJm?C$B1! z@r8(OpM43S&S9n3R4!tf@VQTfE%J0a>H}GOY8ywQ@1K6u)J+L{#{;3IS7IKjw+`1y zEqxJQMNN{j7@YJk;R#tNi>-C*oUL%9fW~p<_ZJjr2eNZc_+rJEzEB=q6L3FEaJ@Eb zSaPj~0xJN&WpY`VZ`D1+xBh*5@N1kGqsN1n+8xhGn8X{l^Wwk1GL?e;yqKnNEZnGY zB#z`Giy|D2&yQ_xYHX}eZ3x6*%&(O5Iz?WcFbHZ*@oKQB$(dQWOQHu%H{UM8Ff2x4 z9QhiKf%i3rnV8_LH;>=$pChrEM7h<`{h;^Kb~$2UOnvtdRd`X}YHzKe;h6^hHZp-+ z=Qai`@0L?ewo(=em6PMyW60M3{FxakxZX_v^lX^SJAWxRTigbG87A+gw8r00ERMzt zu2}Vca9%2Op)OJykI7&vrkV1}und}%48jZjf{S~2$^A!TAg0BV;0!EunqAkc zX4=$@G=u2J718k=%lR~@^ER@&|C0Djd-rA5-2G2cYJg+ylTCbm*9HytTc1$IoE<$K zt#$?Vz8{#15E{2uPp$ugHdvtnu>6Q8oe#(cYR)T^n`&wnJ70wDo!q{Kl>7Fj%^bJg zna$OI@p0Zrd_b^-jPfD~v6~euuCjAyRfk#a+1IiN-^G3w$f)r=F-2Ob?XELDSwNtT zKW%kunt@=c{+t|kWTNjhtG%U-EROXg9?2mwB_WpA;o#(lYLK>nu=;StoTNIG=G7NT zeUV0Gz&v0vp9182$7Rn+PSAk}BnFjxRg3@eC&<)j75BG<0gxkfht|Sps$PEkmA!}L z39meUpQ0HnCD;{qW$@af;jR2R$20Eku}n6>Bga|pLd$ZqH;Tm~``X*Mgz)w`ze)@D z5VWLR*^06Jp_oq3(YZbfED$%TklR1z?6t~*AWF>+a&DL|pEE}v`qkwlunpGKa9O) zR2)sTE{waA;0}QV2<`-TclY4#?hxD|xVyW%26uM}?mD>K&U?3 z#6*8W1dx&0Puy0MeI=9p57!dW=M{(mMBE3YI^SD|#YdHt-i@fYD{b%9bVS24;#Tze z0lRqvX^9}UQ`JzPedFSC%fq5MQj1j@4z3-Cy(*oE3TQ+$7K4Dr{=AzxUoB)vr)Vw5 zI#pI;s3UK`aSjr5RI~+&Q=noc-n<3se$N5K>p&#HLiImZyKD$}4_-X+GoS+qH`e_K z2Sfu=e$x#9hDYV{aY|+fCIl5bxd1Qf<>cQHcfWq@8GlxJ=IAU&;XDokpxbkjS&Tw5 z9}7UTWag!QzL5FGVv_(UUi$sUWsbdDJ-uq*!#ENW0;Y_x<-#PX)O$&+tS*3%)zkYY ziIyJ*jBxNc!Cw7tr`_T$Z)SJe9ySZz}xD2Jm*+TJ`6TnscZPoJ1VuoOn z_U?Wyw$TV4;o)3pw!9ixj3xy-&B}`s#CE97viK(@Tkzn$r2oU7C9nv)54*cWGFjcy)_M|dd!I3q2J zS*M7o>{l%v)m5PV=>U(~I|HZ@7+-4ydL~uy@ya2k7Ne4PZKzl(0ZEq;Jr5vCQG(u0F!_5+NF3w60Z4?<|=xQ%)^IV5tgW3)ST z-OmqZvvAH?DDS&}*S0v{Ba|CMe(DhcZUa1h=dZqH^_GyJ+?mJ+Ws?jVc;71lBYLgq zznE09uNUp1KG!0ZA$w`zH-7n+qbBVN8rGs(|2rYHe{Q!Y1aKOFy9PiP54D;BNFL}j z?gPd{J40`LKOO&?IKf{AjA?2ISMBJq@&v~Y{wlR!5sw-Zkkn>Vlr<{fB_A0tx3%G7 zKjLw+dzfC)ZcEmscg!y4{_*34Zv;S0kU3~T2SdgIf6X{+Y!u7Q#BhITh zv=^gzbaJmR6hd88yl}o;w^2`~#XmUd39`u=@8x#^h&y4rL;YugSC=dHSNlCwBW&aH zH76UcyXce33#kdYKWgpWic-}jx-E5}L>w$;q)m@YL?4^{nO_~_WK#U}ofI|6y7GA2 z31jP#WQox}yudo!xad@~=<1n_WFTFJBh*6TeKJ$r>)g4Kh|#$$?fs;1=3$MU&W{c-pBYL&W?n3Nw2GYUuBDh3)wyFzS&q4~3dx?hT{4#U;p z+JDS=l4=fA#2DIv3~xs}j$6Cq^EdqapJ6zu=Ja9;h}FY znGMF@A8FA3K(hrwQ${!~fl#jnYmDwip8M9O-it^^leN4=dGSIRb^{2qNqGpVsN}%I zBhVSVIPlhe@U?XYc4Np*7c4#jlA`l5d;$aHN)1Hurwr--z|ik3`%#%ea3wKqJ9n65 z-h%|Tiu{igMBEV-IRFJnaOj`yQRO-wjzf`oIxxKyq#eAxFmNhWm=rWt7^!dq z4}ZU}UUZu^E?}Sw-8i<96HiPrjlDRa2mNMrec#+|NM^v4T6-?+Au&y_KuE6Pe(Zci zgc&gY`jh4AR@mE~d2A*vVsvy=P+lGl5V=Oj!6^ZRX8>&jo=!EHYaJ&ibcYDX1#1s> zp5OtbUX{vf!L49#m3uuA3`b1H%jqBEJRI2Osi{{q2&z(+F)l|ZYnU^k0t!j!oVX&x zGW7fk{!9cvul!}Rz5_#Z^)7bYv4=0EPWRUI zNMbpzpzg@0*71iP-IOTNfemj|z+x6VOC~*UrMkO^hXlY>uLS)oxqeLd`{~92YI6{m zE}yeMfW`BE@AcQ-V2=WMh-A39ifzWe$-qNE?Z zL39>lS7qO`k)>%szzY|AhljV8UJqS)F-cB6pqcZuHFJfeY)JD1n{xbsiN{rzil$TO z<>!2_yLq@8x+>~lVA-+B#U_1I_Bp=Ofq%@5o>D+&rRLH_u-?AhxsMZiUN(4hOCO9(sMr`E}IWnJLR(m~{Nix`Nn!9BVkpT0S+bZr6XVZ7mQqrKT; zSUV4p-Q@Roq%G-p)2SOXi^Z6tgOP*V!9r+9L{NrV@YgTQ^G;gk83qhEQ_@r4N7ir0 zjsnJ*SF;w>$x(X@3bH`!M4K1Jf$odjx}mPe=e+MkD10Jnld6@xDFOSQ2{kADOmzs8 z8HKk_O9paYSkFyJ|NN4%$w2urDpykzYxq$n6F;w}M7OVYhVd97R-}^2c2*9j&x(n6 ziVo#QJ<{LTywC!D59iJ>_)%0H|1rRmCVL7>Ay1dewzF~UFZ+SObLEL;3x9Phr|ywj z>i1VUi;}JR9m+<65srYM7i@$6st-RXTcfkvKk*rX%j&VvnNMeL5|zC0cctGtz9b{( zy%A92<_+ujJ(CyLx~V}VUC0P(UZj?ef^T{tSrUgSWacrH$Z&M#sc}z2{~^(&En->`D*`e?C-7&u{uE zIjNZG)o8_y0vRU#LNmV2$Gja51kIk~ybPT=LpFPZ>UGUzbx`Fl9=Xhna zCVHB?l38+?Ep!o#{B^k=)_lu5W|~`lsC+UJU^^IK&+R%cRSI2npT+`+o5+=wBu%M0 z@uti+r@+^#`=*<<3}>B8g7O2yiX|!A1Qo*AdAMOI7#AM!=9_lE$G`5G=%VVPJGyUb4`S(Ux*j6EQ@C?%XGHf1j#T{tSwb<;1>8Iyi6(d>(N8sEkr!>f*|Vsd;hiuU933^ zuKkY}4#gYAX{t84&ggV8Ge8>ycI;{8Pgz*dd`ms;A_(I1T>>pvsjs}AQ=(VJNOE|4 zd-}<2K>~`b2fMTC@%Ycy3(Rfz``_BBW%$Z2l2z1uX>FL@L+{al#9T=?V`F&Qn|As) z>KRH#NL1A1C$m~l37VUtUR~GhnffvA*3u&(C6b8YR4d6|85_Kzf}3LoL>NgynmtJ+ zY$*tc3N@bWH%qjlo52gid^o6v@2OMe+p4W_s}E>bbJ{uQ>QWo5TQF(SE4oMh{pe47 znADIA`+=xv3|=@t41YEdCEbon0nB90MXe>@H$F!N^qZ!S;<}&4-6&>rFIK2fqLek1ONAG$(i@c)jwt5i=<~z)AsY|+5;q7HoQ*Ir z3E&a+ej4Q)%4k;FWA-?B%%6OSd}`F(MPMp;V*^CmF|QxGDE6>2zkPf1@o2=(|6CTJq}rDFgwnmO@5iXC*O*Vf!Rc^vG`l&VXfMS=SQbK6?mk*moE@r ztqJMwkg9{RJSIc0eCnW)Xw!I;dVs%In5J67pFWh@lRocS(`kbr$xS1FXn(*s3sEhCHq-uBr!SMDXfv0>jQn4Jl z?~BWx^+xzB@<-10wn9pjF<<|>lZhMqoxkspsM+)*gHvm<)rAwl3WZ#a249T=7u4p? zA=$#DvgsytKV|QE_#1(KJF(=lU_VuQ_Wb$r9EBtg((dEgF%q;k|u;tYdU*> z2Gt+>$t#OBET6ZR{%SowH?$40JD-;4!<(QEpU+My4~Q<+n!)(G-l)9qw8i|& zx(2$8OiDKk@rh~GC*jGcZHYR3jvH>#FSHN%aeB%nCX&5-MFBoc$V_rrk?r;WKAb#K)0eD zLm#W#x%neB5KjEi^zclNWov1hSio8PNejW#_|{C2PE=k8v5)vYpCSM5J|dr9RYr_1 zs`XRW1!(EGlsdj1@#=wB3Nps`r;>sh<~-e(I4O&xfZD|EP)_4y&t_v8KQd<~lj9lgd= zF9t@o0&=he@~*3Vu-zUswZH222IOF`uF5(vzs4~q#7YU+Fft{47w8(_>zMV+riJGG zQv(~%KpKXX^e5g)VaB;L1ch|Qr*SreoQ@kMBAQllNOq_$I&qV3#XdhhMzyyGC7197 z1Z60yi=K2YqnPQrzg#kWU}T>F!;3Tb4Nr)h#Vk~qy09Pk)dXvTg&1|zed?&IIB+Cc@N&FN-AfuIMqmCoER#}(JZc!bxC$sG@|X>viIG6 z2<$fW?n||bBB>?;iBKy2(h6xrJr;EGG@EdWpozGjal+3D!`ke0vNZQLxr;s za!nU1W9wZo_PFESg>}ku^bQObSXV5r6C*5tgNCP!yI@(3N5_QTCv}EDF;dHvueF-_H3#O@yu>Pa@zZ=3>&G$`M<;^=YSw$IRZ;TuBj7B5;W@7;+?rR$TN8>|n;qL4CK|T(~>< z3XWkaXD!wrS@92Ybq5q^EssY(3qBVlZc_C!9h1?H5FK)NF<@i&$7UcInjEA)*W3)2 zs5CP>TNFxGj-%16Q1Wc$1bEY+7U`dcA&Gy8F|X@8I0{LZz_vBg3c9ItF-cR|G3=5= z8xe^xA|(wtvX7Cy{(zijYam<=X%btTzBeOY1!wG)0W=SmPF}{q^pUT|BF_?8n!ZxA zl#pZ=_+ew?$Sa%Cw%W9IwoJ=AWGh%}rD!qfuy@MKY*ZpVIeeQ~MC9dml*8&2%?vL{ zeC-grRo=cdnjD#3;|_KiP_eE8(wUxB=n7raRUJvKAqQj{2=U2B7>gp%5Mr#v&KFB$ z#B&k_{^ak?*5h2UKp3>~vs_0G44f9{I`_*i_*6dvi;|o& z04E*WZLMVJ+?N@sihRp8D>?IhX+%u&X;4>k#vk79#*)UEj?YQ_XCsXPm!)88O z^C7oAjgZ6fFz&7E4@i;$x@Ov=-7}gLd>ea_t+B*?tRqd83)eVE94;H6vaFvyS372} zy|iXBX^P^0)$&O~4(@OwAt?EezbAfQ{DaQ-)Vn*nHCh5r;qzKt4{X~n{3vSkUki%bMD-3gQ^y^R|azYhu}Z# zp{}Y{Ow0a95tgd1GUoe`md0X_u6gWK{ETbYijsrX7jRw;h=oG>05aMo%QOMg^MjYe z89o*EEg{?xN!v^O4Q%$NZUyIC=YqDqc#-D!c@Nqj9r9n4KjBG9Vx&$S9d3O#eDlbU zse=BYSSO!hCuv-PO+}H%K`H?KQPA*f!+{&qX&y+io*&4tt^y(rtUdJ1WfSy}BW+6l zTY;9}AiTcx{y2S8tlklH_h|2*N^4XDs*pZuRSnwBRI}*j8>P+` z;g=^Z3k)gW{iS_TeVqrz>fZLO!t?98cvHz}|F~9G%hln2`STW@ggLE34Andz_>Was zxTlDsFUjS!63-+?nU6nif|}CVr+)(%yuyrQ;*BQ#%>OCP8!dT1xWAN=K$4ZDeVXu( zsA~%@xL!T@1O&+Jq*|=Rlr$WXIW9Rpy063P)Ba(fdMxS#*{+5^Z)=5QN$#J&B3Blh z9jlk<|J4*u{8y8Y zk0M?DWVobIK+CzaOD^^w^Cn+S2N}pS0%c05=#p&N#=*$Q`T#G7jo9DH$A;_uecKCl zg$Oqi%n5nBLkez3v6|yg#&Xf>t?ur<^&*H;`ZW|BUz3TV3LOmyVfB-{kt)1VkDOTT zKxzvDC~AzD9CbF49l_GM;2Bbvp~;KIn=6QlouH_nPzi z(fmUWhOs96HlW*iJm1utswKVk6HHOa0wQ1LMrA_86n zud_EhIzcP54op)#6vCD1Dmv=UJt*)bX$8X4wdgSU@S+LuT&(H+Q0ytWN}Rq)Tup89 zALBMAV~W^YcQ(AdX3gGOQAGbcrcJ7aveGp2fBrearIRz;Bn9cV58D6RU5VSWExhMn4v+nJ>O3^^myPW&C?UmA2Z=`3WQ#f|iI z@pW>kU;YSE$RB@PgmNqfwUV!MV}1MJ962*NnTx~a_C8>8OskUJ;~^8z8EPL0K09H* zxqoxB0vVcN%_GS`rk9Bn$*{ni{d8@lno90W>^3a^(r^31_UUZ7wCFJ@*D+A7U;i<9 zuV;u)!}!ttG0_N&?Lq}0(jviGs&oe?6Q^8j`9u0@LIhw;H-Bk_P+_n`LR-16@GJPu z85_Aq_$^64+X=t9(%oXe^j29(LUJlRd2YG876C?5zD6dHtxUCST{U^m6DWEO9Lwgr$Z`taWnZI9CX z(P2(;SF-yKp-2&S`!1DMj01MAJU_PQ>O;zQi;F-_)~9ZB9_6Rirv4ye2%T!!s>cS= zc014|B`{&{c_IA~b>G{}^@nV8;_hX% zurIkRY#S*n+A#dJU_#2`(PjfCmnds+NHV%ja7TQRJY~T?*5B@dIrVHGgpep)j`Pfj zIbHYRyNXA4}UJS};F|^P=vC%*A_YuQdg;pK2bW)M>i3t9b zcC&j1g5;=kC)JM&E&2S11fV{)ot%2VHzjxQAQeLVlv7sS23dH#hOteTtvDU9Kmsb*g5;f=gF5CqhzPl?01eyTlrhW9j z9$B+wY5Nj2n@wgL)8<$8i-6k;MbAdQ5&kj8lGk>sbhlqTB@v*&E-%4ghmO`fbF(`` z%>h$d8T?bsNb1aqrf+h7qwHO#Yv+uX1^%xK{AHdb?C=OW{LzT(L0APQN30JR>?}&j z-?=&)EsLHcBk0jxqqyxH?Isi(9ZM>8>7XDEkEhRNo>tQfYPmai#|!UT3COqVYjk)a&NEwr8pZ2IclKH zd~wkhTL0f8q1?XbC>8yuU@z`O(UKuiM=ip5L;0euO{R&asVccsZgJ|z;6a;}n$-#& zU$JnafmwhFerF+HPii( zd~e=yR!Z&73bo*d4vsU0IdCCAcxsl$Fg`qiQlIJ>j5`mV%cZKGM*A{^K4a>)Uv2 zmLp{#y&Putp^qdjT|GdKZnX$eH($h@^fQCfAUB`l95q@8QnWI9se``p9+@9CK*zW?U7d6(`e= zm-?3)1fn>iN>;?5oBV8&HPDs$5t2Eis;@R_e|9&$s|?L2{&v@OMBCeCCsiYdM<~JG zapEMc*4q=GlSAuJBd=h}#oki-@lO5q>q@|vUIBQVrM+%%fNag-vnyl41JI+lU9bOq zhJD8P=JVmBg1`zxPuM`4Wu%`Q6^R6|8UQRxqb z;WCPWfpD13!c(ji8~=~s5Kk;WA^A} zNBcs{MASBG?;-tZhDXo211Z_>KI#ffd7REax0Z{n3!9gar@*KV)mPlkGH zEqhx5jmk+c$3DxVoWeA=PJXxF% zMeh?k^o7dScA~_ZpSbl%EWJ%T^{3>Sux(?jpNAi(o8tNs8O^8pFY2nm4%*{4Q*QEO+a z5Ok+OR?Ud@m+N#pLZXU@-D7pI5pS;z3r8V!+>)UaeR5SOyc*i+P!sYqIgI#p+5vi; z+ALq`((|CHm9<+*s|1*{&!&cCDPS33F!iIc_MsGUR3em?U!`wG90c38E&{!t?1pfm zjVKp1b~Mc94)Q0`0Pl6Hf%qsmls|s&Bz2wqCU#q?FWL|1&x&*E%0PxUs)cT5SaF^$GTJ zM5lnzGp66+$8CSW`Rk+k%cGev_{Ex&=v%@WK*v{=(9)-vT~$hlBpDDZ6Z_Hs*s#T`umpK ze5Lu3??!XY!em3|o=oEc zZVbBXmJD5R5#wy*LXZJrv}avD%if*T=J`o4Qk4(A$EQlopbKaD1Aefb&tvF3f5nAW zzl%^TM)4oc^{mA}26gV_Rc>;4#NTP%7(CrYmr72y4-BlQcq?|-9!4n~YE==07+Di! zN&l4Lidr~E!s6yaa`zqMg(vW!M5E{PCm-Q^!jB~ip#Ih}bo%`(Cf)hDD<9K0H}PFk zxO7jx!`Xa8664(4G)w(0U*d`;mx8KJ-0z(_p*}T)ld8V=8_k=lBir##I>^KfWnx=@ z|I8H~rbTL$Vgyo?9&O0dHh(s40upoLv?3<*DBpE|_4KhBt>qnAg16x*F1Nlk*Sxs? z)O{2(JI@RmmhugFInWaMNSe3q6dSYZq$<_&6dFrfc(?9^U6ziKVSamC;tEr9ct}Vd zxW)8%!$sO(eA~;KFU@5{>S5DOTmO;wBBIntH+Iv?w{5M)ymdgl%OlG(NZrC<}o!$$JSNB-|bj0dWNnn;mWLX4RHzjnvofDcI>DoVA?P;9vCw3!JFhRp_xw zzqrqDWePgPK(|l%@uCUpl;MI(u~ej8w+uB4$4M#jy=zVtr}1cir8~_x!ptzW6V;ot z8n{?Bofv!-@gRwgc%8c*`i!IEUKFk(E*;vob+apE;g@K5oP>K|Dux$?ZzaG2_qC*)+~xjPdF7MY_unT6nIh(dgr$ah^~m(GyktV}o% zs0T;7%wO+eDhQJ?Hu6^um0}Fx4ps+dR)qBq+gUh^zFGl#dp~G6+I3OkJ0kNtEEHaL zAg*VznVNirp@A3UVgq5g5FV;3&UL+3pCDjf3zVh37gy7`^>>VV$Q)%R2f(-99FVr=rpW=qSiqhV8@8gCrwFKDBB zxA9`>#_(YT4Vzp-u1kBWYoW4S<+3Y<=*9;1;<1q3Mqh3x#TSp^1IKopU&3pWt08ab z`!(B=l)ML$q@ujZD_tVaVov_I>1Yo_(!L9?qZJn;Oh?Ap&^*&&K{+zWHGA}lBD;rO zb_3Pf^pb*4t1U14VCKQZa=u*Jm;j=m6!T=bQi+1&X2r` zAv?92NUz`NI5LIcoK4YB?Qa94VpwosoM1zvTjtzeXpt{zEBj$-)?(G&(bCcm4laME ze9kOPDzrgjRrO9fvXE|Jjm72HE0SYXERR3#|NHz$eWlGou$uFKCd#?Qy8$UAak6TX zFtue%xi3#0``$8EjPdL5c-C-an#95^He`5nXqAw83b1jp$o+P25IAk~C{7!=x{Cz1 z-Fjml*AK;UTL}nDV!WbVTg!Iw<{TrRGIBp<2qQFAP#I|rYRMiXG21C>EJ&?QsM|5I ztye%((KI4c?E>(HI)@)6)W=$}G_yza**?-AQeg;j7A^?YqzZ3xjv=0tPlPj~wzpaJ z%}ZZblYFy2@SYCcUsQh5C-2>2dNE1s3RVmCg}ylR#ETMqtJh6zz!l??kFm-DU(tuG zt0S=ZMQA18+z%sNy&Ga~26v=uElGu@gTG1FcwzgnRLBPU`&JtpW~XoAV^RS{2}YHp z8kqW=h&72yf<5?pb9E(TQGOalb=A8Kt4rUNOZcd7SFD*df@9RWm2J-OQLX#7^NChS zsX1&SY(k|OX~a#@(a>?;L#sjN%i|ta{Z2QFg!E_PYN*0IE$24@jS!CqW?4V&*uPj6 zZ4?+YymvuuwKO%5+;^_EbIZ|@8Xj!jifIjCn)*MnSQ=LO%dK-4Mt`bu1tnP_C~!yA z?2_y)hjOq9Mn}|~mfZ&{>M3<}WWjKk_l_JvH=Z2D3% z;u5E7)sSlNn?o}He!qy=bMI6I!awto(l_JZ-bLgb4MeR{&|z0X!@9%?xyWUfvCM_U z%)oV#i6hT<*g!!pwiFB!^n>y}SC-XkhST%tOpc9=7T#_eVzcMM+4Z_?#MPLb(XKnFrSu+>-}eoYIT>OS#z zmI>EW)Q(ZHL>A^_0@Rk|#w+5+Z^kMFjo;4!WMBFFMk&VC`*)8&e&%gQk~aNoZ@$7} zm&8{?8`V3RUCm-3ljLh_HI{05cs_}HiSNkzFVZ$6t#K>e3$0Ij`a_{BJDMoh3I3M; zoFSg@GjYwof0NX2fGF#inSU!3ik%3*I<2U%uzN~4VpHqZqgZz1znPGHJMfW*0b1|}1 zL9%oF#Rhw)K2L1g0p_hK?Xc=KV}Al{uo2t+McVxqH+Kf~$xQyrg$Q5G3ZSrk7tf{Q zZF;b_C<_1F`YT5gL$uRC1)*8uXIq+~*m>oWg>ReQmrLc$3#Ir)mfh%d#>?&^k5gm~9K0E3IgbmN+t7vB$tG=5WFdkR15`zmXqRC7 zYCA4@6c4-cjak)iyi0QKn@;U$pJWSr8=YEkk!xP*@e_ubwAGmgoA`p8*rVBE;la$6 zgjRp!iNpFC@hdg5A2jj3yZCrNy1%R*9^v(&*m+3yxBUtWB!H}P%1q#(&m>gtV1Jzg zYt;-XiqTzs(;UOD*Vpin^f~K`5NiO zP-0#TW*Y58#9N>JB+>?F7E*!ttgsMiw6nWR)+D$_YN=+8p+<|jW{jamjJZb4LMO@j z?g-|YMMvhf^04U9rNg}2QKShM1x=zov@q9WK)6s=$`+^ER9a`Xyz`un>>Ei&+@Z=> zoYX3(hX6{#ve&;bEZtzT@*zfKg(9L|h#GByzriVxv4vn_8FY{Ujutpl3LcDf&KA@& z5}||=jpVw-tc?){eRmaP@M+$N^YqcOnS(V;uRy(Z{z~mkUU;DDm}rD`{$yh5`~&?` z4;A0A<o+5XxOigt8DOO!{H2?;^(C1TRux zR0x?yH;ze3)mI5ME_-$|f72rsTv|7-zsZp|lf5t9J~(gKI&4KlWdmLuBr8~EJ0uOE z@ZYTjrxq+ULP#+&M5J*H2t~z1&}SIUG~I~JI}RypkA!1P0TVu|H4X{32RGA+JLYp5Hm2j+{YOwrPUb^gxGL z6oBK5KzGI_vkF#5bTWWYzyrG(qwXys&)DMakV!ga)=8G-@?mE=Drey=V$=Tad(btG_I9zGy0{OZjT%CY~EHt z)Px8}d@VEr_l;s5U}76!V(VaIonT^XVB&roYb6z4sI6fn%|nVW-z@*3xg`-IB{ySSI|tZo17vK^IEP02;<9v7SqNGal{`E(G?wdV*NnT3dy{naW_P8U zv^F=GEi#xFR>srq1P5gkmO#OBw}UkaqKOsr(alyP1D~SH@nVc#xw+YAg7{X7@q#C+ z9kVU>HEDX)WjJWE7539kZ39nrvJ3Au=bTlLs1Uxpw(sJ!)NGr**@1XDG>Nr4iK`Zq zw+<}c>#K ze~MTC4F^6Ft5&|BquTHtcQzJb55tu_!B%s`D1+i%lc)-d8=*z* z=n|JVr#8Y$?fRNR)XQ!XN_+;p*z^ns5L2OVN(E{fbT|^1DZhTl2Ip$)#}l!TTD$p% zS!2``d=_^jMv!iim0vg+s~rXNXx5axM4BLgx_g_dQ5Fx7QBtSWiqnOtd|J!X>eDqx zX3zaXQHbtrBD{g{b14OW7A1r0EVHFB$8! zx7G{B6(HaQ1-X2-)aiMAt{NS?OY+yF^OD?${x$TpWMAAT{Uc?)Dd27MHskfyINi(m zTvg&nJxS|frR&ovQ~R?z)EP;n)u$>IRGPJ4zZdc>mMr|zt^EvH!DIm~9NyXmQ;3PP z5Sx1;X4o5JH=UE-&ggGi;f8;>`%Yr{EDb@C9FTqKMxEcDP?&{DWxk~QnKtMuwyAP3m;Io=G z0#U4T29;ryInV9(;a59cT9MmNgJ5JqL1E@ ztIG=>2kc8{m&wpDigcl$YmupEbSQ;!KN0QOCSS@~Xjsq1A{~o|AX5mzC@S{B)D8zdF#TmkcyP~#f4FB3A?DUdX0?p} zkT#a)TzC;k$ScPpS~%!&OOFmsG~G&Yt@9QniuaEz(QfFDQv-2ubMYE+Gwy~btRNI;Dk1$ zGa9-x(1b{m+!WEAAuzv>cYlu@ZQWn@No5J}4>NnVFL&5v!>yL&`^-_Yg$~UFNO-m^;7N_15{8*J`S*y%{&^TDafcI!+~IMQ%1R zWHs{sqN=ANPiU04HJZU-ogqNZ`DRhJKNwnpUuF}YVus{77KILZ9Sg2R2Pz!Q2epaB zIKFDa3M}7l6>RoQ_du$v%&f{Bskmnx+*%_ z7)#sINn3fk`+BY#>a|{bq6{%L$>ssiQ%)qSdIH0tA@Pf~#K2S(3AcOP=nzXf7w?Q7jh%2cwy+u(ev}!&}TB3#7RKV^HdnUFW1i{Ncl8)pamG zk#3Ude2|H(Ly0_PLT?0pSE#MmF8-7CZ2m*ToNPZ}`sB$Uy^|Td8*7suVlhpCpLY6r zqqakH@$Ec6>CG~uYOwPjuXX`v8DnDoZ~Pin_FU(xuTQVxg6U(xp`mT#`k#ECuGd~k z+63oI_ss{|OZ%cs{vN!$Cd+tb5Ugo}@dBm>q##~JD2h}Bgr@X)!qn4ALf4iIdv{gR z8&T>L7yI&>9lcbwt;kM~-Pbn`_ct>r8(M?`GJYMTG|gziQEJ z*^Ch)rBW)ANhNRcD!DM}mrhrb5m9$NnhXx6pRu}&HnZZyl;^{alvHyAFRssNf;3mo z;bLbPoOY^FACg<8vZ#K`5jaPk4*L!c=_RKqTC`R2DqJt)9wX^;8?6+4U((OuPV1nD z!*bMXU3Q07vUE)}g?v)q2+{ZFa}fJOK*a8X2Oau1Ox~WLi=|B{wD%|>pAYAa#+-7$ zWB&Sj3r=idW47fTzmpO_U_Jl2+BN0Oae`!>A4--4h6*Q$GJ(0o9(FHFsg#w~J}^To z6Ra8rq$a?}Q);x~Q z0uW~Kj*se}ed7-Lov7%%DjB2cx~IBs=g8YTR6sN{&g?ouJ>GejTSgSPy9Mz@4@gVN zlSlY!%@5atC>=WEEe!`JNvw-iM!p|fwDLx;tEx+0)X$1@n=h1g*BKW|K8^?zdbT4| zRd~YV+j_xZ+@$|@j~L5tSLe0icv7b_#2TxcZ&hr`(rZc(H%U0*6iS79o)y9or(*mq zLz3G>73VxV%=OKjE+`D<*YvNN_2;r?5|btpo2DE_4#bIE4KsvB5kyaGYbH-oFk3Ulm;UpW zs#s%O_K2F@phg_VAB zX2KRH*3tk1uA!A$%|HLys_z8jUyaE5-1re*rd6*G3DB9(j)cHHF_3*B%2;0;3k@Cp z5=GGqIWJG9w^|?!IRklfd(@Lq5clfy#GQrLjc9K6+W`lq{C;PeqV1yX^s3U&wED>RDrGsM+7UQWlPL<7A!S@~Soj!09qx5-iJp5clZhg!<`m>;1m@@%4}|hTi8o z!VNIosI}SPQqlE&13|h@OTVL|%UI4{IZX?|k`kblGsb6mUbK4i>f&Vq=6Xd$-5wx| z*PG;Sf(65eQJU(3^;SppFyZ;{s_E=Nna))J;QVS@TGAllF4fItw@g!=Iv$LFdm?Dn zQ6EekO$6j$iF5J+4*v*?F_StVZb<`F*64Q-^&TNqE7WsMO2b9-A9qlF)o-qww|uyH zufycFZ^r0{ZuZCQCs>!ZOY);fQEdQ2HK!c>ESrvN(RKSFLh4|^^$@;RUAohRI+4ro zG7^x!!$g9yznc-;tsNp7vrUlTH+mbulmqSy`L6{qiS)F>!YpscO6GQ&$KMzid(DkK zcXorkM!4hyS1{0L?o^M1sgB=V*Q}d&vOk`(?eAAicdzrD700%5Jk)!|{V&XV=Kg=xdqS)8=y8dHv7OrK}DzZ`K3|dgz4Z_ydUvdG&$Rzvc z{{D$j$*aC%bl|QYhZ!II_Fo%il#bNMvTGX~l`z0V5O3tS+ShB|4A?!um`!mW7bILI zWWNeeG(Aq(`d~^W)2Yd&@I-SS;1B?AsTMF>amaGF2NO!o zM+bOWvOFN=g{uaabIsQ?Q$8hRxrcSfnAK`?Ji69B3~kTzMruk4LA%|-C^K8zA;4v( z>{<7p1bnEONjejJ&l|Gr%U*(9^y>Y}l#lA?e-}G_b=O$!E%OEaWB<3( zyk&6zPFaW8e-}fR+gf!xIj=<8Y%=0^%5;EX+X`GduWqtC3UInS^$)Tk#Q(a616s4e zjNt#7$o<<%xjzN$KR?ZX&6gQS103i7-4+-ynNv>N$}TQ1tM7Bs&=ql>G3PWrd5|e7a}FgLti=!4u%;Qj+6n$t2yZ?nMmLXYeY|G zaV=sq2Dc-C<#sva|3MT|WR5x7CP}j1<;{I^dP=pAV+xTqbaPFh3NvL0n#%n}0dI7E zem)IK<&=arR093a2TyJ&G=a6HKO&`+Ag2t0cVk129G$zfkr&`!sVv@KpNzYsU;7@1 z^mzYYTh3EE(q}pfp|$2G+ng0h|NDQ#xd8?`neRVh_IEjHiKlk%BBhwC;s4X(|F2(R z4F12rn0m1M*I&T+C%M34|KCpkw(}GL;qePoFnGKYulZwNeKdUZ+`*leHZr8c~f`-2qG9 zYk=~!WM*zIK!MSFvQT~vEQ^$1YW`1m*A>=emWCZ=bdV-080n(|4ltn#s1zMV7%(DT zN+2xJ5S0U;tF9b}P&CXpJHZh+9MAz(tXCpbH^SNrV6?9Jx# zzFtM7aM#k)s#)ud|s7^sbx_WaB`anEZcm74$`_a)7&Z5D} zn>|LXDK@zT5WQR z5_kqS1eYg6%4@&wgx4kIt*Jx%O?;E>Zx`sn;qc^*5CYI*@|JBc*Hlv*hr(<6(4gv% zSefhh*Ms@bMQD@Wc4{LB#Z0xjQn2B6*~f=kg3|FFyjs4fN!W^y>^e=iUVM}%S^+s5KQ}!+%{$WZ;%Km)4IJ*pmWf(9FBR0Oz6nZI(XC?LwbtXv z<$9(qaCchDl`~*G_XY%PV_3idayViXy>-DZz4cCS*^lKF9v$Kf!_{RoW2g%k_9Pl| z!t_`RWj6Y+A4mWDdD2>{v`(pM!=z}I;gBco;E&H+$WnNTN_qD zUK(M0!82?&7iS$Bf`0@qw~SFO4GXV2RzL-|%ItUmt@*CW^}sxpNZgo!3D`Lyzx~2u z0VN>~$gfXHm786m4KYDor}KI4{#ovjpP!%6kcWO{l7h(BjhlC@15RU&{%R|OuRgov zdwuuI-Nov}MovvTrgzY9tU(&+ft5;#oRAW>1LtDg{lV+qm!;6gqJi8~W*iw0!Eg4K zm2OeEY;!gl%if1sOCh*UwWozmrP=lEvp)Jfjs7t2I4L&{;j1J|v-D8YwkUS<#Y0HB z?XEj3e&avB@u(V)7Fc=U!rpDJx5@`*hPx~_Kely_S~Utrp(X&Bi1xx4ww`O!*p;UO z2+1O$Q@s3o%l&M>4xB0(h!PcsT<(20g>xx!DCf)(Ii~OShAdUnKlPZY+GtX{-*!IM zH15yL%>2Uy`~I{&2oRnL;D3e7*8t%g=WE?eIM}+>$i?u)xV@EpB?w9A1w`0l1=YIa ze2Ga>eDL?_9<#QWS&Eew!NI|Y{Zf!e#ea0Lu0Y^#9gO1(uHUpgiN*FhTNDi zy{tw<$GyJs7mxKD)Onrn8fslNbZ?(ePZv)V&=BsKJGSSQY3K$8y%ZD%9zB4f4}O-1 z2pX{WELc?*hdMp4DQg7U8C8q{$5J4_3nDgETUYlUZ*2L^1CCpAN_!$Zs#6_zm(*`K zsK9HizpYG=)G2i28z^?P>!+32#G9ox4O$!Qcum5Plv{AOv>@uwMTt0AibiEXLQ1b~ zA$!KykXMy_GI}uAWg=$25A83s@vd3%=t!>yt>3&t#LHoJdD#vdDsTiE+&uBJ7AS!; z37lENaPS%U;)N$YS-?ce)F#F}m7ZTQR)x$N8W_mqXd7;nCRIyIOZOWr;6WCF^dTi7 z!69HYa+MYXqO>5a_y$lF#8>Bis=y=TyrmD_woc(p z`*SYA-9Zw9KY|2;f3|6M+t|Tluc`bBZnX8lHC-fnxGVE463Am+Z%dZ{F7~HuFI~Us zIy3*G-oSVR3*-;3Re0MNB~_~3JSYkajW^3thXS=B5n9j9cr)wyN4uWk<$u)C84lPJ z5fO1!S>ti%9Rdr8veQ8MZOS%!@V=+Va!tMG42lQM!B|r=OlRZ{)j3iqNpI~tgSFq1 z#yea%fo*iiufKpY{6^~?zpSKa_vJTL*73-=d(Ueixcll*i(&wcya&AUGxMP3U>yF4 zvuqH+qDgb3XdYt!Jw{l`TN+4vNjI=Yma~hCg%T1HHo>3t>$NDPl!3?w$Kamvy?t^f%r15QKAj0~-=Y(U8-^e*Hy<=^3P?rF zJiS&OC=ab&&|rfar@WP63I9l5Yk=0w9E)1?aj~MCW6Wd8sb{&oZqx5WA8?KVNst)b${0E<0zlxXFZ*sxBcd3AhD9=|si}mDj zlrOXS$ob;R!lenqm%jY>eSLRePqZgwITNxgOe~j~gGuD8BSuXr^9UgFQ=DR9$wY1F zvMnnjGIF&$33J$3Cj42=NwZyZ3kz@Q2F&Vg>gH+^Hr`e3-WYpYhxbavOlAxSDbs!MgCWkE-x4d9}9E)-}7vFZ~w8QcsEuO0XwT9zJHAe9l0e z7VfeZG|3(TI6-L;=vC%;kF8S-iQZce<;YJQ4e1#{*6-6%{O@@!X!kE~9wh>$!H*Ce z55wjiB*~NH@orAp66Kif2u~;zs3YAuS;~hSm&H+jo z4{C3AXJ=EBQA4lShlI~As4*#=1 z^fNJibBEGE_s+YB#M25`sUCe+oMP71k%l0T53fA7Ruu!E4Q(`hW-^NgUIUTD>YKGM zlIZ%8>d&GOXcr#9>t3G*xj)BFI02vMZuoO;M@r=Oh#zT?5$z6cs?yTtk%E1DX+48# z(C%O|2)sHG^vs3A2TYxY)dUOH36q4nhn{60ERrNY_&Jd5PgcN4>5!tPrt|$Ra8mS1 zl^!8@;^};A=33j!;8{zCjJs4~U_1j2n`F0D9l>rk%f19$4)vtzzL;_Va3Ky=2lkWL z*-und8WL}YXs){03+kBGag%xS1rhx_KuG5GO%_kRTx%)zd~ra)K%kf~pK{E2yRIPU z;CA!I(x}uL-HzMEcclVNERLEVNNIu(4Gr}_Iuh#+hi)R|V>(R78v!6y)6%jId~v_@ zc^@nJw&&2s^F@vKOSw4b`!3us)Xh#$1FJwaH{g&&q!*VLfx=Rx+--zY_G}{mIlSmI zR<+>02!Lk~`{6#M)zsGZ|6bUm?*N?^F=Pj{U`pz;%BxJ2e-jiR>g|mYlGJ{Veg)mr zhT*Ie>|)B>DcpV{CRR0SLO@=1l65SGZc5!IaM|>knVG9G^`@>30LYTjb!%lwXMyxH z;0!qL*yLNQfus9t>C0xhqd2~|fO1?$k3U>bzpT(N=wfcLbz&6Fgp0kLVg$(^0P%E) zlv^sRN&|NrlL#jX)~W{ZU<;qzJBWr)Pb;)HP@T{*L&4>fkP3_Lxfoa`uxc5P`?XoJo-n?TaQ+?g~F_+4sQEdg&_m z(KzRbpJCFfL?B=3.10.3", + "pandas>=2.3.1", +] dev = [ "mypy>=1.16.1", "pre-commit>=4.2.0", diff --git a/src/mixnet/benchmarks.py b/src/mixnet/benchmarks.py new file mode 100644 index 0000000..e948d51 --- /dev/null +++ b/src/mixnet/benchmarks.py @@ -0,0 +1,184 @@ +import asyncio +import os +import time +from typing import List + +import matplotlib.pyplot as plt +import pandas as pd + +from mixnet.client import Client +from mixnet.models import Client as ClientConfig +from mixnet.models import Config, Server +from mixnet.server import MixServer + + +def generate_config(num_clients: int, message_size: int = 10) -> Config: + num_mix_servers = 3 + dummy_payload = message_size * "x" + + mix_servers = [ + Server(id=f"server_{i + 1}", address=f"localhost:{50051 + i}") + for i in range(num_mix_servers) + ] + clients = [ + ClientConfig(id=f"client_{i + 1}", address=f"localhost:{50101 + i}") + for i in range(num_clients) + ] + + return Config( + mix_servers=mix_servers, + clients=clients, + messages_per_round=num_clients, + dummy_payload=dummy_payload, + round_duration=0.1, + ) + + +async def main(): + results = [] + num_clients_list = list(range(2, 11)) + message_sizes = [10, 100, 1000, 10000, 100000, 1000000] + for num_clients in num_clients_list: + for message_size in message_sizes: + print(f"Testing with {num_clients} clients and message size {message_size}") + E2E_time, prepare_time, mix_latency = await test(num_clients, message_size) + results.append( + { + "num_clients": num_clients, + "message_size": message_size, + "E2E_time": E2E_time, + "prepare_time": prepare_time, + "mix_latency": mix_latency, + } + ) + + df = pd.DataFrame(results) + + # Plot metrics vs num_clients for each message size + plt.figure(figsize=(15, 5)) + for metric in ["E2E_time", "prepare_time", "mix_latency"]: + plt.subplot(1, 3, ["E2E_time", "prepare_time", "mix_latency"].index(metric) + 1) + for message_size in message_sizes: + subset = df[df["message_size"] == message_size] + plt.plot( + subset["num_clients"], subset[metric], label=f"msg_size={message_size}" + ) + plt.xlabel("Number of Clients") + plt.ylabel(f"{metric} (s)") + plt.title(f"{metric} (s) vs Number of Clients") + plt.legend() + plt.tight_layout() + plt.show() + + # Plot metrics vs message_size for each num_clients (logarithmic x-axis) + plt.figure(figsize=(15, 5)) + for metric in ["E2E_time", "prepare_time", "mix_latency"]: + plt.subplot(1, 3, ["E2E_time", "prepare_time", "mix_latency"].index(metric) + 1) + for num_clients in num_clients_list: + subset = df[df["num_clients"] == num_clients] + plt.plot( + subset["message_size"], subset[metric], label=f"clients={num_clients}" + ) + plt.xlabel("Message Size") + plt.xscale("log") + plt.ylabel(f"{metric} (s)") + plt.title(f"{metric} (s) vs Message Size (log scale)") + plt.legend() + plt.tight_layout() + plt.show() + + +async def test(num_clients: int, message_size: int): + config = generate_config(num_clients=num_clients, message_size=message_size) + config_dir = "config" + output_dir = "output" + metrics = {} + + # Create servers + servers: List[MixServer] = [] + for server in config.mix_servers: + port = int(server.address.split(":")[1]) + servers.append( + MixServer( + server.id, + port, + config.messages_per_round, + [client.address for client in config.clients], + config_dir=config_dir, + output_dir=output_dir, + round_duration=config.round_duration, + enable_metrics=True, + metrics=metrics, + ) + ) + metrics[server.id] = {} + # Start servers asynchronously + await asyncio.gather(*(server.start() for server in servers)) + print("Servers started successfully") + + # Collect mix addresses and public keys + mix_addrs = [] + mix_pubkeys = [] + for server in config.mix_servers: + mix_addrs.append(server.address) + pubkey_path = os.path.join(config_dir, f"{server.id}.key") + with open(pubkey_path, "rb") as f: + mix_pubkeys.append(f.read()) + + # Create clients + clients: List[Client] = [] + for client in config.clients: + port = int(client.address.split(":")[1]) + clients.append( + Client( + client.id, + client.address, + port, + config_dir=config_dir, + mix_pubkeys=mix_pubkeys, + mix_addrs=mix_addrs, + dummy_payload=config.dummy_payload, + enable_metrics=True, + metrics=metrics, + ) + ) + metrics[client.id] = {} + await asyncio.gather(*(client.start() for client in clients)) + + # get two clients + client_1 = clients[0] + client_2 = clients[1] + client_2_pubkey_path = os.path.join(config_dir, f"{client_2._id}.key") + with open(client_2_pubkey_path, "rb") as f: + client_2_pubkey = f.read() + + start_time = time.perf_counter_ns() + await client_1._prepare_message( + message_size * "y", + client_2_pubkey, + client_2._addr, + ) + messages = [] + while not messages: + await asyncio.sleep(0.1) + messages = await client_2._poll_messages(config.mix_servers[2].address) + end_time = time.perf_counter_ns() + await asyncio.gather(*(client.stop() for client in clients)) + await asyncio.sleep(1) + await asyncio.gather(*(server.stop() for server in servers)) + print("Servers and clients stopped successfully.") + E2E_time = (end_time - start_time) / 1_000_000_000 + prepare_time = ( + metrics[client_1._id]["prepare_end_time"] + - metrics[client_1._id]["prepare_start_time"] + ) / 1_000_000_000 + mix_latency = ( + metrics[servers[2]._id]["round_end_time"] + - metrics[servers[0]._id]["round_start_time"] + ) / 1_000_000_000 + print(f"{E2E_time=}, {prepare_time=}, {mix_latency=}") + return E2E_time, prepare_time, mix_latency + + +if __name__ == "__main__": + asyncio.run(main()) diff --git a/src/mixnet/cli.py b/src/mixnet/cli.py index 7057575..59cb538 100644 --- a/src/mixnet/cli.py +++ b/src/mixnet/cli.py @@ -63,7 +63,6 @@ def server( if not server_config: typer.echo(f"Server with id '{id}' not found in config.") raise typer.Exit(code=1) - # Use round_duration from config if present, else fallback to CLI arg round_duration = config.round_duration server = MixServer( id=id, diff --git a/src/mixnet/client.py b/src/mixnet/client.py index cdbe5ad..d03b0b0 100644 --- a/src/mixnet/client.py +++ b/src/mixnet/client.py @@ -1,6 +1,7 @@ import asyncio import logging import os +import time from typing import Dict, List import grpc @@ -36,6 +37,8 @@ def __init__( mix_pubkeys: List[bytes], mix_addrs: List[str], dummy_payload: str = "dummy", + enable_metrics: bool = False, + metrics: Dict[str, float] = {}, ): self._logger = logging.getLogger(id) self._id = id @@ -53,6 +56,8 @@ def __init__( self._run_forever_future = None self._port = port self._listener = None + self._enable_metrics = enable_metrics + self._metrics = metrics async def start(self): self._logger.info("Client started") @@ -65,7 +70,7 @@ async def start(self): self._running = True self._run_forever_future = asyncio.create_task(self.run_forever(round_duration)) - async def run_forever(self, round_duration: int): + async def run_forever(self, round_duration: float): while self._running: await asyncio.sleep(round_duration) if self._round not in self._messages: @@ -75,19 +80,18 @@ async def run_forever(self, round_duration: int): await self._prepare_message( self._dummy_payload, self._pubkey_b64, self._addr ) - if self._round in self._messages: - await self.send_message( - self._messages[self._round], self._mix_addrs[0], self._round - ) - self._round += 1 + await self.send_message( + self._messages[self._round], self._mix_addrs[0], self._round + ) + self._round += 1 async def stop(self): self._logger.info("Stopping client") self._running = False - if self._listener: - await self._listener.stop(grace=5.0) if self._run_forever_future: await self._run_forever_future + if self._listener: + await self._listener.stop(grace=5.0) if os.path.exists(self._pubkey_path): os.remove(self._pubkey_path) self._logger.info("Client stopped") @@ -127,13 +131,21 @@ async def _prepare_message( self._logger.debug(f"Dummy message for round {round} ignored") return round += 1 - self._logger.info(f"Preparing message for round {round} - {message}") + if self._enable_metrics: + prepare_start_time = time.perf_counter_ns() + if round == 0: + self._metrics[self._id]["prepare_start_time"] = prepare_start_time + self._logger.info(f"Preparing message for round {round}") pubkeys = [recipient_pubkey] + self._mix_pubkeys[::-1] addresses = [recipient_addr] + self._mix_addrs[::-1] for pubkey, addr in zip(pubkeys, addresses): ciphertext = encrypt(message.encode(), pubkey) message = Message(payload=ciphertext, address=addr).model_dump_json() self._messages[round] = ciphertext + if self._enable_metrics: + prepare_end_time = time.perf_counter_ns() + if round == 0: + self._metrics[self._id]["prepare_end_time"] = prepare_end_time async def send_message(self, payload: bytes, addr: str, round): async with grpc.aio.insecure_channel(addr) as channel: @@ -152,7 +164,8 @@ async def _poll_messages(self, server_host) -> List[str]: message = decrypt(payload, self._privkey_b64).decode() if message != self._dummy_payload: messages.append(message) - self._logger.info(f"Polled message {message}") + self._logger.info("Polled message") + self._logger.debug(f"{message=}") return messages diff --git a/src/mixnet/main.py b/src/mixnet/local_flow.py similarity index 72% rename from src/mixnet/main.py rename to src/mixnet/local_flow.py index 34563ae..0046e24 100644 --- a/src/mixnet/main.py +++ b/src/mixnet/local_flow.py @@ -2,19 +2,35 @@ import os from typing import List -import yaml - from mixnet.client import Client -from mixnet.models import Config +from mixnet.models import Client as ClientConfig +from mixnet.models import Config, Server from mixnet.server import MixServer async def main(): - config_path = "config/local-config.yaml" + num_mix_servers = 3 + num_clients = 2 + dummy_payload = "dummy" + + mix_servers = [ + Server(id=f"server_{i + 1}", address=f"localhost:{50051 + i}") + for i in range(num_mix_servers) + ] + clients = [ + ClientConfig(id=f"client_{i + 1}", address=f"localhost:{50101 + i}") + for i in range(num_clients) + ] + + config = Config( + mix_servers=mix_servers, + clients=clients, + messages_per_round=num_clients, + dummy_payload=dummy_payload, + round_duration=0.1, + ) + config_dir = "config" output_dir = "output" - with open(config_path, "r", encoding="utf-8") as f: - data = yaml.safe_load(f) - config = Config(**data) servers: List[MixServer] = [] for server in config.mix_servers: @@ -25,7 +41,7 @@ async def main(): port, config.messages_per_round, [client.address for client in config.clients], - config_dir=os.path.dirname(config_path), + config_dir=config_dir, output_dir=output_dir, round_duration=config.round_duration, ) @@ -39,7 +55,7 @@ async def main(): mix_pubkeys = [] for server in config.mix_servers: mix_addrs.append(server.address) - pubkey_path = os.path.join(os.path.dirname(config_path), f"{server.id}.key") + pubkey_path = os.path.join(config_dir, f"{server.id}.key") with open(pubkey_path, "rb") as f: mix_pubkeys.append(f.read()) @@ -51,7 +67,7 @@ async def main(): client.id, client.address, port, - config_dir=os.path.dirname(config_path), + config_dir=config_dir, mix_pubkeys=mix_pubkeys, mix_addrs=mix_addrs, dummy_payload=config.dummy_payload, @@ -61,14 +77,10 @@ async def main(): client_1 = clients[0] client_2 = clients[1] - client_1_pubkey_path = os.path.join( - os.path.dirname(config_path), f"{client_1._id}.key" - ) + client_1_pubkey_path = os.path.join(config_dir, f"{client_1._id}.key") with open(client_1_pubkey_path, "rb") as f: client_1_pubkey = f.read() - client_2_pubkey_path = os.path.join( - os.path.dirname(config_path), f"{client_2._id}.key" - ) + client_2_pubkey_path = os.path.join(config_dir, f"{client_2._id}.key") with open(client_2_pubkey_path, "rb") as f: client_2_pubkey = f.read() diff --git a/src/mixnet/mixnet_pb2.py b/src/mixnet/mixnet_pb2.py index 30f1249..6d39102 100644 --- a/src/mixnet/mixnet_pb2.py +++ b/src/mixnet/mixnet_pb2.py @@ -20,7 +20,7 @@ DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile( - b'\n\x0cmixnet.proto\x12\x06mixnet"7\n\x15\x46orwardMessageRequest\x12\x0f\n\x07payload\x18\x01 \x01(\x0c\x12\r\n\x05round\x18\x02 \x01(\x05"(\n\x16\x46orwardMessageResponse\x12\x0e\n\x06status\x18\x01 \x01(\t"*\n\x13PollMessagesRequest\x12\x13\n\x0b\x63lient_addr\x18\x01 \x01(\t"(\n\x14PollMessagesResponse\x12\x10\n\x08payloads\x18\x01 \x03(\x0c"$\n\x0fRegisterRequest\x12\x11\n\tclient_id\x18\x01 \x01(\t""\n\x10RegisterResponse\x12\x0e\n\x06status\x18\x01 \x01(\x08"(\n\x13WaitForStartRequest\x12\x11\n\tclient_id\x18\x01 \x01(\t"=\n\x14WaitForStartResponse\x12\r\n\x05ready\x18\x01 \x01(\x08\x12\x16\n\x0eround_duration\x18\x02 \x01(\x05"Z\n\x15PrepareMessageRequest\x12\x0f\n\x07message\x18\x01 \x01(\t\x12\x18\n\x10recipient_pubkey\x18\x02 \x01(\x0c\x12\x16\n\x0erecipient_addr\x18\x03 \x01(\t"(\n\x16PrepareMessageResponse\x12\x0e\n\x06status\x18\x01 \x01(\x08"\x1b\n\x19\x43lientPollMessagesRequest".\n\x1a\x43lientPollMessagesResponse\x12\x10\n\x08messages\x18\x01 \x03(\t2\xb1\x02\n\tMixServer\x12O\n\x0e\x46orwardMessage\x12\x1d.mixnet.ForwardMessageRequest\x1a\x1e.mixnet.ForwardMessageResponse\x12I\n\x0cPollMessages\x12\x1b.mixnet.PollMessagesRequest\x1a\x1c.mixnet.PollMessagesResponse\x12=\n\x08Register\x12\x17.mixnet.RegisterRequest\x1a\x18.mixnet.RegisterResponse\x12I\n\x0cWaitForStart\x12\x1b.mixnet.WaitForStartRequest\x1a\x1c.mixnet.WaitForStartResponse2\xb0\x01\n\x06\x43lient\x12O\n\x0ePrepareMessage\x12\x1d.mixnet.PrepareMessageRequest\x1a\x1e.mixnet.PrepareMessageResponse\x12U\n\x0cPollMessages\x12!.mixnet.ClientPollMessagesRequest\x1a".mixnet.ClientPollMessagesResponseb\x06proto3' + b'\n\x0cmixnet.proto\x12\x06mixnet"7\n\x15\x46orwardMessageRequest\x12\x0f\n\x07payload\x18\x01 \x01(\x0c\x12\r\n\x05round\x18\x02 \x01(\x05"(\n\x16\x46orwardMessageResponse\x12\x0e\n\x06status\x18\x01 \x01(\t"*\n\x13PollMessagesRequest\x12\x13\n\x0b\x63lient_addr\x18\x01 \x01(\t"(\n\x14PollMessagesResponse\x12\x10\n\x08payloads\x18\x01 \x03(\x0c"$\n\x0fRegisterRequest\x12\x11\n\tclient_id\x18\x01 \x01(\t""\n\x10RegisterResponse\x12\x0e\n\x06status\x18\x01 \x01(\x08"(\n\x13WaitForStartRequest\x12\x11\n\tclient_id\x18\x01 \x01(\t"=\n\x14WaitForStartResponse\x12\r\n\x05ready\x18\x01 \x01(\x08\x12\x16\n\x0eround_duration\x18\x02 \x01(\x02"Z\n\x15PrepareMessageRequest\x12\x0f\n\x07message\x18\x01 \x01(\t\x12\x18\n\x10recipient_pubkey\x18\x02 \x01(\x0c\x12\x16\n\x0erecipient_addr\x18\x03 \x01(\t"(\n\x16PrepareMessageResponse\x12\x0e\n\x06status\x18\x01 \x01(\x08"\x1b\n\x19\x43lientPollMessagesRequest".\n\x1a\x43lientPollMessagesResponse\x12\x10\n\x08messages\x18\x01 \x03(\t2\xb1\x02\n\tMixServer\x12O\n\x0e\x46orwardMessage\x12\x1d.mixnet.ForwardMessageRequest\x1a\x1e.mixnet.ForwardMessageResponse\x12I\n\x0cPollMessages\x12\x1b.mixnet.PollMessagesRequest\x1a\x1c.mixnet.PollMessagesResponse\x12=\n\x08Register\x12\x17.mixnet.RegisterRequest\x1a\x18.mixnet.RegisterResponse\x12I\n\x0cWaitForStart\x12\x1b.mixnet.WaitForStartRequest\x1a\x1c.mixnet.WaitForStartResponse2\xb0\x01\n\x06\x43lient\x12O\n\x0ePrepareMessage\x12\x1d.mixnet.PrepareMessageRequest\x1a\x1e.mixnet.PrepareMessageResponse\x12U\n\x0cPollMessages\x12!.mixnet.ClientPollMessagesRequest\x1a".mixnet.ClientPollMessagesResponseb\x06proto3' ) _globals = globals() @@ -57,4 +57,3 @@ _globals["_CLIENT"]._serialized_start = 908 _globals["_CLIENT"]._serialized_end = 1084 # @@protoc_insertion_point(module_scope) -# @@protoc_insertion_point(module_scope) diff --git a/src/mixnet/models.py b/src/mixnet/models.py index 433aeb0..da2966e 100644 --- a/src/mixnet/models.py +++ b/src/mixnet/models.py @@ -31,7 +31,7 @@ class Client(BaseModel): class Config(BaseModel): messages_per_round: int - round_duration: int = 1 + round_duration: float = 1 dummy_payload: str = "dummy" mix_servers: List[Server] clients: List[Client] diff --git a/src/mixnet/server.py b/src/mixnet/server.py index 3e8dd84..caa73cb 100644 --- a/src/mixnet/server.py +++ b/src/mixnet/server.py @@ -1,6 +1,7 @@ import asyncio import logging import os +import time from typing import Dict, List import grpc @@ -34,7 +35,9 @@ def __init__( clients_addrs: List[str], config_dir: str, output_dir: str, - round_duration: int = 1, + round_duration: float = 1, + enable_metrics: bool = False, + metrics: Dict[str, float] = {}, ): self._logger = logging.getLogger(id) self._id = id @@ -43,6 +46,8 @@ def __init__( self._output_dir = output_dir self._round_duration = round_duration self._port = port + self._enable_metrics = enable_metrics + self._metrics = metrics self._server = None self._pubkey_path = os.path.join(config_dir, f"{id}.key") @@ -92,6 +97,8 @@ async def WaitForStart(self, request, context): return WaitForStartResponse(ready=True, round_duration=self._round_duration) async def ForwardMessage(self, request, context): + if self._enable_metrics: + received_time = time.perf_counter_ns() self._logger.info( f"Received message from: '{context.peer()}' for round {request.round}" ) @@ -101,6 +108,8 @@ async def ForwardMessage(self, request, context): # Store the message if request.round not in self._messages: self._messages[request.round] = [] + if request.round == 0: + self._metrics[self._id]["round_start_time"] = received_time self._messages[request.round].append(message) self._logger.debug( f"Stored message for round {request.round}. Count: {len(self._messages[request.round])}/{self._messages_per_round}" @@ -137,6 +146,10 @@ async def _send_round_messages(self, messages: List[Message], round: int): if message.address not in self._final_messages: self._final_messages[message.address] = [] self._final_messages[message.address].append(message.payload) + if self._enable_metrics: + round_end_time = time.perf_counter_ns() + if round == 0: + self._metrics[self._id]["round_end_time"] = round_end_time output_file = os.path.join( self._output_dir, f"{self._id}_round_{round}_{message.address.replace(':', '_')}.txt", @@ -169,10 +182,10 @@ async def stop(self): self._running = False async with self._cond: self._cond.notify() # Wake up forwarding thread to check running flag - if self._server: - await self._server.stop(grace=5.0) if self._wait_future: await self._wait_future + if self._server: + await self._server.stop(grace=5.0) if os.path.exists(self._pubkey_path): os.remove(self._pubkey_path) - self._logger.warning("server stopped") + self._logger.info("server stopped") diff --git a/uv.lock b/uv.lock index a5bcf44..b553d6a 100644 --- a/uv.lock +++ b/uv.lock @@ -74,6 +74,56 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/d1/d6/3965ed04c63042e047cb6a3e6ed1a63a35087b6a609aa3a15ed8ac56c221/colorama-0.4.6-py2.py3-none-any.whl", hash = "sha256:4f1d9991f5acc0ca119f9d443620b77f9d6b33703e51011c16baf57afb285fc6", size = 25335, upload-time = "2022-10-25T02:36:20.889Z" }, ] +[[package]] +name = "contourpy" +version = "1.3.2" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "numpy" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/66/54/eb9bfc647b19f2009dd5c7f5ec51c4e6ca831725f1aea7a993034f483147/contourpy-1.3.2.tar.gz", hash = "sha256:b6945942715a034c671b7fc54f9588126b0b8bf23db2696e3ca8328f3ff0ab54", size = 13466130, upload-time = "2025-04-15T17:47:53.79Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/34/f7/44785876384eff370c251d58fd65f6ad7f39adce4a093c934d4a67a7c6b6/contourpy-1.3.2-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:4caf2bcd2969402bf77edc4cb6034c7dd7c0803213b3523f111eb7460a51b8d2", size = 271580, upload-time = "2025-04-15T17:37:03.105Z" }, + { url = "https://files.pythonhosted.org/packages/93/3b/0004767622a9826ea3d95f0e9d98cd8729015768075d61f9fea8eeca42a8/contourpy-1.3.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:82199cb78276249796419fe36b7386bd8d2cc3f28b3bc19fe2454fe2e26c4c15", size = 255530, upload-time = "2025-04-15T17:37:07.026Z" }, + { url = "https://files.pythonhosted.org/packages/e7/bb/7bd49e1f4fa805772d9fd130e0d375554ebc771ed7172f48dfcd4ca61549/contourpy-1.3.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:106fab697af11456fcba3e352ad50effe493a90f893fca6c2ca5c033820cea92", size = 307688, upload-time = "2025-04-15T17:37:11.481Z" }, + { url = "https://files.pythonhosted.org/packages/fc/97/e1d5dbbfa170725ef78357a9a0edc996b09ae4af170927ba8ce977e60a5f/contourpy-1.3.2-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:d14f12932a8d620e307f715857107b1d1845cc44fdb5da2bc8e850f5ceba9f87", size = 347331, upload-time = "2025-04-15T17:37:18.212Z" }, + { url = "https://files.pythonhosted.org/packages/6f/66/e69e6e904f5ecf6901be3dd16e7e54d41b6ec6ae3405a535286d4418ffb4/contourpy-1.3.2-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:532fd26e715560721bb0d5fc7610fce279b3699b018600ab999d1be895b09415", size = 318963, upload-time = "2025-04-15T17:37:22.76Z" }, + { url = "https://files.pythonhosted.org/packages/a8/32/b8a1c8965e4f72482ff2d1ac2cd670ce0b542f203c8e1d34e7c3e6925da7/contourpy-1.3.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f26b383144cf2d2c29f01a1e8170f50dacf0eac02d64139dcd709a8ac4eb3cfe", size = 323681, upload-time = "2025-04-15T17:37:33.001Z" }, + { url = "https://files.pythonhosted.org/packages/30/c6/12a7e6811d08757c7162a541ca4c5c6a34c0f4e98ef2b338791093518e40/contourpy-1.3.2-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:c49f73e61f1f774650a55d221803b101d966ca0c5a2d6d5e4320ec3997489441", size = 1308674, upload-time = "2025-04-15T17:37:48.64Z" }, + { url = "https://files.pythonhosted.org/packages/2a/8a/bebe5a3f68b484d3a2b8ffaf84704b3e343ef1addea528132ef148e22b3b/contourpy-1.3.2-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:3d80b2c0300583228ac98d0a927a1ba6a2ba6b8a742463c564f1d419ee5b211e", size = 1380480, upload-time = "2025-04-15T17:38:06.7Z" }, + { url = "https://files.pythonhosted.org/packages/34/db/fcd325f19b5978fb509a7d55e06d99f5f856294c1991097534360b307cf1/contourpy-1.3.2-cp312-cp312-win32.whl", hash = "sha256:90df94c89a91b7362e1142cbee7568f86514412ab8a2c0d0fca72d7e91b62912", size = 178489, upload-time = "2025-04-15T17:38:10.338Z" }, + { url = "https://files.pythonhosted.org/packages/01/c8/fadd0b92ffa7b5eb5949bf340a63a4a496a6930a6c37a7ba0f12acb076d6/contourpy-1.3.2-cp312-cp312-win_amd64.whl", hash = "sha256:8c942a01d9163e2e5cfb05cb66110121b8d07ad438a17f9e766317bcb62abf73", size = 223042, upload-time = "2025-04-15T17:38:14.239Z" }, + { url = "https://files.pythonhosted.org/packages/2e/61/5673f7e364b31e4e7ef6f61a4b5121c5f170f941895912f773d95270f3a2/contourpy-1.3.2-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:de39db2604ae755316cb5967728f4bea92685884b1e767b7c24e983ef5f771cb", size = 271630, upload-time = "2025-04-15T17:38:19.142Z" }, + { url = "https://files.pythonhosted.org/packages/ff/66/a40badddd1223822c95798c55292844b7e871e50f6bfd9f158cb25e0bd39/contourpy-1.3.2-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:3f9e896f447c5c8618f1edb2bafa9a4030f22a575ec418ad70611450720b5b08", size = 255670, upload-time = "2025-04-15T17:38:23.688Z" }, + { url = "https://files.pythonhosted.org/packages/1e/c7/cf9fdee8200805c9bc3b148f49cb9482a4e3ea2719e772602a425c9b09f8/contourpy-1.3.2-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:71e2bd4a1c4188f5c2b8d274da78faab884b59df20df63c34f74aa1813c4427c", size = 306694, upload-time = "2025-04-15T17:38:28.238Z" }, + { url = "https://files.pythonhosted.org/packages/dd/e7/ccb9bec80e1ba121efbffad7f38021021cda5be87532ec16fd96533bb2e0/contourpy-1.3.2-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:de425af81b6cea33101ae95ece1f696af39446db9682a0b56daaa48cfc29f38f", size = 345986, upload-time = "2025-04-15T17:38:33.502Z" }, + { url = "https://files.pythonhosted.org/packages/dc/49/ca13bb2da90391fa4219fdb23b078d6065ada886658ac7818e5441448b78/contourpy-1.3.2-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:977e98a0e0480d3fe292246417239d2d45435904afd6d7332d8455981c408b85", size = 318060, upload-time = "2025-04-15T17:38:38.672Z" }, + { url = "https://files.pythonhosted.org/packages/c8/65/5245ce8c548a8422236c13ffcdcdada6a2a812c361e9e0c70548bb40b661/contourpy-1.3.2-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:434f0adf84911c924519d2b08fc10491dd282b20bdd3fa8f60fd816ea0b48841", size = 322747, upload-time = "2025-04-15T17:38:43.712Z" }, + { url = "https://files.pythonhosted.org/packages/72/30/669b8eb48e0a01c660ead3752a25b44fdb2e5ebc13a55782f639170772f9/contourpy-1.3.2-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:c66c4906cdbc50e9cba65978823e6e00b45682eb09adbb78c9775b74eb222422", size = 1308895, upload-time = "2025-04-15T17:39:00.224Z" }, + { url = "https://files.pythonhosted.org/packages/05/5a/b569f4250decee6e8d54498be7bdf29021a4c256e77fe8138c8319ef8eb3/contourpy-1.3.2-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:8b7fc0cd78ba2f4695fd0a6ad81a19e7e3ab825c31b577f384aa9d7817dc3bef", size = 1379098, upload-time = "2025-04-15T17:43:29.649Z" }, + { url = "https://files.pythonhosted.org/packages/19/ba/b227c3886d120e60e41b28740ac3617b2f2b971b9f601c835661194579f1/contourpy-1.3.2-cp313-cp313-win32.whl", hash = "sha256:15ce6ab60957ca74cff444fe66d9045c1fd3e92c8936894ebd1f3eef2fff075f", size = 178535, upload-time = "2025-04-15T17:44:44.532Z" }, + { url = "https://files.pythonhosted.org/packages/12/6e/2fed56cd47ca739b43e892707ae9a13790a486a3173be063681ca67d2262/contourpy-1.3.2-cp313-cp313-win_amd64.whl", hash = "sha256:e1578f7eafce927b168752ed7e22646dad6cd9bca673c60bff55889fa236ebf9", size = 223096, upload-time = "2025-04-15T17:44:48.194Z" }, + { url = "https://files.pythonhosted.org/packages/54/4c/e76fe2a03014a7c767d79ea35c86a747e9325537a8b7627e0e5b3ba266b4/contourpy-1.3.2-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:0475b1f6604896bc7c53bb070e355e9321e1bc0d381735421a2d2068ec56531f", size = 285090, upload-time = "2025-04-15T17:43:34.084Z" }, + { url = "https://files.pythonhosted.org/packages/7b/e2/5aba47debd55d668e00baf9651b721e7733975dc9fc27264a62b0dd26eb8/contourpy-1.3.2-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:c85bb486e9be652314bb5b9e2e3b0d1b2e643d5eec4992c0fbe8ac71775da739", size = 268643, upload-time = "2025-04-15T17:43:38.626Z" }, + { url = "https://files.pythonhosted.org/packages/a1/37/cd45f1f051fe6230f751cc5cdd2728bb3a203f5619510ef11e732109593c/contourpy-1.3.2-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:745b57db7758f3ffc05a10254edd3182a2a83402a89c00957a8e8a22f5582823", size = 310443, upload-time = "2025-04-15T17:43:44.522Z" }, + { url = "https://files.pythonhosted.org/packages/8b/a2/36ea6140c306c9ff6dd38e3bcec80b3b018474ef4d17eb68ceecd26675f4/contourpy-1.3.2-cp313-cp313t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:970e9173dbd7eba9b4e01aab19215a48ee5dd3f43cef736eebde064a171f89a5", size = 349865, upload-time = "2025-04-15T17:43:49.545Z" }, + { url = "https://files.pythonhosted.org/packages/95/b7/2fc76bc539693180488f7b6cc518da7acbbb9e3b931fd9280504128bf956/contourpy-1.3.2-cp313-cp313t-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:c6c4639a9c22230276b7bffb6a850dfc8258a2521305e1faefe804d006b2e532", size = 321162, upload-time = "2025-04-15T17:43:54.203Z" }, + { url = "https://files.pythonhosted.org/packages/f4/10/76d4f778458b0aa83f96e59d65ece72a060bacb20cfbee46cf6cd5ceba41/contourpy-1.3.2-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:cc829960f34ba36aad4302e78eabf3ef16a3a100863f0d4eeddf30e8a485a03b", size = 327355, upload-time = "2025-04-15T17:44:01.025Z" }, + { url = "https://files.pythonhosted.org/packages/43/a3/10cf483ea683f9f8ab096c24bad3cce20e0d1dd9a4baa0e2093c1c962d9d/contourpy-1.3.2-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:d32530b534e986374fc19eaa77fcb87e8a99e5431499949b828312bdcd20ac52", size = 1307935, upload-time = "2025-04-15T17:44:17.322Z" }, + { url = "https://files.pythonhosted.org/packages/78/73/69dd9a024444489e22d86108e7b913f3528f56cfc312b5c5727a44188471/contourpy-1.3.2-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:e298e7e70cf4eb179cc1077be1c725b5fd131ebc81181bf0c03525c8abc297fd", size = 1372168, upload-time = "2025-04-15T17:44:33.43Z" }, + { url = "https://files.pythonhosted.org/packages/0f/1b/96d586ccf1b1a9d2004dd519b25fbf104a11589abfd05484ff12199cca21/contourpy-1.3.2-cp313-cp313t-win32.whl", hash = "sha256:d0e589ae0d55204991450bb5c23f571c64fe43adaa53f93fc902a84c96f52fe1", size = 189550, upload-time = "2025-04-15T17:44:37.092Z" }, + { url = "https://files.pythonhosted.org/packages/b0/e6/6000d0094e8a5e32ad62591c8609e269febb6e4db83a1c75ff8868b42731/contourpy-1.3.2-cp313-cp313t-win_amd64.whl", hash = "sha256:78e9253c3de756b3f6a5174d024c4835acd59eb3f8e2ca13e775dbffe1558f69", size = 238214, upload-time = "2025-04-15T17:44:40.827Z" }, +] + +[[package]] +name = "cycler" +version = "0.12.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/a9/95/a3dbbb5028f35eafb79008e7522a75244477d2838f38cbb722248dabc2a8/cycler-0.12.1.tar.gz", hash = "sha256:88bb128f02ba341da8ef447245a9e138fae777f6a23943da4540077d3601eb1c", size = 7615, upload-time = "2023-10-07T05:32:18.335Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/e7/05/c19819d5e3d95294a6f5947fb9b9629efb316b96de511b418c53d245aae6/cycler-0.12.1-py3-none-any.whl", hash = "sha256:85cef7cff222d8644161529808465972e51340599459b8ac3ccbac5a854e0d30", size = 8321, upload-time = "2023-10-07T05:32:16.783Z" }, +] + [[package]] name = "distlib" version = "0.3.9" @@ -92,6 +142,31 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/4d/36/2a115987e2d8c300a974597416d9de88f2444426de9571f4b59b2cca3acc/filelock-3.18.0-py3-none-any.whl", hash = "sha256:c401f4f8377c4464e6db25fff06205fd89bdd83b65eb0488ed1b160f780e21de", size = 16215, upload-time = "2025-03-14T07:11:39.145Z" }, ] +[[package]] +name = "fonttools" +version = "4.59.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/8a/27/ec3c723bfdf86f34c5c82bf6305df3e0f0d8ea798d2d3a7cb0c0a866d286/fonttools-4.59.0.tar.gz", hash = "sha256:be392ec3529e2f57faa28709d60723a763904f71a2b63aabe14fee6648fe3b14", size = 3532521, upload-time = "2025-07-16T12:04:54.613Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/e2/77/b1c8af22f4265e951cd2e5535dbef8859efcef4fb8dee742d368c967cddb/fonttools-4.59.0-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:f9b3a78f69dcbd803cf2fb3f972779875b244c1115481dfbdd567b2c22b31f6b", size = 2767562, upload-time = "2025-07-16T12:04:06.895Z" }, + { url = "https://files.pythonhosted.org/packages/ff/5a/aeb975699588176bb357e8b398dfd27e5d3a2230d92b81ab8cbb6187358d/fonttools-4.59.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:57bb7e26928573ee7c6504f54c05860d867fd35e675769f3ce01b52af38d48e2", size = 2335168, upload-time = "2025-07-16T12:04:08.695Z" }, + { url = "https://files.pythonhosted.org/packages/54/97/c6101a7e60ae138c4ef75b22434373a0da50a707dad523dd19a4889315bf/fonttools-4.59.0-cp312-cp312-manylinux1_x86_64.manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:4536f2695fe5c1ffb528d84a35a7d3967e5558d2af58b4775e7ab1449d65767b", size = 4909850, upload-time = "2025-07-16T12:04:10.761Z" }, + { url = "https://files.pythonhosted.org/packages/bd/6c/fa4d18d641054f7bff878cbea14aa9433f292b9057cb1700d8e91a4d5f4f/fonttools-4.59.0-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:885bde7d26e5b40e15c47bd5def48b38cbd50830a65f98122a8fb90962af7cd1", size = 4955131, upload-time = "2025-07-16T12:04:12.846Z" }, + { url = "https://files.pythonhosted.org/packages/20/5c/331947fc1377deb928a69bde49f9003364f5115e5cbe351eea99e39412a2/fonttools-4.59.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:6801aeddb6acb2c42eafa45bc1cb98ba236871ae6f33f31e984670b749a8e58e", size = 4899667, upload-time = "2025-07-16T12:04:14.558Z" }, + { url = "https://files.pythonhosted.org/packages/8a/46/b66469dfa26b8ff0baa7654b2cc7851206c6d57fe3abdabbaab22079a119/fonttools-4.59.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:31003b6a10f70742a63126b80863ab48175fb8272a18ca0846c0482968f0588e", size = 5051349, upload-time = "2025-07-16T12:04:16.388Z" }, + { url = "https://files.pythonhosted.org/packages/2e/05/ebfb6b1f3a4328ab69787d106a7d92ccde77ce66e98659df0f9e3f28d93d/fonttools-4.59.0-cp312-cp312-win32.whl", hash = "sha256:fbce6dae41b692a5973d0f2158f782b9ad05babc2c2019a970a1094a23909b1b", size = 2201315, upload-time = "2025-07-16T12:04:18.557Z" }, + { url = "https://files.pythonhosted.org/packages/09/45/d2bdc9ea20bbadec1016fd0db45696d573d7a26d95ab5174ffcb6d74340b/fonttools-4.59.0-cp312-cp312-win_amd64.whl", hash = "sha256:332bfe685d1ac58ca8d62b8d6c71c2e52a6c64bc218dc8f7825c9ea51385aa01", size = 2249408, upload-time = "2025-07-16T12:04:20.489Z" }, + { url = "https://files.pythonhosted.org/packages/f3/bb/390990e7c457d377b00890d9f96a3ca13ae2517efafb6609c1756e213ba4/fonttools-4.59.0-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:78813b49d749e1bb4db1c57f2d4d7e6db22c253cb0a86ad819f5dc197710d4b2", size = 2758704, upload-time = "2025-07-16T12:04:22.217Z" }, + { url = "https://files.pythonhosted.org/packages/df/6f/d730d9fcc9b410a11597092bd2eb9ca53e5438c6cb90e4b3047ce1b723e9/fonttools-4.59.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:401b1941ce37e78b8fd119b419b617277c65ae9417742a63282257434fd68ea2", size = 2330764, upload-time = "2025-07-16T12:04:23.985Z" }, + { url = "https://files.pythonhosted.org/packages/75/b4/b96bb66f6f8cc4669de44a158099b249c8159231d254ab6b092909388be5/fonttools-4.59.0-cp313-cp313-manylinux1_x86_64.manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:efd7e6660674e234e29937bc1481dceb7e0336bfae75b856b4fb272b5093c5d4", size = 4890699, upload-time = "2025-07-16T12:04:25.664Z" }, + { url = "https://files.pythonhosted.org/packages/b5/57/7969af50b26408be12baa317c6147588db5b38af2759e6df94554dbc5fdb/fonttools-4.59.0-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:51ab1ff33c19e336c02dee1e9fd1abd974a4ca3d8f7eef2a104d0816a241ce97", size = 4952934, upload-time = "2025-07-16T12:04:27.733Z" }, + { url = "https://files.pythonhosted.org/packages/d6/e2/dd968053b6cf1f46c904f5bd409b22341477c017d8201619a265e50762d3/fonttools-4.59.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:a9bf8adc9e1f3012edc8f09b08336272aec0c55bc677422273e21280db748f7c", size = 4892319, upload-time = "2025-07-16T12:04:30.074Z" }, + { url = "https://files.pythonhosted.org/packages/6b/95/a59810d8eda09129f83467a4e58f84205dc6994ebaeb9815406363e07250/fonttools-4.59.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:37e01c6ec0c98599778c2e688350d624fa4770fbd6144551bd5e032f1199171c", size = 5034753, upload-time = "2025-07-16T12:04:32.292Z" }, + { url = "https://files.pythonhosted.org/packages/a5/84/51a69ee89ff8d1fea0c6997e946657e25a3f08513de8435fe124929f3eef/fonttools-4.59.0-cp313-cp313-win32.whl", hash = "sha256:70d6b3ceaa9cc5a6ac52884f3b3d9544e8e231e95b23f138bdb78e6d4dc0eae3", size = 2199688, upload-time = "2025-07-16T12:04:34.444Z" }, + { url = "https://files.pythonhosted.org/packages/a0/ee/f626cd372932d828508137a79b85167fdcf3adab2e3bed433f295c596c6a/fonttools-4.59.0-cp313-cp313-win_amd64.whl", hash = "sha256:26731739daa23b872643f0e4072d5939960237d540c35c14e6a06d47d71ca8fe", size = 2248560, upload-time = "2025-07-16T12:04:36.034Z" }, + { url = "https://files.pythonhosted.org/packages/d0/9c/df0ef2c51845a13043e5088f7bb988ca6cd5bb82d5d4203d6a158aa58cf2/fonttools-4.59.0-py3-none-any.whl", hash = "sha256:241313683afd3baacb32a6bd124d0bce7404bc5280e12e291bae1b9bba28711d", size = 1128050, upload-time = "2025-07-16T12:04:52.687Z" }, +] + [[package]] name = "grpcio" version = "1.73.0" @@ -171,6 +246,57 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/2c/e1/e6716421ea10d38022b952c159d5161ca1193197fb744506875fbb87ea7b/iniconfig-2.1.0-py3-none-any.whl", hash = "sha256:9deba5723312380e77435581c6bf4935c94cbfab9b1ed33ef8d238ea168eb760", size = 6050, upload-time = "2025-03-19T20:10:01.071Z" }, ] +[[package]] +name = "kiwisolver" +version = "1.4.8" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/82/59/7c91426a8ac292e1cdd53a63b6d9439abd573c875c3f92c146767dd33faf/kiwisolver-1.4.8.tar.gz", hash = "sha256:23d5f023bdc8c7e54eb65f03ca5d5bb25b601eac4d7f1a042888a1f45237987e", size = 97538, upload-time = "2024-12-24T18:30:51.519Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/fc/aa/cea685c4ab647f349c3bc92d2daf7ae34c8e8cf405a6dcd3a497f58a2ac3/kiwisolver-1.4.8-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:d6af5e8815fd02997cb6ad9bbed0ee1e60014438ee1a5c2444c96f87b8843502", size = 124152, upload-time = "2024-12-24T18:29:16.85Z" }, + { url = "https://files.pythonhosted.org/packages/c5/0b/8db6d2e2452d60d5ebc4ce4b204feeb16176a851fd42462f66ade6808084/kiwisolver-1.4.8-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:bade438f86e21d91e0cf5dd7c0ed00cda0f77c8c1616bd83f9fc157fa6760d31", size = 66555, upload-time = "2024-12-24T18:29:19.146Z" }, + { url = "https://files.pythonhosted.org/packages/60/26/d6a0db6785dd35d3ba5bf2b2df0aedc5af089962c6eb2cbf67a15b81369e/kiwisolver-1.4.8-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:b83dc6769ddbc57613280118fb4ce3cd08899cc3369f7d0e0fab518a7cf37fdb", size = 65067, upload-time = "2024-12-24T18:29:20.096Z" }, + { url = "https://files.pythonhosted.org/packages/c9/ed/1d97f7e3561e09757a196231edccc1bcf59d55ddccefa2afc9c615abd8e0/kiwisolver-1.4.8-cp312-cp312-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:111793b232842991be367ed828076b03d96202c19221b5ebab421ce8bcad016f", size = 1378443, upload-time = "2024-12-24T18:29:22.843Z" }, + { url = "https://files.pythonhosted.org/packages/29/61/39d30b99954e6b46f760e6289c12fede2ab96a254c443639052d1b573fbc/kiwisolver-1.4.8-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:257af1622860e51b1a9d0ce387bf5c2c4f36a90594cb9514f55b074bcc787cfc", size = 1472728, upload-time = "2024-12-24T18:29:24.463Z" }, + { url = "https://files.pythonhosted.org/packages/0c/3e/804163b932f7603ef256e4a715e5843a9600802bb23a68b4e08c8c0ff61d/kiwisolver-1.4.8-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:69b5637c3f316cab1ec1c9a12b8c5f4750a4c4b71af9157645bf32830e39c03a", size = 1478388, upload-time = "2024-12-24T18:29:25.776Z" }, + { url = "https://files.pythonhosted.org/packages/8a/9e/60eaa75169a154700be74f875a4d9961b11ba048bef315fbe89cb6999056/kiwisolver-1.4.8-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:782bb86f245ec18009890e7cb8d13a5ef54dcf2ebe18ed65f795e635a96a1c6a", size = 1413849, upload-time = "2024-12-24T18:29:27.202Z" }, + { url = "https://files.pythonhosted.org/packages/bc/b3/9458adb9472e61a998c8c4d95cfdfec91c73c53a375b30b1428310f923e4/kiwisolver-1.4.8-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:cc978a80a0db3a66d25767b03688f1147a69e6237175c0f4ffffaaedf744055a", size = 1475533, upload-time = "2024-12-24T18:29:28.638Z" }, + { url = "https://files.pythonhosted.org/packages/e4/7a/0a42d9571e35798de80aef4bb43a9b672aa7f8e58643d7bd1950398ffb0a/kiwisolver-1.4.8-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:36dbbfd34838500a31f52c9786990d00150860e46cd5041386f217101350f0d3", size = 2268898, upload-time = "2024-12-24T18:29:30.368Z" }, + { url = "https://files.pythonhosted.org/packages/d9/07/1255dc8d80271400126ed8db35a1795b1a2c098ac3a72645075d06fe5c5d/kiwisolver-1.4.8-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:eaa973f1e05131de5ff3569bbba7f5fd07ea0595d3870ed4a526d486fe57fa1b", size = 2425605, upload-time = "2024-12-24T18:29:33.151Z" }, + { url = "https://files.pythonhosted.org/packages/84/df/5a3b4cf13780ef6f6942df67b138b03b7e79e9f1f08f57c49957d5867f6e/kiwisolver-1.4.8-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:a66f60f8d0c87ab7f59b6fb80e642ebb29fec354a4dfad687ca4092ae69d04f4", size = 2375801, upload-time = "2024-12-24T18:29:34.584Z" }, + { url = "https://files.pythonhosted.org/packages/8f/10/2348d068e8b0f635c8c86892788dac7a6b5c0cb12356620ab575775aad89/kiwisolver-1.4.8-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:858416b7fb777a53f0c59ca08190ce24e9abbd3cffa18886a5781b8e3e26f65d", size = 2520077, upload-time = "2024-12-24T18:29:36.138Z" }, + { url = "https://files.pythonhosted.org/packages/32/d8/014b89fee5d4dce157d814303b0fce4d31385a2af4c41fed194b173b81ac/kiwisolver-1.4.8-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:085940635c62697391baafaaeabdf3dd7a6c3643577dde337f4d66eba021b2b8", size = 2338410, upload-time = "2024-12-24T18:29:39.991Z" }, + { url = "https://files.pythonhosted.org/packages/bd/72/dfff0cc97f2a0776e1c9eb5bef1ddfd45f46246c6533b0191887a427bca5/kiwisolver-1.4.8-cp312-cp312-win_amd64.whl", hash = "sha256:01c3d31902c7db5fb6182832713d3b4122ad9317c2c5877d0539227d96bb2e50", size = 71853, upload-time = "2024-12-24T18:29:42.006Z" }, + { url = "https://files.pythonhosted.org/packages/dc/85/220d13d914485c0948a00f0b9eb419efaf6da81b7d72e88ce2391f7aed8d/kiwisolver-1.4.8-cp312-cp312-win_arm64.whl", hash = "sha256:a3c44cb68861de93f0c4a8175fbaa691f0aa22550c331fefef02b618a9dcb476", size = 65424, upload-time = "2024-12-24T18:29:44.38Z" }, + { url = "https://files.pythonhosted.org/packages/79/b3/e62464a652f4f8cd9006e13d07abad844a47df1e6537f73ddfbf1bc997ec/kiwisolver-1.4.8-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:1c8ceb754339793c24aee1c9fb2485b5b1f5bb1c2c214ff13368431e51fc9a09", size = 124156, upload-time = "2024-12-24T18:29:45.368Z" }, + { url = "https://files.pythonhosted.org/packages/8d/2d/f13d06998b546a2ad4f48607a146e045bbe48030774de29f90bdc573df15/kiwisolver-1.4.8-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:54a62808ac74b5e55a04a408cda6156f986cefbcf0ada13572696b507cc92fa1", size = 66555, upload-time = "2024-12-24T18:29:46.37Z" }, + { url = "https://files.pythonhosted.org/packages/59/e3/b8bd14b0a54998a9fd1e8da591c60998dc003618cb19a3f94cb233ec1511/kiwisolver-1.4.8-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:68269e60ee4929893aad82666821aaacbd455284124817af45c11e50a4b42e3c", size = 65071, upload-time = "2024-12-24T18:29:47.333Z" }, + { url = "https://files.pythonhosted.org/packages/f0/1c/6c86f6d85ffe4d0ce04228d976f00674f1df5dc893bf2dd4f1928748f187/kiwisolver-1.4.8-cp313-cp313-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:34d142fba9c464bc3bbfeff15c96eab0e7310343d6aefb62a79d51421fcc5f1b", size = 1378053, upload-time = "2024-12-24T18:29:49.636Z" }, + { url = "https://files.pythonhosted.org/packages/4e/b9/1c6e9f6dcb103ac5cf87cb695845f5fa71379021500153566d8a8a9fc291/kiwisolver-1.4.8-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3ddc373e0eef45b59197de815b1b28ef89ae3955e7722cc9710fb91cd77b7f47", size = 1472278, upload-time = "2024-12-24T18:29:51.164Z" }, + { url = "https://files.pythonhosted.org/packages/ee/81/aca1eb176de671f8bda479b11acdc42c132b61a2ac861c883907dde6debb/kiwisolver-1.4.8-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:77e6f57a20b9bd4e1e2cedda4d0b986ebd0216236f0106e55c28aea3d3d69b16", size = 1478139, upload-time = "2024-12-24T18:29:52.594Z" }, + { url = "https://files.pythonhosted.org/packages/49/f4/e081522473671c97b2687d380e9e4c26f748a86363ce5af48b4a28e48d06/kiwisolver-1.4.8-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:08e77738ed7538f036cd1170cbed942ef749137b1311fa2bbe2a7fda2f6bf3cc", size = 1413517, upload-time = "2024-12-24T18:29:53.941Z" }, + { url = "https://files.pythonhosted.org/packages/8f/e9/6a7d025d8da8c4931522922cd706105aa32b3291d1add8c5427cdcd66e63/kiwisolver-1.4.8-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a5ce1e481a74b44dd5e92ff03ea0cb371ae7a0268318e202be06c8f04f4f1246", size = 1474952, upload-time = "2024-12-24T18:29:56.523Z" }, + { url = "https://files.pythonhosted.org/packages/82/13/13fa685ae167bee5d94b415991c4fc7bb0a1b6ebea6e753a87044b209678/kiwisolver-1.4.8-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:fc2ace710ba7c1dfd1a3b42530b62b9ceed115f19a1656adefce7b1782a37794", size = 2269132, upload-time = "2024-12-24T18:29:57.989Z" }, + { url = "https://files.pythonhosted.org/packages/ef/92/bb7c9395489b99a6cb41d502d3686bac692586db2045adc19e45ee64ed23/kiwisolver-1.4.8-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:3452046c37c7692bd52b0e752b87954ef86ee2224e624ef7ce6cb21e8c41cc1b", size = 2425997, upload-time = "2024-12-24T18:29:59.393Z" }, + { url = "https://files.pythonhosted.org/packages/ed/12/87f0e9271e2b63d35d0d8524954145837dd1a6c15b62a2d8c1ebe0f182b4/kiwisolver-1.4.8-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:7e9a60b50fe8b2ec6f448fe8d81b07e40141bfced7f896309df271a0b92f80f3", size = 2376060, upload-time = "2024-12-24T18:30:01.338Z" }, + { url = "https://files.pythonhosted.org/packages/02/6e/c8af39288edbce8bf0fa35dee427b082758a4b71e9c91ef18fa667782138/kiwisolver-1.4.8-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:918139571133f366e8362fa4a297aeba86c7816b7ecf0bc79168080e2bd79957", size = 2520471, upload-time = "2024-12-24T18:30:04.574Z" }, + { url = "https://files.pythonhosted.org/packages/13/78/df381bc7b26e535c91469f77f16adcd073beb3e2dd25042efd064af82323/kiwisolver-1.4.8-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:e063ef9f89885a1d68dd8b2e18f5ead48653176d10a0e324e3b0030e3a69adeb", size = 2338793, upload-time = "2024-12-24T18:30:06.25Z" }, + { url = "https://files.pythonhosted.org/packages/d0/dc/c1abe38c37c071d0fc71c9a474fd0b9ede05d42f5a458d584619cfd2371a/kiwisolver-1.4.8-cp313-cp313-win_amd64.whl", hash = "sha256:a17b7c4f5b2c51bb68ed379defd608a03954a1845dfed7cc0117f1cc8a9b7fd2", size = 71855, upload-time = "2024-12-24T18:30:07.535Z" }, + { url = "https://files.pythonhosted.org/packages/a0/b6/21529d595b126ac298fdd90b705d87d4c5693de60023e0efcb4f387ed99e/kiwisolver-1.4.8-cp313-cp313-win_arm64.whl", hash = "sha256:3cd3bc628b25f74aedc6d374d5babf0166a92ff1317f46267f12d2ed54bc1d30", size = 65430, upload-time = "2024-12-24T18:30:08.504Z" }, + { url = "https://files.pythonhosted.org/packages/34/bd/b89380b7298e3af9b39f49334e3e2a4af0e04819789f04b43d560516c0c8/kiwisolver-1.4.8-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:370fd2df41660ed4e26b8c9d6bbcad668fbe2560462cba151a721d49e5b6628c", size = 126294, upload-time = "2024-12-24T18:30:09.508Z" }, + { url = "https://files.pythonhosted.org/packages/83/41/5857dc72e5e4148eaac5aa76e0703e594e4465f8ab7ec0fc60e3a9bb8fea/kiwisolver-1.4.8-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:84a2f830d42707de1d191b9490ac186bf7997a9495d4e9072210a1296345f7dc", size = 67736, upload-time = "2024-12-24T18:30:11.039Z" }, + { url = "https://files.pythonhosted.org/packages/e1/d1/be059b8db56ac270489fb0b3297fd1e53d195ba76e9bbb30e5401fa6b759/kiwisolver-1.4.8-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:7a3ad337add5148cf51ce0b55642dc551c0b9d6248458a757f98796ca7348712", size = 66194, upload-time = "2024-12-24T18:30:14.886Z" }, + { url = "https://files.pythonhosted.org/packages/e1/83/4b73975f149819eb7dcf9299ed467eba068ecb16439a98990dcb12e63fdd/kiwisolver-1.4.8-cp313-cp313t-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:7506488470f41169b86d8c9aeff587293f530a23a23a49d6bc64dab66bedc71e", size = 1465942, upload-time = "2024-12-24T18:30:18.927Z" }, + { url = "https://files.pythonhosted.org/packages/c7/2c/30a5cdde5102958e602c07466bce058b9d7cb48734aa7a4327261ac8e002/kiwisolver-1.4.8-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2f0121b07b356a22fb0414cec4666bbe36fd6d0d759db3d37228f496ed67c880", size = 1595341, upload-time = "2024-12-24T18:30:22.102Z" }, + { url = "https://files.pythonhosted.org/packages/ff/9b/1e71db1c000385aa069704f5990574b8244cce854ecd83119c19e83c9586/kiwisolver-1.4.8-cp313-cp313t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:d6d6bd87df62c27d4185de7c511c6248040afae67028a8a22012b010bc7ad062", size = 1598455, upload-time = "2024-12-24T18:30:24.947Z" }, + { url = "https://files.pythonhosted.org/packages/85/92/c8fec52ddf06231b31cbb779af77e99b8253cd96bd135250b9498144c78b/kiwisolver-1.4.8-cp313-cp313t-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:291331973c64bb9cce50bbe871fb2e675c4331dab4f31abe89f175ad7679a4d7", size = 1522138, upload-time = "2024-12-24T18:30:26.286Z" }, + { url = "https://files.pythonhosted.org/packages/0b/51/9eb7e2cd07a15d8bdd976f6190c0164f92ce1904e5c0c79198c4972926b7/kiwisolver-1.4.8-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:893f5525bb92d3d735878ec00f781b2de998333659507d29ea4466208df37bed", size = 1582857, upload-time = "2024-12-24T18:30:28.86Z" }, + { url = "https://files.pythonhosted.org/packages/0f/95/c5a00387a5405e68ba32cc64af65ce881a39b98d73cc394b24143bebc5b8/kiwisolver-1.4.8-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:b47a465040146981dc9db8647981b8cb96366fbc8d452b031e4f8fdffec3f26d", size = 2293129, upload-time = "2024-12-24T18:30:30.34Z" }, + { url = "https://files.pythonhosted.org/packages/44/83/eeb7af7d706b8347548313fa3a3a15931f404533cc54fe01f39e830dd231/kiwisolver-1.4.8-cp313-cp313t-musllinux_1_2_i686.whl", hash = "sha256:99cea8b9dd34ff80c521aef46a1dddb0dcc0283cf18bde6d756f1e6f31772165", size = 2421538, upload-time = "2024-12-24T18:30:33.334Z" }, + { url = "https://files.pythonhosted.org/packages/05/f9/27e94c1b3eb29e6933b6986ffc5fa1177d2cd1f0c8efc5f02c91c9ac61de/kiwisolver-1.4.8-cp313-cp313t-musllinux_1_2_ppc64le.whl", hash = "sha256:151dffc4865e5fe6dafce5480fab84f950d14566c480c08a53c663a0020504b6", size = 2390661, upload-time = "2024-12-24T18:30:34.939Z" }, + { url = "https://files.pythonhosted.org/packages/d9/d4/3c9735faa36ac591a4afcc2980d2691000506050b7a7e80bcfe44048daa7/kiwisolver-1.4.8-cp313-cp313t-musllinux_1_2_s390x.whl", hash = "sha256:577facaa411c10421314598b50413aa1ebcf5126f704f1e5d72d7e4e9f020d90", size = 2546710, upload-time = "2024-12-24T18:30:37.281Z" }, + { url = "https://files.pythonhosted.org/packages/4c/fa/be89a49c640930180657482a74970cdcf6f7072c8d2471e1babe17a222dc/kiwisolver-1.4.8-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:be4816dc51c8a471749d664161b434912eee82f2ea66bd7628bd14583a833e85", size = 2349213, upload-time = "2024-12-24T18:30:40.019Z" }, +] + [[package]] name = "markdown-it-py" version = "3.0.0" @@ -183,6 +309,43 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/42/d7/1ec15b46af6af88f19b8e5ffea08fa375d433c998b8a7639e76935c14f1f/markdown_it_py-3.0.0-py3-none-any.whl", hash = "sha256:355216845c60bd96232cd8d8c40e8f9765cc86f46880e43a8fd22dc1a1a8cab1", size = 87528, upload-time = "2023-06-03T06:41:11.019Z" }, ] +[[package]] +name = "matplotlib" +version = "3.10.3" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "contourpy" }, + { name = "cycler" }, + { name = "fonttools" }, + { name = "kiwisolver" }, + { name = "numpy" }, + { name = "packaging" }, + { name = "pillow" }, + { name = "pyparsing" }, + { name = "python-dateutil" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/26/91/d49359a21893183ed2a5b6c76bec40e0b1dcbf8ca148f864d134897cfc75/matplotlib-3.10.3.tar.gz", hash = "sha256:2f82d2c5bb7ae93aaaa4cd42aca65d76ce6376f83304fa3a630b569aca274df0", size = 34799811, upload-time = "2025-05-08T19:10:54.39Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/eb/43/6b80eb47d1071f234ef0c96ca370c2ca621f91c12045f1401b5c9b28a639/matplotlib-3.10.3-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:0ab1affc11d1f495ab9e6362b8174a25afc19c081ba5b0775ef00533a4236eea", size = 8179689, upload-time = "2025-05-08T19:10:07.602Z" }, + { url = "https://files.pythonhosted.org/packages/0f/70/d61a591958325c357204870b5e7b164f93f2a8cca1dc6ce940f563909a13/matplotlib-3.10.3-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:2a818d8bdcafa7ed2eed74487fdb071c09c1ae24152d403952adad11fa3c65b4", size = 8050466, upload-time = "2025-05-08T19:10:09.383Z" }, + { url = "https://files.pythonhosted.org/packages/e7/75/70c9d2306203148cc7902a961240c5927dd8728afedf35e6a77e105a2985/matplotlib-3.10.3-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:748ebc3470c253e770b17d8b0557f0aa85cf8c63fd52f1a61af5b27ec0b7ffee", size = 8456252, upload-time = "2025-05-08T19:10:11.958Z" }, + { url = "https://files.pythonhosted.org/packages/c4/91/ba0ae1ff4b3f30972ad01cd4a8029e70a0ec3b8ea5be04764b128b66f763/matplotlib-3.10.3-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ed70453fd99733293ace1aec568255bc51c6361cb0da94fa5ebf0649fdb2150a", size = 8601321, upload-time = "2025-05-08T19:10:14.47Z" }, + { url = "https://files.pythonhosted.org/packages/d2/88/d636041eb54a84b889e11872d91f7cbf036b3b0e194a70fa064eb8b04f7a/matplotlib-3.10.3-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:dbed9917b44070e55640bd13419de83b4c918e52d97561544814ba463811cbc7", size = 9406972, upload-time = "2025-05-08T19:10:16.569Z" }, + { url = "https://files.pythonhosted.org/packages/b1/79/0d1c165eac44405a86478082e225fce87874f7198300bbebc55faaf6d28d/matplotlib-3.10.3-cp312-cp312-win_amd64.whl", hash = "sha256:cf37d8c6ef1a48829443e8ba5227b44236d7fcaf7647caa3178a4ff9f7a5be05", size = 8067954, upload-time = "2025-05-08T19:10:18.663Z" }, + { url = "https://files.pythonhosted.org/packages/3b/c1/23cfb566a74c696a3b338d8955c549900d18fe2b898b6e94d682ca21e7c2/matplotlib-3.10.3-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:9f2efccc8dcf2b86fc4ee849eea5dcaecedd0773b30f47980dc0cbeabf26ec84", size = 8180318, upload-time = "2025-05-08T19:10:20.426Z" }, + { url = "https://files.pythonhosted.org/packages/6c/0c/02f1c3b66b30da9ee343c343acbb6251bef5b01d34fad732446eaadcd108/matplotlib-3.10.3-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:3ddbba06a6c126e3301c3d272a99dcbe7f6c24c14024e80307ff03791a5f294e", size = 8051132, upload-time = "2025-05-08T19:10:22.569Z" }, + { url = "https://files.pythonhosted.org/packages/b4/ab/8db1a5ac9b3a7352fb914133001dae889f9fcecb3146541be46bed41339c/matplotlib-3.10.3-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:748302b33ae9326995b238f606e9ed840bf5886ebafcb233775d946aa8107a15", size = 8457633, upload-time = "2025-05-08T19:10:24.749Z" }, + { url = "https://files.pythonhosted.org/packages/f5/64/41c4367bcaecbc03ef0d2a3ecee58a7065d0a36ae1aa817fe573a2da66d4/matplotlib-3.10.3-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a80fcccbef63302c0efd78042ea3c2436104c5b1a4d3ae20f864593696364ac7", size = 8601031, upload-time = "2025-05-08T19:10:27.03Z" }, + { url = "https://files.pythonhosted.org/packages/12/6f/6cc79e9e5ab89d13ed64da28898e40fe5b105a9ab9c98f83abd24e46d7d7/matplotlib-3.10.3-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:55e46cbfe1f8586adb34f7587c3e4f7dedc59d5226719faf6cb54fc24f2fd52d", size = 9406988, upload-time = "2025-05-08T19:10:29.056Z" }, + { url = "https://files.pythonhosted.org/packages/b1/0f/eed564407bd4d935ffabf561ed31099ed609e19287409a27b6d336848653/matplotlib-3.10.3-cp313-cp313-win_amd64.whl", hash = "sha256:151d89cb8d33cb23345cd12490c76fd5d18a56581a16d950b48c6ff19bb2ab93", size = 8068034, upload-time = "2025-05-08T19:10:31.221Z" }, + { url = "https://files.pythonhosted.org/packages/3e/e5/2f14791ff69b12b09e9975e1d116d9578ac684460860ce542c2588cb7a1c/matplotlib-3.10.3-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:c26dd9834e74d164d06433dc7be5d75a1e9890b926b3e57e74fa446e1a62c3e2", size = 8218223, upload-time = "2025-05-08T19:10:33.114Z" }, + { url = "https://files.pythonhosted.org/packages/5c/08/30a94afd828b6e02d0a52cae4a29d6e9ccfcf4c8b56cc28b021d3588873e/matplotlib-3.10.3-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:24853dad5b8c84c8c2390fc31ce4858b6df504156893292ce8092d190ef8151d", size = 8094985, upload-time = "2025-05-08T19:10:35.337Z" }, + { url = "https://files.pythonhosted.org/packages/89/44/f3bc6b53066c889d7a1a3ea8094c13af6a667c5ca6220ec60ecceec2dabe/matplotlib-3.10.3-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:68f7878214d369d7d4215e2a9075fef743be38fa401d32e6020bab2dfabaa566", size = 8483109, upload-time = "2025-05-08T19:10:37.611Z" }, + { url = "https://files.pythonhosted.org/packages/ba/c7/473bc559beec08ebee9f86ca77a844b65747e1a6c2691e8c92e40b9f42a8/matplotlib-3.10.3-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f6929fc618cb6db9cb75086f73b3219bbb25920cb24cee2ea7a12b04971a4158", size = 8618082, upload-time = "2025-05-08T19:10:39.892Z" }, + { url = "https://files.pythonhosted.org/packages/d8/e9/6ce8edd264c8819e37bbed8172e0ccdc7107fe86999b76ab5752276357a4/matplotlib-3.10.3-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:6c7818292a5cc372a2dc4c795e5c356942eb8350b98ef913f7fda51fe175ac5d", size = 9413699, upload-time = "2025-05-08T19:10:42.376Z" }, + { url = "https://files.pythonhosted.org/packages/1b/92/9a45c91089c3cf690b5badd4be81e392ff086ccca8a1d4e3a08463d8a966/matplotlib-3.10.3-cp313-cp313t-win_amd64.whl", hash = "sha256:4f23ffe95c5667ef8a2b56eea9b53db7f43910fa4a2d5472ae0f72b64deab4d5", size = 8139044, upload-time = "2025-05-08T19:10:44.551Z" }, +] + [[package]] name = "mdurl" version = "0.1.2" @@ -205,6 +368,10 @@ dependencies = [ ] [package.dev-dependencies] +benchmark = [ + { name = "matplotlib" }, + { name = "pandas" }, +] dev = [ { name = "mypy" }, { name = "pre-commit" }, @@ -224,6 +391,10 @@ requires-dist = [ ] [package.metadata.requires-dev] +benchmark = [ + { name = "matplotlib", specifier = ">=3.10.3" }, + { name = "pandas", specifier = ">=2.3.1" }, +] dev = [ { name = "mypy", specifier = ">=1.16.1" }, { name = "pre-commit", specifier = ">=4.2.0" }, @@ -277,6 +448,47 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/d2/1d/1b658dbd2b9fa9c4c9f32accbfc0205d532c8c6194dc0f2a4c0428e7128a/nodeenv-1.9.1-py2.py3-none-any.whl", hash = "sha256:ba11c9782d29c27c70ffbdda2d7415098754709be8a7056d79a737cd901155c9", size = 22314, upload-time = "2024-06-04T18:44:08.352Z" }, ] +[[package]] +name = "numpy" +version = "2.3.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/2e/19/d7c972dfe90a353dbd3efbbe1d14a5951de80c99c9dc1b93cd998d51dc0f/numpy-2.3.1.tar.gz", hash = "sha256:1ec9ae20a4226da374362cca3c62cd753faf2f951440b0e3b98e93c235441d2b", size = 20390372, upload-time = "2025-06-21T12:28:33.469Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/c6/56/71ad5022e2f63cfe0ca93559403d0edef14aea70a841d640bd13cdba578e/numpy-2.3.1-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:2959d8f268f3d8ee402b04a9ec4bb7604555aeacf78b360dc4ec27f1d508177d", size = 20896664, upload-time = "2025-06-21T12:15:30.845Z" }, + { url = "https://files.pythonhosted.org/packages/25/65/2db52ba049813670f7f987cc5db6dac9be7cd95e923cc6832b3d32d87cef/numpy-2.3.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:762e0c0c6b56bdedfef9a8e1d4538556438288c4276901ea008ae44091954e29", size = 14131078, upload-time = "2025-06-21T12:15:52.23Z" }, + { url = "https://files.pythonhosted.org/packages/57/dd/28fa3c17b0e751047ac928c1e1b6990238faad76e9b147e585b573d9d1bd/numpy-2.3.1-cp312-cp312-macosx_14_0_arm64.whl", hash = "sha256:867ef172a0976aaa1f1d1b63cf2090de8b636a7674607d514505fb7276ab08fc", size = 5112554, upload-time = "2025-06-21T12:16:01.434Z" }, + { url = "https://files.pythonhosted.org/packages/c9/fc/84ea0cba8e760c4644b708b6819d91784c290288c27aca916115e3311d17/numpy-2.3.1-cp312-cp312-macosx_14_0_x86_64.whl", hash = "sha256:4e602e1b8682c2b833af89ba641ad4176053aaa50f5cacda1a27004352dde943", size = 6646560, upload-time = "2025-06-21T12:16:11.895Z" }, + { url = "https://files.pythonhosted.org/packages/61/b2/512b0c2ddec985ad1e496b0bd853eeb572315c0f07cd6997473ced8f15e2/numpy-2.3.1-cp312-cp312-manylinux_2_28_aarch64.whl", hash = "sha256:8e333040d069eba1652fb08962ec5b76af7f2c7bce1df7e1418c8055cf776f25", size = 14260638, upload-time = "2025-06-21T12:16:32.611Z" }, + { url = "https://files.pythonhosted.org/packages/6e/45/c51cb248e679a6c6ab14b7a8e3ead3f4a3fe7425fc7a6f98b3f147bec532/numpy-2.3.1-cp312-cp312-manylinux_2_28_x86_64.whl", hash = "sha256:e7cbf5a5eafd8d230a3ce356d892512185230e4781a361229bd902ff403bc660", size = 16632729, upload-time = "2025-06-21T12:16:57.439Z" }, + { url = "https://files.pythonhosted.org/packages/e4/ff/feb4be2e5c09a3da161b412019caf47183099cbea1132fd98061808c2df2/numpy-2.3.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:5f1b8f26d1086835f442286c1d9b64bb3974b0b1e41bb105358fd07d20872952", size = 15565330, upload-time = "2025-06-21T12:17:20.638Z" }, + { url = "https://files.pythonhosted.org/packages/bc/6d/ceafe87587101e9ab0d370e4f6e5f3f3a85b9a697f2318738e5e7e176ce3/numpy-2.3.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:ee8340cb48c9b7a5899d1149eece41ca535513a9698098edbade2a8e7a84da77", size = 18361734, upload-time = "2025-06-21T12:17:47.938Z" }, + { url = "https://files.pythonhosted.org/packages/2b/19/0fb49a3ea088be691f040c9bf1817e4669a339d6e98579f91859b902c636/numpy-2.3.1-cp312-cp312-win32.whl", hash = "sha256:e772dda20a6002ef7061713dc1e2585bc1b534e7909b2030b5a46dae8ff077ab", size = 6320411, upload-time = "2025-06-21T12:17:58.475Z" }, + { url = "https://files.pythonhosted.org/packages/b1/3e/e28f4c1dd9e042eb57a3eb652f200225e311b608632bc727ae378623d4f8/numpy-2.3.1-cp312-cp312-win_amd64.whl", hash = "sha256:cfecc7822543abdea6de08758091da655ea2210b8ffa1faf116b940693d3df76", size = 12734973, upload-time = "2025-06-21T12:18:17.601Z" }, + { url = "https://files.pythonhosted.org/packages/04/a8/8a5e9079dc722acf53522b8f8842e79541ea81835e9b5483388701421073/numpy-2.3.1-cp312-cp312-win_arm64.whl", hash = "sha256:7be91b2239af2658653c5bb6f1b8bccafaf08226a258caf78ce44710a0160d30", size = 10191491, upload-time = "2025-06-21T12:18:33.585Z" }, + { url = "https://files.pythonhosted.org/packages/d4/bd/35ad97006d8abff8631293f8ea6adf07b0108ce6fec68da3c3fcca1197f2/numpy-2.3.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:25a1992b0a3fdcdaec9f552ef10d8103186f5397ab45e2d25f8ac51b1a6b97e8", size = 20889381, upload-time = "2025-06-21T12:19:04.103Z" }, + { url = "https://files.pythonhosted.org/packages/f1/4f/df5923874d8095b6062495b39729178eef4a922119cee32a12ee1bd4664c/numpy-2.3.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:7dea630156d39b02a63c18f508f85010230409db5b2927ba59c8ba4ab3e8272e", size = 14152726, upload-time = "2025-06-21T12:19:25.599Z" }, + { url = "https://files.pythonhosted.org/packages/8c/0f/a1f269b125806212a876f7efb049b06c6f8772cf0121139f97774cd95626/numpy-2.3.1-cp313-cp313-macosx_14_0_arm64.whl", hash = "sha256:bada6058dd886061f10ea15f230ccf7dfff40572e99fef440a4a857c8728c9c0", size = 5105145, upload-time = "2025-06-21T12:19:34.782Z" }, + { url = "https://files.pythonhosted.org/packages/6d/63/a7f7fd5f375b0361682f6ffbf686787e82b7bbd561268e4f30afad2bb3c0/numpy-2.3.1-cp313-cp313-macosx_14_0_x86_64.whl", hash = "sha256:a894f3816eb17b29e4783e5873f92faf55b710c2519e5c351767c51f79d8526d", size = 6639409, upload-time = "2025-06-21T12:19:45.228Z" }, + { url = "https://files.pythonhosted.org/packages/bf/0d/1854a4121af895aab383f4aa233748f1df4671ef331d898e32426756a8a6/numpy-2.3.1-cp313-cp313-manylinux_2_28_aarch64.whl", hash = "sha256:18703df6c4a4fee55fd3d6e5a253d01c5d33a295409b03fda0c86b3ca2ff41a1", size = 14257630, upload-time = "2025-06-21T12:20:06.544Z" }, + { url = "https://files.pythonhosted.org/packages/50/30/af1b277b443f2fb08acf1c55ce9d68ee540043f158630d62cef012750f9f/numpy-2.3.1-cp313-cp313-manylinux_2_28_x86_64.whl", hash = "sha256:5902660491bd7a48b2ec16c23ccb9124b8abfd9583c5fdfa123fe6b421e03de1", size = 16627546, upload-time = "2025-06-21T12:20:31.002Z" }, + { url = "https://files.pythonhosted.org/packages/6e/ec/3b68220c277e463095342d254c61be8144c31208db18d3fd8ef02712bcd6/numpy-2.3.1-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:36890eb9e9d2081137bd78d29050ba63b8dab95dff7912eadf1185e80074b2a0", size = 15562538, upload-time = "2025-06-21T12:20:54.322Z" }, + { url = "https://files.pythonhosted.org/packages/77/2b/4014f2bcc4404484021c74d4c5ee8eb3de7e3f7ac75f06672f8dcf85140a/numpy-2.3.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:a780033466159c2270531e2b8ac063704592a0bc62ec4a1b991c7c40705eb0e8", size = 18360327, upload-time = "2025-06-21T12:21:21.053Z" }, + { url = "https://files.pythonhosted.org/packages/40/8d/2ddd6c9b30fcf920837b8672f6c65590c7d92e43084c25fc65edc22e93ca/numpy-2.3.1-cp313-cp313-win32.whl", hash = "sha256:39bff12c076812595c3a306f22bfe49919c5513aa1e0e70fac756a0be7c2a2b8", size = 6312330, upload-time = "2025-06-21T12:25:07.447Z" }, + { url = "https://files.pythonhosted.org/packages/dd/c8/beaba449925988d415efccb45bf977ff8327a02f655090627318f6398c7b/numpy-2.3.1-cp313-cp313-win_amd64.whl", hash = "sha256:8d5ee6eec45f08ce507a6570e06f2f879b374a552087a4179ea7838edbcbfa42", size = 12731565, upload-time = "2025-06-21T12:25:26.444Z" }, + { url = "https://files.pythonhosted.org/packages/0b/c3/5c0c575d7ec78c1126998071f58facfc124006635da75b090805e642c62e/numpy-2.3.1-cp313-cp313-win_arm64.whl", hash = "sha256:0c4d9e0a8368db90f93bd192bfa771ace63137c3488d198ee21dfb8e7771916e", size = 10190262, upload-time = "2025-06-21T12:25:42.196Z" }, + { url = "https://files.pythonhosted.org/packages/ea/19/a029cd335cf72f79d2644dcfc22d90f09caa86265cbbde3b5702ccef6890/numpy-2.3.1-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:b0b5397374f32ec0649dd98c652a1798192042e715df918c20672c62fb52d4b8", size = 20987593, upload-time = "2025-06-21T12:21:51.664Z" }, + { url = "https://files.pythonhosted.org/packages/25/91/8ea8894406209107d9ce19b66314194675d31761fe2cb3c84fe2eeae2f37/numpy-2.3.1-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:c5bdf2015ccfcee8253fb8be695516ac4457c743473a43290fd36eba6a1777eb", size = 14300523, upload-time = "2025-06-21T12:22:13.583Z" }, + { url = "https://files.pythonhosted.org/packages/a6/7f/06187b0066eefc9e7ce77d5f2ddb4e314a55220ad62dd0bfc9f2c44bac14/numpy-2.3.1-cp313-cp313t-macosx_14_0_arm64.whl", hash = "sha256:d70f20df7f08b90a2062c1f07737dd340adccf2068d0f1b9b3d56e2038979fee", size = 5227993, upload-time = "2025-06-21T12:22:22.53Z" }, + { url = "https://files.pythonhosted.org/packages/e8/ec/a926c293c605fa75e9cfb09f1e4840098ed46d2edaa6e2152ee35dc01ed3/numpy-2.3.1-cp313-cp313t-macosx_14_0_x86_64.whl", hash = "sha256:2fb86b7e58f9ac50e1e9dd1290154107e47d1eef23a0ae9145ded06ea606f992", size = 6736652, upload-time = "2025-06-21T12:22:33.629Z" }, + { url = "https://files.pythonhosted.org/packages/e3/62/d68e52fb6fde5586650d4c0ce0b05ff3a48ad4df4ffd1b8866479d1d671d/numpy-2.3.1-cp313-cp313t-manylinux_2_28_aarch64.whl", hash = "sha256:23ab05b2d241f76cb883ce8b9a93a680752fbfcbd51c50eff0b88b979e471d8c", size = 14331561, upload-time = "2025-06-21T12:22:55.056Z" }, + { url = "https://files.pythonhosted.org/packages/fc/ec/b74d3f2430960044bdad6900d9f5edc2dc0fb8bf5a0be0f65287bf2cbe27/numpy-2.3.1-cp313-cp313t-manylinux_2_28_x86_64.whl", hash = "sha256:ce2ce9e5de4703a673e705183f64fd5da5bf36e7beddcb63a25ee2286e71ca48", size = 16693349, upload-time = "2025-06-21T12:23:20.53Z" }, + { url = "https://files.pythonhosted.org/packages/0d/15/def96774b9d7eb198ddadfcbd20281b20ebb510580419197e225f5c55c3e/numpy-2.3.1-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:c4913079974eeb5c16ccfd2b1f09354b8fed7e0d6f2cab933104a09a6419b1ee", size = 15642053, upload-time = "2025-06-21T12:23:43.697Z" }, + { url = "https://files.pythonhosted.org/packages/2b/57/c3203974762a759540c6ae71d0ea2341c1fa41d84e4971a8e76d7141678a/numpy-2.3.1-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:010ce9b4f00d5c036053ca684c77441f2f2c934fd23bee058b4d6f196efd8280", size = 18434184, upload-time = "2025-06-21T12:24:10.708Z" }, + { url = "https://files.pythonhosted.org/packages/22/8a/ccdf201457ed8ac6245187850aff4ca56a79edbea4829f4e9f14d46fa9a5/numpy-2.3.1-cp313-cp313t-win32.whl", hash = "sha256:6269b9edfe32912584ec496d91b00b6d34282ca1d07eb10e82dfc780907d6c2e", size = 6440678, upload-time = "2025-06-21T12:24:21.596Z" }, + { url = "https://files.pythonhosted.org/packages/f1/7e/7f431d8bd8eb7e03d79294aed238b1b0b174b3148570d03a8a8a8f6a0da9/numpy-2.3.1-cp313-cp313t-win_amd64.whl", hash = "sha256:2a809637460e88a113e186e87f228d74ae2852a2e0c44de275263376f17b5bdc", size = 12870697, upload-time = "2025-06-21T12:24:40.644Z" }, + { url = "https://files.pythonhosted.org/packages/d4/ca/af82bf0fad4c3e573c6930ed743b5308492ff19917c7caaf2f9b6f9e2e98/numpy-2.3.1-cp313-cp313t-win_arm64.whl", hash = "sha256:eccb9a159db9aed60800187bc47a6d3451553f0e1b08b068d8b277ddfbb9b244", size = 10260376, upload-time = "2025-06-21T12:24:56.884Z" }, +] + [[package]] name = "packaging" version = "25.0" @@ -286,6 +498,40 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/20/12/38679034af332785aac8774540895e234f4d07f7545804097de4b666afd8/packaging-25.0-py3-none-any.whl", hash = "sha256:29572ef2b1f17581046b3a2227d5c611fb25ec70ca1ba8554b24b0e69331a484", size = 66469, upload-time = "2025-04-19T11:48:57.875Z" }, ] +[[package]] +name = "pandas" +version = "2.3.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "numpy" }, + { name = "python-dateutil" }, + { name = "pytz" }, + { name = "tzdata" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/d1/6f/75aa71f8a14267117adeeed5d21b204770189c0a0025acbdc03c337b28fc/pandas-2.3.1.tar.gz", hash = "sha256:0a95b9ac964fe83ce317827f80304d37388ea77616b1425f0ae41c9d2d0d7bb2", size = 4487493, upload-time = "2025-07-07T19:20:04.079Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/46/de/b8445e0f5d217a99fe0eeb2f4988070908979bec3587c0633e5428ab596c/pandas-2.3.1-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:689968e841136f9e542020698ee1c4fbe9caa2ed2213ae2388dc7b81721510d3", size = 11588172, upload-time = "2025-07-07T19:18:52.054Z" }, + { url = "https://files.pythonhosted.org/packages/1e/e0/801cdb3564e65a5ac041ab99ea6f1d802a6c325bb6e58c79c06a3f1cd010/pandas-2.3.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:025e92411c16cbe5bb2a4abc99732a6b132f439b8aab23a59fa593eb00704232", size = 10717365, upload-time = "2025-07-07T19:18:54.785Z" }, + { url = "https://files.pythonhosted.org/packages/51/a5/c76a8311833c24ae61a376dbf360eb1b1c9247a5d9c1e8b356563b31b80c/pandas-2.3.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9b7ff55f31c4fcb3e316e8f7fa194566b286d6ac430afec0d461163312c5841e", size = 11280411, upload-time = "2025-07-07T19:18:57.045Z" }, + { url = "https://files.pythonhosted.org/packages/da/01/e383018feba0a1ead6cf5fe8728e5d767fee02f06a3d800e82c489e5daaf/pandas-2.3.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7dcb79bf373a47d2a40cf7232928eb7540155abbc460925c2c96d2d30b006eb4", size = 11988013, upload-time = "2025-07-07T19:18:59.771Z" }, + { url = "https://files.pythonhosted.org/packages/5b/14/cec7760d7c9507f11c97d64f29022e12a6cc4fc03ac694535e89f88ad2ec/pandas-2.3.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:56a342b231e8862c96bdb6ab97170e203ce511f4d0429589c8ede1ee8ece48b8", size = 12767210, upload-time = "2025-07-07T19:19:02.944Z" }, + { url = "https://files.pythonhosted.org/packages/50/b9/6e2d2c6728ed29fb3d4d4d302504fb66f1a543e37eb2e43f352a86365cdf/pandas-2.3.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:ca7ed14832bce68baef331f4d7f294411bed8efd032f8109d690df45e00c4679", size = 13440571, upload-time = "2025-07-07T19:19:06.82Z" }, + { url = "https://files.pythonhosted.org/packages/80/a5/3a92893e7399a691bad7664d977cb5e7c81cf666c81f89ea76ba2bff483d/pandas-2.3.1-cp312-cp312-win_amd64.whl", hash = "sha256:ac942bfd0aca577bef61f2bc8da8147c4ef6879965ef883d8e8d5d2dc3e744b8", size = 10987601, upload-time = "2025-07-07T19:19:09.589Z" }, + { url = "https://files.pythonhosted.org/packages/32/ed/ff0a67a2c5505e1854e6715586ac6693dd860fbf52ef9f81edee200266e7/pandas-2.3.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:9026bd4a80108fac2239294a15ef9003c4ee191a0f64b90f170b40cfb7cf2d22", size = 11531393, upload-time = "2025-07-07T19:19:12.245Z" }, + { url = "https://files.pythonhosted.org/packages/c7/db/d8f24a7cc9fb0972adab0cc80b6817e8bef888cfd0024eeb5a21c0bb5c4a/pandas-2.3.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:6de8547d4fdb12421e2d047a2c446c623ff4c11f47fddb6b9169eb98ffba485a", size = 10668750, upload-time = "2025-07-07T19:19:14.612Z" }, + { url = "https://files.pythonhosted.org/packages/0f/b0/80f6ec783313f1e2356b28b4fd8d2148c378370045da918c73145e6aab50/pandas-2.3.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:782647ddc63c83133b2506912cc6b108140a38a37292102aaa19c81c83db2928", size = 11342004, upload-time = "2025-07-07T19:19:16.857Z" }, + { url = "https://files.pythonhosted.org/packages/e9/e2/20a317688435470872885e7fc8f95109ae9683dec7c50be29b56911515a5/pandas-2.3.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2ba6aff74075311fc88504b1db890187a3cd0f887a5b10f5525f8e2ef55bfdb9", size = 12050869, upload-time = "2025-07-07T19:19:19.265Z" }, + { url = "https://files.pythonhosted.org/packages/55/79/20d746b0a96c67203a5bee5fb4e00ac49c3e8009a39e1f78de264ecc5729/pandas-2.3.1-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:e5635178b387bd2ba4ac040f82bc2ef6e6b500483975c4ebacd34bec945fda12", size = 12750218, upload-time = "2025-07-07T19:19:21.547Z" }, + { url = "https://files.pythonhosted.org/packages/7c/0f/145c8b41e48dbf03dd18fdd7f24f8ba95b8254a97a3379048378f33e7838/pandas-2.3.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:6f3bf5ec947526106399a9e1d26d40ee2b259c66422efdf4de63c848492d91bb", size = 13416763, upload-time = "2025-07-07T19:19:23.939Z" }, + { url = "https://files.pythonhosted.org/packages/b2/c0/54415af59db5cdd86a3d3bf79863e8cc3fa9ed265f0745254061ac09d5f2/pandas-2.3.1-cp313-cp313-win_amd64.whl", hash = "sha256:1c78cf43c8fde236342a1cb2c34bcff89564a7bfed7e474ed2fffa6aed03a956", size = 10987482, upload-time = "2025-07-07T19:19:42.699Z" }, + { url = "https://files.pythonhosted.org/packages/48/64/2fd2e400073a1230e13b8cd604c9bc95d9e3b962e5d44088ead2e8f0cfec/pandas-2.3.1-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:8dfc17328e8da77be3cf9f47509e5637ba8f137148ed0e9b5241e1baf526e20a", size = 12029159, upload-time = "2025-07-07T19:19:26.362Z" }, + { url = "https://files.pythonhosted.org/packages/d8/0a/d84fd79b0293b7ef88c760d7dca69828d867c89b6d9bc52d6a27e4d87316/pandas-2.3.1-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:ec6c851509364c59a5344458ab935e6451b31b818be467eb24b0fe89bd05b6b9", size = 11393287, upload-time = "2025-07-07T19:19:29.157Z" }, + { url = "https://files.pythonhosted.org/packages/50/ae/ff885d2b6e88f3c7520bb74ba319268b42f05d7e583b5dded9837da2723f/pandas-2.3.1-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:911580460fc4884d9b05254b38a6bfadddfcc6aaef856fb5859e7ca202e45275", size = 11309381, upload-time = "2025-07-07T19:19:31.436Z" }, + { url = "https://files.pythonhosted.org/packages/85/86/1fa345fc17caf5d7780d2699985c03dbe186c68fee00b526813939062bb0/pandas-2.3.1-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2f4d6feeba91744872a600e6edbbd5b033005b431d5ae8379abee5bcfa479fab", size = 11883998, upload-time = "2025-07-07T19:19:34.267Z" }, + { url = "https://files.pythonhosted.org/packages/81/aa/e58541a49b5e6310d89474333e994ee57fea97c8aaa8fc7f00b873059bbf/pandas-2.3.1-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:fe37e757f462d31a9cd7580236a82f353f5713a80e059a29753cf938c6775d96", size = 12704705, upload-time = "2025-07-07T19:19:36.856Z" }, + { url = "https://files.pythonhosted.org/packages/d5/f9/07086f5b0f2a19872554abeea7658200824f5835c58a106fa8f2ae96a46c/pandas-2.3.1-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:5db9637dbc24b631ff3707269ae4559bce4b7fd75c1c4d7e13f40edc42df4444", size = 13189044, upload-time = "2025-07-07T19:19:39.999Z" }, +] + [[package]] name = "pathspec" version = "0.12.1" @@ -295,6 +541,72 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/cc/20/ff623b09d963f88bfde16306a54e12ee5ea43e9b597108672ff3a408aad6/pathspec-0.12.1-py3-none-any.whl", hash = "sha256:a0d503e138a4c123b27490a4f7beda6a01c6f288df0e4a8b79c7eb0dc7b4cc08", size = 31191, upload-time = "2023-12-10T22:30:43.14Z" }, ] +[[package]] +name = "pillow" +version = "11.3.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/f3/0d/d0d6dea55cd152ce3d6767bb38a8fc10e33796ba4ba210cbab9354b6d238/pillow-11.3.0.tar.gz", hash = "sha256:3828ee7586cd0b2091b6209e5ad53e20d0649bbe87164a459d0676e035e8f523", size = 47113069, upload-time = "2025-07-01T09:16:30.666Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/40/fe/1bc9b3ee13f68487a99ac9529968035cca2f0a51ec36892060edcc51d06a/pillow-11.3.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:fdae223722da47b024b867c1ea0be64e0df702c5e0a60e27daad39bf960dd1e4", size = 5278800, upload-time = "2025-07-01T09:14:17.648Z" }, + { url = "https://files.pythonhosted.org/packages/2c/32/7e2ac19b5713657384cec55f89065fb306b06af008cfd87e572035b27119/pillow-11.3.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:921bd305b10e82b4d1f5e802b6850677f965d8394203d182f078873851dada69", size = 4686296, upload-time = "2025-07-01T09:14:19.828Z" }, + { url = "https://files.pythonhosted.org/packages/8e/1e/b9e12bbe6e4c2220effebc09ea0923a07a6da1e1f1bfbc8d7d29a01ce32b/pillow-11.3.0-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:eb76541cba2f958032d79d143b98a3a6b3ea87f0959bbe256c0b5e416599fd5d", size = 5871726, upload-time = "2025-07-03T13:10:04.448Z" }, + { url = "https://files.pythonhosted.org/packages/8d/33/e9200d2bd7ba00dc3ddb78df1198a6e80d7669cce6c2bdbeb2530a74ec58/pillow-11.3.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:67172f2944ebba3d4a7b54f2e95c786a3a50c21b88456329314caaa28cda70f6", size = 7644652, upload-time = "2025-07-03T13:10:10.391Z" }, + { url = "https://files.pythonhosted.org/packages/41/f1/6f2427a26fc683e00d985bc391bdd76d8dd4e92fac33d841127eb8fb2313/pillow-11.3.0-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:97f07ed9f56a3b9b5f49d3661dc9607484e85c67e27f3e8be2c7d28ca032fec7", size = 5977787, upload-time = "2025-07-01T09:14:21.63Z" }, + { url = "https://files.pythonhosted.org/packages/e4/c9/06dd4a38974e24f932ff5f98ea3c546ce3f8c995d3f0985f8e5ba48bba19/pillow-11.3.0-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:676b2815362456b5b3216b4fd5bd89d362100dc6f4945154ff172e206a22c024", size = 6645236, upload-time = "2025-07-01T09:14:23.321Z" }, + { url = "https://files.pythonhosted.org/packages/40/e7/848f69fb79843b3d91241bad658e9c14f39a32f71a301bcd1d139416d1be/pillow-11.3.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:3e184b2f26ff146363dd07bde8b711833d7b0202e27d13540bfe2e35a323a809", size = 6086950, upload-time = "2025-07-01T09:14:25.237Z" }, + { url = "https://files.pythonhosted.org/packages/0b/1a/7cff92e695a2a29ac1958c2a0fe4c0b2393b60aac13b04a4fe2735cad52d/pillow-11.3.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:6be31e3fc9a621e071bc17bb7de63b85cbe0bfae91bb0363c893cbe67247780d", size = 6723358, upload-time = "2025-07-01T09:14:27.053Z" }, + { url = "https://files.pythonhosted.org/packages/26/7d/73699ad77895f69edff76b0f332acc3d497f22f5d75e5360f78cbcaff248/pillow-11.3.0-cp312-cp312-win32.whl", hash = "sha256:7b161756381f0918e05e7cb8a371fff367e807770f8fe92ecb20d905d0e1c149", size = 6275079, upload-time = "2025-07-01T09:14:30.104Z" }, + { url = "https://files.pythonhosted.org/packages/8c/ce/e7dfc873bdd9828f3b6e5c2bbb74e47a98ec23cc5c74fc4e54462f0d9204/pillow-11.3.0-cp312-cp312-win_amd64.whl", hash = "sha256:a6444696fce635783440b7f7a9fc24b3ad10a9ea3f0ab66c5905be1c19ccf17d", size = 6986324, upload-time = "2025-07-01T09:14:31.899Z" }, + { url = "https://files.pythonhosted.org/packages/16/8f/b13447d1bf0b1f7467ce7d86f6e6edf66c0ad7cf44cf5c87a37f9bed9936/pillow-11.3.0-cp312-cp312-win_arm64.whl", hash = "sha256:2aceea54f957dd4448264f9bf40875da0415c83eb85f55069d89c0ed436e3542", size = 2423067, upload-time = "2025-07-01T09:14:33.709Z" }, + { url = "https://files.pythonhosted.org/packages/1e/93/0952f2ed8db3a5a4c7a11f91965d6184ebc8cd7cbb7941a260d5f018cd2d/pillow-11.3.0-cp313-cp313-ios_13_0_arm64_iphoneos.whl", hash = "sha256:1c627742b539bba4309df89171356fcb3cc5a9178355b2727d1b74a6cf155fbd", size = 2128328, upload-time = "2025-07-01T09:14:35.276Z" }, + { url = "https://files.pythonhosted.org/packages/4b/e8/100c3d114b1a0bf4042f27e0f87d2f25e857e838034e98ca98fe7b8c0a9c/pillow-11.3.0-cp313-cp313-ios_13_0_arm64_iphonesimulator.whl", hash = "sha256:30b7c02f3899d10f13d7a48163c8969e4e653f8b43416d23d13d1bbfdc93b9f8", size = 2170652, upload-time = "2025-07-01T09:14:37.203Z" }, + { url = "https://files.pythonhosted.org/packages/aa/86/3f758a28a6e381758545f7cdb4942e1cb79abd271bea932998fc0db93cb6/pillow-11.3.0-cp313-cp313-ios_13_0_x86_64_iphonesimulator.whl", hash = "sha256:7859a4cc7c9295f5838015d8cc0a9c215b77e43d07a25e460f35cf516df8626f", size = 2227443, upload-time = "2025-07-01T09:14:39.344Z" }, + { url = "https://files.pythonhosted.org/packages/01/f4/91d5b3ffa718df2f53b0dc109877993e511f4fd055d7e9508682e8aba092/pillow-11.3.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:ec1ee50470b0d050984394423d96325b744d55c701a439d2bd66089bff963d3c", size = 5278474, upload-time = "2025-07-01T09:14:41.843Z" }, + { url = "https://files.pythonhosted.org/packages/f9/0e/37d7d3eca6c879fbd9dba21268427dffda1ab00d4eb05b32923d4fbe3b12/pillow-11.3.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:7db51d222548ccfd274e4572fdbf3e810a5e66b00608862f947b163e613b67dd", size = 4686038, upload-time = "2025-07-01T09:14:44.008Z" }, + { url = "https://files.pythonhosted.org/packages/ff/b0/3426e5c7f6565e752d81221af9d3676fdbb4f352317ceafd42899aaf5d8a/pillow-11.3.0-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:2d6fcc902a24ac74495df63faad1884282239265c6839a0a6416d33faedfae7e", size = 5864407, upload-time = "2025-07-03T13:10:15.628Z" }, + { url = "https://files.pythonhosted.org/packages/fc/c1/c6c423134229f2a221ee53f838d4be9d82bab86f7e2f8e75e47b6bf6cd77/pillow-11.3.0-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:f0f5d8f4a08090c6d6d578351a2b91acf519a54986c055af27e7a93feae6d3f1", size = 7639094, upload-time = "2025-07-03T13:10:21.857Z" }, + { url = "https://files.pythonhosted.org/packages/ba/c9/09e6746630fe6372c67c648ff9deae52a2bc20897d51fa293571977ceb5d/pillow-11.3.0-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:c37d8ba9411d6003bba9e518db0db0c58a680ab9fe5179f040b0463644bc9805", size = 5973503, upload-time = "2025-07-01T09:14:45.698Z" }, + { url = "https://files.pythonhosted.org/packages/d5/1c/a2a29649c0b1983d3ef57ee87a66487fdeb45132df66ab30dd37f7dbe162/pillow-11.3.0-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:13f87d581e71d9189ab21fe0efb5a23e9f28552d5be6979e84001d3b8505abe8", size = 6642574, upload-time = "2025-07-01T09:14:47.415Z" }, + { url = "https://files.pythonhosted.org/packages/36/de/d5cc31cc4b055b6c6fd990e3e7f0f8aaf36229a2698501bcb0cdf67c7146/pillow-11.3.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:023f6d2d11784a465f09fd09a34b150ea4672e85fb3d05931d89f373ab14abb2", size = 6084060, upload-time = "2025-07-01T09:14:49.636Z" }, + { url = "https://files.pythonhosted.org/packages/d5/ea/502d938cbaeec836ac28a9b730193716f0114c41325db428e6b280513f09/pillow-11.3.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:45dfc51ac5975b938e9809451c51734124e73b04d0f0ac621649821a63852e7b", size = 6721407, upload-time = "2025-07-01T09:14:51.962Z" }, + { url = "https://files.pythonhosted.org/packages/45/9c/9c5e2a73f125f6cbc59cc7087c8f2d649a7ae453f83bd0362ff7c9e2aee2/pillow-11.3.0-cp313-cp313-win32.whl", hash = "sha256:a4d336baed65d50d37b88ca5b60c0fa9d81e3a87d4a7930d3880d1624d5b31f3", size = 6273841, upload-time = "2025-07-01T09:14:54.142Z" }, + { url = "https://files.pythonhosted.org/packages/23/85/397c73524e0cd212067e0c969aa245b01d50183439550d24d9f55781b776/pillow-11.3.0-cp313-cp313-win_amd64.whl", hash = "sha256:0bce5c4fd0921f99d2e858dc4d4d64193407e1b99478bc5cacecba2311abde51", size = 6978450, upload-time = "2025-07-01T09:14:56.436Z" }, + { url = "https://files.pythonhosted.org/packages/17/d2/622f4547f69cd173955194b78e4d19ca4935a1b0f03a302d655c9f6aae65/pillow-11.3.0-cp313-cp313-win_arm64.whl", hash = "sha256:1904e1264881f682f02b7f8167935cce37bc97db457f8e7849dc3a6a52b99580", size = 2423055, upload-time = "2025-07-01T09:14:58.072Z" }, + { url = "https://files.pythonhosted.org/packages/dd/80/a8a2ac21dda2e82480852978416cfacd439a4b490a501a288ecf4fe2532d/pillow-11.3.0-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:4c834a3921375c48ee6b9624061076bc0a32a60b5532b322cc0ea64e639dd50e", size = 5281110, upload-time = "2025-07-01T09:14:59.79Z" }, + { url = "https://files.pythonhosted.org/packages/44/d6/b79754ca790f315918732e18f82a8146d33bcd7f4494380457ea89eb883d/pillow-11.3.0-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:5e05688ccef30ea69b9317a9ead994b93975104a677a36a8ed8106be9260aa6d", size = 4689547, upload-time = "2025-07-01T09:15:01.648Z" }, + { url = "https://files.pythonhosted.org/packages/49/20/716b8717d331150cb00f7fdd78169c01e8e0c219732a78b0e59b6bdb2fd6/pillow-11.3.0-cp313-cp313t-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:1019b04af07fc0163e2810167918cb5add8d74674b6267616021ab558dc98ced", size = 5901554, upload-time = "2025-07-03T13:10:27.018Z" }, + { url = "https://files.pythonhosted.org/packages/74/cf/a9f3a2514a65bb071075063a96f0a5cf949c2f2fce683c15ccc83b1c1cab/pillow-11.3.0-cp313-cp313t-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:f944255db153ebb2b19c51fe85dd99ef0ce494123f21b9db4877ffdfc5590c7c", size = 7669132, upload-time = "2025-07-03T13:10:33.01Z" }, + { url = "https://files.pythonhosted.org/packages/98/3c/da78805cbdbee9cb43efe8261dd7cc0b4b93f2ac79b676c03159e9db2187/pillow-11.3.0-cp313-cp313t-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:1f85acb69adf2aaee8b7da124efebbdb959a104db34d3a2cb0f3793dbae422a8", size = 6005001, upload-time = "2025-07-01T09:15:03.365Z" }, + { url = "https://files.pythonhosted.org/packages/6c/fa/ce044b91faecf30e635321351bba32bab5a7e034c60187fe9698191aef4f/pillow-11.3.0-cp313-cp313t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:05f6ecbeff5005399bb48d198f098a9b4b6bdf27b8487c7f38ca16eeb070cd59", size = 6668814, upload-time = "2025-07-01T09:15:05.655Z" }, + { url = "https://files.pythonhosted.org/packages/7b/51/90f9291406d09bf93686434f9183aba27b831c10c87746ff49f127ee80cb/pillow-11.3.0-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:a7bc6e6fd0395bc052f16b1a8670859964dbd7003bd0af2ff08342eb6e442cfe", size = 6113124, upload-time = "2025-07-01T09:15:07.358Z" }, + { url = "https://files.pythonhosted.org/packages/cd/5a/6fec59b1dfb619234f7636d4157d11fb4e196caeee220232a8d2ec48488d/pillow-11.3.0-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:83e1b0161c9d148125083a35c1c5a89db5b7054834fd4387499e06552035236c", size = 6747186, upload-time = "2025-07-01T09:15:09.317Z" }, + { url = "https://files.pythonhosted.org/packages/49/6b/00187a044f98255225f172de653941e61da37104a9ea60e4f6887717e2b5/pillow-11.3.0-cp313-cp313t-win32.whl", hash = "sha256:2a3117c06b8fb646639dce83694f2f9eac405472713fcb1ae887469c0d4f6788", size = 6277546, upload-time = "2025-07-01T09:15:11.311Z" }, + { url = "https://files.pythonhosted.org/packages/e8/5c/6caaba7e261c0d75bab23be79f1d06b5ad2a2ae49f028ccec801b0e853d6/pillow-11.3.0-cp313-cp313t-win_amd64.whl", hash = "sha256:857844335c95bea93fb39e0fa2726b4d9d758850b34075a7e3ff4f4fa3aa3b31", size = 6985102, upload-time = "2025-07-01T09:15:13.164Z" }, + { url = "https://files.pythonhosted.org/packages/f3/7e/b623008460c09a0cb38263c93b828c666493caee2eb34ff67f778b87e58c/pillow-11.3.0-cp313-cp313t-win_arm64.whl", hash = "sha256:8797edc41f3e8536ae4b10897ee2f637235c94f27404cac7297f7b607dd0716e", size = 2424803, upload-time = "2025-07-01T09:15:15.695Z" }, + { url = "https://files.pythonhosted.org/packages/73/f4/04905af42837292ed86cb1b1dabe03dce1edc008ef14c473c5c7e1443c5d/pillow-11.3.0-cp314-cp314-macosx_10_13_x86_64.whl", hash = "sha256:d9da3df5f9ea2a89b81bb6087177fb1f4d1c7146d583a3fe5c672c0d94e55e12", size = 5278520, upload-time = "2025-07-01T09:15:17.429Z" }, + { url = "https://files.pythonhosted.org/packages/41/b0/33d79e377a336247df6348a54e6d2a2b85d644ca202555e3faa0cf811ecc/pillow-11.3.0-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:0b275ff9b04df7b640c59ec5a3cb113eefd3795a8df80bac69646ef699c6981a", size = 4686116, upload-time = "2025-07-01T09:15:19.423Z" }, + { url = "https://files.pythonhosted.org/packages/49/2d/ed8bc0ab219ae8768f529597d9509d184fe8a6c4741a6864fea334d25f3f/pillow-11.3.0-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:0743841cabd3dba6a83f38a92672cccbd69af56e3e91777b0ee7f4dba4385632", size = 5864597, upload-time = "2025-07-03T13:10:38.404Z" }, + { url = "https://files.pythonhosted.org/packages/b5/3d/b932bb4225c80b58dfadaca9d42d08d0b7064d2d1791b6a237f87f661834/pillow-11.3.0-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:2465a69cf967b8b49ee1b96d76718cd98c4e925414ead59fdf75cf0fd07df673", size = 7638246, upload-time = "2025-07-03T13:10:44.987Z" }, + { url = "https://files.pythonhosted.org/packages/09/b5/0487044b7c096f1b48f0d7ad416472c02e0e4bf6919541b111efd3cae690/pillow-11.3.0-cp314-cp314-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:41742638139424703b4d01665b807c6468e23e699e8e90cffefe291c5832b027", size = 5973336, upload-time = "2025-07-01T09:15:21.237Z" }, + { url = "https://files.pythonhosted.org/packages/a8/2d/524f9318f6cbfcc79fbc004801ea6b607ec3f843977652fdee4857a7568b/pillow-11.3.0-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:93efb0b4de7e340d99057415c749175e24c8864302369e05914682ba642e5d77", size = 6642699, upload-time = "2025-07-01T09:15:23.186Z" }, + { url = "https://files.pythonhosted.org/packages/6f/d2/a9a4f280c6aefedce1e8f615baaa5474e0701d86dd6f1dede66726462bbd/pillow-11.3.0-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:7966e38dcd0fa11ca390aed7c6f20454443581d758242023cf36fcb319b1a874", size = 6083789, upload-time = "2025-07-01T09:15:25.1Z" }, + { url = "https://files.pythonhosted.org/packages/fe/54/86b0cd9dbb683a9d5e960b66c7379e821a19be4ac5810e2e5a715c09a0c0/pillow-11.3.0-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:98a9afa7b9007c67ed84c57c9e0ad86a6000da96eaa638e4f8abe5b65ff83f0a", size = 6720386, upload-time = "2025-07-01T09:15:27.378Z" }, + { url = "https://files.pythonhosted.org/packages/e7/95/88efcaf384c3588e24259c4203b909cbe3e3c2d887af9e938c2022c9dd48/pillow-11.3.0-cp314-cp314-win32.whl", hash = "sha256:02a723e6bf909e7cea0dac1b0e0310be9d7650cd66222a5f1c571455c0a45214", size = 6370911, upload-time = "2025-07-01T09:15:29.294Z" }, + { url = "https://files.pythonhosted.org/packages/2e/cc/934e5820850ec5eb107e7b1a72dd278140731c669f396110ebc326f2a503/pillow-11.3.0-cp314-cp314-win_amd64.whl", hash = "sha256:a418486160228f64dd9e9efcd132679b7a02a5f22c982c78b6fc7dab3fefb635", size = 7117383, upload-time = "2025-07-01T09:15:31.128Z" }, + { url = "https://files.pythonhosted.org/packages/d6/e9/9c0a616a71da2a5d163aa37405e8aced9a906d574b4a214bede134e731bc/pillow-11.3.0-cp314-cp314-win_arm64.whl", hash = "sha256:155658efb5e044669c08896c0c44231c5e9abcaadbc5cd3648df2f7c0b96b9a6", size = 2511385, upload-time = "2025-07-01T09:15:33.328Z" }, + { url = "https://files.pythonhosted.org/packages/1a/33/c88376898aff369658b225262cd4f2659b13e8178e7534df9e6e1fa289f6/pillow-11.3.0-cp314-cp314t-macosx_10_13_x86_64.whl", hash = "sha256:59a03cdf019efbfeeed910bf79c7c93255c3d54bc45898ac2a4140071b02b4ae", size = 5281129, upload-time = "2025-07-01T09:15:35.194Z" }, + { url = "https://files.pythonhosted.org/packages/1f/70/d376247fb36f1844b42910911c83a02d5544ebd2a8bad9efcc0f707ea774/pillow-11.3.0-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:f8a5827f84d973d8636e9dc5764af4f0cf2318d26744b3d902931701b0d46653", size = 4689580, upload-time = "2025-07-01T09:15:37.114Z" }, + { url = "https://files.pythonhosted.org/packages/eb/1c/537e930496149fbac69efd2fc4329035bbe2e5475b4165439e3be9cb183b/pillow-11.3.0-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:ee92f2fd10f4adc4b43d07ec5e779932b4eb3dbfbc34790ada5a6669bc095aa6", size = 5902860, upload-time = "2025-07-03T13:10:50.248Z" }, + { url = "https://files.pythonhosted.org/packages/bd/57/80f53264954dcefeebcf9dae6e3eb1daea1b488f0be8b8fef12f79a3eb10/pillow-11.3.0-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:c96d333dcf42d01f47b37e0979b6bd73ec91eae18614864622d9b87bbd5bbf36", size = 7670694, upload-time = "2025-07-03T13:10:56.432Z" }, + { url = "https://files.pythonhosted.org/packages/70/ff/4727d3b71a8578b4587d9c276e90efad2d6fe0335fd76742a6da08132e8c/pillow-11.3.0-cp314-cp314t-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:4c96f993ab8c98460cd0c001447bff6194403e8b1d7e149ade5f00594918128b", size = 6005888, upload-time = "2025-07-01T09:15:39.436Z" }, + { url = "https://files.pythonhosted.org/packages/05/ae/716592277934f85d3be51d7256f3636672d7b1abfafdc42cf3f8cbd4b4c8/pillow-11.3.0-cp314-cp314t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:41342b64afeba938edb034d122b2dda5db2139b9a4af999729ba8818e0056477", size = 6670330, upload-time = "2025-07-01T09:15:41.269Z" }, + { url = "https://files.pythonhosted.org/packages/e7/bb/7fe6cddcc8827b01b1a9766f5fdeb7418680744f9082035bdbabecf1d57f/pillow-11.3.0-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:068d9c39a2d1b358eb9f245ce7ab1b5c3246c7c8c7d9ba58cfa5b43146c06e50", size = 6114089, upload-time = "2025-07-01T09:15:43.13Z" }, + { url = "https://files.pythonhosted.org/packages/8b/f5/06bfaa444c8e80f1a8e4bff98da9c83b37b5be3b1deaa43d27a0db37ef84/pillow-11.3.0-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:a1bc6ba083b145187f648b667e05a2534ecc4b9f2784c2cbe3089e44868f2b9b", size = 6748206, upload-time = "2025-07-01T09:15:44.937Z" }, + { url = "https://files.pythonhosted.org/packages/f0/77/bc6f92a3e8e6e46c0ca78abfffec0037845800ea38c73483760362804c41/pillow-11.3.0-cp314-cp314t-win32.whl", hash = "sha256:118ca10c0d60b06d006be10a501fd6bbdfef559251ed31b794668ed569c87e12", size = 6377370, upload-time = "2025-07-01T09:15:46.673Z" }, + { url = "https://files.pythonhosted.org/packages/4a/82/3a721f7d69dca802befb8af08b7c79ebcab461007ce1c18bd91a5d5896f9/pillow-11.3.0-cp314-cp314t-win_amd64.whl", hash = "sha256:8924748b688aa210d79883357d102cd64690e56b923a186f35a82cbc10f997db", size = 7121500, upload-time = "2025-07-01T09:15:48.512Z" }, + { url = "https://files.pythonhosted.org/packages/89/c7/5572fa4a3f45740eaab6ae86fcdf7195b55beac1371ac8c619d880cfe948/pillow-11.3.0-cp314-cp314t-win_arm64.whl", hash = "sha256:79ea0d14d3ebad43ec77ad5272e6ff9bba5b679ef73375ea760261207fa8e0aa", size = 2512835, upload-time = "2025-07-01T09:15:50.399Z" }, +] + [[package]] name = "platformdirs" version = "4.3.8" @@ -438,6 +750,15 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/5e/22/d3db169895faaf3e2eda892f005f433a62db2decbcfbc2f61e6517adfa87/PyNaCl-1.5.0-cp36-abi3-win_amd64.whl", hash = "sha256:20f42270d27e1b6a29f54032090b972d97f0a1b0948cc52392041ef7831fee93", size = 212141, upload-time = "2022-01-07T22:06:01.861Z" }, ] +[[package]] +name = "pyparsing" +version = "3.2.3" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/bb/22/f1129e69d94ffff626bdb5c835506b3a5b4f3d070f17ea295e12c2c6f60f/pyparsing-3.2.3.tar.gz", hash = "sha256:b9c13f1ab8b3b542f72e28f634bad4de758ab3ce4546e4301970ad6fa77c38be", size = 1088608, upload-time = "2025-03-25T05:01:28.114Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/05/e7/df2285f3d08fee213f2d041540fa4fc9ca6c2d44cf36d3a035bf2a8d2bcc/pyparsing-3.2.3-py3-none-any.whl", hash = "sha256:a749938e02d6fd0b59b356ca504a24982314bb090c383e3cf201c95ef7e2bfcf", size = 111120, upload-time = "2025-03-25T05:01:24.908Z" }, +] + [[package]] name = "pytest" version = "8.4.1" @@ -466,6 +787,27 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/30/05/ce271016e351fddc8399e546f6e23761967ee09c8c568bbfbecb0c150171/pytest_asyncio-1.0.0-py3-none-any.whl", hash = "sha256:4f024da9f1ef945e680dc68610b52550e36590a67fd31bb3b4943979a1f90ef3", size = 15976, upload-time = "2025-05-26T04:54:39.035Z" }, ] +[[package]] +name = "python-dateutil" +version = "2.9.0.post0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "six" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/66/c0/0c8b6ad9f17a802ee498c46e004a0eb49bc148f2fd230864601a86dcf6db/python-dateutil-2.9.0.post0.tar.gz", hash = "sha256:37dd54208da7e1cd875388217d5e00ebd4179249f90fb72437e91a35459a0ad3", size = 342432, upload-time = "2024-03-01T18:36:20.211Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/ec/57/56b9bcc3c9c6a792fcbaf139543cee77261f3651ca9da0c93f5c1221264b/python_dateutil-2.9.0.post0-py2.py3-none-any.whl", hash = "sha256:a8b2bc7bffae282281c8140a97d3aa9c14da0b136dfe83f850eea9a5f7470427", size = 229892, upload-time = "2024-03-01T18:36:18.57Z" }, +] + +[[package]] +name = "pytz" +version = "2025.2" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/f8/bf/abbd3cdfb8fbc7fb3d4d38d320f2441b1e7cbe29be4f23797b4a2b5d8aac/pytz-2025.2.tar.gz", hash = "sha256:360b9e3dbb49a209c21ad61809c7fb453643e048b38924c765813546746e81c3", size = 320884, upload-time = "2025-03-25T02:25:00.538Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/81/c4/34e93fe5f5429d7570ec1fa436f1986fb1f00c3e0f43a589fe2bbcd22c3f/pytz-2025.2-py2.py3-none-any.whl", hash = "sha256:5ddf76296dd8c44c26eb8f4b6f35488f3ccbf6fbbd7adee0b7262d43f0ec2f00", size = 509225, upload-time = "2025-03-25T02:24:58.468Z" }, +] + [[package]] name = "pyyaml" version = "6.0.2" @@ -523,6 +865,15 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/e0/f9/0595336914c5619e5f28a1fb793285925a8cd4b432c9da0a987836c7f822/shellingham-1.5.4-py2.py3-none-any.whl", hash = "sha256:7ecfff8f2fd72616f7481040475a65b2bf8af90a56c89140852d1120324e8686", size = 9755, upload-time = "2023-10-24T04:13:38.866Z" }, ] +[[package]] +name = "six" +version = "1.17.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/94/e7/b2c673351809dca68a0e064b6af791aa332cf192da575fd474ed7d6f16a2/six-1.17.0.tar.gz", hash = "sha256:ff70335d468e7eb6ec65b95b99d3a2836546063f63acc5171de367e834932a81", size = 34031, upload-time = "2024-12-04T17:35:28.174Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/b7/ce/149a00dd41f10bc29e5921b496af8b574d8413afcd5e30dfa0ed46c2cc5e/six-1.17.0-py2.py3-none-any.whl", hash = "sha256:4721f391ed90541fddacab5acf947aa0d3dc7d27b2e1e8eda2be8970586c3274", size = 11050, upload-time = "2024-12-04T17:35:26.475Z" }, +] + [[package]] name = "typer" version = "0.16.0" @@ -577,6 +928,15 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/17/69/cd203477f944c353c31bade965f880aa1061fd6bf05ded0726ca845b6ff7/typing_inspection-0.4.1-py3-none-any.whl", hash = "sha256:389055682238f53b04f7badcb49b989835495a96700ced5dab2d8feae4b26f51", size = 14552, upload-time = "2025-05-21T18:55:22.152Z" }, ] +[[package]] +name = "tzdata" +version = "2025.2" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/95/32/1a225d6164441be760d75c2c42e2780dc0873fe382da3e98a2e1e48361e5/tzdata-2025.2.tar.gz", hash = "sha256:b60a638fcc0daffadf82fe0f57e53d06bdec2f36c4df66280ae79bce6bd6f2b9", size = 196380, upload-time = "2025-03-23T13:54:43.652Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/5c/23/c7abc0ca0a1526a0774eca151daeb8de62ec457e77262b66b359c3c7679e/tzdata-2025.2-py2.py3-none-any.whl", hash = "sha256:1a403fada01ff9221ca8044d701868fa132215d84beb92242d9acd2147f667a8", size = 347839, upload-time = "2025-03-23T13:54:41.845Z" }, +] + [[package]] name = "virtualenv" version = "20.31.2" From 3c0dafd8055dfcbdbd8fcad1fb77f4f50a13e54a Mon Sep 17 00:00:00 2001 From: Yonatan Cohen Date: Thu, 17 Jul 2025 02:04:17 +0300 Subject: [PATCH 2/8] added docstrings to server and client --- src/mixnet/client.py | 74 ++++++++++++++++++++++++++++++++++++++++++-- src/mixnet/server.py | 54 ++++++++++++++++++++++++++++++++ 2 files changed, 126 insertions(+), 2 deletions(-) diff --git a/src/mixnet/client.py b/src/mixnet/client.py index d03b0b0..b28a1cd 100644 --- a/src/mixnet/client.py +++ b/src/mixnet/client.py @@ -71,6 +71,14 @@ async def start(self): self._run_forever_future = asyncio.create_task(self.run_forever(round_duration)) async def run_forever(self, round_duration: float): + """Main loop for the client to send messages periodically + Client sleeps for `round_duration` seconds and checks if there are messages to send. + If no messages are found for the current round, it prepares a dummy message. + Then it sends the message to the first mix server in the list. + + Args: + round_duration (float): round duration in seconds + """ while self._running: await asyncio.sleep(round_duration) if self._round not in self._messages: @@ -97,6 +105,14 @@ async def stop(self): self._logger.info("Client stopped") async def register(self): + """Calls the server's gRPC mathod to register + + Raises: + Exception: Failed to register + + Returns: + RegisterResponse: response from the server + """ async with grpc.aio.insecure_channel(self._first_host) as channel: stub = MixServerStub(channel) request = RegisterRequest(client_id=self._id) @@ -107,6 +123,16 @@ async def register(self): return response async def wait_for_start(self): + """Calls the server's gRPC method to wait for the server to be ready. + Once the server is ready, it means the first round starts and the client + should start sending messages. + + Raises: + Exception: Server is not ready + + Returns: + float: round duration in seconds + """ async with grpc.aio.insecure_channel(self._first_host) as channel: stub = MixServerStub(channel) request = WaitForStartRequest(client_id=self._id) @@ -124,6 +150,15 @@ async def _prepare_message( recipient_pubkey: bytes, recipient_addr: str, ): + """Prepares a message to be sent in the mixnet by encrypting it in layers like an onion. + The message is encrypted with the recipient's public key and then with the public keys of + the mix servers in reverse order. + + Args: + message (str): the message to be sent + recipient_pubkey (bytes): the public key of the recipient + recipient_addr (str): the address of the recipient + """ round = self._round if round in self._messages: self._logger.debug(f"Message for round {round} already prepared") @@ -147,14 +182,31 @@ async def _prepare_message( if round == 0: self._metrics[self._id]["prepare_end_time"] = prepare_end_time - async def send_message(self, payload: bytes, addr: str, round): + async def send_message(self, payload: bytes, addr: str, round: int): + """Calls the server's gRPC method to forward the message to it. + + Args: + payload (bytes): the encrypted message payload + addr (str): the address of the mix server to send the message to + round (int): the message round number + """ async with grpc.aio.insecure_channel(addr) as channel: stub = MixServerStub(channel) request = ForwardMessageRequest(payload=payload, round=round) response = await stub.ForwardMessage(request) self._logger.debug(f"Server responded: {response.status}") - async def _poll_messages(self, server_host) -> List[str]: + async def _poll_messages(self, server_host: str) -> List[str]: + """Calls the server's gRPC method to poll messages from it. + It decrypts the messages using the client's private key and returns a list of + messages that are not dummy payloads. + + Args: + server_host (str): the address of the mix server to poll messages from + + Returns: + List[str]: list of decrypted messages that are not dummy payloads + """ async with grpc.aio.insecure_channel(server_host) as channel: stub = MixServerStub(channel) request = PollMessagesRequest(client_addr=self._addr) @@ -170,6 +222,15 @@ async def _poll_messages(self, server_host) -> List[str]: return messages async def PrepareMessage(self, request, context): + """A gRPC API method to invoke _prepare_message + + Args: + request (PrepareMessageRequest): gRPC request + context (_type_): gRPC context + + Returns: + PrepareMessageResponse: the response indicating the status of the operation + """ await self._prepare_message( request.message, request.recipient_pubkey, @@ -178,5 +239,14 @@ async def PrepareMessage(self, request, context): return PrepareMessageResponse(status=True) async def PollMessages(self, request, context): + """A gRPC API method to invoke _poll_messages + + Args: + request (ClientPollMessagesRequest): gRPC request + context (_type_): gRPC context + + Returns: + ClientPollMessagesResponse: the response containing the list of messages + """ messages = await self._poll_messages(self._last_host) return ClientPollMessagesResponse(messages=messages) diff --git a/src/mixnet/server.py b/src/mixnet/server.py index caa73cb..c11b056 100644 --- a/src/mixnet/server.py +++ b/src/mixnet/server.py @@ -72,6 +72,16 @@ async def start(self): self._logger.info(f"MixServer {self._id} started on port {self._port}") async def Register(self, request, context): + """A gRPC API method for a client to register with the server. + Sets start_event when the required number of clients is registered. + + Args: + request (RegisterRequest): gRPC request containing client ID + context (_type_): gRPC context + + Returns: + RegisterResponse: gRPC response indicating registration status + """ self._logger.info(f"Client '{request.client_id}' attempting to register.") if len(self._registered_clients) >= self._messages_per_round: self._logger.warning( @@ -88,6 +98,18 @@ async def Register(self, request, context): return RegisterResponse(status=True) async def WaitForStart(self, request, context): + """A gRPC API method for a client to wait for the server to be ready. + The server does not send a response until all clients are registered. + Once all clients are registered and start_event, a response is sent with + the round duration, and the clients can start sending messages. + + Args: + request (WaitForStartRequest): gRPC request containing client ID + context (_type_): gRPC context + + Returns: + WaitForStartResponse: gRPC response indicating readiness and round duration + """ self._logger.debug(f"WaitForStart called by: {context.peer()}") if not self._running: self._logger.warning("WaitForStart called but server is not running.") @@ -97,6 +119,18 @@ async def WaitForStart(self, request, context): return WaitForStartResponse(ready=True, round_duration=self._round_duration) async def ForwardMessage(self, request, context): + """A gRPC API method to receive messages from clients or other mix servers, + decrypt them, and store them for processing and then forwarding for their destination. + If received all messages for the current round, it notifies the waiting thread to start + forwarding them. + + Args: + request (ForwardMessageRequest): gRPC request containing the encrypted message and round number + context (_type_): gRPC context + + Returns: + ForwardMessageResponse: gRPC response indicating the status of the operation + """ if self._enable_metrics: received_time = time.perf_counter_ns() self._logger.info( @@ -124,6 +158,9 @@ async def ForwardMessage(self, request, context): ) async def _wait_for_round_messages(self): + """An asynchronous task that waits for all the round messages to be received. + Once notified, it takes the messages from the dictionary and sends them. + """ while self._running: async with self._cond: await self._cond.wait() @@ -138,6 +175,14 @@ async def _wait_for_round_messages(self): await self._send_round_messages(messages, current_round) async def _send_round_messages(self, messages: List[Message], round: int): + """If the message is for a registered client, it stores it in the final + messages and saves the payload to a file. + If the message is for another mix server, it forwards it to that server. + + Args: + messages (List[Message]): messages to be sent in the current round + round (int): the current round number + """ for message in messages: if message.address in self._clients_addrs: self._logger.info( @@ -169,6 +214,15 @@ async def _send_round_messages(self, messages: List[Message], round: int): ) async def PollMessages(self, request, context): + """A gRPC API method for a client to pol messages. + + Args: + request (PollMessagesRequest): gRPC request containing client address + context (_type_): gRPC context + + Returns: + PollMessagesResponse: gRPC response containing the list of messages + """ client_address = request.client_addr self._logger.info(f"Client '{client_address}' polling for messages.") payloads = self._final_messages.pop(client_address, []) From 4c1a2950a6d057496e9cf74b22d5623700deb656 Mon Sep 17 00:00:00 2001 From: Yonatan Cohen Date: Thu, 17 Jul 2025 21:47:54 +0300 Subject: [PATCH 3/8] added README.md --- README.md | 160 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 160 insertions(+) diff --git a/README.md b/README.md index e69de29..64f7e07 100644 --- a/README.md +++ b/README.md @@ -0,0 +1,160 @@ +# Mixnet + +This repository contains implementation of a mix network, based on the paper [Untraceable electronic mail, return addresses, and digital pseudonyms](https://dl.acm.org/doi/10.1145/358549.358563). + +# System Architecture and Design Decisions + +The code is provided as a python package named `mixnet`. +It is built from two main components: `mixserver` and `client`. + +Each component exposes its API via gRPC methods. The full API can be found in [`protos/mixnet.proto`](protos/mixnet.proto). + +The code uses asynchronous programming with `asyncio` and `grpc.aio` to handle multiple requests concurrently. + +## Run Flow + +1. `config.yaml` is placed in a shared config directory. +2. The configuration files containes: + - Number of messages required per round + - Round duration + - Dummy payload + - List of mix servers and their addresses + - List of clients and their addresses +3. 3 mix servers are deployed, each writing its own public key to the config directory. +4. Clients are deployed, each writing its own public key to the config directory. +5. Each client registers to the first mix server in the list. +6. Each client calls `WaitForStart` on the first mix server and waits for a respnse. +7. Once all the clients are registered, the first mix server returns a `WaitForStartResponse` with the round duration. +8. Each client starts counting rounds and sending a message each round. +9. Each client exposes `PrepareMessage` gRPC method to prepare a message for sending. +10. At the end of each round, each client sends the prepared messages to the first mix server. +11. If it does not have one, it prepares a "dummy" message contains the dummy payload and sends it. +12. Once the first mix server receives all the messages for the current round, it forwards them to the second mix server. +13. The second mix server does the same and forwards the messages to the third mix server. +14. The third mix server indicates that the message's destination address is a client address, and stores it. +15. When a client wants to receive messages, it calls `PollMessages` on the third mix server, and receives list of messages that are intended to it. + +## Core Components +### MixServer + +- **Role in Mixnet**: The `MixServer` acts as a core node in the mix network, responsible for receiving, processing, and forwarding messages between clients and other mix servers, ensuring anonymity and unlinkability. + +- **gRPC-Based Communication**: All interactions (registration, message forwarding, polling, and round synchronization) are implemented as asynchronous gRPC service methods, supporting scalable and robust network communication. + +- **Client Registration and Synchronization**: Clients must register with the server before participating. The server tracks registered clients and only starts a round when the required number of clients is reached, using an `asyncio.Event` for synchronization. + +- **Message Handling and Forwarding**: + - Messages are received, decrypted, and validated. + - Messages are stored per round and processed only when all expected messages for a round are received. + - If a message is destined for a local client, it is stored and written to disk; if for another server, it is forwarded via gRPC. + +- **Round-Based Processing**: The server operates in discrete rounds, collecting a fixed number of messages per round. Processing and forwarding are triggered only when all messages for the round are present, ensuring batch anonymity. + +- **Concurrency and Synchronization**: Uses `asyncio.Condition` and background tasks to coordinate message collection and processing, allowing non-blocking, concurrent operations. + +- **Metrics and Observability**: Optional metrics collection (e.g., round start/end times) is supported for benchmarking and analysis, aiding in performance evaluation. + +- **Key Management**: Each server generates and manages its own public/private key pair for message decryption and authentication, with keys stored in a configurable directory. + +- **Graceful Shutdown**: The server supports clean shutdown, ensuring all background tasks are completed and resources (such as keys) are cleaned up. + + +### Cleint + +- **Role in Mixnet**: The `Client` acts as an endpoint in the mix network, responsible for preparing, sending, and receiving messages through the mix servers, ensuring sender and receiver anonymity. + +- **gRPC-Based Communication**: The client exposes its API via asynchronous gRPC methods for message preparation and polling, and interacts with mix servers using gRPC for registration, synchronization, and message forwarding. + +- **Onion Encryption**: Messages are encrypted in multiple layers (onion encryption), first with the recipient's public key, then with each mix server's public key in reverse order, ensuring that only the intended recipient can fully decrypt the message. + +- **Round-Based Messaging**: The client operates in rounds, preparing and sending one message per round. If no real message is available, a dummy message is sent to maintain traffic consistency and anonymity. + +- **Registration and Synchronization**: Each client registers with the first mix server and waits for a signal to start, ensuring all clients begin sending messages simultaneously for each round. + +- **Polling and Decryption**: Clients poll the last mix server for messages intended for them, decrypting each message and filtering out dummy payloads to retrieve only real messages. + +- **Concurrency and Asynchronous Operations**: Uses `asyncio` and background tasks to handle message preparation, sending, and polling concurrently, supporting scalable and responsive client behavior. + +- **Metrics and Observability**: Optional metrics collection (e.g., message preparation times) is supported for benchmarking and analysis, aiding in performance evaluation. + +- **Key Management**: Each client generates and manages its own public/private key pair for message encryption and decryption, with keys stored in a configurable directory. + +- **Graceful Shutdown**: The client supports clean shutdown, ensuring all background tasks are completed and resources (such as keys) are cleaned up. + + +# Security Analysis + +## Threat Model + +Mix networks are designed to protect user privacy against a powerful adversary who can observe all network traffic, including message timings, sizes, and routes. The standard threat model assumes: + +- **Global Passive Adversary**: Can monitor all network communications and attempt to correlate senders and receivers. +- **Active Adversary**: May inject, drop, or modify messages, and potentially compromise some mix nodes. +- **No Trust in Network Nodes**: Except for cryptographic guarantees, nodes may be malicious or colluding. + +The adversary’s goal is to detect anomalies in communication by linking senders to receivers or correlating messages across the network. + +## Anonymity Guarantees + +The system provides strong sender and receiver anonymity through several mechanisms: + +- **Onion Routing (Layered Encryption)**: Each message is encrypted in multiple layers—first with the recipient’s public key, then with each mix server’s public key in reverse order. As a message traverses the mix network, each server peels off one layer, learning only where to forward the message next, but not the original sender or final recipient. +- **Batch Processing and Dummy Messages**: Messages are processed in rounds, and if a client has no real message, it sends a dummy message. This prevents traffic analysis by ensuring a constant message rate and hiding real communication patterns. +- **Address and Payload Confidentiality**: Only the intended recipient can fully decrypt the message and learn its contents and destination. + +This design ensures that: + +- **Sender Anonymity**: Mix servers cannot link incoming messages to outgoing ones, and the recipient cannot identify the sender. +- **Receiver Anonymity**: Observers and mix servers cannot determine the final recipient until the last layer is decrypted. + +## Layered Encryption and Nonces + +Layered encryption (onion encryption) is central to mixnet security: + +- **Each Layer Protects Routing Information**: Only the mix server with the corresponding private key can decrypt its layer and learn where to forward the message next. +- **End-to-End Confidentiality**: The innermost layer is encrypted with the recipient’s public key, so only the recipient can read the message. +- **Prevents Linkability**: Even if an adversary controls some mix servers, they cannot correlate input and output messages without breaking the encryption. + +Random values (nonces) are included in encrypted messages to: + +- **Ensure Semantic Security**: Nonces prevent identical plaintexts from producing identical ciphertexts, thwarting replay and correlation attacks. +- **Prevent Replay Attacks**: Each message is unique, so replayed messages are easily detected and discarded. +- **Increase Unpredictability**: Nonces add randomness, making it harder for adversaries to analyze or guess message contents. + +## Cryptographic Components Used + +The implementation uses the following cryptographic primitives (see `src/mixnet/crypto.py`): + +- **NaCl (libsodium) Public-Key Cryptography**: For key generation, encryption, and decryption. + - `PrivateKey` and `PublicKey`: Used to generate and manage key pairs for clients and servers. + - `SealedBox`: Provides anonymous public-key encryption, allowing messages to be encrypted for a recipient without revealing the sender. +- **Base64 Encoding**: Keys are serialized and stored in Base64 format for portability. +- **Layered Encryption**: The `encrypt` function applies public-key encryption for each mix server and the recipient, forming the onion layers. + +# Benchmarks + +In `src/mixnet/benchmarks.py`, I provide a benchmark for measuring three metrics: + +1. Message preparation time (client side) +2. Decryption and forwarding latency (mix side) +3. End-to-end delivery time + +I ran the benchmark with 2 to 10 clients, and with message size from 10 to 10^6 bytes. +In each run, I explicitly sent a message from client_1 to client_2, while all the other clients sent to themselves. +I measured the metrics on this specific message round. + +I received the following results: +[Metrics VS Number of Clients](metrics_vs_num_of_clients.png) +[Metrics VS Message Size](metrics_vs_message_size.png) + +# Proposed Attacks + +Below are two plausible attack scenarios that could compromise the anonymity or integrity of the mix network, as described in the assignment, along with their respective mitigations. Each scenario considers adversaries capable of observing or interacting with the system. + +## Attack Scenario 1: Traffic Analysis +- **Description**: An adversary observes the timing and volume of messages entering and exiting the mix network across its three mix servers. By correlating these patterns, particularly if messages are not sufficiently delayed or batched, the adversary may link senders to recipients, undermining anonymity. +- **Mitigation**: Implement batching and random delays to process messages in fixed-size batches per round, making input-output correlation more difficult. Additionally, pad messages to uniform sizes and use dummy traffic to obscure real message patterns. + +## Attack Scenario 2: Compromised Mix Server +- **Description**: If one of the three mix servers is compromised, an adversary could access its decryption keys, observe message contents, or manipulate them during decryption and forwarding, compromising both anonymity and integrity. +- **Mitigation**: Use threshold cryptography to distribute decryption keys across mix servers, requiring multiple servers to collaborate for decryption, ensuring a single compromise is insufficient to break the system. From 775bb1a55ae41e0c8d7361cdc4b9dc09f214925c Mon Sep 17 00:00:00 2001 From: Yonatan Cohen Date: Thu, 17 Jul 2025 22:05:28 +0300 Subject: [PATCH 4/8] added images --- README.md | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 64f7e07..b67a817 100644 --- a/README.md +++ b/README.md @@ -141,11 +141,14 @@ In `src/mixnet/benchmarks.py`, I provide a benchmark for measuring three metrics I ran the benchmark with 2 to 10 clients, and with message size from 10 to 10^6 bytes. In each run, I explicitly sent a message from client_1 to client_2, while all the other clients sent to themselves. + I measured the metrics on this specific message round. I received the following results: -[Metrics VS Number of Clients](metrics_vs_num_of_clients.png) -[Metrics VS Message Size](metrics_vs_message_size.png) + +![Metrics VS Number of Clients](metrics_vs_num_of_clients.png) + +![Metrics VS Message Size](metrics_vs_message_size.png) # Proposed Attacks From b4d02538e6a2e5f0772b46efd532c83961e5481b Mon Sep 17 00:00:00 2001 From: Yonatan Cohen Date: Thu, 17 Jul 2025 22:20:11 +0300 Subject: [PATCH 5/8] explain results --- README.md | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/README.md b/README.md index b67a817..932f134 100644 --- a/README.md +++ b/README.md @@ -148,8 +148,20 @@ I received the following results: ![Metrics VS Number of Clients](metrics_vs_num_of_clients.png) +For end-to-end delivery time and mixes latency, we can see that it is linear with the number of clients, since each client sends a message in each round. + +For message preparation time, we can see that the number of clients does not affect it, since each client prepares its message independently. + +We can see though that the message size has exponential effect on the metrics, since each message is encrypted with multiple layers of public-key encryption, and the encryption time grows with the message size. Also delivery time grows with the message size, since each mix server needs to decrypt the message and forward it to the next server. + + ![Metrics VS Message Size](metrics_vs_message_size.png) +Here the message size axis is logarithmic. +We can see that the message size has exponential effect on the metrics, as mentioned above. + +We can also see that the number of clients has linear effect on the metrics, as we saw above. + # Proposed Attacks Below are two plausible attack scenarios that could compromise the anonymity or integrity of the mix network, as described in the assignment, along with their respective mitigations. Each scenario considers adversaries capable of observing or interacting with the system. From ceb108133a9a4554cde84442fbaae24dffd43f43 Mon Sep 17 00:00:00 2001 From: Yonatan Cohen Date: Thu, 17 Jul 2025 22:31:45 +0300 Subject: [PATCH 6/8] added pdf --- README.pdf | Bin 0 -> 302587 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 README.pdf diff --git a/README.pdf b/README.pdf new file mode 100644 index 0000000000000000000000000000000000000000..ea7917cdfc19e213980cbb2d5a4472756995e379 GIT binary patch literal 302587 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

bSylp-yO=tvcAU`k91VG$Y5#>^c**=Q)fsl7bd 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

+Ik~;7#J!&R*49I7Pm}iq-C^y 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

OM?$y25pRi{z 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 Gy8!^{er6E> literal 0 HcmV?d00001 From d456b6f681889134283db01832a01513b90b232f Mon Sep 17 00:00:00 2001 From: Yonatan Cohen Date: Thu, 17 Jul 2025 22:41:43 +0300 Subject: [PATCH 7/8] fixed setup.sh and fixed server --- setup.sh | 4 ++-- src/mixnet/server.py | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/setup.sh b/setup.sh index ee62588..e4efa91 100644 --- a/setup.sh +++ b/setup.sh @@ -10,13 +10,13 @@ docker-compose up -d echo "Services started. Waiting..." sleep 5 # let the clients send some dummies -docker-compose exec client_1 /app/.venv/bin/mixnet prepare_message --message "Hello from client_1 to client_2" --sender-id client_1 --recipient-id client_2 +docker-compose exec client_1 /app/.venv/bin/mixnet prepare-message --message "Hello from client_1 to client_2" --sender-id client_1 --recipient-id client_2 sleep 2 # let the message be processed output=$(docker-compose exec -T client_2 /app/.venv/bin/mixnet poll-messages) echo "Output from client_2:" echo $output if [[ $output == *"Hello from client_1 to client_2"* ]]; then - docker-compose exec client_2 /app/.venv/bin/mixnet prepare_message --message "Hello from client_2 to client_1" --sender-id client_2 --recipient-id client_1 + docker-compose exec client_2 /app/.venv/bin/mixnet prepare-message --message "Hello from client_2 to client_1" --sender-id client_2 --recipient-id client_1 fi sleep 2 # let the message be processed output=$(docker-compose exec -T client_1 /app/.venv/bin/mixnet poll-messages) diff --git a/src/mixnet/server.py b/src/mixnet/server.py index c11b056..6c34ff1 100644 --- a/src/mixnet/server.py +++ b/src/mixnet/server.py @@ -142,7 +142,7 @@ async def ForwardMessage(self, request, context): # Store the message if request.round not in self._messages: self._messages[request.round] = [] - if request.round == 0: + if request.round == 0 and self._enable_metrics: self._metrics[self._id]["round_start_time"] = received_time self._messages[request.round].append(message) self._logger.debug( From 7015e291d55ab676b4e54a45ab1bc4bda5b3588a Mon Sep 17 00:00:00 2001 From: Yonatan Cohen Date: Thu, 17 Jul 2025 22:48:59 +0300 Subject: [PATCH 8/8] . --- setup.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/setup.sh b/setup.sh index e4efa91..195df04 100644 --- a/setup.sh +++ b/setup.sh @@ -11,14 +11,14 @@ echo "Services started. Waiting..." sleep 5 # let the clients send some dummies docker-compose exec client_1 /app/.venv/bin/mixnet prepare-message --message "Hello from client_1 to client_2" --sender-id client_1 --recipient-id client_2 -sleep 2 # let the message be processed +sleep 4 # let the message be processed output=$(docker-compose exec -T client_2 /app/.venv/bin/mixnet poll-messages) echo "Output from client_2:" echo $output if [[ $output == *"Hello from client_1 to client_2"* ]]; then docker-compose exec client_2 /app/.venv/bin/mixnet prepare-message --message "Hello from client_2 to client_1" --sender-id client_2 --recipient-id client_1 fi -sleep 2 # let the message be processed +sleep 4 # let the message be processed output=$(docker-compose exec -T client_1 /app/.venv/bin/mixnet poll-messages) echo "Output from client_1:" echo $output