emacs-smeargle-0.03/0000755000175000017500000000000013023634634014157 5ustar dogslegdogslegemacs-smeargle-0.03/Changes0000644000175000017500000000032113023634634015446 0ustar dogslegdogslegRevision history for smeargle.el Revision 0.03 2016/12/13 syohex - Drop Emacs 24.1 and 24.2 support Revision 0.02 2014/11/1 syohex - Fix for tramp Revision 0.01 2014/06/29 syohex - Initial release emacs-smeargle-0.03/smeargle.el0000644000175000017500000001757313023634634016315 0ustar dogslegdogsleg;;; smeargle.el --- Highlighting region by last updated time -*- lexical-binding: t; -*- ;; Copyright (C) 2016 by Syohei YOSHIDA ;; Author: Syohei YOSHIDA ;; URL: https://github.com/syohex/emacs-smeargle ;; Version: 0.03 ;; Package-Requires: ((emacs "24.3")) ;; This program is free software; you can redistribute it and/or modify ;; it under the terms of the GNU General Public License as published by ;; the Free Software Foundation, either version 3 of the License, or ;; (at your option) any later version. ;; This program is distributed in the hope that it will be useful, ;; but WITHOUT ANY WARRANTY; without even the implied warranty of ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ;; GNU General Public License for more details. ;; You should have received a copy of the GNU General Public License ;; along with this program. If not, see . ;;; Commentary: ;; `smeargle' is Emacs port of Vim's smeargle. `smeargle' provides highlighting ;; regions by last update time / age of commits. We can know which part is changed ;; recently and which part is not changed recently. ;;; Code: (require 'cl-lib) (defgroup smeargle nil "Highlight regions by last updated time." :group 'vc) (defcustom smeargle-colors '((older-than-1day . nil) (older-than-3day . "grey5") (older-than-1week . "grey10") (older-than-2week . "grey15") (older-than-1month . "grey20") (older-than-3month . "grey25") (older-than-6month . "grey30") (older-than-1year . "grey35")) "Alist of last updated era and background color." :type '(repeat (cons (symbol :tag "How old") (string :tag "Background color name")))) (defcustom smeargle-age-colors '((0 . nil) (1 . "grey5") (2 . "grey10") (3 . "grey15") (4 . "grey20") (5 . "grey25") (6 . "grey30") (7 . "grey30")) "Alist of age of changes and background color." :type '(repeat (cons (int :tag "Age of changes") (string :tag "Background color name")))) (defcustom smeargle-age-threshold 7 "Threshould of age of changes" :type 'integer) (defun smeargle--updated-era (now updated-date) (let* ((delta (decode-time (time-subtract now updated-date))) (delta-year (- (nth 5 delta) 1970)) (delta-month (nth 4 delta)) (delta-day (nth 3 delta))) (cond ((>= delta-year 1) 'older-than-1year) ((> delta-month 6) 'older-than-6month) ((> delta-month 3) 'older-than-3month) ((> delta-month 1) 'older-than-1month) ((> delta-day 14) 'older-than-2week) ((> delta-day 7) 'older-than-1week) ((> delta-day 3) 'older-than-3day) ((> delta-day 1) 'older-than-1day)))) (defsubst smeargle--date-regexp (repo-type) (cl-case repo-type (git "\\(\\S-+ \\S-+ \\S-+\\)\\s-+[1-9][0-9]*)") (mercurial "^\\(.+?\\): "))) (defsubst smeargle--compare-function (update-type) (cl-case update-type (by-age (lambda (a b) (= a b))) (by-time (lambda (a b) (eq a b))))) (defsubst smeargle--retrieve-function (update-type) (cl-case update-type (by-age (lambda (_now time) (float-time time))) (by-time (lambda (now time) (smeargle--updated-era now time))))) (defun smeargle--parse-blame (proc repo-type update-type) (let ((cmp-fn (smeargle--compare-function update-type)) (retrieve-fn (smeargle--retrieve-function update-type))) (with-current-buffer (process-buffer proc) (goto-char (point-min)) (let ((update-date-regexp (smeargle--date-regexp repo-type)) (now (current-time)) (curline 1) start update-info last-update) (while (re-search-forward update-date-regexp nil t) (let* ((updated-date (date-to-time (match-string-no-properties 1))) (update-era (funcall retrieve-fn now updated-date))) (when (and (not last-update) update-era) (setq start curline last-update update-era)) (when (and last-update (not (funcall cmp-fn last-update update-era))) (push (list :start start :end (1- curline) :when last-update) update-info) (setq start curline last-update update-era)) (cl-incf curline) (forward-line 1))) (push (list :start start :end curline :when last-update) update-info) (reverse update-info))))) (defun smeargle--highlight (update-info curbuf colors) (with-current-buffer curbuf (save-excursion (goto-char (point-min)) (let ((curline 1)) (dolist (info update-info) (let ((start-line (plist-get info :start)) (end-line (1+ (plist-get info :end))) (color (assoc-default (plist-get info :when) colors)) start) (forward-line (- start-line curline)) (setq start (point)) (forward-line (- end-line start-line)) (setq curline end-line) (let ((ov (make-overlay start (point)))) (overlay-put ov 'face `(:background ,color)) (overlay-put ov 'smeargle t)))))))) (defun smeargle--blame-command (repo-type) (let ((bufname (buffer-file-name))) (cl-case repo-type (git `("git" "--no-pager" "blame" ,bufname)) (mercurial `("hg" "blame" "-d" ,bufname))))) (defun smeargle--sorted-date (update-info) (let ((times (mapcar (lambda (c) (plist-get c :when)) update-info))) (delete-dups times) (cl-loop with hash = (make-hash-table :test 'equal) for time in (sort times '>) for age = 0 then (+ age 1) do (puthash time age hash) finally return hash))) (defun smeargle--set-age (update-info) (let ((age-info (smeargle--sorted-date update-info))) (cl-loop for info in update-info for d = (plist-get info :when) for real-age = (gethash d age-info) for age = (if (>= real-age smeargle-age-threshold) smeargle-age-threshold real-age) do (plist-put info :when age)))) (defun smeargle--start-blame-process (repo-type proc-buf update-type) (let* ((curbuf (current-buffer)) (cmds (smeargle--blame-command repo-type)) (proc (apply 'start-file-process "smeargle" proc-buf cmds))) (set-process-query-on-exit-flag proc nil) (set-process-sentinel proc (lambda (proc _event) (when (eq (process-status proc) 'exit) (let ((update-info (smeargle--parse-blame proc repo-type update-type)) (colors (if (eq update-type 'by-time) smeargle-colors smeargle-age-colors))) (when (eq update-type 'by-age) (smeargle--set-age update-info)) (smeargle--highlight update-info curbuf colors) (kill-buffer proc-buf))))))) (defsubst smergle--process-buffer (bufname) (get-buffer-create (format " *smeargle-%s*" bufname))) (defsubst smeargle--repo-type () (cl-loop for (type . repo-dir) in '((git . ".git") (mercurial . ".hg")) when (locate-dominating-file default-directory repo-dir) return type)) ;;;###autoload (defun smeargle-clear () "Clear smeargle overlays in current buffer." (interactive) (dolist (ov (overlays-in (point-min) (point-max))) (when (overlay-get ov 'smeargle) (delete-overlay ov)))) ;;;###autoload (defun smeargle (&optional update-type) "Highlight regions by last updated time." (interactive) (smeargle-clear) (let ((repo-type (smeargle--repo-type))) (unless repo-type (user-error "Here is not 'git' or 'mercurial' repository")) (smeargle--start-blame-process repo-type (smergle--process-buffer (buffer-file-name)) (or update-type 'by-time)))) ;;;###autoload (defun smeargle-commits () "Highlight regions by age of commits." (interactive) (smeargle 'by-age)) (provide 'smeargle) ;;; smeargle.el ends here emacs-smeargle-0.03/README.md0000644000175000017500000000521213023634634015436 0ustar dogslegdogsleg# smeargle.el [![melpa badge][melpa-badge]][melpa-link] [![melpa stable badge][melpa-stable-badge]][melpa-stable-link] Highlighting regions by last updated time. Older updated region is highlighted whity, newer region is highlighted blackly. This is Emacs port of Vim's [smeargle](https://github.com/FriedSock/smeargle) ## Screenshot ![smeargle](image/smeargle.png) ## Installation `smeargle` is available on [MELPA](https://melpa.org/) and [MELPA stable](https://stable.melpa.org/) You can install `smeargle` with the following command. M-x package-install [RET] smeargle [RET] ## Support VCS - [Git](http://git-scm.com/) - [Mercurial](http://mercurial.selenic.com/) ## Command #### `M-x smeargle` Highlight regions by last updated time. #### `M-x smeargle-commits` Highlight regions by age of changes. #### `M-x smeargle-clear` Clear overlays in current buffer ## Customize You can set highlighted colors of `smeargle` by changing `smeargle-colors`. For example ```lisp (custom-set-variables '(smeargle-colors '((older-than-1day . "red") (older-than-3day . "green") (older-than-1week . "yellow") (older-than-2week . nil) (older-than-1month . "orange") (older-than-3month . "pink") (older-than-6month . "cyan") (older-than-1year . "grey50")))) ``` If `color` parameter is `nil`, that part is not highlighted. And you can also set colors of `smeargle-commits` by `smeargle-age-colors`. ```lisp (custom-set-variables '(smeargle-age-colors '((0 . nil) (1 . "grey80") (2 . "grey70") (3 . "grey60") (4 . "grey50") (5 . "grey40") (6 . "grey30") (7 . "grey20") (8 . "grey10")))) ``` You can specify parameters until `smeargle-age-threshold`. `age` is set to `smeargle-age-threshold` if actual age of changes is older than `smeargle-age-threshold`. Default value of `smeargle-age-threshold` is 7. ## Sample Configuration ```lisp (global-set-key (kbd "C-x v s") 'smeargle) (global-set-key (kbd "C-x v c") 'smeargle-commits) ;; Highlight regions at opening file (add-hook 'find-file-hook 'smeargle) ;; Updating after save buffer (add-hook 'after-save-hook 'smeargle) ``` [melpa-link]: https://melpa.org/#/smeargle [melpa-stable-link]: https://stable.melpa.org/#/smeargle [melpa-badge]: https://melpa.org/packages/smeargle-badge.svg [melpa-stable-badge]: https://stable.melpa.org/packages/smeargle-badge.svg emacs-smeargle-0.03/.gitignore0000644000175000017500000000000613023634634016143 0ustar dogslegdogsleg*.elc emacs-smeargle-0.03/image/0000755000175000017500000000000013023634634015241 5ustar dogslegdogslegemacs-smeargle-0.03/image/smeargle.png0000644000175000017500000021176513023634634017562 0ustar dogslegdogslegPNG  IHDRRSsBIT|d IDATxwxU~@h!6ĵ`XAbE\V\ BPTH HHOng~$@InIBy=sϜ9swΜQǬY>B!Dr5?Ԭ>gޣU&!BcT3k,+lB !B3⋃AW\ѺB!8F|w}K{&ӢB!̚5KZB!ǔKVO6(!BI %B$ B!$BqZp!f/ٳgw}c@yy9 .`ĉ~%" ^[WfSZ6% ch]#|CmЂ p8TVVdY`rر@P d6mToСCK^dE!8~(CbsشkS='@!q=qgl7l+ĭb)3zXG,?Xf8AJWq'kueQ0;oZ>_݀Q\r8 A-`/߲|.w],NҾx{ 6M09 /DV`39odOtOY^ÄsH}~4 \dE4!nɒ%ӱcGV+w~o91cưh"BƌCeeyH?so߾>ѣƍ !;^Ge\~q}ϒ5_4u9^SO>lZ1>y(]7EƆl)&zeu LWNOKX[{Md>[2]<AWcjU6:؟CiT8"R][G&K??>.cd rY2~X5Ύd{v+T26A5X7|M]9~v.iN 2oQ =C[(*2z.DS,]M61h v;]taժUn.袠}7M{_VTTL0f***+@vsu`eرb!DC`*[u0e252# ƥ0kȞd쨠mdVn?SV$2U鱧QĜu-WmwtvGab?y`X'ѿ wVz~CzK!%h `TF$$aCwi: OObS"3Bwig^gDHmof0Ϲ9_uSč btSR0J?~ϝ;nn=4$QYSFO.]K.߿ (*//'22+ رcq2Jf ϸF;d$ĝ_k$V͎S%2 ZQo/"L<3_c*4UA:m*k2p.7M&#'n6grr1ΐX371!6:E١((:k03c`6okJ낸Q'8HR^AÍZlBvJ*U;]d]9jIwygA{9s,زDdffj*Ǝj;'ر#:/hȤ$"֬dlOu+Ff4/T{0( ]j \vWդLğQg,Q-HKfxeбC}ct]KCh\,{P؞Iq;%sNg7z'vJRW:rXp޽;k6PR~užc=e@Tj|3h'u|+^Rs 7CITծV;3f asnf ꮽ餤$ !|ӷ;+/1M,_v<,pӮZKjP=X;,Nu>$ǘ \uVnd/?JSjRO6dڵϧ2y`-H3?\F+YtO{]i\qn!.\Θu~ӈyW,ؼn$rmOw\Q8p мw3`P9SC5kɅB47%Lzz\˨ZmmC| oU!^LQXQOHxT!&׉kj*ͧءY,e%*ҊAC4ʲRJs{$ԭY|&=lU iG4W350+FF͉.40"*"∶*8 )J,%D390רF[s7..{`Ptt4zQ@nr'՞Oں=!4n3Dy*qx%B/_.BF1tq#zu㨪TDq"@J8[[kC!ZRB!A@J!"HH !Bp饗6ШQJaB!ڊ_~Л'B!D`$B!RB!A@J!"HH !BI)!B I %B$ B!$B!D$B!RB!A@J!"HH !BI)!B I %B$ B!$B!D$B!RB!A@J!"Hmr!BsdDJ!"HH !BI 6wfk/ e>P~f -cިlfū(?g)ď| /gi9AtP],oSײۇhHE{BqatwJʠ(fҚFtV_Og0ZM\L>-7:x)*g(g3'ַ,#͘q_-\)$F1LWz Qw֟^ӿ7SW*5\ԡwqU{XLY}'&""@g -;8 \xQ>CE!3;͝mrZ~xf \EhsUWh!tP5W+#'}Ϥhe:T~4"#+kX4tzW.aB;7HϏ`Fj;T(KF4;ەqM]?kZxg6R>M1Zl\~aI>?moB`AGQD"#~_ޒ ѵk>ﶷrۚ2]-Z>?ڗZK0T<Ĝ^?pq|?@orpRDTT0{k4Y4m$ bp4 "ANΈqb*7Qdu`=naښDG1w_6Yjb~j$9Jn"V1W3u*E!_1*ȍSb<۳{lL53|[̮:^NouILig佭Ӝַgܝe]>֫k Hߤ_`2&[x~p=™n覿XQ֫{̼%m׻= ܴӂ,=ܴ]πh|=<9x@[g'kO*b|oe%IV/z Tݿ>Fi_x_1,BiX%]\Q?x}|6~|%bɋ^MX?[օDGcRҡHV8IoBFڹU=)M!ʈͨwqq4;uS֙(;b#RteGvo#s條bL^3Lɩ0^:ƫB^ΩNeuj>?pa`bN6qh$1X ᱭX@UqwFY3v9Xл,q2_\ j}_PC~n~h|BHNLJ}C[ToW4C4*KC̈]n&}_?h5о F)E:4Lu?F5C˶__?gI4Oty?SLaQ|sSO@\Aem~}`PT=g8Ln=ٔC\ӑZ`ȑe~$Uw,z[4 .z=衛A.ہ/rZ8?ZWǭ/:雺~NT[$9}4tX^;؅*M4iQs6LaͺTB&| LSYhڽ{Job7M߿]ڗ&#ts4= hi}55޿5߯I)=*8|YMFV7ӥz'3J42.U"?7~R:YQV+xTqίg5MKr="ufTFatSW vݡtscF^TԳz3:*kݩ:\hW©;4U,7}i}㘬qGB>]al&_϶sHRTu[G}[|4ey|jhs՚zFk?I /)*ڱ5YZT+PU\JD ^= q NeՎxWCC=߷t^ h۶Z#PN~Mҫa6jWPݡKѩPճi5}i}tlΉ ξWC|>k?x7o5ܾёW1{4V@/P|jNaUrTߧ{>IgrpM%yz#m_Q("}@=N4#՚9T?Eӓ9cQ4cG^(: NF'BNztR {M^Bv]X}9d*BՃLXv4mh`5im?x/ۈ1E5*M#\!A>%i$Oprb=~OKED͇avb`4 5u$S Wb.F]CtЈ R$tkbi ^Eש LCA]D*ʸ']Flz'\$T|@%L_ۘWz'8+Jn$\f* Qʘc*IUa>꿱[L~|qRBRŰp="A)05лF;p}UAuYXZ1g熻ء)r@˶?ct)/$Up^rcX'B# uŪ._S@.C^6RLzi$v*]S2x?|NvqbnH.Q;縖jW5xw{/;JxPHψ] ,*\F~k hX{2R!!%^bss⟼Y:4sa]T/ƭMt#ߌt4?޹۩jm 'ԘY[X1Et1yϭ )ZEtV:tmGwx|>O{na?2i^s^c_lrI֪|<5f=l;I*/n-n!:Tdk!(3 (Ysq6s1eHA+2rQO34RA!ٺzi~z#?-P]T%锕adQWbQ' yP&8Na/ -ףNbHyK2ZWW! 85-Y=[غ}[V؞Of 9J>pg匙z~4+J6x m;rX; :Q]jkd=Pnz_1EjU$jqu:[sQ.3}qZOa>?qg\e_x{ 1nvmAUj0>ZMJ\ѝ{P}1_̸3⎿MR[oDJs݇wNU]r`Wlj*I$x =k}x!em bM<ѽH ^-Y5㧖0fLOߧpweҤcz? ի6>DޏS{_OlvM}h:{zJ4ikΆR?.Skes*&<@Ѹf$M'Ϧ>f댅]9P}ğ3b9nu:ѝУ޷g 4W>J/(tj =OIQm6-JFnIz]z=n?x* k.boNgB}6F'3>+a'7=N֓kRXLW6/m[C1+ TWNCo,^3+0zet:"_ϔcd0\ O} ' USfߒFTܗ.s_efh<||цjMk }T}iǞ]=5H]Trs{ݽ|_!*HΩ2L3 WR{p2Ɲۏo)ݹL挟Yny huGпB'dx I1t%~L;Uz;Jo.f4=F#R1tfB8%җpGg=oY|Xgxv^=P7eެ,$pSw k_e{@`W?^v?"m0=o|[ss <߽|k=|yS ;"p><*$3 Q>Fk(Dm8q(R s9wЉ˟~ V1wϔIYm_uLp ffC-ğ9. T\2l*Qi+c'L{UQ=Q3f3lt7ϸGeY4m56œij)&`ď#7O_K=?4R9g~  LD$Ę_D7XYc|;2'y~^~h;@;E,@:S,mZ)D)Ӓ}7i+ݓ8dr?3*^N@[ξ];0e#. U83qWթ?ҏĞzL#"4OuO߉m/8?/g._7\;{P;VymTv4aAX*}yh`NJќz) qe4zŖ[|ؙ.B)/7cFo& W,XEwlW;}$Cȫg>n8{YK Myv5ھT;آmx}^_CO%O ) _]=:L?x`g =;U6 Xůr,Ae{* Vǁ*M{ 6 _ECH|DFtJf^;FO 'Y?EUy@QqR͟x>6;8{TNz#UKUhu*l3-b-AwځTi_s.^(j{b|OU:qfቮDe)c3)?63&TJ0Jjh&gY])l O9;}/t/*Tdj=*(Jp#/JDV}9YeՋiUo܎:+oJ[Nu HNÉhTc҅03sX `o#֤>Tɢ$NIPҳ>TUP%{ݰ=FW==]O >YY]M)ц]2߷o5>ఠ׍3b{l_[ixZпLY-U 'C"c_{I}-d|t7ҏ-J6@g Ŭ3z淌`S-myJoPᣡ*j&8j'ֻvcź֝|Vwo?mKSٳR3PYG^j[C/Os=/k+5_.T6Hˑ3Z1v_*2;1UiK';YmJ_s:sӪ'7[b$ԪYP7aEefUT* *k*Jt3ax*KR 4ٹu۲gs'zHW>=?@Jg7V?R?,w*Cִ“OھWcgaQ!T:l84;LwVWgWcJo@ӯ᫨nϡ\ 4O%^Ōٕi^T-}vz &ks9:,f4 f'äfE9p;MOcP0°O!ԸP uz uj)%+^eo0w=^7N _pݥL C9^W%.&*X1*u u>m9R^~ RU=.b񾫸jx^-Hm;K- $'#;fX\ҩR#[${0ڷ7zſyf!GjaDIV>MUAgBUBLX%TriɄ~]r OݬXRXI MMx X #1"5먩kJے|t7',`)J%u#K/AEGX~seVGp7?yY<:LJқnd'6vއb^]Q&xJ(ɧ%ReS(Az%ӎvRu`0H5J쪃rX#^p6 Fve›XpvFKnyӟŗK|3L*ҟ^[ t a dž(] 5QUTBv7Cy>Ŕ$h@JsdSb!~hbt{}-8<#k. ܻ\M狟wջ0GgM*: " Й.q2(!N"ĹC]ZJsXOSN#lFN{_9B3̾1.,6"p ?-ydk\dXMe}ocWƽ\La&4п*1XB)&L1aϭuۮ`Lx/N{hR~1`֌?4f7D5E!oWYU_q<@1:'E Û/ǵeIgǟ9~瞯H['/8|1o|ύ 7odk@9O_\}۫O-k)kny<ZNµ$>8!XwblL_4i' e֬Yڴi]W^G8BT'?cSȓw5K˃),>&ʢiqý|w|_xyOϿ-9ь WٗIvwiXdswț ߇A?SK2,rmrw* ?#vG=ؾ= +Ϥ7tCqT4DIsFp\0m=ӟ~f3i"riO'MshEh1g.8WRþd׭]&}΍c呩Kݏ7l+E߽B1s1q\ (&Œ,2o rGG`vaR Ppb}fP)[63D42R!!NI'B&F}k19!#l|2w'1O'XNO!D#~sQS6SCuz+J5N+BL)!]x>0PsmTpN{ !&s_oEQ!d!+RRuέTj&7,aQu!2~zZ6)),{UobPk T_Z/i}džG/m=?/Nҫ/rVlF} 9rA Nͨ٭2GJ&qo),G/sw [>;ᦗ>䛔s+=L !H :³8wLc1{B(eRC'Jž'f[fNJϻn''p~<40(b,<L{a ZJl{ '~D?UDMͪDNLG?0SZ a]/3=Spۓlf́S g1SNN~m."pH ){S0՞ImI&X޻.+rQNE8fc1gQ)ǚNX0ZigF,^0~Pe ?O vBW;{*Չ33Ot%*G9$s9wvf/N!y/0~z Eԏt!K{" FJeдKan;rQbq[~X܀@Pa/EXo?p|_W*f |"-ƮwߑLa[ʲy+ | !H iy繎 )H CAš9M 2ISP⚊[Y go]; yZ?҅BL)?Ջ{]iÆN;vfx+0zColG|jBouS6??۵oyWj~HB0 D^j,@ DŽ˪ОQ-[斠k`N`/r[r>OyVm{Yjapt%9& !h}?D4ʉϰaD׳Þ+2g2yCUvTEtҶKA%kBB)&LI=Rri]'>äѯ Nz&\HNAB0E؇0AtŻ{aKw|BҲ~zupc]2a OYs)|QVb^IVڜ# >;IW[RVxkI|p Cr؜5oY#Yu(>3\eW.~{E )'e֬Yڴi]W^G8BBGLeѴX޸^ ZB!ZCjjj?\0~`w_{QBqK{BnE] !JFB!$B!D~_*BɈB!D$!6&B%_l{s 5vǽtB!4\Bnum$BV'T@4UtFC/B!ĉD)!B I (M^+BjHD^fG3bk{B! Ox)ٺ0"څB!D+@*@E.{\ħ\IG}kH!E CNj77y[DB!h-2"='Mܥ,]A~BRaܼ'B$B!RQt,)!BHFA6%Bk?V<&ύFgh" !I |(/+{B!@)?ilEv1BѦ)!B I %B$ B!$B!D$B!RB!A@J!"HH !BI)!B I %B$ B!$B!D$B!RB!A@J!"HH !BI)!B I %B$ B!$B!D$B!RB!A@J!"HH !BI)qQB8뒳ISZ(BJX2g_rI!hk$:, KأXƞt}N{~?_ \OC) 9E x2-~܋?X’%9 .f3L3{J{#C<&4gD3z >IRWj/`eS)l ,H~X@g;@CX;`W EUtԉZTDb>3JE[V$f,h;K?lm\۩ص'9E֭BrvoRyg_M7(w !4Z/fGD„kY7d$j^`wzBEq@G>(䑕yT'`* nX;oeO°_beYAF2pj.Jsʥ}:G~:fjEN:GQ#vĕ .RG~WU)8^**nXUofD;=y%&48<Z [=+~(U#b)Xz 369⵳SO6T@_}zNr>b}BF'.f?S6@9&+O'%{6'oBҷl+WԞ31gLB!s^67:Ēpt벝/w=&dȫP,szJ!ݹ(KrHIfh$Rŧf>*fsƤpQNnH!,V7 vo?hiݓp@:VP}4 qD=nldwv)ݕ-NV&R(g,m|@A5ܓ΃px/[N/'3l?P@zmOW0򒓈^La-m{ڏνTjx+r.GԗŇ<ɂ/Rr1Fᢸ:xT*<_SEeƄ#ٛK'Q$Pidm/"k,ts0jje67^F@ PX&{&FR5@ò;(Ѡft3.c8v kry'׏P`ci R;E\yz?sq-|⫫$FqUUWCshiv[OKv<^g} Ǐc]ʬjQck_^pEt!U!"I_vbZ: m0@BՎoO~14,Fj)t[2ꞢDD!X"Kı)mDkJ&5OkC[GSejjj _WSVEi%Ab PٙӢH0aR1zz9?[1aJf|'޴{Kw(u5=^j4 R_?@f n\]ZȂ<;El d;J<gI*~Von>afۛk~4$'o!r,* . /d oK6U12a2k0cP"ttjF}64݄LF#Qu7~oCYuO55R!|DMtcocsx*qr UŬ4;^<߿EmhԌ큊Yרi4VDǥ_"qvEk{5<:;GK=y%M!^hW((_ËBxݵgwxQ-6y/%hHBCn` <.>5fWsUwCsC˩jC%ӗ0*/N@wS7\́ Մ1Tx7zPiCdxeDS,*P{Wj+cEnpӚkQgPiOCZ GX&w*-YPĚ2֣3HMz OQ44$o}d/h|4?wbFf>qq\1*s*>4CھJ!1RQrknXVQq?*đB 7i5؉!c ]P& m^Nퟢp=>˜ڏF7JX:g]}]}-m!| X\,+BX w.\uJZ"Jm`#0a4׭!lZqݣ+3a}ndu86'~KFria^7۽*]-6yv?F%^ כּP*zvSߠ}hH02Xw@+$w ڞU-d+_YJmwa#1`o|B۾*Y NQt؋S?"? jk4Pz@3(.ӄ(/Si׀lz Ex&#'9(]BvΚAi*Zd} 3$wVմ`2wv8?$O,osjtIr<ݺrugu/>1Q]hԇ0Y$, JBG#@uMƌz0XS44Bo6hvՃ/*ÎJ$G5J]TVN("Oto1?=4WA6kDA~}$+ӲBBPJY;V^zO|×a8S9{|]ޏkx(X<6H<̜ v{cs8SZk>_SϹ`v\ΌI)^6~3/.B]j'ػ|,h)]t/9 mGfI4N*PWSſL1v}Ͷ?QşpM w"r~ 'mpw+M7|h%K^gwkfpg|rф~,U}tUܿnmuF ؔOhhdofUzrnnOJ=r[g{wwqͨtƣSJ}Qޓ9Gx\.g*h6tg<5UFڸCOV Eȅf 2h̚**Bʧ3>l_ϲ?KOWV)+)?lk&RN sQB*9sfjq#KKđKy+HdǓ3)_cKy|,*X; f.b!|G=_; gWv.Kd⑧&i|ي1„mf͚}GJt^x[ w|:8w :xMnÉz(?Dߙ巖5gX(!)Ҵ'!EuA)Z챤Wpz|M?E>oD9_'7^\1Be.D_merGCIAkQ*{mk09 ~)L CCrG/+DJ^eW; Q:ܙ|;Uܵ0hVB)}=B!+B!m$UԈtƟs}?qQq9I}-$jBcɈ' 8q&< vZb!|5 ~O~؉b9Fx0pOrq.vGˆ9?c[d>?;6:;4~ /e?dxLuлdɒW93/ 4.z,Y’GbLaEu!ҟNOcaT`y'^̓{y;;@g;8J#ā`m畿%otQ󵞊-b"yn~J` |h1cGI,L8QȻ[pkbN_`il?5__^~dBs W1]fd Q5p|3ۦ̴YSrf=~>햌ϫ$&DnQ0X"`t"cx%qYG$SN-DNJ:nR|֩OVֽvg õij/i_M_r/ЖO.:XϘ@zBg߱zSfu4ul;7iK-\օyO.@Sۏχp dyաr?R#%DUfGjwD ')kh QI<FV͂-!/J x<譮90u/_q<pM$r->=@Ocw|FqX~|]= K<$6%??ƤF*Dc8opxƻBzsp˔^y˿<߼#/&m!ç=#zx'!]N}Lo! ?GxV0fjPhZ'ƂůI>Fn98wŠNM3,Ɵ܏`S *ƧQi<*+Jv՘!\L:+?xxg-AA]떡 9(f{MS,=I>NYQu_8 W},y-_y>&1GXa.K睌.M?%5(}~y]l~#ᣮgcKNĀG2{]3sUytM Û9}(y5R'Y=Bfv* N)ث6%x[~; `^X|z+~v~-QHz ?gӧ_P]k=Q?D<lzvUM3gཱི_EZz'hE֎asqBHtg!k>߁P#sӸ^Da#wB:ڦ#gvdq|\wܽnQ>i"E2m<}T.kl{)(5-_T4 ~<>F'>CXםyMˋyNO7?K:ffݛK[1T1uQ20f@Me)o,dQ։wgӊ"vg|BY GC!Tk4OcRw FW5/;E#HwrU5HKjŜr?xgz|^D^Z?䕏xyܿeН|b_޾(:瓜 H"5q^[虗z:;vZ@8{;oe69]ԟc2<3?[4(it6 ̝?LC8o eoд*^9'?N~c([F6%[:‰=q fwRϥw0d#X;Ftl!胰$L&+ͥa}ex|AZd_u/anV@#|T*yyxJ笤Itr?+R1N^/S-|ӧP4{`Nbpw]PHyyKZ~M̹>;TSw67ୠ0UD017_FNylx,iSua\a!~ ߇X^q|!!LzzoǓۇA}ۓ4|ą'oYkˆn7gr٣U <'PȢ{&sTo&=y=c* YW\Iy_{_PDFԦWXUaLW͜xL;l:q͸h=k9sE>.Thq hl2X?7`WrqYb3aR:go }C8<ˏI/v)σdx1gN_ywT'SoEytja*K3NƼ:/F:JtOhk}TfjܹHBߏ2Gxr4g>ٿuJYo SG]O1AEsKh%+bAQffO\?}_Pk2w?o+THEg;W^Q?KSB}0N}r^j6>ᨣ{ޤHv6'0QX~oa q0Yx6c3F%hFxu+ǘ11u?\NW%lx.ųGרrW))Dc+>?AlO_٫?OJҮJyv`[7uۯ$' Oo' YYd5 m_s:4_$gs%:[h]F\KrEi"K֠?\jv>ERi҄=!O'>E?WU_b^G), žQ|j֭Nh#.DE).ŵqκ;0QuQ [/ o)}0QTh~x㈊6R ˹yx(I!JЮho }n.姝5հDD$v_5Wnkħg}ι[&O iVdmYAW7eh96}~Ǐ*J(&K8E40oݵB0ew"USAAݦ=؉$ @H/ Tvz*ԩnsԖDaL{뗇6SOclO[>ʩmo T=IBZ"QSkDEbxk)Ƶ@zZ6Tka 2,E׍pҼ.$5ջqh(Ge[rԝS%n7~I3{Uga᝺TŮFblg J} .:llU*ss[OScgr5saWVݰ-5?zhnl^ 1f_P"1o'`2P.j{Ct-)&" xJ8 H,xqx&^,DZ 4}nv9鸋ضͻ2{Ѭ^^t [MTQh>މM7a`ÇRjr?^F(k^ԺDV ]oEcDIs546ɰ/e0\VF0ŻkVڄdnIBx і;% k;eۆ[wFu;E3Bm}B_sH'n?+jQ|_h IDATD '..Z %L`}qM? ?kkï(h O8=k]DvRQK՝˭UgVGLN zMk">O釷cCm|<*ᘭ-!>B||edVY9>%O׾u-?|PT;m?]G4foM|+->& xx0an(b̞^K{tF~fSwA/@(qݨ`4pV=M\̯7\?:eC1hU0Eþ;қ>7Jdr 唷ҩv9t@IkqҪ72?Ӈt&h avqC C,B1=(ь^{/'jl ?']M7(Θr L9cmHMO*>R!ǯ9DbwPݖ'v|7 Î!ٿ塟h~[u/p[/a$9ݙMJDWq.?{iK#OSjLL~ЫQRG0T1X \fb9CD`55!_ºRI'4ж_mxmը{f;N"IueR1& VN-ͮ? Pc@ԾgۉiuǏJd@:y^~kcB=~C? r,@2iw'G~~3H4s+Fғ:>TF_ I$k. JǤ`߸~?_VL $^cڥt7)VAҘ >&R6n|x>c[8&uKfNe܉Cx֜<;<Ξ|?Sk^^bRї.}$x.dz?] >R!ǯ;Xq Ýۈw=7maw/:ǹ68tBWq0-ls5sʖQX6}}EK?),b2hV|4{B8?xO1C7㲙xM%{!LPE-#0)g+2a(I?t?nr} ܏_X^oln m*򱅏fiSd!k, ᦹDIZ $,ݎ6sn3s8RPP#iƐXtAgyM=PZ?{syfTG3"5fN6&:>a2 |:~`I[k(i((~J\O5#ּ G鵂?m=?{kjCfS! LkܺFzFaiM*#{Aw.9Ù8:g6h5f8g u_WՆ[km֗;GĈ!oF?&z56~!|t}ƤF*Z+6%[喓]|6G } ;}G^/Y?fͳyxSH5)5˛ɼߧx\ [O9rb P\Žbɳ0xY ~ٳVE!%=~oH[>ӂ\qfh)l?uoh{^oɮ6dzOy1\Bx櫬.FOx㦿؋` ^)gފ'Z_x1k;ǃ/3'12nmt^ZOeI{O H=oͫbW>oyl Ulv/c[?ᖞ~>[]J[ރ1޲cm_o}9>}V?A:l7d&+2g}֬Y-ԷovZ_G{kQNcS͝Ħռ0NLQw8j`9簤>|rg>OyHșF7kx<3L6[#ܐnj# YK`& 鉾sV9;Y4?q8pg7\FD飵;߃y~VHIEa+Q#Ѕߘ{M$Qr}k WsvLk3 t=)WڽzRkοP'~ ry~VH;k=2<;:LrL9IBD1\`@[}mB'aL`Cpq L&9BH)!B&H)!BH)!B6 9Rq9IK!ZHi</ɇCB!TW/N6E]}X!Ӻv:__Kcl4 !ȶG6_S[uH.<.Qz !∶;j.qڇ/I?h@K!g$*999x)\'!U+B!>M{M{oB]6 !By^HM|j(M{B!8j^/EcpiLB!M{'S*)X+3)R !BZԞA1)7%BqG*)5f8g uXB!}SD3`x'|E(!BZHS+|f=!B9j(MN,>Λǂ'0B+gϞǼgӵCm";;jbFO¹IӸﭭ@B!H'%Kϣr!^؀!̍IB_sHےL$6/$bVN}Y%x۹B!OIH!ġCP7,Ft?+mӬ%ڹ|t-P gNKXS9k^Dv},:^3zdCBSr|D&Rm|EA5M԰h-x%]ebcN"vP4Je6sPU;Ox_Rެm*hI/B.$ k5 w%p]̞ϞNrd6MJ7so5(*"Qy|lprˮ [THO($&v _ÙT7~?4M{J <3^˪BLL]5>/9 t]'mJ~M]aHO"ZS)":L!aKPn 18P+}XX,X|VGʒ)Ēك|[ 2yya/..R I-L بTH'|5'EVTd/\p,B.ҽ ĸ90QTƚ-U*B!!!@L&%ANvuGyf )ٝHA ?$)`4wg󀝂m|xvq 8p[!?0-~_}؄Br$:(0J'|Opq^ʎ6=( WY!j>Rup5̫Ƶ@)?>3 'pW2~(kB!DH4fkaf!"N&lzPn6zwi]]F LJyO!~D;Ȫ0 EQ~a]+{OY%v#?#tnF[QA)!M(hQGw@S,1TYjxrBN=&&>f./QЋrY!G93?oaGy JT h#j'+b˜`Wڨ9Pw+{bM ×WP B!#THθe'{ 'e>r>s)\z &XW;B<2`>z%'=pw#ɧ Wr}t]A5+&BeΜ9YZOw> iBтK8V)!}70y!X;HB!kҴ'(޼E<~DDbB,IđGbR! =!B6DJ!$B!h#IB!H)!Bf";;jb!)Ԟ8H<<«t+;`IsW[_ߗoQ2*B$"d>\oȎttO4[LCQe'nw\BdH >o>B#$R"$~XDe<+zB&)>ʎ+epv}YJe3eo>6#5>_^ t~>j1mPz&}[dIsbYRMoqޗ7k )-+^ҤXS9k^Dv},͖~Œ^&sȮrr >]!DH"%BgLbmcĤ X)dc Ee N_T`wr<1^[Ed斯)rYzKgS16 DUOK'uQf\t. V^2kF I7^-2oQ!^VILrे3qn9t!'!9*´F[<&do%(dr7'\\HdMx~.T7FT^.mle请˒ Gj"d/\p,B.ҽ ĸ9ȉ%S%d7'qÈ_\Hi]2[6;^[EU 6]!Dj}=2puh>3K .WM/^[j@q0V|Ї)Kۅ1LJ'%hq~jm IRB!ZKjDRJ~l #D=-OpJy6f_KThkF@a6Sf%f 'x%Rv4 !h5ID&(^Mk2,N 8hM/6|qY~-}N{м<=ʇKIYj|-y 6]!DI"%#BifڋuM m"݇1`m1^Tmɰr}URbyrc!' ,?q]Q0[}t:U=S80v'MMt"%g^Ön.MRPb1''bdEQL1w ۳Pw+{bM%5vϜ܍ѣ+UH<9|c!Ĥޟq]1 !hG'84?A U9mY_1lUN},|D}8gl@ 㝅v_y1燱Z}0q =΍I}גPl8P+Ӿ]-݋ѐ Z5v܅Oi ^1 U54B9sfjqO< GwҴX ߅ج',]w}4 qpH۾c)Ҵ'A#۹!]IB!DI"%BFH !B$RB!m$CberQJ7Û|V#BF*$ux?eʄd@B!Tht| Jr7vEB!DDUt|.I꣄B!B!DI"Z\!u$j wE!I"* b!I"JxX~z$:DB!(Y+NS|,zz:fR !HTv݋?(v#yBqDUTQV:p{B!O)!B6DTKuB!$jC=q٥oB!䩽XrL?&վEB!DD*$u^m+-{B!@Ttt1BqH>RB!mRn?B!8HB!DI"%BFH !B$RB!m$B!DI"%BFH !B$RB!m$B!DI"%BFH !B$RB!m$B!DI"%BFH !B$RB!m$B!DI"%BFH !B$RB!m$B!DI"%BFH !B$Rmd3gXMz7蟚+HRx7Չ })^3zVM >5tˣr(:e<`oК8OFph!ѽnwKuq-|yTߛ<;H(_?»]M1ɥ &ȶ.8gȎ.O)ly:> 9hCiQUZ0:/M6`"G 6}O .nb ^"ïCƯutQMc&e0A nP =fCcF8`Vst'Uid7y6ox?F&t?qU*P{禨n&t/1d'1;7aTsCbƇqfٞY=8M$r*y1'R[u?8Il-(/Ov]q>5uT3, Yëj?tbDv#zep1w9{`L؅M Wf_um cEݝIϭ/~/k1/36鞔ŋ 1\EiEŊJ+ HtߐDGscjXw" ^Z}w0ώrWƨ1Yxl<59&2ΪS㥝ZGQ]L͉T͉NLbڦ.l FFz9H^y1^TW"Ӷub6!1wC6+yzp1;0%71^%B1{Ɔ֮ ^_x``&շ;=v'uǖ]%+*fp`F 3܌ ӛ8ш5׬kt15T4qcʢ4g&+_BZ3z09frQ?yL2Ifg&PŨ"g5t/?{U6߽3ɤBE%.+ ] U@ ,` X("J2i6}HB$Ay<9sy{s{SIUa ڻ󻡌)UDk.~3K󭘢KAEpq\My jHohC9_tzg9Tz{UG"N_ ]>-?ĸ\fX75{~Umz:9)~PBh{[oڧICӏ}TPI)'Ս57MP"HOXNC1H2usd? f^v8y:81`3VsVoxBF-40.Za[f"UQP[kκXXCR+h=d %S1*z f25m O@t~I!^ Q6@&Ñ@ƁkL,s89aZG> vs(ę\U6+iJ!u#U@8'\Ko|6#:V"Ɗ0"]:&Ñe&|Xx-z;:MHH'y\cw1]4!c/Y6b*1*=F8 }#TVY)TOK 5}ζߐKTxT* x|&"!_(4mR-ؗ=iokH_} {G\EVmIoTɏ1`$/o `AY#Ec>L,QRcD1x0sa0zzTutz$I.;jw%)TX)SdH Vx}&*e1ր] eY ⊸o>T7zIAH%V}NƹH3eGﷲ N4z6jC2k`iN"x:8АL*_WwD@iT7 A>¤զh6鲍{+'TkƸ\짘fJ %3V}@ZPBh[?-m޾BO-o[8R 0<WY/6SQH(D&<ڇY1RAQdȬLaQQАT?av IߐBX6/KbhU=rGcTHGq/怑"ElLxC­GO~m MCyT OՑ,G"V'W.TSڨh 5%$\A0&;S%J:Tj BH2}DXȐko ͙ͩ m;@ сb|6v vT%򽹈);3@TVm}jvBsoK}?Tm>+طӈlfU%&JoU,ݬ<~~֠ jĞBw|?@h%>30󁕫xuߩXnbU#B(ڊbRmf dp{ zd".fJU1u zVꉷ飢2Yr~/#|;M|mM a/?mm޾DnIjͧin HiB{t9)~6}yQIr/C7b#={1%a.N)eROSh[ M™)N0$[,+\H7lLM]<7Q-83M07##B\/$8:"^>*~?b$PZ=cfB]^^[EO hnlX0+8?·5׮ k_el*ѻSdRPixIѭYѤ7^q*eu1⡏_/~Tba̒Xv˹:: 4`il C!%ld2ya UhzIZH '%9+Jul_BoHӤ+jP[6~Ԟd/gG^mIé8ATawB̂IL͹2&DhU+'ڧʩvEV˓7eWfbEGVyf[<5YbJj&c/N*c"$JzR(Hx~ҭ)&fѷw6o'@yM4osm#%_۩_Uʜ8N[sCUJcy 1 ɯ4cNt0 %Q,ȲQV.}q7vYiN䯗ܙ%۷=;{}"T E'!O~Pk?ZhR#g#-ZH7o^?9}BG ]IVft@yW}yNAW!T={Æ -Ϟ=[D@ 7@ 6")@ 6"1b榨-@ hоEDJ GJ GJ GM,JbL3oa>a;W_ <*G>80k7V ~:?@C,6o*ʉN`}B F'sdտ#z\&;Q؇M_! ŒFޝ]O;f귍)_OpڂXV*ے}6IXc_s׹(fݗ/u^|~'lP?QW"=?;C!O3W tdޫCxTCi1 H?\!eSo3bc^Ѽ|AN} Q h;‘j%:S%-e !IT:KHaSGP1P( O0^ۗ7*#7fS]wIϾyts272%B[?߽*gG1V"k#/iο(tVƌd&p[/IL^>9e❌T5wwy,L/2DePRYynw2 5Ab浝}H_V^B>;ydsX{P[K$LjSszJ'Gm˒)NNV{33{mwDiu0W5*г򓙚gPR&3RX3P:~4" a>oxTk0>~hI>ۗO+5"TPI)'Ս5MJo YB~)QWøhm|VGBan5*gHN8w1ؗ,-_c lsi(ɌC 7OeBU{g㻊0c%.Rm #ҥcI {8':@fA*sbecjs)R HVV`bU V2^#AV_J> EGPS6٪] G>X0sA7qrp$z ^˭NmD%b*`s+Ea8T,vC1fNSq,$9 EO\ @%li}pv H?l.lKz<$IzvyC0J$}ƭˆ9Q8-x-ljNVvT*JPY#Ec>$QRcD1xj4aqpmDMT +AXWR%$Vryp'Us7(RV{%#)X@]ʺڟDny%jFU}QFZo|u=|KK ja2N#ͬ)VdYMUG@SÀ]pSF\r+׎$5JMJ領,+r]&Jk)Q\=SdŲ87u| 2k`iN"x:Z!4Lu(C!LRD_wPw!^ylsJD/HәJ_(}Ѣ|R[j_}GJ3'*&JBEdֹi[m@kA !gcW]'94?U At`IV5seb$yn mV UFy}b$ȡ1w-( c-cBo>4''&TGo'NV M.d|Ar&.fge*[.pVUQV,XTv/􋭢 L4B4%FzcJl \Sʤ_ԊBZJ6NdxC-S\w|MT.Όr+Ȉ3*ƍMR31yܝT݊]MzcՒA裏K)Xdc5ߜvk"٪z8"Qj}O t&bjO #/Ҷ_6eWfbEGVyf[\OM,o$SJ 8(pޚ29'L7TuQ2,Jlp& ϤsZ!f[h~;P̬95JDDK_w4b<xv䝰T~ikXK95ori{p H Kѭo^0t&PO: Su e猽h V>@:2^S z3yc_M{)ԸT@yi:3#!c]6?VӪvDGC< ySvRgdزE= u2Bsl=^Jw_6c(>-~F~)ںؙsry'GwR_>2'U޺<#? gMx{k/Q\.~$cҁlFc2lT !؉Hi@c7_#|g̤sr \۱œWqBFZOM_0oIf}Q}w3=p+O}+f)ٟvb)wHatR~McymnTSl۱7g/0cL"̈́{s7L`p]Gl96Y)·lٿTOG-{sZJ!YO-v[ҒtMi]şVngqYw|ۇ\'k@ g+g'k?{K*Hf;{8;NRɍ/~VUKmTB};v5Y8O;p5O8.{w;_iTƼI G ?ԮD63T≉P?&-yHK|;WbVdlCHq2֠? Ӆ_KR$Dd7 '5@7H;u}xuYyE/םʌ;ѣn/cٵ{^6zlq|/[x ܹ'ھ }n+w-f+}xkqx}+z3_(n(OI IDATř0ln ?{Ej~qa@2rŢI3JEA}T7{.1qVF(?og'ǝ{'-:2>) h,G⚁[Y|d'_#f}Ϛ_5 =4s|wSՏLܾL~r. 7|A1:1¾}ۯ+#ǹr S{qS0g J]άC1F'[0xp_Ƨ@9<,&̙Ȏ{a></+:45X*qDEY/TM5k1?= EM}e LgO@NC{ےN=!#1:"Z)T=,]9KXŨ= I~*qao+ '^${j>`9+"Q_v\@ǰ3Fqs|!}sr=;],|m:6S3aQrR@23{ɛ9gF)#fcE nZߜJ x~@6z2WϾc<:qK/oݔϜO juIII}L=‘҄/UkKavDriɔ]E_ge=Ə%(l&{| N|d+*;@Mt|v+1۝ˆ2K}$^. [ytɅ|r$Ib{H-eٺ]WU$ wŇz_8*sHC P5:(v7ߦV?2k%D> V = F0dk΂ϋQɌ]Λ&I?y/ou@Α޺~/[sDFؖm} h16{|^/"\,6+*PՔgU>Iz=3RyX f)(JEek>eYT+.jrwLA TP:4K!x&K_)FEu>jҿē >>^\7b^afouT;yr?LTFQƘ8}vWk{8MS>Й$/e/a_=VIYVi]}E݇d/hWam{N0g Z% KzroطoLwCgٺ Mgn'aqnxzI041}u|i-:T\^-\v ?vIII̞=[8RZQ7CV$LsbJ<  #0ᥲۈ|'=-W x'UQ<OŊW`[ÂV_IC oo=Da0s,~1EI{wM~O ciIog-Qw|]#b!,C]W+mٜ44.!]g%6ek,x%4)*R&ڃm$ 0 !Q S#Bbw3 'a_J_"D_q q;ZH JRu2ap]a/pv :W&W)?8nxljxٰw.}#ݒR9~ǻA%K>kLQ&dl}FԊM,ۡs`n5 1kGx͔J5KH>DFJ({ ӗ~: #AzQ#oYCԮ 5#CwF:oa?RmRbܻuLQ,|}'~H46uG ǟGs ?evP)%(,}>$iFۋ1 g}3.$QԯC&G k]()uxLsnCh|\L1ě*؟zHa"!n63"zW8I&>B|ʗkwSE @~j[DU%i̼{ͮyS{1:&,6 Ծ18u^[П;1?㫞g{q+ktTŐ̘|Ϗ/6Z'p۪>>#B.vdХO02r҈{: :YNC咟^T09 ]p,y."HdLX>DꋩrԭCņMC|Aj򷌛?yFG>ٿoZ?+lP`y2˳29G8Xs?5(~LM^MDC |:.|9Z5쯅m_fsXJu6+$|+q5/1]d}koy\>ҋP*+IcA;^11.o ]/QQ7SjKol>XZ{뫼1\܇/kˑG'xUC$ Y{˰z< *)/sp"Kmr$=pϼo$Oߝ>PGv%5"W2BO[^fØć\aB#G= iѢEyZQxxx*t?Ϫٗn^zEH$l|VѝNoj|;u ,^=.[YGoq[3?)Z?-Ϟ=[Q0cd?;'>m06gF+&t>s˂*]4ёgsGL ? ;btI$I1;X=?qk??Sڎ쏦qGG[GG֏p?<*@$~[ XO`д@ G()@ &k@ :H @ H x_1$@pF-Sytv;k_$]t 'g=vR.N5w6fm&w۱ozBj}LJf:Q!P2Ɏŋ.Wѵ)91wz$1ѧ?{ 'r|MnU’f* ¼qA>w*S y|h=$}usj5;x>_J ]C< ySvhr݁j{qѝc6;J_Xq9kW_kxl"#4v5CdmA$jŷw~U/wemy@ G yyyyi 6&H.~4cꜨIÊ_ ^` rÇ2*Сyu~[Cַd@UY8R'ѣn/cٵ{^6/Xoc'Ö4e o^6;vUKmTd>LƎ}\~fݎi"ݎnor .,fv;?~ Ϻ>䂸гCIR3-[F/sV(-v~o ~v;vN~Վwn9]͂ewpvA9z$7=[я>/qj!wOv 8BzmŚ'Gw6mWSu/1;Kl~XQΠqÈ<Ӫ@ KMgt̞v~ @sϨ,^:IS_$/S S]kpCrɝ|S sލ[߸{LC%r)kdL)5z["Vw!%0!+=͸wqeL =h[?MǸn}X7&s#qt-]v/+bcc-fq͏1_w :¢1+5ȧ+B߽G'NvpȜK35moba،h '罼N:zo[w/ve {c2-fZh(z}6\O.zx{mY 4P'THqS?F0@N?AW9Fd Y.NOS?[,߸_I1M;T%Q8(Ak80ʶL>kLQ&Kz+`>hЖRm ՠnb!8>`r*S-P 4Qk^9w̲ٓZ$Ć785p<G 4@>J7D IJW|!,cÛp߆qe3n?w ֫7;S7qמ膜P1$2} g0|uhw"GIcv}P=[ϕYWr!1XÊ8^16p$S k )2oj"!X3"8_϶ur.7='ErV7Ur:~Uśwb7COޔ >S )@ tqZkQ//Jy F먨[kX<~~-Rgf6T!=0F'3ք%نA2ڗ>9N>>a  q:|%YTZʄ(c 1"vׯYOrnJ(ouGsɉ~Ρ@ jh_m#yx#yL~z>>6*\<3XvSʁon} n4c{ )w+/=87ϞX0+n~$Ukp|u'WXg-UYlu^'fBxuk,`,op"nzp%NM ^f el[:َ̂/1Y]ÄuC귽%kVfpzwu0sWbŷ0*5&nn@ >ҢEy#$N6j>+}\7Σ+w|':A) .fu̎c@ cP]]bٳK; =i93(z"GfkZp 'J #$I1;X=?qk??']b-C VqTHr<@>'6:ڢ @ ]#%@9rd$@prʐ.6@ | kmH81h-@ YDDUpL{}}1MNw?>6.:5ug~T6`6^KdLGP$z.HKɽB! "RI(ӟنB@Х6%5DE~l#P7g;u@ !V[u}p IDAT WCMy7 ׿cOS\#ǽx!{_WQ$_C׿ZM ~ N@ #V"{#S]Q4~Cէ4HAA8RZ g QO߲;3~{óP!}GGQ TzBoRD *XxQ(ED`|ZADD$"RDPCz/d{ @fw3>{C_A%C,W|;.oCD T?IA|4i-Q-g%9=/Hr|EBVMAv˞[wQ4^߯*;"R4{+@'UM9Nb Bg_ ]@'?ϏŸv*Crw{r>,y:1a<̋rZ`Є'KyӏaU(~O=qܵLQڝ2L<8/< >OQ( %{?vaA.Z"b7; ]u)ʼn>7^FSEpzc`җNc_9kde ]CAe2$#P8lxLrXcTH)[AEBnywR7:̉)}*)Ł3w Hi[b`D!;4(A@E Iѱ|kb p"2$rOd\RwDvƮ/PlVdUjצগgr_;=Y+^njt p@g 'ښZJG yhrd9`uc*.VW9k6,bܣ#5AA@$RaƮع59VcHš3FnIyZL6)8J ص1{?=AጉD3H)1JnV%۴"bRSUGM6FL)/U#gRl`4H gL$R^a j,FDQ.t濳cOc} ci?QP'Ϯրaa"҈A4ge̙+. pQ]{¿#c3^?:W9vA80w)Aѵ' H"AAh$H  4HAAI$R5->Mâ m (=_24>$8Εm޿dVzA7H לX?)(i#W`4 H!N亿"pJJD$RW\rR&x(zDI[ΠKvX|}2Bo#ЍM'ϮXiՏ>k'P3 ef囸Gݾ"eJh;89 OdG3h_UwD*Ih%[+ہOZr.i \=a */d6SGxRMZE}wKi˙:u iNA=MG&<%L?Ve `I'Oܑ}fsaAe?L)+ߌń:7ޟ۾ @Gރ#`l+ޗ2:&U$biyp,^y|zQ>i3`M%]K#~ޙ0Is@ü*^4 a?0o1*E5~rAD"%xOAa,؊\V4W>J~;59mf! H'1O*K:?7ۉ2`NLAVWH)مl(DJߊk. &}4Vc|Jf\֝59T&C:sxzV BÉ(#ǝ'%1fSK+ќˇXMzUv%Wd+G2y?MsW:+6+J?[TQDIK-l}rRt,9$Z-cˏ;I<-AJH S +pgnɏԗ>#۟(S|4ۯ -6WRdc|]l@p INcK1۟hkRNj BDJF}15ÌZ5҅w")P =ylprZdbcF|q[(_ٍ1O  &)I BY 9M$ˠ"m*RhZlOjxv }6(SHtin-bݼ^]V3H)1JnVrAc3gOJoϮQ.+nf-k5򨌹 ^c\9B+ WS|%?d4ɑi_NIB FIҢĢveд }lpJI߾ 縱=r}<_Սvy %&CAqD/1z`6ZҤH9v:)8 X?Q b9a|5XÎiwNFw= 9&,7R|@.~\' Oҟ]rX: m!cd7h&']}`4 gҜ9s3g+G|{Ld޳,0_AΟ7ֻ|ɢkO -pvY0A1Dמ N?Ń B-R  $)AAF  B#DJA`sl饦 i-wMbAA-R^sy11D* H4-{ .  HDiu"iE{  "AAh4H5c. B%H5̆C/ pDA@zО pD?2`M.  x45NV<P>%A|-R &ee Km>/ Fe_`?EAWEʁԄC H4S|! EAAh$ZL&.  EGH  4Hۆ+\E;|E.;rm|5!H)',b ;׶գs+2MNmQ_p\ up:M\€W 6&l52r`[^C|o lI|p#+w[ **:_҉1|Ex8s69yyDj_1H$RMF"p,/@gC?_dʊ'#Zkʢ04 |Gt4u:iWy Sc;ߦ,ɤ`BIP?Gp՚jBK%o/>2!ցJC|ƿ/ lIwG sEJsj`t[Cڳjҕ+^t14O!]x'NSXbзo~9K ¹O_l${;8r|;i}"zm+8Svc{1K9N_uFyԝK ¦"Yg V 2Y㇥U$$4#Vs[s90ޟIy;v+8/e;n__gkN"u)N6w{AFFF9)L;6bNHv Pd$ TeXuzgeKfwc8nUZOfjrK8:pYRj:EhQ({~5Xb]Yw 7wA8GD7|z|m$obW%ߑ _B@Gf~wM精fߑ|S Q> 늼uTAݹk8n;%,Q'ao/P 9$]oGlhr̻ Xk$R`ZI@ܹ|Eg&"/]wbup qw `4Y_H_K=*c>q7HzDs_A\UB@e\KiH`-h˿2L?/ mM5/3o ب))@^52> YÀqd3/!w),mRq]s=<+ Rlg֌in[8/zG2G6a:ZE˶!ܚʲyr=Ku6 o7 ]c+ļ9VH7?5jIϏ9J-BX8/gzYHIi1\M|(:q|6I0͵Pzt ?Hb0#G++ng99i.pDJez6O?MgTf7*ti%ˆ)d%pmWӽkOt[+~Y%eS(1E \C)zjO6*~x% .]zVʼn(VF_9J4DY3Mj v %Gw)h|!5)Xh~N,r$꘍a|WR),0˸e79e6ROjɑ)(Snp>ei#fe(;nrjr]sط#/](Rv/*+-t+:Fط#r\(XziMQY[JYk%)F6[ 2OS,l,V\&I]N{~P/kL>˰qy:l:lYD nPq|3]4bkANC&$/cێcaܕ&8ld LsK+&9gBNW0'|N azť8 |ٕUb|0 hUnr#?dZas:$zbn*[7 K>Nb!iHhK͝U>k2hˍMR@`OD7б,KPl+ZkKdg۱Qj''ƮJu54JA;(]mͱl+HjOD}N}~"s4~b23hU#~Y+r8Pq|J]*,爸IRIM$\d U>goɧ+9Pѽj:Z_Ԓ?\HqlEIىZcYѢ֜& RleU쥸v:NXʋXPث99d99Z^RsWic*:tiVNbRD%42[53PRk)2e5p;]XZ_Nj;[S5PHbeٍ=cOLurɵT㯐u4FtlGK瓽w˘jq [t.38P(yQ:ʱpNDs5!~9]Jҏsj>!qT_ل4J(4:P&܊SI˪y$ٌ.U)CF|Հ˂,QTP%i?WGgkPkⲓfW5D:~13©n)|Q\cˊ|7eX-;:V4us"+L_](j Yʟf5ׄk qj.` ]~17`^#W׈ƾG]$dұ,BBCxO\bf#FOmNs~xu%HQ#)5߆Q UA]{PX]Z _5%PdI_+JEkW}e)9E+R^Kӎ=# ]Sv6u%Ec2b+ZP!ױ P> [FWpZUG)O&GX\i߾a3 ٟl!Ok+nۋdbZۘ#-2v2^&v*T&RYJjZПԞ hq.\EO0M-—)hGzJLV٬dO_/anN̨fB}bXe K4urZ^BIQ XE4~|*,SH9"sBHyÙϡ\5_ۏ 4@V`;P%/= + "H?jIOXd њbrʫe+FDp.thƂ|l=UyTV\C+䜕ub!t0GhAZ&|O D\ )si?;GcF^^(EJ S^&G|3(Q@aŖ[2yGD+*>7 HY K7[Rk3?|~̌YgG{{ZƚvnhG.)Ҏ2q$4aYȖ<\Eݹ6&MWGPZ"\`OI}ը%aUNrn<Շ\I)6;[k'k Va u+!O"o$ufbnla^5(fvNSqƄ˚#H HMNe*f6+&Umc_f IDAT׆;@IQ_)硎u_\>ӎkQN9΄'.$"۵fNBw_ўX>v_ {Dc/3Rِ=cvI(-~Ia.&u㈑[zdu= ü E|fL%dsZ0Iwv)*>yse·-y:PEa~>*?D_}]tYC"sE3g2szԻiZ?I9:%24]L:z ^w5`@{1x\y?MJbb"?9Z6y%ބUw6$H|ڃ kxdpW^OB nEg˦ fOԹȄeab"ߌi#7|=gSKx~ ǐMf8uHM+k7Cb%nK Xʫ_&ciҟfWN[Ia{ORr^r?/BQ%/WKt.ʠ!"30q܄̜q;Ms4UN/)LpGV{o_ū, ͋cih.oI1xb$}65N9cj?ԯ$juN6Wl v+gL|)J?7WQJNwcn6e y&vKalN4ʏ@r6$`{ҳ._X]8bsaƍtbmXîM07oߙsckKl2z "u.(JHK8_ۨ#O\DDqA|l9߅9o ݎ?IN0;8]e Վ,f(o,Qܔ8e6&t-LI4 :oIե𓒣ZD"U[Y}NMy"]+BK`OYHbJ>}i8 \WZԞ>7+y@`-_Oԯaw/scaL_ĵh7?$@i׊UUpo|c!kIL\O^ge͚R}CX D׿D~A[Kxum"k_ZCV>z:lc|φDV.x]h<>r&iu\k4NQqu\43qu 3<<-*#\O7$ x#w/~:M{vmHkQu uZS<ǿWqm`K]P 5_WL_}$C% jx~L=1M"{/'XncKp{<7FdH;PWoZ_^ލTl˛S2uX3r#֎Uo-,6o-ݵ{5)HyA.˶,DUjhޣ9["%f1G_8^%4鉺uSXdJ4-7ǀ/]yW|ړâ+ t~EFϼ c=EC`T@%R_ADq=9m$Rb?5AHU!\Tnow^磿[2zmDֹɝj|\!/>6ʏΫ?AU燶%̍},ƿŶܕ(#eP^yv:vfӷֺx.\g"uMA09`v5?MyNfNp]]b }o z0L([ys(FŨV.ߙӒ: mI)[@h}[k$=#,~y4M⧎+ogJfMĴy?R(=d_w^Ũ3Ҿx׺Y۰?/_/ *g܍niWRY2ܘ3eu>Eqel+Si$ $V@pɥ׿_3nٚY~S ,ru-HrO?t݉q.' 9r~Q-c=^}yGmhj$R̀DUɔ# g6wg'BՇɕЧ%W|; ʰz]n-A&yYmt-M1in"O؍7d@TC;^FgpSn\חfK2ɑ 4 ļg-987MP,e+Ǟ8@`[ q"0F1O`rʍIC,[fc'1H?$QU"qz zm9WܕEU#>eGr*/w~Rߊx*|TѪ8N S=?/;5)=~B9'I®O,I{Wv#no$1:oYvSX~j&5M|~뗳%Ə!, Ww.3#nB[-Lr~'Fc'u+/)@cO<(AY1<zZ\-vV/ 6?UPV߼?rQG#j~FfjT$2e٥gBFjQ47*tsMIKycx~.?ӌCWAQP0Խ˟0|c< -$u`/!~m*`|OEw\vз_$vWQKN>~lbEdǿE |lXm2ralބ6ӑk_q#˧!VB)fGUǀv%*3hk츜Qz,v[9߷Q?EȕNnthj~^+T>+_}SnAsQAi%|?R3ls4$Ll.00{0$U6s\ؑqy pc:U|rW'OR~s)nl>G59U9d_Q8xfyx`[4JQdEW*&_7\TDWa2Ԫ*Qߪ)mCENe'3Uӂ݃g\~CFQ!fHze܍8):ϖE۪k6J>Nap9v6ia<1ZV;7)W1Hv1um4= ~)QL5 ?cɱ!tsbٳgpc%2?3ּt̕/SA1 (7{ mlZ1l.PJ_B6"i0hXJ]]:F߶~Lʼ+=D_SU$JZw$ Ɏ(eG , MDG ʽF񳑹;U+x^o_o\t@y^??{E+ADt ]b|0f)5&2]z:W%?!4s8R7PIuv@Q*UzzDx&-2*V*s~S($3`7i*ɏvFcڿN5Ddlݏ0!E&'{& M`;N1'Mϳ@Rق*ұ;۸1c!+535o 2c ov~QS[;L6Lk4YǯR(Ѵ妛 g-f֭+o y9ø?ز8)Wh}^~+O>K9p %a\vMG9~+KP!^bs~)l X6>JV\wmt$߮i& '~V w#}k&17M!)99-:+ Y.T$)o&t"O&"vqD/|R䣉뇏Focˤ<=8sm1tEޓnTJl =zjȚ?Jml*=969(ˠ;Rz\K3v.tO H/Ǻg3%*$fW6ZB'ζԑVw %V _ |u$qiy1S_\d]#aʔtY7ƲoPx`Kh" ahF2ӊXm!9e~~EMfx{W?x<{LFF9 w+OUorOw3o;IO$W\D0"h*I2InB\~rw-mCVnX{* AAtEGm8Qk@<חW 6/QqS?c n66p5[TXS6qDw u;XRJ)ggySNJ<okQmɯ z} ,?=_|ɕӞ2s?ے9H9bGM7I129=+xOC;1/e?T<{-u1}qE3wYq+<6{F6 9S/ΕMl^s~nSIcc.zfnGn+1-2o](nGK6ƿ'؋ɕW_~|GF.zzlb:mɋYIJmQZ{sE|^pr"cH5^M (ZU#)Z6w1?3+'Sکw1j\Kޙ;ώ#Çɓ'1RB--Fٷ"/Kɼ ;_CqkF.Wܟ&U@OƼr'_# ?)DמPI'Ҡ954D\f<-b8־MEs#*^=;Wr\._q>]wԝH#;L0=9n6/8A8+]b  )x3FJMvv9)  .2IԡCkAA.'N (ޝEUq\15LIDAT3+0 "ₚ z4SV=[44׌D-VZvSʨ[7]I $RPa nVޯ03gs]qq֓gҡr<7A:k/0qy4.mw^DZ>;∋G?fǙAD;y}{qfg͓:}=8oߝ; ZԲqѝdⶸ8?5(셨p²>b+_^!1k 6ט=h 8V_FAB2M ];l*` |<81җ2IqL `\fЫ7m3ά!:ylxc$sEo +Y2c.fD`W4NΫ 3e$L>Mj;Ӑ&>Ks㲸98wz3ƜL x[u1#KIr#c ڗ:{Bn$Hbzh;6AZO1V>'p Zwq{N4Ḧ́#zSY<-4zEP"o*:`[zmlx|r&D^l DEsB.{=`3d!ZHlbLu9̕5F`n}Ck#$2s ø3‚^/'ַ)d%@^l/QXQT@GIu;u&ꥑ4ih}cL<Խ4R;9н*g^/1#evrt^, dz=%5&15L|d+kg c8m1pOn6,%\whvI VO˧{ ͵u$ 6]=o_ѤKSl圄ؘiQh8B2/?hRQ2Bb!tLיMx<<񃚃O؞_F IF?څnZŒBEn;j;*͇"v;P}IPמmLhr2V~^k+7o̢0i>z=NtN`ҠFˢXi#gz~|jBWp‹r&G`3*^ܥ?{0H`n~=IF/5ޮ]``T1wfn'8_۔}ܿ9ˮ{栚J*.^.7MmNTO ,_+}l/GU_Ԡ]C?lJ;"$?/dOV^8oEHA0(5zr}@1!bVQ@PPA]$҆= մ_px7mSO V\z! 9 ^?h0U1ձ nC'R9| &?QT1YGG KpF تx8|Q^eӲY5q ~ywY0tk; 11(] %/tȅG7`2("ҍAY-֤H]jV{qkeLq4~d:{|%F-J:FJjqq^Uv3P57PKΌ>2gNYA^[}"4w!nEAS| ʭvLM(d׼ \ngu/@wS ,ԍegmxTLFC `PAXNG %ݍ-~PqpꀊI{u@SԒ[%BtDESj h. /q0?luP[q=CI՞14Z'S2m{c{|ybJZâvz݅h>^c~Kgޡ(>JH*Wr=\ Z,:rVg&9.kp$ A;u:pb>U]\\f;>9Aq]֙QET+/bW00 ntwA!݋d1TQ|}zqQ,v|6]#[zKNYAŀR( N3ݙ  6 @A=T_E:[</mXq[8<ؐH6eAI!f:с\fyð1ˈ u&a>;3K u8ts\"鯤z=\ʳB1q=2?ͭb@ZMըX>gSkٚ".k SuJ_YuOq$TXs̜jaSp#jRIOcBiŷrr[Pi"5TkN'XBnߍUe:VRw~~ٷ6[h RV!w&k'7bT殦o2ueRA iC~X~Kx)FK?#77fV"./c/bqN[Q'`%l^toV MۇzWAEsWֺ6u /g 5W_.|ە?B;S@$xEWjkYFE1sjndmBZ<¹f߶K,m41-w}ܝ44Y_[m؉II9 ]r硓YjI&!h]%zȍYifImK3pct|<#`v%S7{rOlŷäv2mVڿW!F\)C0wg$~ǂ 70sl[4PzK'fc ^cm-V_.!H)>44\y+ ^ bۧrG;~e˺_1U x>(6Z sʯX#l]DP T=j_63v)}0>ݍˆkxƏ*-dB˸DM/}c8'9"lu^M@%݋},2xm N0'SSfA2k%Ncs O,0m8%Vjh,dF{7t-5LXh5hMa8S7?Ϋ{nҾ\@Jh_6%D{eϞ şNa RIor^#WP.DYUryҗ0d42*k !ԩSG~yޕJKm9ITk$