From 37a938be33677e7e24e275e51258edb7a4f4b271 Mon Sep 17 00:00:00 2001 From: fria <138676274+friadev@users.noreply.github.com> Date: Wed, 13 Nov 2024 14:11:32 -0600 Subject: [PATCH] update(blog)!: Where are all the Multi-Party Relays? (#2813) Signed-off-by: redoomed1 <161974310+redoomed1@users.noreply.github.com> Signed-off-by: Jonah Aragon --- blog/.authors.yml | 4 ++ .../icloud-private-relay.png | Bin 0 -> 30386 bytes blog/posts/where-are-all-the-mprs.md | 58 ++++++++++++++++++ 3 files changed, 62 insertions(+) create mode 100644 blog/assets/images/where-are-all-the-mprs/icloud-private-relay.png create mode 100644 blog/posts/where-are-all-the-mprs.md diff --git a/blog/.authors.yml b/blog/.authors.yml index 03582ed4..6425d0f2 100644 --- a/blog/.authors.yml +++ b/blog/.authors.yml @@ -51,3 +51,7 @@ authors: name: Sam Howell description: Guest Contributor avatar: https://gitlab.com/uploads/-/system/user/avatar/5349522/avatar.png + fria: + name: fria + description: Team Member + avatar: https://github.com/friadev.png diff --git a/blog/assets/images/where-are-all-the-mprs/icloud-private-relay.png b/blog/assets/images/where-are-all-the-mprs/icloud-private-relay.png new file mode 100644 index 0000000000000000000000000000000000000000..b163d8fa6172298b81ba813170eff4ce5045c9c9 GIT binary patch literal 30386 zcmeFYWmJ@1*fu;f42|Sa(jlGFJ#KxD1<3`z?-=v~8*zW3e}cU46=Vc~-Cw$iQTG>k%KvTp|1(UI5+3wu0JMDF3zxKJ z7Ep(O@i+eu|7ZW=KlLyEE&t*F_1~rY{NK`X{~Oc)ZTi0#Cc>-J(s4e*FpKlsJ?y~Z z;*w%GeQ|N|I$WH4*g=!Zg9Qr~7RVwqB#_g){AXbr1hT;Xmos$ z*8hjMpXd`@OdVg<2l&3CGo2l%Gtw{FzJ2stYSPSrr$Vb_?sKEy%IcxY1ir~26F^rt zU|=q#)Hf6O4X+HuSM|gKz8@y&DCW#J9L^8{BxeM}K&utBhfTX8YeVZ7KAbtC`AxK$ zcz`}E62igeh4q=9lNAa*2`qPSw{&&nz#t?A6ao5>RZ3I1>viPFJMd*g8PJXnV&KC( zg-khP0lU>RrE2e(g8}u3Vn#w*&Tic=lVpL01tf6rpU%@0Odp#wsxJ3=iyN>bs*j8h zVOk@C0U3rvpnS$`BHWo7mvRw-WW`uTPD`-jmu!$Aw&>-WVv^cG+etM-a(25G?$Y++ zxf=VA%vi}S5zN71i&N_DqN8g0s*#)tPvZM-(tl@Nw-B+Et+;x4Sj!BG9Z8S+3ghQ>yE!$4{nyLSe|o{o@U4}R+8a&RiQ7a?(x@q@m3q`x z%$^iFeKMJ!FI9a%N<{Ea*Mq_LU4M@y4b35rIqFDfF5E5U?fTe|pg8fnP^|PKZ|z5-)O2dH8pdrhFeX~p<6fgcpkIL?cWEr3o?$ce>1icLDvK(? zt53BhhqFw5di34w!Y&;qQH{5Z^^E{HOpjowl^y~EGoJ*}#KTGHNB}4}5<=0w9I7F3 zL$mQjhz%dc7}w>yWh&IfpZWWf(`2-%0-IqwHYN_p95)w~{P^fwfKsOFPD73&u(I@U zu=?NYj1J+Kr`>C0(gzdCtVMf-R7YPbxo!r{){N%cMK~$J5C<0{|jO-E0<* zX1z5c0~XjeuOIs<`#``txVfL@6{D=+Wq5bLn7T^(J`qasfA(Q~B<1^Vf98Z+K#^88 zQ%iFJn{Htvjhha2hVK$JGe34$h5K?VzzB{ch8Da3&xXxuXGiTpX*jX@JsqJtzexZ3 zAx#b^y!%yU+@CC9r*NKpz<2woRPMHlgcms%Z;1dOUB#39`HwFsHI8b*%-$ZfcxIhit!Y@dq5Z*8Lsl z#dm?SrOKV=lHwo01 zEC>|(%ZpE7>SBH*@G&J@I}yrYQmuNcJ)IuD^C%5ezEJ<%@5XTQtwGaYdB%rzeaQyd zY|ZDk7b{&a_%c>}{u?p*-w~lnRA15;vW!mH8gYMZ9Hz%Kn1_?0_8e0DK4VImVj-TW zvcP{f<}rn?$?uK(zb)KR?+xhZIJJ zJt_&>=zS!}9UEHQNDtTeSoe7H;6<<1|7a@mDy_dj!Er%?wTGw56#|?`Al3$t-r3ruuJu(shvF#(s zvA^x@n!@>mRvaHP4!!m8VAuTT12hcfy1pKjAiuxb|L=y4D>>>nY1WSsS#Y{c>kkk; zgZZ>N9VekNEpaFtJ$yh`^XRtcZqMp(XJ>g|)*7hsocce$&|x81Ws!2vE?7NyW0(rD z1pDxmk!s$w;&m`nj}xJXHOXgRIb7PP@8hFkNWZD}J`me`XEXEk?b&GsmqijbW#m6B~V@Fp`BBHZj&>|0h{^1_*XQ4r&Be}W#;zUu+0>*hiQRcxk- zV|C7VG2=fBji8BoDc3ifeWw=t_qpy%2WSB6zoGOWYWaCGujF{I)TNYV22_i>+m&(8 z6mJl@qXn$5>peHF{7mgD3}jW2_1Csn>-`M{=1W@!Q9dG(2SZ#Tv$K(KKRD7l8w#m$ z%vMW7(A5V5Ldi!5AP<2NqK2t1?0<*U#*Y8xEE4m|-9O(*Mxl#ZyICcVNC~(bJQd93 zaH%O{a2#KM>XG;Yq8BhR^C{v`y6LRnIy#xGYeGBse)1bFJKl1ud9HmUIXplGcJs8AhhG-Re!qR0;BsG- z>ER@!w!&r6)+4VRo^HJ&)vD92K<_cIzpVV4`a`L1cTk)U3qhEWG1Bq=NO6b`^w7D- zhgQ;6H^3Dwa`*Y5idDm3@<3B#ULOrlQ%?E<&;tXJ$ZBn^=$L?^pE>)oU4=zjlQlOu ztyCN&K_K^pc8H#>iK`4+_r9=esz$h`C?NZUFT|MYKM7jn*O$1R9JkT}VPXx>=NDzJ zDs?=YDf!LwbV>QCp3gLoJQ0eJD?o6$V?jS74K*+DQe*wN|7k$OQlmAwi*Lj7#UJWm zQ*`M}0lk2la_1*C9dwK%wZ$W40*aCi@2)>71LQ1g@hrH!Ie zNjq3mzXAhV1hwT_=6S?Vj<%P^__*lRuXF^IEu1s7_cd7nFO15fXRVkqcdYARZreJ! zAg-#D5Ni8&I{A1!R=2U!ztIj00ky@DMFOHiA9$($nsVa%Z_Mg{Fm6cl-9$3|uz5&g ze9V<0gAT?i-K8G1l-3aoycA@3ICP>Iyt%B9Emi-AhFJ|M{?6aX1i!wpT>NBx+{BUE z>xDDXJ^6Mbp_VJjtm;_Y`-7<1#pRLkw2gE25@FgbRnc&O*?-+{6 zpv#4isWJ~&-wpkAjy%)-SP-`!Gz3c{M&Sp8YRRF+O!V+_Mq4a;jMe^7xi0n}!4Ynk z$vwCk(#(Lso3nn!Mbs8!R{P?!au%eMCYu3-bXv^j{dJumLMNReW{Q`W_D9$MQ@L)t z@qQXmJut8kKthQ_Ambc_C~KwICtdnVm?LhA5iAHA+GzO0Th7$+9AG~N)^Mx#6aW(zA{CBI7YiC#X~epUKpTME zFVebmv2a`4(8#jp^tuj!d1w3&D#TsG-_RVNH*VgJaFhLK*>#mbi5lR-8V0*;j+dY{ ztVa=H4KKPky9H0hFS-MDtOjRT=JMT{*7eXsO0W5IeKG4biN<{Z8gw{v-e&fR=+c_R z#Uc4%C5^wuMQ)L^pZS@9px;4!^Rw&azOpszy%TB9;yQd7INgP;_oS)vuHs9o^|j!b zE52=tXBJx_cmV$jd${aX!P!^N_LTmLR6vCuwifa*NcUb>VDyXk!ex;M1m48g>D{oee<|Izu?(bdVHM2>vZh)ElOfSCm}hW z5XEOGDE~5~uFrtVpE)?=jmdz-C6ll9X2sLgUwmaBQ^z~gJfEypk_CsB*7g-suj?4Z z;^F5ui_C-T$)UE*6m)bl^v2X|kR+g@gTVH3c?-xg89z}{w52Zc|68I`#R21>DQfHzt@6~ndJ(><*do|l7MUy%x=~mMvGBs&SmkeDG|bs5 z4KlZ^Eo%bS^fA`3zst@{Z7?RmS22K5vd9^rsO=vP&6SE!U-i^hi2#&Ov5W^z95AnY z$y~Ro1sMb+2O00ciBLwJuaxW>I72sww~IXRe%R2NRmNnR=!@A{VwU=>FA1VLHG=@= z27zh^0V4o-z;Qvr7#xzA198nj$5lO6e4Fx7X?3Z`bNZ!%dOR>HX*VFN%-O$U4f~iT z%nZdi?$L?5F6}QLju;$8THjrFuaS>QAWqs0s1Ee8ATXt`kc9fB8`}7G^+IV(kq{kB zKgfepc{RQ?&=&nmD6}|H7HPZ;#94s>PJiFVa|@c1fN#FNc*ZR-c@d7?C&LaIpvOWW zw{Z}49njOG_2vafAK8HOshu~~&uDD0{7xqtd?YtC9KX3~FhgxqBC_iaJ7dhmLxo}#I`H|^GxIEbS_V6d*)+t{PwX7inFktZaI0&PTg850`yXG9{Z;k0?Q`K8?ssvJ5uYN1ywx1o# z?#O(4|$WGVq>*?(%x^Xu(VwX-&dD_ySOMPn7X*+wN!qZ*&Q9caegd_g{Os zpgBYku-bC~a9_-aSct{fgs1~bDymn0{tWPH)gUL<#z|d2WMK{t8B9a?P15N}E-t`b z34Sx=DyM1Cp%$sn*QOYmD|_iF+OELDG(5MD#yQ#3qcJQB1Z)t&U|aV?sL3olO|g;z z6E*jS@)qdQNv6X?%3eC~f)Tg10Sz*~1GpMb6c%DF7!*Bpe*Sj$2p60#RPp=MajEnh zuS(uTBfAZ4x_Y3LekS>eZaead`E$;l*cCEpoGa(xOh48)oe{x4ZZ7O1f5yshZkU&LG=^N7Z_+PBikaQnmIBpoiE@y(^;O)ABQ!>Cw{SZyXx zuZ4`{y^FZTi%`%2tSatc;hU6wl6x2r9{K*d8jc)@DNOF=)CzGOz+?gxsJaCjR4CI-hCZyZ zqO9rVYSl%t3;V1d=FiDdiHnrNH5^WC56E9c3({k;Wc zWO{IC6($5@1HLd-yv@3OT<%{kJ#I-cAosK3mUgz_r27b4xZg7jde9_`Ot0RdCP&W-DzCiR=a(cD_C3dy+qg>6^`i-;qcOSR! zz*ADPZmtY;bHsbI7*)x=9+m3<`A~~|ej&qoh}@eL73=H7Ao^Zelk493?le|OI^vHj zfgg$vH_d7Z#O_2tfUffh4|$TkVKLGmndVQQVs^mEcx#tT@!?mUv;@llbB6$7#Hza( zy^c&k2Ire}rYbABIu;URzZ(jEzLhaLJlc<&9c$v!;qzL}EAlyjj0)ne|D0@J$;qhg zG%hf85+tdaIErvq2bArp8413XNxWQ0I@3@ zv&+z?x7W)JG)K;y~r#!ROH zmjYF^pxmZ#H-^q^TlDLglKYK%rb$-zbfi$6BC=lY*hdn|rke7lxvpTHn-SvH4Q%Kr zleajGzo~WVj!bgkD4S15m)2|}5@&kY&J`8T|b32#eqsZf-$S<~H#at8LULR2$>GBQjSX&o7Z zKkfzgz8$a>t%;`F8GR`l1#%DnD>`foE}hgec@R->QD$)1b!Vkfe{?-zIm^n1HEfah z>bWH#o-@j?7H+t{FfB-EU$q|1Cp$xNkFTzN&Y^<8OEbc0$WY?g8|dpkvjEo$03Y+1 z86MoRpe%;DKIZoUP0tUreiKjTvJMMzr1}Rw#yj(-fbSu=lu|6%;`yTOnIC2?7UCO4 z4O%oA>Tf~ZRC3v?M-z2;wsVg$ev9tYd*f_HWEvu$n)!?_+*0z3cX;0PR+;f$zNX8l zh{Zy1Qrz{+wYP{a8l-@t-x7Y@izY>10u0LM1hZ;So<^7F8wZ#i2VMbS`89qjD zxRoVdv7wbp(iAbf>G%r~-hrmVzfc{hh&_*?bxMaxG&_razksFB=^DO9CHceEdN9vA@Sk+Fh(@$Z9T` zjM$e&Giu#rHh6?0J}@y6!CE3^<>uU2;RMOn4u9R3V%wMaiKJ`r z8kZ!`ag_Pra7lwp<8s$`cF{G5#yvL{%9?Pkl4kaFJZ;*T9z?t*nPuP%&LJf@O(^|g zE(wL9LZ-q4A#NRI0h8fWuJ{S+kOvvJ7n{6fE==fbU%CSa9d|i1vs9p&8J3;#h3k4n zK^*m0b&~orPu$#4Fcco|mTsxmhLl#8c=8z9DZ@?a2AUl06_~HYJL~WRvA0wsOs*h6J!BW>3O_mTAdzlG{n+;fK z^8I+8_Gy{ccr{a$z)Z=3AuF*QJ6tFiRBM9lO=T~;mG2w#_$-_$MrZlt-(@BqgRYxu z2!o>OvGsP~6Q{a`0Xj(HxF2XV6ckf)bFgBZElDgPdq_ z{_;OijlbHM))EHQV&Nd*d9R=;70g-_T6g~fyXNxn{Ur6qRs=;`;j-$CoA=qHquU8JVPf-V#Zll;vnb1-&{V0RA>ns_JA@iws#C(Df2 zb2}B;xb~l(x~D!=Cv5A8X9(od?AZ2k@1DM-cr)%=5b$@YjmRsWiXMZf9BY&c2!6X= z5M2K>2eDWRLl6&o|VNVu=u!?e%CX<$CwiIWBobaP&{}>?z^6=SN$OyTVR^JIo zHOfO`_{BDB%dXCLf32FlbV3eS#22~;IKz0z_Ms?p-qnPc4i4&Zrl*Mz!Neab*FU5p zMIQAOYsTW_9Z%(EP++F50yH@tP*pvoK|Y z3t(Tm+B5ra76vU&qmP{9b+W?at+1+B(F=>Cg1Z~S3Wdc}GC6nsu12dod1-%16Pr{} z8dR3<^pI8INPmHomD4xof*!SNs*|9eGz^Cmbu~=>3cedrUeG!w=+J?o#syhk-(Fu3 zCbq){cgxzE_AP?Y{C1pay=rC7TiLF#t#i&OO0>Y~WW``X1!SJ}1B2&LW&KGJset;~ zd0dZsqNXtZ^5GmMRDcvyEN>d@E~{+qD!961a!SO8ZE%BZeKD3uP>~L@0b*Z4j^29n zW$WD$@7N<-XVGoLs>xSyW2Kg_~29#2~|wzNH6O}_Zz^=rhKznZz25JoHOU$}O5@T`PpT6?rj(Jz>OE~VFz4<7_O;+=-qE|K!$Tc(eU8x=Gud$=Aq_GgV_Az_My)y zbiQ?uCRowgR4K&JO&9!oW%tR? zx|GEv&<-UGl`rsgTI;i(aNnFNrZ}6{Gqk(FHojiHZB}@*Ub6ChB`zaZ!)DY|q$N=d zKA};iZxPxF96fAN;6px0zf7DtPzPyja-oU&a96aOL4^|IsYuAc@;TEikXs=T!5}<@ zA|G0kTbuM1Hjcjj&gu41l?qyBi{cM+;|K5+D6{3PzF7_A_}8QaH#xyNCWi`3A*~CG z&Q&gspD_jo#SWE=kyk>~2zDj(OP8!JlE6I;+Fi-Xu|VPh@~sK)?i14F%| z1qWPs{LSiFnS7UOO6g1S7Hjk)-JQJu`piu91tU5eQN*m)a|;&wJsf?qO?%blN}S{8 zPfbtka1bX#*c?~T2$;Z5QCEp>5tJW=X*)29=61Ibz!8pNJ)@PnFz0kX;AEWH_suZx zUN*6R%9tukQOjMIFA=fsoeGHZa&Q?ZL7p8RVRBk+b8&h@b6UCmTRHgwyuoTqKPL>N zZ<1m@t$s@LB((tZ-`VwGAixu1JdCeJ)LBaa6@G?m|i z-{mpI^T2s>#bXBQ4A3JIjfu>9TUoDVMJUz~0_ec6wHygeT_2>3GPQVT=1`(Ck^ z{UOzM5>zZTe{mZBm0)jJnTk>W^Rv%y4DaSO!vIsa{`a%+%^OQgx$_U%*)cB|f6&8F z!d6c%i!!lzsX;|iqB7JJ6#Fs3Fq8sIpzC=969P%R7y>F6e0X_EQoCREvdG$P9Q7J7 zG|bdJQ(8vomD%WbuPa$btz2qZw3gnxqBakdtA~v4vSqI*HIbUWO%Vl<&Q<&j&HT*U zX~3xst#uG2sXekYPJ=!q#2MbUFt{wzRYfJ#K-Wh#-OFao^C={13q`S5c$7Hd+TM>; zMDP6~(F1V$E&W?VO`{7Q+cuvcpxw_l`)ab6m-OeBp84Z=7(l zu~OEQQSTt@Io28s*h3E73?8Ew`!ixtITU2yMtJ13VXo4z_LJ_7d;+Ee&9Wxy;nt2sso)+i)iH)3ao#>66(-Xiu z)S|yq!{rFI0;I^x+kr{8sNl$krOQ^c_aYc)}E%1YRXwA-Eo<=>ybEl@uBv*Y;)xy=)Raa*xi)qlaAMZAhwb*iCd#e3}ky0%~&GkX+x~YM0j9vl> ztflI)IC9`kr9azx+6tuN`@e84`2gm8XM|H}5an|oBi7@SuEz`saNzJp*Hg{4){n`H*9xmiXFhxx zfrB89sl>UmuY9NG6)$?8HMy>u6vW=?1Y>RpAw<~}32WZjPwc}VyLV}s#l4)3T2ikF zP}V8Rbb;Y>#Uy{mF%7hX)LeGFT}ia~iPof5qkZQj-d*+K)auENkE6$PXklFyD7c5? zd|4ZJSccLU`2-^@Ft7$0!^)kzblo+C&VO$Lsfkf5_4Z_vnM_>y&F3^CEM)SNzh)ER zC+O=DM_P^Om;@|7i|5Q;Z3tw-`M4>^SX>;`UPX)XhwnBNs50v7w5Tvl9w$__76EowF1?-O32vu&0PWR8x#vD9++knFB{jbaoo{ie*+f1_^NY)OYh z910RT`qKeFPqY%x4tag59d_@(7{EABJsMa7O`H5sde?_;4AvVZzba#o(b;e)^H zMx{BG$k26>2_F*Rdwb&wi+@C#3!;fQymdCZZ?ArHjLFcvg9y5VBQKAKllRi=a_WD^ zFDH2c$rTIg2veLm(>1xMQ28_AW!i5<90D0ngL9kfjm3RN(Ra!NY))vJpGssfmtmSp!71+Q3>&or1kf~BISgpx1?=+lu*s?1UeX#zzaakMH!&$<&~a@ zCr)qwoR1!$NM1}Y@O*t6AWwx}*e=1MzFT+S_VAC&F|w%#G%AHiG4eh=P`m-$DP-K^PzX=TMsnAk)E>J3Hzr7FOA66!D?=utrC88u{P^)**o7(v1wC$<5e^abGqs{oWwkMZ#DW3N zjB{-&BKy{Mn(}SQEH-r0z|N0h5PLW#3m)$jp^<#hn))n4MXNT%&g;3!ve%mS4Cu;r4x`)t<-HsC&If;o zFf|vXk(!p4_MEM=vopchL&z}pzEmOGe51wov{~}sB5}QFeE2clr>6scA67yXI2Ty?FNi-uy>FYWyCK4%Z5y5h%`oUGd}$xb3sC z2bcQuUgM8D%QULOfD&42r;>TG^g!D3Kw^UhP8kuZ7soEHY^aAb3`hb(Nj;ZBzA{F1 zR7S$uWzj?ZZ4qb(9lf|=#NR^ncA6z>LEzp(#^4|jQ+L5=H}I4eDv~N_lV179@ANew zbkXbwP2V=}h@JlcTdBB@phv1?Z9~$$srG5^0ogY%4kU6x1)$_d`!G}^3N)a`1}%2o zZU}#<4%cB$c`8Fw2+{}i+zGX6Qp5k+u3&a)NV6Q*lIlLgIpNRJ0p^?V_4?mBmA@~a zDK+s3VQ|1R+UVsM5Nx$v2(%ox)PWs z6!YihY$e_F<(Lj&L0pWH-bc^!(S$gjo^n7!h*5;;+&j`&N+~Gzn?NdpuT4Ba#`%5S z()b`<#L>Dk{?W9gvL=Uz5q&+!#Q(DIj-8J<>SU*0lgK+Dpc$mi97rqS!Bx~XHJt;$bqtBVE1$(j@BhKN4BsCklEr$xY zH(bJ;B9t&X8NI^_;j{ZK?zh@FXAa&K8f~>z(n0_U?HDezzsDAT*fjJ^2jDXJ0q6n5L>6{d~LvLkmAnD_WdL} z^R%xmL@z;2sZ?%fohI4_IcJNi(u4U1yF+H)yg-JXeP*Ub?HC?Xi?Io771TUu2~@jx z+Kb=h2<23i{@K6Q1phJQG)Uy}N!5@!fflQ?w=t@$;ZfWU{!+mz06o%n2~e(YgO{Mf zwB9K%vI-}hCL)l=P>$(0^o|$d`k|HWtT5E+AEWNmIQz%a2+P>}U@foE8A4vb{#nU} z!XOp_%8hALeHQ;sT*OV2-P=7tN)K!IAIFKe{=!a1bs3P`1KBj}aS>Z-;PgMm_=~d>oh)|2#Ajx`@KxU&+z^^Im%M8lMuoL zlYe5CQg9x&6#9WZu-CMoZ5X_LQo;bY3V|fG8z@%TqDrvFvsv?DFUkL?nP~4|1jc7uk(`nc=0|*R8A%3 zpOrlxZZT&JcvGfh#yOedS%$L|;UjYTDlYr&j|Cs#WK~2~91vPHuF~I(hy3x$lsRYZ zz5KPI?n#P$e-a) zY{^IQC}|7>eWQE*htC<$3tQ!nkyI|^w4jrc%I9B*Wy7<~`|HzEbct&3ZnR{v7}EZs zCIT1OrBi;K+fV+v)r0u{B;Qfak}-fpST{a6qGA6Bn{!w2m+++QbpCHWRi1KOe?sGH zFk@sGzgig(vvtuC$vsEj6a1fE(iGxxN_mwS3}60f=9lUVHemsR!dx#(tHvx0Af5$| z@jh&br`@Vzx%{h0+(6S8r1>wr6MvQCx?OXLd^lGP*D%la8N?91&Uz8Nd0d=UpZIeD zo52alB9&3d@zv<B%UF~YFMD7V4uHcQ|qss zkhnXWy@Fh@8GrCz2l$yHt0;8%yT=n(vv|<@F1fNla%|y_!RdHN)c;MZmNF8XD z2v$KJ3dM3zL!dfPZR(oZcY&)JR+B31*(h^%=YOv8Xs#es?mXe{#!ViC&cf;FrBj>l z$RGJ$94vS!ma>M%CZ`gfM1ApPsq-=pQFp#p@#GBZHVlZX9co;QzBE*26kd`8`b+|0 zi~Dfo`O2OQKERp`*0a9&nFIQuX~Xw?FWPdw!8+j7+1of;`}leTk2+@^dtLFNEl+CS z_WMh0g;}`InU;FN@*3Ybr^T}-rG#s`~qxRWfEs#e1x(hrE1H-TgP)|4? z_^r=^xiMe{(ns z+<>nHLT^JW-oD~_DsG=5tHI(2t})!;k}M|zZin1tgW-f(ys%{P{5vH<|6_78tE2Aw zR?%Fj)gA~ALO6M?0wBxbJZ1xg?u8hf$bA2#$ZG1qZ z0AhPuCAA{KD>7G0CzaM!mem&3c^y0xK}F>nlx+jtdkT9o>mi*p)GlAq-^66TU52`0 zCAU(`aeaA80|o)8d@zGP=t$Xair4INI&DzZv^hxXO6ZRF2?Vm3bROO*&vyc z3RZGwn>Whbl4+K^gn}S!`>Bl$HjW%PXrj01#}da(Zsb8_FE-K@O_))^K^yaRiCFmf z#0JTzDD&zU#1$FxXgo7BoGHRda5HwlIzL;K8wbPjO7`qRtj+hIfj(gZH-BGul4@+; z&NaJwv^OJ;YJu%m;-jLsYcA7*KGg?dtq{jCgT%hl#%-O4`bzWO_) z#q$FV3&m%F;dmx&vwEjBRFPDTJzrX)1j_RMO3k`CG5L2i{TLe#sp5+2TFe-*ZZvI1 zz5Qih`?QRd)2eY7nO+Qc2ZZKEZ z4<~yd7eOGE7!VFKkQ2Z|C<0aW&uhR_jx9wWK8{#V+FK*T>H7G~i=Dlv%abF*)~g2p zPmjp?MW+{CBXfSo5^~EYTGwX|1baRi_dUfyz%Z4c#}2eBU+@G@+`Q~=P{6Ao9eO0h zE_{_@Mf(N{JcS}Or@jO~M9PAYfxn7uSoi{?{Vwn+Lsoh8wYwj_k=pYt<)6I&S<3T{ zf8qmG;oV0JqVM}Z`|0q&{Do<4jJ&MmqaVa`otD|a4f+j`r@1&E&G(RJkVl9h z&lvZ|%36uZzo_WFdak8kzt3Bb9jUG89POZ}P8%8;^2#Q+de7fUasTf_Sr??3-?LY8 z=qKNGZZ(PmKKJR~E1s?yHE!YYHG@d%R~9@r^UCRC`NR?qce>jI?nHg z?=Q?GB_)@ceEH3~x_aF?-uw18Ha2qq6V9qsYr~pEroJg=;mb`iU91!gC*BD~dM*S{L z5}B41Vc|fe)}1brdTE7rbtc0NKiT<$4bdKpU}K!_sw|wHC&xnGdYT5LJ?pp!P+`(t zPsUxgc41GSSqH2)g6*EY7Cx0kw`GBgTJ38^6nz@{GM;437-Ur??Pj&2{&Bc8zB#*G z=a0w7S0Y!85H@ElbKR}{1{?74WzR1Y4+Sa-m-9bWI95$J1=^$`SkIlvk1OUqsZe$N zd>h49pSp@TZW*L{ynUIMa|L>0kE2w2nv3V@aqTeFpQQOM_ZfnORxADn>5_uo1B4b? zbyvNt-9C6zQ$8PiInEI`c)bafl6K>;>E5d=AKD%jt=6)iT?aXz7-I>3a?N*{2_%I^*cSN|a zfaZ;Js|}G%?}Q;Ke1oLAWpZ+|BeN4yd^iRvW~xeC_zdzE11F6YoWR~ZG4D4}_mNBp zYpk!$ulkj-Ru^YO3x)2!Lp`bs+U1?(Q+)vXTHD$x(SbYX1Nro?8t zhS0CX+X8gNk-nsi%-BG0S2kAEgA;}{G+8?dS&^q}LZ#Zv_>X!QupR2cJ{MDHnix*+ zo!P#4)S2jkaI9lTt{T6&^_LzhjASO6{?khWH!+=0iv&f6<*NQ5jVdt*>z(%uh|(!D zLaa_SVQg=}FWMF@rZRobJ(Ku&cKj6(NnreG3#SMRig5zHL8C2x8T4VVY$LlPMEva% zj*!v`2F+0~um+v4T{;MJ9B&&yy$*9Y3{YUQ#t3G;)3c-K7 zNk>fyAH&Qd!sS2(z78ixt~KZgDZ$k3vZkX|s7Y=z72Orgx7u6~f9i2;g)9j7hm*si;s}YJ?10u*wuzhPCQpxx|nQE@50cDx}Q^l`y zprJ3i`W`h`;u+4Hu*WJz4>5{Em)bCFn|ic(2LHOS=)0A_%iN^f+zQYeIg@INvJz1& z5VSBc8FjRp9lbbfld5viqlBF2XZB8{86^tvn@|aca*KxTfW%4Q^s>+hmvys>RivOC@yeC zl~AH3JK2s+@T%pdBe4=_0fAMpg z1KAdY!xSAJITn6cm-D2nG+kdRACL2;qNBv`UFNOlKjU*=DQ%)DD~y3gn0KEHzvj=J zJno50HD{d$ZWP?gWsK2xahttm&=r;6_+C(Mm)C@E6Dh582y6Z;Oa_nUmtjV_I+K?o zL~4d*k0~C%86~O#*$*l!r?ZrjebiC>=@=e$D-t6_ zNskC_6zcTA=~s6GX^c&@Z7#YKF&rCr#DEJfovay=^vOC8xEmfWgy1zZKXFvWqrJnBne%fC~49gPK#Msfo<<2 zR-&;UVW+UPWdY0RBPGzL=m%g zx;W-lcOj_PoyLEaG}qTRODi_qJXL_8p%EK@@{)_O9vqncWeD3e{VS*!9G6GuW|G=R zEq?lzjF*5v7h;<&U7--7l%j&^@TH~f{ppQ=j*_{8-Y*9}t!#6}zuRpdU_CRu%w4^D zf{uZa*Oa#JrEiM+_QMc5xx*zxgcWIiqx%@PouGjo5jrcr#&B~%3ipS&q*WAUdisov zE0adVX+j(#1V62N&1W@5uu%^w3swHoJjqfMsuJ%kYc2B9;%xYw#(itC=Mc;EEs*U) zg8X-NnqGFa&_9HkL0u0g%Y>c@vB5fwBW7=w?48jQ=*i`gu}4H1ZM|ue?c_eL2|o_^ zTEpx-Z$70`CRYB!GV^~UmMVP>c{fnD*2x$SDGvWsn{fnTTcJu&)duTTSiOCo8=3l& zq-%bZ`f>Kqcw)2$Kg1J%_lXz`<1C95KITeqU3;o7>CW^|}X~;X&1Pi8P)q@w*^Gj9w!YUTBwB3fG5`y3LC%M6bJugOw zR#Xobhi$&j@cn7rqFaSet(|YG_)9w?(Q*od)*#oywPG2)XCUy6U)J~AN!JnR0Q33La_f@wRFy~TQ!C|Z0;KXRmPDfHV%*YWM5D#f+BH?Y_Il+2tcBrs@u{}v zgXTt(KCd^Lel4PxFWoqbK(`Uo+KWNHJTGWa{sa|N(o%gRhIFWiiyGycna2fshT)SQ1iTbU2d92}$C`*j>%t`=qv8iCyw z7TJ)lYjvx2GRw_gQ&)oA8yuMH#-IVM*ZVwz#`_!n5L*`dLHsvL)qz*PH40m^;6o4BZniS<9dM0h2XKPcY8vs-p}XI zh=_6SUbKj>v=`fwuvota`6UrNg35Hqu zzaWFBEea?NT>Z=h4rl(E=O2c5I#|Km_I9=U=-KS2RbJduea{^G(8k#{25o%)7)Qp0 zP^XOO9!fQ~u<`7t72#Rf!CV|lY;rFPZ)segj^{QQ@plK=K!@vkZA=0+H6uCp_u;K( zbhG;wysXlxA#%o@wIJ_e_oHSJ_~RpaC_+@4DVi%rk+(XHI!KIdibdCvz#sVbHHtod zM&FU5;Uh>q_WDBYka#4M-Ri>oFr~$d#J3itCcq%3;M##m@Bbpa?M4Wp@-&PB8hG=`Nq=Y2m& zh70ed^qWit(M0D7|4lzUIN07JsK-&rl&w1McS$_Os*TXZM%iULr9K!QKk@Kp(#D#n=gp*yBdF#p66~EyT3tyh69&vgc5wUe(|T zn@EF2ggtPA$uh#=7Rleii;H{@*5?Adf&@-TY}G`pVDL#RuCH|~;PjhorxuHe$(6xg z^RZbjcF!HRL9iOo|K?g|a8O3StTF$E)hQ@m<2##uZZj9ZdmKeb`-w&C%N;JHtIC@< zO$mF+UZpgvPtXzCAW|aa1&a@vpTfd63G5O_?5 zo`tCTCNA!(hIf^TAN_WREtsBo#||v0BtH9iK)4gvO!AsN%J^FSd)rU#UTLxYl1f`ow5B8}wGrGRv&N`oRD!yt-;h)5|242{IlT_S>nFm#t7 zT@phK^?T6weSd!6@4vh5UH7iLzUL2Evu2;&=bU}^vu7W=Rrwik>OyoCK3lKoKc(G` zRcsuif(k|rC*aFwj=L@Z5ADodt=ID|&k{0iZ`n}#<9(NeFQsYh+RJ_ z0iDrr+Gty1fX>s~!cPNS*7BqEQzv?Bm9#w7E1p>8j9fyz&-O7;WlFcyZYe~)8!TRW zemN(fC5MU7=D3Bzea*;~8fs7J)bZe8J&AAtT%Z(&Z!6^H;@970Tax`To8X}r#Y>og zdE*A4c&()Am6{p)*=nvSl(AccyDx^5*c~6tX99Fg<&wMQ=3}Y&5cmD=burVM6`?=q zhKlh0Ka$=*e}A(&GoG=waM5;R4M%HnCb!3Z|J^1R1|H0^K_@I=Be1DtfU*c8zP;g7r`tO zaS3~};LwYm8+=XxV`e+X)Q#h$U<)f6DN92~M{YBctV-UMGKH%ISHyTl%)AzIMSzwpr=}53DQoyD#VYu|pdY(OX+7PfkL3ERz@{7g(6`a55uuRE zF>QeNy({CW8RKKxe3hB!qZ0uVH>O@%tEh<2#L`wBdutEv%1du&c3Ix|be3{cpWTsD zhMXK+l)%TwgBiYwJ9dh0E`2DPzfa$t0?}NRyrE$PGZxX-NM+1-+7G@=79dt9IzOYR z0D8KDg2E3yjVK=#ofbGV>s;=*H?rdBxuft0&sp z+UkRLG}Y|?P(O8!dSUvbV&yu&9%;;OF`yeR9rh0(mf54shV=CMSeeAe`xaRFos?AG z`CBd6?>=kENBIK#DVBP0-K$23$n1FpnWt(m9Ybu|LWiK1?+YM0>l4q>!bcVRra63e=2PD^~O3A?>W=3kyF8{ zzXjvq3>pOyv!bv{xqAcbEd!xkws3Z-Xe}(f6x?QNufLX^*@z@c8aswy>H^ypkP(CFfrG^X{S9MM@73(j zki~8`ISCy?01gn9=jE#_@i{&Dch3cxZPN6Yd@Wn&q8qDSdGFRTFX-PIU^ z4UjgNeSaJ=^E5X(uSLhg2|ji^thYy(1Z=N@fM)n+8>UVqE2r>t-y|P@uLdIjx;|Cn zLO({;_CyMciTTBvE|1PC@vtkDMKO^#^D~yVV!=>5!LYDirZ#y^vE!{bofE|!@z+Q6 zor3qrFXJ?mGxNAezv*kXe0`_ZfUeW)(HU6MN+kTDMzDua(qi))t}#6v=C!Axd8(x= z?|AUjS>?+V!-4lQfjD`nvOzy6IN(eIjbmCkD$)!O_qR7t>Hp4t?4Nx17FMseI}2G9 zGLsve5d=_9u9;3=Ai1Y#r(P>5T$rg>?O(rL>*NBG`H;dXl6<T$}q|&UYv_=-BU>R|4f&$pl|AxL4G`S^F9ffjLKEzu|v~ zxQd7HRYSH-@OD4guJTOT1RU#9ul0EMlJY{?u?UydYAG(-9#OXIq(GMEGY&ka99JrN z6$W%^827M2HcZ?>J3_n2;8@q)1%M&5;r-3c9$4+Qvtq5(Ja>8@ff@qs$0ybu;Z;B~ zL1x-7@&J|=vk6GIqTc13*UXP4zRIP3&NXC_P*ZjQw;IHqrPuuz)?*NBS}?>ea=>Jf z2^n$4#5(?A@k1ux;HxpFy$}CX8X+{gViK$OEJn0q(#Squ?MX-IJNn9%6RycorobQf zY?lSZ$yK1gt%!qwv>WO}a#KF%JNl|`FFXvkjTlVg@4ovTgyZ=W4hPY0Dhs+U*gp6(ik#c`%Cl;W5-^B$Ku60}I)paNK<@Y*RIHrq!Sn=csx@G?z zkR1p(Th+$S_3<&9aK;1&jT34fr3Hh!g#0!s8Jq&n5?BJU%ShSMc|kugHk51&792B) zhic$Z^u}GN27oMA5kr@DeSpL(@NrCK#o$Rxg`bJh=c>$<=utgfx@UiaN@4ddxcPW` ziqJ)dw4|L4qNE2X1H{bV-@W<04SXZ*>FK$b<4IAPrbAnFH%CX}Yl)b60zPd`6MUO~ z%~X#20R_B=X2fIa-cb#gabu;g&D!wz$VA1Qu&o`=pXxfe42|>N_ibQMwzA{I({rjS zE3K$! z^ki>%)%K%Nv3j3}rJlk9Z3Puw!*RK>v^HcXs(Gtg z@$~%wF0~+Gvsj=U4ap_WXzMR{|9JkewbXaMWk9oaMWmJlO|rPs^$;jkX2;t8+pG6B zA`?6mSjw^#@b|#)B%rI0o3O%kUD%?BA?u_jcPJ zny8$%^gMA}Nl41A3PDjr+8L7x*bslaHVr)c#S=Gg?`qC~n3$L=Oz<{Mf#f1K=OURZ zIyj!rDRUr3OlpFM1*nKL1L*F&+Ut_0nUMc-G)xa)MVpgaoU$*8gcvWyov>5d5#vuS ze&l8fIFC@1v9nfR*|71YcBN-sVfwHp#L2areuXm}=|77cECE*n=t~bFpd$3K*fkel z(cCN#X#ky;8EBO&!Yys-!bgREsnwQeVefaK-Sb&n{k5l|Jg{0>)B{m3x;yk~|KOmB zPIhx+gK8;WBWFMxSoLzGcXY@jg(}KS48bsa9~-snNzO_g{p!}MQbMJVRv%&FX1*t5 z_fn5^{9sW?>M0WXegkzSEmw&qS>?X_jZ4j7`!+K8nat>TP031Y0>-~Q9lkP{ z>w*LTd7Qbo=E~z1m{@=zB-g&Z-_Mqx@@NxdoOOYPJkgTzHff+@CcdqJlzV!?SV~gn zcHbwio&;cUWO?stC}QQd&+F9m@%!#9ihXg7zAa;c5Wub)q<0e+5iY0D+V5ojS|xuMn6Z$}8tcik-?eMbF(;oLi|pR|RE zTGC$qLQx*|d3A3A@YO7q78zWG6{t`^SxcOIoVQnIy@Wkm6~XF#64Y8MvdBiAGVWD@ z>Svc89r~Gv(#>NEs`5$PZ+zCD(!INc^3r#AzXXj)_09rxCrm~iyzw~{?^7z?@6HZ)|O3{?-C)*^~^8<*vs=WdOaE|^pT=yucZqV~&RnP#?`SGK=@%=#cc zWAfDY9+D@(I*&%S-&LJ6$9bL4&t5W-#n@l)BS~R?CY!pt5HtU>v*o#~<=W|gQ3eY{z3OKAizZbhdyESlACa}-3i^XeNMr@?*tQopd z8UKCd&t>jp-oo}Do#P>>r;R!*Uw7<1uF868&2QunI5@6zydAJ!=%NZ3DYQ(v26uQV z!a1ZrKjsOnF4;I3w05NI`>ZT`;>PkilzU>*iBH;L!o%K5abiD+=n|Nc~jJBqdT{a4?>Zn@`mXe~U=T~sB-$?z6 z5r_NZ0*~nbFwu|8gJolZpu+ryCrWP24q$6FnGnM!Ai1e;?YC#dl?H?SnRCgWq9;n{ zSbxGE<(5Q$#Ybe-RHe9WFvn|2#E&{i!npEt#46Gt%kG{YsS`Q<<*|J$wpI7s?Ag;S z#hXS5D#Bg<+R{3WYj?KJz3Tt~@%^`lJgpV(tmTJRn5Y6mTxX@jJvw82`gL+_z1DX`nOt)V{oOPC@%y)ue`%TzT`Q9)nR_$9PSm(hEEHHVtTgU;4 z3ywV+H)&d_?9r+ldZu>_P^g`8*>d`S;$LtL#L^Oig0UU7b~S1*{^;|tRc?)M%lj1Q zWzo%_9O)Xo05KT1asC}BfC1i^IstUouhTW~x;>R>1cH^_F4wHl!gpRH&AnyNn$o?z7^HPP_xj0URT!eRE$b4esOUH&fNNWYb zaQ_GcU5#)N={ftGx7U8G4=rSD1&%pTCHOAO_*}Wu{=G~Qp!+i>v;zdu`H%Tr;|A%^Px@q@t<- zC6SC*4=NcCphU!H0fooOq*ZOZizhXhjQ6e{h+sDIN_NnCY&_7QK zg9=~QPEHw}r1sr{MW5T@y(K7Q25}c609=PxJ}s(ObIe|O7DxXzpoJ3}R3^FSg$AcU zw?{*B`KXB=oK3Fl0+}HAonZI?hh|FPTGS&0m%vIl&DLJj|B=Mg}$hzdd~R zL*eT{24s{?gAvjuKoUbP^EHAB06uh{a=AxJYJ*x_j7aA6{Aj(8-abq4E0UfWld9gH z8)&0)ZN+D7F#Gay{w>(}c(OzWl_r9`kYuXBV)+YA8l$le~Co2!#7JtmnsfB?A$X)i;SHL@W@vC6O3T_$H-`HQ$4Z@EavwgG@v zkzCc4sB&3sN{+D6!rnKvnfzb@A2`I}3+qN7fSXb$=Ira{m=i3iD;arb0<8K&bGegm ztJvGavCgY)t+tQZqt#R9!|z?W3S3Z{{K9%82NaZipe#FBB0~}YjCG3ShC-D)HL)q} zN}aFElw`5pS)Vv5&1--&;`M|GtS~l>92%k_rrIJ4tpnO34KXw*2cp}C%NCh(YzEJ%5@;p7M z(*polw)#hfZxDIJy+?I*3{2y0PGq8zQ^W6hqT4VbQOO<*d{xolyhd}y#(QVxgAB&& zl|nGB^T9oCO6&JRlP@XbdzEOWZM0ZO&q#}RN_gyR*B8>C{_;GNFB#qn*p&UcrI7LM z?f~Mk{Pu_b+dCNs$5~CqAMo?A0ED?-QGd)A)+r5a%2FZ`s08B-aW`_2Gv~ap=1`+~ z$Req0=I1wjQR3}i2w8p^@Wq26N4SQ|2IaMxWO0eB$|dFA0>~u^(K@=3qgI+i)YGuj zOGio}qvNw|znw?!m-AfL8=^zZtTRzF%@Avtx?;YKjyE)ip)?v`E2EqvtUA2ePq+1z zL%h2}yg?i0{I+2_glHqz5PNT6BUM73B8TtW(#XDW>bTj&H)a1L@x->o6kP_Lx_47l zk{u7X>)1i-OUX76asC#3{C)}E@?qO)&#f)T08bCeH>8{6-B#FJyo)IJ$_Oj}`DQ*8 z7^VZuuzxJk8=@u*Z5ltWC?g+BGH_YAlU-Rnjqz-v-EK{JLAyMJM1n0UTLubU*CM{| z;DaYnXk+6kf?jx(<|LFLgEYj*Z`ibeO|D3GmBe&!kqf3e}l zb;f1-+SG~_LS8Rtm>PCKyU5_@N0?C80h6w`E)(2c-1u}mW=p{JtA*Nh-wMS;3m|cq zJno({xK4vd>6fQmP^x!P-;|+%8K>%7A-YIA83l@DjU3!hVdT)j^|R>dgm0Dso5NR3 zeD@a@>-SDJY<HEPaVUkTm1Kq1=#qe2jUQ(k0ch9hHnx>#O5DjRdDGLzDUQ3G+f zy;qVxEquaNn&~mCKh6t($!h#*`d%RDG+=gxXWamj_sRc(G#1vf8hL%9RihbSs&)7hk1gDO_S4Vv42&zl*cVr{tV3ppJk7YJ~=BBEl@(?x3IvSaZ! zhGdod=S%}zO+>lG1PJx4vse4=rQf(W(7t__Yl?{ngd*pwXSUc?(>p&J$dXm!b+!)^)Ba! z;qo)3F0t_zkP{#x5aB7@aO1e!so(9RGy2*WFY86?q9vqcw-#yRj*+WeJyMW9YSmMX zoQwl>ZX->xd!|{t$I(#$anZy^IMeo`R0IRZlZQ5M(m1XSMjh_0M#OSb&4~@C_2v|p z)NI>*z;8zoAgI>++YAku>lDm<_Kek?!{a4f87?VLG<6t3M zn1QOw&nx-C%bzXwd$JW@v%GGBJ@bb|rPMDh(ma;EKU&6IfZv?-l&ItS?PXq?gW2h4 z<)WI=xSGCWt-)2J%-&=#6vODg$hXs9XLE-=Xpc%i7ZjEnkdhcM0sBGUHZd78lTz)A z%bAuw;Fy{2`>3?Bx2i46_gJfbdwZm0{n+A^(%g0J3!3g%cy-$vdG5btePBSC{)Sf3 z?+5c?IuySD*)L#xvO{jzqrtr`m#D|zR6JN)kj0r+Cqgt?BWpi4ms_FF{(-v5$Q?1U zVimNThgr7SN%sHgPkF$`*_ zZxa<~qTADy!JzXuG=2Aoe9{PAM0-=_p?X=+g^k8!?XT{ zzPrk5Z9KI6u2XWbh$>iqi>o1iT3TFhSudfnc4v)d?@azzj7_Odc&hh|gH5TA@j}JRKfPtt)Y~Aq zcBaFHD3%{HjX(vZi>l^n?gTN|1MC{awS81eh{`|L=TD9c@$f6iDZynr)xgjJStb9}^>kpU>HBU}K3e9~fd4SJ zQGE;6x1>GYIBsHk(3Hri6{Sk1aFY(C!Js7l3^etZ+4HC*yC_lEX;F|h6poDAND(&0 zz1 zu|2i-g>^IgmwPuzg{DsC&(HV>i6?!&IdA2TqzrIP2Oh7QO%wmRF=e@^-{M8IoZs^Z z94z;Mb>fXF_ns)W><1RLGg%KmtS9Y=mEGjh*Asq!w}3Nez+M?bC!8MTu6ajN@^01f z;D*0ajNBN3?Jx1`|GH&d3sOzbRrWey=vMn^J>*nX5 z$?~M57vBBJF0F~E7k8X>gPaVp^gKB`%S2(b2)S1Cl2uWNyDY*=sOOQBpbncJ&CtDD zZW-#c8PA3L8$0h50NsHNrTrZTS2z{nDU$)S;!Xi%sJbfeLuBBG$$D%nl71T+{CGX4Tt1h9I#C4x1xjgqWzwKUJVqzZs7+a^zI37kNYs`a(2|GD2 zXG$gRRxJA|Y_GntuJOH)ZDYaeieKxN>9V}d=Z)t(Uz#FRu4C=>WaJ=QDm~q{zXxEG z%-n%BooD_!Irhl~QXwvtE02Ti*&+Hlv=GeU*wZbWsX($K)Du`jQGmqk&*Y3>p#1Xx z2D(})xXzp+z5F#UWJ@w_Nnscs`54`OIpb(ir$+n+H`tzV1F^7J7*WmoKf#a*}{bG~}6_yH_!H z1d`+y5w2_~&Sh$n=Sqp?{MY$mv2%w7AsLU|7TYreX5P<4jR`UR=uRU=#hl-M%8|o3 z#EPY5cwZB;ylsJ+gE%JRDwiCsCJwPysdWmy|>3?x=D2oMAk-J{2Q0M=6=de)#dMwrzC?o>8$^u zZheZ2IO1B%ukOZ-Z}=rJnTL99mj&Pha33lqS*d;i!jU;>0S*}9PRZPK9zJ50FE3Y2 zjcmE}WVLyp0RR^DXfL7LM+rfqx3GIh(RuDM>eCrX-%9|G^Dq*a2Dj6gglP=(xggTzi8ttZ zyIikgeIL}*5rQoM!{HsJcy)7u>$kCcZ%auQO&DD0e4vw?E~y3laosxutHD85)*%(Z z!D!w%7|i1h2hWE$nXM1D9=$l)M6b5xcvyV$o&^~d{fB(~4IluPP-9vb;Ci+iZ)fje z(J+&GnhYKhLjHD#!BQMVLfEm^>V9#ROiEkH3&S-pSiy0BO)V~fkY5Cgw|;qA7X|#* zmQ{;?t2^I?E&oykh@ZicbfDoviE@PKTt<5~0JnD4DydGn77TmA(V2`_2%te-TjeS1 zsU$gm0sInA9EC5wF%0v?fp8Rm+536&q6(QLb0QG1X98w^cDXLU^L;RjgZKoE5}d@W zl-T?ho^p^?{w9DMUw!_AW&B;F1OS9|)DztpWR(Oe5>`q2i~MS;$y zy&63PQkD%95eaZ-tn)Dj`H_#Yq1ol)ncq^bWd(50P-!8B_+Kk9`jbODyJM-~TkCK6 zz1Ps~6j)l8?bcP!OFyDE#yS=^`|<*~D%T + +## Traditional VPNs + +The original purpose of Virtual Private Networks (VPNs) was to access a network privately when you're not physically there, with encryption in between, so you can securely access your files or manage your network from wherever you are. It extends the security you'd expect from being physically at your LAN to anywhere you are. + +[Commercial VPNs](https://www.privacyguides.org/en/basics/vpn-overview) like Proton VPN use this technology to allow you to connect to *their* network, and then connect to your destination. This keeps sites and services you connect to from knowing your real IP address and using it as a metric to track you. But there's a problem here: you now need to fully trust your VPN provider in the same way you need to trust your ISP with all your internet traffic. This "shifting trust" problem has haunted VPNs for as long as they've been marketed as a privacy product. It's clear that a better solution is needed. + +## The Alternative: Tor + +Mix networks like [Tor](https://www.privacyguides.org/en/advanced/tor-overview) have solved this problem by decoupling the sender from the destination. No relay along the path has all the information: the entry (or *guard*) relay knows who you are but not where you're going, the middle relay knows the other two relays, and the exit relay knows the destination but not the sender. There's also separate encryption between each relay. + +
+ ![Tor path showing your device connecting to an entry node, middle node, and exit node before reaching the destination website](https://www.privacyguides.org/en/assets/img/how-tor-works/tor-path.svg#only-light) + ![Tor path showing your device connecting to an entry node, middle node, and exit node before reaching the destination website](https://www.privacyguides.org/en/assets/img/how-tor-works/tor-path-dark.svg#only-dark) +
Tor circuit pathway
+
+ +Tor provides great privacy properties, but the relays are run by volunteers, so they can be extremely slow and unreliable. Anyone who's tried to download a file while connected to Tor knows how painful it can be. Even normal browsing can be slow, with potentially minutes collectively wasted on loading times in any given browsing session. Tor is hands down the most private way to [browse the web](https://www.privacyguides.org/en/tor), and if your threat model calls for it there is no substitute. But for VPN users who want better privacy, an obvious next step is a paid solution where you have access to fast and reliable servers like on a VPN, and *also* separation between who you are and what you're connecting to. + +## A Solution: Multi-Party Relays + +Enter Multi-Party Relays. Services like iCloud Private Relay and (the unfortunately discontinued) INVISV Multi-Party Relay take inspiration from mix networks like Tor and separate the sender from the destination using two relays operated by different parties, as the name implies. There's separate encryption between each relay as well. MPRs *do* require you to trust that the two parties don't collaborate to correlate your traffic, so keep that in mind. + +Typically, the first relay is controlled by the provider (either Apple or INVISV in the previous examples), and the second relay is controlled by another company such as Fastly or Cloudflare. These are big names, so you won't need to worry about reliability. + +
+ ![A diagram showing how your IP address is known to your ISP and Apple, and the server you're accessing is known to Cloudflare and the destination, in the case of iCloud Private Relay](../assets/images/where-are-all-the-mprs/icloud-private-relay.png) +
source: blog.cloudflare.com
+
+ +They also provide *speed*. Private Relay uses the QUIC protocol and as a result it's lightning fast. You wouldn't even know you were connecting to two servers in between your cat videos. The reliability is so good that I forget I even have it on. It even integrates with Safari and gives you a different IP address for different websites, similar to Tor's stream isolation. + +So why haven't MPRs taken off? INVISV's Pretty Good Phone Privacy service never seemed to make it out of [beta](https://invisv.com/pgpp/#pgpp-release-notes). INVISV [partnered](https://invisv.com/articles/vivaldi-privacy-guard) with Vivaldi, but I can't seem to find any mention of it in the Vivaldi settings or on their website outside of the original [announcement](https://vivaldi.com/blog/desktop/privacy-guard-your-privacy-matters-vivaldi-browser-snapshot-3319-12/). INVISV ultimately [shut down](https://invisv.com/articles/service_shutdown.html) their service back in June. I hope to see more from them in the future because they were providing something that currently isn't possible to get anymore on Android. + +That leaves [iCloud Private Relay](https://support.apple.com/en-us/102602) as the only commercial offering that I'm aware of, but it's limited to Apple devices only. Great for Apple users, but everyone else is left high and dry. As is Apple's way, they didn't want any extra inconvenience from using their service, so they restrict you to your real country and timezone. You don't have the same freedom to choose a server wherever in the world you want like a [traditional VPN service](https://www.privacyguides.org/en/vpn) would allow. + +There is one more honorary mention: [OHTTP](https://blog.cloudflare.com/stronger-than-a-promise-proving-oblivious-http-privacy-properties). It's a new protocol with a design based on the same principles as those of MPRs: two servers, a relay and a gateway, that decouple the sender from the destination. It's already seeing use by large companies to maintain user privacy for things like Google's Safe Browsing and Apple's new Safari Highlights feature. Unfortunately, it's not quite comparable to MPRs. According to Cloudflare: + +> OHTTP is not a general purpose proxy protocol: it's fit for purpose, aimed at transactional interactions between clients and servers (such as app-level APIs). + +So it can't cover all the traffic on your device. Still, it's a promising protocol and I hope it becomes more widespread. + +It really is a shame to see such a promising technology go so underutilized. Perhaps VPN companies could make their own MPR product and fill the gap in the market. Only time will tell.