From 1777487f4ea898f6919334f8a8cbdba7724f2abd Mon Sep 17 00:00:00 2001 From: Nick Mathewson Date: Thu, 14 Aug 2003 17:51:36 +0000 Subject: [PATCH] Tor now builds on win32. svn:r400 --- Win32Build/or/or.dsp | 136 ++++++++++++++++++++++++++++++++++++++--- Win32Build/tor/tor.dsw | 12 ++++ Win32Build/tor/tor.ncb | Bin 25600 -> 107520 bytes Win32Build/tor/tor.opt | Bin 37888 -> 55808 bytes src/common/fakepoll.c | 2 +- src/common/util.c | 3 +- src/common/util.h | 11 ++-- 7 files changed, 148 insertions(+), 16 deletions(-) diff --git a/Win32Build/or/or.dsp b/Win32Build/or/or.dsp index 2c61b3faed..77bbf8916b 100644 --- a/Win32Build/or/or.dsp +++ b/Win32Build/or/or.dsp @@ -39,17 +39,18 @@ RSC=rc.exe # PROP Use_Debug_Libraries 0 # PROP Output_Dir "Release" # PROP Intermediate_Dir "Release" +# PROP Ignore_Export_Lib 0 # PROP Target_Dir "" # ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c -# ADD CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c +# ADD CPP /nologo /MT /W3 /GX /O2 /I "d:\openssl\include ..\win32" /I "..\win32" /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c # ADD BASE RSC /l 0x409 /d "NDEBUG" # ADD RSC /l 0x409 /d "NDEBUG" BSC32=bscmake.exe # ADD BASE BSC32 /nologo # ADD BSC32 /nologo LINK32=link.exe -# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386 -# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386 +# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386 +# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib wsock32.lib libeay32.lib ssleay32.lib /nologo /subsystem:console /machine:I386 /libpath:"d:\openssl\lib\vc" !ELSEIF "$(CFG)" == "or - Win32 Debug" @@ -62,17 +63,18 @@ LINK32=link.exe # PROP Use_Debug_Libraries 1 # PROP Output_Dir "Debug" # PROP Intermediate_Dir "Debug" +# PROP Ignore_Export_Lib 0 # PROP Target_Dir "" -# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /GZ /c -# ADD CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /GZ /c +# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /GZ /c +# ADD CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /I "..\..\src\win32" /I "D:\openssl\include" /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /GZ /c # ADD BASE RSC /l 0x409 /d "_DEBUG" # ADD RSC /l 0x409 /d "_DEBUG" BSC32=bscmake.exe # ADD BASE BSC32 /nologo # ADD BSC32 /nologo LINK32=link.exe -# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept -# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept +# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept +# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib wsock32.lib libeay32.lib ssleay32.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept /libpath:"d:\openssl\lib\vc" !ENDIF @@ -83,10 +85,130 @@ LINK32=link.exe # Begin Group "Source Files" # PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat" +# Begin Source File + +SOURCE=..\..\src\common\aes.c +# End Source File +# Begin Source File + +SOURCE=..\..\src\or\buffers.c +# End Source File +# Begin Source File + +SOURCE=..\..\src\or\circuit.c +# End Source File +# Begin Source File + +SOURCE=..\..\src\or\command.c +# End Source File +# Begin Source File + +SOURCE=..\..\src\or\config.c +# End Source File +# Begin Source File + +SOURCE=..\..\src\or\connection.c +# End Source File +# Begin Source File + +SOURCE=..\..\src\or\connection_ap.c +# End Source File +# Begin Source File + +SOURCE=..\..\src\or\connection_edge.c +# End Source File +# Begin Source File + +SOURCE=..\..\src\or\connection_exit.c +# End Source File +# Begin Source File + +SOURCE=..\..\src\or\connection_or.c +# End Source File +# Begin Source File + +SOURCE=..\..\src\common\crypto.c +# End Source File +# Begin Source File + +SOURCE=..\..\src\or\directory.c +# End Source File +# Begin Source File + +SOURCE=..\..\src\or\dns.c +# End Source File +# Begin Source File + +SOURCE=..\..\src\common\fakepoll.c +# End Source File +# Begin Source File + +SOURCE=..\..\src\common\log.c +# End Source File +# Begin Source File + +SOURCE=..\..\src\or\main.c +# End Source File +# Begin Source File + +SOURCE=..\..\src\or\onion.c +# End Source File +# Begin Source File + +SOURCE=..\..\src\or\routers.c +# End Source File +# Begin Source File + +SOURCE=..\..\src\or\tor_main.c +# End Source File +# Begin Source File + +SOURCE=..\..\src\common\util.c +# End Source File # End Group # Begin Group "Header Files" # PROP Default_Filter "h;hpp;hxx;hm;inl" +# Begin Source File + +SOURCE=..\..\src\common\aes.h +# End Source File +# Begin Source File + +SOURCE=..\..\src\common\crypto.h +# End Source File +# Begin Source File + +SOURCE=..\..\src\common\fakepoll.h +# End Source File +# Begin Source File + +SOURCE=..\..\src\common\log.h +# End Source File +# Begin Source File + +SOURCE=..\..\src\or\or.h +# End Source File +# Begin Source File + +SOURCE=..\..\src\win32\orconfig.h +# End Source File +# Begin Source File + +SOURCE=..\..\src\common\test.h +# End Source File +# Begin Source File + +SOURCE=..\..\src\common\torint.h +# End Source File +# Begin Source File + +SOURCE=..\..\src\or\tree.h +# End Source File +# Begin Source File + +SOURCE=..\..\src\common\util.h +# End Source File # End Group # Begin Group "Resource Files" diff --git a/Win32Build/tor/tor.dsw b/Win32Build/tor/tor.dsw index 4ad03e67bf..ae4da0804f 100644 --- a/Win32Build/tor/tor.dsw +++ b/Win32Build/tor/tor.dsw @@ -3,6 +3,18 @@ Microsoft Developer Studio Workspace File, Format Version 6.00 ############################################################################### +Project: "or"="..\or\or.dsp" - Package Owner=<4> + +Package=<5> +{{{ +}}} + +Package=<4> +{{{ +}}} + +############################################################################### + Global: Package=<5> diff --git a/Win32Build/tor/tor.ncb b/Win32Build/tor/tor.ncb index 8cd015a6977f21c04d4c57afdbd8f21eeb1cec37..535305ac99a72d848c7998344902ca674d46b893 100644 GIT binary patch literal 107520 zcmeI534mQimG|r3?xfRMyR+|k*~m(EAcO#&4G39?Bm@G1N2lNGq)B(brk5-rl4yj0 zqJW^Hh-?Dm!XU#YItc2ps>6s2E~7+n8y9c}6-Sis_piFQ-hHn-$Ru$-8D4cN_ncZ! zo!U>;tFx-1t~J+|t8Y&&nYm=zv{XxLZgXpGQz}#2Uc0HbEt{G%W7e!bJ%^usqA{l2 zn7}j`6B_ee-+jRroJyv|ff5Ja%p7<}p7_7KRx%|HlsHi0K#2n-4wN`h;y{T5B@UE0 zP~t#|10@cWI8fq1i324LlsHi0K#2n-4wN`h;y{T5B@UE0P~t#|10@cWIPfOqfHAw? zgjAPEE^(m5ff5Hw94K+1#DNkAN*pM0pu~X^2TB|$aiGM35(i2gC~=^~ff5Hw94K+1 z#DNkAN*pM0pu~X^2TB|$aiGM3BnR?8{x3l#4wN|XR^!0*2WJJ@(esbzNguNwJF~gA zDci=UZqv;6+Sbk4_J-#AoWq-PnU2P69&c;UwII1J+C|YZaICQ zI;q*w&wcmu9R~j42)~1`dg%iZ{y5*E;Lk?xKeu>)GuTv{fo2dsB~#)+i35M{9I&1K z@14jJeI*W*IB-Zgp!vUKN*pM0;H}Alzr6UD7d7|W`M&6eGljngJ>K6;=I?fo4?yBM37X^h1I;x4c6pCNoC^4X2%Hjj@s=bP%}TNHkr*=cr}+u*&#H{ zbNruVR+ODmcDBNsu&O(CKa#%)C;n{nT-gW8U$XI4Uq_g8%l@$}!U=!08NuHg;v=cW ze*yBIf#y2lZNiT+1NiGhe$Ia((x5>mEFX#;%oFm!gbxW5BIBJ&xHn?&hMxPe@pl>d z8F(N%WXrM2^BQa%=2y7Af+ZvGCOVbQbmGS0zKvT9KaJn>*iliOCj8!xeHZqsC|t3d z^6r7H#vX<(#@FHYF>DoS{=Jypl)rz2Nr|5B{JjbeiQpkEaHRRF$Gg+phnnHi0g#b@ zZ}TBq*IxP4-_@$`FkdiJy#Ek$hPl{u1250eS%}+%zcal57&D$0y~5)Y&2B~?@&9hp z6z{&t_ea=YM)(K$-h$nqyW)Kz3Oko{<8VgWP&}xJ3aktO=Ykt(0KbYdFuNTbrF9xP6|(x zev|U(0)GK_h52n1CQj=G+~ls~+kPq!apk9P94Ah1eNo=`l9s}bgifV1pZXDfg5$6J zD=3$~KjkaGV+p?;E4O4his`=~qDNsKBJN`BN!az+3|48y^F&;>0nqRqX~#6b5BNja zo3Qs{{}n6$H>0urzq?6^cJ==~zCVeH}GdHjvxX-6Ih}nOHYoCGE1A}e*RDG#U#BK0E;it*xyV&Qks=tyc zaiGM3zs`Z~z3doGe^iegZ0vYYss8K6gQM{e?h#%_Z-30(CfxS#ZuW%#HuZPA{?}gr zBW9l;FM696bD_y8yd5w4k@{@Y-=|m2j3=gRy#kPh}+p% zjlZ*_@4e*n73|ls-@$4e`7gfX@xK&%C04M)e-ZmAR`Fv$rCBm14!qSl@TtC5{%8CD zUgTT0|J(WA_5V})#Qn3(d_R0X%=8AIuJNF|`APWe@Cxv9J3dsfVn5b=4`CwHFaAAP zzYaB16yA;xy-Zv9q40k4qZ{Jim)!1SvIe*DtJ!ZmduTmNBZaj-Oa zO#aBjv>&)G{7m>u??1|{4%P%ulD|uT46Bt(%=sQ4&wBos<_RBuqWMzrSnwO~Kgm21 zJRST==_7wL$nv%a7X_d8{?p7-v&D3WQ!f3(&B?*a;7Wx@-i7qa92TA*?)BxHZT>O* zZkY48>f$L{(n zpCo=2Ww-$wyT@Opt8kykFU~U=FZSQxH}UA1{lAY%3Dx6JC2f-j~_`T(`e(*Lc#;?(gG%oczWzAdLe_`OHnErSaea zzNJ0<-=@Axsg^j9Te=ErS-r+g!hMi|($-Cy)YelX8Gt??$M{Hl;IRy(|1=Ue^F zP2ugKy-#5GD+BEMVx5gI|3PL8`+1A^R{SB{HtJ;#Q+`JHFys-vW1R3K%-Enl_?hzi znfym_qETrq{t2Zw#taU|1iw)F-xogC{D>X9#clfI?S6TwPk$m3jlL$r2|vmFYfvBF zuK0bG{uEY3{fxzJdeh97@MGcK#_cWRulBOziKDSKxetoR+V~rXkH7IgG~QeNExwRi zGXKXoP&U%a|57wJ^UvWI!zKJ=um8!$;=0de?*m4-&Ijfv{B^%;O#;{buFa$q$FHIf zS0((_|HdS6-7owk{YUo&mA~#EeNT9lpZepU61e*FlL=h+iT)#j>-_sc;VGA11t$tK z68UL7X-&|l{%G$f4shWm?`RvL@j`ev^WL)S%T5^{<2}s%!qa{20>|UKqC9{6g{{ zXV#cA%}(z>!7L1yhi6&(qdp&8a^8G_xW+GknqGGt904pG zj70JueR`{q#=g^ZQ+&(M)uy9tN7>`Pd~3{CgKr1>Jpb34XM^7ahkN`q^M{};9OKhJ zox6L(f}i^IH<*`#-v!rr`qHL492H*W<7dqD@aV9ckKbU%gj2%@JpDP-E$kOQ;?rw2 zBZBF{+kE^EGb1=7_>ylAJItBE*5DjZ|J%)#!R^6rpWemhAA-*XLp}aZ^I-5~@Cl#) zC8jBOU+|Lmzsxk3wU+(Br}tj7rL3{6o2Tar?#tAd{eTzWlE={}R3!h7XUmbCYDkXOq?*{2TacUh2y2LCPz+?^ApgrkV0C;~T@5f`1fy z7dCc_zg_uVL0*#e-X7(t^lpa+>lS_E_?xM_7=D_5|2ud!k1#qnT*`M9R{p2pUWaYL zUW~mGJB5CrxmA8~nD`rq?GCRLMl|UA)2Ivzr@Tbd@swNN0TC^6n3r*{AbF30W z>oN)dfVi^aQ_1}OaKNtrQ%?RrA(#-@_5TQy5`~%%zcz|*O6%XiuK(`@4^r|kGZTVI z!H?)C!C>Lt%%9A-;B4<-VWu$NeN6r~e5H90wLe7Z4O4nO?Rt2R{Eg!GHusosnWa8{ zUvAs|(Om2CDpns2rd8psJfhmX-CU++y9tIU{s6PpY%{xk_-CNOVpwU$ z>-WdWuVhLb_}}8dh%v1HGbW|$i(~l>$c7a7dV4LF+y7(yeE_c2+5Pdf(X6lOufnz7 zeh8fV{on!X(HUkc=~ZQFswx>D#__ieygF5bf4P~!-yI(BW`8g9-yZL7e-HCTk5|~= z*PP(-9%ej$S9rXV-z!Zt^T=Pn*QsRun8l6TD}-Bm`m%_h5VQ#Aesd*V{4nkhe2(%3 z7b<*za~;0`v3Pw5y#pCv2AiSsU#;*%%s-n~P32f{oBnX~7c(-5aKeuw#1PX@;khqR zX-1octiVsS;f1G6nqNpv_3_7Yo9Tl=gcE-p5{Y5v2}dvZ1a3%MO#>;1+29YgxMZ&3+1C7?mspJo>E*9^U`KBiNG zQRXt?%WCjHoDz&SKT&yXd1oT;T^r-jH=EtvAakqyS1Y|a=EK1kg9yieF7lhw~nvuA1T-K;A!kFDg$mSaXUxl z1x}8o!oLn3@mJ&MT=2!%7#=>hGaQH4H@444>FcYwq9gVbEP0IRlHaRQ`tet8Z+4R! zXZt_%pQh4L<}UcA{kZUr{O#r2Ka-%I7|&Tknrkf7T3K zZcds=f3?3a3(eQU--Pd*06tIs7r)@lpllL&T6lN!J2N@3_kr#Gp9;I*w)cUTX@9Nz zz`f1N!wAp%QoDz#!3n{IO8;2p*PGGhG_zuSJbv_HoiM;$F8`GLtN1<99p;BNf8qVj zCy^M;wCM>S#BJh-&8rG;$ETs@OXh3lD$;Y~*Kl(d@`3Ao_>tyxv%x&+@zI>`y~xE({L{^I!D-<=-hY~ihqXrop5_!`&dp_k23vrw=%2rj)S9BW)uG9w!FvN{neww zZT;5R{f#|uou}}Nth{C~^h#dLYTK^&e?oa3zJwFi5$5gC=f?k~tlvhOj1Rxewy$ZH zKE*%LYz)2-v?zX~@RP_SWh&)we=l+}JDw?Kw)nYD`LASlnPZ;v^sQpQI@bJJ{ImD9 z*O>KXZDpDxz7GwWCvGHc{EhD`$GF02PqC4(TI0vR0gUew$KQ#hpM>LhN=Nbk+BcbY z9CiX_60EdjABTpgvGKWYjQ{wP|TErK=u^dUTY)<^=yAXecRlK1Q zU-XUR>vu7~Cv3@-I8friTZaSHQ|$i_Hz*pZ5aH+2%5jkK%m! zo#uXpx8)gUCh-2y=S8o@4>RxJJoQN*e!6)&7!f{Tag}$5(S3vnhyGdS-R2+N`GLKU zG@BJrcRSYBlZVFK7QUBs0k0v?40Z?h3he2GQJgsZwNac|_{p9L4GmbO8UJ1)o&#e1 z8REQ*?Me8dScUx>-``*dMsa`2SM$do_$I@}Y3N(JcWvHM=AWk1|6kMk+^zpD&iy}z z0p2kh8GJ|n%{8eW-~)mY!OOx;O^PFJZo>@;?D-+@`v}+jR!uYQc#`7hVWuo7bLWZl zPvPo6Bd4jqh2Ujobg(^G2(I(B-i$T6Ki4tC_2=I7rCZIX%zE;xu<^y%~Q71%rZ3!e0|!$^E^-!8P8$rx^mhKlFGnGmQHlA^ExZz0L4ocyOPO z-^UCMh6Z0Izv>-IuP?ub>mN+>;rnr)V??l(@vH)QNpD!F^MhL`zxFr1wLb|S2qL_y zH|GnIkJs4ph2Vqj_!r@XAIg1>hk{$kFKCdzUSAq%EZ(H_Mw&;0$Ae#b{)~p(i{1L2 z-|um=Du15Id2VmRfBaP{J?>NXW_3Rf8{wqK{h_kWWuJ!rV6y0+Y#PfhEqhY9t&geZ zg5V>;6RNM2{0}#u;l9vmzI-!H|FThK5l;HEt^D{J#kch}kMTBVp7!(}WnPuw$I_$p zjxjxX&t3YTI`4mq`A+b|;51(!YvI^f6XB$Hx>+A~gwOc$o@uTR zZVtAHzEz^X@HSG5=-x zEj(+kFgKfjz~A+UdTvYg4K5-**FHDf{&c0sw^%&9vA+p>@LL@=58-uXoU`=BR%82_ zu(rzR2fAU;J|-+%V8ZYiJ1@*7j~|fl34Aq=?14u0tJSo9%^T|Dy049_jyeAW^aPe1Z#ePad^wdCK40lkjBz}EV z&dUj-xGI1ARbEM0X}p4eoL2l*nt~Nqa7=$!c`IStG z1OJ;GICd5*b1NUxyxq^O|EHOhXwZB-C*iOAx08i4zRO?hU3Q-{UpOjK_O&TK}xM#^b%r&w@?i z#UAf%J{Rl@9`Se|^U>gb`}=i`5Ai*=)9^nFtG>5CtFo0$i34v14%q%_`>%fQ$1R<} zy^&Lr1-=z(zf{JzItK>MVcxgz^Sb*#_C7$y&F8O}SKRM=qWNC9y&sUk&z#MAAQ8S+ z_=tS`M&Z$Y0>vLme(roN}=9v`S*$Cz4=4>9X_5%eyf|8RDgE6on2_ZiVY ziuFj19S`+h@ZB_&j}unkuMkFGjg_we>+ab1`0m5Xt%h*A^S^@c8CZoqkMEuY+yShx zvHNb~UV^ve;tm-!>@vVXLmm%Og;Tql2{R~Y;IJ@Aq#aiGM3 z{~H{*nf}~wj!7}aG5?M?_V>Uin=0Wa^EY)K{`VLs|7U)+zprIJ*Li?`e{1*utOtba z_qIx}g88=xNQN5CHJ zPGWjo`g(70xVg}$-@~3C)_Ytx_=lJ^9`9-8^9wxQ%ic!`pXF})9H^VaJ$3R3uS0G+ zM>14ori^$h&o2^IbN1!n;!ErKFQ!Oo;;}4*dObVEGaBcVkkb zOuy$_2VQRX>j9^s?zjGbe^i$!DsiC1fkVN8!;jLrpGk3*+5C(f?_WR8;XLPnp0hiH z?!6q&a~tM|=Evr|DEuPuZoGfJ=NRX|0=y%*EXJ#Z&kg1V+ZQ_j)!@0HE%^A64qpqt zmfsIV_YYI2f!`JUQ=mHnqGv1ky}?(5&(=7+1N`iu(cL%V#{j}tg{#7MMd|MZf0Y{% zR-TE!@Cm_$AWMFdX9z!wzYBzuzHt4%(aJkA4%hwl_saiPho8+I54#>pIb8dj>52Hq z^LyXTq|^U3=f8|QDfcjbN*=28b)Ry9!n4&8uHWn0^HcUm!Vl-q%1nm`xA^yUrKfv4) z+!DOQ;{!QA|7h^4Pj8U9Cb%ZJ(fbcZzt;^x%Hu=K2l;*b$sQld@54VF9O3gDW^U&_ zqY94?H@6122J@(o>Y3vI2!4O_BXfpuTOT9MKK_<@e3W^Pzk834{YRU_gTsTdj6W_s z`Y(gU!42L&#jlYj2S<8*EbjrNg2NZY;m6tWDdX|+=7`{k;I|&1fc}Bwf=ZwMM00#_ zd~m(@Kg=8z92M;L_#|^=aAa_)&u_As#QP}W{5ZcUrYfik4)^#}d!KN*$ER_>azHTH zAws?FN`Uy@BF8Arpw)Y{w%Jd2P1dsdj&*y!s8Ns)F z{G-h=!7;&V@4vu|4aNo!`uN9if4q0l==~Sk@%wW={;_63upqeHhv)sVpl9%c4}ZLw z9n1~}d%T9%8b$^UzC4S#uR1XJPmlBaCGLA}_vtM`A6jK_gU6SeUO}(m-+g(PnTyZ| zafioGFgt^t!I{iIuKk^8_M(sBD(`=i*%9mrzUcAg=$pMT7~;d9Z1$j!?O2bmFqa0G z1~2*WE4h#Uj$o?yUuE7MygMlK_-eB&*k$KeH{P6L+L&K2^!;m%IX^f*Snu(-nHKKP zU+wWzd5@ws_#xw|qkpYgAFK~5efig!4Z()sGv5C+-f37D{LbU+&FR7E!Q&o3-JBMj z7F^=T!!yihgU<#Z@%RRFH~IiIzdL%*(Gv*^}+G&t4c_2x0&8-1V0H={q~iC~V8zr}ok-?#1cc!PNu zeIC#G{LbUP(&vI(ef+K5Pkl1D#rrp!`?1*7yOyWcbeLuHmLF8FEI7Izq;1r7n;q%=HOkF z*U|fSd%yKz?|%{Rul&Wl;_-LrNGkY-$1gUo@pq%gcbPx)7lyO2vrYKg9Ar}SOgMS2 z3DeTmYVRih%xS=@uq&`xY$Nt8>?znyChWF`GOXjfmhX9d>-oNo@2PxO@~z{$k?+}jJFsog zw9SMgTKVpTwhKvTJN5$X4rpsPVfj0-7lB_)dEUu)59Qm%_g&m2-c1_s#$Li*;w!P& z;rR+~wac5n? zIXwMAzn>`w*1IwaBX|8SQ*ZPsu3(+t|Aw`T{9`|T6;F0I{<@NiO7-R;4QH;U7h?W!DcxY#dFH+I)od%T#RqEE2C zqD5a>@k3VQgX*`E`uz!C!6kFx9Jq+6+Ak>u?Qct_#DNkA-Z~uEOHq^k|Lse_+ue8| zd6AXh@E)ExB6&>7lsHi0!2cZ%3|WeN-Rk4ki!{@nygSnW@iu{u9zW!7<+;)LA>7JmYx3crA4~WpdHnwlCrc$Map29zfl>5dUa)Vg;1l*#!C~|0Pgk;;{16C z?^F!q-t7o(3y+ z(c!F>9{^2a=ii+>rAf1k*T_teO4WErjTkcJ*dWD!GGUF;pL0dJ7qE#i)iQ(&ao=UV zaI69eo%|1|OEbFs=;KMj91l%rkWHlxB`OchR1>X+f90tv!@mPI?|JMPOV@5_NhX1Q}nI1K}q_n0yfT*e(SXM)tRUt(O(#cG)x5@-HmepYUGh-~j zGTFt@bTaP_*sR#Ay&+RT*Bgpa7^td;INAg9I~hk;DxHOA$TwtMA>L5X zzZwV%xq6wR5!Ngvu&c*R&ljMnJAUIVU90w!41}ci|=umKQGx*t_e%Q7!Ms^Nl<2N(9|qvn!QAW6;$j@5<7V zeva*KJ-EQqr8z);b(vOyV|h?h$UDccr%W#vFilv73rx3yNO|N?HmH269@^ufsC^l; z7n-CGe5kF*Y54#iO2wVkyS#BgqiScfw5n>+Nmb)|sO1zJ$FH^Pvd|1P~Z z`8BMF2GROPP3nyXEDTq3S&!2yCsJ$9IDV~J{%dHG9<_-kWG&j@QkSW?0Cw}kCUKDdVU;l29WC^ zqpNTL_^ajFvq^0x9>2ozj1iOcyBoQ#NyZLql2{RJsaF(}D)RXspd|9}nqa~cw+{T) z)dO4Cok>(zkKC((CcTS3$kN4yK5xR52mhu(`M{c>=ef0mxL}8g>6!vfdjEDIBYto0 zw0gsm@O6yk)a&@~->W$0+dez+iOIu1RDRWjYu7z--hh~{UqF-InRGoOe!O(4n67U^lYLLm=H_OjP8t8r9d`K~T)S`24xvfuovZ$~eKDB*4||ak+}|q1 zXZA*b9UmO1Ro14jX`EQM=zeI@`$BqKfE8MlLi~Lr2_C{Qlk?-m5zwS}MXI2z2j?LF zL(`*pPB@?vrB-}D&Nm*vu7oDNx6lnC^AV9XW42 zokZq`27K5h6VtT`n)LgVI~gfP?9NcpPmkjbFt(}s4a^+e z^){g9=N|*#hrJCeIpL#%A^dABB_yZ#EcU(FHhyPv%5Z*%PnfS_r8`ji!KLT<6qafF zjZTJzgmef>uh4MD#Np(11NMCELhvWBP5cbu%jLY6$wqNB_8jnI`CdhsoAECPm;CKH z+@8d~4E_!LX7l|#_$7q7f$t`)e*g1n{PqyO8adSA*z15LC%ccY^oJkK6n~p6Zu_t~ z;Qm;>eIU8j2iU@B-yq$F(q||ghSFR3Bg))>mCnK`_}$Nf^iFv4BlfXp^ZgiK=_8j8 z@=eH1p2SLivIncH)Y5Gzxy5PNZQys2#$$Yc$@fX}k*-7OH<(-eni-R#H}0nz-(#a@2RX@S~->}j_ zGlcq*?wLK%xD@zWtn^;Af^*Tu?8fT%Qqqqjoi9g$e=bEH*vhfoq2+rbU+H(3PIu{f z)E-6p9dCoj(&M-YD}6B1`J#6)hSSFPmf=R4Q-GzrQTiGWqrF~FyOS)WqC0JoI*=at zKTrnge~}Je>D_${EB(6KbLbsi>2j35E$N7t9!Kehmp*vyEv08`_Y^0`kWMY>(UR^g z>C2LiEWN`a-B{9xB^_AOb0yu6>u6Jl(YAg@yZQyN3ft+LV6yh+wmvjQRw9OlPJ%tl6?*G8R?Oc?wAyQ z(h(!QFwzAheJ|4SBE2rs!9GY^ zk^UCxK$2ccy-lq5i1h|>EmnIly)V3ma$kq-Ls~1!jX8qvH)sbsi}~Zw?vMTHUqAj@ zpMUw{$p1{QeC^M0JMT)|dBW2<1@jZMlL>b}wM;05m`jK(*?v!OxbzTm#lEL~NCbstZ2tYAq+ zHOC4rCsmCL4(@B`G{L&rr+z8;FzC^nGJ=Pbm&Q}Uv&c*RUGO-<=y%?NZy}7{v=KZA zSnpd1J`Gr7x8RAy)p$TNHqSOaW5*1+O9z+cPr*H)LF1y}Vfg5G`-0yKrZG%#cS@=E zW(1GJ-M;k=+zVc5tdzTC1)56)r^vTvk%Mn1yxx|P`y^n!10r}8u+|5H2SA~I-!J$o z+@;IQxmVk9Oz?QhuJKdw2w&=H&>P5qu-@EyRKqXqXT zw#I6~-6&(EgP5H9+4qB}N;7}`Gm&mEoflNwcTN<31?gzM5j+rgz0V_fEbe++K=22F zwRRIM{ZFlYmF61KwC}A0SBQs-|-PVp12x=1Z%&bwT|F2>P~Zq;8E~F?|KN% z68<8--LPB!@{LGemfC8y(OUrub2DKgy~dQKpIytyy$`W8w+S8rr8h_PUr%_A$#SoN zex3O`IB@T|+qeVmiD-A=$FF$Ct{oI+0(GI^q=dk;ZhFS9HRZ0>r+G^75XutiC8MoY z+clirrQcrf7rAtXF&4OVJ`CR?z0mZvenxMMC`==CUb4u+w*r3*H%K)fzU>>a-a2xs zw(B2-9|3JzOADSsc)i`^+=m&xLm~M6xZlQCFwM@c?*vyto7K$*oFdH|7r8K>A$+7$ zniJlBcI~I|(%qrAsRR!ojMk&hy_;Q^3$BKq6QVlp34b&v$-N(KL+d2L3khR&Dg#f) zNAGFK{R-05x>E1}Xw&b4#Pf6Ed8Ffv@wwWryA);t>FBK*!DkWI>Xic?OBnq|NOA8t z^%=YFR~X$AczBTu|4G7Yz3trl*>#8D{*+PgKM9^j82h$Aa9`-xnpW<^p-pdu2!0P? zBK>dhzuLYfCHJYgFB8&xreTl0*f#6Egw>sW{=Rekvw?ne<<@1Y6qM_j85 z0l13t>YWX_e+qZ)p9BvlO|1o8_)7a$n&4`}M0yEn^VN1uE%!y_tM^j`UriY8Ed^H) zMtdp2x^sRBxLVr_ zt|5%ptbzwo8+z|c@GQb;&nS2x<@#boLnSm=o$iK{oy1kVH3IkMofvF;KNPleB^Iv*w- zy>lhF9(ZWV!PUgoK40!V;Gy1D61Lex1;l!03OyNU#=yaEAo@G5B(Xg2CdIL{kmIF7Z96Sa( zB~Oxjcj%WqOR!FY{uJe_-|PPvN4XEfO12}I)@OTt@CQfF*|$+@JI%3sM_Mv5vYd<=j)y?{ukZysEZ) zWf#7e(HnMxHBbbSm+*S3{5F=Yo+GSoxOVX`~~$w_yFoPcmG=<@5`^H7fXM(y@A%fv1p?+lVXqBf-oLcqqB3-1|b0x^9IhJpiH zx78&I+!KoQuA|&r2``->g8RW+$zKJJ2GiTBf)^4-a$UiLDU06d6ubd<$z}zQA-v?c zf`>z?)nf`=NnSb&kb5_1mi%9E8D*4=T<}OJ(z}m>cao-bmI&@kZaSwB+>ID|OIGla zgpr(E@O@7QK8hUlHmTs#Nnd9u zf`_QpEOhXNxJ$+@_d&$g+p&UcaDOnO0kVvAu*kg+^nW?Zmlo`Fx8mN5d?inJVS3rS zb%IBerp^`w52RdrD^u`x(wEFta1Y|@%~Zi>;4ZnY;Hi{RXG4Oey+!vo1WV7lbXNW;*HoD#~{NxZWg{do$ssYg@3ir*d4*tJIkjg>E=(_{Ul;do zq^~nHxrelWo!tl?06jWG6Wkpio&N|PObp5V1@|Jn&TIq^C4HTH36}oe2{jI$4-J(} zE^;4&)!BpK#e~TEXWKUS|)2dqRWGrvwjz zwj*jBe1h^_>fmx(#OT8v+#CMr{6^uAC$`St1ot2>okCex#r?7Qy}C$_X_NKAtc-o0EG_d~{wVcpR9{fT&8d<~`3?T_|!dgF|{J zNptZXAGGQn_D=yUrg4SHMrbyCQm?YkbC@=gEB_6zz`qUkU$pmq_mA zI!Q;vI`6%vPTE9i%`x5?^D6i|tOYaCPd>Z(|8V6qlyeX=$KGc`aV-;o)rO>&c z;NhgNb0Wc&)RE3u1&74d*|FgMgweT_;6CK5vq|UP&rBQb;4+O~QQQhjpm$Og<|Cw| zGfu(7;KS854!#&nXT5Tl9y`4QEI5a|&JqRBA>Z9FP4jjYbCcd?7yn<`b5p1@E`^zZ zug=B<4}dnEV+kHhUOLMYT+aVG3l%(!G;5=D4D+MTXXW0L((7DXa4&MXCgK~X7xw&2 z?&^7;t#LG*d(%_qxu}dEB30?tRG9A6s?M(kOXrTx?gUpuo6d~|_km`esSB2tE4`5{ zxQTQgs&Vj*z&hh|aVwo3Ou|%?zI24hU89BW3J69TZqI-P527@Bw^#6Gq@(ja!DGnl zzNlQ)q@;6jx%Y+t->h-)#|eLAM9*qqodYY(B+}Fwu;6LHI_nl(4&Qzj#l4O2I=hp5 zPw3RSz2NSI()|O$A^+O5X>A27WwEckNLIfrj0-%GLOz};+$YC&obJsF9R ze*#wlj{(*!P);gp9|85$-@1(imh__!`*CELz>Wswgf?7XzJ0I*8IQHwAI;dLJQQva zX%E9!VF!Z`Lms1ih9SGrS0ngfc-NDB`(x1sfO`Ngjs~Pz4jl6B39ox$%Lq4wFx~m8 zwNmrA4+clJhCK`$GHP}s*WSSYfSrQv4nEy}N7G*VFb@vnJDSn559zoPX>sH{^K#E7zKiz;wH*&$icX!9UlOCZMTr>}cC!p@!!6RGZQN zQ*8?JP;%Q_8``t!_M8pWnyt;mu!7dMr<-zZ?JgRgbz8ETbT(ISmM+-1G*{Qrlx=Qr zOVu`KQfssA?G4SF+cq{g)NO6rxN2w0`)_Q|wQg){t=q__uA#NAqoI99or$1ywwY8~ zYoTG&&UABaCexa3ZppRsro9WAhTtSDXVU?3bLZe?BUp6ykwOb%W_PqSv}V&C%^hu! z9i`Xi6RU4%Zh$#kAir%(?bfWR+fv(_n%bIeY24`pwY7^h*wfbDO8KHN6VE!^hsY9S zQ=?Lfa_~NF+2%~TIlH4hoolA1(rsHCn!RUhwkfxbJfl)>&bAYDJBg)hTMArZOI?n) z==EQ=PE{_JSf|a6xlOf=alX)y=UVNiTt~a;u4~M-Wo-&BvQL{7+8Q$1R!Wv@NoO;g zvuRbo3aP5M4(&TzAhC64OMAMdwtb5-Zmiu&oGk?LDYa(XsKde};&Q2_rt1{BD4obH zDt;#0*szUsTeGB}uFEzy8vSQWDnt}nhYU4pnc#EJ=a6pBWs1q&)4+$5jvDlFGaXGWYNVF+5usvD)F!A~QQ6R}US*q7F~J3VEMR2R@al4# zn;S03l4U_%yUPB{i+_1hE4tsX=cdo64o{ul&^&ieYH4;;$L6HNsoBPCZCm!h`en0@W1+j?1+|YJCF;DuWeC-;VZ%MgidI zHrn;p>`t>S*O0Lebcz|BfT)rD9lqQTDcRG&Hw#xN+Dwuc`EKId;sqS8`a+3xlBZC0_yE)U8pT_LMB&O6(J%0FXZ-wsKc8zWY1EHNz ze5htSyt1ItAX+dAvdoc#iALTn*}APv7x^L6b`v1|wF9+m2Vn}Ehg z77SXzI4IrHnybsU(Od1LRpgjqLT}B*Gg{=ygp@6eW-FP6kgIL^+W|8*Ii0S{Wa}DJ zQ|n>gl*#d&IK7ZHQ#um^8(6n=NmHHmV?opv!HEg@fY*3#Mi7TIHNg3%mfBX@h(jA2 znzIc2QG1Vvdb`rlB$1k0+sZP_g|(xlBG9mtv02}0{gHQyVO4k+;mrxlS1yBzaWLjJ z=9_|*b82e5o=zmoa>p*JTt;pzxApJxuwA5eb6gftzD>Q(r4VNpbpw}%ZP<<)`D@ZD zocrn<==HTUfP-Lvv`(~*)Gr#9TbEro-^=WRHEObM{ngRjQd_sxuf^mSksS?oEXGNg zwe9}a$!E4LQ7;D>f~+WX{#yFn;V zeC{W!yDdL?F;6(I*jY?FMLVa}wsh&tej@3fPcdDv zF;2K^zu1`dl-o^{9k;dSu)~;!1tFG+$wJ#{KFVQWFKX|YWEgU~!V3$RY-0c=Rt!iw8C3Xv~zNEcjBTHcyISQnG@uuwN z!WIEH2qk_bnIb1UUwMWXrWH3koAIG2w)VY+1-Cn4CoI@c|Fj`o19ek;vILY%-N6=2 zEhCy?I|sC>#O3MKzY2U0%`6=c$=MxFB9m`sa*2CavMko!)|{)TL(t4vNEeK(bYJZm z?YIN%r8BsseIQJ1kigf)?_+AhWv02F*lq zh}sUxFY^3RK1HokzG>WT549`YoYoh4`q@cK!VxFgoNKPLYoY}0zI=WXC`bVg*hbbx zsk`i%1(Bl?*#vBH3Ve%*vjGmMawGYHV*oX~P!-wM);KfU%8m&+LX5Yz)fV6_*`@+K zyRD@FZ`G`&?i$#%LG~@)0i|CS+V#bV_xmNyJkws(9iZGmaET4#$ z7H+?SB+W@Jvd!DnqWBbxE!55PZtClD(I&2Fjn|%w(`?ZmhRMC90}*1K+Ow10Y899W zlgQJp9qn>N+o)W+1N7$819LLjYOB6LqCv}L*7|RZk6*YITT5^d+@zetwI+YKX z!eE=V^w2&-tN6%^61B88Y?CWH7b`$XazbzmbGu#P6yzC)j?%G9e-aa)3v-P{N{I{| z_mECA`!uk7h&Zzq@k?h4Ge~OLk}y2bo#@7_XkBWjzwzJcw*eM#F-C*q6y|^23$%(aX1=FVG5$__Jyabt!wV%FOP;-fn z7$q*AQHh(GF_y1hxqS7q6d8EB+!#`u*;Z?Ze_tlsc9WH(@h;CT(I{CE(=x4;?X-j( zE^=FzRY|LkCLE5xTS+?9_M^_Nh)_;ALTfdf*aRW5gb6CX@=|+LOB75I6OA%XY8wl) zXh5-BiKwj0)~`t~S-$3^Wv8;ZRcsQCDN}nc?9raZUA4D38iCXR5RAtz5O0^#zQCQE zaaUc=wp2HMx*eX6FIKqj8D|j{vte6Yml2QXV1-R2$|z9)ZSNApcQnwd?&8ELQ8XCD zQ%qc`=@zqi`H8DfTLt&Lo3GlIwrocx$JSD(5}tS!Ufc2_hXo55#g?9Q5aLdE){<-8 z$vp01=BrH|4UL(EOSJfi1Y*f`l6F_|g2%0B+qW<;*fSi`b%X50vyd34mo7gwy>|JT z%cjjP5Em$g&dVa7f?E*9Ip>{$+IO;3wC7prEqsyN=1Eq2&IgX@k3tvI-{sOOA6c`J z%PsGwx^B=6XvGA@2^Oy$Yn$7)LtWy0QF42lWaM-}>oBC%nPw}gMk1Qk8b@;;Vz_jj zJH=&VmTTN5!CC>%CajYSqiTNXOR7axTIAWew%jPJY|;Ua-JbTqoyf+t2jU$;+KccXDQlY_~IcPPUoOZuaP+ zmMZf^(F_cR=FhFZ^^f|gukBctay57QABw(V@2sU--f zrEG{ep<#bw!R-yrl4HzqNZXwDx|RmJ3sN#h|J5TO@2Jlp?uwFI(V zm^dV&UOS>X&Pd&DfVM1q*9L}EYDRKHyLPJ2wKmnZn;A1^D4gB4`*1k0Voe6-0K={z zx7AuvPKs*|1ZpJVMw3?jdMo(Jr`~Kxtxyc+JrAsC42l|NG@WsluYOt}J*aJMt+geL zx8$@&J2@>mW%cT1OV%wvW%b&#O^ZEU*S3un&=zLG*21Hz=wgSxE#OYI^AldaH0g$> z7KGcDkFM^TYIhV)OXSX!63^>y;iNGjUSYE+flgL%fb#Rkjd^!{03 zn$>LOFHuf1y*yEFjq1dzf?q%M_F7$jqD3KPHwgJ#S$;-H*KzGiCSN_tk;vYP(c(_r z=$bgTvB?E)7ttIF zxV5{EWnMRm^>o5+!`f2)gWi~Hv13Tub%|)?*>7LyvNzeL$&h7b!fdi_hj48w-wl$a zxds@Qp6ebAqFVHGeax*6TyN1K8|x$6+!XkLhXQ*ki?Kl45=&R%pvnR~hg>0>s@q=F z{-?G&wx}mL&`Jet$Fd2jAG<4G@hoh&cafW}fpIO%3K+Gxj4q!QEZ^y(-YY&wuwzBu zH6di5sy$~chlpTHQm)aCwNb`Q{#*qhX~QmtqdkOf8?5EMKj#qK+a<0&zg=7pBRmwlq`5 zn>9M^)+}dJhHXhl9U_84kBC*BhqtIAC!z#3rt19A$zk0V%uUvb0;i@< zwGxCx9DEV>x5a|PNRAcpOg(^c%<|9n24*OGJ1a_n$yxb2tZPb~NWr#o7tA_D@oCOo zaaC!GE_)oCEJ~+!LW}xYzJOpXmoqUXoC9+qA<8RClvRUv@cB55D^puM>aIp@-@@f$ zmfxIoc%QDTdBKAAmf|oA7Nohqq(x&UJ^OV%4=^NKxYo@q0WDXZ7-G?>C$5zUqKMpr z42qCuW=T?c{TOvkNr{PV3Ps6iX~PvRF3P-qN>1GW`eE{-=FW-fQU#ZT()qgK-fX&= zb9L7hyX*iEoJh%bzyt+$p&B)aD3xeil~`N7PV&jDNjBMD4Xf=|)|Kw=8uzSB!A*g} zW=XH&WD`owgORI8I#5?L?(| zL^42P)H=}dn_j0&_6zH|Zp&R+gKz*AMcJfye>#I0z* zYcDOsF?Ue7u(6?uYr~dv(NrzCeOtOC(@A36x6gzdSyoV#XUpJ8=PL77vU+Tv6t7PR-J3-REw)yJw!fRvxcV3NHsARPJuV zgn&XRyI%|yI_IVF@o9<9jN`aTHwF*?6N|zV<^>BhC3`WC>y}+7(dk^)E|ZzuI(Ebn zVu?U8UYLIziu>Hz`c5Zqj-sNagUjV$I$mBh7KyDEEU3?TFy6mwGw&T+BiDn;7Kszp zDOsF_jx*_WZ96jfO*$7&A6R2y;jH@vq^h~xjl0d+_Kf@4M4hVIjwliUYESKv?X}#% z(I_pS{Fp7QAy*fT;KE!V_CeLZJR*6PMaYsXv+XmHbScf+)|Oh}tn;+vfpzzhBeA1( z1kU8P+kr1JPsGjNU7Ls|56ia#m-vStiP@88Ux4X~z83yYq*LS-9e5PEYLlsnzsT8c zGmG4;;JLt!g}uFzNbk$v7LHnS(t%Y`hZU6Q#|}@Nq&auurQ#Lt63qQzfK$r?uggvwpi?@oo``EHmLvcL05jz ziMYc3&acp4EruepRg;{li}J97)bAGxV>!pplsI>H;dQ^h@vkHblPn}87I^J1j5}~E zkk!GTO^9B$H)IMgcHv%hS-7Y$_WqQzFS?sd#QJEpR1{-V*UoCyMIpV2MHg0!{4Beh z()@_Z&IA+BTD$JlWs6p&moK%arUhrF&|;U6E>2NGR?I>D@hiR}pZMmo8v=?v;~(gC z?TKu|p2TWhQ&4J;x{_K~njdbq+Czh)M71>Sf`L|W6p5d_ zTpMo0BS>K?cF$Yr6kW>G5_sZS^E)w>v&LvKSoA9vH?2m$kxaG(3H7{lz9kem`z3TN z=qvDb#Vl}gB`k1?2A%>pI~dxL+f%?{Ky;5N?-bovk1MtyiK1Hf>vx)`tvmh74e6}^ z`SF4UD|4GyGCLy~D{wy5?k!KywTMEGwNCuM#+_lT$nNYS%&Z&Wb0?e zc?aEJ*FDXo8&r03EBrk)46yra_mgoq9xXj7eadQ`L9ST7I_)kb}oh<>)qd(v-p zbengGhKsy|9V-atgg9xkccK!0dTV=be2s;}0%B?LXH%og#6y~EjXBUNPXerts^7C8fEc=TkIH-0Q!Er7z9-R)v zXj}GtAGD=*XJd|2wc^~DEL*uUy=Kvdm8UFoo9GA+pZ31o5p-J zcMjVrCTRQn@&ntEMZz5?=Q_9~B5?zIG;Whi@NnFLrN<`GUCBDI=uwH>R?BS|)%Wcd z(*jC%O>1s5S42~qOxrfDYN%_?sZXZXH?(!sHm26LBgM*XT;lGjtXjJ?yY1-t8y7b; zZ?s&W(OkFbpi-&h&47bVqp6-B3pd(ij@6@8k&*V8*nEQ*-I7Kxnak+qKWp?P7)Gz1 zC(W-2r`J;Tilbhw-OWpEvC#|D($*{uD|)R~T7&dbp^h%~pCo6Qft6 z?{=X7{|Um%TuPX$$V-}VWb~?XZ1m!%w6%PPm;IzEOs^-_%;9A-UYUG!f(xY=TDvlO zF*!Y^(C3>xTXrlDd##VkEML9S9h(8X*4Dr)ZLepfMOa2J%<5HXy*w$SSNx@oA_E`w z^7{4DoO|*AdU-o(qzOz~aisaHma=_?C#-Jn?X-sJCAnYD;I(EVNGpO~anx(t&%zUF zv?(@v0e7e#HN#v2KlPg2g*6tnuf98o7n!3n?jtX0laVHsi^*Tw-t;1>UNJuf{1(dd zGI>e6&Fy+oBVjU8KCzQtb8VoFNc*$Q1Xhw4*aAuU=u)tK-in_^H?S zSJQW5qZf|#ioRa){#gyLHdB_n;it3~=*3-W{uo33Pry$vGC#yunh~Z_chcApo5hSR z$55`*qH>{zTgkB7l#tOY|DI=|K#YV56N~?=rJ+7c{ zOKXXYUcl9>=COI6boGMvcN1+T_S@gLx{EsLDr^h<(JR@~s3`48qn36KwKzrlpxh%V zuS{JcjI=Z8)l0p;ye7)?i?s7waQg$eURKttt$Gn#MlS}(Mz5*s6?kdIlSY+dO?cAm zDYG8l$Vg+3%!a7%O9PpVUJlo*tg(57_9U%bGKWR=su$p8n!u%nP1-xYml#v@8h6r2 zo1`?i{V~cze$oK8Kl83ApQQinh^G2U)G=0?ar822Z1h6+a}iHZ$6v26%jkvZ*i5D@ zvC%8HdzgEql_oZNCAir9g1)I2s$+8oabnXk%|X&wDs88CFJjz)S9*b5+S;UnO0W37 z54z5w>?;%HS4_R~ygwst7}7E$?G7^1aAytmEUlZ<7+>|`wTv|1$mr!^y^dOJ^rCER z^m=V8@)&?BaI@|>lx7HY|nLwK5W>GJLaWB?-DUH3-s;C$1rGe#zUaT)^ zTR%i(COUTMdXhTpD?v^2zKC}oj`-PqhRJ%-#@nv-q=)GN@jd2&DbdVlI~BW+t+h@|=C zkF;%Rlzcs-SNgj$(m?SC>NutHl2){mpNzD2Nn=lJe#h7;ty?nEUM1}?v9VfxV0=`e5tk?GOqwjEDMChCPGfTg{HuxD(bLeMO|*eHO!6yj#Xq1PW3!erN_&^I z%;sp<(wMU@h<%yMp+iR6A$LQAG$HSyFD)XkJ=Faa)_k$Ksi@4cyR-&KE8goFX*rZR z0zR!GeZ5xSmC?)KFGqDEe`$~?HqwwGO&$9)()xE3>3luqw2r?_`;t~wX~cMxzPvV~ zRhq{3;r=_;3U}eRfp#Jdm9dd#OqpllO>CqIQ(B-~7)PY>;|l6@H*Q^-iW?dt?MND~WTfF$n#;Q~(pVzx-Nj~af7&W_EbX5AGb^B7ny2(i{iz zwC_jTkjB*t_$X~T50Q?v(@C4b+?3Ps{X61G)C(YeL30${?)?(opwC%;#x~u^F<|L7$>c z#YUP%lSbOC7EW+3(u^!E5yeIth+=a@4RZu_A}yxU-qit*ev+d9!e?pEmF9{pWtPTh zX`7UJJG_)x!`L8AGsWfv`h|?NJXI66i7`i-$7E^~{r)y+8;`AlS1)vD-@e3!(f`jx zZB|-3q_wXF`hGi)@rtyhRc9u=Jf1cst+F>_FN&i6nEa%%R+?_4ZDkZ~VjyLb#)8k* zFs{%ZKb`3FQ8fQ)f{vsqd!4>Bd~80Xw5dyrMQo%2lq`mxE_6X8AbSY()rloRd zJrCN>p*}uHTxqHJ1obHmPST7ijiE9}m%Hy^`eJOPq3bHzhBT*3yXo`LBJD4?MSPal z4Vfz@yRS4_NOO}ksL4pHOAF}^SmZR+$n7G=7HMvhk=CQ#@G3ShCCVzzN;1+AD-H2I z$)k??k-3AmB+WTVBMlu%Bh9JO&>{`s%c;-UyaXUkL8Fd}UEKFKq%RGn(hNH{YFmXN z*z?iHr43SA9gkXqJOdt1rM*gPsWd}wVw{jR4r!Y?pRqz(5@kZtlqNYDX+V>aR=|6s zG74YEI3ta=|CMl)d(ucVuS^yBN`qn2NQ=+@ObR~BoK2gMl8C3H@#*J9W2!X1NyDNv z4vnB((!L|@?$W08Uh@7v<%o^6K*vTJvy095;rkcLoa>LGZyZLNprj2=8eXN%Nm?vp zBkgt4I4G^o(s0+6*^J}-h_|u-{qRmk8dYO+qRJbYD``6vqrgbhS!{NXplwd2?@$lY zM05K%)uoI>pQ?Sc@Sw{d^_1vt z^`WVCe+}ml6`JQW4n;~)QT`xfUW_?JWVuU5holyu z%wB{!H2g~Z?&_d<7FA~S8>~Z>ocqbpp-L_4r&|twQY-Eahb~F`lZ=BWP)%6BV>xKn zb-KiL&?!c|i!O8>vgG2+T?d_@`j~xi>)@G}>=aR5xOEyjV9kf(K za^ZsbqPGS*wCDRa>GtQllYs1{&1AkQzP*X0GTcab_Ukr|()v&NVZTp&_E6?tHkK3l zPA477u9jhmV%`JY?Cns|EM2hhAGGMFuuA(p*`F~lmi)q`8ROw+v^BCf$#si z(Ps8s>~nqh1s{O(cl6sw5jjnZzI*xp{%rg=>4<$DJBI^3UY*caRg{!(UNa6R80#9PXD zSKYoq%r%?$1?@1kitja~m*QJPJd@oQ+{LGg?^pRgO*&N&@HpuYB;Mq&?F+7i`7hx< zka#D7t0HQmbY}6@=KR_7pb!5o_-_G!1$+YE9$WVXU!ld$#~sxCd?xA3eb&BUmTS!3R2PBm-II&&J$@^rLUZ$N|lS!Sa- z8||ZMb1u4xc@xiM%&};FKHk)rMQB@IfM)ciG_MoPiRL7;+?;Gyn3Z%J>Czld(;vz4 z@MyY9ie@~{jHeMzq@his@lK&bO*7Nc-Z=veqO;6w^xMug^Ux}Kq&W(`;YXWe&}?2Z IZ*30zKaoHL4*&oF delta 233 zcmZoT!Pansae@)IBtrrN1H%PT4JL`rj3GyvnRxzf7G!xZKUsl=mzja#6O6;R$%TW3 zk#YKeRz}m!0wIT()mec0Kp3P~1xSAY(m;xVK@36*0BJ!6A)u)bnJ0Z=na;1BRHGn!mMyvzU*o=?_iSt2>d;p|DR?aYk@GF3{1dyKrq(R~x VKw6kVoI#91kU@k&bfe=!W&mCGEF1s; diff --git a/Win32Build/tor/tor.opt b/Win32Build/tor/tor.opt index 688595e109cbcf603f142f90fd42268dd7079cdf..8ae08d42887fefb60b0496e21633cdd1c0ff4324 100644 GIT binary patch literal 55808 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 U4wHPkj&&zH!B_16LI1D+1Cr+-umAu6 literal 37888 zcmeI*YfckU7{>84tstNxAflq^h!?;csCYvJxoQl?1QYtfFV;Fy1Sx4t&|SC%m!Mm4 z0lEZTh~o3M9YkWFEh%ly|1=LXp{Mhn`Azw9nA3jy+WP(Dr_LX4QyXzn_iL@u)o=K{ zr+rJdwKzS$wr2a`*7o%)S`7*O)L4C8x2Up5sZ;El?^POKIMX9{Vr*H zS-GP0D+9_^<(hI`8C0y_O>J)}x0O4}kaAZUR_-YyiuJp%?U*vIOemAelrpV6P#!AQ z?|*KyE~!Vx`8x9@ZBy>O&bsi{p?6H^6WQivA7;i@o<0BKnQ7QHrs^rT;L>i{#a+S$ z8p%_QBd!Etr!BU=i>%kTact3b{i*CY?ait-uIfp*s``QUif=70;@RJh{oNE=f4`N< z*Pn7P-Mr4#6iR8$s&93}R>(0rtW&o{ zf7N_-7#jlR6==|%zmI1g&8Q0Vf90j-=m;Qy00IagfB*srAbAtH3_Hz}7%- zH(q=GqW#F%pH$5kZpFRQqm&ikZ6&NfzwuZ7q*lGJxVNfq>+jR{ToJ8Z{`PqdHhEj< z`H$N1^XDJ6_1_KC^NYdUe6U(KJoRLDWaH1SSTePcUXCXMzbBJS^$hs~{&Fh$CP-v@ z(|x&~h4jhw+*HWMK|=rm1Q0*~0R#|0009ILKmdWV3o!p%c47)3P_+W#=RY$4SGAXj zfgykZ0tg_000IagfB*srAh2Tr=Kpp~$N>?^ep~ z=nIx|JNlNT+|FQl!gk*w_y2_&Y!N^J0R#|0009ILKmY**5U5T8=Kremx-cpPc0<6{ s4(Gm2o%z4r@TLX=2q1s}0tg_000IagfB*uO5MchV66(}MpgIJ819jHO%K!iX diff --git a/src/common/fakepoll.c b/src/common/fakepoll.c index 17bd18d401..27804ba0e0 100644 --- a/src/common/fakepoll.c +++ b/src/common/fakepoll.c @@ -66,7 +66,7 @@ poll(struct pollfd *ufds, unsigned int nfds, int timeout) } #ifdef MS_WINDOWS if (!any_fds_set) { - usleep(timeout); + Sleep(timeout); return 0; } #endif diff --git a/src/common/util.c b/src/common/util.c index dea4b33719..3a80b94da7 100644 --- a/src/common/util.c +++ b/src/common/util.c @@ -116,6 +116,7 @@ int spawn_func(int (*func)(void *), void *data) /* Child */ func(data); assert(0); /* Should never reach here. */ + return 0; /* suppress "control-reaches-end-of-non-void" warning. */ } else { /* Parent */ return 0; @@ -236,7 +237,7 @@ tor_socketpair(int family, int type, int protocol, int fd[2]) #ifdef MS_WINDOWS int correct_socket_errno(int s) { - int r, optval, optvallen=sizeof(optval); + int optval, optvallen=sizeof(optval); assert(errno == WSAEWOULDBLOCK); if (getsockopt(s, SOL_SOCKET, SO_ERROR, (void*)&optval, &optvallen)) return errno; diff --git a/src/common/util.h b/src/common/util.h index 0590f8ed7a..614a5388a6 100644 --- a/src/common/util.h +++ b/src/common/util.h @@ -19,6 +19,7 @@ #elif defined(_MSC_VER) #include #endif +#include #ifndef HAVE_GETTIMEOFDAY #ifdef HAVE_FTIME #define USING_FAKE_TIMEVAL @@ -65,13 +66,9 @@ int tor_socketpair(int family, int type, int protocol, int fd[2]); * errnos which they use as the fancy strikes them. */ #ifdef MS_WINDOWS -#define ERRNO_EAGAIN(e) ((e) == EAGAIN || \ - (e) == WSAEWOULDBLOCK || \ - (e) == EWOULDBLOCK) -#define ERRNO_EINPROGRESS(e) ((e) == EINPROGRESS || \ - (e) == WSAEINPROGRESS) -#define ERRNO_CONN_EINPROGRESS(e) ((e) == EINPROGRESS || \ - (e) == WSAEINPROGRESS || (e) == WSAEINVAL) +#define ERRNO_EAGAIN(e) ((e) == EAGAIN || (e) == WSAEWOULDBLOCK) +#define ERRNO_EINPROGRESS(e) ((e) == WSAEINPROGRESS) +#define ERRNO_CONN_EINPROGRESS(e) ((e) == WSAEINPROGRESS || (e) == WSAEINVAL) int correct_socket_errno(int s); #else #define ERRNO_EAGAIN(e) ((e) == EAGAIN)