ࡱ> |yx'  !"#$%&()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{}~RdO)ݙ@Pictures}PowerPoint Document(SummaryInformation(z5 Z44Z: CLwSw 'Զt 4|?+`Ж}6= 6dK܎XlYUhhѲЊ[8k!cT={ y`]ͅo\1U-͇C`rD&fgW72W9^a=)/IdkDڙtnfg81'ӎ?!'t=Ç> ʽ|)Xݩ0WwCg!PA~k0M^YtqYB[T@?&+NNXCm[8tcV'$~13La5`6 }?ݼYzEho&͹0'\eN 0D51?K]_7fݔ{(D!nIKG`[U0H[=n[zh>HE]rUnD/Z; XNw@_K*wDPNG  IHDR&ĴMPuc!](!BDaJ%BP*B؅R.Jv J#{[7yjDb jCK):a;6Y{PkZ@϶T B$[HRK([ kmdk.1@@ Ha#iz>Xs_I\v5{"O''UѦ:iSW,yOt, WNmz0?.ſrl%//iðnQsMպyEvkf;~Pm$״bVs{3J`XrWu;"? ͽ$e|Og8$ OQckg/JQx# @Wv8m 0(rD$n~H".yH}MMM x2dt9q (IWjF v:zrZF_Oɉ.d0? W{*hG)ϱWVZg:m Lޡ=Z:LTrx\EAnm8`&hhZnڢTM̻s9~HB~r1Tx.<;. Sn}"T'=̗R1qpf"Ǡ OKRIZU]ڵvVψq$/Wԫs#'z,Xހ <_ס~>BѻaΥ^ l(~`{6,`pUw=̋? \^YO5䧤:&WHH^z98`ϳO^ݲrI&+'|lx$CGxbZ|gu4fg̭ X]{+JjoBog'pUJV]2RNAAbkq%C dǚbO8 oX,Xd{}w{E ^f8}3fM[{]8_R)N/K:hvj+UWCmeF %q'l#Ē+8Y᭘ӿL%&zԙRAT <|)Ɵ^M_?,+/Mzu0ƙM6,9,Z:`4TFeܪT?5ms⯗ aIF&YEHxT\>Q}\@y[|~{TT:=HʹM4:1O3`k `jyРA*8)>vO_ad`}7\Xdk[>x~:[WpU5p =g,d>i-aF̏0-g촡/^U{qˍ?R?8 gN9upWvpү_Do<6Hm q#YMڝj( ozЏ!y ӌ8}z(rBOwޞ2G: È?կeU7n5wAҖMT^9,[>tpaO7 $Ej[FRPuڈysF9^K~Ua @IJk=|4]_Wշ+8FS3N~:VdvX j +DL'M}# Yi Ue<{QQ>/0J035+k_P,=5/)v7oJY%Fl4~ԛ2ͯNu'5"g= >Wv-ĉwkijHUl}-ikqaElSt~2g&ʀ_Z,(e˻TFrRginӇsuZ>MUy(>O6:J^s-矸pӶNy%)hvaq*U^ 8s3~7w+wRx,LY;ޖZqYqK{|S]j"߬YlŴP9ظ8!WC +=_iܦ(:᱂޸eDI+fw GCZ+Wpp`Ew=Q k8B3 6z~abSX9'QR#>Ϫe:݀󾠾?MY78;s;ԿfOP 4G_؃AUmVnОFyt@a> Ld/SΫE)zJ QTi"~R+)H+K+릫&YBd'߯꤮/-)(q_ikh}g5r= 4b10m(γAlCfK'!BDa>kT}^$F!D/}`3a?DaJ%BP*B؅R.JvT" !]]i{@>(ic,i8ݣ%~J164U0?AOMMbt_(нڠ)֠T": ? Jt4 w wrZR? i &T"C󅇏Nu3jr(8E ^BDHz.ذK-E= lE !@]Q*qUMp~o'8\򨨨WRJt/+k"+;Fj\T"8fF7OqRMi`7i5.Q*wMI! "(,"ZZQ q[h:u"P b\lBBr?V>s=g>y_ 0 F5K$*WHÿ۷o:M~vFԛRQ3'4u53; kZȂP,$*Xu7:;1'&7ǶBQH$Q]~@KCz XeWr-ܿmz.$wzU+u2hU/k@{%nè,YΨogE7%~9ﹰ@̡@ƎE|Z3$NONfLZ2 >7"le)+5o:s=+B|{$5m[toaaaԭa*1>-.t;0s[Dﮟ~QY\QKq%]{:u[GlC@cͬ;;2n8Y8JɤtyMN4{VǞlvruƊᡗ^$&?.xostëG@33En&e;f|CtK'^5ͽG')~l`Yl5U訔bÖˑ.8w7'qi'3'  yҼ-ӧW㵵ٶ׮" cwv1k1|hs^A;Mʤ_<Fj p͛u!V7&- l,vFdRhӣA?8+sآă2 67O Zѹ{StW~ihރ]42>PJeG9=>Qp!zwڭ%;ξUΒ'οD˺U)~L!&R/ve0l[O^zL^$Ln(+4XlNms˫haRhlO [R\M7jpsv謜bϵ4dUqr:*ѕT(vh4e 15IBȎb3l}Pq*S^sтDR=k5K{4ݩ 6:' ˟rƺmڕ},-e,FSbXw:bx@6zv-6!Ġc *?rc=j}E?m:x{vVfq4Vs\E/^no,JHHPx|+s޹NzB,hB1z ;|158@7jpk تvlnbo'mMu9BGw#@s6(zyLú JLUt1lkN= 8wwdOVL7rdGgG:.tם1cf"p;G=G_gkn_0~9S^- V6Y/ :Pem#PW6kĜp\qPŭ^#ψ5HG|һܥV^O<:~L;pqlؘh'9 m:ee>u *E"':)ri zlNס8[;=|W(x16ȫ/Jfޯe<}73~йJUzd**S^_h2|lƀ5 -=<퐴<ak7*{ɓ7m\WٷbwܰTzTJt(یmៗN*d95[Qɴ3p\P].D w ?m3JA] tm=u'J*O7ѐb,Ԃ%ZooIqg6PDRB14@iA&4WK60j;Z=4v*k`S:SM:po}jB҂S!8?ay}a?.'`!nOn l 1 `.:k뾆jm oJ˫UC/+ٚ\UZui)r@\U\£5&@40/Y@ژ PB^?$/3,E;+.TMU2kTJM ٔǮ2\ͼ~ronm8/GߓsD%&ܽ`Ϛ'[r pnẀ#A'W^©ͼ^])~Nxow=zNlϐ\3/59}~:SM7Kec(SEPb1dKHID *Yb%ѓP@~'M4"=2ݷ[x (>P.T^cqiHysw~Ns~pҝQSyHr}1]WKthUIQ^W?V#!OLŪ cuN-Z}x@_'7\EmAFt&.yZ`˶t1@ƎE|Z?P-x!H%k@Nܥ~Nym;i¦?}t7GYǴ_0JMjxUΓ}5uq]BBY 2dXbDX*V *Z-ZDnqT}" U*(^BBr?[$|q8ܛ{O3rNг]eοZ\_1{dT\oon ,_1v8}v*(JkDe"H3QTR6Œg`nѶN-#\,uMosbW3@ݡ#9J>7<&9fGbԐyzjBq!.9e4}{6v}*t-e9WeirߟN6@d{4NƆz'TMZ;3hxV'JFc\Ϧm1aҨ(}F +ޫilBG+a>.b yYyRBPę +XV;T31043aAOGhE+|Rg#F63`R`}B;~gݪaԒb]FQJu<(65}(*5$CTopx%BrDQ.!ʅ!DPT"(JBQ\(*B $D!ꢨDYmU}MUE{ߚ;2$opEQ1uo߯{y_S)?ΖۀH#=bHlTLjOԊ)H#.B!7>s\gcԊ)E>p[tjBCJy~~O++-)+=^"mE%<##[ӽo-ٻ[S##eә~H{nN{-:s׆iOeYxSo/DHcHx<\kC4@Q4mx4LfHzt hy(*DÔkFQCÔkFQpa4Lf-;WMŪ."^Ot.+i_Ri˕ZsYJАz4K&*DjS!DPT"(JBQ\(*B E%BrDQ.TRVV?#yaY6+Xѵh(*MےoOHi<}dEW\Q>{&M;IJMvd._(ReX[Z;ar{CFJ> yBxmqNVnP&nqdﯾ9e}6 .WP~3o zV Y,7bbɺ#Vԕ]6M٣Rѝs;c7Z4ƐW*S\|oCC;3~ TBhk#ߞcS?o!újKw4nqEVXV^qw;ٵ?Y(:D飒{נJ2,˂Pc|gWGPzwߒ[8em{{t)bRKnD,vy`繴gKO.}&,cW&m Z{{vUd L#cY6zGOsR'K!I٨ƵMmTU2&a^h7|y=&Gg܆6K98jt˟7f?΋[B=9N ܚ\elmL|2I,X lkt[vvv6@JnL,=Fa\2+o _~65;ݽvޟ6`ciE}& b\|A< i]V;Χw5?),矌ܐ~BNXu ~ovMՈJ}F|8Qm~lMtpVITIۅfpAUsԹ1X}hh xe&$ UT)bəoyeFvo85pT)JY @"U" jՀ'%@;Th8&/q? PGUnV:>,PkhB!6\%;CZU񬴴oTg@ûuP(+.u*l#89- 9tqx{M-q_i.WtO5U*W K%p8dg`mKWc 0r6ë(Fm?xߜ)Aa]Ne?,ˉO7?%"/ڨ/<5P&|W!!!!!΋<49 uV Mz7x?~x8[jc/$ړ1Gf6Kix9ƌy [ ȾYqjUe񿾾UbIɻZlZI*.P!ix;{`W-M Ҳ]N^3pgP]0cƜ;qh{jwT Rxdj>;kLsxGx>]hn1*$*Yleܺ- N#X~9n6c=~i*nh6~[?.7.[ z[kx-2I 8a[-IEIaū=7I{%FV(-t48(zjvXc7KMogWZks DB=] LMЮ T=.;x|zY}7:IJ ð,B|xٽ HYVWptꢲgPWWΖ

Q>M<71+Di(*Νe?yI P + @!)!ʅ!DPT"(JBQ\(*B E%BriQj4X P/҂QI*eƲlЂSV n?Π^ *2|w\\hͳiVJ7o圍X p62歜& i$->ѻ,%D v93e2hO.\(41z7=}*:R굱+I=ǎt Q zH2iqhUUW"JnT"p ![(!BDJ%BP*BR-JnT"p ![(!BDJ%B-RRLVswZ*}UswT",JnT"p ![(!BDJ%BP*BR-JnT"p ![(!BDJ%BP*Bae硼Ѐ%y?i7fśRUykA ˙!Thpi,R4+ S]0.n O% Ñ&Cä%TX-JnT"p ![(!BDJ%BP*BR-JniTRer%|'W3| XҘR* >ӿnөSL.y56B@m5Dk)쮵K \([3jĔ#*̌ܲ\ˤe>,T4ANoߎt:C҃0oP[euw DfV]S&|sPz֤o%lupa .};;!&|{Ɲ %8 3-0i'`=lkAlĖch;+.+|sU?jkgC@|tFu8uJ*[ӧؿ.-%2sV-H>OSnE(~WL[(2jDG=<~ k@'j]8cڵ+[[e_9NN 4̧~^}n˞h͎ĆW נ; >˖n}0˰ezedzm7ow&n>4Ҿi 0::_Nsb݇vai[w+Oy@;8v=p߸No ;|.Y]g[Kam+}eY +fڍ V٧WHKχ(Z {%% ^GLhH0pCꥊ|\= -9^'a~*8WӊolDq`CLV8p(q5_feP' =|W,,Tj^9IiOlYIk |%" ؄k)[T"H/<'~5(YzIZJ%! RX\%cY{MMe+_;&NrN>)&JU,6xnGšwջO:20@.n.lVwc&]B`W8|V~swJf]G rV<<$422aB:Omw?_ #^,gDJٺ/z] 9VYtr#İ=MwYyTbP{ʈ]Piu# %JS8uYd@mz\* rZnUCW~Q_̋\ ;f(y<%}n7fɺ_ 0zvn! ک?gF7uD 0yΧVtYAׯE$``m_J՝_lNRIDATeC\|'+= %Nng";aygxY R Gx x/$<>zגG-wyg lF.̑XH8ؽ{~^36hշ+1 9jFHոKBGf׮Nms3St\BYZu4aG/&$޼p g~[KGanjh ,tG7.̍u׽y׶Ji1P{mdoOWW^JdYFDVH4q󂧿<0=`Z>b>1+i DVGu~GGDM2Ӄ<4ri.@؊1] |Dͽ5`qGWk&H{#S܎_pxزz|ػ4B\`Lc2E%@w0Y\mL8kZy?1}[=JѳߓU(v˂aEnzjvQ1niSYeiykh&4eTݑYï,)UB`)R iii%PJiizBc{Xvn/TĐ=yV =S˶2AuLKRs$;7Ȍ {|rq>KJM~܀"vr5nץ^˯+)ð~ɛ S#UefKwdR#LMjNJqN'Իi[| JZU)U#NK }8q)F 5*ghˢ(de*1ujбphiU- FҪ*ZЈnI^3_c®-B3kؼ12äcZ[i^GCS@*$&gZ& V?E "Fic#uYq4hQ{ʩ^>&-KwG8n1<TWUDGz±mW}9>ץGT&(ɨ?Ap5)M'pvs25(y7 [*| 9I^ŤRm}TK']ڷ`Ѽm[#B~Wa=6,cTݖp&`й,IVO OkgiA̓:UOtpVˮjDS.3DVSS lo8'_iGS}ݼL]Cfo_7.6:CH~߱I)'\; ژLEh>ڮJRT*Tq}EZ*fkUQ{g,SL>lyl!\ c|Yrgҝ[*)> 2ջ.9xr2 T*'g:6M+ZRNe'?Tܳ4e`v SuIGqn=fl۪fa؜h 'qƒL2>4ѕ x=,ܒe@uQz)f: :w]è? ts ?@>f,s!ިU?=GY$>RF_ː]I&(J])Ƶrr< lJd#x<@0*fSl,A&5]}A^bRӜCSR׭!UJ@Ia;gnH\`SSg?[L^O_//o7z+Y0] ҍNRP%[XT7u@d󎦖=c7n@m")ʼ0cr,=5gasě`1w`ӾL+L{4hw[Môavn! ODyq$xEQ \P 2,YXԲ¬Z5ap` " j]K؏NbM,RxP A1M˲,H}Uo ?}8cD4mp}fIZ٣EU,>< "Ne5i(3JY#PB_!׀'sms9Zt`CX/g7bV4@Yeb`%bּ/c؛%hBJĕ_MYL²tv77dEVǵ|7NgoA3'BUsD+ ;cȽyd_tƣoH|gRۀ1@SEukρRw3aq!Pi5g;$m1{3V'*#1ɿq'­sL Gɧ,| jJT<;8XYDyέG +3e{U=z^\:{+"MȚ_N|m ?P27yYNm꿶P%;D.H{ =5k7\D=_Ή N{]斱:C!v[/X?PfM;Eij_ /$N*]4jqMTHщyF^;e9 VZ`>17ixGs, yqEm ;]aiyhS vr:c_;up/M"uE[c/ Fn݂ʣ\ [GޝCppQw K2ݓaN@zqEчT0/܂| /˩JaƵ4xe᜸ Dr8xwG;]2Gţ, JTa1 ;0,KwY9m@e}s{>Aޭd̂NOG8d c=\ʙni}m_9ۯn;b#}XN+~ fp2qHқgˮĘÎ~M 5 n/bgA`</*6ݲqvj~j5f޽'/+)$>ʟPDҷhohߨES'Mݵ:'By4 wbϽzB`/0iyXb}d;9yҸAkNޤ5 QWS{3?7V(z S{F|b|] փ/_󊡆%߱7@@)j:F(jjJE #P(F_Z хx`Y;:$ PJ4/%ۯZ^!7FAIH ґ%yINo1wX):l @P<|uųK's4.0@w*$G%vIv 9:b%v>LV Av9Nы2(<1:rON\:G XMKM@ݿ(MtƼ6- _j1b_~;}XH-/%jݽ|skl]q^P/Y"*<-x|2-/e)jdy) ,xG԰4!'Ȁ"H6` Nlcۣ|gpr|99/$32[L5k 6yy<󽭻?s+h疟GM~ 󗊕.ᔒ4 zβ;!RAoZk;XGj@~Ͼh+N/ -k̥FeWŁm5C֟^{w KzLH V_Zy@[Upc遝Heԙ,h ~}^ iZk8ť:5/Ilzܺ,i$sƋSvΈp}4?V_e{װ㴬n&/vdR 4I[$l١yg#Ap|gw1tm9|C `Z-vrRMѨ#$ăH#д̝ Bt1gmͷ, FH}3|UBhRQ)YB^R4@,ZP\][*u"UZxy%Rwݷa{%r%#(Oky6*b3uڲwԄ0o_62) ؝^Qvv6r75>\BvuUC,mZ^ԣ Q^\OPI,lcSxxPS|[ڽW[qk6UT:ÔBssuuPzMϫNr#8䡓Q^GCiL&0e/ %QSjؽCKҁ^& ~p8[L:}Srrг)omʯ0MwC\~{/uFf?آ1LN~6=56}3 @o7 <ۡ1-K_$ZXwSjX>!@Q Pc T^mhfS{Cc[>P?{GKOVmTJBqXKc7 <&lŖ-KLY> pX%C KB>ƚ2 ӛZP(r#]ͦ[ձ͋OL>vZ} WBIpDRV?` <<֪Ӳ_ӔBӌ }{Z (kv]-CC`eSydO?"q9sr^ ~gPvn/l,ӄhb4{HU,Ȳly?,JE0ܜ93zhhhGP_l0hh> - G:h=A끆Z44uz Mhh`tσ{TZ:wY~KtJkCJaCh@hމe˖Uk(|V>b$_@@)l^CF}(UA U-3l߸bgZ,"fPz8@~_@_ٷLZWpG!S^^]3iQM8p>]e'S;.'C ϓOfX\QopQKMAya2AB('UP?^k/w/8|,57B,߶-M1iub>zyŘZbn^,f="7f_^MEJyIuGL.R3Z]p^{q.EY/3nʽWUqgkV%0r- $)o-h=4$Zn Ȋgl akhads`{Udm灕] =Dn$ ؙ K@ՒbjqJk;JV#T,KxgF^ֹq'QV+xXP>t|kb=mya 'VjN "iwdEL4?+2c6my=DE[cbܹ}r5Z@fC!PY]7/#pf#~XAvΩlpi\DmV =w'j}ӱ[wnQм+oO&(?oiz M+ߢR!)W 2|[ n64 _^GSGx7j_9u1g݄5BWu0;խ\ʵߨ[O8.':bE֕3\/g0s6׫]TՅ9iדr.ޞ.z8ffM%O:u2MQ{.POJ}r$S,7pkuKO^U2ĸǦwwl;T :ݝ)@>6;-Hyp`WʀI.^µoYhEy|ujrA~ ;k/0r9sXGI1 |ϹI_@U*JR?ʯoY+VE"gM4rOLXwsjxɇ5- =?wfm-ٙe΀6XH_?|'S%,.|Pyvߩcӄ9%eTVBʽ~Zve=KHk!?uAj)͇uݵ,6f]V3 CDae(A؍wwp'dr%!A f&PsGUi%3_-Ga` Jq5aK^hYDyiF:A4b y}u?J2AEuVJu6$H[/5 ڞow.^6SXU6-Ցߎ4W\OsG,T\~T&|*f !mؑ#4O:*vfM,䉄Wz6A6@s,B[H|gRkOl|pO>}#@)νtRݸP4ڳ 7LIR+ägo]GzjݸCtV羞u͹DNkDL@壤Ӊf~zŪvnVz]TW<t\_oWk ]P-q6P)IwP,,#2ʽJy/.a0vg/өmo;_MfkiL*b PvwȩI~m+rڟ-F}b)yG#~ȼUUّQyxOsR6AkpbZw8VqG2|j̽@o5ٿ v(I^m{Ck=-6 <:1+Wc;#~ʓV L'$noo*ܑ) /M!炾/-gT~NΖA?_+_f1Wķh1}L@[^y8͵@~ tT?Wu 8==Fg~WuH?0}8&0wYk̜נxZk%$)T2 =_U,;҉C\?M;2 Pz9 Dݠ]c{1fIBP>eC"z N̶X13V:QhVuoR$Pj@J! >?pNz/Ft6f/>a Jȋ0t j[W/!>?;&6 K@EU+Tp>U}ܸU+Npk:* 8̂@#BBKKH<#{s<ޛ=9YP-Kc3#q3}hri[Ӊ/n _I5 X=vR^%{kE߰6k΃!*A$Ee@:v5 RA{n!%kGx՞W%m9.| :[SjW6;71zz UW4X(&5zyЃS4)w'J#xg䝵cZƬv ^sK$`YPLI4kC6s9DXӽ8c j*@&e<N!yS'wEE~pĕ_$nk:6NQj=gKfm>TdhmR 7<[ (PEVͨSU{#bJl<>F^e=?Q#[ ==vKƠSYƎ.6Z[Eh2R_D}\ $[.H*dz2N2M,i(:3VURض=u^>mL^NXíksX?Y8ÐI SyN[+detm{[ZY\h[֕s 9^=)n03Ө*ijՒ&<>GSvL-ۍS AȼsyP(JocKKΏۭڵيA)Vl=6k65PkAE[ۨvңi\H2a*]*i뽻`bzgc5jW-824'_?+ k6 S%mf==$Vٺʮ1GrF<ڗX4c?w.?#~p#5k$+\/:#6J_.{Y5¤ي"n~N/>Fd c式f;jP LR(uOX][ =QX'=R c1ڧծVnQڪC`ɒ#&}~t3R (I6*Z|뽻`b6À"O/O~.]魈zl0\yd f+B7σT]11J[ؚnkE0t}v4@[,1FekAE[۬QX/E"JU2Joc{EwDNjշv)u6G fbI^XjmfϬU{tMmtg asժ_\ItŔf4+`3jC!6&o={)% ݑ/)P;u>Ye^n|9 ,fPefyPUN`õ/[a}LnAHL*MWvCش_^XQQ춼HA2k쾣G>֔D"yPgs|͵gLu#LJGdcfLu0<6#M!yP{^gFNqFH)pFhFS*%Ƀ2,IӷJD4I%|/$WE4;8HLЇ܈P"hh;dx@kx,ȍeQε녚jNHYkdi0|WIM{ַ66#K!C@2$!C@2$!C@2$!C@2$!C@2$!C@2$!C@2$o@QCt!y !y !y !y !y !y !y v(.޳?k.{V\Ï(!@:F;?wN1m#.U^^~BEDDvfBI\>+!uPU)bܦ˷Lty垍Ŵ+B:#y !/󭗹f;k.{숡KyNAA`7D%!)'.: g+sg8q\~”1=Yxlw`ksNaʤ(:u~ΧX3w\~$wDcڥ3)S@Tqء*z>}=(Uϔ9ƌf+37R# nTqB~4?'Zi-/[tarlcsN)vzo>;*6bYLzTw]`{PDNzUZˆaqvL:*.mG( o7A MEgpWDΨ): L#s|w6Nvg&Uŕm1gI͜z=ue'J~خMfqߜy{3`A|fc-QszL7GF]}r/9999n/鵴6t8[@9  uJoTxg/ZWU&08z61c?JRNUi.JL`%*>@wo uV5. UBΗވ/BP(BHЀҚ@ <"L-yE\@[\}lٷVC,엏pT/g񶂆zV4}hĜ0fjk{juE?7ztJDB1 CrML5ZH[bVùU kd5w0pj?[ zZAhEg!;ǙK@rjN}sEy߇Ɋ<έҹ8«]*䡃 ϯƬ]k0nm+4!=_O֓MgM^`l1)ha(Y9>Ǣ a;9rw ղAgUk>b sLzkt/{B%_4wR!#jֈ?oU,1uԛ jZ:,FcmeuXa1ĵz!Ѐs8׹ ڎ=T(4Ue4͂ÀkFFh^VWV]X*b;X ^fT6M-8V?ꗈVhP70l>eWHRZCQS-1I,=CV.8޾]R!F@J0zoLtCsXdֱ( m..b3r֦J])9Di{.h A(Zyy_~(5Jh;#!d|At@&~Cu?tn논SKyҠ˿hU_|IDATrOX?;::;)Wlhuvrl;l+2>`p40$>{/1\:U?]N. i 4+%SAQ -!g9iwsM` D|xM(]͙-\=Z@ݰ׶M2ڇR=Xn/eejOͿ}cj;@U\n-H#b۫O Km a/ec /1[}`VO:v|i/&SA$,yrx( HH̫# $5gZ")zs E-gO F*A˳O-Ԡ J?|A+p͢>fu2#†%nnxQ!@& 2=.?eY`ZH_ :v|>B cO@v9L+Hu7(bӂ` q 1cI1F\q׸2FPɐh&Q'nF+ ; ({Co݀ڎr&{8WUW^*@-C,mf }dW-p^ w6`.DI EK޵Ui84}NsO%k{]D G~})}wۻd <=`(ɅXp [gr@:tWh~ҁ@-.3-3 xHp!{me["5!K[Yn ̫ ֞~N\ YX7o`< K/3_g'/rT>7޼ 峓=m vՊgזggO/h8Y  }`jt{U #V'zaBF̧_E={9% ElggK]ٺ}gG{su:&@o=od}PKZX>a؂.̀`K V&@1ݾI:Ld' ,0 xr ΦL|QrYga75ĻĪp cRt>N/zXuJkil-8ziYzZ _u/pIZ'[u5j}]rcԉ˗y=yڒ%c'|pʝn>z8[KHuV)`lg Mcť[6+zx]%?>( x>?h]w&' j؀cǎcfd"цHQjRT* J˒$7 ;& @D\H+ɪSK O'J]`[$>=HU1H9|p'τ~wTXaI\[Z"奱gMD@'¬scH᧧G`iN8>)a$!I{Q 5=k0e2"z!>/( LBD  "j) f9ޮ,;A)OXmiںʜ)K[; 6XB sf89_;Fٓ 3h"{xL rrI.iG}tq50ˀ>hMU^~66`UlgH[g7WGrp@:\}a[V6tiXC7~8HƜONVQƁL[Y.RlRu&d?a+ph )y0z'WO3YJv\t<]fnwXc0`Ȭ)dMյht '65g[|n?D1A,˪<ܐHzv2`uOS6hjBFp&M=72n̩> ӧMig`h$JiH$E%;m-~(@M;3e"bT[Al8|Sw@N,nnLn0dU(olWOP4p,*x=k!bׁe'Vjajk:=o=4Nhݬ뺷BTm eR8𸏔]yֺRXxvПJgj@{܅W%<žr9Q4CRo=ppQv\ #Yxշq&nUQzlkm9j*Ql.]EϊzTyD$_ l$"XMQ1' C6"Y Qkjy_qa/~!Rm%$@DDD 8RKDҊn"C\BlOQDM,/XuQt o7Z憘МJ5?~@h5(XT?D$.٘ui O,&".40 yM˳{\B7GO!V{nHp{dB&q:}m3ͰڛC wMOwo28%"(/33/IE2+G''.*Xb9Ɓ!pmd")ɆǐF!PE :$~:!UR{/_wUewJo6s:2;@|wF0Te6n>!޵˷v}zNU)yFrVD>=d")Ɇ-'mXuv}ɽc٥du[nLJneCQwh}W/OH[g;K#w:eHݥ:Hoi"IM<!6E*>~]Er' twKm3 j @x`H@@R+R<:J=;GZ`FŻU끅z7SF)ZbkPr%&DHT0~~̛o_[sDL7Suz"= GGKSдAV_ 9rJaf=lЁ4MQ07]GT }8]LqT3{QqWw=/EWG/a'=(=޹d9uuckw0i.DrbvP/^6V 扌 zCKUjVҷz0ЀUpոr8;z;-HvaՎi~=1|b-tm8>?M $˃te-Eѽw`|Z %װUPup̋E:3uyйb1j'Hcm_p!-+qإ&쾭aῄ3LN'=QB 4&% f1)a6m]hIPTܔ}noU_prJ<@}5[Ơ.c7)^@-t~ݮ/ug&h僎hQ}=RWޙMpd94; T8N3 ϯ8ɡRk.XQuW^b ,wr[bi+Gۛv|)ɞ+@v̄Bi}pL4`hI Mv:mnD*.*F9=%=-,7VbE&>bR')Fi f><$Q܄g(-&"Fs&z@c%^GLœ|[7Ɔ%li A<,<+_~qSv ʤVqPS50?>"`rl;-G )y {_;*>7O74{-FiT*FY){bзQnXo"TE䵻IeYBQ']΅P/I(EE4І[!n\61>{cI.t3( =})WW^sJT5+yBWnkn V߻Q,3F^ƍj]hJ d%؜Nʛj mj,t~ge63|Sykgo\;ynz ]w)H-tLN'ppݥ* s2sjOa,fB4vP_e&+,>L?<c3jZJ :8eA4-m'G#T<*H$ A@PA@ Q2S;IENDB`nXWF:o!]rgHI;PNG  IHDRG'dΡgAMAܲ pHYs   IDATxg\WƯ.eE;4E,`;1jLli=VlQ4Q$ "@RED`AeH~y"d_n}}s}fT<(((B(/u#E((@A (=PP4@遂J 0:GJE]nAmŻV:bİm:wbŊ:5_h减sHHwؘ+Wk(mFW:lMhEDjˏQr+˒Y@(TW;Qi+<́Oy*ϩo"l;`L/s^Ȕi{q {eJ MY3ri~yW.g(dPPzh]Zt04*U (G{Y-xS`_9q ЎNt/!}e^|?pG摉 ۜ]qՆ 1?jF?p]x=@vCCO.wW|3g̉~ŹWg?dK\k }PYzztkű''?rT9{EUw'~[z|&ڄ^@❼6qǂCPv,/z@eTcXOT]pd@s>' ,#R6T޻t1]W ~h/W@ Amߎ5_j=h¯ #e$]EP\@x6 IHT0. (tA҉>Y9N+YPPB0(h,@ if=Pu35=sGcvz^"yod#%t4?/0 g:c]Rٖ@tvtwp6k 3ؾG,c<~)&IereK7'" t,Xp,@ޱ]{f 'jQq YSm$Aڨ7GA]|Qx&ޞFUg{Z%ߣAizh͔MCurF}(]5DHԇTIP(+ʖԋE))ʮS7N% aEAov:`A}Ǫ S,ɆDE[3N $zL#[?(ftv)|VTC5jT<. Bqe"a-8<. @1[{ig&4r#ء>`eE .\Oz틂rPD&.*ષɋs2f.&; G}: y&<yXL>) Gg6L}oz+Ж|.4.ڛi0@bhtRq8Fҥe/-Yj/͡YZցP|8@A?Ck_P/v?Pwlɓ'L8qg-sB}ɻ[J&J-/:&!WJ/:۸o ✅cRzPḷgp]=ʏsV'ywlK33 @U5 v=UQ|yk1?Tvjgۆ?j֪?S!]߄|%lBƏ~q6k"N&ұ g[6Ik]K'f>[}kMGNyµӈ0VRqbb,rxN H4-sjkO]iQp 䋷 hh%8rlc*%I*6uЩ-Utr5ꢲ7_}\yt ]B 6>Ǿj%w+;t/<_g:vHY[MצҜ-T @"eq~m#pc> >^`g㍚H?@/)x~9H14\).8c͍cN=uy{3^2BtB߳hQB\gk1C #mܷ]E/7Ǿwwbp-z-پp\1PsW5OsZ]dZx{UcǤ*L8OQ_&GVl#r?fO cU'yKm)_:LdWfJYI1.\3~@*Y`08ͦMKmKC< Ġe+R9ѝA#oWX}*zQgwn/k:*/3cx7`s'[T&V_C.--bZ"NhOh,mǼL)c{3Ak@K5eCѱhz?X=/9GErNs*kj mۨ$dRa3 ]zta>@:bH KD}HmQЉ\2}ʤ=jrcJ0%ȁtcaXR"~@uO/2S^}1Ў.`S&D8V)X{ToU(~;>A^1&)uOcOw7J $rcFeWhX,e€gO/t#RV%O@TX>Z(Yacf (=|T&vV"mR&`Aޔ(AoiTjfT'% TLM.O|f+VV%UO_ a}dUhA$20LB.T>M|r`Oc3@4nQN{B 4Q$,e6h ޸c_YG?#j!H~6>j:Nε_3wгV;͓VTT5P9Q=m9|S'}1EqS'~MKP)ͼ} \Ȯqqt,w\SWM!A!{ /USGmW_j V[-n "aHrhi)r$7/~~o7YP%Gmf۴<nf8|6aɍM+&}AJ*pm.^?&|B~t\u݉R ~{딶1k47\034 *pl[V4u0JTȘ^:ǾATp h a7vz ghZ[kv] tg jݼl*E[Tg$շg3)b8|n3hF@r[`4ӧ(>W HbP'; h p$Ս O|^=tur/&x^1rtѠ: w?_g9Z_ܲj@uoN ܒ}: )M|@qm]=i1<+6VNTǫejp?4.k13`S\}<mfUmXk4VXYy~ Qޙ%nz#פ(p\MpMv菊6pu;T70hZU7kKVWvɕRQoflCud;cΞ[o :t8wB)u11kW-a&:fΗ]{AtÚn8ZѽXձجyP9_z-̹|E yx yZ7auIHhtƼ. F!ӧ 7"A1$&y/'X$w( ?/yʯofTs%?d0E[_ N|tФț/ AȐ< AȐ< AȐ< AȐ< AȐ< AȐ< AȐ< AȐ< AȐ< AȐ< AȐ< AȐ< AȐ< AȐ< At1CYYӕ7YC^LlvbEwDs7^bI{ɧoѫ*++^9Vz~0A(H^^+br@2dnjޖ)]k~,'Wi|o,oԃ}$^C7qXKϏ$DQjM@iJ4ԏcٿ$CNZf?s~Zފ%XZV>(ylKޟl/>8*:lyNkuW)r fޔѶa߻W:;+.L" +I"wpÇZ WKW.q"Ϫ+6KXl!o UK}e Lr6"ji޿[<(~|; y 2rI b s ,Vg77=5\(hT̞H^kSKNNNN|Kz-m` m'wG\󡓦_JN PYwWkpfzvM{T?P +k_˼{@TZeTTP&|;hjbP$ ao: FS-L’BaeYUrLlUS?U+9;aϯq_jQMuf+I?b #IRT`7wia@ݓƵV>;+`Ok.v3WM޵I h4s@hh$78W% [uhlnSP`u)jէq󏮹P$D<AvqlШ Y@(B/!=_G~s,l/"p|]ޞQ$+ssF٪KO`;'rW u#έћV:X}ۖM= ly uҲHW'hRm6hhkqXյEWEL}32ټ,(kttzG[K]R][ v?G7 h*l8+4D벆U9FN.Ve§M\;G DyyyӧGKD U}^P7h=eWБ>4t%-@@ҵ+݆bqt 8mMXzZʚF.uC+OC+z2b~cHzsbCmE. ^h#~< wLV&#BCttݻw{+!oBy( Lo2> Pbѱڿ~?[q!<~t(OHSԞ^:.;'Ǚ| C,u}i?72204:WMщ=45.C22w5˓5d0ti5ҍy x^ӫ ZerqqG|~-X:/M)3DB! Nl05&1^fױ[Ğ!hH$0,+aٯo|p)Њ&@qq6K |ϗ9[nάwl{,hٙ;gh!vcw7ddgIǶLmžl<[߷`پ}혛=7x=ϣ7y'VVWt$؆ž >X&<]=ʤn {+3}|{?٭DսýUTTTTT|%-j {&oF'YGNFBbau10bPRs&.7׀[ҶNYV&pr!aon=:`ܼ5EZ[V =0^A3r~LԌK?{WՑl"M+ ("!0 &! q+chuQ Ȏ"} =̗%VFzXPj[XC%YUx~f /9e ÝF>mXwQR?wmU͘۾zfɚ^+9}t;Q1__;nâoO_[?_^bkb֦gq峚@:vWhB~ҡm. 6Y>1fA|GOAj~ˮ=Ω -;Tk5 \\ײ"ԫ ]yN\ Y;jH0x Cm!z !>"n>`(̳QS~k<*ʛn^9I6{2j3ʳsG V*>05:= y{I*20fF'̧=_:Qy9%1ohgKپUG!-:f@/ĝod} PkZY6i]Bfp㥅Odj 5nsX&t' .0 xr<ΥNzIzEga4ƹ2􍯉U cVcRt>N/zXuJ^+X9ZpҲzqFyz#Oࠓ6NR19j)=Z`" ީ 4uW.ߕ< {9S}i%u%e5JN0 Á @;=|rܭXaR˷x^}qn4rl2َc(Wyi&wc8^Ԁ;n˜\\ ;6ļό%>vW6s0aХ[a 3aǙ'Yg00f}f<:7dΟ:}ZrrrrɓN^y=YЍ?9ЩmkGf$SaV-jGUUitX6=铝 m +[I(&'}Whb'J>M xPWHZ%hH@= " E5k_Sf$' K&K!BJZv4uڹ6i>Dpgtg8oR+s˭Ǿ":Qrhtt78~P?.^nh?d.{ z$\ʹЯ4ZrLs \kQ~=HU1H=zp'āotFФ.@h--rY~3)+;m0x.$e3,QV?u}DT}d))3 HHGSZcg-J `kHA 7GSb8‰Z&dDQAz( ,! Hw)M@ט%nڻsoI&)S|0#L:4mη_,UDfZ:YU28%"Xؤ ~=CxДD"PduqFg% 7'uDC]C8]DDT`*c< `Y}'#n `ڏZ"Q^:eb@A;W#a7 gQ`$/*'m *-љ+^$*"m ϏHd7K7\FDˈ17BXz^G:ʾ25EB}<+^ksŤ.Cͣ?@DDw%BDTy43(u"j8)M8Qy@ibRG64D$[o6ƃI JHRdw&7-/>"*/MYxf<?B$ #xc 5?bjᤛ/Tpz͝+関V+P,[5YNA^7/oCĹӧN j,n@-j}*`+B;..(m] T?2# _ɮ^ղƒZfڍai7OtXyǦ}by'\b1woW݁ݠ'64m}eNp2V B# C|#FbNΩ-{M$`@U3Ny%lя?cgG_t @SlxxvvѨ[@`b:u@:::=:AjS ҰEXO@QÍ+)ht2tjuPdzDphoaάi? 3| 30\DY$DM" ^ ?ecÍbT[AL~{wY/>;LWȪPgO`p,2dk!Åbׁe'Vjajo:=o="GΔhݬUk{vB\&eR8𸏔2q_{?΄ՀV:Jyrl/:xH\9$Fur)eվ=m3p[M6 uLu<\{D풦v?r?'~rx&" \H58Vybq6n.!T( و^V~DL:{Gj;G@x?Hc&@g7b:"Vv ]bz$j^,,ey!Mm-fDt?bP7DtbDkٍDIJDq#"q6ƿ?@ץy+=$H DDt )V7XVryA0Dw+|7zDu4rS6ݺ9?&F)\쟴@CNS?-nl HZYTr۽E$wpr0A,@wٻ&4I !ȭ ⁢hZբzVնV[϶ҭPTֳUk\VP@pHfPQ`P_d2yLyyK4L{VZ:j2IIWngg*+*PG(hL+;E]]-^駷//ݠ{&^q>E%*>|<`e!'o ju0}˜Y*]TWm!Wgqe2/k͖׎\r/ȖkvKLdX˫a>E7,SNr+,7>2tW橭 nL>>-wgþ\q.4.ϓ06w;5<"MoE'8>Qh4!@y D&F؊’J-y#am fKdM<kfꔓ4&F]~@z'Yyaqɑ/n[,1e6ա&BO?rS]_0PIڴߛQ_ڕ|~7zbif'Fcfdf1\ρ:f" `BWt*;C?3i^[{s41 vH$ c%h2rw<<W{2ŷ^wh79J]]@wH{&k~oIVOffyqƑǺs ˲`Z}Dla-`d.d)oŹ{$f|Jn{{?|'Sz}Þ7Ǯ|Dy ZvX?3i^{s51$Nz6_va?m5|~ԁ줄%j" ;?7ڡ][C3؍tD?W3 /,F[GWٳxo׎*B>n!~fҼ6ȃ konWUŏlGO;Ȝ.*8k.=O 6'1ԶvN_ߕ_8y NVԽJEt޺#k,_6{[ _¹M1nǽ.P:Sfڇe2ykDyֻ2q.׵tu{DzKbz0-¢ʃ ?#^STOs81늺4ϟ[77a|HpQTTxCM7q<mI]Ku_SɤP8SQQ}x 5y DW(ܨ󨻹Zc`5A#W" k=9p",c-9,?R%!JB((QQ<Dy D@%!JB((Q: ڹGyiy%((QQ<Dy D@%!JB((QQ<Dy D@%!J [}5{O?ȂiWv6F)񋚺\:wۺ*B8 'O y%#(>Y]P>iWSEr~vH݋{;(Iv{ִ).31Q:wEyT, `pT5UuAN!t}'='Ḫ.'';|؛7c587Gu]*2MIB4mִ1C q0|O[ve]%f3ڊsT4u`8zCA,O , ]{$ S]~T54TGB@ۜݻt&"r 7'XމyԨzYK3T-{V(b17>z偕jjjjjjIH_o|?Wli\|ý'5scKCjQ1&E}\cIjXwHOsX(y.!k9,IDATИ/PK@#v~FV甕Gl_$&+/0.GݍAᏯUUUUUU︡\*5{" fO?U2ȫBO:\J`{MENiENr㶷VV(i]4;>f;[ df'bw;!MFLGxLv' n 0 7w^8^Qm澙^SLNozA+ul'Cnd]P.7\v|NXqV/oԬPt34` u(K;ن;RdBSĢa4a;$~]P@1_ojyIۼNʁ7M2:@Mo_pKU| ׻`ڠy2u.fnf-a ʬd:V /=}$+Q=wG:.'X9lzwe֭'"d3E@UmH[vS|vWvn "tw;wIu: 7qn.wyt41q?z0FFFz;VKv|<l:wmOƂ_!/Ƥz~2qL\DgBj$Y}c]~yZU2u%*" K -6nz6_va+>: 0@Q8JUoCMŒ{EjVLjtUIIEfz*ŅtTxHݸbmN6B"i^B\Z}?K!ؓ# EFJVhqB#lXR1K@KWHW2TG#f+}o7/1h`E XV*b`9ղv ; WRg_2!Jn38D[;HWyO ~?BHYt4>%GGH-GH+e'>:cEXjŲE-9uOI`ϱ'3uL[WI C|Kes?̫[P=ϻߒ}}๫BJ.ߴ)Nز?pd <7޶̃Ф7WzYi#\Gӿgk{Ms/Z`{ts \bsԷO̖óaYD/_HD9f޻N>>Y9)hS"*Hp]3k"맶Y2qա9g٫7Ev-WHKtARk?`ٱv"NT"03Vl^5{BfZ05`1`wRsM9X00j>Q\L-gI|DDݯ{U= =~>!•Afg\\-F.0uɧ[#,;VM$*]>:2j a9Pqt=*xwUm5D%jt7-NK&̋E`겵 =z%/'!7@w?ٓPh?|klDee?5d%>)oi>Fa%Qӹ( 슄`75reɪ*DQvI"Ag#IXQ?\co*Hv|1\bs'QxסКW G%C\ؑ'ij>ץ-􀈈RLT4Sw7Q{?_UDԘ@$><I59#)&qwuL"W^`o!# H?Ho!ׂDག%vZz[Tll "[kJ[HP/G,񺂈 =AC o}TJD{U&D"*LC@ xO.( H ˿l'"k?%Q=Bw*Uj9Qf*E!%"?b1Qn_x}·gIK\n&]&bS[cbv8sMǜkhv$VM^$I[]h`'b12UE{rW ۼ7G2&Rv64kwW\H0?c篗=v$8?c S, `P:À VfsP=9~2q,ݕ ]Tog{;8є`<yUͪw7~l <7t.< h0mݤ{(|=~R R(k,Qdv/K<62'W]`O[`T6'xF!Fs61x6q y9ΰ|IDy16$e 6mI, P?Vp#"ePޞ๭NF054.b?b(3lz$}:ei;*%;7M &D/OH$k؀KS(xI0oJ{ =f""_= `IQv@w[Z5H)KXy{Dt/[6;owX|ᶄH~i,0w+y^ e`ÿ5_w`3+ pO,82{x>'ll2 gnK([x& %^7_]Y:xwn m,tB@21ODfj7pY~Mjbe1107+mMߩ6(vFn4x75jBēZX<>|HS]Zu;*DV-C!,dHafbjטש<0ʢ#x"##0P.ֵiLoR]mճzePO&V`C-AUe0''+I|1Mu{U|챣Z{(kz5t( m&-H}Pijjq"b{)/]ۥ*bH.N=VIY1`w6R]Bn_#b84f~8=Fg>::)lA8#n{ Gš*lC|=gT}mgdsxae 2H6~]Bw>j}^͍V]jv:{cП</L^{28rR;tLS|0Y[OgS3*"͓i'4Tu@|Ѐzß?yt=aqt?<* ^|Ӑ`5\\plkZܪKqiK ߃~Ay@O H/dM|6FG_y.nYXR18:RWMOuJ/J \QmQ_niGL8T.&o-.Nr1ܶER2 P1F?[Y{߯{SYO@F:}}$xk9u\_ӛk=}EWMٗR-Nsx1v^xp%3h4){OOCfp;E@P(z=E@{0gp{P(=劢:+=E@P(zOo6)IENDB`n]s\DPsg_Ж 8ǩ⇍9PNG  IHDRG'dΡgAMAܲ pHYs   IDATxw\S?7 @-Z*NDъ nZ֯UkhZWXօ{+E2DA!#B l_[ '99'<, s nPP| OJPzE=((@AQ z(=PPho }}OT eB>ŇbzHL*;6hOvXn@/QPԣbFx~$NT0Z`9N2:PxZͳYOn_`PPzh]4t002_t]CПGܚ0}+r 푵קye_ԳN#hmOowgÔ ]bn]](tt9:2N/hgTpr۹tPs-bNVX*ns%(}4tTA3yHۺ;Y]I< QfY;cAPxs_6nwz]vWNiL h:Hco1"Qn0ʫ<')rޘ\@ٽ2hZZ ΗZwtH IP()`;rZ(iP\oE܅O]?u2QrdQ䀗ugm*>.t5 5BM]):fFjufQA~ghtP[ooގ+dp]-{>~ti/Qr@'PՐF >' _}. |V/ #S/K@q`)vJ9a#~sn kJRr@M()vCܗIO2_ D2BKWGA%xNɂ(U5A ԔJy'aW;s}Q*MyV :  ,mڧk# Z BS[Wy+@F[O]ہE/F53/֩~(C遂JPzhCHR~RȽ#lo/(>% =ۅaɟ-@QP0C/-'`o{ O|ziG*t='ƐSrtNoyv4iXjsBUPƐ!ƕ[u:ò2+>o> 6R4N~ 8N'qf.co=ʮ5,݄ݼ/ٸ ߂&IO^nM9 4K4nRyEdW gf\[eROo%T>>vLi> ܴ@o@` }Tt{VOe$^_Do>Ps~gV]~{]zj꽣S>7 I1l+O_=̀o?D#Z0O'kX}9'{rng|h\9e PR GZTY$ {a\}/GwqUzߨ[VD'R>/6t!XAޓa`C"^eqE|@.6PM@SʢI12g)<(޺Mt30W}hzt|# 4M ={Hr>gWߞo{B/Qa= Nٺ@ =ߪInUn\؆}= m 2;QC"5iյפԊICj}G.ASW߂W j ϪD̜iܴ{TbexP"xMG7c꽟l(S-=NRCGBgUd7%z]t*u9$B~غz%a1@! Y2G0Eg Z^2ziMj4QQVz^MgKkc]fۗ;3uɅ WGAR_(pAl %4ИzLskZrO}9\]Csty3uyD+i<> MCkWVmcKmЬΩ3!4y5 ݩ3*|q0,8w%Ի=hCT<>| N}F8MEC z(=P!T}\CǩT}\BǩT} PǼ3gN6}iS~RGѹ3B//֌ >j9kBDo=[9ye+ Cj>1:dY/zڔMyZ<MId7}'5M!Zֻ ]Q8AQqйi?ۅ5']?8O3汚w꤉;fepz4I$Ui*u4>}sa};C d!36Wj0n`'EI ݨ|?;ⵇ% >#zkdz͇_ Y?c0X- HNPB傂 1-]:3gk^<eQyUSm:@|  vMy^ ($ ;< "'kOV58oәAtGF0X~)lW+wяj|^pξwvzngpPEv߉me{Qv&bخ/[U[;__8j{涑6%w |XK5,Co~1fXD7.R?K)^Բp=Æqr :б_gy/ڮAQR.LKGkbuu]Κ1OeƖ|cs,V% ?vk꼴Ƅ $|e5vaȬi#P%W {$b^eFI4ɗLr|`Hme[ǚQecَk6 /p9-l t,|=5C)=|RИ6l6S S+aDWR +q<)A aXb~X_J09%T"ȅ~׮&qjlCIp8fNh*~t nIN/,z:vfP8l@j*E> . */HH~RMm{w1`?/6V^N\ɯ`/5QoԙEM6yL^O?#zXbhڀU]ܵe=i;qu 5&UW^h$¯(KNnSN<'U:o$'i;]ln<|v&js9M|0.f*k_zQ~61 FN 95m{k].U]nz B d:\$U<ׂKO*ޠ^[R'PlepyM5[|!d(+[ @ͱgRlePW{5i7'&Nj\s1E.b.qoXA4^F| 5NLOq9Tc@/Stq4hozlg+%]u4ŀ!Sn=6C/g @kA >iȺ'e>wߋOdck`l?.<*@OCr..ecfͭ{C] IWgףPTM.f[ӎ41_\#Wz_Gȿl4V5Ccޥ^Dz-V=wr cazM) =cѧ>lX`!_/Cײ$-;P|$5ǝ$t5Qɣ6+UPMC`ŊU<l\@2jZ |ޒEq; E5M(kx 6ge`i5x2/Xd6ÀN.6̓]~!Q\魌zlh~NX5VvF뽙nb4e4$7nFN(]i곇5WK ?K'ILG?ϓKQl_Ycn<Ҥe;{ɉ~&rʮ;#%AEîQlePV"'==z_4jUJ B6'F$E:#astLt3&j}T;΢Ur=v~gyelƔUz+.c}ZP _?4dP!%an]TT)ǫ5š|*j2ݹs)EQ3&JPj+iQ媯U׻ԷƟ\葶HGGΗB dHB dHB dHB dHB dHB dHB dH@Qo^xHB dHB dHB dHB dHB dHB dHB d0Caa#+Yc~xģTgbqW=&yv]9}#w]H ~ o(((hm+PёY\? ?S/6_l\PY'4u!tϖ6 pj>FB.6_tKVxwȪ&HZ4] 5Ġ%4U,1Yb@73g(Ѷ<}l<{}%7[QJ͚E1h2wK헰+uNQAs>t^$Plsꓢ'̞>']N*1|L-D*q"(wF\g olW/knP'7[v-9*lƬ :/ gOqYi>i/p ,Hn8ا_B(StYBW2k@C@u҈^@9y ?MY .oc1QxE_ğ5M3b'8p_].T͞iHZs ݍx-mmoC'7vl'(OhRA<+oj<)nո\ eOsZԙ.|WBV4]~U$b1X@,z10ZU$r3d-4 *)ٚ#?37j^_]cWX;VT[SU%iudwC$XDL:wkbo#0 kw~@ݓ8w`OV xX>y_8 L;uu 'f:, yh!Z\ ֵc;IsjDu4%_d~svNHՉ]Ԗ8/BF{_:/Ti~4_x~5 YV*}W7/-lאԗ+%[i_Q34ѨUzFF:_#frMN\̸WqʆUXЅТ2C@EQ'?VWK# [,3Eò3'+W,$^9n෪_"ah(zBӄHϨ!gd"}( :ʑӸ ޵҃j IDAT,ɝSJYu/&6,]S+S+,$Z8,JbjV `~m/wfm#Z^+;by!<<<66t ~7灢(L_C78!ZIO $[MbG+g|ӂFkRWHjFEOT[Q5yxv7;1 b8m'ܔ ع4*]% g=TD'_Fꩅ?Hu[?<;zݼϴ%0 QquF`KU<{.io|l,ڶ/#>}-(]pxObb*OgaR SFDKUa`3`fnդ݈2w8i ٓmٺ3 0 AQ+b=<[5(^F|.Ƣ&N>\Q_9 p2{M -;>TG6S,E{$ؙl ¢~5BΥo mDdWꦿ&:#K7{|ҷ4akìmuG{し aÄ{S[é=: Y:+Jcs:yG=,ȭ_hA'Q9' |@o{ۚ|ȷPҁ@l7LFd<v{lXRn(c9/l&$QYcFA /=Q{=MWvK;y>U/o[hD&0 _XvyXcu3DYC% ,7#csC[ug;3`wqQUmdn\$D d$ޥT |1L<^в»/B PB000~]>kﵞk^Y2:Nzҹ3c<$gCȭ7wVw߸zpn{@Xٶ]QU1Fr7U0R0[ w[_ ~)B)Շe*q~ 34l/cf 111\E{qږ~ L20'=8;7(8?pP'ѓ\t҂M;5{4 G7~Qup @ɶ UϟrWM?Sjis릨ϴE1F~K%{;)>nT`L w:Bȶ+RV89 zeN8~…;$ 3\Q$\˩f xv0`3o1sŮؼ_:a͑t9^:I` ECWa{e@mxAPko 0/5F4׊m~` &k[qΕUoPxh?Fh@U`ks1La#\~3q]W}Q 7苹iI?W/q3^F9~0n5|T4@MEhbc3 3W#T6U5^2D`@tyGx>NBSc'1YRHWwA!育V[SՍ?I_M+B}P>N?>Nv85jQԨ$pAxxxxao:?Po*Rߋÿ)f+ elDYY컡'zMXW:vaG%H]?{}/OCbCɑI:'9n_{:-m{kn{ؾ~_#UzѦKWqȝCd FS- k~RT^{h[ho譣/[TWaKTRzHk_ :)Y^~xgf4Eʊo^"*H+WZİFw#gaE[= +bGvO.|x{L^(l֟-*E78nρRtz >[y^ϙJ׃&`8<%{n{ãg~,r4ZVZf@^@2`{mjn2doAͩԸ~o9B]). & w{9KRT )XgxL}0ps{ e}ƚM|R#"k!\#wLuמɊ)5E X+5] 8p} f HZr߂5ÜjQ _ lU;>>FM4yljZ;?6;j3 PB$wΜ=&"dÝt> bOlw0i `Q"nPd``; l4vs'8ؐ^CDmwX1@Dqn[2p #K.#^W[5@TY3%~ڕ߭ ŝ;wlm R'(~+񔏋sL>PI6<'"*n}hI*Pu|#p N{9LEŨ}p_v(\Qhp$['L[hÉ|w^A>?CԱ}j}2`h5Bt5oZyxsӈp/iUV+keHڶDwة*_GZ{?S\$o??f@0(9 Jn1EAx[B Ѷ }{/,K/} pVyLD8"6/?o'h}?|@FQ{luteϕ3& :끖R?JiVmgREXi] ogYE#h9Y1 ?!IwՀDQb,erp(̘`hL% S(MrpJܸrtnF$jijU: hVku 6̣b6C.6b3[J^fa*90J]Ѣ4$%lFMGQ`Y9Ф &ul@ зl7n܀'/oO>F|5DN5W6zKazVݚFϞ}wYԂ~ F,pỮ30h:P( ZXKm;/4T5@É@Y5-FK Np0*aN@fwrvVl>1s"[mt\=ISP,o"bګN:qf@8ugUp;dzٔ3hw{wjUne2ﴯ"lP?h|u*MDWtTm6ޭ 0rU@ie}eazBQ |5n} ky$VWEwτ<+($Y.@lV-7k(k9>I#Iv `bԚ壢lDĊoi`UIMeGM;sT`M{L$:#QGDDDG,9[IDuEMz8URʵ<1$ؒY+VsqnHDهZ-6w5ώhۺ⃑Y#?"g'i5DIJD$qp#"Qm>2w 6#&H lɬ%"Qvwl:FZ &0p<跌}|V.0#)ڎ`S G,(sU|dQ{p+]xJH5-O)`?eKY".yr$rprz eP?w@SIL lRU\m_GjWj_.ju! U*J+ALB $8A"|29'ϘGGD\&Y4-jBJXX .bw]2/LͬM42N[?1ZF\ Į:ME5V|]H7qAZrNزEñDE{]+?bWQNٛOe GW/{!lk(A zޤfA3ԦyUsLzt+ͷ~۷Q~˭oq7|FDl]~2i͠Wއ9\XխC66>ҙBzꯠSVYj{.Ka=wveJLɻ _ Qix $xwy\i@/_uyoӛ?پBQM-yΝ_PEQZ]Zy[Pr`wpNv'g& <)K_L2OhILL 8m1t6))Ox^z \v>@B %+x.|gZB &s pυB;ZziٳhT*.bkmЀ٘8>ʈwiGKçN9Uslk9~,VDZμ\6ف0 @&b:,2W |35cCAK6W1,ΉԳ ReP={o:}!'[z,:ntT)E[% } &{E*\B/YQmgOYlN㜎` g-BS ͥG 'F[`"vL:[~q".nXɿ33mk~o^(7P8-6l4 X:v|V+0=ݐ.]B)d7mv)c JmjkSdh; v>5oOԳ=9;`"A[g&֮֨ŏN@opIg]˩dЯ/lrQʎi Sz-B--\> lۭth7r?vCsEBuhw}gjQz|Xޚ_WQUaа]ߊ|(\QӖ?N˫8:+]%'<s6XqAFVGw-6WJة^GWmy :q^nq7mu@H7ik׭qN"(/O6~fmC[+W X@W}U܅.I?n-ۗ#C ]޾5>HMIJH}n3l~fbyr3PY {Hӳ\uР7C餌LakK"h}뎠d֖"DXEȗK\z*)_uuOTv!C'pBZS~I E<$w?aڡ:WZ:rCE1q.N)I'LAN$MSW̘jzʮK#yP8Vky, L$t'2 8OPnI]Ƀ2OpȞ*&"yP߂S}f96=bQ>ɍ%"yP011+>9lj܈P"9P&Z܈P"rA9EaƼl5 ͢ԑB5u<?j&j-VD yPk+=k9p.8s-Xr@HA@ `< $ y A0HA@ `< $ y A0HA@ `< $ y A0HA@ `< ]{ ua-޾+v͆YAS6V?3ʕ+ƍkB &M x d~Tq幧VZ()v|:tedK $I'/>b;@t/.p /G{d+ԑJ2(rϝkiYDU]ubzǃJ, #yHGUU55UG*?D_|r="7y$Ur]Ƀ2/o.> x~gueV%J0IDATw9VCM%9:Z+[WZRSV]ɃP ],U z^ABA0H<-L%+̯>?~|;CgcmW灌#68x oy;RkʶW Ky'%[g J%9D&y(Q.r[] w5pya W!{&yZImEDVd\r9XO[u{%rayeD>C5*I}ƩX t&lGȰZ1FP%ѳؿGiضy/ͽx9JuflPοۥG%2 ױZԻ`;2`9Ȗ8a'U=&LvE4zȍG}=F;jvI.~]-[wiiuI=+S ϊbv108.|RNT];\Ϡį 89PV@K]##ᑾs?8d3υԐo`7Sg7dGtX~!GV1CSy\wkb 7G<3zɔf3ޮHb0(L9:夗se?OT?,I>uw mboPHMݺce&RƎ <h8T1ׁ'+sO?sⷘZdIU?[{0eܠ_nQ~,VD0{t\L:uv4՚P~ طd]9,neE^A 1g8[{5<~|Uz%Hc֣|ܰǚC}0s)jA"T QS r i[SD9o " &b1pUORij;xǍ29Y|97NOUf%^6.=c@ݜ7:/I'/ƧC\ѯsӱ*=0DŢ Шm6ѓ׸jbsNHlwNJP$s꺺)XqACa |WSR,.*ΎtpJOs=4֮]a5vݽufɃ/|&aaU svkқG.)o<*C.CAYUJ! h~2: Y 4pF+/q,*ώx dB1ª+RmaeF YiERv5DZ0` 5/kO4\-i׺DQYPtKJ~nv\aw*X.|D1ⱍ /˽|Gq!@vjȼk> zit)#Y: nw[IJ%[[- o$L?о_Z nqVڵy=NoncE_D'yK;x_mQ'Ay_m!ow~D'Bt:B'?hN~\':a@'?x <|(~i3f̘5w޼g̘1+vˊO^{}ƏV4J(?jB^vxڂW~V~Jo~~Ek|uyy ˎ&.?tSyl:5WƗ^@q |9$ۻ?4$x谑>= A;ժ%:Xgd_Α J[|h_ȰnsCǾE˲j8˯p=FE ` t*`?޻3ivunZ]`/gk60^a}?{#n_ X^iZ4ɜ4eUz9Fɻ{UWLƲ_N^] rih@^{:%Si୵LRqT->^Њ/[ q@+ʿxz`aUw*䯗D9px|-CO7),´KwwaXxxNrUC(25DepCc5~~@9Q^ΆƌƯb)pvf CoQ>do Ƹ:3ˀI "s@DԸXtH]})vyHD3 ~D>:^2D+>G`r E,[HDD+GIy 9 `sT|h99uλDDT2\rwBЎz"j ~_NDDcAQ:tNpOEDDDu9} GҬ&"jnn(sp۲P`m=""Rw_(@BD⼃>{Gl_#aoLPjuC Fok*ptMʎ3^޵;Z YK& .ө؜֙mkp83mQv^8p>r"/ܴ ko"e PH({iXLo12ð"?HQR(V~F׳/o=yP1"V?TLh> fQ#Ώ#tǡo,5{ތ8O3;yx6Ǩ$ά$,Yrpz56X |͍pjD0ڎզ00=?375 V1EGss0fqyfۖh 1a^}̲m)R3x+rW/ /8R@SwRs9}X@[ `@,?ƳUoJ\=4*x@_=4ڰS1g/F$Lk "'D$*qRiVR#r"]92|=`Z]5Qwm./{8Dt; W` "ͅc@H?`cf(ǰ~Ũ}sjwCSv"wjS#@gzW0s K ]7lK3I5mV7$%'|!ک8+b1)*FY $`GOǏkV"ZZ>좒 Y_miXZ?5h7* _,k>ӛ/^s=| oIٖN]DRF e$67VѺe*+[SFi`CjnYu4U$ 6A[Yr[Okfش{wUV&vVeZ@Y_tJefg֧'O=UC[m IJsK|ݚ2 5,K}9z%3>v*̭L2Ԃ%./euD*H˓(~(nRX˱˖-[rO{wq̂H9&GxpEf*ۜLb ˜l(t20&M( CQ[Nx@ i ɾ-Chy }M(AȼhG萖423< ixɛcg_d#؎އV_UJyi|XLmGjLT>AiڊNj9dvY+UWfeg}vc 8i_Du&Ci8krG6s Q(>xOeWA+)wܗ^/d,& Z[P!z񛈛u kc< kR|-tk+K'D? L7G׌L]yTja1>N Է¡y y$.C 0 +1S5]){( dN1K-­iO n|.!2CRvQD{CIp̌z-7JX8Z^~;^MWf'd7z :@&jFfH2󝥯3RX$^U\nkl6sᅂ=g|~ne>e1mPԝ t i?S#+IbHv{ގf+m%&d@r.!徸1Lv7$mSIC1Qeh*;/ߤI-e IA>*תX-g98S/'GS uRf$ t,/r1 ~d`5 ݦ|,0;?ne=긦7e02{o'гq5DT:ORO vlO.{Vȭog;հ+k:Rh dFoZ7WgD{[zވiڻ{CaN |!)3[?CYوN/ݩ1ڴιvv%0:/)Do xף=fV-~3@+ Vֆ=_L<;;MDt0dSz$h,|\ŷ0ӀN2+JLӐ2=T}\_X-n6rr0kהaUZȫcFڕ FP2Q{ nqyv8=bnN %62M U uRBǪ{+Ebx赡>Г..l4Ja\PdVp}\oמ("dM V@ G!B84ph<¡y C@!B84ph<¡y C@!B84ph<¡y K '@IENDB`n0nCg n$8|e?YٓfPNG  IHDRli^gAMAܲ pHYs  IDATxy\U?s/";*zAQECL)%Qs _=fi,{$z,>a YQo>#V4z؟5kGP5`: uX@kUX야Ug*Sȵb[sMM7M3=_GTWIkYxdm%؃^ݕ.ݱb'|m7Bggv-(< O֭xA4+kAj0`S,8ҫJ %KҮ^p& `9u< ޛ K>%2H!7Zc׃&%UJD:xWT4(9?Q}ny'~cerCJ sf):@_;>߲Ԯ-r#!$b٩ o0T* \XwGќ.Ȯo(!ы #dV'p/5sC2[W j.2s3D~M!tM.[(M#'AT\2#/:ٺps+*gH+@Vޡ=u3T'-'`J3s Fpxi=gzx=yyq,&^C6 ~DJynE@Uq.~R22mGA;S’8+7pOo⣏g7V\5c3smGcWqdsoyQR]5wM;&o2L+hT- oDGKk߰OKG.:/`J:fAsDp`uB2[|0B 0S@wgk"? [ ?!W@i}9B${G.!}BȟQ[ջSl8e/B:KAwyIuvOH@(%M&!^1XX3W>!)rd⫶PO94|",gጙK°g5n\7_ HeJR*i7ƚOa=3gTJ@ d۫+<xן0ZȚb$=RIx2w Ĺw~J$ ^(QisռJѡOLŰbruR)R٬<*i;Cx!P-I4Z+?/3w]=czkBm#~1 Vƺ3-w Qb(9w uKY%mh{u{}:J%n7CzTb@Qslj-lPpxs5Ӹ4.LOo^'# P4_FD Ya/{&>'VIT8'B27Tu-ؐJ՛m*!BvfwC!Dt= Lm=/ 鸴si^O~ {9'K7$ IcYi ŝ3H)+ ͌u)_WR͓8;L_)[P2e@%jkgPv=m7vξav5jb'߽@U.euFzVq+I7=i:_'ߺ'>4@ādxKZv͟{M7s_i.nuVɛV ;:GM6}hG 66n¾ W"2+=PJfY=b >5Gb#h8{J6l@^mo|Cqև>s>m{({Ә>c*^~k92~{ck'vXŭ-1kٺrEZ5XіlOA wInf CP0~H. \ig|)ߑ9{moԭHP>&/u '@kկ#%ҚD(;;+.:? T'; ['@k]8!.&[b1!t\uAʲ(u;go_۝y"ekϫ1rW͍ľ_8|[aQpCu@8DTzd<)L%Xع04KTee{ ?xYRtTkZVhٽsAe!.[UܚDeF%8]SiI"GZ9N2T{ 691Us;G֮=0q%G 2wգOTW.o>X{Y3]nc& G:wv6N-Q5C 6zbQV婷L,k?B9lY HF~4x 81viE h`95jP~se<꽳R&73{Aꕡ9?BfhbRr^WkVy \&"&,($|<4kMvrOFOIV+wm/L|1@,ss!W⁘kyXTkb4Z*Q&S/z}חz/=F89pr4e\/Z*@̵eK?.[G6JljX0Ͻd<Z;`Fqs܌{mzsܴv/[}WᲥZ;`Ժ,7j ]jk4t:'!?K{/BMj WZOzxN|`$#4HF" 0iHD`$#4HF" 0iHD`$#4HF" 0iH;)ïvNV0iA#wz'w1Q[$o!\~wDoP6ot !ӁwFU:!Y3!ʔszE!eM xca4r2Kgerr?Z5^3tTؒWdmwvn4+$a [ *,EZE"Ru:ֶzJCuth]iqk֥"YDdBQ ·6^}y{sHc4]bz5 E B ~ aX|wn#*LX \8q*>S&Gء"5O3ژ)g8]彷6  3ѷr+1a9@XXbk2{Zvشq,g #9~FvigO#)i~mr %X47m|cmB{ஒ[{@Gcj@P KnϽSdD61vlzv޾W_rdJ!k0 XؼjW{>"N#N#1]KTs鬰yJ=&c쌘&Nv8IНkl'*cB,%߮/e0 ]$+l]Χyb.rP 6053Тv@47WEV+9A*1d>h렏.a^}%~'XL:蘛t**:a5Ɛ(|*IY\~f~y;3IߓlҳSfޑTKO%ak8< XRishVT^9+AV>!$-jb9DM`g BoR zBK7=#+\B:ߕ{n*C,@JH:{ ylH{7uhkH@LuEZ]T$"6^Nz K"2%T7fvńj,<isUe+ѕc &Lm hLpTnӲ)p;&SƳ(v W= 4zN~rsF-v.QQo(kW1ܓ,sQK8Ծ8>kҷQK t>zb*L?L|:hDDuIEFDŽӺgSu/,7WDu{P_'DsB1]icdxBm"hXCƠՃ,Tr^EBcGu@.i,ɫb{{;`f[ch p-.Rx%U@`^|[;9>wϊ') -Ts6;c}ZgaWX_{t ƺ{-0 T JقiGMW ~r,yihV3i ȥf}d&|2yuti)B-M$. tlh N^N(I !_kb@`KӑRݼ:-K;'; au+݉m9ض-ዉ)ːT Ť73nsGiqwK^>h=0Ya=B"!oz U^a]iїk.Xq(@#"hD4"RFD ЈH^IENDB`nnDgkyI{;YfVʸ>Jb׌Q,yrj֍Yuod>C {b]w2bFݐa^ b~JV̡&'%Šh111n$Ury]Z|rXwFZ N}k/nhȋ fߒQz JQ'=M8y¸FPl!;hRzGinkys:4Xry׶d4֖#(gJ^+/GIZ O^<o@Zl^ivlHS}L [jc+ǢN-:LR:L u1(M+j 'Ǣtu?uGqs/k(QwNTΡ%[Yb%vk4:mGV}E @ɉ2q7]Xs)7]QDR򎍗;ʆrf- P""P,_9d{_/:`iNbIKV"a3?[?1f=oY⢌("$*JKnhGws"m`#r,=##=MHZ\ o'0o-ާ&&q&11!ͲQFZ .+u-2zE=Ͻ3֘wml گ'g:=x9sMuD,FY)=9h ?R:쒆AK}Q}SPpV8 z{v"tГ9p"2ZDPj@-"Ed "2ޙνB}pDDP,QB<3D +YDDa_S2Eb w^.g[V>W/@AXzB-')clؠϱ5;i9ڼ-{KA9:SB&9ZJr`_^᭔GO3-ɆS0Niyeqj6/c]̀?߫ 1}figE\HM}t7p;ܝM| Q,mPDj@o)TճܗxgNG;XZ{oO:dɵ5؛兌w\SԋG;cR*| )gr ̕)~ji5bڦ!,Bv=q|t!>󠷭 cmMͽ>og݉g;h@6_Ö Ki҅$sB ֔B '5Eb}H ^FBHCj{."鄐}AFBkI?K^B󣀀.p'm#+!?ĶBHox}D!O%#QR{jl?/a9-?y`6i:*Qi,#' ,4Fڛn֢@HRoQ)s-, |9?:cE$@i{qKg(ӽm@?.gV@쥈D,n %E7mռX;Zr@ZŭBM[,IX]|'qVztM‹@9v.IOE[ 4NRzX t.̆VGk"X(>)a|fd襈vl!G!C}gxv@1LPu) tuY^QDjH}/i)9@\ylQ1IN3Oo.w#~=99P*:ux1zN$mAb <r !I[y4"i5>K ,}-J {:)mm!s @pۖHHS~cf؇'xBB>Y#`@HCp.^.#!4gs%z.&ZaazfXz:Y+D_ _YrO 71Fl [ h(iu8-+v;H[ =e6Dͯo`iPPn&C6_޶;˿&Ce$8w'W Wg;,qvx3z`lyb聉q7L?=ZDPkY%_\r'~W7/͜fk5i" ϸf<,62D_橹QR8x[xVUz--mwW*W}m9liז #2nd5C~WݭoMϿy΃MwJђ/w6llz@QD]='^+.77kH5tS$>1عgwmw6񫡈@JY[UG˺{p tЗsF_Jd sṝ:_n()V[k6Iyozl][&=EGO]vRB0]Lgܥc0spGm =V:&VCl{GG'g=]csL|f ZVevO=w[ v?8Av$?wx@~bMFe 2z]J ^P FUxt gӳpf9*x42sq P F[U59;<|ZdR[הV5|0*'o !cHmhh12Z">єU(/UOUj@-"Ed "2ZDP7)/:@/ G-"( foyBc[f˫&Yls߶9UBs -]>zYAɰ9_ o|'d ;cQmKM}rzq {[9wMϝ)J 6[ Aɭ3eYَ{s\I kܑlܘqFmo'Мvl(+a܅un9iBqɨEf.]V25c譇q<,F9kxlS5aULGƋ%3v ۟xn,NM>ĀltyL'!;kޮؖXľ<_ȋZ,Æ "O,1@"^c+yyxA5 ޝ7o#ٍm-*OjH `2^鵷.EuXGˁ25EE)m܃:0K FbHh"D+Ê]uC֝uNvZvG[ujѵ֩1"lX*EEȅ@yd!Ji9UW=3_>rqcnjryW@$vn vg,۴R :W8v_1kg&={JΒcf3}+xzN|Kⵖ >b6;7d]\տUݚYuG"X$P5PR}ۆQʁ7Q1.s"N}(9sx>~$d)kqˋ^ @&vPab }`ʺc{\H9R Ytԫ`屮3yHxzNx2rJv;w>cgiy$ws_7 f|,VJFK'<$r?B.3 P|$ E(^EŮfƯ\&J.{HS`?{V@0m ]پecit#JpL%~tN$yffbߥ/mK{j| %ָ-_. B."Gj"YD."]`Q^cM=lsUQE Bt`"廿  P'Z#uF,z16RcLۢ{s\8A/Ku?L۵ȊSITwB̟,1һS5ِ u"yX N5~"z("6 0 lw6rj;OݩDJ)#;+Ya( x{9hk}#)pR5VS;4aM8H~0=UXΙ|ܶQm^6@ p$^0~\ =e}KQj@U%ǁWs{\ľ[._=X*5{19 Bqm7H<^\>+(-µ-O y9Y `UD]`,/ {j eJԏ Ҧt;*WR= P/$oygkaIBt/w? 1Z@-1z&zXF(6TY KFDGJ@a6!Ua2CbKx[WjGF7U7;CUauQ /vC~?0\HgG ۞`j'ELUhø \qxlyN;7kq4s u|~!*ҬH1O?xD'.k4W4![ni< }g-U72}{SA_\:y@y@y@y!zcϾ^ IENDB`n 磻a"R/7ma 2[W|_$PNG  IHDRli^gAMAܲ pHYs  ZIDATx\gXT~ }MA`QP A$hXӼF&5֛DcĨKĈiR2} "jg^}gwBBWu/68:$-,@K" В$-,@K" y\K^۝< ez,׮B&EӫYcg"eИ ԏ_yӎ_#Чon^vxuDZm7vjymjFXŰ[)J5Z6,!AVCWcC#Bs"OQCCEi3xz={2zS}ZC^גCAm~B|Z QA#Sŗ^bEɂ&^दc r,w\]I-0Jo׵MU &5dpQcF \ʐ+<`w8F{Wc` HӦ,TXF*W&}85*2ƙr 30x1v]Oz:\qIf<6o`Kc2m_$zKXVi| 'hg ayYbxd%g-  ɮ]|'sb=W[i浛Yƅv3d~a~nȍr'IUK/t#$?LZݠuKe"{Bk6P'ܼ" yֹ99QNhS7esYILSx""C|\?11d{2g uuYs#czoI]1h[X>?D~EŽQ/Ʒw2[Pp4@fFjm?(xuNQ҂[[cy8_,HlB ;?s֩Not:^車 |Y Y?G hB_EK !omE$qK0֗Є>c"BH][/" -ɄI"Bc}f8w=7CBQ wE'@8.=$ڭ>Oi+BπEgIM4D<8 ] GeݲUG/$*כ:y2Nٖl1REW`eo1,aZ PrL?Bx+G,}mR0z(1ǹ1w 򧟈$r( ʪ[) ,8my8zM#M`y'dUE)Q G- q MMfEC]-s6H!FܗLUk&끃JbV}OFH՚ ud~M` (@^+ӴľQIR,$ҜĔJ c%%zVv\Y=Ye^n5ǭߔ Նf<] ը{]l0ӧEӋ3a-t0AHA :S\zׁ~?֦oJ_hS86,[:QG?]ᵽĭ<ߞl̓Ld 3{%t׬ڔE'XOĎ]-,έY 13zѯ.Etf(+JL[kkH/#aĘnf ]p\V(:9%\'3w}kagۍܛ{rofu;R86 s s,eڅ$F4n?_V`-+WmK:lWQ/buhm9EX?nӱ_?sk4Kl--?Xs  v0<n\)w>^+¾Yܨ7jMs-xYcI9mŬg2꥘r`A 2V}7} +7O(Yθ љh`a߯; 9{7wIn;)n²*s!hY5[4@ra /3a#u򑥩עWRlA=B]߻|KHdᢅfPs z ٥䚨PTT&dPs޼/a)iߴ=[A(+..ZEf5Y&z_R'ߟ4=;"X\ w0e?`]Mu%[hV-|$aQ0gyZ~*.^0)LϠORtMOlxL;3W--گmsZ)ˡ%tʼ SgȑhdT3o9G9>gZ?]U@n&R&.OR|}tE\p:©9۳&{xN85y~,VwD('iVynC9]{jt6|ja[włܳfw%N:5;1E"5A]"QTE59 w+3DeW7Ԁs#FVljݻ%ܓizont}9`_Թ;RX]򎱾TPw'ߗWJ2z*ZKrS}GȬiuP21x”#>G}fO($f5ԁg5qŘC;P͟'~ƺ6,Ja jiXXs D\sCȅbBӈRqu@JsQ !Y={Yԕݭ@ټl -̀wAMy&I D*81VKDk-Xjm={qjzstpPHUP TDD!NjT xΓMd\H& v\!N/K=vE^ cbKDq K~^|obvv0oF*dqob|J;$x{ȳ ʪֶ7hQQ4m0 ۂze3޾mCtR'$y2tv @C$ 4D @C$ 4D^ xݍfq5PGkf㿒n}UF*̘a=Φ'{'h7irz:5|:Zbk<37 V[0Zއ !vDݗ_=sh_AȀ瞞a3X?| <[`h7H}ooԺzâ@w ũU 3jZ=76&x)(kl8'Ei>=@" Dbc$"ǣ@|CI] g~6ITpB %گwN s>?Tl,;&|`ڂH)0eo{SӶ& Fͻ (5V@*DS꘵3Jg|FXl= )le6:yuE͋R Hx@R-AauA*D?YzqA lF$d!sgᛒ0|ue `7tCjkhL TZ͚u;Լ5#لb?,qo/xh[@))PoM+~` $$pW]:3wl{q̰FKfip4Ɯ?8:j Pe:hCe!܅v`gO^WźVMT4ڮ02#wV9 žrIX! Nv3goCǶCW@ͅTS We? ST|pυ~ʇ+xH`8{-Ȩআ{.D_HX-)Frnjr!a#[~9(G/^x~l &ꛃ@P75s!%w b>cnpS=R9(JČIgd o!:B!4sT? \xwO=>]r-㷸AC$ 4D @C$ 4DM{&IENDB`n#4#U ҫ}.O?D0uRƦePNG  IHDR5xcgAMAܲ pHYs   IDATxy\TUwa}UPCDE\KK$_5,2\CE,wMIRT|}]PTـaf 0~yι7νsȸ@=`A^i%= A/4z BA/4z m AcNi޻{kS[MQgE>=Fsz~P1=ӮWyڏ뾋2n7~zFJT',Y$#2F5C+=jo:خ'ouQv縞#tCPr3{*"LJ͕٧+yWk9<@A'2KGNgX͞GSa-tsu%2BRm>LTe\O>\7PRLT51q#7}$ WQ:Ͳ{g[S<6+;e4C8z0oWv^|\20k ]:+A:DWxUg|Yu:fY/aaP,w|t K#6lԓI @$B!o{;s>8ZdVncG &Gӹ" koRзᚉ5/ϏZY\{ H>O =LM իf~^h_>4z BA/4z BA/4sE_E/4NjC.#W:7?o AM=IOf_\肉svܨ;/.A0ۚc⎘[l0 EM~R70+l ~ ?{gׄw 9D3˞ąr&ȸt`*aN}GfS ԞP-kW^sn;MqdٌuK ( vaw穚 WIgj~ljb@ڨ=#R xN-$+L8D)I"L"r9Swrc׆D&BoolV^l"RFߦ?Nse},i͕=lBx1ryvI&[^,>!>غW !DV)b)Q?aVr~Kb1okl7`\v)!@#0pܦ①e?lwaQV<2MM2T!lP-2*T5S _&Qo s* ȍL3^޾ %o>v``7{< )]Y0p5Ahh /N+mf2F8ZXTH1ؠ({UA흴9}oJNPrhbJ*b@Qh] H[P]A = \xJ\u?!I+lWуCe]у4vV/byD=$Ps=CiŅ8{ Ear u[R '|g#c&ñT!{rZs lX!\cҲ1ncжQ^]=LɁ+p ̹7;c؝ti}ᴝý'kL;ǖl;$_}JS17p (E4QNC7{0gpY""`w&;1{'H~h0Q0iɍ:@˟X|]/cRPk켭Oԋ+7+CD`>]Ώo'Qǔeg &(r70<7a x|.B^oa39ĔSOkC&=%uDHI \LК`oI5%9͜Z1@ZxqLWҳ 妶};Pz~+uytY_qdqPhsƳJW>[б~qm~\eXvulֱǿKFzf=opi臫5xH~;zU˪mq=G3)ZMuGI}—'\p-B]f󖎳gl߲yWGAs:+j㩦zefex'Rdh6HJ$rj zNWNƺm"7W`_m:~c ik #~'[o<$T A8H~bJ$/7}O坸n tA^ڲlъU6Dɕ+W-g ۞ޟj_#?ogw(`Š" H~~adhkvO{g'>.&:O3Ft\wcḍ{yFjo6 !WB'?\t=HrEO1-mewdN Bȡ0ƅչe mqbxtيe[Vݰ!oÿntRih+h[75=``0\vEQ#UO0;m?7QyOtOf(D6~;ZX zXT7\]nz:ۚ1E9r#E2evݿQ{(#Lww`9=Lj Qq=<{([99`bYC0f/^{khDd09Ah_)rꆮ~{CN7?\xeA/^>= V<۾4g/".>pթnON |z0غlf6qH3(|'E S7䜎,1(9)E5NrJ&҉R"v=w3~JRUZIV_i;m+"17?̇κ,Xi5/^Hj)K((v(.HQ-AnܑnuL t.t0Yvɽr:XpF\F9\~wz6*"pH_\uؤ,8`~:(hIcA_"iW'OYwXQ1Aâʝ:4, @ŏm|6'6eGJ 05Н~;.]g[rrؾ:09<8Ob{-+68FeOԔ/K^'`TuEL튬Y@ vDYwXi5ɉ)&JS8p0ئL~0\D^.<PҖϣT-TR+W>F.22Bl8"VQM0ڮArTasaI5 w}X K32l#f J7ܵRPe{Dys_s!Q72NfZ?43LŊm"{krz-bt:5+m.=2] 2]a-lRjäj6Kы0R$ *kVzL KqogĖvj]Aݱ=DK\l4kkIB 3 P@(N*-jZjul{U:֫^Pkk-Z( 2 EAA@ ~H0/f윽y8䬽ZEΟ^'D ȂMXYPvMwTEO X>@WF!._;ǁve;*x\Ԥf/;-<52̘Ϲ#H_gqk.# NB;hUw\{XjIhּ ]t88(: @[1wPfC_S*LܘQ&ΔÄ]VKYѝA`e#,|(1ˏhcP1xe0n-1̂漜ؗwf\{QtO=iee5ry2Pu3 @=Y+sOE<Чʫ:]b/|:V%Āo7r~yj%%(uj@W]+<~-N*z`Vܧo h55q(qhE"Juۢ^C 9 _?PBmQڭƶP:]X܏)tD8`EQ^#|H=/ZG{;}x~|yᒥz9[2Q=#Jڃ*^zJȎ]H/:MDUae3=cxiqh+ܸ\bch?hj|8ݠʞ;QSJVUϏVqe{ɲBdsܐLV3! _nCV `tzh:=4 NBf߻"Q{oئՎIOIσ"b?]}5BW_MP_;/|}|,>,{DX1e7-̐۹Kٞ&}t| ߾?ӂQ$j715;nNی\g V_OuMb0`R O9v|vpS;/Sj\o `_])Y?ͳc֐}1wʬH. !7y]SnN^=WOO0CuNf^G`{{+P_~=D"%cٱkɒ]_A!xI}5?ZkW ߆XAυw/mʆ*2.o?hŹWЊ/Vɷ868$8884,$V(RR~v’jiխO#V߮ , }ˆ;j9գfūYe4`2{/]wߦd0:}W%߼~=-o]90"̖lSPZ29wؤ91E^}۠T{. 1"^BTSb L]wtë.VQssDh>+0_oEse%v#M)gBDJ?ݣclPr,k&w6ҳ EF_7yG &{ӭJC!GJ@bx<L\&~GK[?ADznf}''Z=\c]gX=ϋ`]uiu;&CPgS4@E;GrLhhHԵ{+KAwm G/}_66o,/kp %_-w^pHGyeqJ>Mls 0LM@蛘2 1|6wq ID8<3ڻ)ݷ JY쐚{)\eh n[Mmy,eqcYnKhwS+U~]9fl}z *G? `yc'7Z<(u'fOx6+*}נ\YEєHM^Wwf~ߞleP!My< f^ -L̈́S0nlWi=* y˨Ww3h%pDw/0txuM:Y'L|yIJ_3Aa@Cߩ@+}9VAVWyQ4+DN G&(Mn1LGc M,c3CH׌ǐ4CHq]Fyۚ07>*o ΎV] ;M6č|55dR^~!6rpc5ԕ<[a[5h@ݛYìiIDATG9YO/DT]_Mc@[iS)UWXd%z+(}Q/*(KZNB#5zԭ?\ߪY5j%% Otnջb5陥5rS9q@@L•wv#v@sn'M虉dpKau`1o,+cĬWz<ÌnvY;_NzsĜKCp }֯< =veSlg[xz\^g׼[s8(6?+JmxpPB"'o0G $NBfCY,tzh7)*܄OIENDB`(   U6"Wagner@cs.ucr.eduN:http://www.cs.ucr.edu/~wagnerH4http://www.cs.ucr.edu/cs12/ 0DTimes New RomanPss&DArialNew RomanPss& DWingdingsRomanPss& ` .  @n?" dd@  @@``  )    *$     ,      !"#$%&'()b$w@_K*wDD`b$88#ߧBaD`b$;F1ț`re0:]`b$]rgHI;X`b$ǩ⇍9 ]`b$e?Yٓf8M`b$;YfV$ʚ;+4ʚ;g4UdUds ?m ppp@ <4!d!d`gʚ;<4dddd`gʚ;g4\d\ds ?8p@ pp>___PPT9 h___PPT2001D<4X?-,1.2.1 2003 WL Truppel TCS 12: Intro. Computer Science II " Week 6O =$CS 12: Intro. to Computer Science IIWagner Truppel Lecturer, Dept. of Computer Science & Engineering UC Riverside wagner@cs.ucr.edu http://www.cs.ucr.edu/~wagner http://www.cs.ucr.edu/cs12zO  tO`ta~t$This Week s TopicsMore Object-Oriented Programming Inheritance & Polymorphism Inheritance Access modifiers Virtual functions The Slicing Problem Polymorphism Pure Virtual functionsp<g<3%= What is it ?Recall that classes can be organized in a hierarchical fashion (figure in next slide) Typically, classes which are more general appear towards the top of the hierarchy More specialized classes have the same member variables and most member functions from their parent classes They may also add member variables and member functions of their own They may also change the behavior of the member functions they get from their parent classes BZ"BJ>  ? AdvantagesGreat organizational structure to help you better design your code  Easy to debug, test, and maintain b/c you do it one class at a time Avoids un-necessary code duplication: all derived classes from a given base class get the same code from it Hierarchies are very expressive structures: lots of real-world stuff may be efficiently organized in hierarchies Allow for common coding patterns to be developed and documented, so that no one has to rein      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvw{|}~vent the wheel all the time (Design Patterns) Z@Is-a & has-a relationsHow to discover inheritance relations among classes? A Staff person is an Employee; an Employee is a Person A JetEngine is an Engine A Jet is an Airplane, but is not an Engine; a Jet has an Engine The University uses (has) Employees How about this ? a Person is an EmployeeZZ7    n AC++ inheritance syntax BC++ inheritance syntaxclass Employee : public Person { private: double salary; public: Employee(string aName, double sal); double getSalary(); }; Employee :: Employee (string aName, double sal) : Person(aName), salary(sal) {}!Z ZZZ8ZTZ      #    R  %  CC++ inheritance syntaxclass TA: public Employee { private: string course; public: TA(string aName, double sal, string crse); string getCourse(); }; TA :: TA (string aName, double sal, string crse) : Employee(aName, sal), course(crse) {}  ?^     $  H       D  ImportantMConstructor chain A constructor of a derived class (TA, Employee) must first call a constructor of its base class (Employee, Person) Why ? Destructor chain Same idea as above, but in the opposite order Why ? An object of a derived class has many types (polymorphism) A TA object is also an Employee object and is also a Person object\ZyZZ4Z;ZCZ"3-               E Access modifiersAll member variables are inherited, but not all are necessarily accessible inside the derived class private member vars are not directly accessible by name in the derived class private means: no class other than the one where the member is defined (and friend classes) has access to it Can we have members which are directly visible only in derived classes but private for other classes?tdfd2gfs F Access modifiersCCan we have members which are directly visible only in derived classes but private for other classes? Yes ! New access modifier: protected protected means: public in derived classes, private for every other class These access modifiers (public, protected, private) apply to member functions as well as to member variables*DG Access modifiersAll member vars and most member functions are inherited, but not all are necessarily accessible inside derived classes private members are not directly accessible by name in any class other than the class they re defined in and in friend classes protected members are directly accessible by name in all derived classes of the class they re defined in, but behave as private for all other classes (except friends) public members are directly accessible by name in all classes, derived or not, friends or not Constructors, destructors, and the assignment operator are not inherited Private member functions are effectively not inheritedwZZZw h    );(  kH Access modifiersclass Person { protected: string name; // rest is the same as before }; class Employee : public Person { protected: double salary; // rest is the same as before }; class TA: public Employee { protected: string course; // rest is the same as before };tZ Z ZZ&Z ZZZ!Z ZZZZ  &       ! IIRedefining member fsExtending: just adding a function to a derived class which didn t exist in the base class Overloading: same name, different signatures (old news& ) Redefining: changing the code of an inherited member function; that is, having different functions with the same signature Overriding: redefinition of virtual functions (more on this later)Q Q . b   JExtending class behaviorclass TA: public Employee { private: string course; public: TA(string aName, double sal, string crse); string getCourse(); }; // here s an example of extending a class string TA::getCourse() { return course; }  ?Y +        *bH   = KRedefining member fs<class Lecturer class Wagner : public Lecturer { { private: private: // stuff // more stuff public: public: // constructor(s) // constructor(s) // stuff // more stuff void teach(); void teach(); }; }; void Lecturer::teach() void Lecturer::teach() { /* do the teaching thing& */ } { /* teach with slides ! */ }JTpJTL#  }  t N  9LVirtual functionsSay you have a class Engine, with member functions start() and run() Say that start() calls run() class Engine { public: void start(); void run(); }; void Engine::run() { /* run the engine */ } void Engine::start() { // do some preparatory work // then run the engine run(); }b$F: $F3MVirtual functionsSay you have a class JetEngine, deriving from Engine Say that JetEngine redefines run(), but not start() class JetEngine { public: void run(); }; void JetEngine ::run() { // run at a higher temperature and // using a special fuel }j;     ;P  (  GNVirtual functionsxNow suppose we create an object of class JetEngine and call start() on it JetEngine f18; F18.start(); The question is: which version of run() gets executed? You have a minute to answer& vKZZUZ)  ".,)  hOVirtual functionsNow suppose we create an object of class JetEngine and call start() on it JetEngine f18; F18.start(); The question is: which version of run() gets executed? No, it s not JetEngine s version, even though that s what we d like to happen. It s Engine s run() that gets executed because that s what the compiler knew at the time start() was compiled. Is there a way to make sure it s the JetEngine s version of run() that gets executed? Hold on to that thought&  JZZdZ)  " >F4 .P)  V  >PVirtual functionsNow, what if it didn t make sense to have run() defined in the class Engine? After all, no one knows how to run an undifferentiated engine Could we still have start() defined there, even though it calls run() and run() isn t defined there anymore? What would be the alternative if the answer was no? Another minute for you to think about it& YZ*U%}QVirtual functions`The answer to both problems It s Engine s version of run() that gets executed when you call start() on a JetEngine object How to have start() be defined and call run() in a class that doesn t itself define run() is to tell the compiler, somehow, to wait until the right run() is available In other words, we need late binding (also called dynamic binding) as opposed to static binding This is accomplished using the keyword virtualNZZNZZ" ';& 'i >RVirtual functionsBy marking run() in Engine as virtual, we re telling the compiler to use the implementation of the caller s class, not the implementation defined where start() was defined class Engine { public: void start(); virtual void run(); }; void Engine::run() { /* run the engine */ } void Engine::start() { // do some preparatory work // then run the engine run(); } ZZ,ZFZ:ZZ s  F3SVirtual functionsNow, when we do JetEngine f18; F18.start(); It s still Engine s start() which gets executed (JetEngine did not redefine start()) But it s JetEngine s run() which gets called from within start() ! How about the other problem? What if it doesn t make sense to have run() defined in Engine? Can we still have start() defined there even though it calls run()?LZZ:Z   G $> D $ TVirtual functionsHow about the other problem? What if it doesn t make sense to have run() defined in Engine? Can we still have start() defined there even though it calls run()? Same idea& make run() virtual, but give it no executing body. That is, make it a pure virtual function. class Engine { public: void start(); virtual void run() = 0; // now run() is a pure virtual function }; void Engine::start() { // do some preparatory work // then run the engine run(); }  ZZXZZ:ZZZC $ 4     * 3     UVirtual functionsNow, when we do JetEngine f18; F18.start(); It s still Engine s start() which gets executed (JetEngine did not redefine start()) But it s JetEngine s run() which gets called from within start() since Engine doesn t even have a run() function defined in it. Now& can we try to declare an object of class Engine? Engine eng; // is this possible ? ZZ Z#ZZ   H"> D # VVirtual functions8Now& can we try to declare an object of class Engine? Engine eng; // is this possible ? It was possible before (even when run() was virtual), but now that run() is pure virtual, it s not possible anymore. Why? Well, what would happen if someone tried to call start() on that object? Engine eng; eng.start(); Which run() function gets executed? There isn t any version available! So& a class having at least one pure virtual function cannot be instantiated. It s then called an abstract class. (Note the italicized name in the UML diagram) 6Z"ZZZZZZ.""[\&  WThe slicing problemRYou cannot slice the cake and eat it too& no, just kidding Ok, say that run() is just virtual, not pure virtual, so that Engine is not an abstract class (it s then called a concrete class) Now let s create some objects. Can we do: JetEngine f18 = Engine(); ? No ! Engine eng = JetEngine(); ? Yes !^CH,.,C, $  XThe slicing problemCan we do: JetEngine f18 = Engine(); ? No ! Of course not. Not every engine is a jet engine. And you can t coerce a general engine into a specific one either& Engine eng = JetEngine(); ? Yes ! Yes, all jet engines are engines, so this works. But& there is a problem. If we do this, we lose the jet engine s identity as a jet engine. It now thinks it s only a regular engine. Its jet-engine-specific member variables and functions are NOT accessible any more. This  memory loss is called the slicing problem Z!ZsZ"Z Z1Z !s"   1,  GYThe slicing problemThe correct way to treat a derived class object as an object of its base class is to use pointers Engine* engPtr; JetEngine* jetPtr = new JetEngine(); engPtr = jetPtr; Now we can treat the jet engine as a regular engine without losing the jet engine s identity This is useful sometimes, but I won t go into any more detail Read more in the textbook DbZIZZbIb  ZA really bad ideaSSuppose we have a bunch of animal classes: Dog, Cat, Lion, Sheep, etc Suppose they all have a member function feed(). Suppose we have a bunch of animal objects: Dog fluffy, Dog fang, Cat garfield, Lion lippy, Sheep dolly, and we want to feed them all. Easy, right? fluffy.feed(); fang.feed(); garfield.feed(); lippy. feed(); dolly.feed();  ZJZ+.-    .J,c&[ A really bad ideaYes, but what if we didn t know these animals ahead of time? That is, what if they re created interactively by the user of our program. Not a big deal, right? First, create a base class Animal, from which the others are all derived and have feed() be defined only in Animal // pseudo-code& void Animal::feed() { If (this animal is a Dog) { /* do the dog-feeding thing */ } else if (this animal is a Cat) { /* do the cat-feeding thing */ } else if (this animal is a Lion) { /* do the lion-feeding thing */ } else if (this animal is a Sheep) { /* do the sheep-feeding thing */ } }Z&Z ZZ1 & \!A really bad ideaFirst, create a base class Animal, from which the others are all derived and have feed() be defined only in Animal // pseudo-code& void Animal::feed() { If (this animal is a Dog) { /* do the dog-feeding thing */ } else if (this animal is a Cat) { /* do the cat-feeding thing */ } else if (this animal is a Lion) { /* do the lion-feeding thing */ } else if (this animal is a Sheep) { /* do the sheep-feeding thing */ } } Bad idea ! What if you later have Zebras, Tigers, Elephants, etc ? You re going to have to search for all these if statements and change them to include the new animals.sZ&Z ZZZ1 &               p  ]" A smart ideaFirst, create a base class Animal, from which the others are all derived and have feed() be a pure virtual function in Animal. Then, have each derived class define its own feeding behavior. Now, you can call feed() on any Animal and the right feeding method will be executed, even if you later define other derived classes from Animal. For example, suppose you have a dynamically allocated array of Animal objects. Then, instead of for (int i = 0; i < size; i++) { if (array[i] is a Dog) { /* feed a dog */ } elseif (array[i] is a Cat) { /* feed a cat */ } // etc etc etc } you simply have for (int i = 0; i < size; i++) { array[i].feed(); }tZ!Zk ZZZ4Z1Q03A!k4PD:+^#A really smart idea$ For example, suppose you have a dynamically allocated array of Animal objects. Then, you simply have for (int i = 0; i < size; i++) { array[i].feed(); } But that won t quite work yet& because of the slicing problem If you put a bunch of Animal objects in an array of Animals, they ll lose their identity. They have to! Why ? So& the solution is to have an array of pointers to Animal objects Animal* array[numberOfAnimals]; // initialize the array for (int i = 0; i < size; i++) { array[i]->feed(); } Late binding (the virtual function idea) allows for automatic polymorphic behaviorBeZ4ZZmZSZ? 4T%3a 4>j( /P`sx,, g(HH(dh   ` www3ff` 3fff` ___>?" dF@,?n<d@uA @ " d`  n?" dd@   @@``PR   @ ` `P0p>> -,1.2.1 2003 WL Truppel TCS 12: Intro. Computer Science II " Week 6  V( = 2  NpP?"! :    NPgֳgֳ ?"  T Click to edit Master title style! !<  HPgֳgֳ ?"0  RClick to edit Master text styles Second level Third level Fourth level Fifth level!     S  NPgֳgֳ ?"`   Z*    NPgֳgֳ ?"`@  \*      NpPgֳgֳ ?"`  Z*  N  6n޽h? ? www3ff $Blank Presentation5  -,1.2.1 2003 WL Truppel TCS 12: Intro. Computer Science II " Week 6 )!  ( |  B  N1?"442  NP?"! :    NPgֳgֳ ?"`  T Click to edit Master title style! !  HPPgֳgֳ ?"P   W#Click to edit Master subtitle style$ $  NPgֳgֳ ?"`  Z*    NPgֳgֳ ?"`   Z*    Nqgֳgֳ ?"`@  \*   N  6n޽h? ?  www3ff `<f(  < < 0 Jn "P    R*   < 0@Kn "    T*  r < c $ ?"  $ < 0`Ln " @  RClick to edit Master text styles Second level Third level Fourth level Fifth level!     S < 6Ln "`P   R*   < 6@Nn "`   T*  H < 0޽h ? ̙33F pD( @ $  D D 0Rn "P    ECS 12 week 6 slides  D 0Rn "    T*   D 6m "`P   ECS 12 week 6 slides  D 6 m "`   T*  H D 0޽h ? ̙33  @ L(  P   c $Php "0P    c $hp "P   B  s *޽h ? 3ff   (  l  C m   l  C @m0  H  0޽h ? www3ff   8*( d 8x 8 c $m   r 8 S mp  H 8 0޽h ? www3ff4   <\(  <$ < C A fig2b.pdf 00128465Earth B9B583FF:PH < 0޽h ? www3ff   0@*(  @x @ c $0ap   r @ S 0gp0  H @ 0޽h ? www3ff   D*(  Pn : Dx D c $m   r D S m0  H D 0޽h ? www3ff   UMH(  Hx H c $ m    H Hmgֳgֳ ?  class Person { private: string name; public: Person(string aName); string getName(); }; Person::Person(string aName) : name(aName) {} (2 (  2P;  $ H C A fig1a.pdf 00128465Earth B9B583FF:`HpH H 0޽h ? www3ff.   LV(  :8 Lx L c $m   r L S  m   $ L C A fig1b.pdf 00128465Earth B9B583FF:`Hp H L 0޽h ? www3ff4   P\( ? Px P c $ >m   x P c $=m0  $ P C A fig1c.pdf 00128465Earth B9B583FF:THp H P 0޽h ? www3ff   T*(  Tx T c $Cm   r T S `Cm  H T 0޽h ? www3ff   X0( ? Xx X c $Am   x X c $@Bm0  H X 0޽h ? www3ff   \0(  \x \ c $>m   x \ c $`@m0  H \ 0޽h ? www3ff    `$( ? `r ` S :m`   r ` S  Amp  H ` 0޽h ? www3ff(   0dP(  dr d S `:m`@   r d S @m@ `  $ d C A fig1d.pdf 00128465Earth B9B583FF:`Hp H d 0޽h ? www3ff   @h0(  hx h c $;m   x h c $ ;m0  H h 0޽h ? www3ff4   Pl\(  !ds lx l c $;m   x l c $>m0  $ l C A fig1c.pdf 00128465Earth B9B583FF:THp H l 0޽h ? www3ff   c[`p( ? px p c $@Em   r p S Dmp 0   $ p C A fig2a.pdf 00128465Earth B9B583FF:p  p HDmgֳgֳ ?` 0 Wagner redefines the inherited member function teach() to do it differently. Note that now teach() does appear in the class declaration and in the UML diagram.b)%9H p 0޽h ? www3ff.   ptV( ? tx t c $ Dm   r t S mp  $ t C A fig2b.pdf 00128465Earth B9B583FF:  H t 0޽h ? www3ff.   xV( ? xx x c $m   r x S mp  $ x C A fig2b.pdf 00128465Earth B9B583FF:  H x 0޽h ? www3ff.   |V( ? |x | c $@m   r | S Snp  $ | C A fig2b.pdf 00128465Earth B9B583FF:  H | 0޽h ? www3ff.   V( ? x  c $D9   r  S D9p  $  C A fig2b.pdf 00128465Earth B9B583FF:  H  0޽h ? www3ff.   V(  x  c $h9   r  S @l9p  $  C A fig2b.pdf 00128465Earth B9B583FF:  H  0޽h ? www3ff.   V(  ,! x  c $ n9   r  S m9p  $  C A fig2c.pdf 00128465Earth B9B583FF: H  0޽h ? www3ff.   V( ? x  c $q9   r  S  q9p  $  C A fig2c.pdf 00128465Earth B9B583FF: H  0޽h ? www3ff.   V( ? x  c $s9   r  S `p9p  $  C A fig2c.pdf 00128465Earth B9B583FF: H  0޽h ? www3ff.   V( ? x  c $ t9   r  S s9p  $  C A  fig2d.pdf 00128465Earth B9B583FF:` H  0޽h ? www3ff.   V( ? x  c $q9   r  S p9p  $  C A  fig2d.pdf 00128465Earth B9B583FF:` H  0޽h ? www3ff.   V(  x  c $G9   r  S G9@  $  C A  fig2d.pdf 00128465Earth B9B583FF:` H  0޽h ? www3ff    *(  !6 x  c $pI9   r  S I9  H  0޽h ? www3ff   0*( ? x  c $0M9   r  S L9p  H  0޽h ? www3ff   @*(  x  c $B9   r  S A9p  H  0޽h ? www3ff   P*( ? x  c $C9   r  S pC9p  H  0޽h ? www3ff   `*( ? x  c $0D9   r  S F9p`  H  0޽h ? www3ff   p*(  x  c $pY8   r  S Y8p`  H  0޽h ? www3ff   *( ? x  c $p\8   r  S \8p`  H  0޽h ? www3ff   *(  " x  c $`8   r  S 0`8@`  H  0޽h ? www3ff tlPH(  HR H 3 <   r H # On< @    H H 0޽h ? ̙33cxp^RЀ3ÿ lHbP  @AL G@;b `B&V 5 (EQ=qgg bZ`c> 5 (EQ=qggn *'E)+eICn mJnna#E nZ1ng,ng,nX>ǴpFّRMMq'ETLd'kR( LdR(X>ǴpFّRMMq'ETLd'kR( LdR(n^&nnm9Md`nVNjnh0nn^>an#kn!!nZ1`A$j!+Z9 .nna#Hn !+na#HnW6F9,,qs@u%?+X u%+XW6F9,,qs@u%?+X u%+XnK>n%@injUnncnnnZ1]2E2nZ1]3n_4g-nW8n:Snnn g-n:Snnn4 Fizqyf; f;4 Fizqyf; f;nblnd<?nn>Hnn-5nZ1]7n`4g,nW "VH > "Vi'/}{ Fijjihqy> "VH > "Vn-96^57 an nnX-..in--nZ1]7n`4jTW>n bF%@cFn jTbF%@n p 'zIFu,,qyB8$s} B8$s p 'zIFu,,qyB8$s} B8$sn j05lnL Lnnn2fnnZ1]7n`4nW>nS2l^6n nS2ln!?h"@i; 0BZnmdnignmdmneknmdmnekn+~Y[< -Qmnn@~z|>=fnemngln~ pydʛT}qq sydʛT}qq?9fnk4+hnWCnM $Xn^6nZ1Z1n~bZ`cg> 5qqbZ`cg> 5qq@Gmn*'E)+ng,neICng=UnZ1Z1n~~,7XR('0+'<p''Ld(W'k->Ǵ6K'(W'ET6K(Wqq17XR('0+'<p''Ld(W'k->Ǵ6K'(W'ET6K(WqqA%]n7^&nnm9Mna#HnUB BB Yn\@0l^Bn_A!+nO%gnZ9 .n-d`nVNjnnW Una>nO%gn`A$jnW UnnO%gnZ1Z1nw~/+X&rBX/u%(r [?,W6o%}(r [s@o%(r [qq /+X&rBX/u%(r [?,W6o%}(r [s@o%(r [qqCGnK>n/i& OQ7 1nY&N[:n\82nSDg^6;Qn+j]&nW7H>nSDg;Qn+jnZ1Z1nu~$/!"~=}$,hk  6}k vyk qq*/!"~=}$,hk  6}k vyk qqE(anN9n/Ui:SnnQAn6[n nY6nn[9n[8g-n._W8n lajmUTn:Rn^6._]3n_4:Rn._nZ1Z1n{~ 54 ;=R8~f.ϙ}yϙqq54 ;=R8~f.ϙ}yϙqqF$Zn5blndIAnhQCn7^n nY#nk\6nU8g,n@HZXZjWHnCBnYBd^6@HZXZj]7n`4CBnYBd@HZXZjnZ1Z1nx~4i'/} "V= s|7O>W)=.{,:}W)=y,:W)=qq4i'/} "V= s|7O>W)=.{,:}W)=y,:W)=qqG!#Wn4-96bF%@QCn7^n nYC25iX"8jT]%XmW>n.^57 an_Ig^6]%Xm]7n`4_Ig]%XmnZ1Z1nr~4p 'z$s=KCq|B8 (I# '} (y ' (qq 4p 'z$s=KCq|B8 (I# '} (y ' (qqH#%Tn4j05lnS2lQCn7^n nY gn158nn8TnW>nL Ln#DHn^6n8Tn]7n`4nDHnn8TnZ1Z1ń~  I%&XnmdneknY;lenhknmdmnnmenignmenmenmenmen1~ K(*\nY;n1~ ӝ ӝK)-anfE[n%~ &L+3hnn%~5 >N.Emnnnnnnnn~z  V?Vnnnnnnnn nnnnn|~XBCgnnnnnnnnnnn@~?LYDNnnnn"~ZF`nn%~ 0[HMlnn"~]L^nns~ ^NPknnnnnnnn~u^O]nnnnnnnnnnnnnnn߁~ `RSlnnnnnnnnnnnnnnnnnnnnnnn~q}aT`nnnnnnnnnnnnnnnnH~bVlnnnn"~wcYcnn%~#e\]mnn"~f^fnnC~.f_amnnnn|~hbjnnnnnnnnnn~9Miehnnnnnnnnnnnnnnnnnn~jglnnnnnnnnnnnnnnnnn4~arkiknnn$~ "lkmnn~mnn ~7MoqnnM~psnnnnnnnj~tqurnnnnnnnnnnz~6rwvnnnnnnnnnnnm~  syqnn nnnnnnnnn"~i{t{unn$~1u}|nn"~ āwӀsnn"~k ~xӂynn"~!:yӄnn"~ˁ!ҁz҇snn"~{"{҈{nn"~0"L|Ҋnn#~#}ьqnnn#~#~юznnn#~X$pёnnn#~$4ѓonn ~́%ՁЕunn4~%Зnnn~M&hИnnnnnnnnnnnnn~ &3 Кonnnnnnnnnn nnnnnnnnn~'Ϝvnnnnnnnnnnnnnn4~'Ϟnnn(~Yʀ'sϟnn~ (CϢn~(Σsn~)Υna~y)Φnnnnnnnnnʁ~G *f Ψnnnnnnnnnnnnnnnn nnnnnnn~ *= Ωnnnnnnnnnnnnnn nnnnnnnnnnnnnǁ~*ͫtnnnnnnnnnnnnnnnnnnnnn7~+ͭnnn(~+ͮnn~W+tͯn~,,Qͱn~,1Ͳon~؄,߄̴xn~-̴n~-̶n~b-~̷n~?.b̸n~.D̹n~.˺pn~ԅ.܅˻znv~/˼nnnnnnnnnnnǁ~/˽nnnnnnnnnnnnnnnnnnnnn~| / ˾nnnnnnnnnnnnnn nnnnnnnnnnnnnn~_/}˿nnnnnnnnnnnnnnnnnn+~B0fnn(~'0Pnn~0=n~0on~0wn~͆0׆~n~1Ćn~1n~1n~1n~s1n~c1n~S1tn~F2kn~<2cn~32[n~)222222222Snnnnnnnnnnnnnnnnnn~ 2222222222222L n nnnnnnnnnnnnnnnnnnnnnnn~222222DnnnnnnnnnnnnnN~222222?nnn~ 2=ņn~ 2:Ɔn~27Ɇn~25Ɇn~2ˆn ՜.+,D՜.+,<    'On-screen Showcn-sx$ (Times New RomanArial WingdingsBlank Presentation%CS 12: Intro. to Computer Science IIThis Weeks Topics What is it ?PowerPoint Presentation AdvantagesIs-a & has-a relationsC++ inheritance syntaxC++ inheritance syntaxC++ inheritance syntax ImportantAccess modifiersAccess modifiersAccess modifiersAccess modifiersRedefining member fsExtending class behaviorRedefining member fsVirtual functionsVirtual functionsVirtual functionsVirtual functionsVirtual functionsVirtual functionsVirtual functionsVirtual functionsVirtual functionsVirtual functionsVirtual functionsThe slicing problemThe slicing problemThe slicing problemA really bad ideaA really bad ideaA really bad idea A smart ideaA really smart idea  Fonts UsedDesign Template Slide Titles$ 8@ _PID_HLINKS'AHmailto:Wagner@cs.ucr.eduhttp://www.cs.ucr.edu/~wagnerhttp://www.cs.ucr.edu/cs12&_Wagner Truppel