ࡱ>      n+azb!/g3~PNG  IHDR8M[MRsRGB pHYs+|IDATx^{uUyڦ 4\ܤNl%<PH(hK4K)p.;J"p&DiD0@+)М Lk1YyC~5.@ @`Be @ *S @ 0K2 @@lĩ @y;o~衇^{a ^{m/ %{GT5"*S# @ȔV*6q6UN=TK/^)fW]u9O}_dpip 6J;z_^TZ"TC PܯF}ߑ|K%P#0?soL}ڍ*뮋/xSN;GE5 ?^MO?}P|ɴTb\s5Myᨣ2Kqֿ{o~%\r-tA&2|{{Gՠ*yAV>[,~z:U|M7}~Wlf QdʥdΗ^zWlQKLl84J,e{/6A{[-V^K0<5Fz$Cƹe]#kL|@ O6oy%ay3feתiu62Ec=MC!]7XvO eE-hݮ(by$PQSJ~$n\4Y Ψ xN@vz'Y.w?r9Lu6m{4NĵY\[ƻ[2B;.fv۝3]M'vmYTz岱IcqY]p &t+t@>OZ8">V*]yˊ[c.Tm\;l]^׾6$BG@t~7oWC_veH!_z [쬳A"OdN}t^ ,=iy=~91fTo_)Reő#<s( jb-W@a@f(~P]C=4rCN?"ޜ /Pډ-s ǃ Q O̖F& _~}ꩧMh:묃>xui2 T/?yQ|{ٛ $ojQ>IE.Ure7hgn9}2}x4 y$?>Lя~e.m7b^/]r'!&^=aؤ|e,f{ҢH~׎"ο1"\w}&nE:rSjlhZTGEq{w-.Ԃ%bnjq*f5:YjKP A z1ٻ*Ov&8=asmc utT3{Q̹H:B!MAa$J^gz8N[j%pMb%b@]EMk 't:YgO?"__Ącc!ϴP~}3 tI!VYrW؝]}Dʢ_ss'ڿ8zyb Lo06Nu5[\Wf6-.4MtIJ"Y Mi3#/ Pk&.wM(^vl%h S-Z2km}lu];-|djBh ;}G^+ c/}ڠ]X]Le_L Emf]{-.] AǢ-.yDSfoMFWTJGgڬLeN<">).=]@7D2gE[W^ _^z!o/0:^s嗛MbZ993t^ER:`%}T3*Eey(l4l2O =.D/b;Dzz~L[\l+C;t(ª]FdD&.Df>"BQwG|& Gq_t9E/zk2KJ;6SqaVQZOJXd hy)|8~>Gfa Kw>=ȔƮN$ +WBK S>1qОbhgJ*%ᠬ/=mwirvٜbflb) s`^ZMK~%Hz'x"7&(TbĮ=rnOGEclWF\JSX{$@r)2~%iZnH|4[V6qJ&Q 7uaG\3;Rv˃F߬$ înۨ"guVY ))y}CyM]O̬zU/eC%h']eKqR2q1h:A!tlf+*vey\v^0%n~BK3終9*35z °Lw.\תwg,ᦇ+i~cZ^e]AtnU ڨu[\;G4U֭8B* d'T>{hvYЮWE 'wyTjd DmfM]F^OouID?Mb۩ {fj? l:Zنx?Y6BLŽ8Ԛd['/r&`*fgw–&k!]]Ҧ.Myh(+qp;%ckwb9$p@x`Wb )*vH-ĸfbGˡGavKwzxhҵu)lq1D.V&CwsļV7Ж`7j.v\ؘjɅaTm^+*|fJCJfuiV{7[ÕX7JQve'Vo3?RUlou+ÃN1<#hzx`Bi hW\`[*wM]=dRs,zG?Q KQab}b%eK+㎯^E"'4o۩@nuSE|ij_/$RؾEM!OKFꅀ#]mB)r~zX~].JP%_RJ)~ /3G/ Q&#9vH$!=&bwv*/Jt)Ğ\WNk<j JPʾ ^9l3*⨙ 3qH\%H4[o/=!L-.Cɑ x d=%P aB3T[#l9_M3=)Ca;3$qǢ2IP}_ʡ7ۥ8̜ӺM(a89׶sG!5EM?{wdz֖'w?y.e~Yjȴ^ur(Zbo<=C򊜤eFbhꖖ#I_-]8;=B8%[dt0( jw bzy$˹3T|EL/$7g1*[Q.<C@ T#m@bNg_?RY鵭x'X:dvta"b~ TxP)q6'dDt&TJ `¯c/6hg T6vo],^OWúIuF0Rq4H9u0K,Kx@GtJYNII!H)W,Cd:_t*%Puffę9s2%H1٘E46t1Y63!x aD$V$qn9RFVA6 #1ބCK=.J)"A 1]HWGh )YU04-B-d$.+>vŀ!cs%qVSd,ԟ=a`T!~z"(zHnQ,B7+ UJĮtchFJ{#`}鈘l}=gZ͊J߄V-nP ':BeZE\$vZm8[1R`4fxm7en62ʲVYƋԭ`ϣZݠV!&[]ZȖ=VVTׄ;F;+RBKAB F }3 Tf®H$ )MvyonGy4mV6̊6?y\m j/뾛ݎVM*'P@t_VT)U$hP0R~ zzo?itgF8 2I'H@;Z HdL;EUUj-*H k' B-򌔅; T7R+*.HӂVi!\r"nIFʪAFc+1zv5{Az:Ca ˺Z*, ZNL+Pր!1}**P\|I'YN5gh,\SգLf1.J<,Y» TV{KrJqQJ"D'8TYkb2kdKQ?3TPr~y4GD* 4i%Fa8ưd®z }*[U| * 5-$,c46ڒ2M̅i]u }2jɸBp^kn\e7~yBHۻ/;]f7l؛?58A/V1]jmEI`X:j[R,ddzadPh6VwuD z~ T &Hw4x]^b2G$ G`8:j7jvQԊ1[QyueL`QW54v"#B%ӧ%AOfl_T1Y@][F,ٕϚWtVTBoVq'. L _O Y{%8fg9eڟ[QHW2'r;OR&h L=:FPpg Zeݤ\ Pr\qQP.֚ƨ8=m"'V:[81jd A r޵-El7=2e9v+^x!T}FDFˊba9e&).-t+fK#&_eU>B%;viP>xIbG$L`8"asgv,h bGlqV*ZG JiRֹx8U* 1ЊUa}*O *E`& *oNƁjXLHRdۖ!J^+"Q ʕib:_[|{H)02$aPHR]ҮfU<G3* "LO H}O7&L J1 C8dB%8b[^^82 I )3uLf%C_L9ïh"&*U[sˈjUVDxJ1bcz $T)cR MzzU-gD )!mKBl7m5T}:OR3 N`?2o@z^Ze$}J[D P'4;믿~=Ӌmi >֌vj7}ׯ}GRwvq/?x9s=ӟt>ݼnJJn]s!Tw1 E uƄ T"x2LJ!=3`:lhy%cWR+B<~h2=쳻>P!Y!8k5&_O@p ;3VXQJpa3q&۹ ɛ&k?|YcK/>:VhŠJ5! @ tAahA$FmLjW=so۽N>?|i3عRCK`{'srȞ>)qdQ]H+!6**%Y駟^N(1;a},ձȞ E#%/_-_~yR @]&D["mzj҉.S𣣎:* G1YCfGy 0CgK Js)0Q %hK},Ft^eW|?wȄ0>gj,^g r!Їnv * *R2 @`F=~^/*ϭ&PYvCY,'$:묳g)n7!-̶ Tu Ar,ST`_=qش,)xߡwnloQ*񙧯9>0RJR[6rzpkLnOCc{Z.~C-ʛy2&Em!wxbH\"*bLnSO=裏>Pћh^{t_Ôxա^ziv 7،*M}EKL 6aTw:M:v M[鮻:83sf1z|=niՔy_|4㎫]a9..5}۝U\k)__o~}t}uQ昙N}t駛zḇM}QxwW*>QY|mVƸtخ.ncZZnwYҊR&*-f#-hꙉsNqalH!PU(zfz饗40k6q 'Ӫ}~ M5kW- {TuI8=ad9ťW'YQњUgPeh盇v5O#ٱpi21#\/Y}xa'껋*VTaJ֠y\V|1"2qFe6*VZEۈYy$3)a_vl6Uf{55u`M3ۯf lXH&f$K|[2|GGkYCFh@iIĥ-sIbuCU#?Kia8G>yeZKv~4g?åUx/| };/0[`u8F~uO-ۈw5lv ^!6O=q-b󍯉.s{.{ӽ==4w24X>3KWT. I}3dz+*nF;w-2떤t[@"_;B4Mq&Kh-?ӎGww2Q66?KCcFn-lhNg W4/(>Q3ad_Lh&f,E*sF=7wI—PQ2M3 6ywsLrBXju<6ص;BEե1h:M|QRJ%T_~/;?4%lgGV ō'G2mDZYviN~כvy/R]~PȤ%euBŞNQ^jv*٬(,%H% I*]3.R8GGf{lfqMRPgTm#6}s7n_1n7av;nJvg=!L:M9zv*SwԖP4kyI'dΥH8o6oi 7}%qJ\掯/4tXz]R`y|9ijUIw-ٳguUth.;v "T_>iG?QiL{N/wgENԨ='k*U /t|EQQʨ!aaEn"kjOEh/(=1ݪ| ^`4BXYE˸uG>Ҋ/=S쨔@"T_zN{PD D{BHKx3.Y{4_FhEQVM c%W,>ھΞ\Q9VLѭnu+> KVf(YOv֨[nkz (F@ptHh6nFsV^I |쩃4*h>{ٗ/gWuSwc2,gGgKqX 6|zȺ\9R}\!&G6ң\0REH_nRCw7ġ ;<-8K8 B;f|[ Bl^zj1^EE *#\el{]KGyd. {ZAz##c8.T̡~ jEHO.J F]zK@  :'Ƥ_,'zimBBwKǴVQ!L K>ݠ>KؠlYxѤo78_6ҢX^N50+mؤ,U3s^M$M)b,L+0 L{< 7Oyp¤tX//uDJM7ݤI]FD7)֒ 1ξT.C$xU/1m{Ft-/MlEˮbעhɦjM* ?UcrHoӿ,/})귻*GvLi Oo2IץƄi,{`e|XμZcʤ {'742IK^5b*ri0)mc\0(t-YQ ^ͨ4MǒE Ez&iW}p_Wꩧ"MI@_k,zYlKefK&F *)\%b`j^۪'|R?]3<C p,vڔ#96k~ңpSxJ YJKMtDL+'fktIf9E.w!"0ʻy`9c:il>n{cFC@_f WIJѧ4GWYSxA`#PBEf bO(3!/_yodL>S P-+Z zו|+\0 .-kwux(},nEf_Q2Y u-bx7rAp'?VF]V.H2menԳ g{9/~J~-}]|;1aC $7\0mњ"FRb+恾{!cC%+zOצu="Er/]Q5/6b $/yV$g @ 7./{kJ=^Tn'OQJ `KN q]bIrBYRJsQ~-"bW3N>u&{ܡT6ZeˌЭ_ȔX[\JZd?7Q1. wPM!PR& TC@ 3xx!`5dbxAJ! *m Z&>O0ŖK)׏X/G<3=pQ);}V.c뗯3QN[ZC* 6_∦p:vMiG0R" H4f[* =_<-yO€ X}`SؖvɊ$+wTiL%BE!(_k) _T)b-x6&Y.*_.n& DB7:b븑i5͌Cxb/v.R:`)9h5j**7ͮAg0/||%e`i,amd [ViF_HRNkZ8]Dg T%TVax$ž>[ iXP1-ցh݇i 0s?gNJ1NV)ag9xJ$@(Vװ9H4WTP1Z b/4l$Vbf]O] ̅i&,TL9 P" F p1+XZ{&PPj3W2@LC  A2!ƕ҄PADUTW4J§ 0@Q"TVaX]2$V)Tv&LE|6$TX>&mꪌ3Ǖ9%˳Қ*h;4Ka'CP_ +Eb z)Rb!.z&0@.* K! &jtdl/oicB됷5"TW+UV.%+•\w@gQ-qde Fn'0 ^+Rջfn% TxkYqj g?%WI[:&hUo尢k&K aթ@0Q"!nk0VTf-HhR6Zf%lA#I rWό6Fl a( . 9^E2#`VҎn]P1ЉU<|,ȨVJʀ^'fJCݝ I"0OSfJ12*,Bn0"0#?C YN16"VzSy3*MJJRLS,\Jx55F +ݞ1ey_C<# o@ u^bFGf 0sܬix|dn^*abg$,zJ/,|iذimqi4>'`M T6slAnG2,w=5Ntb  u`*-ΕJ!Z?2D!xD2EO%|9-.*-ad>/ZB7-!gPD-JZ#q<4F a9#J dk0W@y '$i@Ρ3MtA *!]6Wi:e drO Ib8ff(B%CɎjF$D% $Bŝʔ7+%lgZ#<{ yNVEr GO0s !<J]3W~AB'qpT T:;z!=|L/Jl[ PG8#Ey>b@`!B`$@3J k~qf2#Pǒ @' }r;SJt@ : S桇p t'PqgUyJ T`@`[\8ꨣ̛ZTOBK 9P4 %o`]<z7# |;g5ۇP S:;@`,EZ <䓏=UW]uiIHr)^{Gqk%g*y ^ l`Ko! /b9s_?nO~MfCC,%2=S)Sw!.Q[\RҧV+>W_}駵fr5ל{K.䦛nG2C!TYOTqz`AEꀌ-.~@)KwqR,_|??+>ͬP cG*-*(e %Mۨ hR}錊yt]wݵ` XC`vf#1XߍvgmzVo!ih|S2#B?"~ga{0iR{yYQqѦQ)wzkвP,N+0*E]3)vinҼ!1D,;1;c 9qg1NurmvWK}ôOIzkӫ_a]qֽx&j?FΚG mej.hv,t4lJ̷iiR{ gn}~^zԲU]t.JXmn"$ndXT ^ ä *F%p饗qj==Ol<&&K=Z6`.O5clsgQ[6IŶn$/rsQ/Paɕϭ RA</)e>X=4B +cB40\cF^&bM{1/8D*hƮtz˂Oe>dE%CZ%1 ܖ/r'@eb*I&z/u^ѻXk7%:F&fgVT;n\lG-ظ"T!&}E $ Rd31 dE%†*napTՋ*nzaR,vQ)b|-@l6+*ΗeF6T1ؼ I MեߌYEBY3H yLn@^̊J1N>Ue޺jZs뜈Q[fL[^a/^Ex8SH1O d% rKq i1gMjtR|/Z%R}T $ {G%@X7-!_0g&-B#L_U$JD D$b]\DD$ҟ g8u2B/ϩ2 P)\NMk $, #_2 aY2SݣSJXNj-qTZ/!đ@|( Z$*{ow!EdQ)B#'gD N թzT h1 Ew6+Wk!T/-V!w)r",qU#9[VlȖ@ĆQ\ Gt!T8V!ـ )ȓ@<-l*J #ѯhaPŏP˓ LR2q1;b̊bbDG,  4ILluYD%p<Vgw"F=TG#J{v*x#B_i)pUYyg,yyF@*Pi~V1p)\0CTTJK>VJk^aJAJL(NRGڇPi~Vk)H8)  R¥h@Z<hD ,,T,"@G6~uk[m*戶GE HTP)SoP)nɾ+%GHh R<¤FRqh3/-3 @FQ @L) @H !@ *R" @ Be#@C @ T3D@ @`# o*CQ"1'RfHSҚPI˿ybw(.Hl/͇vXPuV+NO'Ji `%TJpUgCT V:'Qۧ3p&@~lH)`4p"T\In5Ze1jX?eu/"# @U027 <=||Q%۵>BD Qjߴ  آ#@` hdA-]UFnDcz{+H=!VTRtQA&Jy;,x(Qh=su CҎi_<+ ROmJ7_Oz"$J] VNnH6~rW3gJ/߮Rr% %րB/\bG3;͸zSC*E\ w!e;V*Hc* "<=`v"T`]bkFJblY%'-!@U/iI\ˮ 2.kp^ z*H6A "(N :U0\WKªYQቬRz*+!QVup2AY8f IA:*Y8oVԷb'Q) %HG0+{j.çxFoۢHo!AJI'63+MQ0+bRz!/`6 0|VM2Ou^s jӴ3OMPIfwRz^7ZBDI<69 RPJ6_'QqaJZza[I* Rt+Ò'>jDdMnZ7t #Qz!*%-j/#tk) Sz0K(HJ:TJRҬHA@[ B% ߺT>h}Ri Z `@lgHnJou!& c5v#ʶ B6z<$WNIS)2$@S0 )YPI]?]RnYd+wV@P)mV PeuB%e_9rX gR7!Ji44Q(MPIvǑlD2Q1 ǯƨ\, Z*H@ vAHA ه*iz9 wZQ  x ":ETgd0'Nv;@ O~i1~_\}I}@ZN.{ \G_>4#! tY3Smd0[^=>y{z!PTJn j,dW5! */P)^0R#VTALxϿ~猿yNGvAKNJRb@P);J!@TSd<52`K[zLiÏVՆȓ*%O`Uq8U`0B%Q)CO(AB׀w\D)"Po@@P)uV k Թ0`RƝiQl@`*e) Fƍ@gxe`ڬI RrE,Uf-BųCϞ:cԣO{tJ@B J Ij ĞCzKgkY. *% 0&D55yĶkgw9BȊ*%+w`LjJ`#T9d"EH iD5 Txcn*ٳ)Y ,TJ!ՄJ+ TV@#KXٻRJK@Nc*Cz)D+Yǒ0I R4/[2A` hoɂJJ0\0kRP#9" @lJY/E6}&!*% v*QM-iBWٙh6}ЙhC{P)%J ˗W@z&zvdW6, JYp @H$  TVBgHliUP)^H!HHm Su5iqe} A)Cz yRiv|yt"EA &cҦ pW..WJWpnD3 Jiϴ2'@9s3c6ncP)+97/`CMS5yʶ̭ elۗJYB #|f Lc 7VVT8!ڤU(k}B>'oz`A]Su TQֶ~Jo}C)ۜCn&wolW;T}W_2]IyJ*WF%JdD'wQ B7YmêatN$2<$eXx"!߽[  +:EA*bH3 bTZ89@P, I$MJ&ۿ2SF<)EˢKDR넉DXBai Pq:~K,)|? ;R @enV^(|ŵ œ##vX&c0eB2GҶi}lĩ 6\a+*;ʨohe*s!a>]Jp!5_.H?[|Of] Q,E #+7 0V Z=Z*ozQZQŢzۧ#Nș_9{ۊ&*}%PA0"b@ĠL *WXZWaI70)qXp }wh ݇CL،P,Sc P%WnmQTJC s> 7`DxRSCQl B>^TP,E c@,Ej,!ZBh]0骍bi7/}L `|cOa 4-Ta; bA26jz* ~iG1}_t# ǖs Pٷ'P,H `|Ye 4*Tی X*pbMnҺb] (Tء{G&b \MB4XM! "МPa`;1u)RbDG:K0f @4hK[ά9@Qڳ@[BXh5'o/*% 0nD2u4$T *yon mK'AoRG Z*z3mt!bqDP)+,E  T*p"M(5ȳ*P) S~* {&CŒ/ R0 D29 S=_0=vnj*%X%@$Cgh@BlϦ p]FdG4hLBTB% 0Y@d힤ơR&0ʚp3Mf$= X<¬( H'@$0(j c;h XZi;*>d"@ T.TxR&b)}GFGF@"e* ,MːŗS'JkʁXóM@*٩wוvOj*%ymaLSj[Qax!˴v^Ư^ѢTJ# Z @$ӂi##(AkXzԆ@dh&WP)kz?y *e93rL*𮹫Ҷ Xz=ZR |_ ˜b\#Tޱ @`6K[$J}J g1ΨHJ û>KSk!F<.Zޕ+ѡR"kaL*@ 1Kic @~k T)]y@ ?)8*ź_*|7DN:J|(^0}tʀ@^*P,UGWk^Ck%X׷ CMITGWkc!XǗ$ J &Pbkˍ*DNh 0V#c; *v)-@@%Jٸ*c q0p 0 ufC`;7zE a:Jq4uE|-HbF~M[릴Yc1$Ct߫2D#pJ'PJܱH 59]aHQ&p@@yB]RB5 Kf_ ڛ-!|.@aB^b'f'Po]UR_XR=[. $TO@d 3ߵ—j|_Pcnͺo!PPNBXfW?!R9z!@@1BTG &N乜bhߨ $Ij"PPah 2!0XIS&iP>T,F\  TL QbV!rx_'A`#- *[G^@(}YLN!%4N w o|$!E$1إR)//@ (!P7 *G ?:Kw0*s(͉I _J &` t:ŏ;~J$@ Sװ9C aa ]f?_|~~)F 5UO S @T@RAh Fd@@BAN"C _Yfc- _  BkJvD ;8/`* @=̴% kJ9@֯-W_aڇQ?9?S?i?jV# \P" H0ȗ:@rۅ?ׅ}V#TV@#  8"n "JIEz[ ˊ 㼅F!P+*o1k,ǝz{ǭȊ hd,YD$Y0η@r[{Gi|خ7 @ *>|@ cKȜL¼ *@ r&e'va@$OH,Tt5Z %OZ^I[r&R0s@ $*h>"@ ܷ۫Ǟr = )!]OPY32B~IqY֯p)D/@ ͊ <c ER6 wZ@8Oo"vj4D/8&G PaE0%`+,z&@B@JFR)  䩚tM.*tb z!i.X̉^"\!@Z;r&P;4D3,4Գ3n**%c`@ @ Y2T@@d璺 b9.Қj Tu-  PKṊ <=EB߀ 2 ZSVRA-*t@(G sX6Rq@B  @ O, BdL4 =j 2Kr/>4J+y PY, 5YgVZ_KP<X/TnAlW9Pzs9Gɞ~;n6} -Cu@.g}&T,}2!"A T4yo Pmz '߮J3,;Twh*PS $`˄hIi_ uJUͺc.R\(@d  PXfYJaBz%XZAlt!B% 0`}wËDJ L@@ 4vOTJVTr"T^{5]u饗jx?zRz=#>37|󩧞j:뮗_~y:1@MMzUd]ri;l+ QU 1ilϾîS4&]u@@ R. u߾Ji y="O|=X͗\rg?ٓN:I>M]*&׽ޫZr{/pWuQ|.lhMCEO;袋L25U`>hsM7]y=zZ})HZ-/eNA@@ vqW4xVP)KxcEEk]"qr5(VwqcI_qV~koѨs=WY_LHV y`U1l2vi ַe[a. cx׾}Q>aLl4WbUʐ3er, @`veR@>5n[Ol'P[MЯX^۵*[ 'V-z(Лʥ*Aꫯj$VUʨ\z7 e %`Bmn l>"a)" * -G{L_[?y-JRvSTwyUӴb+B@BK"䪫2E)MZz+ 4Zj-)!D#T$U)5u6 * UT-r["nG@^ۖqA=c6afS[!Y*Zk zizn2+,td c.QKTu +< )nj FŒħdծ*~_@D@0Zf){{{BF Q .qL+ #%z_ᵂf\ M<_G ;c\ Ms= f-höQmQE;F?>|Xf* Ѣ>OM~{D,@,jY.+U5EI*v$%8c]_$?]u|ӟfW.:l(xbKBǏcwQfG!GqJU=s^ VMɘ]Bq]%ZW쮜4Ul!F^@(T!HRӻZxG4ޮ̌SUÉ]$KtxCBBg*]eNlyuk)CJgU.=~'BE) ˘M /α I @Ϊ|BP) 8 T̞"e|#  Y۽$$teם+lⒶ ś:-k1)%hٵ 0@@rJ7R   ǿd$O$z]17Q-kY<{E$wt2}"b.R;[l#/ M eu8ᚯ8^"p@;uv>XC&nnr!2w=ޖv ',z}T>$'tŇWu^ui b}]lo!GcRP)Ɨe ፐ@ >|Y=$i+#1 *V>D v3]zygR`) =yO/x}??2?04h}ɢ]>}f4QeoWMfqUPhnIGTD^@HE#AZTaWP*zSimDea9ʫ>pFZT6}3!,k_nҹQ&''%~}3'tV }ғ=q5id /fyeXHV&ڈJ (Y8 TnH]E+G%H|31EGtKVR]U9=W6?CMޢfq4{+ SIbO/9a[NoZ YϤ;f $ O 2K-B BE/=ng2OQX;t'ٕrt^*Pk(-2ؕn :t38CK+am$l lbk]m, @,/BexChm{u !=[ee\6зao}W쮌$fy҆Zt]zS޵e7eK~] 2eq9.t6K6 `$ ^f _\_0w:-U@gnN k :$/* w^[gq4Ih%G"J%ZZKM"= dB`0>gW/mB&1KP )gg&TsC+ .etG6k5F>e PYb=S* )BIʁ@)lDu=% sx_x{Xe6 @ QTO{(2!F*Z$1=tj\^ziq@WotP}V#L3 .tA5h, Lx,$aiE bn{$ P@To3)[|B[tMb[Zl TʄGww?usq)};!@Mo״)/^y_S /('13H@XJ azVTzĀ @Vۅzpo>s}>>|L~FMR0 vr~/?#sOoS"TV@# &nC @5`E&o@bWTj|GԛZ?}taG}XQY,(+*E!@ h+W|1k:XD'P !@0 C/ @RAG%T *=@ (BS5T<<#R@ @ T":@@ TZ8 $q/$e^@#*8fB^a pF/F@<֟ͧw:e>)EeEaF%+*@?ܗ_v-ȍ+*y{ @dx,ɺ C 0VTx@@9bE>gyXf)a)@,Ej@"Xbr|`/@@ `\pOZ]q)4@8pl) P*ZţJ4K[%Pi 0I V Rme" TpFBURb%AǢJ@q" @IѴJ2KFCR0 @\̒Q)z*t @ft3r(EɢmNH PJYZ@@Er~YD }>|J @h]WrJu.A @u:B*E!@<<#RGO #h =@xJq @("ԲO!@A*: @@(4ܩuB~@ 0BBHK?C XrP!T*u,͂ @ Z@qz @b(ȰBe!0C B%Uʄ @-@`mFCK @a?) @`Be7rA ,&hY O!@@"(DKR GRO#@ l%bJIk @@-UqS#* @ (KP9P;@ &hyoP*zvA j XłP!T*v.M @@V @ KRoi @%P)u@ z T-- @@*ź!@ P/Je @(BXa8 @%P׷  @w{3I:IENDB`n%CXBj4PNG  IHDRP44sRGB pHYs+BIDATx^=%Źϼ`&pi<dfk05@ @`t"7#0bҌ3Hlg'p0xޜRcU}-mmV}@>g @+# @` 3^BJ Jɑ W&+W ^B6K`/ %Zajc <DSAX@@uhȩ BSX@@uhȩ BSX@@uhȩ BSX@@uhȩ BSX@@uhȩ BSX@@uhȩ BSX@@uhȩ BSX@@uhȩ BSX@@uhȩ BSX@@uhȩ BSX@@uhȩ BSX@@uhȩ BSX@@uhȩ BSX@@uhȩ BSX@@uhȩ BSX@@uhȩ BSX@@uhȩ BSX@@uhȩ BSX@@uhȩ +}W\QIY _aJ M`oTYWv;@XW#uc[|!?i%A~RC~>J2YW֪H @" i x 7hE!@"5 @`o {8B1^eLh/>_Nr[?o}x9''?2Tï:~{U/>W}?3qQ''_/!_@aKÛ_$?})SGO>Ģ!Nͷ 'gwz%RK2rfTBTa<(ki+)B585??{罰/^ԼޗE^ן~O}۷BS鵌!3d ukMElp/k9Z/%^a%v\>3եe gY~nMʫ@>)bbPaMZ?Ҽg7ׂ[,Ξ9KU5ۗxaL;!(}gyVW #@r,4k*a%QY$!c&ei:zY<^]Gr1ɓ'!ҫE%{-!D?KyؔpП"3) ޗ #J,ֻr%؎ǫy,c{Ihb+hS<ƥJ>i¡8MD{;<)P$>xpz_$J_ti& h4>85RK&:N؀.YJJ]+bjud Ӥ'3hB!?,C=oCA8Q[ i)Vo{#ԟr~-*P $V;OXܺBzoxwƜYB5ts؝ *6hPWT! "}IV1_2DzxPK q!,kH)aTH|!8{޲dLfcuשdL+7ƂHQ5[kzDD!UoyO!N,CZAaǚx| c@$\ۘ8$VCZae_$˪^X/L[/k1bϷ[юcEÄ-ꍎ#u ^%NzA=ߌu#N kLn`{z|!F~· 8nݥNh[%s-*-YIJx (ч:s#~O}9꤂(jϤr Xͫ[[Oz3/S6f+UFAutY4xU B5nN֕+YW ;Q> yO㛲]e&*VQ|pFA{>ZwT MBٓ՗p\W.č6Y7 2Oea5 Ot XlyBp*y4^r+&u%]^yc4rK }4Iyu_–RJ|٧#NjIzj*6 ]yUt馋J3r{AhKc_WC״ `},Z?Kw(2UzdH&fP6u*|^ +@I:5IڔIU*Jd~eBcB] KׯOސ8qġ]q\X,t5I@)/?hp!>f_ /sv.2yWK>80Q΅,*`yCp02YWXe_߉{r|N|A7|vo-Nµb>Q޺݃9/̌kK~"z߽$埸ѥFd ~ ťVUPP\_cwB o+(hi!^F/Gn˃KVXo~xfo^N*WG͟ '9;I=v7f͋5FGλR-^)74[/َe1}^-}d>[2'KBk>sy-eg2gKtdF~ӖֻɕҩT3Lt+а%LbaoL}x$z;ԤH<' kXUb^IgGrV໫&+HPZc#;4:Իˣ*> *߿W&DƏJcȊT[ݥQ ||`%?D&h Mr429';n Pe4Y;m",cNRU/=\Ww@ؒ:}F`4?<3JR>?2tF؅P+S(TQDj1#9KZAح*|cEo}?K1U @X^O ʘܭ#*DWBK](\TV|1Ҕ}sNJv1#^̞?{e'yY|O8CGrJ֭+2'iV%'{hi91tjIY(˲4eys%uRL SA퍒י4Iaө3ºz5c D3}VأV(h^FUwyJEͲSQs-t(,-p xYKC+Zs x>2{&rf;+ D‘ Gf/n ?2 hIͬR\ɸMWSC|:ѡ@@ F!@up@@8pBn@#TWh8x@X-Vc +ֺK5QvyF@@K -E [!@ 3F@@K -E [!@ 3F@@K -E [!@ 3F@@K -E [!@ 3F@@K -E [!@ 3F@@K -E [!@ 3F@@K -E [!@ 3F@@K -E [!@ 3F@@K -E [!@ 3F@@K -E [!@ 3F@@K -E [!@ 3F@@K -E [!@ 3F@@K -E [!@ 3F@@K -E [!@ 3F@@K -E [!@ 3F@@K -E [!@ 3F@@K -E [!@ 3F@@K -E [!@ 3F@@K -E [!@ 3F@@K -E [!@ 3F@@K -E [!@ 3F@@K -E [!@ 3F@@K|^rE'e/|)//@6kSe]a @`]a`(l/S%B,Q:Ͷ;!Kh273 9H@/~c hJ Zas@@B%@K9 @ $i]~͗n<~CzsP_z+s_}7/xw}H^s%Ξ9IҶ}:o:/c\rY| c)c:{[CM_&O>$VJ#KL|٧g|[JH4y2BBڵkV-X-fwyQrx2Wn_zٞ[{3 Խ?'*\yu^yZ,h`y[.BB,B AU C3܊l[@Ǿ,hQ' f$?3}Y:ZoݸH~jO_=U&eӷr=jw'OaAu8~~T:C d@?Kfռ4y9%^C/`R2qb*W(&DR)55(+gղ-G^%>.}X6?'maȒmn%?{Ø2Meujx4rP+x, =n&E9G .?NiW =u%ƋC<Ġ<+WEŔCPH?U~TSע-brYB{ mQ*<1ƳkC6uФ5Td`=,ĥB{筘Xz]y5 ~@f_SL/4@H|4aWg 1wT7tXJ9.ˑjjVb G+4޵BȽw -gN]0]ñGj=;~3)GVC 6 ̓u&M4?{7Z8ZFs˫'~n|7ߝc'2M5cz7c_ OBnX5 > $ zL7_>hc  wXFHK',gԷ˟ǭr);uuYQW1iKC_f[)}Sk7w?W # 06-Vh&XεYvI+$Pd 8BK#ub[gUOz"U}~pb߿=O? VR)A*Z%Dz]Ŝݮ^ Y]oW0߰=!idFĎqhpՅ#z댑} eNU#/Kó}̥CN¢V'>^ЇOR ݑ*!X}P {OFC=I iት2` [jW(ki&²:?۴#_^%`y#fQL|/C<$Fip^+75u5k'\)6kfZ |q)X c˘o\#OV! k&߫fMtgo|/sIVSu~%m`3-P9/0vxc L^!3 ei^#knߺ=t4'OHϞqW)i wY'X(ߝhSPF?gz?%qf3\kunLˢܛk=G,@ \Ό\sQe- VXc.ku<h-$mzȯǒEz(s8C4 @+7x@!Vȡ4Zr/@@ V1@`q(w*@d횴ORgǰ3ğQR) b8 $A#Bc7F=ܜϰ7eXi疲üf4 kAQWL,X+y1~ G4]3L1%²|ks"ٓ"kP͡40gu|ʜNZOUBN|N-s|J;ǁ,a;;`>0\"k^C]eZ=5vGaZ#. 1珡77jN%lj9?`vRf-!gC9GAc+*`: I*@+TNuLȩxrJFP uFzoW5h?&ePYcC^!}D+DD@yLx5C횴ԅVùZM !0@Yg/5:rZ1ׂ[k^\2,5/6dF|VNVv|0K LhLP$Z%>[.r]^ KF+ǣlL꼭ӦD+k: Yr4(65,`GO{Oe~hS?}[e bxqz4Y+r!;F%ąUANmeC-fPI^Yl^0/YJL+I}p\Ȑ=tZ;rӮXgJȑ4dͺrY4Mg)†WF*m3^EZfIJqBm|ֻ[A*0Gq<ۑzkbY QˤMkkeZg1-йn8]5=+<>b-qf*M 9(p GYn۟ 충y}}vt_lZxc[A&نLO>~ϋ]칛/ =_=+O\Vٳp*أ*\685 <-^:'7>X6ΠV&MT[}w޻WJk?k/uzUzB~rCAIc_})\> 0[Ni$Fa(ba.m션K5ՀfqxpmV;mSm}2x3)2l _VAɓ'‡I2ʭWƫXczz(OAXGhPe*xJ8k9m`i&5rͷtv{i8K9M"uPG#]]Ӕ`_VG}qR ӥꮤȩ%'MC䎯4zf Lʙvȗ`D&r9 $Pu3P;$&`!gC-j0> \udsk{a6 ֹ+w ,KuAekpW[m#͛ 5}iPiԜ1wsuLxf]6uZa/~sӘ7RZº5`ҪAd. |%uV̀ Za,@JV̀ Za,@JV̀ Za,@J@~>|g9Oc׹鞼P9/r#$c* ??#թ{;7W-Ú_!<Ȁgz]2YgB}l˞g&n=Y]|''?rPk^qW/_ǵO}.'OdS4Fc}Ȩ7.\u3]勌rҩNf⣌r,9iYL2@ 87R]J$W(| y=X}ZB>n j$j2C=+ Џ^&9Z-0&-i!ɀpmf.dSdtFN/\Gwmy7(3gXs2 Z4ta\VB@NVPEw&4(mQxSF{U@nUM?Ô7"̕ PSP1s@Ob)c̡[c$S5|59JwV %|L h%> aKP`%R8IlYPȵ@]r0| /׀\2Za0:e@]\|qthn,3 pI)[ҽ3O!0"M'ZUCFY'SyK扡Y 1[_F{D6-+$ (Q{Ui~| LVp^lHyYq_ThEB5c ]=) qԈN}ƝA F֖: 4i^Ϗ H&6_VT]˚/婘_=[+tS7]{b,Bc&Z!lz&{a L~| qԞB)DB߿(@0Ĥ ꇚ&u‚n<]DyGݗzoFrݢ>C4YL~(*4 aS SwҪ\MB3}p;R0%Iz琏3j魽&`Pi|LrͽOgТp^oǖaGCdO6vK xiZS,J70s}(7$G:Ԫ% YuT5 9eoy"=zy*/$Irř_z/)FCE?LG՘k??1x䢼e~2z8_zz职d uꐗ%1=vidIjTmlRaư.28Q5zhRS_+,6$!& }*p?՝OڛY߿?CaowYכkoaFyrp\n`6TiCUr,HÓVWD[k kL>yq WU9?[_ueЙ {6en|__pܻ:>;-CrvGd j=,y~3ՒcP7zl 7lܣ7 44Jؼ`B?2Сi*5ws}LjI&],_I g_-G^cPr9~'+{pVX3QGr-}-3XK3Ƨ:ϸC!̓dj!I# UYW⓰aqGtgo*+j$Yh`>:σk$Oos{g$@%hFdvdRZ* z+*jmU~29.RMwS ] eg!#ȟ<¸gGc89_;}tVwBA.sWv8 ɷ<3dLtC!3 ;3D9zҢHlf >+L>ӻ\F+җ5\?UP j{DE &  FC`DHP n"8I'=`R@  @ `]@88?SJ lZaK@ 3D@M| O0?SJ lZaK@ 3D@M| O0?SJ lZaK@ 3D@M| O0?SJ lZaK@ 3D@M| O_+W 4iZac @`bQ@hZ @`QhER8 @yhC E K !@%VX/C'nŷ]߸~Շ_=W~BD2ڏ=Ά5<}7d͗n/㱾=ə$Xh)%7@>|I'y}'aVxѐ22qDMAUˀIĉVwq -D@bˏT)3wm`b2rhєj~K˯S|M ]:| _XREZLT .Q\uyZ$Mdm/L_(`5`HagJ?~o޽.WdBЃkNƞ3gƼʨdΫ,SZ$1Nɼ;Ž]^J7:WiCEL9X3 fRZ?ak&Y,WEXO˗ð"ɓ˺\v<}yI#h֗#*Mͼ١JH|%%Z酊!֋('lcy/vH`|{ZMӭw\EQj?L^q!IĞU~ BԨ2sa{Brr_la%tC9c%Buɋ.siCQpTզd@ߪDbdBiS@L!BKHlSJ)!p<%{a:!492傆{\uOݓ da 3Y&v '9<{ִ6,O璏A+Dx"T 1LO!"*(/#bi3B(\-bUP!YƵor$1H &LK=N&pY.2+ "SiWxPF%v:s6Y唲*LHk#Έą.-dm 2ƅ[yOF?^!Z``2CI2AC7#ή{NnÓ?V;KF{sۚ{n)~qqzJkwe/t xo'Y e&BydwsWe p!:mץ*|^QPi:{#KF9xsMqk_:˙<$V@tݥ^$zҿp~d}Ԓ|ky‰}+tn[pdR]c-0׮] eFȟ `庣e4Jea˯t^JՒgO[zN>ncpLHBJԛKE"|$B?f~dsT"A]oJ/i78cXB}C߭BChѷ|5z~Rսvmx^w0.-v6%ɽ G5mއ| .f8kWF o6Ç1j_Bww 0ɯ$${zdBd,-hl#<t;\|E׮ן@rtYB,WXZG%@ѷSZRu8 bm(͟[z95R Z!~~Cq( Y<\A[Πl/GR&hb~C5'$'n:XL;Ó¬'dng$$~P~\.-ߑܡ+֚݇FNlރ<g5)!(¢x)|tX@o*È>V pZm<-jA@g%.O\3y5@5+1-"t43s\4A &#9 @`g؃Yq 0Za"0CvF. @`"D`$ Zag]@DhH@   3hw!@ &#9 @`g ; 8B&@+LFr@vp܅ L$V @+, @H0!@;#Ɏ@-IENDB`n _+k)NcWPNG  IHDR}WbKGD#2 cmPPJCmp0712OmIDATx]l$G^FZ7toyXk{Cp BBw /HsƻwEY W;@Z|\lmi3#C e_}ҽ/>o>_/};+>7?్6pٕo?,{YOQ5Tehl,;vfzMjoMU{dow F>Ps>ϼ[| w66ㇻsoSk緝I>pȵjo7zO}<Ĩ9۱9MBBw1nEGDzUW(qx z55bAC~kzc;# v Q\s8l^<''3[&\lzo%sxYjڛũjPL65Ti" q1ȇAw'MՊ^awGRq\5yjEs5ܜ=V#L}gw&q+6FnӑMXPT Ug@<4t;VlwL^ރlA]b.=x}gsՍ/51xM&pW5#,^F:}dF-cxԲz|t2v x8a#xqܫ,LD dh"r{@D ?pa]g½lB¦Fz#8orHc|E Ύ<^Ӏ$nGⱋ۹,>l/2ٜx@kwr<#=x>!jD'Prk+v5 OK Y^˦\Հ),\i"/̪vQ8 PJqOYTc28$4}$O'ǍoJb~c᛼jr}GOԀ"8 Uj|H5?OxڙRV{,Ήʙ]Oړ@ B  K6./> *:&u4 =WZ5ҤOu4 ?lj:ZtQ>a`.h>?c-с \KKc6Q'W\xcgg̅7V䜸F}|n4 zZ~=;;:+W-:ivɖ/k]=->KVKysq@ViQ iiYUٸ:jjiesW&QgrAZ =MRM-A2\EW265.$Ux _O+@N/}4,×:.Jd|~8잝*Lk CM8f[门sĠbLm-lR>3)ᴵ1vW'帾FR}r\_Kc45tG:p^S(ƓYVdʏ[ZIz+nT)-ۙT;ƖƸޞєL\cKc\ J"54E (SW VT d(-)r-_yZ^q-Mtzl'f&Í|X׋ϸ[oR#U΃U폪:k VoVFN|Wۙq{&YRuc UKMtcD֌VNTL[G:[9k\Юgf جgE u`Un8ݙy&h\ojU3lhή^5EXy&h\ojog^5gWy\:iNbJ.Or5vƣ$*6DxX5^sjuv-,v7yN I͛ᅪ[Fkx&-^{io_%.B_\/M7Am@TḶgFw;o{^Bm{`̻쏼.Kի3FK.+x1,޺wo)x#iu`l/m!o?m{͟~/zuO?0ݏӅ=cָ?ov# (vݼ713CФg'\]*\ ER8ݓܗZ$p:YgpzkNOy6ߞcY2sq=t&&7%qDe]#8[g8+ѳKb~8F'f.3,F0posd=BD-@j2gG5P>MBx,u8/ChIvdg0jj%x6 !C1<:E~`?_{#*K<}-xR@W)d^Qt"xpvlcI=HGしx.9rʑG֛Y Hڃ.-bT@]Ǎr9'W'28Փ9ť'ئFsVԝa9/.==U [^:i,a\z*{\-yw8E#hF.=oqxb8q"p'.h珌q˳po//{(.< ߘ0=U !10>})LWXI3WG 6UUfUn*+V(*Kw6p90HPd2fQYVWYgHeQkxpawpU89WZF6 =]RֆNlɅNʞ?/)B]әx.rj0Qȫy(zgTpU;A\i*4~A F.ԍ"֏E.Q6ΖZgĪެ"o9GdgSxt3n~4a0|',sFS' }ȍԏ g~B/<6`Cg8 >2'G5^<$}E!ڎQ =Sl@GXگ9zNn9`щo$ w=VКʻA70}^T̤p -x ^6Љy^uJ: DwERNw&l6L894:ޓznu=V8V p5Svdɟ5ŧj]oӏK2,! Rlj-v~-8HGcF 4ep$6sm2r}''#ˋѓ5oqR&q/n?ɑɏ|~[oz!TLyR><.QIC}pA:R%՞}kOM64.89w9LII &?I7W>;uל/|O] ~ᩗ `b?=m7>x9'Ε>[x .qa~|w?o$`6JPT3$A6Y٣k\$kk/}jțKKO% zjmJx >xL*----e| ?ez} uDٳVe(37Ȝ)aπ̄^١N ||3OpȞn#V[dNǾ?;D?qݨ &.rX/6Xj.p W%5p{}O3X\_c2Sft/|wN$\8sҵe/W J'83<:p摖 gN!373 j=A/pfPԸd@&|K'#t^2ICT2Q=U[v\վ5=ReR[[[[[[|=>KdhAU1KI' ?ؚ hӸ/5A<@8;{#|}[B UgZ:u| ]Vn0\]]; Vt}uZz-p붺=kw}m :ޚ(@xkkv?fn`Dp9JnCM{Ո/lq5gw1 oԆGנ6^qnm8F>c'$p ^r +9VKv(0jq{o:vtGxL}֛){Y?qMq0gM--v۝=8? ޾k GٖD[V;l0^Z:pȽ5A|"ܜqz]qlF=Yq@K}A|'Żuࣩ||G1HtjmM`ҹ6HWAIW:Fdׇ Au5\oioooou餴3tIENDB`n /TݒaPNG  IHDR,(0PLTEӜ@ -FGD4~f%lwIVr2=V Dǔ8bKGDH cmPPJCmp0712OmlIDATX_H\WAf/gP\'s4YH$[5 b_V SnCI*LKv>;0-$%祃0:pr;MS}p!Krsx?s~7ln cX&%B}] {EzbI%rߧ6{uW$K:\Oo6KVMI :nJk@)tKKRV25X"WW%bD2&^Xw-|H+1`M $󅚮ZX;߁?M?Va 9  Vbkiiՠ c +'`h}?O&$+v<jq[ںq!9>q[Z1PGӛ|l"ډҧ$*qѿ{ O`a9;~~cHb4f{uV*Z ֬PӄddMv ߚoW3Q̘Š4EwN386s6#VhspWϺ .!zA&yUF bF"qUʿ-)n"t+i8&V_[1 Jwd i]k#9`x?H%g٘|~ ,(rf%}{D? ekmb 1|%;uY6`^PTEX 1h#DZ6 eছ3Dڡ)>3n\Xb=ް@f[17 zdY-mޘ94%lR7x|}MxX4s`r!l`BvkWVb%ie]lُ6[asW;Jʮ҄Ey&E㙩Z'X,0V-a[ `t'U<5vX7Tmҡ+$qMJ *^B?O~׈5Al ǎ ~-\4XNLI,4LT?mC u(uuKFIpp,' W J˝ۈq{f'UR;9Tha8殺n1fTTX)aMP!¢ͱXHƄ8fW O])rX뺇ã!< VDխi`X`쎘\B$Xwꈎ6vc2ԍ7zj0=NKNMKXwLl,D3j?7;ZL(@`'K}ZB uyuL"ɏbwb ?`PDA}I߁U\xdjQcHO &QX$!ԕՀsebyo 79W :^?v "{Zxn:K4Am~UʕrE baFuZ 7j'W\u1ʒXK.~J&o݀fb\m%$Ah`E -Sz5}NZ0g=zάA3U;|ؤ r y-\z7>TKT-yЍnI6c1BzҥȳAM]ͣ dy,)^xDMz`S#d;d<Xtw[C~C#3/8T֐}0Ň~zL6-`HMCSoxH0#/<⟏xn ɣbՠJʾ_|خ44v(mS͉~EmS}KKy b/)_W IENDB`@=~1/ڵ/% "u{f =LxZ_LEfw)T jKKS.ƣj6EJBJC˅@0J*}1b yiJ1ѨMB>@1F35}]9|p;.'DQ$9jW3ڋ{:xom M!jH,,#o~$ jۃuQJngts܀Zq#:;Z9QH0b/Pr@:T*6.@<ʻv#JumW=9Pj}F QNFe%uG @\oxqDVcT Wvф& CBk!Hon&pԆΓWCGWQdkDZ"TX>Y6Ur=$Q1DX[8Z?_x_vE{Yε.x83s/2߸mSN֒:.D/,`]~QӬ*c ģsde.7`lxs _߇K<³׷G`o'][6Tӆ}ڰ {ܰT9܈X a јKIO=Gk-ɵ54slac6-T #Fx bg+311",TyrtÿBI JebbP"~Y2 1-_Ga:1Hک(KZngʒDLH\"6on)sxr;%N),NyV5uBLIL淌ܪ]krKTl2Z||TߏB>Bbt/1?8͘Hm A? x.Lb!{NUMiBeD[.ZV0gZw%Q]lX鿨Uߍ y/iڧ" } -hbQ{>'͞) 5n0|vKS}ן[\'7i^,'$d^[M͗Zr,#|c7?]=Atuuef]WtJ.7\KߟL XWwշ|tu7(,UF} X-o|c T_@=sf‘4B@4!u{f =AxZalE~{Rz\Z,Pz-mM@?056iim -ퟒ\a5D1T$5&D_M?DSDckr7:;ݻW|̾y\<"j'lr\/[mص }eB}ne2-Ol@Q@V7c9"Lj06$B$*sFPx’\!ǢksPre#]9:mdyw7q9B xl!pmwu6]ADi՟$Ԯ+Vذ8~]E:DָoVEhZލB{Bމ±e7` 8qBP;zsONB>>P8NeIY>:!Q\4<3BJz/f/!^% RueWuwO8a^e댗_cI]1_>+˽˛9.U?դŬ*Eأsi.7m}9ϓ8/z)W]vr!jȇ !O!X1^ [ʡ3G55Χʨfp45mo5hYe u4󭋏;9H^bJŐļS ӧOM8I&NH6 Y[ i1+Am9r'4䞐H Zۧ!#O|v1nLIŨ}G>x|X'ERb:w1ml i lA㟰ƱNH q\>,͏|v6umwSDZLI\`w3QwCb inߑhMjcfNHw|v:u46ֽ|(aeݗd)-k>b\^c[q^Hlț %S^R-u!6)C21C3H_vG ?"p˯k|r,9aJh(ީP-Y^B[. YCXO"೔.|(ޏ!(󘱇S:הOVy; ^% Odvlqpd"ȯlϧ2똆:.QTqC:vG'xCG/Q:=tб3O?ʝ[A?er&ͥWpcu(ٚ>a/xl`]jGI>= 7b}J.o<+uCOo[u)Yx;/bN5U͍W熇%+67&[rGqk[3΀ڧ>9Z-[[淵7yNmg; #\D'?B9OydChG*ιPRmY7ƌ=wW%W?xw>jG*߷jU,Zŕ ɌC Wp\]b\qu#|ծ2ĕp=_ɸioachX&[R~= }1} \_3svBY FK[>˩cn[,C;~jPNG  IHDR.csRGB pHYs.>%IDATx^ u\\vl* k@lFluJĒQ@B%|6@JvTWRE|$eůZH[6rG.rY;~}{fzz>yfSӧ}zLm]]]5^$@$@$@$@$@蓱|'    M;     <΃2     z޴    ȃ=<(     M     <΃2     z޴    ȃ@i=SNyPd p'Q 4@[)ϰY.)LB T'YUc`čb(]x%?_J_xcJxI R{V3."3nK/{( r?hDPHkcs&>qFCޯ3gim۶ ^mK5W|u@y{2Hy u-Pݻ- e\$lv)T*A~nQca<V}6cJs1 C*B#0&T1pA^W5>S.Dvޣ-rb?ޟTEX{$ϋϸ?x2\uNbOeqdư'`Ğ3fnz=#{΋-6}MHս[R`wpe+ފ?ŋb_~ӦM[l#>|V5g]%߯nA%3vHYЗ/y.x!01qWTǻ7ғg*Os*؂s|;BIށCK@'xat̙3j\ʱ{v vzVyEqoҀK]e-R&ŽPGƞE2y!xD`\vCBҒGF3th]>RHQHJc/Rl1EQA 'Xr>.kU7shjvGNrNޯ 2s 蟅] qE¡Oz1'R$eJqӵT^$ZݱVDl&~ +$?;v쾰'7N(;,Mb~N=J&d+2I Jg` ,~[CI@ԞF*_O.Tpqh9#,^9#/X]D%]V%͆o:ZɒDt7Qn2+Q)^^]#GɎKc/m4-iY@7 i/x"-] Oay{ђlz]\[U]1'x9fg8sZOC%'њj :hoB`W0}ao:]!Ol2ȔlgCg} j\e6Qhpccg\yscĉA+'nXs  2OiPU~j+q/=$yO? ;Hd7n(6$O",kNÞe~qA$inc)i)sK[eɞ=3bs)MHyN 4U,|+ưL?iD~6M{NkDDNўb˖-~ԬGrs6*=]Z㞩=F # Mdɒ)KyfJhRLʬvͧZ2Ʉ:x`UY)vZIa/>lh[j&9TBH¹%z]j MS~ޏ=R8a }qYCiaZ4|/N{NkhDNўxgǖ}w&wV%uId ,mݺUO=S{)[ōb oDǞc 筀H)$1K\g=SUs4M (q1O2qiކpvW;^|MzӷVFqTU. :R\8o(uN/ОڪKܟQ$:MFfeG*P~ {Het0:|;vZ㞢=YiO/4R yjh[U㎯>biG^eǞa=Frc ^ԧ"0`O{{%W" QUvXhW/!c(+⻉JZ F|txḾoT ĉiEzpWo>#KX$Uj^p4DihnHeDž=0If)6fXervR*>mӛApb*:[L0O1xeNYeoРA&Z֧=ÇW<_.]jǞSx{_^b&oE謇g⻺f;S=LmBC=Rn ~X .?D[λ#.qOnމfWBhst[>"a ֥;\F,*i}SP)jBhx9U)O6$\cX#g}N/(п ȋ/S G{ ų?iB~ii]NўYC AXW' 'ˑV!SF %qO˞g͚%1Bsyll@@jz2L7A ĝ{QQ9Gxgt%@{v%r~h? oXL;H$ [6$7LhVYʣﯽ/w(4=s-2>[b[K]@ Q\ΨVD~2hE zv¥ eО#ba&2Q7獤 Q<<Ɉ. dAcX;EEM6#$Go٫0ج^~EN(ywyǫ*-!c$@$@$@h֦p+W̭%hԩSF2:{_`Ν;qUV!=vؘ1ckڴiUh %0NvHHH @s<۷ϙ3Gt@]w={Ç[U /ܹ[ ud-74_8p``x>]EIJ`طo Uŋ_Ub:*A}ۍ)Wc~~uK9s#oܸq_|馛͛gׇxh2D4:y1E8W Ǡ؟b7xe=^OE M~iJVܕ70aY"L_hRQ7=ɎBz-KQ^lÆ j}UBq˹rJX{/n6oŨJFQ-}7I|HAx~Hi|MàH-X4^,L!Мhy V.GAFT¦6Ft҄}/%/ C ~Ɯ n}J=@Μ9bzp?طoFrA僾ʕj?<|p˾a+">PS6ǛѣGw4D2eoP\jm`+V4in(SO4W7s\ȳ <&.)Ơmneb?VNy۶mQVw1B{ePM*BЎMIFp ;xe4zԐL7Eq2/%Bm5,|EH ?K߅ Fz5Aŵk׊@HJ,0âG];ޠ]uҫ@@tzwU Pl֬Yԃ{ECUK8㗡.ѵz1)vT ?42e VO?tSVc:+^a'xB{WQOoGX^n3L <߂xOp*i< 77pZσJ=,gccs1 {З [5īɎ=C Vd^إJeM)փР ݀ȮkY)Q=Ŏ=7_ ]~)U#. nZ}A,C#CB76%0v_qE- JVsIּPc,OlLxE,.D_BȐ4"INhUxn |s}7:B*_@F|e)yCTKeKj8J2 N'{4j?VBDf gݪK^c&=;  =Q b!rt#IœGJ7˸OJcnD/GRԒ n[oAYS}v>⽾G%HY>6Ȟ7i&p2VmOamvg̩=yoT礫ͺV R^qIy}Ig%׬ 3EP@AηV ﻾Bel+AE "mݰ:×U#x'V12Āe~x^߅%L?-Od`prI3JMo筞꒏\VO%p _/G1ԿSB<5 _F]V..kjڻ {{ۖC苚.kƪ _-p"ޒe]2!x H}|pKwCG {tE<!aT0E@J- .ן +qo.CIW$\S[\bsY7!!Z_(ww-,Mw,@| YVt Z9o{v2[\[ub4jXUC+}9_y|BW$JL}=]cTW ײW\,bj! l;W)~Nx=o'=lS}='us % uLgЩ+cǎU6pb5 [V⑇ p=}rv5#_W޽{b#j-N>ݮ9{%=K~T%0(JJ+Vwsh0/gƙ4 4ѯ `{9gy8Bx"Jo ts׫1E뫪EC =zhu*1-9!iΒ$$Dp^21\C. z #Z1bc"S<.3fARBH&rҼMdrVo_r%3 Ç4![x%]0ot@]k^-Zddqg^] =oxkڌB'xvÀ,2˖- %c~-D%KwXkI%k :;#T,G|k}@h\OӁAb߫bDJ0b/^ iRT颼&X8P[䱊ڒ%Kw9^M7H pb-ҥ0Y͛Re&#~%c-pB$HU=ɴ_%%W؃%E`<ҵ[q$-*Ѐt'R_+G ZcȉalAYl`i;M7w,}#Ea)]R([\ޙzLR B 7,Ux{X֛9V+e=ౄ c.D 7)IA&n]%vwJ ; q A;if_o)PDF4vg-"ĉDH?6%&;ӧC3vgoxr[.f?) 6<3 j>K()bOs͸JH6vLו20oIkX)u D y{.8%iҿss 9ɷ{pA}wfZ) @l޼YO =YM)#ub'O />KL^0k".l%f.mO@.uS)S{" /uI ItY-/jJRfv`ڨ$<3Vz },צ+WW$Z<})'Fc}жԋ8 h0"{VW@]'yuVɛv^iُxB# q$.JH;^%^j܉(OskI\l v4v[U/0C|YN7v] Y dVyi*~$ OWnE,\ȅWf"{ F:;٥C|xO=W"%vnBU R1I&N %[B%r!Xx򁃯 h0Q}]6ea?M^ V`$ R;F#|YJoXKw߭/Kv6|stWF =cda.ox!|K2<C$|'2^n)!+>^-r뭷*it&>U<-W' (wxc $6dRY_|Y7o!~~WYV|Si͔x"Z&-7,)SMk$/ljq̇?al<3 dx*-!=# LC$Hbz.6|PG ֢a9&$p34ho,D%^&R&7wfzࠣodAÐ.'195%WL5yU/YC{$ǘ4GkSW>xu M(cvc7euK|]=O|J:׏7m,a\xP]%_rLYHzNw]tosB=<|нQO܃X%mbq1ΩQ$nQ0h4UbqtsdJr"MKtMdZaXnB]dt BpUhSJj2{x8dqsa.ڏ&޵NFo C^ bx%X6y>@ . `[up&G t!s~92Z,EowLba&Oj |nP^T,@hIS,>p\xQn=D؅ w@r( b"Ba^M!C ADM! X:"e0BwJُFҧ T 5b| 5eP+*$& ;;b7nxD"i +6ЊY-sY?#T, `SlqFBt!v2$@#gZ[vajn9^N!W*)Ɨ |֔^mu( K@?PIJW>K.Ϭq&kv=^+qc- 3y#{RIjxֈq/ѐz4 JU|Sxt 9^w>B; =%@:|Ĥ5 a3>0T?8^P"Bk34r2Zk_)myWjYHD7NJ$4AITٳgc76VX*ǫǫƫP0>аY E0I*@A `lbO#ҧ)YM9`bKV/jKǍHHHHH FD$@$@$@$@$=xXHHHHK @<qc-    Fw4^,M$@$@$@$@ǍHHHHH zx4 #@;7"    hyG$@$@$@$@$=xXHHHHK @<qc-    Fw4^,M$@$@$@$@ǍHHHHH zx4 #@;7"    hyG$@$@$@$@$=xXHHHHK @<qc-    Fw4^,M$@$@$@$@-z+j//    Jhds& olHHHH;;;98qBz6z;sj?S/}zjG Cکz55|س(tV&K Y`5o^$@$Ç̙38pUĎ:{,wލ_NZ[G>8n`oJZ;k?_{cUPdQ:uԜ9spo~DE L__Unu ^~O$@zX(RǏ >a„}f e".1`XC.`eBɆD~_N 8Y<x T@R[6SΘ1c@4"v:t??Ck5Q~G-dMp#3kh,QԔH I=obԨQhD)$@<.7Lο$D$PYIsٳgڴzZߣi`ӶVÉ97/ Y+ҠNN~K܏n_.zuIVl^JY=^͸ugӋ!ɔu+s穥fDG -**?[^#EnC50u!){e /%XK+{_,e|Y{ZOLHR"skɒ%цwݺueqf#D}U,uU1U`j/x*|۶m{r"Q4,N9] mmTO)$%@3e:2։4α Ae% e=O!ǰ6!ԤL7+d*EaC'5=El{sgA#h?o?JKe 3JK $vnOga*=S=KkM},z?jTa~!,u^ 0_KI͎3w̋{-AҒ񙙽fmIy T@d[… }ZF[ +v,8 }) zYvF>cض=F(@ v7~/&E~{>+P75Dك1!.Ȥn1ن:Eb1=%z;oڹw~m/}7h{g8FXAb酷ze6mi˗enEeqէޕJ rSx hԛVFU/."XRn7*e^rcKh8{@>=@u> ٨u`M vIeh#*h>3_'O b"DbB/). ޽Zç@> ,LI>:qR޶*,`gc=䯐`8.w0axYH U0[hOnxĥF]BۂX4yP=X o7aX¶|6J +*/vX}r! bҊ{߼(; DBKtO D/},F5:R]XAn/4SPڹyS7:nJ6m|JY$h}%GuI0<ڛC; [IƉsB~u?$ӯo4q>xG/Е=O{iCW *៼<|Idfo1UT= q[#tGz|n4-4./)},֥_0`yr|8RS(}jJ߾F߾rO3QT,m/IE A 7BågwܡLՏ9sL([n%L 5Bc\H-o<$YTJw7w`֫IyoMp;+k p埾".ArA&LD_!/ԇp ݒE~e{+ҿ!:iHu\뙉S,{e $@% {Du[Rz)a(vj3e?b\DžZBڀ*n[{ʆc- N׋aנ TgpvPȞXm 8eR e@ %ԇp VI"?2Žx~8A&HQՐO[.S,p'h5M衇R-[O48R1Ŷ൤:/葑u1C9YI#6jmnj'د}@U{Ep8W#QOq1 ;E( a?Ex~ on #܋XԾ< @h Z@!=E֭[ՙ/˫u NzGM`@^ٍ?FPB?m|'Ww''7)iXh6Jd ԯP_c(fInIފ[I 9|p*nPvZId>Vo8;|l1_ O|Y(-Op  ɽ\XxXH 4ƇZ+rȉdgxxUdC"ڋ{j񏑐1rΎ '!A?_-/%!@a"+Ӫ98ƩXhG<72]^j@Ԡ\AyctA"Y_Zh@a܋ā*@ggM7?~G#u ݜ9sdEu~! {%kt"x{}F>^ԞDd }|{h[O2Ұj (26U?e,D,Xn:# ?Ū< 0W{{yv6ry,rK*'.7ܐ#"Q `]jU?##zdظ&p:}* #/b.oxKϙ5ӶGn Ppt,ѱj^W9ԇ>? !MYNGM]܈`M f_i)ֳXTu;r3Bc)t o/ˤ?pOQ8˖PYJ>Om^fH;ܲT[>&;9'KXM1ieP @Dڸtd|ѢEެ+VXjUhu) t^>NI|ƽ~nn*q \@ +OXVOrgAz0pZi>ongʷ,bB8T!SF-f+TxQ< c(R=V~i8DYl{_} rR*>MR (&5!~lh;Ui7.]d)K.}uttkoz"0Jx>OG%h>l+ӵ} }I3#G9#g6mmX[k7g!J~94ly7zm7 Gj9"F~ki1};*^vg~sj# ׸kͷ͟gS:p,x~f_1ߐuO/NƵ=~)}C͑ gݪ8=cs31MPg/v-Mvu޶ao)YVI:M >@i/,Rm1Hj7]sGdg7)2}^'L2a#9rCnו+MA_͵kv,}CM%˅CNehhbf ۍ_ ޶\jWؗOSF6׼?o|~uE> _WxS}zwd*K#pk߾sZ4ieͲϮMJG׮\z<1VXMTrg(}گ߻?7n~mr,k3p|^"OJҺY_&Mo8(ݙ[Z)P p;Gjj@<տڐ[^2>uc6V|kVܸ-+2j"dc x]NjJ~7jv@D/KJtW6mml @ÄRSL1/QFš,>:OE׬ת=/!61EA#r ¥O޻npF4<"5V6yn}[ k=mn<5(2R*ncI:)ӵ|sM~b@+mˍ/] "vl8Ju''U{- N~O -eE8\w I:ח,6x>2ޢBO"So=2lH= to6'yF|} rqZ"q_rzѳD^II^ZM܀{>F~zP 6\V'Hyb}6֮[_y*v9B9B$P0 6 @5`Z[$/cGFdemR@荽 ?$wTڪŨY@ r/'(}i\ e Xxډa\q6nXojkԛ !I!>:j՗v:2^( '!!D,9YE X56VF=??T?˒ $s-{Sۊpj|*Oz(]ܱIE33H 26x+V)HR T@ۣz(ǜ*B, zeɀ~tGùϲ̦Gگ{JqgUݒZPŰ@sIW%}$ZKo{^tkr2$PL9.iHr`veY66=suhk̦Fk[ G%>E1iy\NGU}|r}݆T-^m.a5<ϲ0zSZ{HcHzC[L;GRBɥORuq'`6x.$I-vMqch5aj#o='Uc 0gtc]~o+]Xw\>W;ѧoj}ٹ!#ݺ^bM,!9AڏQS/޷巖y}狵?;N0soCۆ@8$RێezS(qdyÄ2 m_Мb!3le$T8 ~ n)s?=˭FR-1Q_ 7ì3ge_=ϊ}h9[?u߹݉n ICVn%\n*׼}'MN~r{X%-_mGҳ  4yQyp%6vev=ZHL+Dc w~>v' = %;BV⿪K=0ɑ $$)PŸ 'k@ pe7&'d]gY5i' 69sSX5z}S곸7dXNI eK *ˮnA6VRJc@] 54(VP_ޱE'}vN,nET뛿~ tTg_TS<3O(]AivGoh_?XU?Q8oJ;H?~r^:uL1G0dZWO5Gwʻ;x`7~ ?{̧je-௤aP@k*AcjkG>r_=?Bw7y+Z}謮)^dT.2$@$@$@E&۷p|r?^s7?3? ^c'S^? $*N<>1T@wz`˳{zF|\:ROtkRgᬛǞ3{pWcL6VwQ^0` *ގ{wxCΟ[pVPqE'64Aʸ ː &ln7C㟎@<$}EW &bJ<x<$ <i ƒ W~wE|xf^,ko-9ǎ;scu.q9)poWCPQrK[ g{-diZ}2FAe7P&,@$@$@$Zy KV^=û/C~ƚ\}QXjo^}S^p(@"AX3l1K}۷\*WB|ҲH}ܱ;3iWuCY`!cG%VZ<]eMR%]~}FocX@M)Jb iKz)Bp篞p, U&   y#\uwf+^캎up5<,ZB,Mq1a**l Pѽmq`) + |⁅ƍ@ݰ22H.'ѥXǞ5*÷9ē 繉ڏȱ2JxêDP kڊ+Ի01`   %9;&eY pYCb \K\8/Lxci\zr^Xo⛋+M ⒐Q$PJ-nX)# ڱ!&(HHH 7_Fo^ZTD.eI   y뫉H\Ѻ9꣯JD;i ZLXܕx3 ёnnai}eCK"--jH'lP? B3EnAXsHÛdPN,78de dM R+5?K#Q'}"5O^^VO:YQ[B~wp:e*[$AdPNJ4U'Ulx pFSz@I{3.`uDʿ+ C @ϻ^wz7**p] heP d}c3V!{?ܽ,I$@$@$`!P];Y Gvg)9pڼ׫}D<":B\~^Zn"cln].vZ"Q&k2z賋qiTz,O$@$@$5'(8[ 7놺_ 'uK`@>Q&r |?̟կ*BÑMEvYSWû.{=!6MG%T'Ȯc# \]v,]GHBg1=F|K/xKR و}C U7JmG,;"iԥ:RBAˮ xI -D?" @=ܑG%uoJ{Z>/   V$!tgOskXY?i@Q/7UYJ]zr+k971ok LPo`/AKꊻV``5ZCqND ڏőd ,s}./u : K ଼xE訍~ׇsy=o 8 1xϵ MC\rK{ {/>e$2>1U"}OM|}eCO^ؒ,K\8Xr6|e>ҢRIAƟ|p)HHH MZXuA8Do n}O"VXuIq]%ԂX,(Ag{_J _YInLX>HBhI>X2Z E[{ΰ/ y-BuQ)f)&R @nby~#igq?wy#r[@ӌyrHRXV[ R{1 rPǝJc   Hnn: /-|)%yvHH2"3$#m(H@v5 ti$@$@$yRЃCJavHHNwGkY{/4ROreǐ @/i$PPo4 ("  p#nXAV.R24lHHLw GWeLczTR T=HI . 1#3a؄TDQ T=O$@$@$@$6 4!   8z7vHHHH 'sfHHHH*Nw '   ȉ=@    ]q`IHHHr"@;'lHHHHyW}     4!   8z7vHHHH 'sfHHHH*Nw '   ȉ=@    ]q`IHHHr"@;'lHHHHyW}     4!   8z7vHHHH 'sfHHHH*N 5ϻԩSoŁ$@$@$@$@$K+9sε+9'O9rdr@$PL׮]Ôn8p`1V$@$@$P@x{6mݻNX8?rȻ{ 3z;3>}QȦگRskC.WуýqUV6 ,?1cB?*A$@$@&P,\7;vb[T2Ο8ݵO'zKk7*}vcm\w~7VWѓGoou⇍ ]Co3j >3NqpЏ4A/gx,hRxSMKNT57mڤI+} #b䮻RwJ%@7|<^P @L[_ 6x(&E ,tLiU&L. ?astR-30HY6DXSнe7o8H-t]6^*5_,$hM@kKKLW=b|ĩ9k,ҿ%'*[Vx@wFi$@$@$FgrsWP:ҽnݺ<#.\(!aH*7{փ-b?ڱ^&aK֏l%Rkg.b_ԣ>6\jwLY>j@COMix_랶?0pߏ/RH|rT0Bq5u_ppQBPD,ﶶP*O%'2}rs~T, %%P 4@|PZGۨ.kfq҃P#8zd|DYWw3X.ʲ~*R4}@o j|Ƣyqawnpg2D6i|=oׯ 'x3ЦdeP%'aw"}o]t;Hi$@$@$zVy{B=XY߼wEc1ۈ['h1ȉ9m0?h/C~}|b]=Kd[hlΫ5arv-ՐKXlcZ%  /e, ۢɭޚT+='ɐi?ⳝm?^{,l̟!i[G>==B>xčW~Q}&Ęm E.{ICCP[]H«HɥO"H]HHH 5QJ[nI7-#..xzy*dݐ=$iKO(9UH߽Eڮ.,x$-AFu!""'>銤#u!  0e"|{6AMݛxn )ÔB#bi`١]#"QH$7Dr`@SӘJإp̙IKN M,UH *"e$LF$@$@Y2ah7܈vN(~"r:ǨQPyc\gϞbZrbaUjaa(sIJ#  \0$Ilw7B5);E5o8Ch"wu-8hTHH =:\kPȦFkYv_F&z"{BaО޾ؼ7D8J+J$-9vWͲdt)U̹n')HHr!@ϻz=1cƯˎUy/!L^h$Az$a)II @?R#Fg}豆>~:!6^ P{6lyxՇ δѷ9R2W5(-z[\C=z{noW߯6uݢ=x'cu#  "@F-pBU_V9SQ#C]o89ꂆЫ} >D]XFwkoYF]DG ZFZүiA=1U")A},Z\Rf/ZɥO:,B$@$@G r77n|j*؆0wܑ#GߴiR_^|yÆ ߵ'M9ezIG>=87).ؚ߻~:EGHa;L=]j9G .9FaD6z* ^ʅڥ5ĐnjLYs\d8r4@t[ [{wc5>A#jo{QӐ_m|93y1I /|;w֏sZ`vG%$@$@-M -}#uۛF>G=Lbo#|Q-a!C QTz5*;Fx˾ ZOO}RvOOXj;d"Xo-ں4/elTza_jܿnwY`_nݚ5B0SݘVCj$@$@$Pp׼ ޟN8g/dq;Eҩ1W҅-eȨTsx-AOPH*͐[ĉ(s+Wˌ 8|ݻwOZ^z޽cڵ˖-5&z۷o6u1j0%u}8 Jz۷uOIHjyWmk+VP3g\xرcՓ/?&LÈ=õU_P={L6 3y#F~8fyާN5jm͚5K.mQsE}g/X`zaĉ}ĠرEOIHyWk^+ vj zmkkSšy/_|ʕ,WI2VNW3:`lH`V[Jl1c:*[B9y$l\z.ǖ vhX~_/!vHKwy3 @s 'Ҫ+0UVGi;xlHYk 8/сu+EA9Sgq)#D^eHHW \z^0x={~A*7F/%+GS ?m۶~271zmwocKr&oIh9j6[` >0-_ Ӳ/ShB8`;)HH \4o*x- Aࢯ#&.=周(;65r\F|1BYkkŦM1\|Y|xvo^hoRUa]t=$@$@g+!o ~6I祰}vRdbXnr4/ReY #{N=)>=A4J: @rm L`,KO>1cƈKE;# 0DK^n(YﲶTpa ;ߟL ! h:zMP@L}Q#8Gz{+vEŬ9-NH׭B`k)3 ErHHy7 R;pX?̙3Un2U(q?_p[l`u<(Ty0`L{{y2~\_ʈ7V5x=|vnmu+LX9޻wvJ7ߌVGqhZRV$k߷oa9n}0CH1x] 1@ vRсBHHr#@;7iή~1*TEyz#VU܋P!( q{WvI;>BNO[[#A{* Q݆*ڳ#{1 ŷ& zQY ! `ImI{`8.]7wyҥtttkX={h%?19ZyUzhđ_:xr(;ʴWcǎy-7:2AG;%CfB߫oJrE},RQBHH%5tyVHpC Y@*U)jEnlШ T= 9;L$@$@$@$6i v6J$@$@$@$P9+70 @Sn v6J$@$@$@$P9+70 @Sn v6J$@$@$@$P9+70 @Sn v6J$@$@$@$P9+70 @Sn v6J$@$@$@$P9+70 @Sn v6J$@$@$@$P9+70 @Sn v6J$@$@$@$P9+70 @Sn v6J$@$@$@$P9+70 @Sn v6J$@$@$@$P9+70 @Sn v6J$@$@$@$P9+70 @Sn v6J$@$@$@$P9+70 @Sn v6J$@$@$@$P9+70 @Sn v6J$@$@$@$P9+70 @Sn v6J$@$@$@$P9+70 @Sn v6J$@$@tΟῼHJGtbHHH5 \>WP}ڐ jM$Ok޴   ( Oy0jQ tN# Mh!$@$@"p)>C$*FHH9~[oei矏!ʀau톜nͫ@J&!+@ pͻΓ @3mZ=bSFH-Vu_i2~xY$tRԕ6ƍns;W^yeJ%2KhGɫWfbGdr"\!Rt Üڕd1{̑Hm٣tm-gri@$׼=#l߾]Ş ,_\^W+W7P>^؅j*9s̞=ۛB%ߟ|pTkРAXB%xe6kGUM<{ͺ^՜" / HS @Z:+7%UyCaK2X_Յn%+9!K"bZX$__Px`X5o#LVaie\v'K15)R&&IK)pW\+'N;(0±V2"_QN?r5FuX\ׯ*Q8:t(yŨZ[M>/!^F 6#MRֲ,[0%3ɴcm$=y#H@q9Pb-+s;N*cyA՗; ZhOU9^ htVFH<>oW_65tǛHH$ sHm/ p<{՘WBs.o*[} "*]Qf[/]6hYwܩz%[oU)!WYy%'J0k {͚5.Y nYf=4O"??TY(2__Wڿwy׾&>(b!_˿n ?WB+QO[Tq%$+lL(c UwY?w{:tA +ֳ%ѼrC}pI!՟{9DMg_ ~|7c bGGGN ǫI5k>|!+RhzxK"d%VI> @e}ؚS;('|?7a=d_xQO8jvj|( }.'{ʞq[JEN:P>.I}T==;N$@$z)@ FTfQ    TlHHHH2yWfQ    TlHH,1ZbEpBQCW6KK$`M   |9A^A)J5$@ 0Idd@$@$@Bܹs'N0 Sȑ#BI"* F( =1;H$@$@$@$P6)0P     ]!fIHHH Aw!J =1;H$@$@$@$P 1 THHHHy~A    B]a$@$@$@$@'@ϻC =B     (=1%4 YIENDB`n;Fa:V3PNG  IHDRVsRGB pHYs+IDATx^kVםy(L@|.$03E\rXM۶bTGGW+2 t%\R2v&w@(S:0s<(C*ЉcK4!/sϳ{?}dYYk?k3888    @@@@@ -02@@@h1  qxG  4IhIM[@@#@G  4IhIM[@@#@G  4IhIM[@@#@G  4IhIM[@@#@G  4IhIM[@@#@Gtpɓ'@@: ֩=Ξ=k=qĄ CK4ȑ#_Uj VhU@W{G000`4iҽ}͝;טݻwΜ9QMNc;uw=uԾ7! P+ZugNѽ-[[S'OΩgK˗/?>|͛=gj +@xPp#Gk uظqU.F ;wcK3"1n>S7Sm>|xuO@ Z(޼b%Y`Ĉ3f̨X2 4fϞ=L7ٳǏ?vX[т֠O8QݾaÆ+Wfe]˖-۴i[ =ՙ9sfjSvU\) @D <[`r's1zzkVT]O6p}i)KG*T;vE?0+aTGM6T;H:diőI K/Tk! B*}47I݊irI6}t{M }Yw@ -TTmM6mfUV鎩f{>n2e|/_nUZbmz>ogK[ҌZH(o!KoSBd4SHili ZH`0 Wnj`ܕ^dfWfh5H___Q<,Atg֭QM.^hͬYV[o}ꩧN`c<'𐪱fʟtK| #GA(ƤW{e܉% 4u&M0:eud#tAN9ezH97g̙Q43NӤ>8CI Eh!i@j  ZH ^'*ʴ"%vo1ӈ@ڇ&?,\=MnݺǏGl&@$@X`ȑiߐ500`+1v،+Tt] >^Q_-xZgsj?-H@ -0XxtժUemLz]p; GG ϊpn73@+@WfGW(v 2_PVUEmܸѾ`z_y=sL2DhB֦~g8ӕ6o1^.̐)WƤ bz^G[nՖG-J׋-r7Nx>cLCj0 @.=z%u.iettS/WS>V4{NF:pÆ z¸q~xԩ۷Fsٲe/g+U]+P!1nTwɒ%y+iՌVژ_mS5y׭<[la2[+3wk~hL?3 z3OSGu|rj9Ezk[&u @f (Z.=I"ΙV q%>fU>ﮌ[%B]RYdC7U4mGr=fGV Gٳ'N0aDD`DSJNY|[?ٚl![OrCӧB 'Wmʮ4-;B  @}T%Вm=zȑ#\|Yq=&m߾}s5ݻwΜ9qΝ5f̘Çͪ }k׮=x`___2~(&Nm$;1mڴYfYT_8{uÆ +WѣGm#G&?~~q۶mr˒%K+YŮɲh[r7 $hڲeyY3gL:UϟO9Q%dUC.]d/b1~5$t.h`'>)UСC/ T-[9G:\8Jw^LW^:1A<췷!γ'd +!_!i3tEGYUS7Mb"J[?QHc"T&uFLatre d@΀ر# f x=tqiyuą-gzf"E$%e0Om̜}Y'OH===X](L>lrB&dzkҥ&[}fm29~}gL`tLdU[ұc>7*g7G#Ґdlo%t)1~*]y`hLwz ̐n^ P[QX'-َ%uNS%4Ye['73ΔA03Cwr'R4 F sZ6y>c~~3/(4CԽ%χI`*x AVhu=D$yۺwy{ÞPz  Oz"qШQt#_4ƍW֭[Dϖwm7i(fx][W+\k L4̷AAU Kѕ Mz=gMi`ۧR*NO#CǿuB -8 (${;Kw׬٥EV&}Y?'.`aSw ZI! {ÞV]y/sd?(HPPd;w̰_UVD_ŵ>v2,v٪rF~J V9qX6MDL^L2%!4h>D{I&ؒoURi|ʂ]v顥n>ZƠzIJ) m{U[tK?Ca0aBy|2gO) Nc_˖ɬfݔ }9=Mn6Cw)d2]osR5gz{{GI4@76m77O\黲'~{藡(M7/_n7I\1csPlh"dg}[!EQ|8CnY`ƚkk[7fů[H_sp'& _yqT q7.4=krtZ}IAU {q%)|߇ar~3㧀ʯf"'=e0)$B_QF]QwygF3~E9DbD9Ħс:^?\(s)Rr Zȕ(B@~/۵[RD)0~EO䉟-#Bƍ!b'sO.+!tŊ8Eq捙>zÅU%@Ш+Pa:&'A]M1O)_SNYח.洎T۷HH};> GC=?FJ [!W+OO, Uf6{#͹bVzۚ GO2IO\EgU ~l}gh)kHVeH>X\&L$5Y0 |҄Zf;Ӳ 㧋hf"Q ط͞=;8[:g^ܭc4c+KXw‰;UͻJz-=.T?>ׯR7'idK"Ԧ,20y͂g"E7x#z]WƏoˏ㧫Vu|TTǚ_JVsټݓ.˘ƀ},}Z*N[Ν}N9 m54ӧFֹ|F&MG_zI^'hhT6ݛޱ}tMk־kSj  (N0>rKӠ^V9ש7iKStFsH\̍.W }ǍYxnl'ngr۾;#v]qWF,rQ޼1]i-zS={/ M7xn AivK, >5j\ h!v&^a$2M>Ogoybh75kj~D-cʔ8*Kشwsֆ.vݭ/gfuovh%c X?MsZVڵް7Ҽli$ڡ׵ G#;RJY:3B: (@h}/뉁ljbkK6pݙ10֐8eG0~RoT8A… CsNJeg+nAxy*1~2ou2`pC6f"Ev'#u}㧀EԻKuJi}/^53v1cĪgO,&B ;*!)g|رxi-tzΠgz`>Z7THCP.A <kEݫVr7o-F cP:Lu3.(B :* }cѣGSG 0$`O(b-`BD bg}4uڵkB#H-SI'FSAgb<3;ѥmAz}O('O6[ivŒwAW*P~שd^KXWHUhO=hH+R]|w͋d4멧2n۶[etKֵͩJ'Ww]z]O=zTя,'GYfذ'OڽlΓ&Mbۍf™;;ێ'"T͒յBU`qsõ'ob'Z(ƙR@@3g@@bq@@'@P>  #@P3   P=5F@@b)@@ -TϨ1  -L)  TOhz}F@@(FhgJA@@zD 3j  @1D 8S    Z^Qc@@ Z(ƙR@@B#  PB1Δ  @g@@bq@@'@P>  #@P3   P=5F@@b)@\.\pI?/388x@ٳg{{{MO81a„J6J#@xPΡj  ؿ?}4Z @D !  5`&RM:f !%m=zȑ#xeM8}͝;w9sĭ<;wsԘ1c7+#@-j٭4 e͛ٳ'y ޽S ,_|͞<ϟk׮UUp#GL:5Ѵite˖mڴ)A}8'L)-B#pQ]oP+JP!A&=ӆ%hꮻW Ji "@x. LdlRɆ9?ooƟ?>5zOOՖ-[On~wf[otRS%LL9x8l6]IC@2P$sw/^aoȻ[O h[ U)qs8*@Pמ]P݂]f Υ>A/FS5[-=+_7InV%Jٺu +ٓUCbG?~T5k_,-S @TZ@34"~giQ{7?kF 4LV^%lwء5{tRVMܒ͓$yk-hEGƩ]lz͂?&;wFɍ4 @*eTHk0Eyo> 5 ]yDZµ[6m5 =xɓ/^ؼysו4(Lh0j B G} m Eb*~ÇF 'TE]_eSfժU&R_ x*B @FOd"ڌE-3a@:훔IM$E\s~6iQ.w )@OPH&`VFK (\whqffC"NO,еɔsUIY_+)ws]:!Z΢ P3\e I.n|䩮}^Ue_~ebrf^o{7>ӦM+)tFբ27YEjH7Sv)غm?Rr8  = u͚53LMܹsFM9_QDכY _ {ͱ ̙8<6k&g.&O(@P^ U ZjQo*LtP9=#!1OŴ \Mzn]#޶~;S~Zw@=Rd9!gΜٰaCۮW5]X@@9ÚN-u/tĽ 6y,Wh!i`tNWAHh*BU@;KHC"ᴍF)#`-$@@`"&Y^х{ YU8q kA{ʪu?`-fWU!h5J["V-KMPyV:uOf篒 B@ӆHC0BB1am @@h@тZ\Nu;qgT)ȋ-cm+_#o<>J^cbc3]?(=J9o5 xf+2#ϨnЕ߃4@: -xnuX^-0C {;E*^*F 'vqpqD>ím'Ɉ9D#c JDr@J%Hoq3M|ѢE~0O]/RشiS5zwj{}lܸQ[D_W.prŊ&r(:̘17歷2zsE'FO{N}m b!}yч+)@@@B^fү=pU&Nf͚(5q ܫ;fL2Y`A@>vɶonh#N>{ Gѩϔx#G4g~Nd#>[+mV(G aIד  4J hr٬AYC$eE߬wio_RX{UmG"؛Wٳg4Yɓ+XJ<&! uL>7oΝ;yxp" $7Z4iR@ƌEݔl]vی.fΜ!e괺liGFIuim{l4$s]жw"-gvԨQ˗/W Fؐ!C@(o+Y5㡇溢嚬rX +|ݳgնѸ+Sؠ   E|5L5ia@I,h1@pήMbUh*蟊63j+L9-޾(fغuk s@@тtyi}jT&#D+ <\ti=3&C@@BtjE|~$ˬIƍg8"3q+_*D;vSh#Da0횪u|&@4=ZN2Vľx+t;6w)}p9X!Ъ'panح#D3Hi\!IJzgXyzQD@@HG M}m) ^/N W0Ū RS2gazۦLClm=\=CWS~ꩀe0/>@@ @-*-?62~\Rq:pmwuxST7E}i@QkOU< r^x(QJQԃ@J 9*%! 4.\C@@+УPV!;w_vD }vPu6aeG}擸Stرc,}gk9Ddɏu1bرcV8zqm;,ztYJ2!Ӷ`sOk@j&@q̸ #ʽG@h34@@D H  @4@@D H  @4@@D H  @Aq]N@@(P$C@@qD r  @DP$C@@qD r  @DP$C@@qD r  @DP$C@@qD r  @DP$C@@qD r  @DP$C@@qD r  @DP$C@@qD r  @DP$C@@qD r  @DP$C@@q=k4 .9Vu ׅ wBۙEauS[BQ  @"-$b㠌lCFYFfnIWZVyB,$0V%n[v\~ Bd \㕝3{Q30}"PݚGl @*@U~ GD? >mPfXପ[ˆ(@ B=E. =9~ wrCI3LV,\ͲxBB;!  Xh!1"  Pswp7x/F.q萘 m(Mځ'.1)6zV5i+NW2(Vad$m\|7 #x5hx 5XaS2+^?vqykN':1}Ǘ&|E%@ۍkk<^YwCPOyvQ3ݒE]8)@m9ԝ YJT{[:w 9+>?κ"V*Q >3%A&Llre703Z42jєGdīU qge,s)@ D`V?O?LῩ3x|NH)K?xj|?_9szʡ__)[+'NV)׏]ub*w^k3`߸{9EUJSgH.\ϐ 0͐4tRS[*7MW ڛ_3[p˿G.|co~C4i΃{cM8w0+Xk JA-DQjV֎*Rmפ]3pC[;W#nj̯tbrw_J`\ynP8^>q_>qv nmכk/<ly}Z{&^0W[ 9Zӓή(rBH%@K(`W }Zs?jZmb=wa~Y1+] u.8y] ^}HZ5CYi7C_KULn,T; vCRhߠ˖  -FK])V*P>}j.I۹lv"Z7G;m{jP  Vq\t"Fjk,e^2دPB_;ivkmFͿiNQ""@ +vS`H;ɻ5ÿb;uڌ+>i]KRHaڼgJoѮh;DS- ˍ'_xu.6ua] ק*evֆKn? C::k:YBsՖ@5׏}n[R^3W.u'h-t&]7fUn,U:ߐ:/|ۇWlv`SX{_>nxpw CɴAðkd١ўҹg֌ ,O|TVgz)+ [2ڥ|tڞܡG 6il~U0+5mGao&ӆHWgz oMXa~s6rwQ׹}мV\a]žB7ܡ$90zmt-Thm!SD#YSieϬ<ح+@D 'jWn Wc3wӺXvS+Mo8ꮎ5fhȾ5a[U8U:{L.'0\ou7{[~g8w(x5\'Nʭk 3iSK BCh!U,@+`л#<*_XwS?/m׭\]E}-[*\yxl,b3l;dݵJPgo4.l?RB3̯k4>_\Eg}?UopBy2ד4K@` >d.18k4vȼ\2DH,388`D*fBQ)Ûp&Y|[_j-|y᱗F.7 qRcFAiD0-jw-J0Pml處C@h!D@A@+L5G@@ _|}@@ -T9   -K  TWh}G@@W=%F QP4@"@P  -L)@@-T'  E --Ny  TEh*=E=@@(ZhhqC@@*D U)  @D ES  U ZJOQO@@ Z(Z@@BUzz"  PB┇  @US@@<@@"@P  -@P8!  PD@@h)@@-T'  E --Ny  TEh*=E=K-p…'O%C@b < pٳg{{{ͯN81a&9r$8  P! uVGU4iҽ}͝;טݻwΜ9]1{:ujw:uj___ijGE@@ \h!܈we˖uu|x֕"?@: -Թw3iۚ5kSXbʔ)jC#ΝF1cƌLʪh&6L={05߄O0g?~رcnE Z>qD 6\#M3͛ ݗ-[i&Ez3s̶mTڵͧ ] Z {e wL===^]V^vR"W]OVzk[;qɔY|VEhmhTb-=lsH3h(E1%O@-0f[픯mHtoҏիK,鄨kW_}U(ky65 ,0p? hkr*҂'lj8G]z[H?#vPdTCn 6@ /-:䃀ЕGܡC9sFWnn.Y1wCݏYē9D%*smcsQ׭YnΟ?_dUm +ҥK!#ON5dM}i PDOWhCWl6 QwNHEh4X ᛲҮ$O2A@@D /Q6&ҫl%l~~zB컍;=TR%@@'msg?%woO=oMӄ҅LXxΤ&+VzY K!+@F -4n7(Ӵ4O>D3gFy4)UСC/ T-[9G:\8Jw^LW^:1A<췷!γ'd +!_!i3tEGYUS7Mb"J[?QHc"T&uFLatre d@΀ر# f x=tqiyuą-gzf"E$%e0Om̜}Y'OH===X](L>lrB&dzkҥ&[}fm29~}gL`tLdU[ұc>7*g7G#Ґdlo%t)1~*]y`hLwz ̐n^ P[QX'-َ%uNS%4Ye['73ΔA03Cwr'R4 F sZ6y>c~~3/(4CԽ%χI`*x AVhu=D$yۺwy{ÞPz  Oz"qШQt#_4ƍW֭[Dϖwm7i(fx][W+\k L4̷AAU Kѕ Mz=gMi`ۧR*NO#CǿuB -8 (${;Kw׬٥EV&}Y?'.`aSw ZI! {ÞV]y/sd?(HPPd;w̰_UVD_ŵ>v2,v٪rF~J V9qX6MDL^L2%!4h>D{I&ؒoURi|ʂ]v顥n>ZƠzIJ) m{U[tK?Ca0aBy|2gO) Nc_˖ɬfݔ }9=Mn6Cw)d2]osR5gz{{GI4@76m77O\黲'~{藡(M7/_n7I\1csPlh"dg}[!EQ|8CnY`ƚkk[7fů[H_sp'& _yqT q7.4=krtZ}IAU {q%)|߇ar~3㧀ʯf"'=e0)$B_QF]QwygF3~E9DbD9Ħс:^?\(s)Rr Zȕ(B@~/۵[RD)0~EO䉟-#Bƍ!b'sO.+!tŊ8Eq捙>zÅU%@Ш+Pa:&'A]M1O)_SNYח.洎T۷HH};> GC=?FJ [!W+OO, Uf6{#͹bVzۚ GO2IO\EgU ~l}gh)kHVeH>X\&L$5Y0 |҄Zf;Ӳ 㧋hf"Q ط͞=;8[:g^ܭc4c+KXw‰;UͻJz-=.T?>ׯR7'idK"Ԧ,20y͂g"E7x#z]WƏoˏ㧫Vu|TTǚ_JVsټݓ.˘ƀ},}Z*N[Ν}N9 m54ӧFֹ|F&MG_zI^'hhT6ݛޱ}tMk־kSj  (N0>rKӠ^V9ש7iKStFsH\̍.W }ǍYxnl'ngr۾;#v]qWF,rQ޼1]i-zS={/ M7xn AivK, >5j\ h!v&^a$2M>Ogoybh75kj~D-cʔ8*Kشwsֆ.vݭ/gfuovh%c X?MsZVڵް7Ҽli$ڡ׵ G#;RJY:3B: (@h}/뉁ljbkK6pݙ10֐8eG0~RoT8A… CsNJeg+nAxy*1~2ou2`pC6f"Ev'#u}㧀EԻKuJi}/^53v1cĪgO,&B ;*!)g|رxi-tzΠgz`>Z7THCP.A <kEݫVr7o-F cP:Lu3.(B :* }cѣGSG 0$`O(b-`BD bg}4uڵkB#H-SI'FSAgb<3;ѥmAz}O('O6[ivŒwAW*P~שd^KXWHUhO=hH+R]|w͋d4멧2n۶[etKֵͩJ'Ww]z]O=zTя,'GYfذ'OڽlΓ&Mbۍf™;;ێ'"T͒յBU`qsõ'ob'Z(ƙR@@3g@@bq@@'@P>  #@P3   P=5F@@b)@@ -TϨ1  -L)  TOhz}F@@(FhgJA@@zD 3j  @1D 8S    Z^Qc@@ Z(ƙR@@B#  PB1Δ  @g@@bq@@'@P>  #@P3   P=5F@@b).\8y_v<@h@`ÚLsXٳ&'NL0!j FY@"@ДNN]=zmҤI{oï7w\cw9s׮G3ީS߿{Sգi@-4S5SηlٲnݺNO<9UU>h{/_|͛7{U@D MXmVp#GD qUV0]vܩbK.3fLSTtɞ(jK"* PrwPfTa+V2eȹs>#F̘1^ l@6{aj 4`fϞ=~cu݊}ĉ#6lXreK5k޼y}ٲe6mrS3g-Ik׮T`@ -4c6׮:8o1zzkV{n<܇]t]O@. j+P]s˼Fk-yDtK>nCСC&Vz?Kq  -doZ,> ]RP0wKsܭ&dӧO7ה0ۗu(BE;JdkMiӦiFZuYojƹ&Sg&[%٦Sv!xΣuzhl-Z˃<@X coS"ѽI?V.Y_}UBy,XT7doNH 'h=ztn!xAQYR J/؈B@V@Wqi x]=鏺d u?f6O̵A?+[OD_zfW?g?c;|U+K.yD(<5:0a]RRhhɰtBh@k>X]cWXJCK+m[ժ皻m`86رcfMwZy]h$T⣅q*ތ&:=E-dhNV @3披&Ơ= :}[&]KIVmveV%dzHW|nݪŋf@j̚5mo֧z_yZuC=\ɓ'0@7Gm;"djRcs&tz$oJ}:o=4MZK|l|2ic9zLVXem}3,@%@Ш.7|s"<OM꣋C; Q(c=f*jv @J{L+Rb&#0( d=}GmȕS ֭;~xf @ND Fi_ Ycǎ͸BNׅZؚJ޲*gu6HrD@!{ŋLWZ:yZ[n۶ͤUrt.Zyc:c@D qH.`q4 ~«jo1;A s;Hu`5P[ƍ l[U 3$C@F -4 jnm;ګ駟n{}3]iS- zyhL Vu߿uVmyݢtyh"w*g34 sZ"УWR1VV@MgΜ1տxy5SnMgt|l$7lؠ*7N?ᇧNھ}n<-[ /xR+b ^o6Oez{{,Yž[hEyu65Zcwʓ߿߭O[[oU&Z)2Ȏp9Rq:C:}Q˗/S4eR2Ah>Xݓ$@/i.]cvQʸU!D+UѻLECUC7qԙ4L@ L6HEƺ_ڮit +W}A۴iӢDL.+JojHv¿U*XFO# XOi:.0xhLg.Mߛgw6"  @T>-i4}.kt[K[ ]lVe90qn;wm޽s̉[%-x8w1c >ř?̨zkҥJlrp8Bm d,H@+;0/^xÆ 7|3qw}6<5..PѶRp Uh=K%;fMA֝K}_j?jt[{V/!nL7#ݬGyK~uVS_0W'tUŎ>~>8k,/X|[$og+( Q#fhDҢLOK:9̙3n 7h^ZK$=رC9k Jyҥ<ڛࣹ%yI\!ց&p2CWlΑXeS YڞS'WjMC51TW@W.u\тՓwږ`:%Kve&b@e0_IPh^j+9B2Z6CM@JD(@NEDj5&?Z.t`=itKUk>z`\\omN fof1OPG%0,I`ٳ>m^dhOI0oLyύ@쉔抂c貀.Fk׮m[ÇϜ9F Z69[DhnĉM/(P/ Zp74>͜R8S2AK,Ip`!W(?AwD2:QFGޘF3vOvy?w-AwsQA@oIlto#N $LS/:{ ͼ&гv2D,Qc^Т/ j0Ax{"Q &3'$>[CG3~L\&` -TzړO>)G죿r9 rT̪ULw vU@ -tD@wUV[*f~À>t7)I+Ry Q}FQLH5 ZA'ib]vi.0w׼lK/yG{c"w}Q)a>WN[5f>O?3Q9D~or-ƪq=x`?:.^ۜG>ڢ@|Lm\DR"Ps2, L=ZePѮ/2NEvYkI)(<}P.9VbS=$*duZCE%@f"E" %ГS3]蹁S]s[V V˚ͼ&qno'}MVR茪Eeo6mdzԐ7nXS;tukZTp /z0 @5k3fhs}tADas76jӕ@cϙ3'q>ymL\!LTQhF@*@P՞4UHMyڍ  @B  @S@@00!@Xkg͚59)˗j%Α$4ChL+@!vc[ӻEwڎ[\{"u@'W2 x79L0+ɶ v^J)  Z("@@3*mT@@ @@@*)@Pn   @P2E   PIJvF@@)@@J -Tۨ4  -L  TRhF@@(@hd@@@D 6*  @D  S   ZdQi@@  Z("@@B%J#  PB  @%*mT@@ @@@*)@Pn   @P2E   PIJvF@@)@@J -Tۨ4  -L  TRhF@@(@hd@@@?'wxzIENDB``!ﲊgj,,쟾\Z-7,`HxOɞuayjJ˲0H"Ò[C!H F"ԡu`Ju!B9PZC@, aAHY/,?JeϾll/Gѿw埏F?g#)?w~1WjݔF7?ohO#oE>{Yg~^^Y?/-S>?3?^>KG. +@} +t뽑OyS 7ؤ2џ=F}W^'c1w @F::1zC^xxx/y5 v};:>:ȶYdg87>_Nẳtzs +^&ly|ڿ7^}]O OKڍEEWw]۫Ȼ.cWWW'SM/Ǯ&sy~AeEh+v}[x|ڿ鼽VHcMW^qg. Gmmm/u_Tbơ]⊥SBviuEMMXM虯5<;ǧi8{+qVX_Zh١wx2R\Л:k<'Dұxu-:d<(Rh/]኿J<^^Uּ\mMkmeڢXkоR5ӫ˒>9֥c\e&>x8}Urq~5_o< q_LܵqWI=Cq=WtzuzH,-ݭ7^X؈~^rx_WGϽc\煩(u{ 8k` + Z#Zc.+sm+Ϲ(WNh)x&=x;}}!c \Yw]ߥw_{zH}@wW ϽRs%J>V]CKkr(gS4fT&|isN>qWӚA[[q('5M{sn(VGzsWe꼱UrQEQѩyk;,dgeyK|R͛ou7H9ϛ[ r)6um9 }"V#thg~D#*r-_L}e>޷^uAS/f'BnvzԓgCs{ (.uuw emoŤj]s/&]k[ћj/W9 9Ɍ5ŗZ6gn2c%f wj+vkv9_rbio_ϯy_Lno_wo]"}shh/ cy]kI Y+Md-d{n+p ++0$[ +0( +p @LOFw7GϞ?> +ǣ/iK^LGocÃõN{F>Oֻ/v[nWWL]m~+F"w]Z+ryn|v=va^I^7kʊhЩ^1Bcu\O2jW"Sޝk.3uTс;G]^]κ^ij'yן^Nhi >i&-]0kQyzL19p] [_nb聾|rw7D~G\/1[]ρ{2Ɣ|(CSvXU<8;/*r nmpq3'`L^"]ֽg9|:SIL 65Ƽ £1ǚa$ΓXI|UqWˡcMNv))rug뵬{N&K;ؿĴcuq7F2܋-]4q[[ ܫ}K57bݠhH=ľhE:O4ϻE[Iac\CAx%vD]u Z?M[K<.ױ+Nc)/m7Ϸ'$Z@ߐI\ׯ}.6+tZGG:=. {Ҿ^^W28ol%{sk-Xb>M+g/64wZjfc{AK^Ļߍ~HJn//5hߘZGjh#~yq4=unV.ѫ4w{CkRo>@t\㏉;ݔS1ZsXZsO9h!tz:V5b[__yiJssGE7]Gs)bt]1rS9mϺ{56N]O]GzB2uLw؃iۗnrK|.'Ǖ>wGO[&ޔ=:mN2}Z!:tLdu:ס,ZG*\ސT9dܣ>]ޤNvUc5Dۈ8E<-E~ yX߷*O|zSuZG\{Q{Mv{9ګ?O[]gSh+pMұYOu}gAb{ Q#\9vޥ9}ѬT߇-C|DzGr<]we^#}|{^zuSw"{Sjؚ÷TiƔ{w-iɮB`6L7>d 21jNrC1[ǻ/vyW-^Y){LnE3Ӳ.αx)=clNE_4xW/>u+0+0(# +0(m +0([xxW`P^WxW^XG1g^ǟ^LG/wG?X9ۣ{[_nEz98="u'f磍6[w<{փ|u}̯{V\eϯC;#@^;xXYU~SIQuy\^'\EFt9K)ZI&GsKcѰ\5uߝKv}6s=j[s/ʟ':Պ8;η;K+5I-W{V܅Ѣv,g7յj{mɼKw~m=i|[}m1W6^rgA4,xhP6^LL+Lc9"ڋƵڻ{msjm_/w?wzhZ;bH,Q Ys?GsʛϗxC܉ o]0ǴV,`<CGu-W][}ѽ :Ec}땇{$FԞؒCn>huK4:saovޜT1E11^`:/F8bw=<&Ezqnй0j3ܫrT/R՘M]O6ww=Fw+/*4\4u%M1yh+U ͽj0<Ͻz#r4Eu4w|4sZ_z7| 2kQ?:~+IX9g+ubu~/zt4$w]]'1:@xy{4swiRx縏&}v 2{+0.}!KViKrgsmu[F{s݉+lM.$GHTQرZurr%xCt]}Ͽk_{ JnuSd[y&񫓣{1z.yEۚ)]y^Evkj9 <N^"ڬkܴm٣`(Fbr˞ 1%S'p&low䀄eIYbw06Чf6SVIWr>_SiZs ^^;Ap|vRxnW^Ay>xxW`P^WxW^Ay4_~^q|F}4O1ק'@Luw4W IIkFkNgϟ{q>k/tyu @^[x`=xpwFywzvC&'{/6Gv8kU?-m/K};E+zo֛ OS㦽gw~,"yÃ?GKG}Sow2u Ogt6z1F9g:yWa;4or|GQgO*WWWowbG'm=S&R]6lMV<78]n7{ݺ:f5XSS]H.e-xWÿ{ʾ񉓥c 3SN<61φ"݋KC巾܊]ZSj.-ܧ}Kyw.q.q֕k}h_j>$dn|_s_*SFSヒzW6Pii|^ܢ7@io9MΓZ$sV":}7qb>ti#mO>,]^sىG-qJ|rJCz Y>wkٹV2.4zqD9K~tI/sr_uEtM?]vMV=s~x+R]lqJO}ekWi>mwEh߽W<8?|)3^*_~'귇v5{, юE󸺼juKBszS݋8>S9.?iEiH7r\Rɲu}~FoH1`ox'd>ay_g$qD :rx\EJ]&cqv^wå{^|1{yv\^?Jz;cj%{ /^٢]k鶏5iMwO9jk,}[q|mjF~~Ys~]ȱz.Ж]u91E߻dNz|a#ϘO|bt瘇 1hmit6##qAݻWܝQ}2w]{cbźZUozn!ď?+<;16SI&+/g`A{}f]x?~bWm & :n{ˏETuey_|o/b"r^+L(myjDGcۤ\:LZ"/&<#B4Phu5>;b)> Ãp]lOj?PsCu%b龜UKcd36q/N>w=d-Cn-]yeok:]v|TB!Һuwk趿:y帩4w;Nպۮs}U͗Zs(^Gh>9}̲s4w}$=B(<^K-]{ ]0 (<%>2^1XWl.M]XVǜ<ϗo5:v:yZ{Mm_|&Wѧ=Y}FeXKxQNrw3r<~e9v._~vyvs)eZ>4ϫ>CN`D }KL>صXUχ}q3OnWl'~M\k/Ӛ%vދt[T}B-s}Vo9MOX PNq6/Fr7w7G?e^+čZC_U콈 S^$Χ_羏<)y[{k͞3-z$'h'絇\&7Cw 4YW}Nu\k]Ssۚ]7m]ns|V/۶.~rn[Y_zC[o.tOR~P拗h%\Sjh_sr НyVNwW9[z6iuWB!l}B/蹍yw#vuu:@n{䄗W6{;TϚ ^<0>W?_sRܡ}$oE\Es_[|=mz<4"]>9Cyz lnǻm}6)%>yynJc!va~9-~Ք5y5R2_SuX6:_df 4wɵN= MП;sxTeޱvK6 xaT4xޝ\ǧTmoPu~_tu{yjhŢR'M= -^-N gU^YXY^ߝ` ?9O"=wPu19X%?+@2+МB7]Eڛ8+z`C@znr\D^|%~ӟe#yBn1\W9o}ŷ/P_unr:GΫR\{HwzaشS}Η_Iq%rŀf_uuy{%.1ޒ">q[Dxsi;K^ތ*֖D{9wƘ9#R~ǥťU.]xFo5}ttnXjRrמ|MQW9֗}ttk>WZ(ѯ)r(Y &bk^Z?(jhZ>W-&{C^(ʏĈr>v-Ҧ:"9u.V_z-'\غ̗5w}zwsJu}O*5A"n4w|r2kڥ5K<:(GĊU_47&ZKsIwiڛR9zяOh_,2&)mk9S9pgȺBsyq|SF {zy ͞'14Od<9xSat|n3SgM*::4Wy7Fmcc^IkMXrsOhħt}=fݝqѯ>MLo=SiڃZ:I.zN]/L#ׇE}Q^ӉkАѫW.T.])rnutL:zgxxW`P^Wxb~2ڼ9z0v쌶o)!磍6c ӏыϫ_i7:x\+ 30V߻{8<{0> |C4fs9]v)ãC d.hn27gFgx9;n{w7 }DOV;~+@Ό̻S'hm*?g{8'}:k/b\e{TE|}?.nwkoy20^yw½]9wB}g%\{zRv@>oJ o跒c\riݨYb|{XԱ_9eMSzGYrnzZIYQrk4h|)42\G:ַk}˟u*]Hs(苐)%9||`g9OC׺Q&yט狸VR#,Ѓ+"Z)׊/{Er1/5Z9_\x/]k>֟j[ ?gѐ+hR:/]|ߝ_~vZk1_'ȋn}3ϋ&'suR*o!zdDk_لt?} d˦=ևx|Uܫ]q/bte;:gڽXXojm|rc{(7YcH,.?<3ͺ=@Go)FWknK:s%&^tG-]Ӏyω~R+F7'>C%^_*yzsFpxpu=׉Z5 4QssZ7?}[kl%.6c߽+kf>R.L^09t}ߩs׺4:نw]k}JZr*]|8uf|<9W^wJ>$=[Σb|>{(x>fmKsgSwȻ1d*]1"?勛>fHe|O'xdt3ҹ4s_SpynuSR#}sg_Uޙ߼+w }SǢލTï3>ڀ95z 5sz׷ ߗū=^ŵZsuNO֢jkZT?xC֢Vi]cќuyw.h]^;r{yI6y֤]nZKת[kU9^.ZtQ|G-_W}d[Tѵ^8Ablj磌mN\^^.u紨䣑zsiXz{gnA]rwo3 K=y'bIuz*Oۯ.}\Wos|2_12=[zӯ=vз}^}}֋]_jH g{^ {@;HJu3g2=5j[{]>W/kkxiѰe akE uUFA5EzL/f]t}<ooߊ^׽>7Z[K%Vs`ך=ڬɑgi{˱ָ%6} Cuy8t*gq*DZ5yɡw]_#t_RޮzWӴ zؿ48_1eTi5ϟqڣT?yнhG4^=Yc{szZt}O invg/^gλ/?䫣{y5kQ^5Foe FM u癫֣_|k2h/#Eԛ^?=s)%>|';<39݇ vqyDZO~yr`}}4'q;]`:֥i|^^;^9Ў wdmW +0(?+0$[ +0( +pWt׹ m >6>ŹᏙ'~>Oy\3mU<׹k ~xPsMc3ZsGs@sGsP!y~nwvL3qow'y&cᄌo} ?t^?w'm-m+mV_*Wy~FګUc~իk4wӳ(q/1qz]]]ǃ.Ww7ӥUc{Y5,z/إ-.7~j#4w .U@eqD ܍ΪE:sw{ѫK>:z__|_AƧ}Suؿ+؃`@񜭁Y{ȿػJ;vrꭑ/IWJ:(P;hAbEj_֥w=u]jMWh/SW.keڢ=뵆V[su}k͌7ڲָ@./>4a#" o2_~|<+ո"uUoriΐD1zEyObq)ix׻㓳:@s:kgy:zU>>?:z~:W`(˅KZ4*!іWX(gͽIU"]f>ݯs\3W^"=̷ܥo]j]K4:,cr釬[EGӛ-sY{ezR:~=[g8ԵWy+MS&I][J[?+ *ZJl&oeYմ.ک_|]͛o5?.v_6ߵX령\z喽ORU\j 㞫IE}{>x>??Ƴһsl` +0TޝkMkr+?zmL=2ߴ]|z9 I՚~W4wX7dN\?.=K{Fk2k^ܥ|E5:UVka7-ߩ u[Yw-S`=5S4XI?uxc~=Rj } ;uy>!yI@=nvG:No + c <+0( +0(- |x"8M/ {qˏ_r~ yFoM~ M[w;A7ox\>/c+5W-^g?\_S.s'.>_h4#? ы^"hW M^"D[G}_grZW~"+ s(_OkxPnpI W 9\u:mVÜ_5xzwKxb>}3K*oEHY^Z uk)b^d}+.i1%E桿GGқ|t^WѵWj +LN;M7ݷ_/2y> Sc^r]!ǟW> ׫N?grmx#j7<76Gl{L=1}u$./!wɳ5ƪl $KTjBÔ1xu=t<u{'k][h5n:Zb61>m#x;uc|zk?k }@ek3\5v8n`Z4:|=:o=_3+p=!eL*cx9jǯܶ9Fs_=߉W }>Նy3 \M}m@^ j_Fk4~za`_Sgs|cݮ 48{"tW 1EI ,փc_;ɐ}ƂWt>5ѽ Ⱥ/?Tl]9ڼvݱ$"GW 8ޝi%s_On.;>w|~+q梛jCCdrO: 0}Yhmh/Mq5_ܫ4wks/|1KWs,!R_7'^Wי.?7y^C֢yE]/eq,}^^[^MUn}|]i!:B\%FCںօ6\?<:uchm*ԃCMܐMk>{MvsUB^QsǻvH]§zR^}54ƣѥ䬣KgKz ͸{0nO;B%{{y>W|{޹elͨn:Ǒyoo]ƇRz_J߼!Mh}+w SיS?|?\}_ŘgH :yFCԾa=Fw/&|1F+7ޘ^I^䟠Avũ5L=wzY'c5\:_o}!$. 5zSU1&to{?O{S^}+:ov|5&t6VJ]R_g9S}Es6(]WzGskMW?b/fWWk7f}GMLZXi}IطRiz=1<YuT_[:5+@1i7f|7êRޯGCEs/ܥ_ٞfzn#F[mT&<65>9h}/gD9'{է?ԏ wtB/{[!u.s1?e&aٯZ)ݚs{CcOՖNj%}EFB,*Jٷl?F/nȺsaS^~+UiN;5i &uǛu/i61G:Ŕgϟyz1=`_o^cl}uuhs<;b^~oO1]@}F+׃Zx7^uq>~\ׇ9UEy{l:.?7޼o\'!f8*bO}<'"KW: }LwӮ=}7sk<-Z17{#w]jn^UDt~C7Kݟu:}w.5&:{ c|UJD/kWe}j࿹cS}?^[x9 u:;}p;Svgsv)qR]1ωg׹~.kV\c`kpoum=i{+mYj܇gipb1 l|C.UW7ޘ=9Ƌ,sY8eڷxEkwWezmsjm_/znD<7!s[)"Wb=4N%Kgֵekußq.W\I?ƞ#ȩ^S"?c˫ѽFu~YV~f6K.y0㵙rVOszQ^xgس S䏙 ? dxyu1GIj|:)*oN Bkl?hܯ5w>2ƜGlھ˫Zy_ع`l }'ҡqxg=j1f.ZkiWHtHxzu>חں-X:12 js y^{4scmνrԝs/)s[e=ax^{'qr>21uo} ^+[QX=sbǣ}gJڻn-z\!ǻ?y7- -ػdGI=b0j }u>NB❗YeykX:[H;[өsJ7sg-><7fu7~W϶2F88UeWG][xzmu'ިBqwK+0+04&Sߍ0eM9m-l?Fםc'zT5\9h2cb ٻEg#/Uk?TLss?G@i,f?M+fgb]s4֣6_Gqiwsau="񹉟4q|\yzSS @WQW@oK9l{={*;y_\3!>sygr,7Eb{b=a&9o4ty:?&"^u9/CiOxϩȝ>tL\:_7c%~^C_^cbuAUkM|^S x+ Xɭny2'ź:=\rXA9+nWNs/"ߊ޳8byhgϟyGׂ9kEk_OIkGFj ^b1&.M|3 %I1@MM<]׺\<5s4o{n@G:w#䒖I0tnj4w#O+-0L&0~o + c <+0( +P˽QQ9<8cO.G&u>uD(Oy}|tK+pk^EE|1Gp.|W3|?FlY+y߻{Jme,*njcO|iOk-Wmz-=)ز|]O1_?_{˩}~tvg%&r&'ϛM%[>=3'~XuvL~[\inW}w56Sc5)ƞœ!gۼdV1s~u}}|}w.cWO҂\+.2_}U_]xۿPS}u*ƛNq-2mR4:er:~~V8E7 ߛ>$cdWέm{|,`Uio}Onת6Kl݆OS_)#2Dkhk]Ph*$̹0ϙy 쯩4k,OѦCb{_\!EsȩVv۬=}*.CG+nY"TaՄ^yZ6G_n92c*?g1`Yq==]sss`]_v]/mXϾ}ʻc]с3z~էz^^W^};DsZsoj]k.m2hE񥮿>gR?cu+I1}ϖ{Y+m׫\o^fn.2W{Zk{e)7>k]ho=}4j kͥ>|KE^[T^ߗ6cRx{Wu_Si9<Ҟ3GIs[5ڬ'uDSZ-)UN%~ѺMUގd1zКmh Zm-xCz|Z61Es.4x蹱w39⚋Z?pi~>!Wj^9:z|eN+0 ۩u5+M>'sfVΚ2\ԱY(NϽk27S3vpyZ|5Ԛ{lJ]׏Ú{J]+k={{ϜuڟZf]籧~5=Ն=DjV%dtjͽm{su_L#q 9D4yдoXϷ~U 4OV} ܗ7v.ZS'QuǓmh9WdjӥxI|o5$ ZTͥ]ϻnE cO(=.$z}xC&uI޾gJ}?4z- Rk*yu]ϵ so]wk=O]ާOq]+p+0݆2i { Yk2ec4wMA?BMeD vWGlL3&c Msݛ#tOWu6+{{.ޏ3޺暻ss5{ٲu>I'Ǯr暣]}c-ccR槱5)0S{s,>]wkX Sh79ku~ޅԏZ_CsE:=3Oa4yt/q\r)Kq/ה7L/H%}=duutd^ut[H>&WֵWɾ&$>=!V綗'oֽNCD_us>sh=%/j)4L1Rx~en_:6FHS4wGB6ƞChkׄއ]wiDZC0hr}r3ёr:Sպ~nSgBzkװշv_6Wҧ>W}F?JeǩK1F*+1^XصWK Yעb_hnnP,~a.0&V&\շsƗY?|,³#&C=}_}i1-D:[z,TcHcV>PH1z)҄U:x-'z!l[{i{gZxo?/# sC2G$P-84.SeB4عG+e]LL^Ǫ}B1 C'i yz?YHM\Pl-6u^+w=>[ }{bh{އ x^ з6$2 gHyS_8ВW^AyW6^AynW 7ʻw1 :8#z6Nc+s: ,x,8>:g{h]hyOuuc10P!sXdW6/wͻ7]L@+G_}U/n2ow֖9a6jg+p]q] g}>ۇ1((Xg^wJzA_W2G? +K<5+ [^"O_@]d6 +} ׆>ԏ~=<29"3W$sG䍂ĬUu4\Wվcj_,?LH{=|S9o8:uz]!]YY;9OS"_({fw|u[9}g}~~Wk-r%Q \HVֳ|]Gs ]+D*~}2d>7-f=Uy dϼ5 EEjSkwkU.|2EX":p_YM̥:/ӯRiu:u%ۿ\OsȮ[L-бYk+4m"q~sL W&'zY*v4F_y~s&qeFlU\7skbWPv\8V }Lt0w쉢u >ׁ5>qo3RyP+~}_E%/LP@>cK>$9n_~VZ7l*v||O]ϱWT)բ>мR=rӏz'(2hr7׷:O|]V^Oa|=\קhպuOY!ZϳH%hzHy{/:^W C+}m.וR~J j J?Dˬ7.۸|̹hߕUNv-EgvH?]t;gߜ UUȜ^7ǎUseA=߮wsniCbTׁob ͽ@ueryi}u%_w\5Ґw- S_ܗ8|Sν 1h)uyMz׷z;?~m܋FJtL{MWbd렵5]6=~>֮Ϻ먹+x}_sIUς~sW>d_eSs_Qկb*-*]1t]ƃEz}ޛϾ.k?l/bJl{?oTy&>Y'3G _<њ}ٵga?tzus0O| *~*1x77֏ˎ{^WﺝSwY`*z{M@_fйZ3>c+)x)WӾw\}ݸN>eEƙmexFs'= mvucI])ڂ}\߫j׌sD{-hW%7[l$y1+u&o+l\OXYk~v2e{P_gJR߮(QsX:짹$i?g)>}^@esODSלԓc&!ʹRAj ];<4U\c6=~k_YXEߟ\mYXs[ZVe'9B͖=爭!֍1Cw;uզ:ftVk:. eu~}]zg.K/8c@ox-s ]=:$&#:ENH?+U˼}z?[ܵ~^h?voy^Ӧڃ0&g@ׁonǪ=ʞ&K?mk*tE7e3kl=u%!ρ矩:^^ق&[-/=O5ςO:C~~BUHU/&;߉W)ᇌh'ϝgm|e9Mxrb5K}ek^Geo}Mr>|Lso|)+M^W]Ϥ?ơ}Loz|_3+d]~[oruzOB}#Yqؾ륪yr6 cBkH2Wh뺚?"ӥzE8hn,ONP:u}9ĺx!u+h5f:c$?@Ew+*A/6?(0a-I\u;93IS~au+5+0+uh@"5 i)96 `.g=DцӡsSЯ9t~]IPI +p +p tnWrOG'Isgfsߟ__賟/ggQLj~_1G BP(b BP(. BP(. BP(. BP]( B[{7*.OJP( Qz$vb*"vP( %R<{*"vP( %f:XN b BPr/ױ˻w BP(BBBP(Jbbb R^[p/6apѱqE;OvwY5'NOQ/o7>۰C/Y g5IvYYˢ~K:\փ__P()YRܚ^LRsvspl)WY;VRtq&^NguTuaI;ҵ?z><:\:u.8uܬ(BByluS]ck=`8{qXSs}ħ-$U.BzvZ.c5"݋'/eOMvn}'gٿ?zrk™Wt$-~&xpg^?ۓE+X8wqXʬ~-؅BAwټ/䖘+BWQb%/2f#r1vW*buj7Z ,BgM?{:LXz ovۢKC!vPQ[vQch4 SRu?nKkaudڷЄ(. yn[?M,֭,`Mvr=烳r:~KױKZ ],V.p}+,5 w;P(C/U8˃>8?vX]SU/5Aqx=^aɣ1Mdcc~=%.]sDסRz"@њ> 28e6#ovSQ1eHtɎ6^gE~^?UG.:JXSf58~Z[4̎ kQ؅B1 w5hyJر9Q&+uFQ$~U ]rҦŪàV_V]'+/dv!vP(RO~;toW{>$_HsqCVp;꿨\ԯC>Xp>+؅B,)Qu'7~^kXJu«4ZY_>vn=]rrҧu.f3ctՅ#tU7%vazuyUv׃N>;^vSb(̟|f!&K@DN 2F]^uc~MH@?!ӳS+;]c}$O<ӹGN}HeutQS0>'kt!s%v!,qiO샒]lD-3Ů:O]޵"Ӕav ˅Ǥ.g4;߁z4$koȫ${=]%}ꏵv"wI?FiŞyq*.QϏw.[vf[qT8"V9ݧɈo=Kԁ ɞ:c"kz ]3#ybW~j{y-b*o[)Y{R^Iy diE %r=Yo*jyZtqO}B(i:Im i;R4>4woM0r "t.ҹBW.ro+gg^vf$I*;,'^(sv]lwJ}Z=TZ:A\>]..;,t%2KNTLr"KuZ}\yYE.3 K(DV{r'ب`/vW U] i]rkmr7iɨ%.PnThj{xؙ.57^Tw)]wɭ5.j .ж?]zvsVN*1d8.6SeQߥzKn{5jwa] {7H{/rסhfw8~[={(=RNUߥ|Ra%\ "ԝjzǔZ|w Kz)G&ɪY#-Ww'_s$rW݉z)nvmmAR.C{,.*^H$]W.׏Zivs!IC; ْ(wbM's‘R.RޯEo3N:U}*Te"/Z]ul)Cݍ GDW$$L(׃WLx"m "H;{ڒ?в,LrG# Yw^ipl (ØR͛)}B+5{Dzms4[hQ~>5ɊvX2܋e)3١ڻ?zC-aBi.r.]tgϧ].h@].v@]v@v h .h ].h@]nnov8tN򘜞y~8yJ/i?'Jzi9qqnnEH6}'R3}V~#w)N\-l?'ȿ3ҁu_Ol~AkxH=@פI8./GGMޏ{ao{w0@h( 2 h|DNN{]fKeW1|:I+`. /6c{/kh D.:Qrnϑ52ww)7-KMWQx]uw9=;SR'0 28k1K˻K!g6 B#tvw@@%w>L M0~> t|zu$*ϻ] ~R)4NM*G"+2h>!GtUHnmlgKʚ4tAڷ cB;k_*l|QYߑyh@P(ߥ]"cwtq-~.x!]fOB3Gg^ %+vwHI7%K7?|KPn¸wk$W^M6.бvR"<6y r`@|;rv؝MrsSk]EC4h ڥčË Gحv`.vWj85;#K]r{I7H K`ڴc]LCړ$<@ӳ{=dT*9-_g OXRL!}yCǬ32Z}h@F{#,>*q wy a{OֿhVߓ"5E³zTFcwis ]eyt`*PK*`qsMs2]=e-D`t<}].Pz>Q+}/w]49V wRD3j;D]M>4 ?5Ki:ƈEwS}hlŲ->xЊ3{w];.,뤚hgzO#0vܢ6.MCc8gv#9:Ƿ]t90.h ].h@].v@]v@v h&>w>~n($ @oQ>e>RHhސr|oR|_{/]|:ٹ !wqoBX~/;;}XtzvjO'1B^]4NL mWʠdOVsw^-<0I/׬:˅ʽE=-]n5GLn[K?yuA+u8KS-i[`Ӵl6;z<8=`3e~$7M|ƊWl5+_:w=sDH2_{|)#/YG~?y|^ w> ͔.4"Ajڏ#Ҿg~=$uu|բBґ7L:_r|w9Gy'.4zݣG< !xr>E9E"D9i$W/_i"JFm9'tKs׃ cR Q+%y2NΊ>yHk<Yf!\>V=al师$'Fk_<˼+rq׬ qX9JG?PX]SdRM5#0 'N>ZN=L*^!-e9Mv,O q14[.<~ 4]^4JVN>GO|s~LLV $d'f]!SmJčr=3Q3j&+dX x>:]E|,VI']Fͧyx^W\,wS%mϛ{ ko»ohbQ}p-%ǩ\G3Zno9xL|Ngv2F}推XQ$X}RR}Z#LVb1xt:qSUETŤg9+lL[Eg ֝Ί%RZ+.]R6o\bAI^-F7e4s"/l6O|+b7-/f~}3sי-jEK E+EϔvE}v|5T$O.Qn:ӔvUunQjyy-h0hR?K*6k|ۛ"k } 6qruyU~ҾK|W묖Lf-"Wʌ/Khi1&jLZ$9 b~`=Ks|zWi>\ ulv1Hӓ;FבMRw9|:ƬIwo|Hl_ ŴKwy{{ji5ed:#$o*gGe/g;iqu A{OïO)rV$Dx9'S#yWKܭ#v2ݭ0Ki\m~Z4]Lp}Ge5L8|ZqW3Nix#2y 9$Ȥy5djAeܒl`r.zV@.fiE777x}`uD@UQկp'﨧b?NՉsf}u}\̭\WWy%Ӛ7,_ef.·EǿwXfh_D1`P|Suy'1}@t3m}ҷowayE'2`;}غnx6 I(O .WQ|^SOD/`7Z\Y~3ǩ5+8};l'!4"~mW"Zy:.y~99$>X-u$Rqvj{XvoKH q3ߛ.Ogqޤy/7zU픿3ɪi!ߥ? Hw@&^6̀Ge|kT)]vQWES..0LrVȬ @G7mY pg:*ڥeeRvz ܿBJ3ʭ3 x?Jzzy9]v>wɺ5AOݷߥ.Uʿi1]b Pn߫Ŷ~hXtjs84$Fz1X9}${:dճiw[9@A_vu.KG[rBqKh$.W2YkgN cRPW#X\wMotf6cݵ&\lciw?ϨbȟM2JEȲ\bם#MrٱH@@QoOָ䏨{RSxx=[gx[]tcUt!ֲJuTvu_Hʝ#.źk oQלzt}4S$Wdʌ[[gd'"M|jӥIy.78.LEYGEw8]@4@@O18.˱f9isPvdk߉ rӑ]R/;]{ͮ)3|sar{FJ̬ Y\N%N#vru.Ѧ24Ht] 5]$a]]]q/7IW E]]] fOHt%ZiSwN> @K˾L *@ f{ѳl`-܀6zGc&ow)L(K 0Gb }5ݛxQ!Uhتq|z@].v@]v@v h .h ]dɧG$(20vwvv../G||S͔V.al642$޼~#-}%gtKU@$IbT#J.a|>ŗFh|{642fw[/|_: ]!Ld?/]Hԅ1·olv9zS\M O?6]?ڳ2h/OL,ˤlge|) չWr? \.~#O?[gnk<2%y-ϠML$}8>l|lrLΊ󍋽ٸ@e z.-'O{sWٿTŽ'Y>GtCN/RI,r{=X$ېOmү_kM.ড়UWRW4Y{xIY5*;?'Ŷi#y--#l,<o>P. 9wY6[&]+>5o?^iFI 3FiڃFW,%D_I@%L7}TL=\rk~odČn3]*'[Z6'+k0<wD8Z깃_I?]hrbw?wQwA8!.L!*)Q[n}G+W{IgftKtuyB*DsѼL2Pߥл2-x&:w܉r(K[$ȗXj'O߶?YU,irVUh>T'>ߥȵлטމު.L]YZ&8F-֧Y-풵:)ث$6ؗȈNO X.j\y arDҹ#&;YB=kt=`ew|.Օܓ-uB5Fe1g[=9vnY6ϫr8bۙ`v1<fS5wYw9yG=Gg'<$ },YM~«FId{3fhNOO 0T$5ݮ3L}s4k{ ڥ$:J]mw]i"wSWV/DT,EۏΤ]ӈ4E^e1'wFO ;w>o.nᯟd]wM9xwe&h]wDq#.HUKMxJo2vqH˫j&b~90/\ <.9HڇS 5CG2 Ί(og%reN>vEw)}u{'f WD- wqRȚ:&q;0@WL;`E}$O[Xs'[Oyw8T"a0B5K;e=.sEv_t]A+2+te' eHS%^S|o[bREtLTMTK2K>:^wY':jؠV$3rs}'@_ h .h ].h@].v@]v@`8e{70-5hq|\(r]E]KQhK^Krv?.h!A Zjtd& NϨ5[jU5O}HKסWUuܤzSPJq4)sz|x(vvOoys2$#l_!)/wƑCU^%cڠT/yƮ(/T$r#·}eLe|@&k{4syoM_<ܭ~/rMzּ> q; *ep~B-TUgJ]rZ]:Gw l"/.Ds/!r{Gɚ9mճ=wqGnvRƥP/$ ~teR7 ZVZw긚vw l,ƲgN8>1ywQ*ꦏ5. ]WvyO B43 j6@`lg}|&ve~qw]D`G<]=ddoU_.[WDU/*(!wb}].Ҹ3ʹ~$WR n"]mnnWcJK3'41QuԒo1+_߮| wqj!릐vVGζѤ7٢Q R].ldjvzjqry].fb'`xGou.5GDG |~[[]:) ? ˥ -]w@@~#{5ef]:w2=a?/_U]Ě@ \ɉqb `=uFoΙ88P~tIUXgTUtQ*b6}ugȉ.].IIΣ5ڧC5F#}NϞ;  YgT=}篎yKKE(.# &ss4ffƣg>U88 q Ok>ո¥W(TAw}R&f,pQR4>+]t8^E ߢ|&> YҕX{=niH۽Vk.rKO.J.>Q[hEx9?-3N҂[%8UbWѕ(g {'m93iɅ m;c} sfqg 1acT/Tb0m+@ $.{xtى}s36c;EG(&]mm>,_1vCߌQF|ms+,_펊ݮ@l,odq~i7%s]4܏w>w>>㚡sdg` )#յC 1;v6s]Ayݬbv86\j ߘ@l&ɣg ջ[yLz܋ .s|96F[Hy4=`{zKI1wCXw1Ff6b}41 6 .dK\Âc{9u/RwvWw!~Ѵ±ژ*.~s:Յ? 1vp$<<,N|1!S. ̧> EĀYGeZX9+0nsD.T*>tŴZV畿o4g1g#Kb]j.qoRW ]. Nk>5'1zg#-cLߴ/@Gh _כ׏)8L3å1v|d-zV4{6_,&#|?ٽri@o}E!16"5e>/5pcE#@&=F51UD9bN[bq+|9Ԩ2}9]':y\Ս9b: 㰢jC-ZCN)w5ڥ5.#-mܧ]x74lM0@l=.o:*w{Y>1ҕhg^By6JOѦ~ӏpc=\ָШEǸOp?N=+9ζ9ǤL-xx]q.݆;cj ݧ}VNGȊWG5&{+}sEw{-p<| ԒD:j%^R@71vݖs1 R (VòO( bv h .h ].h@].v@]v@v tgDIzݳ/]"ىI:crzv%)dȷO+ΧE8{C'}>>M3}J,t6yT͉+٬/f,zp}ʭ5L28{?e]qyhCj>9̡oZI]"Q%(B"?ɯ.cjm#6T]D8^K2vƾ]73z)&?o%B1yL"cIb5,D֬ 믓$Ds#JF8}@-\d{C?'ȿsG{u^&[,L ?F*XEƎDZh>XAᨑ;vM.Bʛ%Y_}.gQE: vJ{i~C/l9fnu<\q ;2}|:qD &bL]o>e ]y*H.^ҩ=G֨WE!b/Q%wb&+2gh8II:YO$O.Hm]NN LF l7NBiwϟf f<,oԒܚV_=.1aZhrVh1i0e4{NAmn/z]&BNrZI%woTL'iCRhEr6k`KK%! .[&MZgQeAz*W2it(Yd?Ys] 廔_d=..NL]455~ZӬsXAQH]RkÎ/K(@uNBM]r"ѡv[&z&rumOn]2kDu~޽}]"Tp.O_:8R(%YBh;F%OEKvY""%)(O#is;@+%z#nٛN]H%qjv|G|6Y\4vS!{I7H =vS;챻8FSlt5G4-݊`%L!%Iy&~t>dL,uX!2Z;\KOjz:UuС2}Zq;9ܭ.7f!͛SƵK v^dD]hcb0P##ϣ%؏[hj|ipVR}Hn! \=ICUZF^D&|,(&6wq/0fM(Ӯz-ad+/\8'4w(wF+23o!]Z$I'$2ϯiJ^Ĝ)/ꘀɧ) @_C]'e)Y;_5[5>:~Qn>؁&KvINAEFuWG1,fiu6OhJh,6u=[3sjQxG,1R|el٤6A̞f/]gtewNd8{hI'# :]ց/Yӈ6 -ZS}߅堏MPwhS_]o)i7w^^kꡰ"uzz.-i?.$^~ldPS"W`0,<ﰲn9GCGw zHs6_lΧms.P3f5.h ].h@].v@]v@v b|6Iquy%ps{C l?6.\ly lU ]``ku "-}MREcf1u-uŀ>=JGLGV8@i1 D \]_fZ)Je.|vVfk4ӯb`fJ fVz@ IevAtl⾍Sيw/:b 46Nռxeb@}s\6&޼~3Fs2|WymOwZ޳vQZ.QKv0, ~bԙhg t/rv gßԻ7+ :\cw=@K89" !FV%-{;rP3D`nGI ],~eA 1Pwi9%k4z*W]ֲZd e]Az?\Y=ĕ|.gủ=ornvj|M~[m?; qvF0YS`o92ꊹ|&@I?C;Nxf+>%]/m{ zC c\K16 k I|nc wTyr4\C8.KQ!wk,;r0Mv|RlGGWwvW}x7)sfBN+wb[UR3]G* DuL>RcȪ'H!!۶:67N(Cun3 F]17]EIW1PcI ,|xk*wnOUHo20*҇0@}k-윧:#"=so4BjV]|;x9IZJJƿY(^G-\iE}CFRO&&0'mTz4%R~^2Z"h63{brC-X9<.׆)c@?Ecx$t  2 ߥ1ПE-f^1n5%W8}aw͙ jU|v0T ښ&Mb~@[DМM={VNU˘[3pj՗ٲKZ| ]Z-Z}bzW*yr1?OWG+ZJPwqymKҾ2LPFKHdS{1wѹ䖵B`~:EqmH}F}*1KO @]ZFWsԒWQn>@@H]xvc7wF*2R]%^^r,!(ou6Y\~.Pm 2&^ߥOKgajd%/n{&]:. quP!#JtQwI`9>z!vւ9ǀ滔/#R{ Bj3X;XcK1Xk#P|4 Ѯ4Ҫvi9EQ32IcgE~t]I3rzncTW EBQD>H؛ˡЫjAWԵwTK1m@0RdrrcPrw)hWUKH785Bw%f:Cwɟ[և(R{ "!8J,Uwi?"8) %EY ,[15ns.N_?z.Zd4akч#R%~=$k|M[7zi]]#9(qD@@응!.᭥bvC h%.%T'1w;h⻘OTi,STwP{aoi`=|})'E5mwvʿu_ n f(r[)BMu4)~5|p4}]bZ{1!^]aK'1זi2QA YqRK|s0tsLy`g$^]i"ٵ60_4&:H.PcEG'"ݠi1?$,!L3L8jrvI ?D=6oR>ὠ.]@.EM&Xtk6?Ã\7뜊pSѬ@9 _-N'D <̘Qok kNêj xK\ӥ]T?3;^t}wy'1>z^1INht1h.݀w">9IiYy#2bb3g<Y%0فa"r<}6n͸Z%AEoP\Dc$o; Fn|'VgDQ{ ḙmfҜ rEߥeS}՜M fM;>0]}nwk)TY#j3*. h]Zw%1Tsg%K^Jؒ|LecܵQ ī:2&%@@Tw09e˩]4|kajN}Fzh#oUbn(Y%eiį1?q3|3ҫdīԲ}s4C!z|Ǎ_61,RUvD6wiJv(T͖ۼ)㹬$ |Z(ߨD|%3a Y68Sb||c@>u(Rq%_I ;tKOK#px ;QzsP!ݣbƑ1?*)o1`漳=ڢ1.1y [r=.efddp:dW)=*-KDV:-f k8" r9R}:]" ŀW1_y}3HD>O<%{/qbc@"z-ڥ 㬍ѹ`GHMs1@Q@Se}\{[xo*GiAP'" G166J]z1tg1hdr/f"?I( b ].h@].v@]v@v @/;vAxI]ۀ Г % v!1y[+J c0%ar\PJhh$IN>7MF1r=xLD`B]I#*g@ڥcNN7m0DŽiMb|6&:ΟǽݶH. Fr{ 򹹽Y39enn~lFDfYT؝=%Pdڥi5^rk\~~=4@{)v\J-ıՌfus)c_]^I ܳ?|F(qGvc;m9[č~*~ YJHIϚ6v];W { .vɿ}윧vMtmDrPݸkcWc-{I;kXrDow߼.Er EYY+../*ۋD@C;=..pmi_#pBΈ6\ۙ+))w\M&ڡ8hGZ#ToDS[tdYR^֜)a܏m'&Wg!qJ";穝1w0xg'γFAn__ })-έAg'h%FɑYܻjw+;=tlZ g&ww[KyS77gsf7Yu3ͭL8.K5"^d茄XrKύGڏ@yzt:0o+gv2GGNL6A ӾݶxٖYf>5';2iO15h\֠D`9+wQ t<U1\Mxc;B9-Dc  nd[!2p2hgtKG-N^SMrmVjy*0xHOg2W[YjMn|,1oǧS+lg̭#gD佇o)گjvnvFVL}y<0IG}1b~]&JG^m(Mc'b.}g*VMFk&C?fޣE А3p4P}Hþ>'GU.숚HN׃cS}i )#﬚칝WΘ[k֫]QYn#-\;:#íͲ]X2k/]}xeE3^)zU˗Yˡ7oOڥ\if#}EߥoA:+^4︘Ax*?ReSIz1~j]Vapya=vls'vU?,]45k6}U}(ǢS8U]][m(Ev(UMh| :q.ڌ@3eY-=WQ_qz~5JXm4M]g/~iz{d hn]5XK]]z`EeMZ:oaL`fÞD)-.ۓFO6#07S;f#~s'D]5滤ު.mHc>itDnخwՈb@G:B;s;Kg˭EYKU9uT:E{ܜUoߥb.wD|q%/u"=uaXA[%.].=qnjs{WWvbɨ7+;̿#@EάI{0R:Ҋ]ʍzQ]_WXhut:סn0lmV3cEh#W RɰޚvȪ`kǞ=lf5-e8w6^껄 gТ3|},}8 tvFIWʨc}.$.vjCd۔{\{T4145cr#0+{|#P]FKjղvqob͓0"_'{GEJ_P,1h W@VF b6'tЖ(]$I?̰4̥r÷Dz*+M ZY0=#-PmR$εqIsE>* ޯwgNSg+^oׂ9Ȯ?7oRL֠7]G`N¶99%r*}U`crlZ@BҬ0yOq:H^"Os>H(I6ve5"PEJG`96A2s3b{PnC^uVap; =Tdމ AoY:c͹/*o;6O3{sסH+~2)eTĖ+EjJK4C}8vKB])V" E w\uoJgE'-WLyzk֯mYKӴ~^Uܿ3ļɓV/,sg^bߧsJ7bp.%"P귖li[PccGf=;`nNk{}ZNp\\^7%!rM\teՂݞ,:H9}T8rkмo.Qj {wgXB꨹S.=Qf"P.347TՆQ4Q6%rF7ܰ]q.8ao0j I 6]V۔ʦWz:)ذ(F]pΚ.%d "*whoosh.wav.WAV 10103RIFFWAVEfmt ++data~~~~~~~~~~~~~~~~~~~~~~~~~~~|||~~~~~zvtvxz|~zvrnlrv||vtrpptz~|xvtv|~~zxvvvz|~xrlhntzzvrrpprrx~|j[QU_|bICCYn[ICY~zlnh]_r|]SUSSjz|x__l~v_]drnUb|nfd_]d]5=rrnj]jz~lMldrx[[_f|YQfWK_xh[zx[CIjzxxdSQz|_fI9WӹM;QnvK;OUx~xj]]YS~ɵlM?plM;CGpٵ[)Kh|% %;xtKQS]ɖbGr|lSnvz~nfS[nëx;Az=+AYݻ|=/1r_ ?|潄W5/Czãf)/pvbMQr|O=OtjdhjlG?G_ɊK3לdQCMppW;1SŷAMz/#?bx͖SAM[hvhYp~~zrvt[]ptWOUtxxd]v~vvxzd_xzh_nrSQltbdp~_lrQ_l][tf]W]~hWfp|fWhnhbU[hzlSCWbYbnxpdhjvjM9Ot]GQ[dpp~hhhdpx~xh]Yntnrp]dlvjQMb|vdjpzxzztljr||_[r~~jb_j|z|xpp~~v]Wh||zx|x|zzndhpxr]Yfntzjl|z||~vppnrzphrxz|~|xtrjjtv~~vz|z||xrrv~xrprtz|||vzxvx|xtx~~~~~~~zxxxx|zxz~~~rrz~|xz~~|vtx|zxz|~~~||zx|||~~zz|zz~~~~|~~||~~||zz|~||z~~~~zxzz|~~~~|~~~|~||~~~~~~~~~~~~~|||~~~~~~~~~~~~~||~~||~||~~~~|||~~~~||||~~~~~~||||~~~~~~~~~~~|~~~~|zz~~~~~~~||||~~||~~~~~|||~~~~~|||~|~|~~~~|z|~~~~~~~|||~~~~~~~~||~~~~~~~~ ++!0EO     36    & +!  Z#x B9J$eba '%GQ-rdfejahifxtb/D$e|'BAAC@@AABBMDA`( CAM   SRTVWUUQRRQUWSS -if~cecdq\X # A  'C2+`7S+8(_1D}|h. DCHKC=EY==.,"6.)        $,) +?,+*%-i 2!$ G @*22?[@ OPQLO)(A[ *]1FNDY$+%?&,'+(*)%*-+ , -#i.G *?[@PQLO)(A[ *]1FNDY$,)S/0123456789:>?@AB5C5DGE#FG JKLMO RTVXY"Z\^_`b$+azb!/g3~b$XBj4-Cb$ _+k)NcWb$/Tݒa "$1/ڵ/% "$f‘4B@{Qb$[,C;~jb$;Fa:V3e2$ﲊgj,,쟾\c $0e0e     A@  A1 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E||s " 0e@        @ABC DEEFGHIJK5%LMNOPQRSTUWYZ[ \]^_ `abN E5%  N E5%  N F   5%    !"?N@ABC DEFFGHIJK5%LMNOPQRSTUWYZ[ \]^_ `ab 3fff3@fbzrAʚ;"9ʚ;g4KdKd 0bppp@ <4!d!d@k 0tt<4dddd@k 0tt <4BdBd@l 0t@0___PPT10 ___PPT9{}lD:\Documents and Settings\Gary Tyson\Desktop\370L9.htm| C02? %5NExploiting ParallelismsXLittle s Law Parallelism = Throughput * Latency To maintain throughput T/cycle when each operation has latency L cycles, need T*L independent operations For fixed parallelism: decreased latency allows increased throughput decreased throughput allows increased latency toleranceZ#h#R #hYTypes of Parallelism]!Issues in Parallel Machine DesignCommunication how do parallel operations communicate data results? Synchronization how are parallel operations coordinated? Resource Management how are a large number of parallel tasks scheduled onto finite hardware? Scalability how large a machine can be built?5)I "5)I  "^:Flynn s Classification (1966)Broad classification of parallel computing systems based on number of instruction and data streams SISD: Single Instruction, Single Data conventional uniprocessor SIMD: Single Instruction, Multiple Data one instruction stream, multiple data paths MIMD: Multiple Instruction, Multiple Data message passing machines (Transputers, nCube, CM-5) non-cache-coherent shared memory machines (BBN Butterfly, T3D) cache-coherent shared memory machines (Sequent, Sun Starfire, SGI Origin) MISD: Multiple Instruction, Single Data no commercial examples(,*((,*(  ,; cSIMDConsider adding together two arrays: void array_add(int A[], int B[], int C[], int length) { int i; for (i = 0 ; i < length ; ++ i) { C[i] = A[i] + B[i]; } } <&P&b+  EdSIMDConsider adding together two arrays: void array_add(int A[], int B[], int C[], int length) { int i; for (i = 0 ; i < length ; ++ i) { C[i] = A[i] + B[i]; } } <&P&b+  EeSIMDConsider adding together two arrays: void array_add(int A[], int B[], int C[], int length) { int i; for (i = 0 ; i < length ; ++ i) { C[i] = A[i] + B[i]; } } <&P&b+  Ef$Intel SSE/SSE2 as an example of SIMDBAdded new 128 bit registers (XMM0  XMM7), each can store 4 single precision FP values (SSE) 4 * 32b 2 double precision FP values (SSE2) 2 * 64b 16 byte values (SSE2) 16 * 8b 8 word values (SSE2) 8 * 16b 4 double word values (SSE2) 4 * 32b 1 128-bit integer value (SSE2) 1 * 128b ~:0 " F2Z " 2:b`c! gSIMD Extensions`  iIs it always that easy?No. Not always. Let s look at a little more challenging one. unsigned sum_array(unsigned *array, int length) { int total = 0; for (int i = 0 ; i < length ; ++ i) { total += array[i]; } return total; } Is there parallelism here?>@@>e ljExposing the parallelismunsigned sum_array(unsigned *array, int length) { int total = 0; for (int i = 0 ; i < length ; ++ i) { total += array[i]; } return total; }. b   0k%We first need to restructure the codeunsigned sum_array2(unsigned *array, int length) { unsigned total, i; unsigned temp[4] = {0, 0, 0, 0}; for (i = 0 ; i < length & ~0x3 ; i += 4) { temp[0] += array[i]; temp[1] += array[i+1]; temp[2] += array[i+2]; temp[3] += array[i+3]; } total = temp[0] + temp[1] + temp[2] + temp[3]; for ( ; i < length ; ++ i) { total += array[i]; } return total; }P%[l,Then we can write SIMD code for the hot partunsigned sum_array2(unsigned *array, int length) { unsigned total, i; unsigned temp[4] = {0, 0, 0, 0}; for (i = 0 ; i < length & ~0x3 ; i += 4) { temp[0] += array[i]; temp[1] += array[i+1]; temp[2] += array[i+2]; temp[3] += array[i+3]; } total = temp[0] + temp[1] + temp[2] + temp[3]; for ( ; i < length ; ++ i) { total += array[i]; } return total; }2Pm}%[SIMD ArchitecturePCentral controller broadcasts instructions to multiple processing elements (PEs)L Vector Register Machine   Cray-1 (1976) MTraditional MIMD ArchitecturesOr, a multiprocessor systemnSimple ProblemoPartitioning of Data Flow GraphpSimple Problem: Shared Memory*Can run this on any shared memory machine qMultiprocessor QuestionsvHow do parallel processors share data? single address space (SMP, NUMA) message passing (clusters, massively parallel processors (MPP)) How do parallel processors coordinate? software synchronization (locks, semaphores) built into send / receive primitives OS primitives (sockets) How are parallel processors interconnected? connected by a single bus connected by a network 'a'j,1'a'j,1r SMPu  Challengesv Snoopy Cache CoherencewSnoopy Cache CoherenceSolution Have caches  snoop the contents of other caches on reads and writes Writes: Invalidate or update other caches copies Reads: Get latest version from other cache, if it has a  dirty copy Need extra tags on caches to handle numerous requests <  s !Message Passing Programming Modelt Simple Problem: Message Passing4P processors Send/Recv communicates and synchronizes*5$ L MIMD MachinesMessage passing Thinking Machines CM-5 Intel Paragon Meiko CS-2 many cluster systems (e.g., IBM SP-2, Linux Beowulfs) Shared memory no hardware cache coherence IBM RP3 BBN Butterfly Cray T3D/T3E Parallel vector supercomputers (Cray T90, NEC SX-5) hardware cache coherence many small-scale SMPs (e.g. Quad Pentium Xeon systems) large scale bus/crossbar-based SMPs (Sun Starfire) large scale directory-based SMPs (SGI Origin)fWfW  PlA,SMT Architectural AbstractionRAlpha 21364: 1 CPU with 4 Thread Processing Units (TPUs) Shared hardware resources3Single Instruction IssueSuperscalar IssuePredicated IssueChip MultiprocessorFine Grained MultithreadingSimultaneous Multithreading SMT Microarchitecture ChangesMultiple PCs Control to decide how to fetch from Separate return stacks per thread Per-thread reorder/commit/flush/trap Thread id with BTB Larger register file More things outstanding&Basic Out-of-order Pipeline  SMT Pipeline    Performance Multiprogrammed workload Multithreaded Applications Inter-thread Cache Interference `   Threads share the cache, so more threads, lower hit-rate. Two reasons why this is not a significant problem: The L1 Cache miss can almost be entirely covered by the 4-way set associative L2 cache. Out-of-order execution, write buffering and the use of multiple threads allow SMT to hide the small increases of additional memory latency. 0.1% speed up without inter-thread cache miss. `   Increased Memory Requirements`   .More threads are used, more memory references per cycle. Bank conflicts in L1 cache account for the most part of the memory accesses. It is ignorable: For longer cache line: gains due to better spatial locality out-weighted the costs of L1 bank contention 3.4% speedup if no inter-thread contentions. //`  / *Interference in Branch Prediction Hardware++b  + Since all threads share the prediction hardware, it will experience inter-thread interference. This effect is ignorable since: the speedup out-weighted the additional latencies From 1 to 8 threads, branch and jump misprediction rates range from 2.0%-2.8% (branch) 0.0%-0.1% (jump)`   Quiescing Idle ThreadsProblem: Spin looping thread consumes resources Solution: Provide quiescing operation that allows a TPU to sleep until a memory location changes'Discussion Points?Does SMT reduce the demands of the ILP uArch? Would it be possible to tolerate a branch misprediction with SMT parallelism? How? Would it be possible for an SMT machine to deadlock? livelock? What is the cost of adding SMT? What is the effect on single-thread performance?Z'/, "#%O&P'Q(R)S*T+U,V-W.X/Y0Z1^5_6`7a8m9   0` ` ̙33` 333MMM` ff3333f` f` f` 3>?" dd@?qdd@   " @ `"  n?" dd@   @@``PR    @ ` ` p>>  t(  t  t  `4%nana1 ?"` % T Click to edit Master title style! !T" t  `%nanaGD1 ?"00 % RClick to edit Master text styles Second level Third level Fourth level Fifth level!     SZB t c $)?" t  `%%nana1?"I >*  t  `+%nana1?"m ` 1998 Morgan Kaufmann Publishers$!  r t S <Aucr-smalltitle"`4! t  `H/%Ԕ?"f COMPUTER SCIENCE & ENGINEERINGH 8 2(  ̙B t s *޽h ? U>=UU(80___PPT10.U0  CS3339 0 zr   (     0<) P   ) P*    0 )    ) R*  d  c $ ?  )  0)  0 ) RClick to edit Master text styles Second level Third level Fourth level Fifth level!     S  6) _P  ) P*    6) _  ) R*  H  0޽h ? 3380___PPT10.ovW 0h8(  h h 0b P    >*  h 0f     @*  h 6l `P   >*  h 6p `   @* H h 0޽h ? ̙3380___PPT10.d`]2& 0  $(  r  S s)t> ) r"  S dt)t `   ) H  0޽h ? ˽"i6ffff ' 0 >6## (     s *)tf  ) zlL >t^  #   ~   NZg ?h # p3 ~   NZg ?h 3 pC ~   NZg ?h C pS ~   NZg ?` # h 3 ~   NZg ?` 3 h C ~    NZg ?` C h S ~    NZg ?X # ` 3 ~    NZg ?X 3 ` C ~    NZg ?X C ` S ~    NZԔ?P # X 3 ~   NZg ?P 3 X C ~   NZg ?P C X S ~   NZg ?h S pc ~   NZg ?` S h c ~   NZg ?X S ` c ~   NZg ?P S X c ~   NZg ?h c ps~   NZg ?h sp~   NZg ?` c h s~   NZg ?` sh ~   NZg ?X c ` s~   NZg ?X s` ~   NZg ?P c X s~   NZg ?P sX B  B TDg ?# M    f)%e%eg ? ! ^4  KLatency in Cycles( 2B    `Dg ?P p    fn%e%eg ?tQ NThroughput per Cycle( 2B   B ZDg ?@ P  !   fn%e%eg ?>   G One Operation( 2 " Z ndd1 ? # ^*0 nKZ29c#d# # s * nt  n ,zb7 H  0޽h ? a( ( 0  [(     s *L)nt`  n zB  NDԔ?"@ @ aB  TDԔ?"n n L   # v #t2   N1?"@2   N1?"` 2   N1?"@2   N1?"`2   N1?"2   N1?"2   N1?"2   N1?"    T Ԕ?"L `    # x #vz   # $0e0e    BCDE4F>ff  1 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E|| 000000000 @`S"@ P z   # $0e0e    BCDE4F>ff  1 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E|| 000000000 @`S"` P z   # $0e0e    BCDE4F>ff  1 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E|| 000000000 @`S" @P z   # $0e0e    BCDE4F>ff  1 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E|| 000000000 @`S" `P z   # $0e0e    BCDE4F>ff  1 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E|| 000000000 @`S" P z   # $0e0e    BCDE4F>ff  1 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E|| 000000000 @`S" P z   # $0e0e    BCDE4F>ff  1 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E|| 000000000 @`S" P z   # $0e0e    BCDE4F>ff  1 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E|| 000000000 @`S"  P    T Ԕ?"`  L `  # y #x2   # 0e0e    BCDEF  1 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E||`` @`S"@P2   # 0e0e    BCDEF  1 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E||`` @`S"` P2   # 0e0e    BCDEF  1 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E||`` @`S"@P2   # 0e0e    BCDEF  1 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E||`` @`S"`P2   # 0e0e    BCDEF  1 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E||`` @`S"P2   # 0e0e    BCDEF  1 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E||`` @`S"P2   # 0e0e    BCDEF  1 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E||`` @`S"P2 !  # 0e0e    BCDEF  1 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E||`` @`S" P "  T Ԕ?"`& # 3 r1n@E@E 1?"  vData-Level Parallelism (DLP) ( 2  tL   $ #   ~T   % #   &  H1?" 2 '  N1?"0 (  T Ԕ?" L    ) #   N ` *     +  H1?"`, ,   0e0e    BCDEF  1 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E||`` @`S" P -  T Ԕ?"  L   . #   N   /    0  H1?" 4 1   0e0e    BCDEF  1 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E|| @`S"0 2  T Ԕ?" \L 0  3 #   fT p  4 # 0  5  H1?"p t 6   0e0e    BCDE4F>ff  1 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E|| 000000000 @`S"` 7  T Ԕ?"0 tL   8 #  ~T   9 #   :  H1?" 2 ;  N1?"0 <  T Ԕ?" L    = #  }N ` >     ?  H1?"`, @   0e0e    BCDEF  1 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E||`` @`S" P A  T Ԕ?"  L   B #  }  N   C    D  H1?" 4 E   0e0e    BCDEF  1 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E|| @`S"0 F  T Ԕ?" B G ZD1?"yF F  H C xD>n@E@E 1?"nZ >  ^Time ( 2  tL   I #   ~T   J #   K  H1?" 2 L  N1?"0 M  T Ԕ?" L    N #   N ` O     P  H1?"`, Q   0e0e    BCDEF  1 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E||`` @`S" P R  T Ԕ?"  L   S #   N   T    U  H1?" 4 V   0e0e    BCDEF  1 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E|| @`S"0 W  T Ԕ?" \L 0  X #   fT p  Y # 0  Z  H1?"p t [   0e0e    BCDE4F>ff  1 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E|| 000000000 @`S"` \  T Ԕ?"0 tL   ] #  )/~T   ^ #   _  H1?" 2 `  N1?"0 a  T Ԕ?" L    b #  )/ N ` c     d  H1?"`, e   0e0e    BCDEF  1 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E||`` @`S" P f  T Ԕ?"  L   g #  )/  N   h    i  H1?" 4 j   0e0e    BCDEF  1 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E|| @`S"0 k  T Ԕ?" \L 0  l #  )/ fT p  m # 0  n  H1?"p t o   0e0e    BCDE4F>ff  1 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E|| 000000000 @`S"` p  T Ԕ?"0 B q ZD1?"K ]]  r C xPn@E@E 1?": sT  ^Time ( 2  ( s 3 rbn@E@E 1?"H y xThread-Level Parallelism (TLP) ( 2  tL   t #  } ~T   u #   v  H1?" 2 w  N1?"0 x  T Ԕ?" L    y #   N ` z     {  H1?"`, |   0e0e    BCDEF  1 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E||`` @`S" P }  T Ԕ?"  \L 0  ~ #   fT p   # 0    H1?"p t    0e0e    BCDE4F>ff  1 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E|| 000000000 @`S"`   T Ԕ?"0 L     #   N `        H1?"`,    0e0e    BCDEF  1 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E||`` @`S" P   T Ԕ?"  L    #   N         H1?" 4    0e0e    BCDEF  1 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E|| @`S"0   T Ԕ?" \L 0   #  } fT p   # 0    H1?"p t    0e0e    BCDE4F>ff  1 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E|| 000000000 @`S"`   T Ԕ?"0 B  ZD1?" :  C xon@E@E 1?" :  ^Time ( 2  -  3 r0n@E@E 1?"  }#Instruction-Level Parallelism (ILP) $( 2$    3 rDn@E@E 1?"=] d Pipelining ( 2   L 0   # Z!N _   `T `  # Z_   H1?"`,    0e0e    BCDEF  1 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E||`` @`S" P   TZ Ԕ?"_N /   @T `  # Z/   H1?"`,    0e0e    BCDEF  1 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E||`` @`S" P   TZ Ԕ?"/N    _T `  # Z   H1?"`,    0e0e    BCDEF  1 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E||`` @`S" P   TZ Ԕ?"N _   T `  # Z_   H1?"`,    0e0e    BCDEF  1 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E||`` @`S" P   ZZ Ԕ?"_N _   @ T `  # Z_   H1?"`,    0e0e    BCDEF  1 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E||`` @`S" P   ZZ Ԕ?"_B   BZD1?"/ B   BZD1?"@@/ B   BZD1?"0 B   BZD1?"``/ B  ZD1?"y]]  C x|n@E@E 1?"nrU ^Time ( 2  H  0޽h ? affy___PPT10Y+D='  = @B + ) 0L0 0 j(  0  0 s *nt`  n z 0 s *nt 00 n ,zb7 H 0 0޽h ? affy___PPT10Y+D='  = @B +y * 0 4 0(  4 x 4 c $nt`  n x 4 c $ntP00 n H 4 0޽h ? a(y___PPT10Y+D='  = @B +j&  0 %% 44@!%(  @~ @ s *nt`  n  @ s *nt0n  n 2e9"cd @ < ?r @ < ?"0 =  @ Hn@E@E?" c  J   r @ < ?"0 C  @ NDn@E@E ?"   J     @ NDn@E@E ?" o  J     @ Nn@E@E ?" o  J   r  @ < ?"0 I   @ Zn@E@E ?"~  J     @ Nr@E@E ?"   J   r @ < ?"0 O  @ NTr@E@E ?" z  J    @ Nr@E@E ?" z)  J    @ Nr@E@E ?" )  J   r @ < ?". f   @ ZP*r@E@E ?"   J    @ H2r@E@E?" :  J   r @ < ?". l   @ N z)< vB 3@@ NDԔ? zf  4@ Z4r@E@E ?p@ ,M  v"Operating on one element at a time# #  H @ 0޽h ? ̙3333y___PPT10Y+D='  = @B +R&  0 y%q%044D %(  D~ D s * rt`  r  D s *tt0n  r 2e9"cd D < ?r D < ?"0 =  D H%@E@E?" c  J   r D < ?"0 C  D H@t@E@E?"   J     D Nt@E@E ?" o  J     D N$t@E@E ?" o  J   r  D < ?"0 I   D Z3t@E@E ?"~  J     D N =t@E@E ?"   J   r D < ?"0 O  D NFt@E@E ?" z  J    D NLJt@E@E ?" z)  J    D NtSt@E@E ?" )  J   r D < ?". f   D Z@ct@E@E ?"   J    D Hplt@E@E?" :  J   r D < ?". l   D H Kt@E@E?"  J    D N~t@E@E ?" F  J    D N|t@E@E ?" F  J   r D < ?".  D ZHt@E@E ?" V  J    D Nxt@E@E ?"  J   r D < ?". &  D N`t@E@E ?" Q  J    D Nt@E@E ?" Q  J    D Nt@E@E ?"   J   r  D < ?"S   !D Zt@E@E ?" 3  J    "D Ht@E@E?")   J   r #D < ?"S   $D Ht@E@Ef?") /  J    %D Nt@E@E ?") /  J    &D Nt@E@E ?")   J   r 'D < ?"S f  (D Zt@E@E ?" V  J    )D Nt@E@E ?") :  J   r *D < ?"S l  +D Nu@E@E ?") :  J    ,D N u@E@E ?")  J    -D Nu@E@E ?") F  J   L  J .D#  t r2 /D B 8c?  0D Ndu@E@E ? J _+$ $  vB 1D NDԔ? ij vB 2D NDԔ?> z< vB 3D@ NDԔ? z@  4D Z)u@E@E ?p@ ,M  v"Operating on one element at a time# #  H D 0޽h ? ̙3333y___PPT10Y+D='  = @B +[0  0 /z/@FFH/(  HvB H NDԔ?> I< vB H NDԔ?> )< vB H NDԔ?> ` < vB H@ NDԔ? T vB H@ NDԔ? f vB H@ NDԔ? z@  H s *\:ut0n  u 2e9"cvB  H NDԔ? @ vB  H NDԔ? @ L  PJ  H#  o z2  H <8c?" P  H H0Hu@E@E ?"0 LJ _+$ $  ~ H s *Aut`  u d H < ? r H < ?"0 =  H HHQu@E@E?" c  J   r H < ?"0 C  H HZu@E@E?"   J    H Hcu@E@E?" o  J    H Hlu@E@E?" o  J   r H < ?"0 I  H Zdvu@E@E ?"~  J    H Nu@E@E ?"   J   r H < ?"0 O  H N|u@E@E ?" z  J    H NԌu@E@E ?" z)  J    H Nu@E@E ?" )  J   r H < ?". f   H Zu@E@E ?"   J    H H|u@E@E?" :  J   r  H < ?". l   !H Hdu@E@E?"  J    "H Hu@E@E?" F  J    #H Hu@E@E?" F  J   r $H < ?".  %H Zu@E@E ?" V  J    &H Nu@E@E ?"  J   r 'H < ?". &  (H Npu@E@E ?" Q  J    )H N@u@E@E ?" Q  J    *H Nhu@E@E ?"   J   r +H < ?"S   ,H HJ@E@Ef?")   J   r -H < ?"S   .H HJ@E@Ef?") /  J    /H HJ@E@Ef?") /  J    0H HJ@E@Ef?")   J   r 1H < ?"S f  2H Z*J@E@E ?" V  J    3H N 4J@E@E ?") :  J   r 4H < ?"S l  5H N=J@E@E ?") :  J    6H NLAJ@E@E ?")  J    7H NxPJ@E@E ?") F  J   L  PJ 8H#  t z2 9H <8c?" P :H HRJ@E@E ?"0 LJ _+$ $  vB ;H NDԔ? ij vB  z<  =H ZD^J@E@E ?p@ M  pOperate on MULTIPLE elements   L  PJ >H#  z z2 ?H <8c?" P @H HgJ@E@E ?"0 LJ _+$ $  L  PJ AH#  T z2 BH <8c?" P CH HsJ@E@E ?"0 LJ _+$ $  vB DH NDԔ? j vB EH@ NDԔ?   FH Zh}J@E@E ? iL  (Single Instruction, Multiple Data (SIMD)2) #  H H 0޽h ? ̙3333y___PPT10Y+D='  = @B +F  0 meP!"L(  L~ L s *Jt`  J ~ L s *Jt00 J L 0  L#  <T 0 L# @  Z L s *0Z L s *0 Z L s * 0Z  L s *0  L NJ%e%e"`uP |  l 4.0 (32 bits) 2b   T 0  L# @ YZ  L s *0Z  L s *0 Z L s * 0Z L s *0 L N$J%e%e"`0 @  e+2 2fb  L NKJ%e%e"`P |  l 4.0 (32 bits) 2b    L NJ%e%e"`d P |  l 3.5 (32 bits) 2b    L N|J%e%e"`P J|  m -2.0 (32 bits) 2b    L NlJ%e%e"`   l 2.3 (32 bits) 2b    L NdJ%e%e"`d   l 1.7 (32 bits) 2b    L N|J%e%e"`  l 2.0 (32 bits) 2b    L N J%e%e"` 4  j-1.5 (32 bits) 2b   T 0 L# @Z L s *0Z L s *0 Z L s * 0Z L s *0 L N@J%e%e"`3_ l 0.3 (32 bits) 2b    L NJ%e%e"`d 3_ l 5.2 (32 bits) 2b    L NJ%e%e"`3 _ l 6.0 (32 bits) 2b     L NdJ%e%e"`34_ i 2.5 (32 bits) 2b  <B !L # 0H L 0޽h ? ̙3333y___PPT10Y+D='  = @B + 9 0 `P(  P~ P s *$Jt``p  J  P NpJ%e%e"`0  More than 70 instructions. Arithmetic Operations supported: Addition, Subtraction, Mult, Division, Square Root, Maximum, Minimum. Can operate on Floating point or Integer data.  2`&U  ] L  C  P#  C \ P s ,A? C Z P s *: w H P 0޽h ? ̙33y___PPT10Y+D='  = @B +  0  `\(  `~ ` s *4Jt`  J  ` s *hJt00 J ,1ArH ` 0޽h ? ̙3333y___PPT10Y+D='  = @B +  0 d<(  d~ d s *\Jt`  J ~ d s *4Jt00 J H d 0޽h ? ̙3333y___PPT10Y+D='  = @B +  0 h<(  h~ h s *_t`  _ ~ h s *|_t00 _ H h 0޽h ? ̙3333y___PPT10Y+D='  = @B +  0 l<(  l~ l s *4Jt`  _ ~ l s * Jt00 J H l 0޽h ? ̙3333y___PPT10Y+D='  = @B + F + 0 EEFFIE(    s *2_t`?  _ z   `9_g ?th _ ,zb7 HBL 0`  # P    `;_%e%e g ?0  JArray Controller( 2   f@_%e%e g ?` UInter-PE Connection Network( 2B  ZDԔ?0aN p@P   `     `$?_%e%eg ?  @  <PE( 2    `pH_%e%eg ? p @P  WMem PB   ZDԔ? p B    `DԔ?p B   ZDԔ?  t  S D0e0e    B`CDE F @  Ԕ 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E||`@ ` B  ZDԔ?B   `DԔ?  aN p@P    @ `    `(N_%e%eg ?  @  <PE( 2   `Q_%e%eg ? p @P  WMem PB  ZDԔ? p B   `DԔ?p B  ZDԔ?  t  S D0e0e    B`CDE F @  Ԕ 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E||`@ ` aN p@P   ` `    `DW_%e%eg ?  @  <PE( 2   `Z_%e%eg ? p @P  WMem PB  ZDԔ? p B   `DԔ?p B  ZDԔ?  t  S D0e0e    B`CDE F @  Ԕ 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E||`@ ` aN p@P   p  `     ```_%e%eg ?  @  <PE( 2 !  `d_%e%eg ? p @P  WMem PB " ZDԔ? p B #  `DԔ?p B $ ZDԔ?  t % S D0e0e    B`CDE F @  Ԕ 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E||`@ ` aN p@P  & P `  '  `|i_%e%eg ?  @  <PE( 2 (  `,m_%e%eg ? p @P  WMem PB ) ZDԔ? p B *  `DԔ?p B + ZDԔ?  t , S D0e0e    B`CDE F @  Ԕ 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E||`@ ` aN p@P  - `  .  `r_%e%eg ?  @  <PE( 2 /  `Hv_%e%eg ? p @P  WMem PB 0 ZDԔ? p B 1  `DԔ?p B 2 ZDԔ?  t 3 S D0e0e    B`CDE F @  Ԕ 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E||`@ ` aN p@P  4 0`  5  `{_%e%eg ?  @  <PE( 2 6  `d_%e%eg ? p @P  WMem PB 7 ZDԔ? p B 8  `DԔ?p B 9 ZDԔ?  t : S D0e0e    B`CDE F @  Ԕ 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E||`@ ` aN p@P  ; `  <  `Є_%e%eg ?  @  <PE( 2 =  `_%e%eg ? p @P  WMem PB > ZDԔ? p B ?  `DԔ?p B @ ZDԔ?  t A S D0e0e    B`CDE F @  Ԕ 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E||`@ ` B B ZDԔ?E 1E  C  f_%e%e g ?   SControl0( 2B D  `DԔ?   E  f_%e%e g ?u w  BData"( 2Q F  f_%e%e g ?` O  Only requires one controller for whole array Only requires storage for one copy of program All computations fully synchronized 2H  0޽h ? a( , 0 4,  ď(    s *آ_t@  _ zTL `p # px  Hg ?`px  Hg ?`px  Hg ?`p x  Hg ?` pPx  Hg ?`Ppx   Hg ?`px   Hg ?`px   Hg ?`px   Hg ?`p@x   Hg ?`@ppx  Hg ?`ppx  Hg ?`px  Hg ?`px  Hg ?`p0x  Hg ?`0p`x  Hg ?``p   f_%e%eg ?# JScalar Registers( 2    fX_%e%eg ?; <r0( 2   fD_%e%eg ?| =r15( 2   f_%e%eg ?#O  JVector Registers( 2    f_%e%eg ?  <v0( 2   f_%e%eg ?| =v15( 2TL `p # px  Hg ?`px  Hg ?`px  Hg ?`p x  Hg ?` pPx  Hg ?`Ppx   Hg ?`px ! Hg ?`px " Hg ?`px # Hg ?`p@x $ Hg ?`@ppx % Hg ?`ppx & Hg ?`px ' Hg ?`px ( Hg ?`p0x ) Hg ?`0p`x * Hg ?``p +  f(_%e%eg ?\GC =[0]( 2TL `p ,# M px - Hg ?`px . Hg ?`px / Hg ?`p x 0 Hg ?` pPx 1 Hg ?`Ppx 2 Hg ?`px 3 Hg ?`px 4 Hg ?`px 5 Hg ?`p@x 6 Hg ?`@ppx 7 Hg ?`ppx 8 Hg ?`px 9 Hg ?`px : Hg ?`p0x ; Hg ?`0p`x < Hg ?``p =  f_%e%eg ?\  =[1]( 2TL `p ># P px ? Hg ?`px @ Hg ?`px A Hg ?`p x B Hg ?` pPx C Hg ?`Ppx D Hg ?`px E Hg ?`px F Hg ?`px G Hg ?`p@x H Hg ?`@ppx I Hg ?`ppx J Hg ?`px K Hg ?`px L Hg ?`p0x M Hg ?`0p`x N Hg ?``p O  f_%e%eg ?\  =[2]( 2TL `p P#  px Q Hg ?`px R Hg ?`px S Hg ?`p x T Hg ?` pPx U Hg ?`Ppx V Hg ?`px W Hg ?`px X Hg ?`px Y Hg ?`p@x Z Hg ?`@ppx [ Hg ?`ppx \ Hg ?`px ] Hg ?`px ^ Hg ?`p0x _ Hg ?`0p`x ` Hg ?``p a  f(_%e%eg ?\   2( 2TL `p b#  ]px c Hg ?`px d Hg ?`px e Hg ?`p x f Hg ?` pPx g Hg ?`Ppx h Hg ?`px i Hg ?`px j Hg ?`px k Hg ?`p@x l Hg ?`@ppx m Hg ?`ppx n Hg ?`px o Hg ?`px p Hg ?`p0x q Hg ?`0p`x r Hg ?``p s  f_%e%eg ?\L 2( 2TL `p t# ` px u Hg ?`px v Hg ?`px w Hg ?`p x x Hg ?` pPx y Hg ?`Ppx z Hg ?`px { Hg ?`px | Hg ?`px } Hg ?`p@x ~ Hg ?`@ppx  Hg ?`ppx  Hg ?`px  Hg ?`px  Hg ?`p0x  Hg ?`0p`x  Hg ?``p   f_%e%eg ?\p 2( 2TL `p # px  Hg ?`px  Hg ?`px  Hg ?`p x  Hg ?` pPx  Hg ?`Ppx  Hg ?`px  Hg ?`px  Hg ?`px  Hg ?`p@x  Hg ?`@ppx  Hg ?`ppx  Hg ?`px  Hg ?`px  Hg ?`p0x  Hg ?`0p`x  Hg ?``p   f$_%e%eg ?\  2( 2TL `p # mpx  Hg ?`px  Hg ?`px  Hg ?`p x  Hg ?` pPx  Hg ?`Ppx  Hg ?`px  Hg ?`px  Hg ?`px  Hg ?`p@x  Hg ?`@ppx  Hg ?`ppx  Hg ?`px  Hg ?`px  Hg ?`p0x  Hg ?`0p`x  Hg ?``p   f%e%eg ?\ D [VLRMAX-1] ( 2    f%e%eg ?`V =VLR( 2p  Ho?P `  p  Ho?` @p  Ho?` L  p   # P `  x  Hg ? p  x  Hg ?p x  Hg ? p 0 x  Hg ?0 p x  Hg ? p  p  Hg ?P  p  Hg ?`  p  Hg ? p  Hg ? pp  Hg ?p p  Hg ? p  Hg ?p  Hg ?`  @p  Hg ? @p  Hg ? p@p  Hg ?p @p  Hg ? @p  Hg ?@L ` pp  # @ P 2   f%e%eg ?P i  ;+( 2 B  TDg ? P B B TDg ?@` pP B  ZDg ? p L ` pp  # @ ` P 2   f%e%eg ?P i  ;+( 2 B  TDg ? P B B TDg ?@` pP B  ZDg ? p L ` pp  # @P P 2   f%e%eg ?P i  ;+( 2 B  TDg ? P B B TDg ?@` pP B  ZDg ? p L ` pp  # @P 2   f!%e%eg ?P i  ;+( 2 B  TDg ? P B B TDg ?@` pP B  ZDg ? p L ` pp  # @pP 2   f&%e%eg ?P i  ;+( 2 B  TDg ? P B B TDg ?@` pP B  ZDg ? p L ` pp  # @` P 2   fX+%e%eg ?P i  ;+( 2 B  TDg ? P B B TDg ?@` pP B  ZDg ? p    fx0%e%eg ?  =[0]( 2   f`.%e%eg ?  =[1]( 2   f`7%e%eg ?   A[VLR-1]( 2   `X;%e%eg ?R   h.Vector Arithmetic Instructions VADD v3, v1, v2/( 2/   f9%e%eg ? [K  <v3( 2   f<%e%eg ?\[K   <v2( 2   f8H%e%eg ?[K  <v1( 2p  Ho? P p  Hg ? P p  Hg ? @P p  Hg ? @P p  Hg ? P p  Hg ? PP p  Hg ? PP p  Hg ?p 0p  Hg ? 0p  Hg ?0p  Hg ?0 0p  Hg ?0 0p  Hg ? 0p  Hg ? @0p  Hg ?@0p  Hg ?0p  Hg ?P0p  Hg ?P0B  ZDg ?P ` B  ZDg ?P P B  ZDg ?P 0B  ZDg ?P P B  ZDg ?P `B  ZDg ?P    fQ%e%eg ? l  <v1( 2    `U%e%eg ?; R }1Vector Load and Store Instructions VLD v1, r1, r20#( 28 <22|B  TDg ?0pp  # l \%e%eg ?l BBase, r1 ( 2 |B  TDg ?`|B  TDg ?`0 0 |B  TDg ?0   # l|`%e%eg ?gl D Stride, r2 ( 2 j"  Bg ?j"  Bg ? j"  Bg ?     fe%e%eg ? {F PVector Length Register( 2     fj%e%eg ?L  @Memory( 2 p   Hg ?p0H  0޽h ? a(a - 0L0 )a!a`(    s *(stp   z^  68c?81O  Tpnana8c?`  {Single Port Memory 16 banks of 64-bit words + 8-bit SECDED 80MW/sec data load/store 320MW/sec instruction buffer refill4-  ? |  T`nana8c?  K4 Instruction Buffers XB  08c? IY XB  08c? y) XB  08c?p Yp XB   08c?@ @ XB   08c?  ^   68c?  h ^   68c?  ^   68c? i ^  68c? 9i   Zȩnana8c? (}  ? 64-bitx16  ^B  68c? )9 ^B  68c?p )p ^B  68c? ) ^B  68c? )Y ^  68c? I Y   Znana8c?   9NIP ^  68c?I I  ZHnana8c?  9LIP L    #  99 f  68c?    Zlnana8c?   9CIP XB  08c? 9 ^B  68c?H i I H XB  08c? y ) XB  08c?p Y p XB  08c?H H XB   08c?   !  BCDE F8c?@H Y B 1^B " 68c?H Y9H ^ # 68c? dB $@ <8c?)^B % 68c?x x^B &@ 68c?1 1 ' Znana8c? X(A0)8  dB (@ <8c?)  ) Znana8c?  d( (Ah) + j k m )8    * Zpnana8c?  a 64 T Regs  ^ + 68c?   dB ,@ <8c?a )a ^B - 68c?  ^B .@ 68c?  / Z nana8c? f  X(A0)8  dB 0@ <8c?A ) A  1 ZPnana8c?  F  d( (Ah) + j k m )8    2 Znana8c?  %  b 64 T Regs  0 L   3#  l 4 <8c? `B 5 01? HH`B 6 01? `B 7 01? `B 8 01? hh`B 9 01? `B : 01? ((`B ; 01?  < Z`nana8c?O "t 8S0   = Znana8c?O <" 8S1   > Znana8c?O "4 8S2   ? Ztbnana8c?O " 8S3   @ Z\nana8c?O \" 8S4   A Znana8c?O "T 8S5   B ZHnana8c?O " 8S6   C Znana8c?O |" 8S7  0 L  l  D# E } l E <8c? p `B F 01? `B G 01? 88`B H 01? `B I 01? `B J 01? X X `B K 01?  `B L 01?    M Znana8c?O l' 8A0   N Z\ nana8c?O 'd 8A1   O Znana8c?O ,' 8A2   P Znana8c?O '$  8A3   Q Z@nana8c?O '  8A4   R Znana8c?O L '  8A5   S Znana8c?O 'D  8A6   T Z nana8c?O '  8A7   U Z#nana8c?` 1 v bSi*   V ZH)nana8c?x` R 6 cTjk*   W Z.nana8c?H ` 7   HAi*   X Z2nana8c? ` _  cBjk*  ^ Y 68c?9  Z Z7nana8c?PI <FP Add  [ ZL5nana8c?P0V ^FP Mul  \ Z\?nana8c?XP `FP Recip  XB ] 08c?9XB ^ 08c?Q9Q|L PpN  _# H9F f ` 68c?QpA  a ZDnana8c?'P =Int Add  b ZHnana8c?'i ? Int Logic   c ZxNnana8c?'8  ? Int Shift  `B d 08c? p `B e 08c?p f ZOnana8c?' EN  _Pop Cnt `B g 08c? p  h  B1CDEF8c?  0 @*Y i  BCDE F8c?@X*i j  B1C!DEF8c?  0 @* k  BCDE F8c?@y* l  B1CDEF8c?0 @X* m  BQCQDE F8c?PPP@*)  n ZWnana8c?P!V bSj*   o Z]nana8c?P! bSi*   p Ztanana8c?XP5 bSk*  ^ q 68c? 9  r Zgnana8c? Pf  XAddr Add   s Zcnana8c?h P&  jAddr Mul  $XB t 08c?a 9a ^B u 68c? ) ^B v 68c?a )a ^B w@ 68c? 9  x Zpnana8c?   bAj*   y Zvnana8c?8   HAi*   z Ztnana8c? f  bAk*  % { Znana8c?0@( ;memory bank cycle 50 ns processor cycle 12.5 ns (80MHz)D<  d | <8c?8<XB } 01?XB ~ 01?XB  01?WWXB  01?XB  01?XB  01?XB  01?L @ x # #y L[  Znana8c?@  8V0    Znana8c? 8 8V1    ZԐnana8c?  8V2    Zpnana8c?`  8V3    Znana8c? X 8V4    Zܛnana8c?   8V5    Zpnana8c?  8V6    Znana8c? x 8V7  B @ ZD8c??0|B  TD8c?XB @ ZD8c?vB  ND8c?yvB  ND8c?HvB  ND8c?HH|B  TD8c?yy  Z nana8c?)F bVk*    Z\nana8c?) bVj*    Znana8c?) HVi*  L @k # 8.f  68c?ak  Z0nana8c?/@A =V. Mask L @  # ()f  68c?a  Znana8c?@  ? V. Length     `%e%e8c? w a64 Element Vector Registers*( 2H  0޽h ? a(4 / 0 44NR3(  ~  s *}t`   r" R S @~t 00  %F  8 |  p JlB  <8c))? lB  <8c))?Y Y lB  <8c))? lB  <8c))? lB  <1))? lB   <1))?  lB   <1))?   lB   <1))? P P~2   NQ1))? ` )     C xxaxa1))? o =  \P1>*Zg o ~2  NQ1))? Y r    C xxaxa1))?  k  \P2>*Zg o ~2  NQ1))? Y    C x`xaxa1))? -k  \P3>*Zg o ~2  NQ1))? CY    C x|xaxa1))? ^k  \P4>*Zg o ~2  NQ1))?" )    C xxaxa1))? =  \P5>*Zg o ~2  NQ1))? r    C x|xaxa1))?   \P6>*Zg o ~2  NQ1))?     C xxaxa1))? -  \P7>*Zg o ~2  NQ1))? C    C xxaxa1))? ^  \P8>*Zg o ~2  NQ1))?i )    C xxaxa1))?K =  \P9>*Zg o ~2  NQ1))?d r    C xxaxa1))?:    ]P10>*Zg o ~2   NQ1))?d    ! C x$Yxaxa1))?: -  ]P11>*Zg o ~2 " NQ1))?d C   # C xhYxaxa1))?5 ^  ]P12>*Zg o ~2 $ NQ1))? #   % C x Yxaxa1))?u @9  ]P13>*Zg o ~2 & NQ1))? l   ' C xYxaxa1))?e 0{  ]P14>*Zg o ~2 ( NQ1))?   ) C xYxaxa1))?e &0 ]P15>*Zg o ~2 * NQ1))? <  + C xYxaxa1))?` X+ ]P16>*Zg o ~B , N1))?2  B~B - N1))?  M~B . N1))? B Z~B / N1))?|`~B 0 N1))?= "~B 1 N1))? .~B 2 N1))? L :~B 3 N1))? r4~B 4 N1))?8 ~B 5 N1))? ~B 6 N1))? F ~B 7 N1))?  k ~B 8 N1))?2 8 ~B 9 N1))? D ~B : N1))? O B ~B ; N1))?K f v2 = NQ1))?W.  >  `8&Yxaxa1?0P5 zP1>*Zg o  v2 ? NQ1))?dP&0  @  `+Yxaxa1?P51 zP2>*Zg o  v2 A NQ1))?]4P  B  `0Yxaxa1?P]A {P10>*Zg o  L hz7  C#  D C x<7Yxaxa1))?hz+" _.$*Zg   E C x$ Shared Bus `  N Tg ))?"`_ H  0޽h ? ̙3333___PPT10i.0S+D='  = @B +Z  0  Z(  r  S RYt`  Y   BA 1?"6@ NNN?Nt H  0޽h ? U>=UU(80___PPT10.P08@Z  0 @Z(  r  S dYt`  Y   BA 1?"6@ NNN?N9 H  0޽h ? U>=UU(80___PPT10.P  0 D<`(  r  S PhYt`  Y r"  S (iYt 00 Y   BA 1?"6@ NNN?Ny@ H  0޽h ? U>=UU(80___PPT10.QP) _$  0 $(  r  S wYt`  Y r"  S xYtP00 Y H  0޽h ? U>=UU(80___PPT10.RW?  0 !y(  r  S m)t`  )   T=UU(___PPT10i.pH>+D='  = @B +'  0 R(  x  c $"t`  "   Tz 1?"6@`NNN?N ? Processor     T` 1?"6@`NNN?N 3 <Caches   Tf1?"6@`NNN?N <  B Single bus     T|= 1?"6@`NNN?N  @ <memory   TB 1?"6@`NNN?Np  ? Processor     TV 1?"6@`NNN?N D  <Caches    TO 1?"6@`NNN?N@ ? Processor      T* 1?"6@`NNN?N k <Caches B   NDo?"0@NNN?NP B   NDo?"0@NNN?NP B   TDo?"0@NNN?N B  TDo?"0@NNN?N B  TDo?"0@NNN?N00 B  TD3o?"0@NNN?N00 B  TD3o?"0@NNN?N B  TD3o?"0@NNN?N B  TD3o?"0@NNN?NP @ @ #  B4"1?"6@ NNN?N 0 P ,$D 0 ?x=100 !  B&1?"6@ NNN?NPp,$@ 0 =x=100 !  B=&1?"6@ NNN?NPPp,$@ 0 =x=100 #  B<0&1?"6@ NNN?NP@`p,$D 0 ?x=452 #  B 1?"6@ NNN?N ,$D 0 ?x=452 H  0޽h ? U>=UU(___PPT10.pH>+2D'  = @B D' = @BA?%,( < +O%,( < +DA' =%(D' =%(D' =A@BBBB0B%(D' =1:Bvisible*o3>+B#style.visibility<*%(Dq' =%(D' =%(D' =A@BBBB0B%(D' =1:Bvisible*o3>+B#style.visibility<*%(D' =A@BBBB0B%(D' =1:Bvisible*o3>+B#style.visibility<*%(D' =A@BBBB0B%(D' =1:Bhidden*o3>+B#style.visibility<*%(DA' =%(D' =%(D' =A@BBBB0B%(D' =1:Bvisible*o3>+B#style.visibility<*%(DA' =%(D' =%(D' =A@BBBB0B%(D' =1:Bvisible*o3>+B#style.visibility<*%(D' =%(D1' =%(D' =A@BBBB0B%()))D' =,54 f*3>!Bstyle.color='`B@BPB<*++0+0 ++0+0 ++0+0 ++0+0 ++0+0 ++0+0 ++0+0 +&  0 3+(  x  c $% t`     T*  1?"6@`NNN?N ? Processor     T,  1?"6@`NNN?N 3 <Caches   T f1?"6@`NNN?N <  B Single bus     T$\& 1?"6@`NNN?N  @ <memory   T$_& 1?"6@`NNN?Np  ? Processor     T(*& 1?"6@`NNN?N D  <Caches    T& 1?"6@`NNN?N@ ? Processor      Tp" 1?"6@`NNN?N k <Caches B   NDo?"0@NNN?NP B   NDo?"0@NNN?NP B   TDo?"0@NNN?N B  TDo?"0@NNN?N B  TDo?"0@NNN?N00 B  TD3o?"0@NNN?N00 B  TD3o?"0@NNN?N B  TD3o?"0@NNN?N B  TD3o?"0@NNN?NP @ @   B1?"6@ NNN?NPp =x=100   B*1?"6@ NNN?NP``p ?x=452 #  Bl*1?"6@ NNN?N ,$D 0 ?x=452   TGz<HYJIf1?"6@ NNN?Np@ ,$D  0/  N@s  1?"6@ NNN?N,$ 0 ?" g (H  0޽h ? U>=UU(___PPT10s.pH>+^l2D'  = @B D' = @BA?%,( < +O%,( < +D' =%(D' =%(D7' =4@BBBB%(D' =1:Bvisible*o3>+B#style.visibility<*%(D' =-s6Bwipe(left)*<3<*D' =%(D' =A@BBBB0B%(D' =1:Bvisible*o3>+B#style.visibility<*%(D' =%(D' =A@BBBB0B%(D' =1:Bvisible*o3>+B#style.visibility<*%(+p+0+0 ++0+0 +$  0 $(  r  S Pȏ t`  K  r"  S  t 00 K  H  0޽h ? U>=UU(80___PPT10.m  0    0 (  r  S *t`     H 1?"6@ NNN?N )  N  1?"6@ NNN?N mlocal process P address space4   H 1?"6@ NNN?N  )  N\5 1?"6@ NNN?N mlocal process Q address space4 /   N`Sff1?"6@ NNN?NG  o ,$@ 0 ? address x   /   N,Cff1?"6@ NNN?NG o ,$D 0 ? address y   x2   3 <BaENGayH0I Q 1? Wb*a_JWb*a_J `T*a_J `T"6@ NNN?Ne ,$D  00   N? 1?"6@ NNN?Nw v ,$ 0 @ send x, Q, t  J  NL[ 1?"6@ NNN?N D,$ 0 Z recv y, P, t   8  H 1?"6@ NNN?N D  User level send/receive abstraction  local buffer (x,y), process (Q,P) and tag (t)  Provides naming and synchronizationN& V &B6CH  0޽h ?  U>=UU(  ___PPT10u .c+,łDi '  = @B D$ ' = @BA?%,( < +O%,( < +D' =%(D' =%(D' =A@BBBB0B%(D' =1:Bvisible*o3>+B#style.visibility<* %(D' =A@BBBB0B%(D' =1:Bvisible*o3>+B#style.visibility<* %(D' =%(D' =%(D7' =4@BBBB%(D' =1:Bvisible*o3>+B#style.visibility<* %(D' =-s6Bwipe(left)*<3<* DA' =%(D' =%(D' =A@BBBB0B%(D' =1:Bvisible*o3>+B#style.visibility<* %(DA' =%(D' =%(D' =A@BBBB0B%(D' =1:Bvisible*o3>+B#style.visibility<*%(++0+ 0 ++0+ 0 ++0+ 0 ++0+0 +-  0 D<(  r  S <t`  " r"  S $tP 0    BA  1?"6@ NNN?NP H  0޽h ? U>=UU(___PPT10i.+D='  = @B + . 0L0 (    s *hYt_  Y z   `Yg ?tP0  Y ,zb7 H  0޽h ? a(y___PPT10Y+D='  = @B +r  # 0L0    (  x  c $tYt`  Y x  c $Yt00 Y b L  Ykt  # G@~  NOd @1? Ykt _N {*  {*  C xXY?4d @1?"{ =TPU 0   C xY?d @1?"5  <TPU1    C xY?d @1?"r  <TPU2    C xXY?Od @1?"* <TPU3 'N  cL    )|    3 rYxaxad @1? f L  >Icache    3 rYxaxad @1? L  ;TLB   3 rYxaxad @1?  cL  B L1 D-cache     3 r,Yxaxad @1?- / y  @L2 cache   H  0޽h ? kas   0 #  pD(  D~ D s *>T&(  T~ T s *Wt%Ex  W   T ZW1?"   t>Adds to function unit utilization, but results are thrown away? ?| T T4d @1? ' 6| T T4d @1? ' 2 | T T4d @1? |/ | T T4d @1? & /  T 3 r?4d @ 1?" ' :  T 3 r?4d @ 1?"b @  T 3 r?4d @ 1?"b6  T 3 r?4d @ 1?"b <   T 3 r?4d @ 1?" |<   T 3 r?4d @ 1?" a 9 | T TOd @1? &/  T 3 r?Od @ 1?"b: T 3 r?Od @ 1?"b D T 3 r?Od @ 1?"b6 T 3 r?Od @ 1?"'<  T 3 r?Od @ 1?"b2  T 3 r?Od @ 1?"b2  T 3 r?Od @ 1?" &9  T 3 r?Od @ 1?" a/  L ,/  T#  /  T 3 r?4d @1?"L: T 3 r?4d @1?"L6 T 3 r?4d @1?",2  T 3 r?4d @1?"L2  T 3 r?4d @1?",: T 3 r?4d @1?"n D T 3 r?4d @1?",6 T 3 r?4d @1?".  6  T 3 r?4d @1?".  2  !T 3 r?4d @1?".  : "T 3 r?4d @1?"lD #T 3 r?4d @1?",: $T 3 r?4d @1?"n @ %T 3 r?4d @1?"l@ &T 3 r?4d @1?"- /  'T 3 r?Od @ 1?" |9  (T 3 r?Od @ 1?" a/  )T # l`WxaxaOd @1?Y! Q <Time 2^B *T 61? rL t  r  +T#  \2  ,T 3 r?4d @1?"t  r `B -T 0D8c?t  r B .TB N?D8c?"t  r L t  r  /T#  + :  0T 3 r?4d @1?"t  r `B 1T 0D8c?t  r B 2TB N?D8c?"t  r L t  r  3T#   < 4T 3 r?4d @1?"t  r `B 5T 0D8c?t  r B 6TB N?D8c?"t  r L t  r  7T#  1  8T 3 r?4d @1?"t  r `B 9T 0D8c?t  r B :TB N?D8c?"t  r L t  r  ;T#  V1  TB N?D8c?"t  r H T 0޽h ?  ++1&_rb  0 4,@++\(  \~ \ s *H'Wt`l  W  \ Z(W1?" ut  f0Limited utilization when only running one thread1 1 \ 3 r?4d @1?" |: \ 3 r?4d @1?"'D \ 3 r?4d @1?" | : \ 3 r?4d @1?" |D \ 3 r?4d @1?"':  \ 3 r?4d @1?"b:  \ 3 r?4d @1?" |6  \ 3 r?4d @1?"'@  \ 3 r?4d @1?" | 6  \ 3 r?4d @1?" |@ \ 3 r?4d @1?"'6L ,/  \#  /  \ 3 r?d @1?",2  \ 3 r?d @1?",2  \ 3 r?d @1?"n <  \ 3 r?d @1?"N 2  \ 3 r?d @1?" <  \ 3 r?d @1?" +/  \ 3 r?d @1?"L2  \ 3 r?d @1?" K/  \ 3 r?Od @ 1?"b: \ 3 r?Od @ 1?" ' : \ 3 r?Od @ 1?"b D \ 3 r?Od @ 1?"b6 \ 3 r?Od @ 1?" ' 6 \ 3 r?Od @ 1?"b @ \ 3 r?Od @ 1?"b6 \ 3 r?Od @ 1?" |<   \ 3 r?Od @ 1?" | 2  !\ 3 r?Od @ 1?" ' 2  "\ 3 r?Od @ 1?" &9  #\ 3 r?Od @ 1?" a/  $\ 3 r?Od @ 1?" | /  %\ 3 r?Od @ 1?" & /  &\ 3 r?Od @ 1?" a 9  '\ 3 r?Od @ 1?" |9  (\ 3 r?Od @ 1?" a/  )\ # l,9WxaxaOd @1?Y! Q <Time 2^B *\ 61? r^B +\ 61?{{H \ 0޽h ?  ++1&_rb  0 0**d'(  d~ d s *?Wt`l  W | d T4d @1? |:| d Td @1?'D| d Td @1?b:| d TOd @1? | :| d T4d @1? ' :| d Td @1?b D  d ZCW1?" g  g1Intra-thread dependencies still limit performance2 2|  d T4d @1? |6|  d Td @1?'@|  d TOd @1? | 6|  d Td @1?b @| d T4d @1? |2 | d TOd @1? | 2 | d Td @1?b < | d TOd @1? | /  d 3 r?d @1?" |D d 3 r?d @1?" |@ d 3 r?d @1?" |<  d 3 r?Od @1?"': d 3 r?Od @1?"'6 d 3 r?Od @1?"'2  d 3 r?Od @1?" &/  d 3 r?4d @1?"b:d L ,9  d#  9  d 3 r?Od @ 1?"N 6 d 3 r?Od @ 1?"  6 d 3 r?Od @ 1?"n <  d 3 r?Od @ 1?"N 2  d 3 r?Od @ 1?"  2   d 3 r?Od @ 1?" +/  !d 3 r?Od @ 1?"m 9  "d 3 r?Od @ 1?"M /  #d 3 r?Od @ 1?" /  $d 3 r?Od @ 1?" 9  %d 3 r?Od @ 1?" k9  &d 3 r?Od @ 1?",6 'd 3 r?Od @ 1?",2  (d 3 r?Od @ 1?" +/  )d # l8RWxaxaOd @1?Y! Q <Time 2^B *d 61? rH d 0޽h ?  ++1&_rb]  0   ))l(  l~ l s *XWtl  W | l Td @1?'D| l Td @1?b:| l TOd @1? | :| l T4d @1? ' :| l Td @1?b D| l TOd @1?':   l Z\W1?" b  u?Maximum utilization of function units by independent operations@ @|  l Td @1?'@  l 3 r?Od @ 1?"b6  l 3 r?Od @ 1?"'<   l 3 r?Od @ 1?" |<  l 3 r?d @1?" | 6 l 3 r?d @1?" |@ l 3 r?d @1?"'6 l 3 r?d @1?"b2  l 3 r?d @1?" |/  l 3 r?d @1?" | /  l 3 r?d @1?" & /  l 3 r?d @1?"b6 l 3 r?d @1?" ' 2  l 3 r?d @1?" &9  l 3 r?d @1?" |9  l 3 r?4d @1?" |: l 3 r?4d @1?" |6 l 3 r?4d @1?" | 2  l 3 r?4d @1?"'2  l 3 r?4d @1?" a/  l 3 r?4d @1?" a 9  l 3 r?4d @1?" &/   l 3 r?Od @1?" |D !l 3 r?Od @1?"b: "l 3 r?Od @1?" ' 6 #l 3 r?Od @1?"b @ $l 3 r?Od @1?" |2  %l 3 r?Od @1?"b2  &l 3 r?Od @1?"b <  'l 3 r?Od @1?" a/  (l # llWxaxaOd @1?Y! Q <Time 2^B )l 61? rH l 0޽h ?  ++1&_rb 0 0  <(   ~  s *sWt`  W ~  s *\tWt00 W H  0޽h ? ̙33c  0L0 $$u(  t t S ~DyWxaxa1 ?t`  W fL   t# P+ ~ t N1?  t T1?P L 0 t# UU ~N   t  T p  t#  2N p   t p f  t 6(g ? f  t 6(g ?p 2N p   t  f  t 6(g ? f t 6(g ?p T p  t#  2N p  t p f t 6(g ? f t 6(g ?p 2N p  t  f t 6(g ? f t 6(g ?p T p  t# ` 2N p  t p f t 6(g ? f t 6(g ?p 2N p  t  f t 6(g ? f t 6(g ?p HT p  t#  ` nN p  t p  t TOd @g ?   t TOd @g ?p nN p  !t   "t TOd @g ?  #t TOd @g ?p HT p  $t#  nN p  %t p  &t TOd @g ?  't TOd @g ?p nN p  (t   )t TOd @g ?  *t TOd @g ?p N  +t  ,t # l̎WxaxaOd @1?Hs ?Fetch( 2 -t # lWxaxaOd @1?%  D Decode/Map ( 2  .t # l$WxaxaOd @1? r ?Queue( 2 /t # lЙWxaxaOd @1?U   \Reg Read ( 2  0t # l4WxaxaOd @1?2 s AExecute( 2  1t # l WxaxaOd @1?x gDcache/Store Buffer( 2 2t # lWxaxaOd @1?V  ] Reg Write ( 2  3t # lWxaxaOd @1?s @Retire( 2 4t C xW?4d @?4 f  <PC( 2 &N  m  5t  m @$N    6t @  vN    7t   N  x  8t  x ~ 9t N(g ? x ~ :t N(g ? x ~ ;t N(g ? x- ~ t N(g ? x ~ ?t N(g ? x N    @t   ~ At N(g ?  ~ Bt N(g ?  ~ Ct N(g ? ( ~ Dt N(g ?( ` ~ Et N(g ?`  ~ Ft N(g ?  ~ Gt N(g ?  N u  < Ht  < x~ It N(g ?u  <~ Jt N(g ?  <~ Kt N(g ?  <~ Lt N(g ? U <~ Mt N(g ?U  <~ Nt N(g ?  <~ Ot N(g ?  <N   Pt   <~ Qt N(g ?~ Rt N(g ?~ St N(g ?* ~ Tt N(g ?* b ~ Ut N(g ?b  ~ Vt N(g ?  ~ Wt N(g ?  \N Z   Xt   ~ YtB N(g ? x: ~ Zt N(g ?: xr ~ [t N(g ?r x ~ \t N(g ? x ~ ]t N(g ?: r ~ ^t N(g ?r  ~ _t N(g ?  ~ `tB N(g ? : ~ atB N(g ? < x~ btB N(g ?r < x~ ctB N(g ?: <r x~ dtB N(g ? <: x~ et N(g ? < x~ ft N(g ?Z < x~ gt N(g ? < xN Z  < ht Z  <~ itB N(g ?  <~ jtB N(g ?r  <~ ktB N(g ?: r <~ ltB N(g ? : <~ mt N(g ?  <~ nt N(g ?Z  <~ ot N(g ?  <~ pt N(g ? x ~ qt N(g ?Z x ~ rt N(g ? x ~ st N(g ?  ~ tt N(g ?Z  ~ ut N(g ?  N Z  < vt   ~ wtB N(g ?  <~ xtB N(g ?r  <~ ytB N(g ?: r <~ ztB N(g ? : <~ {t N(g ?  <~ |t N(g ?Z  <~ }t N(g ?  < ~t N