ࡱ> n=&jG jPNG  IHDRΕvsRGB pHYsod0PLTE999SSShhhzzzR%IDATx Օ_Ԫj0 `ָ8nv`‚Չ9Y&$l e$?GNf7S; âNfsrvm3$ӄagv C$[R*}JJMF-nn{ lgyw͟*+\@;'Ljx~:!Q&\9MM3!>Oc,{ ſ4<>QiJr8IaeW߇Hvh7uLs75)fF:d iamɝ# 㵖b#E>fp0-WWc0瘰jpa5'R;gToZ X,.<}k"\@K5oB_lAx*WFo5[WuN?LLE;@Xtp"~y0@"%\ `0K\BI2z%<{1Ⰹ~&-Q58A1&7GH7V-I8PDwʌc +lCd"jiأY3?r'wOTa$54= < +rGkI,D;OmD5ʩꘇ^  7姟*%SpmB\ UlQ8)n^lZ}HCoKoUj/r {n`_̄8?+oӳICoM~'9s_SG'>JUr/yK&K*91#PL\rIد6O%$| Ro$|,|[) DHO84S;GHeK)0? h79l0TB^%&|l1P/%<*H$56Ke82^FyAK\a1Ub'$H D)p!z _g7YNfb{~*eOx${Oӏ>TR1$56MR‰GSԕPed.qUp%F*gK^B ZVIQ$%J22-x jCA>N/{WaVpb{%mMvYf~>jλYFaK5VE^zTQEJLVb^ZuKA(}MoE&ARUH[_0J[|s_yÖ́}}o.y+:\LF 2%wI$=eE&ieEQ?>k$' G|{ $c a׿0U1BurqNYp՞8)ZcL}Nw̌"!Γ$562'JE^2KK0VLOr'阫,VYy7c !{ëѕ&vƕec^ۂҸCC}A ::;;[ǚo+\@;VFkIBzor2M+\ U|'j匹i_n4ff'^[H32ړ%w@eP+$" 1,9a\m]::p4:"<%_ oXQ.o6T);^LUof"o-xH,e=K=0'~W c_gq 72,fGl Vj \rDXB!PUJ˽r"+C*)ӫY8.k Ҏ%Q "OcZF RwHx>b֨~qmڭW 8baV}z;la ^q,iw/A'L+j(gH=Mv(cL8ҋUշ87h9{\#b櫑!$r,-8,?}1F+քM[h/ӡ-QBoOBt7)4|O̥[2бģ/0r[uʽp[=Lߣ:ݕE@8oAeVJ0徙|m!!Zag$^0`?k DVߛ?oQb2@i܎p wģ$u/~wG3>̓Xѕ `iN'SVzN␠s9ZF 5K;=$-r= ༎ܡW$D霎na&C #Ԗ}x[g]E9"%2ڃgp>쀚 ҙ n gG4p7~U>_Ӝ0Nn/.k?dl5LlՄ~[`\E9v$(a)>H6׭yws3Y\'|6LB5T-p $ X=t $m^+BB+76' D; J E9 \`Ӄѝ+F!7'\z *0t՚olV{[^菆"2قVMW1a?>kl-g^]xwva5TB0)TnCI]nll'чKv$S1{AqÒXXoO)zF5J?W\͙ &;hbـz< J6gaZj Qg> 3WX[LiTt-Q]DKR+7a1:mON~2Jاr#$zxxQ{B}}׎0vZ#<^%afӨ=2ቔE;SJe˄_߄ `'|9#@FtF)'Cĵ#;j ӫ$C JD:2gMB_&lo] OE P˩N*Z&}Be><_cw_.Zc5Tmжjf`uP%\ʣp!,K}^8 BU~ rgȝy^[5TmN7X]F$pgtTΐ m馈 Cygf!dqmK%[Ax_κ{yCCCCCha'75ərڋWq vdiSdCAzXU_H}|f U:D$4j -DRʽU[+ºi=}BPnCL'䤲lٚgS'6bpEhcYW#+ I8eIug @#)' F/y%9 \3=ՉXOהRϩv 0{^KpJlH+9*Jظf~摔bqIHz$՝يeI7RŔFh T'Ÿ&=P{gd%y>,{&{WRѿ4܄0z$՝ٚ0I?hهK5I鶻NFs\֣X&]I0P L9ԝن0z$4>aՇVS’P/b= hpћ1aLAelPւ.ExN'qv^ʇ醿֪<zKµhu[TiX^l6ֱ"?DRڃYzVySØc’p=aշLo$\.iy1j¡ejKBū=0+%aoDsf),c0G(ΨD$#׈ FڳV"5f5CG[UhвK|tV[׼UeSniMxV+]j08}3Ǹkyf-ZBMf”H %:,0ꆎv¡e-ڒ8({1sO5ancv˂^ɿVhN0KOُqXX NF׃{Ǣꆎ6¡e-쭲_Y Z76BAӒ07*>z(X#3S0q$,Hjf'mVe-Ƴڑ@ f-kOhoWӊ07udQ ,kO)Yz$?]Ü99iDe7dϖrZFˆ6puei&|tV_ yzCӲ1%D;OR4F_fs[NW0\|"W)!\BqؤN^+zZ*4c Yc֞MgmJeqD,o#0m'xDI㮁'OM.JqMŋru0Obiyꪘ;ĭI#24'l:kS˜arTt$Ecܾab̚pk]e';ieqէtoZ}(E* !!!|la+YޫZҊt%!` %4]W͓e5J"XC]Õ&2!E5q∱1O?W>:J0F̦MH/kMa" =rLzU^&[NTB?\ɽSqNYIt=fz&Š`b;E[̄HDքe1&! qپrʆ,H1+lUrQ.&&H+蕎L nj챽@:ϟp Vׂp\#Ptu!r %Ea|ӰA΍[JGEP:=liEBD}7DcU.9䏍¦U)c&隱-L&%DBenJ4;+=X r߶,NX Ldd4{E"<_={F{xx]\ leEB69۱vֆ0Fw 7>yd*yJS)K}/GsFoPP&Kb?`L~9xi~0U όLeb(C;WH,)NZv. SeV$%ⷨZO>h">>{+UM3}V-yDuV#1tߚNfvgs.^V2dтXf JU>6}`npZK4Z(Z2[3=\ӂ!?Jlu3.\OЧT~6ZfU ihjK~,R>b)i!9bEŠ/y"psjN5[#Uбeﺲ| zv/$M^z Kz:oW%|BWa4.g7"leE]e쮿q^Nm ,efHp[\*V?kHCMkmu|[̽x!)\))|l}ita| O*r/D WSmjLzBp۵F,LW l&liE:T? f,"az0ːU9h$A&wЙHDZ4FyxQ'Psg1Rʼn[DQɝ3NmNw3¦8U⑈[ֳa: >ll6;%,ioվ%ae{FxsJb%>Dܝ5ni#B Î^?<>4L ¥0q c^1W:\0R;S8Ԣ%Wenu0oQ\.^u'R*AOp{tY 5>I田L!$MFjABrNx~տκD%4!|v ?vF:2o­w&O 6ycqCm=|o-'FW;&˲¨akB!6K < ]lU"K^*G \- =-I(ãhI[pS1GZBD 2ζ+`>"]DW^73u]sJ[ ?A5k+r j: /Z݃1\ɼÑv@+לpQtez>VFѿ%m}bSW5tQF|Nw^99$J8EPLTE555999:::(((===111!!!OOOSSSUUUIIIZZZHHHQQQuuudddzzzhhhkkk~~~aaaqqqjjjxxxbbbIY=IDATx {Ȏ dBlbpv exAT?Ϩåi.*!.WwC)42֜5ɢc|1*S;WkV*$ע4Ԇ Ж]M.CR&ה5Zh}ZkCk(!Ag(Ii%8LyM0hiZZGW`d}ocLKK4b7bVsdh 14Cch 14*.6Qv5g >g}m:SŴRQLL bh4liZ7&)A2Zgjz>CchZg$fh MR4Z-s~g3`y-gsЮ04CxB=M߮.]ˎsYsv2х+<_Gh}dv^hIJA5׍.$Z#}Wxm~ў4+&#Y=%#Z cP=25A\}Ǐi.>߂ÿpqu0[`h'/> 'M' Pwoh Ib? u+eݗ֎ca,k u \VGX50ICXfM]bhuI4hz߱]Vh$Hu'gJW=Y M]MXRh$Q$zZoB %u m9͆||6j6{ӆ>Vy'sWCch 14Cch +PҾ\ǜ 4MG)mk.sr.' WߪH=~{HJ]4|e{:N8yu\a Vq@dz0/Z3ohP5,aZc[Q 14Cch ]TzH>8r=<֜Hxfz/]|C@#",n$-ٰJҧ=!.o@hԦHBKg䪅X&.ڦà}tڒZNGgh9)dN͜u4YAI]zUR󢳵-룡քC, hRKaP=mq Hj:61Gԅ}1v m+ b-9oC\X$iQGc ܒܟo(09Oby[ꪹ{m&4 s|]X :pt+2qQB-9 afѷ4]Cxp*Ж}A p2 )ڥO6A8P餑&y<@BKk *)3<9cBD'qBCs&%0xA>xp[c+-nV&Ix4("DOMupb8">5ZFR HB dRKCu 4bѿ04$l)`-ͥg-MS)oIm˩RX]@˅Mlt8Bim &hel+4ˎ|"Z 8QEs$t)3@s):cc!A^xJrb=_l"-=}Ts"8 BסYp,()=3D{\9j:p@077/rQo44GuVz<.uB^h }ei.tC*4TC@$N>_Sa ʓ r>i ᄍB~V F8& 8#Aȳɐ*('@]noOc-0)m&QpȼH,AO!by;cI'f,s[GCch 14Ъha|ywZa틔XSNhoh ui i!R@dXO"¡5N5žCch 14Cch 9DB:=+iV|hr[@ՔAt(iqk(] 4O̥(@m@Ȉ( U-m"|[W0Y_ 'eCa44Xe<4&!*Up_2ֵBǥޚm L|o1=tW5B 6sYE4Z4ЍLYA-$Cch 14Cch 1j6iC(: Y:]h2^uPmy]14X2C_6;H򺡡)nz!W=.[=/ Z3_x6 h 04Cch 14vU~y:d2R-vuL&!*9҃N$r4ߨ'w?OFZ] u*~Ze {r4F-U~ދ-'-ڿ`C(.R:Nlph Ah0ş ¼8h. 6xzrsXleY,ڃjY4H30pdgN14ux=@3~B{B ڞo ?Nt.j_rwphQ-u_142`<>BBu7A{{#/Ak3!4O\H'%4r.YZ@RP!dS\"/` 4xbvƁȏ"?@沠~Cj8)KR0RWZ;"8si.n &B֖AcꊢG)>adI;F K+䲠db)hr&h"IhF Tb7ZЬ0H@ :p.@5A3k"{!K ͵v!4ѤH6bui¾Rqڽ$ BoE%B p+tgC M B ,;cF3Fm 6a q*2"vHڟo?h3)8hpJk Q44=R.2BpHAT/ H4A{ze!?Ao 9Di(| hWXu#9aL6< 0_B]{04ͪwj\ˇ-~aym:>!Я KЖ4hW`gn||hnƚ43 7˂2Brq}6K=GOuQC+l8jeڠ}s_no4ɽagVϪuc uM&;=3c?k,C\[e7m6'~-[-ƪ7[u ^i^0n妙S~q} ȍu4>Mϋ6Q9]STWʚZpr:2{jcs3>GY2[ І9 f̲Ai~n} "R^/"?=FՎu9g[Kjo"Un,)fB>Fw@Vm|^Vt3l+-r6w†1غKSBۖ:dg-tGV4>uBhSW5Ȇ[hhc;i`Y-w hL'vLJ%:ZV\y6֩IhgK)?؂~3/OԕJ]dȐ5'ԼiRs9\#SWJL~‚сk6ļVЎO])ُ"J+Њ[Ml5/U9U7F)af/f^zDB+>LbqyI];_`Z"|&תږUYdo:,^<oIl5+U-ܩkX9dlY?}aݤVʥsqYZegb䵪z-^SNRq d[kUljSf9;wܧ8MڐVuJԎ~qhG'Il5 U(9*s+Vp̸)4!U RW .;.XʆK䵪VEJ)[eTjG's$`Rh`+ٌ7 iW?М;UjRWJɱY=Ԋtby UR*́v4R xLbkv]ZUVU=[ZFA&uƼVihT@JLhƞǭ3B.uY,KhE%:-$%URusej,ЊJ&uV9hT0[V`):K^ JSWJɛKMA R:ުЪM])ݒ7'bJkZC8upI~|'3O'k -w*R+xZɧƚZBQ7'QbknVah3ӼtcE\rY?ȑ>"wwZTsʧ"kAJYZI:ZImahV=tE1h{fht14%A;/c.QCи04ƅqah CƅqahZ};IENDB`n```ƀmX1PNG  IHDRu̼sRGB pHYs+_IDATx^IeEJB;Pj%څBZ1 R &PiJD a43J e*b&((E ˆNpX"#N[W_t9qιssDF'_'_F#V#`C#7Be%0+@ltpጀX r[c/-0+czxEMb#l/Ŭ0+2F`;^6Y_#`V5e!`wl/¹駟F#Ѝ0w| 7\zR m/S;|w\pdoox≷zkP±"{6it\1/"&QϞ@{RyDFX0= $p@g2߈@g 7!r{oLI&?ys9r|wbk4#I R/;(mc NDY?3\rIG|siXca4GYHW6ww,_E͖'=CrIX$M"Ǎ~u#+$ZWI?> $~YR\i_'ԋ8bzQ#$"(rMr"UR~)O&HʣRPxF=M ̈i# B\7Ț"ÍVq<" zBq*X7XAJM/m}iM>[H=56B+5Ly 0iKR7GH|E+LRTjq;8O"wU֨*Ux4lIV` s$*5L —EO5SU#wnh)AlZ5LVŢͨɥ+2j0B&ܫ_CM=B(BAReq.KuFmE!B !z/\}X-ODdUtۘKDW 6L&:HTt{0( ڂIZj0iKR7GcA*ZUV:ІGvjah9@QՌɁ0vҦ.U^&ܱj<9vN5F-g³KԳ6*TB;N("Pw,אY4ʣL,wVmш5zzj '^ *j6 ot')hlx%e"3-Tc.zf!ّ4mDӀIvSMg$-qĤ Ɗ9 RѪRY:K[?"=vm/rٶm۲_|BXٸ+O=Ԉai\Hޱc_u&0{Gh.zWξ}N9唐sgQyi駟Ou?;/.ӊG(I`=ɳ\oK(*25%9zFNŌX绕^4*!|fbR;#I#kJ,ʹH_Ub=&Lee(;4׽iʣRhHK+1aNe\UC2h+QU7$ty:ZP5\-%hvfX`åUdT7qΓ~4]<&mI*H[Z6*eԇz՚xBowz:7;.W](!ܬ˔!kTi<*9 ע!^YYRi}F h&|9r%-YHE咜@Rbh+fm8+HD.1D2ɕGtS --в _>0›~ٞ]vT-/2J wi@LW&&I Yr auGm*s۷oVT-4w}W,Fgb ߹2Obck c!Rrp=dZ_Y34nG˅{S4~7o1rځ/&;~9=֙?MF hiә֣N#0>%#`FA`GB0kz㠠<&w1XsMO@\ln+tKZINO;"0;f$RE ;Ll#n~aǙl,?4)0TL8(G$Ar&zNcG)7RQ))S t%Z|AȢu,q4I8H_ψTА*}bs'fGK :F`]HP8CZO UtGÜA yH)Uk8p'< \,r0Q(HDױT:p5AF x@0JKYY!4~nܳ!-]#eGVa1\]{dyc cplȃD"|2sbPn^lX\ NOqn9 ? YCNT> y'mgX ^T^ʔ8` +[ps)C15(KG χfF`8BTGuTuJ,>h҃dFE p_AW$)94`lz[n#;3(Ē]6zz2zk2h882裏Πk WmfA.H XUy9W&Q̮͚^ŗ Bƫ}'yZYC#0"ctGy_%B>Ƴd3;3VVx"̍hoI?M,ZN5In蓂zTZ#}S%UɋvͷT.rKB9o7,?-Xp,r$,#.A'Q7r%)#pk%P233@*3ciyMb c}kQL\)irJEK9 $ȕ6$)RbΨ$#Vm_J e[%뿞PɳBh%U>h ;w>|n⅃Q3_ZZm#pi1'+h8kɇs|%ᓦӭ!.: :Xe4F`xL_8럑c#!xt!;S#`׽F,,뵔gㅭVr;S;ɋQ>2c 1W ,^n16l8[YL )AEF؉#3dWLD1CF7~bX"p\ѳ|(!ou'29}UW̓j#>?#wD|= zpALˆpNZGv#%ys4gE`c/PfH57!}?lZc$$jA&QbvNlam)|w<2YK}?[]nA&2$ Ǣi]kWܱ/_mQo~tU(!A&hZ/%YHGϤAF\R'͛7jg 3PyhA&S 㫸=up4#4gcij͂'8.NɋGHorˠV'buu0>/^m"-,pi͎o1(`s 6;vok7%0j}ݧKnxQHImgfNڈ4R?ԞOKy&\aMeR@U2nʣ<\03 \?(\h#:*TrlNi9Mf'-۷?^ & a7+^a.rј`T6"Md:tE.u3@B@udrId>F늀GKl$؄$싗zY@0U0F`jtk)k,b*e0"0ltnӃUҌ0@9:;4.0F`2,K2F>yHO~c0 s""ō0FL0w <?[0F [#NaA2(S#`KyLSڵ /A;0Facot0}vt'1F 7ANb0}$}:0F B`;fO֭[3(G6F> [#q0F/uBFA`d(\0끀z٥4F`;^xYA#`Ki#`w&FvagGxMdX.0 › #]J#`74F`=;^;F,<v o"+hz `wvv)XxDV@x=R#D/¹駟D# s7på^::-$~Yw}w<'tY;,O# s} ?}'Č87|7|O[.fdʂbg}dݻu-1z87>'LiR)Py4A;Nb:|օڵ>8"0;tqweKGqDbG´y~{is .ʊކ_g9:Q8 %~)YTMI^~SO=uNbFF@!.g!{Q?_9Cq_[G4BKDSp_]K½r9i!'|Ҧsk?}(5Pq:O9ʎȝy;#(&9Y7 4ER.)rfzJTQ#S*U)Qd-J.r/V]BRė p;^ X\ec#6NH;wd9,e#&|i3aN`>'? {>:+RNYT&qvBt)3%y2dJ*U@3"&Va-?>|X|b_zGL+GqEOC^{mlc :<I.| j`8F)jVCFZGH&?g r`.f-Qɏ>HUbQK>rVX c8Dw_Hn+ hQsP|͛/ș*& 1ah曍4t>Fq#0sF;N9kA({tj#WrʛrGVff Kh*35իc1KH>#&%QNLW/7)⋰GE8Q@hHmMgUNuck(;”`ut:KGɪrK(WQSO"jM4>'~gJ \:JGZ)tqe ;%+Wp!i+eAxQhۦ8%禎@CRIpQa.Т?dz̬nR`bjH4e \DC,qU[etFN>[w 2"2\F4lAy09!\VA%<2A˪mQuG%C*=G@iJ}«ۨ!fY'L[AX%߀=4ɾ^!d2Hd2[%>8Jƕzإs`/97f5 J'xS UV|So٥^W6{ o%e3`17d=W\qFwvy\ netW[q]XjqFs* C*.$u?!֨L=3E%cl%M ǕiW8ݿxѢ-1-FgA #fWQoW:*}1Nj.裏~ R{ҍ)a(9ܻ x,;뮣{.oH-O]Y ɡy.CT"\1̌\o{ZN<s2bdCt^"iNYdSrM@mDOL5M( mT5'>x]v}g='1M4$A .HH{祆 ke6Wt++3JU 8UXK_u)-rTXqTmTsR}5:2s4r[ƈ5J{֦^oFE͏ZE|¹Q%S{)SN=SHR8 ͕4u__I^M+xc>Dr3)t/+}QڜKQ*$.gZBeI!2 pCrL)/F*3̭hr噳.rd$[ a }D2*#j&g0J=MRUUQX:^I+'+)%!QX-Џ FvrOI[1z^Nyc 1N֧C,3 #ǴI Y굗Vקʄ7ʣLȓ iJ$o=`$0mb )-8%4NӧL8A S%)TYJaX@U6˞&\! ݳzȽ5OKJw"hN;@ϯ6dVXܠ_~jx1;v_iZ"ۿ!w^PYs1!w)ՠѐX2)駟S`CxQk}8(//?pYg}V~'psiwl!q(&P^b+!}LG:`觞zE5!+$Tz4GzntM>+ 4*~w?tQciK!UnVsdFcBFF\(QqsӚΓ##-b~sU(Wux=$rb2mhh6wNhn1==:'^]8MXeIl&V1?PMk6:NM<_[uUxfx۽jbFoN})H(بZ6 ـp4t&YĪHiXӒjwԐti}FT '%PJ,5;䴐X BǶeI#)D(WW-MEzҼ41#lgrFwZm\yb>8;#`BFE je!^H޺5F`aX/w dEpDPR}?屫9La/ OUOi BH=]zDL1Þ?ol2&ռ Yؘn kEzuJM_=gVdDh<8ә׌zF9KG.;6&uJK憠YJg;8:v;L 􈛇~Xs8cJA1<ҷ"D7GϩQjtx—HOI~g m}ԈֻJ"7'8q:wiE*%9.be  ɴmOٖNLTAaJh8+-kП\s -~x6*-u8(>Eozm;*T2Džr[L-b9jOPF۬6V yqt'Nr*Z:JǛ䩎r2~ yՉL1l+BԅH>IR^ȄKFpZJZgF8O9H∶H-icޗ),}j$e_a}#G \c8i˽s`%WPY &رh.aS8^SaU"V?5U;n\=_t:VR%Jʩ, 2ƱO~Gtr)<^ MO+Az/b9P ӣ T:Q '+›XJ-7n+`"T؟"d2w=\z;[rbO! l`m3!R 3kFtXƙ7IJegӈql-v}(/h &{dʵgq%or\2/D)gn)'7㏯g]>MI24-4]%;34yoSx\g,f'! x說odRI^caΝ!-c:qJ%g\se{eTEm掃X>:l/H2O<ܵ}3E9Ӱ.&Wfׇebz%HZp[dv?P#.`{yS&&|wCF 2G,Bkk`FX,qp$O5Qj>qJUb·'<ÓXrimyaX  Mlȹ뮻ty}1Ef5&m *U0vK߬r^att "VC,XyZq 0ˁ9+g'| >~ENhI b59;k#xt<+ј [:tƛ>ZB]rNaof~n&G46bN2FXHZ0F`*,;fX3w>d5"Pt*PbX6D.Y`ʋ`Yk2u\q+0m(Ѵ24Gr9֟gG!<XQ&p}4ѹY1SJ 1Yh""*CBXe% "&NFS)|ƚurolpQBUi6N4 EUKWLĊ_cLzg*ڕh-N|)т[2mR8ڧff3GQz OӨ ŏ@Pi$3|_*GF)b?5F,!|h.!~m!&(SU|1_70եLu xUTt\RG),QøZZjh*nR# QKStVFԐUe46{Ui5ILF6zUhzݘjTSn"ZH&rЪ+2s/Չ>JmCE) Uߠ ĒmY\:2\+oS"/|n; IF^YJ}h6@!$um;N}13o y&LI&n*FuFelخw26KF ٨ o*k %>A:D .Xƣ5Ҙe;.Ga25k#ln+`Vo6:NȒH`LsOspi']d(NdHiZ 4AF̍އᰤyo:U5ŤFmbfR3+UR!mmuFǜyR#=4jܱPw[ #ә"k^q•I=Im=yLٮ;5opP=Fެ'P֡jV"/ irBW@T;Sn4SŸZwǣ+}N;󆍜&1,PDp7dZ5dw9և0J|vA0'3+l?xo䑺C Y Uj~ʄmm*PFmE/o[KQ=޶m0!DAznb-3.9_&ERqH-ӺCI#iŇMEvW & &]v2&W|5D􄏔AP|ArI|1EtKp/L^ &&ǑsbƼSFQv}QA3b,-vMc͸ci?pY8Qcq4O^JlJge"2aC鴷 3)k}FK|**C+M;Bh:%tW5j@\iABf[\T޴t-(nP3 A5nt&1Y9nHCH^b;+P,I.j4n6MŪ\MVriYh--ZE*L5e*[rF.b3Of8%alM!4@@yI9YOQlD?l߾]_ {Mywg3zrG0.6m"2T"Y|'Ƚt;x( wьlAF,w1V;fof>;19W#`; zcf" | /332F`xdX9<:^9@F *p9XkcXe/#`asle{׸JX0F`(率Sk /卅#`FF`9[0F$ s:14FqaiW K3FaKyv7 /#`iصk$F FdiGǣ(a!F#P"0l)#`X*kXgcTlݺuϞ=댗nÖf#` /孛]^#`KS&+jXB쎗hVUDx2#/Ѭ0*Ze2F` ;^BYe#`VUd"`wFF"vǫhU%Dx fXEWѪ.0K*#U]&#`%4U6F`;^ELF,!vKh /{~ d[0oK/!H_~eHR .xN:餡H{w6<u@`;'3||O<[o J ]b֨~gO޽{V7&<‡VL8=ЅigŤb B^(!嚦h}Ryj~''>CCЇj'5 K (WR%r V RVU`JB,,{YհWQ&DQ4e-o1O)Cc,,.WEi>pL8Aͩ>MC JaXeO#1@uwumIOKUctIv#ݻw3ym1 4l۶-_()+2.Qy$DwA_]-mٲ$'ptCHL+ ߷o_:{=~%cu.s=;;Ey7tE|e?r߼ys( \H%=8oˉʣR={$ Ygb3"ZOc$d4w\7!08d-LX5æXע h?4 w Wig4SrJ ANRI~9䯾JdہF>J@z**ZEᬧyk"Ώޝ*WQhP!GqUQWo 1yRfsa7OSfYH_wYY}  B*ϞN&,y5Jg;ùosdvntI"d.x]X:v)x3Mlw076)f`b|~86A/ 2%L(:Zi6PH *g@v,̦96"Li=38$>ljh[aMO":#qMڑ{Y?&\%"οJs٧8>G\T̯i\UO\ٙP8+HN$:hZvMT"eqKiUqԎ)Ӵe5pHS9 P>(DG:v7c!*#&x$7ؔP#$-H>qFqZXN?x9Br j I#$|' yhꢂ{!4zq<^R^ȋ5F%oEq̪#j\Ad՝FG`X. c|MI5w<]w\itR2z:GCxthȟ(YTW$iA\DE1+ȧ=x`FaSzu6nX()RbŪkZ9=3t%j5ȪQ3!;w-ZuJC:V 뢌 ~=tYHvdݺ;I . B2eը1:-MD_U#*: 1nWjQOMJ,azJwFcXSTڸu'] B AaaIS~קq_fu5a5 *Bk`:B M<%UʸU-Wܵ鰽2pnQc6Lpk (`, Dm#kMF]fƭ+sǘ/ߴsv̥6bm1ͪ(ؓ5ëw+-HyWcCF$pn4' ex%8A*!wA9-Y f[I7JIxҩo$ ˥Rat]~MT`fE򆘕v9(Bsz+)<'5ڹsÇ{-B9Ǹ/1'y/Rw뭷.hB)0 /Oe ? W'h}1_EytxV1}/W]u՟% k㮄7 |4s~;u6Z #`&C`c^X ?w2# Ɍ3 \ ni'+gCXX0F`jbvFG`4ΊG4FaXf30k0w #\ ?Za#`(v;vt37N9,0sF`ڥ<)vۡ}-쌀Xym+ h|vt<-0F` F 0K̹#` =[nݳgZ#`\0+V.0ˊɊe-6F,v`%h `wFvX쎗J5@x "# /0k@þ5(hx~To#xb-B#x/M0kZ݅6F`;^}T$PNG  IHDRetsRGB pHYsodPLTE555999===111!!!:::(((OOOSSSQQQZZZHHHUUUIIIuuudddhhhzzzqqqbbb~~~jjjxxxkkkaaa3IDATx [\V$i fV^*.s9\T<* xg$fžߔ BYL( ezLn[ckoÉoӥˡS6)o#핱//WƓ^}tg\ 20N1,ry9#.SԐ#.K;Bhѯ_x jZ+c\:oB<˾z4;F,PBY( e,QN^Wtǎr?E@g7;GI5zn'/)z咝YwH:?W>Rʯ\B O)y^_6-\[U2}I^4YoBY( e1,rU)jo2~Ü;J)W |j6S6R)?U(Lj{QGB $B>JHl ~q %6򺡿2Bhd8>R1wU;@` B (p6">n( V#DTz !RCלtevϢSڭmtz 3MsbS]$(O|Љ@ ׵R;H(2}՜9~F#wDy6P~ˬ6(,@gmmI(PlC1Pc-X[ R`t#_X (FNg F?>4eOFM"[>S} tă5\ Sq#v1L!DriBY( e1,Pe<[),p˕qضx@ÒU<]?1eJ.VcBoj+3p1PʏZn+Fo1Pq7uɇ0S`_1iWr\B PBY( e,PB)ߵZEvNyɍRn)?ڈ/'i!CR.;y  A*Q=PXvEP_5mT;,PBY( Pv9K=O25X`sB/)aqܐxl!γo}/&J.φIǹ=Ô_Yj6e%A loexLs3:Q3yr¾@f[fo1pܿ.,)%Qާf:;q餰NoP^|\Aegx)U1GwޢXX! t+/2L0K;4ϸ6t! p;/IO elj,S&ߦ=,$;aԿ.`Rl}n;|GXpmB'9;({@&.cʠ ?97+_*FVZv02S ȵx3xrR{c*wNos[낙ٵv#3+O1stb `#-y*nh{b_tXI/e? r8%ɺH2l¤yh(-\D]N:u M)'CGhbSN(iwކ2.6jЂ4BLu9pv[1-EH)[>טJ\LwV49ozU1H9@Х eaK#ť]u.[(O94U^1t'Կ.RN$S)rr68L9JF4 Cl&rC6_GN;{yx tf;8BY }xoC3LiB>!X8T>"9\(E.VoM#'KdpƿRH8 v"P1e*]biK#9r$Ŀw9*sS$G%,}PBY( e,>)˳ERS >}g^΋-WFU+DKʜ^$ J',jOkR qw<[9#%hBY( e,PBY(e66ZrXuA9 Q){\`i+`T 2TFu&Gz|rS>.MóOR.BY( e,PʇMSSJ]/ 9Xʍ/TW/~vۏ)נgT[ݲJQnNi$ׅf4Ӕ*=  Q`;HR]Q",PBY( ejE-EG{[TYlg LʷF7Pgo-(W)-õ_΍• Q._Q~fݺ*r(^92Udb^FY0 P._~u6~w&vPBY( e,PB)OӾ/v? Wqe+7e}U\̨LJ7rA{ڦބP.jw[ʟ:}Mߢ|_ e,PBY( SyJ7j_{r! wߠΘ2mƟʟ| ][Qg_|_uݷl?-e=~j)A~PbܿA.B0Y?b\r!SSpg:cթP.5'PBY( e,K,OL( e,t:5R.h <^rrlQr1ʌsc}`l.O7RƋ1.2jцz[lz=1FS.QeT֋4RR( e,PB)pO׫+Urhb:MeLG+[-QO I:z괡_ 'ڪ7W#=!dm'uVܞ2.4U e'xfg1fr0Z-lIVӭ%S^3<@Hfwsn7Nm3DGSq/^G٪A;&9ʵ|ʉ.^#R]י.ַ({Q>&Ia7FIS+5tlkN1V)oQ)Yqe9x97+Js"R<orO]8^a]&Йa 67t .B{?tFMV:'VB'Ybxnv8`L 0&ϒ#ߣB!H_80Yjg+)IH&Xr_3_1C%$" DN`)hh$B"`fC`[n9 8t$d+ @n( nX [-_,|->JLNa1xUIErpCbW|hfT5,``ȡ6 z I&)x]!8$,@.6y:w[ k :qI5j\R6YLD ; VjBA,! d셚8!K0 hc!2c@ Q *& AU`?į-'M^(7y'rC dMF]8H$ѣ/L 0&`LK\zܮby45ٕ0|r#&036w73Bf~J ̰"GAw/7"nJV'z&u891iq`gmo 0&`L 0&K )( [0zs}O[n=4u>НN$3)xM;".O9HB 3!|qyOReՀ 0&`L /s~u! LҤ iROeu͋O+ep:>$N P%d2&JQze՚ ubө!R4Dj91UVEOk:ym[%`sr}b5֫Yn.ʦ H-a$yPГ)Z$޻9> U3[Q"H${"2P~tE.Ł(5DD7Q D#Re$$ k&:,D'sV~>%}zD`ițP( °/# yTC9*+&z> yPTt֊}}&Þ癧jEi~Ee$qυ`L 0&Єcgk-~fڍhʖ!x0 ;PٕMH`љh~P}GD@Ie<) 6P9+mZUt}5xy·RxN-;ȱ|X!d2&`L 0&Vٶm^ԇDn>1nq1eњqqϦG =nLC$-gaŁ4HxƁE]/#@_m~0&`L 0 D2/r-3eҞJ{B$/EVJLS:' oYzNZwʕ~*vb+q?pE'EWĽBMEV[@4/G{NſDޞ}}P*J3 I fPڴ"7h׿ + $;B 3]RM^&"+#J^n  {U/C7(m- "pe6>p z&p: (#Y 3[%Pj"+%*E$t_O?TFOÈydzP:Ȋ&|`}J@Oe=G &)EV8.T ܋++ 'ޏiTDV6B!+"+D |`?o}.V0VOO1[MRYQʜN\Ճ;xqG0)ңs*\ @>>`L`;s=gnǍ4xrTU*{0V[J:f9 hC볤Gm;Fǁ& \e{URZ8̪8j c j,Pc'S Ց!X4nϕtd(BxT-ҭ-"x@J  b-2+@TKc!lXiXdsbwuNThٜc+o*B`\9'v̉#9g]İUF#1?bL`.2L 0&ZLͷ?oގ0 ߐ ȟC}#*C$~ D`fScj-F? `L 0&`LX,n xid .J]5&о\@B8PƬL`a\> lwC/L 0&`L81蟙?Mfx%Z=+{&xW ZEx:r"x5] 2|'3E`v4~|$E<}5|g£@V|r6n/'z~=T٥"p Yn=vrF&/üL`Y L ~(KG)guw~ЩC&p< ƹ&~<|]߈V,WW#!^G/R@DZL:ғMJg: O  >UHI A@OE{!&Ř?vƁ80i pg`) .KӔcɋc!3r,HGcW0mRL||@jEx>hjN|YsrNL6ԍF_'ŜX= s!&|Џ۾0L 0qolL `\&0& 0.{, IENDB`n[ \&'a_2PNG  IHDR`^sRGB pHYsjPLTE555999:::(((===!!!111OOOSSSIIIUUUHHHZZZQQQuuudddhhhzzz~~~kkkaaaqqqjjjxxx ;IDATxkCLA*- $gnܼ1PRqa$ hx5&v4=imEfE:b30_4Fm\z5.әX0daҢgU`Ƨ[fK&[t@艥'6h5Ŷ{F϶W۶yӛ[j`Gwr$m7 `0 F-!ߤEd< jώV Մ]XG Æ|Kఴ(ڭu/ Ik [zŇ[>;avX!n~؟Z``XW8"_{SXQ8&0FLdu9XiI<_af`aٔ8p@LjXe(nB<14  3gV 1333)rXk1IpSo+3 xjfn``h̞=zqPN k[ [4VS?R 2l8 yFj $6Z*20 `0k] K{kCļ#JI{ 56;;2ٓnO]:h iAO$ `pCS^&R*F>]SdG՘2#JB@.ڡ֎CTX#SV|٨enj܋mە@T8&#Y4 ㏲"lFLZ48emt,ً"P:_#+.%{m;rW,yf.ώuL璲Dk1w$Y]+8[x#^%Y=t pQ/q+۶#w%lVdg4$9Oܧ1'9*.eVjm۞`lr®Ha>e9kT\8oq%*CRm۞"`B%v Se7aMʝqReuU3ɽmso<ŕ,vXZNԆ=xJ\eu>k'0z-wcǩWmm,~ZnӺc |'LLp:3&2ʶm] D,"eI=-//[x Jb,'t$-Gn_Z;`1M72Juh'Fj] w2(k<3du1*?jW&>*eEG ?{mrWn`] `[̞f;O>6"'xϰ=๡&3 eGZ 4 h`!CT5! `0 wd46X $qكYaJU/}|x9}},WĉV`g|&=H|YD@"-gϧ\N\GNzB6`_fn-Ѻyp`:ЉNNŮ$ bK[=0 b. g{4bDM%OncpÁ=n8XF0 ` qfW?xr1D MwYs7྇a h=g_|UF0 `0 x17nx"nhpߋj%lv$cw>?z7P0 `_~H!!ɮ!>Ϻb_>H]X0_{zw}`Uwu3&۽"q}KLj`<>q} `5=?;e^wV4D]:ߞuV5uʀW<`e>9[X0 `OF]q KIENDB`n_Nro .M%@PNG  IHDRu0^AsRGB pHYs+_IDATx^_]յ4QD9ԋVŠDPRb#$Bk.xQ+4RT"= boo`* " O3:kͽw{?bZc93csOo/#`0F`SffF#`}u=0F#0}l_9#`t^?mD0FLb_aX#`VVᕭV#`f 5k#`XYl_W譸0FkF#ؾl[q#`!3׬0F`e}]٢F#0Cl_g_nq$FGuSaÆm۶-#0ؾ.LQL}?_2#`JW&qPկ=zz&%0u뭷zIӟT*s }e{EeiXjc o # 媫:|o|;?00$mazمFعsDž|$b;0F !SO=E~5bw]CAGy/ yKq_qHW^ƪ&զM1F9 0}e7+~iD7`{7e"WL Y%\p}\HxM,b g:fI3qSzC{l _{]G}(*rW9iy.@+~8(Y9xga Eœ_m7'{/>[ll8Ii^')?~Fa[naz֭-c)hb#`Q*iL/_!$'ՍPRmܸog4*L,v՛Wa,xL2Tj)WcMZ7\syu u L{6 >#`B` 9#x㍱d-daoe{0do803͟g`x}/VdߕR^Q 128;PaW.F5t$sVK2ђXu]C6qqǢnjOŹdpX_5Ȍҝvs.ח^XɧRsq ԙOxKE\裊utÁ4"|Mq/K` ńC0!9$g@X9EDw,:d}) W(Osi&6 qv,Y vt*5ge4Yte|_֊ uf,|\趯cU*;n"≶ d.QB0x%d7Ꝩ"`MWsF{si;t +tckק)4#7 "`Q~VF_`c:!'H|ȑJ ޺ukFVFҜs;8|χ7g 9gNQK-/σWB[(T>&ދQ{)]pAQ6H|T_H>V\if QAСiP $\"CAQfB_)GKVQ)f}"USUdJWbf&Zf"FϜuh 1j< (_A&8|Y0Ao/:Ԍv_|_Q内[SQF <2E_+#Z-#2ʸiopҷ6e;2e"بՇRvouQ%bTQ9N|uVL5SU3$ {\i_ItFICo& ,t$lmѽs@CTe$eiƪEݚ@P_A(4HFsa(VQprhTpH5!/UB1 T+ࣚ\vꒂM8);A9BT69t[s ϽD (xY BfJ7p.gXiTG;mUW {]]e6(#\([ F;e}`vj)PC+wB#_}D#XUgTGUY7 d}emP.F!Hk-n~9ϵ ;J;WrT&*wnd$d@ OI6l2ꭟ}6o)VR?Y)L=FWr_|MFVCWS#PLEYk|w j4!>\jK ^'r ,Ij }܂^wlЗ-ٰa1\œ7/{+IDVWQ׎;+|~K_.˯"x{++J˾gϞ";$|8V7o'|%DurWg}\%p;ڷoM\$Ypgk58y$Ϸl]oW[<3gpL4/eǜí] nS͚sݻwxTM68f"{勒5nXFWF^-(AR>}&/.\־{"j8zM Ica4j=]V'UkxҤaxe/n $7߬WdPjJ G+Vs4~O^xa JO3+sU-vIoVHѥ>T֚ӄg>t q~vaTCGȕx-4{Z+TT}=%SE1^}3VL0XVfԑpS8Vȴ6+0i˜rhw<?n-Sřcǎ5jjG6[K!f621n킃J?64A搤UrD C<`:^cjJ`/GIUs}48H/~񋒻t 0Ӌ1;72G qvDhbno֝Q@W":ݖr+MkZYšWSL +CXs}L2ggҸ5-MF33%ԷeXi}j(B\s~Kݐ |`޴39C٫)z=9E%ae.X_ Ռ(|'j^s_Bv|t-R[O+!mڣk.n\:h4KϹTFAK7Yq&/j"_d Xc̴[ON32`ы742e8JGY˳moJM3 1 I5Ug^-F(,1tx@uA,oP\u2 xwKmMQ:k RV|B5cVr !ok65R{d;Xd e':W:DN;PFL}C(|>& O|^Sj 579#1l0732ڪ'd$[(BV)S9>n" 1Y A챼+5R0Z7&47EѴn \ڨ#)\@sJbK\F!Ox;Un҅_hqnV]QsZJ[j}$C?yơV}jF[fJ?W+u>[9禸L\絘 {F F\)fyZZT8>!ͫ28\N32,=3րg&ѬkVGNf&V#벗3c`zmfgq,--4KPw ;ZlZ:b.Zǯ4!@OyλpWz>cu^x [b{YѦ$S㛶}]r\c-\!\ /^}پceJ#`0ؿ)#`ٞ/1pNn0F`"`N b#`B#`3p8FuXMl0c!#Zr.q>iT'0U開#`!͚ 5aHIl:/yvm: {)Gsi}B:0FT" Y)XM.x̝9#` U+3ic6 5sKhLhq1gK1QAW!ld5$뗯+h+40FL O$;B`XgKdNd%4?x "\D~V:nES-ޚQGXkfau YCBv^|ŜZG.$mM$iU1F&K!Hf-U2ÚbrDLGhFHKR1\ Z,@jzU.͈.[7F,7=]1ƚ\7mtJwȑRQGtSeʈȦKHx`Cd>}e&G#`0l_{p:3/r\nVj9"<}!O0F`uk=/dMcǎ$@&G] |w-|#`}%ǏkO6o\S$33Mxfq5794M ;:u#`Xu1\O5磔Xdw^l1NXJrRJ eO,bbd& s[n}q/* 'x"`5794x"4F!4T˫nԱM/aqBRɣ8'y0+a]猕>7$fQjٕV0F`Ю6{Ni:NœW\gϞQL3x s$90F@OK,>|wt0|WuZ0F`μnp~~GWuهk׮gx|饗ھvggr#:~}y/kN~`y%o\g30F$+YV#`f_g #`_V}k0FY `: T#`VUpޖ:2B6Mׁ8spՙYL'/~SqY_` W_ђESAΎ*?r.l R#>naVm_kh #<2lŁ%{Cw)$z 08S'}QX.2%˂?yϦI1:^7ͮI&Ut;iNI%nbEbEnL%G3E3TZ`ʮFA Ouf܆0aVINTr.)VWS ؚHfWL|TsM/KTvt4E+U)ySGO*p!p%&YXU[q Vdv|RSOpTdR50Qժרl>z9dDR8Nđvh7&%zU.*FAȗq a`B5b'4zbDQA`!pHmOP"JdzNz(أ4PT+GiJuc17 rAfcR[jMH6ph~xZV9>Ս lCfS Iꪮe2UuQ(D 1ju dA\\ o$ros!ŤW˸~GRM )E7(^ ϐBחQ`U5U-t%՚8&O6sJ 󩪯VIq5єSW_@)5W|QVuHEK[1'(>KU8*:te.!9L@@e+bhTt:bC*AR _\PE۸x*JMf4 +,SQY`9S,MU[}}I/Z=6U|:SL? дFɌJQukD;];ua &ij)M(7q设 6%xW“7/淘DիM6? (ر#?і EpV}oC;;ߎ[N!F1,5P+ an,wVb"tfEn ;3:rX w 8p`Ecqx\Ey景~yT鱄JVs{r-P%7iUsNU >@7o/5 g.QBL3z`;"-vRQdG?¯'hZ)sk6χ\>M=>X{؁6I5uTpkrTu}c"kg8DS1%|۶mofZ) ܲe}聛zMl6!Rg,ߞMWgСCK} )U${Oi7(iݕ!ʐ JroW]u-)zs)$oD pg6.h\TI4q]S# 'FZSgrz$S:Yg&WmCIMcロLaݯZ 0Jfb` 4҂~@=/R/\KU 1Ҹ'sSѭ S=L2 E.H5b+_D# `W!i!D4s4F=F<@'Ә/1 "G֘>P-m4dPsfl@6!Rn 4EdU!OTʣ>\jJu(2TnPma[G|y[Ll(MW)v%U7AO8T߆ wL䷵2$L"SކV<ө[SeZuUvxEI[Hh52ALG Y(kF渗WM7Zɬ.ZsRWHlI e) (\{2FZ0ע ,֜]kBGHqҊg䚆.56< 5|F}JMcpo(qY-&}|YOGAb[)?\5|WΫJo"るPь,2C/˚iJuٮA@tپ}h4#Epe?:9}Kq3*mj],Q۸Nո뮻2K}[);gp%;lj٘zC>~+"6\Or.]ot[)d_ko˄uھz`__x&9z-2@a[#3z_U1XHc[WZM'{9kK Tf}m0Guj0F`}]2F#0{l_gr/8p^9;#`(Xuʞf +QRPG]8=:&v Y#`U[yN[]Em^v΍ރY@6n)茌0+W6*LMNXؽ^y*!GɰܘF#D`ke[oZB2[皹%tZa7sfΖsJE yi^J-V($iG@1΂hTdF#0-|?8\Gx߿1.9 ̙3Dfu$$v. :g?YI(â)]jW Ä9F\X\l_̉9Bt>\Md8/|0)be1Zf+5ŪPM":ER! n3SԹm SwQD,5#`r#j:=?/auӦMAǨt߾}G)s^eʈȦgs4="lQ+˴59#`!`ڃo{xg.MW+sN VpXM>!O0F`uk=UMcǎ$@&G] |wZu#`@==Xyq͛kPƘal»X'?0cIɡi`wёc} l#PWm:}4>:%Ͻ{bxqR򗓒WrnH.s|`$3I[޺u+Qq/* 'x"`5794x"4F!c_.8+|1GqN'0M=-rY;#`<]mfC:%n; sW\qŞ={F1a3IdF#8Uc@<->|wW_%_ian>FQx:M?VY_Ye]ff^j:g؝0ˍ@u慎Ӌ/k:UΗq#ؾd[i#`1^1fo0FX F#`f,P5O#`Xul_WXi!#'@`+j8Baݕ M=S)8:q\& Xb/.WuWkɋlr;>޺+N VpQ5A^IT#9L&0;w,HPU {5;>裔]D7PșF_='Nv d 4}駹jId >z>-Z s͹9g"ÜazvKe_ig80uvYy.9d^ ` |AuA"V w߽馛  ^|77r)t۶m"J#<:Y$Cx&7ވ佒^tאPh6 eRC,#6$7p3'p?IN|yr̺'qo& FoEQ:T0l9pS|httl!799T_@qj֟CD^s#@B* A1 /G;AThL(@K1uE P$(UgdĤ"rЂ"$TTQrE aX(~p)Bj=B$fSp2G+<f(Ԅz^& |zgcV*WTKռU)iU{U[գWVJM;>"P$$^~M5E֫~orX_ #[&S͙j9-)'jmn&-2U2j, F~`ō|fjx"РH6U %aIKNxH湣h{ ZPBSS hQK j :"+:^BA%"9U<l 4U[˴[f_d<-[;7UZL\|&YX),0` w|# i-ȥAߝTnRTI8P=h_z^}w1j "W^M{^"vδh([dZOΡ7"XvTS]6j&LKPϾ޾Ft$T{(IȎo>`6ֶ8WQI+٨o2,U+8dC"2Ɛl` J:   {V%^HnHSe{1+RD֗Wd"lLE)k,FSG}KMLcVX.ʢX5( [Mk^"dD{RSd5j[딾վv2]6lCAڱc^х7|SO:y}'^?^u{gYL+U,]ȑ#byf~Y9ce%@.б;y` EIC\l6BxNZ&OX ={6tㆅn-k] ^Ez"T=nKRzE >y$[l6nL&HЙ3g*/e0 7ܸ)2LYٍ2"n̸а{"IoP \ g+c b(b֔w]$`,VMk^"c`"0[툦>Rґd@r, _Ppy.y!qh3=Z=gr E}sba Iщ'hZU GY;5{2'EPO\=zEZʔ>b)Ed~@kLt q/&M0VMk^"q#0[zKSN5E!ތTt'5 | ;4ZW9k/\|Ѡ) O=[5m *1055NVSokzE4Qف\;v) q+PQS, ÚuPʚ$J]BWK_~ypvֽnEG&)Nki+rx}:Ēmf^ih%l.1*~rbMyMرL2wJ^=V8zdM{Yjj#j(=e`'5^2l޳z)(l3-9YUZ~/{MEKS>p5GEEΟvYw`^Sd5pr5|qZM oCώQ*6ÌJ]u+csHvF-ٿ#\x.WmN:rR\N\o6fX2ۋ:4#9);75 rlմp܅&vR R(ɛOMJHtWᔨ,Pb?Gq٫:0Q ЪiGԫiM-EgRL\ƩH6B G_yB6?H&+xxRݣ-GL|!Zo!{W^X]cg&d>oV(ҋXс@BZ969pKf8 U(L'*E Ls GEߨ9ÓRUcԺ*S<,rM],V zBc{{% 7"PJAA]gk׮]˪W1Zp'ӝ>}:/oߞp|'ˎǯ^L= Wmfg*|K.AM.{;ZlZ j%mھ.C%G]PtXSX^xoș!75Ԕ1w}w)Խ)۾CZX@I,c#`揀揹s4FE`#(V#`Vו#`f @]TxHm*2F,P:c6p#0 l#r:#`>_b]rq9[' 0Dsګ=pqEJw=1O<3ٻw/-ؽLۆpC92s*M3b#`.>?ˏb(*f)۞;w*W>|"u`B^z)S/n m۶lb$a/AÑot#`@@B To4#w-YWfQ`ɟ~i%CcTohz%رJ3\0Zh&FA`ǯE+#En#Ϝ9wlGe| fꫯi{0HrE>}COk ~k#}eI \|<-W^Ј.*.n&"4F`BZǯX5|w. 즫 FD\ٿa8-z Cqq^|핳@ !"ٱ.Z`YkjfUNgYw9+سgOl{+Nk l)WיbX+G䐍͛7?S%1F,*Z2 &ׯ|+Ze0ؾBd#`0c#9cCF#`!Cͩ0Ft#0ľ'b#`@`}t 6p 5F#`Z?G q҂'e0F`eN;qʢiō0FLy~؀#`0 Y5F#`0Fy#0|Juނ;?#`0 pGy#X;f0F`m?G_"#` 09%|E0FC`C"޲ed0F5K/twF#`m?Ej0F`Ⱦ.#`""`b0F`#`K#`""0о=zmo߾:Y&#`0kwo'?u9#`XP? .8sT'e0F`4ľQfge0F`[~F!Fb1mذa۶m`nF9#`:gH/12F,C+x3_OoR2Q\z+nVp[۴@k+Tr"h}eon*b&F9Cl0,wUW>|wgkeD6kyJKbkX 0zꩿo_Wk4 ޽wߍ<_~|;{0nNe0ˉ*_(Y<) X--7׾5~߄/ =PFn9La##1!8MY nۭo[ro /C&`R-0aR p`!d`A1 ^JJb#`VYZ^>j|e_¨ mކlb5abehiPDk^$̘r.nd*0UGP}s'C\䎲(TLc_  1Hq{`2"Uds)(`%"#WxUgRJx5ݠT&3F,S1 c CQUM9-r rZ|h@ִ!U> 2ak%6վyIc5T  $>裋$Vt/-^̛bTStR䛳^2#`*}TsoqE–+a_e 90 u +q,Djjn4,bF:h4/5PU_'F*z*Uq F"j_7ZK i2ܳgmܸzc +k׮޼Lw^'$~^'O2C_1v7qC΅cy7>]tEE>u4>>90F`Xz9H7xc1|[͛q Wg2m%"`4MʧO.r<{fx~jSɬ0"TPE{:~Va)Z,_/ Ll({OwB;gQH[\\`0Fӧ~ZÈY` 6lڿ"5F'N'10F`b_O:%># /Ͻ~uf7wexf]|(6F X#?+ ^eQ?)wܩ׃>({C|I!g_Kc;ǩʺ0x r(1ߺukX2G#oųEg?x $!\wu=rmy1N}@馛$pp7D݊0K@Ƌnݫy+L0AcCr`mNY3*63 2 U"S3( J'<O5lYc+oձ.TW{AY bM~u>p!;(zzS#`VK[2>a*O<9g7``0F`N Yhf`VXKlB+T LϺ*E$-cԋjJ#`#:?lbxAڐq#`t}.f0Fؿ#`Ӝv6F#RؾTqOMYpG`WW;f_itش ?&8d.gRsrEnvc)qވ v9Or.ouX6O{/)| GHA9,I drE+`nc)B,  hy.h jaίnr0i&Sv\ gdÜT @=؁c1sھ4.:lQ}SJ1'ΐ>>w"> 0"o=vطlb`_9Jhɻ RbEUj0@~?u8L9(yqm>_G7[ω:T`}^[<Ň_ghBʑC;θ!PCGV诼$R!m3C7VYȯGW*9@2jPȩ2:EHX+ z{.БG6FPOr*F"הF!0\^L!z+g&$(#&  -sM?"Zɸ o%CnJM*(ͷA%I(ȠfKok,4BÐeZӚQ@"V /'UIj;J*ɩkAdم^*VS#X nE $YfB@{{{/zQp} wZ. -HǬMʚ2%!aͪq_RfwKTN a^S~ԷBk;r䈈7o#<ޡ\,#.K^]vY(Vc) tĄ$/,k۷of{9|p^dQ3 7@V:Th͊ƍǂɓ7W@Do/3gpn3|b՛5 7n b+8K;'v̸Q9-:.0oٲWg3Qr={6}Dii:v_&fk_Õ7wC3y$裏pt$)pd/J(%b~i3}Tjޙkʶm:GY1vޭe}U?S%t .B4=xDoߗz$\xi1t" tuUd'㏏+';ZK/j:@/'Y>fk_?|Avԩ&v<5+EНdM zj+';Cue^{tD%TU_aEXnZ˔p`"8x 8kV8q"l =:`k2PEJf~aMM:(NeM R/*@>qsƷ4+_/-$8zNqZ\k\ٹ#{5(u$%b5ͼ*u!rxFZ)|LViqI[,ԍˤ{ W͓,èB"k"|\%|oUHn>F5e&iW e02"m*w|!|ȟUknPpV;,Zw!pgm șO͎ɖ V9s6(;gp]$[)5ik3j \9+!U( U9"U,TJ[> %cw- [2WKGfbHGrX݆^'bޭ&l^SdY+J_}<;D%"8K\Mg<+5}Ԩ0r*7eKGL^\E2Dmu}ﮜ8kJGOi2Y2 7ѱ%F5>'`wwi3[ Q]!ހ":(3 Hr~9fhXVA'M4ZѮ"YTѴ.r*l2m[MDD4k4sQwMjRY g oxX䢾cL`KZ[+[Gl 1%W E~rMfPGg@,0O "nSOSpaqkj1Rwڵb["܌qxH!b 6 @ڪ qkǯk^@pGla'6,Ď\r upge6qs'}B`yW׵*iK'{_&{4[Wؤ,2 *J ;Zy~뭷ڻロUt=5u͋`VPݬ8+5wVLN33]ؾ~#`>o>h0FٞhЍ0F&Y#`fl5w#`XMl_Wܭu`ƕCԉ./cv%Ax0琝0 [8_B'ʶ^ 9$?sYEuaƂb5(iQ U̐SFc0{E[vcF`^ؾ i3z衘<='̔9NOzr($ȸ00i]p{=̋{uZj˅x9U#o"f\BSh>Ric:A.Dw͢We2#0Ex@4`"7E 5)V*|^1"(rElsEX+X"8]DU@q ? Кj -#JT~+p|2^1yVpApYp 0Q3M6e!yL4O9c@#)09ARSɫ3Ie^&3F`ö0F#`&BF#`k=V4F#Pk-R3F#Pk=V\B3!͗PC4_؆7sXؾ.VyX9#/' ˔1b c8 h"_HG\sꫯgvY#!]p6s(u.(\sMm(C]41-c=&a,m1J2b3 33N w"_ ?'y`DkΌ((D/|7n<EM+ ?D.R&i3$sO0?Ob|"E.^ɳmԠM< c<(/ߎa%dEeq@|8qiסCf9G,އwN}SA@5 ݑkSM^}]/%e9 (L#;|t; Óݛo֦%z hsI邭0ۯG%p.0f%y &2 Sx3? g 5ؾ.kZEGZDNhso|UM"SeIĺ&͏>0kJM)/"x+,y˜eL2YYփ316`2Tԍ0*#c+jaAuA bL22d*/lVA?jtqXb́+L/1zc 6\aKX`X,8iYyT6I20裏2=<=zUd*nBӸټys=QbwёSè>b\`WyY*Xã!sܼK2)(8jDiY.w*7*7o6Q4W]uUÊT)"te%asqt%G'8XͩrP2թwLil|,Bxp a.33MQPdR{p4" E!sour%@KhA91 Ő$'|(- qP<~]^3E{Kh}1ҝyX9%+bϞ=$af슼b[Ip|IsZ#`` zeEIfguY@e/b+h`YTwX!fp8 |Hˀ5ٿPd{வPb[Y YjF`RQ9hpNxzcwEt 2+@J+niqQɂEuy֚#`!05&v}ye9#`:@`9śuE4F# \UG>E<0F`0jܯmXZ#`0kᵖ#`Xtl_,0FGl_cYf#`XtրƋ3F#0WUaì"31F#?G*"H j0Fi!G/S&70F:-[V 0kk0FXʗ^ziE&1F#r @uٕ #`@`"Z$F#`VU,ul0Fu0F"ѣGAku6F#Їwo'?ɦM0FUD`M.s=wF#`Wk0FS>#`0j40Fnl_]C0FLcjF#`l_]0FLcjF#`l_]0FLcjF#`l_]0FL9(9#`Xe-Wh0F`x~x;#`XAl_WЭ0FיC 0F`}]BF#0sLS(IENDB`F*Nт۳ Y*JFIF`WANG2 CREATOR: XV Version 3.10a Rev: 12/29/94 (PNG patch 1.2) Quality = 75, Smoothing = 0 C    $.' ",#(7),01444'9=82<.342 i }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz?Ѷm:LREQEQE܍L-QMM/L3NQLy5=XMqq' X?|%bVX?|# rgK6 ¢G4'  ͷy!HAx"I9ϙ6kR,cT]cnAJ,1Ymi鷾lFƻcTQ = *HVA\RqIQӬY!/PdJA5o:MfӮ+u~$=kwkV/nF )s4ޚcS.* |WB襎Xuu# ԔQEQEQEQEQERQEQKEQEQEQEQEQE! s[څF@3ɯWNjˢ^L|9M$K^ៀk3ϖzk <9SI 9MvQQ5EQ( s2f&K>ҷTr rEr4_^Z fmX6%2J:״+2#"z6ycOh[jtj?k:"ߺox~4Etrkc9unp?*xE2q(@¹:mkrQy"jo⻟@#mOS^V~iVQ@qL4H/`[$6+3Q4Z&K(f ܼu~$*inֳu5!a? H4(r%4xNt5]>34ף2K]6Pۆmkw:FCoT4gr=+pjxU ?*? 6#^%1׬xR.4EB2Mp+*Q GtR1G,O#c ¾CQ>'%7A|XQkpf=6V%*E|.'PӭnapTs򯡭mm*U=MZxA)@-nI#+ſ 5 3M-sj"X S<'K]l 2E} 7ɝb }* -QEQEQEQEQEQEQEQEQEQEQHzkM+̲(rs_9ǚߍ/v4 8?`{}м/xr R%hw2Xڤvq 'sIK5FH6*? h^'RW!~VV+|-]E1&=mR5E(WcIh/޵? $ 6%ٌD}*Oxz/ecm:r1{׿ibL$J +ʾngC^5TWxݲSRJ'K?4b\۵} {-GCӂ fAWVj]/ڍ66~5|;:3I+:Mg3sonMڑ׌pmoZq\\JҊJul&]!qYfXSpѱ#XHG*9,/_In|^ xs_nFJk< 1i }­u-%!J(((((((((()@Ҽ[/;Lr(9 4sZKoF7}31uy2^: ڕWnaZQ^cxZC5 #{y~hq4n٬|\qҾw+M\S ⾗VWPAdyYzݨom2W+/jZ]QX(uiؽ*иL ̺ cg+0$5~{y Oz'58𽿊=qg"5Ah xxKIJxgX-}_5b:aՁR2=k>3,>p%F>Z|%`4 ָd ƼoZ?!62GAaKM m^Sy>w ѥHc]Er3 7w{pCQO^:ϊ5+^M>/0dtm졊_:UP}kGc4; rTaG"y #gdJ<UmY_Mcźglub@~e5QEQEQEQEQEQEQEQEQEQTyG c+築?Z]+CdI0<ҹ_;|ev;0ْgJc|3`}G+TA'.xͯkHۡDoG9h$<+q;(P9$N/\jVf;N/zNWUC۹\U#+7^O|S tqGnk`Mn$#pZOKi V׊m*(/. 0ֹ/2ҼW($^IPbxcږi>%ɶ&|xᯌ5kUKłMqs^yYV5@ 1׼[Y4rVQ7c!ul)?_TcYۅ%\~:QLwTFf` OJoֱI}M{4<9[i n u5cmj6ڎ!Jx|H|\ RyWDktG2^5 j:,k ,с+t_[.2A4M 6(VE"'EQEQEQEQEQEQEQEQETI.%_ďW$M7Nш$dsĒǩjHir_Iime)HEhqA/jmnOGc/Դ<hM ނo豓yBU5ɏ31oՎfV7 4L:ҴW?&owSђ E|cZtMnTNA_FitW$jq*ʹwVA.J:=NgúLq9,qQ?P)䢂IP=jڥ􂩟9n>2<xӓŚ [fufwI?-AZ r#XڃW7xcKuK۸CMlۑȮc-yŏp#9S{xP?ɯl"F5u'/ v Si^ɵCv7G$;hZY3tg'WUËXıj 2y]k"d=W?~!YRi_x-QEQEQEQEQEQEQEQEV+hi$H2OJĩCw.R3`>|/_T)`*>}'imvGP8W;yhPy o#I]G{k%˺9)5ZvSO^ZIc#]W¦r~lk-;6ifx*e7EWv]wJmcJNNVF@kZ,g&YFI5*F bczou(UUk>9Xh]:\o];I"~|G՜5+১Vu1;ո~ig៼9?_?AQyWj{|j|Fmu˸{U)>xMoxWQ;3?5Vm>4jk<@}E?һⷅu;ՂCq]ݽbKyD=5ltV>{e,S"-mo 5"ws)נs66g+cw>0Ք~[ts./ ߵaש5R2[A!yz54k.xMP\%` #_zr=ih((((((()ŘI=oyt-&l@HJ]l?j xE$U\|qikCPbWMq'Éj]#4NUМ0?Jk6:=7w1ƈ3 7ѧvhaֿ|su=^OX8~wpk>LBVJ5k51x퍬.+on<;Isr"f[>2ibŚt|0+i+6yzyjsJѰSWjռ5OFBmZkTExr.b xVγa+ح-" (UQLu m6K(MxcǖX+CYaxn7ۻRpG;źd*#k;Pռ P4St9WEb^6yv^4jvu2W`: Z(#{Zi=C[xDbPng5-B)μTQv j2Ǵ V|;r{[xKKv?ZmB.-fIbq)Yx $QeB"Ny-*[ǜk&Ծ+kei-?t+Yxke孔A#D k7'|}us:Hϧ^t/hOhf");s׵E4w,0daa^Ucz&a]B >7o<-@[d5}gjvƟ C iEQEQEQEQEQEQEQA\|UoMk\y"%'MFR}p3_Wx3С X֝a][NpvƤ?GS-k)m.Y!qiMgƫ.M*M?ƻ߃VΟ& f2r^8mj;\_؆kHzG_ʽӌgj6]^Lă%׊jF7IvKZC_k5?wr8ׅEp~;e2u'A\1)xOvmq^[ë~ex!;H6yG>64=Bb-?,~( QEQEQEQEQEQEQET,$N)UWcelB}kվ t-uP-{;tƋ[]_HLVk,q^OA9mm2yS]+?R-uk)m/"YaU|  5'KM'=Sǚd6̻nf샽z<e8E.fiRkK~(3p>T,k?|]9B7 ? _K͒X@||konfQOݦm97$}szP !x6UK(sYk C\\n>|Q}lBMGQף 59j4 㷒:v ?Wc]FCQ^y^yOxYG\֦Mrpj# BےU-x1oK"_\wqDeQɌ4RZσ|U%,,pƀҼCڼ/Ֆf ~t.g^<ϳ lo/m|95M( | [_ ev/3LܜoKQk]: 6a <]K"RH=kt5K lPZVƛrq a 8+WŚ LRosGu &hyCjMT^/Zkvicf?vOŲxwB֙7ן5 NwjW_;uJ%vEx-rY3<֨'d3EX: }S!8ߎi~EaԠ>~7\S:W|]ާ}&Ny3e#'"+^0l>6X4Y=֡r  ~'x#ðJv^=/ÏKPcS m+~(x:?jcYlr}x)ܲ }}yaAYCwT UҊ((((((+?SMn/ep…M|}}f>-nvM/^3_M;~1;y[kc:s UI=Myx#Ŗ7(;3;RxŖקMfϛIpzޥkdrSE"vq^[=JӮ6ڽ2AJqO3_^:F XWiVgW7ţ߻ ^img[Ek(EV^Mze!#0 s6UI֋ˤOBӚ]kD3ۈ|C:/DRk !7?fn/dDu x'Ě*3(2޽VWW+o>&_~U/.'7:&n?y]~i^{URh>QTGV-nzQ1yfdGkz(u+s~*_vZ1j#[f;vX:Ljt.|< tq3zwzrּMߋ>(}X-V[DqJG&| r+>Q%eP1jk^:&uKhktrp8VW~ݦs&f((((((+ž;;HMLMs̀\? k {O}>v^mmحTVC7e^Mж:vuj.-2F E<|?eˋ-6dl4,zUi_j`;r {W=sV<o4f6M"9x Az$#FrTJox [٣ҭ+oz֑i}{oy6rYi#{ƛnEBKWm_^7G'oagmuM 89>DvO F+f?d/Ү^T]cP_WWk:**yoa^ QM.IB[۞ M{-EtH֬69Q0S}k%BH-,,dAֻxŚ$w! X5*") ⻋%9{ 3';Ew𭷄? 4c'dҞE|;tgz*Vg%Ք4L35DƓ,;Gn=+%_QU4]f8U#=E'҉C&Q^ڕ9o5 Qx87ľ#ƻ0Ѯam)Z7enດw? ~2k,o-ﬡ*R 6->."VI>(oheT$^?,M;I,Y#A]Ox~oQrbg^ooa!Qs1Vy]h@;5zKíLhp3W@(((((;W^~ Tkݧ5 |: "n_[*(*N:dSrsw a|z0kzkP)+wc j/kiu,Mz~>$&pAjτ~Q~Ɉ8=kXeX~j> oI$:5Ǽ^)vi5Myxwz&c]-n[|n6{\/&aBB=Hz$Y۴Hkbz X Yz'~G3$2s[KGtE+s=V#EyKu$W"P$ՏbToTsФ ߻aSGҵQel?rLӴ֯Nb? 鱎_Nv%_4ؚ- t\*1f{!{?LXՏirkǩ&vgZ4>yMr@C]Ay4Z>ﬥVGySW"w0Ĩ6[hk1dV81!QߏtZ_5/j knLH-8"^W%e#K(фF}%Cj񯆡O,Am-w \?Kg4\g"HhڂF"cĖߠndӝ*_ ƕzy|358q8WXZKs1csjfk1Z˾\wſsw4qn<Wďː]4((((((ȯ~<{XV˒]R꒡ܷԵ-A46_ #ֲ-o1@Uw n~{Qǵ~=-<3b |ώ벽7&!Tu5kWpxn.$A+حn`gD6 "J,(WzbG?`Yrl)e2Mx_O{ wO by^XxCL /v5q+[98Y~ /GN q]ei/)*?xu';xl攅 I^T|7 D1f}9 "{q^Vw,-C&@$WTkAhV׿h7Q>S3}\qkKm:[$1.I'mͦY6UP*;Wf&0Vms[Iӄs;Ivt71=OL,ed0 SE⏴[B~A蠚'Stom\4R`G8{z֯cv0tP`ڇ CF9ci յQjr#$g> ^&ݶ*A?<9;SlOWZ:k |'2c`2]<][:"NNϯJF>'jwTbdcJZ }+w^~H"81Iף\4|5{Tm#_UxXMw}X+((((({tvS9ƌğa_2Ɠ6Kg_^xgLO21!u gqt.Akw|7Ϧ]m/<,::g~h4&m%aҺ~(xk"[ubGL}+o̺,&7OjZZ//@=)9תM㒅8Y/qs\<xɺPa$AcO5$o[hsK/$.z2[r|yZ~+x]>)j7ggAx" i+5n$#VW0oåj*lH77/^ Ct9t_|Ga#}?k?ɑ_Z]#DAw+WVZ%׊_ 0zQ⻏j;TcҺxW^*Ok?-Nr[WuԺ圂n<;x#7EƯoho4Oפ͢xFfc$W1O~$6icbGZkZƐuy9*IT o h;+!\>2hZeÍ0q,uO4%hB:W7xO[8O/8HsM?H!FyW>> o>O 9A^Z0Ad\V Iq3Xx^cpV~:f/[rZωP}Α>Y+!c!|Wզ6C=@)8Eb{Ӊ:lrzҮ~am3!Ҋ(((((;W SV]#n_<%=) uvG?6@h~+>WYSOgWxh63i,:\3_AVKaZ"E? ڃ:bKO 2^[gHm`|s^p4_|D?M?MȀFp\d^ii:jZķ ~3\Kf|c]p‰EgP3X$ sN,jpsڼᖉ?YRG]7Voi887z.j=SF"⧃naDwVH|gz~G]qOV.{MgVY Zb8'ں1rV&uuv>bȥȮG)>κ 'A_?WIc\+a׺!k3-.Ogm/ XG,5tWK4p^GTP9,p+>!i_c_<}ki#TϨ!=sR J,>&h h(O#41*i\j|#h|,{)7fH¬CK<w5~2xj-gmoRO_ŤwSr c"/x'9 :g-OW{cvZb%B+_Km+~Cgۏ]d-!a¾9wQ| n5 yzd5}?zYMRg^pȬ"4Ka!w}kh&}-@9eɮុ/eLA?Ȯƚ%V"ϭpƋw:/%-u h֟'R=4j~ĖX[lW :j7V0_3>3Z.~!x Z[wH98ֽ+V#4 s^;*]D,:׹+Fu4\<-xՉ+5!NJJKwbo-4F܋z{ױk"/6R(_j._[C 2Fps\2ַ$<s槬$ 7@.HX5T[լfᢶm Wfuow-lFckc$sϪ1777kM͌m9]L^H@XmUyo|cOMw kgivpo[x\5Xƪ}gO e{-]lF_h}(=+E}i|C! 9gְu?M񞋪rZZkmb:|$~5ƟHGae(J|Cڴq[Of?o/.bU x{u+ ϮYC= ƣ<'}eiMRqXc3V]Fw[|qsZ~jFDxf_ƻQR{ K]o$.]hlC_ײl*0BY:|?VCd2|J%w2 Cl/SPXDW`;א3;/W&;RW.ZҊ(#}3vczWkVڷkvϦ6d3Wg4, }*ޟ=LU[m6qܦMjX]B"AYAk;kUD=@}寏:x*OI$׭|&&*(((((V <&,_s('}[@ +ɭjGNh.%&GpHֶ<j\w:%ܗ+k)sI{Q7Z߇NםKzgXXm1)obkpX ]7Qeq `oEݤcuxiö pť0%#j4 ~`n-bF4 ?SL46GEe#FA?Ox]ktGF03^-'$=X6*Ww4:\N]q?V!Q}*iffvZFWڹ/Bκ (#LAwn"ZRzW|OHH FT)ָ C㟉/1٪[„?G?B@j(]T8;Nq^&7ާ'^0á{X״]?R1 gV gmD\&~aڕp}___񭶏ak s-ܻ0thpZd=xIs^EQEQEQEQEQT'1 6`x|ů_i٨K8#QW|{eMJb@In;] ;/ʚ?UKIMJطt@J#Xy5@kx#1so@!A5'孚H(,~_ c }*x>ɩ]%ˮ'r? ZytZOl[Kp~ +_o)-ZR.bŝٷq9>"i{!i{\cQې> Ȭhb!\v<W"tmƖ'k'V{--Լ~VKn/n)cR:&p-杇ʋް'sɫf6ZW{yLTqNԾ%\i#%u/ @ ^c,Xy91S+]F!Zf Y*-IA|u ݵw pqZGXլ@p=EYv_Gko9!PxSҼKkxLK8dY𷇾xqVC{kup:!'v‚8KdU* q?‘HPژ~*xETy{"֎m+ReKApP9t;1ιoN:4vc&s9+L-gW]B8ܟ¼Tx|%!oN-kʷfb[yzcpuO]Y^Ǧ&-\O+~:Ϣ%4c<r8p5;d {eku^>+)Ͻm?oJCs*ך(}kmѫzkh}Nq9ʻ5H^EQEQEQEQEQYz>5} /t{bYg k=Yi UpdE|}Fhn]O`븏_ᶳ]cJ!km5ŶE9#\U*+ {-4WxOZf]>_¼ ߎ:̬ ~D׼y)kd1z5?4Iav֤Vgw{{Zܐ; ʒjNw-q`p \gl#݆FbA OR?:jI{-A~&k5[y#0u,$cH]mVjpN%aj};z[!x;~ė c03of1+(՗崻no5IE61Ut[MSM2I ]^0*Oxm`uijey4KN:H85ھ}iq{B_'yŚ ]>w_QBkY.KAk<()ҡt,+h-l0e@**c6x:C'4W '>0k}&5KZWg[klcm#ci'EtT(?j|5X|rndB- T]ڶZl"P8~n%wd8x/tM2OJJt#T hœ85l^'>it?Q^X*HG<:'Yg"^]}XGѣm='+OuI5G@9et}+>>6k5Ze,OWxƱ<,pRMq%cSr׾1#1+׮bZmD)ɵWX7𯞙wcZSOM,H0H@NL1JFU8k ҷAں}n1LH5(Q+!Tui8Ȳ?V#vB3A1sJ|9g^^E}]׃|l֯t/iW#>Kḳ~_ t?-pan᫧mATsَ+zZn/|Ă㬨< 9qWoP?#Hʺ#)dW#xC՝/٧<`;Nk ìFվn~چ{6I\#~nT~/q7! _X4)"m$y4mNKh$91 ?/ _}yMwQw[y3tV_P8 :(((((u-ꎦF9nzA}t*U.=B-Ṿ* 7FӴ87}jZa|15xW`sWA=cgDg^iiS-ĐD+~}Y5Mnw8xNs=›:PxWKi=F'`ɭU`2 xg[7 pg_ֽcږ}iQ;W|⼔ F1sk *0ʀ7Z{M99)H KVV+"I\b?X/m[ܸHFf'\?<˫iM=:_.+MzaF1ʳ-nY?UZ MxŶ!Vo%U:4O |,V15C gGT|* 4'V_ \nfZe5dQ:^݁ƹ$w.}JUXC+jvOAζ#TsFK;KƔȏ^޼㴅C7//zސNfq"xHxiT3u=EuY[EooQTp*;Ra}/j?Ez;sVG⟿[?}EQEQEQEQEQU̲OFKׯ4]C +P oFnjkbTMWN5s~5=P,?wy&~'1ku} 5Qx1_v~ ߘlKk wFxsI#dL?y׈>I 跗8W++Y 0A'-vӯ [57@e ?VӴ:5=svv[¹\o7Qz \U?o5EC o8n Hs^\ l69o!-CY./[tyKimMqg>HSMsTPӬDKҘ=ƩikVEp/=i$ Ecs.~&w;ִ5[]^%ôI_硫nZ?!!(;dk#z4Bg=t񖣯_^LdXPFW :oH״?GՃNneHӖ栓UѴ3@l kޡqx#IA<5yiEDY#w~w |c,;NCDV/>u` =㵌 $Oeow@:|?Gf{M+kAE ºG!v6?_^ 1PҼg/|=umS^w70^jQGjܼ8zV=īH2YOvq뫲IfYbnC)ȫhɶåEnZYx((((()2z/d*s -I9y*_jMzFZ(Z¾Ծ$K6^J9#$~ k>H\<%IJ6y?{WvvV:[İkZ9h^g2Ӄ`G^ WosT_/G? u/daH;|Q Ed:ɎGhզGyg(x~^Ƽ㝳K 5^Ch67L"gVC`z8-kz_PH@Mx>9^,?/zy6[ꗑ M&q־q2.;D_ݏmf˦<3[Ն8W'eˢk:4MxҴz](7kh wQgt+m8EvatCJORj|2lpXJ;kᯇZ+#37Ax~NV2uh汴_6m^]K}7):jv7GeҐ ~Oҍ T/9Kg}|/=}b|;ahiS)rƼ~{K2/kVZ|k׭kU!N2Pvc.+OWlb^lVJ#}F[Kּ?OoexgF H$WSZ|SM9eSM3Ym{ J%Mѣ_n?_XLӦ-4}2i H >Cފ~\zF]Z ['^@j&ut# @7t=GX2ʻw?ZuDŽ|{uᕙ?6;C|C^x=Cfa,s^EQEQEQEQEQA_$k6^?|af]5 uOv9tOš 4'5|7f*(&t=r87~,JM.n$epp^k 3oks/2R λ\B[ysA)OQֺ?u1TާXc90=L1Pƣy '̈Bi~ eaxv֬Eq,j)Wx#$;4[͍ # ٹ W9S]7m6fHb^y-Ċ3JkǚΦZ\;|ipG] wjz{Wu)ΈARď]:g@R1q^iJ"1ҩg ;Dd690`z 8|E!Tui8Ȳ KI)qHG/Z~R$HH ǿ5zu4s\"Wz>'i>" mrMFolנRQX^'F.3+>\.+; ⦭seᆲ25S\FSVʹ6$.#DuPda$8"o!xNg}*ki,@Xбx{v~ kE?t=wQoᑴ@mgaOXtI{hMy ] B66d%jNYb2I^W^oWkezq^?|> !9XF07~QEQEQEQEQE|C5]?Pa?t'Չ9xdHbϴ, bsMkUY ႀݓ] 2YCWKa *#nâvOQXZ74;:fomkv,W AٲZ0knb͞ED25ZVw kjЬC]F23Uiz֭}b&kч!y׫>wt,˂پ|_cPl=9fҬ y ~_ʴx8bDOEyUTdڼK?^ yY&^7Ω~\s+)RxkźՍIF,j$;H cAxԧTFy"GR`7/ݶehMK|#7/*kAOӭ#Pz™D;#!5=?tʩ*;tPp7 OPsjKVp+>4jS >mqn7_+oVn(^Upd#ǂ3@yl)"Xھ2麲yEp?Ǻ^$w H-9+$cwجjP Pyeş=Zu#3G_K֗2ZȞa3<I|w=`Fz~yo3i [AݹwwFi5':X6$8FA xMg y⻽7K,$*cc? [?|헐uj&`V<"?|Kruݹ%뭃}}!c> Q٢(((((& kgx^w W[O`ͅN=}9ڠwyQn9l f{maiR4fc+̼CD{{{N~7n:fv'N_N,Y,W{QҼ#4 _zg`bpֽ?k?\2"주̄1^x[(/>d⭷/yږW|NԡlM^:]x.'< c X}narq]G_ IJ7e 2خN{BD$^C]_<A-pw4-֮9*zfVMEE^ (> yV>*#HبX0yeJ~ʠ7-ԛm{Pk-ɾz ԑRIX4ڌo4gL&'*sqo@Mb8k!:/Dnu"H*58K6Lc"X j4K?g~l]bڬM] mHͥۂɽQQaSK/jh-׬FR2j6qrcKg=kƾ^*NE״wO<=+l>i:5yIخ_he bD*/#יW1Ck <70s-oC}HͻnH UMka.+>:xYXihiWEᏎaVD_O4Mn :2g` oAKQ|q J>[Z{;ۦٱ)QEQEQEQEQEL: B/#M͜1\yo?¾͂d9ǥxſZxWG/vɰ< M-b7!MzlVV;x@r)ml>hf`*x}Zm?P'BżsޛOÃDy =qx¿Bok2ko--[<lEmI/EQRM,pHʨ$9&U5YGFk?FQyeq( 86(_0ޕxCZ悗{7SW޼_%-ofK .y5^,A ۆG+dI|RGgI;mLK,jLI +2V༷`J_D-LW(q\y#~dE?5<32ohu^únyj7;Z-[Ð?;6~vjO~1\V}Zus%,sj/+zW]x.ħZOHb ʨo/B Hq^q| 4^Nqʦ fE>"+y+)k>24[cfNޣҽxQ+>cZlm~Gq4qs+I+nZ((((()0kω<*lfewvW$j#qJ xO"=W⎹^|k) qs^E&xL?[xy2L֯g4'GPU(O^6Rnzku^GҸOn,$=^uK{[ 5&?>0Lӭ~+g|QMcp,#cjo> o A^#$WRr+uռcx>^M= { <9]7b pB>f>qcW7Kcה.Tާ'Zo~ E$ ˌhI}8UπlGjٟYw0^/^GA bebF\}?W<\m~>d?6zZxn%Z/:>,C9S\7Q&t9=z W|PvI[~UTh]_;CJ_R٘rSXxvkHn_b;^[u 4,̮ x&f%t.yZVo^[8hPC#Hl:@ׅmmvbWPs]x#RъLJ{h.P$Pk| 㛽n("p? Ofu_Ih]) 'q:m9J((((((xOlӘ3FC>x8+ȴwyM렂Km? hO4粑gk 鷚Ov Xu&cy_ I׸\^Z~6*{O8܊HSGZƩ[=֛pۧN}EUimt<g\|ALjk}>& WA vQT@Ҧ#">kA0s\<{s^ t2|~+L!<2659#it$մ>!x[4m=sGQ;{xG¨y]7v3]H ]<73mb.Ҝu5EiX=uF𽍒.ݑ ܊:~l um9/K"2BTÊP3Qqd5>/c.Tvt5nM[×9Y!rUM{5E}+7k7ˣ˟n碷{Ҳ-*T1\*WW7xZ[ɎF:Wl^)e ,R2@A\ΡGREc+):<+/Bk,7vAJXֶ~7bX$l~WꚔF=˅$,rk<c?}q[&Ȅ7JSW6Ǧ[sll MFfI#;WJk6\ Z6]#}\׊&.y~d+{ uqߌ}GivֈXc VQEQEQEQEQEPzW;5 X:/+WZq1%^m3_cj:|d O|O3f9;z_xJ-o퓄9${> zd>(i$;brGZ>giYıƒIu}mcN;Wsc& ex믇^=VrQd^ݤ֙ UV쌛yc?ʬ)R0x,|ahTCz1̽s^sx\{ 1%;b9}kb״}:Y%LVt2 *-^,{k_#nN:Wzcx5umlʷwUJ=K:8A {XPxFeж\qu{^/6"]?i_z%+mz|:T`b8ѝ?uaV%KC|dpNkH#hC Ic]{ęT~Bׯ* 8S>(^:3\2 x~ |27:hjv]i+G$T8+ςEΖK%?ѼoO5Ő9|muGKm`}IT1NEղ1^kFSaN7_@ O߉ɥCW1k֦BRa2;Ҁ t((((()|Ÿ$т=|W|A<>t{5aXf[;UmooP51\?>!Cn:qs^ox%:05 bx@>t$t> /~x+; 9;(xgM%j"c_=,znrp>xO2ގ$f7zteXȘWSA:|v;cƶ3\?iZ}3^ڼM<7ƕ+;#>v:$܏{V4]HxpE]gtp*0>W=O]͎"CMyƯ/MtptȯG_Í/‘1qxF^w9AKER1WKgMkKWߨ܍"T*M6ٵUwj76[תqҗ`T34r"2+[sCU,YrC'BkuxcO쯶lE {/ 1H?[ԍK1>?qOYZO.!gῇÞ)CqMvQEQEQEQEQEQE|L70$y㜊 ^/g܊ys)}yeyWhP5JdH|[^OS /y\] +Wm<7e>m#K';N3y[v(j+1+.Z'."m9q4.Fes\ÏOouD^ I(p})C( W⟅ݥ}%c$?K}FNN+WK,-IMg( wx:*jz+ⲷhFk G+c^ rCklుa#F pcڗ42`GRxŶ^dUQ5ugU"H GYzvcOq V;KAY?k"l;^-,>)~/Oo+UUT` ?0Ўm 7\6*_|&VI= WJ1ҝEQEQEQEQEQEQE5*As_,dFڅx;FKoq^H*y_>|Ix/?oA'{|9\P𪂀k;N43dص~ϺaCԝ~y'Wꚵf7 H9,kt?C':-ܘ,A*=s^oq)4.7PGz󯈿VYxߊ4?Pq E: 񦕪&y߀v u(Ԁ3ßĒh"_&4R ^W FG=iJ =+U𾏭!}5j7u!զ~Y"m#ēEflLtjTҾ/.j%k&_֝_5/)µ>i*VMJNGuOp^&DB;jiMJLbº;_@~35yn}iͽ1oV6k.x%}k<9ͤhZM3*[ [?z[<.,Ƽz+C2鱶b#Z=œ2 > ~<-O4&y74>`lཷKyVHd25x:w"+veITa]T}4ifKnmީAܾBĚŚό|[$2ģ5Ï -onT y[k(((((((ҹOfxvDaRbltjVPOnh :dfοoM PpC3i۬c ؊ƨ 㟴Ӂ;8R*| r}쩹 ,xt xj^&Kk xKº,)hl>Z:Զ;hQ.^Gj+ 6hڎ>ϪE#/4CpbLf%7WF A=+|y;Bkk YU1mF㻵k4I!u"AxQЭIR2qW>|A SXp4ZF>o<ѵl#nrXhCKMN1FGQ(ڎFOݱYZϋI҈\f<[X Ge$vVcJiu=sƞ#[FK=*7,J~fi=>_د3O׼OizYeaL0{΂PIF\l`mҸoEӼ%fM|G מxkߏu/[=ۢnvXGoo4UQwTFa7{o?yi+ >Ycq |WφӅ?,L3Ǩ⺻OXK [v=&//Gq /[.,)b(,l4Rvڳ/cc5e&Jj^َ/ֺ?4zZvIP?|UYE·G&㪹zJՎ`|)Y;$r=EbxEYk4xj5kbڗb[FŋN+WZNEu4riv8B ziwt]:]Z1Z|-k-E[?xHEq^ݵCCsq -,*F,q?|ZyNX1FB7d_&M&-{qq"U?QH@$l4h IDSn\+\6l* k~,(,"5|צ[gCQWpGA_0}U) }k I>".l/Tc;=+ڻW -,"snJ-QEi6Zū[0Wk _6)+Wß]7Ķct)r0 S!IgXd`j(hʞbTM^n!cf,7dj%\e.Z'`R1>][ԏ6rx5ү7 O<1YOq"+k!w"["(9=Mz_è5I1n7_#FWogkuq|jO NծSCb*_4{cY\|GY|ɷֻmk4N8hZvA%Q2H_|Nм4\]tX993e+&ߌ/|>)ngIuS8v t(K2k^P^y?ɱ-hv\N0+ۆ6Yޱk]ȫ`OZ+>%@]џd1¾W4𾊗WHGz`Җ(((((((J|S_X]v>9S_'ZV?4/nxLq([Y[޽jZ(3Epk/_Dq*5yρ|iu纶>Kp+OGַ|rdہ}'Ś.cR 4[kyABۢcՂWDӓQ{i\a&ܖЬj͸W8v+B3Q-gr[@FXcPԬ#/ws*W`+2hN,zd~> ;X_MӛxcHzB^ 1A*"Q*P-dQEZ$ #V'|1aI G.G$ֹFs1=fNVRl(}k9-uXs~((((((()O-`9W'A๷~Wa_Ox6~2ҖU%%<]#(UZXU@',EC'Y(x[G"x-[pk_Ф~bB fŧo _0F]H>F4RSmֶM>Tw`9}ϊx9o'`lZ|%+`[iֺ**P>(]ZY-۪@-_&x]ֵ }tI_ |DZ¸ˮ{קTnbAh2ǁ_<|Tɣ貕^%O/X x/oQӐ嘏}+ >L!Q@QEQEQEQEQEQEQEQEQE!+;"9}oèF27{[[/-aoa_Exem`TN7}+҇AKHyx3Kִ{á+&>l1߅fGf9o0pGTy /zt[Wyr -<+V,*<I? iX|t(=*դ7qIꧡ+Ŀ5}KKm(g +# H aT 7 A(d;xY̋$%1ι^y;Ld ' ^\B"l2=qEQQIrEǰZ,+x"pP3}+KX@6ƁGSH8ERMxz׶ZeshP:R(x6N@!W|(oNuWrDC{WјA5_W?'gBT̥C޻/|EC4 lTQG5?yncVSE gŽsIlmInWx͗.E_f=5)  `:~5reܟE$t ( TQETM,,qVc+ǼwK2X.n@~Umwq#{?;Y#!+֕* ?QEQEQEQEQEQEQEQEQEQER`TSC4Rtad|Ԍ*nycx#V$'F]gE%i|:ne[W1 [5KEW^ֿ vQ$_/7.$|ڽss^2xk×Z?: 5b牙RcNъQKᆭHZXW׾x7^_fSd_{դ K$mXdi:zp<Ҿvau~9V`ׯ,2A#}XHS&kĶ2Ga]Gmj>(EsdEe w(4 )$+gĽвp3HpFNO֭x/6YR6',9j'Ҽ+nX[(`>iHqREQEQEQEQEQEQEQEQEQEQER0x wW^PI>9x_4z+zG s^6E=ū#s{m)oBc~>_tf%)ʶ◵QY!+) O^νn#/`8'Ʃy:5ɂ|ֽy2}G?fh[yQ}=v[u".2ɞ^{~hGu}J((T Q*J((((((((((((R0kt?}f#0>( {h^CϋzH5'#<[QR^g+м3rme>: \`{S$8q\εh?ڵ8wk̵-ѥzIҼ\oV[U_99Ğ%rڼ1&Y<+KH.5/˅i(5p6,QT`U8((((((((((((1H@KEHW֑N̼כFO%<:f\)}-FqH|57KFQEQEQEQEQEQEQEQEQEQEQEQEQEQE*JZC0?L%|%K9j5?NiD}뗿6Pʽ;uw6_/Ys=up1U-86zgя?Y<5/Ɣh,'gԿ?zz\WK?[6Wr}pKښN0u\N_KHYs]$qh4U_E&((((((((((((((((QE`S4QO"ȣȋy'*LQ((((((((((((((((((((((((((((($( &/ 0DTimes New Romantt. 0DTahomaew Romantt. 0" DArialew Romantt. 00DWingdingsRomantt. 0@DVerdanasRomantt. 0"PDHelveticaRomantt. 0 "`D[SOveticaRomantt. 0 A .  @n?" dd@  @@`` Pg     ( %,-o%, ""R  $-(F &8OcV+   .0<<Uk    0m -+0^   0J}tA6 7:<AC FHJLNPSVX]_chknu?Db$jG jE&b$6!0ީE&b$`ƀmX1h`)B$b$G>}T$b$3F=KD<GsDb$\&'a_2c F$$$b$Nro .M%@_$$$$$$$R$Nт۳ Y*22 AA1? f3ff3ff3@8()g4KdKdt; 0ppp@  S ʚ; v3ʚ;<4dddd@l 0@<4BdBd@l 0@___PPT10D[SOal}0d?lytt 0DArial}0d?lytt 0 J(a$y|(___PPT9nnIt>"ՌPNG  IHDR +tsRGB PLTEfffm cmPPJCmp0712 7tRNS@fIDATWc`  SP1H $XLIENDB`JpadyL|p?  O =nOB?The Emergence of Networking Abstractions & Techniques in TinyOS$@?b"9  P. Levis, S. Madden, D. Gay, J. Polastre, R. Szewczyk, A. Woo, E. Brewer and D. Culler U. Berkeley, Intel Lab Berkeley, CSAIL MIT NSDI 2004 Presented by: Fabian Bustamante(Zb.H     M .lE Introduction6Sensor networks/EmNets  Networked systems of small, often battery-powered embedded computers Are they substantially different from general purpose systems? Partial answer based on examples Much work has been done on TinyOS (since 2000) Multiple research groups at Berkeley, CMU, UCLA, USC, & Multiple applications in the open Focus on networking issues  at the core of their design as it can eat your batteryf/[Tb/b[bTb@     oHCurrent state of developmentJCategories of networking abstractions General - widely used, TinyOS provides mechanism & policies, e.g. multihop broadcast Specialized - widely used, TinyOS provides mechanism, app provides policies, e.g. power management In flux - w/o consensus, app implemented, e.g. epidemic protocols Absent - appear widely in the literature, but rarely in apps System design techniques used in these abstractions: Cross-layer control - reflects hw constrains & specialized nature of EmNets, also its desing-to-suite Static resource allocation - small storage requires it Snooping  collects as much as possible but eats power Scheduled communication  coordination to avoids energy costsb'75'bbNb bWbb;bb7bb5 b bSbbbb/bb'b>  %  &  <      pJ TinyOS Design`  TinyOS focuses on three high-level goals: Take account of current & likely future designs Allow diverse implementations of both OS services & apps Address specific challenges of sensor nets: Limited resources Concurrency-intensive operation Robustness App-specific requirements To support them Modularity framework Allows the OS to adapt to hardware diversity Allows apps to reuse common software services & abstractions Based on component model  interface: set of commands & events Event-driven concurrency model Need to handle high concurrency & multiple tasks at once No blocking or spin-loop ! split-phase operations*PPWPPPPPkP*bbWb b bbbRbb b  o Hardware Platforms `  Dramatic evolution in 3 years Rate of improvement it s not like w/ desktops Processing/memory/communication balance != 1MIPS:1MB:1mbpsuO Applications `  oHabitat Monitoring (TinyDB) Patches of nodes gather environmental/nature data for months Needs to keep energy consumption low Shooter Localization Few nodes localize origin of bullet Requires a high sample rate and fine-grain time synchronization Pursuer-Evader Large network tracking evader & reporting pursuer Requires mote localization and more advanced routingZbZZdZZgZ`b``d ` `g` p vQSingle-hop communication`  \Active Messages  basic networking primitive of TinyOS Three major networking stacks  diffs in network hw/sw i/f For reliable radio transm. - high-freq low-jitter channel sampling Simplified by raising hw/sw i/f, but loosing fine grained power mgmt, lik-level packet ack, & Communication i/f GenericComm encapsulates TinyOS network stack (AM i/f) Msg buffer structures w/ fixed size CSMA for media access App & network stack exchange msg buffers through pointers Alternative i/f for single-hop comm exist  S-MAC supports fragmentation at data link levelfr rbbb  b 0  !        C    '               U  &    : yTAM Stack Implementations - rene `&   The RFM TR1000 component exports bit-level interface Data encoding & transmission in SEC_DED component CRCPACKETOBJ performs packet-to-byte translation, w/ CRC checking AM is responsible for application layer dispatchb  {VAM Stack Implementations - mica `  Adds hw edge detection & byte-to-bit conversion on top of the RFM chip more precise bit timing & increased data rates Separates media access control (ChannelMon), bit-level timing (RadioTiming) & data transfer (SpiByteFifo) MicaHighSpeedRadio signals events to AM layer CRC checks through interposition Later version introduced link-layer acks Low power listening, instead of idle listening, saves power by lowering radio sample rate, but requires longer start symbol & quick turn onLG/nGb/bnb&S   }X@AM Stack Implementations  mica2!!` ! Based on Chipcon CC1000 radio Performs bit synchronization & encoding Exports a byte-level i/f CC1000RadioInt replaces modular arch of mica Link-layer acknowledgments Low power listening, but less efficient New platforms supporting IEEE 802.15.4 should push most stuff to hw  including CRC checking & early packet rejectionLnbnbb@   K   Z@AM Stack Implementations  S-MAC!!` ! XS-MAC on mica radio stacks - an alternative approach to layering SMAC component handles backoff, retransmission, RTS/CTS/ACK handshakes, fragmentation & radio duty cycle control PHY_RADIO performs CRC checking & byte buffering CODEC_MANCHESTER runs Manchester coding RADIO_CONTROL handles the low-level carrier sensing & start symbol detection 2XXbb Y \Analysis `  fAM abstraction is general & widely used Lower levels of stack are implementation-specific & hardware-dependent HW diffs bet/ motes affect SW structure & network capabilities Moving hw/sw boundaries Changing division of work bet/ tasks & hw events, & implying != max critical sections & task lengths Example Bit-level i/f in rene requires stack to handle interrupts at high enough rate that handler cannot encode/decode bytes So, encoding/decoding deferred to tasks, but Encoding layer has small buffer, so encoding (SEC_DED) must run a task per byte time, which means No other task can run longer than a byte timeZ}Z Z3Zb}b b b  b V b   b . b tr  A       ^Multi-hop communication`  Ad-hoc multi-hop routing algorithms Tree-based collection  nodes route/aggregate data to an endpoint Intra-network routing  data transfer bet/ in-network end-points Dissemination  data propagated to entire regions Tree-based routing Primarily based on two pieces of info: parent node identifier & hop-count or depth from tree root Routing tree is built via local broadcast from root followed by selective retransmission from its descendents Nodes route/aggregate data to an endpoint, one level (as target) at a time, to the root Key design issue How the routing tree is discovered & maintained How the forwarding is performed From beacon-flooding w/o history (BLess) to beaconless, filtered neighbor-set, retransmission, & (MultiHopRouter)$ZZZ(ZZZ$I b  b  b bbL    ;   aMulti-hop communication`  \Intra-networking routing Data is transferred between in-network end-points E.g. DSDV, AODV, Directed diffusion, GPSR, & Mainstay of Internet usage, but uncommon in TinyOS apps Reliable data dissemination Two principal implementations Broadcast - easy to implement, reaches most nodes quick, collision & lossy links ! multiple flooding Epidemic  xchange info to know when data propagation is needed, slow?, robust to transient disconnections, can reach later connected nodes TinyDB uses a hybrid approach (flooding, then epidemic) to install & stop queries Rbbb b Q b bbRbbZ/  '  z  M dCommon Multi-Hop Developmentsb   ^Most current multi-hop routing implementations discover & manage list of neighboring nodes for possible routes Lossy & asymmetric links w/ dynamic characteristics  link quality estimator Routing layer implementations have begun to use Send & Intercept interfaces (getBuffer allows routing layer to control offset of app payload in msg buffer) Augment low-level network abstractions to include i/f for promiscuous communication, where the network stack can pass non-locally addressed packets up to a higher level component Recently - addition of a send queueh0Zbb  bb? b [$$(b(,,0b0+448b83<<bb0   bb b          A  I ?         :                  3      0          f Observations `  +Many multi-hop protocol implementations in TinyOS built on top of AM abstraction Applications predominantly used tree-based routing Applications increasingly using reliable dissemination for programming or reconfiguration Several progressions in development of multi-hop net Evolution of a neighborhood management table with ability to reject asymmetric links & select low-loss routes Use of snooping (as opposed to broadcast) to gather neighborhood information & construct initial routes Appearance of send queues & some traditional networking techniques2bb&+   kNetwork services - Power mgmt`  TinyOS power mgmt. through the interaction of Service s StdControl.stop  to stop the service; At the end of a round of data collection, each mote calls StdControl.stop to stop both the onboard sensor hardware (IntersemaPressure) and the radio (CC1000M, UARTM) The HPLPowerManagement component - puts the processor into power-save mode (via adjustPower) compatible w/ current hw state The TinyOS timer service - At the start of the next data collection round, the timer wakes mote up, and StdControl.start is called to restart sensors and radio Power mgmt illustrates cross-layer control at a very low-level  HPLPowerManagement check w/ hw Power mgmt is an abstraction that must inherently be specialized .ZZZ.b bbbb:b bbb(bAbbOb 2  R  +  %  :   %  ^  i  O mNetwork services - Time synch `   All implementations use service similarly Rely on GenericComm hook to place a time stamp in packet  this allows very precise time-synchronization Current approach taken by TinyOS Provide mechanism to get & set current system time, but depend on appls to choose when to invoke synchronization Another example of cross-layer control in TinyOS A general abstraction will do more than it s needed Gradual time shifting is suitable in some situations, while others require sudden shifts to correct time+i"q+bib"bV b  b  b bt3   p  D  T   q Abstractions `  hGeneral abstractions The AM abstraction Abstractions for tree-based routing, particularly Send & intercept i/f Specialized abstractions Specialized abstractions have appeared for both power-management & time synchronization General version for many services, such as time synch in TinyOS, are hard to get right In-flux abstractions Commonly found but changing between apps & HW versions, often in conflicting fashion Epidemic propagation Absent abstractions A few abstractions expected to be there based on the literature, but that were absent in the code base Distributed cluster formation Incoming (receive) queuesPZPPPPjPPPbZb b  bbLbPb b j$b$(b(f,b,,b,,b,,b,004b488?" dd@$?nPd@ d " @ ` n?" dd@   @@``PR   @ ` `(p>>  H@ (    s * "0@  T Click to edit Master title style! !  c $ "0j  RClick to edit Master text styles Second level Third level Fourth level Fifth level!     S  Nff??"?  Nff??"? F  "  Nff??"  Nff??"   Nff??"  Nff??"?  c $ "`  b*(2Z  B޽h))? ? T3f3f___ 0___PPT10.[p1q___PPT92p22 aqualab01U   0  C(  ~  Hff??"A  0x "G  y ,   <(+x "  x T Click to edit Master title style! ! T    "  Tyff??"  @   Tyff??"  @ ~  Hff??"A~  Hff??"A  RA)\ :?nwu-seal-gray"@)i%   # lTy 1?"g: NCS 443 Advanced OS (2 f  # ly 1?"3 o!Fabin E. Bustamante, Spring 20052" 2 f' fZ  B޽h))? ? T3f3f___80___PPT10.[p1q" 0 P2( "   0LՃ  P     Z*   0ڃ       \* d  c $ ?     0݃   @   RClick to edit Master text styles Second level Third level Fourth level Fifth level!     S  60  `P    Z*   6  `    \* H  0޽h ? ̙3380___PPT10.[Nam 0 p$(  r  S yL y r  S yG  y H  0޽h ? ̙33y___PPT10Y+D=' y= @B +  0L0 pH<(  H~ H s *0@   ~ H s *Xy0j  H H 0޽h ? 9ff3___PPT10i. +D=' y= @B +  0L0 T<(  T~ T s *l:0@   ~ T s *D;0j  H T 0޽h ? 9ff3___PPT10i.D+D=' y= @B +  0L0 \<(  \~ \ s *O0@   ~ \ s * &0j  H \ 0޽h ? 9ff3___PPT10i.wb+D=' y= @B +  0  PH(  Hr H S y0@  y r H S Py0j y x H s *$yA j   H H 0޽h ? T3f3f___80___PPT10.a@p"  0L0 p<(  p~ p s *80@   ~ p s *0j  H p 0޽h ? 9ff3___PPT10i.a+D=' y= @B +  0L0 0x8(  x~ x s *Ԗ0@    x  <"`0j   x  `ș _ A?"` 8H   H x 0޽h ? 9ff3___PPT10i.0#X+D=' y= @B +  0L0 `(  ~  s *t0@      <T"`0j     fA ??"`u X 6  H  0޽h ? 9ff3___PPT10i.q+D=' y= @B +  0L0 z(  ~  s *40@      < "`0j    6 A ?"` X .| : H  0޽h ? 9ff3___PPT10i.q+D=' y= @B +  0L0 z(  ~  s *ˀ0@      <|̀"`0j    6|΀A ?"` N{ : H  0޽h ? 9ff3___PPT10i.q+D=' y= @B +  0L0 z(  ~  s * 0@      < "`0j     6A ?"` (  : H  0޽h ? 9ff3___PPT10i.q+D=' y= @B +  0L0 <(  ~  s *x 0@   ~  s *  0j   H  0޽h ? 9ff3___PPT10i.u@HF+D=' y= @B +  0L0 <(  ~  s ** 0@   ~  s *l+ 0j   H  0޽h ? 9ff3___PPT10i.yFy(+D=' y= @B +  0L0 0<(  ~  s *(; 0@   ~  s *; 0j   H  0޽h ? 9ff3___PPT10i.z1#+D=' y= @B +  0L0 `N(  ~  s *K 0@      <L "`0j     ZN NrA ?"`     :Z H  0޽h ? 9ff3___PPT10i.ܝ+D=' y= @B +  0L0 <(  ~  s *] 0@   ~  s *|b 0j   H  0޽h ? 9ff3___PPT10i.pVS#+D=' y= @B +  0L0 <(  ~  s *q 0@   ~  s *q 0j   H  0޽h ? 9ff3___PPT10i.T+D=' y= @B +  0L0 <(  ~  s *0} 0@   ~  s *~ 0j   H  0޽h ? 9ff3___PPT10i.T+D=' y= @B +T  0L0 0<(  ~  s * 0@   ~  s *l 0j   H  0޽h ? 9ff380___PPT10.g5T  0L0  <(   ~   s *4 0@   ~   s *| 0j   H   0޽h ? 9ff380___PPT10.g5T  0L0 <(  ~  s * 0@   ~  s *䬃 0j   H  0޽h ? 9ff380___PPT10.\ET  0L0 $<(  $~ $ s *ƒ 0@   ~ $ s *xà 0j   H $ 0޽h ? 9ff380___PPT10.4ojIr&( ,\OlXo ®u #ضy{}0 p%V xwB01Oh+'0Ux   , 8 D P\dWelcomeDistributed SystemsFabian E. Bustamante AquaLab05Fabian E. Bustamante87Microsoft PowerPoint@Й؈@}@ OQ@ͫYfFGSg  )'    """)))UUUMMMBBB999|PP3f333f3333f3ffffff3f̙3ff333f333333333f33333333f33f3ff3f3f3f3333f33̙33333f333333f3333f3ffffff3f33ff3f3f3f3fff3ffffffffff3ffff̙fff3fffff3fff333f3f3ff3ff33f̙̙3̙ff̙̙̙3f̙3f333f3333f3ffffff3f̙3f3f3f333f3333f3ffffff3f̙3f3ffffffffff!___wwwm4'A x(xKʦ """)))UUUMMMBBB999|PP3f3333f333ff3fffff3f3f̙f3333f3333333333f3333333f3f33ff3f3f3f3333f3333333f3̙33333f333ff3ffffff3f33f3ff3f3f3ffff3fffffffff3fffffff3f̙ffff3ff333f3ff33fff33f3ff̙3f3f3333f333ff3fffff̙̙3̙f̙̙̙3f̙3f3f3333f333ff3fffff3f3f̙3ffffffffff!___wwweeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeϮϮϮϮϮϮϮϮϮϮϮϮϮϮϮϮϮϮϮϮ՜.+,0d    On-screen ShowEast Texas Data Service Times New RomanTahomaArial WingdingsVerdana Helvetica宋体 aqualab01@The Emergence of Networking Abstractions & Techniques in TinyOS IntroductionCurrent state of developmentTinyOS DesignHardware Platforms ApplicationsSingle-hop communication AM Stack Implementations - rene AM Stack Implementations - mica#AM Stack Implementations – mica2#AM Stack Implementations – S-MAC AnalysisMulti-hop communicationMulti-hop communicationCommon Multi-Hop Developments ObservationsNetwork services - Power mgmtNetwork services - Time synch AbstractionsCommon TechniquesEmNets vs. the Internet Conclusion  Fonts UsedDesign Template Slide Titles,_0Fabian E. BustamanteFabian E. Bustamante  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXY[\]^_`abcdefghijklmnopqrstuvwxyz{|}~Root EntrydO)PicturesCurrent UserSummaryInformation(ZDUPowerPoint Document(DocumentSummaryInformation8