ࡱ> F =VYjL#=/}> JFIFKKMSO Palette ÿC   ")$+*($''-2@7-0=0''8L9=CEHIH+6OUNFT@GHEC !!E.'.EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE"3!1AQa"q2B#R$b3r ?,^\n Em:9 <'d;B?U RSTS&Ց+6Ri:HuyUI=WV`v?#I"`!"&R7rdȟ9SH6 % ]5"H`s( ƭ.tsOB^,o}!E@Lkp ׾k!%ka79&K CGȭws#pcdH"[cg4Vw/LA?EC7o GN;U=f05wY QŒG{(!ǎ_KKo /Qk|9fa7>ӯ@[E,98Jq-jzi%u?|DzAEfDl岒82yH7_D7"5UU_I$y5ʑ.s FoI# BEH(s@~+ YN8L rFc*ߌ逧G9CHP b/|Th.,t0\iRKl95w l1p߬Q'ba%YXȈouyxQ:0硎0dI$XL5KPB.'*|ň7'U9, >0+{ d5L~DmqNiҵgprO<̭VȀ9w$򠌺#HŷHDj9't*ti4=R}4OI vYWQG7UJB9F Ⳅ~N~$x> r€Xn3 (u;0=gwac:*-Bx5x㿙9p?x? j@VZ'O; Ы_?|PSUvsmkm)]LD!lgҵYdé/YxȾ3#bk{^K06[eHJj 8j #笷U݈eCR=c uZ{Odd UI7c?YQ~|;Z9|.RP)(Fo.ȇԉ2M}U@iWՌf#gf=8#HMd8VJ!AjY6DRndRvÕ@Bt6ȩWŎ5ܓB?8ǑTVڨ=wDoHMHI o H%JRlzΪT1"MN;*ꂗw*;#m uD~+Q *פ^"C%@=wcuL#UV`tb8x] ՙ>q( $YqxD-@V0e8cuecVp7Sĭrq%CFD3p0dnj28ƙ{tE/u>?#KQrI)^!]/w. qmWG 1m[Lx\(Fʝq7bM3B ~L1{zzU>ao׶4>1c{ح>gQڮ(7}>RΝas2Qq|ҎxYuNu{v;klW,-l|ZN߼B~_>A츑79`2w64xWxo2MxJ_i |Q㭏L}1]/-w+6܃2i˫hQbVM/)Gsl}ю%l"0'1GUJbԖ'ΒKbUX:{SI"\/9<ԂĀ JPiQț?򻹭ed\l:R$Ⱦ7,)iv1i}z:Œ6>x.h^m |7^nW"_dhƭfj20W U6j6nS]5 3Vo|[ 0_:ҾBO^f[(/ciȖ)-1S򜺞[ccm&ͤdP&|qC;* +X[/#oFXW_c͘}|˶>?|Zg[1;+sWb~jO|(;D-޳;E=yRl qjs+(#B|wQ"!CdC_)s.M$b|W$+џ?pi$)բD }g>CpVa_X1C|,u&ou70/!](y/?;|M|_YhC Ο <_pϲVf#˗{{-__f먘e5-x_=gX '&Vzed5_Xv'5j 4?QC+9KkԑFFFFBSB4j*k;QğokTz-4 m?N.=R:5u)NmM(tC r7eOcj kU%k!'7}|PpޔFa:uyo ҧb֧#Oc{\CetDNNgײZuJ-@_B Ij^5C>^}}i ֫f֫Τ^@>^Bڠ/!SzUzuJ(7/g7u<֧Ijnu@.d-Ǹ4*f:ɺ:!xxhfu@_WWt`GWЫnէЗkXTЫ6(S+4 ZuZuZXn:ZՐԪ:hU-y-ΦZuR)ZuǑɓ!8:W֩:u:u׭SgXZ:jN5A+!:uu3SЩ9'ЕnuBRڡSЩTt#JưNN ##.')T7:ԥOYrҥ蒔OX1:9y(hދL=_4y[ƍ}ս ߏ'1Wacz6pF<ͽ =]+`ka{C'kP6ݖ57bFM8G'y'=쓍ز7b{'>æm|re+i9ormv=>qO`>)OʔOȭormv=>qMOh~roL|k'd%{|]Ok+>G?,eߕr\+E}s]|mkẽr}k<ƮG'ε.kNX&INshĹV>i:_9~4Y}M89HˉOFXNmGZQZM8,ɷ|r*ǰmfYPox]O m.',g~'+OZN.cmDgQ3hyEy2'ϣ's r/pyزQh+ wKbJ RZ?ܹf]lyE5?6b6z43 O~In[N`;hÝc 1wsY"w^ ^?_c gÝghÝ[ -sn(Qo`GDP^YyI:YI`'hÝS6唧9la쒧QobG|%?ZoOc&;gG\=?Fh%/?FZQ삽MȶK̹ڰUŷ5)|("|(G3yYd _e_|Q>st|G3y,!~.v9?[6.5)K}Rf|rYZ/xn&l|-~}]6)/3f|Y̭i*[Ks=)N+?uϛvd)/]ҙ+ _e_|[}in+w24R|c e_|GXǟjۇt\uG3y,Nw_D|-~xjp{dz.|{N/Zudv8i,."<Nr3+}'Ƿ72|zw&O쾻s<U1gBcz*O^+U_+Q[ZwWAywI%G{iρHAސSesj]E}"AU:ﮢ滫d5Dw<{?l=,g? 뼍>-ç=&NCJDiX$cb9ƶPGL3 nXؖ.j=G[50`\/wF\]ɖedW:5g6¿d:gyc]Ü ems~Eq_ٜGZmˠq\̷ {6l:o!=ikEo9Fk/c{1i㢯w4+l\n^\?S|B8B?SIn";s/Ė%v!̷]&MNMMzGN1#2|x#,9 &AGE:c5 2Xn_{1:Jo=N`K{]N(о񠏙v+cB/X-ƊE7d1VrVr3\gx][l1nyy2y6=OY:lm<}m̯ǒ™-=6(Xr= x\}pU߽# $!>2#m`×hՀS`@'A;iԂc802@NKC;#o*(߹{ݯf{s~gܻ{B4#8G(E3W9Y3q&=*D0 mϚQ` ꐮAj>Q<"f.(\7Yd2)PJ>\פM%Whk>y];V8r :kж[|R3C]#Eމ6Zu6ʎZE&ͧuyu8rG&s_e4;x"8dnA_Ř`7qMmt2^n20; jڠ7<[ǽ= +]7W:J{xgjzK1wJ[rg(Q::[K,{mџ*m3D[Nvm|r 8BxR$~q]ⵆmGYm$루ۍ2.%:cgZQ6hnb[S T^n aw}A_mЛ zs1c>ՠo5WL:u  ^oeҩ7 w{5i3"}?tBYH`hɲ@jx8@ /x=Zܦ,#NCWIa+_q'%ۭ Q/[e"r&*N1c{-'~N^IL#e#mHwKgLy'~/sX#*ˏfS+jyIz m.>{(D1>bN?-Ljkzcě8_|>~]~?COg_croƪ)&3}BǵL1cq,cg'ա"]X",^b58H,9OceXY$WȨ\\n_cg Ov=wX941>eSWorxzo7oX3ä1qkMґg88 ՅƁlJDM,ypVɁw6ƆHccSƪJ`,1VX%Kd0|j.1v1.ccgS961v1v&S `0v<9TP!y|FWec}H{!Q44miDMOwwQw$W^*C/(ИR+qkbjljym_N2Nx>-+.,1e_HƳf)u҅!GBoPމ#wԉ3+T!tR1gMZF@h S't;#Ýx-둿z\:t*NQx^/NXϡ ˠ˅2{=|6FQ>6stSqt%9!w=W`}r4פb0`ίt^ȞKC裁z+X47 _ȞPnمD煩d}\s#(}^Ȟx?zf܇Ў煩9>>Y{5}BH{ T~{x}-_GSߩBޱAЁ)vN>z'ϧcZެ{v\Q'˾#{w¾J 5S3Ň~0~}1yLt?ҵ%Ⱦb} &_͎d߷i}^Wd_AKdv;E zW=_͎c/7#[%ȾSNѫx΋^@biT컘cgWd^W2):=;LJ@_ Ӿd߿ZY5W*YK<\)^^Ow2n"ߢ=j/+a攱V~`_O>K&eee]LW-۪{Y9e-{uJi{Y{YeC{y̺\x{hyBS-gmþh$=^|Jkѓb4_,բu 1̮`[R.},c}|y3q26a<֯g 滓$Kd?pNڗYu+{=GgxhV Zc7|G;у/,~b'N໅~wK=v2ߵ.|;Cw]w^7i|O} *^BsE8lK;PHEyҺ;Ey@s M!y,KEnSz3=m|'fmA*F| s[}bˇ33N^"FoQ1:ɧ-f q[|Dz<@U(xoŋH_" Ejc?n͈g!NoEM5Z^|1);bx8~UGYvO| h{yͫ SgiiXR~\a]9JT_l2Ew%h,Rl<ڶ/XDXcF^yݟq^Nc[[gFao.Aވ|iZ Esy*%\V:wxhXOw͟:Xu=nR{9['G{yq-+m{=<1/1t⋥SĒ*aK3^Cyiad%wR)H-8اz7qSd,j{^rZ_aqiх]iɢVof7}7[.gnxlBۦxؽΚ^si6|;j>Q{{!}Fe.Bц 7vLq oe=a$¸Q:W]ܮ(^]_*$kӵ/?+3}If=e9&}qקf4zg6>g{?']CѮzw'v[8~b""_bu+}WB-گZco@O[\CԼOqA{.Rb9~E,ԾXC$_|n9틊V y[Y^X~3|m N(`U| ,L>Rq\~/Xc`t?i3n8g8TmT9j2PNG  IHDRQPLTE    $+! $ )!#&*%(,22/' ,"2'5)B#F. J/.D&,C( F0 I1)A=#V7$T8'Z8)_?4C$0E+3J'3J*9B">H$8N*8O07P+;R->Z/;V0=Z0'`>RB^KaNiTpZf LC1ID6WC7PK8XR*gB,jD.oH/uK1xNCEAE!DL%DO+JM#FF2DR)CZ.LU'HS(OZ.BT:C^0ST%R[*ZZ'^^*P[0[[9De6Ed8Fh7Lj7Kl9Ns>Y`-\i/Ub0Pl8Xe0]k1Sw?ef/kk.ef0bn0no0dr3et8iy7n~8qq.ss0DDDUUUMbCH`RT|BXCXhe\{ucmCipRlr[wwCwwRww[fff`lehpetvewww4R8Z<`t>w=VD_K@fbNhR}BpYqZy`787>>DFHKNRDKfZ`RYf`fS\bKGDlZ!H Oџ)=L:Q5VZ'JD\L&R.ytipV^=B) YdThAJ8GqkZy)?W|EeJuMVP KYS5T]|PL$>V^.+D$RB%D3-#31L4rZqxe-Rs%#J PD ~Ƌ Xɑg[4<\'+'{+5)` 7kT.UpC[y:#@}l\S)rGW&N -Hm=$ Aɷ+s505r-TeWy RrߥJ*& 2":;UпWq&$&ehw*wV!<'>hm D9SQ_KQ;?-I";F%c^l-)ҘxU1l].Ub2d!vEhs rd~y˼!V&F<](Ԅ< U5˒kC߈*H|8!>hBɠd|b<3+#|6ŤpI.%pWÇ%aos4]H&B seB7]H&b1{o[[<.{n;mu.=%Ww\67̽RKrf_ tΦ"[aץVڲ/;[J^,zZGr;lsLܩ s_{CPc}+5ȝ b]|(JqhY wyGvժiugweʬD G<,KA!k[c%xoq?"ãOw{ {;f^޷,|%r?K]Sg= ggj"?:| w F*{UaHhYC=|l~3ܙH X`Jȿ-t[A&f03@;Yэ8qtZ!33eͿ;0M&h ۿ3i X߇uNGL;?zcÎ$7IJoK{tqLdlX jL6\?LJҞ0܅ X$zE*Rм3E&*p&Wz>᷃/ q'iy)wj?,UCೋٝWB5; ~$X Xk_kw ]ܟ,<]׿3v8?[|9ۿ^,]wuܻ}"Gݿ[.=1]cymXݟ殅c{lx{?#&M>]辕{sr-nB]o!{;FKO}zcEהMVJ].u ]N./~e~g*^'aG;Aw>N8YwπgO]7fSd{ZOkB޹,Ul&}:n㎶6cunU#-fחܝpy^FEKTz>T+N<F>{c+]8Ӆ0w9ݭ}-̼ MOntC'ܹuB90ͩ,z7\m|-~Z"ߐZK|g_#׶s sbt=lw,YɿZw2EyWNY!iu0yN XO?:$Tp˟Bw}y]yǢ;$>Ы<'1XF~}6RyGS-zR9A}EuFLp ဎE_42U•dOВwC1Mda+Xw"o wFI" "֓9vxfp[.y2eTY1gJMyjK('W^mֿ3yNpJݤ(gj"4W;:>礌tq)_^hK]XF:9!eM,<uzsFE>7;\-_Kfj|"ɟ-]C9xȋD>7vo?_+pGp_R.ܚ/N҅0m|/̓|);AWr ^-qٖVųAx[4~M!lMwGrƹͺhL_`<>ۼh^wUkr*͗ Y_]^P fF jE+ƸTP~a$<ݬ0y9h`PϠIg;a|b]_Ot)x< Uޥʷv63fj}c'͂}9_!#Q QMs̮zݺ'n>BWH&s\Wj/]XCI0@;Lv7~ZmV.ۚ#5kUkt]*L~e)5qP椆2 ǚC3mԲxZ鄱\9?dbM#XS*^NDֶKȮ|]`{ զӣf2s&M^>ŨʻL^#qMMv]}_6cA{UNm6r$?;6 hSɃ]oS.{-ȴ3  oS]޹q^`GS[]ٮ+@V~?):M9o.Vs]fv{!JKxȳ\yݾ_{_-ý ˠg&u0o;ຸ67~fx'V;}oyui-fā1Snlva'- IT~ε3f:; P wM޹u7cap`Gwnk-HpEQ?KE\k"]6Dgz+ǕRXkj3\=fҴC~o9F.:{GVBbj9|MoAf5sԧf5A.ZwcB&yyy|m^Yς$^ҚU%zjog&64ݡ}mb$DPDk6X>{{%R_٠xq\-^jYҿs-~ 3s`{ˡӞ%SZaL8YE0΍n4mWE}>?VP1c=$ 5Qi̲# oON{Mᎄ^"X$Y*X9c: o/~/(¬9 sT(n:a^Rby;I(pG;FJNuQޑT';,9oAFuW1C,Ba3T($H焜Z}y3KmڴO} <,eR"<'(ea1s9aELUD8C qosg$|!n\˹sMcfīXهtSd/)M<'o{ Y+]vl;ww*ݼ]yNbja61SYGoО۾O8?MUTD|uC_8ecqWƱ]_t=Xx݋K>ߊU)zw"F鰡i]? ,⺉1k͊1I&]Odw6(&9-KT v`527jOVBq~Ԍ^ U>]mnsx_w(K_}8)WiqvHVW|yYo;lBbX3{w݄c7=ٚ೯ᄗ8Soq97#i OL6gRX ѓwM[ӇtUtC'C "I.k7:''i07@_ dܕs_`fTV :g 9ʝמpjp<8幗8Ί;˽s3Tb/<63?bLٽ_1s iO n/0s0Ԥ_~a5qlE7y=ԟIad~ xX7RZ= 4} ap,wqe4bEɿP3܅bFj[. q6;Tw$Oԁ]/=e .g$}2s@Ȯ۵V]sCKyQgyd#їsmqv*a/Z2.r߇g=aXΕI1RsOb"V^niy/|YvFdu~V!y~a ~͡|o)T;?ԉFqt9)l;ȝ;p/g׸:|xh)q 9)WsFngόG69gΊܹ,w#EsN;׈sR7.pFYFeyv zkg: {<')F ɄG>Kthy/`K)֝8zJ<$3ߋiz/7s"I{(tӳFf B|nȻtw: n%;\d}mtws[݌BY% n=?*N9qU!|JeX5MIqahow|{8n\9T}M&/b;E, N$>}m5EAWT喦v偝kBwnrl; SO &pv.u{Yz!;y'v!ޭHe,47,yǝLXD+NxZat-$<54u۝'}O+DjCܳ0w)i\ೝm y1ߋLzWޏվ <=77'nrﺒxZ7߫߅gi26א k\x=8ـot;rzX'r&>w^ wkOveG&^7햦r8^Grm~e=h?5x w.>{O'!M1Cw'h^L['^r.s'^}4u.Ҳ~l[E٣Kj$"JuK%^0tc<㷮CB?7'eFWW8'ܣjHc0wׁn`ޮ[(9WӪ:?tIZEÁ?s瞠8N:O"Zh01+6<|Zy[ ?EY;7?h~M.4G7S_ܹ6cO:z޴in{L"py\VG? t(nC=*Uѧ~8p uW!mcss?d3YҠW ZK ]']G\:oݽixqL~o8-_EG'Ց^8oE<Vvpٶ=?o~u! NYq~s;n2܁*2(;w>‹)~w>+ēm*y|^:=ڀfw6yۏѕ7s;|5(R^JFYn p]mS6X<66h(L8ގۺ~Rvr=Aye:M9pMaclzwoqyygm=gvw3Rŭ_vغhNŮC8>6)UȖcsܻo9^AI+"yP?̝{p#yHzdk3xZdq2ܹgvyڶCvnLPC_mwr}6*цO\۹di2[L \}yim7Bm3Tbi?>Ra}6ៗxu-c-Nj?K__^[UQm#ϝk{Ԝm)¸5=1yq[H_a}IAIc$+ wv4VTK'/_Xɓ_.WIUu ٺ͇Sc yHS0*MO^1_~T\"2ڿ覶HjѲU(]ONySG/^֝0c y|:# 9=kƕ[_|Gn鉞/q ~Dq5 @iM 5J57Wyv~ߺ6wqB/Ͻ0/'"YnJE_q,sc^{ջ2|K^!7Ҷ<~W~l=L~]9ԇ[Ц'&/& q*w^ק eu8ϓ1YzD ~nzŽXJNkom}?90]~w/°o_WoG[}^iE<Ǜ_|Go|҆ܚ~ibrOO 8zD}"uq75tʕ;0gLO16`c<YU:?PU;L[: sxTW&pZ'˾wљ^Wk鞼%C~7•ޝo}J B9uB7_Ω7rjN8$ˏQ*4WAjNڿ3yN`41ĝM)G. W;2u0礼{}hzptj g s]o/3;Lytȝ{͏}kφCAf>sjW?e3vdOga\lJ@;wWv4?}ïy²> n$=8 c0v=K:3yN-ִy+ѷh~hy~N9 8IhGm>̫o{^N9 Goo<Ł٣GvĆO{|s$/r?hGxkC7H,wQ }t]W ;Էrw;}эempij7wMFwv1 ǝά?<]rw;Xз qnN?.wa<81rw;rG67 ΝC8sB^΍?̘>)`Ę>1hÖW-*rwH}}Wm&rwpwol {;p7uls>Iñi?d_Z,!wOrE;ֶ56775{w{Z :ذa7n߾]!r$wR#w~myW46V)ƗlܽUpmۿ=C>=]Bo+k `fjmŤ'9B9νÿ6w~qwgK:h 1I9$oZ6 r ]oe22woYﻻ5<$Gke}KʾmҤ'ዬ7]:|m'۪7SS5}6A7wIj+g8d]525.@1]t>)u^v]2?K7w&G""ŬVM\,VFjGa_ H `g͝QmA}Pav"^[Q4Sphyߞ.wc4yU2/yҕ._CI]͛TuբRq;)XTaaf~H{!^Qp0(%y 3nH D7#R9O]y-9/Էͩ 1n.ZES )1CmpJQLh*d FڭE@{)E-1 ]+):L1p]pʘh চ*ͺzகiwUl[t1iUOnAT\ ZM #I***ך;A| P| Ab_/{Tq[,Oڕ''7r촐{8!w/N Z|sx#aWcS}=OT!̝{xKavp߂gyߐELI*0g6SFZ$&?">K@Ύ&̈́iE8VMVJ#T<QL*^*MxTXJ "LFy @"8ӊ$*EE%4[.ذ#<<_dP$\EIDP_?!](\X Wld B,eCI:{)#Ӂ1y?yvQOazJ2c 2܅x%~\ES.ߡܕ*"Юso&5]w]ȻG^&Byr J8eIENDB`n \o"Nm6yPNG  IHDRW?gIFxNETSCAPE2.0$NP%tEXtCommentGifBuilder 0.5 by Yves PiguetttPLTEff3̙̙̙ff̙fff3f3ff3333333f33f̙ffff3333D"ytRNSKFbKGD?>c0ugIFg 6 cmPPJCmp0712IDAT(-[ D!L!/H=խe{5FbCɽ!G\G$, ;C3lZE='cB~[NYq P6,"ŜӆLсne0 ̉ZC4çf&Mmjͷ\dB > ?t c!z܁!V?"" IFmsOGMSOFFICE9.0GIF89a?ff3̙̙̙ff̙fff3f3ff3333333f33f̙ffff3333D"! NETSCAPE2.0!GifBuilder 0.5 by Yves Piguet! ,@phd0 b i -Sr;*pH2M$Y,hiKrh\TKGO ~kGT]THT^^]Qm]m?!iQ!XRJBͻЏb! D!" jLNi"MȨ HX&A! ,@phd0 b i -Sr;*AH2MxZ,N2 QKehGPu KG  FIkGiT]T T^^]Qm]\?!kmU!!FhnbJ! ߯D!"jLm]V #4e%! ,@phd0 b i -Sr;*AH2MxZ ! Gס  zehGPTKGOG\kGiTT]TH^Qt  ^?!tƺ! RJBЍbD!" jLʙ! PG2k"9vJ! ,@phd0 b i -Sr;*AH2MxZM;pt, ehGP~TKGOG\kGiT]THT^}]Qm]m?!i}!!FhȞn  mTC!٩D!"jCÔ! VmBL?"Y ! ,@phd0 b i -Sr;*AH2MxZM;pt, ehGP~TKGOG\XGiTHT^}]Qm]m?!]t“!!Fhn~mÈb! D!"LǔVڄa,D#f%! ,@phd0 b i -Sr;*AH2MxZM;pt, ehGP~TKGOG\kGiT]  TXJT]m  ]Qm?!ȡkm!Fhn}TC ߫D!"jC]Vm!~(&hњ! ,@phd0 b i -Sr;*AH2MxZM;pt, ehGP~TEH  G\kGjT]TH ^^]mJX}?!Ɇ!!hBQmTC" ݫD!"! Lƕ]Vm!?Aяȭ[V;*rIENDB`FP T`ϼ^I)QKJFIFKK MSO Palette ڨޯ޲൵෶᳴⹸㶷㸸㺺㻺㽻侽庻弼彼潾濿ԝؤبګ۩۬ۮܰݬݮݰݱݲޭް޳޴޵߲߲߯߳ߵ߶߸ల೴ള൳൶බื๷Ჳᳳᴴᴵᵴᵶᶵᶶᶷ᷶ḷṸặẹⴶ⵶ⷶⷸⷺ⸷⸹⹷⺸⺺⻹⼺⽻㴵㵷㶶㷷㸷㸺㹷㹸㹹㹺㹻㺸㺹㺻㺼㻻㽽㾼㿽䷹亸仹仺仼伺伽佺佼侼侾俿帺幹幻建廼强弽彺彽彾徻徽徾忼忽忾忿¿滼漻漽潽潿澼澾澿濼濾缼罽羾翾翿¾¿载迿C   ")$+*($''-2@7-0=0''8L9=CEHIH+6OUNFT@GHEC !!E.'.EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE"+!1AQ"aq2# ?_īQh7p(ƛ$ĵSe!-7QUi ݔuy*D6bG7sc :_~@"s$64AHs< }B9c #r8(3bZ X5~-v~?yC0Ry mX(6dU^364Y7;VܪGq'TRmo" u¬hF&bwjX :#DnްCެwy+TfE/}I޴7R.)uA?:1mϬ iAʽaֻWgfLO S15wLZ[JqKC6FU:V(jGasDRL-oSzyb$sYejAʖTt:w~ݛy(ZR,iMGX|7q"NUvK~ks}D R"(7uړ^p%v|ѕƈrgGi4$'s39wWDR_DYĴ.koyc 6p4]eȲB;w"M)|C} 09?әSnv?xju+w:JqQeWr$zlS xt"6{Se.j *dѹ3~3GwYd0CyϏQ(C߷"PVgMأ/Ƽ9^}a$T'/xc)e`x\)2Sj;~JwRe~S EmKb7_ [8y;rpU9dJ̒"Qaуጞ},MdJ0nAD"q3 HtH%g ?Ik:,۾ri59ti寷5Y„6{-;׬j猥ΫDΆ}Ж|ܥ2(P؁2N$l Fqe%X aV>EqOF[9YGsɦt\w2N]|+vkb-VIA΄=oPxtu;9%ЎM 2wU,i配)cNv+dMG7n$]D„Rd"{Om.c`&a j>oSZ*Z5/v$1_~j( (3ɳm] F\s?\l?DzKnݫR}hf}j+i$= ҹxt*F1HjҺ۸ʑJLJEOs5 rd5w-1q>ջ{ϐI bꚫɨ`Υdj+.x76K,>΢ې<bT|=li=w :W109:ޗ~fw4zk?%eޭh26##ns3%VZx[,Nݩa)lfq#'en'a7 '" r#/O_ˋL20gLчR62:>QCt!Ŀy*"faa@yQƟojn3㿷4߂(Ԟ|'V-pnm◪JT'2 4 ,?JZG{+[1(u77TzZ[9@19Ӽ5`,GA^֓j[ZQy?y?^2 n 9ӎcX dyY13|p;Ԇ|q$ x`F@ T hnCD2n} Meqq'#=jxEfA<qE,mF :wңamHo~r^G~ZG[b^{lgWRRG1 cD&"E!W+kzy m0?Z"۶TIa|{[]stZ\Gҕ#Z>bew0a9_XR@>uO @i<{P-shm5NdpZ.j ۹=fx R$md3CҘfsʽM8Dt`Imj4#~T' W5 淴hn\Dv֭-l󝥾9zMdJ) įOQ뙮N0}qYW7V?2m[H#鸌lS%Ow:>Q#H=6)J[h(۟F=7JmUXP>YQiZun /ug>P ֭nSy JEW: șɞ*N* 8]}:1[6ݢa٤ aj->'vV1ǧJ.UpHh~ነG~|qfݐ7LBQ[Hf,dqYVr,!WgeM8FU ~,'/Z@ӟMEUFC{5R yZ=>J{mݠpJ/\:Ap fzG*zHBd t5%dI=85˟Pk nn2?oz=뛵l >ZJZԍ>pBnNu oۚs\mBQn@!D{lxV,^پmB3s [Dm 1I~ڂm͕# ?}RH-궯Cfs=z ZZ:K`O~kh$)%C.cұn sU=zmO G(~qȒ4]հVЕ$&,|$~+3hW< 7Kd*60X򰆁+e3(V JD_Co|R[6n( "vn9%m NNglWv7:Me* 18O vhZqVX=?Q⻑I▊Tp$ Jq۵DO#n E3=Jʨ^{L~R!9V"K&[@n@-bE}7_ܮ[@#ц]1VxV^$3.LND`䍇Ҷ֖erEN %.]=j"˽&kܨom^%h-N+Aפj ٽmu`n\`=WeǷqdt`pD*ɐpm4=ˢ[l8.&*/ F&s料M7SӾٷ=9ih ϴ6ӧۇNEsN4^7 [T"Ɂ*MԽImuw~ ct^qn((izUYB #?_m]GC޺ C!L R'k(@rkfȭpݧ`A0>iޮ Ou.ֶݹt|`w9p}Or2Sd+YU TtYUngՏ@y`;PqǧPx[s.H'zwyT@'$3Ǵ%٠FpY-Unm+ rJFIFKKeMSO Palette))19AA J R)1A A)J J)Z1b9 R) R1)jA)J))Z11{J1Z91bA9bJJ{Z999 ZsC   ")$+*($''-2@7-0=0''8L9=CEHIH+6OUNFT@GHEC !!E.'.EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE"4!1AQ"aq2#B$3Rb!1QAaq ?TSy#7tĄ+y nNuwPw:׽cg(2x:B~e(H鄔Y#g.# $eMZV  f,YX1"Z5j}:um%_QI[*)a As@$p(s:'啦 Z[D=7 T^k4;x&eR6\no|jI1Z |)@YKu\yy# Ѷa85X3) ﷷ\!h԰;hbc`y'{b+$`go*v"$>f}k@oN#Kc.Yc]l܂=wpLLޥ*@(HaEIŌ>|eO z [88 тcU@z)Iyd$TT0*h(7ΰLѩN;}80G4)|}ࣞ\sţ#zQ^a3c9$@[zp.͡XQ0zpOW6a"0Εg`uMW0Lq>c s/qRv]Qw-F[Pc{q~e߂y3S&a:gWrSAAI6fVk,`|ax oV}q9G%c4/a}eBQKgjڶe{s@SpF9 32G":\aR-"굠c_FR!8! 2Ƭ; :ƣ[G]0is2kVb{Ǜg>P:ssc!LBYGN}{㇜c$0U|/.45V{2.N |xrhUi/Jr&XF7퉻9^PknLJWˡ ;U٬ JdG|<z1]`}1ՅcZWObs&5W{`eY̴pO(ca=3dPN+oVW$36x Ҽ^n.>f@-9MC vP [4/ǒi$V&VBɫ Уߧ 4d ؞tb̌GPKԀߧ8[SHمD`u݋8!Œ.wu7~ q0{w;~5#jgf[N,zfn=AP~SCG<#qDF/@\hkW]@xBRT2^RjW]^<9 h 5"d1|ܦXUb;mxxl E :zѐ.9-~mĢiaMC=1LC HYB  б]Zsnv[xdPCJ Wn{bI فsq.^=oY}j54#XVZ3)IZEw"}"A%XӨ Q|=4g~0Yym+0w.UF{&+06u凿l$Av=q#}/c3"OjUfuٯ ;I;.M^"B 6~4B5ۖZ0g:$ksZ눈] @a Q`5KnGƲ.oKtWx&"Yv4z{`Y9ףIgYVCaVA@m 2ꩥ+gmr/)ULɖ[]O@0HmX9|.`~j:7Bo Osk֮trjS]f"9Láߡv~̑͠uV¸ۦ-0YEQ³rl! <6J8oPT Wޛ~X̴6jYUUfDo;":{X(y/>-ml՟A4}=?ys:BER,@_0ϮDr yYw(Mkha0 k6*BP@bqbno <͂a{Pqǥ_>Yry(++ZcRhK, =,4kȳx$@O;rbVGX I,Y ҵ^F!4j\ :Gp>0"ed `xwBF_EpI=qLRk^!'3/:qɭlnrx|K\/jW=x,R(   nZhttp://www.cs.berkeley.edu/~ravenben/tapestryVBhttp://oceanstore.cs.berkeley.edup\http://oceanstore.cs.berkeley.edu/publicationsvbhttp://www.cs.berkeley.edu/~ravenben/publications0q[ Chart Excel.Chart.80*Microsoft Excel Chart0w] Chart Excel.Chart.80*Microsoft Excel Chart/ 0DTimes New Roman\v 0( 0DTahomaew Roman\v 0( 0" DArialew Roman\v 0( 0"0DWingdingsRoman\v 0( 0@DMonotype Corsivav 0( 0BPDSymbole Corsivav 0( 0 `8.Z  @n?" dd@  @@`` P H 8 !}@ #04!@  4Z  4  *#&OL=5f R$=VYjL#=/}> "$wcuL#UV` "$^V^ gfg b$g8TmT9j28-b$\o"Nm6y fR$T`ϼ^I)QKX Lp$$$$R$# jMzf XzR$Y-Unm+ rx. 0e0e     Ao 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E||S" f333f3@8H I m&ʚ;2Nʚ; g40d0dv 0ppp@ <4!d!d` 0LH<4dddd` 0LH.&___PPT9nfFu88 PNG  IHDRW?sRGBgAMA7 cHRMz&u0`:pQ<?=-.Tapestry Mesh Incremental suffix-based routing&/K  >.*Object Location Randomization and Locality>+K   D3Fault-tolerant RoutingKStrategy: Detect failures via soft-state probe packets Route around problematic hop via backup pointers Handling: 3 forward pointers per outgoing route (2 backups) 2nd chance algorithm for intermittent failures Upgrade backup pointers and replace Protocols: First Reachable Link Selection (FRLS) Proactive Duplicate Packet Routing Z^Z ZZ ZIZ ^ 4   O    IA1 Talk Outline :Tapestry overview Architecture Evaluation Brocade Conclude ;)O:Architecture BackgroundOceanStore implementation Java with asynchronous I/O Event-based, stage driven architecture (Sandstorm  M. Welsh),YYR; Key StagesStaticTClient / Federation Uses config files to bootstrap initial Tapestry DynamicTClient Integrates new nodes into static Tapestry Router Primary handler of routing and location Patchwork Introspective monitoring and fault-detection0*( -0*  ( -6 $XCStatic TClientwFederation used as rendezvous point Pair-wise pings to generate route tables Federation used as global barrier to beginxxYBDynamic TClientNode Integration Hill-climb to find nearest Gateway Route to surrogate / copy routes Move relevant objects to new root Directed multicast notifies nearby nodes6Z " ZS<Routing / LocationRouter class Maintains: RoutingTable: [ ][ ] of RouteEntries ObjectPointers: Hash(Guid)PublishInfo Hash(Guid)LastHop Handles: Object publication / unpublication / mobile objects Route / location message handlingpa VA  V     3U? PatchworkFault-handling / introspective stage Granulated periodic beacons measure loss and network latency to entries in routing table Promote/demote routes in single RouteEntry*%% W@Deployment StatusObject Location Publish / unpublish / route to object Mobile objects (backtracking unpublish) Active deletes, confirmation of non-existence General Routing Route to node, redundant routes Soft-state fault-detection, limited optimization Advanced policies for fault recovery Dynamic Integration Integration w/ limited optimizations Best effort fault-resilient integration mechanisms Background threads for optimization / refresh* vZNZ.qZ vZQZ%qZ vZ%Z3qZ. qZN.Q%    %  3., 0 PZE Talk Outline :Tapestry overview Architecture Evaluation Brocade Conclude ;-"Generalized Results0Cached object pointers Efficient lookup for nearby objects Reasonable storage overhead Multiple object roots Improves availability under attack Improves performance and perf. stability Reliable packet delivery Redundant pointers approximate optimal reachability FRLS, a simple fault-tolerant UDP protocolZ@ZZLZZ_Z@L _,K ,G6First Reachable Link Selection6Use periodic UDP packets to gauge link condition Packets routed to shortest  good link Assumes IP cannot correct routing table in time for packet delivery XD_G Some Numbers Measurements PIII 800, L2.2.18, IBM JDK 1.3 Simulating 6 nodes (4 staticTC, 1 federation, 1 dynamicTC) Publishing / locating ~10 objects PublishMsg, RouteMsg: ~ 0-2 ms Integration: ~2600ms (w/ pings) Integration messages: Assuming latency data available 2 x n (routing and objects) 16M (directed multicast notification) (M 3) j >   &     PC $ B0 Talk Outline :Tapestry overview Architecture Evaluation Brocade Conclude ;*N7Landmark Routing on P2PBrocade Exploit non-uniformity Minimize wide-area routing hops / bandwidth Secondary overlay on top of Tapestry Select super-nodes by admin. domain Divide network into cover sets Super-nodes form secondary Tapestry Advertise cover set as local objects Routing (AB) uses brocade to route directly into B s local networkC%$%%DC%           %% 9P9Brocade MechanismshSelective utilization Nodes cache local cover set Only utilize brocade if dest. not in cache Forwarding messages to supernodes Super-node does IP-snooping Direct: cover set caches supernode Inter-domain routing: AB ASN(A) via IP SN(A) finds SN(B) via Tapestry location SN(B)B via Tapestry/Chord/Pastry/CANG"?l] " G"      [>J& 5 wQ8Brocade Routing RDP \FBrocade Bandwidth Usage `HOngoing / Future WorkFill in full functionality Fault-handling policies, introspection, self-repair More realistic experiments Artificial topologies on SOSS simulator Larger scale dynamic integration experiments Code development External deployment / Code release Sprint programmable routers Academic networks Introspective measurement platform Implementing applications (Bayeux, Brocade & )4U#.R4U  #.R For More InformationTapestry and related projects (and these slides): http://www.cs.berkeley.edu/~ravenben/tapestry OceanStore: http://oceanstore.cs.berkeley.edu Related papers: http://oceanstore.cs.berkeley.edu/publications http://www.cs.berkeley.edu/~ravenben/publications ravenben@eecs.berkeley.edu2. "b2. "  a332-.1 !02_!0m!0!0/?  ` fDW&cC3` f}MMM&3fff` 333___` RP.-W~` ;%k)LnV6ff` m'@Q0 ;9]>?" dd@$? " Ud@ lF `A@`<`  n?" dd@   @@``PR    @ ` `p>> XP"(  " @   -BC5DE,F2@  f*^&55 @   `"0  N2 "dr  < "  T Click to edit Master title style! !$  0P "0  RClick to edit Master text styles Second level Third level Fourth level Fifth level!     S ! 6d "    \* " 6$ "1  ^*B  s *޽h ? 333______PPT92p22 Network Blitz   1)@% (  *   B CDE4F2@ [ Ai   @    `"  #5 " @   -BC5DE,F2@ f*^&55 @   `"Os " @   -BC5DE,F2@ f*^&55 @   `"O s " @   -BC5DE,F2@ f*^&55 @   `"@0J "   BC5DE,F2@ f*^&55 @   `" @ 9 "   BC5DE,F2@ f*^&55 @   `" 9 "   BC5DE,F2@ f*^&55 @   `" 8 "   BC5DE,F2@ f*^&55 @   `" 9 "   BC5DE,F2@ f*^&55 @   `" 9   N2"     S lAND:\FRONTPAGE THEMES\BLITZ\BTZBUL1A.GIF"r> ! 6Dd " `  d T Click to edit Master title style! ! " 6Vd "@ b d W#Click to edit Master subtitle style$ $B  s *޽h ? 333___ 0 zr (    0 p P   p P*    0X*p    p R*  d  c $ ?  p  0H#p  @ p RClick to edit Master text styles Second level Third level Fourth level Fifth level!     S  6Dp `P  p P*    6p `  p R*  H  0޽h ? ̙33@ (    0 P    X*   0     Z*   6| `P   X*   6 | `   Z* H  0޽h ? ̙33  0`0(  `x ` c $,a!p@p a x ` c $a"@  a H ` 0޽h ? 33333)BH(jiT   P$(  r  S d  d r  S d0 d H  0޽h ? 333___   `D0(  Dx D c $Dd  d x D c $d0 d H D 0޽h ? ___3̙3f3   ph*(  hx h c $d  d r h S |d`P d H h 0޽h ? 33333)BH(jiT7O   NNWYdKM(  dR Xd s * NC$z t d B,$D02 d 3 C9QENG嵵J9QQ o? `T`T9Q`T`T9Q9Q`T9Q9Q 2 d T8 o?#2 d 3 RBbENGI Q o? Nbb`TNbb`T `Tb`T `T 4 '2 d 3 8BYENG B  d ZDo?q4 TB  d ZDo?a  hB  d ZDo? y  B  d ZDo?DAt2 d C 7CoENGػHJSQ o? k`T+ Ook`T+ OoS OoSN   2 d 3 YCIENGGJIQ o? 8`TD)`TI8`TD)`TIID)`TIIn 2 dB T o?  B dB TDo?$t B d ZDo?Y EIB d ZDo?)  B d TDo?5YE 2 d 3 7BYENG!`IUQ o? Y+Y`TY+Y`TU`T+Y`TU`TB d ZDo? B d ZDo? eB d TDo?U9c" 2 d  BPENHYQ o? `TP;`TP;`TP;`T  RT xK d# i d Zd o?I   74  d Zd o? 72  d Zd o?{ 73  d Zd o?x 4}  73  d Zd o?D   73   d Zd o?t 0  72  !d Za o?t @[ 72  "d Z/p o?dd K 71  #d Z3p o?  72  $d Z6p o?,k R  74  %d Z:p o?; " 71  &d Zfa o?  72  'd Zl ~ [ NodeID 0x43FE 52 5d c gpԨ\d&o?Ԩ!@\ .  [ NodeID 0x13FE 52 6d c LnpԨ\d&o?Ԩ!@\ \  [ NodeID 0xABFE 52 7d c opԨ\d&o?Ԩ!@\ L) [ NodeID 0x1290 52 8d c HtpԨ\d&o?Ԩ!@\  [ NodeID 0x239E 52 9d c xpԨ\d&o?Ԩ!@\ @ > [ NodeID 0x73FE 52 :d c }pԨ\d&o?Ԩ!@\  Y [ NodeID 0x423E 52 ;d c pԨ\d&o?Ԩ!@\| [ NodeID 0x79FE 52 d c @pԨ\d&o?Ԩ!@\ L  [ NodeID 0x555E 52 ?d c ̏pԨ\d&o?Ԩ!@\  [ NodeID 0x035E 52 @d c @pԨ\d&o?Ԩ!@\9y [ NodeID 0x44FE 52 Ad c pԨ\d&o?Ԩ!@\   [ NodeID 0x9990 52 Bd c (pԨ\d&o?Ԩ!@\! [ NodeID 0xF990 52 Cd c \pԨ\d&o?Ԩ!@\\  [ NodeID 0x993E 52 Dd c pԨ\d&o?Ԩ!@\^  [ NodeID 0x04FE z e Yd eB,$D 02 Fd C 8CSENG+JSQ >? ``T D `TS``T D `TSSD `TSS#2 Gd C RBgXENGCIQ >? gXgX`TgXgX`T`TgX`T`T4  2 Hd C 8CSENG`JSQ >? 2`T `TS2`T `TSS `TSS# @ B Id  `D>?rB Jd  `D>?5  B Kd  `D>?K " B Ld  `D>?q  B Md  `D>?a 2  B Nd  `D>?  B Od  `D>?A2 Pd C YCN;ENGWJN;Q >? `T<`TN;`T<`TN;N;<`TN;N;P  2 Qd C 7BYENG!`IUQ >? Y+Y`TY+Y`TU`T+Y`TU`TB Rd  `D>?ewB Sd ZD>?Uc 2 Td C CoOENGsJoOQ >? `Tϣs`ToO`Tϣs`ToOoOs`ToOoO|2 Ud # BPENHYQ >? `TP;`TP;`TP;`T ' C2 Vd s $pMyd&o?z3s3M > [ NodeID 0x43FE  Wd c z0e0e    Bp C` DE4F @  ) 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E|| p 0 ` `@p`@Px`0 @    ^0,$D 0H d 0޽h ?FdGdHdPdQdTddd d d d d dddUd 3=   <<33l;(  lR 3l s *~ x l c $ v  v  z #et l pe,$D 02 l T8 >?#2 l 3 RBbENGI Q >? Nbb`TNbb`T `Tb`T `T 4 '2 l 3 8BYENG? )Y/Y`T)Y/Y`T`T/Y`T`T 5Y B l ZD>?B l ZD>?5  )B  l ZD>?K  > B  l ZD>?q4 TB  l ZD>?a  hB  l ZD>? y  B  l ZD>?DAt2 l 3 YCIENGGJIQ >? 8`TD)`TI8`TD)`TIID)`TIIn 2 l 3 7BYENG!`IUQ >? Y+Y`TY+Y`TU`T+Y`TU`TB l ZD>? eB l TD>?U9c" 2 l 3 C9QENG嵵J9QQ >? `T`T9Q`T`T9Q9Q`T9Q9Q 2 l  BPENHYQ >? `TP;`TP;`TP;`T  z ! l !,$D 0 2 l c vMyd&o?z3s3M p >  2 l S vԨ\d&o?Ԩ!@\ `  >  2 l S vԨ\d&o?Ԩ!@\\ +  >  2 l S vԨ\d&o?Ԩ!@\L[ >  2 l S vԨ\d&o?Ԩ!@\ + >  2 l S  vԨ\d&o?Ԩ!@\ 0@ p >  2 l S #vԨ\d&o?Ԩ!@\K  >  2 l S &vԨ\d&o?Ԩ!@\|  >  2 l S $)vԨ\d&o?Ԩ!@\ ; >  2 l S +vԨ\d&o?Ԩ!@\\[ >  2 l S /vԨ\d&o?Ԩ!@\  L+  >  2  l S 02vԨ\d&o?Ԩ!@\ B  >  2 !l S d6vԨ\d&o?Ԩ!@\k >  2 "l S 8vԨ\d&o?Ԩ!@\ P  >  2 #l S \  2 $l S ?vԨ\d&o?Ԩ!@\\; >  2 %l S AvԨ\d&o?Ԩ!@\   >  z  0  &l } M,$D 0 'l c j0e0e    BCDE(F @  > 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E|| \pP8hX,h @     (l s `0e0e    B CDEF @  > 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E|| -hv. @   0p )l c Z0e0e    B@CDEF @  > 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E||0<`x \@@    *l c Z0e0e    B@CpDEF @  > 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E||(P0p$@p@   0  +l No?m,$D 0z @ ,l @,$D 0~ -l No?p ~ .l No?  ~ /l No? @0~ 0l No?` p  1l s p0e0e    BE C[DE(F @  ) 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E|| %[kO_ =E  @    =,$D 0 2l c 0e0e    BC DEdF, @  ) 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E||(`@ 0@X@@x X h h `  P  x @          ,$D 0H l 0޽h ?plllllll 3   0(  x  c $v  v x  c $v0 v H  0޽h ? ___3̙3f3\    x(  x~ x s *Mv  v  x s 0v0e0e 0 v H x 0޽h ? @AvffJff    N F    (  r  S p  p r  S Dp0 p     fA o?Green marble"   # ,pf3A o?Brown marble"   @8Z 8         @pA$?Pink tissue paper"   HOperating System8Z   pA$?Pink tissue paper"`   LJava Virtual Machine8ZL   pA$?Pink tissue paper" i  |"Sandstorm (async I/O, event arch.)#8Z# 6   C pf0A&o?White marbleֱԞlLU(3f0"   @Tapestry 8Z   T po?"   F OceanStore 8Z   Tpo?"i @P  H Applications 8Z H  0޽h ? fDW&cC3    -(  r  S d  d r  S d  d    zfA o?Green marble" @   |/cf3A o?Brown marble" @ @8Z D    cA$?Pink tissue paper"@ |"Sandstorm (async I/O, event arch.)#8Z#     cf0A?White marble" | < B8Z    Nco?"9 y   F OceanStore 8Z    N do?"Y @@  H Applications 8Z    $df0A?White marble"   B8Z 68 h 0 O d  K    4'df0A?White marble" 0 @ B8Z   Z|*d?"Nh O >Router8Z   .df0A?White marble"  |  B8Z   Z0do?" aP  hStatic TClient8Z  ZP4do?" B  iDynamic TClient8Z  Z8do?"Q h  B Patch work 8Z H  0޽h ? fDW&cC3'   &&7e0 e$(  r  S p  p x  c $Lp0 p 8 2 > R ^  H> u^ 2  3 r|`v3F @o?2 > R ^  >   G Z\cvo?"X Q 7 Z  7F8ZG8 f   M Y  2  c  gvԨ\d&o?Ԩ!@\f   >   I Zjvo?"[ d  7S8ZA8   N -2  S mvԨ\d&o?Ԩ!@\  >   J Ztqvo?"P O / X 7S8ZA8 } -  O p 2  S uvԨ\d&o?Ԩ!@\} -  >   K Zxvo?" K T  7S8ZA8    P02  S {vԨ\d&o?Ԩ!@\   >   L Zyvo?"U ?4 H 7S8Z l Id  _Id ,$D0lt    <I  ,$D0B $B BD3o?"@ ,$D 0B ( BD3o?"  P ,$D 0B * BD3o?" .  ,$D 0B 1B BD3o?" F ,$D 00 Y Z|vo?" d 1. Si says hello to F<0Zl >g  `g> ,$D0lt g   =>g  ,$D0B %B BDo?" ; ,$D 0B & BDo?"[ ,$D 0B ) BDo?" R  ,$D 0B , BDo?" g G ,$D 0! [ Z4vo?"   2. F informs group of Si*0Zl   a ,$D00t >U  9 ,$D0b 2 ZGH9mI`3jJ?"8 A b 4 TGv/HI !,3jJ?"  R 5 ZGHXI3jJ?">  R 6B ZZGHoI3jJ?"> R 7 TGHgI3jJ?" U R 8 ZZGH"I3jJ?" U  \ Zvo?"   P3. Nodes do pair-wise pings0Zl Y*  eY* ,$D0t }  @Y ,$D0z :B <3Ԕ?"R } z ;B <3Ԕ?" 2 z >B <3Ԕ?"  > z ? <3Ԕ?" ^  ]  `vo?" *  N4. Nodes signal readiness0Zl Y  dY ,$D0|T Y  b# Y  B BԔ?"  C BԔ?"Y u  DB BԔ?">  E BԔ?"^   ^ ZDvo?"    a-5. Barrier reached at F, signals start.0Z.H  0޽h ? 2 45678:;>?BC D!E fDW&cC3   ]U&4(  r  S v  v   S pP v *E%}2   C pko?nk p >  2  S pԨ\d&o?Ԩ!@\P  >  2  S pԨ\d&o?Ԩ!@\S 0  >  2  3 r d3F @o? @  >  2  S vԨ\d&o?Ԩ!@\Y i   >  2  S vԨ\d&o?Ԩ!@\ @@ >  R  ZGAqHLOIAqo?"1 h ,$D 0R   `GHpIo?"1 ? i ,$D 0b  ZG0*H^Io?"+ @h ,$D 0b   `ZG *HPIo?" q ,$D 0b   `G0*HАI)o?"h  ,$D 0b   `ZGgHIgo?" q X1,$D 0  Nhvo?"  9G8Z  Nvo?"   9S8Zl P  # P ,$D 0B  ND3Ԕ?" P B   ND3Ԕ?"  B ! ND3Ԕ?" @ B " ND3Ԕ?" 2 $ No?"p  b %  fZGLeHKI3o?" p,$D 08 @  2@ B ' NDo?"@ + Nvo?"  FRoutes Request