ࡱ> PMNOn,eaPNG  IHDR0WiPLTEBBBRRRccc1!!c99{9999s))BB111)1))))9))ƵB91B9ֵ!1{B֜J1εs޽{ΜޥcքBB))scBJ!sskRRJޥε{焵c{ccZ1)!!))111cc11)Bޥcs!{k!{!))))99)JRJck)BJ19BZc!Zks!)k{Jcs1JZ)9!1!9JZk{Rcs)9cksBRcBZs!1B!)BB!)99J{9RB1!RB)1{!kZcέƵZZcJJRƭΔ!!J9)B!!ZR!9!J1!R)1)9!)ZRZ111))RRZ)99Z!J9R!B9Js)9c)99!9!B!J11R!)ε1B)!1B)91!!)!1!!)!)!)!ↇZtRNSS%bKGD IDATxQoXvC(!I-uJ-R{cd"8M")N"kF|qCpۀ`уy ap c~LkoEʙ>}hFfW`EEIsKBy/>(U7*[|o|oUͷ V7*[|o|oUͷ V7*[|o|oUͷ V7*[|o|oUͷ V7*[|o|oUͷ V7*[|o|oUͷ V7*[|o|oUͷ V7ɕm[@Fs$ +Ri$PCܿr_@B;I7n>,MhB'it^:\=99/q$4RB2G뺢+?Ax!tMH/@*_ϩ}p,hͅZPRt ^#!Z@@ߓҧH,UjPRi&|jk)U`d?q/:<[kC5 a(cdq5 TR:_ϠFimNAm}QrH8eSתܘԻE%Q8,ϑjUa~G֗5mX+enVk5nBjN7Y=gmBmP9챬fVnDӬnZ' 2ޭjj$ 9.w|xG7oM RExB$ mmjZ᥆|Ut2#i Tt1T2IܸcUj ޕ`^HjY27N vTMXcW4 fjP˚3Z|s-:XIcV/:󾸄ePu)'(YC+'_7gTɝ&vڄ7QquȤ 0L C% Seޡáq>l2Mtꆵx_:uy&}T!fus]ֵUur(2ArzBm*vODG/t, PgE}WDm&w`[XUU.kWmh&$t~dC._=.GDŸV{F(Hd7m#É,n됰a,'vY ݊RǏXiaB d$&6 !qKw 4un9r&ъTg4CA>`F6cݪ  wR05N/u05,C~:`\7b`ޜERi>M]B[U-рvͲ ;"E H'؍9]2Ğ۾x$%q^Ɨzip02!LV_dIB%Yr |煐콻Y%I5~v9ZNwh3v!^huv s6!c`q{T![7o@- Gs+Әt)DWjN@xę&V9ۍl=Jܳt}b,4J14\Yv& A{|/qUb{AQ˔|¿OZqK&dt茦`.ߒu(f[K*^磿4|OսleSS:JQTY<|KT%G !ۘMl%$:4FgO~3 /2r!;{^ t:WkvצxmJߎ8{rr^^wY*ūuҝh]c+ghnڌoWƽn4 }fheL/BeU; cvLFn6F:)6HeW@sԢC$:U8p"cuvj(3tY*^ԅJCm=@N.ٲp:Ϻd\Q̛:,'o=7=1kCUj~ƻXQ!u >K*c~Qda1L[%c"x4su^W՟vmd(϶ ixW*wMe6\)۔M$V&n:]\ƚRn@Zznn wnfNN*yt&kV_ms㬬*wc'7(ڋu!]l1w88DhB!SZĜ@!D(p ȰOZeAR_nKx ?ҳM" 38O(YZR؆ MlK5dž|qc7vusE;|A!lTB&YpZQhq蜲g- ;]unYZF˧RiMeK]im"7[qY#W H̚KV6NdXwt=N (@㵊&$YXR ]m~ҵ|G{ߔiYb:3\.Ò(/LH;MӅ鋟2`uJ[ڋURb!ZF ]a{u!JgVD׳$H0-n0}ҁ'sG&X{"I!l%UlY*.WpNHRp$&4[, qKttG2W3[ɦ+u9>`K;YYYYrUVVR]t˞@/n?N4n3\M ){ivAO r(G$&v;.ˇ{\ba>fm3/ "}s)'t&dI%=|߹,,XWM"/~:Hp~׹jk`gW8 C2WdZ<9ڄx`e@2s"a(%(lϻ^Ge.Q!([J.31*ojfrfI*nV~I'1xo-<͞{m.[볆m2 >ǰ>_\ V %&AKDӷ7 qXm>ifa5".D&/nc3Z3[sxǪ{۫ N/š\c!ꢴ@y 3-oV' iWYUkF}3K7)өfKr8fӓ(4j"d *8+@`Dڬi?09H[ۄnj^~$wxod㬽j-;]l2יQvmOuTbHϦV[W]:>ս:cH/뚹z+/E)!{j'$K4|`$\m=i|dwњ\!]7^|/ ky*CXfLly|݊㠹e׼er@+:hY`JBafsެYx wjWϚP q{7!8@=laU6b׻&Qt0;ΒpKxf&&wo6 b.Zܫ7>/JZycܰ?[a8#~uw:rQ(M]k͛Z]wK{I`Ydc8ֆu]".m~M_ wZL"7$ kgF]p XV6"5 žS>VA[˖@JdTO5M*sۛ:d4yw{?+Ā鎆i <(W HCF/]xuLzRFDl:𿍓8nǂw7_ 2A0:jV]a XAo9oK셉k*ꪕo642/L<cWwM2! Q>n4u>㘤vC,.icv㦵ĭ%p7n[6_f[>w£[K|RQ$ap^p\\}㿊(0 {[N ]pCDAEE8 '5Ͳt+$׷MVՓx@(B@.4(aDxCQ!fҵV Uf᤭уQ81$c;8pFYh--Xl AMұ9 _$蔖YavU}C8hۛ0ϒ'Y)6o7ZmXS^E{NQEVՊX! eVYC<e >@qS7#qHms-naf6v'7&Ak:WIu_0s SQW:UsR `5Ya{lQvOⴤ͖ 0* K?}_'0m'n&b)ջU=G4>ރ +5䆖ބlۘ2up5ZSqAb^l8: Tc`k9`_؞e=6\$CAUDPhV+NDt _Zidqf"5̘HOٙA'm@OV6XrYcWem5k"Mi?-WڦUa-"'@0j2ak-B@=BHW\*+! wĀ#ƑI\@<ާ.7h͛{j>s0,S&\ӧYAI KqdS >᡿U8X?x,JB/\U!*/ wLZSE06/dY(94S F9h9ooT(/Jr7VSuuٵ6.Jun»w5YD@~D%E5otqIeQpW3irx~p֢ ӝW:EGoN(ɣ( >iʦSè+DRw9*`QO)>"mP9Ȋc8} zvsuz~ҕ0']T?xN_-\o$##OR^"qIEʰ!ĖIEY*lbjçSo 9m2NVZfYVY傉 `:A?.VP'!0Z ) xEs o'IzF!E4hZ: t PiR*dW(D΅M@\VUbxozN}p84yM=;3i7Y[(⫞IǂwCSә16/#%ѣ¿4smy C.Hu ` 츽 ~9*- x3xgFX_ͦ 5K %E:}үV ?HWA(!(X4׽eE>.1qy**ԯ4`@ ɫ2Uf,* *Qp(_#x-Y}RFΏ`T;5vsXy:2zfu Yys۲3*^7~K@qK{;(eAD$I}TN"(zֻvsJAQQ~"y(y"}" IDATPP篂!]99,g1''8$IjpxufX<yP%oYΕ8=Rt'iO]ԹێNڎ TeTgsd }Z6|s3 oG( ,aEys,ceZB#"IP^XT,|W X%|ep)WepSUȒn^uղeAW%n)1Aӽ"$l{; %48E"/GewW]y]HA?I(Ʉ GX9\J#́8+\R_O8.\T{74rG?LԆI@>ҞHBԠIwYej<˵lVe bq}\Vᶳݤ_hgC'}յP7D/zۢ/$ғF-,` 7tlE{O>")2E <\bt0HR|' Fnj>Z=N$t0 R2C?B!h?) Vwoyo739BQdlU~QsJ !0tô}C:G RNZxwRaU9E_J.F:v\&c9 o,Xy{οrOh4>{X%}cƊűc/$FhOP+ӭOb!G4Sĸ+8<63 E{iVD WX_&M"9䄩#^`z-dXZK}\%n_K+|:vum++d(S>]x,q0~Slb=u.ް -iImY9 Xp[!MWv~>Z氫*Dr횡'ς+,M , g2F2ȑPH2rD-kgX(f@[Xp%.Zi\gNH4- Q t _eiCLN )8atlʃs){cVfEMiOT!-pf&Je:?1ٟP=9M ֊%k1xVFt7-v5%0@rJXP.L!mY)d{[DVA5YO jn.CȣK%-%@I&=|ŢeUc% [[8 b2 L/i ,/^>B`H;L02./P`ь-2Jb_(WVg")r^JәAuܞ!;b>:!0I="scbl;#Ih b:,_|<Ы2`J˳AɴLA"O1%M s46xk qj,_('m-x»Ik&^fwY9D}B+DN^ zL]8 ܻeޘg kOϓބݕ&ᏼK 37DwuÐ(1q;ɋd=y>-JHa' 9!pq83ra1:J^ c" 8(e{>/h'XxVBdx?6LI]^[&b@f@Q"4F<s56ԋ= ǷeHz9%2fJ9e0IzKUՅo )1Ux -x 'TApI= @B2T7-4-Tզ\+@SSCӼ6yTێjbS`\kYox_>:9isƔyp゙=9PEIi8C@&ԡ v^: ҝ!шhMw|E0)Pyn?uݻZFQgjǷ?|xIK?Cc:翾@ e|g\x}Gw?{~tG?^??g,_}7~\u&1h/ovF(_c ďpߧK7'!c~i,U~xĠe̤DvV5>*RTfC-ofM_Q_ߓoV*.VaD(; 6h-~.l[^.#=Gw5]+? >\4/z}˾&Ѡi>gZF]|a/% U-4X\ƯxË, PCf=۷1x128KȵkW̲=9.q6#P"%qf{z\(gt*F HDiJEi WC9tòp%?pM=0nrP%A`nC& `2Em~D O=ei 1d*gV]ot}m/~ú_Tظeg8}|TȆΖ5c%?e-)c C7'&3-)͜X.M'fIqxOGQT2 xe` D7o7;©KPߚoi~6/ڻ@JG5 #cZ-m,˞ myl`Em;p>VZh@vݸ]\} yq]m):(Px` p."W'/ۗ')®t SY;d&J״^g s+oiaLN--*}T*A)1eL= sX>O6șd_/K. &É0PVݘhus[<dd=16?յ9Q"Goj|VnVB@ÝT7K W_4j=V 54͂yC @;#E >[nV|ZyfޙǞdB2[䓘5m^C|bl ӔNUx;thhx;s(LsDZ8D""Y]3ԣéEt~9Owmh^V8|uHS `8 _>ޤjҺX0""GBᑆ{^֦̉H4O|>߷;6]ZׅXM~-Ӏ_s7ȣefLhݱWM@ As=vPbo)bV.#KB[s^3b29&o)Pd\ӛǞ^`Π1'ɰ20ks\w۰5tD$Sw5z}Mwс:`?IiUGuh`O[?un3t" /~[ջenj|ǿ,=HcwB-Vb6@ɀ&;<sGS,y{ }H) FYU3IPR+Lq9d vm+k7,ҙUxlOg&E P˃^Y_7y | piÀ/0{ M ;ZG/.nkh Fή/*mi BX=؝w޿۲]KkW7/?ؚT7#aPȾTZ*pNԞ8he:?H<_1Z wwG Ъ@ =b}VPF4p.v7GZ^)8݀k}:һC\@BU,T$%yBQURs{5@)g"Ҡubu3V0XBmz, Ix}ha\?K5-0ߗpjWSé@ҁIm_ȶ߶Ow>WXu Pg ݠU4ioл1Vc<:b_t~tiT?ڞ "Ka glGZF+qzX̃%%rL%"}Y׊cl8ytQgW]Qy^>:P a'!5(ʮ̉iR :/Ƿ9m=sdAB.rC^ҷcg #)J庭U-; cNH9:`**,yoxpG-śo':>ؔ6}F=t?&OU`tu:iWģ3$]г YԒR'E}ʉak6;/,PzCBl,;F¹}JDڏQQ}%;́Rnc.S4LXz~gyJ֦MߺXO: ֣zn%ߧK~E.x|1`aBŦ8Ge_bWx$G;ZAAs#P!=`uXB\%*ggYrQ)):er6jNdha&@ vy@Ԯc==Y9/<'%A;8 ͌ c,sŢG$^eup(*%{?|Xoxdi\O?;˱>dO@5ឮ3AYo[ maaDޥppHߩ`5dHb˽/P^F)cQ:!6HH^ )6N&심Qɢ\ȵG҅E(>ʹ1 SZsJ1C5 RiZ..:Fud(v&fsPQssc [0kP.}[?:h"dwnP6>N8c Zm욜2H63so> PqMc5IHq"xrnC[K=UqEG=B<[S%{bzLpkSr4>Ss}w72z-[>e]8'"xΧuy+x@n;o6lTw[QxcoX DyۆMH |<} D#x"ilNX3JF8ZkQm 3v\ڗSB߽<72x>Mj"T[MCao@WB2[3m+К{z#lzF֐:bMjG,|:j%iPGҝy%Aj}g( >%`6ojKR0 ^baNX'JU F@4e*8K'L=ߟn̘_~doDL4ƇѐZ^| dX҅/&IxOّ~&X>Hʼn?+7(Ԛkq wK w928Q"1tm nFn_3L'ϋ\oȵި񡴮--%J8;6إ(b (C>6PwIG#,# Bݙۜ[t%E4F<ѯQjϼJ1; .3;naڔuJ2т=QD rhXC8o:)[?b3ߡ/KR6 :63+xbB&0dWc ;wa̦0Q>nTz:m|[!Gh:.e-#ݸ)4m;#}:?H*ZTS9z>6vbXd 3юζ##G75s nghjwww;a)+cۢtʨ3I1*A J!V\v}*%^Q['Ni)< IDAT#}&u*cvr(ϦL]ׯL I ]2s(5Z4ǶYj()++ ]+Z YN@BH- &jZS6ΓIPU% *]F:I2bfpU"s1@[R]b+9<=iF̅V! 糃|u|aZcgΜ!o|8eC= #Q24Ycd1w?)S:XP4륷+R6jɄ@0L 4֍@l 3}jZ8CܬۋRF|PSYbmdcOXu-$+,YpFDΰv P擯pdn؆1]6̙w υT qCWLss #*biڣ~Ҩ)Jl}})d 93޲ B1[d}+|r;8pm3oG[\&d~:7Ja}гqzIhl 4=fElZm 4ۺe[?\ [x^S~q[D @ ,nb"[q\*OԾ^U"8c*WHF-b:* [8=yQ7/gf0C@LƬ1uf۵arq(eg %^p޻(M1tDƛKޥMkM_O/͋Ӷ <IE?@ ;_o3-w%LyD] ܮ$RǨ s~w 2 k,X4l+cصr0{JE Bkh *߯U۰4;҉llll{NIf9 qVoKQ ZSuSthqO}om`~u#V3ؔ5}~kb;}܇.`M%J/Oo~,=XOH")qO ^(*)#8(c읟GBW9)cÇ;RdZ.Oo5YU|{1-E8[f^iM;x[-i qx@S,#Lx\km=b0N/{4/*-yYbe"O6?P..|Cy4z= ޭNvw`!֭ {wnoգcO6/{o}vv?Mv280#.l3w=JG$6(]MJe{QPT~U]x7*22L./Of4ܘ %Io@UH)w/o_w\: 7ΡoMJM~];1:=n-cq]JDF#. 2QLEW,=,Q8TQe4t$Yj>1JxB"X5)uRG5}Xe\*i"tn<,׊V Z~+l yYI 7y, r_ z(@ty6 .,x_$R±Pz`KZ}-?|عҕZ[ cp^%BxہK>_3[.ݚ;oM/nc_' ݍQ%=~9p]ag3{xqڟb:_,CuVYmv}$'esXK%rp,){,Dګ7r(!0P,k?oc:]%Դpϭs[67{--i?%-V/ְԈ&;?r8!n]x Ёm~޻} B̿ٮ)I*1[Tɧ~w+[9W<Un$cթ9I%Il@b KevI$D28By*j2ÙrłDoD$XlvhW"sJ:@-0 qr |7|]ۊN#sY\MMH9@^9\Xy[rH;rO6-ݻRGrb0o)4Jn] j.?ŧ :&D[G= |'pMt&mN)0\|pxzAyEHSj{"'Ct"ӶCo F鎳zjYp1Np76,#ݴśwLbjc_|KotX<0S7][;:x_CEԿy[{)А~W5do69]b@#dx3J>:[;H 6%[wͯ,9f" H.3S( 6Cl(?%\Ŏb:/g 1hu #=(`%JzUrpW#(5`)]_l..%Se})5K>uk^|z]n;AKp x‰O[QQNCkVRhc2./ w|6,ֳI5 n5#8>K! soWHKޮA_fASE Uk+a|xM~oC5CrG m ]MY"e[?(vTcaU1_6ץE&1Ο>U׎6MaonpvMϜzkd[;6iwnٝ]w<}~􊇭sEE_ߛϥ)_ljlݶ]\ڬ̑h ]-{5E[B`#O窍}]7v@MIb"G1eKj 1(5_>bedqt"-.)csqB 8H{],jHgȸ3=eeK)sJ\m9gXJ&eC"˻yA8p |.;<\m@9gޝ)u_D݌M|'y;X%@USGgZ^p0)е)iGSk4ĝO٦^~v״6lnGϦ]>ކxrT0Ac8BR*ݒ~@tFA4&ThRV\L%[gey jf/>Ka4m꺪΍t觳JP[Ⅴo<(ol;Ó͹ӱJnzhRwFƽxxS=t]U8Kt}yP.w 0d\Š 0`|A7G3 |3󴂃w7;㭚Fq>o@* *{y"!eˠ|vș uZ M7Mu86ø{5 **ϫZnw,K=-4}gW<^Z?jN=綷0Ǜbh=cu`яa`IGB0'F5>/zNwajE-5܎GP D[.٥q,SA \("^htA E*UaS*L Θ_% JzyIm'2S/[hACW~P-g}Rܶ@GTEu_,sv:/7=uG>VVE[@? _`Vfӏmmp(/r(Բoӆ;zr;w[:x(ucQ9ڼe/7mxjYFݠޏP,>ǂdWj[ݝnz X- B΢]X\K$Qʃ9*fz{q#t|m:qv&Ejaq*)W 5IShawsEՎGo͜iw3 oS\hn:\pWjg][dbMђ?Ծ}謡1^nlhhJ诫c~;|6^v_2uPNvVj=\]N|5u8[h^w 7 K=;uηtTi#J,|?Ümѵ.+ǭ$50]pCPD |=#SLdrjӾa5.GAmK/'[W󤝻{@I':yIߝ4ŬD$}hcm@j2*Pk\ebQuϯ6!C;Q̓w i,ur$< f po_pXO8ڵ;J;),,; R9bRc0r6*v$ !Jc9\kb|P$wZ}r.IR$j=)e\$P ؜=W x7d1T')t0U$I)H89 ̮^Q)$=߿#)HdCc7q/`KJ 4_31}5)siMצ%w dx1T fZrH#rѾ)dRDJ293Ā,z{D1v\f#9BޱU%[*9Z<V?|֘LfT4Nh6$Ab.Y!:F=X% 6KqY).#rqƔc^Sum´x0)5p<^q4bw.~ _>6/^:z'qҴ_i%fu^a)Fww\fJpz wu2lxt&Vsi {$ø%3QKHD+J%σ8ժjI<#WU{Ltf9~apP5SLPn9}JVD7()|h8AOu \]ϕ .)B).|vjÊ|weOs1q͚p| /Q^gѴ9_2Omq3Fc:7)fc|U{?P$b`Ӑ(JD48i ח_i)!9)eWi* #"# Io#ǥteNp֦& ,xM48UTFh*eí6_m| a뫮5.'aοο RV<_ֻ]{U<^o/\pU*"9.ND:iM)˨αt5(_k{n/r9r]L48SW-#ZeN|t, |Q1ףמ|Yt3E Ԭ'2PS!Ʋ @R[vRw~0vWTrD5Ԅe[ gVqIj^??{ gE7-LQsO nUm\{S뺽_aN꫗/\~xe+"GraR%й0EnLNe, }CIz2^$b(#Aӑ|~Ƭu|wr[+3Nƙ{1W<$g%VɓjzXqYa->Y>UWMŨu5p{_* ?dn[*/:оW(sr1 qnzw] D^~K/]ZK&LDi@>#q$D@P*7J׎`}]|AB<%E8yCVO!ʜ@'\-Z6SaF6by<5S\K4)R#GҪj.fMU+V}h_ k&y&)֗Dp 40qiyFTW#^@K.]EWYDk8{EtEeYs(']K9OqoR1QKQX]@x/zB|";Fz+Rgbzi3p$P1-Ho>E&)jҦ["!>@ꍞq,Fv4I=V}EdcI¯ AE1iC\+Ԭɔ䞻aa=I\'ͦ688KBdٖd[gy( 2MD#8jP J׵:ABzyj0dZ+Sib.A1_i U"iA=2&}2fݟ(ne#xatg&;lɉf|I=εjwb#}#mB)ȵzn4ڹSd]>>9꫓F M)㸡(MrP0GŬ"AɡcǓfYh'Jż**J,dYrg ?_ɵS fܫzkLtj\Y.b*GB5y ==rڔ!⠕m/ɃmҷF'˜tڣQ @~}B,Kg򋣬otIn\h867.%٬[̬xqD3m،9k>3 ALlD̫t<8gt=&nmdΑs]]A`X5q.ffSf&ˬXUNSY0ozvF{Wv9L^Lbۤd%I nHrۺ*?ֺid}<}ێJ&rr $n =q̚t,``" bP9FU卼|s?o}5m`5GsgEn[Gw[ףXB*jl)XWIx6aZ)+ܓiǎ>/2GΟ #O<>*GbtH'5Ҍc䄸){T  x"!|vW#<@Fq\{ zpߒ&UokY戇5tt8LkGכTk}^Yz4z!Yiz/@uD8q(oVaq ƣHҊh&7Z^ ΃e"F_=\B]ZY`)~u7Z6!*`- je-{'kDI>ڱ[S_ wo%dEiޝ4X4Nm6KMیCװ<'{S~ 婪&BPZ<:A"#i֬3̩c m0,:VB<@>G6Kr'TbFwU5cē)%ܾ Wy\'u\*E8(iw+"@= 5_ߪ &lOb1]K ėI^S,&^Gܜgl*ŷN !Hi-E`FwT65t3-Mᡬ¥Vib_ ${*6VB8t *`ZTԲt;E|{^Σ_-]à p yR]^j} QN|?l&Wpoc,v|r ǹj)nAҠ_3̖l s&83-mUNpFm:cCq%h6}Ix,Xߦ` ՞z.sWzQJ/8Xc flc Yp7YYIShzX`|?\U/$,T? ]n]ݝ@,f /XoʀԊvTP#Kq'U}@ڰGMuh/>-r &1Q{pVDX6yb{}Հ kVmgoÐHæ d2fPLiЉ"Z[2Ҁ>8s᣻nDu ox\c`d7A)ՑWwQc?fUEV5 `-/P/;w|#?;hEZASp{HeX|Xut){u%_x=RSNPpC5Xi@.SO۴txrlX\3-4A1LOwu/#d{X65k6٭5s65ww>q… &3Tϗ HmF(C6)1KV꾭.mW^)v +/4o@OnEXl{lg Vívh%,h*ul}4uVe1d:f wش:Hbqfb8R V"ܿa2SYQcWrXGˊU`6 `5GY|ܺ4`G2P4äkk]LVaPZt z{5eYGϱ xnk!y{RV Tk>L-/hn0X2pw@.ʦ̀x1hjE5}*;?b"FMMt2 kk=b_=h9d%O2jkafQ5,wi}3/AD$G䬕`;[TF |w*[c)w|o{vg R,k R=HNk3[i>&z_2Lup9NS+lO5g4)$g̉Dk0Lb?YKo"|\5`sBclg {[!Z8E1ţ߻/() o,E7gsEuwgf3vg_,t~A ޶UQQ>{jSذ.+nt#醪W@2fQOvJ7c)bj 3\id f3WLjdsY#rˌ,$9+ݴXlh3Œy64]I&` ڢOF#vh{T2 ׁ i" vDAd3dkLXZ\&Ps~½tva[3V4Vqeq\'JfeW.n4nPe]W w[V~SQc3wLscKY% mh1[E5☪0;ˀˌb]y2?7paf qyED`6޿7ƶG([WmJ+O{a9S:X4 Ɂ+SY:ܪ!htkګcvE;J|+e+,s,wy݉f~A@Qt~)Ydsz<33sT $|_6XQ"P8K rY =9GY+uݘ,P3$c,ftT*/X NzF04X"2C/~{#w'~ϿǢ,G=CKqDŽX :|%AIjqNظU}Beu3`qLU;;ȶmi/ r0;gl IDATf~U ܫtW̪(ݞ۔D%i$1snwohto6QX(T9ٌ XxV pHeL3'{0mbevi\o#JXGu P/;SCXG7WNABZ$Dh+Ives]-_ E Hpn٢Rz] Gl\$4];/m =\:C+O9{seW^9vM߇N>uwJ|ݱƵ Op8fO7ďn|0W_2Ɔ"Kb [{wLɭKO)m_2gҽfU {,d=6k ]  Le#=h([7s/W'B* Q~r-M;O>%Jt6"hE#gBMC5GpQ޽f@쿩pnpU8guZփ>w]Scջ6U{w7;eÇSfAX5e {h0,Y= V C. /Sl x3 ea+?0NY=+`Ӓq#:Jor!~xa(=js/x}'ξlJT;" ߝs_ܽaC1x_h\ JUxBыȽ3܆ aCBg56 c['ux$[ g>*R=1 46,3o|[5vivaGM-)jj+0#+\;g ]!͍ɸ)M͛c*0^0bEaH6OJÌfGl)&%୉߁ܱ1>w b OiJ5^%IҖdIUI򊩟?*|)ؠU 5.^ToҤzlE3X#QBg[i4;73_>X亨zɌû}v/:oP1|B/X6r.lr}npMaE]H=c|qYrدchwe-#kƷ&hilh-J%tYң ɟ?=0C-EtD|1h}grpg}3kyw4Yݖ-_ M%SQ]7JntT.=!V/n&H^U"B cw~W歲\SԴ_9{s<`OIROŠkW28(kW\DEf"}, k _l1W\bKJ825lwYc*@Oc#Hwt/k9m!;rsu~nXSfGQU=h@fTmcza0g:hS̉^&QFNX+ b :lmL>?3rX(J5Mdɓg5j|D1ɶ3vQYŤpDkAF!IŔH-^} o $fk5{OҡY'n* ˦o+8_z^e!lKۚq}׫kk74^SU&RcQ= #˩hԃI4Eќk$U1 4:n f;Ke׍~ aw2'Ϟ=~R3FѝEW=[hyYN WBZy$D*{N?v>_Ϛ^SD\Kq듛r 1cB]}fni>wcWWr֐VQ,~ IV_s:EC~н!I֪+7~Q7b^lJHSFR'Oݍ.QLuʂqG@ !ל3WS_v% N%(,wes;6yg3_u:3k>qY"[RbPVe^"f39~f}A}&jN32o:9v4kH#ͫh9Vpٳ'Ϟ9[_9(9!b-x( [/v>I#Gv;8US}ezY#E搕qOgB䇸3@A\4K'ۿ ƍti/~?Ud-̫=~'Hy Uɜ㷓b ?b?Vqc/XXXl3+?6̏=Z:bHSӫXĮۼŕbaS D#x/zA~|seϜ9a 6!( W_G/&IͭѠ34Ay*6 +lK+/Mݵm@eُ;arjɖ4;W>aՊU9f+#3\W׹yT|rޛCpu̮u ?L"nTЀDĜ"5 +]YGظ 0: f]+YdXsE?,Am zj35 |"fmCjBb5ϸԙFSy-w>ώjvJ'BOXs%  Mt/w}}EWsoB+־/(˽K=.F{~W?t{B s;&Z0Dmj͌{. T, ꜰI7XD9 ƅckul±>qČYSy  , A ~Juӑpg:5 wZ[Ѫ1[_CP'hQ= Y!ϏWRiGyvWT6H]jr2q8JkMֻHm*YZJ)@r5!>0==9i`U.f|:oI&+wNMz.#khI S81%dLl eVqgfٚ2HC32>c=7C# Cà_F|xς~QYܩ=8 bITI?Zؾoq~|M9i\͗֫)ZŠh,7ObP$;Xl'R2j?{]q k6)|ŷˇmDFulEǞ K*H;v(9bCe@1]Gж$̨915u Vtkr0 b~l":WpJ( @],f2:W)FKIhN'oVƌBVM>?NݔK{yXyVy.жܶF|6`哓S. S"xdyáqlz]:?-sj1 _9}>;;q>Ѳ(GW]\a/+:Mlӿsx>J-S = 9cŲrT~XlC='l3 ;fguIl,jyVgM >xAZ`wt(f^'{ 5)XW'oEb.*oHчsx(]x4 >R0}E ι9;U|x'K׬|u cḿ}}cl_jw ) mh8z}fO%7\ී-UY]|keח*_E0{\F++R~ު{~rZyȟ1gHKÒ]4F#s>׫1rG${=܉sg*M tpG8\'s8ez%NÁ^:.SbsfyEPg*ؗjٽO\+[vVZFyZymv vr=.>x[q_לU!*y!Lm0|-xYGdК3Lzy6 P__K"`s}Ǐh$q(Գ&;վ|,HkYC{썣/ jRiE H@(.7yg[Tg W֬ͯ?|Awq)ȐÿN>Tv=m\cXʯ`fƾj'\8_q%-^D;Jj?rnSW8N2|466B8ph_QVU뛺5!m?\[=㸷,{uq{5ܿżqxUum6{rzsmVdwɳV:ED\/J7IsC\uLEa%4pb\܎Z4_$Jw)Ko=9û ۧy+܅;#^թdr힞Z]sd޹mD|Js8=^`@K71Zz6pqY8lvoxjSn vw/V?y$?33 5:NO{CYUYṼ? ./<&xЋ f(yV7M/IY\t_ޮ;bu YӾY OB%LeD'ϭ #zEf;-GhЦ wW8q:fﺶJYӍUffVc!9k[n37Bӧϛ7>W3*e2}(瞥 bj~g@ wD}l1%ZÒaBs+U.Dȶr/7 ^ ?S:ÒL _rN\F IDAT'\^ㅳwC6Ee7m;ra~A方4 WgfBU׽>tWK yw5 3'N\mll;or̮,ʱrqsycV~qSڏgݍcѽOĜ^v߂)OkB=p龡ݚ03 pIzgnj. NÛ6qHICppͲW(k]AKqޝg_|)(p-IrF_/Q -5W+C~J^g=z]>u8)bU\i9Gue$9oojݾݱ]k!N7i˱j^].@;Vʵ%'7c?6x|7V" '[\KvQAؼ׽魟aZN)J1:бqѰ)gnRΙf\W%kTj Fq),+aC<ĭ,=QFJ}QO~DyCkA ng5ܑI u_^һmFc.F:} m#^OVcQӓZmcUe+k"8Ir9q";3\}Xp|0{\_LDt$ަSXEp|0%?.Vr>=S.\WzhJb>`z`jcq%"L? @~`~3NlSY=ltStfίn :;fd 3Y/6{CM$r9{SJgT( ή@a)^QQgֹ:8aw|zg"ܬln 8B/Y_㑩ޯc}yyTXZ9nWB;x(W 54:q6Q2Ǭ~{S6̼֮ yӋ=,%yyW*B4Y0ڀd"=MPL]݉jxG9-S:~t&d)nM`k ǽ CM׾:iKM{q\(M^sߝJwõuy}NQ؞N t:Tݽ>)wnu\ r;cw~ ^S6Wh]N;{_p{gV,s ޽ve. ~]{0'+VcIjQ_{T%5V?2=kѝ=S]]]>M# r N$d$w!)K ߾ A1(jK1x \|xtJq9^K .V_R!Tnj ╄w@ZSRеg!x{ZSP;c:29 b&?,qufs_jso81;ZRSgX[; lcվ|`qx {>τjk0ەUL*X}^]z~*hDi{x SW|Z^k17ZDWj$\f}׿f\9܌ǃ._ 7~}ϓ ?>smw[ w-mY fצKv&jjJ4ne cY+ޓ̱:nOxrs>9|bgRݿ;+ʕdRi#h6; ZyⰈܿc$c'ʩIRbm%5 Bh!Y,{w;:(ɓ`KoL5ɓ P}mkOS A|Z2Hs.[-;ֺ '\ N`1ka/(ˋ#!tBUPڗO^gq@Xno8?6wDkٗ==0LbnSC&Ɛ5,A5/]N@ >n) f-͒$ntQ Ex'&$=(8 Eb7p#/=PR7+Gw)!:)$4ɀ HsZ91ym~T$}6V<qnM˥hfmSk"ժԍ9:klp}nYǦO 75\jHt#:_s{ݠ2߲.Tf$z6}c*Ln.u)IGFG3HH0<~|VQizOD\z1!uLkwjhRy'^"}M.s|a+{s33Zʕe& c3MBTj/hG.GNށၑLt_@o$ͰL)eu Cs4&B ؖ IN$g}]?~UI`<[mlh{vrb*w^%MqYE9ز8#d+7JbUL07j؝` VPsdCރ;Cí/o]nlT'".TxI Y[(,m?Ꙟl(w{\HP,9Xz!%jm&=WWmT7NNyq)>U#rmmsivM?|.k+ʋSvmS ?! R|2q\ߛ¿/򬞳$Ž9_()fJ|8޽m_w?e yq1Ne"ZVz7F$lekGѠ}#чjŠ_#$z=\#_'!-oѴMmqAIyV eo?cdg>7=}o_'m!TkI1F_TsKZ9C[.W`qn YC`Y( у埐~ ֗+IV=E_tsԱ7 ⫇;}w)iIBlwЬkRvч"cb~{dߞ]xxԓh#p0"D:vPiOGQE8[ Q;6..|\~'f۷DS`~!+T;dg`觗.79>>&g-|6+q:ef%A;?_UTR6Q|xp^*H*+yU?=C$Ҷ-/5 _mxP]7>AÂ.)[ny6RqP-d11,:Wǜ.r EOgG=V _q g5B_ !rh==RpERǃKv _{f=/\'20ֵ_dֆ}uGqƷgqaÜ?^Lo5{ U' WDiXB[KW gn1H(a+6]z]QwH¦ r.v9vo`mpg7;]$ت1Fg 2ͤsi]lG(}C_Ma@ĭYU%pł:<[7Ͷ'!FംǓ!pi/qmH:m))[$!Ѣ/J}gGd}Cg|T5:cC?_H`Ml+NAl{sUyOj±8N݂MV]X8ov=e[٥d꙼jY<}r'H|U\x5ͩIkg༧= G9d-,hbr,vv|\אNQlf|(qєT*-=۪ph EܾR! Gx9[(ѧiNm܌M÷* YC6x޾A{48}/ gǟ|TVΊ)gx{~EInVѡ^÷\?Fi$ď\>ʝΟXLlSVĝ<|#|MȹLK\pf,yA{{".UohFdj)`dukd .Gli [4\x6 t(f6xiuOx/1<@ v (}]j`ZҲOwu;QI@a>ߛBUGWmx$tW}ڶng#EE<})$MYWㄾÄ<A,HJPcTկdA5h| cؑDBr4#BWT*\ ګsc89 FA5q 8Je/w9Le<8=(n.2l0a@L&Kz`h@oߏKlt}g >Zyf (ÿ]xtr9"I}>P"v b;* MǴPtUj<~A`TDăTM f;kƸ}q]a&x"J@r>S WdA;Uy΁&&D_ "0 !J(cOq?$=งZ$SH".S"^ 64ryw识Wn`tO|0b{¬cƙ0|gԉ'Mcc1ϞF_=iO>:k^`7uuU^y]`8j7KծFVz\F@{*4cܮVԔ[b<PwxZ3_8aZm4/9lsZ〚93ۤ4,j 2z c]7P'mos/ϗM}ӷ矾K_buϪ:]-P@(81ԂZtE~]pSj4j 3i<gn.d-p7ʯD &k?Uݠ Q̲="Dm3~v>A64#11u10L:MsŁaܠg~j3ps`cu8? ?<;_ޗQn/n P\](Nև[p+oI,W .0M C _٨i/R?UF;#[GYpH FClP&y!]9o2A.DѬdͅ&s"Ʃ14q@ΤiVٳl+(TŌ!,&a ۶Rg?e{Y4 q_whcd OⷿA^k+Z[K%v 2ȊvP\c/yXA1kGd^US FK5b|,$5)dnI2 !qM1,`|!GIu޵ؖN < LUO.fl&!#l0}898Oyd?r'ϕӀ9wq?ۥ Fz$'V'~K bV)*/\=1W#Rd> nbd1ܛRnn@[i{\[1-ΪyM{r%ЍB݆ړA̶Kj흗_\ 6.WznM0J;%ktW=ؤt)eYaq("Ӄ~l?~瞃kLۋ~w~/%\wwDqRQ.b^NW쐶+}a?8iD]Z"ST*ʦ#* '[iTq5 # ȦӸ G%ʅwYF8Wı?Mvg:3$ifݸ J]1V17h%pQgF.K(i&69-ajxmȢf'3&)d IW}olSϡ#&50u4kǘ KQ^awd'YK#ÇN=x^Qʮ1]g~ɥ?ۼl-nt@ E" ]]b{[%?-5+}񜩥#;zIKG܉|FSڧj[^faAx;o';泩ۇYI4eQƄ`dhC 9ΘO6:p.eS#b29y?%7pnpYK}\ g:Qq%ɍ7}T<7O Z-:,Xc/}ajy?p839|<ݺrO&T}p6(Ju|𵀇XxOTm4z32YBtVԕc[vHxi6&F-)%n◶溄(/̪ 5g]s QvXer,q̑I,Y0cXΒyU.PQf҇.}hZ!yčw[/vtu]^Yvlq7{ $;q:syV7x,O;ßM١:f@iak6s/߶KjdpVn4͛(TO6ᒨ%<@V/|z8`V!VEVA*2 g.*9(9lJrt bž[R}{iV]>ؒ rʷcsdv[c!8QAH;ށ {:E=H]jorWtXAWXs_WH"IjpR3h5¢)upFF#Xf%~N([Da,O.~Y"R%bZZ-!g,`|,GSebޗ7a̚2 ucO`񍔪ژ. +^O~ ^C:>m|*TRRd.VCv#v `PǢ)V`AED;u(7*3?EpU#ƛq۽ӣxGJW$ꑅ̺)z?F_vQ9FޜoحM] ?x%sFb@=Y KӷLj^ec[}ِx Wiٰ -߿Ι@D眇> r݉1A)zZ0AO\|eQjp)x,#Ի#z s^|χe+W-2X;CpNGT|lm19rgPUu=g2Jzp墮%کDfL[URM85/d^UQGo %l^6.rƿuU:3,=۟!0 ۑLd50_@qzA1P>x9M1|,TKA Wpg K3:xT\T4vҫ"R/ ˈ6Qo;"- / FQ=R9љs8?1~AI^^]_]ϼ}^_z\يۯh%/Ä23ho4%%o{r5^Vٮ|[Q~< EF*XTOORg5gpsּnm>.;4.; qn,2 ~c ygZGlq!_ZKى_sTgb!pxʛ|9ʅ.$WxLᛉ|1e1jiTpc1y@UW_jjπhΚ}ji+yڭswS`%59iSkB,zԴ뚖PiMq? rV&Os1ɧLsk28ғ6՝ICřRpi#BךUKCt!2)J-U%h-Ʈ%~''kCCŒI~1M}(2% #];Qh/[ʋƗ^̣fbSB*m=hn^%&گʾcpxcؑƯx:]2+9<`(3 #l:u@ ~67J+9٪nq^svEuÑ+f0_L5֪JKs8=HH՘sXwxɫМcKxC"5AcqR}t k(\\=ZbN~mȁ_d~M6RYa&MB$ };;݄>wWcbN\"΁A|wiԮ7|k1CWbRCVy 'Nu3Ex7Z9V6._ kn`m;]a%`ϳQ5ذ\?13slt}F4s%~9D= ) 򬏤sw`Ɯ_p麹XɴVLC7JT`sIJzmO tN{g7-@'p~pֹ>+dk~ ; g)8' d ;k!v!cMbKIc`3Τ$.N5or֟\ v63'/.փJ5*V Z438gu 03X~fܙu#KRq]/:nQn_ғ;;/P$^#|JM(j}1㻖ߣo!&' _~Ӣh9A^}kJZ~@$"eWIkyrL==99sWRDh& vd8 [/~ig|n)1 ӂ8cn['& %W *E%Vߨ#&xN9xT9e ; oY$SJMkx(ų7]sm{ν65#MҊ-p YmWVp堻y_C3؇.nUpRpN~JaS?,~/|T/(f术\D"虙׿ӍEbD{)7z(|[>-U3g( ەހx^phzp|cW|xg~wNxV8n%1'ʆE dHU>{ώE$ ?{wt4/ZE",ދxї3Wd %dot).+c0LST]ŧ:㻛ʧtZy#wʬ_.jI%,--i&U!.C>$u\e%|.{5J-P;ބ?LHb?&PX|YpXVHtLy7dF]/zY|=~%'Cc)'zp|Iӟ(+c͗LU%_|)5ڕJ;۾C6uvؕR*[vfyhʻq<:Q~eBՠKfӱ,QG_n)xhl9Ԙ Ū1JgquO}yا3/FË́]ؾv0_T_͏w`s6 $=a<:o;h+}}ڵPdV%]4b\*3p@ɩ)<&&d+G pk{=`9ӭ1+I|QlW%1tC,Z+^xH2|#_CaCa|_u$UAj"ݱ=$zޤ@(:lOgm7RvkU}92!mJd;a8:W_TMRlL|f뚖LHfP,j^ #߈Mw~A3xEjOs앍ZQZ\ WÑueep,%NDp(xh*f>cVhvǰA{ ]7Gp(*hĜݟqM~>ϥާKELJro^nE_H9񓴚 o\Ow =.| 8]%8ȍeX {]5 Yg 71 ʓ[Tg:5+qVctZ4:V5bvgԻ?sNWn(|qlY7nV*~y(J l ۈ㻆*ӟ7*1Ȋ>8lVls.5\-wѾτ @R%c=a)/{Q5|*,AGqʖ~!T:)؃ckxيwPC ^&/_xнt!hɡ6u۽Ld4D(%dtCi*;B"K : w RbԇZhӘ[9Ⱦ^0s7@7@l*UD,8 J"b$fE ٤mq[qdY/ָ0stӑ+hDXSMmǽ{z!UMC>̥ivg?3 `\8}Y|ߓ& ;j fweZnaE-QrMߑ[ħ`d |!0a1Ņrx'c^~2^aoA0Ow//3.`uέb>G"ܛowj6Z|Ƶ 9٬_~}NBn욺vb_j۾H n|#(b3YQ&6I'kpe·lAяے;SmQ;tW2#UI2;,~rf|eJЌA;^AӨt w y4fAuVİ=?_~ FLHk?mr(2./ vo.vPFϪ{y@)Zd|w_7g'=o7NL,bCڏ5m`UAHXj);9Ywq(cؠA F1C8*ʼ65kI/N=9&+Y!̄HdX֛%YR*tL4JQroNU}s(P9D'flkZ28~/d3|9i.%wg&kL G4 b.#Nj,{.񌗯(זr`pwFw^^n,/H&-@[;^V\*.x݊mfG юY|:8:%ðO:^پ٭d[! ] 텝i̹@F%rL$Ij@k_f$3DK$Q7[l:VűN⽵u"'FNOzxL;J~\؅jg6Lil,^pj%HP} B%3ߝtm\LT| ֐[@%gƣ, IDATK㻧Π((LqxY&u4 ߼[\$0U[{+?$NdMEB4FO=F^ ߉ZΧY%|CXHIM? k7eZ8ҙ~&߇Tc bO/ Qa8,*~sQ%o.p\3P*7VwJsXw,˙ %vf@Z4i}"*$m2`IzBi'~7 ĉd"rB'I:߅">}}~чW#x䲽\2{(8h9^P& +< ﳚנ04Qok(J}02fNl_S{r{~@s?ج#t6ʛ̺@ ҈cGT0? Xt5?󶿄c\G)Y[w{|+z.W©$`cU//B{HL^9%ӧ_?ߓ7.TJ2} (C8ʋٸ]6}}Rq'p̓s<O⚋7 ԙ𥃀b Eᛑ,3[.۝gl ᵍ)T4Rg+lkNa3? cpW}!KZ)bDXE~HsHZL Y;X_Pz5 'fTKOدU]UWw@JCM7l{hUk, voSe*Y_ $:$]>st}:o!Nsa;!93߽xk+r&unb Ģ*q5l#TClwjj>q WY]|۔nc!x{;gOX0!r QnfB_g©gX iVI6U=o|ָ/k (?#?Ms뻩u-4@dL:HИP!G,LB溼gF`f c21r7D+Us~aݪ (/q?s_cbY@|gqgl=44B-5Vwv0^XeeT=co/ճɛU,b5<E?=r|ql.+#Ј/]pvv UaUȌf2[[˙%t~CW)~}.M$q9@(ۑbd V}YʺN n7ۋYi~YB zXO/UM-eHN\ONb;>3XK vDese%~mlqfq{I6</ݠ%[XjU 2pU8!{7^ Rє̋tý*$l!Fr&尪m<׏-Ԙܛq7<{c1L5/<-'5'0+dļ2Lmn6ѫksbH:~N}֞vWSԍ8ߞkf`O\Xع8Lt}o}ݣ{@&T-皜*7e䲛ۑ<Ax\4VrRF֩uy0A) Βo侽{75|\:yu#}7~HQ V,X?tf sjdo܈9g- 3DGD>V=KO#mxL_[:hHTɶr. hE`n/\1UW)[&EĭxEE$A $)7&7p4Ipt،%R8qU1S.1ˏئ_k "3LB|v{fĚL ONoNR\r~3޼Kr8_9k;9;) مx 05ܪwP@{81B|_S4Ԅ" #̮͕#\2d\+)/Dd \쒱gte xp^֔v:asus?q , GǰbtZ)5>R\{Q BN:6 S4X֮ ~!!~`V*[8M:N8rH阻ئ {@Aa^áFS\t~>:HFc2,̇龬*'sk Yx6;kk@ѵȪoݧ}[#. C} ~|i`JAx:Jj tSA{Ӑ-؃8 .]ɡ ~>s ө(jt>Eb"6q`asLkMco7G1A~E:;[Pr-7z}%#PZzBδ Hحq b!%*-6\AtWU-| 5y|T(%%ThlveF>2o|yi$[||4 zj\aJ9?v$8Lc\|ڵk \Z?h ̖u7K--m_MrjD-GLlp7O-]MK_sN* .0ZZ5evώ&o^_Բj`7-!Ý nE*/ .Yagǫԫo. NtӪ`EczR]; vYnmq\259߈m̥V&nEW8{$%{+#%vLQK_A#mqB"؇ւ;%l=q3ŀNYS.gє>.$XEC8J ZʹPU| 7}AlFDtu5&v6vSXi훹h$\HLMs؅*('3 QtMYVpu__߯єK|U "vJKg"+")UM| gDETYȗvbX`!(T~}yciq^]'<# bٺKΖ*n!Yg_mw^$[[dټx&RͲ[rPh"5 xط6qHbguX4]c+ g٩:jp1 *[3>uK=XWGz8L^j"|.q>(QE򫟩(nS^'ow8;H8e~`{YS ~qc k$ީF 1KMV禦&cl N=N-`q=/,dnk& 9n/;j֝)Ewbg-\C7,wHJe)^`Lnd{}2q)ψsŁ0)NϠD OOӏ. f"ۈͭVb[ ?&l| c:aa |kt;9cpAX҃-GiZL,uIXō]6fǵf8!tUm| 9YXS-oeJzN0]4Qs Kd yȁoAMD㱹1p75US3:-]f1Mf>YP~%RG݁u܂X/-L9TAsp*>[偟mTn˯%n`=x_k I$IAVz)5_~92{}*g6f ۞ћY{7WpaM56,,l>mlhOv| c.(^{r)T|~T]{#qJ@W8z~IuQuqne%~mW4\k\dgNJS?~׹1`cH(!ꚹy!s=kʬPt1FCgvzY}x߂k:J2P dA׃ G  i  jME+>o7^#Xla0)VDf~=>ep9>=e9Y 2_=8ݪ&z- 2\/o x,-d_p/N| BvS]({\-vdklj6حg[oz:ӝv1 CCaH z::Zps;Ŋw 8k6~_u6粤nAv_.8NU>rj1k_-md%!@m}e.K|*u[3STg+OHn -A̓M=P7]Qn]*6i;ڔ\.<=Ɗ;Hݵw@#Ag.G.DVIօ2%SnSl+we/]o͋U#.gkY_顏d25=&]fYt15( TÖ[ 2;8`]]գl`8|A˗߿D#m' n0oonN^s~P56QIoFe˗]k엮÷*pCeaBVfY$1ta6SI] )DXsx3yC&_z0e]q:z@K$gu~zU5S, MT6*:uR]5G| B>k d;W"EŇq(5&#5-j UKy:̓5޼tdˀ[V_Kt (5l"t=@x)? LvϜ3+A> ESRFWkYz T9Py'X4+>e*ԏϐ4}Qi#"~?ds~&EwyM. '+] G h@mnNswi|(]*6ZlT_| ;kEpwE. nDX$KhqpWwIZ١ἹAMNcq[Bǧ[5E]&.U4<%yOgR_GUTSC_|7+bJa%} 0z4a{ܴWw{۶qnG)|SieR*;# rW D%G@ /j `ˡd[&aξs!e'v^o-j<m{[~aO7w[_!^6_J8z_gͷcQkF6*vZ_m$˺'رۻ , Vy*Ma nOXI%$E_2!j2}IVN.(1ܟGv}+U_:3=檧F}4l߹)bq.rA=UUe>4;9>L_? )?"{N#q6߅EZKN0~aP}?Nϲ?HhpU?Kw@lA"Hd)go;[QeulϚӅ~tznWurbN{϶;!- MqQՉ( aT`;eGuJУ9LWzϲ}S-NXkţsP:gP6(,5  4e('R5t?]IDAT6q|\trH*^"J?8tOAT^S,,YV&M"eDU1=U,"#.KJ",v7$ivkY\PaF6᤼rqRk߸` ϝ{ =wlnt7mY+[ (P֞F~ȕ\EUcGWWi@?Y:-n;xidScx @oOo[AԊ2 u@iY5 |8a+u^'*5q)g;%M˷Hi Bh=ڋ^VIyۀNrS&n[腈XP+.7fԲՠc7zxH"t>$/;p ҕz4wN>T—,apU%yO=iCUhPaӻhPwND[%hRnŊ5ixc;0JeejP!1ԗ˺&8㚮j欛$$hӁ9 KPc~3O58|{7?ӈI{*ɲYIPz?'tqЯЈY׋HP=e_ #(f'I9y:OKz,}TI#/"YF"Ubԯgc^Gۮ;qɠ+1"85@|{$9Tմ<6A()i1^6=Gn8A,lvj85i [%5<"Caz: mDJZ+HHCiv5P|0"$tfԭĸWNCb? Yl-czOTQ :A9Dls_waj' 2,{#?tZL뎷~8V\.O#@>^/XqD4Lۋ**޾/01'6a1mD#(r(zW? |rXVOG tV%:`d bӱG3!t簻9+uUIpۭNO]%O{Tiƍr%^+ϤGj7@} 75bngY/ z!(z7A4"UW0hez9^b{蠻 S#`|x٬JNu 6;} ^[BmW2C>[f Phۮ݉:|x6өUuZuєEODu,j =ѹKtxLs"WFmSJzwz@j6fd"|Aʆ5\UeE j;KtO x?jǺ[ ,? ҍ Vqp\0\WU5 y4YjBڷ-MkVw(&$ɦ}k%i3Bv?lw:EgxzBg] .T*PBys#U@*Uʂv f-7N+wɴLvv&2Dh YP@K\_%0cRKzin|㆏KtpeL6k\Mo<$R Pa֬,,-/0&h67-yO~J/!Eր.-ta/j=K3D7ӫ/E:+צg6Ӽ',ĉYO-hQ.,>ҪTħ"O7kU"O<۶lQ}V)fs?T6 8y?S//bhI,h:vh pM{-MVڵ%(k$$IhljBBA4h#nGhF }MJsg3sɷGxebX7(#cڴb+n'd:}7h"k)&gtZ&xc<57X/"s9a* .qo y#yۣ5 k$/^@|X=eSZ: ~3)"vi]9 7ݝsjehcToKzjH(4,ʼnmA.=7JK^hNв$WW આ EZ*P94sΗ=K -w <ԓmw]4T8E4ti_nhhOK/,;க/M+H!ih0U!4h959"SQd *k9K7燇7qU61V(WM" c=X5iAUHUyL3ˊ%o~=t:o\+7fYȧYL o>9t>cs|:>8qH~gtO7ɒ:<~L=pr:0罏N?gA1rl+˶rl+˶rl+˶rl+˶rl+˶rl+˶rl+˶rl+˶rl+˶rl+˶rl+˶rl+˶rl+˶rl+˶rl+˶rl+˶rl+˶rl+˶rl+˶rl+˶rl+˶rl+˶rl+˶rl+˶rl+˶rl+˶rl+˶rl+˶rl+˶rl+˶rl+˶rl+˶rl+˶rl+˶rl+˶rl+˶rl+˶rl+˶rl+˶rl+˶rl+˶rl+˶rl+˶rl+˶6h&IENDB`n60™PNG  IHDRPLTEνssscccBBB!!!sZBΜνޭ{JB9kBcJ1c9ƵB1sR!֔1s{RsJBR9ksJƽBsRkJsZcZsJ91!{c1R9{{RcBRJ9s!B1ƭc{RB91)޵kZBƭ)1)ƵJR99ֽ!!)!ε{kc19)ƽ{{s11)!!ss9!!911ckB1B9BRJބBck{{cJs)BRB!9JcskZ9BJZk{Rcs!)ZcJ!)1c9Rk1JcZBsB{1s)B!Z1RB1cs{R9s1cBsB{JքskR{1Z1cB1k)Z֌c{c1JkJ{)R)Z{c)J{9k)Z!RΔ֌JZssZs)R)sBZ!9c!JB筽ތքJc)Bs1ksRZkk{筵kks2tRNS@fbKGD IDATx}\WQB'& ɚ64Mi*dM '`V.,l{ˑl%v6)3jRq I>d36z$ͷ<9s::l,,,,/#׻^_kkPV"I\2;pkyieˁ5) TV.Ƹks׻UڭVkEЈ¸16 ͝X޺i`kl`+la qy 4e9`斸w7/"\/q1F%F6?1?[s*m2U] paEC Lq!KK;ezcq.D|h9d+d+*:!s6w6'~5.:hпV !RŸ&%&\oLPA@%l9؂ "ņH2 xbKE8 ݰ,zHJ| elfbffjdd{KIT YŠ(ӍY{8?q}pYttj\sH89l,CCDхlM k#VJl1_h]u0](šPҐ)uرk AH"F0e˥FvؖP8LML!]##'ǏOO_CX\`iS$ѵ@4ZD¢J84?ϱta4;v욹ZDEr =B3Դ~Y"$k~(%xcǏ]Xm1C%r>̩/O,, Sl Ek:T?>z p J "X"Mΰɡ ,(B<"G`db'O2_[ 0p+;<(uBѓR{5d_@׌b ˡ`Z1R+4P(C-ydEPđ%l|)cdϏ}:.v i=Ì1 ޣ>gi`!DvFRq_eсksI~!6x:}-Նh =/#hbY rL0/ ms^GDO2cw~b4mƔqZ8@G_49RX`\`H`O_Q]M냵VeVtrO邃DH~fQW$D,":AezR/H婫+%AS6ĕD`ncV'fN4EÆ/-0O i)jbȵN7h~(X8SƂB!20;֤Ci_9a0ÌW{45 ~E0Tϧp-vI7oHP. l[{j% Y$ĉy@z9Cf*?hi8X, ŭƭ>yV4(~rdC iӳX-N5vʗ$tGjbwM&!'&R͔f8'WFÈqί4 vr_i+}e!+֦&}˜LEZ= yx L奍 Fn^'71P/52=lXUFCD\WCkGU3a^9v:fdsxp,kX]d_zE$jFz](Ws-jR{vHjZZł@tR ^:d b2mEc1:+X҅)(IHcW}w*!"cpR4_xxGs'$hlI ]2A)Q9{?%ǷyΈf~WbzwBzv׈4ehLꥤ3e zAvcoFz&XN<4" ".H][a`+Q o]'}F-$뫓R^i{ror%` EzD;nQƧ^ig FMLdz;qS98i${]>CfZ K1)Ւ%XʍD/OќԒM5g,;e kns7}+V4([FqkrՠFBbݻ߆_p%F,|{W/:+U5;YP͔*҉'aB$Ge6(7m2/<dY齻{XBGڍ]=E,ف6qaZBkNk 2xUc5 1t|uD7HnoֵS&q@S=t0# \V:>j27I W}@wMbGңbR\CKhss w/AKDeGε?IGܫjyk$~=nXGB/F: 0K(8|d.y|6;;7y~k .B"UVЄsY<FnzwQFCi;K{ZOB}"SbR朥C8?FMmLDZi,r`4<ǎXp6_}$I=}^ IJ=zwEdLd4xϛŹ{X8 93;!Qf- Sk1I ^P'` f% ni#v qoL *A\8Wr,w};%A g9> PհU&421<3VIoeCh'iFX75mѬ9nMkqLp襟Ȑ7Q/qás٠Y;5}2ݠ1ӨGKq|Ԍ!q,y ]o./GKDcT)z0j4&-1(Ms)(F,Y{&Q"d. ?bd([w1PK|YCDfsDg6~|#˖S߸K`/9E'8QaЀUkwhQIߍn]e0L;{kE:ѿhG{Y)@(׵coCΠh-I͑֓$#sfz*O*x!D\NW?Z*C_e|Џ<}%hG物DxEKly/QLQ❉}14fvS 1u矓#8|VUW4Q-]BMi_ET|2;&.; Uf?]a_^VZm;jؓVqg}W/f.~lb<& ;8h,=4͵lH]};k8HFA!1+ș>xf@8RiPOќ"Vkv7N:GnԽ[c$_N\?~˷nlu!S,styzѸ5v&U _j:<,W];ztF-$T+OnQc KZjyi j`4) h k&6>Gc9^srK'+5x<𫂕˳NM1fJ%\rCq?9s4ry~]li7<Fj<.!RtB*R|UI촓\þ%dn,Sٖu߲2!MkmQ-Pn$:Z>_Hp\|`ˢ̛E-QfUEݧe:c2kE#(s2mV$[#*H0YwV t4f>.h_^-_g6_Fl 4SCRSHW@֊Rg*oqE{rv+V (#$GYj,$(-i WHOYy O 2 5v> rWcIswZx&qwDzu9gʕ\eXߌ̂`|#*vUɢ-$E /^`,!7BҜ ;^RBt1 Ƣ<k 6uns0t*j_t5̜si3>ݹH@a)ȝ B%oQߤgnΥIDAT8h렞7(MM6?Jw>on9Ŷ3ʫaeiX xYF^7 \]!3y[n1mYց4J6Xtzk1xT1d)xro5z<`4_ң&*{ABdv$)=1ad#mr13:[VʢzEQ$d%tQ)>Ӏ .ZY6Mڣr ut Czf-o-HUf\y]P>:9s_Ь8wȼs5cc҈w dXoo4AM L}'\rjxٯE1H5MS 0"kEއе"ÖZ #LqtܫrgVz+ -DQ^n=06[Vc;>Ƈ?"d TpM UF$}q.pSC֮/l7C–'cԐGb#%A9Ȍl(xߧh4 "9.ǧK$rmhxUSQ] tA!sYT|ѨaXx[O[blٯ[6>ZrTSgدtM!{/gq[Xqk1Fc[yD% }pafܢ؏feJO3KQ۳p?^M7g 3rϦ(aI&8dh/]5{E ^3+-nIHu7Iyͦ|RCzBdz}̐F*$>[[hƘ&ħq2o&:a/ԱuWu7H̜mWBt<9"QjJ6P/,L2|et=I:8#l_br]/cCsjTRGE|Տ>L@cSsxaRj>)`Rޟ,Zj坍k5~ʰTVM;E5ۭjJ_az26ߘOU>Ә'+`.mNQp@7MM-(t10,RƜc)X>&ƾ΂n7T_P)2`{X:aO~'&Z ڷv!H>[35JH&c 0 |UfNؤ՚mMX×hC㉉S,f"$f`QЏKV`= ڐy  [l L^Bp顉Z~=!I=r{0P"2;.Q0fqۋ_ éATVJJ($yq}.WU ߘX 솥[Lma-4!…Oq_B'Lx\~l~?i "A|54OJx@q7wl:.`PнNN*#:wZCt>ރHOf*> \&[ҤQHSa m-h_y{c˸lDPr(|E ߇'?Iƞ?#[ITC95F9rI}1hxUu!TQ"QhwE2{dR=a4Eu gp'X;vet`0ۤ*ZTPXuicjJR~PDZR6N%"20:.F'hK&ؚT: cuC'Ki %*Fd33`33eMh2ynkOC{夑*hxKSbfŔ)as̼+b3a|?o=ĖG<&ǰG٠أ CdH anK֡&F1ڸ1&ZW9#+#Cr8ЋĘgiU;|Ħ\!* !lz|zz_˒$/K c*c;0ĩd}\85<7@ 1\q.erUs}؁;bb>_8ln k-]\*vZjK3_S1=˜d8 G[{]Rh+aE(+ f/0CUven.7Xn> F֢' 7f*Oٍ.N+Db!`'*,hD_1#d "fOd4-vU.0(SS4!]Rּ-bL :)ko[Bmk&ql`{!>?_r=$Ɉ+@ y&^*)x bd$&Ǐ#*,5~T izCN~@F+VP # Hr89}3:iw -,ZS5# nnҦ|s[(d:6 2]`+Ņ(CDK\O?$GE'}Am%D^"WzrU1=-X ;=9OE )Y~iwQqLG ը4kC')ZS7bG2S=yΔDjE ]M&<sH)o<ޢ\|E:_,?"Kz}З68 87 V)]oPR~sLBpfalVҒh}s_^uMҧ/'Eg&/228~؁Jʈ]eҥCMפ>ZMK%vfq #sµGw. eID粸[JU'pzu0 aԣ)!X^>ۭ:pQ-7ڢ)d1]gbc??IENDB`n89w3X8S APNG  IHDRsRGB pHYs+8IDATx^흿%RѠ|;M[24AJHn%)JVٚA HA:$VPEHꬔU "(HP!3뙱gūt܁7d$wB*$({hl"|ev}砘- ]s.@f Pbh7'v[@{"!JQkf0E1 0(D@* i @P!Hq Siq@#@d ui&H@@dTp$7QA@*DF*1b@7ݤ2 mj @#$jE!@ ?DF~Z\ZqW@@dtt.tN 8DF GaK" DFi>H #h>L`4B )DFۉEa? 5DFIo@@d4j&0LNC"0C"(&h) F"pѣm;@dmFmC7[k?2Ӂy^ͅj.g,EaFP\nWkg?scEyPj(peF `71n2JDFiCps|=gdrvo7~ S:vr9_?pluU" R#ɈM0q X(RC8RAmZAdIr[(ˌ( /K S0bdC!O`F7j\m 5`Gd졗. #'MlAk:cOQ{EddG J6 ~ e(-W@dd c;;jB`$)"H6Ɗj,wAaGeG >>1-G5.Ed\DT"8b@&-$5qԈ]qA:^&R/B,"c-"I[@0{KHgHg$b`< P#2"#Tb(L|CqLGEΈ@aQ I ~eR#%Dd$a L`͠3JttQ]8:MB`鲃Dw`JcJQl0&N{8@GͷӢbJv?"OwQxV.OtKNP;Q@5rs̉.Di]_WyMh+ύi vw+"xo?! c~p)W_}~ pKꫯ\~*aMTzC{BI@`qnt:Ɩ¾p{3_j Z׀v lCkEE"#Aa9䚽!DDƴ-8{|m\?L8(nZiL DFjw_[v@m A/:/ΰS&92P~vAݦ][ZgA*y\dKF隆 WȸX%1#.Kfmw|cYgO:QRHdiڲ'ki=n<Mu캌_̑Edx܌*yd|_*C'\V@&9""#J3O b^M#0젘guyv3}JB Úqq: a5.Go-#]ᚳup}T+8ɬ2hh9[˩ #-kI/wQi:]q~x?SKqt צIFKg:Qo4:@G[m`7~ wluVmsVlww 8a(k[ ~G^*O]w:O Q+&L]t>RǵA JMi*k=\:v.|Pgmxv3x4dyx?0@@z'STJGnܸ A`c≟?F~Y-ꉙׯ_?S61@ L%E*6:"c%0OwSk 43#0;{fmHzH1gpwIƼ?hjŦɅUIhcUXmEBŽ{a)VR+ B{ 4q 3{OfS GWet!)Zl)2:Y4ZNaW:Q?8 ~Tf#h `~eSguMaCk [ }̂~l̈́=u)YSӈub9fz5;mc]-̔6K\gG!@f/^@"'VYULmVNپ-^W۞Úvxmp}#(MvR [ӶkAwW o!&{^lPEORP,m)!z60qFA^nq)FR[O>f1-o1Ƞt6SC禍T08bS}DA6FK%R`m$osԬ3yJ6(-2{cڝ2$HpuG+~xVXC?"nl;qlG/70% Z+Z\"8lKD{>! 2NOAqJBkΒس㮳I7ι)EQ_.,u"CJE*̸H馛S9?4EZLF.PZd8=`N : Ŕā6[7\ڈK^m2CS,dY-,0R*d 2ld]j1@BKZgmR kmZy=RHlqVrؖ%;| G7y|2"#O J G_iwd?ow=ڶ5WLUҭ ,#-NED ~rdḳEv~ɠv[-Q\roPŦE_Jeb| JB#J+ sQ`S`M{p74+:kfuvVaiUՊ 6A" SK vjmHlT9;`M>&|Xi`\` Dò~_曑2y[$Y@]5H ע*zta,-qM6qҿ*o2. /oqf3 Cgj AS?e>iŸ&HlhX\4lM9 ćxYYCwDD|).ID!@V7GLjՂV9HdܸqÆg N-LϺvj*8P?[BRgCÇk矷_z%QX"8XkMV`7n6-ޏyׯ[SkY:cώA@@7y"?[)a ýՑ)@ShfND,| /ڷ+&q*ʥDCd K@?JXhx|cak'yv7vGTz=K]Ǿ5'].yw4a3hKmSm@!PQvqA`y!zwVq)U|m rbYqk/5A[_57n˖.s6rK1s̼uRݐ`l㴎 KQ*R_i2d\2n0q >{M [iZ5}RO]b3&*6ftT@'/[VbYm:Vz'k2 k!Zw,xr5 VIQeZp @yZ6kz&9@ B@w/km[vW)1տ%.'TR.Ž{r=WTۼi\.7 2z.AdceF,@?Ϥ3X-_O6| {eg{!CmaFf6 轎۲ = ԧf;딊ڇ;!_O+{Wa4vʎ{5bBuPtkV+J, _MFi(J@#\MmSG}dlRmnθK6LvJ]U.w17Ժmvhrn˸Sڵ0EWeWy`P]' Ptp@6R$VvPs뽉 ; jvۻGD5Y#) F_95ج!;șAq#jk hеn>dsq)ɝDa:M>5$ ~xy#O#կlMF^zb.,-ی, NE ՚ y+Woܸaamxeϵmydg^X ׯ_RZf+X j3="FzΝ;oNl¬ŞV+$6@dlF@owݲ3ϼ曒O~bgRSnFt=ÎN ݖT۷eڵk6_xϬ9v֭t E=g5!.g5e258}n0H[ i7u :ucwJvC+o 0m^gW[h̠{%uV/+QW֣r gs2{= y <j fq :%5`㷦.W٦0쥑ێ믻5P$#F:ek5mŎOL%Aɢcm R ?zI~$c.!IhkusUEdEa@@im p_u@%.ar8)K>!Ϩo Hɞ>LƠ=!,WA { 2У. @g{1ĥ%=gv3\M@!xd~"#{jhQe>!D EdTdd ٍ1q %u"x` i@ Xllv)KHz#ȖU): ѭ-g tFC,L#Vj$2,q< $K3e4M)׏*aU7 TgƐd\/Ȗƺ pH)Swx@!D>ΐ9ŚBL2܍ d"d,2I3K zM!D :q,2.~ʦĊ ޵Q(Qy&u!I@ٕ(}+N=0{j p0}Pb1z0o#mSQtF Y@Dd, ~Ȏ={QzB?Lr~ d!мH{ 7" ̋Aedvb#qH*)#>e @@EU;g S#DO]C@Z$h1k @h"$" @E  2H.BZ$h1k @h"$" @E 0#O;aSmt,.5tx"2Qmg#"l x6.e#%/U.Z tKmj  p.Dƹi -DF%0@u@@ݦ @@d˟!@@dtZ Kq.Z tKmj  p.Dƹi -DF%0@u@@ݦ @@d˟!@@dtZ Kq.Z tKѣGமf9'B:AۓV( @@ߐ|i"sC:cӺi,DM+h)%g.K   2׸"5=ChId$M,lʆv1t h@K"Cl/ ZK,5'@GhId\\ #mR#]=<=@"ʳDAcO ֤FPөt1 QCDv.8=M'2f {`QfRQs *.#z. >]GtQjЅA#hLd̦ 1r԰Zz PgEbةj4,2PN7 jieOf Pa~w;bDJON\\Ψ?xF ħ1;"{K] 5Ѫmb#- K@e)5)2sItFY7K XTƟh@"chU<@Bvrx;2G+ @!/wjvEggB . }0z2֯>=%X 5̾w:#P.Ҧ_U_O洒(vNtv1S⍤qJFm4}CQ73ڧze5ŁD+Tb1x&X "_sBfT|fG A8=k[Dbƴ0pة&%鹋ջKNg  2! !(  2 Rf?*0㶲܃u!@=n[)Pi{l۬qZ`P?,70[$v @6N9G.ڂ t0ٙ-DNT 5 ʉzŕ_ҩ`ڵ+;٩ͩo/%,1@mo|nnE p!|#>gpZ2nz[a M糤#F @zXZ$aek6g\`qZLtN %Q&߂vM#S;nb' q"| #tE-wgʼn챹+&-2( S ` '~!׃(vڙ5]y "cm< M@mp/tu /S)m&ӻNG;!e%n3 ZaM|Wxn}ѯ/%AhD"B")`&sBF'? @DF! [#2rP tAg`t/ eZ  p>D9@@] @@d< tIeZ  p>yD? _@4T+Q!ZEFR(B<0gBh{dm]81(~qݮy35"Er"csKT@i} }DQ:؇@ DF eEbG4Y.* D]XOO`{e1pYJBK[XZ_Hl!SR 7.C@dzLǑ~^JO  : B>@|#k\RPzNK+HD)ԁiΞuqbj@Ĥz\q|] X4ɩ?sF ."EdlK1HmQGe{L*w{HNh~Gd muX( "*6$ oFGEC(}hS(my;?od${vf$?@g DF۽o?FԺ5xAo@v϶Bvp͟"2v v $ImvC(4ȓ@ 0"c3:*Bz& "26@  @` 6lƪEz B60L  #b $F"c'dC%`Rc)~DƸ=!@E 28 @`\qsO Eb 0.DƸ'r@@Qx1@"c9 @(DFQ K1n P"(^C%7D@(JQ/!@@d{" %( q 2=C@dŋq@!@E \=zhOj,vv{2;Hv0d!Ȃ1##No,g @A 6 &m!U!@ "#Tg!4G\V;X  "#mZN8034@!DFK}"]a /Z+B"&b̈́ ,DF(ܓs%  2Hr\@\ D #DFY( E?@c@dTuEi9@"ގ00& @qJ{D1 @`"Ʈ1'Ԙ*| eO6l#^[F`&cRV) 6J "#L6V) MF `r@d䤹V@RL]@8@"#}> w !q:H"!@8@"1o7J6oX  pwIYg@@ $ !@-@d5| 4@@p "DFYg@@ $ !@-@d5| 4@@p "DFYg@@ $ !@-@d5| 4@@p "DFYg@@ $ !@-@d5| 4@@p "DFYg@@ $ !@-@d5| 4@@p "DFYg@@ $ !@-@d5| 4@@p "DFYg@@ $ !@-@d5| 4@ѣG ūM#q! @"#/)A KV0 @(@*U( @@*DF*)A "c. C JR8MrIENDB`7+( 5  e.Bitmap Image Paint.Picture0Bitmap Imageb/ 0DTimes New Roman#0Wo 0DSimSunew Roman#0Wo 0 ` .  @n?" dd@  @@`` |tPiN         Ob$Me `YO-4b$ bO$˯64$b$w3X8S A@9MK 0AA0 cct@g4FdFd0Pppp@  <4BdBd. 0Lʚ;ʚ;<4ddddЁ 0<4!d!dЁ 0r0___PPT10 2___PPT9/ 0? %&"$ Weaving Ada into the .NET Framework%%(y Martin C. Carlisle, Ricky E. Sward Jeffrey W. Humphries United States Air Force Academy Department of Computer Science (z:?RB DISCLAIMEROpinions in this talk are those of the speaker and not necessarily those of the US Air Force Academy, US Air Force, US Department of Defense, or US Government.SA What is .NET?RMicrosoft s answer to Java Language independent runtime Microsoft Intermediate Language (MSIL) JIT compiled Large collection of classes (CoreEE) Flagship language is C#NE =E =Our ObjectivesBe able to write Ada code that compiles to a .NET executable Be able to use .NET classes from within Ada Be able to use Ada components in other .NET languagesTCStarting Point2Largely derived from JGNAT, a GNAT port to the JVMUDProvided ToolsMSIL2Ada Extract Ada specifications from .NET DLLs MGNAT Compiles Ada to MSIL RAPID Ported to A# (Ada for .NET) AdaGIDE allows targeting .NET http://www.usafa.af.mil/dfcs/bios/mcc_html/ a_sharp.html Z*ZZZZZJZZ *X<p+  0WFMSIL2Ada ProcessyDisassemble .NET DLL using ILDASM (from .NET Framework SDK) Run MSIL2Ada on resultant text file MSIL2Ada based on AdaGOOP&``rVEMSIL2Ada processXGMSIL2Ada Output package TimeLibrary.Time3 is type Typ is new MSSyst.Object.Typ with null record; type Ref is access all Typ'Class; & function new_Time3 ( This : Ref := null; hour : Integer; minute : Integer) return Ref; -- constructor for Time3 function get_Hour (This : access Typ) return Integer; procedure set_Hour ( This : access Typ; value : Integer);(Pb&    -            YHMSIL2Ada Output - Interfacestype Typ( I_IContainerControl : IContainerControl.Ref; I_ISynchronizeInvoke : ISynchronizeInvoke.Ref) is new ContainerControl.Typ( I_IContainerControl => I_IContainerControl) with null record; -- Use X.I_IContainerControl to cast X as the IContainerControl interfaceb&                        ZIMSIL2Ada Output - Constructorpragma MSIL_Constructor(new_MenuItem); function New_MenuItem(This : Ref := null) return Ref is Super : MenuItem.Ref := MenuItem.New_MenuItem(MenuItem.Ref(This)); begin return This; -- note Super is never used! (compiler magic) end New_MenuItem;N'ZZZ(b   6     ' Q    [JMSIL2Ada Output - ValueType ^Unlike Java, .NET has ValueTypes, which are passed by copy Introduce ValueType reserved word  types with this name follow this calling convention Example: Point record (X,Y), % b\KMSIL2Ada Output - Enumerations(x.NET also provides enumerations (children of ValueType) Mapped to Ada enumerations, although they are not true enumerations! (Bold+Italic) Add function  + to Ada spec to allow combination,- H 4]LCompiling to MSILGoal to simplify use of .NET classes and provide a stronger OO feel to Ada Result: added object.method calling syntax to MGNATZ ^MObject.Method syntax C#: Window1.ResetSecurityTip(true); Ada: MSSyst.Windows.Forms.ResetSecurityTip( This => Window1, modalOnly => True); A#: Window1.ResetSecurityTip(modalOnly => True); 2bV' %    > _NObject.Method syntax Also incorporated into GNAT 3.15 for Windows (local version only) 127 non-blank, non-comment lines of Ada code to make this change. Recommend allowing as an option in Ada 0X. Support traditional Ada syntax also`OImplicit string conversions8To simplify calling .NET libraries, implicitly convert from Ada string to MSSyst.String.Ref Only if  use MSSyst.String E.g. Console.Writeline( Hello Ada );>J aPRAPID2Ported RAPID to .NET platform In general easier than JGNAT port, but No bell Can t group radio buttons without GroupBox Can only attach menubar to window&EUEU,o bQNew since paperAda projects for Visual Studio .NET Compiled Ada libraries using MGNAT No dependence on J# Demonstrates interoperability of C# and A#&G?G?cRPossible future workContinue development for Ada for Visual Studio .NET Rewrite MSIL2Ada using Reflection Eliminates need for .NET Framework SDK Change .NET enumerations to named constants6V',V',dS ConclusionsA# project provides a clean interface to allow interoperability between Ada and other .NET languages Huge .NET libraries now available to Ada programmers  ` ̙33` ` ff3333f` 333MMM` f` f` 3>?" dd@,|?" dd@   " @ ` n?" dd@   @@``PR    @ ` ` p>> T(    6Z P  T Click to edit Master title style! !  0\   RClick to edit Master text styles Second level Third level Fourth level Fifth level!     S  0Xa ``  A11 December 2002   0e ` 0   e3Weaving Ada into the .NET Framework Martin Carlisle44  0j `   Z*J  C "A dfcsR  C *Ausafa-smH  0޽h ? Default Design 0 zr@ (    0r+ P   + P*    0Lv+    + R*  d  c $ ?  +  0Ty+  0 + RClick to edit Master text styles Second level Third level Fourth level Fifth level!     S  6+ _P  + P*    6p+ _  + R*  H  0޽h ? 3380___PPT10.1Ya  0(  l  C ĮP   l  C |"  H  0޽h ? ̙33y___PPT10Y+D=' = @B +$  PT$(  Tr T S +P  + r T S x+ + H T 0޽h ? 80___PPT10.Y>~$  `P$(  Pr P S 4+P  + r P S + + H P 0޽h ? 80___PPT10.0Ja  p (   l  C P+P  + l  C  + + H  0޽h ? y___PPT10Y+D=' = @B +$  \$(  \r \ S +P  + r \ S + + H \ 0޽h ? 80___PPT10.0Կ$  `$(  `r ` S  +P  + r ` S  + + H ` 0޽h ? 80___PPT10. $  l$(  lr l S (P   r l S 䞃  H l 0޽h ? 80___PPT10.(   dL(  dr d S P    d0 NA ? S0R  H d 0޽h ? ___PPT10i.:ڑ+D=' = @B +$  p$(  pr p S P   r p S   H p 0޽h ? 80___PPT10.V$  t$(  tr t S h+P  + r t S $+ + H t 0޽h ? 80___PPT10.$t$  x$(  xr x S  P   r x S dc  H x 0޽h ? 80___PPT10.$  |$(  |r | S R+P  + r | S @P+ + H | 0޽h ? 80___PPT10.aU$  $(  r  S  PPP  P r  S PP P H  0޽h ? 80___PPT10.к$  $(  r  S @iPP  P r  S iP P H  0޽h ? 80___PPT10.($  $(  r  S oPP  P r  S lpP P H  0޽h ? 80___PPT10.O$   $(  r  S P   r  S tP  H  0޽h ? 80___PPT10.pSW$  0$(  r  S {PP  P r  S ||P P H  0޽h ? 80___PPT10.0m$  @$(  r  S DwPP  P r  S P P H  0޽h ? 80___PPT10.p=?}  P$(  r  S ԑPP  P r  S P P H  0޽h ? ___PPT10i.9+D=' = @B +}  `$(  r  S PP  P r  S TP P H  0޽h ? ___PPT10i.l4+D=' = @B +$  p$(  r  S PP  P r  S P P H  0޽h ? 80___PPT10.f=5 xT@*(*b 6{C7;]QWQ]x˳v׎+ /efn&ew7&d _'g㹃wl60zef%qӕ I,M /[ָ ^/ olb"q^t'198N4gp ?a˳ȶW=V|]UƝl<㿔Y'wʾ=Nd)K[O'M6TKӿd)c)v^:;L0%cJ{,R>M'+oYw/뛞KV_eޛd>R[+ |_lMgvY,{^'|u'xKx ~*> g<ky||_/ƗKex_u*|5 |=߈o7z| ߆ow;]n<|߇Ca~Ə7ΟsSi ~sy~_ƯWq~mio7[m~7!?/?şKow{?/W?_/DƳTnnípk/mx)4nx9<^w+x%2^WÝx &^ x!o7θ o-x+5x=q/x\wp<{=^xoAx>ƇC<x8G#Qxx'x1X|>MgSit|>\\ "|1_/ |%Wt| _g F|[6|;߉wx.{>|?~?Gx6~ ?O9)4~?9<~_/W_o7[m~7!?s39_y-?'3ÿ?/78ɼসn[x1 mx /Kvx,np"W+Ux5 kx.^7x)+o[nx-owq½ w}x7;x {}x??>ƒx0>0|8<£h<x<Oēd<O')T|>g9x*>|!_/4|9_Uj<_z|߄o|+ ߎwx& |/ߏ(Ï'x~ ?"~?_/*nmT7[m~7!?s39_y-?'3ÿ?/7\Snf9n[p+%p[$^ /e=^/W#^ Wp':^kux=>o7M37Ûx % omx;=w=pO ;>x'3Żx' | >|(x>#H|$> £<<O“|4>|>OƧSit|>\\ "|1_/ |%Wt| _g F|[6|;߉wx.{>|?~?Gx6~ ?O9)4~?9<~_/W_o7[m~7!?s39_y-?'3ÿ?/7n[x1 mx /Kvx,np"W+Ux5 kx.^7x)+o[nx-owq½ w}x7;x {}x??>ƒx0>0|8<£h<x<Oēd<O')T|>g9x*>|!_/4|9_Uj<_z|߄o|+ ߎwx& |/ߏ(Ï'x~ ?"~?_/*nM~ō=>?O\) _xx> ' x!.?nnípk/mx)4nx9<^w+x%2^WÝx &^ x!o7θ o-x+5x=q/xwû~?=x/7 <CxÇa<#(< cX<D< OS|,>k D|>OŧL|>sq->/|) O×+_5Z|7Mf\o|' ߍgY ~?18~?,."~ _~o;]܈#1ş