From 118875234ad757ca0b223d44a67f9074d3c1388c Mon Sep 17 00:00:00 2001 From: wheelchairy Date: Tue, 28 Jan 2025 22:33:54 +0300 Subject: [PATCH] upd --- .gitignore | 2 + Makefile | 48 ++++---- bfsk.cpp | 105 ++++++---------- bfsk.hpp | 14 +-- bfsk.o | Bin 3016 -> 3000 bytes cerberus | Bin 752760 -> 751880 bytes cli.cpp | 70 ++++++----- cli.hpp | 1 - cli.o | Bin 7080 -> 8528 bytes commands.cpp | 284 ++++++++++++++++++++++++++++--------------- commands.hpp | 5 +- commands.o | Bin 20328 -> 26312 bytes config.hpp | 32 ++--- history.txt | 56 +++++++++ main.o | Bin 1464 -> 1288 bytes sound.cpp | 207 ++++++++++--------------------- sound.hpp | 1 - sound.o | Bin 16928 -> 11032 bytes webserver.cpp | 66 +++------- webserver.hpp | 2 +- webserver.o | Bin 730928 -> 728648 bytes x25519_handshake.cpp | 41 +++---- x25519_handshake.hpp | 5 +- x25519_handshake.o | Bin 5528 -> 5216 bytes 24 files changed, 461 insertions(+), 478 deletions(-) create mode 100644 .gitignore diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..ba9b4e9 --- /dev/null +++ b/.gitignore @@ -0,0 +1,2 @@ +*.o +cerberus diff --git a/Makefile b/Makefile index e5f6885..7146e72 100644 --- a/Makefile +++ b/Makefile @@ -1,42 +1,38 @@ CC = clang CXX = clang++ - -CFLAGS = -O2 -Wall -I./libs -CXXFLAGS = -std=c++17 -O2 -Wall -I./libs - +CFLAGS = -O2 -Wall -I./libs -pthread +CXXFLAGS = -std=c++17 -O2 -Wall -I./libs -pthread UNAME_S := $(shell uname -s) BREW_PREFIX := $(shell brew --prefix portaudio 2>/dev/null) +ifneq ($(UNAME_S),) ifeq ($(UNAME_S),Darwin) - ifneq ($(BREW_PREFIX),) - CFLAGS += -I$(BREW_PREFIX)/include - CXXFLAGS += -I$(BREW_PREFIX)/include - LIBS += -L$(BREW_PREFIX)/lib -lportaudio - else - $(warning [Makefile] PortAudio не найдена через Homebrew. Установите её: brew install portaudio) - endif -else ifeq ($(UNAME_S),Linux) - HAVE_PKG := $(shell pkg-config --exists portaudio-2.0 && echo yes || echo no) - ifeq ($(HAVE_PKG),yes) - PORTAUDIO_CFLAGS := $(shell pkg-config --cflags portaudio-2.0) - PORTAUDIO_LIBS := $(shell pkg-config --libs portaudio-2.0) - CFLAGS += $(PORTAUDIO_CFLAGS) - CXXFLAGS += $(PORTAUDIO_CFLAGS) - LIBS += $(PORTAUDIO_LIBS) - else - $(warning [Makefile] portaudio-2.0 не найдена через pkg-config. Использую -lportaudio) - LIBS += -lportaudio - endif +ifneq ($(BREW_PREFIX),) +CFLAGS += -I$(BREW_PREFIX)/include +CXXFLAGS += -I$(BREW_PREFIX)/include +LIBS += -L$(BREW_PREFIX)/lib -lportaudio else - $(warning [Makefile] Unsupported OS: $(UNAME_S)) +$(warning PortAudio not found via brew) +endif +else ifeq ($(UNAME_S),Linux) +HAVE_PKG := $(shell pkg-config --exists portaudio-2.0 && echo yes || echo no) +ifeq ($(HAVE_PKG),yes) +PORTAUDIO_CFLAGS := $(shell pkg-config --cflags portaudio-2.0) +PORTAUDIO_LIBS := $(shell pkg-config --libs portaudio-2.0) +CFLAGS += $(PORTAUDIO_CFLAGS) +CXXFLAGS += $(PORTAUDIO_CFLAGS) +LIBS += $(PORTAUDIO_LIBS) +else +$(warning portaudio-2.0 not found, using -lportaudio) +LIBS += -lportaudio +endif +endif endif SRCS_CPP = main.cpp commands.cpp cli.cpp webserver.cpp sound.cpp bfsk.cpp x25519_handshake.cpp SRCS_C = libs/monocypher.c libs/linenoise.c - OBJS_CPP = $(SRCS_CPP:.cpp=.o) OBJS_C = $(SRCS_C:.c=.o) - TARGET = cerberus .PHONY: all clean diff --git a/bfsk.cpp b/bfsk.cpp index d887881..582aa98 100644 --- a/bfsk.cpp +++ b/bfsk.cpp @@ -1,78 +1,53 @@ #include "bfsk.hpp" #include #include -#include -std::vector bfskModulate(const std::vector &data) { - int samplesPerBit = (int)((double)SAMPLE_RATE / BFSK_BAUD); - size_t totalBits = data.size() * 8; - size_t totalSamples = totalBits * samplesPerBit; - std::vector out(totalSamples * 2, 0.0f); - - double phase0 = 0.0; - double phase1 = 0.0; - double inc0 = 2.0 * M_PI * BFSK_FREQ0 / (double)SAMPLE_RATE; - double inc1 = 2.0 * M_PI * BFSK_FREQ1 / (double)SAMPLE_RATE; - - size_t sampleIndex = 0; - - for (auto byteVal : data) { - for (int b = 0; b < 8; b++) { - int bit = (byteVal >> b) & 1; - for (int s = 0; s < samplesPerBit; s++) { - float val; - if (bit == 0) { - val = sinf((float)phase0); - phase0 += inc0; - } else { - val = sinf((float)phase1); - phase1 += inc1; - } - out[sampleIndex*2 + 0] = val * 0.3f; - out[sampleIndex*2 + 1] = val * 0.3f; - sampleIndex++; +std::vector bfskModulate(const std::vector &data){ + int spb=(int)(SAMPLE_RATE/BFSK_BAUD); + size_t tb=data.size()*8; + size_t ts=tb*spb; + std::vector out(ts*2,0.0f); + double phase0=0.0,phase1=0.0; + double inc0=2.0*M_PI*BFSK_FREQ0/(double)SAMPLE_RATE; + double inc1=2.0*M_PI*BFSK_FREQ1/(double)SAMPLE_RATE; + size_t idx=0; + for(auto byteVal:data){ + for(int b=0;b<8;b++){ + int bit=(byteVal>>b)&1; + for(int s=0;s bfskDemodulate(const std::vector &monoData) { - int samplesPerBit = (int)((double)SAMPLE_RATE / BFSK_BAUD); - size_t totalBits = monoData.size() / samplesPerBit; - size_t totalBytes = totalBits / 8; - - double inc0 = 2.0 * M_PI * BFSK_FREQ0 / (double)SAMPLE_RATE; - double inc1 = 2.0 * M_PI * BFSK_FREQ1 / (double)SAMPLE_RATE; - - std::vector result(totalBytes, 0); - - size_t bitIndex = 0; - for (size_t b = 0; b < totalBits; b++) { - double sum0 = 0.0; - double sum1 = 0.0; - double phase0 = 0.0; - double phase1 = 0.0; - - size_t startSample = b * samplesPerBit; - for (int s = 0; s < samplesPerBit; s++) { - float sample = monoData[startSample + s]; - float ref0 = sinf((float)phase0); - float ref1 = sinf((float)phase1); - sum0 += sample * ref0; - sum1 += sample * ref1; - phase0 += inc0; - phase1 += inc1; +std::vector bfskDemodulate(const std::vector &monoData){ + int spb=(int)(SAMPLE_RATE/BFSK_BAUD); + size_t tb=monoData.size()/spb; + size_t tbytes=tb/8; + std::vector res(tbytes,0); + double inc0=2.0*M_PI*BFSK_FREQ0/(double)SAMPLE_RATE; + double inc1=2.0*M_PI*BFSK_FREQ1/(double)SAMPLE_RATE; + size_t bitIdx=0; + for(size_t b=0;b std::fabs(sum0)) ? 1 : 0; - size_t bytePos = bitIndex / 8; - int bitPos = bitIndex % 8; - if (bytePos < result.size()) { - result[bytePos] |= (bit << bitPos); - } - bitIndex++; + int bit=(std::fabs(sum1)>std::fabs(sum0))?1:0; + size_t bytePos=bitIdx/8; int bitPos=bitIdx%8; + if(bytePos +#include -constexpr double BFSK_FREQ0 = 1000.0; -constexpr double BFSK_FREQ1 = 2000.0; -constexpr double BFSK_BAUD = 100.0; -constexpr int SAMPLE_RATE = 44100; +constexpr double BFSK_FREQ0=1000.0; +constexpr double BFSK_FREQ1=2000.0; +constexpr double BFSK_BAUD=100.0; +constexpr int SAMPLE_RATE=44100; -std::vector bfskModulate(const std::vector &data); - -std::vector bfskDemodulate(const std::vector &monoData); +std::vector bfskModulate(const std::vector &data); +std::vector bfskDemodulate(const std::vector &monoData); diff --git a/bfsk.o b/bfsk.o index 8a26e2b44242561eee5073f1909d9702c96fe684..e826b25d6b5b2abe4cc95106eb921c9bf8e9b2f6 100644 GIT binary patch delta 842 zcmYk4PiPZC6vp4o>TX(_#Mq?i8oOz=paDaRIhYEP2tDMGLoGd+LeTW0LIhg`D;AQ1 z2St#E$st0~fE6qB){EXE2zpSE>P1vEDDgLs*=Dx$=W>t9gZ4JAJ#X+rDZO;Km}*)1{46Ydz1zmtk9E#CE=#B1K2|Fzo4 zyt}h<_vwSi`|^uM#$0W*eWQW#m>50r_R-XaLR%p!j&5qS)#S;c045)ScJ+PO-^C8J zU-kHJf95nv?u!N`Ck&>XztvFjT73WsR2 z-fWF+oJ~I7RH-CeV$jPKWr}-mD0HTZKQXxr!=ljD!##KhRT)v3(XbrLaMrgfGHRH` z#Wgh?N!!abf;`H%Yd_llyv=?ws|E{8PlO|J8aXjXw4c#Q(zEoC~3JuO?|GqxT!Yr{HdrD?4qsU;;>R4NroEg|DcGkX+$06#{>ToC!9RBAffPp(#Z|h9oUj(y3C&B36_kI zT%jVPgQyY0DlfA$k?#WqF@^pR&AyI+hzVr3Fo)g zn->T8XyVP2DbHu>AA5Uy_1^PG&3E%Jnq$A#n;R-^A3)K@rPR|+jmn}BZCIUD7~Rxq zdq+tn&{gn;PJ#R}nq1kntq>MCj=a(HzN4K*Td(_qx4h8M(3LLqGtbnk4~)L?t{%0w zi(6_qTKHpIcXsVl-BK_FK_3J^Y};I#Ri_mHoJ!dmeype(7|wF9)*GoYq8Otzrra}k zt808ji?KAH#5c>!n(6r>ceBbDwOGCm?=aECvcudn5bebmz(e4DFbHBH3V|ii2Yu0D zt^oSs-*lLp23w(<0NX$dJP2k$Jj25d&#$3>oXgpG!x_Xa(1h?Dcm%BCheQJvFaVZ7 z510W_7?1K9eLUaLUTcO@)JwXd>}Umim-V`CVh$g4uKmW?hnTx5M@4?0KMkP|jky=? zlhnIg^;7u!@*jjRu3tvp!D|Tk@w&DkeQ_$n`tiot3Z*fLunUL_zbgHR^s`HghOYhv D*p-xX diff --git a/cerberus b/cerberus index f8e04dbb4ac12dd65ac071e83e24acebf835f40b..73145a50ab16797ab2e59281050bee3b473514d9 100755 GIT binary patch delta 133240 zcmb4s2Ut``_xGK<3+z%a=onK( zO_7ZnjV=0Gz%-4CLJ~Di1=ChZEU~e+{eI`(U0waZ|L6O@JP(Td#|F&IT)7;lbl9(h(-<;Os|B~eEV>#Eo`HwcO0-dT;fYOgP-ic-TUs0h>pp<)s zFJxH;C-ld*YTJP*%RJjFoL^?q%@d3s3Z|O|wKl=XW99Dt(J3m}YnBR*=F{XX|AdcJ zXo#yZua?g;8(*ghXFK?QP3u70S89t6t<-*0*3e)pJha;*v<4>YGI%GC*xntwOH#5V z6*oh>4huXbQ-mbR$cIq5!c%%1i}X2v9lg}Qg~)G5{yZV~xSZ%E zZR7hrx-?68{oc%aYqu?1PiOZv?d|<4*LkMPzCJw1^H}`UHJ(zHha@GUuQD#iq5mSC z<*lQAq+!9^v%OAg%#P3G+G_*!m3QZPSKeJDTWqqlTvwfA*D;fQ!%}gc?JApn z_@AYDhudzNZu61$Y}~vg&lWDtadeR~9IxTeN6x5=lPn+mO64|lRYsB2m|Ev$vQJEB z} z0PC}9OiT&YM42_dwO2LFdX3t-PgWDws2^#{NQ#sKf}>591x%WD;gjMuKHCgr@E|1vXWn2jH>Y4!IU`DXz%0ayc|aTyu{R)fw)*{`9PN%_rWz_+kzC3gYG zAOx?%%8%)#TBUBGH0>L?Z)yzIEPrWQWr~z< z2$X7dtk}H5=D76lT3Odnx(6LbNmt}HQvS8Ga>jMAFQu)ta}tvb_Bb!g5?Zyty6Q=u zkF477!Kx+Ks%x=oOwM@b!K$O3t2VAu7hU6FMgy#*(6z$X*|ZoZHE4A;ep2l*P~>ch zG|g9DvgXhKvbrN(+*ao&Om^dwr_^hz!q`EM$PJt682yP~! z7)?AS0dc3q3N~%s9aSzAN`PPPl=%6-P@;DaH%bIb)AT(+iO`2Bk?@g9iS=nx{*D(y z&FMQea_tZ4(#|8G#NP~*=%!L)QxlcP7oC!QJVUZvjwwjL*clUrfL4G#mmr`dxFpq2 zLh31B=dAXyyunN7C5?^CsSn%bx1UG|3I%frVUyl`EPE4ak^th)txqzbR|aKd*1za4N;geV&jA=O@j5ILOE z{@#D#aiz(P#~ISJ2`2Ek+rvCAecQ?7&X9J8lyQB7WceXg+PMcT_LafnZ0X8#P+ms^ zB=e5G%%|)h@VG(aYu(aKvK;p>NdFcSaV%ANOd9MU^Hq4f06eCAaZ@S(W18qnmB+^+ z6Ar+unm{H9enjQ*aqyntk_*0AW$|(Fp5P`wv$F#b5s#09_f%2r`v4K~_&9j44B+F0 zgF?jPd3+qaR|bGEx+X*{J`Ub1_#uo6-26UP03II)@09@{bV|h@mB+Nt zl>uDv%_@(NgZIh+5Jshat;%E4c*+0}Mg>k30*guiEBGOF3j7t|zvjq~IE&SiBpwG3 zUHiL%m92Rfycbg+V+K*vU)GsFOl9TQaYh}Mvp>1E!Mn0dc4gu<){m-3Bm zrD-wGN%=OkX$dZyF)cbm%<2(h&aWKiCU@N+cf+LoP*%Lcj^o3SE!D1-LmM_OR^@JC z-v@HHqo1^Msw^26ho+~w&Y!|itQUhAafq%z>d3FdgpcT@@?5QCur-+MnADZx7Rscq zWRJ(B{^Gl$lFiRZ`NcS*rG4EjB}ii~ce8AElBIC0v}49ZW=VxAuLC(^kjmQPyx%|` zYC~k=NMF3bGOA?hvQ(UHS8&|vW;vuO&a1-cWGav{+=xHI;q57vZ+u~Rx*jHgwf*eM z_$=4}+1pmG8MCc)4cQRe(MdsK>Sl?>fFGlLT^7$j#)4F)CAl*#PG4Eq3ruVNfN2L% zf1hbMk%(zc{tMHFI+Cr5A?&v{MelQUp=lG$|L3j-M6lVRi#z}a9fSBm>7h_A4L z!~m0B&rExC9q%Kbo(0@TfO`UPORV?YlKxWuL34WLK}~3*!|Yw@cq&&FyLF&vE3AOT zvL#X~pF^HV=D_hhV;q` zO-N&X*aMP|b0aAYL?qp*{h#~b9$>T&O1&D>K#ghZU^Ec^B&B6fc9N7VQJZYqQ|bFgUgFX%3X+P+QvO2{ zCv~%&!=%FXV(vIiSQ`V#zfm)y@d%{S-Kt$TLCSX*E{Dd~!aH;d8KKdGf3Q|^_B-+` zu)@>=$Sfdt#kwac*i+7R7U$(y6on-tR1N*06kBysgP`dkucD=^u0C2$UY zlP%FqS7rmE5h<*^8f1+r&9)Qb!6@q_w2L&^v%vz1Wt}9upXzR*j&vjjuRW(R8?1jr zQb`g^GaA!2W=bif6~4jwX@q%n?jW`fRy`M_w?nrTUC7QTHAyKFG)XupLr9G;NtH&O zWS4N>UTZ4Z1DzBlxb3WS^+VOw55wvm4zEghK=wKx$-Wv^>5kb?HSVs{gjl`M@dgkE zOCe=-XmGO!SOIt@;5V}*y9QJWmWsa%!r!Cn@kW4T?~itkv`Uv+#3X-1|3QEg{xqaT zP@R=nV1Y)u62KO(G2fqI`#zP#pYw}kOHa5y&nl`f$Xc%)I|0_;fK-ctJ@EHLD^|W} zjAU^*JSrV&SjkvsVSv-|q{X0vyrl9CIg+J5*`(B+0}d^y^90}o`&|w?N`200g3Lf1 zY<(OR4{eLdHG<{|T4Anpw_!nI-!P2+q#19QzKLSps4t%hxFP(dXEESDGrX8JYe3Uy?l$ z0_Qy;vGF_*P(Fm|%ZQ})n9v*`G(z9&q~hi}4lfs!v7rz3r3r_j{xERr{NWvEqpkt6 z^1C!8deO^Wqs@z6>8is@ZOQVUJ7*uST&oFgkYFU-#tdhUl`KQ_#mz_H#Q6~jLdvr3 z22Zr5oq|bBoH*grJ}k()4~y(Habn`91lv0?v5|Ji9F49lft&UqdeLzmTrQi2fqJ1< zOESpLt&iDZrLxIRq+Q%Z)d3eUx!w~J8XqOEZS7%|-#*#)4(La0*oTRf#6q#5&pPDmyi9ig zl)lKcH`xm%X-8eMWN(SaFH&9;WR0bcJ|=s#f*{Zuh16zto?yL9cH%3YXr-MIwZMs1 z>8@7&QRzCp?yFU736~Z3KI$J;tJh_z+@H#VlgUeb@7^8 z@YTt{s*m$BTT-FbI+I$(QFlJMSH{F;%kq-?(n_>^-Kt9yP19a?we8o9t z*@TqTZ*Du)5ST)$7jDbB4^`D03VB!!*aWEFBMDLp>3cd22VsFX&gNFypiGSGq$@pI zAvgr(vmN-ZnIVZ)a#gp(-VhYh%~EkU($6%Q!WQgNiB)wwxgII%9A@ZbsN0)zP(xji zlz+1wspMd51=^EThfBeVO1`bA%OX{22HmL{TYXB;V zynpc|W0biB+mMK`6$(kOfH5~5(-Xj%^M0xg0d6R5vb-PW!c3t0|L4L(OfcJ@0TP

04^Lsp1ANh>J;IQfiOe3b)fjhMZ+2sa6WB>d4`E*7)xM1VS+?`QukyDzk&XA zk`ms{$UmeShIO+n#OeD5PWYlx{7m;C^8sW>V`IlS4e7m#<^5ASZE~^#)0AmEP}a%n zx@*e+@6uOuU%x*4(7Nrh&Sh`u#LTJ&z`9>^u3JL`ViPBXs+;&rFs2X_B-cZkC|nOx zVI(w#XB_{l>p^X3Z|5O(x*j#;dMG$%cemttz!~>6!)*Yf8`y8^ab~c>8U*1VJEA^*>IM)%Oqnn1?B4&Wj{c;UsaLAZt|lRQRHtI7=kUAq*Bk?G8GR zsE;34%^<8M8)guBfIbf+&ht{*JMrT1co}$IheiqVbzMw$lVp~5ET95};w2?DSmz?W zfz7oFC(Ml}h#EoGnShZERwSh>r^qyvNgcX&#AKAQ^Z);Mz)&~+I}%7}huS(m*!k7S z)6VZk6L2_#@4+VfAew;crqsB*DKX%y(=~}OPbY+nWXozOVO&fY$gp0Cd?@my9#$Y9 zMDPug7*UeB>^-}a<+A)Hqg-qA1hZQ?I3(M zFgMWI#wCZ)HRg;WtgQ~_>I<0KKxYGmPIR{geLdMZcOAw*h#d76Fkir1baB2DzM+jba35^JvdVP zIXiuTP6~q{ImFPbE(%~En+A9wg%_PLYL@_Mp?2NSpSC9PfEJc}(UJDT{l0FFR?O8eRFeZXmB^cz;4*X<7&!{f|tA;Eq@d=G&Ie;=50(Hnw=)f}*7s@Bw^8<-< zwcUY56fa{T{PI{GADN^Jivoo18Ht1>wMrZV;|}e>7bGQ_2cWtLZc!pM>1j}71j^8m zKM;FzktZ>D48wga!I9|US$k(nK;^Ax4V8@rft5Fg27w;Ipk7GjU5%%Otk*`3&T1Pg zsqQf%6!4B~$UEK+@7REC_!G(*KDd+p$W(c?mt?k|N66#8dkkTve6Zpk2ZQJa>rD*a z=q1@5JxLuFH@B^Dy2$7U1ULi@R)IETu&9)Gy2;pWQ%s}+c{1Pi$m^UzB0(Md1uOCcrc#Ib$C;!n7BH(Mkf*AG0jA_3MLz)=WO zV|shOpluNE&_}1EW()8~sCh-JN%GEiyh(x()u*+gd9w97cCVu3vk*lB268o40*fun zlyTS-F}hJz8KqKV+Cf>$I5ykCfP1S-O&o{1N;mu+p#zv^`5k1vVDS`Z9gAX-^E(CH)G7 zL>n>nj5frRHul|i*wFEbrIM6(9hC{_{RcKQ1C?AG`jWF#LtB_4d{CzVUf5DQ9Guy@ z6Ooetg)>`SjuElCbeYsxI!cwb!g!PY3k9RWItZzYU8%?y9%7ac`24mZA~H*EYNm%1 zwm8WG2LQI3sS@ttQMiLwvT<1k5@r;E4>~PUPoz4e-bj6sHbL49X>+6oq(MkSkcJ_R zKpKTK8fh%j7D(ffCLm2h+6HMmq#aB+Ry!e+0zfL#bflR`yCUt5)Pyt#>0?NHBF#nG z2WelV{gDntnujzW=@6vDkd8n)66q+Ug-FLBeFo`xq(w+4BAtZvd8AV_k(rLn45Tk2 zosD!Z(wC4fkTPg*DG?;-%ZVV~-FZE*L31h{INA8XpA$enoiz|5X`GKxv0kzVV`N*D z6rk6t(VK*AVh!L|G?2KUyV>89^_B-jbVlf;pt3?)ssu^x~8c@U3zJC`Q!kY$nSAoo-|HyRfCsYr0y!F+d+6No0X#PcZ#aGbWUa#|l<#@ZKon z`k~=4HuqwUggm=47Wpg(=jo#iwCU(zpX<)d^{v3?mAhGB{A_#u$o0TM+MAAlU)00&*&1^>+kOaX&PF;M z1FSpHMm1#utkjYVeCx8s1coNG{ab+D67##nu*8f zD4L1)5=8HMpxq4EQ`8i4dw8K_fozv0mPnQc$gSjI-Yoka+7#`PwK>*r;UQFE?o_-YneWT083;;1 zAktSy&>>gjU6vGRO7{+w(&+>xc_wvaWC0Duc#ktt)*U^M3EM#nT5B8z*DG|;A8n1n zTyiZRhQW2H&~)ndX9p&fA*eMMD`rbR1H zheNpSkIRxxviuhqKi)pH|9Yk8BYWhUbB}Ct?h&-PzekW)_DJgodvGiA${vZ~(^K2= zX2}NmTx%Ym+^P9e)F``-E=0#lmRDQziOFHCEq^8X3GeoV3QGOc*8Jz>b_0D;BpN6q z0lX1?@0YPFd!W7u>n6jyP}Y?-ML8RPe?dFYF7J*!NmwTOy?@6c_`qJ#e0Ium+0mMN zcaD-*wc$yf`^fdJ`HP*$M;k#S>g9fd970dRP?JOkVXtU2l*?slIkSvPL_AWGwn_t; z<&S73y1ey%RQ0l#MebXi*BS^BQmS!LIY>g!reu0mxENPXpm#bW=wVcBQ zG_LYStz{v~j(ZNFEO4LJlAHj40}m0&^SX6u{wFgqvGM~cTFXpicCKK`DNkzo1%*Tg zYb$i1#uDB2KrjnIe4`ZBFvgR=nwHtF0L>o6Tv=ru9545n>s8cK%$2(CZp|;I#kM$# zm@g@}{lH98LFV>9|2hOQ$Yyt>egig(!mBJg`VCC{QPy>Gvd#q7iD)i|m=#`pqg7}h zf!S5TTvuSe9*Vzw2qXvs90!pKpQOTxSIq#&%2fEK2XJq|D?FU=1WyGIkyZ=1$pxRG zz|B^wxJT2{Iy+RU9b&=!M!=zD)B%Rkg|fj)@P7f11{`GHy7NF+1x|tTg}~K7eKbayW>eYTMv9iwf{&Of!5K8;_OtM7&h8Pgu zO6f~_+7}~ucpgHdFY&ZHNCHs*HW)-M1sS?7q>j%d#b4Zox*J3HV|9q4%#-n+8+ZGk z`PD+VxV`C)Y@|p{r&kcpAw(OmMx@(ttFduW`0Q)wfW|etl4cf)l3g>xqs5>VajZ7> z4W5_TpY`MGG8f5{lX!fWq^N*Dn5F36SzWG9O0ywYhBqG&Q-&+KtdkX9{P`|D+rR^~ z>_B${*8|mi$ZIgH{O_W?(DxC#qMN(BYfCFMPdBa_f_TZMf@WOT)xRT-1nLv}9_RrP z&c#bADrbL)K8v2F*Eh@E!`kZ*+36b8Pa(~{wL0peyN9b4kS`Qu`3KV93n`I%G$fPM z)El?deLzDSC4+Lhm11hNTH;}ys6QqLFmHan>nyVkDvZXz`vLjW0oH5SW`vCLSCDt~ zkZW%Y^#tv`Kzki*E7?L0NrGNV$sJjh(Hjv6y5LROwh&Lz4A!qO85=Z(QPMT6hlxPA zj3e>74oB?Ovv>gtR(ucs`(q+S|IYVZp+nGS0&aR;i&!1m8XeE~1$Yjsr;nxIU)>#z(%yg&B1oWZ0S*U9)*oTQS zOc<{3{ zMOWg>6w>p`4qa!oC{n$STXS0L_0`>qaCk63ekP|+D+wqligp!dYhjaRT?^&NMy1-n zy4&c5?{r1JM)!_CAJF4~esoI}&wL*ASgRH>2^M;-Qsl|($|xnEp*OR?)STHXpfO{> z{Fk?ner&897=)F&3|PFhxTga`z7ir^y&bWd2wnBKDAd<-`18g$@9@Iya@9?oBC74N5YH~VBk zzx~w5=>Ia%Lt;DEErQlEYAyY_{)sp?pSOJ?D|I!{yR5lvP;aku!U;&}nv$*^lrSJt z(o~fgBC(pUe_{ypAmph;p{hnlXGJ9fxhGb7h@=(%M3o*o9DF1-E-{X1z zzU|DP(jkv#A2^#8VFOUJ^(Yh3wxXV->)m)}a9OYt{QY-OuPk+4v?2{IFO1r{!xJRQ zPB8jg3LNh8ECm+_<&^;u?XKZS4G^CSNlF>Q{riQp4*bgLU_Y9~Ol2|#>moj=Uznyw zcb7lkuM_Lb*YykL%|?2(k8Y`)R`=%zG$YaFRm^=IXccoO+YZm_a!!@WJ`Hds2w&Gv ztMY0cztHc3{)l4i1X(xn)BS_B%}`qPAq(Vw1BS}Kx8&moj9`_#dO)!JRZIT!fOvU- zOD+$LjhupZrLiV^DRj}|FnY-c-3$LvLS%U>&mP#G74T^T2kZNwU2!b4B=K(t1_w$v zu&=RXT3VJeE(xK1V0hbPlt_7&o|7`Dwv)48Q>6SmQ>9rpC|~?gT@Ri;sEqa7{_P+i z7Wi8Wvi1TM*M&5<2@{g}KY7N8p*J03gVR2vUGy4GY3i;;4>2{C8F<&hzCjmJq7&eG zN?{lfi_f>f(uc7aK5a;_ z{8Jo%eMk?~9~;s-rKmZ*-Pjsa-rO=4>DYbEE$hd@@QzcL(+cPmP2U4iILINL^;>z{ zp}oQ`$KpWNFnrhseLYW8dG|B8L&{FyzHDfF2J{DpMGfBtJlWXf<<$D>1D8*NK$fCT z=~2?+{)SP6GrENZI&yi=<*t@BXfrA9!A6^aGHI5nyz}r@EQdcmJeU>onZsLq2cf1A z0%eco*5Um_!%-xIgIwk!c&;&w1;z-J)(!V5p6Jm8r^8VY(yk>(P+M9 zL=f}kUyO*?Zq@yi%%}A0s5u9gHT7kI+6puk1LtTWd@f)$O2?Q4{>F$1ZH*3@k4FT` zr(*eF(8yT!G0zy;%Kv?!pyQR4D;=-v__UEvMZON{BfU@< zWwO6UEzUR(;N~X#B7S~kdp3)QKHZ8<=GjlT${33l?h3j9<;zfHg}83OKzK-m-Uz^x zf_B-lWRX9~*FAku{yT<`8I>g0$M9vNQdv{}#i)3YpqgJC)mB@xxju;-3qk|`jbY_M zS`(Sg_8YAwJChdX#q)jz^O_t*jZ^j3K=qz1h?g(M@OuUAtzdo22ZS)E}6xhh`7KXRn7R}1*dq|ewHR=V3j9mre^}9@0O9b0i^KPSi zu%~&+==T1DoM>Gal>K=1=&#srzIe<4`P&%&^O#t+hTk32%5N_k(z##g(YPy|cN`nu zxdn!z_!YTr^!}D?N+!G+{mNs+v9?64*?Q6>+xN^aa$6U|3G6BhfEk(y9^Of@74(|BjI zI;nA2bu?e|%wX)Ei_b*KK-*+oclH7AH_jM!8groYvc5q5O5j6aa$~^j<6_xDzIj{= zwQuu7)Ew`V+?vSa^VlZ(ZN0p9f%A*=NU@R% zz7z!^FscF&3ySo>--{2B?mA`UIYskGrxb@*z_uMt+N?4_&09T!-tBdPL}2@zYa+y%fY5f&BKAZEOYKJT)X_T%fwhWGwO{ zmQnY8&K?_PK8>HA`mFz?M-UeAC#Q8W4hOVREA3ELvpi5)=|!9au9bc~ttHFlC#DT% z$vkm-t_+&JF#Vn8_6W?*?7Ze}WwKw7;IS{@tHc1l;f4Byx1F`NZ(y0Bb~VbMe&gso z{+=VazO0~t~H^ekt@}3Y-b&3uXn$ zwlKbGR=j*VoFAAK)ubvMWcdw#9Z+5g;}>Sd$6p8o2t^xGiV){|N;_;QZ>FXi*s{o< z3FE1=?3KJG9T@*>eNfd;H0{U05i$%xxXh1W=_Fy>fwt?Txa|g%v9w&ri<{ZZQ>{r2X?9 zQui%;i^fE3PKQ(s{2pqz!@OVpJW;C0bs@Pifjso3UQimNUy9NoIJ14>OG&Ir9vV1x z;&SZtz4LqGG-V5d^=S&e0PEvCWDLV3$P-TPb!Mu9HTmGBpfhnV+5)?flGmx|y=ARm3zkpd>w#5@*b zxwZj%4}am89in`UWKrO&L!inG)*!&Hqi)9`Cp(Sal*8*%ET@J zrYy8D$6k+#|E7^FIgEc@GTaRN2VWC_2r;OGFSa~Kk}O@^2-64o?$`u%i|_^jd7I<2 zjNCie;TZk`vh8WcQ;oJj+rl!~4@y*@5GO%6KN`!Rr?Wk8yylG_6t% z{7+2hFg^albnFDjbQCzIp};YXs|3e16gWm#;28ZMf@5?Aj!_jjM*S;@U)xf4y(;BE6Yd99d4=f6bI*e+HF_7Kv61raiBR8Zr znE$&d9_CW$%dO>o!Mx|oL$n_R!<8x=YS30tX5Viy{HK>Y$b+=J>F=B6oKSw?_Z*hZ z@4jM`PlWKOSHrZgHQ?sLw?&8?9?Iie^n^wG&Z}|yiGY#^^cp|%Y6N!OpRXpz7-E&{ z@IyFl{eZjz_K1YM+y2XZt*1{Ns?>uQ;f>d}$!CIj_tFJ{?*P0OfA|VaxjdoyzsYM$ zQ$jk%ss|As3&BOhH#B59FzaX@x!BlyM-Zq};0(WM@CzA0q3n}k5Ye%cr4seDw|;Ab zFRVZ!g1rZr(#8~ExrQ>q*78>tcR{S8dU3LTpwb5)*6_QFS;6 zr$s!HS%~PRWD!*3E*2KS#zj$$Py|pXfqdxegFF|b4mx5BEd2~#`+9p%wK4ZBJJ#+f z@R7x;v}a+eQSIp#|BFe9VI^vJ$#&}23iv7cfi)(U9Dj%>qQ2W|U9JWQPC&-&J`1h+v$UkKA z_HT}mmvrT2Z)VEc&it!4bG6H3`gY|3YbbLqjTb1HeX0DTHR*sznfxz;=z6E|L5JaR|dLX|M&V6qnOpNSep=U19 z_}-;ZF7B34Yica|PHHscDNGkvAKz3>&hpDSd#F> zU2T+`ZoyTynm?RoY2nJ(rC4HI`5EaJx?Wc%xV*C^+?Ah^W}!F93VcQvMtY>WMm6j_YZQ|G8 zY2}mJTostd{2BlF?@(@fw>9{6J(y2<_Y3*5|Mt|iNv!$%{%WJ`&G1CvoI^yOLRNJ5W6pEhH{yjjyScMGZx!<8Uky$Zg%6=m|Xai?V1g*?%W z-V9v)$00sPnY18nq)(i6Tbi=+(0b_1;`Ii;`n`_Ot=o^jH-YJgG*LTu=iNRKn#Y?m z(PgV<0{pM+50}e%+U?(e=)nSCM{jznLtZ?|E(Nj{@_#lKu!+21WeOo%RQWiQciQ;Z z)>y=WL0Q?UOgG^Fr?4a=tZ@5b#`u@1U%5s%VOBcB*MQVu)^^J$h-v!y;-!|iWLZf(op2L3z5!O< z_I^9k7~9KV+4&rMjbGXMhIb^I5y4vf@cyTRc*U-CeOqsJq(EN3tF?UBhd0@ssXaCs zB=5Vsh4ypGxY52fKe;`7+*`OH1Wj_+bX_b*WLfh-0`O3aVJ*t)ngKz#+o{pJQ7i}>qCy;{HiNG}t5<&rPy zkTMSA(|tT*o|8cPa%Cq6Pa;EH3){Q>zRr>F5dxg4IpyFkc|=F^f<)3|t~k8zq%w8EQ&|##S}$jr z!v8?AAN2%3>IF6><5=zfc@G)nS@d~FI14zqWjqN4#YsZ`@#0^8-YL`!ux_ntiAZ=$ zJWoLpVx7bNzcBcj!Yy?@B*i}Z%!_yWVyy3-5R0t`97u$Rdh>N(82$U91HGgr1Fr(x zzc;V_;$^6ZAz#jt=Z9`T{^eYTlpp^xkQW~IV2OPE;jcSRqlr65rDxESQKm1_4-*kmb(M?YEDZ7;=$e+p~^#KrRuieBqlIwwSN{<~Tw}yH`9k3SY35Q+N3Bw=e2tsrv+n1&vEr?mt)O)jBc z9sG_5Oek+@T78`(Ux!23wpLQxV-CjS{;bJ1G}yT4sm2Ma-PFCNoq0V#goC7p?wo(s zu<|f0?l+`#K3+f?gfyCTN^zJ4`$LIu#~~fNBh0e?g++M+IQ-D&TeQVb!Wn)*N{;U@ zNXhZtgZet~;`bk&DhByqk&l+5c|*-KHl9CS8yr|jtsoQ6Yh89#fb}`PxYno{?7_s^ zuQY+Ys`kAmt^=!y%mh-L9mL7$*aN+4$>?Kh^G1uWl(ksD55fFS~f&_sK!m zgH?l9gUCy=lo5-SAiT8wt?#$7xQQ5?_GT^#D%da{Wq72iHjqCN4HNf-^C>5yNSnNI zqMLsoYJL#ZqvlOb_MZIoiEw=uptO>HoShsD_x#C|#?Iq0FZUbX2((dX8DUh+gr`uy zQ4T7T@HF P|zTw7l}9vD2VOdV0Bf&hS@y_C&p_2kn>38g4xqW$5-uH@u`S=T-lN z@W)O?n|?=u0@|er7Ld}Xd;;=xES^Rk;c1XrIUULrwp8jJ4(w%v^$)5tah%XA1% z`D3;A@+BObQ+{kF53X@p>h$RWI8>t>q#j{-M4YOWd#mLHc=}4YpR?QyGzPt050z8A z@F^Ag@9fFH`x#2?g*+W^`imtf8G|DzawQw@ed*f@NOBE4fL*_IgiAaSlSh5wbw^4e z;8Jdm{YhN+DET(ZN2N6}fGu=5YUniljM`E=^!pC^cOd?1KYTcjas}cFE$`N4$NqK|6=Tacgc znowVy@hDeZa!%;69On&mj{RxZ0v|)8b!apLowgw*wkgN}*E!j!l(Aa+YT z?TNLEc;e}B{Um2;F7J1`b)t^;+5T?omO+HsF<8o=#hhRd3p9eTr(5ZtQ2OFY2d_Qd zL!a)%)DxuuT&wxw)aZ7morYNU{Fx-Soxgb|RVjUUCRW=4t?_kK1UH;rE}vrjgR{5T zO1`eHm8b1{he-K_AFJ!nLbgZNUzVK?H7nu!fA7JHIs3zio5q+w!r7O++aHR*J>`!z z)N0C)k=qmgY#}o%?`JFUuDL6f|A@c3yW+rj7R!IMP4(Y)53w+8V&z1HOg+m_HyGLb zJmx}p^LHPq%Xjc&cZ2x8^Zs&6BR_sV#{acPTEJ?$U}W>CxBrYs>XLZB3%z*VJr8-b zk-v2z#y|g&2HyPJ3(5XH9)a2wWa*DUFDesk`v~;6dwgO;Qb?2&e7HeXOh2If6eMHC z-_gyRJ<{dNd;Cm86w~s%4RQXrK^%8tY~vmOZtwlu9jUwle^>ADiGOG6%YlIu+^+Z1Qnbzjxt9t7F#Gd$`qMN5{kxZ>-|2VHEB8-kLH zJrQZF=3ifo_tv7nqIR#_UzkyXU>Po7< z6fjbeV*N5v50nT_CR=Wal4+V?-u2(!kjz*Ay`Z0h zH5LP59-niy1|9lb%hZ1Z7$LOsrPqRE-@EBIOqHBATAsocJ-S{fZ7tqDG@u`pV5&f$u zldpK=HjlbF-utWzM+skcv$b53EQ~r$jQr(oe&*))^8Tjc_+-|Jcf1`Tn>zCWx5HTV z_9%N>rUYnlG2JW={j+hK*5Q^^{?<|WW>ZHPd?Hk&%XKB4#mAw{$U4)lF4ObcTS@SB zM~9FTDxbLxg0cwS|8}SnR(=TYLEt02@7Ses9q@`O+Ouc=^yb&@%w}Wwfxx1G(?L7OW%hc&~uM;`j1Ufvxt}y$t!foyR)*$mi_*c}J@JgPMG4=Vu%v*vBg~ zSeCpNu)9es-(%_Q)s?4Nd+$$g;@5%jclf3v^%F1)lKNRcW_Z{8Jl+jFEQH#Fxct9U5(| zs7a9xVyY+ez$o4`H9fr)R3({W=uFMh`14rN6Bx1rH*|G6X$M&v@8A?+%4rmUYZ1v3 zcT;%3sL5o(Vw)F>)+3NdmlobP#q%#}_Il#bMQC2Mo25zWwglMd7209E*rn%mrBueA zFQqc}{L3gGf#RVni4x>DzVLH;E-Y~TY+&$a!Sq=4tefIk01K0+-V|TY(!3hc-`R}x zF+J((gEG;5*bP!2%j9SQHz-`Y_2$3PBG{X)#Fqz~y;(AQPt<#}01pYxzgE6UNuZ_l z`&x~px=fjQz)EJ$C19idbN4#@N|M(L0OTr0Wu_=dVo`EQCJAilsT&XWO$;8F%r}@~+|S8)C~GO)K#9 zvTj1EvbUJCV{vz-|$D_dv0c-oJ}WAD80N5iqM0?u}XTqO&~Tun<)W%AV` zX`ZH&%JFJRbZNqtcyGm1HHEExMQsz-g_(q3Qx@f;g2C71>tfVPn)QWWffV>$*FYZJ z=g1RZH&Tcne66A~>2fNAulrD@7jfT-jmRQe!tCPG967lrdRBfShz zmgPAC;;m+EGFu?@{;aj!^oAIW=(z*16tCrOZ3J(AiF=CHJ!{O538a< zSWJLRGw|a|$QPe?q$uS{_yqvWHYO#;!l8Z?7{V#pXd8pNF%HLNG9>R^d(htx{kvjD zO552cyC=$3H=X#VI`M%W=A(`Q4e|=5eO`ly87w`-bR4g&D_7N6zv1K{$=(Aw*p-h|Vt*cJ)F9o1TQ8SVl;0y7u zmK33zDPjUyFxx3I0$GAQ!AlYJ$FGyRiD0rKuKiqHnTEO=nMUcEDg1(13;7FpOi=Xx zN|$h1^1ula=oHr7?*`#BQyh#qMVkDJsgSm>`By6M@;QJ0W{}T5fRssPd+;}IA`-33 z_E68J4OekCMTyc7woRTBuZ%DN!sCnGCwVEe8hXF4m%5;AFJ=2ZcJ;yb%V@9k485lA zTS>3Cdk$+3u+?vhq-qAl{BU2?^l(c8p+4PmtPMN1H)O7eD;di8_phw zSy3(I2sW3ci1`t0AsM#;)O9fT`|m~cUKi)3BoDOW`QI2OD6?MSwR`TTvw zH47h6a7vC;NtP`Z7@;dqU7<6ewY;>uGL23DIu(zfIDS};6e-c{2kfnwSk{X9iH=0m>Jzh%GTJj6ETa#IT_(U4?#iMf8bfv23oG9Lsun2Ve%|CP>A+|L$0= zEf4zl_gGfw{r6>6cy3*y2`>ZE({XGt>mxe0U>iJQ(9J9cZO{aZ%Pm-uhlH|G;CXB- zkL&2DRE3CjEm@g-^s;Cd&la$c#O8R`npN!nDW3I`{b%CGB8e_8GjE#cn8>Ec7cYtR ziEND52~?kzgGE70sQ&0Amg3zS5OAzUS0Y9wu}B2HO8gX-g$Uf&v{#k%@TLl_8ZL=r z=`5TTi?G)0#h70&s=psczZP_3gH(yYpI!ZOg}%89vQ8G;T7%GEUKD3qvv_&mMd8_o zr4I2tE6s$v#K;cVq#P-&CoJcRi|UA5g>vp+Y6%GFfDIguZ!J4DZOs`uBGt zP~tH_&_{gRkr@MX047Qg#E-@i0?PLjtP?9^+r`pO;MYbht&1Ece(1!ap_Z<9V%+Bp zS}P>W_Ps$y43-~n9h=9N@16?^gYeE|Z8gjLB#O*TsHWw|62-zy z)=oZgL41-4!g+~5GFcY;RJ82EzLyVO5VyLpy#Ce;Quz$LMkfZ@8o@(I`TKwo&o@#T zJYR?MAv&MON|qb@Df}*3t|3)k<$y0Y_BjMykz{`^)^ugD`ghM0?@ab3;)|}#Xnq;p ziG3>o)-7j)jFUa5fl2vwj2?N$TFx^Z*vvrJmd#pEC`#|6_bD?m<4L9dKL|^65(6tRfobR`HTs{+e4JFKOv+O&M&MTYj}${u{S^GxgcH(!PUR zeui6qpV_VOgIoTNTfRfQ+rV!58E*M1x4dtw2kpDM<)^ykcR2HABJ;0q721Rcod>$* zm$>D%i4WR5=9VvV%fIB7-{+S1O?uEbKgnXgPtsDiir?MxU0XlsQ0kW7=a%p6hF@4#aRiI!ve{Dk$MfP=HhY~J#Va|?7`h!}6g-!aUWc!n=rQU! zh(->A%!Oiq4(tf6_#+4UwOCB+!Q!BGR`y_BwH-QHe8hrp1^w}NsIBUmn1V7#rTDi(5ruT%V3l?woWZ|LBY*KmhNw2g3ddBj?iS&e%^c!FK zjo#who^;;-CA#-wd2FGu^kR5}FTU)>GE>9;;}CS)K+|lFytgxNK%Q;9*AC*3TxN`X3AG!qexHtqLrN5!@(IXSEXr$y+1r~v z>;DuXfOeYjrh3fw=|@ejH<@Bt!znRt&v=Mv%FmxX!n zMqg*SU0)W8o1ki)c%m<>3)zY*K{c@Iyo&(I=`KR_=*MDk3Xki@=E=YODbDp{J)0y0 z4S6t$st1$WpRHhB#F752m7Y0g*Hqa1vk&Dze#a{lIYJy5z@GBn)yZ-lSa%-iB;p3L z(V;tkM_>t0hiFxF&rZK6O21+Mv3O@76FM6{=cH#iE1ofkfrHpSI>GW-7k%qLR03p( zL3u1hu7(KZvCi59z@~gOK`&gF>zrW22LRImE(6Z~J3by$%$6IdaW(zV6uGS^91Q;% z{Vq+Br?IKxr@{E=k_sQ`zFj2d!}*wO5Wh^7yNTubEK=Sdr3n0VQIFrsk*h+5BcFx( z%yprM6N$h{sOb76^G67#|C2ClM~i7sVsliBWlypVa60gA$bT3*kOfiiBuRxBH-x1j zy7JBtpj~ND4*pBOi;F{G5J|#&C}h8Sce|mGA|N_2f+aQo79=AS)lO?ZaEJJLjGQdK z7{;0!yw5%O5i+7kIm)8hP!_UkIEw_PsNw7#rg#Q~D>NCn=&+<{1>r1l;+%tT#julK zt$!HXt$NY_Db`K#G?qQZ-VC8PB#K0BTol@Put!)rBx*THRMtpH)ca!eNW`_?#vBqz zaG6*$lEund8M_aRgc$<&>d6ps^lA2FOlLG9N4w}I4tY4*9Z?Rw<&{QWCk2k$?#>>? zo?uPFOsY``p(O8SO#w`b+x6n>0+u81trtxS*!0_MvY~iynm`wyZ&`ntQpIuvw_0z8TJB9zmjLz zB4!pI<6yQ1h?e8v+KdwO$FXO%t#Uwj+c?$+zE0qHXsFiW$??pXco3*4Y^~geA-1uf zESWgTGHbgUm7YrJBFXZ+cxOBd);DvG93}RT2d-*yVLZI3r-jF}>;?JUSuyun*izHP z=4Ta;>)U7H)OZLxB|AjRBFN51qIVJOvkqcg5t<~3S^(uQ&xjjEu)CpjCa}0Blg@%* zxY2hKHE#mz!-k7@CcyCh;1lN+DvYcR$VcOK%p6fW0XAk2^dboxbmoCg++W&0;``@W z8_n{~CA;M*Y@r8xTf8!Z2{uPW&IGM}MfObA0i>Hwr9ooVOq_{>#FsO{fYGAei)^TV zSPm}3iu0Pr?_TyIYtG~!e-Z0vvAOb|UqsYwsEocMdp7#MC&tYN58o7)*$|z@qINb* z3!C=~*py6PNe3$bEX}%ec(8!yI46G=v2$2=HcpJ5!-B)Be#R=5Zw=&(T>4^pFq?B2 zMy>8dvfy)A%b)@G@!;o%@F))?*{XY59Gk)2Fns=mRu$EblxQevX<&}M z8b^D~+T4wv3@nd90~g{aU5J6?87JaEJhWF3kHptjRDafq7|T}>-%$}~ z-bd`ji+UH{EEitj=mbk4D0v;FnYUq9|odT0Y*R3iE%_hF$-iBVrDTm{c5qY z7&7&S*i(!%rBs|KX6<8MLSs_=gn(k?uHg5JfYYviS+p!+AF+3L*Op*C@^3$i7Z6~Y-NlwynAN`(>gf5{VS2Ly zd5sejUd4PO#nM;VTjQSi$SD$!ne0AjS%+KjB5V0UDUcB43*j~^<$d@i9Ly*{bS#6a|K*ezQpWQ18_QNHxN_2 zd|1}?l%ORJ15S?#m07VUO9(!N$2%P5i`i<_-9%kFW*o91+M??rS#-msN(ny(vln$r zpV1`ZRh}^JhdlMFd{`>fU>lM^f^3z=?omdoDfkB49XNeoJmMq(cV$dqc13bBMmL@kpA-1f-U@ca% z!sh?}@ZW|A5}Q^sUzYcO9jB{0PKr8C8+DvGWgNCqY+l8NW_n-*lA&sBi4NcYcNq#s z8j>$n6)af$8Jda?tD&Du zM91wh6Eq0J?5%b?>-8EbLtP}^{ zW(xzRqH7UG&|?H|%&JdyD{*PP94aQg!zx%e;rA{J_EIZ4h~w`<=yTs?GXne{?N;A$ zH)<^!c2|sE&jK=f2216`@aMj>i5q{_D4bA!PB;U3r;e+Maq74fv3Wgf?{gAW#0*1? z#IrsK7WdY(=J9s`B;`f(y-$&K@op3evhJ-BsT!Ip)+8>WYoa!27!|qKVvaU?K2=$`bE!nWD zk{R@~m0khXS4CtcEAt;rMVxku^#I zyTra#Lt9mCNoZA3)fP>(mEZf!eIBCye1E^+ANO_7Y-hGJXJ*cvIdiS=g_wN(Eq!^xj(puwuix!o z316`$e1zF<60fSk;^XQ29eP8DRqHC~hfU}SAe3zamvW>K+Te%e!u?gxe-3REk z=)o?%J1^sQ<3#Yud78Z&^HOixvKxzsTj%M*ZoN(YRY;)LR4C#Kz`Um7S)&kj&ExJ0 z)XF2M@g8hg8=)**gEsW)9!%?A^x+;%g$t;Dfj%^KP!*#aIl`559MR2k>+FBK=qkc^ zJPtv3+XMbz-F*-Kwl3oMTgBX_pYEymp^N(=y*$28cfsL_f*&&6!GP=S2i%RyDGaG%TF5V*6T*izX)p~K2>Wi>wzr3*~Q-ZWW zFq#xa>kmMUB8HR}E|Jp^n59#kVZi1MK!}GQ}prP3boLxJwLtTW+^#CxraeY&MH<-J**Pvb+ep5L-!Bs zZ9I;hQOqviw(Q%CWnUfze5iZ$^|0JVAh*@y)Bh!rI|ySE$wd2j07i#qTRB3ujU)UG ze;bK#eD2Vjr^#|e4{Ll5?q?Ov41ckrF4{h>C_nPS6)hy#Sah!zi+fL2pS{Y*Wk}-} zDm9s2F4Q}Fph0Z2!3g96UXJQf?s3cpm4bRa55hzdrcb2$MS8Xe+R2uqaM6iFL)jwD(KLUS$oC&JA28BAH;<;NE z;Ez_rE`(=qe+LiC;S-AKcXs0}$}91AI{BQx7jDOCMc?y!yP%nfwR!xt)_iv*PYf!X z3it1oQcW~c(fRW@^&MGIdR{-J>)EvB0w(%d^ymWCeV0#A_~-h5ET?|{Tz^wvME#2O z1CEbSj=|E6wqJlj-^h!4nBxujq~pZ-uM2u@%D4!213qz4&k(=}6yyp|8`k3TAz&&(Ny`9XCc-Gtw{Xt!lc#X;r(AuJy-T+%i8SFZn6xK;hbkuE|jzs%_>b;Koh!$ya# zBQCHz4ptoTw{}GG*ZL-XBaQhMB5+JHSM*ox<{;EC)p=>rqx5vYh{Q?JnQtJ=btUsR5aD*es=ris5E8NuVH%o& z4eh66IzIt7pE$otJFe}+?2qGfxn^>?_&9(be5V&9_oDAHSf7*^cwfW(CSJ3ri0gWi zC@i8;J47Sed0p?15na7Rf4A9mBxSMsZN8QTvHE0o54K*@3W9tNZtm*eVV#R5OW)FG zCAwGbG;6ZXuvf^@P5jCbqNmb7B@jmqpxUK+gMc20#eFuo5Ud=Dxo(^P_^x$`RRq(o zU`Q!6Q{2BUGY;c20`dGG#{XrB`s}@-_YE%$#Cj}MGiQK0`BOLExTqNBmw}ag39k|< z6@p8J6n#^Vj6QDlpKlWgAx;PjgrH_{2w_~Jb4Q++h;i6Tbm9o@ya|1`cd5${(9VUb z#t(Xg#|gx)hw}3bXcGcWAdesQhOR+&+H!XUsaYKp@Qx#t^dlrEb;$gq?k3)SNMUM6h13pvO;o4I#qpDD`I$ zm%kk?{8^t@vo6Y@YR@f=+SjIlJ2=f4W>?VW4o)|PiybY!3!Scl!(_Ru2m1bkHY|az z%O{7C&JP`m%YN#XCj34+On2^L@4x*JIo;E}?N=d=$T8n@b6N(7+b8c39|?I=$~|1) z89|TkK>(6S{eIE^vaf+C4Qb3Tx=+Ex``GE2b{*1|PX$|6b3ku*iz&N;deMtkA(^_j zAs$me0I${#D(Y6teRW)ErS3w+u~9e2XX^e4ami(!^rrX+`UWxT5cwVwZK?im`nz^5 z5Qpz0QSonj9sk+LnRBSD{2!pO;9+dWlJb*;b(hA|<=+RjoQB~qi?hBtco|;V-8aPKX5j_lrnLF!l{`;1Pgu#DEAM{7BwjJAy`BC0b?Hj;y{7-Bc8`Yfock- zP}@8{YY8?Is?8t&i8lXZztQGjmFXSqF7CIsdDC*;ZdAb1|F-#Y#9%7AwC}$>?j*t# z6=1OZhH&sWwZv0Lbyh04f;hIO;P~7WNA^)}xjs*1@2B7=`laB$@UJ{4^@5ujRpkv= zxBYZ&haTpzesKl;l0%7q>6_ZrK|Gcq%!dS_4%WfY49X9MEKRM4-@*eISR!hU8A+~) z$Ce+~2FC2WjW{^q3jbRVbCU2^?pR9wTTgN>-)rpzj+048|JDQ3zel~e{&x}fZ&J99 zFs{Fj`aAs}_2+i6)t}>Y{jdBFT<5L0N2mH^7EBBHRVpO}i$ceF+qPp7)o)z(h z60YRZAPzSf$LA8xLR_{2;7_N8=q`HhC2uKwL{U>3YzNiUUQ)CZDfela6#LyAkVdWg z(Vcfti-gi<94o-&2LZdweclpp5#9wG?8JD1!%`1NF#?DAvmAwwYjb47l)$ntB+X7( zPZmcJYBfI zd1EfP&L;TrXu@fMS4a10<6;4`Wc0)ykn9VYwKgYUW$#oE(sz&@--%~NdBDKwpl}YM zHC05U--kxpeYNein)`h5232J|Xq8{9h{j_09rAS&;gG(+>LePt&ir?NrF6fF@TCu& z#7lO=f2i=v$$uTD76$7kyIDVSD;e>Edo<2wdOAS|t7TS7};x zF$a6+f2!k<)q%!13qRdNOPoam@$?q$aTc@1wObTfLo5^9e=Im#Lrj)p(oYoUCO*<{ z6x?wWmvm?;^{6GhuzDR?OSGbDp2Aeu{3+TL@4CTG^u^7xR@o%50KO&6k6p-uW}d=P zckPTgY+$JHM~J!b^4&|HQi7LQ<60N~g;v>AA!JjvKc&ZBD63G}h`)Ezs9GXg+}lZ( zTBzdnopi01SSj}Hq{+2Kg4nc^j@E|%>Yenswg`5jAB-i^X6SkN37-IzVivqu#9~|g z-H%ctM~FnicO0F+9 zd3IP(LDBeFz{b3g1!dXW$varI5$0{wJ6QNSP1|lz#XH+*cCZ*F{@PA=f>Ev>+bOUC z##O*}y4*lS*d3maftrD3AvFpSy~K*`lof(#cem005JWq$jmCx|T3?RVJqTuK^CIo& zbf}mr7Hp%qFcBU&YnySXpp|7NO$W@J7m91U4mf)*!ikUjq;0e;O!Rk6Mi`$V`uOu6 z-NVvn8*T@P;iCOE8s1Qh6@}aAazha=YHfoqJN*CJN@E*|d7g9LF>0ELzfoIv%a>cp zsj&#Ic6O^#%PXHScmGJ%p}vhp3-RezTH077i`=brzp>~o0=7|nxVW!xq8<^@(C^+@ znCQEYWIfS(D@|`A;zZb1I?Vr_TWR5D8DG%3sW1s~eKt!@{b*c-ct;HQgq}o*v!ebd zO0;U4F}s3Jy^U5;3S{0W00v^Q31_u@EyB^}P)gkPpQyWWj+-$fm|7}3H{$9id@sb4 zira~5#s#?tBkdrgZy~C%0#6H(Do%b(i7iF2$7?{2r??kY2rY`YlcgAuFVljSqBW+? zqb)_8sntGE^ql@>Io;RQDySDJTy(oe)zKuaTZy+slaI;LO8AOnAJf@ZVyyk$YT9zw zoY-Idz?cTL7JeQpKQ^?D)#&wK5c6v>t0WJVY34KzPH=!<3~p zUNk5Qv(0V-Z7Vuf^S0s)0ZyZ% zVYh)h8Vj1X&pKK;R7YzT;}Yb9WMMBJbx>-0Us;Tfju|ZMB_8_5NuDR&Zztwqa-7s& z6o^}!3&Nv?j*F`>V7RnTnC@V-HeWxg9*mr0as9|{v$p(AS`s5_VX3hxMhrH7@#5HK zN{khr&V`7;!$TELr}42OIdB8~c=40}(TnRwe!tEd@Ap`7Lk!tWm*Yg7-G#ZJ=fbKe zSVlWk;7rw=U;9VsTb`F+6n3C@I$}joM0+|4zm|2q%^K`zl}Nl9-%*Q7#Rz~}pP66G zRX~y^V7u zE7e(E7U90d2;=%OuFbsr2Cnzu$KAYT6Fq(ztE_dKu#RF z0X;R#XmR2LO8iuK(%M%=Rc|)y@~jtbS3^mHv}xS>QB?G*XlSbnO#Mxwv_#=oHGjfb zcQwX`ZK7p~n6rj{NLLfVApZQY;7Otg)T3*l4BXC2h=X>n3im@Ex#-uFsn3gExnG5~ z+%6wb^fDP3oR6xzWW_;6q{HP3x0s6+9p%M`c$SRsrf{2WMmQ8)<}H(9;@$$f&|L({ zI9y>VOu}hQ-5$bGocXZ8DMv2T#kd8OyIe*%cSaT&7zV{1$M z_7rV=x?pZBbA(C<-ojy0^qi)dCt}R<{mwosWEbK7Asz0CidLo4o`OYx)q4pqr$re? z&DwrI;l0E{Cm2^!)b)4+ZCWXP#r+L*qZg=b#73;;OXk+cGnLBNNR1y>(D~OyEH2DA z_r?@F=YxWT-eQz48*S8bKHgea9@?mVdT#3$UGCeUriEfeus^~h#wYZmYh$e$%s@c%Y{we!+Rm=1tL zYX_aP4YYKCs2y3%+H^;s8b(I=puYu>*dlcVY%{qv9f=hyo&$YT`hI|DBHT8R^FZNQ ztvaIdc=K70amKfkP4K_~&Ne{_x!X{Xkgl$0ibv~d-awITHvnwiU?@$8fuWqJsW{>u zpyR18W0-IdcoVX4g9nWqB!;GM1m3jVV^JY&(R@@)`8sw-AB(z;nI$C| zlc2N9?%B9L%5KPPi9PI=Z+7wufTf}ZyjN|LWY%%T~b{__BVz+aQ zTlpOJV5>9iftfaaJtZd#@2WH4uj(0#Tg|M%y*63Y;Cr8fy1k|cm{Qkcr-gM5<&S~T zRMmBfH*KFTBX9%3R#$t>D)ECwfYPgm;%g8s87%$=Ct}4`4{lT2vVMqFzdDtQQba5F z`Rkr*;c@f-0Jjp)I{k?O1KG)NA|~cbnec8w5?>~v1{14EAxo!rv^{mjryX(Gh#8bfcTi55=(yw7?KG39r2X=FHwF&lA`DIq%Uk9?R}lJlSUB=zg`tdG>OV^OditXU(y_|~A@Ae2 zdchfc?arm8qlCA^?XeX!8kHCY0dN%>GFrIR&P8$)9-K~trX(L#a3krMx1gAeU{RP$ zo})!r!Sulh;hHl%B2HG#1yhU&byRwO;|{pTbt3ajU=8&Q`&7$+KervvB28^WA+?U-8lrHqHRHvCdX(bLy(G-*Fx z3=ZoL4>m5x3wh?&y*UxM^hBZU=GQUOeGN;P-Ph96@z@x?w3ZH!7s0LDARZg7OvAYi z8?B6lTfK?l8dKh!ae{%L<{1DZxe44iv2xk+2A?C>cQ0rUzel+fMR592gjLS|Fx)D8)bRk|wArXLXFoiq zynx+Lu`pzJZ#?&e4*lsnMNlSIQR1iy!1O1pC|#`?8b0$1fyEr8qhP{=&M+$guLjgkfT4`>wfAAue7 z?Mc`%i?!rC88VK+?@{t(>?Zml%Cl8kEM-j=ZJb_$9}`;A8sj3@jmeNr_`g@se~QS` z#lbanZK{Z5qgDz=_6ykM%=-q^grKNE4l6p8~@wO7WX&#$7TaX2(OK11~LOe7XY4{;UuEa;E1RFPGm}#9Y z^fSC3Fs4W!<=6;^KV(K+klUa*et0f+HJzO;eB%>U0b#z}4qGd**OqVx0SObq?R8Mg z=W9|hE!jlH!)D%g7z$i!+XGx7XytTlr@dFx@N^7V=hd__UHH29y9AaEGn9S!4~lg~ z1u+o4*76 zF%um@dYcN}-x;EX>qoW-)`T04guyFp{?>$MxDCen{3Xl9t0*@UgMHR2x|%6=x^_pL z)8I9o)jN8gmaYiT5`m)QDmt14nL^#w6fp-?ZAO$jM?4kR@Sh9!*j2QQ|Hp`q&J{_) zRWTZP+hT{m+Qn9)fse>2$L^JUB2|l$-Ui}%Ncgr`<2ew4+zOSCq56RpyPD@0x z=h_t@O7t%?N-PT$r&+#&W+P0@TtU~Ch{NLX*n-@pB31WYjL7#eZDjyEF9hZzhpEuP z&`cRgzb+@=Z0w$oKBlB>2;Be7p3Y`Jw-ql{&kIli@eV_3W}t2IIvIoOmv{T`zhG~~FPcIJp+*MAUyvvo4a!(>pN zLw9mSVBjJ6XY!PeCx2@&PAqwp+o}}oltbamMQWq-unE9p!Z}*FZ*SJ-%7UllFQ_B@x(W zK46nI^V?WxD7W>-g@Ua&F8op5bpr2N<8}Za7dht8VG_Qs6{s@fWxePHz!kcl?h^*+ z!)4^O3S9j3GTOgNtP$&%DGhYTMTi3p^k?@NOq91;%olGM!44{T2qmt8I?WgK%X^{; z?OG#R``U`dcS>wU=8FhM5y|O2NXzRkGcFl;EHf?{R9|LXGC2MoWOdURS=+#L6xVjc zU=@nOcTp-|*!aOr32Q|{pe;YXZ(!un%3KGq?Y_YoGbQI@PAM|eZ2s>vQ*JJXe7>13 zEQd-^%Vox$gSXxnDS;mUADK>9nTC^puBh|>ne$+4&V8&oceCakZ_W9f*~q!pIMoUT27Lcw5bl*M z%oEAM2jR`!KCN<>zi>Ig%`!ckoRMkp*8d-IM`u&QdN75_s-O{KE>vOGi?C`=kX3&Q zjP6O9MHmAdf*+b^LGbA)UV0is_$It9aiw63aLJ}M z8!MgTez{S+?sog#f5kS=Z|hRp2clk;zm7pVbhrY##w$J$-DI6hUmCgF*3X5ors4Bd z1vSP;-S_CdMCnr6vdjemM^Yy34IY)~4aB&FIG^ApUfb(YZmPefe5szAWX$y1SqO%XX02m1E#9}mBvO3KL^{Kmk~rj@)N z@%~zj4u;>*N}9@#;WxBk%t2hH4cG#Bf-~k8#OWxEatuMbjqv9~aYy=Qn`jk+Cu(Sd zgK^$bx%dBIe-!TtsB~5lYOPe^x^IU~yPk{5H6IJmy~k-(zPP2kP>&tLORQeZnsD>P zw~Ofa9gutFfEwtn61`DiPh?qHAFdm_2S3+`du1_g*eSx2V&KnXAaT)iF*mQVc&8X; z#ledZPTQFk)`GCvfj_Iiv9jE+C@be=C= z`m3V}Y^rgeT&SR0wC@J4Rz=X6T@dQfFZ6Vm@DARJlJHXXwpAT&3*7gROXwNA@%WiB zOaAp4Mei1Y(eGK~a*0`Xs8ry%^jP99M;O;^!@}p%C>3s1+FQGja(4@h{Y}`t`waI1 z1c^3_=++()?_hz~?9V8o0NVN?Jew^Dq0fH+QtW_3EdufRE!+81s68fph+`@~w&V2!#um zD0Ib9(8k;N6MwkHQ->xV70bn6&|;3Gd-To= zYngnkWjv3gX}^Al)nfdrV;W;y?z~JnZ+Kz)I(r-nEqjcV|50eMRnYH*80Na--{`Fx zEW1vK*X>r~rnRB7()6ULE4GFi8Y{ju>!e8Xh6+og|EaMe>F1N8ZGYe53c~VZTxYOn zQ_Xd2CJ57_`)CrLPJ-TfF4p7SULcBrr3cOpUHGy9UhcF$kYe=Q-kk^ekYkT*M$P{nR zBiFMcEIo1!jxg-C$dc-~t_wH@XE}v{n*uJe(^_OWXCyTSoB=owhhAZT{Q+~F27n8t z5vLyD6u^0qCf8X@yPCmQ1xW+vS~Ct@K) z&7_F)Al!zpqc#4i*foCxHf#S}2i;{{f{^o4#oLs79y7$d^XS5PtZ(Pdqu9JB3qxq>1+1@+zed|Gh{>ila}E21)O4rxbdeV3 z#E)=TXsun+=i-v{9mL^-VJpsvVi8ue8gMdY+YU{7(U@Y<$~AA!i-#tc=g=Pb<80)9 zvDgqjoiVK|jQSaJ325(+3)n$xZXCmFb{mcLKsmxw@ES6VK)LqiNd|(Ml1^$9#Vvc` zq6qUWK%82zh%yz=Lu&8Dgo+w5`x4(K=S$cm70jiuOCnf=zfDQ}ulF`hza+u}=P=$U z{A#(IQp>*#cS(6gOPgJ~xpV2{C6VeJ3V-z|hS7SFUx;Y?hw%G@s{bzhXw?@`*7^2F zy8i`Q`qGcI>36KOGv`wLmvA?jOQXINVPTGlpU3B=*1Y<&8-^3uT?KF~dhZdMDK3Q$ ze<{2@qk0*W2j3Fp7Ug)Sv*`YpP)6H^cwpbbvY@pRA$OZgzF%VjALFhpiuHMh2Txf% z!{e?_R$iJzhc63$dbxgkmA1A@TiZTci}5tmTg|bR2r$xTql=Qi76CYY$@DY~DOQ_9 zxnJWvCg0S<(95_!hjUh`Yq3&BZF_K5(|U@#A`->tS+wj5n(|~8?YROm!@;Z<#jAU> z3hrMKdvuYIMVqcd*Dx%Lg1^Pz32y%1$)w=#@IRYLoA_^m`+NKs!p;9ta9_he0dD?> z!F^psJ9}q>K2n8wND>~CNv84FMVRlRCSZ!z^@tPTOxWVT+T2i0Cj$kCD-oL=1xAT{!p_@r^6+f z<}>L@i5L|(>qZ4l3Dov6`-_E2GjoxT)3NKuSrK??FR;gK?Sp8%62cmT?v^Z|31GqH zClH3h@3VAT6C{1Ar$d~`i^B$xCS}ltQW56b7pPU#wJbNqYnbUu*c$!_$rv5K>72x+ zO^=PL!fK-1U)qA_p2o%QSg|H`$NV)V7`h*(Q_>BHx4uQGZ-}-Y0mcoxGUzUvYS@*5 zj}(I}oNtQoh5FPrCzE#t*l6oU6H+~8n&w&2{sWv|azA&9u-U4mKrqkJ5B1&0ea`;IEMt(HF z-~fG)h`ELBgn1qEW;ctV6&Hcj7@TxhNfWKSPC6z3gmYY9l#!2PqEV;^rp#JOK*rQL zf1X_#lh+|c0I91ZMkMYPi&fR<+%Us2i2~WAQ8DFP)9KDnkW)2>zdG5BGf4B}+2nm& zOn>qHFcaDTx z9rNIJ+;G55IO>=OGVWBk`Isl;mx^5)+F9EbZPxJ*Sndj=3fhCAx1-HBHqJ>(Mm&Fr zKrba$(8WZWen*62^-x5c?uab!{Yxuo{sw8r9CR ziB7v_Y0G~`b~k2`!!KgE(<-=`nQWR#lYbHI8D+tqUqnqK$=Um&jcY2RFo~2}*I2NY z>-j5&MAMm+_$$*IN`curoc8`ICW ztJ(#1t)R;O46DI`2C6rMX8!?|-D<$W4dy)~XWKn*D*QvFh^{jz@S%uK|8@ozdnT<# zg<6ccTZUjf)I)re<{JSKJ{XL44gStPUp$#rq*?>oUSJP z(l*6yF=38oS#b#e@o>=1Ahp`1>kmbB@y<-T{}Ah*nH(7_RnWvfe-wmoKwp|c;g7^T zr+FwSS7P~eI{Zj94}NA`+Pmx_yqjM{5Y&NeUIca8^rpwOf;)e9FSehe4``QlBlfb42munwPE|a)Q1L? zi%@ZHI?XEwDLT;Ba*-&rL2^&wj#z{2nItl?>SVMx5^NGhH_L=)MbXW>9~;FRJB@lj zfoy#2blUkuEc3m~Rkkl{1)YKxyTJR`<6}Im&=5DBQvbqQKXN)P`wM!`S<~tAU&7bl zA8FKDA8U6VGr0S#jHEA5;&S~>?P4hMq^5rfcc-0*g{@m;&FK{Jw}`KL1tDrSLC3+e zKC8c=dbQPJ@5Hp{i@osa#$wM4%dlxeE!o}!Sv=+D(DHoLf^Xw9Tt1a>`6yi3m2f=< z%nL`x)kWFf6T_e5s;h8~eTJ)UC0unCt^t*B6;;AjUR9N=nSsj>UiA{9_de%Q?( zvnQ;j&(Y1;ad1yPek#T~dn2FCbCS!fe&Z`dU=?Th{eeOFFef0!&)bemVm*~g!AQ~I zW;Pu@jV@P+NT=>Sj6Qrig`Q5c^I6eM!T{)sM7d6sHd^tk^o0d^XI*-E;O%hUdi^#9 z9Wa!2YP~EDQ>l#(ZNxnzsJ|}PVbDC$Wmw3XsRs2F*{G+pje0b5tM825#sQ6bMx9<4 z(na)}N|S}`FN&woB_ZQQ(G=W?lC$lq0~Nh>&92tVYS#Eb<5{El*{rb_&wX3wB-tYt zb2}zkyJy_2mSqVt;Zcs!rACK6U37$EPjx$4L)@D}zIL)><7Z64r>vGgFYant%t-bK z?U(2L(%vJfB1&mAVQ~N5hnCvOaMzW{ZoYN$UyaFs;#9g|hh}&(h3?zQNRd31g6*ZR zb8p1U7{v^+mSxZsO0t*1u0<2Dzptp+Z5Yt6ZAlzK3+<(MRW7PQ$9}ZkUWQi9c;*p6 zH|=E)QEv)GI>==XUBE`r`xhK!t5?sf_Q5l*VJt@giCN=e*{G7X#T01baQw8aj+Vu$H@Nlkyzp_*LHvp7A-&E=c zCA(k@LI#zNo$2P}O8SU~=yaH&d%1s#8i4lsT3&#e{98y*x?qydV#;K?W|FDtlTfV9 z)^^^FcJ2u`EcNax!FNPxch|%G8CIpwbickqDR}WUA8KV>ynkjqKTJJl5Lu)!*;DI7lh@TV%^PZ=EF={ z(NK$m8Y>$-R?n-JV*GL5tjpelPE?hPtCV2wg73vi)W4d)n%^hf=QU~Aa?8QWQgFL@V;a+xH^!ci%VuF#;bKc=)*^ERb8=cGt5t;k_@dS!=ku0+r>ms9Z zm3^y=bkwUZKs1B$o70h+U;?Er>3U7+`EsvXYJuVWN(GgI1@U;dgDO%vmp%Qt-24rs zkFwKt&3BGfx{Y9O`2p6n6$#YFReF17LY&Ljbt|XqH<3oU%E+LND0&)eT^8Am({LBF z0$U{wYOkH2l`D#lx#CHLodrL-N@$5OpS!ue+RQe-`Nl>C0pgop+bDoX?Io znu4o*YP?eI&nXNsk&B14uWjX(Y$m-L(xs%r&Lh4m6DZt6dZs4@!Vd(JF)HRz$|&tn zCbY+RU%opP8;Ya4ITPO#;OEUnCcZxb&)*QUFKq)}f!qK;e802bQTQE&U!X)hY5s-N zU~`g*?+)N};eHn~(q60;mpMD8JWJS_hX-kN%tO|!+P@wmZ?H3GE=;0d>k1FN?()b( zPJy+WF`ja;=nG!$DHpKe=ma(1Kf;3*!wKJCvwSP85w?Lir_K_2Yg4Onz z@(C#W&+A@_3SptayN0Z<%Z>$Ws#Mi>fd>?uno*#)e9gIdXh>Z7jX6T8ns%bMy=6V8 z&rIejAdS%7rh-qsWffgGjxRXuBO`UOZ(PCSIx;~Q!^csauS^n&;|f;#N&&M8;|kXJ z$#7j9f2-iEKgXT?7L+ld%k26V4G)w%#pE~1I|yvz?KdepNP7E%`mzJmtEswq=$l{_ zsy4bg0PD6JsWh46_I#5iC&5C#MMr~Vv{($B_2hIh<}I3CPln;L|Hu=TVE#lzRgk5F6v6bBD|3T_vShM%B(GZxxS1`AH#7f zFm6~^481Xu-8g?_?f8-)JS)uZBaoszfx8Km+1Tv|ZANxOhinkL)1jWv?oKh~{orP+ z!2VAvc3%RE=Q6~g545Iu!Wgjs`*@Lx-RKImN_u|4OO8q(_mx%HS>b(D*2j%SgaAZH zwO(cDZXn5LB!dB8`P)$ITNzhDHNb#aaGL{IY03@N&DnsJrkvExO8~Q&f*I68z&tN= zd%XkLUvn`QHz<)p9`_~%H^3;a`zG~ofIe}5lV&%N^Spl_`&`h>t#z6WYM{05jV0d@ z=^1tl;oK_o1x|0#8Y&#EQ38K%jSN1ZhK=O!#!_;K^p5+Abdc%qzP;|aLFwqhQ;ZKBR8&=5b;-xEx6MVD+T9E z9jq+{Hvf5t0*7!J4=Z^uQ(_YtnCvyiXpO&_cjAnag}!+Z*rY(K)}>MyYu2(<>lX+< zSW6hK6PW^pj)=n=w4KpftU0?G{`{ma@g(lKFu>1|w6jHlBn44;%%Q(IXXX3XZ zx#M`hy+KY*rFZ{3h^Mq`(PDf)&SioIE%NoSbi(e6uYQ;?pYe$Tr@O}Sla2GS5?RM` zXSCJL3d)egUFLk@|HEjS-Bb=2pUoEiYcn{-VCEE?V-59@fM7tJ1tR_38Ph2s=tf_ z|BM@&xd>BF1oeoN&E1pGIvmwiCGoT*kHWU0&S5Ap=10mHF>w^lZXrjBeyTLd)n4yt zQeR!-p zjczAv`woNlq?+L&2ZjK=)l^4qH!nt*vd)d94eexf`jT0gMX>}cIaL_75U_?5#*%Y| zQSSiG!%1Sv=Y>&o0mm@>MPXDX;1XUreO(we8!*Opi;`~(qhK{U3#jP$MhuYzB3eqQi7Bk5>+ z*(M<#2=FqrDtJf08C8K81&;yj&oBz!9&n+P*5XQ_u~h00cMRN|C+Eis*qsMae6$Sg z(vWfB2}5p(5XJ#n6yvMUIQRl1@C5=+0c^w90qzoq7x6Ww9nsRKr7K6}(_Nse0a(N7 zE~BdkIFH*H=&AsY0eoeHQM_Q%J4m;5_dylJ0;lv{PpPybCJQV7>@$THFEFM#?(KTFFIR7HhcZC|iPoq6?(l_0O>&$!x9a5d^%#Df;apF2NZ$XDR0#=QR4zUBQ8WkO)14g5&4tYAm z+NS7`zW}Q?MTe9DR&9z7c?8(jrf!U1)0(s>t<GG@z|9IYnsN02(vI$?U#+~1Q^w}d`7%K|Jtr6Pt)(vq-BN#g{H2oKFpSHFm26Xw8 zp$=sg2lS{EaQdw%Z%nAsHWt7oAx7JL1UQ3Xw9N;A{TW8vtOs1!05IAncSc1zrLY6k z`W^x_hS4~y0Oth*M&qmi9K$dgXBps<`hY>L?*h(X7{t05us_2f)&+nI>j4I_&I6pn zFe<@?&;VC%%Vh(qRS=%&QM1aH5ft{aY?U60^DfXH-y5m;Sda4e)7;V+zm*{lWBg12 z;1H>dpJ8x_!Hl0_aEO6`6=8rw^aHF20~1Yez=|+1(ewnY2m=#McfkHkB$#O0yb6b+ zjJt(V34j%4{8|{*39zCJ5Ca$D->jx577y{*Ls)xOJQz;>1GKG6`o}MTSDBO+nWEj2Z!g+cCMlV(e9K$er(Ft&gJ79F8Bj5~%(TR3|{TW6l z>N6?^P@x+f=*6ed%SmAvz4#YkjbZd+8Q?ru!05$CfMXa&Fa8d=q$XhWA{Qb9aOGZn z+MmXDl9Ay~s35Z!(?f$TIKcfrvjeamX$?EQ)d;H?PM12#&mfvYb8YM_L(`XWF4jJN z7qH^A=;OtJ6{kfXF959i9(_Cyul?sIh=m-~U+{H5#z3@3|2F?)xeIX<-)`+~A$zMiVIA zGBATVaG#DorA!5!z5#}+X~j{FlD_UDLvh4`_dA=25yL4W0XvIc!)bPc^!4h>X>btB zdS<61V#}W(P5%y(K25;g{8Pi|X#$9<@o@5fMJBq|wq|HzWj18!F`TBqA|oT$410mC zv|5ErsYCHTn{-L4PaBd-#ehbG(Jk+KYhwmQB z5*dH$-$Q!UeJ0bdUFM}_CY249xHTv7WM5{|`PXS_59#f^tP5xl%OF+DVYH`*99wq~ zsyeV#_(zX85kB0P>&BcXOTG>}V7CEW3w4Y4y zY?=Ds!c0wt5eIo+bWjOXeS;9^_F&^qY{^haqu^$#ODOV#oGW<%q%LjYr}BRtkKh2# z$ggPetUMYdl_m!z6ww!9#9D`pI?n$K>?F}{NPBD4A+ z%^cRkXb24&j48TEvvU0e9hJE8!pyEI#uC&f6)%Nm%eN!a=x=aJnI#4M#HI4}p_UVQhXq z;Rl_2H+4Ub+iSD+`Mj2B{!|&^9fAlfLt&M&6v#~K!ObixVz6;zEp4a_NgjcQnU6>d z5CKXA<3e^UU*oOEM6JQDl5L&*iPHY*X>TsWzt)V#=D+Zt;b?FE8~?SP?9Gqx-`(5Z zjL9ZHYJ|N~3Fo28jox-J-5)AnZj>L;!rsjH6|U;76}KvtCQAoo%sMJ;&+bS513^GN zdm8+@tlKUEft~#{LocE^E?c7{HxMCiqP=-Ds^MqS#uefCs}y0JQyjvpBhBYPlvC2& zozA~5Yxv}A^C586Ak&4K%}pd9y35|YVPIy`!NK(Sbs6mR36gM&>`$iPVKUBjW)V&+ zIDX$ipw-M*l4<%dP|+93ux`oayJBxf7pSmv$+T@4$Y9!Fx-$&8-c-2UEVGiydpIaC zZ7{VNE=PzSb~*2UT%S%4$1(5vM7la$1_ri3Ty-Xmo+(7bH?^h>x0a_}GQVFHEhZ+z zk_KjNi==l)$o3*RnJ$cg+^|P7i8N4qr(_CClabZFMftcMKM!JEE|_SapC;=&KeaQL zVTe3Ng)Tp~qXY1Be2N&iVKl|BrS6gA-@)X{t@kH9`Op3K+aU5BDZ_jjl^S#q$Ap5a z&uH3i#g+iCMX^T8)HZXFts*c?R?L|gW+5IE+e~Yb76K1bEr)eh*G$|kZx5m;BV|js z{N3Jh<(~@O>>dCUNs#SERi(I5kRY{5rm>@Ng8VHKKaon&KHpT6){K(TVX5!~kIm=X zq-bA^nZVYZ+WF%>Nhs*3Q(MF?XKbarZkdj9OX>>B4Cd6^TT-rBUcGM@( zKclgL9zKY?-;jZ>8qnY}ZT@bjxN>O0=Z~&QiEqeo-!I|MO`C%MdX~bY+TO(gmat-__6Sd{rK=JPo;6UoE&JJFDrk<`zD+h1n!o?fh=|Oh1DAA zrj)Htj*-4@9fyEFK&NIcQmd)DG>B>l+`4fYE8R^lsl56eP)7OVWbK^ye|2#Jqs9F7 zAhfgr4IT?yT1!%C_E;Hj96OhW(z&s+wwM{ko=qAda;;3=Y~VGX68IS<+Wb+}mVF!b zi~FQcSswnSD19i!z9~04Z9(BPgfK52NcZ2AUw~mBeM^Rg^@%c=up>&zbnxSV=V$25 z`=e8gMbGsC#v&zhob(BQwn*_VyHOQgj1hdhgBHb4X%0br4PCh(*%_s4Lh0jVsC^SO zhks6w-GunkYrWG;GuHGQ;UH zO2!rVW&rIUFTX|wmQ9f1VH;W-6-YvcT!E&QD}Vwm7;ID^Y=Cj-?e(l+xMEvHHnz5J zka6z)1l4Scnp$Fl zP8Ir~8!ieIv5+FhO;OWV{mE%En9Z5~hh!>BYvx{1&Mbiqyc7J&ok z>=Ze#j%JO@lL?yu{JX!wGo0{Oc6j~-fX;&2c73YIlD;`x`+Ir+(EquTYybvn96k;D z=k@y2)v2;RR0H}cyG3Hx06Lr{ee{%^=mFkU587~njv1FIZJ^Z7xAdoN(_|=;WriwU zq1h@~9X(Vj9nE`|EYzATR3)3xpOUM?jEV`zd!~Jc!g?2#GLY9@C`rEEwU~HiWifuj6uOF{z+Q8VYdA9U%einodi0MbkGv$WVFZ*fBx1%FVf?~=q z0#^S_;g4w1qhUu}+*rR)5J2A;QhOZiBn}$&v z7rnnD4iSpke%gC3`WUgOA35Qz7EuRvoQW1_c=<| zkxRm>1@t+WtOMLP5Txc-aFvPqgJclBTE2B$2Jglv{DqE)K3irkPI6uy!^R(!1phA~6?o0MJ=47ad=&rd5qhQk)V#bm;@zuSW~*iiw4{+HRzqrAxc zm)T6cH-xZ*t=n3O6RF;Y+02H0*lcD$)_7_~9bU%C;KYTpoo5=#S=n-C6`qixPs^4w z-$5ADTV?f~B=|86rMzZX&g_kPDa)DNUsDH>%3h`mkQnwdJ?m7i*XB7sWxV>)N?{=| zpKp7{i`Tiu&8+sGs`oJn%}&}7Bx>gR7VarW16c` zB;Nk;2B5Mr&E>CIjcHozq>O34)XdnIKJ0~SOo08Z`%;@R%{J7}EIU-&hG4Gd!Jg>0 ze;L#Ku%}^6b45=!SlK|&qT$P=A7(UVl5$)Wo22xm;$_nQUv?=IU$fe!eB9cwOZgdc z$*|g`yw%#UOZhc&WUgf`G~1;V7g|&F3h5|iPo=?Zf+wGv$Ac;p}@$tCFAjD+maLO zW1R#{T1-rNizK@Lo~+%fn0aepCEJqTKw^s&3fN{_G6jiwt-}khLG|g{0O%x__b`l0 z{?WszrH;Rv-0uSbQ^;mY?}n8OX5i9RYIJ_v!!R!yi*>9rFX^ZbT!sa!A-Oh*oTtm$ zcG+59l#Nk*@C;WJGl~$#6{T2(-J%}QEKWHI9o2TZa;kx;Wg~?t{u!o{w)8nJzLLvY zVOsftw4>JRWQOxQ-J$i5Ce+b{bGy^Yb@D1+eP5r4t$!wFw)l&l=OV4X_lMPo*2=X#FZR`$!JO!%jOk$}b{%b$gyg z4~FA(GoH9HCo;SN@J8MI3d2}n>Qb0HccVQY$g5&mG;PSk0sew$+Vi1YDa?tKxCxWY zz-W~z-a|ESlFjwIDo;_`&9Jxl(qOi?7+uLiwtF`cn`NAE=w?{RUfQhy7P5VX-6?-= z`;R0ZI<&}kqE{lD-1eqAAIq2QJ0xQNMMX_SUCR2Hr5A|>`#;8+z8*)1K9Pf+!(YYJ zieugN_!_=SVOya=wfj|?y;TOk{4v5#=YsJ;WLgOAg^%E7)oC4M^C@5+2&~U^Hw8n;V&t=uLX>FWv_ZMLN*K?yc7vy z!F1k0gs*-0x)&>~3n;8hT=&v&!i0&Ys35uMSrX@F)+9BMWV#Q9AD3Q0S}8{LFA>5> zcXq-3V)|^KY!ifKsxg}}*DoJx2dS=|`O>%GP(#5xuuZ$$g~ImBtyPNySX&)|A9kS| z`{hxOgFsRW_l+PHUU*q(8JKVobIYSHH2WaVv+p9VX`Mkc8kB&3f}3e34|9$N{q^;{ z6ofctBiuu+`s+U+4%1FGRQYaaV}@j9R-P%J>!jAUq*==mXD!DE{09wQLz;>?`o+h6 zB=z}JRHvqgWYy=b#rm27n!Q=W7XTDPQtizd_m+k^dXIG8i=xiXBSiVS=; zX!Rj^s?GPnKIDc8!6x%nz-dWw`{pN!eM3^K08JJ1R~&v6FuqF+#3RF1%e~e*SiCDrzu&`AH_Ep z@ltL8=C5z!(n2V|t+VCuC6MCV27EA(;QTy`*8WwI1+ICb4vF zi$`~D3kFwqTt+*Pn43k%HltH#dV;jEnyWb$QEhC5#Z62COo{X0&(W77C&N!Oe;0`E z2U*_ZKf;#8Q}Rja9a$f7hk!MtgEeSa8-=18X}E;Pk|Aap?4JUm?nB@jZN)pX6Ky*w zeVqTn-lqc=zs>)9?;^`vQGL;-9Y8H#Q`@{v5|WVr+X5M7c@f+VT4s#5YJZQ zcmIqfbCm@S<;J}?&0L6PXJa(n1to6C4eoztyaX$;9k*0qI%P{6SK!Bs6K2D}Z;%1f zupgSJwnYQk*bo#mLS%gHWsrHw8Rm$9UFYy8`SRpKZLyvKo!OJK0doU z_i{m0R8mybi=v_-0wTVIhKfez3n>*T1t=&KA|Wakby3kMsUWGPA|suzpVn|@?gfO zE0jB*fuDKQgee|}!%AId?|TNb6gAr|7#1z)BkE-fhTA9%Hz@K3-D2q-hL_pSuSQdU zgz%oj5D&jnKf2i1`8e4RYoVDqM)8m%{1%MuaFYZ&^KibzlcUM1pi&n4u zSnI?`aSk8TuEduTe?Eq_+h+ZSPqhETwoTs#OtIzq*amIe72}|(stx`r2XE0*6VM{Y zM}NCP8_z!-g2f3fLHKbkS-GWZ?QyM2(b^)|uF1hZ<}k$Ojno&P)Fw_i6(I}@-b6@e zx`8=MkHg=AL-GRnkeDsy<=FME+jT?0pj&C=K7&`-pL-sAwp(k%a<*;{E8Y4Ya0l=x z@V>C}jBBd%GAz}lTMvV8MfkhGZNMYI+%QPS3k5iLR$h7W+<6vz$G7Q+PhuU7)920l z&nLAZHeaamBphulKMw38522nj>X5y=jCfeSm}l=TR(K=M7Ia2EKT4cYpFo`RyX(}m z&c_!GjR44#XI-0d+6_k6C*!mmZ^llHZ`rmzEFQIQ z*|r1tKJdPOjeGJ0Xv0fGDSYQ2y&$K}UJTVxGRC**;7{M8? zZ}M*- zNcZHC#n5DqHhv_t_>62*uh@wre^L=FfBC&Jniak?dfJ`ebYFm$Oxpy5f9#b*hQF~=DUfKCknL$?0l+IP9<5~Uc%#2MJ?NE!oJyd*btZi!PE=M zC0 zD$_Mb4{g@I@pMq8oHo#Iajm-YOD$Z{5T&PmrHxj$R~3GxxvK*&PQb%DWlH^(7VU)U z6IiwF8@zjk{T;XOv3^~y&-z}Arh75p<4k>6U)+Y*X!_`z+q6XG&#JH5w7!~F3E{u| zq>a!T7`{e#P8(|&JD5F58ENsn8YiiF+Ht*L8uuK6218o=Ws-Mi9W|g&uzue;ZS#OX zXN&V2b;}ua*A4oBpS9VBsHHz^0RJ6m_i<|8tTs9!8e1D3D-qm_2mKh&Q;%je3_#h?V_BjP5t;HuC(g!4dnBb zlU1&R__M0=p}y}5d|$y^|Mm)gGoIX>oK9&NievIW9wK$aYf8rqDNB4>6At?2xc)mm?ht>IN9abgzQrLyYV z6kgv4!LM!Lo9w}Z2Yb^zPQ5HPB+yvsWg05MdQldCLuHzN{bo*PAB=IcSMT0z^z6jD z_zJfi4W|g!J{O-We)ujv%&mq_8Q@WV`s;V`GTwkrs9JG1FVl=JR&CJv)~X;I&nE>A zZQ)NV?fPw7q5C8HV_W$(Dl=Doy_J7Q6+F6wPgK@c{kDTo=4PYzhpWczuzlob$^w1K!`urUZ{<~YJdCSq2zjWG2P+5k!-YH$HUGVkzl09fcNgLRKU|?07EB}dadDe}`9A)raZ>wzAD_S*PK^%KN4?D3jB}FPE2zOO`kYtz zT#`|>;}w*LV$xpap_ZDyblOvo?`r58rXPKkW4pZSyH|OCO7PcfJirovi3F=(?@6Gr zs^|9e>&(Ux`ukfv2vxkLu-TNqrAcxDUpH zPl; zdKFwGM?w}|5Z?x*O}%(55t7|<4k(91cTUh39pb~)f8F%k520_p^g>YOM}6NRJ{ey~ z{Stx03oLIhIG;?HIhZqO=~=!lw)1|Jio<*4JA9la#tkb>(qiE|eBQub$_?vep5f=Y z{>(c(Gpwj@Var+UP(!17WFY?;AZ@-4%?{s18*ul6lZN4Fjc*W7t#bz9Tl5=haQ@h* z@2KG;CmoTwvNf+hTWpkb@ZN_IMlbl|5_zwRFjjNbPLhzIAFsjLxm+J`m=78XQ@TYY zo5~#BE7byh)?q&Cibtj3OcH#r5FD@Hd6*ATrs(${=F4C*^~=Nj%Aqrn&mDRD zO2aJJSND0B=lGxNsp$lyq?%q0{2Qt1b~hsVei!1K^>5$h{#M@a zViWa62D)e}r*{$Xt_TUS>On`)J3r`)2>wq`Il{;E^FhLLd~i{A$P-6!`dO=gKq-#s z-yY#tDsB3JT2%gZSL2G=Q2LCabcoSJJM>w#{7SXIE4`LBTFx@(g*w9hv(YB9p7gQ$dy9fZPt^yBYg8VuEk9_3?{N&2j#Xf&qZ zc$81USLW|O%7>2_gsk>HNv7&C%TDSWQtDg%@KJ6J@726Rk(!!xGSFGSe=LZ@aHndK zgq(N9Si%zIeLkq)G-T=3;B(*S0j6yh=DASc@IHT5`A#2N#~;RRmKW>zaGZy*r5`@g zTW_u76?g!q@B{SAq^f-%KyjXj166PRkoyUr$4A`Lhr$NGx8S@b9v|n{{3e#GmOeF~ zCwCUOU`dVV5xn&IAMvYw2S9G}^K)MGQ!G12{WfYkMVS#6k1y54kArbY5?%fgFW?U# zqaOb$AEDn;k0nI1ez=~G5e2r@^Eyv|#3zr#P8Y1iCfjq?e#~Rd$&f*3#A6syH|sYZ zaV=Fj@FsW<^P_#|WGVpU0N>E-&1$IwY;{o`YNxw*k7yC1fa zCw;<)O~gYGBH6o0HW}rP@?yUwxUgtv5q|oepJ2LbH0#HX@xgkD#VH@pW()KEH3eL28SQmif^vb zLsBhzVFUNXobh}EmN0*s^#4+n!9k+t_EYRgJp7rn^cqMi#an1aXqCLV8|n7>G)7Xb z0}Fr9haN}2zN}9@j+yZ}{ifr5fuieA9p^)ay=lT+0wci|#tuNvK*L-QWZ>j^>^SDj zm-U~I^J!OT5MOiDeBO#3AG%1RiQol&#tA;W?+p}1Z_F4=_5=i7Q3IiEW_E*m&pju_ z4i440@C09?9Miu!!3U{bCjGAy{65d4bI)(V`Mw1;*n~_u@UPYjPx3&Dc}B*pMocOE zH|n3BNlK*-ZA>x(>##3_rpEMXHIj!#EIeOr@j2p(rFLAoY4uhk(<#E zGd`J%_q&NjU&$g*r!& z?wfTCw^v|I87@Gd^f_OJtGdF^d4z52T-*Y{XD40o*-1@>y%#(RN|$68Pp~75!Sz0b zU>{lx)1rQbFM%_8p^by1(x<#%p%)6oC=W6CK{}8;_YOi>xIL^%g!Ll@F;HovNRR#k z&CsByf5E*cJPV%eQ#j5y{`$wwJa||`$omV<>xk>z zy6Au>j+Tx0(lIc2?*e`3m+1Qb`kXKMmA;=t!b;mcyS5ygxs%QZp(v4B>_3E0ecwzc z$OgUOOCDvrA2Boq810&gsT-+IAr8JlLL}Ngydn@#WulUS~ z4IaG*%RF}6aiEOsG!)G5TewGm?<+q3xLY^`Ze@xJ~{H=C`pIs9+-ow{N$xLd>EK$-Rb(eVC9O z8Y;t42HD4={;_SHHiKGq5N5AGpcnZ)w=6pFw3*$BM{c73gbt-U!aLXLhrh<4OxC~r znvb*lV0K(0kcd)6&aDf0tI)^)^vn6{M-fjr}|47v4 zT^RTOm!@?@VYG7^KdWP5#nwXgs%=ZldMRZyv`QZ6m=Kod_B^?D=@Y#YE`e}+(_ag} zz3C?zg$kqb4mFJpc9dBZTsV5!mZjSryLD9IA26;xy_fLdUcv{zr4K&CN4pI&3Yqg_ z|F`tHXLzvMPlUVvi_f)Ccl@nCa|R3DPW|IEn3&r1zGwLupHF4v@dG`B!4fMrq8aXC zj@55C%LmV|Wa-RNQ!+;S%(kUC?>P3IV=GmzDmEAH`F-2cE09jFIm_?q8-Sav>Znuc z82BDLV0M?^5%gNGpf`K@5B2gN?d3nFf7i;N#Nuh|w|rAyypecOV5n~Xj(;|EN3WoV zdifvG|N4$^>-%o6priVZ@A;;njWh*Gt?ugOzqglvM=$>adO#cBHukMvL5F(zPxSJi zsyfw%Eh}54#{={1g;aVx)XV=!FaKk`{7>}q@9yQ_)64&SFaO?N{+E0CUn9TGs9mMU zo4q35>g7Mw%l~dK|IuFl4}1BK_41$SNtl>2}#Wm7Wps*+`Rq+S@rN-Lvenop6A=jqWA%33_#i>9-4 zo^1+aje{vk@em6_N{1kS+YpZiJp1V7UK5H3V%#f3S+$q@xe%5!)Y3Se7=BvQSn#%+eIf>WBF;)-lYhD3mn~_bz}mZ_k`iR^si^g}mM# zol{w@w^zqh*6i)sK9%K-@G6?dI!3rRO=ZO+EeEH<_@#UO3|2A9yK)9=8fAh1+$gW= zsVvv(wI33!UR@}}+6DFNM%z3}r?QsO?gdj>$7uJC5LP_KJ#PwY978o~^(7TMecg*f zSkYL^xnNc~*3ufxTE<#Bf?3;GU&ivsS(<`a(YWc1)sOQ>qZRnYqjEVDW1E9n^F+^v zAeMKfS4R+Qx-z_D3TyVav<0zNf8@-YFuw2%^TR4x*xKgGfw$P`O3#Jjdf~6H?t_7N|(EV9`*lx|ecRrg~%X z+n`$DZ&lq}F%HyP)R>0FlR=6fD*-7{c!jF$SKKRArA8@7NSn&rRo0>M98Kv|@nWUO zLPNx;*KHQ-nNtE%RIRHgpT?;IQH%fc87voxqI z-W?05RCinm)hQkaRp{?ojan*MhBP0R4{7hssZ?055~$aEnKs#yvQjeHidCs8w_3^TCjB?2-I2C#Q`$@`b7Sk1 zkRmN*)g8B5;YHAzq_m`rgv_Knk~Xu+iAftLZ^%eUOI){>WvsL(44xV~X=O^L6-li2 ztK1PgxbWJ`-}*u=SY< z8JTR=y0kQi2V0lUR;Q#Tveb3!lUQ;J0x~uSWM*Zu;VY(uu4VI*GFB#KY*=rdyI|S% zy3YvH4BKRxc`{{oV^-^Ws;iZxOeQH5w93e4rDn-YO0b4yCS_&LwysD{%DO&j^R2y7 z7%Ce{5a*aeblmV2fos|9I4h&BqF);T9VP?Th;Vynpe@*@q?Ok7;@7Av@l^(wid)my zT7!b81q9+>5R=;5k=jB8rP`5N=3<4I?V{JQZYcUzd$Pog9v?cdSN)7s)}BAV_(|g@ zSgmmg5#F##0W$1=qC_s603$YF(rh;)uMD#;Su!DD(qxjcWQmpJ#`#egg#S+zWkG%d zBN8gOSz{;pPolp7KY^11B>GPnKWRKg#M-R?8;3+jjsVDtn=oloY}^D0vu0BXlL977 z&!q7PuuhH-u)-5CDZuJC*`CHB3dysL>LHq%2H<9$43S2l%@0zbN&rdCjtdxX&CUiN zZ;cO_aH%Lm8ns4jTtGlP<#VGP)@-AN;DL&e0YqT|&}?%2czB`1|3*=$jUr;9J`{q- z%`a}eq0jhOia-IA0)W}Eh(iDrMYPcZj!}q*(tdF$5?B5x8&d26 zLH0Dg;x6Xu5#YuqGaBIdrzcxYYt)(6s$*8u`&!j5U(<80!-Chc6hD}u>li}lP`x6d)^;@7ya6oOk;*6zh`3Zc&euz;l+q= zYQuA~_-l9BHOFO`jiRD{t;+sz=&H=0FWAPu|Oe{+_z zm9gwj&cbuCjR}m&$E60a4cH27e~2-!^EP-2P{4W4>PxUb0!BTBMgm5ZVTuN3;tJaO z4+^eeY$33%lCfA|)@zJq0mG}YkpV0}h(!#Ly^R8Zfrrpi|DxqS#1%NO=`+T1yU;?X zp)kJDU}@V~Lt09O8sn*PU`?*+!Z zf$56E;(@I&gj@!!aZ#8%wiGk*6x?)RM}LK70y_uciDF=xH>`D9n2E*sC~P5+jaFC; zFy9Z;GcYVj!H_YrtYAEq4y+DQSUu4FY6w(J%;Oq`r2?C7P#9NDEc#}J`2!19C@dW4 ze=8IM@;HU%15*1jOT2P`f}L0GKqe^Ft6g!`a4Fzgjv zGXMkMu%V{#WWRw6Q((ti5DZK`2!X(ZZ!4^o_#uUL05jh~P0c1Y9ZSoF!0h)FmI$nC zfa1XPlaL4W{t6WUMt+T!1Ll4Mc|fnT3Tp!<0y}~2w(qgw?qXssKPxO5nEDs`23QTO z0Ty>EtO;0)EuMCu$G=#*S+E7oR9NgsSEwrU1EzCYrP1mX)_#EQG_;o6)0mi1Qtf`O5#ys($ zS|qQGf`GF3u=fhA#R9qx=yd`$ z2evdqL11c=%F_FrSl4Nll>igJLKk>oF#Q09f&536g#*w10!4v=zaky5xm{(AKztd5 zbpa3lr83_EP@oenXoKfm7YYXQ3n&=qt7^<^Akd<*aA2&f#-e})eKeL0%VUN@s)V8uNes{qz+Lk)n*g%C6h zgQ`elSwQwA!hv~Dqb9>KR$kCpEU=_PW2wNLH_$@BiZ@XZkXLK01{m_T#u^9@Y1mc7 zQSuI2z#CnE*oK1PDR>te0WBZmx)GTD5zP0Ez$nKBR~9hw7+L~o{RA}zreg=971(@S zW9}oNz-f&|0MC7nmIQX;axe#2*@6lIF+VeR#x!?#nCM|l#Z+P{9fA46HiDVlM=?tn z-a1Ji!+6ISX6C+(dyi$VrQ;a)9gkVgkD0QrWaj)Unc56w{>&|LGWcY0ATHA^i9yU_ znZhiQQyD*qso8fL({g7rEj5g}c+bLwHH#_nvzUp`W#;K~nI(4~qc266ZT|RNM96%m z=i_tm`^lB45wUp4X!`3o)lJWZLw_ zOzT|C)bu5oF_$pcyroR-TE@(Q(U6S~y+mSNQXI{A&W)JrZ)8dn!<~|9zPuiH$ zP{PceB~0yl zFt<9}S!SyFp1FGcfaTH;Xzm}FrS2RvRsRa!&NQ#zq1f+eN~{5D;cx$)xs?Bb!PLPN zuMVc>|B3KFnbHA_`3nX9#nh(1nJKl4nfG@wQ!;uBPs%HJ1BJyZiju4-u5DZ~MZ@Go zzFARh6=ucU021P&DB)NzWC6>8?iNMyvS6A7W&>M*=PZh;8H)%{4@C*_P|PtNn4aOU z1F`{%;x_<7fyDz9)g6nBs6og(NO1}D#O&&+D5bzApat8&saGgU))kolE8%HIK=@!q zSvXkH>IY-01?GDxZVQKDz8|J22Z7e%isC<9amg8>Xz?Qzx0unW)fk0E`YJ9_W07vG zqSOF=$0Cds zlF5ooYar(7AVu+*f(6GEMJWJw09lA)!IDSuybAOFRf>{&m0~V}zY~5QrkE-s6eVf_ zR!0jI)Bfv}K9P9KH*t}|(icPSVugh*QOspapiC5GL}8T$%#BjiO4|)+&ZUZCU8=Zt zE>m3NZ&EBBD-^BbHpSAApqM<86t!u!;u@B$upD$=EzmCo&7Y!}re~wJjw+BZ@g2So8>#2im&e$=!uM z+oibF7vZ@sU2*Y$0>YkB)Xt|Am-5|;+Ob_^wVi8bN@MN5AR>EBXp zJn#RI;B7@|$5N~Gkm8byC00lcYFeZ4oWn|=gYPMpsP`4VuntXJry%<~Z&K8lCdIY2SAy};(vkyKPj&HKP#@$zhce! zD_W{uu`K+}ru51CQ*mW~E9%0(72egUD2eA4Q^`My+6EVbXOr6HFYCJjptR+Y?P)#5o_wUp1m5(-~4@tUc!?3t>PH&f+x zVX7K78w-fps+xB-cGbdFB_tdxoN(1#2lSt#D%0nvmezTy8X2KlLatXe%VO13falFU zqg6{YmSvvHk!QJTE?SNS4g7osjQU2$qJUVHodb5ps%rIZs%vvR5+@*W0uloGN~}~? zLP4PaDipLzb%{r@-7UZ*Ox>r^fJPL<;sSy#3}wZv?~Rl>b0Z?dVT%xx-f z&Q&e3J5;6U0hMR(L^I=RqPzg>y+W1yJ)&wIkD%F$RJU+lb*U*<-LjriwTM#HrC|>i zwa=@rc`vA}v|QDS_hJdR5BybCYr=ZaquQpr7Qdys`X5wXtcRd!jmql}t9_zt(ZBDh zO7?rIxfEFao~l+HMYF%JD(>&Au8kk4miUiV*Y;!TfS8l2T7MF&=tflu#9FZkSPEq}nP}0JN}#8!rdVAy zQ+hwm;y*~^6fSJH1U@Oo&OH(4Vu-pPxXKAK#EbUrs z8cv&<**6CZQ0(v*0qcPsz?dzXlDGwl%He6;qPgU6#oBMHrgQ;AwjmOW&^llv&?{F{ zBCv}+eLHYF7MZ}3?V9-<{82kJC3c5qvD~j&Ivz&ti!@8b6G-y}(mbJ=yWo$1Qd3f~ zc&!9B1FK6krM5(K^|U>$xmZiFOfJ=23ZBti@nkfMDbrjs_iC=CFKJq5g{DUB)7<=C z(=@-=HML~Frh2@oskv2}rQt1&cOBBy^cqcVJ*=rQM>Nf|R#Wq9H6`RdbmM!P+Hh1; zOY1Zx=L5~H;F#vx@`_W3B&AupK849Q)E7czWxl4ZZv7``JZcU@!x3X zoNqLj61-pHepchnXSKeatym3zhp_K8<=pq0OXp9TXEMjegNeHZTDTHn;ci`nxJ&b3 z-uK`Lt~8G1=9W?1Ei8~Lk%8P?7R23hr*Y;nlPgU#x!c04xs6B6;cng$T&bDQ`?N=L zCF(lfCwvL#-pjBfvW)kSSk65P;yISM{EBmHc)#j(C@_PYt(n{-dNcUlyuarb?%uSO z54LXSF0DJcTjwL(-M@&tFrD+}63!0p;Y###DDVaDlK3Kbt9yy}se73#o|QK4*0CR( zNN;kb<4w-9tGG+@0j}g8;BLi-xl(r+4|5;kxZdZA_j{aMk78%5j`!*K5VfdBVfCD+ zpWrSbCpjxQ$@?@n@*&NqAnO!&Yx#`3ls93=>@?>dpL6r{&#@H)ECDtG-J3b9?bFQ7 zo$$nd$<4a&JErMs`855ucT6+Y>{swgw<%QhJcd`dO`aB;H3y4hUiuR!K6!j>B)DVA6wu~uS}#AZSp64D+WWr)Nc z9btt;dqGMV739JGqev9I$0*o?_X4lag0TMX_u*TCyt)I~CNlSc@6~e>rK` zWMr_CbmK4mLs3&_h2y0H#S$we?w43Cu}-4@N)iW!QGcW0?`Jvou_AfAEYPm;`l}rk zu9{8UYA8oPc}DskZv99ooU?{vJy@m07Kt`XvWQqH(erk}+a%WCA$UcqKzm;<4tG>I zKynYGKr1CS{z|0+&Mnsb0!3r|@p8k%yd-){v`X}om@m<;z!4_};w3MT1=`bnE5q%4 z+1%bOhV~Dv7fn?DnNY+R8^Y97_T%1;(K0+wqP<3Ttd!yQqb18I$b&hzNS!Rt7aHO7 z3m(jmJV2~F2r-ii)U)bM;kGati|uA3)-JwSiig=K{Pi4+(?1r~v8#3Qn38fDBz8#b zl-MP4KMEjiye=4MyLj3;EDNl2YT#ez^=?q?MO;RKVvJ!D+#s<{;yH=!66s*1bcqJq zdd_?85mb-|bM9fU1&#`M9lLZ3;3C`*jEWk^TI^Fdkb0q&&6)46Ky6Ut+by zW{KegMLK(d&qRtEJ9nXWoe00!GS?Hgk}_0(w7@3_K*7#~YN0G3S7M38Qi){}_e=B| z;f0`?YqW3k{C zqdcp<{%C>ADA0yY6lxi4q!>6|Vwl8miHQ>HB-#rc86^sI?vl@M5aBkvrYXxP02;|Z zzvJMS=#oZRfIIF(QM|82KZ*VlLnIbUw3jpKCQ-0d(3Z13S_F8>0__QZGZI>*I(U%g zG75Q(6pF-3%#oNYF;8OHD3PvIqENu*k+U{NDB#>gyKkZJ9tHePfM23TDx|l~?{UrD$S|A2Hct*IyN{Ra=R!gjt=s!-RM_1$g3k9;{gaUF< zElg+zM`6i5X`3-lCNewhLbU|yRF zs+ZU%@tnkViPL9_bR`mP_5za=M2$rad&a2%yQ84n;OSg#kY*BE$ z#9V1w-YM~g3=>}r_Wy*joiKP

!g`Tp_r< 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 delta 131135 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%0D=|{>_ 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%0AA8XT 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 V4L)pf)}-R#qX&ni*}tg%e*mR28|?r9 diff --git a/cli.cpp b/cli.cpp index d1bc551..05734f7 100644 --- a/cli.cpp +++ b/cli.cpp @@ -1,61 +1,59 @@ #include "cli.hpp" #include "commands.hpp" #include "config.hpp" - #include #include #include -#include -#include - +#include #include "libs/linenoise.h" -#define CLR_RESET "\x1b[0m" -#define CLR_CYAN "\x1b[36m" +static const char* asciiArt = +" (`-') _ (`-') <-.(`-') (`-') _ (`-') (`-').->\n" +" _ ( OO).-/<-.(OO ) __( OO) ( OO).-/<-.(OO ) .-> ( OO)_ \n" +" \\-,-----.(,------.,------,)'-'---.\\ (,------.,------,),--.(,--. (_)--\\_) \n" +" | .--./ | .---'| /`. '| .-. (/ | .---'| /`. '| | |(`-')/ _ / \n" +" /_) (`-')(| '--. | |_.' || '-' `.)(| '--. | |_.' || | |(OO )\\_..`--. \n" +" || |OO ) | .--' | . .'| /`'. | | .--' | . .'| | | | \\.-._) \\\n" +"(_' '--'\\ | `---.| |\\ \\ | '--' / | `---.| |\\ \\ \\ '-'(_ .'\\ /\n" +" `-----' `------'`--' '--'`------' `------'`--' '--' `-----' `-----'\n"; -static void completionCallback(const char *input, linenoiseCompletions *completions) { - if (strncmp(input, "nick", 4) == 0) { - linenoiseAddCompletion(completions, "nick set "); - linenoiseAddCompletion(completions, "nick generatekey"); - } - else if (strncmp(input, "web", 3) == 0) { - linenoiseAddCompletion(completions, "web start"); - linenoiseAddCompletion(completions, "web connect pm 127.0.0.1"); - linenoiseAddCompletion(completions, "web stop"); - } - else if (strncmp(input, "sound", 5) == 0) { - linenoiseAddCompletion(completions, "sound find"); - linenoiseAddCompletion(completions, "sound lose"); - } +static void completionCallback(const char *input, linenoiseCompletions *lc) { + if(strncmp(input,"nick ",5)==0) linenoiseAddCompletion(lc,"nick set "); + else if(strncmp(input,"nick g",6)==0) linenoiseAddCompletion(lc,"nick generatekey"); + else if(strncmp(input,"web s",5)==0) linenoiseAddCompletion(lc,"web start"); + else if(strncmp(input,"web c",5)==0) linenoiseAddCompletion(lc,"web connect pm 127.0.0.1"); + else if(strncmp(input,"web s",5)==0) linenoiseAddCompletion(lc,"web stop"); + else if(strncmp(input,"sound f",7)==0) linenoiseAddCompletion(lc,"sound find"); + else if(strncmp(input,"sound l",7)==0) linenoiseAddCompletion(lc,"sound lose"); + else if(strncmp(input,"cerber ma",9)==0) linenoiseAddCompletion(lc,"cerber maketea [key]"); + else if(strncmp(input,"cerber dr",9)==0) linenoiseAddCompletion(lc,"cerber drinktea [key]"); + else if(strncmp(input,"exit",4)==0) linenoiseAddCompletion(lc,"exit"); } void runCLI(AppConfig &config) { linenoiseHistoryLoad("history.txt"); - linenoiseSetCompletionCallback(completionCallback); - std::cout << CLR_CYAN "Cerberus BFSK Demo (linenoise + color)\n" - << "Доступные команды:\n" + std::cout << asciiArt << "\n" + << CLR_CYAN << "Cerberus BFSK:\n" << " nick set \n" << " nick generatekey\n" - << " web start / web connect pm|server / web stop\n" - << " sound find / sound lose\n" - << " exit\n\n" CLR_RESET; + << " web start/connect/stop\n" + << " sound find/lose\n" + << " cerber maketea [hexKey]\n" + << " cerber drinktea [hexKey]\n" + << " exit\n" + << CLR_RESET; - while (true) { - char *line = linenoise(CLR_CYAN ">_ " CLR_RESET); - if (!line) { - std::cout << "\n[cli] EOF/Ctrl+C - выходим.\n"; - break; - } + while(true){ + char* line = linenoise(">_ "); + if(!line) break; std::string input(line); free(line); - - if (!input.empty()) { + if(!input.empty()){ linenoiseHistoryAdd(input.c_str()); linenoiseHistorySave("history.txt"); - processCommand(input, config); } } -} +} \ No newline at end of file diff --git a/cli.hpp b/cli.hpp index 0a99e81..b228bed 100644 --- a/cli.hpp +++ b/cli.hpp @@ -1,5 +1,4 @@ #pragma once - #include "config.hpp" void runCLI(AppConfig &config); diff --git a/cli.o b/cli.o index b88d378d20547c78feef576645587677e8fc402b..28dc4c6fffa5f1f91de08c3345f1cd5fb8b9094f 100644 GIT binary patch literal 8528 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 delta 2891 zcmZveZA=tL7{_OK?~RurZ;Aqy6`_K7yo+F2iX19Q*VwbH#-jh%eUOIexV)ddhvFakxKP6#uNg|VL!Gr~40oA50 zCS^``a(hg8*8Ul{HzI!Z;=YNc!{3hImD+#IL=wXyiJD`i5R%E;uSa82#w1$e7fvUr%`F zy(dqEWRgoruA`n5>>{Mc9Sr#b=SxFEocGpsW@>!kTUQdNcAjO0giy% zKtJ~%0e3*FU@2DA!r0af7QvnhmVgiON-Mz!Af0C(d>Nbx^TrgIg_T}oRK~$g&|{3s z2#5n!y~?QIq@nLu9b!}lK|0_7m;rl)QRxHIp+k&{A54SxFe>3=XdFaG6~vBITNo7_ zZ*hAyh)t-LGb%;gE`vDY)Lcfz0@6pkf(=Dq%_ES$ntR}Oa2CW>pw2KV)1VXk&ojju zZKL3eu+gia2^<6)!5&ZnPk_x}JxJf}GB)P{@DbPm#y~ppeGnn4!KloGxUp3FIfBXz zNaLsDTK_IRWed%33=)^AI?AYwfZO%o)3f5<0VrHrYJ^dFKkj`YgL%85u=CWDjLM0) z_fSSwF&!C6)B93wWK`-wtlWcrK-q>biMaGn5WNqE0w|ik%&5c|Z4W>^VjEpnz5Y{1 zUM|K-iEwWp_xh<9cHNO#kW3rUbU2%SG_xjb2=@iMI48`bo{?rHhd3ooOLlR@GHS7l zQ1TU_I?Lp;u#P25n&J0x>W4>dYq3D;v>zsmJjT<_-kZLWK`_Hf -#include -#include +#include #include +#include +#include #include - -static std::vector splitTokens(const std::string &line) { - std::istringstream iss(line); - return { std::istream_iterator(iss), - std::istream_iterator() }; +extern "C" { +#include "monocypher.h" } -static void generateKey(AppConfig &config) { - config.key.resize(32); - FILE* f = fopen("/dev/urandom", "rb"); - if (!f) { - std::cerr << CLR_RED "[nick] Не удалось открыть /dev/urandom\n" CLR_RESET; +static const size_t NONCE_SIZE = 24; +static const size_t KEY_SIZE = 32; +static const size_t MAC_SIZE = 16; + +static std::string toHex(const uint8_t* data, size_t len) { + std::ostringstream oss; + oss << std::hex; + for (size_t i=0;i fromHex(const std::string& hex) { + std::vector data; + data.reserve(hex.size()/2); + for(size_t i=0;i buf=fromHex(hex); + if(buf.size()==32){ + for(int i=0;i<32;i++) outKey[i]=buf[i]; + } +} + +static void handleNickCommand(const std::string &args, AppConfig &config) { + std::istringstream iss(args); + std::string sub; + iss >> sub; + if(sub=="set"){ + std::string name; + std::getline(iss,name); + if(!name.empty() && name[0]==' ') name.erase(0,1); + config.nickname=name; + std::cout<<"[nick] set: "<> plaintext; + std::string keyHex; + iss >> keyHex; + uint8_t localKey[32]; + bool useLocal=false; + if(!keyHex.empty()){ + hexStrToKey(keyHex, localKey); + useLocal=true; + } + if(!config.haveSharedSecret && !useLocal){ + FILE* f=fopen("/dev/urandom","rb"); + if(!f)return; + fread(config.sharedSecret,1,KEY_SIZE,f); + fclose(f); + config.haveSharedSecret=true; + std::cout<<"[makeTea] No key found, random generated: "< nonce(NONCE_SIZE), mac(MAC_SIZE); + std::vector ciphertext(plaintext.size()); + { + FILE* f=fopen("/dev/urandom","rb"); + fread(nonce.data(),1,NONCE_SIZE,f); + fclose(f); + } + const uint8_t* usedKey= useLocal? localKey : config.sharedSecret; + crypto_aead_lock( + ciphertext.data(), + mac.data(), + usedKey, + nonce.data(), + nullptr,0, + (const uint8_t*)plaintext.data(), + plaintext.size() + ); + std::vector out; + out.insert(out.end(),nonce.begin(),nonce.end()); + out.insert(out.end(),mac.begin(),mac.end()); + out.insert(out.end(),ciphertext.begin(),ciphertext.end()); + std::cout<<"[makeTea] keyUsed="<> hexIn; + std::string keyHex; + iss >> keyHex; + uint8_t localKey[32]; + bool useLocal=false; + if(!keyHex.empty()){ + hexStrToKey(keyHex, localKey); + useLocal=true; + } + if(!config.haveSharedSecret && !useLocal) return; + auto data=fromHex(hexIn); + if(data.size() nonce(data.begin(), data.begin()+NONCE_SIZE); + std::vector mac(data.begin()+NONCE_SIZE, data.begin()+NONCE_SIZE+MAC_SIZE); + std::vector cipher(data.begin()+NONCE_SIZE+MAC_SIZE, data.end()); + std::vector plain(cipher.size()); + const uint8_t* usedKey= useLocal? localKey : config.sharedSecret; + int rc=crypto_aead_unlock( + plain.data(), + mac.data(), + usedKey, + nonce.data(), + nullptr,0, + cipher.data(), + cipher.size() + ); + if(rc!=0){ + std::cerr<<"[drinkTea] MAC error\n"; return; } - fread(config.key.data(), 1, 32, f); - fclose(f); - - std::cout << CLR_GREEN "[nick] 256-битный ключ сгенерирован!\n" CLR_RESET; + std::string s((char*)plain.data(),plain.size()); + std::cout<<"[drinkTea] keyUsed="<, generatekey\n" CLR_RESET; - return; - } - std::string sub = tokens[1]; - if (sub == "set") { - if (tokens.size() < 3) { - std::cout << CLR_YELLOW "[nick] Использование: nick set \n" CLR_RESET; - return; - } - std::string newNick; - for (size_t i = 2; i < tokens.size(); i++) { - if (i > 2) newNick += " "; - newNick += tokens[i]; - } - config.nickname = newNick; - std::cout << CLR_GREEN "[nick] Установлен ник: " << newNick << "\n" CLR_RESET; - } - else if (sub == "generatekey") { - generateKey(config); - } - else { - std::cout << CLR_YELLOW "[nick] Неизвестная подкоманда: " << sub << "\n" CLR_RESET; - } +void processCommand(const std::string& input, AppConfig& config) { + if(input.rfind("nick ",0)==0){ + handleNickCommand(input.substr(5), config); + return; } - else if (cmd == "web") { - if (tokens.size() < 2) { - std::cout << CLR_YELLOW "[web] Доступно: start, connect pm|server , stop\n" CLR_RESET; - return; - } - std::string sub = tokens[1]; - if (sub == "start") { - webServerStart(config); - } - else if (sub == "connect") { - if (tokens.size() < 4) { - std::cout << CLR_YELLOW "[web] Использование: web connect \n" CLR_RESET; - return; - } - std::string ctype = tokens[2]; - std::string ip = tokens[3]; - webServerConnect(config, ctype, ip); - } - else if (sub == "stop") { - webServerStop(config); - } - else { - std::cout << CLR_YELLOW "[web] Неизвестная подкоманда: " << sub << "\n" CLR_RESET; - } + if(input.rfind("web ",0)==0){ + handleWebCommand(input.substr(4), config); + return; } - else if (cmd == "sound") { - if (tokens.size() < 2) { - std::cout << CLR_YELLOW "[sound] Доступно: find, lose\n" CLR_RESET; - return; - } - std::string sub = tokens[1]; - if (sub == "find") { - soundFind(config); - } - else if (sub == "lose") { - soundLose(config); - } - else { - std::cout << CLR_YELLOW "[sound] Неизвестная подкоманда: " << sub << "\n" CLR_RESET; - } + if(input.rfind("sound ",0)==0){ + handleSoundCommand(input.substr(6), config); + return; } - else if (cmd == "exit") { - std::cout << CLR_CYAN "[cli] Завершаем работу по команде 'exit'\n" CLR_RESET; + if(input.rfind("cerber maketea ",0)==0){ + handleMakeTea(input.substr(15), config); + return; + } + if(input.rfind("cerber drinktea ",0)==0){ + handleDrinkTea(input.substr(16), config); + return; + } + if(input=="exit"){ + std::cout<<"[cli] exit\n"; exit(0); } - else { - std::cout << CLR_RED "Неизвестная команда: " << cmd << CLR_RESET << "\n"; + std::cout<<"[cli] Unknown: "<>cmd; + if(cmd=="start"){ + extern void webServerStart(AppConfig&); + webServerStart(config); + } else if(cmd=="connect"){ + std::string t,ip; iss>>t>>ip; + extern void webServerConnect(AppConfig&,const std::string&,const std::string&); + webServerConnect(config,t,ip); + } else if(cmd=="stop"){ + extern void webServerStop(AppConfig&); + webServerStop(config); + } +} + +static void handleSoundCommand(const std::string &args, AppConfig &config){ + std::istringstream iss(args); + std::string cmd; iss>>cmd; + if(cmd=="find"){ + extern void soundFind(AppConfig&); + soundFind(config); + } else if(cmd=="lose"){ + extern void soundLose(AppConfig&); + soundLose(config); } } diff --git a/commands.hpp b/commands.hpp index c141c34..c9175b5 100644 --- a/commands.hpp +++ b/commands.hpp @@ -1,6 +1,5 @@ #pragma once - #include -#include "config.hpp" -void processCommand(const std::string &input, AppConfig &config); +struct AppConfig; +void processCommand(const std::string& input, AppConfig& config); diff --git a/commands.o b/commands.o index 8f7a2c32ec3d8e07cc63e8cc6139927960981779..c1a2cf1f11c3fad02b934b1333da6645e473dedc 100644 GIT binary patch literal 26312 zcmd6Q4Ompyx$fF~2H7AgD!&H9_>%+(D1-b>66zq5pdkrWVoc&VAdE7KfPjgK<~T-k zItG#hhPKvvkJxzbVTh(C#a8opDoK4>5@^-b+j4qsGg{Bd7;K^`>X2aOzTaMJ!!Tfy zruX)_^JM1T>+f6N-}=_y#+>@>FJFW)CNX^ICkWpd89xSm@rlLPsg|nAQ9rv)JS&^p z;G?C3@l0PmW#VJC*4sAK^Jkte&RdA#~B3<==WV zZP2S;UsGCEZ{1k+w7sg_YAsyo-=a5@r#gk+!l6fEwO}!0NxVpu@C2zP24CL&By@-` zK6CI5$9MOG&=m@)5!I`Bh_Nleghv@`oy^#HJQv|hp9Jxp3WR!DF1~;3XR!J$*Jo=a zm)9!0u0N)8^*^F_-P|1Hx|t_6`*dMv{;HGO`*o~cVXR4!%mego(@pb+tT3CBrn9Nh z2D8g5u?-)+>DV*=jh%ZAGRKmwk?d-vv2jmwFza|o3Tya87utSVH=+IG5Y`MoittGj z`Z{&2_%}hU`Sf{f_NgFtCjKpHL$1$POl5AF6antBb5@17?>5@+(~(!8W!bOm5us-($%3?!A7pO<)^#-V50#kCaXM37731$lbpc zvdxm4`!m>)Hz8XO$ra1xx*TZB$YHr0dLh>vkPGzVe={ssD`Zw}`Ewx`_$Il?#;R?8 z$K`_E)O^x|nh$>{C3^`RO5&Z3xMO9%4u8A>lQy zhaY9J;*Pr5>?1n)%-L*qF@aa<~)_i4#HT&ZX@DJZ?g>628 zZ<5cFKV#TN&~r(s@L$-s6n4B~V-#~t#ecuQD>&OqZFY!P*f#@y?qjBFud?Q|ne50h*f&gueRJ8>b%aWb?`wXS38FsekbO_V?v(Ec8>U0{Jq5d~^v8>Q=!fik3U*iN zYx&LGzNcV!l|KAX~f3U*iN!w=Q`e*^!p?CYx#$`eNVye zDt-8&TK^2UFU2{PKKxM4C;h;_6!TU3@HaL81<>!OaUG`m;3?Qo8`phO!=8VI-JPF4 zw@aD9nsS4V;gnvdH!ei0xE< zVr_c1`_FRodBkrSW18}OzBrff6E>jcBbHO1XX~#_U3zbpGM!C{N8D_^jTOhIunjZT zv0@ME+yR?!1)nsJY!&l}Yq_5f=D-J+v*K9HAp@90B68W8eR6DH+fMF-&le8+V8=u3 zNR7-QcE)CBX>(9XEGs^RKH@Qt{;1nm>;}KYSAm{Ic>2r(;OVMkw#w7h+|}UeL-Rlg z&CN!$_oIW2@4t8G;HQh{^nCi_>z6;B5B^+*FTbDI`1+@=%3pu#O8(?iCN26bx17|EH|2F0I3hsVM!V5s9!5JXCnT)p}QGCS?^f#XXujZkWLAo`beTxBWRchG#c;d zxL*GXIut|O@Ff~lzpd`^>=3LO+UIU^&BvM{_l@uFS@ni1>0v6ngH?J(f7ne01&QmzKQu z>qE8iQs}y_Lyb!+8egw9NCnT9ew!6Xlijcuc;_VShCWG-Kj?(rkZ*oOrF+%!kV^Ne zR5WD2W3b;4ZP;zyyP$0cZP@GCZ4a~J6I-)gCv>r1-_}rD2SVJEjWe&2%p{4^Vkq-G62$6nZmTb<4e!UimlZxZ~AqSF0|@dw$y3I;OtAO2^J% zZx-~kVL#R)q|bMgUt03+O9!FLkagyJkcaVgA9Uz>CGVL_cRyfS`+DON(zA1-V+rY) z^srv&_-)J&9@%`%74|Pn5?^{v+%zb)&Eqz=$`O~ zz?Ty-j_5mIQu_AWS+T!QVm;h^b8|k{$P2Mn&cm8{0oKmBuEFYGwt+@OJl0AJ{=-+? zDr~aC&+hx@4cqxW$ow8;CL6b=v0|*LkL~=+OH1spb3NoDPqW{@V1D}gV?gI}M`H|p zYi#?Rf0Yf70Y4woe8=ZgT)s!NSjhd!vvq;0vyUDmov;m0V7&ezh;@)}YrdCE_Tn+< z870K5+Kgn|37e7cp2vKw`L4%`IJIr1_tKx`W`m?OctD5r&-H8`Ai9)R5L1-t=7C(Y zoizV|!d&qR8(>%i^iKk!F2z8~_k18^e~in%9J2d-!7ksu(9w7{uv=mso1XOk%&m)2 z&}UM?0*E_7TFWLfx7kV>*BT^pR3whv%$8Rh-X3`cQB{vo@*W`VTeQXU=zss6g`V| zpnJTiBi1RNtzr&*falYk=*-}AqU)Q)SB#G_*OiDh+We=*J1tfbkN)$v7IQBl#w1`) z`Uo*5UX8Ci_k4yk1X}Z*7cys1e8pUOX&&aomtS6zR7i8(@SM0Gdxlb~gZgDaO>co? zN3)G;59_c!t|6Yf)+Ts=0=Y)mWDOheY(2?s@*Pd5e66P11no$!)(hPCC=M6Q;cJU( ziow`ZUHJFm7>sxsVMh#pH-V*7+}GyG>mL-jJcujt``OjJyD)$I#ph1BGp8#QenT;u zIdUjYQ=jTuALErtojJez5yf~%j&CbsGve+IIjYYc#foptq1eo06#4jVELx4tpR2Js z3i|?H_BrD7?<2{7c$(rk)jcoL7!2C{c1)R!`Ayise~#ORv8w4E>j&&!fgRemFZU*3{%XTI5PX{AY5xfR$R;!&XlrnqXEnK?_Yv{q zd9kjl5bLV7L+h$nhSpVqF@k)AVuQB+{D5HZ{L=3(-BaWcw+wi5e!6o#i ztqmv^jy3=PH|D+%g9R5Jr`>Zb^aY5fAQUR{~6M`=0 zA}Sv-2iNZ@UshA%T=)K5&Ja%aq|Ba4$0<;C1Z7zf|b*6gu(*5Z8>9HJ@m8-SlOF@DbwQ{3SjVC9xyKrzZ$~`|a=Bg1lMZ0lks_^^U1c z@6Ei9b2REd^QNyu^F8W^Ax(D(P-Fzwteh9nc1j~@7f9YLf8CM1w8kN%vrvlfiqAJ9 zzIT1$%en#DWQXm3v@1UIWvP3&@q9jbT$E9sC)AtyIoipM3)DwF(*KO_3nE`z zuSi(`YimS`i)x!-ZV$3cE7nxcA)oG_$YxXrOUv_2H4hX7u_JejI)p=I z@RbVae524M*&qQrPZD)C^gyp3?ClD4tb^!zVCzUxNApn+{Hg-7YJOED%1Otnzlpd{ zGC1H1g(#)uH`O+M|s&D#AYXsUax z3lul77pDE;&CR(u>v^XQx{dguLOBO-6fDrii^MUkmu}O)JV+vr}dRd%i_;1~1oqU%}p# z_N89%%_d=As*Ce_Rt1HT)GyJW0$81BBbzT9goyvl)G7tSmDO0XVcSUan2 z$cA@7FW8I2rp6N7i?y=stTyajLgLsI<#GE_r(BaI#j&ZHuEwHC`*hVG5;?68;IARj z3)KyUtZU`a2I~YiKsKR#8Yhd!C{L1ZPy0Y-R~Jb;r)fG;4CZ5!6oT+XYZCJB(Px>k zS2NjPJ#Q0wBfV?!lIL?<6Hjz@VV6T1l4h8XEtXhX(hPQt`m2CVlxDN3jWK$|qJ`=v zg3muf9!k?(O}5u~A*8P_Z`_%|>Zv$ajllV8B+gl*Fb1PBUSnK0b>o`JAH6!I-BZT+ zIS|g_5L4B2pr7CzC<60gV})Z zej1C8DV|;8EC}tWy=E_3XDjFn`=tRIa}?WY+_`nSL+V-3c6Q7I`Xv7#_;cbcCnN-V z!C6qE6dIa{^PZ3pcI*|D(b*6b(R2fPiKMe3v?E~p=%n1!(~`q0i@Zf;%_~GErSgog)NJ5M!pn#^Kq(g;f*vc3*~7t4b{>56LqdX_8;gE@qDxFy1AWVI&0T_q7C|m%?4cJ?1^HozYU4LbE4#R zuH^ESB#o4B|4fQ){LG_7oOAH8vjBbOLdIXT(RjJJ`2_rv>zedE7EkfX@E0aE+tF9T zbn~uDSW8j=*Wl0gRk+7sF_|yQkqv9-uz~s|l56c0HV`t-khv3icI0^wPu|8}1^h?U zFI(uMHaowFSJze*;9D6m?~-t@s>RU?E)(uC&AUi<6?d8koEVq&@5`==+YvvX&o$wk zvDS@y%(gGAzb(MJ)w8|yO&9!p5$pW44Ru4Fd-sQm6w;j#RM4Q@T>0COZKb~rWrwFE zNJ_U$R=QtAJc^J)8$91BeKP~+`SsJ-z(%Y|oC`7rWPos2nCMx52bfAsL9Ae4`TZiAs)8e0tOECn&q z@qYYsxbF&K1JU5kb32X-s^d#tZV^ z!MiU``1BY9Df^uXdA4@)J&oAo zRbZWU0`KZ=$Gb6GK>L^+*PR&5-YCa=Gl~?~9Xhb}w^pp#7H!+PCzN@2;rzT$VOMr# z8l8LSEJl-;bd9qI%=57gpF?L)N3-k`a-8}e-uzkY>P*CjOOO|9#4|}Zt=Xa1;B8i`V5!-I&gTft8O z-v4SxY*~af&X)VS5Lb5U7@no8Wq6*ildi5p{0aqsbe@p(;j_D3&$Bb*L2KPMcIGnP zS(+i456ueMdZ<)lhsr|cA4-&@Gwbke#5dXJJ2GDv+SiHqgyxTb?o*0$cmMUdT`qZi zw<3-2J|u^BAB3*LSXe_N-Xl7M?_%V)zF-}6ybwRQcm{ie9KE=)%R;7Tg|QzDH68U_brB9 zehArI@@?ITQtWHxsJjKvck=9losjaTfeIT2Fq=&p>a7Zr_rpc3X9^ zeeD?2zn7;qY+})Ut?(c6MOr^z5ckV%a!i90y0>Bv^didlq3!SG*ai>k*@5GwSomjT z-$xh^Gw~i*JMs!K|L=oe{s_EM{#|H8<7OI*Ygn$Mw$s`#VGPrlnT2=G6gIWNu8V32 zg>P$RRGw11;A z8T>Fw?$+*uFVNi)-kl@6pBFLcN#Y4(t?PNbd!}OziRilzV~wG28GRej_e}JSai;cd zm16rC_J1_Sm>6RPy73L~%Htb)uwHsdn%Zy(cAUT_G|>2RykH(|eSr;)udQgm4ZKl& zeHZl$bfFDNkRcQ@(0YSpp!gXtP3?1FZ@L!iuuI@~06Hg~&O+ZIs=h_9K40iugfs;}E{T!FLYghgBM{>WyMw zl8<5^-je}8-$iVvF-<%~OI@VyiARN-&@zFmvy3jDwU{(mr&xxSAWX~uYF7^{Cp zThjYj`%-$xhSu3*jKiU^{{PGP_x*y-JY>W`9b%y#F%j?6Z^nGQU249jj(2hHfq6~y zJI^e$sUV1@S3obcW_=24@83t62mUkEe5`jD-UkR~MhUi~eXllGX>m*2e_@@ZzB40< zcLLP+Nl>43+lxJ|5{0#>P6^$P{RG|jtzs>Eg5v2sg71Sb3V&xfSJwETvlTiwz@A{q z(Afd_CYsz<_d~vX$hi>m<{{=I-eb){wxT&-jiG`E@((pF+7G40KF+^SqEFus5$DG| zC-@Q_tMx-!hgTPb*h(>0hrNZ|?!+09ok^JMLi(cL-nZv*JkLkW8;|&?_HE>`{{p>l zLFYIuwr@Y)XZ4LkyheQTeDd6zKCCfjVogf-Vb5cX-oUzL0P;+LY-8PnO;hi|rnQqS zcnPSzK)nZ(TyC5<(0d*9K8JP>JsvwWw_Xptr?f@D2-5~CsR5_#iN+HX>iA){CQxS*1%C@v7Bbi9o zfom~pOJzQv^hX`T8{znd?=>;!#IV6^c3_gyX<~zuR$NJEz2On=G`3@MOjA1BJGp?d zi<84Uv)SO}u*=!(+!U&KeCq7o>C8Q~g0ZfM@cvBZjtFbXW|t#8aR0MWRAqOxf}GZ9 zwD&}ZpUz~Cn6S=F))EtTIFlWX3A>!m9I*=C=6A*#4rH*7*l;|%W2tF>ta31uIj4mk z$Ydv{Dfnxio@oh;^-qgw$z;8^#WjIgT!bT&?Trf`MANu%Zw5OV7lS{MI2RXjC4)Jq z$FyXz{^?=88Ep6M%JB@=8XwkUVh7{n4x3nSyn^S;@i9j;*bYNX2Pha~2GNOO5Zrgo z49A}%xo3toWw8F4Vg2cB_pC7IJa%>#$#ZcwG3cEghCg{~xkI^}#tz@1Tufu`JCy!3 z=DA}wV~uwzy++n@CvH!B?o5Wtni5JNnj>k&xioezDdMz|Iq#0?H?rQl&HeM(xn#v- zWEYds(wP#|IFGfaM4UCUo|KpaX{o_9tvaH?cBoP={Mr1#9Zva#*XL9gyRi^z5{( z;Q68)b`j1cp9BrHFQb&e_9C%Y(jSzi4k_%gEOkn4$nnVfD>Cbs^$wlnm4~{ZK4uh! zbp){$J5b9lh4%)rld^I&h_wYN$Aj46pyix4UQ}ne%#2g+W3zD~g?1y;Kg^Xf6T;Bz zim<)1RAFe8rGrug9?wa7r!2Xpat6Zs(=zL#?$644w=DJgaiY?k%=*DbzZB-wF^7Br z&-mCj+3VSpWtDb|fgVG}^P^Sks;Zx^y2rpmS)C0vs_bR!ECxIxYmKeSR$E$cTW5QQ z%`LY*HFsleX;pdkdRDtitC*INnX<}WZ$K4;R=pfepIl$M&Q@$IwHO|*Rtr~GZ>%a$ zHgE#Bs0t#F*4fH){94tExbq)zw$mu+{kUJXTp?%y7< zO#Pgk$#Dk&_mQLeFPO#4!#Rv9UoOgHz~5NyYi0}jD91W-Ax|OZi2nQU5aoce+Hbm( zmlvWv{u|Z*Ni6v3qoA?Be1n3151nq|6Tx9rd$%YrLOJLU@i!YA0Q#ij!j(R=IgDyw zEXvDy|D(!}&fyJj)ql@dl)FWFAb;r^e{(tgTk0qU^wu8)DPomQGhFv)^oI|OrTyr?14!orgKSsLBD%CpkD;6rhFV;AkNx&_zl={9cs==_Zk` z0fJOYC7glE!+^x^$poH0415&ny+D#D4oKyP@8ac6cQQ;FETshaByc(K5nv&332-5B zH825K3jSwvw1fdmkXATa@OOu*zg-3rzZZdPfxW;=V2?<*0?FUD0LibCfs25x7&s3C zduQQqrGdr36~H1O)lUTye+j@sU>uP6ivX?$dJ#W~zkZIEb3iN7y&Nr_K;r8t5JM-W z4M={xSLC+Mw?)WpIZ2_tq&Ffkh}k3nco-feV0# zfq6g&kjBdvj+S&_DblGNEeXJHqn;l4II!2i^?a72r3+Yw`X@PB8i6#3Z93rKt&1(H1U(iuWxN+Xc!l?zN3`Ljhj97yeO&!g7!-p1Qq z0aCkOfu{v_2|OUMQJ@<^=t7Y~riPXoz6 zdN^7R0?8lRI9d(>sa}h~9Rh0vRtPK+NPmDw^$P@M1Id3bi(`%+C?U-_=3I{8_Pz+D_|OX^ zd!GgppGSdY?+%WZ79iQXiKC?vNcFY|tORBtT@ECZQ zWR8{uAjP9N-~+&mQ#qgKfW+r%Ao1A+r2Y>BiO+)^Esa3p)5+1Y14#Aif%gH6fH^<| za04(LNcLpFXMh){@N|d3-2xrJP?Y2TlK#DrlmZ})7c-FfN(U|hCIhLz2q5tl&e4Lu z!&mvb%+cZjQoUZ_d|)du7`O#!0#*p57q_v*OECk9KLe2Xy@Fss?cD-<1)dgoQeX#= z_&f-txYr6KK6i_92ax#O!qHM9@{55KAB#9z3V>u^Gmz|iAIF?*kskxhML82`F9vA{ z>fvwo2y?Cg$iFZB(PAlW-y zpcg@a(ief`hn>JI;9(%?u?0waYy^`2oE$AXfTUM5ko+tTNPdR*=Tz*+piD&?cPgr% zbpolMy+AW?IZ*X`An9*5ko0HZm=g}HL4RQ!EqWl;^I*^rx`E?R{~X7hULfi5EJq9O ztW`d6xy1b)sQNpQ_!xu}k-uLScnMh)y_==rED*hFo|Y*D0`7;BFw*Zvs+%hseiVtmeb#)cg{Wzg*-OiF~ujHwcUY zs{I4i{zblCmynzqEbj<+h6l@olN|W%3hxP5?e%{whv?uk1cr^qMcy5fT6rs*xy6}e~nY5X3a z-ihDV+Yj8X$nM)O-j4e5-grg69DgM~SUzs(G$`_E!&&?e8XPkexoLLGY?RKrGE0#U z-gWpc^mSL`UBPlk!qEieBpgl%mfZ;#@!XMkG!gX^TM~n1XHsKQu{iQnVPI+q2@otBdplv;W%C|%jK5~VAh_&vU|lYXt8nEmltiFtA&97_9q5sowl zup5J(KJSb4Uqt#9k;YYl`YA(Dp!Q7$o{kpfZ;SGDk$yv@Phk8~eeFE%0a1PrCI|W? ziS$Dvos0R4>TBn7uMofB?^l9exu`!$)c;>pALVOBdZ(z5D-ZQEL!@yXqJF+D+W(uN zr%*W@UprSV4@h62`Y6}VO>>K_&T z?-c2ui}VvB{Y#O~5$SG`Hi$HCvDDB1pfn~7T)(KF=Mm>8`T5^_=sRBOWZHS>9Mq+> zcD}hylxyd)HJJCPTsvR=u9lw5=^I3S?RtOXKq-?;O8V1JVzmKmYpnfbyb%^edp@U;hd4$g zfb^mOePjouqXOt{3n+g)fS)G<^oh0F2zkB({{#y|pTU6gI|9-_#dz_rpBkXw>k~(o zmjt9=Mm+Fu|5`wKWI(z#pucGW{n0S@r#B_Q{=W@q|HAwuy>0JT!rM5x+V%D-+@n5)(kIF*i&T7gY5hE_)tGIs zuCwAs(w1(ove)O2T{aIjaV3j-<*V%VR$Rj3UlXmWvzOaywT|;S(FZwIV}}1F=cuXEx^>vHN^7D~rDy^)nE-S^wDrMx)!?oy0QbP=8uCdjlswn0C zn0PmkVeAg_7p9GH5E|k^OIKG^_!1bW074V(@D=%ljsBW!BlM>T91_ zXdKdsF|E>8wWhwps@`Jz6_9IWl3^-se!0f9>W%f*>eW_Uqp$HVpz20p4AL$B-P$ix z)@Zx?b>dHpRQ`9<8dfPt-O>`Hc`{~Ltu!dCXk)FZudQ22Uy~u$`Q@m_x z{YVE>a~F-yUG=Q3wpt5aA|TkrKc;N2uF^_Y*V;zpuCA`Jp%6X-TLPzRZ4{!_0I*B?)>2z(IsVOP#DaAr z^LWmXwuj<$Mp>n;v^IaOAJ1B7_(sDy&p52r{3Q>P6am9zX_^&k%OBBYI$ou*k6m5W z!&lBk`9nWM5UpBkw%@+#XJdzBSaTUmvcWuu8xWIR!5G*;L)Ev>IDu71$= z3<;)A$brIrU2dt9CyeP&+g2^L)jnmbT}m$&EivWR)Z|rHt+uaGi|6?jSJwoTn(F8s zsY1MXG-kp5cr7WQz?fcBTU}ImlvV02p%YZ)T9p zS{n_&{Pksiq$>TUkVRt|cI^02R!n0w6VX8a>luz;Fr8o?kg3+^V|2 zZu|z_aP^Vle8kA~ujEhX7M0XlK42V=r4i%>ED=pL8|x~t6fIkquc<>NCI;x2uhPU4 zD9@O`Wa&KXDzc3+b7)Xtq|j@4es1_B9&H?JJ!=f)Hh-zf>gNGjw1~A=`G@7NxiTIx zb7(?pGl$8l&MPDJ36DW^FE(=L@nhnfd35Pggj38C{)93y5n_6v4FPP9IdRx)ZZ!dt zkxgR#O$#fUiPYu4CJXsF!uir{`j5mKnpyIZ?ce*?3dtia?$bv8`HWwv@ULaH^*Uhdy6qpbd!8XLAR0r~z5#<8_A+PVKOE0Zk6%d~mq?^%wk z;uRPF-y;>s)i+uRjLp?ICsmlWy0&^f)^}er%EubyqsI71#edWNMn0>w&cR}Kj?tt& znb-q)d4B&_kxE%sBq|M=pik0sBq|M=pij*sBq{hV^rtqTBWq1 zCnKKf*VoJ&Rd?P{-O**np+b5>^R!XT(}tQ4JsI(Yy2jCUjYE}37aE5O@r1?NnoXOm lHMZKi>Z;O8d;K%kr&3j_siUZl&PhX6ZnNPhqk6*pe*koo;=TX? literal 20328 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 -#include #include -#define CLR_RESET "\x1b[0m" -#define CLR_BOLD "\x1b[1m" -#define CLR_RED "\x1b[31m" -#define CLR_GREEN "\x1b[32m" -#define CLR_YELLOW "\x1b[33m" -#define CLR_BLUE "\x1b[34m" -#define CLR_MAGENTA "\x1b[35m" -#define CLR_CYAN "\x1b[36m" -#define CLR_WHITE "\x1b[37m" +#define CLR_RESET "\x1b[0m" +#define CLR_BOLD "\x1b[1m" +#define CLR_RED "\x1b[31m" +#define CLR_GREEN "\x1b[32m" +#define CLR_YELLOW "\x1b[33m" +#define CLR_BLUE "\x1b[34m" +#define CLR_CYAN "\x1b[36m" struct AppConfig { - std::string nickname = "noname"; - - std::vector key; - - bool webServerRunning = false; - bool soundExchangeActive = false; - - + std::string nickname; + bool webServerRunning; + bool soundExchangeActive; uint8_t ephemeralSec[32]; uint8_t ephemeralPub[32]; - uint8_t sharedSecret[32]; - bool haveSharedSecret = false; + bool haveSharedSecret; + AppConfig(): nickname("noname"), webServerRunning(false), soundExchangeActive(false), haveSharedSecret(false) {} }; diff --git a/history.txt b/history.txt index 9198e9f..727c8c0 100644 --- a/history.txt +++ b/history.txt @@ -13,3 +13,59 @@ web find web find sound find exit +sound find +sound lose +exit +ls +help +sound +nick set +nick set platon +nick generatekey +cerber maketea +cerber maketea aboba +cerber drinktea fa93d14d8702e215e805098b5ab58c518bf082c6e882bc6952674750b600000000000000000000005167bc15e8 +sound find +sound find +sound lose +exirt +exit +sound find +sound lose +exit +nick set platon +nick generatekey +nick maketea textual +cerber maketea xuy +cerber drinktea 60551f937ad549d2aa2492e05ba684acc67a90f95ab713bcdce90200000000000000000000000000a86932 +nick generatekey +cerber maketea mother +cerber drinktea a13f5ea8ff23673d45c7e43f690752e9d48360a00a576554b80829668888a1e3bcbec311c5c8afad373e62289c57 +nick set Alice +nick generatekey +cerber maketea Hi +nick set Bob +nick generatekey +cerber drinktea 930bd444ebfb9794517067f83a0c50ec678ed8b2632ba7c69201f76b62a43b395457eba05939b7c78ca6 +exit +nick generatekey +cerber maketea hi +cerber drinktea 1d5068faafb248389fc305fef3df85d9bd2cbc93f552cfe77a7521ed4a1cbf27c985dc48865f45e13b05 +nick set bob +nick generatekey +cerber drinktea 1d5068faafb248389fc305fef3df85d9bd2cbc93f552cfe77a7521ed4a1cbf27c985dc48865f45e13b05 +nick set noname +nick generatekey +cerber drinktea 1d5068faafb248389fc305fef3df85d9bd2cbc93f552cfe77a7521ed4a1cbf27c985dc48865f45e13b05 +exit +exit +nick generatekey +exit +cerber maketea pidor +cerber drinktea 4c2f53f936e6d576e54e5a0ae88c9e87441fc77d852c0461b5cfb8a14358c929407a181a2f65ea93528f741057 +exit +nick generatekey +cerber maketea penis 424cbf882606a41382aad5ce96d24688e04c7adf6cceca8d57bcb6a83a02adcb +cerber drinktea 209a9ef75a9a84434bb9ec84cd71c6fc0b6024da3f9ea550b4bb868f5efed3400cb06f4623a904618cb9317f35 keyUsed=424cbf882606a41382aad5ce96d24688e04c7adf6cceca8d57bcb6a83a02adcb +cerber drinktea 209a9ef75a9a84434bb9ec84cd71c6fc0b6024da3f9ea550b4bb868f5efed3400cb06f4623a904618cb9317f35 424cbf882606a41382aad5ce96d24688e04c7adf6cceca8d57bcb6a83a02adcb +exit diff --git a/main.o b/main.o index b83f800dbfdd439ba96b7080c8b86210d4542c1e..ecf8d7b0e6f136c79f94ed5b3dbe6497e5c3301f 100644 GIT binary patch literal 1288 zcmb7E&ubG=5T5+7P1>3kED{l<;6)E9wL&onT8W~SVoRtXVtuZgZ4$cKgk)1wdN9y~ z3KdiE5Ac|j_y-6cDqeCEFP?Mo5RjglLo3wuo87l{vz{C>^UXK&-n<|4Hs5~l{TU(h z5roYtXw(lg0fn4{zP7R!{l|1< zBR~}9SdgkRWq}ZBRTWxA)e5FCmFGhA*K_KO$w@zDJ$DVaFN9h$i&-NrgWh_dWt`8% z(v|16nY~xXXGFbxuAr!t-bMoNhJ+wOczk_jh>bK*xCiE#T?m_{H9wOcWYEEF;c zkC7+wxElCr;4?I!4jhIqLRki+axFd&^Z%9JSO53!Lb!3XG1NHP^lyi-WXLyr z$XegLaL}S^va|22wD#U6Td`)bGfbcAAGea7^R(W(PVwF==&(QDzDV0x`+eu-ZahN= zGws3IL+16(rw8bJ?K0}I-t>ijeIde&sV0v$?l-y%a}Dfadp96{@c8`z?Raan17~(P z*X#Mh_d+!vEj|GyGV+F!(=7MI@O#01obO! zbABF(yNHd;Jog0SmboYB%>eTuq6mQ38wdu*#-qVNDx-6R=nXW&jggWAMli7{`8yBi z_ZmU3o%e}7^l^nb-are;!t0N^>fZo&QM%;eoO9<(9)8xtA9y%EgvTj;agB5_i4TlK zPRSYwijt|Qt3u7JiWMcR^RSs>*+|UKCF8dWg+$(1$)*u~Xn#FPtyD(K`sSs}N-;&c rnJZki?6hUC@St?1A_`iughuOGb6u=WS-B~?n@G6+G<0nW+qL8vPPM`T literal 1464 zcmb7EO=uHQ5T0afO@B;^?IEH_!BY<@ZIxp1U`kR%TWky!iqO8Un=}pGY(uiCsVx|& zhzErRJbDrjNm20NL7_<1OK;*uJmwgXf?yAgG{$fCr%mF?fq66E%$x7Mw{PBl`Mvk2 zo5(>B9!@~LP7M7}$QkHkBWu8ah8Zh&nQI_6J_(<-je`&&^jJ4X-yqOE-0 z);al1EFthUN-H<`mXj%2(M49fm(Zd@Ookfgdo8|z6%2!qDSu+HzF8CH2y$MiS?0lE zppZc*pRor;Y`KW%^#i+M`9j~pbV0+6A?=p(T$km;{Fl@v>FfSfXQ{T>Tvz|NQ6$xM`~*mrTwWJ zCG4%RBZ+TZ|4X8+BW|g8i(~s!AFyvnsTQOH=c(IVbN;ls=Hi^W=DgEfvy8gh+8DS$ z6`8kQcXWhZMF-79K}V!5YjQGXxJSb_Jls{t4%q$3ah3oSdE8R7Q~*1PeBUk0cZYB5 zdjpGm^Sy+{d+_C9PZ6o>rk&-d#dW+Rw*0j4oqT;}Ugh4v{Mmk3tlQ2#g8OghIC{fq z6^^$_J$>FbX+7_F2uSoC>NY$^_{vZ>3J)1TUO*f1ea7fv`@NiN!Msm5PHp!;_DCMb z4sFA-T!4BS*1HAV0O?8#=3Ha`Q41bu!Ey`6kLgZS4X?1h=^sm_g3H=MA|4tZUm;Zt z;-5ewDJL}KMMjsEC7~=Xi3K^Ka>Zyms|6>oM~({-y=^}DNGy{@S2WedvvN90s-8?; oG{zBQ9Og;!Tu!87=?r>FP3Ws)Wyr`4(Y0W(;XkLwhHwI+zq>5ykN^Mx diff --git a/sound.cpp b/sound.cpp index c94f749..f11643f 100644 --- a/sound.cpp +++ b/sound.cpp @@ -1,180 +1,95 @@ - #include "sound.hpp" #include "bfsk.hpp" #include "config.hpp" #include "x25519_handshake.hpp" - #include #include #include #include #include +#include -#include - -extern "C" { -#include "monocypher.h" -} - -constexpr int CAPTURE_SECONDS = 3; - +constexpr int CAPTURE_SECONDS=3; static std::atomic gSoundActive{false}; static std::thread gSoundThread; - static std::vector gInputBuffer; -static size_t gWritePos = 0; - +static size_t gWritePos=0; static std::vector gOutputBuffer; -static size_t gReadPos = 0; +static size_t gReadPos=0; -static int audioCallback(const void *input, - void *output, - unsigned long frameCount, - const PaStreamCallbackTimeInfo* timeInfo, - PaStreamCallbackFlags statusFlags, - void *userData) -{ - (void)timeInfo; (void)statusFlags; (void)userData; - const float *in = static_cast(input); - float *out = static_cast(output); - - for (unsigned long i = 0; i < frameCount; i++) { - if (gWritePos < gInputBuffer.size()) { - gInputBuffer[gWritePos++] = in ? in[i] : 0.0f; +static int audioCallback(const void *input,void *output,unsigned long frameCount,const PaStreamCallbackTimeInfo*,PaStreamCallbackFlags,void*){ + const float *in=(const float*)input; + float *out=(float*)output; + for(unsigned long i=0;idefaultLowInputLatency; - inParams.hostApiSpecificStreamInfo = nullptr; - - outParams.device = Pa_GetDefaultOutputDevice(); - if (outParams.device == paNoDevice) { - std::cerr << CLR_RED "[sound] Нет устройства вывода.\n" CLR_RESET; - Pa_Terminate(); - return; - } - outParams.channelCount = 2; - outParams.sampleFormat = paFloat32; - outParams.suggestedLatency = Pa_GetDeviceInfo(outParams.device)->defaultLowOutputLatency; - outParams.hostApiSpecificStreamInfo = nullptr; - - PaStream *stream = nullptr; - - err = Pa_OpenStream(&stream, - &inParams, - &outParams, - SAMPLE_RATE, - 256, - paNoFlag, - audioCallback, - nullptr); - if (err != paNoError) { - std::cerr << CLR_RED "[sound] Pa_OpenStream error: " << Pa_GetErrorText(err) << CLR_RESET "\n"; - Pa_Terminate(); - return; - } - - err = Pa_StartStream(stream); - if (err != paNoError) { - std::cerr << CLR_RED "[sound] Pa_StartStream error: " << Pa_GetErrorText(err) << CLR_RESET "\n"; - Pa_CloseStream(stream); - Pa_Terminate(); - return; - } - - std::cout << CLR_BLUE "[sound] Старт записи/воспроизведения (3 сек)...\n" CLR_RESET; - Pa_Sleep(CAPTURE_SECONDS * 1000); - +static void soundThreadFunc(AppConfig config){ + PaError err=Pa_Initialize(); + if(err!=paNoError)return; + PaStreamParameters inParams,outParams; + inParams.device=Pa_GetDefaultInputDevice(); + if(inParams.device==paNoDevice){Pa_Terminate();return;} + inParams.channelCount=1; + inParams.sampleFormat=paFloat32; + inParams.suggestedLatency=Pa_GetDeviceInfo(inParams.device)->defaultLowInputLatency; + inParams.hostApiSpecificStreamInfo=nullptr; + outParams.device=Pa_GetDefaultOutputDevice(); + if(outParams.device==paNoDevice){Pa_Terminate();return;} + outParams.channelCount=2; + outParams.sampleFormat=paFloat32; + outParams.suggestedLatency=Pa_GetDeviceInfo(outParams.device)->defaultLowOutputLatency; + outParams.hostApiSpecificStreamInfo=nullptr; + PaStream* stream=nullptr; + err=Pa_OpenStream(&stream,&inParams,&outParams,SAMPLE_RATE,256,paNoFlag,audioCallback,nullptr); + if(err!=paNoError){Pa_Terminate();return;} + err=Pa_StartStream(stream); + if(err!=paNoError){Pa_CloseStream(stream);Pa_Terminate();return;} + Pa_Sleep(CAPTURE_SECONDS*1000); Pa_StopStream(stream); Pa_CloseStream(stream); Pa_Terminate(); - - std::cout << CLR_BLUE "[sound] Остановка аудиопотока...\n" CLR_RESET; - - auto received = bfskDemodulate(gInputBuffer); - if (!received.empty()) { - if (received.size() >= 33 && received[0] == 'E') { + auto received=bfskDemodulate(gInputBuffer); + if(!received.empty()){ + if(received.size()>=33 && received[0]=='E'){ uint8_t otherPub[32]; - std::memcpy(otherPub, received.data() + 1, 32); - - x25519ComputeShared(config, otherPub); - std::cout << CLR_GREEN "[x25519] Общий сеансовый ключ вычислен!\n" CLR_RESET; - } else { - std::cout << CLR_YELLOW "[sound] Получены " << received.size() - << " байт, но не формат 'E' + 32 байта.\n" CLR_RESET; + for(int i=0;i<32;i++){ + otherPub[i]=received[1+i]; + } + x25519ComputeShared(config,otherPub); } - } else { - std::cout << CLR_YELLOW "[sound] Ничего не демодулировано.\n" CLR_RESET; } - - gSoundActive = false; + gSoundActive=false; } -void soundFind(AppConfig &config) { - if (config.soundExchangeActive) { - std::cout << CLR_YELLOW "[sound] Уже идёт процесс.\n" CLR_RESET; - return; - } - config.soundExchangeActive = true; - gSoundActive = true; - +void soundFind(AppConfig &config){ + if(config.soundExchangeActive)return; + config.soundExchangeActive=true; + gSoundActive=true; x25519GenerateEphemeral(config); - - std::vector packet; - packet.push_back('E'); - packet.insert(packet.end(), config.ephemeralPub, config.ephemeralPub + 32); - - gOutputBuffer = bfskModulate(packet); - gReadPos = 0; - + std::vector packet;packet.push_back('E'); + packet.insert(packet.end(),config.ephemeralPub,config.ephemeralPub+32); + gOutputBuffer=bfskModulate(packet); + gReadPos=0; gInputBuffer.clear(); - gInputBuffer.resize(SAMPLE_RATE * CAPTURE_SECONDS, 0.0f); - gWritePos = 0; - - gSoundThread = std::thread(soundThreadFunc, config); - - std::cout << CLR_GREEN "[sound] Отправляем свой публичный ключ X25519 и слушаем!\n" CLR_RESET; + gInputBuffer.resize(SAMPLE_RATE*CAPTURE_SECONDS,0.0f); + gWritePos=0; + gSoundThread=std::thread(soundThreadFunc,config); } -void soundLose(AppConfig &config) { - if (!config.soundExchangeActive) { - std::cout << CLR_YELLOW "[sound] Процесс не активен.\n" CLR_RESET; - return; - } - config.soundExchangeActive = false; - - if (gSoundActive) { - gSoundActive = false; - } - if (gSoundThread.joinable()) { - gSoundThread.join(); - } - std::cout << CLR_GREEN "[sound] Процесс остановлен.\n" CLR_RESET; +void soundLose(AppConfig &config){ + if(!config.soundExchangeActive)return; + config.soundExchangeActive=false; + if(gSoundActive)gSoundActive=false; + if(gSoundThread.joinable())gSoundThread.join(); } diff --git a/sound.hpp b/sound.hpp index 814d9f2..8710e6f 100644 --- a/sound.hpp +++ b/sound.hpp @@ -2,5 +2,4 @@ #include "config.hpp" void soundFind(AppConfig &config); - void soundLose(AppConfig &config); diff --git a/sound.o b/sound.o index b3a69026e5621214d5085383f2e876c1152d5dcd..ae3e133f90c2a4fc0fd98eb6c9a8b4a71b8ce82a 100644 GIT binary patch delta 5093 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 Aa{vGU diff --git a/webserver.cpp b/webserver.cpp index 972593e..2b6bbe5 100644 --- a/webserver.cpp +++ b/webserver.cpp @@ -1,66 +1,40 @@ #include "webserver.hpp" #include "config.hpp" - #include #include #include - #include "libs/httplib.h" static std::atomic g_serverRunning{false}; static std::thread g_serverThread; -static void serverThreadFunc() { +static void serverThreadFunc(){ httplib::Server svr; - svr.Get("/", [](const httplib::Request&, httplib::Response &res){ - res.set_content("Hello from Cerberus BFSK!", "text/plain"); + svr.Get("/",[](const httplib::Request&,httplib::Response &res){ + res.set_content("Hello from Cerberus BFSK!","text/plain"); }); - - if (!svr.listen("0.0.0.0", 8080)) { - std::cerr << CLR_RED "[web] Ошибка listen(8080). Возможно, порт занят.\n" CLR_RESET; - } - g_serverRunning = false; + if(!svr.listen("0.0.0.0",8080)){} + g_serverRunning=false; } -void webServerStart(AppConfig &config) { - if (config.webServerRunning) { - std::cout << CLR_YELLOW "[web] Сервер уже запущен.\n" CLR_RESET; - return; - } - g_serverRunning = true; - g_serverThread = std::thread(serverThreadFunc); - - config.webServerRunning = true; - std::cout << CLR_GREEN "[web] Сервер запущен на порту 8080.\n" CLR_RESET; +void webServerStart(AppConfig &config){ + if(config.webServerRunning)return; + g_serverRunning=true; + g_serverThread=std::thread(serverThreadFunc); + config.webServerRunning=true; } -void webServerConnect(AppConfig &config, const std::string &type, const std::string &ip) { - if (!config.webServerRunning) { - std::cout << CLR_YELLOW "[web] Сначала запустите сервер (web start)\n" CLR_RESET; - return; - } - httplib::Client cli(ip.c_str(), 8080); - if (auto res = cli.Get("/")) { - if (res->status == 200) { - std::cout << CLR_CYAN "[web] Ответ от " << ip << ": " << res->body << CLR_RESET "\n"; - } else { - std::cout << CLR_YELLOW "[web] Подключились, статус: " << res->status << CLR_RESET "\n"; - } - } else { - std::cout << CLR_RED "[web] Не удалось подключиться к " << ip << ":8080.\n" CLR_RESET; +void webServerConnect(AppConfig &config,const std::string &type,const std::string &ip){ + if(!config.webServerRunning)return; + httplib::Client cli(ip.c_str(),8080); + if(auto res=cli.Get("/")){ + if(res->status==200){} } } -void webServerStop(AppConfig &config) { - if (!config.webServerRunning) { - std::cout << CLR_YELLOW "[web] Сервер не запущен.\n" CLR_RESET; - return; - } - g_serverRunning = false; - if (g_serverThread.joinable()) { - g_serverThread.detach(); - } - - config.webServerRunning = false; - std::cout << CLR_GREEN "[web] Сервер остановлен (демо).\n" CLR_RESET; +void webServerStop(AppConfig &config){ + if(!config.webServerRunning)return; + if(g_serverThread.joinable())g_serverThread.detach(); + g_serverRunning=false; + config.webServerRunning=false; } diff --git a/webserver.hpp b/webserver.hpp index 5cedbc8..e6f5a8b 100644 --- a/webserver.hpp +++ b/webserver.hpp @@ -3,5 +3,5 @@ #include void webServerStart(AppConfig &config); -void webServerConnect(AppConfig &config, const std::string &type, const std::string &ip); +void webServerConnect(AppConfig &config,const std::string &type,const std::string &ip); void webServerStop(AppConfig &config); diff --git a/webserver.o b/webserver.o index a2420d3f268770f29d6948dcf53e359604f26a83..13629c7013be140b4254835fe3fe79118593a198 100644 GIT binary patch delta 152889 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

M0-m*Ih z-DOst{<2%Q*Hc#Lx_RfgdFOId>UOz!=fa)3E|mAE@GUnqAx2 Z@2Iq39Oh$f?D6IYZS1Ygkhb=_{vXY>*fjtE delta 155077 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≧{XEO1E8z z-llY$;lpUx2p`IC0wx;#6UVI=0~$t^Zk>>ZwMw@d$_RyE6ZMYL-Q%h+?RJ&!4wN;q zt#mh`bZ`So2iKME8mwpkC06Ccaon5`gB7Klh0?=CC_P+Ix*5@FH?MT(gy^$McM3`m zC*eb>A6L3#qSJ0v>5jm(G#r+SO2-|5{!~DJDwJ-o=rl|z-K3CqJxaF|`cnb@sZhFc z(PpIHYnYCF`!{o>DCF+Yn5&_ltjZ&5)CO`M|9fl@q_}p zyF&CGrJIM6=q8jzH|E*@oVe>^K*KeqyDG#Wr*xN~B$|bi=%UhH5S?}zr8_S~pHsTi zP}a;OY@~i%>5hp`yV10sxFhh97z``j0q9Q!^ru4U_CjfxQo2bY?Ru1MC-kQR`ct8F zIP|=R)bOivbPSl9X1pTRi{!}R41<`4jQM&U&+RZ85Y3NS{ zyo~yBpJ~S(69XEKD%}zI5DbQu?f{f4TpyGxTrZR>To05hTnCgZTssuIRw#BYQ0y9@ z*wsR@3qwi7fe%U(Xpa{I4`LDSLP=yt>2AY1^ev^k0VTj1{P**?)IzzWE_c7+|N^b#5y9|_eb5Pois@^-I^t!oWB<;GCUJOdRc9@oit(-{1 zS~cj6D7`#)qNL%b(#t_Van++CzAQzyOrCybuQtjKH-K^{#)gq5z`yO)vcgnxIQ(<^TVK(E2d^;V8T8EJX5;oadh zJ-?yK`3V8!?F;B`KnXAh-%fy8r8@?HOV8we6bV!d7YQWq%Rq0J_iv=Uqx80+1X_b) zpM$dKmaRN5WdAn}aq=r(Q}i2C@Mh|h@cETaZ;#UJhBs2*2|pNi5*yB*4=OjHwCjX&y-5tR|7A#9sJIJ9jqsB&3}p&7|5`Z-FXoauu5^c> z*vFt;pxTvQE0h3H(<4y)Y`jhF6K}0@zD>CnioeKP+5eolJG|2;4ws=gTvB?o@V%60 zl->}OIczs>zD3LHPy$auxxkD->DVxoo(@{M9g6=pr58*0Yr{skjN#rJ*;W|rD!oy- zOk&MY0?fam%K0@@GpF>1V4gWm7#rbx=vjl(&A-0N`7!NRp#;t;y#**8OK0@N8;8=f zL1U*e0VQxNl%9m4I0`Afoj%nU;BR?SIt67HOe(#0I8VFO>(s6bo=?JY_-O8bC1QHw zw!kxF-mG*ZPy*E`z0KEFIiF{n%DcYMU4}BZ2^VxYxzWgw3~q+ zB9MH<0D1#f?zeIulsNJc27mu2IQbTV;!3v}N}#>hR5{lYXjkdxpafWea|FmJy-6#N zTX_un+YyR=FZ?F{Q%bi3ivK#8?j=AiC(w<*S{u~EPZJ=j^mbpR}=tY&ibylv063BtlU?)}OY!GN$ z>8?QuGy~sBplPK$2rs8T38h^Eev3Hr2^{D(TDc*`{+Eh+DkM-flm;OvyJ7E@THZ1) z8taYWef= zp&q5%4bR7Mm(uHml2C`zOF&5|4wu;0F{RrMrCpmc?X_?s88t%*+^F;#pj>dGP#(3m zUar@Jywcl%GF78cdN`u=`l0l!PwAzg*mW5b#^oe8EadTjhLg)N=!2h!F(_+c^{;d& zb4s@#O6Gk^uNz9jT}rPLN}zUQvoUIn82er(fw@4zi{<`bQcidfibF}H+6+QkpKwgy zyM{|C*YbWStGQ3H6`4G(D zSU#Kwy&fxfTe%C$$h1STZ-GA`kbIgDy0uWY^Bew*l-5mTje&y4p&>OY# zh?R$-#OZxWS{o#(kp12b#X-WjzwyM*`D1> zw>{0trP&Rt=|J_DZ>mgoO3;I5OU-Nzl37y=JWT=-C=XIKN^h-` z8xPbkLfI_~O0N$}M>?P^>V(p(h0>Ay^K^tamEHz?k39ch<3xJ00Hr4xr8f+vCxcLi zJO$-S=vX=PToRyu9Lk7nJV&2=u0wxnpuD(UHZH+l${9EYXJGpAoQ!kw3Ydga?uM_0 zZ7{=7)tJ81!3{?0x8O@iG_UkF;l!n8Pk^0JMl=DXBhBz{Xy4eu{^!Jt zP{By_)+oK*tF;H)@P{O@VdXU_j+dc0&Ok|g*y;zZz7I;k6!aH2lz=TtuNg|b#;e)? zoOlgXL}(C#PlWkrbMJ@1Gsb>6MSUDzNW+-Y+j^EJunJ{lR-lZ`veH|EGBU$Z5*Si? z1292-SDKS+IcbEFQG?Q}gMUl8R_SdfbVPE-WhgzHGscaL@N(*_;n!GG4wMI*oo8zO z3Y78;{2%U?rKk18orM2Q#kkV#gtCYdPy$8ZW8l^^lncfI_&eJ5E8RG3#x4w{y#uBF z?$ecd;}U$=3HJXeC-RDBMCsK-SP;M};DBWfFALvU;cM3|tVR#oDf?Mc= zN;d^%#NzPR)W?)=i`7TrulSygM4g;eIPTihv}eokml8gTO~4$5=IS@=PoE6yn0Y4~qU@s!e=go7uX-tnih|2gr-sCXN5GXnXR=EShl z9fHzuQ0etUd9K(8C81uWmxR)RPGbXj0)(* zpg3+Eo5SHwCQvGTs<+Tbo=3>2#|ss)F+j059D*sO>Izm9)a>?cIztLP5n>;_9?wMlwFXn z;Y99OI8ZWQZCAsb(wl@o!f~zDN34GHN$Ow~%1F#vdB(~^##Sh6s0F^1k!@Cb^^g%t zH`VG%Q?=1C?)? z`Traz|IAR%D%}|<4X2gfB$P!r4khrI(i?>`VsR)#8&i61P)4NDxa{f_thH(V67!p%9StvMD{m}rwvLXtxB&EeiME733{_?%eVw3;E1sSil2s7t&cznxb%3f zUwoX__rkOoHa=DZ)Q^uv{D(CC8%QUBTf6q`M`@9prAE6zlVFccY;~J&6_vk9;2J9B#8*w}j`QrV= zoYI|!5^xyinZlTrTZ~~S?Q@UP_RDEb#KDr%U4Y_X3W|fIl{<|MP#o03>!jyapKnt8 zDJa*ENu@gi#b3(U4yAnyl=kU56Sf-FK^DpdXHn_SK|dj5Ka_jKJ#YgDo$ziLH?|p@ zjrGP_W3|yy^8Eji>L71iH|C5>#s%XjlslXwN_X*cO>oXQZ5%UpK}k3UCE->m2{-y= z|3|GNVhkJi9-)TY#!cgzamAQ5W{k7ODdP})15?lgWh7%zrZx)SBd`DKD%At;${ zH)y7tP%>RJt{Ah%jB(aDWgIgO8wZTN#vWq=re8|}aZaEcfs$buN+LTC*F^GA5?MFq zj7!D^fYPB>C~Ke*O5Etf*#B}8v5K&9@1a`1ZQL}j8CQ&1<200j15lov_Q5rF zQLobNhWrhcM3>TSgJR#1wv$@pUcL5c6Y@t{5*tc)1xkZO;~bP8O+x9>D3p#28T*YX zW4E!x7&E3@?WEBdHAakKaGI<5BW@NPc;*Oc>5cz84} z7^k2#7=aRC!0LOAJ;qLBGZgzeDE8G>?-+NYnqb~I2mSm1W1L9Ox}Z3SL4T;AKUBu3 zF=7lG_fDzZwsF(AW?V6jLK(?EDDgUB`cceP2Pe=CLwOi>;1wjY{a|g7h4Sb)ZtQ~o z^9Cr-9UGvui$ZBv_aJ?nezA^6Ps-C!-o9^yAD~R=Xr2!la5 z0h3T1#GyD?zgQWC;$Wp#88K!bsO1=xgxcU^Xx{>*=MH=aQ?v5`?a<-_(%O?rDx|>} zlm%N-kGL%HKQ0&K{B$|TvBEb$QZ_77Av8#vTFJk48mA7m3UH9}V zCt|Q*oQ7Y=;iQ!ZjXlN=C?6zfvvSn9cVU$?L%Ym<^pg*>P(I;MdvETVW1p+8ay~A8 z;pd3g4Ov6!rfRFm-%EQq1*PY`#unr51zNvk9D(=4aSYyteYMrEpRaZ)C?n7VrGxFp z24l5P_Wxd34K|G{#*A?W^6PL-jaCjDSI^T|HaYlQUKgw=y)66{+bd(7HBK4FjKf0K zU(*05^2(+kilaWI*9+y9O$y2@o21h1f&a>r(r%^K1?81Zr_$?y@@hH``QvVhn9^;B z(ymSEwZOEzvT5c-0yiqX1}Lv=YM~5W*tmOA%X#CPaoIQw<#oW2(i^b)l(7NINY=r7 zpmUP_{|ecUCu|CgtMK*IcR?|1g#L#~LdrfUiN)dNupY_>5hC!Bl&j$F6P{*`X#kILRXWzYXsI{(1Xb}QX3$RFBE zbSm8zC^r}ypbUAv(#!p!QrC*on@@8hJ(-3q$fi-q+v154r5lI-i%X?f2W4t@ey{c0 zN-qQD^MO%#3XbnqI+wyQtb>F9Po;lzx(<$!*v$VhT%*|L;2w04&Q53O}lj{?Q+H?D2Zp4-ZYf$IBx8ObUfX(vZFnkgwkMK>1BRb>D)?^ z>*bHl-jARIYi+1_{!XF84KzY5eu5?$R*e$?3>#u2!6EU1o zgT%Db9fk6Nff1$G3*~+Nl+sH=Nuc|;mCkJhj60*u9Lg`5#FTD3lpB_9O1Bl>j^3hl_xN<9 zB($sawqaT_S?8n=E<^dG;|%N}z&N}G_QNm2B>Wm|fiH#iP!g>+PX0#ABgT}m%b5KS z?fC+fwKDr3JpYn_lT^GK4nlF*Wo(3(Qw~FUx$VGj(W5QcBuLFZ_Ka{u6+M&nWXKhNi9;R?0 z-%BP5Z~Us#nPP3o_nbj*&dRe^o`JGfrp>*R= z<~F8u+o8;Do6>E8;-?nMlkvcp=7)SKTHqhYwDmkY2|S%k3s3-02KQ^C_PL;NvsP>2V+*>2G7Xnf4Bd=(tkg0 z3(D%=gfar_P)1-)>8?TC;=AOBjRulzK-&+u@63*`UsQ}$^SwV*?=@{T7@## zOHihC5=uwLmEI^6yWwB3|6j|=E)VkZV6q0~!mt7#DGs1~lsc<)=ipaJcvk6-!VfSN zBT8?JmrW8VukgTyz}dg3ix#gdh?P=;2%=2IF> z!S4`AzBd%QLr?-GU>||vO1BwGAo&7QX;%$DOQ5jQ+v1B;rJPrK=}k@~kbLE;G|0lA z5lFtm6}mG}0`xA2P1|BUePq!%%M9H$zFZQRz+n zM5ky{>5anltr!k)B8L4+F9xM2ZBQ~^{c)wUN)IxSIcu7RUxod~IGmx}VvNF%Q?9Y{ z9*srML-Ch^3;3H|W&g{5AEtt7Zfb-QxZVsSP=+pK_4yy^P_IB4!euCPn}u>o&A>nK zpfwC7U=Ngc!5X2wrVJa$e#rHJ`i>u_wdV;c7y&N^CByZz>M#ez;S}_HY)n82&< z9h3yNbGom$l-??oHI#vUum;LVS1Y~M^bfShQ&1MsD3l&`Kru`xz1{CK*Nj9Pl=@bs zxA#45zXK)lQRuIBE4M(gZ&rHM@SFG|hvfv6hvQZ_$`!6f=|!L{ z*7a{|B3URSH4kM9W}z(7VJIUyr1auYIuL;$^Y=d|vcL1+s&sB5z^2k0g3@qM>7}3q zNW#D86VB~W5)HxMF{hhMtT*FYKiFqEO+ zTVj>dlPr_~vrx8EExeUEjwsz4tKa;F>Z?%fmy8+XFua5N4MX2x|8wH?Q87W!dzD@b z?4aTD*Y)}TER^jt1m*Vn0GuOmztZi4l28mvz&a>)5%_8BYLsp@^j}B7+o<2Wi~Y}u zyM0%sb3YoaLvhpxWv+XbUJH~VY=jb^-WW0NWwn0GxCmd*(2qlz+6JqSz&1uS|1}-i z^)x5qaLQP>U;e7~#5na8D;uX4t!$k7vXza=FKW5d*k}wJ7r6euj}E3Ydg4vOFY~xB zf4%^^gK&w&;_ziW?#Gm_{QU$;c=t|LFAn7IF+gwC$~h~qKF8Q0iBqT-xV8lh!Al<7UtSzlzXk+?%U( zJ}M622S{WL%Bmk#dI>0tG_LgOpd?bO^mae39oaE%LFswUm`&Ts7#yW%eOB%;wnKSO zs1a_EKos5$BgU|C?>4R9Hf|c%j4Q^hF=I^6+R2o$4@!nxxALTvp5>L^0+d&^)6jpb zRq3Xn*f+wDaY>awPz2o?DBEvqmJy^ruXJ-zrgj<9F5R@CCr$Gvj9Gce*af%faU0}K z>O`y3t$|ZGu2#As_#w)U(%t=(Zd>`2Op@RVo;-I2?vgXGHqp)i4g91e@U*5@}Sr>z~y6Irx6+XO->%{C=7SU7Ym5 zoljIc_b}w!N^cWNz(x2P^g;Lw^Z}*UV|oKzr@mh4g{^*XhL>>E?<&1@DE?;P>+#nQ z)8EISj}z!6&7cjw41*}_gzF#I9^{}joP^SDTJo>K7&}of}yTnY5m`BTyRl!ymy`C=DCnPblwBa8ns(;rnQ~ zsC38Rcc>qQ--9ve_Z)7M_#9WQf1rLAiardtsNcI;JDA?IlXWN!v&JbXj>nB-P#lby zK49#I^5E0}e+)zL!92s+8P|>sz~2zC9r_7zJ@+r|ka+2)9zAJ_8(Ykv(aQ1wAc<|i zU%6qNhpPnah0li_P)4i`%662`aY_C1P1`OYaA2Gr`w*xqfWHZ@^h7*O3{eHwnd0AAAOS0=^DLpj=04hS~p|c)K^K z;X3rU8GNHSgfD>uP_BFlxIx3X(rbefAOt1A?Ddt--!cL-N;d^%1bQHE(Kf}PB;01@ znlvW~Dt4}`blw8j;alM>Oww=?o+aS8(i?^nu-Ei%)4NQMo1P!i$AnF#w*;l#0+h#u zjM7Vwn=k++vrZ@pwL(cK3MHWdMoJ!py5KyHqEH;}y+gTfTr|$Xy9qR_^rqo=DNiZA zA&9?pQwJyFs2%b*(R$mIUNe+Hxwlt3T?C$oQXYU}-)U?yMvNgSfgPo{JE(zol-?Q? zf3xsC^80_2oJintr8fd4Py&7n!w{5!n}4lbGS0ylp^q6;Py#2FUN;oKT}rP5$_ONs zUNd}A8V3G?i={2qidG(AvmA}3x~>3=k9@3lN- z;_QCMp7k_)NsB|s}vHx?Nh~q_L z6pG`?munBkpy-28o{IHDxmzB!`Y@a%f$gNeTFydgpZzPnr85S5w5{BC*CS2gH+^{-V%Hl z<*d?MgmpBWhwp>4P=<2Mn1XVlfxZrh7}+`~c6%>YyUrJWc*Z}8Y=7p>kt`GA{ZxH?x#{-ZrqD}NG-4v7?7D;0dlvUpi@5NpA z1}O1n(l5{eHBc5s7>cm*{7UDqal8V@2)L~DvQQGrz%TQvc-G1(C<)d;X)oW`BHZ~) z<)(4bI0og`ZhF`%dX3%2gt5)oXp9o*HrS(hj4E0&aI_+Ildh<|r%QUri?vP&%@i z(2)v5Depd$dqhmd@-x~0|4!zMREWa`rPl|=QLoaghtk73DEoK&8S1bf%Kf|^_yyQ# zNl)@-Rf820*f=JbQhp3&SCgc7Uxh}Puvc8IYJ0ZB3pmKjYIL?aGG=Ut;;afDBX1^Lp}?8h%=+)Hz{Sr<@G-&(l7!)N}w90 zw{w-2x0T)<8Oc>{p#ST0rRNTmp6|3NH;t>tC1b`oV;naQ8~csPHuk?b%>Nnp zX2^U~>8?P@d=d_l`MA;@gmMk9gVHVpzf9te(%XEZmN%5%I+Vnhpx7@$8R?9br=FNr zp_dA|!1Ne9pD54q)Bglb zY$x4nLut&xEIk~A|3S|NlwKbcN4-if1*Jz_@Fo^j4V0cHAIIDBFb1W(*1`)EI0Y{x z!AYgJbfww_{x9mY8Hhwd@D7&B0&U<%$v;Boi~*av0G5=QxYbNQx| zy(@gWc_{XCP!{d1GVM)sA^}FsU=WIZqEJ3YQw!w@LqzEgHR{j}D!mRUBi9Pw zk6nw>jX)X6)ki7^jD1iNX@>Wa$NxG`WJqhF?DrZguU@V_%PGCJhik(ulsO%PGN+?T zFABfSh%7x!?P5^g!f97}5h#gnJXD#5Y58dMA}8_-h=cIQI7mSm(xlQ$KpE1w(rbWn zfm*89p3NDDje}5nn1cS55Q@JRrB`oy{xbIeHdnHh%XHr^E4@BAkAumFsG||c?;tb{ zK$(hurJIEEopC)%HwGn8yYl~~>3-mw`{(=r=b}Dhs)8aYf+9Y85!3`dTTlc+MorK+ zMG=GrMNv`|MG+K55fniYbd(jDbrbYEWkpdG-PBgoQBza=9?$c7{cb)t_xJyQ=Y7se zPSRXq5P!gRC1pnEx3ImnjW6T6(!B-eKY^%Cf)2qnYUJ}7HWy1bXND^3SWcnx^~27} zzqom9I7983162O9rPrFCKkD(E$A?fWm~IeI!zt8Ko!-o5aAJn;O)b77(WyVP}I=#_V64xTVaY#TT-o~#nqplfR9$)qN3TlS) zsPeO@f!94gg1YY~P_GB}(pG*IHQ>5?bVIARZ}R@1fErwPSKUFk&po(-owvJg54B=l zkFTTJS#_7(Ik$w`8$~k|;&jgc6oCP5hZonk^Zx)f(@oS&ik_bJ^o>DFU$`Ex0XbU= zsFfQtLl$p9dr7CVDj@jvTcn`=iJ29g@yejG2 zsF}9$^K`ssh6Rt$dwdSn;WVoJB4h2`&Ex`T*LC`uEF`Q*YkZOXfs_Tt-_w$ zLsjg$c~9THx;4;3)z6^@+`GcuL=9jOKg^74_z|4+^rAa%`2h? zkVkc}&}ZdKsE+rpYWXcx{>fD=e*=|2hN_=L6Y zwGst4i)wKB%x1iVe`02{s2NvKGc6-Cy_`kWKjY_;WLxU~pYnu*Ut7kiyWnQsv^)1d zR<7pm@H0q%po3}D%!;TElJ4oREIx=AlpEq#j;5Gs8XE+n8GhDCGo9h*i`39MzeaQi z;syKC32Z zNHoo`;OWz-kKd+De*f1q`tXT#bo|pxiAQK;sE=A#Q6IIYQ7dxtlS}a@BgbZFdwk8~ zbEuh5paxJj!#HYSS*%JVbdwf4@wW9^)pVHfurG_<1tn{UYrEP8>erProCzl`x&g7J!BykZ!y zm>EVeUNJKaW4vOh73;(JZu@P{e>HSUKn)$E8agt=A*!JRGwh=p+Ceq6iE5~WTCpXJ zm);EXoMBVP#vbt zu>Wrs-!nrKRc_kTr#wC5@u7d?{HKACBtb8Y`cN;85@vMvElWQ|rJtD5A?mh#fc?Dk z>7Y7Vb(h@DZ`wq1sFlj1R(uGx;)4wWTJn?``cX@sG(#V1$p{^OWP!sAPd#G`Fm4KFh1+~P>W;Bl)P{|!e4Ri=UNcj}% z5cDG-Bwjx5S@}J84E6H;>?=0lNmTs_RJ#TIPyPLG(i6u1#R|^-vlW~{6`Xb_Jw1RWLmSjDubAAR;x;vv*OG@}jtD)}9Zzj%ZiXc_;90ro!A zu%+pI#%!YsEV)%w15@rKs-X$bA9u5;&35|tT;XsBZ^jC3p$1++eG4v$>Ueg;`kQKa zpn~c+=MK6TpSJWP{2C1%pa!t#>D%sxyMX#uTmc`6!>AQYp(}*v-In)gHJJwJa)zAz+6Hh*2GdV)->V4F8U>CKicg)a3ZR%|^bdgQn zxV%9?ySjxsJyuX7TR@#=MUSt4+)k$j)alfZD&L1HfA%r+1eM-H)n7-QrW2lj$RCcV zd>bF7=l^vAy0R5f4ex%`8$cD@KsD6#_&BQk5UTvlN8)=(t!{=I#$VAu)t_+3-BEW~ z>ij?auoc{OyY4)GkGtEP8KykF?50sOO?iCzL)OmO2QS5sT$=bR242N@g+5@GP>*De z);RxFV3U9f%%Ucd(AAKX{lS662Hdt_gJ}8{62f+$ldYu zEqDDrod4>$;0ZbR=-oE6F6#ciWrj`E(soewT5c0>&FQx2@mbV2D(a~6WA3QuAHVBT z;)bLjysL33{+it?3DYDjqLzHY3}w`9bOhC5^Bs1~&);sg+(Fc<PJkqWB(2xj^ZPE-CRKb$v*NSG?dXqKWL^Zr*hDB8QIov0G)(m;euZ@}^hblK5 z=kxpDnK+OL2XC}Ju!CCio*6b#=lMEn$=YUE@$^}I3+XdvsCjw;b$aG8zTcy+jKdh; z?xmjp4H3|#F>QuHjPLgt-|w5&&gF`+=_yY?eXW(-L6z%zeAVMkkJnzy`L6;~ zo-pPGhVfnuBx6P=ud(xcANB6Gf?A0j>KJEH$9M>Jj0aK2IAw-@)FDoqp$~P4&l|6{ zV|;{~;U>nXiy3A-UibI}s^hF=fWu~VzGwqEMGfQ#HIM_;K=#eBhZ@MP85%nTG?FfA zv#q0Mw1yhc3dS#;FkWhWG6P6?eE(Ip)EgKd5>)*ORQ)k`81)P}je1sm@XGiu%HRJG zP{k!nxLo%5(JSnI!6E8>!GRg=qF(p!pc?F;I-0`wV&2W5+HEgb`88C>i>UG&FIT=^ z{}YJc`(gav&y3Dq<}b7HI#k?7RqVJecjcwl(Z#&wpSTBZ6SX3Xs6#V{Iy5t=^S@SC zfa^dFb!@6;m_{9%3hK~|qZ%4RHIzd<mrmVKZbP!&&KWR@|{ZZDZpKk9+y?hEbF>=LT{oI8zb@AL&W&|_5omOF%c zFxi`BhI#;5owWja)af^Bh8*hBnniuL>*V>I4dfr2p@k~HYK9e5`6jCT1gd=541>?J zevY4O^^O`A2#2VOd#LaG@0y`$`L!i8ETYQIS$=KS41=f{9?y8gW?1uh%i|-catTjw zTs$YP5Vp+PrpMP%$9NUB*_x=$wustn3uc%{ZMHcx%%V114Yk?MpKUj#W7J9oVbaqp_*l{>%uvQBQGN{d;4+VTpgD|spn332yLs)S z9$@aF{#K-kKheMcwG;>V_8aPgQNagMU=-_k@(g>Dd2EJVRJnE3o6jcB;4D54%cw`I zgQ&k1NtvM!RqwE7?a$*V`>!;o0FU7dsFld0{#axPHR3^!A3vSK#CLEOH&B0?F^|*K ztE2W#%?y*M4#z!z)bn$mpTYR|zq?Pfr`TI&SVdKAqMlYSnW5(CWz@h%Py{TtkhKes%Isa9#NP>3d5bAVFn_>Sc7T+_&I;z~fr_Xu%n8))T zA4Zky$8Fqy@}qg zHp3=%=%9j+B0ul(1ghhMCz@MsW7PvosE!xSFpuhZ&J5$I2J)zeGpLS-%#cELy!V7l z@n6j>qRLm@qMO6VP=C;DTt0ccb$o1wLsY{DX4pdwWY-KEs0LQtD(cU4vKaprtQq=H z1K6Lk4<y51hlz|sLeHQh5|mH_?Q{;sLeHk+FWT=L+8PE^Qn7?I*Sg> zu!s8VnROh;1=JxN!}$Eq5_mWXN0Yu1Zp&?=X1rvE1=Jy#H$xdU<1th_BdE>Uhxf0jioYw;LVaap)eJKY0;*6q!z5}ZCDaRue$>OKKGffK96i!LmfuFL z(AMADz}jvLb!A&{tEl>uZW-UA_VJN?pRiH1Kp01TvvCad&BnYLjpAJxV9pF_)HfRk zQ4OTb(2we<{siPXC}zH7h6SX4qc(4WFo&v8!#DD^nqkxoXCG#d+bXE| zMww%bNz@@ppz0kz)Z9V+Wy7Y&SKV2+;^y(qdi_62V3L{S%rG2hu=((@qz{=P<>~zx zNKcyK;vqKkQ}-D4U9v;eA=~rx9e3N)(+}oQ==>ifpaxTB=tmujBhp2i7X4pd=!d+~r;~fGRx~R>ug_`-M88%P@>YxU+ zZbogq3JtHBp@kaIsu@;L18U;!7|@a#Eu!izlsNwhggFv4qFGeOGiIow1~iR2L{ny% zL=C8d8qkCpl`%oXB{LLJn|Is{1=LTyj$xJo&6|F}rTEYJQm8}H->^XF6m1Wzn_(5Ts~7QlbTEUr zWyEzen#57^$5G{SsB(RtesX_H-$$iyczg|a8PJT!8$}O{;!kzjp}zN%K#h3eerEl? zHu5U!*iD-ug*s&YW@wMwO0Jn<*5flCpFpi>*=&R&fe)!;j5|hkT)mIY;3&G3xD7Ku zG@}jtFD@hz^jT-Pes{J+8C3?l3Mf>-E2x#P4 zGh|Q|FYadU;+1L$b%>VSVb4#vdw*%=+Ng4i?gVPUhj+D2yN&9vdsohX0%3&&jl7BK zcoyTEiCaZoO3SE*bEpPSN3DDp_3>N9<9a)#a))=Za+7#n;>UNk7pXI-{%UvT{8xv0 z5@aT4rchrvPN2SUd~wIv=mhoaH^*kQg=%O6zrnGdLA5jO9^b*@Yp6pogPM8W4Alk! zRZJkiD}Qh{d;2-{D?EeRaEKMj8A|&hwSq+n$+0ZR)xiYN!>P z#{WnAW&9>K#t5jR5!8&+7=PQ{jQUVBPMFcrl{U~SY9`ZW$f8yvjW^>J(E%6y0pi=J znXjPAFPq^adnxfd?*Et1Z)+K6X6T|C>fjI!)ldyhq8iGf8X7UfG8c!}GLs}Kz0V9s zx4x9XSqaNydu#8XPdeDsJ@Bd~AsKWxPqa3QEepG`=GwcrYl#DN{S5fKHW+`PGoxwL3yNXXp~;xh z#VxI&6Vz+PbvKV6U?8Jr=<|5O;}^HEfgEA{{BMtd8dybDTrtCpr;mAh-qQy?eJ^7x zw}YBd)162C5lamZIW$xFW1Mh{?pTKNUl}=17t`4(gBE)*BWGZPeyi!uOD|XoeZofa+!#W181z zW_dFjLd|T@?MDrGjp@rpw~BheQN}xPXbPU*$PqYZS8v|HF1a1l?r(d16?N%tdVIm- zMbyB?%`k}CLtRFvj>~S|9di5em#oOyV0?*gT<#HwXO7x5vlwq0)ZVzb9$%fnE`AYL z@CR5%)l0ea*X6k$@e1mX(I=3sQrV2ssC&ZMb<8?`lJB4MPp8<33wQ?#jNu13hIuo} zqADg)9nPifGv1SH+u3q#h6B{!gzlT6g<7FiGt}{mobELMhBz|!%&VK^Y8LeNP zgi|v*#w&;)nb84WjrhJ9?P4GC9W&a-s}k>;(I#Gn_=Xv+<0ay4GiqUi`0BMd{|Q9P zB>b6U-ZY~{{1fp7Gn&Ic5}!4rI$jX3nb9=X3?A!kNe{9oe3W;BGqC7w2;6rK_9H={oM4e^8-opXGCP5jJ^PVj$-ADhu3o)T{y zSRmTNUy-nDMm_v*;@f7lg})@eX+|A9A---#YxrNpTV}L^|4Dq=jF#{h#23wI9*+}= zMrqCh(G32a0(CR0;(rjIHls=Wcj6T@D&rCHk{ONT&xjYyD33oSK59lI_!Ht;Gs@s0 zzyDVniUa)Xclcupq|7LZKO){|Mi*@H9}+(|qfLZM`maxIscWg>IrrH6cw_rE)Hs7g^Po3zh(S7m(Y?KjiO#L>EiKhuAmoO zG%z~C-*Z#jLk+ZppVaNv3=1Bgzk>6hj4(%nI+{jRm_#kn1m1}y9QX7yu0neAd1{6& z)Ekdww}NV?$JJ<;CEqrqbzCKV0X5-ylh^+Q)X^0FYl1f-_-Yy)!B=5FYCsoU&g7B1 zfckU04C<>`i(KB+@g)A36{?s~0kuN?_)1nNX-219^+rfR<`~nHescq3ZEz zk58dGDx%8wqXx3gA-UPiS)ivPq4HgXmS zDNpG4coNmYDK~LdI7Yn*&2kghOi#FZ>)rAJYE$i@@;j)#vTlYE?2zB#-X5o$VIJ9Y zjmuR6YH-RDF6S`K5*=~#-)ClrX4FH?Y#DXdG|i}n8sG$ekr|cEFzWG~$45{T8bp;( z;`grL{@)h|6442-F4Vy$&eOq$87-kI%;1;kpl*fPNM| z&#RV~(EgreCQ*`rDjf0hR<&`zKJ>nOQ;oGKpl!{)KX8GVU(9a zis#Ib#&0sPL2M9+E_hv}k@awvk!_pNI{t|Z(i*D6CHyP{Tr@+?<5iDOqXt+)l`r5= z>1fQ1hEe^T9wrj6rk@kN{vr_dNVt-W4yxh`_ULHY46`1e@pv88Q3X}Lj9P)B$MbH| zt^e4{O}Ke{Gv!Br+(;yz$kXT?2^fYwBZJeV51Ao_`XHj;)03Xwhi@QVFC6tj#04)H zF*?V7mi){Nr+63QCuTTCeGtLF|HDm$7Yc`FbbzY3Z-!me2N64{0rkw##rUHd)C4xo zuz?y-2jh=w%&3jmq}??$v`_v#jzLC1`i@k%V8IW>i3(CjIyVPLre=o$lM|c!XM^9o*zB>6u~O<86R7abr@*ULq-u8GCwdtlk zUPkSWAymBu-Zp)iLpN_mlgBP6KdHQrCjMYoRH)l(jyaL3(IH;Fo?eP$@~ zK1`dnfH$J!F*C~Gm82hi%kmEz1XN((jP@|zG^l~(P%ATHhNEv1w=rmeaKzgcB^;XJ0JU`6s0v%CCELLNWLK|wd=<4q z%c%SR6lx_V&9MB9L?TcA5~`;Q+@_D@VXglsDV%8FBs@JYCr`uBvAwH?r37X{@)~^nRVg>8pJR1a=DIQ zz#4AhnCI_*-Bx79ox}|~8uNIcyYn?G*TnCWKkxBz>~P2nlKmH*e$@-Q6Zi=Vl+9?w z(|3ASZWwjn&!7gLMje9luh>k_%+UK6i*K7@9eeDRwiz`sKK~~P{2iO6Vn#WPHwk{6 zr5!ZG`9E9y%nYZfrQS!C-$e~<2Q{#5)WFtIhoEJK8E!C&*S9(U34{s>UtweuW;BM{ z#Yuc71M4%R(SNdzQur|j)^CO*PHx2y&2WJ6=EZpPqK5nzA}@9u zwQ&oC0&2v0)QHoljt9-q`VG#pTZUVBvw7Yf>)|zchJ-OJbv&QYi9>lZXNs7 zuG01Vzv&q>N+3S%@uJ7`9v?(qNcueejOnPsUDO3-$BY(G?aX+7#m#$q*5iHH(1k|p zg3-Z-j}+B#$8CE0yvGk%jztd5z8UuLCY0}?4nY^+gd38%w1>>FhA$%C`ZVW1 zfv`%#4cQb;d_5Ir@juyoGx$mdSU00-{1{6=h3hzpAH@rfi)OrwTA@vrLyze;%rNBf zw8u}Ft@g(5CmMF_J0$4X*HB*+-1@jRuxW-S>SOmEdfOm>4)tht7PAa+#*C_{C#TbR zeI_)98d%{Y)_(KDc6QZJo4eYuKo~{6uOG&{(?HS-^m+b%+Zx(LEpf-=OPHs8&C{nn zeas!fds04){8t(@qvH=*JB>pE8sWAlY~h=UZ(@a)%Nu5BQR*$gZADB{azSVCPl z7Eo_Y<~@JT^Jno_I;8k(4o%%`gc^Y}5~^mHLcPJ5M0HRxLmAa@2{o{y8OBlXcnYX@ zJY!~*M|Cu6h8*7W3SLQ>A&d9m{r}}5D^N?DA%zhQ_Tz79AZdn#r(b-~($CFsiYkBN z>BpXa=;;TZzVGR~7{8@M{c8%fo&x&%9menJP)ogOh7FA0(_#Fc&Wzfq0j`;$g=1{0 zRWq#M`&ja2%da)fu!tJK0yfmqJOK=4)UGUMvlPO3H0NewA;;~TDl^hta5K4e;hT#VbqM% zZpzco-)Z^ts7vb%>b6@$T^FX2|1MARfA7Evd^`K^a*4na1;%lOnH9`v42Oy5&1e+g zrj;gU8gl$`&UHwnC%nQfR+3pLWFyMP*T9rewKQI zrrbVvpB<({v}Z}wX4FQ_Xcg6A(_L_9-I_b)PPj#P%+0yOZrasy zUYo!Ft6eZ$0^tbX$jA@PXb->70P?7T4WkB@Mh&dr)pQj$m@ zp0Mmzk^f55W>i59ENc-mi#eSi^>{ z<*NkL!4fJy=kc05=B~fa-V?Tw|1MARf3IPHqmp{VZe_{hMR%QZdz*5L_y+DV3uc&p zE$6=~PLLqSQA?RaE#)w3DbsGhtBXZ^%wOZj+&yr2-EDW%U3XjV@@xG3uaKYtjGW;)t0~GcHNFUj~aLlHSj6a04Lm{JLcxx;f4p&Zoivw&lY`#?t#1OZoA8< z3CyAZxm#`x%aaz>pcGQ1z0i{$}Sn|23oj zd3&R=#|F4F@vfVGvBfXu?9zK~hBm697OJ5|w}N`{S#k@gcT{6Ip*JLE7)8CK8kyt# z*ITMA2^bCIU3k%$F+&pdR;drwK*9_cFS3rNP%CoyLL11gyM(MjtU{j|_MT%M&bU*k3YBMDxd}5IJu8uTDINDv|NhscyIr?|Z6SyI@-k|V zEaEG0_U~vv{`da~Xrv`GBvB8M`%p8x;41P)JjJ)-2`u%1Wp~^i#Rd(X)~v%rchg;V7u-p=;HI#|L+*YvI(s^I zMV9R0IA*kp@vg?VvN8*1sC&HT@hZlL1XaG|j=6*G`O_@F`_x4I745p4!-kf6 zgn-PVmOO)M@a!q(5$X!Li@HK?qb{kN?z-D@m)%8o&aJ!CZsjSQ|7xh@2?ciqbuY-8 z(b1D_U4I=-QQf72K&Byq}kIZNbpGbVujGFia;!9>UgO6wb zmFgCV@;F6-Q8PNF_Tz}3n9&+OmUzpIsu+k*o6!(X5>K1aF1LJZ;G>Dpn^6%T z#r`Xe#{s_o!*D7TI5wjuK9cy784aWEhW+@rq$ka2m{BKr)|JJxI@Q0k%%aZT^ge3y;d5rN35!7imggQHRnYJ3-ako(oZ+g6gbChel)2NSb zCfy0QMeJ})8{=tj(W+K#~U%D zQ8UVU`Y^tj0Sz&dVg9r>?oMorX!=23UUIc(wu>#CV9 zpuW0U#7{D_aWfQ9D|yZ`>(HH<;RvrsdSjo!1Lh`{EhE>!Xlo@0~jmwi3xZLONGi|L%2Q}k1z8TkW zikD6;Gc2RZ&AHQV$sKjmu9j2fj~`_2#&ZAP^n{k%bm!f=JLQ($f}3+QZp!ULz4%O^ z27bXZV>m~>_&me6bN?@$D!_}+6TCvFml=-m{A!8Pp&2dV?>JrOEWb8uh8fgdu!i^N zP*%-o%F`=&Khh`6sOaehY}}WOF#;Hkdd3Kjlb$uBAx|H~`;eY8qok*61KpeSiwDF; zr>FrPkh_hi7x7mC-GmK!C{LP}B4I4$ye@=^#BH9pvnqdLs(+u_X z*>N)rqIP>9>NL}FP`ih$yEgGYYV&nb1Dr*bn`u}e)V#n1t}*gij>kV@0ab9!3>h5b z<@7$sNAHw&a0K@_F6w9p)zKCnQGWw}g{$~w4#|?|&$*4V2L@5+xel-{Fc%z9HFSg- zJaBhV`8|(!-8EGCCAaQYQ1_U!TSV0#xBSNCQ43ri#{XiZgQ(5Zk9X&oC(TGZEFKs; zN*$fJ2dH{GsCwIY59)QzXv@<#Q0;ZhsD-!F>;D=7E#(yEDKKe96}%hq2{Rf-t;CRf z#?HMt@nd{0?xXT|-L~hidj1?X$)7+Ss&TwSgAtDr(2Pd#FFCe7P62I_F6wVJH*k>| zX5D2@g|`r2MCH$;>eun-e8;OF^%s)|Q6m0_NcYXKhAOv=`b)|xHuQ>S!ZXI*B)*vR zCOd73f^&E`-Xl(-?sAi6RK{)c3#b7e-qSkRb;nT;CUSU3>W!GuF~>&(*}Dhlzbdv! z=;E?x%%dvSP!+3YG>tmOlXzFsD`r$iH8_U4xeR)|&pqS7>y_0Z9@0+_^~!4X?hU)$ zE|4%vgY#xoLp3;ws#ru-979#ixx;SS?RT})RPKxoC6C<$cgNjq5V#8+ZRoCR zHGp}yh8jo(HIM?T;X$lZ?t-0qXWBV8qeE2vT~xg-RJ{(W-kRH3@xYQh@6NbYchW7p z<8Iy^#yc^9j2ZQzCbG+pj@Uar%#pusMqT6(H!iOe&@pbC(HiO)ui_m@UooR8)Qqz3 z0UJP9xINSru7}!7Rn*>@K($*oqXMeEF*6#*kLdHi6oGRpUa$ew!M@vbx7-%0gBkn? z9&y}sX+AW=KB|7#U3Hh-8C3lus{SCpOy~az2k!P%Ji^P2@X(AFafJAS8C6lw1E$Te z!FuZ+v4ZcV{v2vRvu4oocn9fctouLUA>IbJQR$o5P)5@e7Vxb!IOg#jZjqlxRlHz5 zRq+&+-o_Q2Kt1m(W0nDz%qWk#kmXPl%-}~*$3+8PzXRvLM%?DWU|7Xcs@Hxw;hBxt}xPoeb*$m^T3FPq$IDDD&Uo%U3#s%xGj6?h!E3u0o z#d-V`=~Yw%lc<#|qUw)$dfM&x{PWve{sF4qE~;J|)!stG6DCkgKk6C1D{TNB)BqMx z`8Cugn{-Fq#^6zSAGmw%p=Me_ zb(nL9-9h){)|S8RF1rivtUKiPyGO%TuN%wx-|>V+x8{!FCwVNFH=_*dOQ|Qf;yD3d zNbpUW`;$NFL-<&wNh17`APg#gAOVR@Mky$R0sX|C^|@*(a|lf!Va#` zLC*~99&dYm4b{OCs)LG~byN5>(z~}vBp!jA*m%4u5O@{GdeICEcoWiRQG23}Z^CKR z_xUFArj)OkVFF)ByljRN-hfxr1$;f_v#9ICFtUA088hm;1?Rs;dXlk`ZKL8_ID;K` z9o2CgKhHa&H8X1A`&hwMGiu^@SfM2|ETRT5i+XW8gPKqcwaH5v&VTLFA_*9VZf^0k z8TwEawrPi3Vuo~sfErGqWC{~rurkX=_SjDH|{EgVG zK(#*?r*r<-321Xv@ZngFGq~H`&?@er8t!0xC{P1fz!$M%v+lH~mrw&cy@8dRM|C)h zS2EB#{+@|d@evI&rU*P9hfp&)y*}?ua0Xw;Zmyf5gwLZ~5t}%MIxF&cEB3~y8FKhy z;v;6r;w>pRj5-@q_+`$Terynk&Iawm)5WK9;n^~yHPpygQ8S*$S!O(qPa$4$%cvC^ zLzT;7n}H9TA?5LYk0(*(&#&j_|LOItqhnM9`|hr%w@|0uil;BSb9j5wYxof?;d}Ay zx^}jlnqeQ`NBS;)3A^}JCNh6r&VRk&m?S|Bl~4_hpc*>4j=hlRqE5dpGc2P9x`a&{ zs(HMEV;s6Zk58to-1fE24R^_{H#{(oTIw;6pA6Vrtz$FVM|HT0df?c^E3xYFNz}{j zQRGA@<;-XVuSq;>Mkm+ey&vVaQT;WR2;7trFQ9(Ou#W0z1aC=v*d4-K5g+t;zsLJL ze$j9FXQ+B79zXK<45QEkh<@zS{`p_DY|+P@8NK+32MOGnz;CUuiCu-~XB*pxs(FLkV9`yl93D>KG5< zsb+v|k5bZ%`f!rHkubwql0Q%&|J00*QTaz^IK-ziumj}ZALBC{1$dXVYnFCA&c?K3 z?s7+r<6M?wxj)43e8xSVMt%CtS99Y>v3sZ$SVBFVs-lj05nslH#xVZ=&nN*M^C35h zYUtt$OFwb9-6eMs_10_F<5Q>=sv!HgG+{<%ya(-%dp>7Kg8f+Hi|Y*qqEQmGL^(4I zBm1h9F{2?=!wHwCq6zj@i9fNI5qWX_6Ehs5CbWmD*KymZvtiAQT32KJRe%qQWBK*c z1pBKrYeqAufz{1W#u_uup*qOmGVwmt)9<4`Tk>sGyKQ7!l-A6sg=%lr4D|*99h*_q zvB|m_)TT?LI+|jG=q6Q0T?t1}7o@BiG8mUfb(}&LtJH5sNqh|D`^>EujXs zfXt~hZ#JSi0$P$;Gt}^DnlUoi(u7+!qY|AjTgP#8>gU9bBE(-Bu_iGQD*6}I+1?k7Ajt}vMw6l+C+`TpDf1ZYV zBya`{bn&jZi8rD^2XBmR{7ceXcsE?ZY0VfPqZwm7V~l5v*VK$Lo-y8pb}Bf8WsGR2 zcx%r8yAvpoa1YGmO(~GWn_(93NqPpyFpW>rjPV(oF~&1y*KySwIK`W4#u(2SpGZ6V zIE}mbHrnaoo3YyAV|+O2b>#9rP{nx0 z_&D0B;1rheO|(wX$5SAOPrxiT$;jXvF^$jDjB!RY#(2iJ;^TPD7>6}u zjAxATrp9^N+r`h*P7gnWUHmL=;!An{H_##QG77eFlZ+OA4p;CcnlV0CGsbwv_$uOc zk5^GEFoky`UGJtfkTQOqc8j=!1-#MKIK+5;%;62V{tsjc{67k0@Lw^FH>5xc)0o6J z(!u#HSxU_qZ>*Z+YQfiL0;@;qQ* z5uc|SV?1Nj=BnduNUvgijPX@8RKZ0oBR8IbB6hKW|A={fHTgMw4QBDnq-U`4PXy8g z=IJ1b&!K~a;yRCSLBqsPQSoEcQXgWT^nKJocJUiD+{0be1BRQia+`Q#?BGqXjo&1{ zh2O#zz5gE~qe;R|aS`7{2eTOOYP^+ZjPZ=|MO3Wd9G3C#nLrUgi3R)==JCbk=kO(% z#ZQx-!3|6+UlYCs=l|alNRV(XIy%o-N2kcEpMhi4%n$KaG_;SyxQq9vp&s4`yEu-U zcx&=IcpGfveMxWO{cr`JLc5FjSo)i95KsrRsLfT!0nHfW8RKnfsDj+<2g+EYp&}Ns zfDgbt-j4hnUWr+JAn6%=5T>z8`$>E{?I%$EHqLMEyBcpo#xbhnLwpPk?c*fw;_GOr zhp)yiz6Lijkl(?_VjEvedJC6u1)r-KV_h@Gc*4kp8v}I$8O<2u8ROs4PzCE)#t+g^ z5#NUed_U&#S>)&N*_cIMW({QU1DM7aYR33d%^213xt_R?eu{VE-~SmnCJ@gUKTSjX zxPiO)2O8?(@34#KxQTyHeg{8;dM5OH()CQ}|8NCgs~O|ZaUSCt#Q0RK;*%N# zrU*P8EBIS1s0d(zH4j-eiA zJ&AVe_;{@16L1P6@+&vx{QoNgWfGo9MiHm6fX~p3@oAbd#xurv#&~1R7~>h^BWWjr z6+Gv~-6HLr;sPGyEAS8>MgBfM8h3{pT#L!*k?<<);*4gD@8QP}+ZfLngJz5m;E*&i zo-tmPfy|@I&0>psb$mBg@trt@Z^sI*U>VzlsiP#+sFUGT~xgu@^)^ZiyCnJ{O<}H>X5KS19}el1=MrE z2T`zz)68%YRbd_mhs70#HU~Z??rwd@2&fPjzE=+ zEIt)8_)I!T;R|RuiDf!UpgKC|x!+H@SDfPYi67%ni0e7x&rr`1k8l@1teN8DsK1Gt zKnHbiY2&qZ{_6pw8eYNMGqNV~_G(}e|Aqn0B^o z;W&kNBEN!n#xhQjUc^UW0iQ+(Ipm?kKo-?;1|LRx8q=hwZp8Voj*}#ulacU(=e#F- zC=H)t8ISQLG<=9J#C?1b?&9B&-@}Jt7w1UVv)>nE2cJ#5diMJiI$S{wq=|FH7t@^o zN|+}>ZyaWEgp4|BU{!n%4NqYUEBI3yF5{1|h(E>xzL)$wz7KPFNO~53f*E`z?Wgc% zw4X%vn`jVF$LBoCx-%K4sE&{Evov&wo4Aj>&mP#t3mWX$4q z*ui&^-^O=i3x7cR3Lan+UqSox_#V___yYaZ@#Vb#AJB97D=0XHKcj&PMvSnGe}zSS zI~DV|iaC534P;RR&7kV1F@Y)kFU=HrAT^M{k5W&M^;>w1ktT}q`M*!#$8@}lhuFir zQL&48+{Cw1v5gu)3wee&u!0&u6E%QEJg5FVewKQ(xQTUqFZHHS)=(ejlZUW7XAiT@MBb5L^UvvkD!5B)WGVf`c=FtPT_Bvbz$~hP zI{qIGRPhT`oWd_+1=pxpL^V*rhckdYs(ubtKZ`dYp21&IFOC0=DO{&s0#*O~I=o=f z{r{AJ8aPHZaEL!;0Q-1PD(>PK_Hc!Yo2UjlIL-jtsQN8b{T2LQ>NoM@)LX<);5@#I zdUaI&Dn69&{|`(NPy-cI17-XZ4HWUmR4m{j=CMu1EUJMFKA8GxRQ(jHeiARJpTHkb z@0{nh2Y8Afq~0N_+&(sRA=oAGDGK!P)7Zs$hHe}0O-C(MM=PicQ4{Y+`l6@LV~6xv zybtMhPp_gnoWkESunNA1e#$A%{}zEF3Gbw09`%|phkru@SyYD^{13{d@y|4n!ha{8 z#GhjVkMW#O9X>)k$EblE;$P9uKB}Evd?fK6&J*umoAX~I+a%#9G~B_v(@-1lfh~L+ z4K-1>=|#K?4a}n&oW=hmy^d;?-!UjF+&8SHS{)f&9Ea|NA0=9A1@- zEb?K(Kn7n&!zuh5OyUjcIDzW;oR3X@NBSwMV|`BeAlf;^66*897wFL9bFqid!!ACU z{7rlaHaY~JPevPOv4zi~;U+$r4i`}!%wznzA8$Z<9W{_D{*m%isB#s&KMj|$h((;C z-2&DzkI%v!K0vSkvjiSU!3;i|j5Iz6Q&^{A{-=K(W8j<*gw(+)>S@?9UZ3o_A>bQ=2p;Ey$1sO4AU}&Q#0-91&;QZ{K7lEm(~R*InlYb5#52Zc z5kL0$A-*FyIsZRQMv{b& zU;jC@KuP{w%1c!_ucRW6TTqTw8NF^hjeyBWL! z(|C1E;Xjg}#4lr_K_E$nJ`TSIp5p5n$RX<9u#f6s7pF+?;T=iuVtkD8qcqgPb!_AR zu#zqOC9dFqV-r6{{vv)H=kZshH)aW(5~$;=>0k=y>7XL%xQsg8ikQ=kQ61;;6Eu{= z4rcLxX(xlf#x(v0Q}{{pllUo2;2G)q`2M$jdi_t}HJUNLL^H;C#;A9xJ-mZvjPZ=| zLp0REHn#DE23vTHEBFg+;)ls!#E;-S{wL|P_+MDZMSlNlV2Z%3W{mNSQJ-uSF{>G4 zJY(!5oG2N6PcHE8q_q~l<1A*dj^8G~ir>L0 zY}|s33V~Z<8Q;u63aHJN$J=SfsE)FD1@R2h_&^%pOhYML#w7lmW{ls!^Q-fD0G{Go z$Unxn;vs&M^nG6cCB8*qmxPzoVHf!!;(<+62OZSrYvYxgF~&2-x6x1&S8x&cX@`xQ z*h3Cy;@eoqx07GRciKToI ziQlE+1n%Sc73>*S@)U>h7;lY-_&xIX@%y-ow;{dPAaGj(U0kMv4#vk=>6$UdGsf3a zk;`ym2^aCJ%wQh>8E5fdu#T@IzlyKNDf|lQtYV^vWqhe7jQ7Pxp1>)A9LC2O|BHAA zwGwH3FV6#0_&!YH`!RtJq#Pf)>$hVEc=;8V=Y?u~$awdZxH;*&sCIk!bOzML8uG?8 z@m`((yh};Ei;=bQ-N@^~#4{+cg3rVzzK8ThY~ehWB@PC?Y#P@gJ-Z%bj=t@h;v6H}OH(!TVwxAE@Vl%qnp&T*3Qe6YqzM$ai}N=JDP* zi$AB~Iv!&cAFLVUIF|93SVRq|fPbc39{-3r{1awz1vA)q8-X-|3ryi3Fo|!+1ik}# zsF1in4Ikt0k%tuVlC$IW!vzDo9_K|yeC)XcCa%sQ*hCG4`$OVSl;d(8*K6T5S>Y94 z|0VhfaQRH!jwN2iTjM<5250eFDPSK);Q>8E%JS?6A^pj5y1kcr`#@JC-a`$ri`S#WO&r7y-h~d^ct_;Zj|3ZSfKNFR*C)S;H^4=_6Y2AKXPm_+ z>iJ)lz*Fg93e~~?$JE!yIZ>T$Cz(k$yV=A=@o}|SSH%j7c5P9y59s<$E!DNscCFZM zTiQ~qEv?#@R@wv%7&SnUXu=X9Ld2j!f&`5cAVP!ySqK;*V1NKYgG31$Fk;a6zURL9 z{hss3Ugx^M&V4@S%w#e<=^?y;u$%C0+8IX^(lg(-F2aSBU?(9xzhfIh_+#?xAml{b z3GXI-8zF7GHZ$Zp!W!{94K&BE5+0{1EEE1e`u`tWkt+Y>IVJoTVV3aUglWQC$T3bx z+oml_cs?~4CgcW#geOVvC*;5$!uzYHGi#E3K%@|-h?|xPn z|0@CVgsjdIvYg-8!-0c92XGQ0+f5{7yI#n9An#_m?=*#%)}d~Px=mAGb++leVOs0| zkyetxAka_9t#}C8&NuOF)4;)6d$8z%MK>(EAos=3HVql=pA3IO_Hqz%Z+d}Uzz$$L zp*A>#Y_EgdH{=|X=d$>}L>nb!ZIFK>@OSxs(TkiXSF&=l3T zPx^;Mok+;)UP6xQE1ql0x7YtFT7F9oYx(Usnl}4CrqP$hA3;WhT1JFgMv!}0?z`$d z(|IGc&`|e4-OXyw2=WeKJM?YP`yA(C6%`+r2J(d3G9jGjTS^UR(;S4_54A^A?>(dL zg}MjoZcS}%KeI@nZikv*tTWFy>WsSh7qm^NwM{tB_sAJ_5Nbcv9!>ossc+Ew4s{oB z1k5_wjK-h?@^;AESnm7ujC=7RX*>yx6LJz!LUs>A?uXpNa^I-)&x}0OJy3VEnnxb; z4q!Xa^H&=n9h@?|A^q(3rxkfp5IIGZbA<3i+<s8D#2c^Z!`3I2>p=Ou75d8^~gzfyW@UVsN(+f@KjbX!HsC%I9W;MyX zAnyR`fc0_GP?eDFiiBDkz27zUw)H$9+HOKg-TXB);GJBj( zcx(_QWP>1~Hhz$MAa_9C3+w`R0NV*UP8%V|(LrAPrNm1DgFrta+1pJXs<49tie6xk z7?`@D?}EGor~?*%fe|6(1hRx2F9~@N=!f0|y+f1xHguS5+Ucwpc3r>`gdDGvkmGeg z?rXc))IB;s7OfF#tr7CD@k??T9l%~-4KSMM^EgGQ~4d{p7 z13ka-hV{M?mzex*?R2fevD*mQ+n2rM%>Hwa*u8M6$$$H#pNiQ;LN@Cqy{E8TD+zIL8fz;am!*7PsQtTXT>g>w@1V)5f2MM(f0v*6f zgdB`t^P=Slxi2`_)YDo2v1qG=tSu69lsx2F$di!!hFoTv*j~RAUWA$#p_W_TsWaYFWw60&~~azErA$Q@le-+e<&10H6hUKsVj zs2fIIkaqyvp>Km;2YK-(BmoQp{e%We#zUxeJ39oYg`=qJ?LBjon@S(Wz5^a@`wM9Zrn;dEiw)On4XuAou zTzjuD4b;w29VB5p9kBi*#39t;5VAfAj6)xVo?qahwUfQV)PC6rXgi_pfVLg-HkSKN zUvcKT;RZN&UTNxV<5y{L2ipiG$t%xnEhAv(xzg0$If)qCO(bNyUTFCZ87%LHoZpn8 zrIx?a)YF^4PPF`53ijgHP_Q-#++jRj)5VBn-A;;-}+~*l)a<$ig zDB3C^YxxxsS`M98(Wi|O&~`%G0c|_vZIJ6A=l4Odcb<^j%o1``pXVymz_DBl!omUU z1@;hXV?oGvU66MG+o5lRUI)3)d^H`>dHUd~wMVG6*M0SwD;|@1& zd+;UHd^mr%^B{ zjP3Y|FfG^Qb*A3V{6It@WNng=wLzdCdJpuzuItfCFD!f$uQzqI@gqB0_JmqCQL@vn z2l?R~j>ym8FxJl&%PJvT771DY!U+CMPfvGnm?$ADgM_T~L+)X@@4*qcb*%I`%Y8%@mlLpJAjj5Hj&LJd@tlZkat7g1$hUMznSK=_?v0=(?RZY z{V(ks{GBLky9rs_MW~I4d88@b&fg7bzJ!`Dp{6a5G!1FvFJd%bLe~1)Mx9ybBw;)L zMuo9R-!m}g3E3k{sCjgghjx7ugoPg#9#}Xa?*(=N`6~~OM0cXKNF9*-lB4J<$*+i( zzjoku9E4ilb=KC&k$tQ5hqXmQP1|{+sk5DLsI#^WS|*xy5@|<_pek$mCN=wZ5VDs4 zFxGX5O{m2tWVx?+qiL9)?sD98=GcIOKr?7EbPP5d+6Ofmx^8PSIP^}v*)VCcs>JmP zeNx|KDCx`e*KP8c%m$~)Wm1)}DPoG6nhc@laI@JEXbv_v8R{*K7PFz+Qfnc(C2VOj z)GT$2*-)`msUB<%wKf^z_SQtJ*${1w5y`dYTMdTHfb4)KLw-Pk{#FOn2AB<{0cEPY z&UT+|HaO09o^3EV&vBijH#E+6o@1cDj&sb0?AbZerq9mM-`ctLbII%6GW|`Qo20+7 zbK~by^XJsbt9(w4yvpZP&S^442iarP%kZEG{ViWuxlmOSmnJVwU8*Y8%W9X^FEbn5 zLp(#whR~4kkS0T7XmTj^`wGt$6!MBV{f%4^rN7lHYFE%WUFW=xLS7fUPE}ktxNq>> zpep&1g^|UPO$P5M|0wbt<)OdMQLa&{;=eI)WAH}RuB5v%UD+-gqMO4vHyHvq2XCfE zZ}w0DcqMw<<(d(!u)iuWG>JpsZ-x8q*ty~H2zKM;7pt}4-Sv2pQns!|`< z80UD9=JLVFgV6_@44GeNe@)WgHGb##eUqX1hteNt;Q!$I0}bu?@_1D#{;Bk*@}HUv z*@touDN5p@aN)u-x zCkc~J>Qjs^r{3+<)5JZaPd=khJww%+TVHqU8*ZvPX6l_Y^{$z;f>Sf~X~ya-eQg$@ z!=rb4>|_(0t&h*vCuWl@`kX%Y9HD29-aCha2j}QRjPW`81Y>rNKF3&^qc1Zy=I9+> zLXTJPWej`u5ypg9pJdE=^?Am!S6}f`+`3oaU~D|Ecf3IIs{MI=?RgTEpVwEOCqeOf zeTjK+u0AxEFf~t~o<}(b7wAI^^x*{@bAdj;fP1+>UtgeaEMTjkJ{{C6N^+4twMd^{ zL{^@V-Wwu}h4k?dnRpiKy^DE37VDjh^)9ZK7waqb#ri7OldtGgujtdSkY!+rKDdN1 zu|%I-LJ{gq^bN+;tNQe-gpn2c=n6tlOz(|xm{t19Dt&boxp>#={cB0(TBmofBXqCV zd)5<{*Xt{csgypQB6Pf`cfLoMdC#uTa>c(vAJ{-x+Mq8p1~=+M8>vH;jr!_FeQhI& zVrhLmO;}CqYmDwqde0`p_$GaVv9w8FX7p^jNZ-Y&FKA%!Hhn{7|H0P zjPZ;>@7D+VDe3T5ePpXX zx|PPXvQuB(N$A|AckLpR#4df3(Vf?O@+8mf(`WY)=1Tf}iS5dISDDaL(R(X|rJBB6 zBh1(I1x80*@2nHX>-t1pZ>Kd|*GE_otm{LJ^{@1euc(2*R6}s8!E8u64JoIAIx*c) zoKEO`%HVp6Fy%6&T?R!7J#7d-ZHPQg)zl0_dWIo0gR0q?hTKd;ekK`aJ%*fz(Can$ zy%f;tGq`*PRmr_*$lG5u6ka5A|9nGWz9BfD%n}O>$pwUwpdlJ0^U6zx>Py5+3k~Ik z8j+skunMA<8_| zZwNC6`VB$GbiX0PnC~|f7|Z>J3S+(B&|q|JHMqAD`nMYF0j{LC8ZuicU}CEw$vn2z z5NC{RHAETnTMY%q>Q+OIvAoq#VQg$QIJOabw;BA5p>2jRV{DrtzKw>=n>F~ehCr6O zD`iq7@ks};1#1D``^&>;=BjVwY z4UvxtgC840jQNiZg^x+^_{8A+gfMf|kUdJVy)}csW(d^CBvmt{8N(+GkrRZ@lLpsG zG6{cWhdGlYl`;FZA@?;$`qtq8))4rXMD;03V~RqD+EgVw zm9RKXDNQ4EPggwC6mGJVS}hAluXoB|SsQaJ4o|sn1dxvq+nLPRTt-nDiY^mDNg>F|bAnvOKy*iD~+z zQcn{1+TT_D?~-HXU8TyHSf?b{k)pg#sW7_MEAI6qPpwzdjNX*uPf=&0DJ7Ot;#@6m zP)Zw=@&>YwZB*hL35y$*(nhk*ZBp`^2t%8d@Me-{H!C^D>Sm?3ndGr8b|t=rD$b1J z%8(+OQDThQjFQWc+|#dk`w5HvN~xdPifmJ&+mzTgu5MSN+m+aMvUcxOJUiKYrxM#q z*7coAgE75J$?PJzzoG;xgz<`!sF2+Gsp9&SF!!lq&womaOjXHNIc8OfR+Si6>&KPG zamDdDX#-y{{O)1pK)Nw*_o={vT$Ru}C$)6-qt*+GTN~2Dq zl0z*!R2s=Cs(Xq`-cwcgRKomJwJ=q+)9(6|>U@d>si)NRQ)F0uR;@it=$N58XAnka zsL>guZ_H2~GYK;@)$B}?2WG3m*@UIpYI!!vi!Z397YH3b)#)Rwzo0gl`+aJFdB~@R z8KXWm#+dM_NuQl6X`h;5LC&Y<8H+x(#8~mERmQqcZ7@3hs>@I4@vC0OfL{$VhW%=U zG3Hm}j7h(mV$Ar}EMwlU78px@wai%ct2M@kUv=2$QpGh_bu)VBs(!}cTs6cPnX5(_ z<8##nV`{FNX3Wl2bBu+#YLT%#SFJGC=Bjl@N1y8KBXswv9!7tk8ek0dsbR)wpBiIK z^r`kFSJHiIhB4Qt<{689YKgJZr&by3eQJZzIZt)XBlOHuy^Mi*YLGEJPmM6f=BaVU zzH!7;6Ew9-uW5d{GU(NSJ(4O}$9+zJ@Yc>R?ZsFej|n_r+77LZMRp_*7om<_495ZR_8YC583BCLw4i71)6R;uomq^ic$ zT1>6SNR(cwW>ykLR;tmJWSV?SO}(WmO5`my`j#4di>zaBtMRwh#M`6|u2w^<3H|of zYG5_F#n-8cb%g%)YG6H~Bc(c1gt3$wPqD)WHMD`Su|aigB+P77vl~fY->5biLuoaf zrZ!4xwVYNfTynnxyHoY=q)s_@s?MFNYbP~a-Ko}gk}9}c4eciD zYC)|P)OvwLjs2>lNY>^3YGuD#-A~%&Q8jf`O&_IdxT;2~sy$j|r{ikvxLQ9>@rs|T zrO#PiQzJDsTBB6!c-Om|4&k+Xw#*p7g>%ebJ_=!jT#u#JKZ!EDq=Qrk=XZ*%2W6Ez#GuHgZ zI_uqYjh?y0opX&Y#`s*jF)^1Ek-5ew3qo^^VaC8*V~{a3*O+B}X|A!%yfD{TWc2hI zy?rEi_8DD$#2a&s4#wJCW1aP``9}AA!oYlEkTE*n7-MuVF?yB|I+hrnj2?T$=#5Y% z9WiDi6fhn!CYVPf#u#H@xiPrhNHY{Q)}qFGl&ZNmjQKZ=g*QlBUtw&lAauoy?igFY zX$-ze7=P24V9dU0%rUy(HhSJBbi8eJG8R@Di>nAz3A-_!ph_ZPOftq+8{?}9ookG) zHH7um#s>3Z(pX9ohSnLw>j=y1jg|F;h4scFV|KkU#~9dP3~nHFZ8W+!5;is%9gL|> z#`Gq_=w@SVGht}6G0d2?XN%|kBzR62^$|79gOjhjR}o^Y;=@~2agy-M+i$tjAcgmQKRQ5 zVf_i#;V46)!1Y=WKJ5hCn@9Tx5n7F zqzE}oVF%q<3^+_d#;U_qV=OyN6$jm7bWArnrxO;QH5H#Fd49I3Fq<$t+mxHlw;-Q0 zg`Z=;=S(%m*c?-Q4xz_u@_GqfUX$BPcEJ}+p%+Z_`On*D^7oOVw7^teKOFX3N2*)LQ{aTw$M~(3@j}$-!7!W-2cu3`b3oD4}ze$+e0wvD%ch zuck_4hsp6iVKrx}OO*9hIn*!6D zXawgp`R5Q%&uPjqCg(Jz7(EM{ybB3k3!B^v$*%HpQ}ty+$KodEVv+|IH`#++DK2g* zG3H)r%D+PB4>twEgxMucxg~_PB~5k4@T*OcR|#FOHMw6SEWOrLW-PqcRAh`snqm>c zaHJ{1Sc){28C^@8+)D{FOPjKc)ul}}Mo-M%A$|lE~ zguyqPLX4$1o63x?x0>8<5k})pu{dEk-V|XhyxmlMo6wnPawQ0}>zZ=w2t(_e!s`jk z>zgW!#SKlR4TK*1#wPDZs-!nIWf%kLreK;dwy7z;iHB@+Q*|?8bxTui3!%Tz6etkJ zD@}xR#uyj^z6vo}Sq$&@*jGN)4{s-?{Jlvz>i#gw^} zGM7{2mfmR2Y$UT-+8j@t6KSfJHk-?v&6Ulp-E7WmCeOqcb8-vuWX7Dz5W2USJ=@4M z`++(4fjR#H1&!s+@w_>aCv78dcI+lE?;f*%4_QU_nWOv6v3=~g&+OS}CtYKo*|DE= z;X~%gA#?N)iw>C`C2r(nbLwM4{}FTG2w}ZyZd3^?RdbcmTQmD>gqfN-TjS(v<|Ol2 z%^YVeo-mhA5IRnpohLbsFU|fh2}@s^%U_Z_U_WIJo}xlDp?Md*%^$&TDotHu{?F4z48TH76P4^P3a%3H=M20}BWp!DeTWFcxf%^H)m2 zh0URbgpGyGjzxr-Ma|hoq)#tx&MYNfd!xDj2Jz^M=GY424kM{}rL*RI~FGVePBtI`c%MIoTi#pKgwvCJdZz4l>53w8W>-*KDOJEoH|1 z)Rw|jLhq9;{wMj1w`ncmX~fghTQbuLJ+2n7i!k(bOZaKh+w*f;3UjDZf4-&hJYi*S zOLZ<`Vp&Ua8DVUBOME#wG*-7b))4xWErBGVcVmlxBVje&QcDxoH?=f25r#Imgf}za z+|ppIZfU7)p*Z3GmPkKgWNS-wE63f|65rNB=l}G!mdv&mMTuuy64{nymUQlHiznNn zH#o8_R5dU_qW9Mx6tPg_kkAAffnxp5~mNgWDd4u50X>3)DkI? z$n$ZF_v04-$0YJrTKpBlSfwRip)6{ZmO5kV)0Xt7B(HwjQe*Ud*5dt)ZG1iW?)Q_=WwIyA(Q^k9{#ebX>vEwaq#>!Mnbt-*D+IZ69a1wf)7B6GX zX{kHu3slEb7Uxs^Me1}*b-Kl1@VYF1mxXSOyDg3x7Uv97m1bDVGf3o^WpU23xMqc?(_t~cyVw!#u$VJDqqg~hqT;#xuGg%y_K3Kp%jI9FO+D@o*j$KrX1F!GKi z`VP5O-mz2}6RRxARU|L3vQ!vd35z>H@^r$IVf3%I1Xhzgwc3(qEUmVbSCc%n#u8pb zSX*PMud&egpPscA?^=t0Ej8;-T0BXMH%aQ`dP{0OWgA{^iLB@F>n-l}WKw?DQhC=> zeV3}<_bmSREP?mPx|Ft*(}abzrO22|Tk>f#X>77MHd~yVDL^`7$z%u{8H=Nz18ucb zwp#4ftz;hEW{GVh3~#eU7=zm^A;$bROMx-F&5~nGZ?j~!Q4H^Pi+?*|a=Rt9o#d_^ z7WWRe-(e{*W^$Hnjxd$8q!|-AOEO3H;SVg44+sk%Sc)I8e5c)#+({MpE{kUuC6(A^ zN$#?wc9E!%w-oahMM>u^nY<;NCsAX!#j%I1>iaE?{T4@&M5&@B&6p@!l8mvUC0-;G z|3OROpe1;a8Y`D9l@g)ru*H3tOoE3kA;!XCOYyLs6qS!G)sM)>d&J^DVhJ3fYVxQh zb<~nRO4aHYmf9DV`WIA9)hy|nB~v43*9nXJ1o>u8Sh9?vla}yF4tmm3WXzqkq}LOrpS%*5DCB|0k`1PYC0+)_-)_cTQdpKgtuZl(JV!PBjw)1=6qZq2hIeY!QnJbAh`#TY-`nqZ86(;EAR zVtE}_zrz}ESm~N;iZwUInx8_|>QrlOsr>)+nsZx2yT78BLoX=Wa&k}DuV|6e_pS8xGC3)ysYnXZ9S!fT^n0nTlW_@agH9dncF~gc$CcO zq!0I5BYlMaK5Kx{G0*CpN0^>x%`m0{)^xy1-~YwtTjTRd5Sed{Y8bRegTy^StCz9- zlC|;@jb`i>Yy1^!;uR8=Ua^)LGhu5sOc-BcO)MewylVBnN~Y1J*4R>Od?{6vuUk{E zThp(Tw(`2Q%9ved%`GF9V};eZ!fth~Aekd(b;bx|F>5?Vy>PFzdR7t^R$7ZI+4fDV z^G&PkO)|;6Y0bV#s`^{j##?L>w-)1M5_-oPe#aVlhfG|nt?t!?;nmj2YBF)Gu{zff zX4hDAYe?Q$V|A=046L=?5Z^{k_| z;_Ix5b=KrMGO4b!*4B~Ak+M2dgr$_VoFaLCgSD`M^&70U4J6NQwB|N4-)yaICUkAF zy0=*A{9oQ;t!%MYw~#E7u|_jwo61x{wO*3fQ_yvJJGLzw)~n);CBl@F~|Mt8yLDUjT=*XrF% zSlnwZ?WK|T?6Z3JS^fJ+l-g%a+xJ-&CA!ZV+h>jMBRBs6Yv2HxIS*Q02d(adRLvf; z<_=l&he#VcWQ`vp&v3~aDG`qxwnh&V)<3p3J|@$|XV&Cr*3@TIO&zzUk6SaxNgFzD z4Id{j@8?$k=cG!Ww5Cp4(pj;f_~w(>e#WgSJ0rEKvOi9#D~;f=P)MiNERwrH9#l(vN#18G|@O(y?^89Bvqf{Z zSdOZNownjmTWKd%gS%{@UAFKps%CfFa=UH$-PCM)k1ex@u)fFEU@W)?6y5YlUe-Mz z=cb49>}mIa3|IVnZGpXH;Mr^QGP?HK+>DLAHpf1~+Fo0od1bGy%IMv1^Y15g@3(mv zo%?Mr#>9SGk}XR%e57 z(H3DIEZRbh{-Q0wm?_$_jH#k6&6p_Kl8n`&t;Sd`+A562qOHW}Jz(=6AaozFc^I7s zY%a#c0bBBbjV_;K2W)W`L=M=ZjKu@C5@Y^=t-zQ)V9PN&587M@2^$A&4#wI6TbgxaiLrjz);P@i!?qe@ z`LM0Rm^flf9wCe!vBeo9M{H5X(h*ykv2eszWXv70<&W5Oef07UyNw=bJyR}!l-_0C zq|;5fgC4-8avweM%lZ%uN*|G)o*Itx%T}mNKbzivK=uLHFH9@idkv!h5dRdvT9Wj) zjTXM(EV8EuZt1B5&Hv@I_>C_AM=+*E0`5b=Yx%{B6yVA`CBQ#V3BMD3@p0i!@XBYx zli(w2!n?uS_+^_E?=JAYP5i0{NM^bHJF@Ow_kAp^dvi8z^h_KAI!-+%Id zc!qmOJP5sN79It^03CP%BeK%YJ)i`JAc5baLFLENV_QY^UC`fsQg{#eOg%L~{x0x$ zs-pLUUj%&=+;>9sS#W#oBnha8%aD=v3o$6e;86rr-;y5lk36&eCfFZid*V6pi!mkp zz;7HN3AVxij%MK_h1+#cV9pwFXh(w%I9LaggI=dPUY7(m@Ec#L#~$c6VG5EM;`Q7B zCG;bV;1@gs#BT-v6Bgy&8n@G1zR-hT!{87nKn{NfzX%CF4t~{82{;9O8TXLv-QbIw zh5Nu;FC|VL2%`h^fQDwjh4s|F?k*&dhQm+45`*R7ZJ44Y_zlNo1n8k1?J%0fiAOxE4(z#?f>8O06QU7`+kYm4(HL^WeZqUOQA`BC{8Mq5i2yC% z2=9e{DH^y7@jgMk2J9z7-w*x2F=h6PAQ+4x`waXY?jdD38~lEL(=+jV(BQ?`s&4{+ z25aPT*bl>$j0IneHS-b@YL`W5*ZCm083qI4@YPUha3C7!#iGf=zC$Pacfil(m*`T0 z?|~0Py#FGef}`v%TJ>BW(>hG+?>8{G6b;-2z6T>R4FQ*8NFRd!Eezpu=nrAUu7G~r z*^=ND=)i{a2N%^e~uw8!G1aP!=YENpakeB znuJ9-gZF-FZxlx0PiOP_pA6hE7{@yu@g%tIJPJS?OY1UO#RmpRzzX!Ec`GIR2KZ&X zQ4w!nCH9Z8Sq=kocV8n_J&=#ao;aIoA{25#6 z&%uXtf~5Zo_#5XCr}&c*--8YW5${kNpa03B?I*G*4q#E)5nwJB)dKLtSR+fpH(&}j zf|vNPqz2ofG6MEf!iR&O&&NIKd%%Bae}Z29L3RO3z_Vj8ir3E@A7eFzQC;KP^_NS{gYMr2%p;6gMw89dJ;KmiBS3y`^Z zFhc)}5xbhFg!Ch!{{c3tf!KPT*f)mWDI?ot!ozSEGR} zj|l1MiBe5J4s%FPnrb|8k@To-x$r%$!iR&OZ4}-EelGk|nm--?%dt`X4>Ded1TF)g z@LdTo83CqSga^UbUv)7H;T#f7(_zL#UWWeP7}1eyC}BST{T&Y7ETHm77)%EL zmiKN77zW>olS=}8E;zr_mWz6^G}!ir@Jr~-#R&`t|CLF24{`1M`%m7PsDaxM;IXfz z!3g-t)57!Mf5B1kG)8C)uX6Gqn3M(&;AGPW{jYEl+6n!ISft@3ztNA%MkG*y!5?`F zC?GxJtLb}@(BOB4|LM3iI0F2;gQZ84(Zi+KN4lXO1^zJjJX}+T->^%-JCI=n2KRoC z0@8xLWWVTlVAUp||2=pfoF2^87VTm5xPS``2mGJM-v1f&*JI7;?LU>nVjLD-EBH|C zWb3;{|K7LKKs)qvctmL5_zw7STu@vJ{sg9A82Bk3F|xl4{QJj*+kXzhedxjO!P~E( z5g><0!Jpt&OxyuJj5ikIv%$yXIG+oC?l;oFtKfg(HA40YaHAw_*R6w~9T{i9rz7Lt z;2EAn3UCN~4xbx{e**pkBzPL!fCSs_mJu9;1P6hKcv15kWrsp=3MZEzfqQY;eH-{T zTtM6nu1A8u1)qonCxZV13C;vRfhnC29_OQg&;PGLP{t>f2>3WHLmD#heA@ECZ$DkEmPM@C>E5*!462_;DPKj=-65QLE7NN_)ANcwK@e<8s?f>(H>BK;%a zw;(|~xDg3H4So|6>;r$f%5QY108t1sIC-oCFY(?_`h(yTks$wa6PNKwunoKg2@V2( z9SL@VpTfq~1wQoz9sk_G0}#|d7yc;tuQ7x!aC-1wvws0RfCLwTUxS2pgCFC=j5e}X zdVM&TmDm>s9T2|F-bOtngAfd6BI8pCum>48z?b90WDz^vgE)6&;J*SpX%YPH3n@PB z{pJ;DkoOU4k6*;j#r`e~dSUP)w%TDZIExb?hw@nF#(Nu7DiiKft-f1AZqu zco{ml=FGW-^?d%D&OM|I({T6?FDl}B@YfLFR|udVAo?ow8!$zK>1Fv`u0aFC!GDZ3 zavS*1aD6e6xOV=18UdUzxCjl7M}z0!63q+!OVF=@{<$-Y82Trn{~Y>OBv64~j|9|> zIREe9lL7U3ApHOWm+hFt!Qi*^-c9L<582 zV1a%T^#8?iKOFiU*xB6BZ@@k<0s8-*StHe@SU`>;xZ*<2(ue0sk}< zZKV}$zS=JdJb??A7ZC4V>Y#T1Ujc!OS0y#L3w#U`8iD|A zXA%Hkja8fk--;p6f?tWltPVa6Big!E5?b&TpZ_Vt!4Uiqi|hp~qEE3ic0<1wi);(@ zD`9_GNdmr&qi8(rebC^)F3&e!Ed=<^m*_c zEnwCc!2iV!Qrp>m7?CM-e}VKx=r6}r@*YgF{U|nu3FyH?uS-I?uw?i#deBFQCzoY! zNP|O`h`xyrTY8su=cA&(2OH01#4BN+@PkjegzV`ka>`L+*WH9UZp%u>f4~rr1phOJ zI0nA%%&G_9gdP{s;{mwNKZzdB>or20?hgR`y(Wff3KZXX6agWGg8w{>RkMp~v z2Up;FpeHZ<1cta1_K#ykCPDu%9A*yakK(8aL;n$v82_Tob1=|jquGb8@>2A8CiF|u z;C%4+Fy{-w??n$6gZE(s`oM={gkAu@UrUhI|Emz3qRe;%mVtlEBS8Ee@P{y`dGufr zj|l14L;nVjbN=ZVF5luf9|*1tm3Y^~UgZw(`F{uu`Vr6#gTL}|N)0@7CIPIG(Xd~H zIUEnZ`^@zN_=q|sNbw8c>o5g1@SCYa+Wr5IJ(97C9*zNj_A3eC0#9E+3DMq7FA&gr zSjEQ0KQYVY7f7%jd=?UPf!DE7rNGZMyz$EY%``2VZPg9J(LyqI`{hLm||A+sYf8&DIfa%Ag z*WvtqG57%Hd_l2N68;BwfVc-d$QLlghk?Jv=N954!R?QJMh#K}TM=*<4zmxy`FZa^)FM@xG z4u^HtXY{VX_pqq=ck@iQ$zMVN$57Rk? z%TI<%!u^#E4m^Pw2DA;2IyY|hdrbwg-mxI7xC9uuD& zlAZ3 zhc0cEc)6+#3|ZF&(%`*!i9_Qx(XXQ$h-^Rn z8foCRFQkDbb64_$w8z|`dupu9`C_dYQg z^NA!dn07}lKgJw75pWYaomy%#)vPN}2x^~n$aEFY@1N8Y@6F63i z!|=Bxfr&}s7hyzlf0h9DehH`!6@Kws!X0l5zdSBH2A)U4UEm)g;UO3S`)^?|P zQ2M7h3|b%~QXeh}mBCy8BSV-!CH8Ii$`syrQh4Y`!js_To5cRtMM-Gz?Hr%ZfA?cZ zd%iCXj-snwo}<>g#No!TBw+h;Nx*;x^R%IGIgKf*z9|02&0;_L1L1$7>j#cE#E`)#%J|HE)_+%FDKVU9-sR`|~_r=DKnYi3FUwckj2jWX?7m0z-#aXeJb$b3H*nMq9F5QakJ0@+cIf$u1jysK_1-HEf$h?uj`n;m zcO91@e(Zpr^v=Q3i42wMBaU@Q)!)@~VM zdrle%Tq}G!dT1Ucd^e8!>i3M|OhY9yw40{~cy{`(du8yp0^hXPJ6o@Oy{Vn`?4Ckea+edvVnA8eHdC$5tOeucB$IB-ACc0J(Zv6YvSV*j9~ zx6|2ctq6XBRh|2_@TGk+WW#Z%^D`VqiHjuR0|6O<@*l{63U`M{<#P)>(IbRY}MbvPN@5x^k_d0 z+etqa`yXHpCBH8ta`)R3|KZm~|3!s%qKhbjaegs)z)Qb_OT6`AF}Q7(UgP1v2wy!| z(YW&r-yrtmz@G~XA2C?$bs_Q3T`GJD{ctPC4}m{#-y;qWLojBl@E-7mlO;gy5()70 z?@Iz{@bgxRy$AfKPYN$$A6fn%@t+L-g;o4p!R@v;#Ub~IqP5^d0!i>15*P=54FUuo z7W)U0z&P;!Y3Km$4_xkWpaV|fTmMHA=oW6*+2i8S3IkU}xcjI<3vhl|0t^BFuw4Qa zJ`w#t_KCd*{1P`3I3oJYbRpV%IjX9rxCuJo-{$_F5`I_*~+l2SNA^|eD3cq%s z1Q-MU-d?dcgMV*^a4#-G_dO;4o!~cN5!dKiliSz5Mmr#{$~XzQti%w8!2gHzi-U#4ezF3bmg*YmpGK~kpNTX2!9yY^}nAf z0nFf^88C-@pM^^KJ+XIz4_%4`E*1T|SVI%Q_g*0W!!NOmfo(q$pzr6nT#YFxUM76` zVo6{!_&-}Dz~I56zXVfIL<7HhRpJ##Nrygs8UEm@Ch;F_hoGk*4l4MN7lgOsv)o0q zB|w;doP^8mn1aFJ4m!{CkT&SYNVt6Tv~YScv&NrrihnQoA-yDE9}a;tfdKd*@_|eE zWBVn*@1K+aZQ!raZ&P!FrG28Gv`XwF;D4Vde8OMkxPSHq@mIm;ey#c2bsZ0hL9|~S z3V#;<2n+-dkstE{Ek-VfpAqiIh)kI#{=>mt=Tic9 zaxg>iU%KAs0NK4Vq}S248uOl067Wz&0@S_|zQ8PVm;`SfLlfW;m%Lohy_h!Vte81Q~vrKpzQ`-5O z_>Tv7Urg8koWMv3{%}AXRPeW-65je-3D`AN0)%^o-}RLwFd6)}?}+_v;1gyG?*t#| z7XQp|#Qz`k`f4qK00g_&i^F*EyXZ3-Czzl;o=aeX1n2=@`#qV0f#AR0DfVgF(z#@@ z5e+;j{BKLdKS~|t(y(7B0bCG7u@QBH`>~hz>=uV#x+Fj?FZ{|O;-3a@Pf7wF@GLH9 zCW9w&LDLRypFLCplxYj*a@9r&5CspuB7Ef8vM8GtNdox+!VjzB9|8|kqC8>~z#nu7 zFX5BX%l{UChj6>@3X25L!Qcn<35ElteEOd!|8zd=q{$L9a6#HdRjUVz8iC_Hyk z_){-RfQjJiFB1O|;Nx>*uLHmFCE-1K>A({K@vrG{{?92Az@-y|@$ZYn81Vlt5MG@i ziz`Hy0-iSE<0 z!^4w=_aVR_`sRX5(+T-3SNoUnyK2Jygj}A*yFC9&rc{zbgED7{TbDgn#mxj9~je zg+GB2jnZkHi&CNEpNBZVM+6@p6NlSqadEj44oSLn;&MIo^piOnx1)j1$Amu(J^iwe zroZJ(0*?#-;W8P)B&K-Wr*!?#3DmF#jxHAi=L8v%C}qg{F*ynF7jQ4#C*blqedc35 ze_6$46!e342_KIsb)mro5^{rI{2e;~^Bi{EEe(D?NO-lT#nX-cog_rRm7@u!U`;%H zzu4dNThW(xh(7y!;dStTf%jNMzaH^&bS=omVIMCJ?H6lYcR6^Su5`HM(ZCp-P6r`i z_{_%j8}YvlcSN2AfA}?tcQxIX;}M#S`1gTlu!!wXUnz^M9d|$`ROKE{4r}10g)+pw zDGB%>c;rGEfnU+$3;omG49@`-PcJR^jHN9PT?Nl-Fye1A$eqVUU zL2;P;itun)^rOHBy()Yy0-7%p`%JHFJb}LmUwFQ7KY08m>2Qz6>HMb}MKBfy*N+y5 zAo$~t3r}7u0snNB@C3N!KJlLb{>ygZU=BAh)?iAq;Kwl~ov{D+KO}y%TSm}x1#>$8_d;+7eb>W7 z=DJ4=o;z3g5b&3;k{;{s6@BG560kr+&1Gx5@I3e@H;TU#{5n-QPYstp-%0j%YOn}F z=f5RD^b#@HgH_!N{;OXi!HY$|7^`{+_<2*1;H9F!6mvXgu<+w_j^HU74gTcM^>Y8e z0EcZCNCSEBTOW~t-Eg@3|4D#}qhthzAmGE`$+6um_;c^dzAy&%x9Wc-K>j@m*rXSp1OL%&NC*K2{!;j04Dnyvgm-{%xK8{tdu7VbZpf6R z!Ee7w?1yOfH2?SfR|LhcB!LgE6c-&@t^djNC;D5MX{7bm)w!B4n5qwfo zrep%_Uz{xdJ+!8{ecktmi(o7k*`oU;fDZiFcZE0bY4%?)N`m8{-+7<-`*E9XtW~%d ze9aHVzYDyDMv52Z$X=ZPM~xJR01P%hC_Ijj%kTb=@EG_Jy0O3kdcm(X2pz!;kRw)?$QUDp~AbiYyH>hzPMWgq;TKvrh&qf;E}Wp;b;Wdi>*3zKmtDT0|^)e zKY^`!4EW6#O1#nFzNs>TVLJqe@0S3jyaZHehvUPf2tMit3E&2Q`WqQS7kJ`ku`h$) z`CH*C_<#$9>%cGWl6dyWE@|))Tm^^0gQLa442S+_XA*Ec_}|YH z-V1KRRd5>owlSK&T{j5#{jN4iz;^Jh!z4fo_W?H^mmVkoe_Q7s7gg2u@q-t{115?h z7AjuD`^+%IfSO`z;Wac~B(=Z`ii(PgNv_<>g>nnp#p?;w8Z}CCyKom$WFU zCkrnrDk>x@723P@{CK z`fm?|y`(G95A+ds$Q&oKVyOiN8j@9r>=Ozt}pyp+!gV`LRn=S(_zNjKQD zl7IXM_DtlueI);=1}j)`kf}A2snVwb4E80z#9eUlFG#H)Gqo0x&-a4#;m_6|RKdl86Uc3hngUHKT<1$I4fx0v}Pp*GevU#VIN)9(+#6INL?!ulI zd0Q*kOC$Gk$n~!x5Oo7{vM-b)Ah#R^gT;IhIi)4Ih}>>23`SGG#x%5#mVv0!<4M{l z*BXrW<>HtsQI3YFC}YLWBp8fkgZoopAXCGLpK1r*LiQen_L1b_4ZwZLxou%@JK3Cs z_T!k!9j~@QMLa8p4}bw5@@C$cc#-A59d<@6k-RMd?Z4uK%6`qkx#Xw%!d?=2ab0jC z*r5$P1cS$@;6D)tvI?9L(w4RaZzs=q76xL;2YtZNe$<@h9H(Rtx#!m~*oX$E&V)k+e6pF^5&VnmN#{^FltxbR2hSsa)eci~S+Vr5 z)ti707Rty~89>e$fjK{u1o?V?XuN1Dc;0O2=S%_nK7*^M_cZW!Srt_oOLR)R#2^C?V)^uuEnR=uD2Lqj%dW(JrH>NywJh-$NmstvV-b)y9-WtB_`+c2=|0vc?&357k&!GGQcFU$k~osP$JNwSQpa(fN9uS80fF^j-a za+9h`%xZA{7|1tMzbMgxiW+QC_6i!*WrMVFkSCmj1AX5Dn{I(eT?B7<9UYX;M*DrM zz=;wGRoZ?B{p~ZrU$VcA4hI@+a&;(kqe_eK@NwDF49JIl56;bjTzdl@M85}lq3Ed) zNB;tOcLO{q5u8B%c^^W*+givS5x+y>jn4d@Pa3K+qzgDF8*)2GnD{c}<2XXEc*x)8 zl$36Ud@w_NfDy8tK?EY@`JgHhXPxZOtiQrQn?o!APaY_o8 zLLPAj@+=y>LO!{d4!wo}70Mc+iVq`}G#c^+9i_cm|Fc#?VXf06c~-jz3h^|MwHWf< zqNnD#JRS1340*i#s&a?tQ2ZjucS}2^e~b~$<2g~xh%S?Q=l6d(n_wWFAx|lQfe|zi zI1BPOX`qmaDP=nHMg-65!~a8O%a{8HRXWPPKsgYVg7zC);T-Udg;Ql{3&Z)1> zlZ}H~j^nRDA?6`E7$mEpD&NV*K^d$y0R}tohQS_^l2u7=19<`UPXvIy`XjM5^am#= zL;vZza``EP(X&ut_W`FZ0Pm;=Hp%W-m4090E!QzwHC0Kt0Ec~Kkx^y5oJ(o|$JoK! zvXN2tBQ` z<#jGL!Q_K?p+D$4Dx`!p?8mS5-k+bIndxu3wpCtk#e za%aJT3A}6)$$hxI#;%6^2$xrlT*8QXG54Qg#J*z0R(yZ~Tpr5%|4f-96{1A0?~7!P z6l>(0oWnfwNzUOJav0n1VT8KhMEflADGsP;4ICa!hgYrP`tQXNCB6-XbSn6g>wDp( z3tk{0lXBh@+^8n>kA`7HdGZ!qm3!O)Mb>wsmRE}oF>`h%mpi!r%ijw)M;y!@j7s?` z0$yBB)f%EWG7TN}BnOJ)sw|+vvcuq?X>TLXp+)4v#gG@!ewkwhD#BT@g^Q0Gxax4! zOvu&!h0~!Q!5QQOKY;s@3uTp5B|-9vx~j^bLqsxV2c_Bvtc85cGDOUg^f@YCxC(`M z*^aC7JR4Xgfv7U481m?MDd(IPZUBGJlk_rq<~3~T5^ zT(J@je0dIpk>}GuUJB%MxG7yh-Y9p)YJ`pY<1%YA5Il~Y#dEAU67v6hQaL2+|1Yf2 zuA)IE&w<4>(1w?d7Kah6qWpr>fZRQk&q(4@4s>ei44C}=KX~45@G)MN#oSeIRhOkh z8WgeOd5&-kPm)0#VLW-$1BNgY25-pJsSeYkFvma0W>xXLAjn6$@<1LU*3Fd%z6aNl zW#4)KuiZg|j%*M`1)U9i$nU;|lctCdAeJ$6CS67Q4;Yb!{^0k-t~v<=c@A8xjR*&o z!-3VcCI2aplWSv6=7&Qe@h>PWOTvh@%d;L;8q&c7yb4N~h@#0&*1^F@`NUe4uR9`7 zn3jMKOA1yF)p`^BNe!<5J@~10yZTUA?+=A>zTnt?aBy-09Lib-`CPe>)d03E1=}U( zs}3}_U;i8AwYVYqzxCjZhR}c0(FG00y@rZ>iG(uHXfgOgEy_I*fed+krsO9ZK;BtwC-<52LD(5iA^7r0P18mg?? z4bGDXkgDw82@bvm-qZ|y@&UO2@36nI6#O62R}SaM14$_k?Ri$z;_COuWQ-`V0UA8x z2ZQlnBLZKM*C)WCrPMEc5Av%Iag{V04tb2Mf~v!lTniS-<*Ycx7yWAoU*Z-v5oo`iMZ2bar-2&(Mjo-UvFGA+Hz?w*CNlP7MG4|Li$bWYOS()8NceXfQ_I*+>VGGr+5< ze`W-k1~VvcM|m#orO;ju?LGD*?8Q3RAW=^&N{zu<@xN1}t;KSQ3z5!@>TCr^U> z;S@w9i1OIqz^Mt4|4B}t23|f5az`RN{7be#%7HRA=q-QYs5m1T4b(rKs5p5Jc>FPN z;W)6Dylhf(6YZILQlJ0eK;$*B#)zyt>|}>_Y%~l^UI~TRG2p@9fW7!{I$XI9&WVHk zbNS#%br{7t|1|=f`4Z%F<>i!;N6?{lTfx3`AXt6&>*Yw(;%Q)(9SX_wU?9~7F8&Yr zonGKHj>u;hnGp#bM*Z2)Zz?HVIS@P@JV8>j;s8dpSC+6tDl%Omj)p=;3K~p$o(;&o zH-O7%@caaDBBvm4H|69J@;Fa*n9eC3vmKnlbHGE+0f$mB@uc}|5EU5mQ~klo9MMV# zxOgrc9F{;iBlP7ga6V7krg7j{p7lQrVS8SdKDp}qe{mq6bMF5!6bi?pgSY0f0Ykj| z063Wr?3F*GSM8HuhW?l_)K3L}@eVlnMewm~@G+i4tA}$$IXr1nlh}Y!N(|H=#agea|8@YbPsSUJ2({%_8Jd^H@^hu z(_pr&5vqM6Be;77IFb?cm5qv$7cfFkzYLCNgdFP6?vz3>L$XWm;}vHxWRGtG=Q9FB zN|1OGli*O^b#Oc#toJSSQxhStcLnk?>imh;upO<;?Yw9FZqkBd_2H zGs#7CAc_(E;|e+qW9A#g2&7BmbFTlH`!J$(p2bJxm8v=iyvX0nzQB1-F!S}83eF_g z7({(ure$A&BRJxh~+x{lMqxyk(he&Cbi<$Y7<(^VS zESZ_F!4S5my}u_@?%;LWcoHf!j_AjN3wW8Q9RWL{Sg~>dDk7Nq>P-M^Ohl(Y2m3OFy$^uBcn*w=0>?A6Z9YV1qUzBH zTtNACM8u(`GxNRk1r%1eGG7m{FZlr@R7``b$3mXQ2+kV=jwcUz0bIt29E=C2GNN5$ z6wCS_!3Z>w8wwTTEQV}jBDk2DZ~E_Y8P!VD?#NC?6}!5Ogy&raN2*Pxa9Rf>p7rEx zx%^aVruK*;_a%R>_J|ItI4wIHRo0${!rl^aPqpb3`G@UbFj+MaE-QjOnFfzi?m_vd zwD%nCt)ack)L%e-tL!-)%3#6`7+lT~1>6MRAfKkkKdHnc`f*L*(2*&K$O6g(e*?Gh zgM1bFNDw$dZ91j>_Z-0K5VihGMQ|f1l*@B7#jRU|I&|lHk~3bYXH6w3+}@K zc&SaN$S3uKd}bkdg8Zs7O>H_wUS1dSr<^+)sko}6qSiN1hF@s!gYG zH0L~9Z90YL{e=!1s!gYG0jD7AL+}FXU+)Tjf_%aeii&nmql0g)ROk)E|90EgO4+U=UxYIZ3+21JHW5D0y{#~rc*pFZI231wdoX|M2>$CT+#+| z-wEJ9>w~+gO{eIO<&+%y1iZK*lo8si_JG3AF^~ML_K3pG{h@zbJ%kco z=F(StMB(%P4k(1EEtpgcV+YYR_y+kD^Fk5X&JOOggU6^ph4Savfgd{zP+K&yZz131 z+HlFi)OlWQB1NGCQ|lY2z|+~moD<+Vl)tX_c%q-l4m+~_htzLC`8Sjo{DSsdc^P~C z3U>U5AzQ}?OrnQt7~(-RIEJ}DpAMYkh(0B!k~Ox^qXUVwZywg@O`xj75V>h#I4mPRM^7I zm#g-awPgJt%TyVzHld;r&Goyx+9V1eXC{o6H=c@5wZ%CzRBb|qzw`yKnF{X8%(q5u zLPh>T3&_XJ0Jml;UZ?CkMByLTIlvA#1*5^72sD_lUROy;7z#ev6Wm8_LZ$t<2=Lhv z;AyvT6-{{-oKXzkFc{pBnYEv6LY?dX2lZfJ)#K%s+d z8WpGU&gFA92x5cLa@{INXe?gFnMw~-x?vKN#9`L7>?O>`i9 zD)?B8$fbYn>;P0mu*0Lzf&)0B4_*Oh%!R?^v6M4HBWHrsc=LH^6jZgL6W`NJofvJ1I@x0S|5Dkuc ziTD2(W!tPmc80fJ{;~s7?8{rPy^n!6PDKYP4Zs;ZXZB447qf%fy~**=@A?8bnVcj$ zAZ0&b7T5nR-B1z44qC_#NGWXO9A3+%fzdFy?Jck-Aynnao8V&d$BV(~j8N%puook= zBn^DV!Q1W2D^U@_2(;P=PGbZb%5tn63ga`P4B2of4jK;!ww{K5B%c|bl^u_gAEUk@ z8xqBd6QS=X%e`X9F&bDSI~-M^(ZD~l0a2XA1~=Fsf={(N(qQgn7%U|hlk;4Oiiv5n zY*3WFGTIvo`||()u*2@M!%+(9OeAr#fl!>x4sTN)L<83uksQk3k{yoHkK$!I|2#OA z1DweLq%k5%&i3;De+3<|F_Q&w1evmdfg_kMNLwD={6 z$nlHdi<9lHM6?vUePFLwC*H{b|5H1cb3VLBZ8O6)to|LfEi9rO(o1#uu_IyxAB1tTbA z>V5k@9pL@@VC9fF;58ox|GN{MPyO5SIj@oj)1mi2g8gxSImf5%d|7?}Un@IO2C_pnU+_M==6< z>U$n3F%EiEa1RyhW}`t44YWKD&L>ZvNnV7AdHf76Bd3LM#E-+lo^n#ESFaI#bJ|3v z6tP8r=4~>El`GcEh${2JeO37jW9>E177a^3ty*2pMqu7%3{W~&-ic!M$Vx@QYVk$j3*S#8eEs?A=PCuWu9zqxg@L#~|4 z@}2T#y)wVKw<`Np9ftg8CGz=oYzH$dUbi2b>nH@Rh9qh#*eukz^ZeVvijlVShyye-|hH+6XRy@NjL6$wMu-A`*%DWG??br z>90onKRjC)!6lx)j*0TkSLGSM|5H_d$*t{tH-65|;kj-O4|kJ$SDok@+7sEwOFiRm zcn(XLIV&l}NWM^~>7uR$b+Wq_cy+np^L$E3T%6fDcG|3zeul?w-9LNkmvvwC@EhV1 zB+Qu6Pm7Bi5glV3yi+r1(apnkvu_^O4>fD>Y@a@H38`Zfl2hVRMvqBK2sc`m>y3;< z1$tw{_k!Nmh`gXT@(4AiU(o%eTYad9+4%8-9$YglG~Ae8ER~He>K*-(;=0UCnbE~; z3)gsPGmF6ljtR^{UQ7nk&gGPZ9o>A@ah#_yN(cCw;aFAK?lFY7%#Y{sXG zLX30r<8KYC=4+TW%$P3T=wTJ^t@&LKZV^&l)hczaAsCUO}RpAD@tr zN^(`x#QdnH(qV}4?REVbIVEe}(5KZ1H5u_YbbsT!LcL+*M+Qt4hi2ow8~PDHTeT5e zjnPH=L}TSmy@By{k;Kkw)VirZ+sSORx%_-|WU*FMnjalnjkj(}-{0QUt%2?V4YO3V zuox|FNo>Q-)t#^#&)(8IR-0U_G3}NfX`HyF2UL?;jDlPG4T<)J+Y-D`{8;c~HcsA_ zdG{*T+lxYrV!d7CP`mYChW<>k^Gu&stT!<(mFNwWof4VI++w|jkHua=0@&_DDSJ;c!+ zck~WM<5GQyN4W7usUBtAE|mlnVicF^J^aILA=L(8vl%6&(n06Dy0^E;*{{tQDz!e= ziVBO>=yF$o(inZ$d7e3cLY&mn67opv(V_X#AsShX1$XuS#;IKa z!~Q^iEJpeRNgP%&hJo-=sRmS zv&WfTu9&O2VqB@^UHufa8IRTW4luga_I|3NyYn`?an{q@&q%55-9x77Ky7bxW2>#Y zWwUXswzs9RMgDUjcN1pA-_v_gxO=tTQeD;dFLh>PlBc)L*zM`hS(^!hFEzNf+OXU#aX9%4G*Ez z7V11wbyioM)o!Vfx{mA?*OAq3cJ*Q7k+r`>-POeGJW>Y3OciymBdbXrsXfK>M*J6Y z6)%3mJ66JHsy4kL|59g`I@cUMI{X(!>AJeXf2p%bT~eIk8|d9#cNw;u3=dhGjdudQ z)iR$G=xy#`w^g@il{(iI^ytud5a`|9C)D~#W<1f%yH&Ldz#d}sYv%oov7woFedBO5 k?{K+FOPYCi_N#V2n@q;&8*+V`u#^Wj_wFQrawFyc0TBVs!T // Для std::memcpy и std::memset +#include +#include #include - -// Подключаем Monocypher extern "C" { #include "monocypher.h" } -void x25519GenerateEphemeral(AppConfig &config) { - FILE* f = fopen("/dev/urandom", "rb"); - if (!f) { - std::cerr << CLR_RED "[x25519] Не удалось открыть /dev/urandom\n" CLR_RESET; - return; - } - size_t read = fread(config.ephemeralSec, 1, 32, f); +void x25519GenerateEphemeral(AppConfig &config){ + FILE* f=fopen("/dev/urandom","rb"); + if(!f)return; + fread(config.ephemeralSec,1,32,f); fclose(f); - if (read != 32) { - std::cerr << CLR_RED "[x25519] Не удалось прочитать 32 байта из /dev/urandom\n" CLR_RESET; - return; - } - - crypto_x25519_public_key(config.ephemeralPub, config.ephemeralSec); - - std::memset(config.sharedSecret, 0, 32); - config.haveSharedSecret = false; + crypto_x25519_public_key(config.ephemeralPub,config.ephemeralSec); + std::memset(config.sharedSecret,0,32); + config.haveSharedSecret=false; } -void x25519ComputeShared(AppConfig &config, const uint8_t otherPub[32]) { +void x25519ComputeShared(AppConfig &config,const uint8_t otherPub[32]){ uint8_t shared[32]; - crypto_x25519(shared, config.ephemeralSec, otherPub); - std::memcpy(config.sharedSecret, shared, 32); - - config.haveSharedSecret = true; - std::cout << CLR_GREEN "[x25519] Общий сеансовый ключ вычислен!\n" CLR_RESET; + crypto_x25519(shared,config.ephemeralSec,otherPub); + std::memcpy(config.sharedSecret,shared,32); + config.haveSharedSecret=true; + std::cout< -#include - #include "config.hpp" void x25519GenerateEphemeral(AppConfig &config); - -void x25519ComputeShared(AppConfig &config, const uint8_t otherPub[32]); +void x25519ComputeShared(AppConfig &config,const uint8_t otherPub[32]); diff --git a/x25519_handshake.o b/x25519_handshake.o index 996b2c128190c265bb4e77e6c02c277053833072..a471faa2143c77ac1210c8fd69cefe722cd97491 100644 GIT binary patch delta 1580 zcmZ9MPfS!t9LIk%Z-w_@yA->)D#cxt%A&gpC}v3(UCkzKlQj}TQ>wlQiV6OU#%SUn zk|nY>960QD_OMN8Vu+?dJZRv+!NU?S95|4MHkvl+s`NrQXoAKjnE0KYd5TWnd!PCK ze!uzs-psstxt)bzI<`JtLd6#0is_O}$Ns8$*GH>#%$h`pGWYg;aP%ubnWaQrRPt(J zvOr~GoifL?Hziuxfz4@cC8o@?7-OLOq)hz6_SJNi6SYIiIva71LAQW!Jw$!tKjvqC z6sQ*g?iLXq>RHMZjH-!R8tCAzfsPl3cLKw*1uN*lz{^rNWV|nAmUt*Ov{LqJd+bC1aF_@1&8=NV|_Fzm9HTq-@ zqBK$Lf6OFZOOzRfUB)~5Isa7OqRFGiQ^P6?bvIzjy?0r?qjx{^ z*Xiwuh*ryQeW#Eom*a?;qCE69+;^0=IWH^RS5CMBZSug~C z18xMr1Rvltle!n&3&z3iU>ZwP1rCF9TncOeuW4QZ1JJ#o%-;!q4aPw~=q>6bh27}X z!my0RS`X$y86el(2abSSFvFapEk6`|+*U$Yuvs~AtFx<4!nFxL08HL1QclGx!Bg=AZ zgq8Anw!ln2%jVE8uthvyvK8hsQhbOHbCc(c5d%@?f@$(0YuGaRfR(~?+InOW*jK8fwj{@M>LBMB z{h<>kb;7&~Am_-elL_QjX#b-0<97avzoB>qR;*u)f8jsl9LFR^_*tHu19w+z=TNt6 z?Ht$wGRS!6r?8ByQb$lpHaFrC@}XT8O`a2#J@Brz{wf}N{$<~aOvP^YaB`;NPnY=J H`-;(fS!n5E delta 1899 zcmai#Ur1a>6vk)fZrr=-8co)yQR~&%s*M}}Ckon{kUlgBFl5HzAls?=GZD~QshFIuB`cO#Hl(x`s_Rh5;g$}I0 z`OZ0W&dl7IF;%^AIMTTg(Kl0B2iH+HJxmKH2p=oP(KP*W3mHc0=tTwb=+uF zeo`Ec+SUjqfqKGS_UTZ=P~UiCOG`tWSJSWRYnm~w$MseHj(*RWH0Cs5O22J{jmyRq zWL@C=2X*g{_74X}hBAx$>W4^iU(^4kxNn4!W=2mS)oMCTQ=_I|N0nPf2qsNW=r{j6 zb>oiNeX3tKE+O=mW=!g97=0JKr+;o-hDpDz-!VQiW;CJGwI;EKHT`b6InA^E7Y5Jy zE{u&14!?_y*>2(xZg9h1(7z#V^B}&V>+*Cj?ecd?zn{OU zmO0*&r{2ZSs0B3_rRv^QGa$!&C;gQoI@QYz-llI?guBpOhUTGO?CvqLxhCf1L)Ks;2lsD>;Yc^J3-te z_m8-8LeGIMU=XYV6WE%3Fb;}wG4NGzQSu5{4m}5o{1ada7z8!2J*`8;-Hc8J3@&gV z_zU)01bhn?fE!>LR+u#DT?cXB-LqgZ*aM0Qbc090daw@hwI;olATFW11jHxkDm2;Q z0$&OtFjsU4@jk@|t4Cl86bUv>dXu0?5CgF(UCSmrmcUZPEt>R-Lx#=i!Yd%yF=yI? zv(g^`8<0mFj7IPz=x9c#5}hW#mU)c2`LCH(MQ%cJ{IFqO8NDDjCPNHzb9YujNO(2r z1=3M=R-)ONtI*CObe^hgmd;T-Tc$De7wHnUDVsD!w_safSD4BoY@XSa7+Ym=sHC!? z*x3v9FI8o$j<`c*%Z?cSrW{*%zeO9y#^qo-XxK5d5r`Zt(t5d1ivZ|JP_!dbUzFM@ z_198Av6=DZ@{K