source-highlight-ide-1.0/0000755000175000017500000000000011346257011015234 5ustar bettinibettinisource-highlight-ide-1.0/statusbarframe.h0000644000175000017500000000102411345147505020432 0ustar bettinibettini/* * Copyright (C) 2009-2010 Lorenzo Bettini * See COPYING file that comes with this distribution */ #ifndef STATUSBARFRAME_H #define STATUSBARFRAME_H #include namespace Ui { class StatusBarFrame; } class StatusBarFrame : public QWidget { Q_OBJECT public: StatusBarFrame(QWidget *parent = 0); ~StatusBarFrame(); void setLineCol(int line, int col); protected: void changeEvent(QEvent *e); private: Ui::StatusBarFrame *ui; }; #endif // STATUSBARFRAME_H source-highlight-ide-1.0/editcopy.xpm0000644000175000017500000001123111305445353017603 0ustar bettinibettini/* XPM */ static char *editcopy[] = { /* columns rows colors chars-per-pixel */ "32 32 155 2", " c black", ". c #191000", "X c #221700", "o c #2E2300", "O c #452E00", "+ c #433200", "@ c #493000", "# c #553800", "$ c #5D4600", "% c #6B5000", "& c #724B00", "* c #7D5E00", "= c #6E694F", "- c #7E795F", "; c #865900", ": c #8A5C00", "> c #8B6800", ", c #936200", "< c #926D00", "1 c #926B1A", "2 c #967000", "3 c #9B721D", "4 c #9B7625", "5 c #9E792A", "6 c #A47C00", "7 c #AA7D00", "8 c #A1761A", "9 c #A57816", "0 c #A4791D", "q c #AD8200", "w c #B28500", "e c #AE8530", "r c #B99626", "t c #97906D", "y c #B18D48", "u c #B49049", "i c #B89542", "p c #BA9C4D", "a c #BD9E52", "s c #BFA053", "d c #B8AE78", "f c #BEB47E", "g c #C49300", "h c #C89600", "j c #C19D2C", "k c #C1A43F", "l c #C09E4E", "z c #CFB457", "x c #C9B159", "c c #CAB573", "v c #D4BF7C", "b c #FFDF62", "n c #FFE064", "m c #FFE16D", "M c #FFE372", "N c #FFE479", "B c #A19D8E", "V c #ABA89A", "C c #BEB580", "Z c #BDB488", "A c #B8B496", "S c #AEADAA", "D c #B3AFA1", "F c #BCBBB6", "G c #BFBFB9", "H c #C0B680", "J c #C4BA85", "K c #C6BD8B", "L c #CBB589", "P c #C8BE88", "I c #C3BC90", "U c #CBC18C", "Y c #CCC493", "T c #D7CB8C", "R c #DAC786", "E c #D8C789", "W c #DAC98B", "Q c #D0C690", "! c #D4CA94", "~ c #D4CC9B", "^ c #D8CE98", "/ c #DCD29C", "( c #C6C3B7", ") c #C8C6BE", "_ c #D5C5A5", "` c #DBC8A1", "' c #DBD4A2", "] c #DED9AE", "[ c #D9D5B1", "{ c #E0CC82", "} c #E8D98B", "| c #E8D991", " . c #E1D7A1", ".. c #E5DBA5", "X. c #E4DCAB", "o. c #E8DDAA", "O. c #E1DCB2", "+. c #E1DCB8", "@. c #FFE683", "#. c #FFE78A", "$. c #FFE885", "%. c #FFE88D", "&. c #FFE992", "*. c #FFEC9D", "=. c #FFF09F", "-. c #ECE2AC", ";. c #E5E0B6", ":. c #E5E1B8", ">. c #EBE4B6", ",. c #EAE5BC", "<. c #F0E5A8", "1. c #FFEDA3", "2. c #FFEDA9", "3. c #F1E8B8", "4. c #FFEFB1", "5. c #FFF1A5", "6. c #FFF2AD", "7. c #FFF2B4", "8. c #FFF2BC", "9. c #CAC8C2", "0. c #D6D4CB", "q. c #DFDAC5", "w. c #D4D2D0", "e. c #E0D7C5", "r. c #E4DAC3", "t. c #E8DEC7", "y. c #E0DFD3", "u. c #E6E2C2", "i. c #E8E1C5", "p. c #EBE3CB", "a. c #EEE9C2", "s. c #E8E6DC", "d. c #F3EDC3", "f. c #F2EDCB", "g. c #F7F2CD", "h. c #FFF3C3", "j. c #FFF4CA", "k. c #FFF8C5", "l. c #FFF8CD", "z. c #FDF5D2", "x. c #FFF7D8", "c. c #FFF9D4", "v. c #FFF9DC", "b. c #E9E8E7", "n. c #F3EFE3", "m. c #F2F0E3", "M. c #F4F2EA", "N. c #FBF7E6", "B. c #FEF9E3", "V. c #FFFBEC", "C. c #F4F4F3", "Z. c #F8F7F6", "A. c #FEFCF4", "S. c #FEFEFC", "D. c None", /* pixels */ "D.D.D.D.D.D.D.D.D.D.D.D.h g g g g g g g g g g w * D.D.D.D.D.", "D.D.D.D.D.D.D.D.D.D.D.D.g z.z.g.g.g.g.g.g.z.g.R 2 D.D.D.D.D.", "D.D.D.D.D.D.D.D.D.D.D.D.g z.d.3.3.3.3.3.3.>.f.g.z < D.D.D.D.", "D.D.D.D.D., : ; , : : : 7 a i a R -.-.-.-.' m.u.g.j > D.D.D.", "D.D.D.D., u y y L L L L ` t.t.e.e v -.-.-.Y b.S.+.d.q D.D.D.", "D.D.D.D., S.S.S.S.S.S.S.S.Z.b.S.e.i W o.o.K w.S.A.u.q D.D.D.", "D.D.D.D., S.S.S.A.S.S.S.S.M.w.S.S._ a E ..K 0.S.S.q.7 D.D.D.", "D.D.D.D., S.A.V.A.A.A.V.A.n.9.S.S.C._ a ..Y t = - A 6 D.D.D.", "D.D.D.D., A.A.V.A.V.V.V.A.n.9.S.S.S.Z.3 ' ' K Z A ] 7 D.D.D.", "D.D.D.D., A.V.B.V.V.B.V.V.n.( F S S G 5 ' | / / X.f.q D.D.D.", "D.D.D.D., A.V.x.B.x.V.B.N.B.e.D B V ) 3 / / ^ ^ ' a.q D.D.D.", "D.D.D.D., V.N.N.B.B.B.v.v.N.z.p.i.p.n.8 ^ / ! Q ' a.q D.D.D.", "D.D.D.D., B.B.x.v.x.z.j.j.x.z.z.c.B.B.0 ! ! ! ^ ' ,.q D.D.D.", "D.D.D.D., B.h.h.z.z.x.x.z.z.z.h.j.x.v.0 ! Q Y ! ~ ,.q D.D.D.", "D.D.D.D., v.c.k.x.h.j.j.j.z.8.h.k.j.v.0 U T U U ~ ,.q D.D.D.", "D.D.D.D., v.k.z.h.h.h.j.8.j.h.h.j.k.v.0 U U U U Y ;.q D.D.D.", "D.D.D.D., x.h.8.8.h.j.8.8.4.h.4.8.h.x.8 P H P P ~ ;.q D.D.D.", "D.D.D.D., v.h.4.4.8.8.4.1.z.h.8.4.h.c.8 H J H J Y ;.q D.D.D.", "D.D.D.D., c.2.z.j.4.*.1.1.8.2.2.*.2.l.8 J J H J U ] q D.D.D.", "D.D.D.D., l.h.2.4.4.1.%.1.&.2.4.8.7.k.8 f d f H U ] q D.D.D.", "D.D.D.D., z.8.#.1.4.1.*.1.1.1.*.N 4.l.8 f f C K ~ :.q D.D.D.", "D.D.D.D., 8.&.4.#.%.4.&.@.#.%.%.&.2.l.8 K K Y ~ ] ,.6 D.D.D.", "D.D.D.D., h.&.#.*.1.1.%.N N #.&.*.1.l.0 ' ] T x r 6 % D.D.D.", "D.D.D.D., 4.4.%.*.#.b &.N M b M 2.1.k.9 k 7 > $ o D.D.D.", "D.D.D.D., 7.&.N 5.&.N @.*.b N M N =.k., + D.D.D.", "D.D.D.D., 6.N N M M &.#.N 2.$.%.8.6.<.& D.D.D.D.D.", "D.D.D.D., 5.&.7.n $.m M 1.7.7.o.c 5 & @ D.D.D.D.D.D.D.D.D.", "D.D.D.D., 7.*.m %.=.&.7.} p 1 % # X D.D.D.D.D.D.D.D.D.D.", "D.D.D.D., 6.5.5.5.| a 1 & + . D.D.D.D.D.D.D.D.D.D.", "D.D.D.D., 6.-.a 1 & O . D.D.D.D.D.D.D.D.D.D.D.D.", "D.D.D.D.; : % O . D.D.D.D.D.D.D.D.D.D.D.D.D.D.D.", "D.D.D.D. D.D.D.D.D.D.D.D.D.D.D.D.D.D.D.D.D.D." }; source-highlight-ide-1.0/fileopen.xpm0000644000175000017500000001437111305445353017574 0ustar bettinibettini/* XPM */ static char *fileopen[] = { /* columns rows colors chars-per-pixel */ "32 32 257 2", " c black", ". c #0B0900", "X c #130E00", "o c #161100", "O c #231A00", "+ c #352600", "@ c #3B311C", "# c #433100", "$ c #4F3B00", "% c #4A3E16", "& c #4A3D22", "* c #4D421A", "= c #54420D", "- c #4E4529", "; c #484338", ": c #484233", "> c #5B4B24", ", c #624500", "< c #674D00", "1 c #6D4D00", "2 c #6E4F17", "3 c #6D5200", "4 c #775500", "5 c #745B0F", "6 c #795200", "7 c #7A5A00", "8 c #715C18", "9 c #764B0A", "0 c #6C5423", "q c #6D592E", "w c #785E27", "e c #735626", "r c #665736", "t c #7A631D", "y c #7A672E", "u c #776535", "i c #5C5956", "p c #78704F", "a c #75726E", "s c #8D4F00", "d c #815700", "f c #835A00", "g c #8A5C00", "h c #866400", "j c #966100", "k c #956F00", "l c #9C6100", "z c #9D7500", "x c #856B2A", "c c #8C752A", "v c #8C723B", "b c #977939", "n c #A45D00", "m c #A26100", "M c #AA680D", "N c #AB6700", "B c #A07700", "V c #A57B00", "C c #AB7A00", "Z c #AA7300", "A c #AF721A", "S c #B87E00", "D c #B57B00", "F c #B0731A", "G c #B47C26", "H c #B77E28", "J c #897F59", "K c #977C40", "L c #927F58", "P c #807A6C", "I c #9C821D", "U c #9F8A35", "Y c #AC8000", "T c #B28500", "R c #B68800", "E c #BB8B00", "W c #A78337", "Q c #A28B31", "! c #AF9535", "~ c #B58E3A", "^ c #B88633", "/ c #B49936", "( c #BCA039", ") c #998445", "_ c #978657", "` c #8B8264", "' c #8E8572", "] c #978864", "[ c #978C75", "{ c #9F9072", "} c #A38845", "| c #A48952", " . c #AA965C", ".. c #A89156", "X. c #B5934D", "o. c #B39D45", "O. c #B49755", "+. c #AB984A", "@. c #AD9A65", "#. c #A79778", "$. c #A59874", "%. c #A29B7A", "&. c #A79775", "*. c #BDA959", "=. c #B3A46C", "-. c #B1A07F", ";. c #B5A97A", ":. c #BEB37B", ">. c #C49200", ",. c #C89500", "<. c #CC9800", "1. c #C69812", "2. c #D2A31C", "3. c #C2A63E", "4. c #D7AE37", "5. c #C29840", "6. c #C29B4E", "7. c #C2A641", "8. c #C6AA43", "9. c #C8AC45", "0. c #CBAF49", "q. c #CAA746", "w. c #C4A158", "e. c #CAA65D", "r. c #CEA857", "t. c #CFA95A", "y. c #C5AC50", "u. c #CDB14B", "i. c #CBB358", "p. c #CAB152", "a. c #D2AB59", "s. c #D1B54D", "d. c #D4B951", "f. c #D6BC5B", "g. c #DDB45E", "h. c #D9BD56", "j. c #D2B753", "k. c #DAAB48", "l. c #CEAE69", "z. c #CCAD67", "x. c #CCB662", "c. c #CAB26B", "v. c #C8B66B", "b. c #CEB775", "n. c #CEBE7F", "m. c #D3AD66", "M. c #D5BE64", "N. c #D4BF6D", "B. c #E4B34B", "V. c #E0B75F", "C. c #E1B85F", "Z. c #E4BA61", "A. c #E9BE63", "S. c #DDC159", "D. c #DAC269", "F. c #D4C176", "G. c #D8C67F", "H. c #E1C55D", "J. c #EFC05D", "K. c #F1C15E", "L. c #E0C264", "P. c #E5C961", "I. c #EDC164", "U. c #E9CD65", "Y. c #EFD36B", "T. c #F2C564", "R. c #F6C868", "E. c #F8C760", "W. c #FBCC6A", "Q. c #FDCB63", "!. c #F1D56D", "~. c #FFD06C", "^. c #F5D972", "/. c #FED175", "(. c #FADE77", "). c #E4C87A", "_. c #FEE27C", "`. c #8F9192", "'. c #9A9A96", "]. c #A79F83", "[. c #ADA583", "{. c #A7A399", "}. c #BBAC86", "|. c #BDB088", " X c #BBB298", ".X c #A7A8A6", "XX c #ADAEB0", "oX c #B5B6B4", "OX c #BABCBC", "+X c #C6B38E", "@X c #D3BE80", "#X c #D0BC95", "$X c #C6BFA6", "%X c #C5C29D", "&X c #D2C283", "*X c #DAC789", "=X c #DBCA8B", "-X c #D5C489", ";X c #DBCD94", ":X c #D6C699", ">X c #CFC8B1", ",X c #C8C6B7", ".L.ZXyXT.K.E.wX ..XKXKXR YXYX", "YXYXYXYXYXYXYXYXYXYXYXYX V E 4.ZXsXW.K.I.Z.O.{.KXUXUXMXk YXYX", "YXYXYXYXYXYX R E 7 YX< E 2.aXsX6XC.T.Z.w.[ xXUXUXUXUX2X3 YXYX", "YXYXYXYX R >.).5X,.T ,.5XCX8XK.T.A.a.] OXUXUXUXUXUXUX2.O YXYX", "YXYX Y E Z.ZXsX7XsX0XCXyXR.K.I.V._ .XUXUXUXUXUXLXKXJXV D N S 7 ", " z E 4.fXsX/.K.~./.6X~.I.I.C...'.KXUXPXPXPXLXKXGXbXl.N m.SXm.D ", " E 0XgX7XE.W.W.~.~.R.I.Z.w.' bXUXUXUXPXPXLXmXbX$X) ~ aXSXpXBXn ", " <.CXT.Q.~.W.W.R.I.A.t._ hXUXUXUXUXPXLXGXnX,X .t XAXSXeX4Xl.Z ", " <.sXB.W.W.W.T.A.g._ oXUXUXUXUXUXLXLXmXcX=.5 $.BXgXeX!.D.3Xm + ", " <.sXB.R.R.A.V.| {.KXUXUXUXUXLXKXGXvX|.c u qXdXgX^.U.f.3XH f ", " <.sXB.T.Z.m.[ nXUXUXUXUXPXKXHXbX,X) e X) y >XAXAX_.S.h.h.u.s.d.F.6.g YX", " >.9X~ } u '.LXKXmXxX .5 [.IXAX_.!.S.h.h.d.8.s.D.n.j YXYX", " >.:XW v & kXmXvX;.t ] BXAXrX!.U.u.S.9.u.3.7.i.;XM 1 YXYXYX", " E #Xb u : nXcX_ u 1XSXgX^.U.H.S.d.8.s.d.u.b.-XG g YXYXYXYX", " R +Xc r a zX[.= -XdX_.U.d.P.h.d.u.3.8.N.=Xw.l 1 YXYXYXYX", " T }.x > `.oX> %.*.S.S.h.S.7.d.h.0.p.n.c.M d . YXYXYXYXYX", " C ].w @ XXu p *.( h.S.s.u.u.u.p.N.*X^ g + YXYXYXYXYXYX", " Z &.e ; ` * :.o.S.S.S.u.( 9.x.&XX.j , YXYXYXYXYXYX", " B { 0 i % [.o.u.S.d.h.9.M.&Xz.M 6 YXYXYXYXYXYXYXYX", " z { 0 - J *./ S.9.d.i.G.&XF g O YXYXYXYXYXYXYXYXYXYX", " z $.2 w =.! s.d.p.N.;X^ l , YXYXYXYXYXYXYXYXYXYXYX", " B &.9 ;.Q / j.x.@Xl.m 6 YXYXYXYXYXYXYXYXYXYXYXYXYX", " h W @.+.I y.&Xb.F 7 O YXYXYXYXYXYXYXYXYXYXYXYXYXYXYX", " $ s %XU F.=X^ j # YXYXYXYXYXYXYXYXYXYXYXYXYXYXYXYXYX", " g O. source-highlight-ide com.trolltech.qtcppproject.QtMakefileGenerator org.eclipse.cdt.make.core.makeBuilder clean,full,incremental, org.eclipse.cdt.core.errorOutputParser org.eclipse.cdt.core.MakeErrorParser;org.eclipse.cdt.core.GCCErrorParser;org.eclipse.cdt.core.GASErrorParser;org.eclipse.cdt.core.GLDErrorParser;org.eclipse.cdt.core.VCErrorParser; org.eclipse.cdt.make.core.append_environment true org.eclipse.cdt.make.core.build.arguments org.eclipse.cdt.make.core.build.command make org.eclipse.cdt.make.core.build.location org.eclipse.cdt.make.core.build.target.auto debug org.eclipse.cdt.make.core.build.target.clean clean org.eclipse.cdt.make.core.build.target.inc debug org.eclipse.cdt.make.core.enableAutoBuild false org.eclipse.cdt.make.core.enableCleanBuild true org.eclipse.cdt.make.core.enableFullBuild true org.eclipse.cdt.make.core.enabledIncrementalBuild true org.eclipse.cdt.make.core.environment PATH=/usr/bin:${env_var:PATH}:${env_var:PATH}|PKG_CONFIG_PATH=/home/bettini/usr/local/lib/pkgconfig| org.eclipse.cdt.make.core.stopOnError false org.eclipse.cdt.make.core.useDefaultBuildCmd false org.eclipse.cdt.make.core.ScannerConfigBuilder org.eclipse.cdt.core.cnature org.eclipse.cdt.core.ccnature org.eclipse.cdt.make.core.makeNature org.eclipse.cdt.make.core.ScannerConfigNature com.trolltech.qtcppproject.QtNature source-highlight-ide-1.0/highlight.xcf0000644000175000017500000000620411305445353017712 0ustar bettinibettinigimp xcf file BBgimp-image-grid(style solid) (fgcolor (color-rgba 0.000000 0.000000 0.000000 1.000000)) (bgcolor (color-rgba 1.000000 1.000000 1.000000 1.000000)) (xspacing 10.000000) (yspacing 10.000000) (spacing-unit inches) (xoffset 0.000000) (yoffset 0.000000) (offset-unit inches)  H     =gimp-text-layer!(text "H") (font "Sans Bold") (font-size 24.000000) (font-size-unit pixels) (hinting yes) (antialias yes) (language "en-us") (base-direction ltr) (color (color-rgb 0.000000 0.000000 0.000000)) (justify left) (box-mode fixed) (box-width 18.000000) (box-height 29.000000) (box-unit pixels) j~   [k Color        k v g) ږ@-}G'#xJ-  ƁJ,%  ڵM1" 廐hJ7+  ֣tQ8+( ΚgK7-&   ÒaH7-&"  2DQND2!Ƭ\B3(  0GlHMB4)&&;Egn/,&##)9Uw "1Oa9Pojj "jj :jj 7=IC8950+25FVax7jj{&jjFJHKDkjj'%#%  j j j*Hb1 ?)Q$h<5 8}  $I{Cn ([0d ;l 8Rz ﶱ 履dWN>68:IWax{FJHKDkl'%#%    *(  MY\oĵuq`X?:% [p_;#w    3Xmxun_J/Búv Zɸz`L -lʬv\H?OK> >qT9 Hͺ§zZ9WɵvM $bм_ 6y˻i4vŷiM͹^kԽNrԺd"sĞ[%m٫w@âa9dz}S)˹d8ìoCŭoCŬg8˻V)dzk<Ȣm6ɰ]n~gD>ZϼsX"4Ĵ}eB#ǵiKǰiK:w­w]2source-highlight-ide-1.0/debugger_step.svg0000644000175000017500000000743611305445353020611 0ustar bettinibettini image/svg+xml source-highlight-ide-1.0/.cproject0000644000175000017500000001537111305445351017056 0ustar bettinibettini make release false false true make debug false false true source-highlight-ide-1.0/statusbarframe.ui0000644000175000017500000000216311305445353020623 0ustar bettinibettini StatusBarFrame 0 0 316 37 Form Qt::LeftToRight Qt::LeftToRight QFrame::StyledPanel QFrame::Sunken 1 0 Line: , Col: source-highlight-ide-1.0/assistant.h0000644000175000017500000000465511345147370017435 0ustar bettinibettini/* * Copyright (C) 2009-2010 Lorenzo Bettini * See COPYING file that comes with this distribution */ /**************************************************************************** ** ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). ** Contact: Qt Software Information (qt-info@nokia.com) ** ** This file is part of the example classes of the Qt Toolkit. ** ** $QT_BEGIN_LICENSE:LGPL$ ** Commercial Usage ** Licensees holding valid Qt Commercial licenses may use this file in ** accordance with the Qt Commercial License Agreement provided with the ** Software or, alternatively, in accordance with the terms contained in ** a written agreement between you and Nokia. ** ** GNU Lesser General Public License Usage ** Alternatively, this file may be used under the terms of the GNU Lesser ** General Public License version 2.1 as published by the Free Software ** Foundation and appearing in the file LICENSE.LGPL included in the ** packaging of this file. Please review the following information to ** ensure the GNU Lesser General Public License version 2.1 requirements ** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. ** ** In addition, as a special exception, Nokia gives you certain ** additional rights. These rights are described in the Nokia Qt LGPL ** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this ** package. ** ** GNU General Public License Usage ** Alternatively, this file may be used under the terms of the GNU ** General Public License version 3.0 as published by the Free Software ** Foundation and appearing in the file LICENSE.GPL included in the ** packaging of this file. Please review the following information to ** ensure the GNU General Public License version 3.0 requirements will be ** met: http://www.gnu.org/copyleft/gpl.html. ** ** If you are unsure which license is appropriate for your use, please ** contact the sales department at qt-sales@nokia.com. ** $QT_END_LICENSE$ ** ****************************************************************************/ #ifndef ASSISTANT_H #define ASSISTANT_H #include QT_BEGIN_NAMESPACE class QProcess; QT_END_NAMESPACE class Assistant { public: Assistant(const QString &dir); ~Assistant(); bool showDocumentation(const QString &file); private: /// where the help file is located QString helpFileDir; bool startAssistant(); QProcess *proc; }; #endif source-highlight-ide-1.0/customhelpform.ui0000644000175000017500000000204211312456337020645 0ustar bettinibettini CustomHelpForm 0 0 778 425 Form about:blank couldn't find qt assistant, thus using a customized (basic) help viewer QWebView QWidget
QtWebKit/QWebView
source-highlight-ide-1.0/source-highlight-ide.h0000644000175000017500000001350211345147473021423 0ustar bettinibettini/* * Copyright (C) 2009-2010 Lorenzo Bettini * See COPYING file that comes with this distribution */ #ifndef SOURCEHIGHLIGHTIDE_H #define SOURCEHIGHLIGHTIDE_H #include #include #include #include #include #include #include "stepconditionvariable.h" class QAction; class QMenu; class SourceHighlightIdeFrame; class QFile; class DebuggerThread; class StatusBarFrame; class QSettings; namespace Ui { class SourceHighlightIdeWindow; } namespace srchilite { class SourceHighlight; class HighlightEventListener; class HighlightEvent; class ParserException; } class FindReplaceDialog; class SourceHighlightIde : public QMainWindow { Q_OBJECT public: SourceHighlightIde(); ~SourceHighlightIde(); /** * The method that does all the highlighting */ void highlight(); void readSettings(QSettings &settings); void writeSettings(QSettings &settings); QString userFriendlyCurrentFile(); /** * Opens a lang definition file. * @param fileName */ void openLangFile(const QString &fileName); protected: void closeEvent(QCloseEvent *event); /** * Updates the contents of the output editor * @param contents the contents to update the editor * @param the output format */ void updateHighlightedOutput(const QString &contents, const QString &outputFormat); /** * Updates the contents of the output editor, appending * the passed contents. * @param contents the contents to update the editor * @param the output format */ void appendHighlightedOutput(const QString &contents, const QString &outputFormat); protected slots: void highlightAll(); void startDebug(); void setDebugFileInfo(const QString &fileInfo, int line); void setDebugRegex(const QString ®ex); void updateHighlighted(); /** * Handles an exception message from source-highlight * @param ex the error message */ void handleException(const QString &ex); private slots: void newFile(); void open(); bool save(); bool saveAs(); bool saveHighlighted(); bool saveHighlightedAs(); void documentWasModified(); void openInput(); bool saveInput(); bool saveInputAs(); void currentStyleChanged(const QString &style); void debuggingFinished(); void debuggingStarted(); /** * highlight (the background) of the current line; this * has nothing to do with source highlighting. */ void highlightCurrentLine(); /** * Updates the info about the current line and column * (in the status bar) */ void updateLineColInfo(); void showFindReplaceDialog(); private: void createActions(); void createToolBars(); void createStatusBar(); bool maybeSave(); /** * Loads a lang definition file. * @param fileName */ void loadFile(const QString &fileName); /** * Loads a file in the specified editor * @param fileName * @param editor */ void loadFile(const QString &fileName, QTextEdit *editor); /** * Saves the contents of the specified editor into the * specified file. * @param fileName * @param editor */ bool saveFile(const QString &fileName, const QTextEdit *editor); void setCurrentFile(const QString &fileName); /** * @param fullFileName * @return the file name without the path */ QString strippedName(const QString &fullFileName); /** * @param fullFileName * @return the path without the file name */ QString strippedPath(const QString &fullFileName); /** * Checks whether the lang file needs to be changed before * starting the highlighting. * @return whether the lang file was correctly saved */ bool checkSaveBeforeHighlighting(); /** * Changes the cursor position in the language * definition file editor (negative column means don't change * the column). * @param line * @param col */ void setCursorPosition(int line, int col = -1); /** * Handles a parser exception from source-highlight * (e.g., go to the position in the editor where the error is) * @param pe the parser exception */ void handleException(const srchilite::ParserException &pe); srchilite::SourceHighlight *createSourceHighlight(); SourceHighlightIdeFrame *frame; StatusBarFrame *statusBarFrame; srchiliteqt::TextEditHighlighted *langTextEdit; QTextEdit *inputTextEdit; srchiliteqt::TextEditHighlighted *outputTextEdit; QString curFile; QString curInputFile; QString curHighlightedFile; QString curStyleFile; /// the lang file opened when we started debugging QString originalLangDefFile; DebuggerThread *debuggerThread; /* srchiliteqt::LanguageComboBox *languageComboBox; srchiliteqt::OutputFormatComboBox *outputFormatComboBox; srchiliteqt::StyleComboBox *styleComboBox; */ /// whether the user customized the style with the color dialog bool styleModified; QMutex mutex; StepConditionVariable waitCondVariable; /// the buffer for output of the highlighting during debugging std::ostringstream debuggerHighlightedOutput; private: Ui::SourceHighlightIdeWindow *ui; FindReplaceDialog *findReplaceDialog; }; #endif source-highlight-ide-1.0/ReadMe0000644000175000017500000000367311345151023016320 0ustar bettinibettiniSource-Highlight-Ide ---------------------------------------------- http://srchighliteide.sourceforge.net/ Sourcehighlightide is an IDE for GNU Source-highlight, http://www.gnu.org/software/src-highlite, (given a source file, produces a document with syntax highlighting); in particular, it is useful when you have to develop a new language definition file for source-highlight (Source-highlight reads source language specifications dynamically, thus it can be easily extended (without recompiling the sources) for handling new languages), modify an existing one, and, most importantly, debug a language definition file. To build it I suggest to create a separate directory, e.g., build cd there and run qmake ../source-highlight-ide.pro make Remember that you must have already installed the source-highlight-qt library. If you installed that in a standard place (e.g., /usr or in a system directory where ldconfig and pkg_config find it) then this should be enough. Otherwise you must specify the directory where pkg_config can find the file source-highlight-qt4.pc); for instance, if you installed source-higlight-qt library in ~/usr/local, then the .pc file will be in ~/usr/local/lib/pkgconfig and you'll need to use this directory for setting PKG_CONFIG_PATH, e.g., PKG_CONFIG_PATH=~/usr/local/lib/pkgconfig/ qmake ../qsource-highlight.pro make the executable binary will be created in the directory bin If pkg-config is not installed in your system, you'll have to specify the LIBS and INCLUDEPATH qmake variables manually, using the correct path, for instance: LIBS += -L~/usr/local/lib -lsource-highlight-qt4 INCLUDEPATH = ~/usr/local/include You can also specify the name of the libraries to use by using SOURCE_HIGHLIGHT_QT_LIB, SOURCE_HIGHLIGHT_LIB, and BOOST_REGEX for source-highlight-qt, source-highlight and boost regex (used by source-highlight), respectively. ------------------ Lorenzo Bettini http://www.lorenzobettini.it Copyright 2010 source-highlight-ide-1.0/source-highlight-ide.pro0000644000175000017500000000275111345146644021777 0ustar bettinibettiniinclude(doc/doc.pro) QT += webkit SOURCES += source-highlight-ide.cpp \ main.cpp \ sourcehighlightideframe.cpp \ filechooserframe.cpp \ debuggerthread.cpp \ statusbarframe.cpp \ findreplaceform.cpp \ findreplacedialog.cpp \ mainwindow.cpp \ assistant.cpp \ customhelpform.cpp HEADERS += source-highlight-ide.h \ sourcehighlightideframe.h \ filechooserframe.h \ debuggerthread.h \ stepconditionvariable.h \ statusbarframe.h \ findreplaceform.h \ findreplacedialog.h \ findreplace_global.h \ mainwindow.h \ assistant.h \ customhelpform.h TEMPLATE = app CONFIG += warn_on \ thread \ qt TARGET = source-highlight-ide DEPENDPATH += . DESTDIR = bin DEFINES += SOURCEDIR=\\\"$$PWD\\\" target.path = /bin INSTALLS += target RESOURCES = application.qrc isEmpty(NO_PKGCONFIG) { CONFIG += link_pkgconfig PKGCONFIG += source-highlight-qt4 } !isEmpty(SOURCE_HIGHLIGHT_QT_LIB) { ADDITIONAL_LIBRARIES += -l$$SOURCE_HIGHLIGHT_QT_LIB } !isEmpty(SOURCE_HIGHLIGHT_LIB) { ADDITIONAL_LIBRARIES += -l$$SOURCE_HIGHLIGHT_LIB } !isEmpty(BOOST_REGEX) { ADDITIONAL_LIBRARIES += -l$$BOOST_REGEX } LIBS += $$ADDITIONAL_LIBRARIES DISTFILES += *.xpm VERSION = 1.0.0 FORMS += sourcehighlightideframe.ui \ filechooserframe.ui \ sourcehighlightidewindow.ui \ statusbarframe.ui \ findreplaceform.ui \ findreplacedialog.ui \ mainwindow.ui \ customhelpform.ui OTHER_FILES = COPYING ReadMe TODO.txt source-highlight-ide-1.0/sourcehighlightideframe.h0000644000175000017500000000203711345147500022274 0ustar bettinibettini/* * Copyright (C) 2009-2010 Lorenzo Bettini * See COPYING file that comes with this distribution */ #ifndef SourceHighlightIdeFrame_H #define SourceHighlightIdeFrame_H #include #include "ui_sourcehighlightideframe.h" class QSettings; namespace Ui { class SourceHighlightIdeFrame; } namespace srchiliteqt { class TextEditHighlighted; } class SourceHighlightIdeFrame : public QFrame { Q_OBJECT public: SourceHighlightIdeFrame(QWidget *parent = 0); ~SourceHighlightIdeFrame(); srchiliteqt::TextEditHighlighted *getLangTextEdit() const; QTextEdit *getInputTextEdit() const; srchiliteqt::TextEditHighlighted *getOutputTextEdit() const; void saveSettings(QSettings &settings); void readSettings(QSettings &settings); void setPreviewContents(const QString &contents); void goToEndOfPreviewContents(); void setNoPreview(); protected: void changeEvent(QEvent *e); public: Ui::SourceHighlightIdeFrame *m_ui; }; #endif // SourceHighlightIdeFrame_H source-highlight-ide-1.0/mainwindow.h0000644000175000017500000000306511345147460017572 0ustar bettinibettini/* * Copyright (C) 2009-2010 Lorenzo Bettini * See COPYING file that comes with this distribution */ #ifndef MAINWINDOW_H #define MAINWINDOW_H #include class SourceHighlightIde; class QAction; class QSignalMapper; class Assistant; namespace Ui { class MainWindow; } class MainWindow : public QMainWindow { Q_OBJECT public: MainWindow(QWidget *parent = 0); ~MainWindow(); protected: void changeEvent(QEvent *e); void closeEvent(QCloseEvent *event); private slots: void newFile(); void openInput(); void about(); void setActiveSubWindow(QWidget *window); void updateWindowMenu(); void showDocumentation(); void configureSourceHighlight(); private: void createActions(); void createMenus(); void readSettings(); void writeSettings(); SourceHighlightIde *activeMdiChild(); /** * Checks that source-highlight settings are correct, * otherwise open the setting dialog. * @return whether settings are ok */ bool checkSourceHighlightSettings(); QAction *closeAct; QAction *closeAllAct; QAction *tileAct; QAction *cascadeAct; QAction *nextAct; QAction *previousAct; QAction *separatorAct; QSignalMapper *windowMapper; private: Ui::MainWindow *ui; /// the instance for showing help contents Assistant *assistant; /// the path for help files QString helpPath; QString sourceHighlightDataDir; }; #endif // MAINWINDOW_H source-highlight-ide-1.0/highlight.xpm0000644000175000017500000001467111305445353017745 0ustar bettinibettini/* XPM */ static char * highlight_xpm[] = { "32 32 272 2", " c None", ". c #F90500", "+ c #FB0200", "@ c #FB0300", "# c #FC0100", "$ c #FC0200", "% c #FD0100", "& c #EC0A00", "* c #6B0000", "= c #FF0000", "- c #F00E00", "; c #AD5100", "> c #679700", ", c #29D500", "' c #05F800", ") c #00FF00", "! c #F70700", "~ c #DA2400", "{ c #966800", "] c #40BE00", "^ c #2DD100", "/ c #1AE400", "( c #03FB00", "_ c #000000", ": c #ED1100", "< c #C23C00", "[ c #7D8100", "} c #02FC00", "| c #C93500", "1 c #788600", "2 c #4AB400", "3 c #01FD00", "4 c #E81600", "5 c #C63800", "6 c #817D00", "7 c #2CD200", "8 c #25D900", "9 c #B54900", "0 c #837B00", "a c #4DB100", "b c #31CD00", "c c #22DC00", "d c #10EE00", "e c #F60800", "f c #37C700", "g c #2BD300", "h c #20DE00", "i c #18E600", "j c #12EC00", "k c #11ED00", "l c #0BF300", "m c #F30B00", "n c #D62800", "o c #A35B00", "p c #28D600", "q c #1FDF00", "r c #0CF200", "s c #09F500", "t c #07F700", "u c #CE3000", "v c #9A6400", "w c #4BB300", "x c #14EA00", "y c #0DF100", "z c #08F600", "A c #05F900", "B c #C33B00", "C c #926C00", "D c #619D00", "E c #48B600", "F c #51FF00", "G c #4EFF00", "H c #44FF00", "I c #32FF00", "J c #AC5200", "K c #847A00", "L c #5CA200", "M c #42BC00", "N c #33CB00", "O c #1EE000", "P c #B6FF00", "Q c #ABFF00", "R c #B5FF00", "S c #34CA00", "T c #26D800", "U c #19E500", "V c #17E700", "W c #DFFF00", "X c #EAFF00", "Y c #FAFF00", "Z c #FFFF00", "` c #2FCF00", " . c #23DD00", ".. c #23DF00", "+. c #29E600", "@. c #39EB00", "#. c #55EF00", "$. c #C3FE00", "%. c #C4FF00", "&. c #D2FF00", "*. c #CDFF00", "=. c #D5FF00", "-. c #D6FF00", ";. c #E2FF00", ">. c #F5FF00", ",. c #FCFF00", "'. c #22E800", "). c #31E600", "!. c #4FE900", "~. c #61ED00", "{. c #7FF200", "]. c #94F600", "^. c #A1F900", "/. c #D8FF00", "(. c #DBFF00", "_. c #DEFF00", ":. c #E5FF00", "<. c #E8FF00", "[. c #ECFF00", "}. c #FDFF00", "|. c #0FFD00", "1. c #39FB00", "2. c #50F900", "3. c #6FF800", "4. c #87F900", "5. c #9FFB00", "6. c #ACFD00", "7. c #BEFE00", "8. c #E3FF00", "9. c #E4FF00", "0. c #E6FF00", "a. c #EFFF00", "b. c #F2FF00", "c. c #F6FF00", "d. c #12FF00", "e. c #37F905", "f. c #50F10D", "g. c #60E717", "h. c #6AE41A", "i. c #85E519", "j. c #98EF0F", "k. c #B3F608", "l. c #C1FB02", "m. c #EBFF00", "n. c #F4FF00", "o. c #F8FF00", "p. c #22F707", "q. c #3DDD21", "r. c #4DCE30", "s. c #51BD41", "t. c #5BB24C", "u. c #6CAA54", "v. c #72AE50", "w. c #8AB549", "x. c #9DCA34", "y. c #F9FF00", "z. c #3AD628", "A. c #3FB945", "B. c #4DB24C", "C. c #4DA757", "D. c #4F936B", "E. c #527E80", "F. c #40619D", "G. c #4154AA", "H. c #4253AB", "I. c #AEB549", "J. c #BDC13D", "K. c #CACC32", "L. c #D7D727", "M. c #E9E915", "N. c #F1F10D", "O. c #FAFA04", "P. c #FCFC02", "Q. c #37B14D", "R. c #3DA559", "S. c #49A25C", "T. c #438F6F", "U. c #38649A", "V. c #3957A7", "W. c #354EB0", "X. c #303EC0", "Y. c #2B36C8", "Z. c #61619D", "`. c #787886", " + c #898975", ".+ c #8D8D71", "++ c #9E9E60", "@+ c #A6A658", "#+ c #BFBF3F", "$+ c #C4C43A", "%+ c #FDFD01", "&+ c #37A35B", "*+ c #3E9B63", "=+ c #428777", "-+ c #30619D", ";+ c #2D52AC", ">+ c #304BB3", ",+ c #293AC4", "'+ c #2730CE", ")+ c #272DD1", "!+ c #3B3BC3", "~+ c #3E3EC0", "{+ c #4B4BB3", "]+ c #4E4EB0", "^+ c #5050AE", "/+ c #5B5BA3", "(+ c #686896", "_+ c #767688", ":+ c #8E8E70", "<+ c #9F9F5F", "[+ c #C3C33B", "}+ c #268877", "|+ c #388A74", "1+ c #356C92", "2+ c #2E53AB", "3+ c #2A47B7", "4+ c #2939C5", "5+ c #262ED0", "6+ c #2429D5", "7+ c #2224DA", "8+ c #1F20DE", "9+ c #2020DE", "0+ c #1D1DE1", "a+ c #2323DB", "b+ c #2828D6", "c+ c #2D2DD1", "d+ c #3333CB", "e+ c #3434CA", "f+ c #3737C7", "g+ c #3F3FBF", "h+ c #3A3AC4", "i+ c #4141BD", "j+ c #4646B8", "k+ c #4A4AB4", "l+ c #4848B6", "m+ c #3C7985", "n+ c #2A48B6", "o+ c #2A38C6", "p+ c #2930CE", "q+ c #2122DC", "r+ c #2121DD", "s+ c #1818E6", "t+ c #1A1AE4", "u+ c #1717E7", "v+ c #2222DC", "w+ c #1F1FDF", "x+ c #1E1EE0", "y+ c #1B1BE3", "z+ c #1111ED", "A+ c #0B0BF3", "B+ c #0808F6", "C+ c #0404FA", "D+ c #0303FB", "E+ c #0000FF", "F+ c #2525D9", "G+ c #1C1CE2", "H+ c #1515E9", "I+ c #1414EA", "J+ c #0F0FEF", "K+ c #1616E8", "L+ c #0A0AF4", "M+ c #0707F7", "N+ c #0202FC", "O+ c #0101FD", "P+ c #1212EC", "Q+ c #1313EB", "R+ c #1919E5", "S+ c #0D0DF1", "T+ c #0606F8", "U+ c #0505F9", "V+ c #0000E5", "W+ c #0000F9", " ", " ", " . + @ # $ % @ + & * ", " = = = = = = = = = = ", " = = = = = = = = = = = = ", " = = = = = = = = = = = = $ - ; > , ' ) ) ", " = = = = = = = = = = = = ! ~ { ] ^ / ( ) ) ) ", " = = = _ _ _ _ = = = = = : < [ _ _ _ _ } ) ) ) ) ", " = = = = = _ _ _ _ = = = - | 1 2 ^ _ _ _ _ 3 ) ) ) ) ) ", " = = = = = = _ _ _ _ ! 4 5 6 2 7 8 / _ _ _ _ ) ) ) ) ) ) ", " = = = = = = = _ _ _ _ 9 0 a b c / / d _ _ _ _ ) ) ) ) ) ) ", " = = = = = = = e _ _ _ _ 2 f g h i j k l _ _ _ _ ) ) ) ) ) ) ", " = = = = $ m n o _ _ _ _ p q / j r s t ( _ _ _ _ ) ) ) ) ) ) ", " = = $ - u v > w _ _ _ _ / x y z A ( 3 ) _ _ _ _ ) ) ) ) ) ", " ! 4 B C D E f ^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ F G H I ", " J K L M N p h O _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ P Q R ", "E a M S , T O U V _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ W X Y Z ", "V ` 7 T ...+.@.#._ _ _ _ $.%.&.*.=.-.W ;._ _ _ _ >.,.Z Z ", "3 y '.).!.~.{.].^._ _ _ _ /.(._.W :.:.<.[._ _ _ _ }.Z Z Z Z ", ") |.1.2.3.4.5.6.7._ _ _ _ 8.9.0.X [.a.b.c._ _ _ _ Z Z Z Z Z ", "d.e.f.g.h.i.j.k.l._ _ _ _ <.<.m.a.n.o.,.}._ _ _ _ Z Z Z Z Z ", "p.q.r.s.t.u.v.w.x._ _ _ _ [.a.n.y.}.Z Z Z _ _ _ _ Z Z Z Z Z ", "z.A.B.C.D.E.F.G.H._ _ _ _ I.J.K.L.M.N.O.P._ _ _ _ Z Z Z Z Z ", "Q.R.S.T.U.V.W.X.Y._ _ _ _ Z.`. +.+++@+#+$+_ _ _ _ %+Z Z Z ", "&+*+=+-+;+>+,+'+)+_ _ _ _ !+~+{+]+^+/+(+_+_ _ _ _ :+<+[+ ", "}+|+1+2+3+4+5+6+7+8+9+0+a+b+c+c+d+e+d+f+g+h+!+i+j+k+l+{+ ", " m+n+o+p+q+r+9+0+s+s+t+u+v+w+x+a+v+y+s+z+A+B+B+C+D+E+ ", " F+a+F+G+y+t+s+H+I+I+J+K+J+J+L+M+N+O+E+E+E+E+E+E+E+E+ ", " P+Q+R+H+K+z+S+B+T+U+D+N+O+E+E+E+E+E+E+E+E+E+E+E+E+E+ ", " U+T+C+D+O+O+E+E+E+E+E+E+E+E+E+E+E+E+E+E+E+E+E+E+E+E+ ", " E+E+E+E+E+E+E+E+E+E+E+E+E+E+E+E+E+E+E+E+E+E+E+E+E+E+ ", " E+E+E+V+W+E+E+E+E+E+E+E+E+E+E+E+E+E+E+E+E+E+E+ "}; source-highlight-ide-1.0/sourcehighlightideframe.cpp0000644000175000017500000000402511345147625022636 0ustar bettinibettini/* * Copyright (C) 2009-2010 Lorenzo Bettini * See COPYING file that comes with this distribution */ #include #include "sourcehighlightideframe.h" SourceHighlightIdeFrame::SourceHighlightIdeFrame(QWidget *parent) : QFrame(parent), m_ui(new Ui::SourceHighlightIdeFrame) { m_ui->setupUi(this); } SourceHighlightIdeFrame::~SourceHighlightIdeFrame() { delete m_ui; } void SourceHighlightIdeFrame::changeEvent(QEvent *e) { QFrame::changeEvent(e); switch (e->type()) { case QEvent::LanguageChange: m_ui->retranslateUi(this); break; default: break; } } srchiliteqt::TextEditHighlighted *SourceHighlightIdeFrame::getLangTextEdit() const { return m_ui->langTextEdit; } QTextEdit *SourceHighlightIdeFrame::getInputTextEdit() const { return m_ui->inputTextEdit; } srchiliteqt::TextEditHighlighted *SourceHighlightIdeFrame::getOutputTextEdit() const { return m_ui->outputTextEdit; } void SourceHighlightIdeFrame::readSettings(QSettings &settings) { m_ui->verticalSplitter->restoreState(settings.value("verticalSplitterSizes").toByteArray()); m_ui->horizontalSplitter->restoreState(settings.value("horizontalSplitterSizes").toByteArray()); } void SourceHighlightIdeFrame::saveSettings(QSettings &settings) { settings.setValue("verticalSplitterSizes", m_ui->verticalSplitter->saveState()); settings.setValue("horizontalSplitterSizes", m_ui->horizontalSplitter->saveState()); } void SourceHighlightIdeFrame::setPreviewContents(const QString &contents) { m_ui->previewWebView->setHtml(contents); } void SourceHighlightIdeFrame::goToEndOfPreviewContents() { m_ui->previewWebView->page()->setContentEditable(true); // this does not seem to work! m_ui->previewWebView->page()->triggerAction(QWebPage::MoveToEndOfDocument); } void SourceHighlightIdeFrame::setNoPreview() { m_ui->previewWebView->setHtml( "Sorry, no preview available for this output format." ); } source-highlight-ide-1.0/findreplace_global.h0000644000175000017500000000062411345147430021205 0ustar bettinibettini/* * Copyright (C) 2009-2010 Lorenzo Bettini * See COPYING file that comes with this distribution */ #ifndef FINDREPLACE_GLOBAL_H #define FINDREPLACE_GLOBAL_H #include #if defined(FINDREPLACE_LIBRARY) # define FINDREPLACESHARED_EXPORT Q_DECL_EXPORT #else # define FINDREPLACESHARED_EXPORT #endif #endif // FINDREPLACE_GLOBAL_H source-highlight-ide-1.0/filesave.xpm0000644000175000017500000001437111305445353017571 0ustar bettinibettini/* XPM */ static char *filesave[] = { /* columns rows colors chars-per-pixel */ "32 32 257 2", " c #000000", ". c #06060A", "X c #09090D", "o c #0B0B16", "O c #101022", "+ c #1E1E28", "@ c #181829", "# c #151F3A", "$ c #1A263F", "% c #1D2A3F", "& c #272730", "* c #2E2E3F", "= c #212140", "- c #212E41", "; c #2F2F41", ": c #292A4A", "> c #23224B", ", c #262353", "< c #292655", "1 c #2B2C54", "2 c #2C2C5B", "3 c #293746", "4 c #2D304F", "5 c #243243", "6 c #2E315D", "7 c #363647", "8 c #303E4A", "9 c #30325E", "0 c #3C3C53", "q c #2E2E60", "w c #2F3160", "e c #302E63", "r c #313164", "t c #363861", "y c #353868", "u c #384650", "i c #284F6B", "p c #2D547B", "a c #3B486A", "s c #36597D", "d c #3D5D7C", "f c #4C4C4C", "g c #40405A", "h c #414E56", "j c #4B585E", "k c #49545E", "l c #555555", "z c #4D4D6B", "x c #434675", "c c #4B5660", "v c #4F5962", "b c #41517E", "n c #4B507D", "m c #515C67", "M c #505D6E", "N c #5C5D7D", "B c #546066", "V c #54626D", "C c #5B646D", "Z c #55677A", "A c #556B78", "S c #5D6772", "D c #6B6B6B", "F c #646464", "G c #616C73", "H c #63707D", "J c #6B7679", "K c gray45", "L c #00418E", "P c #004494", "I c #004894", "U c #044F98", "Y c #03509B", "T c #0A5198", "R c #13579C", "E c #185DA1", "W c #285888", "Q c #2B6094", "! c #396D9A", "~ c #336A96", "^ c #3D719B", "/ c #226EB8", "( c #326EA8", ") c #326BA3", "_ c #3673AE", "` c #3A76B4", "' c #0B6FD1", "] c #0F75D8", "[ c #1479DA", "{ c #1B7CDC", "} c #466481", "| c #42749C", " . c #4A799E", ".. c #506A84", "X. c #5F678D", "o. c #576391", "O. c #5A6592", "+. c #5F6893", "@. c #5B738B", "#. c #507DA1", "$. c #626283", "%. c #636A94", "&. c #656F98", "*. c #657A8F", "=. c #6B7299", "-. c #717191", ";. c #797998", ":. c #687BA6", ">. c #2281DC", ",. c #3F81C0", "<. c #3988D7", "1. c #2785E1", "2. c #2E8AE3", "3. c #368FE5", "4. c #3690E6", "5. c #3D93E7", "6. c #3D94E9", "7. c #57839E", "8. c #4787BC", "9. c #5480A1", "0. c #5B84A3", "q. c #6E8496", "w. c #6E8B9A", "e. c #7D848E", "r. c #728597", "t. c #738598", "y. c #768899", "u. c #7B8B9B", "i. c #6489A5", "p. c #698EA7", "a. c #6D8FA9", "s. c #6E81AB", "d. c #7683A6", "f. c #768CB7", "g. c #7395AD", "h. c #7C96B0", "j. c #4086CA", "k. c #4986C3", "l. c #4284C3", "z. c #498ED2", "x. c #4D95DB", "c. c #548DC5", "v. c #5D92C8", "b. c #5593C9", "n. c #5097DE", "m. c #5198DE", "M. c #4296E7", "N. c #4895E2", "B. c #4B99E5", "V. c #4A9CEB", "C. c #4599EB", "Z. c #529DE6", "A. c #589EE2", "S. c #54A1EB", "D. c #5AA1E6", "F. c #5AA5EB", "G. c #5EA8EF", "H. c #53A3F1", "J. c #5EAAF2", "K. c #6699CB", "L. c #799BC8", "P. c #7EA6C9", "I. c #60A2E5", "U. c #65A7E8", "Y. c #6BABE9", "T. c #68ADF2", "R. c #67B0F5", "E. c #6DB3F6", "W. c #70ADEA", "Q. c #75B0E9", "!. c #7CB5EB", "~. c #73B9F8", "^. c #7BBDFB", "/. c #7CBAF6", "(. c gray55", "). c #828899", "_. c #84949E", "`. c #918E8A", "'. c #949494", "]. c #8F8FA9", "[. c #8997A5", "{. c #8A9AA9", "}. c #9A9BAF", "|. c #9399A9", " X c #9FAAB5", ".X c #A29E9B", "XX c #A7A7A7", "oX c #ABABAB", "OX c #A3A3B4", "+X c #A8A8B7", "@X c #A3ABB3", "#X c #B4B5B5", "$X c #B0B0BC", "%X c #B7B9BC", "&X c #BBB7B3", "*X c #BBBBBB", "=X c #82B1DB", "-X c #81B7EC", ";X c #88BBED", ":X c #86BAED", ">X c #AEBBC8", ",X c #A6BDCD", ".U i 9 YXYX", "YXYXYXo.2X] L C UXDXcXzXkXkXkXjXjXdXdX%X%X&X%X*XN.' ~ 6 YXYX", "YXYXYXo.1X] P k hXoXXXXXoXoX#X#X*X%X&X%X%XdXkXxXx.[ ~ 6 YXYX", "YXYXYXO.3X[ I m FXkXjXjXkXkXkXkXkXkXzXzXzXcXZXSXx.{ ! 6 YXYX", "YXYXYXo.3X{ I S UXvXxXzXkXkXkXkXkXjXdX*X%X#X&X%XZ.1.^ 9 YXYX", "YXYXYXO.4X>.U j jX#X#X#X%XdXdXkXzXkXzXzXcXvXDXJXA.1.| 6 YXYX", "YXYXYXO.6X>.T V PXZXZXZXAXSXDXDXFXHXDXHXHXHXHXSXI.2.| 9 YXYX", "YXYXYXO.6X2.T G UXLXDXDXAXZXZXAXZXvXcXzXkXkXkXgXY.3. .6 YXYX", "YXYXYXO.9X4.R m zXdXdXkXzXvXAXDXHXLXPXPXIXUXUXUXQ.6. .9 YXYX", "YXYXYXO.9X5.R H UXIXUXUXUXUXUXUXUXUXUXUXIXKXJXBX-XC.#.9 YXYX", "YXYXYXO.eXM./ h.UXUXIXKXBXNXnXuXyXwX5X:X!.Y.Y.Y.D.H.9.6 YXYX", "YXYXYX+.rXB.<.x.Q.;X-XQ.Y.U.U.D.Z.Z.B.B.C.V.V.B.B.T.0.9 YXYX", "YXYXYX+.tXB.N.B.B.B.B.C.V.V.H.H.H.D.N.z.8._ ( <.D.R.0.9 YXYX", "YXYXYX+.tXS.Z.F.D.m.z.l.` ) Q W p s } @.r.[. X>XG.E.0.9 YXYX", "YXYXYX+.pXU.m.) p d ..*.u.|.+X @ o YXYXYXYXYXYXYXYXYXYXYXYX", "YXYXYX YXYXYXYXYXYXYXYXYXYXYXYXYXYXYXYXYXYX", "YXYXYX YXYXYXYXYXYXYXYXYXYXYXYXYXYXYXYXYXYXYXYXYXYXYXYX" }; source-highlight-ide-1.0/filesavehighlighted.xcf0000644000175000017500000000555711305445353021754 0ustar bettinibettinigimp xcf file BBgimp-image-grid(style solid) (fgcolor (color-rgba 0.000000 0.000000 0.000000 1.000000)) (bgcolor (color-rgba 1.000000 1.000000 1.000000 1.000000)) (xspacing 10.000000) (yspacing 10.000000) (spacing-unit inches) (xoffset 0.000000) (yoffset 0.000000) (offset-unit inches)  Color     - A QLKHHFDDCCDFDCCIGFKJJGKGJKFHDH;N`QLRmVNJ2443567.P]KHCBG>.A.X||yppjjtypjj|~y~~y|t|MVVX]cjs~s|y |}|}~|~ | ~ ~|~~ջ~՚~~~]ll"2㤄wVѤiF"|jsiFfB"X      0D vDllv~mѱvpvxXm XPPXXllxvpvvvv͙τxvlpv~ llvޜ~Ϧغ.´v𥙥bv𺩷b0  0Vx쮍>b0Ӣp??0 X x7) "7)  A) JL) 򁢯L) $LPPpɨbL z6ͨnZ:  b>   Z  source-highlight-ide-1.0/source-highlight-ide.pro.user.1.30000644000175000017500000001342211345470400023237 0ustar bettinibettini RunConfiguration0-BaseEnvironmentBase 2 RunConfiguration0-CommandLineArguments RunConfiguration0-Id Qt4ProjectManager.Qt4RunConfiguration RunConfiguration0-ProFile source-highlight-ide.pro RunConfiguration0-RunConfiguration.name source-highlight-ide RunConfiguration0-UseDyldImageSuffix false RunConfiguration0-UseTerminal false RunConfiguration0-UserEnvironmentChanges RunConfiguration0-UserSetName false RunConfiguration0-UserSetWorkingDirectory false RunConfiguration0-UserWorkingDirectory activeRunConfiguration 0 activebuildconfiguration 1 buildConfiguration-0 Release 2 0 0 /home/bettini/work/qt/srchighliteide/build false true PKG_CONFIG_PATH=/home/bettini/usr/local/lib/pkgconfig/ buildConfiguration-1 Debug 2 0 2 /home/bettini/work/qt/srchighliteide/build false true INCLUDEPATH=/home/bettini/usr/local/include/ LD_LIBRARY_PATH=/home/bettini/usr/local/lib/ PKG_CONFIG_PATH=/home/bettini/usr/local/lib/pkgconfig/ QMAKE_CFLAGS=-O0 QMAKE_CXX=ccache g++ buildconfiguration-0-buildstep0 buildconfiguration-0-buildstep1 buildconfiguration-0-buildsteps trolltech.qt4projectmanager.qmake trolltech.qt4projectmanager.make buildconfiguration-0-cleanstep0 true buildconfiguration-0-cleansteps trolltech.qt4projectmanager.make buildconfiguration-1-buildstep0 QMAKE_CXXFLAGS=-O0 QMAKE_CXX=ccache g++ buildconfiguration-1-buildstep1 buildconfiguration-1-buildsteps trolltech.qt4projectmanager.qmake trolltech.qt4projectmanager.make buildconfiguration-1-cleanstep0 true clean buildconfiguration-1-cleansteps trolltech.qt4projectmanager.make buildconfigurations 0 1 defaultFileEncoding System source-highlight-ide-1.0/TODO.txt0000644000175000017500000000026211345150272016542 0ustar bettinibettinioutput format: always html recent files saveState for windows? when read/write settings? during debugging steps, position at the end of the output file (also in the preview) source-highlight-ide-1.0/stepconditionvariable.h0000644000175000017500000000073711345147512022007 0ustar bettinibettini/* * Copyright (C) 2009-2010 Lorenzo Bettini * See COPYING file that comes with this distribution */ #ifndef STEPCONDITIONVARIABLE_H #define STEPCONDITIONVARIABLE_H #include class StepConditionVariable : public QWaitCondition { public: bool waitStep; bool stop; StepConditionVariable() : waitStep(true), stop(false) {} void reset() { waitStep = true; stop = false; } }; #endif // STEPCONDITIONVARIABLE_H source-highlight-ide-1.0/filenew.xpm0000644000175000017500000001201111305445353017411 0ustar bettinibettini/* XPM */ static char *filenew[] = { /* columns rows colors chars-per-pixel */ "32 32 178 2", " c black", ". c #191000", "X c #221700", "o c #452E00", "O c #4A3100", "+ c #4E3400", "@ c #553800", "# c #604000", "$ c #6A4600", "% c #6D4800", "& c #704A00", "* c #724C00", "= c #744C00", "- c #764E00", "; c #785000", ": c #805500", "> c #815500", ", c #835700", "< c #865900", "1 c #875A00", "2 c #8A5B00", "3 c #8A5C00", "4 c #8B5C00", "5 c #8C5D00", "6 c #8D5D00", "7 c #8F5E00", "8 c #805911", "9 c #905F00", "0 c #906000", "q c #926000", "w c #946200", "e c #956300", "r c #966400", "t c #976400", "y c #956913", "u c #926C22", "i c #9B7732", "p c #B18D48", "a c #B28E49", "s c #B4904A", "d c #BAA373", "f c #A1A195", "g c #ABAB9F", "h c #ADADAB", "j c #AFAFAB", "k c #B3B3A6", "l c #BCBCB8", "z c #BFBFBC", "x c #CBB489", "c c #CBB58A", "v c #CDB78B", "b c #CAB891", "n c #C9BB9E", "m c #CEBEA2", "M c #C6C6BC", "N c #D9C8A8", "B c #E8E1BA", "V c #E8E1BB", "C c #FEFFA1", "Z c #FFFFA0", "A c #FEFFA3", "S c #FEFFA4", "D c #FEFFA6", "F c #FEFFA8", "G c #FEFFA9", "H c #FFFFA8", "J c #FEFFAA", "K c #FEFFAB", "L c #FFFFAB", "P c #FEFFAC", "I c #FFFFAC", "U c #FEFFAE", "Y c #FEFFAF", "T c #FEFFB0", "R c #FEFFB1", "E c #FFFFB0", "W c #FEFFB4", "Q c #FEFFB5", "! c #FFFFB4", "~ c #FEFFB8", "^ c #FEFFB9", "/ c #FFFFB8", "( c #FFFFB9", ") c #FEFFBB", "_ c #FFFFBA", "` c #FEFFBD", "' c #FFFFBD", "] c #FEFFBE", "[ c #FFFFBE", "{ c #C8C8C1", "} c #CACAC4", "| c #CBCBC6", " . c #DBD2C1", ".. c #DEDFCF", "X. c #D4D4D1", "o. c #E1D5C1", "O. c #E3D9C3", "+. c #E5DCCC", "@. c #E8E8D3", "#. c #ECECD7", "$. c #F0EBDA", "%. c #FEFFC2", "&. c #FEFFC3", "*. c #FFFFC2", "=. c #FEFFC7", "-. c #FFFFC7", ";. c #FEFFCB", ":. c #FEFFCC", ">. c #FFFFCC", ",. c #FEFFCE", "<. c #FEFFD0", "1. c #FEFFD1", "2. c #FFFFD0", "3. c #FFFFD1", "4. c #FFFFD3", "5. c #FEFFD5", "6. c #FFFFD5", "7. c #FEFFD6", "8. c #FEFFD7", "9. c #FFFFD6", "0. c #FFFFD8", "q. c #FEFFDA", "w. c #FFFFDA", "e. c #FFFFDB", "r. c #FFFFDC", "t. c #FEFFDE", "y. c #FEFFDF", "u. c #FFFFDE", "i. c #FFFFDF", "p. c #E9E9E7", "a. c #F3F3E9", "s. c #F3F3EB", "d. c #F5F5E8", "f. c #F8F8E3", "g. c #FEFFE0", "h. c LightYellow", "j. c #FFFFE1", "k. c #FEFFE3", "l. c #FFFFE3", "z. c #FDFEE7", "x. c #FEFFE4", "c. c #FEFFE5", "v. c #FFFFE4", "b. c #FBFBE9", "n. c #FEFFE8", "m. c #FFFFE8", "M. c #FFFFE9", "N. c #FFFFEA", "B. c #FEFFEC", "V. c #FEFFED", "C. c #FFFFEC", "Z. c #FFFFED", "A. c #FEFFEF", "S. c #F4F4F0", "D. c #F4F4F3", "F. c #F5F5F4", "G. c #F8F8F6", "H. c ivory", "J. c #FFFFF1", "K. c #FEFFF3", "L. c #FFFFF3", "P. c #FEFFF4", "I. c #FFFFF4", "U. c #FEFFF7", "Y. c #FFFFF6", "T. c #FFFFF7", "R. c #FBFBFB", "E. c #FFFFF8", "W. c #FFFFF9", "Q. c #FFFFFA", "!. c #FFFFFB", "~. c gray99", "^. c #FEFFFD", "/. c #FFFFFC", "(. c #FFFFFD", "). c #FFFFFE", "_. c gray100", "`. c None", /* pixels */ "`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.", "`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.", "`.`.`.`.`.`.`.`.`.w 2 1 w 4 4 4 6 w 9 6 - `.`.`.`.`.`.`.`.`.", "`.`.`.`.`.`.`.`.r s p p c c c c N O.+.o.y # `.`.`.`.`.`.`.`.", "`.`.`.`.`.`.`.`.r ).).).).).).).).F.p.). .& o `.`.`.`.`.`.`.", "`.`.`.`.`.`.`.`.w ).E.).E.).E.E.E.S.X.).R.n $ + `.`.`.`.`.`.", "`.`.`.`.`.`.`.`.w E.Y.Y.E.Y.E.E.E.a.| ).).D.m % `.`.`.`.`.`.", "`.`.`.`.`.`.`.`.w E.Y.Y.J.Y.J.Y.Y.a.| ).).).D.> `.`.`.`.`.`.", "`.`.`.`.`.`.`.`.w Y.J.J.J.J.J.J.J.a.M l h h { ; `.`.`.`.`.`.", "`.`.`.`.`.`.`.`.w Y.B.B.B.N.N.B.B.b...k f h } ; `.`.`.`.`.`.", "`.`.`.`.`.`.`.`.w J.N.N.N.N.N.N.N.l.f.#.@.#.a.> `.`.`.`.`.`.", "`.`.`.`.`.`.`.`.w J.l.l.l.l.l.l.l.l.l.l.l.l.J.> `.`.`.`.`.`.", "`.`.`.`.`.`.`.`.w J.r.l.l.r.l.r.l.r.l.r.l.r.J.1 `.`.`.`.`.`.", "`.`.`.`.`.`.`.`.w B.r.r.q.q.q.q.q.q.r.q.q.r.B.> `.`.`.`.`.`.", "`.`.`.`.`.`.`.`.w N.5.5.5.5.q.5.5.5.5.5.5.5.B., `.`.`.`.`.`.", "`.`.`.`.`.`.`.`.w N.<.<.<.<.<.<.<.5.<.<.<.<.N., `.`.`.`.`.`.", "`.`.`.`.`.`.`.`.w l.,.;.;.;.,.;.,.;.,.;.;.;.l., `.`.`.`.`.`.", "`.`.`.`.`.`.`.`.w l.-.-.-.-.-.-.;.-.-.-.-.;.l.> `.`.`.`.`.`.", "`.`.`.`.`.`.`.`.w l.-.%.%.%.%.%.%.%.%.%.%.%.l., `.`.`.`.`.`.", "`.`.`.`.`.`.`.`.w r.' ' ' ' ' ) ' ' ' ' ' ' r., `.`.`.`.`.`.", "`.`.`.`.`.`.`.`.w r.) ) W ) ) ) ) ) ) W ) ) q., `.`.`.`.`.`.", "`.`.`.`.`.`.`.`.w q.W W W W W W W W W W W W q., `.`.`.`.`.`.", "`.`.`.`.`.`.`.`.w 5.Y Y W Y Y Y Y Y Y Y Y Y 5., `.`.`.`.`.`.", "`.`.`.`.`.`.`.`.w 5.J J J Y J Y Y J Y J J Y q., `.`.`.`.`.`.", "`.`.`.`.`.`.`.`.w 5.J J D J J D J D J W ) ,.$.- `.`.`.`.`.`.", "`.`.`.`.`.`.`.`.w <.Z D D Z D J Y ' ,.B b i - O `.`.`.`.`.`.", "`.`.`.`.`.`.`.`.w <.Z Z Z Y ) <.B d u & @ X `.`.`.`.`.`.", "`.`.`.`.`.`.`.`.w ,.J ) ,.B d y & o . `.`.`.`.`.`.", "`.`.`.`.`.`.`.`.w Y.V d u & o . `.`.`.`.`.`.`.`.", "`.`.`.`.`.`.`.`.1 4 & o . `.`.`.`.`.`.`.`.`.`.`.", "`.`.`.`.`.`.`.`. `.`.`.`.`.`.`.`.`.`.`.`.`.`.", "`.`.`.`.`.`.`.`. `.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`." }; source-highlight-ide-1.0/debuggerthread.cpp0000644000175000017500000000660511345147544020733 0ustar bettinibettini/* * Copyright (C) 2009-2010 Lorenzo Bettini * See COPYING file that comes with this distribution */ #include #include #include #include "debuggerthread.h" #include "stepconditionvariable.h" #include #include #include #include #include static QRegExp fileInfo("(\\S*):(\\d*)"); DebuggerThread::DebuggerThread(srchilite::SourceHighlight *sourcehighlight_, const QString &langDefFile_, const QString &contents, std::ostringstream *os, QMutex *mutex_, StepConditionVariable *waitCondVariable_) : sourcehighlight(sourcehighlight_), langDefFile(langDefFile_), contentsToHighlight(contents), outputBuffer(os), mutex(mutex_), waitCondVariable(waitCondVariable_) { waitCondVariable->reset(); } void DebuggerThread::run() { //ide->highlight(this); qDebug() << "DebuggerThread started\n"; // set this as the listener for highlighting events sourcehighlight->setHighlightEventListener(this); inputBuffer.str(contentsToHighlight.toStdString()); // let's highlight! try { sourcehighlight->highlight(inputBuffer, *outputBuffer, langDefFile.toStdString()); } catch (const srchilite::ParserException &pe) { std::ostringstream details; details << pe; emit highlightException(details.str().c_str()); } catch (const std::exception &e) { emit highlightException(e.what()); } qDebug() << "Thread terminated"; } void DebuggerThread::stepDebugging() { mutex->lock(); waitCondVariable->waitStep = false; waitCondVariable->wakeAll(); mutex->unlock(); } void DebuggerThread::stopDebugging() { qDebug() << "stop debugging"; mutex->lock(); waitCondVariable->stop = true; waitCondVariable->waitStep = false; waitCondVariable->wakeAll(); mutex->unlock(); } void DebuggerThread::waitForStep() { // wait for a step command mutex->lock(); if (waitCondVariable->waitStep) { waitCondVariable->wait(mutex); } mutex->unlock(); if (waitCondVariable->stop) { // this will make source-highlight stop as soon as // it reaches the end of a line inputBuffer.setstate(std::ios_base::eofbit); } } void DebuggerThread::notify(const srchilite::HighlightEvent &event) { if (waitCondVariable->stop) return; // no need to catch any event // just wait that source-highlight finishes highlighting the current line waitCondVariable->waitStep = true; switch (event.type) { case srchilite::HighlightEvent::FORMAT: qDebug() << event.token.rule->getAdditionalInfo().c_str() << "\n"; qDebug() << event.token.rule->toString().c_str() << "\n"; if (fileInfo.indexIn(event.token.rule->getAdditionalInfo().c_str()) != -1) { emit debuggerFileInfo(fileInfo.cap(1), fileInfo.cap(2).toInt()); } emit debuggerRegex(event.token.rule->toString().c_str()); emit highlightedSomething(); break; case srchilite::HighlightEvent::FORMATDEFAULT: emit debuggerRegex(""); emit highlightedSomething(); break; default: break; } waitForStep(); } source-highlight-ide-1.0/debuggerthread.h0000644000175000017500000000335011345147412020364 0ustar bettinibettini/* * Copyright (C) 2009-2010 Lorenzo Bettini * See COPYING file that comes with this distribution */ #ifndef DEBUGGERTHREAD_H #define DEBUGGERTHREAD_H #include #include #include #include #include namespace srchilite { class HighlightEvent; class SourceHighlight; class ParserException; } class QMutex; class StepConditionVariable; /** * The thread listening for highlighting events when debugging. * * IMPORTANT: this thread must not access the UI (only the UI thread can). * All information about debugging will be emitted as signals; also * possible exceptions during highlighting. */ class DebuggerThread : public QThread, public srchilite::HighlightEventListener { Q_OBJECT public: DebuggerThread(srchilite::SourceHighlight *sourcehighlight_, const QString &langDefFile_, const QString &contents, std::ostringstream *os, QMutex *mutex_, StepConditionVariable *waitCondVariable_); virtual void notify(const srchilite::HighlightEvent &event); public slots: void stepDebugging(); void stopDebugging(); signals: void debuggerFileInfo(const QString &file, int line); void debuggerRegex(const QString ®ex); void highlightedSomething(); void highlightException(const QString &ex); protected: void run(); private: void waitForStep(); srchilite::SourceHighlight *sourcehighlight; QString langDefFile; QString contentsToHighlight; std::istringstream inputBuffer; std::ostringstream *outputBuffer; QMutex *mutex; StepConditionVariable *waitCondVariable; }; #endif // DEBUGGERTHREAD_H source-highlight-ide-1.0/sourcehighlightideframe.ui0000644000175000017500000002200511305445353022462 0ustar bettinibettini SourceHighlightIdeFrame 0 0 661 450 Frame QFrame::StyledPanel QFrame::Raised Qt::Horizontal language definition file QTextEdit::NoWrap Debugging Info regex true state true file true line true Qt::Vertical input file Qt::Horizontal 40 20 Open an input file to be highlighted Open... false Save the current input file Save true Save the current input file under a new name Save As... Monospace highlighted output 0 0 the preview of the highlighted output (if supported) 0 the source code of the highlighted output source code QTextEdit::NoWrap preview 0 0 about:blank Source-Highlight Output QWebView QWidget
QtWebKit/QWebView
srchiliteqt::TextEditHighlighted QTextEdit
srchiliteqt/TextEditHighlighted.h
source-highlight-ide-1.0/customhelpform.h0000644000175000017500000000147211345147404020463 0ustar bettinibettini/* * Copyright (C) 2009-2010 Lorenzo Bettini * See COPYING file that comes with this distribution */ #ifndef CUSTOMHELPFORM_H #define CUSTOMHELPFORM_H #include namespace Ui { class CustomHelpForm; } /** * A very basic help viewer to be used when qt assistant * executable cannot be found. */ class CustomHelpForm : public QWidget { Q_OBJECT public: CustomHelpForm(QWidget *parent = 0, Qt::WindowFlags f = 0); ~CustomHelpForm(); /** * @path the path of the index.html help file * @return whether the help file can be open (already * shows a warning message). */ bool setHtmlHelpFileDir(const QString &path); protected: void changeEvent(QEvent *e); private: Ui::CustomHelpForm *ui; }; #endif // CUSTOMHELPFORM_H source-highlight-ide-1.0/source-highlight-ide.cpp0000644000175000017500000005554311345147616021770 0ustar bettinibettini/* * Copyright (C) 2009-2010 Lorenzo Bettini * See COPYING file that comes with this distribution */ #include #include "source-highlight-ide.h" #include "debuggerthread.h" #include #include #include #include #include #include #include #include #include #include #include #include #include "ui_sourcehighlightidewindow.h" #include "sourcehighlightideframe.h" #include "statusbarframe.h" #include "findreplacedialog.h" #include #include /// the kind-of-cursor in the preview output when debugging, to show the current output position static QString highlightedCursor("<-"); /// the regex for source-highlight errors consisting of a file name and line number static QRegExp fileInfo("(\\S*):(\\d*):"); SourceHighlightIde::SourceHighlightIde() : debuggerThread(0), styleModified(false), ui(new Ui::SourceHighlightIdeWindow) { // this is for Ui_SourceHighlightIdeWindow ui->setupUi(this); setAttribute(Qt::WA_DeleteOnClose); frame = new SourceHighlightIdeFrame(this); langTextEdit = frame->getLangTextEdit(); inputTextEdit = frame->getInputTextEdit(); outputTextEdit = frame->getOutputTextEdit(); findReplaceDialog = new FindReplaceDialog(this); findReplaceDialog->setModal(false); findReplaceDialog->setTextEdit(langTextEdit); // debugging groupbox visible only during debugging frame->m_ui->debuggingGroupBox->setVisible(false); // source-highlight output visibile only in case of errors frame->m_ui->sourceHighlightOutputGroupBox->setVisible(false); // set highlighting for langdef files langTextEdit->setHighlighter("langdef.lang"); // highlight source-highlight errors frame->m_ui->sourceHighlightOutputTextEdit->changeHighlightingLanguage("errors.lang"); setCentralWidget(frame); createActions(); createToolBars(); createStatusBar(); //readSettings(); connect(langTextEdit->document(), SIGNAL(contentsChanged()), this, SLOT(documentWasModified())); statusBarFrame->setLineCol(1, 1); connect(langTextEdit, SIGNAL(cursorPositionChanged()), this, SLOT(highlightCurrentLine())); connect(langTextEdit, SIGNAL(cursorPositionChanged()), this, SLOT(updateLineColInfo())); } SourceHighlightIde::~SourceHighlightIde() { } void SourceHighlightIde::closeEvent(QCloseEvent *event) { if (maybeSave()) { //writeSettings(); event->accept(); } else { event->ignore(); } } void SourceHighlightIde::newFile() { if (maybeSave()) { langTextEdit->clear(); setCurrentFile(""); } } void SourceHighlightIde::open() { if (maybeSave()) { QString fileName = QFileDialog::getOpenFileName(this, tr("Open a lang file"), "", tr("Lang files (*.lang);;All Files (*)")); openLangFile(fileName); } } void SourceHighlightIde::openLangFile(const QString &fileName) { if (!fileName.isEmpty()) { // sets the current dir, so that, for lang files // source-highlight will search for possibly included // files in the same directory of the file we're loading QDir::setCurrent(strippedPath(fileName)); qDebug() << "current directory: " << strippedPath(fileName); loadFile(fileName); } } void SourceHighlightIde::setCursorPosition(int line, int col) { langTextEdit->moveCursor(QTextCursor::Start); QTextCursor cursor = langTextEdit->textCursor(); cursor.movePosition(QTextCursor::NextBlock, QTextCursor::MoveAnchor, line-1); if (col >= 0) cursor.movePosition(QTextCursor::NextCharacter, QTextCursor::MoveAnchor, col); langTextEdit->setTextCursor(cursor); } bool SourceHighlightIde::save() { if (curFile.isEmpty()) { return saveAs(); } else { return saveFile(curFile, langTextEdit); } } bool SourceHighlightIde::saveAs() { QString fileName = QFileDialog::getSaveFileName(this); if (fileName.isEmpty()) return false; return saveFile(fileName, langTextEdit); } void SourceHighlightIde::openInput() { QString fileName = QFileDialog::getOpenFileName(this); if (!fileName.isEmpty()) loadFile(fileName, frame->m_ui->inputTextEdit); } bool SourceHighlightIde::saveInput() { if (curInputFile.isEmpty()) { return saveInputAs(); } else { return saveFile(curInputFile, frame->m_ui->inputTextEdit); } } bool SourceHighlightIde::saveInputAs() { QString fileName = QFileDialog::getSaveFileName(this); if (fileName.isEmpty()) return false; if (saveFile(fileName, frame->m_ui->inputTextEdit)) { curInputFile = fileName; return true; } return false; } bool SourceHighlightIde::saveHighlighted() { if (curHighlightedFile.isEmpty()) { return saveHighlightedAs(); } else { return saveFile(curHighlightedFile, outputTextEdit); } } bool SourceHighlightIde::saveHighlightedAs() { QString fileName = QFileDialog::getSaveFileName(this); if (fileName.isEmpty()) return false; if (saveFile(fileName, outputTextEdit)) { curHighlightedFile = fileName; return true; } return false; } void SourceHighlightIde::documentWasModified() { setWindowModified(langTextEdit->document()->isModified()); } void SourceHighlightIde::createActions() { connect(ui->actionNew, SIGNAL(triggered()), this, SLOT(newFile())); connect(ui->actionOpen, SIGNAL(triggered()), this, SLOT(open())); connect(ui->actionSave, SIGNAL(triggered()), this, SLOT(save())); connect(langTextEdit->document(), SIGNAL(modificationChanged(bool)), ui->actionSave, SLOT(setEnabled(bool))); connect(ui->actionSaveAs, SIGNAL(triggered()), this, SLOT(saveAs())); //connect(langTextEdit->document(), SIGNAL(modificationChanged(bool)), // ui->actionSaveAs, SLOT(setEnabled(bool))); connect(frame->m_ui->openInputButton, SIGNAL(clicked()), this, SLOT(openInput())); connect(frame->m_ui->saveInputButton, SIGNAL(clicked()), this, SLOT(saveInput())); connect(frame->m_ui->inputTextEdit->document(), SIGNAL(modificationChanged(bool)), frame->m_ui->saveInputButton, SLOT(setEnabled(bool))); connect(frame->m_ui->saveInputAsButton, SIGNAL(clicked()), this, SLOT(saveInputAs())); //connect(frame->m_ui->inputTextEdit->document(), SIGNAL(modificationChanged(bool)), // frame->m_ui->saveInputAsButton, SLOT(setEnabled(bool))); connect(ui->actionSaveHighlighted, SIGNAL(triggered()), this, SLOT(saveHighlighted())); //connect(outputTextEdit->document(), SIGNAL(modificationChanged(bool)), // ui->actionSaveHighlighted, SLOT(setEnabled(bool))); connect(ui->actionSaveHighlightedAs, SIGNAL(triggered()), this, SLOT(saveHighlightedAs())); connect(outputTextEdit->document(), SIGNAL(modificationChanged(bool)), ui->actionSaveHighlightedAs, SLOT(setEnabled(bool))); //connect(ui->actionExit, SIGNAL(triggered()), this, SLOT(close())); connect(ui->actionCut, SIGNAL(triggered()), langTextEdit, SLOT(cut())); connect(ui->actionCopy, SIGNAL(triggered()), langTextEdit, SLOT(copy())); connect(ui->actionPaste, SIGNAL(triggered()), langTextEdit, SLOT(paste())); connect(ui->actionHighlight, SIGNAL(triggered()), this, SLOT(highlightAll())); connect(langTextEdit, SIGNAL(copyAvailable(bool)), ui->actionCut, SLOT(setEnabled(bool))); connect(langTextEdit, SIGNAL(copyAvailable(bool)), ui->actionCopy, SLOT(setEnabled(bool))); //connect(ui->actionCustomizeHighlightingStyle, SIGNAL(triggered()), // this, SLOT(configureHighlighting())); connect(ui->actionDebug, SIGNAL(triggered()), this, SLOT(startDebug())); connect(ui->actionFindNext, SIGNAL(triggered()), findReplaceDialog, SLOT(findNext())); connect(ui->actionFindPrev, SIGNAL(triggered()), findReplaceDialog, SLOT(findPrev())); connect(ui->actionFindReplace, SIGNAL(triggered()), this, SLOT(showFindReplaceDialog())); } void SourceHighlightIde::createToolBars() { } void SourceHighlightIde::currentStyleChanged(const QString &) { // since a new style was selected, we reset styleChanged styleModified = false; } void SourceHighlightIde::createStatusBar() { statusBar()->showMessage(tr("Ready")); statusBarFrame = new StatusBarFrame(this); statusBar()->addPermanentWidget(statusBarFrame); } void SourceHighlightIde::readSettings(QSettings &settings) { QPoint pos = settings.value("pos", QPoint(200, 200)).toPoint(); QSize size = settings.value("size", QSize(400, 400)).toSize(); QString fileName = settings.value("fileName", QString("")).toString(); //QString styleFileName = settings.value("styleFileName", QString("default.style")).toString(); //QString outputLangFile = settings.value("outputLangFile", QString("html.outlang")).toString(); //outputFormatComboBox->setCurrentOutputFormat(outputLangFile); resize(size); move(pos); if (fileName.isEmpty()) setCurrentFile(""); else openLangFile(fileName); //textEdit->changeHighlightingStyle(styleFileName); curInputFile = settings.value("inputFileName", QString("")).toString(); if (curInputFile != "") loadFile(curInputFile, frame->m_ui->inputTextEdit); frame->readSettings(settings); findReplaceDialog->readSettings(settings); } void SourceHighlightIde::writeSettings(QSettings &settings) { settings.setValue("pos", pos()); settings.setValue("size", size()); settings.setValue("fileName", curFile); //settings.setValue("styleFileName", // textEdit->getHighlighter()->getFormattingStyle()); //settings.setValue("outputLangFile", // outputFormatComboBox->getCurrentOutputFormat()); settings.setValue("inputFileName", curInputFile); frame->saveSettings(settings); findReplaceDialog->writeSettings(settings); } bool SourceHighlightIde::maybeSave() { if (langTextEdit->document()->isModified()) { int ret = QMessageBox::warning(this, tr("Source-Highlight-Ide"), tr("The document has been modified.\n" "Do you want to save your changes?"), QMessageBox::Yes | QMessageBox::Default, QMessageBox::No, QMessageBox::Cancel | QMessageBox::Escape); if (ret == QMessageBox::Yes) return save(); else if (ret == QMessageBox::Cancel) return false; } return true; } void SourceHighlightIde::loadFile(const QString &fileName) { if (fileName.isEmpty()) return; QApplication::setOverrideCursor(Qt::WaitCursor); const QString error = langTextEdit->loadFile(fileName); if (error != "") { QMessageBox::warning(this, tr("Source-Highlight-Ide"), tr("Cannot read file %1:\n%2.") .arg(fileName) .arg(error)); } else { setCurrentFile(fileName); statusBar()->showMessage(tr("File loaded"), 2000); } QApplication::restoreOverrideCursor(); } void SourceHighlightIde::loadFile(const QString &fileName, QTextEdit *editor) { if (fileName.isEmpty()) return; QApplication::setOverrideCursor(Qt::WaitCursor); QFile file(fileName); if (!file.open(QFile::ReadOnly | QFile::Text)) { QMessageBox::warning(this, tr("Source-Highlight-Ide"), tr("Cannot read file %1\n.") .arg(fileName)); } else { QTextStream in(&file); editor->setPlainText(in.readAll()); curInputFile = fileName; } QApplication::restoreOverrideCursor(); } bool SourceHighlightIde::saveFile(const QString &fileName, const QTextEdit *editor) { QFile file(fileName); if (!file.open(QFile::WriteOnly | QFile::Text)) { QMessageBox::warning(this, tr("Source-Highlight-Ide"), tr("Cannot write file %1:\n%2.") .arg(fileName) .arg(file.errorString())); return false; } QTextStream out(&file); QApplication::setOverrideCursor(Qt::WaitCursor); // TODO: this is a little bit ugly ;-) if (editor) { out << editor->toPlainText(); } QApplication::restoreOverrideCursor(); // TODO: this is a little bit ugly ;-) if (editor == langTextEdit) setCurrentFile(fileName); else editor->document()->setModified(false); statusBar()->showMessage(tr("File saved"), 2000); return true; } void SourceHighlightIde::setCurrentFile(const QString &fileName) { curFile = fileName; langTextEdit->document()->setModified(false); setWindowModified(false); QString shownName; if (curFile.isEmpty()) shownName = "untitled.txt"; else shownName = strippedName(curFile); setWindowTitle(tr("%1[*] - %2").arg(shownName).arg(tr("Source-Highlight-Ide"))); // notify the editor, 'cause we might need to change the highlighting language langTextEdit->changeFileName(fileName); } QString SourceHighlightIde::strippedName(const QString &fullFileName) { return QFileInfo(fullFileName).fileName(); } QString SourceHighlightIde::userFriendlyCurrentFile() { return strippedName(curFile); } QString SourceHighlightIde::strippedPath(const QString &fullFileName) { return QFileInfo(fullFileName).absolutePath(); } void SourceHighlightIde::highlightCurrentLine() { QList extraSelections; QTextEdit::ExtraSelection selection; QColor lineColor = QColor(Qt::yellow).lighter(160); selection.format.setBackground(lineColor); selection.format.setProperty(QTextFormat::FullWidthSelection, true); selection.cursor = langTextEdit->textCursor(); selection.cursor.clearSelection(); extraSelections.append(selection); langTextEdit->setExtraSelections(extraSelections); } void SourceHighlightIde::updateLineColInfo() { QTextCursor cursor = langTextEdit->textCursor(); statusBarFrame->setLineCol(cursor.blockNumber()+1, cursor.columnNumber()+1); } void SourceHighlightIde::highlightAll() { QApplication::setOverrideCursor(Qt::WaitCursor); highlight(); QApplication::restoreOverrideCursor(); } void SourceHighlightIde::startDebug() { originalLangDefFile = curFile; // let's clear possible previous errors frame->m_ui->sourceHighlightOutputGroupBox->setVisible(false); ui->actionDebug->setEnabled(false); ui->actionStep->setEnabled(true); ui->actionStopDebugging->setEnabled(true); // reset the debugging highlight output debuggerHighlightedOutput.str(""); frame->m_ui->debuggingGroupBox->setVisible(true); srchilite::SourceHighlight *sourcehighlight = createSourceHighlight(); // no optimization -> immediate output sourcehighlight->setOptimize(false); debuggerThread = new DebuggerThread (sourcehighlight, curFile, inputTextEdit->toPlainText(), &debuggerHighlightedOutput, &mutex, &waitCondVariable); connect(debuggerThread, SIGNAL(debuggerFileInfo(QString,int)), this, SLOT(setDebugFileInfo(QString,int))); connect(debuggerThread, SIGNAL(debuggerRegex(QString)), this, SLOT(setDebugRegex(QString))); connect(debuggerThread, SIGNAL(finished()), this, SLOT(debuggingFinished())); connect(debuggerThread, SIGNAL(started()), this, SLOT(debuggingStarted())); connect(debuggerThread, SIGNAL(highlightedSomething()), this, SLOT(updateHighlighted())); connect(debuggerThread, SIGNAL(highlightException(QString)), this, SLOT(handleException(QString))); connect(ui->actionStep, SIGNAL(triggered()), debuggerThread, SLOT(stepDebugging())); connect(ui->actionStopDebugging, SIGNAL(triggered()), debuggerThread, SLOT(stopDebugging())); // always output in html outputTextEdit->changeHighlightingLanguage("html.lang"); outputTextEdit->clear(); debuggerThread->start(); } void SourceHighlightIde::debuggingFinished() { ui->actionDebug->setEnabled(true); ui->actionStep->setEnabled(false); ui->actionStopDebugging->setEnabled(false); qDebug() << "Debugging finished\n"; delete debuggerThread; debuggerThread = 0; frame->m_ui->debuggingGroupBox->setVisible(false); loadFile(originalLangDefFile); statusBar()->showMessage(tr("Debugger terminated"), 2000); } void SourceHighlightIde::debuggingStarted() { //highlight(debuggerThread); } bool SourceHighlightIde::checkSaveBeforeHighlighting() { if (curFile == "" || langTextEdit->document()->isModified()) return save(); return true; } void SourceHighlightIde::setDebugFileInfo(const QString &fileInfo, int line) { frame->m_ui->fileLineEdit->setText(fileInfo); frame->m_ui->lineLineEdit->setText(QString::number(line)); if (fileInfo != curFile) loadFile(fileInfo); setCursorPosition(line); } void SourceHighlightIde::setDebugRegex(const QString ®ex) { frame->m_ui->regexLineEdit->setText(regex); } void SourceHighlightIde::updateHighlighted() { appendHighlightedOutput(debuggerHighlightedOutput.str().c_str(), "html"); } void SourceHighlightIde::updateHighlightedOutput(const QString &contents, const QString &outputFormat) { outputTextEdit->setPlainText(contents); // check whether we can provide a preview if (outputFormat.startsWith("html") || outputFormat.startsWith("xhtml")) { frame->setPreviewContents(contents); } else { frame->setNoPreview(); } outputTextEdit->document()->setModified(true); } void SourceHighlightIde::appendHighlightedOutput(const QString &contents, const QString &outputFormat) { outputTextEdit->moveCursor(QTextCursor::End); // current position of the curson QTextCursor cursor = outputTextEdit->textCursor(); int currentPos = cursor.position(); outputTextEdit->insertPlainText(contents); // check whether we can provide a preview if (outputFormat.startsWith("html") || outputFormat.startsWith("xhtml")) { frame->setPreviewContents(outputTextEdit->toPlainText() + highlightedCursor); // frame->goToEndOfPreviewContents(); does not work } else { frame->setNoPreview(); } outputTextEdit->document()->setModified(true); // move the cursor to the position it was before inserting the text cursor.setPosition(currentPos); outputTextEdit->setTextCursor(cursor); // now move it again to the end of the document, // this will select the text just inserted outputTextEdit->moveCursor(QTextCursor::End, QTextCursor::KeepAnchor); // reset the highlighted output debuggerHighlightedOutput.str(""); } srchilite::SourceHighlight *SourceHighlightIde::createSourceHighlight() { const QString outputFormatFile = "html.outlang"; // outputFormatComboBox->getCurrentOutputFormat(); srchilite::SourceHighlight *sourcehighlight = new srchilite::SourceHighlight(outputFormatFile.toStdString()); return sourcehighlight; } void SourceHighlightIde::highlight() { // make sure we have a .lang file that is saved if (!checkSaveBeforeHighlighting()) { QMessageBox::warning(this, tr("Source-Highlight-Ide"), tr("The current language definition file must be saved before starting the highlighting.")); statusBar()->showMessage(tr("Highlighting failed!"), 2000); return; } // let's clear possible previous errors frame->m_ui->sourceHighlightOutputGroupBox->setVisible(false); // for simplicity we output in html const QString outputFormatFile = "html.outlang"; // outputFormatComboBox->getCurrentOutputFormat(); srchilite::SourceHighlight sourcehighlight(outputFormatFile.toStdString()); QString input = inputTextEdit->toPlainText(); std::istringstream is(input.toStdString()); std::ostringstream os; // let's highlight! try { sourcehighlight.highlight(is, os, curFile.toStdString()); // check whether there's an highlighting scheme for output format // so that we highlight the source of the output const std::string outputFileExtension = sourcehighlight.getOutputFileExtension(); const QString outputFormatHighlightLangFile = langTextEdit->getHighlighter()->getLangDefFileFromFileName(outputFileExtension.c_str()); if (outputFormatHighlightLangFile != "") outputTextEdit->changeHighlightingLanguage(outputFormatHighlightLangFile); else outputTextEdit->changeHighlightingLanguage("nohilite.lang"); const QString highlightedContents = os.str().c_str(); updateHighlightedOutput(highlightedContents, outputFormatFile); statusBar()->showMessage(tr("Highlighting done"), 2000); } catch (const srchilite::ParserException &pe) { handleException(pe); } catch (const std::exception &e) { handleException(tr("Exception from Source-Highlight library:\n%1.") .arg(e.what())); } } void SourceHighlightIde::handleException(const srchilite::ParserException &pe) { std::ostringstream details; details << pe; frame->m_ui->sourceHighlightOutputGroupBox->setVisible(true); frame->m_ui->sourceHighlightOutputTextEdit->clear(); frame->m_ui->sourceHighlightOutputTextEdit->append(pe.what()); frame->m_ui->sourceHighlightOutputTextEdit->append(details.str().c_str()); if (fileInfo.indexIn(details.str().c_str()) != -1) { setCursorPosition(fileInfo.cap(2).toInt()); } statusBar()->showMessage(tr("Highlighting failed!"), 2000); } void SourceHighlightIde::handleException(const QString &ex) { if (fileInfo.indexIn(ex) != -1) { setCursorPosition(fileInfo.cap(2).toInt()); frame->m_ui->sourceHighlightOutputGroupBox->setVisible(true); frame->m_ui->sourceHighlightOutputTextEdit->clear(); frame->m_ui->sourceHighlightOutputTextEdit->append(ex); } else { QMessageBox::warning(this, tr("Source-Highlight-Ide"), ex); statusBar()->showMessage(tr("Highlighting failed!"), 2000); } } void SourceHighlightIde::showFindReplaceDialog() { findReplaceDialog->show(); } source-highlight-ide-1.0/filechooserframe.h0000644000175000017500000000152011345147416020726 0ustar bettinibettini/* * Copyright (C) 2009-2010 Lorenzo Bettini * See COPYING file that comes with this distribution */ #ifndef FILECHOOSERFRAME_H #define FILECHOOSERFRAME_H #include namespace Ui { class FileChooserFrame; } class FileChooserFrame : public QFrame { Q_OBJECT public: FileChooserFrame(QWidget *parent = 0); ~FileChooserFrame(); /** * Sets the description representing the file name * we must choose. * @param desc the description for the label */ void setFileDescription(const QString &desc); /** * @return the inserted (or chosen) file path */ QString getFilePath() const; protected: void changeEvent(QEvent *e); protected slots: void chooseFile(); private: Ui::FileChooserFrame *m_ui; }; #endif // FILECHOOSERFRAME_H source-highlight-ide-1.0/findreplacedialog.ui0000644000175000017500000000150111305445353021227 0ustar bettinibettini FindReplaceDialog 0 0 342 140 Find/Replace FindReplaceForm QWidget
findreplaceform.h
1
source-highlight-ide-1.0/debugger_step.png0000644000175000017500000000143211305445353020564 0ustar bettinibettiniPNG  IHDRw=sRGBbKGD pHYs B(xtIME86 IDATHUMHTQ?dޠ5j:ZYY ZBم+"DE[mj" MZզE3͌k|3fͼN }-:p=~~/U-5~ zª]?v(c]d;cN}Rv}^r9oMAt]Էv]1 ø춁 \U 5ܻG%Bxw:S#MTleDZWU!M#45%dѥξuc-tT/䊢 A K̀rKOzNY}yXN3JȂSݤ^dQ0PTǚN^fΊ#{P `# W}ʀH95 &i4@ &Ӡܷ̎J($LȀe'TI]ceXЌљLS+AdB Yb4Ƶؚ3Yg"Hb@wZK 1[.{[\Y 2aAQ^py2L?2Wd$h`W=}|i\^D,LD&d'v`=`@\  ONnblẎumeюv~WVÅ.(-?UIENDB`source-highlight-ide-1.0/editpaste.xpm0000644000175000017500000001437011305445353017754 0ustar bettinibettini/* XPM */ static char *editpaste[] = { /* columns rows colors chars-per-pixel */ "32 32 257 2", " c black", ". c #0D0900", "X c #191000", "o c #221700", "O c #2A1B00", "+ c #332200", "@ c #3E2900", "# c #3A2804", "$ c #4D3300", "% c #4B3E15", "& c #44391B", "* c #543800", "= c #5A3B00", "- c #4D4015", "; c #524E25", ": c #5A4F2C", "> c #524E3D", ", c #58562F", "< c #53503E", "1 c #5E623B", "2 c #634100", "3 c #684500", "4 c #6E4900", "5 c #614F11", "6 c #685416", "7 c #734C00", "8 c #784F00", "9 c #755B00", "0 c #7C5200", "q c #7C5A00", "w c #7B570F", "e c #69562F", "r c #786600", "t c #7F6A00", "y c #766300", "u c #60613F", "i c #7C6422", "p c #545143", "a c #54524B", "s c gray32", "d c #5D5D57", "f c #616641", "g c #67695D", "h c #6B734D", "j c #6C7553", "k c #616261", "l c #686A64", "z c #6B7162", "x c #727272", "c c #003DFF", "v c #0043FF", "b c #004BFF", "n c #0053FF", "m c #015AFF", "M c #0063FF", "N c #046DFF", "B c #0865FF", "V c #0378FF", "C c #1663FF", "Z c #1576FF", "A c #2678FF", "S c #6F7B84", "D c #77856D", "F c #7B8B75", "G c #0083FF", "H c #0197FF", "J c #0B92FF", "K c #1385FF", "L c #01A5FF", "P c #0DB5FF", "I c #3096FF", "U c #2DADFF", "Y c #2FBCFF", "T c #22C6FF", "R c #2AC5FF", "E c #30D0FF", "W c #38D5FF", "Q c #4493F1", "! c #5F83FF", "~ c #5F8AFF", "^ c #5290E4", "/ c #5F92FF", "( c #4CAAFE", ") c #40B8FF", "_ c #779DCB", "` c #6693E2", "' c #6290FF", "] c #649DFF", "[ c #71A6E5", "{ c #79A4FF", "} c #7FB3FF", "| c #68B8F3", " . c #42DCFF", ".. c #47E0FF", "X. c #58E9FF", "o. c #64C0EB", "O. c #6ADFEF", "+. c #825600", "@. c #845A00", "#. c #8B5C00", "$. c #905F00", "%. c #8C6103", "&. c #876807", "*. c #8A6111", "=. c #886E1B", "-. c #887600", ";. c #8C7A00", ":. c #936200", ">. c #986800", ",. c #926C22", "<. c #987A3F", "1. c #A07200", "2. c #A27511", "3. c #A97D15", "4. c #A77B14", "5. c #998712", "6. c #A68000", "7. c #A78F00", "8. c #AD8016", "9. c #AC9600", "0. c #BB8F00", "q. c #A99B2A", "w. c #B9A000", "e. c #B3A63C", "r. c #958D43", "t. c #988F44", "y. c #9A9346", "u. c #9F9948", "i. c #8B897C", "p. c #958F6F", "a. c #98937B", "s. c #A68443", "d. c #B08C41", "f. c #AF9462", "g. c #B39864", "h. c #B2A850", "j. c #BDB355", "k. c #C3972F", "l. c #C5A400", "z. c #CCAC00", "x. c #D7BB00", "c. c #CCA030", "v. c #CBB43E", "b. c #E4AD0C", "n. c #ECB600", "m. c #EDB900", "M. c #F2BB00", "N. c #C1B84C", "B. c #C1B757", "V. c #C5BB58", "C. c #C9BE5A", "Z. c #C2A978", "A. c #DFC000", "S. c #FDCB00", "D. c #F6C300", "F. c #FFD100", "G. c #FEDB00", "H. c #FFDF0E", "J. c #F5D500", "K. c #FBCD39", "L. c #FFE832", "P. c #FFE432", "I. c #CEC25C", "U. c #D7C648", "Y. c #DDC74B", "T. c #D0C55E", "R. c #D3C85F", "E. c #D5C960", "W. c #DDD264", "Q. c #E0CA4C", "!. c #E7D14E", "~. c #EFDA51", "^. c #F4D050", "/. c #F9D452", "(. c #FEDD53", "). c #E2D765", "_. c #E9DD69", "`. c #E6DD68", "'. c #FDDB6E", "]. c #FFEE4F", "[. c #FEE354", "{. c #FEEA55", "}. c #F7E153", "|. c #FFF056", " X c #ECE16A", ".X c #F1E56D", "XX c #F7EA6F", "oX c #F7EB70", "OX c #F9EC70", "+X c #FEF372", "@X c #979486", "#X c gray60", "$X c #969596", "%X c #8AA193", "&X c #82A89B", "*X c #8CAEA3", "=X c #86A7A9", "-X c #8BA2B1", ";X c #ACA580", ":X c #A5A291", ">X c #B3AF98", ",X c #B8B7AF", ".k.c.6 FXkXkXkXDXkXkXkXx i b.>.+ YXYXYXYXYXYXYXYXYXYX", "YXYXYX:.'.K.=.hX1X1X1X1X1X1X1Xd &.0.%.* 7 #.#.:.$.#.2 YXYXYX", "YXYXYX:./.M.%.$Xk k d s s s e w >.2.d.s.Z.9XrXlXxX0X7 YXYXYX", "YXYXYX:.^.M.1.: % % - % 5 6 &.GXIXIXPXPXPXPXPXLXIXIXg.3 YXYX", "YXYX#X:.^.m.v.y.r.r.r.r.h.h.2.IXPXPXKXKXPXKXHXxXUXIXIXf.4 YX", "YXYX#X:.^.m.Y.I.B.j.j.j.V.I.4.PXKXJXKXJXKXKXmXjXFXIXIXUX+. YX", "YXYX#X:.^.m.Y.E.I.j.j.j.I.R.8.PXKXSXJXJXJXSXnXeXDXIXIXUX<. YX", "YXYXYX:./.M.!.W.R.I.T.R.E.W.8.UXJXJXSXSXSXSXnXeX:X@Xi.X@X@X,X4 ", "YXYXYX:.(.S.}..X X X X X X X8.PXSXAXAXAXAXAXNXzXpXwXwXjX7 ", "YXYXYX:.(.S.[.OXOXOXoXoXt.; O s a p p p p a.AXMXvXaXzXGX+. ", "YXYXYX:.(.S.[.+X+X+XOX+X; 7X2X] / / ~ ! 2Xp MXNXNXNXSXKX+. YX", "YXYXYX:.(.F.|.+X+X+X+X+Xy., _ A m b v c ! p MXMXgXMXAXKX+. YX", "YXYXYX:.(.F.|.+X+X+X+X+X+Xj.& ^ B n b v ' < gXMXgXgXNXKX+. YX", "YXYXYX:.(.F.U.W.+X+X+X+X).y.g Q N m n b ~ < gXgXgXgXAXJXq YX", "YXYXYX:.[.l.j j y.I.j.r.1 =X( K N M m b ~ < gXgXgXgXNXKX+. YX", "YXYXYX:.[.t 5X4X&XD F =X| U J G V Z A C / < fXgXgXgXMXHX+. YX", "YXYXYX:.[.l.h 3XX...W T P L H K I [ S ` { < fXfXfXfXMXKX+. YX", "YXYXYX:.[.G.e.1 *XO...E R Y Y | -Xd Z.k 6X> fXfXfXfXBXJX+. YX", "YXYXYX:.[.G.{.`.u.1 F &X*X%Xz l a.uXfXp.> p.sXsXsXfXBXJX+. YX", "YXYXYX:.{.G.|.+X+X XN.q.5.7.q cXvXsXsXsXsXsXsXsXsXsXBXKX+. YX", "YXYXYX:.|.G.].|.L.H.G.G.G.A.1.JXvXsXsXsXsXsXsXsXfXdXCXPX+. YX", "YXYXYX:.{.G.G.G.G.G.x.w.;.t :.HXdXsXsXsXsXsXdXvXBXZXLXtX= YX", "YXYXYX:.{.G.J.x.9.;.r 9 q 0 #.KXvXsXaXsXvXBXCXHXiXg.*.= O YX", "YXYXYX:.L.9.-.y 9 q 0 = + #.HXbXdXbXVXZXcX8X,.3 $ . YX", "YXYXYX%.z.9 q 7 * o $.PXZXmXmX0Xs.0 $ X YX", "YXYXYX8 0 = o :.IXpXg.*.= O YXYXYXYX", "YXYXYX YXYX@.#.2 @ . YXYXYXYXYXYX", "YXYXYX YXYXYXYXYX YXYXYXYXYXYXYXYXYX", "YXYXYXYXYXYXYXYXYXYXYXYXYXYX YXYXYXYXYXYXYXYXYXYXYXYX" }; source-highlight-ide-1.0/application.qrc0000644000175000017500000000071311305445353020252 0ustar bettinibettini editcopy.xpm editcut.xpm filenew.xpm fileopen.xpm editpaste.xpm filesave.xpm highlight.xpm filesavehighlighted.xpm debugger_start.png debugger_stop.png debugger_step.png source-highlight-ide-1.0/sourcehighlightidewindow.ui0000644000175000017500000002450511305445353022706 0ustar bettinibettini SourceHighlightIdeWindow 0 0 800 600 MainWindow 0 0 800 23 &File &Edit H&ighlighting File TopToolBarArea false Edit TopToolBarArea false Highlight TopToolBarArea false :/filenew.xpm:/filenew.xpm &New Create a new file in this window Ctrl+Shift+N :/fileopen.xpm:/fileopen.xpm &Open... Open an existing file in this window Ctrl+Shift+O false :/filesave.xpm:/filesave.xpm &Save Save the document to disk Ctrl+S true Save &As... Save the document under a new name false :/filesavehighlighted.xpm:/filesavehighlighted.xpm Save &Highlighted Save the highlighted document to disk Ctrl+Alt+S true Save H&ighlighted As... Save the highlighted document under a new name false :/editcut.xpm:/editcut.xpm Cu&t Cut the current selection's contents to the clipboard Ctrl+X false :/editcopy.xpm:/editcopy.xpm &Copy Copy the current selection's contents to the clipboard Ctrl+C :/editpaste.xpm:/editpaste.xpm &Paste Paste the clipboard's contents into the current selection Ctrl+V true :/highlight.xpm:/highlight.xpm &Highlight Generates the highlighted output Ctrl+H &Customize Highlighting Style... Customize the highlighting style :/debugger_start.png:/debugger_start.png Start &Debug Start the debugging of the current language definition file F5 false :/debugger_stop.png:/debugger_stop.png S&top Debugging Stop debugging Shift+F5 false :/debugger_step.png:/debugger_step.png &Step Debugging Step F10 Find/Replace... Opens the Find/Replace dialog Ctrl+F Find Next Find the next occurrence of the searched string F3 Find Previous Find the previous occurrence of the searched string Shift+F3 source-highlight-ide-1.0/filechooserframe.ui0000644000175000017500000000275611305445353021125 0ustar bettinibettini FileChooserFrame 0 0 400 300 Frame QFrame::StyledPanel QFrame::Raised file choose a file from the file system ... the chosen file (including path) source-highlight-ide-1.0/debugger_start.png0000644000175000017500000000232311305445353020746 0ustar bettinibettiniPNG  IHDRw=bKGD pHYs  tIME  1H`IDATxڵoTU?v:ytm"J[h b\0?Н ƸpHV mMStf{E &mc_: ĒMzTSJ %#υ['d.YL9g2D A+P TH'JDRgk dՂ3ƿ;7'c+OzTu _3M^*-Λ11̡WUJPW:TkB A;9սoǵl8~V_[m2XZBu$ 6B(Kio&hD ݑh 6ϻ_9jg ujW>Ze}:┏m1H}ʼn!k`}GzR!ސlF~ڠ0fWX4L^T?R0qiHP"m pʕ*E:V;ݻ:deȷ|-m MY/z{Ca Slzz^xV"b)s5JeRUh25=/5=C~ۈ]򊧅8O:jT4w@I0ev, 𥆕d*aiii3 WH{'@whU{YY^\Wa~g/܉wt(j7E,feQgQW 3]t=?p` %7aS^u#Ss0P}Cڠ<[WJSuu4Hی,Y{)仙܁-C͵b,磵D_I&bSLf ,qԎގRy`-LݹZMHFAe08xV{j)ܝ}Q]='/ g9)(lIENDB`source-highlight-ide-1.0/doc/0000755000175000017500000000000011346256130016002 5ustar bettinibettinisource-highlight-ide-1.0/doc/Doxygen.log0000644000175000017500000000000011346256132020112 0ustar bettinibettinisource-highlight-ide-1.0/doc/Doxyfile0000644000175000017500000017453511312456332017526 0ustar bettinibettini# Doxyfile 1.5.8 # This file describes the settings to be used by the documentation system # doxygen (www.doxygen.org) for a project # # All text after a hash (#) is considered a comment and will be ignored # The format is: # TAG = value [value, ...] # For lists items can also be appended using: # TAG += value [value, ...] # Values that contain spaces should be placed between quotes (" ") #--------------------------------------------------------------------------- # Project related configuration options #--------------------------------------------------------------------------- # This tag specifies the encoding used for all characters in the config file # that follow. The default is UTF-8 which is also the encoding used for all # text before the first occurrence of this tag. Doxygen uses libiconv (or the # iconv built into libc) for the transcoding. See # http://www.gnu.org/software/libiconv for the list of possible encodings. DOXYFILE_ENCODING = UTF-8 # The PROJECT_NAME tag is a single word (or a sequence of words surrounded # by quotes) that should identify the project. PROJECT_NAME = "Source-Highlight-Ide User's Guide" # The PROJECT_NUMBER tag can be used to enter a project or revision number. # This could be handy for archiving the generated documentation or # if some version control system is used. PROJECT_NUMBER = 1.0 # The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute) # base path where the generated documentation will be put. # If a relative path is entered, it will be relative to the location # where doxygen was started. If left blank the current directory will be used. OUTPUT_DIRECTORY = ./share/doc/source-highlight-ide # If the CREATE_SUBDIRS tag is set to YES, then doxygen will create # 4096 sub-directories (in 2 levels) under the output directory of each output # format and will distribute the generated files over these directories. # Enabling this option can be useful when feeding doxygen a huge amount of # source files, where putting all generated files in the same directory would # otherwise cause performance problems for the file system. CREATE_SUBDIRS = NO # The OUTPUT_LANGUAGE tag is used to specify the language in which all # documentation generated by doxygen is written. Doxygen will use this # information to generate all constant output in the proper language. # The default language is English, other supported languages are: # Afrikaans, Arabic, Brazilian, Catalan, Chinese, Chinese-Traditional, # Croatian, Czech, Danish, Dutch, Farsi, Finnish, French, German, Greek, # Hungarian, Italian, Japanese, Japanese-en (Japanese with English messages), # Korean, Korean-en, Lithuanian, Norwegian, Macedonian, Persian, Polish, # Portuguese, Romanian, Russian, Serbian, Serbian-Cyrilic, Slovak, Slovene, # Spanish, Swedish, and Ukrainian. OUTPUT_LANGUAGE = English # If the BRIEF_MEMBER_DESC tag is set to YES (the default) Doxygen will # include brief member descriptions after the members that are listed in # the file and class documentation (similar to JavaDoc). # Set to NO to disable this. BRIEF_MEMBER_DESC = NO # If the REPEAT_BRIEF tag is set to YES (the default) Doxygen will prepend # the brief description of a member or function before the detailed description. # Note: if both HIDE_UNDOC_MEMBERS and BRIEF_MEMBER_DESC are set to NO, the # brief descriptions will be completely suppressed. REPEAT_BRIEF = YES # This tag implements a quasi-intelligent brief description abbreviator # that is used to form the text in various listings. Each string # in this list, if found as the leading text of the brief description, will be # stripped from the text and the result after processing the whole list, is # used as the annotated text. Otherwise, the brief description is used as-is. # If left blank, the following values are used ("$name" is automatically # replaced with the name of the entity): "The $name class" "The $name widget" # "The $name file" "is" "provides" "specifies" "contains" # "represents" "a" "an" "the" ABBREVIATE_BRIEF = # If the ALWAYS_DETAILED_SEC and REPEAT_BRIEF tags are both set to YES then # Doxygen will generate a detailed section even if there is only a brief # description. ALWAYS_DETAILED_SEC = YES # If the INLINE_INHERITED_MEMB tag is set to YES, doxygen will show all # inherited members of a class in the documentation of that class as if those # members were ordinary class members. Constructors, destructors and assignment # operators of the base classes will not be shown. INLINE_INHERITED_MEMB = NO # If the FULL_PATH_NAMES tag is set to YES then Doxygen will prepend the full # path before files name in the file list and in the header files. If set # to NO the shortest path that makes the file name unique will be used. FULL_PATH_NAMES = NO # If the FULL_PATH_NAMES tag is set to YES then the STRIP_FROM_PATH tag # can be used to strip a user-defined part of the path. Stripping is # only done if one of the specified strings matches the left-hand part of # the path. The tag can be used to show relative paths in the file list. # If left blank the directory from which doxygen is run is used as the # path to strip. STRIP_FROM_PATH = # The STRIP_FROM_INC_PATH tag can be used to strip a user-defined part of # the path mentioned in the documentation of a class, which tells # the reader which header file to include in order to use a class. # If left blank only the name of the header file containing the class # definition is used. Otherwise one should specify the include paths that # are normally passed to the compiler using the -I flag. STRIP_FROM_INC_PATH = # If the SHORT_NAMES tag is set to YES, doxygen will generate much shorter # (but less readable) file names. This can be useful is your file systems # doesn't support long names like on DOS, Mac, or CD-ROM. SHORT_NAMES = NO # If the JAVADOC_AUTOBRIEF tag is set to YES then Doxygen # will interpret the first line (until the first dot) of a JavaDoc-style # comment as the brief description. If set to NO, the JavaDoc # comments will behave just like regular Qt-style comments # (thus requiring an explicit @brief command for a brief description.) JAVADOC_AUTOBRIEF = NO # If the QT_AUTOBRIEF tag is set to YES then Doxygen will # interpret the first line (until the first dot) of a Qt-style # comment as the brief description. If set to NO, the comments # will behave just like regular Qt-style comments (thus requiring # an explicit \brief command for a brief description.) QT_AUTOBRIEF = NO # The MULTILINE_CPP_IS_BRIEF tag can be set to YES to make Doxygen # treat a multi-line C++ special comment block (i.e. a block of //! or /// # comments) as a brief description. This used to be the default behaviour. # The new default is to treat a multi-line C++ comment block as a detailed # description. Set this tag to YES if you prefer the old behaviour instead. MULTILINE_CPP_IS_BRIEF = NO # If the INHERIT_DOCS tag is set to YES (the default) then an undocumented # member inherits the documentation from any documented member that it # re-implements. INHERIT_DOCS = YES # If the SEPARATE_MEMBER_PAGES tag is set to YES, then doxygen will produce # a new page for each member. If set to NO, the documentation of a member will # be part of the file/class/namespace that contains it. SEPARATE_MEMBER_PAGES = NO # The TAB_SIZE tag can be used to set the number of spaces in a tab. # Doxygen uses this value to replace tabs by spaces in code fragments. TAB_SIZE = 2 # This tag can be used to specify a number of aliases that acts # as commands in the documentation. An alias has the form "name=value". # For example adding "sideeffect=\par Side Effects:\n" will allow you to # put the command \sideeffect (or @sideeffect) in the documentation, which # will result in a user-defined paragraph with heading "Side Effects:". # You can put \n's in the value part of an alias to insert newlines. ALIASES = # Set the OPTIMIZE_OUTPUT_FOR_C tag to YES if your project consists of C # sources only. Doxygen will then generate output that is more tailored for C. # For instance, some of the names that are used will be different. The list # of all members will be omitted, etc. OPTIMIZE_OUTPUT_FOR_C = NO # Set the OPTIMIZE_OUTPUT_JAVA tag to YES if your project consists of Java # sources only. Doxygen will then generate output that is more tailored for # Java. For instance, namespaces will be presented as packages, qualified # scopes will look different, etc. OPTIMIZE_OUTPUT_JAVA = NO # Set the OPTIMIZE_FOR_FORTRAN tag to YES if your project consists of Fortran # sources only. Doxygen will then generate output that is more tailored for # Fortran. OPTIMIZE_FOR_FORTRAN = NO # Set the OPTIMIZE_OUTPUT_VHDL tag to YES if your project consists of VHDL # sources. Doxygen will then generate output that is tailored for # VHDL. OPTIMIZE_OUTPUT_VHDL = NO # Doxygen selects the parser to use depending on the extension of the files it parses. # With this tag you can assign which parser to use for a given extension. # Doxygen has a built-in mapping, but you can override or extend it using this tag. # The format is ext=language, where ext is a file extension, and language is one of # the parsers supported by doxygen: IDL, Java, Javascript, C#, C, C++, D, PHP, # Objective-C, Python, Fortran, VHDL, C, C++. For instance to make doxygen treat # .inc files as Fortran files (default is PHP), and .f files as C (default is Fortran), # use: inc=Fortran f=C EXTENSION_MAPPING = # If you use STL classes (i.e. std::string, std::vector, etc.) but do not want # to include (a tag file for) the STL sources as input, then you should # set this tag to YES in order to let doxygen match functions declarations and # definitions whose arguments contain STL classes (e.g. func(std::string); v.s. # func(std::string) {}). This also make the inheritance and collaboration # diagrams that involve STL classes more complete and accurate. BUILTIN_STL_SUPPORT = NO # If you use Microsoft's C++/CLI language, you should set this option to YES to # enable parsing support. CPP_CLI_SUPPORT = NO # Set the SIP_SUPPORT tag to YES if your project consists of sip sources only. # Doxygen will parse them like normal C++ but will assume all classes use public # instead of private inheritance when no explicit protection keyword is present. SIP_SUPPORT = NO # For Microsoft's IDL there are propget and propput attributes to indicate getter # and setter methods for a property. Setting this option to YES (the default) # will make doxygen to replace the get and set methods by a property in the # documentation. This will only work if the methods are indeed getting or # setting a simple type. If this is not the case, or you want to show the # methods anyway, you should set this option to NO. IDL_PROPERTY_SUPPORT = YES # If member grouping is used in the documentation and the DISTRIBUTE_GROUP_DOC # tag is set to YES, then doxygen will reuse the documentation of the first # member in the group (if any) for the other members of the group. By default # all members of a group must be documented explicitly. DISTRIBUTE_GROUP_DOC = NO # Set the SUBGROUPING tag to YES (the default) to allow class member groups of # the same type (for instance a group of public functions) to be put as a # subgroup of that type (e.g. under the Public Functions section). Set it to # NO to prevent subgrouping. Alternatively, this can be done per class using # the \nosubgrouping command. SUBGROUPING = NO # When TYPEDEF_HIDES_STRUCT is enabled, a typedef of a struct, union, or enum # is documented as struct, union, or enum with the name of the typedef. So # typedef struct TypeS {} TypeT, will appear in the documentation as a struct # with name TypeT. When disabled the typedef will appear as a member of a file, # namespace, or class. And the struct will be named TypeS. This can typically # be useful for C code in case the coding convention dictates that all compound # types are typedef'ed and only the typedef is referenced, never the tag name. TYPEDEF_HIDES_STRUCT = NO # The SYMBOL_CACHE_SIZE determines the size of the internal cache use to # determine which symbols to keep in memory and which to flush to disk. # When the cache is full, less often used symbols will be written to disk. # For small to medium size projects (<1000 input files) the default value is # probably good enough. For larger projects a too small cache size can cause # doxygen to be busy swapping symbols to and from disk most of the time # causing a significant performance penality. # If the system has enough physical memory increasing the cache will improve the # performance by keeping more symbols in memory. Note that the value works on # a logarithmic scale so increasing the size by one will rougly double the # memory usage. The cache size is given by this formula: # 2^(16+SYMBOL_CACHE_SIZE). The valid range is 0..9, the default is 0, # corresponding to a cache size of 2^16 = 65536 symbols SYMBOL_CACHE_SIZE = 0 #--------------------------------------------------------------------------- # Build related configuration options #--------------------------------------------------------------------------- # If the EXTRACT_ALL tag is set to YES doxygen will assume all entities in # documentation are documented, even if no documentation was available. # Private class members and static file members will be hidden unless # the EXTRACT_PRIVATE and EXTRACT_STATIC tags are set to YES EXTRACT_ALL = NO # If the EXTRACT_PRIVATE tag is set to YES all private members of a class # will be included in the documentation. EXTRACT_PRIVATE = NO # If the EXTRACT_STATIC tag is set to YES all static members of a file # will be included in the documentation. EXTRACT_STATIC = NO # If the EXTRACT_LOCAL_CLASSES tag is set to YES classes (and structs) # defined locally in source files will be included in the documentation. # If set to NO only classes defined in header files are included. EXTRACT_LOCAL_CLASSES = NO # This flag is only useful for Objective-C code. When set to YES local # methods, which are defined in the implementation section but not in # the interface are included in the documentation. # If set to NO (the default) only methods in the interface are included. EXTRACT_LOCAL_METHODS = NO # If this flag is set to YES, the members of anonymous namespaces will be # extracted and appear in the documentation as a namespace called # 'anonymous_namespace{file}', where file will be replaced with the base # name of the file that contains the anonymous namespace. By default # anonymous namespace are hidden. EXTRACT_ANON_NSPACES = NO # If the HIDE_UNDOC_MEMBERS tag is set to YES, Doxygen will hide all # undocumented members of documented classes, files or namespaces. # If set to NO (the default) these members will be included in the # various overviews, but no documentation section is generated. # This option has no effect if EXTRACT_ALL is enabled. HIDE_UNDOC_MEMBERS = NO # If the HIDE_UNDOC_CLASSES tag is set to YES, Doxygen will hide all # undocumented classes that are normally visible in the class hierarchy. # If set to NO (the default) these classes will be included in the various # overviews. This option has no effect if EXTRACT_ALL is enabled. HIDE_UNDOC_CLASSES = NO # If the HIDE_FRIEND_COMPOUNDS tag is set to YES, Doxygen will hide all # friend (class|struct|union) declarations. # If set to NO (the default) these declarations will be included in the # documentation. HIDE_FRIEND_COMPOUNDS = NO # If the HIDE_IN_BODY_DOCS tag is set to YES, Doxygen will hide any # documentation blocks found inside the body of a function. # If set to NO (the default) these blocks will be appended to the # function's detailed documentation block. HIDE_IN_BODY_DOCS = NO # The INTERNAL_DOCS tag determines if documentation # that is typed after a \internal command is included. If the tag is set # to NO (the default) then the documentation will be excluded. # Set it to YES to include the internal documentation. INTERNAL_DOCS = NO # If the CASE_SENSE_NAMES tag is set to NO then Doxygen will only generate # file names in lower-case letters. If set to YES upper-case letters are also # allowed. This is useful if you have classes or files whose names only differ # in case and if your file system supports case sensitive file names. Windows # and Mac users are advised to set this option to NO. CASE_SENSE_NAMES = NO # If the HIDE_SCOPE_NAMES tag is set to NO (the default) then Doxygen # will show members with their full class and namespace scopes in the # documentation. If set to YES the scope will be hidden. HIDE_SCOPE_NAMES = NO # If the SHOW_INCLUDE_FILES tag is set to YES (the default) then Doxygen # will put a list of the files that are included by a file in the documentation # of that file. SHOW_INCLUDE_FILES = YES # If the INLINE_INFO tag is set to YES (the default) then a tag [inline] # is inserted in the documentation for inline members. INLINE_INFO = YES # If the SORT_MEMBER_DOCS tag is set to YES (the default) then doxygen # will sort the (detailed) documentation of file and class members # alphabetically by member name. If set to NO the members will appear in # declaration order. SORT_MEMBER_DOCS = YES # If the SORT_BRIEF_DOCS tag is set to YES then doxygen will sort the # brief documentation of file, namespace and class members alphabetically # by member name. If set to NO (the default) the members will appear in # declaration order. SORT_BRIEF_DOCS = NO # If the SORT_GROUP_NAMES tag is set to YES then doxygen will sort the # hierarchy of group names into alphabetical order. If set to NO (the default) # the group names will appear in their defined order. SORT_GROUP_NAMES = NO # If the SORT_BY_SCOPE_NAME tag is set to YES, the class list will be # sorted by fully-qualified names, including namespaces. If set to # NO (the default), the class list will be sorted only by class name, # not including the namespace part. # Note: This option is not very useful if HIDE_SCOPE_NAMES is set to YES. # Note: This option applies only to the class list, not to the # alphabetical list. SORT_BY_SCOPE_NAME = NO # The GENERATE_TODOLIST tag can be used to enable (YES) or # disable (NO) the todo list. This list is created by putting \todo # commands in the documentation. GENERATE_TODOLIST = NO # The GENERATE_TESTLIST tag can be used to enable (YES) or # disable (NO) the test list. This list is created by putting \test # commands in the documentation. GENERATE_TESTLIST = NO # The GENERATE_BUGLIST tag can be used to enable (YES) or # disable (NO) the bug list. This list is created by putting \bug # commands in the documentation. GENERATE_BUGLIST = NO # The GENERATE_DEPRECATEDLIST tag can be used to enable (YES) or # disable (NO) the deprecated list. This list is created by putting # \deprecated commands in the documentation. GENERATE_DEPRECATEDLIST= YES # The ENABLED_SECTIONS tag can be used to enable conditional # documentation sections, marked by \if sectionname ... \endif. ENABLED_SECTIONS = # The MAX_INITIALIZER_LINES tag determines the maximum number of lines # the initial value of a variable or define consists of for it to appear in # the documentation. If the initializer consists of more lines than specified # here it will be hidden. Use a value of 0 to hide initializers completely. # The appearance of the initializer of individual variables and defines in the # documentation can be controlled using \showinitializer or \hideinitializer # command in the documentation regardless of this setting. MAX_INITIALIZER_LINES = 30 # Set the SHOW_USED_FILES tag to NO to disable the list of files generated # at the bottom of the documentation of classes and structs. If set to YES the # list will mention the files that were used to generate the documentation. SHOW_USED_FILES = NO # If the sources in your project are distributed over multiple directories # then setting the SHOW_DIRECTORIES tag to YES will show the directory hierarchy # in the documentation. The default is NO. SHOW_DIRECTORIES = NO # Set the SHOW_FILES tag to NO to disable the generation of the Files page. # This will remove the Files entry from the Quick Index and from the # Folder Tree View (if specified). The default is YES. SHOW_FILES = NO # Set the SHOW_NAMESPACES tag to NO to disable the generation of the # Namespaces page. # This will remove the Namespaces entry from the Quick Index # and from the Folder Tree View (if specified). The default is YES. SHOW_NAMESPACES = YES # The FILE_VERSION_FILTER tag can be used to specify a program or script that # doxygen should invoke to get the current version for each file (typically from # the version control system). Doxygen will invoke the program by executing (via # popen()) the command , where is the value of # the FILE_VERSION_FILTER tag, and is the name of an input file # provided by doxygen. Whatever the program writes to standard output # is used as the file version. See the manual for examples. FILE_VERSION_FILTER = # The LAYOUT_FILE tag can be used to specify a layout file which will be parsed by # doxygen. The layout file controls the global structure of the generated output files # in an output format independent way. The create the layout file that represents # doxygen's defaults, run doxygen with the -l option. You can optionally specify a # file name after the option, if omitted DoxygenLayout.xml will be used as the name # of the layout file. LAYOUT_FILE = #--------------------------------------------------------------------------- # configuration options related to warning and progress messages #--------------------------------------------------------------------------- # The QUIET tag can be used to turn on/off the messages that are generated # by doxygen. Possible values are YES and NO. If left blank NO is used. QUIET = YES # The WARNINGS tag can be used to turn on/off the warning messages that are # generated by doxygen. Possible values are YES and NO. If left blank # NO is used. WARNINGS = YES # If WARN_IF_UNDOCUMENTED is set to YES, then doxygen will generate warnings # for undocumented members. If EXTRACT_ALL is set to YES then this flag will # automatically be disabled. WARN_IF_UNDOCUMENTED = YES # If WARN_IF_DOC_ERROR is set to YES, doxygen will generate warnings for # potential errors in the documentation, such as not documenting some # parameters in a documented function, or documenting parameters that # don't exist or using markup commands wrongly. WARN_IF_DOC_ERROR = YES # This WARN_NO_PARAMDOC option can be abled to get warnings for # functions that are documented, but have no documentation for their parameters # or return value. If set to NO (the default) doxygen will only warn about # wrong or incomplete parameter documentation, but not about the absence of # documentation. WARN_NO_PARAMDOC = NO # The WARN_FORMAT tag determines the format of the warning messages that # doxygen can produce. The string should contain the $file, $line, and $text # tags, which will be replaced by the file and line number from which the # warning originated and the warning text. Optionally the format may contain # $version, which will be replaced by the version of the file (if it could # be obtained via FILE_VERSION_FILTER) WARN_FORMAT = "$file:$line: $text" # The WARN_LOGFILE tag can be used to specify a file to which warning # and error messages should be written. If left blank the output is written # to stderr. WARN_LOGFILE = Doxygen.log #--------------------------------------------------------------------------- # configuration options related to the input files #--------------------------------------------------------------------------- # The INPUT tag can be used to specify the files and/or directories that contain # documented source files. You may enter file names like "myfile.cpp" or # directories like "/usr/src/myproject". Separate the files or directories # with spaces. INPUT = . # This tag can be used to specify the character encoding of the source files # that doxygen parses. Internally doxygen uses the UTF-8 encoding, which is # also the default input encoding. Doxygen uses libiconv (or the iconv built # into libc) for the transcoding. See http://www.gnu.org/software/libiconv for # the list of possible encodings. INPUT_ENCODING = UTF-8 # If the value of the INPUT tag contains directories, you can use the # FILE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp # and *.h) to filter out the source-files in the directories. If left # blank the following patterns are tested: # *.c *.cc *.cxx *.cpp *.c++ *.java *.ii *.ixx *.ipp *.i++ *.inl *.h *.hh *.hxx # *.hpp *.h++ *.idl *.odl *.cs *.php *.php3 *.inc *.m *.mm *.py *.f90 FILE_PATTERNS = *.h # The RECURSIVE tag can be used to turn specify whether or not subdirectories # should be searched for input files as well. Possible values are YES and NO. # If left blank NO is used. RECURSIVE = NO # The EXCLUDE tag can be used to specify files and/or directories that should # excluded from the INPUT source files. This way you can easily exclude a # subdirectory from a directory tree whose root is specified with the INPUT tag. EXCLUDE = # The EXCLUDE_SYMLINKS tag can be used select whether or not files or # directories that are symbolic links (a Unix filesystem feature) are excluded # from the input. EXCLUDE_SYMLINKS = NO # If the value of the INPUT tag contains directories, you can use the # EXCLUDE_PATTERNS tag to specify one or more wildcard patterns to exclude # certain files from those directories. Note that the wildcards are matched # against the file with absolute path, so to exclude all test directories # for example use the pattern */test/* EXCLUDE_PATTERNS = */test/* # The EXCLUDE_SYMBOLS tag can be used to specify one or more symbol names # (namespaces, classes, functions, etc.) that should be excluded from the # output. The symbol name can be a fully qualified name, a word, or if the # wildcard * is used, a substring. Examples: ANamespace, AClass, # AClass::ANamespace, ANamespace::*Test EXCLUDE_SYMBOLS = # The EXAMPLE_PATH tag can be used to specify one or more files or # directories that contain example code fragments that are included (see # the \include command). EXAMPLE_PATH = ../ # If the value of the EXAMPLE_PATH tag contains directories, you can use the # EXAMPLE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp # and *.h) to filter out the source-files in the directories. If left # blank all files are included. EXAMPLE_PATTERNS = # If the EXAMPLE_RECURSIVE tag is set to YES then subdirectories will be # searched for input files to be used with the \include or \dontinclude # commands irrespective of the value of the RECURSIVE tag. # Possible values are YES and NO. If left blank NO is used. EXAMPLE_RECURSIVE = NO # The IMAGE_PATH tag can be used to specify one or more files or # directories that contain image that are included in the documentation (see # the \image command). IMAGE_PATH = images # The INPUT_FILTER tag can be used to specify a program that doxygen should # invoke to filter for each input file. Doxygen will invoke the filter program # by executing (via popen()) the command , where # is the value of the INPUT_FILTER tag, and is the name of an # input file. Doxygen will then use the output that the filter program writes # to standard output. # If FILTER_PATTERNS is specified, this tag will be # ignored. INPUT_FILTER = # The FILTER_PATTERNS tag can be used to specify filters on a per file pattern # basis. # Doxygen will compare the file name with each pattern and apply the # filter if there is a match. # The filters are a list of the form: # pattern=filter (like *.cpp=my_cpp_filter). See INPUT_FILTER for further # info on how filters are used. If FILTER_PATTERNS is empty, INPUT_FILTER # is applied to all files. FILTER_PATTERNS = # If the FILTER_SOURCE_FILES tag is set to YES, the input filter (if set using # INPUT_FILTER) will be used to filter the input files when producing source # files to browse (i.e. when SOURCE_BROWSER is set to YES). FILTER_SOURCE_FILES = NO #--------------------------------------------------------------------------- # configuration options related to source browsing #--------------------------------------------------------------------------- # If the SOURCE_BROWSER tag is set to YES then a list of source files will # be generated. Documented entities will be cross-referenced with these sources. # Note: To get rid of all source code in the generated output, make sure also # VERBATIM_HEADERS is set to NO. SOURCE_BROWSER = NO # Setting the INLINE_SOURCES tag to YES will include the body # of functions and classes directly in the documentation. INLINE_SOURCES = NO # Setting the STRIP_CODE_COMMENTS tag to YES (the default) will instruct # doxygen to hide any special comment blocks from generated source code # fragments. Normal C and C++ comments will always remain visible. STRIP_CODE_COMMENTS = YES # If the REFERENCED_BY_RELATION tag is set to YES # then for each documented function all documented # functions referencing it will be listed. REFERENCED_BY_RELATION = NO # If the REFERENCES_RELATION tag is set to YES # then for each documented function all documented entities # called/used by that function will be listed. REFERENCES_RELATION = NO # If the REFERENCES_LINK_SOURCE tag is set to YES (the default) # and SOURCE_BROWSER tag is set to YES, then the hyperlinks from # functions in REFERENCES_RELATION and REFERENCED_BY_RELATION lists will # link to the source code. # Otherwise they will link to the documentation. REFERENCES_LINK_SOURCE = NO # If the USE_HTAGS tag is set to YES then the references to source code # will point to the HTML generated by the htags(1) tool instead of doxygen # built-in source browser. The htags tool is part of GNU's global source # tagging system (see http://www.gnu.org/software/global/global.html). You # will need version 4.8.6 or higher. USE_HTAGS = NO # If the VERBATIM_HEADERS tag is set to YES (the default) then Doxygen # will generate a verbatim copy of the header file for each class for # which an include is specified. Set to NO to disable this. VERBATIM_HEADERS = YES #--------------------------------------------------------------------------- # configuration options related to the alphabetical class index #--------------------------------------------------------------------------- # If the ALPHABETICAL_INDEX tag is set to YES, an alphabetical index # of all compounds will be generated. Enable this if the project # contains a lot of classes, structs, unions or interfaces. ALPHABETICAL_INDEX = YES # If the alphabetical index is enabled (see ALPHABETICAL_INDEX) then # the COLS_IN_ALPHA_INDEX tag can be used to specify the number of columns # in which this list will be split (can be a number in the range [1..20]) COLS_IN_ALPHA_INDEX = 4 # In case all classes in a project start with a common prefix, all # classes will be put under the same header in the alphabetical index. # The IGNORE_PREFIX tag can be used to specify one or more prefixes that # should be ignored while generating the index headers. IGNORE_PREFIX = Q #--------------------------------------------------------------------------- # configuration options related to the HTML output #--------------------------------------------------------------------------- # If the GENERATE_HTML tag is set to YES (the default) Doxygen will # generate HTML output. GENERATE_HTML = YES # The HTML_OUTPUT tag is used to specify where the HTML docs will be put. # If a relative path is entered the value of OUTPUT_DIRECTORY will be # put in front of it. If left blank `html' will be used as the default path. HTML_OUTPUT = html # The HTML_FILE_EXTENSION tag can be used to specify the file extension for # each generated HTML page (for example: .htm,.php,.asp). If it is left blank # doxygen will generate files with .html extension. HTML_FILE_EXTENSION = .html # The HTML_HEADER tag can be used to specify a personal HTML header for # each generated HTML page. If it is left blank doxygen will generate a # standard header. HTML_HEADER = # The HTML_FOOTER tag can be used to specify a personal HTML footer for # each generated HTML page. If it is left blank doxygen will generate a # standard footer. HTML_FOOTER = # The HTML_STYLESHEET tag can be used to specify a user-defined cascading # style sheet that is used by each HTML page. It can be used to # fine-tune the look of the HTML output. If the tag is left blank doxygen # will generate a default style sheet. Note that doxygen will try to copy # the style sheet file to the HTML output directory, so don't put your own # stylesheet in the HTML output directory as well, or it will be erased! HTML_STYLESHEET = # If the HTML_ALIGN_MEMBERS tag is set to YES, the members of classes, # files or namespaces will be aligned in HTML using tables. If set to # NO a bullet list will be used. HTML_ALIGN_MEMBERS = YES # If the HTML_DYNAMIC_SECTIONS tag is set to YES then the generated HTML # documentation will contain sections that can be hidden and shown after the # page has loaded. For this to work a browser that supports # JavaScript and DHTML is required (for instance Mozilla 1.0+, Firefox # Netscape 6.0+, Internet explorer 5.0+, Konqueror, or Safari). HTML_DYNAMIC_SECTIONS = NO # If the GENERATE_DOCSET tag is set to YES, additional index files # will be generated that can be used as input for Apple's Xcode 3 # integrated development environment, introduced with OSX 10.5 (Leopard). # To create a documentation set, doxygen will generate a Makefile in the # HTML output directory. Running make will produce the docset in that # directory and running "make install" will install the docset in # ~/Library/Developer/Shared/Documentation/DocSets so that Xcode will find # it at startup. # See http://developer.apple.com/tools/creatingdocsetswithdoxygen.html for more information. GENERATE_DOCSET = NO # When GENERATE_DOCSET tag is set to YES, this tag determines the name of the # feed. A documentation feed provides an umbrella under which multiple # documentation sets from a single provider (such as a company or product suite) # can be grouped. DOCSET_FEEDNAME = "Doxygen generated docs" # When GENERATE_DOCSET tag is set to YES, this tag specifies a string that # should uniquely identify the documentation set bundle. This should be a # reverse domain-name style string, e.g. com.mycompany.MyDocSet. Doxygen # will append .docset to the name. DOCSET_BUNDLE_ID = org.doxygen.Project # If the GENERATE_HTMLHELP tag is set to YES, additional index files # will be generated that can be used as input for tools like the # Microsoft HTML help workshop to generate a compiled HTML help file (.chm) # of the generated HTML documentation. GENERATE_HTMLHELP = NO # If the GENERATE_HTMLHELP tag is set to YES, the CHM_FILE tag can # be used to specify the file name of the resulting .chm file. You # can add a path in front of the file if the result should not be # written to the html output directory. CHM_FILE = # If the GENERATE_HTMLHELP tag is set to YES, the HHC_LOCATION tag can # be used to specify the location (absolute path including file name) of # the HTML help compiler (hhc.exe). If non-empty doxygen will try to run # the HTML help compiler on the generated index.hhp. HHC_LOCATION = # If the GENERATE_HTMLHELP tag is set to YES, the GENERATE_CHI flag # controls if a separate .chi index file is generated (YES) or that # it should be included in the master .chm file (NO). GENERATE_CHI = NO # If the GENERATE_HTMLHELP tag is set to YES, the CHM_INDEX_ENCODING # is used to encode HtmlHelp index (hhk), content (hhc) and project file # content. CHM_INDEX_ENCODING = # If the GENERATE_HTMLHELP tag is set to YES, the BINARY_TOC flag # controls whether a binary table of contents is generated (YES) or a # normal table of contents (NO) in the .chm file. BINARY_TOC = NO # The TOC_EXPAND flag can be set to YES to add extra items for group members # to the contents of the HTML help documentation and to the tree view. TOC_EXPAND = NO # If the GENERATE_QHP tag is set to YES and both QHP_NAMESPACE and QHP_VIRTUAL_FOLDER # are set, an additional index file will be generated that can be used as input for # Qt's qhelpgenerator to generate a Qt Compressed Help (.qch) of the generated # HTML documentation. GENERATE_QHP = yes # If the QHG_LOCATION tag is specified, the QCH_FILE tag can # be used to specify the file name of the resulting .qch file. # The path specified is relative to the HTML output folder. QCH_FILE = "source-highlight-ide.qch" # The QHP_NAMESPACE tag specifies the namespace to use when generating # Qt Help Project output. For more information please see # http://doc.trolltech.com/qthelpproject.html#namespace QHP_NAMESPACE = "net.sf.srchighliteide" # The QHP_VIRTUAL_FOLDER tag specifies the namespace to use when generating # Qt Help Project output. For more information please see # http://doc.trolltech.com/qthelpproject.html#virtual-folders QHP_VIRTUAL_FOLDER = doc # If QHP_CUST_FILTER_NAME is set, it specifies the name of a custom filter to add. # For more information please see # http://doc.trolltech.com/qthelpproject.html#custom-filters QHP_CUST_FILTER_NAME = # The QHP_CUST_FILT_ATTRS tag specifies the list of the attributes of the custom filter to add.For more information please see # Qt Help Project / Custom Filters. QHP_CUST_FILTER_ATTRS = # The QHP_SECT_FILTER_ATTRS tag specifies the list of the attributes this project's # filter section matches. # Qt Help Project / Filter Attributes. QHP_SECT_FILTER_ATTRS = # If the GENERATE_QHP tag is set to YES, the QHG_LOCATION tag can # be used to specify the location of Qt's qhelpgenerator. # If non-empty doxygen will try to run qhelpgenerator on the generated # .qhp file. QHG_LOCATION = "qhelpgenerator" # The DISABLE_INDEX tag can be used to turn on/off the condensed index at # top of each HTML page. The value NO (the default) enables the index and # the value YES disables it. DISABLE_INDEX = NO # This tag can be used to set the number of enum values (range [1..20]) # that doxygen will group on one line in the generated HTML documentation. ENUM_VALUES_PER_LINE = 1 # The GENERATE_TREEVIEW tag is used to specify whether a tree-like index # structure should be generated to display hierarchical information. # If the tag value is set to FRAME, a side panel will be generated # containing a tree-like index structure (just like the one that # is generated for HTML Help). For this to work a browser that supports # JavaScript, DHTML, CSS and frames is required (for instance Mozilla 1.0+, # Netscape 6.0+, Internet explorer 5.0+, or Konqueror). Windows users are # probably better off using the HTML help feature. Other possible values # for this tag are: HIERARCHIES, which will generate the Groups, Directories, # and Class Hierarchy pages using a tree view instead of an ordered list; # ALL, which combines the behavior of FRAME and HIERARCHIES; and NONE, which # disables this behavior completely. For backwards compatibility with previous # releases of Doxygen, the values YES and NO are equivalent to FRAME and NONE # respectively. GENERATE_TREEVIEW = NO # If the treeview is enabled (see GENERATE_TREEVIEW) then this tag can be # used to set the initial width (in pixels) of the frame in which the tree # is shown. TREEVIEW_WIDTH = 250 # Use this tag to change the font size of Latex formulas included # as images in the HTML documentation. The default is 10. Note that # when you change the font size after a successful doxygen run you need # to manually remove any form_*.png images from the HTML output directory # to force them to be regenerated. FORMULA_FONTSIZE = 10 #--------------------------------------------------------------------------- # configuration options related to the LaTeX output #--------------------------------------------------------------------------- # If the GENERATE_LATEX tag is set to YES (the default) Doxygen will # generate Latex output. GENERATE_LATEX = NO # The LATEX_OUTPUT tag is used to specify where the LaTeX docs will be put. # If a relative path is entered the value of OUTPUT_DIRECTORY will be # put in front of it. If left blank `latex' will be used as the default path. LATEX_OUTPUT = latex # The LATEX_CMD_NAME tag can be used to specify the LaTeX command name to be # invoked. If left blank `latex' will be used as the default command name. LATEX_CMD_NAME = latex # The MAKEINDEX_CMD_NAME tag can be used to specify the command name to # generate index for LaTeX. If left blank `makeindex' will be used as the # default command name. MAKEINDEX_CMD_NAME = makeindex # If the COMPACT_LATEX tag is set to YES Doxygen generates more compact # LaTeX documents. This may be useful for small projects and may help to # save some trees in general. COMPACT_LATEX = YES # The PAPER_TYPE tag can be used to set the paper type that is used # by the printer. Possible values are: a4, a4wide, letter, legal and # executive. If left blank a4wide will be used. PAPER_TYPE = a4wide # The EXTRA_PACKAGES tag can be to specify one or more names of LaTeX # packages that should be included in the LaTeX output. EXTRA_PACKAGES = # The LATEX_HEADER tag can be used to specify a personal LaTeX header for # the generated latex document. The header should contain everything until # the first chapter. If it is left blank doxygen will generate a # standard header. Notice: only use this tag if you know what you are doing! LATEX_HEADER = # If the PDF_HYPERLINKS tag is set to YES, the LaTeX that is generated # is prepared for conversion to pdf (using ps2pdf). The pdf file will # contain links (just like the HTML output) instead of page references # This makes the output suitable for online browsing using a pdf viewer. PDF_HYPERLINKS = YES # If the USE_PDFLATEX tag is set to YES, pdflatex will be used instead of # plain latex in the generated Makefile. Set this option to YES to get a # higher quality PDF documentation. USE_PDFLATEX = YES # If the LATEX_BATCHMODE tag is set to YES, doxygen will add the \\batchmode. # command to the generated LaTeX files. This will instruct LaTeX to keep # running if errors occur, instead of asking the user for help. # This option is also used when generating formulas in HTML. LATEX_BATCHMODE = NO # If LATEX_HIDE_INDICES is set to YES then doxygen will not # include the index chapters (such as File Index, Compound Index, etc.) # in the output. LATEX_HIDE_INDICES = NO #--------------------------------------------------------------------------- # configuration options related to the RTF output #--------------------------------------------------------------------------- # If the GENERATE_RTF tag is set to YES Doxygen will generate RTF output # The RTF output is optimized for Word 97 and may not look very pretty with # other RTF readers or editors. GENERATE_RTF = NO # The RTF_OUTPUT tag is used to specify where the RTF docs will be put. # If a relative path is entered the value of OUTPUT_DIRECTORY will be # put in front of it. If left blank `rtf' will be used as the default path. RTF_OUTPUT = rtf # If the COMPACT_RTF tag is set to YES Doxygen generates more compact # RTF documents. This may be useful for small projects and may help to # save some trees in general. COMPACT_RTF = NO # If the RTF_HYPERLINKS tag is set to YES, the RTF that is generated # will contain hyperlink fields. The RTF file will # contain links (just like the HTML output) instead of page references. # This makes the output suitable for online browsing using WORD or other # programs which support those fields. # Note: wordpad (write) and others do not support links. RTF_HYPERLINKS = NO # Load stylesheet definitions from file. Syntax is similar to doxygen's # config file, i.e. a series of assignments. You only have to provide # replacements, missing definitions are set to their default value. RTF_STYLESHEET_FILE = # Set optional variables used in the generation of an rtf document. # Syntax is similar to doxygen's config file. RTF_EXTENSIONS_FILE = #--------------------------------------------------------------------------- # configuration options related to the man page output #--------------------------------------------------------------------------- # If the GENERATE_MAN tag is set to YES (the default) Doxygen will # generate man pages GENERATE_MAN = NO # The MAN_OUTPUT tag is used to specify where the man pages will be put. # If a relative path is entered the value of OUTPUT_DIRECTORY will be # put in front of it. If left blank `man' will be used as the default path. MAN_OUTPUT = man # The MAN_EXTENSION tag determines the extension that is added to # the generated man pages (default is the subroutine's section .3) MAN_EXTENSION = .3 # If the MAN_LINKS tag is set to YES and Doxygen generates man output, # then it will generate one additional man file for each entity # documented in the real man page(s). These additional files # only source the real man page, but without them the man command # would be unable to find the correct page. The default is NO. MAN_LINKS = NO #--------------------------------------------------------------------------- # configuration options related to the XML output #--------------------------------------------------------------------------- # If the GENERATE_XML tag is set to YES Doxygen will # generate an XML file that captures the structure of # the code including all documentation. GENERATE_XML = NO # The XML_OUTPUT tag is used to specify where the XML pages will be put. # If a relative path is entered the value of OUTPUT_DIRECTORY will be # put in front of it. If left blank `xml' will be used as the default path. XML_OUTPUT = xml # The XML_SCHEMA tag can be used to specify an XML schema, # which can be used by a validating XML parser to check the # syntax of the XML files. XML_SCHEMA = # The XML_DTD tag can be used to specify an XML DTD, # which can be used by a validating XML parser to check the # syntax of the XML files. XML_DTD = # If the XML_PROGRAMLISTING tag is set to YES Doxygen will # dump the program listings (including syntax highlighting # and cross-referencing information) to the XML output. Note that # enabling this will significantly increase the size of the XML output. XML_PROGRAMLISTING = YES #--------------------------------------------------------------------------- # configuration options for the AutoGen Definitions output #--------------------------------------------------------------------------- # If the GENERATE_AUTOGEN_DEF tag is set to YES Doxygen will # generate an AutoGen Definitions (see autogen.sf.net) file # that captures the structure of the code including all # documentation. Note that this feature is still experimental # and incomplete at the moment. GENERATE_AUTOGEN_DEF = NO #--------------------------------------------------------------------------- # configuration options related to the Perl module output #--------------------------------------------------------------------------- # If the GENERATE_PERLMOD tag is set to YES Doxygen will # generate a Perl module file that captures the structure of # the code including all documentation. Note that this # feature is still experimental and incomplete at the # moment. GENERATE_PERLMOD = NO # If the PERLMOD_LATEX tag is set to YES Doxygen will generate # the necessary Makefile rules, Perl scripts and LaTeX code to be able # to generate PDF and DVI output from the Perl module output. PERLMOD_LATEX = NO # If the PERLMOD_PRETTY tag is set to YES the Perl module output will be # nicely formatted so it can be parsed by a human reader. # This is useful # if you want to understand what is going on. # On the other hand, if this # tag is set to NO the size of the Perl module output will be much smaller # and Perl will parse it just the same. PERLMOD_PRETTY = YES # The names of the make variables in the generated doxyrules.make file # are prefixed with the string contained in PERLMOD_MAKEVAR_PREFIX. # This is useful so different doxyrules.make files included by the same # Makefile don't overwrite each other's variables. PERLMOD_MAKEVAR_PREFIX = #--------------------------------------------------------------------------- # Configuration options related to the preprocessor #--------------------------------------------------------------------------- # If the ENABLE_PREPROCESSING tag is set to YES (the default) Doxygen will # evaluate all C-preprocessor directives found in the sources and include # files. ENABLE_PREPROCESSING = YES # If the MACRO_EXPANSION tag is set to YES Doxygen will expand all macro # names in the source code. If set to NO (the default) only conditional # compilation will be performed. Macro expansion can be done in a controlled # way by setting EXPAND_ONLY_PREDEF to YES. MACRO_EXPANSION = YES # If the EXPAND_ONLY_PREDEF and MACRO_EXPANSION tags are both set to YES # then the macro expansion is limited to the macros specified with the # PREDEFINED and EXPAND_AS_DEFINED tags. EXPAND_ONLY_PREDEF = YES # If the SEARCH_INCLUDES tag is set to YES (the default) the includes files # in the INCLUDE_PATH (see below) will be search if a #include is found. SEARCH_INCLUDES = YES # The INCLUDE_PATH tag can be used to specify one or more directories that # contain include files that are not input files but should be processed by # the preprocessor. INCLUDE_PATH = ../ # You can use the INCLUDE_FILE_PATTERNS tag to specify one or more wildcard # patterns (like *.h and *.hpp) to filter out the header-files in the # directories. If left blank, the patterns specified with FILE_PATTERNS will # be used. INCLUDE_FILE_PATTERNS = *.h # The PREDEFINED tag can be used to specify one or more macro names that # are defined before the preprocessor is started (similar to the -D option of # gcc). The argument of the tag is a list of macros of the form: name # or name=definition (no spaces). If the definition and the = are # omitted =1 is assumed. To prevent a macro definition from being # undefined via #undef or recursively expanded use the := operator # instead of the = operator. PREDEFINED = QwtArray=QwtArray \ QwtMatrix=QMatrix \ Q_ENUMS(x)= \ Q_EXPORT= \ Q_OBJECT= \ Q_PROPERTY(x)= \ QT_VERSION=0x040000 # If the MACRO_EXPANSION and EXPAND_ONLY_PREDEF tags are set to YES then # this tag can be used to specify a list of macro names that should be expanded. # The macro definition that is found in the sources will be used. # Use the PREDEFINED tag if you want to use a different macro definition. EXPAND_AS_DEFINED = # If the SKIP_FUNCTION_MACROS tag is set to YES (the default) then # doxygen's preprocessor will remove all function-like macros that are alone # on a line, have an all uppercase name, and do not end with a semicolon. Such # function macros are typically used for boiler-plate code, and will confuse # the parser if not removed. SKIP_FUNCTION_MACROS = YES #--------------------------------------------------------------------------- # Configuration::additions related to external references #--------------------------------------------------------------------------- # The TAGFILES option can be used to specify one or more tagfiles. # Optionally an initial location of the external documentation # can be added for each tagfile. The format of a tag file without # this location is as follows: # # TAGFILES = file1 file2 ... # Adding location for the tag files is done as follows: # # TAGFILES = file1=loc1 "file2 = loc2" ... # where "loc1" and "loc2" can be relative or absolute paths or # URLs. If a location is present for each tag, the installdox tool # does not have to be run to correct the links. # Note that each tag file must have a unique name # (where the name does NOT include the path) # If a tag file is not located in the directory in which doxygen # is run, you must also specify the path to the tagfile here. TAGFILES = # When a file name is specified after GENERATE_TAGFILE, doxygen will create # a tag file that is based on the input files it reads. GENERATE_TAGFILE = # If the ALLEXTERNALS tag is set to YES all external classes will be listed # in the class index. If set to NO only the inherited external classes # will be listed. ALLEXTERNALS = NO # If the EXTERNAL_GROUPS tag is set to YES all external groups will be listed # in the modules index. If set to NO, only the current project's groups will # be listed. EXTERNAL_GROUPS = NO # The PERL_PATH should be the absolute path and name of the perl script # interpreter (i.e. the result of `which perl'). PERL_PATH = /usr/bin/perl #--------------------------------------------------------------------------- # Configuration options related to the dot tool #--------------------------------------------------------------------------- # If the CLASS_DIAGRAMS tag is set to YES (the default) Doxygen will # generate a inheritance diagram (in HTML, RTF and LaTeX) for classes with base # or super classes. Setting the tag to NO turns the diagrams off. Note that # this option is superseded by the HAVE_DOT option below. This is only a # fallback. It is recommended to install and use dot, since it yields more # powerful graphs. CLASS_DIAGRAMS = YES # You can define message sequence charts within doxygen comments using the \msc # command. Doxygen will then run the mscgen tool (see # http://www.mcternan.me.uk/mscgen/) to produce the chart and insert it in the # documentation. The MSCGEN_PATH tag allows you to specify the directory where # the mscgen tool resides. If left empty the tool is assumed to be found in the # default search path. MSCGEN_PATH = # If set to YES, the inheritance and collaboration graphs will hide # inheritance and usage relations if the target is undocumented # or is not a class. HIDE_UNDOC_RELATIONS = YES # If you set the HAVE_DOT tag to YES then doxygen will assume the dot tool is # available from the path. This tool is part of Graphviz, a graph visualization # toolkit from AT&T and Lucent Bell Labs. The other options in this section # have no effect if this option is set to NO (the default) HAVE_DOT = YES # By default doxygen will write a font called FreeSans.ttf to the output # directory and reference it in all dot files that doxygen generates. This # font does not include all possible unicode characters however, so when you need # these (or just want a differently looking font) you can specify the font name # using DOT_FONTNAME. You need need to make sure dot is able to find the font, # which can be done by putting it in a standard location or by setting the # DOTFONTPATH environment variable or by setting DOT_FONTPATH to the directory # containing the font. DOT_FONTNAME = FreeSans # The DOT_FONTSIZE tag can be used to set the size of the font of dot graphs. # The default size is 10pt. DOT_FONTSIZE = 10 # By default doxygen will tell dot to use the output directory to look for the # FreeSans.ttf font (which doxygen will put there itself). If you specify a # different font using DOT_FONTNAME you can set the path where dot # can find it using this tag. DOT_FONTPATH = # If the CLASS_GRAPH and HAVE_DOT tags are set to YES then doxygen # will generate a graph for each documented class showing the direct and # indirect inheritance relations. Setting this tag to YES will force the # the CLASS_DIAGRAMS tag to NO. CLASS_GRAPH = YES # If the COLLABORATION_GRAPH and HAVE_DOT tags are set to YES then doxygen # will generate a graph for each documented class showing the direct and # indirect implementation dependencies (inheritance, containment, and # class references variables) of the class with other documented classes. COLLABORATION_GRAPH = NO # If the GROUP_GRAPHS and HAVE_DOT tags are set to YES then doxygen # will generate a graph for groups, showing the direct groups dependencies GROUP_GRAPHS = YES # If the UML_LOOK tag is set to YES doxygen will generate inheritance and # collaboration diagrams in a style similar to the OMG's Unified Modeling # Language. UML_LOOK = NO # If set to YES, the inheritance and collaboration graphs will show the # relations between templates and their instances. TEMPLATE_RELATIONS = YES # If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDE_GRAPH, and HAVE_DOT # tags are set to YES then doxygen will generate a graph for each documented # file showing the direct and indirect include dependencies of the file with # other documented files. INCLUDE_GRAPH = YES # If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDED_BY_GRAPH, and # HAVE_DOT tags are set to YES then doxygen will generate a graph for each # documented header file showing the documented files that directly or # indirectly include this file. INCLUDED_BY_GRAPH = NO # If the CALL_GRAPH and HAVE_DOT options are set to YES then # doxygen will generate a call dependency graph for every global function # or class method. Note that enabling this option will significantly increase # the time of a run. So in most cases it will be better to enable call graphs # for selected functions only using the \callgraph command. CALL_GRAPH = NO # If the CALLER_GRAPH and HAVE_DOT tags are set to YES then # doxygen will generate a caller dependency graph for every global function # or class method. Note that enabling this option will significantly increase # the time of a run. So in most cases it will be better to enable caller # graphs for selected functions only using the \callergraph command. CALLER_GRAPH = NO # If the GRAPHICAL_HIERARCHY and HAVE_DOT tags are set to YES then doxygen # will graphical hierarchy of all classes instead of a textual one. GRAPHICAL_HIERARCHY = YES # If the DIRECTORY_GRAPH, SHOW_DIRECTORIES and HAVE_DOT tags are set to YES # then doxygen will show the dependencies a directory has on other directories # in a graphical way. The dependency relations are determined by the #include # relations between the files in the directories. DIRECTORY_GRAPH = YES # The DOT_IMAGE_FORMAT tag can be used to set the image format of the images # generated by dot. Possible values are png, jpg, or gif # If left blank png will be used. DOT_IMAGE_FORMAT = png # The tag DOT_PATH can be used to specify the path where the dot tool can be # found. If left blank, it is assumed the dot tool can be found in the path. DOT_PATH = # The DOTFILE_DIRS tag can be used to specify one or more directories that # contain dot files that are included in the documentation (see the # \dotfile command). DOTFILE_DIRS = # The DOT_GRAPH_MAX_NODES tag can be used to set the maximum number of # nodes that will be shown in the graph. If the number of nodes in a graph # becomes larger than this value, doxygen will truncate the graph, which is # visualized by representing a node as a red box. Note that doxygen if the # number of direct children of the root node in a graph is already larger than # DOT_GRAPH_MAX_NODES then the graph will not be shown at all. Also note # that the size of a graph can be further restricted by MAX_DOT_GRAPH_DEPTH. DOT_GRAPH_MAX_NODES = 50 # The MAX_DOT_GRAPH_DEPTH tag can be used to set the maximum depth of the # graphs generated by dot. A depth value of 3 means that only nodes reachable # from the root by following a path via at most 3 edges will be shown. Nodes # that lay further from the root node will be omitted. Note that setting this # option to 1 or 2 may greatly reduce the computation time needed for large # code bases. Also note that the size of a graph can be further restricted by # DOT_GRAPH_MAX_NODES. Using a depth of 0 means no depth restriction. MAX_DOT_GRAPH_DEPTH = 0 # Set the DOT_TRANSPARENT tag to YES to generate images with a transparent # background. This is disabled by default, because dot on Windows does not # seem to support this out of the box. Warning: Depending on the platform used, # enabling this option may lead to badly anti-aliased labels on the edges of # a graph (i.e. they become hard to read). DOT_TRANSPARENT = NO # Set the DOT_MULTI_TARGETS tag to YES allow dot to generate multiple output # files in one run (i.e. multiple -o and -T options on the command line). This # makes dot run faster, but since only newer versions of dot (>1.8.10) # support this, this feature is disabled by default. DOT_MULTI_TARGETS = NO # If the GENERATE_LEGEND tag is set to YES (the default) Doxygen will # generate a legend page explaining the meaning of the various boxes and # arrows in the dot generated graphs. GENERATE_LEGEND = YES # If the DOT_CLEANUP tag is set to YES (the default) Doxygen will # remove the intermediate dot files that are used to generate # the various graphs. DOT_CLEANUP = YES #--------------------------------------------------------------------------- # Options related to the search engine #--------------------------------------------------------------------------- # The SEARCHENGINE tag specifies whether or not a search engine should be # used. If set to NO the values of all tags below this one will be ignored. SEARCHENGINE = NO source-highlight-ide-1.0/doc/images/0000755000175000017500000000000011345150123017241 5ustar bettinibettinisource-highlight-ide-1.0/doc/images/images.pro0000644000175000017500000000025111312456337021240 0ustar bettinibettini#include(icons/icons.pro) docimages.files = $$PWD/*.png docimages.path = /share/doc/source-highlight-ide/html/ QMAKE_EXTRA_TARGETS += docimages INSTALLS += docimages source-highlight-ide-1.0/doc/images/settings-ok.png0000644000175000017500000005251411312456337022237 0ustar bettinibettiniPNG  IHDR i pHYss.tEXtDescriptionWindow Class: source-highlight-ider"vtEXtTitleSource-Highlight SettingsW IDATxw|ǿϓn]Z tP6ʐ!Cq @@D@ N@PD*D@e9؛RhY|Hڦɓ4M~El}{{yBt)@Bl`0LæG/# 6 q aA$yq`0C<Bx0J^VYM`L_^N] =`0esuɳ>dh KʌTT|4- -+"L^t߾㉇W^6J|}7[b5%S2%F/au%@?_Z,u^C7Dn5 Ӱi*7;Wr61Q*>f&FE> "Τ/ͺ"͢rAi6@ CNg(݆ZM7ZDg}s,s݄08jQSc7ШQ[QM^ЕFVZmzA<{RC!Ν`Bk=4+uRA ym> )WkSxoDS0o1u7oiCKv[G5;`,s zvUЙV&J/&eFvIUX6K hbh͡ ӕ,BKH1 8DDXG^ @H=e9_V_RN7EgP+LhnbO1w}&%lr)b! դ\$ 'B ;ɤ3U|w:Șő ^BHV-$RK u'}Rq<⼫oj(Õ!WΝ#g+T2rRR-_vJWU*ֿ%RvR{bgV37<iI}Y "%>ebو^UCjj-R`4|5`fnȲ&eg#Np,E]1tЋnN>>Gdf T˿w7&gCr  >r@t訶31O%K[N=yE<"@Coz}oM$ f}reoTB@[J)ҘZNgK *kDTȼW$縪jA"+g,sԙ:h[Y  4w* _.B'rN,ۛ^vl ۭUDƛDQ)'ݹ)IG%Y ^\U8h/"~̲q@qiOu>56Iº"Y & VKEy9R`4E@h_ЖOY D+vpa-AaIz=ǟ9iiSҦUߛJXֺ4TP"wYbbu>*&I@žIH0LN-|IH6")"(!T[{5WD v'u}]hbKM_8 ,X&hmSȕ2 8ֈ(kyc\)"`U8XE\A^uHVvRJw|Ƅ^YМ枖4I0rBwT_0qoOI?tѲbi쩁?7ܸ +:>LNWfu~ Ӌtk#F43fpt.y!1"\iS e||sf&=A[;Ӝ؁=2+BԤ 6"N[H} eA٥zwJ^z3_s(jrK3r5m5Q IE99Ӿ?2Xyh4 歼]oP"ݙZ3[pP\zlں '2S2:/56,{Q慌?-SxZ^2I慌 Ow %SI`WO2k&>\Ȭ4x]xH˸4992.;,8(p 6ĕ"u̩ 2HT2H|QLLT6kȵi=Ŋ߳V+!6ݨG{G3sciMr%QR(G "R'^>V"E8APr\p@bRǖ *fH? x e!l\frZ%w$X @8־;',B`UkE"Tշv4UԩwE<0"I\GdT ؼoE(,$\!!5pɗN+~t](o^<"țHQUH⦋:o4UpEXD/g EI$H} ޣI=1! )@H+"̽G_ gFe' ]xso 8a0F#7WYMVSΟ:V˳VP;jv>Qbg];w.ep  xV .d(x׃6,;~k~Ikgm|W!v(, O*]IMjU >U K vLlK0 lpw$\QH_?UR)$jXqFq)e)8k0G{)f\Nq WfҠ6R:A(x6s1HFJ"88j4+Wc\}P5.\9\ދ_ Cx;tDop `y~7x>r+e"q8Og ("ܵd.Rrpc,cMe/;,@I0Pd \[òJjJw#KA8T?XRhs $XԞኲ ^.dXB١C륙 v;AF]_"fwIʑ`= 3)SijD\҆*F?0&V#" 7f!23.0 j4R1WM7vG.H;pr* Y5BTͪUKmľ^sPl C3 K @pVAEjlceg ]ITSKk5ʹU3,~UP;=ƛ # ^v:ޮɳ:'&le،5szv{Β׏]k}dŧ wKGJ_ݳ]B˖ E={W-~b7  =|l;.׽UBB^oX>o8UYYCUZdl=/ް|HǾcn-Z0۠=5Lڣ[׾P堍[ܠZ%:̓U楨ϗNhwڽ[׮ZO?Zf[qܖ9#{jcܢoygvJoe)uUġV`)etLֽu\lVƼ3E9u-wgڎLq]c[w|jjiWYً{^+/AdthY/zϿok݃IY;SL㌛f<ɹ)u= >g>JCgsO)顋W.|w{_<}~UO)ysoid3 ?㦩j7^t|x.&?{v%/^={^l.\>xݶy+ݗn#n};~˱י&HtmÂqN%_tZH .վ ǎ84ɫF9t].,y}`fWSRڽr| mFL G~/v̞Y3 ,yJj_lϢSLxp׳b~_ƿҕMoqWfCm-{}{:~U[v,s͜ICz`Or`O??tRDSavvy$ZLP0 %Eδbhߦ;?o=IĄ83{jx ,䜱mhڿ͘q˗0BLҀH Aw2{?)K d2)ɳGX<ضb:b..h$i"+˄Q{4iŦ/.lvуUW @IizS3qj鉑Wvb@?lxH/NkyL>['MZ<64qڋsM5 =X6 \^ ^|}d'_q%Ώ:oFp IDATG "39tDLEw*?n0L9X Vo {٢}Ot}Z1f)_)*),) 91jQRʼb` vfH}H(u@e4R1:qyYt^cfh}V*ry;E&|q7X!='w l= ׆ً,UPQģ[{>zΧŦ2 U}r߅juBk'f n;rڈ{FDq=Sow_Lljx2NES XFEmP $z5S/B?]ʃ&ﶆ7hHLV[Y}, _:@obys׌ͥ]oN7/!._8AqkhՏE&]oN77oęܔ`M;_zV}Od3%mlMskiJ%O9r%amֹh@OGJ]T-ϕ\ٵbsVܘ!Qb#h_BCPܡnS&lIڹs9&qSZ|ζ&f?t$Ç_l͟&]+U?\Il&ѯv!"ZS rSơߎ,4!QPn5Nq̘)S>\EI3 SQh JNX+4}/K޵bKNa~bCd$plbYA*OvRj_jE4K)ߴOYW> }}v+?@G(czMZ!#/_ з=в_!d&}Hu{m&){N\ҵU,k9Mnsl2Ic^t,tuE>>5g m[*e;S(0]t͒{nfq['}xNcW]w&;{̛7[Q0zܬ83wZMn;,4My>z w굳;fL\cvJ4%7zcg/~SuǵΝ ʚWO}n~~vꑵO&)ћ>u!~:hQ+sq:+7?OP@l]ϻudiܡ9OJh JgV_X).YSqU4q~Β@|~ 3$΁V7}ŋuѧ'KyJA.fu*7 먦jWC7fwyhKҍ5թ\2Zޞ'|hRsc{&G8lD=]KYu y :[u: Rk<*>kw.#{_v#;Ak}dA2`.ZjT_k8}*LwYS Fۋ/Nf/oYRg5/5SL7fNI-e8k9l8_Vm/a0{+-ukg:sߺ\6^^d{^hV8`E Xٱk9on"qbӱ/fx`:FI?n䅇xgyc0/'b0Fd уiTY#sog?/xD`=8a0Fd уi@`=~ BǙL.| Fu``qq1 uw<3!`bP}S&1 S{?:xDi0^ ?\vMm=|MMN+Wa5m>Iq>,Em(9h&-;31:eSڮeL/~yrF؆tsgXk$3<"4\v&9JҹC_2|Kl ȢziywPRS\x%#,0_gY8BYtl*8yyݫ2Lr(Ze܄DH ƔZ _cobS_M1.6.V Lge#d~k!ùuzH1Vsl:KhuĂs[*6.6q~GX#dӗKW:_笡((]{N<ńL޽M|ll\cؑ!ПYؽ+Ǵ悘 ZܕZ EP e:pȃ]>˅%V5AmJBnGkj <K#G?hDZgw/hϒ-f6v+/03F~?al8UG20 W/\]ڴi*7/vΣaeI{9dz֫CY|qo0#Vo {IlKAV:A[{?^xJbSTĄjpTwW-1 2BRVe!Ӧl޼d%m^s1{驠|>܉_e{le>Yuf! k>|sgkqsx+ڰeTMJ/ƿW&4j,Itt'#d$ߙ?)fm^[CE#] K%³,˲8ΝW!8>n#E];Us%Wv؜7fhq[`8MGduaS~-dLơߎ,4!RJ cFOn[qБ4#0i? uϲ,k2cc1I-b,#f2۶&3tDx&22Hg۫*xDi(t W?+"yw 4 엫iPOЀOOZ>by]% jD,}sލN#-,B=i&_~"exbIow퍐)S&SJj?"A"vT -٤ES.;5OB~ou9C~ hB'AJ"IN谁}sMn`淚=zVw c`1څe7n<أAg4-H_hsoyݫ;~k~IO9Gdy_i&T?щ!iL}%!)woZqIwzԩO h I{8ڇuL#<Au 1AÃ)XOn<1l|ԉ]^ZWg?TNDG94=͑OGxq^gOFGi}q2K՝!SUʊ8~NW^l(ݻj'cN?w`Sn}:&DtɎ)7b|5l=ư'NuO^).jRrI*X=t,hwgow}v2@ʲ ͣNDGH|Q`Y/K~}íNDGh/ӣLepx)crV{Q?Q$ux,>u%AΟ!qwSհaklҼ#|#ouJxsaqW+{k 箊rh8gv;͜7w`%y˓Z ;U"+:{0'Ǝ s8پ=R#O6yLdk/-3MS}|ȗۊ͟X(L / ])]~BGE@HBRE%]ۣbIn}8) :8k<@Vx^Kbw]X܎jQcIGG*mhJpfn<1#O5%f/0w/ɥ0AJ89 vfV?KpϵyRAL ,iЊw~Soyu!^^)V{"}Ncߗ'eOGOw!0Cneh޷yGK)7|@  ~lϜABh 2 L1_zuA/+;T\3I70$Xy> se' 7"X*iTZB$UGiwZ-Bsi8u3rڢʘ8C>0BZLg=޲ɻ|-IDATK g$lOvhm>awbr%+7>NTZR3Yl@Ȑ֊Jͤ]EϘ !k?hrD><&g0p>]F>`)Rd_2f.hNX~ݵcWDacO>,}Tvs8wzwU&뤋tP,e|*ѡ( 4DfE;|{ݔ|tS4~BM }_8kR&2ZMҕB|u|jd8n_(T &v,ZnĴڐs>JLլ;֝>w/I($ VEȣ}t["蔔i- 9GҩԑTxF1o

tg; PJ{Lys:޼L$q|[k\}B>ݮ6$sDMLpc'xՈ KZiW՘iFK@,%8mwon5yP|R/+:乾DG7d#N:dM}C_!es7G,"on\pϞرއT/G1!p 4dEll|AO+FwYpZe6<٩g>eqi :3V%mG ;?;*0SN9Ell]>p SˑMp 4P<@w&j܄ҡW>u;ƣfwsKB̙%}tU-Y>ajSw-Fi 0j4g-6T}r{/7Քd.ZlhVs#z_8u# b#Y0 ӀA\zmnOQ^H/}P9>R儳/]3L}$byHGܰw6e7aF/aN*EüX3˃|E"??t8H9uc[ZSΘYߙEtV-Y4ytA-pHfmccZuƎ1euG>\;Aws{8!Ns{Ul\ll>s[*6.6q~GNp]5_2LŕM;nʣ#$ep>N;s^yuH_Bi *{>]ri6<3hl3)QYx~LgF>bR)?;Бkɤ_kռߚʉYXRճ4g)FK>5?~_^\}wG^tdA"EW|].,✮=(Á Pq;|ǾmZGĄNIc_x;Usʹq'mZBblS\IN)FU~ᾨ8C7]9xɘ0bT rRkjŷn1HoS~~q~Ap&*+|}Pgwwk6 A>G)*mm":u1gm+zx^xƏ`;JXqzBmN &Iv7#j$ ewɻ˻oMoN˅W<6F撈N3q2BBZ8x.,dgSH "2f'XOIJK AbD4)dM,/HWX"Z^Zo7 ,CO%%Iڻkk㔣#9)pnSLQʅnD2B7Νx˟G迵 KC2I7FdgӛY;-.I&"~Sn?Eo_~vWOda2*{984wIFa2sg=:o㙶A/@YE=GR4F{x͟4!Ks2fzbY)1rQ{ҬJܽI2&w?ݷu£^dd&";Ǔ# ٌUfc8m>dL9؜̰_z]9r lGq`+״ՠnͷ5v7#QƪȴV|?WMye#2 ܥnl8R)YgoXSҵ48K_vߗbsk~=PM]?^xf3?x"ONb{X0$Z]r$S]@!BQkn `8Q\B!紦Ʊ9_uI[pWT\TR^VYYi4hJ__?_HP0ʁFqKB!ZSduX^?Lz雾al߸w=/QiXQח rctV=B'\B!Īz״ꖱǛCe5?y>JA ~]er 9}EQ}(nx\+F@SCNPTY:jO>_5= ?mjIFm~Pz!уFNP̸ Е(Mh#V Hl G64+ %KD;Q9 xv@{9Ox bU-=e, DUC~>JQ=\t9MRG!^YL_]իY1Y."ֳe !Ԣ|٭}r9\\wS-Q B\.Ho@ƤtpS.([Oc^ǀ*U=LP6_.3踠2/DlYjޔ(FdڀYt3D v ]Gyb(땴i!,+-=e,~> L>]`Yf~AaA4!1攡e'JeL!\)"YfBW958!H?us%E>:_=0> tM 0!}aԊj鎋]2NDQIҵ%O)4Ѱ3GꫤbR}: $xaI"H$&)lA*6*\sѨ%ghE|}3ql+[|P=(pP - Ep zR)U;$Sn'"U5ʱ&f lHO8+e_+tS$I%ITX\нg ñE)B@54_<:O g-&~QMT3 7!T"żjbJnbFMN61Z7n(BiY1H19zTD*'+iYAB"/NK30SzE,)!?WǮ#)B!rZwEJPݕYgD TW*5 Gt;5@5`&[ @RB$ ;&Q@$GT@ϔU8w4"Rtz^V҄hrkYt4H<eK:/SʶLQ\7E&|KL+^tT7qQ"#WTl;U)ٿ}* Y_9T{V0 qH12 3SkUerδʭ Kn .}7bɷU2R&@8%.u$P㔑:@εR&x)$YM`} N\۔)jXwlLe^ nf=R2'.$dI a8'Mጱ@iEnX? rY!!ǣrAjm,41a̋wXKM7c}u!ި3 7<)a'=V x^YfE}Byǀ?VR٬\]IiE 8$[fkb p.Cj~("1{߮A2ZF2@!R^_ȳEb:#%M$P\14Rсr1NJaxzhߑȾRQI>82& fhʨKZ.3ݠX5CS^(xU^م7 #Hpi=c#ڒqvDV\jq,nϪ un?PIVݖe+"c =}"`L=5W6,BM.ؠ7Ϟ!S9!C DT NlTdOT|:uOjga6'EUQVL< cE0: $b&B$-0v`@idJ'״܄ :?_@G|(,CXi=(A\PEτ$& Z#DMTy8 ># 6m'Z[Lhd8W&wIQn*RԂBQ_RPfjԻW+A&Wd\q0\UbMզ5i~ß%_-ۍ IY@&gT$jYSEZe((-Mhfڣby5W\uc $?? ;NjOժCF*Ms'@aQQF;z|P[j񎞎 (ST~{K鋗'E 4\Q+oݰf|-+վ*ÅEf5W4,BMxVsӿTVߧT]YIF??dYw HB]/ /DJ 10Jc!4U}JFiR苴I0ݤAFDW1[a‹&XQ+W?ws\H)$b(ʲs4V^Px(?XBaҦżjRZ퉬Dd0RdF6 c?f)Vi-6Ax=1>^d65}k*[,BMn^P:<(@i^/*)Ut~|iw;Q܏Ų6Q/n/@-w}:ҥ+3A2.k2% g*!@[zCbҥ#/bvYQfC&Y'3/{v#JCYşd|z0c @Jj%yY" FñbtQB-kY1%r{"+X?T~ -EBLBMkwֳ\ $QimljV!B!ZSdu/>2dQB!B\7j;B!P3ך"{ǂB!P!B}\uBXwPx;DQ;v3ݭ̶wcOUɂo qN.nvqpױp;GPNߩ_Mx>OGx0FgMEr}6xT݇sYN{8@wiYzS~Vsj|oMFFE\=0ϳ|]7Zljqn0lwsK=B[-/!q63R^ʲED*;z ;''1oD D|tpƫōO٩¥<&qꇟ.kѷ ~{ M[moqKΝ{&\ƾӷKB&<)@Qq]X:s+p`8^qI6m1|{i^Z~\_ů[^W]\c khs-ֹtt鶻]p e^ª|=x!s|t'_:w`o<:c]+;;tD򄮅/=GaA-(/~c˳-=.|x/8Bv}մp"߫~oqGry<\XX\֡?*OuqwƸ_Kf,y=?d o\|oӜKҧ0ju!agxu$_%d@w^;:` uqkZsjs^,0_b=ny]۴L S!??rTM<+e74cPؘ]g˅2[1L!U=[sg'*i6h 'P?_K3w|_ĥ39YP1N'}jA] pl'eu{ ,p}s.{sGynjdwO"wW;qz]JhCvtI[y}9xWS]4rs{iͤ7S @+5,݈/Zȧ~|Lj/Mz=Tig~cb~Fߋ y~qVU O{dFCC,b@v)~v 1*PS 斉U\/22y\JM[UBF/jn AO(MUOVg/[O!X\~Z8W̟rm.4HtaoP-ejQ6rKP;F/Gl䭬n!Ox=־LF1#AyiXs"#BE֩\7:W+v/7Xщe,H+4ejמ/䋦NN[t$_X䛜.&@y|v=!+'WB$`yG>x?J}"on!h_ -O3p^ V[lVD(79;wNwMZZ:coyna{,-bEMAʇ&]η#'?vw[aqA#sṵQY6`G٨/&Te74ZP}Z:5<4monMEf[߮n~ʕ97SUm> nHp 6G5%yjޚ4_}9ƞXG]NF1a|7P֥};>T r吠k b`P* B#[`kX<}mP25^پ>!-5tPkFHͥ@ͥ0g6p33jsoޥyfO_W*= hl!Fx 9+&+r4O#Q(S7 ^w=h!giit!du,7XgzmSYce\-6PӲYn{[@ݗu!]G;Q^*Cef{놥V?2o\2gҞ_FL5BBxcH'a:-3WB`57}l)OoqV ǧNPu0P3ou] g=.T\ؐBMZ܇6WgZ=OZлlB3ƱBxN;xCO^;9/l{WWϸ!p<\(:s_5A6jG=B-Y[;0(B͍+g!  _ϸq㏕FΆ=dxbC }tH+ a{|ڧ<̞WȖsp\yW{[Ж}Pʙp$ S˲R~ I; Bh`<]~F(,^h:?`h?I8:.]? S BU 7iA,l1?ϥ"zR)WPr0< R/^Σ!{NHi㌥%gQrT֕KW\ܻrh\A8,mdÀo:BqL8"-T? ߶(egSE?Kr8N{#/Bs7g6~Vrτ 諿{E ' c72N{m>#Ft3sONeNUŭ~ݯ'a˖ByJ>sܜ1#PqL8I]%Q;v8yv-5Q[\mV$`.>f_і-[ H!b5cF~cM SO#o(( I8qd3gh4 `UQɏ회!B!ۜ?@ @]!7 /ЋDy1%L)Q'θ!Bub}  E#g1} >ϥ}y8z8@ 7JXm1^x. !Bi΄~R޽Wqߴc's}3 YEèA!~l1bOV2_|!!B!<N h0XA 'Nfo޲U2;_XОsC/UW.eArrB!rXoZ;^9d"99|c?$ɗ{TqB!B, 7U \iCp B!Bܔj4IoB!BNMlA!B57c=B!BXB!P!Bc=B!B-zB!Z<!BxB!j0#B!1MPS"|Sw!h)4O >yzB<V,{^kҵM%g@fӈ29mM5a>?_)wuTzq[|+$hB$wbu'>|fin\=(kwi!H$Oi#g|^b8t<žW6{|N=i=ptc[G=ҝ:w~/O3/̙8n~C,>PhZK0flym.:%8\{W3g"&;g;êBM;S;u3 ^?Ng|qkm?Mݛgf=l-LTvjӇ$wmojp8?}Ɔ|9;ߞ=s΃神+wyO2AGܿ.毓A];uJ<뭝5uT r>oΟ2lС>xe(I$n1tذ)ybAW3>2yİ)s^ِ^tyM6tXܷe-$g-㕯挺gw̿k[g,H!/I$vÆLtM+<GwS񚹪gT{3K:e7oSF rۣD "vqV=s"mkكsi- ]UeO;!#<}Ղc!?t?p`ߖ^0Mgy~{BVgܕɶmp gpuZ;Vr =ڱ| y,AwX^ʶ?1qLJ2~\m];)X&뤩qԋEV_YwWK̉Q = @P7 LTo(GT]GCIvdzmn})C'%?hFce":V^9 Q Biv22¯ \l#!SBB?ެ xs~z?<"4 %JfCk"S^)S?=<9yHrq6@^=Z3i}3]vy4ͱӚ;ZfA0ZkulMPY z;۾s(kc*,!qe(0 b .Rx;/{dMGG)( @OFQ@UrUPZЬR&p"oMZi ( VhJ.AD*a}M AߞYpuO'DmOS^X~7ʙ,LVHaz=oXըr&<.5?_U"\vu`0b ho}Xת{fm3Bŀu{: yʹʨ(lh\0s(THPr=UҊ=)`piRX8+[g|Ԣ?^(-䬙1nE& Jc8[!ZqI*pI (yHMtSydZ%p_B0_+gĚh+JtuzG٘"&(&HMf?SI@!g1~/v.NԡkvtO )rD[SBȳ@Qi@z{[+i (=θ _msO\O&P)Q/(SAʃTP=(DkmA5؀p_|-4%Y%)pִ@8bǠokw~X@ЈGs%W|b0eRXURj'Ԉ6vŧC=DQ@A۷>RW;W6nqb 4^DK@B@ (T 7ͳ+7_=߿o@;}{IݍNqOD0pk>YW$&U 0.ت8f)I;MƸ0Ul)?o7z7?M>Fv6=Kqu}щ1rD$TIrrwrh=S7s~^_ܾbEֹcWG*,϶QѱKHh0B²坦Nns#|1 B&U?c?67?Y p?w5+mY#3o9t#b>S _i7+yQ<]7]Čymg$2m&b +~\ \=23qzBeOrsg xy̤]`B|:؏_o c_Z%XtOrm6/Yݻ$t67 <[/ӻK̕Xכ/jIq73G:u?)ˡ0]v_⡩عwϊ -_hy:%51i_|wGPlGOg%uwO?/%@3?r̤06Zn{rό%Sw9]'Zi։Ykj-͕}]CzЍz't5sU&glc&61`{/n{jڄc'ܜs?r/!*cݵ]޻%Ъ^.zyLT~QpuyanO3j}-|ϒEo/s̿3'wx=Z᯺Ӆ˯p5 i_z'@g׫o͝cHf/?+(ehY,5?9p ezE'Y>8๿uVo/ HukOJkK1W*4gkk3sSz •:.!Bfy& 7MQƞ-PmiMIsyClȍB!PSsGgXdY!#tOL=6_38yW-ʫ#_ߝ;wbbߑs`eF_=:w)Ç \-֝C{%&5ͯL12wؽy,V{{./|em 2z~M6@!B-2g%os.p퇗wa\-g_ջ-o}x[cg"\jg.~+j IDAT;sG7- ?YgsǾSؘ4`-עIi??n!Bztݷ$NJꝔ4?o_߼lcM b)65rK[4M7E_{% Q^>baa}[NǟyL f&~zl`ϙ;kϝ-5:.0Xylo B!bdMkn{(FҍEs|mJDds=[!2jV*:_fmʤ;Uܑݷ UD_U@fBbej+&YN5J6Me M BXOరgX|ǵEgHe7-[ ZxQ ӟȭ@MPQuB!\fKLP} %Oq 'DC /9ݬ'G\X|oG߶bΩp议"B孝l_?z$v;ls2AKԧr϶"Iooy :6gMaJ;=Z/8=}N6B!<Υ&&vw=Jn;v9!w׻/?yM+IHYAN@N6B!<& B!B !Bc=B!B-zB!Z<!BxB!j0֣(I?!Bk$FjQ4m4iJB! FFJz:kjQ4aG!2c+)Ğ=Jzʴ ¨i6rzBB z=FB.ձrqO>?f1o4%Iԩ^G~/?OɄdQ矚) @(X|Ǝhmn)זm?F3)8 v5ٳwSl&))i;B!kU` w38^{ugp(ڸ,6 Y:_xJ0pBťy)x֬YeuEA ${CӴV-..5s`0]CӴ 0 ˲@FZvС.^ܻwkYY:tR 鑑F׷K.]rXO$qu΍[Q-{O0MHJ^{`Glrϲe>˖5 >,+>%MFJ c~m慄+ذxۣqOq$=F= D(@xgŞY{.[-.uG90`$G U`ˏl*|` . agO5oA K; z}AQV m׎a:$6Z!B!=(%]ϸtz;–pHYVܼrrEIOn.IRyyyÐv5d2t:fzLf a 0 #c;mIQa$IAMuLk4Md2@^^z%]oKONnnnn.MQ[m{3TŊ Lf:QU*;fCBhrDW&O.t\Ui5矁ӧ7$ z[a<8 J>ȏ,Yfc6Q#C|NԞ 5pby Q= T(|}]wVQYYuB!d[Mf$*J%$vv"B3@abFCIq\^ӇtڥIN8raRi Ø@JeIT,[SÙiϺRvN`+W( իGbcbF ~Q;Wo&**+M$LƲy448D$*" 8Zˤ]]e_'8:L@p8,\~87&@?{w5%iNXoq Т.7m8:(BPwoR}>yIXlyt6 H^RUU㸵*.*dv6 G~3AA:Mj98وtGW)"\%'qZ%,bjxH̟)xYX,s33PKjjQPr\WUg0fl6t)J]=I C!tsu]rWKzyyuϯR,uWF(DTZ7Q{,01M\eʓ7AM3_P/`XsV_p\T\ `w*а@~0Mu~B$bUD]V,!I0-piۏwqדZYY=lLj}wp(YXT*y BA?iV (;$ (hDR"m{!J̻-"V(jߣ"$"Y8\f!:qŒt\;d3hu3YkzfS$/Bͭ{.Pr  HhpHӕpj` ABaÊ]b,pԯZFrAuU5AtH~cׅ#G4x;$ lFK.'IRPp <[^VVjժvn6묄sΝJ#G()U4ju~~~HH Hk]($.i",}ϕ,h>S TYYf55c m!Hb%#8Х| X?.L~~@RI7PiE)U*gg׬jKSgU*U\}ǰړ.%9ocmmH_>LIGAi@SKIQkT,3y޻qR uM>RZb*Gu;̐[bryyE?FnK\^VVfffV[b?GNNIw^HhJSTڷk׶mۨ1c;aHuc8f^NOhVUʭ9ٝXV6 IP_8[2v,cJ\T\64ŌY  4Y0Lc@IvbRhNWV--)yyh &Y X+R 4y.\ J{FF?ɓ ma]=qUUٳG7WݰRPI$>tٛIVf@ƷZī쑟i\=WYY}BqQѩӧU*6CmTQpĉϟv]&222222::^v\Avvvmmurǹk[ՃPj͝zbkꚍ z[`o(dIõZF"E0 ƍPu%$p\7<[ݚt T\*×t֯w6nHi؅  XM%Wu kp6_n od?ꦮCĿ,777!!u@]!x3g*ywF%:>>naẏUƠ;v/30w@iP$p5vð@ ڊjэ5AA` jlY 3-jUVR"2  2ʜx}kh꽟lV$;AA俦25t*6wI䠴AAn oDAAi=  PZ   &2KZ]  476`0^_ZjJή   A$IEyI>jRFSCAAAr}hJ%P(ﭹ   o\naaÝ6W*j  QVJ%hKAAy硴AAAyMАAAydAA =4 -Xիi&΍?o{0|G ?}`mQycݜ;c޳v-)=5ۘ:'>MyN 4{vMC=Hߧ47cE9nY-;K;~w lB_S 4[xiʅ-j*! NJR/// rN0LLLt𞵚$V7minJ맭Ȭ4r`0E퇎л;nocj*ihAyd2KKK$$#j5<Ow!@P>ZvZ3~? 3^Ci2b?O&mSߠ!,;x@a=ƮRF:w#;>>h3l!ʸ~y,jrjѡb|rHiEwk}w2/OY>sp+jn絔ٳsΝ;w o=j}5 l=p շMޜN.;w)MQ̺};|0c2S Ay!HZ ޛRe!J$ V-o6VFZOyW{&SN[xa{n>}U{9yмW]z֬ڲk3!mĕ]HkR< {®[znj;35RmAA E)JFCR${C5RYBVߧXi=׿1pc&\+\A`ZvzTN?u2wH䷎@iʧ+Guli_n-da,ːIw:w$qOY_g#%l7>昡}I=m40rGܧe`X069,+5Afyk@Tel~m=`lj țY}jԖ$Vy28WM2pPHNժ?O-. Ъɸvv5i$!M:}2i  ~joР|5t^LZ{D @_) ]V$n(m^BgjВm?v-,5R7D~1KZ"q; 4|ّtEQJ7 G=}+cJ&hD& ^yLg> (u񭣻lXf[{P&"$q7y\wyB E) }k~ qjٶhJ%v4b2Dn?߅EUޞ^H@irw \y:׾}PўӗƺKnuRO\ٮ-arﶾ^^>?X|h^WOYnN01C}@Z)iaЪ.C]؀c0⫯׳ߠ 9F:OWy:/8riF}m͵9 6j%Ǟc-mytT;#wu-#; aAݜxMڿA:vRS9KOtДz1`ܲ*¥R~ڍ ΣB9)gk(P?9#pӡΝr4&gԱ6\yҏc\rMx W[zu&N 1Ebz8ߧ3?3mLW'b5xz\KP@?z(y3(BpmwOf͙5}Q̑m ӦcmvZBV|en>JM|ofnMUӶwTC( iz{Ne_ІԪpCtRʶ[+ロGxaš cF`9O:?Io0lss=3x 7@oo Ŵ6fiÃ4]i[Yo }-`; Xw4[qFqxW{ί-Sbk<m RC AZ\x ZRM{;`*dؑPd)'G2,C&}y#)s[1j!HK2nOΜJ-0\G@QD ?#y1mLQ_vٷpҼ6gP`ǭj{bC|ohLNÇ bo)V,{=:pKw,6ߣC]I< ˗B#YIrNnx_069 w~pqI'[&lQЂ~y|k+5\^ӾB׻ݱ]{Ϙ3lEݢ:|ݾϾoS<@5H(%oGEJS%s۶u2&K)M菁oAF7'angt9%R1lLvwFR(33|{~MV27<,-6ۏY~ @WW?߯H`ݺG#@tj]kjѝc5mgܤiǾ_ B 8ϾoŠ(e1.=fGH';vT ZAh6 vsv̮wplyZmZZZ VzI&m〡7\ͿY,ct&~ئlu{Ċbqwx&:#v9s5AAN[0:4AԖ:x.o  ok O_4 CW|;jԖp2v[ F= A^trpxݑ,guy%`0hb״[ާ4cJAya36NNJ }Mר ?~fgkknn^o;-ͭX贾2..ťEy_dm| \{{{ 22tu-˥]iԖfHhtZ Cyݼq##==m7]qܜf,, śNr&&&\.}jKs3$Vz4: ++W8 J*Z a<RŲ~ؽ~ F<@yq\c7] O{ͬ>}jKAAAJAA䝇zAAy硴AAAyo]f'/E՗}O)rFKo̷f붫 \qn+c 7".I(]Y(0#zDzze+WQi^pG݉e~=/d ޓDF ({b7F9=-ܑ̨#M ͹ݟtZ ٿѶ)hS?`FL=2/v#38s>ѭ#zD?d'V%icUҘ Np{zrƖ4EAÑxt:>guSF?B#֘2WW;>Ӈyp^ HoK7NhUϖ;s.ZGz4KJ7^Ĝ7nul2>đ ,;` dL ؅+[^Zu}\۠7)z8r`Gk-7wvl,٠GQ,[^udkŕzp׬_Lb nNKUt6%va /<9.%;}_ ]<הplxBӝl?x_?c#cuÃϯ/n; YL^CߙA$M@RbI&Hɫ9=ܝmJ&x%mV>Vr ׍7j*`[8?kD[#+J*Lf 3A<b\[c=4;.(J/%s.d9,,)'qemiSo,s׀=!p ̷b LkN={:5i=giGNaW6ޞek%٥ċK m&b|0D,¡96ˉ01AYyQ{Rlpfގ4GZ3$l4W 1_3ݗW&F?mzoLm^|ɣ Dev4׻s_n/q%&~=%`<t' .Om|Sev͞ζXiIȰ7*ՀG̍7+~'hR4MYY[pqJYuY0ic}cCy7Ԟ<_ZS\W:%5GJY۟ /iӡ/OgU@`!w[l ?.>`龀2n9G}4]DK{\mޭ\g} (B)Z`RS%8>ˡَ  gHRWWI|}J3ZBG$Kں?}L)ROieFfe4 l:3 5;tB GOGJ"lgRwtUs T<.jcQ-s ǧC}nbe*=:aYQ3իo+.q(w﫾Sآ ;s" /ztǭda X̢ߘS?z%/Xni4CcG.״n_%OA栈9rU{׿kc)p3*[4mamF]w峷T5+|nĭǡizW>:<oȑ#Gl߾.W*!!!G9jkEs?W?,.*˫rB(//.*s< Ay^~^޵+W^f=gou.fݬVk*I_y$kڜ=$)_|BS|}Ϯ<+&g[WB# \4Yux>?DMK/`!Yzlo)J{vpwBhsTr;Pd!΋SEVX8Pda:W ~;Qs,(Փ5B~;EQ葎..(R&, |=vh(_nYO@K[F{}ҡQל[W584ճ$O[7_ō?rʥKu3⢢1o* @_)v,wl;<:ڊrsK};LQc" Of\Y1嗱S) p뉧 r7{r ΈP1祿ks;;{O@I.;1 ޞJFW|0'z__~7ten#ߎ[?Y2EO/0qw^ZeˠmWMAg~9c>:\Iakr߶=4xUĭơ47v_o#R7JBᠴA Pf\Jo&SO)Rvn%:g}Z?; KK琨*Hm޾}[ ޚ';7w胅P'rp%6kK}5>N^ ϕc2,# ӣ4I7sjFL&mlnn%e_z-b5p4{+(8bWe_}bo6i5piY/#Sl&)sO 9loq!8v11)N~@|[r{qQ@ۮV\ϏxyMz#g^}Z[pP9}`+ ++[SjnW%:G;b궄QR$6mHڡ;o_飩 O}^=UO_X12s97ā.΍l/>7ګ?54DrI?Ky]FkW>z6OIԓ漫Slud޾>}V>iYqU_;5#$]}h @)-Rdazmho#(/X83'p;[|]"7W?^ nr}&8xy7G>YJ0FOJ8iSؖߟ ټUμk<廉oIR)ڊ0Vϥa'ڈοC9]ʼnYՔ"C»o@|aY edދ2mxGMu\qkYU֍T©sg+m/ʟ Wĭl|e%E67ɦNI;csK7w]<ᗇ*P'oyLE~SuU3h#*$i04OqAڒd>q?I39qg# P.ڼN5\vI~oa G}+pOisMy%S\ϗJԓ漳gOL` IDATC)I. whYq9>?.7W6~=Ɇ`{ 8]0˒<+OƳok~[o,|]'sHL cvMsL8)IRX;s۹8;9'r3`f9:g]РGTg^ fuLx [5QF߮JlyT,w13sv7f cL6C[^#VB]RL7j66Fƶ5̩nZ2\&aYW#+؂GJZtjq\6eZoSYLӂIxz_tȊ~_cۦی٭JOIYy}1}G|jTOI1lCE@uS.苧קoG}W.nc,Axqxih⭫ Op*u@qYttE\='I: Yʉhʳʵ9||PgPYAR% /e01RCPX>.V<@!.%>3?`V/GK15U&"U*lSU\)'z=9>OEr95OuraQMc,9k], y75u}3X]f Zքo1LHdiW\Gx>p`2 &Nj >FAw]vTBw?"趫tYR ô2*H@+ΗYԅLdgfuE) 'g crM:e텚Y,uݮT8C %I{&V,Y[%BZ(gdJ }<]Gq`䰬uczc i}^OCqxyn{#TUUi4c\bCBB|~ Gi= H IȘe .s֪$D{{]ZE@#-"L%z1&OdmmҴFQE[e/v=׮#~Avjnet t5-7M.ݳnp#@׼Qzx`2WWK{i3 MfC=Mp=/Sۛõ\,X)k@Ug' Z{vGB7П:=5$M{kaߧ.@f05ʜ -Ȫi;sajk*,MegRKyID~C0֤zI8 kӏc/}jg> 3d0*R [6{+vݿ_,q8<0 q,//{N^U8 ҂Lm{vWϯd$/ y)G1N;g;\7'2Z3\@Tƞp]*iK.qn^0dxIuM, L\˿3Գ?n-9X'_wZRsOO^D1 d6ɷ7&=*?i@_<19Pz_)ا-?QMV}"QB6U= %&>6n(Zi |f.{VR5{9/'7[0NoЦ ?يW.84so4u]&y{k;Ӿ"Ϭ1iM2ifw Yy3U%?"Q=ܽs!7|`] _ӌww(ǚ=[.ě9:uY^afP@ΡgؿRi\l]F'n,dvN> v k4!͸eك,wZ2hUUA;<{Yصr;MQ. ng:q!úv=~?}M$g_ܟ6xNR.z;UqioTcA7J1}ҡmi4U{N~#J&>`6+.`*[~Zun6Ok)BzM d믧pP''KԷ"]<ŇasBIG<_O#O:[]\,l>ޘ(ǰfgFb,dX"fޥL(ǂ;*r)5%ŒT G[ٝ8PBݜR mK~,nk*߷_qӣ *ZSy$Bx ?<{(VU~jŹ!Ưx0">ێ13.o!̌ O/ف?oƨS0zSB4!hŁ;?˩N]{Dͽ@["n᭥NZyyADo>iw%g>sr)sss6`00 {jjLV"{[2rcqd2G*sjrS,賂}{`!Znо4&yM?͐~/e ~&@IgYxĻ.Ylه34-.J Fl Ȼ=իvt4R}Vh'/3mƱ߯1;ml^O=|735W^!o0o|}7ɲo}x'JЗӪ nӚv5K7,= w/_U =-Tu{ݕ%%pm1|46䯳E2)e2l5&]F<Ɗ<Ӕ]zҲRh^MC7FӖNЧbY]קrګŤIE˗X|bF'&~yb:m8%;c!({1#.>[2>*hk/p9MkS]sCQȢ)^l`4*Cd,]ZƐf .Uy[,Sw&MHy {͜D_2YWU:~|2-+:!mϾ(Gᢾo|x˚>06aGux54MgiGNaW6ޞek%l9=h/ ukJS5%C={2z%J$ZHB_εG4W 1_%ەiETQ8w~O/GO{/ŗ2X?ބ{ZxB66ۨN"3&Ʋvߖ5 Qwd s_84{9v#&;c3 ՠL`ٶa"wxCɒĘAImq\TЪ4%3OvՏLZeJІi>1c`L]! ߩzelY*$&hV8 & 6f9DeXш+4ݿ*I{[KHq"~W.Fʎ?]G:YusUy>7Ҕk]_*?Uaن 4MYY[p/(Ȍ-x*s,KWm~R@W#Y;. { ApV-ZVGZVVU[WhE{Ql$d!w$~><.{e^~*ő :ؽo1R$4un̲(vFeKQ7̑t$Q=AAKQ]30|gô.+~Jccl ;ٷ=<廼gcC3KҔŒimYoSܛ7\+QC#/NM(yy<.zψ/kziG9-[]S}!ϺKkQ"wz6E8=r:5)Puʶ+GJ ڥ}#ǣ;g$] yx<[єf(D~. P&A`7Et>qN٥țjycϧ] }  .Œ›_QzaQbVS(Ps}'{ҬsmyFݤljŲeo@sܞ_ $Kg{Fln;wrU-گkP~ei9uЃsZ5yބa͇ڰl)@FR! >?txⶆx72| TU!.hje!]u_P<7#JdN3sH,,O{Q'[ }^xC 4_2dfK_D%*M-{ @$"н>7 W&"o/9?2AA KQU^y*!>^N߮Fod9* *Q4}Q3SS˻衮4=<*'>_ WA]q$&H<6|DC%$' !a=A 3?n1 4#<0a#P?n~s^IA.zY78oVvVMFHQ: ؋\ڄYe橅\v۝L/et禎Vw" a%48a0oFαKA$ WAh?rҒ?Έ|Ԉ(s0{X{}L i"LN׵%vƟ\SJ(Sw}>>L>J =T @z{ٔ %Lzx~H-]V#RfY:bJx깦n=ڹlyy-+4oUϽzBAA:ڪ>]v[x*OmtoiM'KK[_WSS(@]x}$b{q.^ʀ5qtǞ-v}TCxIWߚ.hrt`.ιwǎR,AīAAi#e̖07+8m x'k*M9f-'{Eh EG4q vY=!x5z B/'?WB#K82Oi8.e{5$/"M SΝ4*NJ :M`3wAD'+)Ry)EQU ZOP Вk.ǯy hJ%EE*z(chlddhģIXOAAE*JZP"ܹ@WjZhԪ1 )Z]sz  x4jZ***jݪ@(h1T*F$'  C(r#C1}C#cR 4G  9^ ogz  x}|>zI#a=AAA> pֳ!a=AAA> r   =Wk-  Q(d˖AA(r2AAD'sRvْ   ^2   0j}aAAQf^a2a7;*E^wڙUeԕ.;X>S롅lHr CmhXy73,LADGhS2TkL_*/266xf]=5E$1A 2~9{w׋|$#i_5p╦fx% x4Odl{R )>Ș  IDAT^wa*#CO[YAk;ʚ;WsP  7@d VKKK)*۔[$-r9 MGN=\樑Gp̖XK>vEm0>L <-*ޢ1` vX KJgMgj 49ޯ o|Ofzr'VbMֳg^,CSb3Y0^܏BŧƟ V7 ?Uˇl)\ܒ>]rmZ=6NÃ-ۥX (ZAAj}aR`ɯ6Y)s<ЉeѾ2&VħÂBL7_W`;cT*:QZ+~Ni۹Ǜ^.Uƞ3jg.n44ҏvE̜~i'a#bGzN x߉Ljm'sxAcϏ)Ў쬟,:iqS#ͥ+\B3sKEv:rひy֩ƒ2/ѓE UitI&F6Wyv(ioo`kbi@ ʢMJ RW.@hyx|JPkyJ©7.)J)ϕYɔNF]Rrqr 7Oz .6qk i-]{/`K#SQFBC?|Ƿ6ԵW  : ynLq1qKkwygW5Ï_.wcq@66qjJtQD]k8(qRMz (e uaq\ЦUjzr<#p2ǕL "PK UWW.UYo|1 UuI˴JCOШtؑ6u6dW}(V|8ʥƷ?>FZxhꑁ=#`OE8emw*;oe4Fo$ x ʦUF@Smz5d|_P?ZNygW;~BϷyY,i] wj6ܹjf֖-zwu~ țV.L>b5>Z (M+~c/~sJZ F.(̈́Jv؄cQ&dV۴ݦIg'i?8x݃[|A11x"Osצ]qrwbQew(AC+=ҺZOAKYΉqqٱxîmA-/黃fi1:0vs΋V?'Q-\d~vletsF"']?U~| Oc9UG[5Rxn?7Kx{_pcKӗPeg#eM׷\u=Îy5׼mB[ost\;7Ю.'e\p43Hw\]baj.2 %v3\jWur;e3MӦ&ܜE"QoI#zPQA(Sw 7!]2i}}i tQeum]=L\o#GʛܚߦEz?o74qjKDAfr_:RSehk'UEG|.yac'U۞Ee/WB~c'cG GQMϗz>\./,,zP_ ."]ܞ' ¡a.Gw!lו֭E)g|^gL@~<XԳF>鉷cvGЯQeXqlDH׷vui~GEj@)x/خՔc>ne֩,yA!riǯǒx٭gufijgdĎ_Fwnh%[zw)@]Q?~.Nb?}ٛݥdqB;zXI$:N7 4n;[IVN/VS|JC;ZI/Mk8[2_gzyY]6SDuoQ \U^ٝ9<"y~M|Ttuը55 N鴗7o`fld ^["Fض y I{.܈0>ZCG ga=rNΪa3kK·?ɵͧҕƭBG>Nu+ʖӯ>eJ>R9p\W.Wh^[c-ڏkVړ+<ˮ&W}&i\RVvzs/Z|Jc%vsxdo_g̽L{կ~ d}k_e(һ;ILJ2@,lCLA 3 o*Z< M'KK[_WSS< j2o tκW3Qe,u ]Mߛ;b<Ō"1{8 S:<͗=aDS|K}jcȑ/z}Z^Z*mZ-'o(F*%:7A~<& _\>ƧE5>*1WL&0µΦ&Aȴ<1ZZr4(cchRO.lϕ E) JJkZ>P]K˕mlUxկxVƌ-F~C}CVn;>l`?U]~m͹yM4)ehaPs-\Or|rOw`| 6r AZ 7a6f[ qB]}~BHL^BSK;!75lYNzA9c`{(vwB*_>ֿziY|^!^Ž?{Y-LoUf:oۮ/+jޖ PX/ĉ#O 0ji,P\޺'߄<|N_ɨdto;y͙t(jKAm# j(cz1[ԒSˮFg>u `zMX7wia\#QFzӄfZ7g{Ca شZXkiʧ Yc2q-(+˿4z4ƞ.e`96a]):U,g+U8~ةu[U;2Y#v34CY}kڨ¨Z\if,鱧˶:u.h '}/֑~b?Ϥ+oMlfo49EDP>dOcZ:;s?Zs>u ϶+f}ALg7hB gݧh $'Nu^Yx4x1v`2==`kG'&DZowc?0E 3Wx8M YmǢ5qQǖx+~aINvZ^Phfc]Mt&ѲҵzQ5|Uuf{~@g_w__ނ;UgK;ې1z۠S ^N,kS>"iG.~QЋCG}ut>tdˇ?qm?+RC^J/5BVuB۱/~m' '7 z>P!]j)Dl@z=蚮x#t@AxO:xb^YR?yQY¡x8 P\1}m/6-6ޅ1=7$'S9@y槮|-Johx+F URtsyBY1c8UٸkC|hBÌRt)ɘcqp!S  L#0+Vc<"|39h>c)f(؈m0+$M~0uXzQ S| ?j/GZm6Z"ϳ~D_uu'+~# zKRna Р(OS3tG7wK1V+s\caxP¹lR|ae겥w2T}۫/BL͂7t103-PhPuV{Gj)x͡PCAETKSP Jax x<J {ϣZE(#'ZَزNP]Fl^V@]ήąN} @D@c}xVLذAA/."//GO_~V,-0[UFۻ<*cGa|)d<r|@`DWl Îcه| .COt6\S`LUxUٸj5J:#Rlo M&EhxNO;(Lc;,_B=׊-rd߆Qs:ouCg#tCk +1}F=ʠnG `kOޟX>GAԿGfM; b ^ar$H;\LO¢ݰInxTTC>(Tb?T]d܊(y[^jgAYnY(M@ s {(axx *7ϱ=e}q}l_7ګGۻNa õ"$`&t ]18M)8"k4kοX6UŖqEq@SMAH8ԁa'|%ٜ~OqߟS?Y}2ua{3^lgWkZo#G/p*5M۹׋OѠL"^NNJzQqP>^}~Ղm|G[sg=թ MOC|ЦFrxb/H`98,kNoT X)Oa8VÖmU񥱁Lv\_-J?'P]pkÔ?~Tصl/zWx8]z{pNF {EQ>ODϗc0M0 چ1rBXo?!c9!xh=Cj[:,+Bl̖ ZmztV?*Ċf#4~1vހ]59'c9<څgVgmwoA )#o@{tɧ,x :Sy Eq/I=[z|?_e橅\v۝Z~UwsMVV.mBVL @wPȁܬCy7n)GؕmlGӡ} C^ɩf}ٛݥO\8 I"c;dqB;zXI$:N7s"|JݹDlee5Ӄ\< nMؑ2i}])s|٫ˬSYe;YϮ1SFoZ4jAK?+3'ur8W;؊L}Gbys5ơk}#C h= BXc=?+źdt鬌4 :eS639;I#}7 IDATfUwi}}|:^zQ1YX}'&ὓ4CtƹFF8bviҮ=#=88[O?=kۈYE?\sMWJ{rss򗊨40n="ivڝu#f^q,|um"7T:w*Oa4iυQfaGgϊ_}rnX#Y^ d}k_e"һ;I 믹"~l]ym̅3lZ:#9"`2i(':ib{ɰ{HXOO%ο%W%cŖ Ol|yǭxgDgiԻw_<`O7w @9y7M}9O`qbcbdPܗ:fr'!c8zJ*lW57VDQwC:g݈+ϷidbbijjaRk`?# Vm<ݟK7&Y^481j'*c1,oziRLylxЀ.͗(m$6>-z') c ضXêAc2=CƂV$(S6 STJ(aVgb]cbe LX/|ZUp,J(ab%؛*Q5@y\I*P04Th> ZTq_LDQ2Ԋ˟?i X{w/}CVn;>l`?U]~mm1.]̘MB\#+R/!u"rV& Ao}lc},UP7vGJdE5_w({|„]|o#çQqj(MHssy'GX46'qA4J':t%1_ 12xBNm|;9 @Uqg"c`\}?K%T~:\* [y0!릴e!A~X-S]ggFFU]*GOںud8Yr07nbg&6 "X"qtǞ-v}TC5O0N}Bۧoߟ g\ó::0JY~5-4@[kA#}\;,-ySH ["a=AQMilObal:خ ;iT8uwf`26UGO c{/wkA"a=AQsl/N'}jAKzr ī FY  hHXOAA   #a=AAA4x$'{o !9B۫s,J"vq[7K.yFV.;2hHXOQJKKcciuFX_d i};FB7W˳qg$䟛wcK ERj1Gr[[y;nw5ώnn%v<ȁ?w mؿDž4o4bO٠ Cګ[ko;s@-sg+ʩY 4,8=ų[@;ΪɈ) tHc&uX{vboݢb~`j=>IlMS@з  #皮 keO~g'ɧCu!GoMsFԅtrxz;1T@8OCO%gE6bE%uU>~㗮87hgs5Uԧiwֵ=zŽJIBz$o!k lʆ&gg=IWZq~':Xn݌~sk`;w+>[lsoΡ*Ȓ3Y:W;UIg-8"Ϝ-;6\&6JWs/B~vYmz=Vڏ>ՎOV,ކAu 7R"1{8 S:ʾ蕏*b>m`;nI5d}VYwjgWorhc#P^d<34], Q }mE%}7ds֍Jifh#'O1.bkj[zuyz@sɜF4ŷ7'ߦIAr=ci7ySLzAX7=X 5-SdR~ކNoL K&i4o1=e^Z>,],D{S^(rr))U25P"hPjJS|X~rU g˲Κ_x&&e0&Vһd{Cy\I*P04TʳK,֢ BoAD}f{wKܼL\]}%Yo=ñ-~'GR#=d]>qA_Җmqb<Ց}Fɥ¨CF#/,X4w1ʹuOwl.@|Е|%(X ?ZU>9dԥuf5WV:k+_tm# j(cW_X+8w뒰#H;R.:ci׍\y8}ciz1*O u>5|ꪽ C|g]˪3-OGR1 @}W8 O,02xMxi476g&6 "X"(8ز{ lڻJqGV}>է6ή:-`o"[ˁ>QE=~j}~fIÂqtǞ-v}TC 󞰵 {Oc'vWQl;`듼#Û5n7z- mUػcZPŘ/;XTRk:ʢ?uYj-&/lj!mZ~&&:[vIЌR迿~<~tmfsmvš?[>uކ]pK!E''%lZZRPt(&R ZgIu[g.{_:*kcnLkD==qE͇B)4@,8!2? LW?6b?a۾rA th\C/}U9ʄa̿_!x-պʧyE\T%+hWV۫ӻٗk#vaT| Mi] MX?:F)neiѣfQE4]1@8q充r[j+|>_d`qDH44,@9 2'?WB#K82Z|꛷]lR{ "5 ]ЫP>slUcwt/Uf5䥧V 8۩'5Ww}y]U߁SϚhBPnǕ}\]ϿmQ~G"w.|uZ2lgKwe'4;}jЂ[* NP{e_rda tnڏ]0 Ja(ƴ1փB+Ï&c!`mGQq#W6I +]Gp`0FꈇNmqt0lir_BhM·NG~л\ \}! 6 OuDrtQqRgioȫ|@ilObgl:lČzN}SP{ͻ|M-='M# 2WbeGW ruΖ3+?m-s&[;N>b-;t?+Hz3''Wֳ~e_K=Ț^s⦈t}z1yC3>=pܭ[ @x ` nNwaT~MY^L: A 3d<@|K9 CqvH;0.˂- K}T0l= q f;gw qm.O[Ym|?z喦N;q(#п9x& @&l۳Շ#AZs5&ϩ =Θ_GӮ,M &R`Uk ] r@Yt m;hnXP-z P= {ʷ- pz5I:'lgobe jǧM8g&E .˅- K}c流1 &(0 @SD˷ۚBt8dܠ^UΠ5
o!^ ((As4CyA}asXR[)ȃ) r(U4eS=YѻP|"(@9Kz{  zݛ^?gZǀ/HxN͞`\"+mdF?ꪹ)u 2m\~,Q?0&63GqL3),. +Fk0 sg*4Q*_Zȫ.I /MXxCNUzv4s{-<<_bu 1sLKXjk frUS39*hVSr)pQs}jzka*H(@R%9l8k;>/ק  R0ivcGx3}aۿ/GT(aBbNycLsBϷyY,g]dzgwW͆; f4hHki+4#S\Z4fC&CLgHEQڴRιiqZь֭ZCLi/ j /R^ą;<ߕme!Hx8zq%#x4 yzGVR,Ed<)\Sqkatg5h+wcJft,gal)657qVsj1RB7qKiHS/l3ApiYyhGhym5ΛaJ8#Fx8lFXΙg~1HPN)gBwqM]?7vȒ!"(U+*TT։ZY[~UmuTd2rQPzsrs{CN.'P\~𪚱p?$ƒreKy(/OGZj,IA ~ko}wVryrf&A2AS=y̥l]m]Y[Cv*ɇy#x[ fMZokO=9مPjr><3nÎ\ڕl3~xze_gł 5ѝ!Șp +KeyPA4]e>i?xr0"NzXtsU=a4|SKK.dW. gV6&,ވNN&&;M?̵j m Cww3Z8!PcxYL-\&n_b]dwLŠgjjFΟ"zAU]'FCcgT`EnxOF^)WBfI"eI cw#$e.z@\mqѱ|aQsO36M')';`?nz eǰ@-${;YZXU̸-I,(cy /Cq$6]3l?q0sޕ]1ůehdOޭ PAA|;XF6Fcg@r#L&-(WgY %+>pZΎ\.Yv kψ"臩L)Uuw%i03bebe, Ȏj:V!J=zO&)JR\P޲\"W M̕$o{r:aePChy=u " >>ﳈӊ٦: *첒l! t+P &{3^ƒԔ/#^4Ko{^f|CT)M/ ;}៵Ӻ;u+f4.5`/TۓNaelz/<=~4>ݙ _Airo'ʥ%9|0-:R(_C]hW`:k']-nߋueKWOj4 wK% );wA l/~.]$+y}`Y qΝ?7O-Un\T\"7jmǀ4ʎ?(ʛwme,ĉc};} ўY=,MxV_l|} QGu[ތg9epܦc+KO:p(*ҷcmU{QYMت9N c>N[~&,OD 051s6}73ydu2^@2K*n !ŃN80}`6vU. ojQ?x^=n~hʫ/i fCEI7S]^WMuD4liW3OhEuAskC]wbSg J5lѰU+j>KcZ5e*kAi,XuFqI.Lڤ!Y:AX563A|8X14e槁)+6|lv<""+z|&YI_[:lvR[^48bN6y!B&5 G'[c HZ|h#jX$ bLth s}E bJkZFB/\X.0w8:`P7˰g:AQеPgPiqԂ$*ؘ#t?2XpOEo"\ .G /=Y X1p(|GbΦ)n$m $awJIGav<<1}B<`n}'\*Q7^4 ?߷jŵo(tr궎Ҏ~ͺ[wAtc?E S9s!B'?q3~ jHl@}[5 +~ɉp]7X7[rÑuD?<r_*~B" zrW8#!΋l2taE4h qb6Rf1YEAGu@xGuƑA0CߠK_81_H9B; C0{R3?4'!k6#MtW1<.m<c%Ij据]@L >\硳I߯N!5z FPy1tƷetq+1[w(iֿFBfNhcE3Z\]v / `P<%;c~\ƐJFW. &,Іo x5.bt6|`9zvXE8(0-0 FTOC?YI4@%hzv0]E34#  >IMiNA(L@iި&F +˲! V%cQWE{>adcK,XX9c lL R[7~thc!=G'94Z-'D;;@PQgB'!sXl` _dA4MMY.]E3  ⍦47UibdyȬ;`el9S: m6ai#/sbF< ,YxcO"qg>6V_No1d'Bwc93U7?/:ϯYI4èsmW  JS { )By!bD09Ģ"yuxuQ dqt:= (xC1Jǻ4i)xQP vlPbE d?ĀI7p&#`:KªHy^ Qe56i\zQ_t_6o*y](!IO^0gd  44a=G~ßU+`!SQ(,rFWƠHtP.-`t ccxLA) 7`[7'bʔ~)O #ۑT9KQ?w+P,Y ̘?bDdT8諏0 1ͅ` kzc Skj[7~<+Λ&)FuU#ڵ-3 †  > TPx_P(|@Rb۶2ƍgqqNNV|Tv.~ KwMKz"hX(ޭ}"4j`M-3MbG>fIyo^&$8Ըf$ kAX~:tS3*`0'740p8L&(KQ"X$uL`Zѷnۿ>54*N[^S[7F5v$uvdLOAaGhO-٪˿SXa05c@.F̅=~5~5x kTHcAA{! 빞dvrâ#U7 (j`M-  e>I8AAA"z  a=AAA|Ȱ   >xMpX_I| :`y8`叴{iֻЫV>{zM#qodﺿk>_ Sz^ iX/.7|~56`諸 "f>\zޏ Ca%ޢ%>Io]5z5~5x &% cR=AyADhRp8:`P5/I7gCK/ʧ_OMKaȕ)҉``υEL}A\Q66U1G~dn9̭^e5a  #Gvev:S+~zat8郢kW+0UTOuMq7GBI#)FmD\ig6o@MK%h⡭C]YaY2MyW;~5T<A5Ұc?EA 1S=$|eU "\{H V{v5$apR#U`<YLGn\YTwH0XL@RR ^;y I;qc"[qţAIҶ[P:2%^_fQ_v$ i\ms`\ .r+-B}UCᳮX|\q$ n:uAn !9R!4U?n59/T[ f= e:[ F#MyW'~y_<Ax>a== [RBQ<:jغ /(e4UoCů,Eh-xQP ~m^B`9t v0c0NǡOp(/]=pIĪ9BXv )k9(Ȑq+hWוxԥ(~ l0?Za49į mA)LedEy='cp `w1`7 >1(l aDoCů,Ehەv`;b~GC~Yv)t߀m0L )pav(G.=g>A pŊvnKJYdgj4tϪKy=Ać ޾c^ 7 HJLoVPV&?Y\Cm,Ee[ؑh/w+|psՅ5[SJ~՗2!٥Ƶ&aXfp]Z{V^_^aɮ 8H8# Ⳬl3ܸ D@=QptmA1hs[Q>?z6 gױ{kY{[Dļb¹[iPT^bm%ku7?|AKGtYO9kwee.vpL\ڏXyZK,j2p\lDqXգ2~AnQ< 8qa2E1 FդP (E"Q`k6}떝ZZZCr)5A yYo7c'VkCׇ0beOͰ ry1~n.3RrA\@'33iD!+eRV5"cv >PdXO^r7u"wvcN&T{ڍ Nv7+2nլ_c[6џf 9Dʮ%[)#>uozz`h7ӁTٰ\su__f'^@'OI|Zw4\I-W5֭FT/x ,?{k3o3 ޻'BZ: Œ"Θ m871Wmн9lIP=?_}w [q PLPPmC]% nOkHq{t1I8t"/.#ޑM5~SDqiKdςӗ.((`A FBAQ֮NeϮ׷N{ؗJf|CUIEٕb >xG>Oy~x)N33ssKvCcBeĕ[k%")}7΁NEELrsԦl8t*m~ϵ_H_0nVxܳZ[jtm|~aX-w($xȰ =ы\tw~_jc#.agB@vze76}\=\1 -I>~NeD\^xxјE~n[xqEi{V1^&*///ri\$v[&.#rT${yogjM(z%ʻYrr_&,?)bYhǙbIiڵ)Y6fvS~W.*I>oL~s鞜9'*&K .MZVe"h2>a9)5㧋]>k#g1KcU+ 't.AK{~Cm~}~h__q^Є!p4Ұi`-jE8(`P$J{~3sļ^Bq Ս&ka r7Y Z&g= .tw|P4͔TУk!:hI[6IyuAq>0~ _Wy+P8LY&-n{Uԭ.uUy}}AjJp ,Bذ3 įP+"dHn8pq 'D;;@< aQ+D:J +BO?{!B@!98eˑپ9CԽ~-?AA|̚ڰ^ ى2`2jOʫg^ 8fЭQ,t$&sўa41X,u~֝i7Qo\4fvsFpw휻lei>h~^-FJ(1]MMxA/V ףmت*.wY-♚Qʓ$qSG63o\n.AsdK?XkW{߷x hʳ5AgO+yۖ khzR lec35w2yv^_za9}rW?mEt3J\I⦎VA;ҤPxI+' +_rA\@'33iDJWv˃(nDzSڣ8Dc`00% Ewe݄.G»/}+tp\.AQLa}<7>BAGYI._(rs23wRZj )-5˵~gsmա'$}oV x-gٸN//i[gȓ t%Q, p$&C gir/mMS"K<<}]#|_R\r&Ŕ [Z^\.?^g7C"efy8=ߴh>bq&dw_q-G,KK┝!Va<)g{έR9myP7~\.\>㖊ܿ<]th yMyC/)u2\*HaUtryv@r]Jr\h6~?Zoq"\{}YmݨjHs˃4cww:=-0Қ+]YrIZdSon%*:wwǑ?<ߧOɳO?sٳ?O8o;_egWC-++|b{VffnPvr $|u]ϙ_zil6NvvNEIR@=|Rh+ -X|>6,afG.amc[6џf 9Dʮ9.aChȳRŽo0:og<еqdyPw]&ǢӔW' ۥɃ7Qx^GySR^(|x()-w{Ocۥ-)_Nv7+2nլU2iR.#*Rz<]Pvk5}䙂Qwu˓A!Y";:`3@1YL 0Y D*DW"9EI [W7ӯo-x'CW[+I6@v" (-QER9pCDI6(q?ҠmyygBqCҌ]^(x?T.Eo+ʜygCWUƣrvrʵ}ep]{F^`Ԉ7+C/iaFelgJ̶SuGJKkO37Ӓg`nmtj9Y31( zU.gPMy"z ^ׯq5H3Mix@g=Ϻ]z.%M̑sMI,c;{sck~ mB]VD|>WNP5c[ ?9O'6 +fA@wu5_yQz:ySYKU`4jUraҩ;zv~d ׽P]D|C)x,@\]"Uqˎ ZWKEg04>>V &S.H2TEIgPdrYcL2rvI@Yʃxűj3! N;2c=ۘ]OYxq^$-hԿ0{r木,4ydrL. EdߓfTbZ%ᨹЧ4/>' X#)BfXLuAI12LcйnCw<A40Ie'}hTgYKò [5v{i˯q꩷C:S-lGl?5̵OTnȴ6Uէ=n5?X͹dž4wrm?~lo.\dgJe{&6vnҥ;/yrνį(=fyQ/5)+~gV7KW7-_n^'-7-]1ؾUy_i;WzЦ}u[+M5?lۉ;.ʷtPHQèlҶ 3dYCm>Du[+a2-[S-EIe278Q X<pyța͠V^~L,$m#I&?D:R]wnCw< HuE^Sَφ&psO3F}75̼btǨ# O8\^Vf˗/2AQb0:l.ãTTf!\Շ1Aq~͘&=v;NARR"}ц(Eє~?YsGؙ U>~R` t9rep"saӺDmX1p(|G|ʍkZFB&h//"dV)07= '9IHR:;Svy6icxNز#892Ũ(:P}2 ~FH%CI< ۭ1YHHeyOuϩ_j^g1A{S^^SXPPTXX 7''''\1=mXϱʟᢃ_9Sldh,& ) YX$ B`P|_0pؑ偘8"e:wzVA /@wL> e_C\L"IFpkJY<ڥ$ + 7OM 9/h9a#`AqPQ8.bt6,`N0tA!*,|= L L삳(UҀ6&| +P:c=)$1[8 X!:Yia &,Іo x/?]z-AGг 9qGA n#!0@#.܅81D]l5 Nt_  #!̭ω$NAvkdd, *7` ( zt7oE{ G!|͖0Xx 厵$ i\msl ͲF٢4ȍ>|sBg] RqH4A4&lv4d  >MpXO֭r#ZmKN9^o`sf l\p70} @ģ X/˿8c[÷[k5%+ b ȐnO,80T9>ګ81$e(T0AAMĽw 8mLkz78lPվ j?ĀI7p&T;/x)DQ Cp^פp=MYQ<:wzV&:Q5m cJd8ww]O$bcr,TN<,c| d@5:e_`ݎAAx՗޳goY[{Nbe?O|(ڌǃRU߆䠯>:3Ɛ7551)n9 |ZcP$:\ͽaQT][8R2ߎsPlG"WwTժ:ac>A pŊv0F;]#4},Y'cAhc& /ڵ-3;$nhGAԟ@ 3g@ 022222[HiMa#!"khyiͨ<D\5Q"F3s:ră%Ulۙ':. ˺.sc+џ L QnqHյY:P]q>dg:x[}mA|:R?L>2<aO***rpp\臞=,Xho_Pp)$ňhdڥӴ5c ^n@k[Sπ7'759=]1t65ZMzjUyΟ=m[6]W fX>u܍N.tO3|t菋~~$?{gg lԥ. |<휻lei>h~^-FJk[/C{_a*gv/Ftr251iiac.3{߷x htrt,++sqq?`[okUqXqCK\4ov4x!/m/71;'/ݵv(/eȧiq*MOE ^)rmh=o/'=8œS]|8?|VBѩ9qkb/is$){dž.M03+lcCxѲ+,/FM7I܂05at}>_WZy\f1*> 賱&U廒[3]y=QaÆ _1 aC>68'\xDs}t#8a/{i=9֡ @=|Rh+ -X|>67QAy?3)wӎeӷlhvJ4$6]3l?q0sޕ]16oaodglao``_TPqc<4SӬe=T6GOJ7=؆2l5fFVe.9 ~y6S }Bq\{(-3Gk'k}.KD]rܧe˖-[ o[((+kժՒA|\$iR^O+EAe1bq2q~ӫtjb$-%oc84p@a:8 qnb$y`[ -2d1Y,&d1d-fYڂyB9ti TB22`T<± wXy&}ؠĝH6mI-﹧ӭ@p@ "FA>߂,]wN=K3Mix@g=Ϻ]1qRoMe8Nx\Ygύ\F%9sbՌo+)؀07HZ6&$eE'~B$xȟ >29c 2H {PHMNDnNiE1VV3^ocrrŀ$%;y L\w2\Z jEV`mQu˶ rE;O&,~ dzܐV՟&5 Ysғ,]N Wf x_i !ŃN80}a(F ~3ﵼw]?8#o[;]Rr~ x(װUGV8ȲrWz̿ZOק)zLJNCeYeǘm'm0֎6[^,s؂2jᵿNj>KcZ5}==a>H携_O ZNJu%}!o c; Ȋa@ז+T=_/G 1g*IħiNU9U.bX#׬Φ4 *ؘ#t?2Xp!y6icxNTDIe?C$ꧫG 76^ϑ̿p?p)0 3-8:`P5d+|A3 xqJ@fEy! .( l3qO{.,z`Zp b%y hlZdq.R(tr궎Ҏ*٬w /[tٲ;vl}p֭+VXRj{.:0]-f#e6!vD%t4AIZ08.kߍ 6u+P ҫt J  U"HJ^H!m7@8ã{̝={g7 i2cF},Fn$; wu D[x}:p tށFwγ41!DM,k p0{~@G$Va!-4]o`?_ByD>_JxBO' kMߟ/D\KB,,,| 6ZQާOwi5TF65"4U+C/`#o[{[0l0kk+UVY[[9yָ4 "9^Ǡw]ϱ⢕0R?ZCHb NNprB!AixIV<lHn] k7N,n `-أ h䈥Ъ z` @W?B!BX}9sݽ˗P(=%۸zx,XGFXw. ~h 8@J $3yBpڥP.`."WEr.4ũCaZ?1~1)N1[u!B)Q.Zwߥ~}uE7ZoHV&^iU]acrD's}>Lfǻ:t~>:wxUؘv V[jAx)5GxCe/䠟+bo G@̏x gp.hGAy$GGE:$~;Vڽ!>[BH ]QU="?W,h(qB HV  CG ]2K!<j:CÔC#2hȣBS͛$RҷBGˀF !8+i@ B!4x/@Zt' ?䠟VZ#`o Sj2. -Ę:9ڼ 1)4aü;>8Hf KRaos/ݕp;nwFWF l"³h?5OӦU!z;V|_X9AI/"6rYh3-]HrE41xt mPзJ JPT]<v<P-,Ӑx 4"6ɏEц9}fcɍJB$p6n{s6Xݷ~8~ذy)0 ByQZϷp lm">2" Ua819@x腹  h:zJ+C]0@USbF*d<m 65x2SG y7qǿL$aC}xfgek^i/p\| !9yMfO޸}IJ_|o[VM䡃MfYoͫjZGז[n?Hmۿ~cULM6j3>F74P_3?xD "|I4|F;u2Z !ԫ>+ʘEV#XxMV6%X(Vٕq&&aQxUess bQg"#sa IŬ]}I% m& <R`KTzlBdB^B+gsebBnaKͨ#kP\ᨁZ'O>sg.\ ;ͫB+gsuZp56;1\-r'fԇiPg5²"KQ4FQB)E?>Lᬜ,y(N!^0Ǘ+q xcf/Z&u) 4r¯ 3& W/Ǿ< b1BO*Lt$H4)\Vv 4y3 Œm,AO_X]]Lv̐J7Rω ]De+fX+Mm,$uAqϡ~ְ r8s.V ׀;ڤSkA5p_9s\G>nB孼od6 p y/GfkRa(N!R#7fR?Kq9Z=7A M,pş۪sEP ! VB||tTS(>vW~bTV=σ6b!ךnK!BTz%4ݽxD" ޒ&>zp^MybU;%hB1v.:,6BK ?VҾ2iC!Agp-oB&1Byvt ,tVtN 3W/ިFC.U!J !5䯐%N=u!4t4C!BHGi=!B! B!4xB!QZO!BHGi=!B! BHq^h4uHMD">0\BHBHtzJuKM(ʴT>/+!nл!';WVsW՜Fd|>!t('g`Zu,Z633+8NRi4e9jcFR'zByVǡz}]S(m rנb>8:Di=!<+ЬNtuN=ls@N:BKzBy6䄵+'Ƭ7aWOd.&)J !t/$}ŽIٱqC-]!2cu]1B^,B3싘ֳzDZzWdٜNՙγh:pLUi,ϠNBZBHyzkgHE85(7̰/ycϦ|nAcª)ڢ}7{xs&G}}C^ia½Q*̓{)MK>Dk8m̺MNPQY.]ҀΊ.>>=WGj8@y}QTEh!nQZO!\٬VqeӜvܹKρW\б,˪ίxt.:u;vҴ,˲ʛ+^J~AQͣmzN;EǪ#7>5|s=:uܩװk(Xe{vԹ(˧8Uǟv;23IZc*6TR{J<<9t?j ?8:pή휹q?eܝgVƷHڽ;\ܽQkb** }&1buT=~tBn\89 !uzByԑؖ9N>oq}᨟:As+QGQQ{|q˂v ;}Įoo㴏}:{Sv/v?}lw;hUPP0]rq'68 RCUm=ƾJ#>n7y' ?&z3l$bDQ缣{&9 c陧6jɫڬ'S[;ndkSCO&jeEzߜ8U"5Mj!Klv<=Ob(a=v4}~ 1;7of'>g= 2BYo?{$R]  Fwh)ݝQVܓ*28߆BT*gӫƵ}?P7Q^ftY!LGrHj9'j%NBsLI<^ӿZ}3LpxٲBˈ, O(8U-xRB/َJdƺ{ݳg>qiu*.h &#K],P)Us\Uټ;ޒtxGa5D'4{-WS4}t؂ߤA!?,@r)kW_ ][^sFӲ![w0CF5*c,,Z:]E$^%:Iff4R_иoo/)1 '?nyjw{<4!@8٫]Kaa%;{ ], 9PbM -No=kYf> *1_qgOfAջʵ݇hJ `#`oo#^-F-AVMv&(LPEp׳0N@ {$~BHPvZsKc4I[3-ԮZ3r%cnزD `-r\y#Kf;˅cOE.#V|^6SHl[ v.×_c~NՀonǭ_)5Z^qACL\qΒ㏛Z,>dU;BLq#|% 9v<³ le*+Sr SޚRT`Y#~5QU<$B ^groj5I7ɵ+#ύ|?q[On|64=uf⭋>aki)Mpˊi$~a`dn+ l#(qp|&&]Ķ[8g1*p0{~@G$VEc &"d0n@a8 !]tO5vc˯&t4mUi;ϓ'cKƷ ^[p< a~6Xx4ȩׇkz}Xh忄Rj%w6#ҍ* IDATzZW0M߲:^OOM\Rs`z;=tzO-s/lM}anl9`Xp'w;0x/FV;HS/Q cq*\AZ/„q0cgtÕ8%bC/AsIeqB2CK xs "_* |,qV l:zki奨X@`i] "yQjo.: r~lehb "0DkUPE_ huA&FgKd>u:{ZnC!E]vF(Cbu} p,^=&|U*']z=*UZ3; ȈUi&3+0Qf̝D_m^~EՎS`G=UOp(ymaxjoFG]3F8ՎB>,'4xsyiv&CRz/Ȼ( 0q'_v_Ivp;9e.vEf87Z[TeK. lc;!z8dWnuvNn^G`{sC|s'UҪA0t59ԸMSH 䀓x@lf{>q{=N)1ڡBHtuE=̘Bjz}j7ey?=o=9w6e^5+&c7UCvwc0kzbUG']6xgGnfOi}=MTaBjB0/h4"-Ͷ"TFcie%232Ub"---%\"BP*2,';[W |F[B4J('B!}]On|%i"Mm 5܊sمf4FC!EJrrKRp)/4c_̔[fmc+XX!B{a@!2}dERG}Է>IFu 9`a =ݔBM!zKwygk}/')rqԼ^kdRTByh=! S-j` 1wG1b;Ss~ :lB!Y=&hB .y|2- ]ƺ]…BԷNIHHغm۹se2ٳhF !P]bqӺBHQ*s|T*Λz6(B.i孬4B^z_~aYI&K.j4keZo&BH}ˢԖ_tiIC8zHNNSx{lܸ13+#ݶhBmFP=!0J+W 6SP:@jvzBn3uBjI T*TۋD"'k9J !B}l /T(9SB!LTxU,zB!B;>:a$x}7Z95+U3O_7f˯9 3R7Dٸj-<;J !S{qdCE{1E|A]qnC]$iG2qC RR /yh+7w>o4B!C[@cylvLɵa֡^cyߦ_:\>c7XxsYl+mVz9ͤKS$X1ꩂou-bUhr>Yjdnrîrw\syգ^z/tZ֬T =)\}W֟X su+ٿ}oל݇f6ڙV xw3z9Es %_!V+㖿?bY/=l{Fgrd'W [Q] i%.j.7淑U[~/>avNv(g6v]^b -*C`򼮫ZY18w wCtqs{vyw]Qrƚ7ș];s)1NlʅQgTձko3xiV'/^0xD@FOR5Tz|A{hhǍMk͓Y/g6r2+O3GgUVJ31g<*,,,>>^,[ZZeie%Hrs/VPZO!c1cCDflf 6+iͅw6+V >B..rׯ߈;^}!WI @}!W}Rx}>.9S4R+_yn%DOE'Ƭ>oё!!;??{ZL[Tat7:ozJGܿ¬#pȰr:48$vWqg%j 6\=lO ;;֞[2uE}C[+\XrUme(^ X|9j~rz?%njL E4sT#6pȾ~3s[abϊl`v(tLc[%[b&;m*p"8lNk mQi?\b@)1[8 ZZ0)q&po[b%t|eDRFrUhRiinnfnnfff^3SSk++NWCC!^y+cf.;'ڨnfnݮĀ*{l66@:rcyvc;vG'eJwG>!ԙawXR꼫#f;Z .|\~΄Y1Ҟ[;4whh#"/,4eZNSu=(.}ۛS]wyRjUKIh1cԙawtVcza  )'_QϿlR {<ѧ% c^ Hk'G?$@e>4 2\nο:XTʽ9s/c]>લb]*6Ph#du<16f0;%^MD<{MQmT{ulC$Q.7ca6&BER.|6]j|ǖ{KDqbɉȖd[0]%3-zBt)Yj_s OPh 71cN4K/~OKEG HGcTIsȦiYw޻^]ޭyF{}h0r <*?> =oO==ng޺,;8ƼRXTyX׏-%`kܿqEo1U8zBH}Ę;KhG1B;2wP=H=&y&b7ӂ+"5{򩧉I[P$E-ffe%[Ju5A(qӆp@S9]lHֹ8\UX}39<_F}Z\NMDLa`9g2}߸ǣ4MiVBi%Jn5ljo] W 6m=(r$Z8~ "#t+I{z+j+֖<; :}oag"7'zSPM.H0ƶmrVcܹ0Uc |ZKB235V7^a˫¢ xm{qKL Ko.;4K_Xӻ9 *լy_])Ϯ~jmrGt=u97[[bRdUG̹ O4c tx،i9r{]|%Cc^M.`mQ:S΅GT Gh.QCUO=hll{X/\ ]kƒؼˏz@Uf9qiv-֝YVձp=M!Hrb++3xWݽam^ڂUw]̹\^lOں} DΌG~iVY9y]̑uxe^N0g翱o]nHK,ė#l21f)]~vp*'ckE)G~'JAԗiQmvj{\~{ K [<^}nv*''2SS75 nk"ij7}3r9D}?3Lw7u|t6*ՓqkT(RO~%wrzBH[DEFD/k,?=#In*O5}|!6{Gأm;@ўۜ;i|&X}N_̑>^ ][vpngZT㛙CZZXD"#wh4w>,djP(HWBCAn %I47у4 BQ٦m|o妦?8y^g: /-Ϭwr4w5(\nvXiLZTQ5'n|.̺-taȭcAQG'G_sU1z\뺎^cBH5롢6* >rڨXjkP$Ai+_rGp!Bi('B!B86w\0J_aBy('zLA3_+wNoLPH a@;_:-3V !('zHt;Y3 WB {g{GSuTKl}5'jMߕ(n5QrH<_lg/x!8aKW><{M*t=0;%$&"g's MBQ*Jթ5jaʹGXR1RZgQ}LT\j@fOd>81\fʾ~EzV_jӜzȻ!OR=>OPW2/Zax9<ܖG[QLf,~k=O9gr>o\чFms&B4`aF;O;'ٸǎm!4grxny?פS ! R< a0&f&|^%BH=&tuj%n;g t(37~=nm+ f3RƱh%& l!h MmL@w)\zE_˾ƿ[6FZǢU6JXˏW0p@ϯߔ'Zݺ)0 c p0*Ϯ~»~Z+]c;W4!xzVQuC,YeY8V_Z /;;ԌMB&W;X,n?鎩Wѕ˯v=ՓU/q{3f^Mo/PË>Ы/}wHNj\9q,#ǜ4w)U}!ON. hl;ኸۑy=l|9I }2=6Aw5zͲǺA dFqaɩ"ٳWݓ86SghӄR1eY>//]uDa`@`^^^j#BH%[=kCx;=>S286fT.ne3wod@2nog@=S?5S@{Umڢ`I~K4ҤUu^}mf<[..XO9@< ? Wjp5UHM[jsUS EÇ\nffxI7XIVe'gy7O𳃣\diB18N#55 015tjɁLw7u|t6*ؘv V-YAxɩ" CB||tToNQ޾)~tdvS3칷I,Hy|oīAj4f{:BHCo3feefp,[~rvo`0``ĀP(HWBCAn %I47у4ZO! dC~wס}Ңk^m?ړfYV!*S /f/B:t:хrzBS 9ŕWQBHsluf:K8qs[s9evh3}>B@ 4֋ĵ<޶!E85TV]GQ ̆o9|{]AyB#h=}GK!B3adۢB!ڧhj*zB!BjN5j[P J !S{qdeT+6Y{1BB@ _x<:\{B@R&.d`88~!]尶N#P E9<ՂwnK%)yL&OSh6Ɏi=B@tN1rUָ_&$TNOMRojJ\WS) !jM9D"H$jm!Z"b 2ykۭuuRD!6DW"FUW͛!Ԣ1ML1~De]|'95Qٖb"KfB(=&ú8UBGցʼxG!T#PPs`m8UBHG@ם2mN# zj & ~ڕ@!r"B!Z=LB!j0G!Bô!Z5QMx;/M8\Xpz#!^luZxPg)dI>z|2*/y_+9#ܑP\ B`hYB՛1=^oB!߇[BZh) -0GHn>B|$QpR_q %MݭGsdGTM''A w/[vO dbH\: Bm,{LڇUsuAF[ PJBH#gǩղ6}dz]5aտ ,}U/+3iڡB7&M (k]6/hG|Ǧ4~ʧALz:R(H99> ayLKەPח-aEF^m_JTLB>2/oj?"- N8! /B!TܶH0we.)d3e8$9ר #Sug|iDc#$Oozrԝ |0@va^Gjɋ 8yQ4D{u˔s55%xu^SJqcpvޭ۔ޠ2gXsa5ֲVf3jSHkvlXVˀЁ YA Jp:ԍ\"lOna>zf(9rKQx||gҒBsJ]P%^H37 :d=qSۯFc/lwBmcDPezntT Eoprw3 ~"ċ3~Vn7$ k.MԟdžX'E@[v<עT L3qiy6AeۭDgb9ȓr !Dv*TPNYQ;z`@U oY3DW=rW1(oKrBBy+R$ILo˻@\ @)DnEQY: @3a83 ZCk:xeĉ/u.J4quںN\4Fz(@We&~V"qlzOX8i`W}`Bפ)P%e;@]钌?Xv9<<` ߦeP%3›hhLb} Mv6қ~?0o %&c7]O ƼC*>rq[t|ȤwfXqES{7v,gv`V5Cod Πw!5dmy=//?iHS^)XtbөRP(Xoh1RHQn38mO L2mZ{}^FD&E^{Mڦ:r_RSp` ߽wH!U 钆O }UAB6ۆ[oxnm7 [ ^^~FmoF]s!߶7YI|~~^^Vff{`ܸ<)%Jz顼`S76෡gJ$Egd`7EQ?XS׋(JWu=S_32JRty:JhZGݮ=z^-mCEQTIxnz' Z2WLK&Ts6"EQE5(Qc(duea^k}8z|]V|KP믕6<\joh#VXM$9>3H\Sr3d EQ2EQTYZnӤ%>箤9nQzݎX%xڒn_{`nC}/Go2iG{ҹ+JJ; ]9>QρnУ _)3x?P𨀺g!U[(*{ 4V>q8Ҕn*#\/FiJ`?U;FEQT{G"|T'm4x/gxŁ+kH ެbm+]РȲj5E5\q?7\EQ}Ε5TzC}EQ i,zσIb=T{lq[(Ι߅~\ʗQ}ȑ/\r妿ܼyܩwٳNήW^^*w{=+3߶73(#P #~R&*TtPm[6,&9@ytc 0MQJ^ A /3|/ZW3@\[uJrsh&2kڅr'jVZj}Gqupb_gzt1SY>Äiv5a)PvOKZa(P,*l^>Ftꇤ4T H~[wrZec%y`[_Ma멇| obB!31PT AʳxE?ʒgn[+  ߻Hť3ԹUM k^чvm>5tm;3ʈL5m0irvey,Ӿ.o_eKf֩*ԼAi銻=4w~se M~ W4Vz}%l&Gՙ^o`KMVzgq+qrwe׼zj)d݉ A{zim$?EqEXrdvے%~{ ⍰jIJ\C"W(4,{Sr, ;;gqgc x_6-N ;ئf}n]|xwOyu[JRs۪,px"QmXPR@5K1=萲wٱF&M * +U<1 4F R=TVk^ ޛ~L`VZ|]8Q~ \M;,}PD(+c R*&]5Zt| Q|=w ]dhV^A5RsBg2&UZ?E\s)4VOwZ;٢ԫCUFwQ'`_}XAƽ3f__hy7"_^#PKAxz߭q[+o0[eZǶlekcs"UfX@ n=xw\3˼s=OILhJkl Wl|.{#$SDn-iLq-yI_ )+{RjPRPB_l67Y|4&SR.ZÙbƮŦ s@SW-~-f왱{O\ﵰcO~Y.ocQڣb9?NbƦ0ITդ)Ǹ-~xa;M*@ac"o wUçTXqk- M剒C:輟IJYᄄkɛU5)i*S_2ߦK  NJЗ'tQ-!W\ =Y!laرbeI?zصS#Jm7Uzrq  7C쏂i=B׀. h&, [uuN]}zšCιw9?&˶o;tfMdzF[nʮ=%`Z?ϣ \_KM+[ Tӎy֥0L81 df0R2T+>7X[bs>J}VMD'=SK*w]}$)JmF2~ΰKle^޼2\N_)nܾjRt2E=pMcBO/>{_&4++Z{Q)/w&= geJ@Z|;y50(khVh|VNnAt.7jt5Vz#-4^ L-ĤH|JA%^iM)MS`ZB- v)C#_W݅iŝԲ>OWud͎,ؙa 7o'c@ާE\7Mvwh 4U~{~t\}(z{kj[ms]W.zZֿIR±ATFXr4}eŻ-=47X. y!Q>,4Qm=br45w_t$ZZ@rnÄcg.~oÖ=<ҹA1#׹U]i8-nm6|Kwe18 `˅ G*ڏ IDATYI9IrH5Oq[Us*Msǧ}:Z8ϿijWeُ߉$4a>w N0zaT8|nGI\emWAQɞz:]6EbGoMrTj):[jo ^̦瑷ϽO1ҝݸƏ<ȀG]\?L(9;UK Yrٙ_^.wFtT*Bhii 66[$I\llR]ݯQA&*9cx~rKbmW/[7R4୷'^}ٺmѝt5["P5Ҝrsr]SSUeXt:BhURYUHTRR",|d29\PK++QYF3d)WgB֎><<37<"Ny_xMݙmF<0b:fҚ[>-cB5_i=B!ts6mYy&%HbP[C}+eV]B}ogzo4mE!٬h4Z1liZwu!jݸNįڵhMo ~M4sק1CK>C[V gB r﵈B}.#P3 q114_ #r0Gffڷgq8B5\[BO Pr!k!LB!j0G!Bô!BVzB!Z=LB!j0G!Bô!BVzB!Z=LB!j0G#+L]ՂB#o7$kz=ĉ[P+ siwE^B|HWb!,B|{@%O1k3IdT+x-bG)i=Bl3it}vPH ʛLuX0[q+G. ʿV Qo:X1TM^66ijY"Uܛ>lyhRuF)i=BnmS$v|>j2gX,raŲ_JjWU_zHJ%-=s,"NLz~(Ra^_1Z|B zj9j-_R}.1 }wv;L#:gdP|Ywx>XʯAb)!p9r1e둛CrsBwP#O3"@A!p: [~65\.>N1Ԭ t +!DrƠ|Rƿ㓥4ž<QB7{6!pz92啦taOcZ,"8l߷Ncn\q%Nj3~YE!J=\JkhY ,#~,CҪSfiG} nc!ćcϜCUUR}.1!!¼R}9'ix6#>Cb:Zj7K'Hޭ^JE]c=GDgdh#R`ZB-$#fKÓ1$%cW)EϘ*AtZs)jnF 9z/U P{]]_(K&J + IbXpL~+5^8;A\z!eW_Rԕ2daIqWݘ7xyEI3˗4\I..۱⮠@$deo6z{v{n^n]n5{FG Ώ}ˆ3cSULv69)nܕ7]_"U՘-bgKgz%WdFN|l: ^)TYNYtg*wN`^,yB-9"P߼NxӖЄ7M]_gGaR5q׃2%@םt#$>O^V2. W֛7LTaNHbXb|x+8v3Vz`nba};]/z]V=6NxJL}5t{.Tk%{uwMmaxɿmbO{l9hmQk=mJ/ 6PU٬4bb1pq˧kUUw㮶b**YʿFMm6*3̽jN{xʧ@u;9@)o4ݶYZ^zAlB$Зi=BXt6f*2S ? ` Vp)k͂P[*Yۣ3:2Ut-:MOSX댁te2X4.Z!+ ;LBMgb /z ]Ѯ Y̢zݶr018Rd5Uw+ K#eVCOrԪlWGW YaYCh'&J󒄵iFΧ:GKi\k_ @q' 8p?WB}5rDXXo΃52`6PE8#PEWi&BdEBD)Z}ĩjPRE8,劔F@qU@Wi "7O.H)Ȩi^](%m6ܟR(CQ3Љ jU&DՈ!421X QV>:ӝxN(P]K Wǜ>'< ~чe+.E5?LBա PO Uo@eWϟ:i#5ISW-*ܧ)j8Qh'u1Vc@$qqW Z#J#KŎ[ *.vM=eBŶs:LSc>~ȸ0ML [\!W\ =׹)77,cXȻ&7/B!p Uog ?r2xq•K?](WfU 5;ft9'4+pn,'0:5>* Z`hшŇD$&PU?HsuQ9o8/xՂM/ukbE7[EBk(B0GVGɞgtNtT?qZԠ لK?B,漐y$ #Õ-ۨjtZ3rWqLq(`[~mmFrbpjo ^̦瑷@ Y-NNNΘ\z޽%>vb.8yˇz^)PySZՅ0G5'BƏFU鵮pzo]\j#tbP⼋sxG~VhneѪygylʇ0B!P ;[&*Jy"ևL,nxAc܅1r+4VOEb^P˄i=BZTyb76tB!LuK.I[BM}W%߮V y{'.!8%?AՂB8_j!ڍ=(WZ{/w|Qʍ&;!5 :O<9:!Dc_Gj7< TBWðg)XnJ!!GN`"Dzܜ! +iWP8hx%adTh8d;>YJ, [f&Q9^V)MԟdžX'ETqؾo4!LCeǼݸ*J@nqwy8dF&wsqHLln.V vhe3ExzZ$LBE9nꞻ1]:?,_ +uv_(QfӳIYL]=kḫbfA40`kTP/c}k n͟AqM. ftlhJ\]o{7re I>60O7Mq~q$1,zyx f&z}rekOl*(./D@I%~J#텳͵R lE70eW_Rԕ*Bʄ.'Ņ_Yntc!J2˗4\I..۱nEcFw/RXQWYNYt 㠍.b;C'L-'rn줛YRJps#Pk%JOێn޸yYL0'`%S{Lgb"B= @!iUL] {CОqegw8(hڹ/!YE%zt&L>HOK=GҏtۚX:O=E*xgoM| dYnS|U [ ťB]Fmˑ MAk{B}N#PkŵK @0݌Mxǭ8He N _<[0FwQ',ELYw_: 0Y1#tV#@9u@h>I9.. fJAclai_@~b^MKHm8Lmcyv 9|.sۆ4=B´!Z+Vûj}pƭ8gt`uG yZ/ ̰{7ol@=:l͹Ԩa/Sx=r@fĆ[<-n]o̱0 )ŧ Mz|3o-0Lf}*S>,2Ki{'S ߃wdv/PVt#,漐y@Gx[:Q44f:7E74ŭf/w,fjL$?qi^ Fl7 svT0˅ G*3?x[VQs=!ȀG]\?L(9;UK ARbbWgg~yX,NtT*Bhii 66[$I\llR]ݯQ'| yk8>U_i& [1gAy!n~!3L<4ʊ`njfVL:kDĿEGDuSO~ I6?wN,Ij}ϛ+jZ˸=#K}S4„\.SXiʏ}n;ǘ5%Ek#i{_@qHWJԭU@bw*%slMB^Qڣn{9.D[/geȔe~`~Q#>oMɯG<$\\PmFv@)`:[vƠVqQai=BSvuNn{04:~kΒhڃv܍ќ!BQtEi՝U_zr+9Bx'B!0G!ut夲Ǝ{U"^;O[-WoƛSzx[B1>%!-=p9:9 {Ikj6#Deoоh4;doskyڶy?\͠.p%l3i{6V?*7L+x3Jo=>ڧT"qRxe/Nt`۩}8W=\֜+9bR_zB%ɠџխ&ܡFW$Qu L,&9&4G"1^OER9W-:Qy+:9emu*HgPg$;YR9 %vm(f>8p!Z1JٰK_ROVz;/m뉗cɏ*nNl0'le߼moPxoSe/^ IDATן8cy//WWUA5omg[IRA5W۾ml//CU7}|6tZM5IۛDoz(~Ga >^$F/s ( !csΡץ͑taOcZ,"8l߷Ncn\q%sK[!pWGӅi0w.z\a8{M@}v$Qل-}<>\BQ?UA ʴ[ؑ'aM6i k@try|7đCY5 -)Y &}u;b@t2w1 G\&G%?Hd$ou5hsaNo67 90׶KȭF& `aryȋ'6|ڨUUyȔ$l'MDrXyvL_kԭEHJt>b@|iwu0]O:nPPyj$w8ducfUkG5-`ZBU~EqmL[hl +DxߌC-O*e?|i1&5%]/|],ȀAѴ:*]Zx浣qbe'fT灲!vWR{`Fy :r')LmIaK͟\5fߝ@*Uk3 ¶H_M7KH]<ۯASgU4#W B75ф.'Ņ_Yntc!{%~[^Kfrq[t|ȤwfXqr4oڴ#$>ݠ?i%8ɘ2IɋUJ'f<*сˆ6# ;>ӎf{-[^1"|Hdĩώ ~T9UÚHf{ VrC%u/s {Y`Ou҉=#p:öCtjΓTӃK$qK-cf%{|%6pQWD?(aUTIp4\ljTk+kR[Ч´!Z+Yi͵LN8l2TȗǬ}Ο0zr}+5|{>~\5 0s^K2S]ikjUczS]QjI}p5ogѓN1\{:U1mo0aC{e{ԫtEifjfu @²)}d`8jzl$Pt$vYWCs 9\Ra鿑RI{V賁bN+K$Qו 9; Z&m~ҟjNZ:uH{s+$3m08>VϾ=otTFtX>yⴌ\yV.<]C')1@^[b,쭄rd*a(1YeO6ݕ+Y KGH+h8NRGKBOPOYWҕE*v$|x2RWj qPOEiTEFJ3t5Y2sD[OWh%LyU&ߤ5TaڳeO)Ԧq,v5;,1 VRk_VGC=^_ C/%U5-:ڵA,^fQ2ݖ^ocq 5I!aM/$zL?HcO6׿jitժvQE),z@V\[8Cbl$EIJs.l֘/ʫnb!D@cY( |l~ j~X Nxl7UlQmj- tIk~a)1Wbw \]nkoyXCުǥtmJM"f U86I .3ͲyP_b8R~"`輲1e(}q7s+T&‚Lv\HmͪxIFNX.{{v~&eJTYTie#JU' A#oI~)^vovq(-7վ#8ڒv5zIdvfj b3b%*ìbT{1G_\ۂ>.A֊j`A g *Ewr+B=-RL] U HA@Zye-- LTPU+)I)lʴ:A lE& ,J*<Òï͛S'dXf0jNڣb9?NbƦ0IP9]-hëFyW g{|l{l=> 4XZGSizgŠSRKMtT*n]Fj- RS?^EEݾ)v"UҬR),Idm=l}\9"-&dT-*:Dm{f̗%2CMʏL'zIp1Pi $#PkE٬c'1/ k*'Ui6k 8=i\xAQbn e6c2 5e9/9vy zThWO{kٹGwV u5?6@OuIGE3J#\-$&Oc끊h;XoFS kѮ8S4+pn,'0:5> GoŦeF=w5f^9;)ꁋnzzmأ9Ҙo/3`dwXסrn00BBzG'?K9=:Za;ML(x/h̎z4$`oZ9G.M *aW>$$tuMziDN @T۽W%v:,&BتﶿRn7ߧ *>Q&I* M~X V&F"K{-oJS?zWrg>ݼ*nUPbD",*:AϤSGT`U(x?f״fi=BZDiĈi{,k/tb! ǀcB:|E/4Yy]{M$ܮgS.k-b4//iM< sfedPD-LS3˽^-QsLKKiRK .. 1 3c wνssgg,^\oKaߤA;yX@e&╆tkO> zϕZm;2KDGːE_pZ԰϶ƕ{iq0Yπi+W|74+=gv,dJ_v6]jQVD&bDѾEV(iyRC*wY~U}ED5'dɳ&icWҀ.jҫơz뻶aGg&neC*U}7=yÿT^"ҫ/ hcY<}V8m$K\h/Smɤ=پRbջxˈH>oҥ2n Wٶ&QZ$3=ܴː sЛ6 ho皛NWC)zVz}N͂74mבF[v 57 cy.Aމ3,p |q# >^B^}ZtWcG`ƮmѺ4~ju'HOoDTjVϤ^\#""(8 ܾvzdTE]z54J2@w/aݍ=1Ywg\dVv *'>5KRJSF(+ez#-jVۇݢYd6SUeD7xPf0^߶]4D_k=FjvwX|um1c?EnXcqTeWm8zt|b{Nݵ|tDY:3Nv{"It|8l..LVuҸμC+sĈi#J&uFVcqTeJ75l)==^%.i=CZWnyjO#sN?l+J[Z}kw8v$!ƈ1-szRv('[EaҰo R?3ѝhjUoI pfHH|إ:D$տP'0 s]6maH^wqݑ60ym1*d>,ƨ}~1dU뽾Gk&ҿa1՚~[GDg\6(Η1&n=>qEGY ێJJO+QDDΞmͤ}PL1FLFu{pty=u"!#HMu;ۆáOE81FL@Q(LA{(H\nͲi8H}o'Dg9TЎ[ tW7X#܍;^kNA>WIhis~;w=o #"ݽ]qi9&Sم:cbJ Aԡ0}H46!_]nYGځ8:CfkR`w|Q)Ο&GDz9:%П՜T+44\6zs˕b>I8.+am|ZJs5UԢol=۬,$hڭ؅)M]ewUq߼|{nDq잾,_."Шx""On^9hȢr}J};(Ubi̪A@5\DAGp`~}IAS)ԏޥjm=GsnDoi2(CNKwDD7OIɱ4?f͡S%bʱjq(e.MPJ\R.?WHZ938*dUqH#kwoF/C7Uf٭uU$c׹y]'2aZu_{1~qt~-JT#C""JϴPM-D4$nE7$b4?(I:}UF*2-o{ٽsOr1f=p|q2Vg|}ѭVyGծGW>]^47ߧ C"})3@}M/t0C{j7D+m/!Od4.Dޟ%uDRQlUIAB"nW7@@RKq^7k j6mm% k#Y[q_C "zr1钞Zޥ{ *$nQ"CV\DD4~![i-9D"ӊ4$GItӂ$%"Gghc@CZ =^ky,cň#m*&ݎ @/~\*bP_1s}VAnS9MP}p-g mcK&81A]vۭט_-S=kSQLT/K)(h[t?v {kө{]ʌzCNE4'ht M TϏ_S7)f>iAB"m[ kB%BhJ/pDQ _}2ưzIˉUෑUI"o2V.ɳTbd-,2$ZlDшMދ*l_FNhfjFDW'ڌvEZ%{Lsa8ڱxIo1ERG}^"tp/v~uJ ze wKjjٗw&!=\k0F|C9:]ۢuCi̓c74Q)ZUA˗kDD;{ iׯGFE[t:ݵWKT)TBtw.0^LW|N䮔o b{H$Pq0xFP(*U>}Tʼ b7ѣ5k,aaF772Be[qgM}iCT]ٳpw;̕sz"ۇݢḅȐK$Db֗&@h.̎bE;`w(N6Z5[?Tsm#\;'Itk-[ ȄBaz41XAQ[FT$ӟ!IקQ<+'''22ҳR4uNNJT];''MzV t|A2D"#R(?B!p\%Ň.i=CZyϽtbu =|pa6nӧOfffT*gIj,:BZP&z9x޼hFWT =^aâ"#׬Y_V֞_ֽch=TcǏQ>}"jP*QQQMDGsUaryQ\\J""ZݴiSD"RcCZx<իGD@T֯_\G_8LXFm;<.i=CZ 6lذys nƍ i=KɽQY͒mhQe&_$,KkMrybISK@q)y>7ĵUW_0ssrrz'4ocഗfZ|/xK?[}zMJsb/|oٿ<ʧ̣obo[2bCnz_ިǘ/~KWT cWc]x7݃ jZMcLW+rΓi~BUc #^9IDATZ>s'(tz\`9%Kw<<==~m"Zp={h׮,Ph~\A u }rBVu$4V}i1PJD6KODտ֩R);.ޢ:0Xȩ6cG=ތLj:0rJZ.Ocf^Їet/OuMݨ[wzM<-2=v=)艄vvI[Z~4gd)7nlI}}Is}movp üſnlº_ߋ;YSeee߿MLLةӔSJcCZDip/g1tHAonDDsQ2[F?j^ YqbW `\ƑNp-7ϟoraoo>G't3"aoߝw"!˩]MLjkԪ9=?@~JrM6ʕժ=klI8NERδiu oѸH"f &Mm=klhef& fSD6k}7ql"L9;pt>yX+GƯ_rY_W~69ӧYBRbMmR麦ww/N:c>)pqƌ=(ă.wx3yI_ˍ7\&WI_ļ1L'?&K;}ƌ 7>cFnA=[zH$,٭0d 鄎洛>2-pֶDD9wO~OGD#0!F75"qMc/‰4f͹(ho=x01c<^]_eҎ}2xժH-$غπ!c{;Z3jaU) kw~{\~7H(XRڔ$ndl[m|P_ug~Uh)G;GѼ)))5 N8N,wE$qWF`n=4㽃/4,ͬ3w&5Ww&pRa&)q+絋C=9Γ7=^?;[_41LL+N%&*p>u= T9*eTͿkI&5C>43iպ_Sf7NϦ4^uR^<~[9:Nv%&"{HLʺVW^F:lz DDz7MBQZ$̨Wx3#)x!w+Xvx$/Xe.wVxfU앆)J#%GD1*i¬2]WGzKZ^S)&'~_ċ7f?RcmY xm\5sÆF~l)˛v 轡Z~/6 >Ǩ޼U0U˶7޽ai#7=N=7K7ѭჄ)û5 f'~Zz ':]ۢuCi̓HOoDTjV-S/_CpjwnN~=2*ܢ]Z๴z͛7c @ ogU=@(nn+8bM&;~hD͚"({hXͭPVi8k׮]p^Uj^_@ BL&IeWq*ѣGҭ[yHOֻd:>N+۷o| Ϛ꟡c/&oڒ7o͑:cx}s{^8Y5s1aV=Zck,CxcyM#χݨ8qB% xq?.Xz???Ry] 8R_<~˺%+777QMfHSlz TYi!]B\P-o-b.$fXR?.'حNH$"ȿ?!gU9z^. Ba99K{N7w~2mڴj5nn=o)+\P I7]1Evј^t&dl `ƍ>;I';U>\Pܜ T*&9rD*dV y'b/EvŘKjfiB-Ec6T\z Ѕ rT*ݾc{Ff'/prDa<233L31!WϞd1üc㉌CK]0(NZ)bx sB͗n:,T[\d̆?0Z_?3_ 9! ?@,,Z0%ɼy>>>BZPn߹3sƌϜ9QFJҼ1!wKj+Ȯ{i}fZ-Ofj_~իW3{wfΜ `e֣2s ?U,>pwVС/G.ӈE5Ou +`% &thȘV2)srǏ5j4CZ2aZZ(l{z%=-?ӫ~nsm}Y ~&y-#5?GVs'-&wuE)ӻŲԒ׽fda bj[:}XHڂ&$2GXLJ4Q3&  6'ße%3l`<+YODCyy |,Av3 嵐y;SWe&^^N;<$J%*uNf͚6mӦ qgq*GsBulٵb6$QN>Z MP(Sqg?\+tIRo?'t:]ݸB~T?!?AzZ`1,TJ73J ''N]bJ ŗ.\ǣ^0@`L 2H$d1q i=zp Z4هZmOΆ:0WMVO&˹HL{sw}iY0N@AA̚;wG;C(0$0=7mz{atMWq`~]Ј~an=& Kbt:d^^^6CT*}R_ڴz~_.Dz!"kYy͞Ώ/y{xk!""+wSϒdDHtp0 NSqoIރc|>{H77rH ^൪\kkٹj^[˵TδtFb;ٹ{3E/veŢp[~w'O섡IKwrwl涬-j Y? mnUġZ,5$i&hvUmkQY-|-F5{ob;|/4w뷛,]:b͇< ;K ~%p?wNTJJgtP cyKR777L&Q5aIENDB`source-highlight-ide-1.0/doc/images/settings-wrong.png0000644000175000017500000005354111312456337022763 0ustar bettinibettiniPNG  IHDRKm pHYss.tEXtDescriptionWindow Class: source-highlight-ider"vtEXtTitleSource-Highlight SettingsW IDATxw|UlO!^D"EDJ@ QEQ,# ͆(M^B mMI62ٝMps9so%{]~S`0:G/#37 yx/ j' Tmo RָؚE<{RUCCn;]XM# Q<$ByG%*տq+E5ӭ6/6ΝMi]6£S̢۪dR)N=GU*L!2nZW>@IC_Gs *"ǖYJBXndL)<2V_V|kڿ~Q~SKy];]XD~EC#+( Q`RЀ2me=;/?Wq=C+(* PN 1۫<'ly@O45IR#D!k߫ uT&<$tʫ$BOT% 'F_"RLJ%:~15t$؆,!cLKo/j*4^(ó x ol'a@W?u`@"<1.`ւTapW/0A xV(݃˿ߚ L-V+@>ɷs8Ж\pQW`TL7X7f뜛 cک"i>n./>u*u CT F ֥0 TxDi_"Mhr)Ŕ;O™[Z ;vIBWwkqet@c>+t y4|i{ By3XShXME9BؕKDW 1aܠoaL_\RHJV"|'VP2M%[?8e|ޠp+#v{>֗@!$%%BvJFQtEqFk݌e3ur+GH7^(XBCDTۨ5}2ONa3~dWesR PI*6^)I̯> #AI-<]$txB.RDQ1P)iso?#*$"ڿsJBD3yuxDTF&v~i5DF-6t2B^:͉I|蠐~Ւ_G 1opղUȱṣ@W鷬N.8~ "-dIWGt FJB>=pR"L4Q9AhԈ #Mv]y'Ĥ̏7oX;<iI o"e>]H*VFLou; DũvVJ?э837k`YVEAl/*״ubɱ:iyþec(l8 >A@(|RP77ȇِ+摉x7g6lZ|zwɾda2OYoX{3Y=K)0޻=}[-8]C?ukG ?P55$]$v#oZJRgI2th֯:[οzH߹}ɊHTjK}4v?y$5X5R@ٹH4d!!_{`HnBVi-sH[IF:U^+D |2!JxccQfFRyJG:'i\3Bm SPTzF)e,p܌um^)ʾ>D5[裱rQ=98WssE*K %qA.'+׌3Ux+j:寪}sK4@/h 2'?lp IJnZ)귥HҼe5\aA^YJrN)Jb瑒Qc몵6~'NTQp-!hIE"IR !Xښ]dnc H6(P|! g@xe@Zwb$YH4Vɨ}([Y4 DyDR' Y8$ <iƊ2,uB+ 1Y^\44։WeA,v @`s=zc>CRy]2\JejKD!0NۨQFQ~}?(z[JLIul @0Gb%xd}#ԐLP Th5EI QHuw(U@-x*8bK+/_{tSTI=W&"xKqI0:@YQVB;8HUih(*x?ʥ;-!F-=7'gx-O*Mz 8$Anj[ѨĤraDMaWvLTZ<5֝=`0  P>Ri }R0b.CT'pQZ1Zkg]ŵ& >nA7EK8[M9|M촪U/_[g{gX1Re3:fYv8&m4EXMIwӔ)qW++XwQ( Tn~촲v`Sჺfƽ^{MsGϾD+; [gWE2U#uu5San-;i4];2 n)5IAXq;>u1P(@lܐr)b[ nRMM&MBNh4^W6ɴVR;hyMd'ÞC ǝe)rm{Ȋ+ jZAE4Ti^J oR;,5(H7w惓+@VY;׬|_,ajE=ݧ-Fc Zh,•ZlSڶA ![^L D< ؎OeV0鲉zwjtZ,kĕ7VڵƶF[q :.],TvhǵuxmZl貉G4ĸt pEms9P|5.P Ҳ;rl*(e]6QM}m]`\ͤ(ӛ *QɌP}=k-\5iWPa{mƕex8ֽR^6U\W~:&:{.+hph zZ`]s[ˆ`>':fvm: }E&^_UEkf0K+~J[ JĞLfw A Z=d{j6. գ87wf /Ug޸#CжW.dm׮٩޾)%)uk/v츳ԭer5(W\KiCDYPCI]ȎPS kBuJ%vLխ3Ae:s) .jf5p}Y #E6V:iVy t脸k5 Y<ƼbHԊI+L' RԮaεv]C}=g].Un[!E,q|ER+YARuҔԉ"Z&o3[HKlX;3E:WA(59֪V7v wʆ*tX~5 ڷc0DΕ/+aL:(tH\eϦ.{=wp#a#㻶Hhr'j2>]2y_#R>|UZ_UfElч6,e9Ppε\ݾxb͓7Oj}[o3n !DxqԶjwu/-NM mVɻ xK6c/u,3Fo^2w\im<0k `#/S_i}}UHOoUa3)tì.l-}q; Sw7N N̓bNBSb͇kU@.=H7hSA4B$]FO mJݴ{쭃J^-3wRiC[*(Zܤ˰CƬ -2t#,^?57mGsk6O|! |P)WtzQ&5o wQ|Ʌ-iԼyG^f]t͓Z|ی>״n5e-d!mFn^e]>{~ԶZ̩뇵ci' 4:r~iprzJS?4ؽg߯K}m@ dlj)7%3צAcfK۽'E"@K/mrg`ōcwPb - IDAT\V}CȖQwVc3: }u"vxK F5SK(V>qc3t^40w~r%n;SK uh!eR܌&Ґ]z3M MP~R^_~h>sրhAҲ1(ʿKVmb+e~l+;fڌWNe5M<'R@ۗe",u=7]lIMGt |WKB*ZN*$~”I@&D_WC( jSf8[`UL5}v^r@)f̸fysZu Pâ]5hA][(zG& ;_y@LV\‚ST> !DIz N,>%TTjCcgR@dO[gVh2g2Eʔ40!g3JQ>f)%W,ܨVoCf0EHv|#H3]Mu~3gآLqѳzmHIgJ"Et&Ƒeb{~?) Jos7|Hvxt}d~gn3r{~GsGSj 7_w? ⌬ mQyPIc7 *c6/6:׆Xp՝*AIzК7wBt@LfmO(j\\5uT @Kc"h:|SpiSOXa &FAR0ԭ,g~Hd3 &)/K;v5TZ X]O=t5as?ݝj)ҧ#bozg\#`8jpmia"~ #b/ld yU cNQ)EFKAՍ[tWK9^s}9-F e:8!LAWtz7)*d̎!d[Wkvk]<ԩU*0.ڙ*37|ῷ 8ͯ'H}f\N:ϤϿ|/~+s<ޮF-k}T>]>`E$'WyK}i;bFϒ./f!C=:syگgmeˤsT~s.48^VB~Mr/uT>hn^pxtǑ+[<BxI~t,MsN=xc߆*Mzn"=aI;&3c?NK竛,6\ `O@eC>[}R0Iݙ7{གྷ_>A;b~jcvH? %Ejr1x9?No};\SvNWVJB6gf n(}]A/8>P>}k r6U7戮"[iJu^{ilR1[kxtmmҊ7`@oJ*.Q}k v$ILo:+)L@Q (J'yqtcl7gξJ>ހ_H[w`0 cϚ+{:k=ֵ ":X#'R":UCHuiyxߵƶR0,b}i?'wnڸDŽ3(1<8(]<_BpHptϗc^hOXC츩CvFͳ6 j;ݿYm53v-{HJ쐼fL˗ߤ-֍?wdz!)0sPgfOOwo-g@wMSn2];,i0[W_bA!Aqm.?uk~7wPbxppLzGԣ9mvَQ&Ř`Qg~)6pM=3>Q`ɛd335}qˬ_lщt:pLV9|_OxQ.dfyc.xi{o߫xqVvm*o1cj˗cxǼQ?{ͳ>Q0 guКg 8L뵟rGm [}þ:}(giAK/iywwMථ۱: cfCL5uF.akIcwA_Z2C0srÍn%^6oܻӣ|]8QI/.*@*7_ysJMx qF_mHᵿYޯ5@y7sQ`lQ[#X>VeK7^yg/'uu +t//,v90iP||O@;L 7Z5BN"ɽR ;ni@_wr~er@'ȚI;kx7KHk1R]&ڲ6 4}w]7JkmV;h Oʽ75z^vYhDK;π4["E<o4{҄5Dz ؒ;'OfdF= -:]ǭvK;Ӑ];o53ةeYvn|B›>?rm33o㴎AmG,uZgft {ò _3%v 8mゃbUY'; kkIV?!q2{Ů8cE|6O/u ٣Wfw &6 ֎QhC =nI=yȧ>Q~_'EYikԯGn=J.mv0^s_J 9?N{e-^X]{'×\w䮆0Y{#ګ!UAi찗l{tw^ aCunAY㾩ʽ*Wz2r]*ey;qug"|>+|8{3};ދvxJl'c\SGvnx fta0̃KXc5~ԝ*_*`0/`07` `u`0o3x#X1 ( v`0o3x#K18hua T*H,ሆVg S,k0CBۗ:8/?_.Q3i:c0Ҳ$Zm}ST*ύ7|}})giVR~.G(++ 8Nk8#eJepppAAA 7,T.|UJKJv$8 |9Z8 7/Z[ԵWN`\S9ɫ:|tt޸|ޓm;j@PClWOr߾@#=x+)ɑ3צ]}vvĉFRu|xLhפ.[if;.xgDe.cPM'MBB[d§U$rg#n- ?*}fL{Ę{$r/}ZF CCZE+bˋ' :}4pM'YXLD&ueP$9Z)A*~Sd8[Vi՗/V{Mૂ7@ Em):Ea@74Qb*2sEaQ.O\<쒱*MzjB "֡W<7?]1~!ΜkYy7~2)c =nI c`j ˲oѳ^cهqZ4-ɏ;֤Igi68ƶ6)x!D` 2?bE("`!|Ub$ɝ;whMKܹ-qyS~ 1?5.v`ć RyʕRed J4eW\mԨok2 3#>oߟ7o(=Sn]vƍp???K[W:]8X1P(LyٳNP(P#$v`u`<IT۝:EPj\ԾGHF`:M;o5_jmZ9OxUQ˂ #sU٧5ҵCIDATy7,@q^ȦߪˤE_`5Eٸ%Ny=j=)HmYmؙ[ ddsů}x*号JpG,-ԄO_O6@~50и{wIV)ii"Ӳ?Э[۱f=VGePw3xr-Qw Uf>grUK41@o#\\t<0.[$RT#m%h6EͤHv6bS@GM5/ݲ8 /Sr6|MfN.$uUyf2RH~Ҵ.)Mq[%@~ɦ ԟLU 5i>Ȣ;1%szWӈ2fZZEǭʋu̠AuȺlv䧐?Yw)ԙkkΔ, t8b5ҒZ9r[;SS,6`ʷY6־Λ=[ +.p*_㙏ҝSۏH͚!ro;d5#c@kҜiӄ:` `>WG͔ ˪/Vm>gGc3=[/3&Нq^}5W+Qw 0IVd}xXsxF<GX鉴L&[n9~'5OЊ?-*VׂY# *7&̯ARjn"}q-E(f \)vLuL7%!>Y^qh'QZG}<߹E8GV,k%8I'?9@sUn.3QJȹf~KS= IrHsxj:͵s>体מ;B1 6ؕ(9]٧1ȋ'2%'*B7sS| `ƍ4"]ifh"gZ䝖8 @ZAp!#`XIz _8!l?غ 瑓rR'ly4 <#c>|~ڗqj򅋷R[6|+B!޿ò T &;+8/Kҕ# k:I?׷-Y-م7L_qG'*lz|9[jTqWS)eM :uJy[rwAA(uM#j>nZBvs6P맯Y%[侄[7j=l٧?w˶O ތ he}_dz'DԷ?W@ÿ~̮Br i\.9?NB_0<=Z.~R:c0 P_m+a3SG,k4!DoIqqNNT*(g)ֿ 0ci4ZjWP>W\H$v {`Zݴ93SEDDp=ŲR 1mia2 E s*xJKK;{;vΏ-FE̘=:c0u[p?#{SS֔kX?&$$v;~TbEu-7X sǥE 'o~ș>ˢK۴>wpj)8IuNjдyϼ\"X1MUɛg׿K>}\޾#&Ǝ.?~zO%| U `]KFu*D :iSap=0Cg/18 sOr̯xܡˎl?Yy^=+[ A?oP%;'+<6oXxPNv\b`9u, &|~eReXo̵K3~?g=q0/!1bzuDCJ˦շN١j70.g@oV LH'pGko#X8j9d 1JB[0P:u;#H˖{ fgLg'F))PZ4b|kcCݲ˿]<5ףİɓlk.&Vo+2N_kO2:e Z,ZfdFAcK*erjoȬkϘaaU.ppخt N:'m5<`S]TZvN?"||?B'k]U|8Ll^z.%D+t1<Bd IuvOhєQ(71(0_%^f ٪(5[~U4*5%t0!®G߻Зٵ$t7jHkXHY쎓kI !]KrM?Н0nP9رd|/=VfZ8?xy37У`7ٝ_՚^}@o$D 8" H& cmXzHql~jIIiNLXrQ~_]Ԍ_ `-,:`yaYA㨞 !D!p<|t(yco𲘴zp^r(>Ji稐/ZE7睱ЏM4jY=?:N.MخVtx1EQlYQTVۺ%4  X̌ 77ك4 q-a[Ex i$DQV- rqat] gBvtG+mg=ھG3izJHܭZYD0m=B_@Gw |az=Cw _RAw8#aE999NO;8 ]%66FWp ˘$yK۰V rNmQ=;°}R{(ÏzedQ/v\|8=2@J0hʣe91 qJ}_ ]S˳pkƉB7Yԋ؍B9ʿ{+6F]QXjɽKЁqin^-rA*!ٱz3pG~kWZ͑Ɓ!O!kE69pčiXpQ ,緝>cnsb:Mh42ppW`vk54# =\Pm"v/G.QR f|8U;!!h ĵi!(~yc)zaVUN"Ι/ԅ؎J0Y0%`JBUBϵQɈeF(ONosb2 ,G*,qyA@[ 3/J0c 2 Yւ=wsEF~O]ys?I^Zw&X^EX[tknP4V4˄aH )SQ<1JbF^>ql 㡵RQ41ZRkq`G%L$3?K~ssmJLiF4]2AA{G[[? 4$¢"I|V ۝lJV#h0ء<wQB#xUeIENDB`source-highlight-ide-1.0/doc/images/source-highlight-ide-debug.png0000644000175000017500000041725411312456337025066 0ustar bettinibettiniPNG  IHDR pHYss.tEXtDescriptionWindow Class: source-highlight-ider"vtEXtTitleMainWindow{ IDATxw|SUܛ&mi)) 2qី_P?/}_7B % ({SZF7{eu~#M4~499i瞜P/JB$B!BfnMEQMEQϋ$Iғ !B!䂏&4M2- X#B!oRWiFh䪆I2RF')en0(\F )1T/ *f@N`7)xӮvMS2o@GL :>x4D:T 9\ ؈n ¢WJ6nfD+\j64>y]BΊW=k+}9U(TiTwpR Bl;@ʠ+W: mD"gBEc(ruDՕdq9,4(RD+~'2f\gO傌 1 ,TJrA \o,y RJ 3.0UӊJ0"T?cL#; ,+}(+uF0B+k lE/ pH`U99{.XJo1WD@4'ݟ&T &c6G$ÚXϔiU :Zӱ氁 ȟ2(!D$DbZ ~0k#ZSꕾH P)tS$IHlM\_G Dvj鎊"3DRMut@B)"ɸv3ֳVMRH*Co9Dv +xaI"H$odU|0@)+?YIG('芟z:$<@_d0vHȐZ4D9*B-R4wNѧⲨSE+WF:PN(ך4}X)jWj_2$I(I"B4=0T+]:AظD1j5p?c $v~q+_5ߕ6U3sf_if7K]>1.0!mݚhVTVU2r%->H (5M4DZ bC!$LMBR/>}.`UYER`?RLv\v ՠA,zT%I=R84"IH109"9J-SEq^M#"UJ8NoA/LnV+LEOğ!DJMr@9X帲$M\'9s;׃^$% ^d;t {Xo"J O̧յNUb}lKUQ.qT𹁱1J5w@Xb_&:B+YsdY7zj/⾦NZA,f% *t"=%['D+4UrjV[1N8'GśAp!L*c*lSGI:VRPU_v𼱟An"rkuk jghFD$I>߳N"PrmآzLgY)$"0?O>gUޫn82LpW@ OgiA cr{@_qHu1jBxW9W[}mVV?+/,WNS=]; D,tP=s)Q\Q24= !d^(gJwlս'Gdٗ%[usٚxrtZfe}k<1)4k$5;Y>AI!LWA-fVԩ 7I@Bť{/VЃ'A]Kw Jfvz9.Pu>.U$^Շ&uzl:R-˨vYnm@(_z-p1K LA(tu]cꔠ+rV1iD'  J39[t 6$ YϜ2Lۛϕ͹@K%oDgK3iETpcPV|! {LP; ȿT^,E ddח%09ml͵ח4j@ g}qJIXo2 4ABǠؿ(N%w[)geLXW&rvSVER"Dbܖ0]eu+dB'~g)#|FJIrESDbCbU'H$sf92&J Mfhʤ"Z.3oPZ ) hd7]dDhzEUueҵ-º: dZKa8'JVf_-WxOdB%qZPtKTDN]wAΙzjol!\p`QUn> ړ1SBTa 6NlTfMV\x zu {r[Q'1:+Q ^ӑb =p!iC$;|h \2 2ÓknB= ad4r_0 z5@H40*|ZO] JPv*T0/ pz b5 U( 4!lV9SڛLij//MX{) riX)UjX)IhT(W5 fV{Y0B5u\ PXI¨T!4- sRW7kyÚC\)޴Zz9ɻRK4q7Ez7ӳ_E"Reei-, 0;\H(Ɲg]SIC,WXTqiJ{ZVM 3_^ut*?ׅ\C%]:+SM2Փ#6wuڰ//N`.ܔe gԁ*XfMmjK*up:x☣CAByeϪ|g^ ޔO=# U|\YpTѱIlIT D)V媡< H|)tPG{\H򳌆!RhV'b]h̛]2h;3W}{8%t\LT)6l_Uqreؿ WW>,R xӡdBPU~٪ EW %PfUmڬWjVgJFdR̽{yjG}eVTp=G 4ƦLy@i/ ƦW5ܷ6 !hZ]yRp"|qѥҒ+HGϕp"E5_,/}cv#vI]ӣS1en,mWȼ3Ȕ 7@C^5ut.|Alhs=,͟t$D}eoh74F0W:E_ѷ(4 1WK B5^9 4" DySEeyAa>5 j`T xp""2w"P3P@ÉBȿZSꕾ_E3rUPLR:`(y**uVn*Վ߃Jj&G5UJe\PHD(ZF4EhvD^ B!Md$'h2O稼!B!ZS^u;vB!̵ջ}B!Bò!BBwlyS!ʧn(a5ɻD^{saw;a^[A zրwvvpGy>zv`uЄepyT|\ @GOܾ* CQ/>ζRrEQ`umw˗I1|t-q em?8^95Z;Crc5nR%ro.F@#<)=ݓ.`APse=jV܃/{:ލ֮U瞗 ԏin?;N4d̓)hRâ٭8ލa)oÎe=jGm{=U{K|[廓htXی~X8\Y-9NaO5_א n,Qہe=jC|[C=r{"xXݺ|Ѡܹ͢ u¦M?Td{W=j{GmN{-΁z4dg Aqw3amFv*ko/"h!e=U:MQ C8G7qK>ɷ-M +<чYyEjF?!  >]hѠ!'uMbDžB5~ ikQ/G&n 6ޜc(mr=7 N]ⷆ|PzY/ԥe`?of>ovS+u暑UI IywixTnv!/3g~9ۘ.pMUFj겻uCMYbZ5Nԗެ,m=z}u0̝SYV k;[IZq/rso4PK"Yﶽ?&\b"zwǁ"wqUkPH'W.3K^pCP7򆠬JDН~9vc#r90]}Dpc J.?lS'a[d^jeƭ7ҥWʭonkZwMmG>H ?fYO/s`*eRGKDU5jH{:p[}mzVZ[O?\1}..j?K=ϊyo~۫5)x<CC )We׉ɁPΎ{e7sk<,Fs-K|4QeGէbӢփr;wū+WlHwΎ {#Mx5CRQ5Q-JhF?k[ 5u|vQƑ6n6W y"NnoFȫ__T?_C)d wYֶAРw'~^ krPx4.Ra7VWnC80{[6?R!'̞U 8 Tfܽ7^14i_-;:  c-V?~%1gv}@4>}flڧoLIb~uΔ89LLXS6,%Ǐhܴlw|gx#?/|(Uyoe~X遼 lku,ڭxhVLzNj-W)ouM.z`6>4^ qs*_.A{|-WKطs 17v+ h^G1p졑.T xl7j5)b3b=iϾ/A@i{O e/7S^NC {#f}"OsoZ;bo:_dǵ: Z$xv7a{- ǵl@ljsMv7 =#Ը'M9vʟ gY=.7xfOSB"ݖO%~VomQ!pjW/ќ46WM^MVũ촓G@R yI}2w yEh+o<͠[nf5M e}.IV{)g[ix㾴. 5M |h|'j}ײ:.ֺcXxZ(,&/koPrYҳ5^<]F2Y{|h! JG u7E'[o.'*A?֋ͶvL5z|d"ԄMZfqHs.UkzOSgsÅכ" ǚ|V@لkjf|M:~MÒҡ\YrNW0Vxl9HB ]f2%u}kFI}<{־$i Niv5mܑ=6,wlsk^ZJe#8 |HN"MP;Q\"SiF}{WW>|\;n|U49c"[R#? iY u8e}q t//zl.Uy/>[n|ѳ)!b9 3]B+}՝J' ZЧlB3ԮƱCjx^7t҃O\=1/l{u JJ~^2Ջ'jA(H{1'jIo܀_;BL8̋Rel[G&=+P0Ć_|pK}FW***NNx/lYjQ]ޑ5v-G G3,+ ԷO6r@I+N E% Zm  IqNXյ[9q2ikC*x%8!ԐE8gqT@j! JƅQWK)|jIh8SYi]5YJ̾|ͻ j{g5[ 0%}/cj{?H@5/Hη39qnEJs=n\ͻ`8Cȇ_IJq>,B5΍S'YqB[?`NU?3g֋莥i0e:Ϗ;pUzNIXϿMwK!+7rՌU8B5O΄#zQkE#gKRAx9u]IUDIåWQiӦaÜB^-F̺wbM-sY/՜NG_ PXVtFb046;ud$(rY-kzB!sL8D]ٲ^0BAA$Kv–f2DE;Ne;kB!j#7`2 uT43dMg8p FSyI!Z`Ag.| GDx[ȹ3#B!Ԧ9:Nŋ ㌁iGNM\2fжckb%?aU~)}JhANlǩ+)))

R5BmR㟗$I'Z>-?nv/k3cťoX=5'q%d7};vzGt]Bp62Lz뼿n+c޿Xp'qep۰5Ni P$mӍTyo31!111Y5@Ikg% |ᨾ>c_0Y^~pϺ=𮴑M9s83[/_" &6}ߕ;Nؠ]K7{Hſ=|'6,]uABܶ~7??$TTd/y=Ʊ#|l%I|[~N/IP~f͛7|17? ~ Bl){ԑ#XXՍq,{wN6uM>|dڨ#ȇ{"yHt箮xhG|ԿV=76.~~?+X}"-۸+յ{̹}=mxv{.j=&9'63莏J}B}KzwNT\oE?ݴc-R~ݣaE?cMJr8R-/%e㈆aL=ܞwK?ۋѻzQ7Dzͯ6?uT{8C{ߊu_Yb~q4bnqwowz|aբw:hȵ8Nߕ` w|iٴ[o:ׇPe="y= ӥlٻM_4-^a g>j/8'/u?ھϾRѺ9E!_]2ͯV|~ZO)mK?Î=X2' 7KӮKq_&v'[4ϭjWv۟dph+?ܻyP9^xqok/OmNp;vmdqyG{t'/\׍ߝItyo~Pȟ#;?c6L׮<aG6CҘaΏ0K-SWi"`yzf V=bNVtS:2NnO˩yh7N?]BY`Ç>hT.!nw;$DFݰɉO]!@j1(5c.S젦 4;9V${a6nS:ABϘ)<l߳ng‚.1oTZ`/F̚X~ݻu7_z%՚ >wkP =.껠^qtWV9벺>q t)?!\?J7OZ:v=_?tTQRYfڥU" O^)4Iw/v?(=6Zcbg[)~cˎUxuwZ]{Ywgq PU ~m%u0xgPkGf)o ?\sDFsb;׾u!}ꁱ hQr\4 H>Q;mEЪMQ@4BE~"}9>0a!4?)@EO ń7?/I>xnI̚\`1lxBUW)AEV,0|y^Z{/..``4уLbRt7>{[GNżzz.Zb@z+N>79r^ClDBs(PH`q<Ϭg|巓d1X9#֖T_/;boĠ~zP2uxTTzPLƟ}wq,k1wԚN)EGCB-T=bޯ/en$@(hu lfH(2tf@YlvpؖuPlpTzz4T4q۷߾}5-Bf}hyXnʅB*8Z+VH_ %%2e'V'rT?1Z1?\r֯߰~死6>(Fz@ԡkd-fXYa `wxkvbRSuzv"]g!ny<6a=2?BycͳRyشes?mn9V[fON[ʣWfؽיp-_3Vn%ߞ J\B+iJXyi>le'W|Xrt|{s; yGC6z`g>7koZg~?b / ǿ6~]`;71gxbcOK ˋpWeNJSצ9U  l]zm_|˹LڲG7v5~̩3T|Ci׫xQ_?0)Ϸ_KbUOO: ldx)sPxhoظ3rV,]}# V=Szeq@;wP O^mxK#_rKgsv>>;a9-BNl_rAoO5sw1]/6ܝToOyΈus$u={E7/ں!^O7M1wZDj²=|dxOo9#ˁLᅖs%yW_1BǽL=~:+տ@1'`qKX9컭ד8wn xOyγ{&ʡ?}!k{:XNfkU@qq@uy;Z/Q5e8UsWj~Xs~[5k6.wͥ?6,y/)gxVlѲRѽ<ႡA44@0{ɻƳyu=筥#:~'6Bd]ZTZ)\&fj:d}6ȄEEV|2)(Jw|;wv0*Mum(l7(dhsKyEߌ_d<]瞨I̓j0c\ 75ߵjTga/n>=܃5Iyvg\V?u32"]A+c Φu??a#=s1"nYz-l܃[S^3V.7Vzt;m֤KQKXJ[6o-akg{>nzˢ萉oxsڋHDWx篍 HX쭾1D!/snN))b^A0w=䭾1ll>-؎w/iбK^i4 o-zPe}'Z*$U[/l1{[}ocټv!PxYϲ("1@F!ZzR)n}B9al}l=B>B  <μh4 !+BR5u"!_Qmʊ`V냬B6vxV[UYٴ yvԹ |zQKKJb:t7!Bk*ճAz˕y@iZQG!Z8k,BMW 2LA!B5v(Qc[B!j>x,B!_ B!Z ,B!jG!Bò!BzB!Zǐf/)!BV^*0Gr΃Z|__xaɃa_bJ7YJJy帡>nO*gՐ'Gu QtЧܩצ1G n7oK/\֖7n;9;^iA Xr^=z}E4rmϥe7/ͿyίmAun IDAT!BGfiq]K~󡥧쯝qţwvx~ӱ3&lOW8-nx}^ۼo_;?v٣/goXd+?~x8 :h}/[vYjK;n!Bbٺ;oۧo>}xF|Ug},Fp3#vlh>}޳]kvңOЁkROVoz/ۘ.%cw==%nʲ!f;{ט`ui7tbg yM B)kZ{~\K@)u6⊯1sHN1òEJ.dWbdvIL[]iZ^[lėT52&;_!*<\͂`[qjPPy(V.$8n!BtL!!l2/\ptZPqIΚYo 4cyi2K:~q#V!BiiɅ0ǀ۾nt-=͔OswsG/ڍƱ3J!B5)jܓߦjwST]AG;$gD+ 4m!Bxq6PE1 HT*'Nf͚ĄN9{ibرqMSDN<}}ř !9qh=tH;k& Moȁi"ј~tNHP87/>w|=ܺB!9U.0O6٩qNfΚRe}HG̹Wg/SBĤs*/f7򊊒9sTTT)v"ICӴN+))3{h4BӴ 0 ˲@V{N7b.ڵˍ9;j4P*c2vѮݕ˗-aA׮lݶn>7RJI Si˘nAwnX4`R!eg.4mye^7ȱcڵ vkgp|ce𡇬n$/!Bnh]DQ)Nx^7t҃O\=1/c뚥g C5 ^&z"ĔZm i㵐n7JeArL.[4Mnoș<|p\\Ռ4g ILL4_Aw===]^xQR9y0z1< PLB"U~=<D(P~ӝs&Zt…6 gz,f2|Ld,:到p VUH.)hm A1Ot׵5=H}#ijpTj@tnڻ ٻ(>pޛ "b;v5v5DIZ{bW ;!w?*w!<<{3s{w3s$)99))Yfz)zz-%yxܡXu$'¡IEp@3+H/\PffjyAAښ lyXP|%Ru\&-߬w(M u&b GG&.ݗ1l~5x<3SSKKKMPP(4R&VukjfhRd{a8&p}*c_󍏏OΝ  oRYmV5٫ciiimmPhFԽÃW1 Ɏ]q7O᫾c'#88R pˀsh~A|w2D<@R)JJ%er\&cF r+WZYX4377ѓ'J{D"YȂx;+fm@\za[fnL{RirÛ;ܭU۬3%g&{v>6AMOir<>V$qܢ";p\ZSMOzP(,,,\\\BaAA>I@ͤ)));t}I׮]oܸq%\9Sk4EZ_\0 %')rG>  `Y*K=㯪2{`gn_čKh ԼBX2f$aE"QQQUAAL.?{ZZxUdA%9f4GF8m4o0ޣjs%+8ezAjk&PqC_8B4r&_Pt s0~MhzaR@(sfzBr}*zkFL8n/( ~~~2<Bޮ];33GxyzUs`)SOITR^UBnSoM2_Y8(iARGDRtE!xp!j:^ò yH|R0J-)):Rf smE)e$dfwOrϝS2 -,CA+p4a=P!P"{0+Mi5~\Rj%=txl,q gy/4T YT3eiiinniER<O7x!{;'wm׾\& 口Zjղe˰1c>O曆ʝ)xMK ڗvjIE ;bl JgYV0Qݥd:r")JR 0D<12bVEE...:)J"XgdMLR))Q9\ދEh"'MӒ;vh {zzzWU %;bKQ3#ii/.NF+K-}W̲c=̬⚭YD$wuyn|iS'k&E5J561 r33]7~_Mqֽi4ܣݏ ]nVQ)9'=AA5V[30G!r#RdyCY׶&<d}RY/RϾ7e(Jr\777DA~~~VfD"J-CQ|VZieXڤ...EEE11199ݻw<1iijgϞ9{VWtJ)Or."AU!z6l?siVNQ@w޵׋(V*JK+Q4WDϺEGG߽w/+3i\^XPPx̙uxsYO/jX''+rۣ{w=3gӯA dJr ۩#/܋W*6VyٌûuVJ%O,Ͳ=,n2YHݸ d'SIIIjZZaa{P/%"I%;w  B>b[Hsvf>zGnGΝ!-^7w74~YjjjDDī$5$IO:%J+G|xoHw |<̙u}LJ]dz/z05dN@@QGP G5* M\ +AAkސp*7+5fg[.AADC^לS}fR3  Z`  afUV"߬.50AATbFvK  AA[AA֫~YZPT=}8AAAus8֕z^Rd2K++GAAAz)** \]*GTM  Hkfjm=MaD"Q)EEuC   QP[YY盛W!EE9  M#--5d djp  o,* Lm2%AAAHXOAAo̲ AAA*Ggf9*  BCZCS4R75J? <= *m{~b.[Q?6/ovk[G^U%Azj  l M}[RTg]iCZuSit]xPޞK}wE9ML(޽8V ,ADCR}||S bf!m޿f7 ,uMҁ nxn=di&F41Zɒ& D"auD*HE[7;VFF ,uMUk>ߔAv;X) ʸ}}ݼm/sEʱGv:z%o;fٳL8{ZזGljX~ͻp!ʴ Gwle3OU۫8-<ـ)NNѱCǎB6|D{~ 'IRD|NzL+C^(3/>Oۦ~ڽ3u?*UWFGOUADV,-,rX4LneiYTTVR+dS+^!g!p+:8?3X}2p`h߼JE̻h{o#"-eʮ)\gj_#^ʧY?eG>y3ӻt+5Țf}VrʕaǫH2˸?v7+WϬ}ϱrM+c6L"sb[z$KREzTAA4,d2Rɰ 0BdUNTv!~JW)#Z9s@{Waﷱ\Q*Koki? 'גtI=p@Kųi7%F?"T)qgM$gP8\/~^8"s^=[!Xў?;r'] -:[x)>wurѪ֕n @3)+ˎeK KY]kKgjk6i!+gl"̓00EOJkV9Tugl\(PLkOU:Xy=!~m3_ '?Y.,|rfy'E6&zZvT^Cy!+JI}Fjpӫ,%7`Kާ S\MiYvɰidH_xo=يh nշ5Ϧ+XUQ5M<ǠF3E ̺@RW{,E\,!;>cϣg,po_ 2g_VZ(~q8~ =2 GeioaӺX FvsJR@2Կߏ1p`n!/bY,Suoo, yPKٿWv;\|!G]k꒧2@;#.Ms,||9,XE֍C֭}ٲ+: OUo_z[Wl˲Ҍ;7X|ي {>W,"~c5rBkc>\Q{{՞R2u_>kZӗ|L~v#/ۮʻrbM|}|۾3|5?UyX[FzgQB< K~wm.I4ĝhЯ~0oGι݅3}mF8^M[t4􅞤|)k:ACGͺCs.5mehCZ=r~I~ndF\~ug(A@ۘxe߅߻C߸lƞTm$/ ǯGI.̘ȱ8 ԭ<B{?};cӧJQʔǮ,'/&?jW>9Sh_^զC]M$.yYXdbAv>qڧ3l|<%hq@GT,Baus3.8q ^N^y|eڷ v'c- m=[w+8!v\UVs |}xOk鑥ʧ֫*x*ö}/MrpUwK !ɏַ)vzB"s9*8Q˖Lέ?>ls3zL 56&chV> Eut '8bL/~,zZ S{S$ɼ,*: P^9/ݡCYU~]+Z j)S@'@]Ϙ80廱E j.ݘ#2:::dEƪ\QSZL{sƻerS<֣j=+}<96J> 0\E ,ڏ騚V-<) 5 (u= >6 dJ]F~Y]ǯ^$[ef<ώC?泾n>Ck]eV¹$>Sa:u,k !x3(cPffh}8>ȐzcYکy.]:Y;y'McӼ;˼'Y ̎TcLcjƷpLڷ=^8k3zGf[OGl5YN;q&α{}MxSgۃ^|ՓDueYZhfıo9bhSsWp '#61-߱VoL[ 貢Xj{N+g@`o2r [ yLVo&̞(h{J iˮ _|(eZ׬Akިb5So&C9M'}8>ȐzNw?|l\!~xl//~Hwl轿l`1$io -ܿpI G|hْ-V߯,I9Q+$>mM9j" +#Foc5ϮYcAR5 "2Yg&&>Pe[|JYƽg7mȓHY Oo[ u*Mb0/ZvU{T _s|J*wvjH$"m)uC*K]ӧt089[[ŅuۭY~M)ʿ||< o'>5*Doƈq7;{m źILJڵc!C|}\EQFFF"mQO`V!YW&q/Ng:);pu5jq f` y+n|)p]S|aDnTu;GD$:vəф;w2$//e jQE7voxRYګphqm򳗟;҃<߶WJ9NJ^ VL޶jX=\Ewd`>r "WȄxPU_y^|-;^9k  c—2GIʓ}3Z ~^0{"Q[O}VcWrh-|18mY> @E)PT*={T*09+W / :'sAiF2,Ҹoݡ<ޥ85.Öd18%Jd@ɡK,-Wg҄MwȄgKD(&o4S|ja>B:u(fVۡ<.6u۶RhO//G'זE>H0 6'vx2}|^~H34V&{n,HIJ\VYy`M M:eESY E;n5pFlu)Sc }ׄAq;b.vw"*v\9e\ 9o~A3dsV}P;a}޼pztf > !xZ{;AD=h)+fĤE |$OGZ 4nBA4(4Aq\+Li7رsW^t   ^ZXXjN]=Gڐ QRRT*9\.MQ/?烦۵kgnNzAըᘰm[j7dtasa=A Ľ{ (ianߺգg)Avx EAD5RD,h~^"6607WTY MWGIfXc%Ov0IQ~&ߋp9LeNFaD(N Jx|xΡQ *i]'z Tr㖍mmC?ՖL._ G [jo24r5G^WLXsG&cy߸+_ȑ#[n 51bQ:7ԭV'^{ <ƹ oϬ`?(")iۮ'a(abT3QRxtL}ugmץ$7z;DV_~ȣ~0뺤V2iC'NiwZs7ws<1H%F~h']LK:6ֹ]m]KPEߋFwhdecmԬ'[c"ny}m s\=>\m=Q&sGwe덡kU]l5?6>!~:TYa{,ؼyͥV>h" ɒz1Gne!4VDå֫|#1% ̾ӉKj[dxfPg aMm1N=O5u0-2ojȤ;5I*VUc^-~Й[c?Tbffj%m;i_F7󿉯#L72Tۚyϝwy'tCvvۜݹ/xz_Y?*ki C1ؚ`)aJ7?G+vaoWzFz{q홮tXitq bgO|ʽRoh}V]o:rU}=(bk1nB<5EmBL)Vwv ^+Z]# Z&9=eA ^1 qP7m{*suE zG휌>T@wԻܔTSH|urhujO Nt\.Ohդa>ʨ)rl_:X;l?~Z۷Z=YFg%niQYYai7Z f&$(@!㑦|*/"jSMgC畼w`BmYm%[+18?M_xɳR &1%k DDu"]Va\;K/BV~]/'A m~G2qW=pNT[eš g-]~ϗ@7NNX|gΨhoA˧K'xqX㊏ yĞ[ң-պ(E-WxyWgd\ubq}U q[_~{(߳&>qiRw}8ha-2LׄM?S}"Oڵ3'qMk,О[xˁ6BRvnFĎM, S}7y}Mt쯥\:UN\- IDAT`ֹ|Em9lM?ă:}?*'F=cN8ӏDF=<<5Yy׹a׉4Cu>AU3Mv>鬚ZוOEmi{/ݎ46Wrt|A~pyd̤3SUU^o7n-9iP“j@-&.e(PtSm WBU6Sg y4Ƞ0?oif>?"W yY,djo7_Y])gpwE+ڸ#>s.ڇA@GnR>_6pDrJW|}QA] ټhP36l(vj5u^u;qƚOB&&~11oekrS9l)!M-+#OV-Ϲ&*>9~Zw'>ײz|PU@$lʠBw };rr&S <㸬 Y_460oGM])yig{Ps3SKiUut^\ÛSvבA)s8yҶ"]O>}qڻu2R(1 ޚɥɘӅermԪ= 56-} Ԙ߱MM^z:7:Aw#gGG{~ka7UJװqQQU_o7j9*7fo*#qr׊/\So.Hf&i m-T ~_%]Joc>@UQ ߆"վQqafZp(Yp`j@iSRW PЎƵwh86ǏTO[5{]A\sӸL-yZZZji-OQ-?,4q>]hBFfkꢧŔ%(9cH;7'(P\b>(cٖ#&m[9(T)WaTQϳ܁[k:ƒLUG~^ox}j7-.cbkRnb#>ȗ08n]QUWcw;#]_ }&B6(pK=1.M^>8o6P/9bG[گCT.KWs]hO 0XXpdod[\uS^AzpQ_RM݄W28G  &s8Oii1S qUɖwv<׹';nbA)$DDDiTp'6Ce%!?DU' /5+8$ \;pth @-8N&~}".CySJVf\. F yi>@yϸYYɯ|syk;^R4tcdF)QÊ (KԺok~-ˏ-qxt{s+ZY f9AӦ<1qdЄZİQoUV].U^R v|@*X(u׉]g}Z۪"Dbk%|Sk[K5hE8b]J&!S7ju:yu5>Q @ G(Hllhϫ} t}z廘(Fpɢ 6v8]JP QIdjŽ gNa\C>;2%8p3O닒kbip 1p> oaVONXwH]U EHxnx z>5,F {8yM c_Ώvp3\;fQhvÃ.ȺzEUA>Bkmz9Spk9V$>Ob X,p"όk[|vNEw5-aL?Қ;f/MLCwuޤu3?a?kiṼ3Ul%wo1o7i W &{4y ɿުVu^NdZmEn4Ŕy7 k$.z]}_C/9#O|>{۽,YFlڋOmf4S&;]u:X)Ͼgw(S[u_'/ }Cmdegid} t}z 녖Y2wxU[*&L)LJ h-;da3+y3uoM';Zϵ98<]]ahSGOO?B… "dǬ|N9V Vf5xc~hu[]08a]˷`_0=31`9?5$Dx[r:A:jßaen6NM'^mh6 n7nџ n^MumTΙ|& iuК$d=c?wu[ %M o&$~&5k5 y;w5n7Sr{|"(A߄纎޴gۨ6ֶ{&= CYt]nktتRҾ<ލl,<:*WYJ Ͽު\Z|>=za4mҞq[Xݍt]LᜁsuuoH]=S NhK9p`?WN };7=lzLh4-˻Gi7j[uB[N^~]L߳ɎA=p'o\i}_>בTM!]IVUZ׺m[iiRܗטhO//G'Z(Y}~qUPt}-HdoLmÂIXnQڶ:|}ЮΦQ'`uhm'YFzzbB4M?vԔs8Jsϴ~t=SB!H E޽6F1rp\ xC)bu|lLWozU׳W{]#.r jzTl9y2*JS(BT(ry^*"ѝ[ؖ&R`~_? %F3pY#= O#ԷQ0VQڶ8^ ڶAXɝu+N\uA(TZZTTTDVSPLq5sh͚ G-o{tK+4AA "jincl{~sۛDMq\5vC aeYF[&?z\TT,6s\zؿIa=7C߼7L:m5FAU~C0Z]RRwXe*F x-Z9vT$UoDgu  hXUb1ZoIAAq\Po |A Gz  x}\] ~ e oP*Q&B!rAAA7TZ_\P" +B~ٲ)f%k)jE-zvtQLObɡs)Tk""Ao静\z5 7ѷ_u>Bcxq+q/*19?:-">fWOGy 0~:x޷ckwAo2˳YطLHD 53AAZW BQd륵^qa3R,eJAӎ_+S^e_XwAjJlWP VwTqۏY.=V T+LS^g$ը+bA{nvseeCP6MY< UdXAQb*1J@>G3A,/ofEEְSA5 pXitq b»tsqkF5CO߯Sk_W9^㪬? ruhqҞTf{AuCs)%M{g6U=Ȍtor/#nޜ|:fn>0=[y?tTIǾ^`:2[I}Ω|}L׆t_3-;,BeBj GHBVU Fo6$*lǍO0`d |p&ˆ.ƩH ~G< U`/ΩA2ʲ;O"ol/N; Iٹ;&6,J᠅3^6XN{"񴽗nG^Eo.J_>]_:ċӀt ڧRX)BǍk[eX\mqӃEJ^ m[o]Q74w|֢;n209xu~LYUˏ-u.˱p]Ĺqߌ{ "_TD3vE+FZtyx>Ǝmq' s@E).ay eY?&Dsgmm}5uo6[HAŭuO,ZZ=PZwEP({=2o~(hܜ$oNNn"ӄE&TǬY[#:vBi^TsTl:\.Tx쪣%.Isom5R!=a{ 2%$F} (.B& J AM @"(L@pҠ:PÒgɸ̵,OʗsjC&,bzI_}`: %29kߤk6d ZG! !H`U+ا`v1y < '@'S@VVrYBtZJa47k̡$ %DaQ~uKY8{ï0'͕\1\)F%LҳAV@܇R.1Ps0|@5VP @iŠSGiC”^:CnF6\vy7gǗԳ&>cV.LKs DB!Miz;ݲ%pw߶E>)`麛ٺ+{\ӌ ^];j;om5 %n;yJԪRZAsȒka!(#!~@ ;p\U*@k zëLV<~E\r. 7%(ܶ8 &.Bs"%wREoNϺ $Hc]L KFKdeF(Bs@0tt9t:[AzB4~^^sg=r<8$$LWGNzYn.Nr6ʂ]< _.sFXLwgiyVNc@#Ϋ/Ne%dZGg8miV /OfWylqvO9]ɥVd4ZυTr"Zn~lw8 0(<ZUBH̀~Fl,6W' -`hg$r; AW>~5F.7e?*@[WW'G.x;:Vag1cؖ `Xw|P)gm֑ dz&?mk-B616zĔéϯAvr748'cNoٺueEE:6S 5j0/߆/-#==1!ٹOvE}}E h4ZBGX\ZZ*Iܘ0U}@!֝ ~\|evF>drjoq(FK:"!Ia@׆ !Bk,bNPA-; M: B!,[4 5t!BHm!B!B}G!Bz\ᯐ"B!Uгe0zsaB߈;Z8:y3ϯVsww4iGsvT?*?dLoȊ;QÆ?^!i~{;lUL߷}"gھ˜*,fl(6L` ke?B[^CU_^Q]@R\ϏBzi۴ ?t-uu|S)JLrI-܊8wEC|VߧCKWkgsqǂ:9y֘kll~Tll5i>vB~~M{\gHfN6-f=(̿94xؘWϯ.{ŞK~ &=蒽?WCAv;+\KJ :]GK4ݯqo0Qұ O^{yv 2JQ;..hY)!Q;>s=CZsras]^'Ra9282& {#b^>92Ldn]" QeaS)M=Àhwca8j jnfpdA b9 z=`/r-X~z! >{ }_5]*NܔC,Cs)/ IDAT# G qeizPKgb/Wr>Cy+?~Nd@rTY= fw(|sasY$HkEO۱ڭ[ `?b@Oȴ^UAv.-LϩYFJW 0F !nyl{24ٻuѴ6\Mʉˠʿ<؎~g43r12u׷q+I.N'8z_uu+)S=Ҵ ;ƯҒˤi;;L'j<1VffcoüQquZ||e_Sؙ{_t6I(?U=Fk˳A BmL+?pt r9T wL H BkGw? @i+tLpR|qK֝T"'iiK$u-+,ZU=t͌Ҫ_]M)E`dc 8#CaJdYfDO`@"hbaRe3Jd Wm;yܸTYi^nݫ>śwfڡ5صra_O'6H`奖wK{ʿ<Ў~oOG|*a< #.ټS2@㑪*`ZXXyj_RQM˲)׍7Y4VCJG*oc7^"? a]7pA9q7Bťerælti ˿DR5 #'[sNoь|rR(n=%O,>]unRn~լOν7keeB$EN}کvO,l-HY?.'dч62:~Cu)I5gmH^C_[8G8qnE_wxU.?8v}C1}}|jz, #ZAqc#:V`B=A7[ 8B#@ N jױs=]f<Ǖص'P߆o1^UGQp댃:4.vlE} ގ.mլAgJ_kk[ˣZv(!KՌ5o6o[mU,^ؚح=cݍR_<+w*d㓇_W-l% !e??8dXw|P)gm֑T+ުzũ=.]W/¾f&^w`\~(ƃڏϝO !nbip O,~^%1!e֕{o _;8[X|PBKHOOLHprvF]x@_bt h4Y~^ťb{Ϟ$nƄ4 =^P :^ui_sk?W~dI^C@kg;l??drndX#hIR_G6! R hIgDK9-_{}+!&Nˌq]˪+;4Ϝ_ My]Ӎ~A_{}X#k˽- Fcro 4yFi.A!B談e=B!B_=,B!aYB!Wイ^^KCB 4vYCg Iּ,%?!G;*vG!E̷̬3 z@$[N UE/mqk?f^~ws9+?i=hާfǺN秚zf΁qz%q&:F /8׷[%MKlq;lIZg3n932@S.kilaqM{-uSj Ydmx\GW28Cڹy\}+Wr)Yp{E`7o2zۈRN`qDGل[xZVӾdXCfjR#x}ͭy\>oȊoߪ5lX#rɩio&%&ffeV (f M?=gHI'YNt_%eW`haf2bFZJjO/ sZW}KA^IˌwK|LyɃ%>yz9C?L8,YQ}w~p{ߜ-cT$t:mڶڵ$Ms7cD^ZdscuDP<[f$Q脉GRBEϼg|;d|6 ,BHF]]> :l?`@~ۧg^;v`ee2RFʰzi۴ ?t-uދp5XUǖd][>7q2mߋ294iGs2ы-]*nj/thjz2Ќ7u񟲻j6Ngf.>g svqs@^pyٞϵ}Yuuƣ6f49l6A(i_^wA-<.{oJ4X&V<ݱ+ݺM y^Z1:&c܉`jEW#U /̽u(Uw@}}`[cKS%S<<L(zMs%\v\Ȣ]S456-PsKqUWn]1ԓabƠ<ߒCmjnf6dfTa|rjMy߽[.ڳj_3W'{Sg urx.vqf@u iVGSÍ"_Ihy\?gS#cA-14C #zlt{ʣ7qk׶.Ŧ8fhɝYt]סs>9t3KsHY͈6q:z/V<|尬G!E$Ideee[!f==d2k3ŝaz\ETҴ?g]OI0`EYqc'n?=vhю1_n 8< -y9n᩹yZ/t>:ɡƣGƼz~u'0/Uԉ1Mm*x4E?㲐#847I}n~ք?Y)/~Wpq}"IƵwv>.T:G] }pFQtjڭ*bʵ伜ЭuJ c}bOܪzTȹ6?t@z+x|#-0b 24T r[VJ=3@xtԹSɝ.伋Gt=“Wo^¦TcxnzQH^v *oy쥏,X~:Ӥ5$?-/}u7ٴOį6;;SiZtLc//aGoER+_;,BH \.9ڊYL*O)eϞBuW pi9k׮ ǩJ?0\uRApGY5˽t&Vɢra:[s"ӄkSjb<8u@sSALyWy+x4n?Sk~:4is^$Ɋ q^^igkV97^ֱz+B.l`~wQ1-Z`v 0{Κn#VwTE0Xtiabl|N%p̚0z;Aч{,O_JXF%(r|2MZ98$Uu:0 0qDԻIx~Ep4+'.*Nj$zZȩڮ<ES yeq%pwO~WwM?.eX6]:r_.Ɯw&KNϴkj7;s&US+_;,BH%uӿEڛGtl\S C9;(qxJ3FUM̘YQ$8A@VYBU-2nRS@Ӯ`{cH"_+x4Y2UsHXL2-F]yu I-MlWг_'/Gf]&GG*[@7:}뱣\ x?[M>&FoE7c@{t%TU{qzk2|iʞ>-GcJKԯ:]Ca]tÃ7i=F6\ve7=g1oN5QyuF/+uV oqaz)~ߖz0X@ajQ8gToP} NLvnt\) J OVUohdyt3!AcʒJh^~gQF ,]6;}T,#8ziY=V"ò!Tl^Se)9W8;tQܞ9 C'';E$aǯ*bY`pk!$ꞻrqiܰi3]?nI̋/q*&ͺz֜!y*|َD"e"H$VBY^y!iq??\) ]RYIѿ1ZV3Y#Y>,K=9}vLFQyI]lHcg7K|b) ]bm[Iەkf'$䵪o2,zuOˊ쾁ͫV0 H\`d@V~lD쩞O]KM_vEH\~PHT K9rHVHo]0 Ӻ =[e[=!N+-ˏuɮ$]mX + {VXVqd0d?K蹴.=v=D"yt<8VYK@E_wxU.?8v}|9^}- y9[Xp&0bu5y ]nr].OJ,p\x#~s21_gLt2֖ zվ>4I]974c':rE>?:kl#߶2mS ջ}uZnm\1u(Ô3v6ˊwuO`X svww0k O ,zG؛vƘwSoG3xxu L67#cCK]+-s:̶ڲQ{v0E[zw@3+K sK s˾$@ٝnKs3t| :~u娶.ξc#\\ ,2ΡYϭln.De8kMN<@:WA]'3q"nbip O$zĖ[WVTH$ױ_uc_mW'Ft񢁾>ŢUzլK=bqiiX,޳g&  {f8g%I}ـBkB$Ax74oZIԹ8Ǡ3}kck-,yq M;g}i¹]v:)]k-A~>X#Jj*Ƴ֤W:Z[<_o2┋WIе:O߻'o2 !4zh^[oi0!G!ԘaYB*!^UB B*QkTX#jHX#`QBaaYB*RXl=B^Y/ҔÓH? @^;`k `7?M!7}]i;!5Ke2M5BCUl)0RmG}2\Q]HOϙ2@pIGVh]B *+bf; bbT\\xN{'Al86GٴC=bnzmO"IHѣ?C b <g^x.V@Tk *v:jbr7`Ҩk/M}NK}ЗVb1eْ\Ywk6{6/pl)H$GA˖BMqLDo`1@lhe_{aRh}5 & 3P E; la e`a~ 3fߔ}]q;!u(ZE8wnesz!7[8t.B!Uh/xUκis [w=t`H IDATv5mZ6LLkn`*wf'@]*?G&Y~&H'L2;ܜfm͌3R #{6  >vZ\ H!VYo {oƜJt `6~p[%lYދA.‘>{ }s|[=8Ud@!}(ɒ )R2Iz!q] KV$ hL:tA@gSm sɤUY+ i-$0Ҫ4$yiej%w4)`|3m.@6Y`^{vT™@Wm;BIu:QL['gB!o+JGr:Ӽ $ %` K˳,&19;xI JdeNx5?(pz 7#P$xW󷠔 x ATJgQG;P djBJ8xYB J#k #m!L[F0;y9k@by9nO@2{xj6 l-w?;)hНGuv񠕏ծ40҇cpÚ ~a3+hmaQ? `OvX&/H!MR|% !PHY:M8o`+S׽j5 42vn]o=rvVovzIii!tZHqL| Rni;\uZRlGizG!԰稾y0u 0Uu;BHdB5(M֣Ϻ?,Rg;BH>"BgBHE B zR/B zR .A!ԘaYB*E8!/,BHEpB5,,BHU֋D!!eV$ſyCJ ZV␩nBò!Tl=vdq8.M?=gHI'Y.)'W_68}\B}sT!# -bF{.˟~^7C=ʟl#ohg֧ Bo#J"i;7ò̹|S鋐i2/>;B}_BHUwSn.-g8o/w1w&N!з gq(iq3ݍd?T8߂B!"%yv%YϷx'ެM蓵xH}G!Ԡ4PK_YMvY{d?3XgY-Fp%鳖tdY?-i-ҒJn9 %/ߤ6]|qcϾ),v X=ݖ[%~"oȊJzwRCCb4ճq7u}v͍i ^mڿ6۲BNI$NZ}ps6,`JYuiMʢӲsMU, ܴ8Up>kyo4Kgg-|R275ͣ@{+IKkce5g`֟2Y3%^!]hIyPQ7Nemy𯼋nw&H]RgE8X#jH(  SL~%˄ƫ#ږ,1k5Mм K=̿lh.f YM_$񡹆5VOij")/eE7OͺaxLI቙bʜ8Nu}ӀFgmĪ)$w2 7G ˥ ).ȀnنzmաĤ4iךE{/פȰJN&:ݭVd&0RĉϬgѷ_5\βtA |R_٥/xL؉T`;3]v2'*q o_鎿zt\=;7~WzB K3py2<ݙ!I<½ˣ]:x[V&\pi˪*&(M65Ѕ0sOSY^7NuoE}_c˟-,XX,h:)eD̤2~-݋;VmdyԃRˎkXz,m5dV(Z Ch5aD|pYLV$·k:8=1Jh:. D_֊Ҥ+Qi-)E |-|ҩ屯 lZ@^u'C6!ȿ,/:6N?s[e+:Iy⡢Fg*[b-Mj)Dz!PCÊ>=)`'?/dNwi9Р,M9vKF"#$U(>69L;&lg%ͩ{;S.]0f[QC3#pת"V|a BcUBAaYB*Q<[_E!԰G!)n=G!Ԡp0BDt<#jPBaI{EZ^qeB5^Bx4t$ce0zs!.A 7G7c6%Bj%a!Ag8uV+;]v~n|׶4vB}_Y ~Rne#'=j&a"ߩ [S] M!j$+(h׺+m_x[WWE%RX;]/I+ a|A޽]aZZ{G.`rhZ^~іtVvqLZzYY!5ȜM|ѢcV [ZX\.KSty5Q0Hyy[Xy\y^ dy׌ha]9R^'kP fw@{Δ}{xzBvmըv\>k}7"!W3` !  m[7:;Re70@HSaH;Hq1VPoUگg_|_?]}"y;ٶ9mX3 ß5$3m<,>,եvG# <,r/.}Y}X]^Qg#Vdܥ7iU"Wh)h\yfr[v /Ǥe?;%ȲN\0dLZW?{,lu|Cw^Rqӯсf2bFZJjO/];1ptRFJđnR-"Pc^ A0`J ZCAPt {=K@ }wֻq_q.@Ka*Z %mat /~Rh€ظYzNk~$^I>!ۣ$r(N{Q6PX즛^ۓHRnRnةrª f;ݙ;켗!=頋2x] ^SzFuAKJkM!ם7ju~2} t +ؼR60oπkߏSMyPJ C IxH)G^~`odg T @/0¿*IEzzaBh<~ːL'-yqWg{>׶riڱnL+>Ϩ2WgqwOCdQĮ]s|M Qgze?Wu`S d.<5N `s5X E_uEkC=y.f B&<ɗ<𧩎ǏzbXNvlۣ:>19\Gcl6Ft6&YƹU ocKǴYi|tj(奰v !(nDoah`¶P"}oh΄.y\ `]òŐHpC S`?&Fk0e!d( vps 8g;0-i?Xo6+R0mz+."J'8r9a㤢Q;oyhnѹ|Ӏ#Y[/K)_\6bOgWlݟzEƍz=spQى=iOC, %Ъ?h˚^IBٿu",[X;8k2Xj*f¯}jFoL䃹_ ەj<U7ouQ0<?hG?Yp* dl[*)ۑq4 ^+Jg+ܔks_Jomwm׭¨WQ'Ƙ7Uϰuf^1bfFmO32qxZP?iLYVv ڶ$u;{4ϯwgW:3rQܕRaxȐIo?I{YU3XIUOIl)}Eqq^ဣѫ H#k0{TXGc^{=Hޯ܁f>ϱ;3;~7;;{3ot)yqVfg >S>4Ĕ!>X{^p1zHB )sa|0E..Ʋ%'?ű$5 6.Qo6a $h]~uE+O@BMq=+uqROPK=S 7 L&zS%}x"w# ;/+JT7]cOh,\u7.stڏGobcU 01N\oѰ}KnM8b>zs`\̈́QHJ`i07b4M/#rGCS|h؟8K4HyCpM WԦ#yK~M9uUhРoe ק{: ={nn 9}$eظv|yQ6E+㏮G)ң &'TOql2 S t:&PYm̚aWXukXfj,mW-%ςX6$?\N>N??2n1Z˒El??)mo6S:aQ(,1rFBCN5pQSNmV~ 暲{cUtڒ=ZЩh<3+j 8VB.n`&mFk˨w"q=yӧ=9EأVl~RߜzAE9i~>oF^ƥTm?l5 ܤyQ9RsaLtt % { /]\]m>yQ B%ѿzǨ@si[^ Qn4}Դig&dz baXeUgZpu]3oSMnAkɁgdXJcL|>á(i.U-\#۶o_wovrv~;Q MuWĽxX Q-btRYERophz}Ij *R8vÌ.Cy|."n .1y:L>f[fd/we2\Ç7𳾕s)'A Ryq&i4zn̮BRN J @ڍ[OAAU AAz rՓȞ bUֳT  zE&K,-nRDEPTEm\Y/rC(uʼR䜇\PP7@j;?A퓴KNvz9Wr|W8pkmc2im!9wn*\re涁[ jST`>pLf{U/D9ޏ:"/T]p Z̗ޛtwJ99뚺/l^Ӌ=*:Ng{|OVNs*?G]OM>67 >zATX p3dΔ $ 5Cq%V* i9OqP<o~]مr(#xNJz Ϭ3Z;DBj*۱;U%׵KQ!٪!qY.:ïyR!Txe#uC(zYK"|zBQ j;{ Z{H_q)@˃_h kVb2oqK AQYUbʣߣ/ sP4U^aUK,y?)MC<],D;(6i0aptv&Xf%h!Y8\p+[C1d"{2߾TCǵp[/ݍ&1lENVLY(5T$A,ro'UY3yzԪ;hkz[Z5[5Vy"wp\3AJz׸.(Ky#FL%F̜PXՔ'A7[5\1έWRP7}kއ ɣ{ΣSkͼcqjιc@+~ǃ[\o]J/q>?Ĝ K|9=wy)5T^䄰ߝ6pݢǝJ[_ngvӽgkW3ϊ I~su1U2G,!M YzAT/UVM jXjXs SoHp:<6-U BW'`67ۖ.Y7_;_ٝu-z_q\NvcG;^oČ[xRSZ1 ^=йFq.@q%vLjIo W‹1k)wc ^bZW?+^_QV^ހڠoe ק{: ={nkX{ )m4H~/tX8!M̽w5.9}$eظv|yQ P]xدx{ m1-(G&V|Zu*XTz9v3COCߺ:)K5vG:Ak?tb A9|QS[zAT/U׷^==C.(aYPG|q8:4R31x^#ph3G*rߒ\WY(dg(aRs)( % 2>NSiprŽGkz\ze.@ Rb*2'!I%`[^gSN<-M9HNSnSwoA3J͖2rr^gfgZZhcIRzK[_-)3`dVxFB/ADU~a}I<}1v#F eX/jx3,PT*HERBK HVx|@бI`Qkc8ʂ 2Klڥcw7V40Ǿ \}z{vDV|5r!b1 n@#iө9O& }ƚ#~2opCkHGߔk)#q̒hh>?_r~y6X \Bhd9:wE,99q#D奩adžpt%َ.v  ?uLFu㟘>hdeVxy-7 wRu(䚹]yɀɸtJAqcNSs2< jm*7Cuyr>l'߷^iDPԂ@W5E! I*xVId+{~CznF(tϹ)!( wet!Q=AQ$zy]`OҾ'=rn;^bi,Ջ;[My@i}}Soh2o<0 )<|N5͌-lhSzP1-3-`j}{o{_k\B ļxWT޸JWL-8 m9Ê" =Aϑ[k=p:K-:z JUI'ڪ+H)%%dNN_Ʀ*!bBW'`67}X ֹf}r逞׻sUk7v$Aؽê5e{UЅMxWz @tXWS}`,B \a,+Q6>FL*h:B8X²GBE1h=K-:ᐨ Ќ.p\^o:zz\Pò,ȏHE.ѡM2su )C{9?2MSp`iTPFq((qhJ 82U( '-`ͽ ;_+Hyz}ʐ1Eɘx7Ԝ a'\yvz}D>qc͑^_?돷cu!#܏Ċo>.vsl"ԭH2rtXrr_ @Z xaoO܇\"D5RcN H.66666Jԑ(rS9 IDATkRZ}OǠͺ8cL|KȻ:kI99~veS{O/(=鏖)ss+_)ޟZv_5:؝_ZVݠ~oq"B,r v&gO pw9Z^u-E60TV:F nj!l9fրZeRW/fZBlcnw?cpsq7<LcZyي,,"{V>bu²h.jg%ZZ-ZSvFuH:=XdaOrx1|KOGM? Լt֪xg ٓ]gi\_-Wvȫk9uJ?ԔSVzzb_Y@>ɭmK޳u=V_.od?dxMno2ZէxTϺlRKՒH$wЫW/W|ww={}﫪^lAo37qr7A7&T/Ϳ`\pUSf\~}T:&f}|-W}{k*~vݪV۪\\=ƅ"¬`c)H.> z1%b`"'DXY(XSa=SEAw_ak,\vr}Pоoхx5ZGaf9xgStKZ~8g Ggo(>]$L\?tLjrRԥՃ 5_*)L~Bҽn]L-+U/yԙA#ώa >\v#,z^N_F<=4q>?Ĝ Kє amwRRixw4lu˟o-ru)zPS# >Wλ!ujJGupw]B(ܯ U[?֧xT:lRχU _~A/J5jԯح:=2K]7pz"wr=܃x(vT[(k'4h瀺AFomRl ?}+W yI_$Q98Maj"f$]7RSfl WhWes QѢm-z?cز/<$JKnX#}7]+Pq곤tX8!M̽w55m/QvLx\jRX~5si~頔x\|,+{@_NV}9vNMoNݜ1mi GkX߸3oe|bW)LSVAR2(ݧS.gi]|(s5fCAoX_9x(R 8rab\Q`(Xp`l@5SWs `R"8m1 +/طI;dnvrM-rQ4 |l]\b`aju^{p#33Qf&dɌ @lk>B\3 +o3(#ݬ7)ҢӔ͖20QUY'.HQf̚{wg_Anbn*C9RvA~\[Rɽy Vڍ5 ϫW{qa-M Jlt`":vX{]P+c P@%܌|o~xxTTRH9xAC,,`3{0l5 GeuaXfZg^k5f?{\éc5 8=}N9Y#jsr&Ѷz5sNJUl'bdǻC~BKs2< jm*7Cҋ+YV˚yqP]۲7xݒE]|vݝ"w|! 6^/+v*iFf\y#si0QWt4b䚹]yɀɸtJQ}G,g[M<_udmܴ0ihT7F1Pf;(m{b~"FyE?B!-Rh>Ke=·* ;cpc?+ݝ:l?xnYL'~l輝OZ1MSWŸZş#@[h]KtR%"X?P`tqrw̭[Q-ѷa]7QKL0OƠΚhNdyt$@*A|&h!RٰZֲy|;[F5HS:٣=jzڒyt_MZM<9Xd[gԭ V9kzVV:|q~k~M Wۨym_N#є/K;]۬޴Xq=k[[-kisip-꺷g-j7d7]6R-}_M9`eTo:5u~cty]96?!l4Vmvn^]TWImIr};zY5dNFm˩eC RdSGvnl]q5˨-Rx+k;~M;H\OLtt % {?z^}q/8fG_wO8]1hj:ɂWV(BFcRW9~Gh4h˨" bS`0~{>,u s^'MOMK;.8/7e0 ò,˨ ?3͛;wVe"Gh`cOwݚ1!v|nBE{n/ ȓAAryg;WP[x_r;Y''֨x<@_No' N#7/Jn>-JgG"1!:AG&A-M,p\\OG^Qd; ]2ㇱ_.&ə5u7VF^t}=;v8pn,n Afu U7;ӺsãÍw/^ )M;/t}A\eIߏH'ٓvA|/KM30 :orD7#Wf=vvւ$w[QK읁+}߽1B 2ƫu(U̕(>{>V֗ 3tkxP#|vm+?e bEJSky6JW)9V]X3dΔ $ 5CqA|to{􆫙;ne|bAՒ=e? +GA~kیc)ȋyk}S5ʿۉK=Hf`*0ۮj_chY7_uqyqsO ~ Sff&~Iēϯ? kۀk[thZO2d%#p: Q$7q.1Q0O7be÷7d0*J% ,;|p-o6VHDx~/#0ǖÚ[{<̄ ؝`'n}e*QY.NASzy]`RoJȓ97c/1b洈tʝ橷rw~82 y _St f37{ye[/^.? 2s0~a){C`=1o&0Wb@_"G93n_tz b;ΦTZc!l/0ن1?+9nq!ހ zzHX)e/AǐGfH2LW%a=m{<9׭cR,-tu f3.|mYuoӾ1=[ Lܿ㮿~Ǝ$wX5ވ"lc8b>zs22NƘ5Bl`j] uQn#h2ze̯5}(~'-,q7+ucZ_%/K#^|ISTU]4ddo/~rAq8 ˲"?"(,-ads `gbl)6;.G ^CogΏLSUZd'5agx(P"y@ ךGPE!;Ea KA8@(M@zD1ˣTB"(do/~a}I<}1v#F eXx3,PT*HE*%@zTPi`NdQ`NqIHG QAx5}vZes3ҕ)@:D1eE|H.2,[Ӕ@_zduH{eǽu{Pr>a.q9E\ ۰# ׇ ySIwINx•Go7iG7ax;V3d=Fq34¼P2x}k_] .1}4Cv{A?7޼"+BK,]Q3KN@z\ 9AGs{C\xa,cnH~vQ6=ow{m -}QH0_X C@{g7v_=ފe\ahmA%Hk=AQQ4ou5*gwX*}7KLtt % /]\]m>yQO)`q6ħ^'MOMKPD2aaYeTVAk+]{S"bu7/v0{g"fcngRmJyH::QƇr߉=m '׿{ۉh"* ųL}E.AT#|s./tQ:   1yM@QQ:Rƞ{VLA#[4mF221=vЂڰ^̂x{Zr%U@_c hZۻWB6-{keKZtn&Zs͚/Q &;l-}Q<)OۻnA}]pаO.cW_OUV~<&ì%;v[Azuk۲W_\ @$'(20꺄o>G֨0犝E\ӑE)Wj V)M$*4.GɤO͂dY\g ͂ʌRB!8&&E˛ؚ 3!<KAzp37Ka`@PƤ؃cCQ^3s4ڻ{OȟIXP%Vgjo'&SLHyc IDAT62q E}g P$x@25meBS^ N8XZAUHsevlts rV}űt~ hPl̦F$ w_vO2'>ҕ;>ٰI (.l:\ߵK7-;Ǩ]-ѽW{'xuk2φe1d `-,[lGgV6<-' <'Lhufnt[м3k-j9vš^lӠ5ƘίWC~=|1kBMܱ{S.9q̺֨u+zРv@StlӱۀiZ.A < PϧAWwi8AQoVe-Q[P9IATWP{,\8÷jOr]Q֢*=A_OYY~p! ϭ?MPB_wZ!>nBIė@s~;(/GG (cL{L1v-FKkcQ{H/;׷xG5Տyٙ4) λSCZ5@ %$?Y@qqU !^ | <ؼJi 3a2-6AxQX@ i,V㋋7}ݲAfCA V)3 |FV/a8_U03褀l(&b9&EM ͕@ &c;XCyppJRA 0LX@ <<ObUU=Ѵ@ 4M$>q\9@a=@  HMKCyy,F7V4@4:u?ٱMDiiEQ uk0\166EI@h\P("++[c@"xW"XY[T*VC$DEM/zhD](..nju A8dOF|h;} 1niBfć ѡHzhiY9ceӄdqӎ6?YʪUF@ uo QjdHRd#uxCt_ÚYn֨trՕ}4{Xg\-%K˫YǑK&)( %VU!M%?bKVllȑ\Е.0!g*Abm/M*@cԫPMʿhhZPX@ vTKF7OΡ]_{(Rf6wtDΝ{j(ӵ.gUqؤs Jstw,2v䰑 o ,8GΡÇNBFQQ 9iOk:3V7u@аS)iR4]*tѐMsen'gN;*O;ɋׯm -Go"=z(G M ѡL|v.ťO.qg_d=9b۵-Khl=hbДYht0 Nۨ;s۾̚ݑ(.e:rDn"LUFUfP/,c[Z!a۹Yp4ӊ3F,á o4љIB%;8*ҭEdmheԹjڒ Ꜹ" 8Ζ) f!>{3Iy2tB֓׭{0c'V+BM~_YLg.x4@4)(G F d1[ԕSiuS?Yƭ03{SAŒY.L)MMbB(SU[\sGSVJ chh~֌fugdPC؛ 1$RAqh?ۛlf{TmlwcZpIɫIeUz ug+/ǟ9kb櫂m@ o4@ s+ՙE47F#pĻ G F\/GrSU zϛfu+7O3rn;t#]E/g[Q&f;9XĪ : _#q٨mEƷb] aڴqy*`y27}!032)5`dad*cqPPuL"~nþ?ZDfA/Y5ƭ&sƹ34S@ L@ p1?߀Nbaq<ۯ`\ÑY'gu?g/~Y!0o;~@KX]o;0=|oV9CIu籨{#ۧЙEK"^q>ݬm4@(p)^y$ juqqCF  F(8Ǜ77@XO\շirk>wu/{_~z)ΐ;05$<o㿺~x=zH.lډ/i˴YħdOo*^?}Jz?}ۘ,>8%fQDk=iYT%8J%0A<ӽs  K]LYdɑev'nV̵]d~߽,m8/9/_lҟ!dߘu9|j׍3a)`1oNe2)I@o4h+PJT*3ssHTTXhaaQ qw}`[X0seʹnx,cLdQuIO7 u,ӵvЮc:Y1[`!F+ -, Z,-79*ٚ,Ok<~[ Y,3+O Yn袘y_Ƕ0u`;SƶhoN۬߷=ebߧyɋRx5ϢON)g{ dil.f9 Mj1PQ'+\dM9Ү{@ir 1Z56KצeOr! >\4![hȉ0wָ!Yio1F\9Ȼ5%2a~hcާS GиM9wtk;9N \]#T^*w(s$ ;up=\fp|2az`OG 5P)R{{{;{{ t0fcDTXԝ[;&aK{Nj"? co$KRhLJMIiݶ\&S՚bc=<o]Uxdfd$'%yy{( j^K[_:-ш/D޿驹eUkU"7E~V@A wXV@ hj@ Ѹ$^˘+@ D#7I:thAAA#z7o@ r|޼orŷU47 2~! ;B_;]233 HvB {I[l(qZڶuY [@ u 3nnK-{ɒnEgϜ1xY`X$bJG_=}M.K;XONUWwPԻn@}rH:tL&>=20;C;5unjݻN&߃F0> d*_TCU42؟NcP=r#[3bԵkuPy*el5;Orjj_35fETjzI0WP皦y"ۚeת 8gӠ>1'(Sre+Wִ>~TjvѳDv [wIy~U֯fr#or>8:vlNҨIG.;|oOZb w!jUƕm>0Q =0ʥheo(h@Υ~n{\X?e#g9xd\%Nzo*6ش[Kux4 @-{_3 qݝ:`%i:\༺Gzv'đNwLםLx[hDg>TGnTQI^Q#Fʢs=O_VI {c͸gTtoJdmJ4#vc}YP92l 06,3,Z˯O`<{=8zh0gڻbz 3}.-"]b7]WW\\jwg,ɕ eˤ3vO\w!/GMY B2xkOtWspr8|ˎve/[Wufq`@l. )ujw[c c@)FjלstI&8ڌk͑'+It/Y;tglѭڙd޼_6n4;GYs Lz]aU?<ꈮn:Ӿ:EN,c,YUߧ U=!a=|; :ȩszԧ>`;m_|?uُ׾Yy~'@W,&9޷tuݢ~P==XDIώ_v>*]J p(cB.`#m0HjizR]& 9lSñ`qLazG < AP:/> `ilϗО9/c1Q b/Y e 7?mbՂ7;n 6ԂL\L6L$m7=4hyɫe-m DM @ǥS:l{iF[4ǦU8MJ#uoVk,uP]ld†s ]ibv:[Q'km 1#J4q%+KIZr|]m̈[mt]nf㨽 kauk52Ab!<;ɘ?h+꒍K$3V=,6663=]Vl0Ir\vڙPB9U9%3clۿ8q&M#`UmA.ઍcs@`^ߕi^:Bz~ w+ e,cf//xb|cB7rHfI\8˼NbiPj_gC$!U~ߊ1f▢ۮmg: ׸էDRe>_З8ԥ@+v]䨒n ZXrʭ^5eQPI?Ss:w}31w(wSX*TYM:M6+Q:)ŲW bi&=a0(ƐB7[`6ne$j2;Ƭ^P=^`r*se׭:W gI-!Le> MXdEz'og$sXmdNkoW'ke2eIzJbrsDָ~Ɍy_yQqq1 a8z )={P-_91)ϵ|-˃9 . e7.O @nFZ$vrֽĞEwzutb ~Ŗz.w(c[iܑ"n] L[ZCٜ|3{tRGf2 i{r靛;w c X77gs-LT OedGZq:l6**]([R?nwQqI"Mg}Q®8Ҩpd"|Cjtߊ:XxahNֺl s[1ckCqIc[r|\n\-W `0ⷞsk$lIx)RHÕNϨ~/,+CE^)}v#tYWf; |cCOFx>hS^ #V.+Ȅ}/\6u:L S)?^^rq&|rh"У?_{,8h-sCؕwP %X`D~IV}QOQ6^{u1ER rʔjU&AZr/' &q @2īMKsB*JaiVҨx6KoECKJsBYBFۍ2DW٨dF(gt*=Ω, >`[=c) KdTɕÔ׮ץ?tхrʊ隣jnkZu>7JhOWAm"LL8\. DZ㪰 $z.^njz,moW8r uxn}).k/Ȼ.,wrqw*FM4[#CX goZ(Lyz™F6 Lac~w-x MY•)爓m܍J]İYes_<.nd[vóxoqfz|Bm1y![nh[!蹞0YGcƌ(4޽8=v̘7]QjGǑFlʔ aX`yhԜlZ{giQd&7 HPd'}=B>{!Ѥc- :?@2Ӝ[Y]uRoT1ىͫnD2 Tu 䫥KeDC;q }4P\tX9B۸@H"1;3gT2|kZ*(_Юˊfr[ دլZ5M9j)˥fx 6U¤'R"e>< qQqP*.z Nulzԫ N9[I-!LsVFҲpjpu_,HN$w5{S)Ss^Zdp-"nぺsN-Q\CSFNOH9yn9mi:+ޣR9F-kz"g^ϣWS:_u_U06ή,erͽh\ץEyҹՃU#ݨ`7LP8zj2/cԏdX릿+c0 6_8pel::-eL? .zw֚jPmo?w`z'z֊D"YzTO?P~'4pQ#r(ō'%)9*R*|_*v2șY(wr>̢UHP@4̾pgEgZNe2bU.AAe}_ϲz7Q١ڡ~7%ҩ<2YhZ!RPsD0.Y7HNq5l4#٩8>4"'0Va,]x8eL8bS'O\-͵ k2d6zK&eUIf{ յ*U 5 ),c`iSQɻ !۾3dw JumG;SSӉ'Ϟ= 'O(?},kwazj/} ںԔEWrsO6bnU"SK~+7xm5֧lޖRp2ZM2!,/OQi" @^/t؇I҄_GKaIȊCf@*m>}JN"-F7|6yb٫yW~xU0ȴ ؕM5WGwTzֹ"|RKmf[/G lsmÁM6ܮfOfתe=Ps%r_H}ʗUժC^H;3zn"Rvu{qY<fW~ZՑ>~Oh X=;1.KNY;v,98J3+))۶dZbc=<i\xG蛜s/_xq||}uLDbBBknY_>ȌqXk:-m@qN@+>IK{E렒S'Or\=cU*D"QT=#"(=<=lvtWתD>?jo@*.޽|0~x g\TT.Y~*((嗍w"yQM&Z3)C^4u;:vc0D{)I[c\~MHz+++L1QG EQ2Y5B4M5}nuԉ$՛#JjON!%6۩eh( 0s"=n͎6+ B%K0 Ȉ7떢(;"BPP=K& 2am.h߀ T$<ӯ W#R3s>܏,1˭zL:˷RYEJߣEY_rq ** Kۛ WӘ\r&\^z'\`| !d+k0Јa}bbbt " 9*C <._k2+MQr}4z)y}iɢaBUebV2f{.Dnރ|a =CZ>ATwJ²~Ա\d?.f4.3LZ|T/Ϟ}Yqrf2 ӈ<)K=1_n!qQF.س⡇fqʺ[ 1 v|,UTp/fѺkV\͜ fV IDAT"Lܜwl#Kn3mY}eItud-+61]mN?> S1ۧw3}oChvDs쎱WXYڔ7*SwED4Ĭd|RUAՙy1RZ~-nZ3CT N2Јa}FFTZfeeնMp/_0͍eii+߄@yTjzOh*P *aXWe(O)/hB9 *5;J2Tӥڟo kzVO xXUɌV?$]շ vzߚ?4BT6KrhVe*UAUEkJt4XQa?˓4݂~h3~m)6h-7#誔j0t)FP~NU ðr`XR{^qQ:)Eԧ}XD_J*߇EZg#U_bc-Y`1Q?}|*y.[\E{L :xCeE +PTʞm:&pqP_<k.T杂2s 1X@缐E#lD5SPfiJIGf>]L@)o~}jiLiYqSk%2O98G㯕ocq `29KhXt Hٙ/ ހMi 77 T杂2[3Vm2Qy{#3x.wFy.m<ɩU) 2j6MN}B-`f6o_(KUu:[{qT}"=ahWv@4?vӡ|qT =plΎ;ڐ!f2a*Zn'`)n<3kBnYwP%bgo3-zTOY"q6;h娜4Eˏ1ys : dOG(5oȟǪDb:Z-bFqUEܐi^ G<[pQӏC5_2"Nϳ` h ֗UO)V*CZ?E 뫲5b .1Pz:7LU Hg3kۦͱhq_rlW5QuՄ`&n q'Uq[ڽIdR"]IZs7i,Z<ܨekLnx]y"8"c$n.m'?'H:3Ny*[ɔŴ{ o * r׸#b3T1/l:ೖm8 Eֶ J[4Ǧl]GdyXOf$-,lO@LUw67%DR%vݬ_}tBs"-^_fnDr1˷45^=LG lsL t;7u$ddӍUgGH^xsܭp"Ƒ%\>D'=+nY(ڹ )Z"]f+p*XN<9F, bUVMr.lS0"Zov]"tA(/ӼxN]jȿͪLiީMx+XlY1< J{?>HHmޅ6iB ?&h7LYSS\c9UuGҭ?z^gkXs0*Ɉc9Md^8ϯ0M4و/(Vњ/ `v+Mٓv]) 6>u5-M=oaLFfЙ\B"e#COr^a]P5i8_jefD%Fekf%c| mQ^3y, ~*( 24Fpܕ?̖˲v|j*ZTO݁=ًI/B)dU̡_{(VR^yMtd,Ƥ۬[D)˸vcxBId~ 6Lf*[3+ "{znJn. 5]9PxޜM]Q-y);N=%bo>/m&s_q-ȫщbWQ!\{ RoYXX(S&Oh00ۛ$)8@wB;-L8N:ߝV[jt6ca~8zn9F3{]+l޴0/L^5ڊ"=I:No3|ؠòOa%oͮasm]1;niwl~ZILT~PB!֔`Yd8my])O =45 |ag\ {^`;-tëʷ,v".K|X.kӫ豣fՖU%knq2͉Nge&%g3hn~KE&Ս*vgknh"ZAo׏ ˇ77٘vsm؍[@g'~LsҲGXsҼhJ`ި/ƅKL%e^" \g4ߍgwKxMBr--:ѵ7k"BYn]ccR50 a N=&xicF5ʌF9sy__~D">o;KW_J}IGaDUco*opv@[V_Jgy3!y2Fx`4'1Cwwk\MN6)'k3i(ͺ*h`MhR!9tvTvVH{ Uˎ/\RӊIN7j0촶BsKW C/ qf5|CYdmFSN3=m˯ !+麡7DhȣN ֵ_3uƳ ƴmtdFͧ(i=rQo|U~6lе__I 54lz<=ԕR9tˆ6;xH׻#4 IjV`kSC@❣%ٽ<鎋P&{iQ;:T^ cRFWakMroQYլ (R/Ri khpuoh)kZ@r>s9v Ru*o/NR ᛛ>a:8(w=sGj|k f% ~n3zH$\li||%P>>#qU[[,:ٳwv5|@gew}+L1JZ1|)7g}P/.'p\[ll;oVN3-Y.K_&cp]̫;Jݖp3fEi O Oɨ^ai I,jj@08rČ7\kH!_l>5$l+9-Y{_{HvsXmGI]# )|(/QGxtv1z.%+ζ<#]1utt 3z2{=./헶A=Ff|uDϯp "Zߴ }0Մ<'o@go+ ;FZcG`f|ܖ8dwٞs+߯Y]xmh3bw.UL4"DeB-5oy4@X=3$*Y@U0"=M+162lUVzq3C$R}ac]VK~Ԓo +zc"1]x[ S{ja!af[8.nw=E&%w| "M ^g}X?e0Pt/;")AA܏k? Eaa'O6/KWys:zG be5z i4.Bo==wܙ`ZߩI $<d~<# v1pkY^oOIVYwI*gE<)c7cY8jAqbo`ҁ}.{`DOĎmVmFs Xb}Kf9aPo+xf-pq3 2ژQ^w֕麧goX-'+J('6OTj g ܗ  !z tX{c27K1P$4z^&SkV;Z۠P5,v6z||lTȣ,ln";3Z;EME v{PhXЫ}_ŵʜ2` HmAg+xO P֮NxbnE>K1nCJs_Ȑ?e]c"_P۵z8M_`Ƕ)߶4 8|MN\R0\'A 1H]W?LV["}fIgFAhe$>@AT ]:M_ܾ9?wesw8:qNJH.˟bEҍ3מ,;ݷ=ʮ|GvvU[[ꞻ%o} li~bza=@ 2|l IDATB}bMSL2K}S<;pW֔ݓV'1h@uEppt ߓb40. @YXSeVrU# (U>:|xK;߻mcYš2N4 y,WōW_zO4Q~PFDT֔Mh}L5sjم|[ @{m?O0'JSbN[/soi*3 &E2MG | 4Î}g_!o#|@zlswS$4!2A<1){0@}lRi7͛ި;qd2eYІ栖cځ#<,BB>D_B7݋m!scjŅ|9ݛ~\wi򉶚""yL>  پ~pQ\'3}g: C|LeANaZo*b11˛a.Gohp/4yFM ԫdkxx[u%9G;e8# 84 LWhyN_,q07~:t# ]_7%>ޭZ4)\m[N.N@o:tsy߬,Fa=@<9%3Χr)kGZҦw&ҜZf@?O[u,Qeo293 |>n S\ø4CV={Ү+b1EaƧ+ $*Fd[;B*ͩ}:~c&3|1%[>7X5a,Έc9Md^8ϯ0M4ik(Dv]ʤ f! IYaGOgB̘6T6Ii&1u0th͈؜MTPeq.@J)˼!i[.x.nضD]g+9ǫn=ȅTîiaCNuQM VXHQ3rIIntٵwzvl<݅Vۖۥ]trpv%C7Z.Zi?#Z|TCekf%c| mQ^3y,жuSzС=+oX,Nܞr@;k uk kJ)0U/.L85M)043.=QSXS E)n^v|sӛ'PNfH b_n:Bݰe5o7Ս8RNgeΦ3QUrI"gu>KtChe8,#\y$wʟ%j'C`Y$3)gy= U!vJz4 ,p ++!+b<eTϱm@8-*qZԲcqmd9Ҝ`O|ϲh'\qVe!t+'`QUdW.X 6,dbC6\.xM}z=vXϦMȲ+߶L-N7`ө`K2R0{|nՌ}PVl<W¥Q SnKV +.ˀ]8k4X-y`a@&5KmY=?`6I8z,(UxJb11.wG6I"4xiS{uL݄,B9ibi,.hRzYRsKW C/4qf5|CYdmFSN3%SuU `e={-.Ln vH:;:XЖ_[ BmYѦQPuizw$,Q%E^uS=Ƕ%+Cg^ /JYv4"G>Ke\BwvY;ṏMqt3ˆ}Ҵ@zœfl̞gmеVۑuw©\Kw%)ZFJ,Ke$iy^C{ ~Mq\F+NNNEEEBDEi Fw ;<&N@iHI x xR5]7ݫh\H'Xi my}%aƝo\6 k_;^OΆsEi \Ц))H&]^3Iq‡%Ju)5vn32gl af#BB[?l8'ğiCx\&A|$ ؗh?Ǝg[~A0cx3|O?W\}0Bm.4j9[QmkXho-s;ɐbү^/hwU2-́'f6&xPתvorH9mHi]Wl pV&&.ψ.ln'?sS[/o~˃T]wu[$LWսm&еVvەE;r*JkJ΢ґ'/ };tW2v'ٌ^*ԫ/>U0gu8-W62l! "ơ5xzGzp7w BNDzU;T:;;fZ<#]lWS<ϐgP}W & r!g䑞3E| +;dE; ̠Y~ulNpdQQNƪ=IurreRXYa}uf91+#f-*{yĸײ4ޞÀcdBul?#sCG62'YξEtnT',!um(/UI7o+L[*5ՙBlG_##%;oNZ=CjK /pps40'guKsfP_qLn+ oc6 4hKpH7Ȝ.w8jطk8I~V4{o/O,*`t̕#gDZٕve:tʁS9jadCzLl&Iίب7)ow"88ܾ+׾+`M;991K1BdZ⌗i}^w :\b|7}3Ĥ$J- Quv6q+&urp8[_K=<='hjl+4M)ʲu4dk)±T S"3nKxQòz;2.ߵ MsǽrAuJDM;&pCP@gP_8?iY.O֒A{",u9_I24*]ez\Fi .`Ty+mNc?/xҥn LV+z--W}؝66>es=%'ε5&b0N7'ITƶ/  6|EYy-s?ÏZQLհ{mm]?;{@q I"[3uw eWXа!V1Oє{crRLXh̰>Nk@֠ė. +3u=Cf$E6uӘ)?O+"%z'[ߘ;aCw0zbOmlʡZN8nͭG ؜otړ<w̒/қ/Px+: dҽN[dݟ<91SNx⷟6lY_B kʀ&b4>2Zv!&adEB׷N@H/U`Å_UENӔԖDIA߰.)>q&w'*4rN#Qڒ2LJTZ˷ (N]XSAVbP?Nqwe1\Xn }Mc~/)xoh4 u|dw<gAa=}7_:[}OK:˳nϼ~ĵ+{ٲݕ,~Lc7n]9Rt4MߧYu(GNsυtyf^ֳ .휭ܳ;Є{D@$nk3 epP7|i?{{>{d_?u(ȝdMTrFhԳb򘔾(Mׅj k?0cuE^'sA.,Uyj@?'R#U~fɑ$#)),Ur`2)I! v2"Y!U:%?&rM_J -;SZ"Y|-ҫM2%$ض#)Z"@>AX۞08deCW>^nݓsWՕ7@ 3UYHde$XH}7󀆢;O!R%__Iau7un]'Gzm`OvU:(l9ʴ>vUtWi㽷II㮜X[vI;0iz]Õ[n`4{Eu@ۖG PXWho!(췝XP_1|箚ŧӜgwz]CQ/. VN4'^̈ \ Ac7n4] 9VkY󫧇;˜o.{GZvWqKCkAi.V_y) cwgtEi FE[g)0 c!a 3rI`bbYO( ^ul}7'|t^ZvzkAYݘ 5yluTeAeE*c'ybxyt2f_.gkfxU0<|;ͮtEi [Z'[}^2X3~wKH6eirt57N:&1<ʳ/V˩Ne fYSoO :P0;7& ћ7Zttq m޾QblnήG j/<-`'KUH_zUϜ*jJSZev>!=%.^8T[N.N@o:0#^68f膿kNs[(3kIױnn \W?Szڟ޺6g\!Uf~r@v冞ؐS#kWQU[Ԣm% xzWXI(.>\uC]ڶt97eW(&xyvEuK G@_7%>ޭZ4)\ԡuhnʗoHD@8[:0×@H VVॷVWeƛ94F|ud7C^zNɍu4-:@-#(Goǥ.Æʊ{}3:Mo,iԃ:iI#"a26h6T[`|Z N4˛qG^:'"[ 55QB42wWS~S#G-iӉ; !($՘MpZ9Z@H95<DՍ H@jJ@""S3rIIn|ˊofe ;>(&ZP Yvs^.Jk6dRJYm PxޜM]Qv2-([3+NuRiN 4o;ͨxЇSY6 IDAT?jQU~NLh]`4( src2h P efD%:1,eqđ|J 4nXrζs{ 0-hdO#Q+ɨ@.?FnakN Lέc %HXa2IV$IwXE7[Aɻ)]&&Y@Vq9{E`\[b,ڰ #q\+n Aӟޙ"o^. ~<j'}27 +RL~!_m9_h;v$}^ VB;45ȧCt'WOhoL5ŵ8BQT$$:%gF%A^fIVF()ĈvC#+ٷ-x'/sol?Wk_TmAVtsÏ{.1c:3Ҵ@9coo;" )ZekG@J$v1-Ք֕p@0q)Y^C=tԜ6}ۋz1:mK3 khpuvtBM 8װcL@]U>bcP\W_JWx0Z PJ]3ڌ&[[rζ v؈WR;܋W/Z~-`tFuǪui?K&֙ @6_kKU`d&y:>>6M ;l1*hQlGLBeY <#.1dr\{9= 0Мpfj o^Ex{G/{@ o=B @ yPX@ @<@ xAs@ Gz\bf^)k=u jl6zi<@EVd2e  i9 QX@ =V-)*Y gw'z<@<"`4AjJ$%',$I(" ƍ63р ]#DfccY7tB}{ I:QB@ ?IT*N\6wloRI1=zh4 I-r_ Zقq~+ǻ|'@ 6(:n@&а{ 1~toy4ɼ$,⌮(asތ=I D3pNtdF՘Ma}&2kxƩ4 @ !h4?֣I8$WS~S#G-iӉ$xpt5h@ zec5`{=1@ +h=@<'{J!hc1--7ss &( D?OxhHkEQ^-ӓpUa}Lv37W" W!rsscbc@  UX2,,LuA *T* a;@ @wZo{y{6%Xc|"=C^c"LфtzgOl=Gհ{mm$c=YK퉠JT׽\YTJhvWN8Jshw[)h;u*y.M#{aE{gOD/ӵm&Q-u>6:C-wDehl?t3z}?`/|٤0 ;SZuYVC&aJT?4kli{e !R#PwQ#ٔӤx^ N}6{۞4ʙlNwhG:ൕM9(H`?g"_#&"KWU^'sA.,Uyj@gYwr6 zaA%R%'(u&ܥ2]XaO{]LUoO)~%XjdsWp.;Uƛ"r; _ۑH`*]?n9mW yrk,uGٍ^Yo~33|=qq1!KP; Ț 3dՍ(ͩg 1)}Q"$![lk k?0+r*%>c ;Ll:5R[c(UPXТspKkyY$ SVT nuZmQZG{VmkRֶ֪ڡ2E Mf@ !Z^޽sλs]#K|w |+YHi $ֶtAy"ݶ79zK[Y3BVNLN|5ꍴ{)_EP-!1Gٗk~S[pBc{o60bߜS]c{X@``.8Wgft7ʬ͈mֻ➲܇mG n>7j#lH^T$eyQl퐇&HhvN:Srgg,ܙQ:O#3Ś2$'ތгknֺ=* O"OMכ+D_.%dќc /%fkͯ-Lػabp]!!Z(Y1?I_@$m!p~<8#ܟ?K >ڞ_(౹qOĦr0OLLT#UW?#Oh*&Y.gRJJ~%9u`37`O'kfG8Ѹ|t8VK_Drv992a٫oYD"P1R fXEB1fLJ qJ&Z.q#\PGiq3FͶwWeK3$讵X LS{ \O㥅ج|Joj{IV_+ 뢻͉1o;yz/эbƐ/=]ua6t`ZiD~VoFdZ;㡡An'?:;nҽ\8`ݦo?9}N`tj&}2fkϦ$}7_TXA] -*rrಸ+ULwjo\}ۙ@ =;<13 Γit;v`eft8EJm~c9&uՕnHSNjs0. Nzopb^@[\ʢ=i'~M(^!La RPꕁ(9 EǏq_х@ax1)*;+3FM@U(53ƪEA"\A?AB ҙ5\E4#=LTq3r߀U<gjP<΍SB\@ʥ(-OC;?5FsKɍj;G3CY0^sgeB"f`ѭɊ2U7' ( b/ 8ݕ3$7<=pgi7k`fARj6d-E4 }HnڹG{qA+ &}͖6iIZ2P8юv5ubi͒chIbrte>Ʃ4wML E4ߐ{0)gň!GijVғ_ 7mL ;̷:IǕRP!Vw cL[} 죡VUyUpbcꟕvtR 5-58n&XP]G7}Qvbz}έCoghlȰ$.nֈ:f6 -VO2Cxq5i WQ8U+-_LW}W_FDm<W,gZn^(փM4f08 y!B@px:Lp0/aeѱ&5ϣΌǥ[w\K \-+4*M`&N%R l:')\OڢFyKi7ʜܸyM9}?]دbIyEړ3>^Iu9ܹne&n);63މ;G8O觛Qd)̛ RgF$[un|Sv۽ i_'8uG]#~ʜT oy^3͢ 8QhcV]l7aڀ󀼠n+,x鄊1c|ihnqh_,grz5wԬ鎦d.9M{p6?Z v ԏت7bha.3py.wАAWl*xQkA7:ghuU@!N"ruMaϺtZ0p,cg;o֭}+ eL'72It710ί5 L=q7wGLf7$0LJ% Y,DgA\.l7G ^S"0oZې]#W֖8+`xڂap^p^H vG 'N{FK"ϯ-y-?cbְ!^_:ڷ@ ;e~B$\"@ <)h@ F ~tp m$YOS<Jh5U{<^z {2|xiUz#_]m-WaL*ȪW9yP~F!v(ZzJey+~WkZ3$OW'sHhC8^˟;O)r&??7\x;]ܱ"ih,@h߯u$ ՞.7&xPXۅmī7kLjBxPQQE[I@igUaZj@%h_VHMCZ;Sr>p=Iki;ϫ _mxŽʋ_+`SxV`8{#3[*WfH+ e{+<axVfi܈ Hu<8=5l͗Gq¯[4mG(ӿ2;vȌ;n}9EJu_!/kz翽EDѮSP˹.]eo^kkVR&yjn TEEǜ 8;ꔭ*&˾9K8/MC<,?<%X? ~L_N=LV딫[Rxءܮ%mxo^Z0/ON7k@q+/;µaM: [fzzu6?KRFԩHxꌐXylҢ6 WJĵ(OrEۆ4x2({ iK&ܷ9+&nO>!vl[0ːu"z-46rlghy>Ftl= Evǡ:K0VfmFlNf6۾؛㏯5;Y8?QB s6 w7AIIgZ$/K*d ^ȏWUnO OQǤMxaѝJ r(;qAIg  !=,p~`d_jIHR.'g_b^(֔$>f]sjn ϢX3%tBGt ME$%LJIӯ$gܢI-gg Gt_Qm ,Y LMfv.u?1H+E+r/ܒ-›5 LIqq7-';9>}6fFDkh;` }V ďp??;;uKmד1T'H(N,v_qm*(66oD?16n~d݁ 9@ 4KN,'lfİʌS.U% [{D ǩuA,,ƥ% @xt̯7mncVĜ@S PJӲ5v96 EZ$jŮ>4 lSLF$'AQd:W\^<Y2 附K_ ^$e7ƃ*Y}#!#}uӶKhK]Vq3+*L#L)'Y ՜J;X5PHn HX6c| n*E2(}9L]9,HF.>IxmjgW]L~ũNlW غAѥHixN#<ĝI^{9ޤu E?x6 iQ6k АcdTZ%@"֐wl9^#*V0{:nḎk{!aKRK+[B&u?e,gtѪ{(eqbhjk)wc;vb et1FU#2/&+cͅo73d;iBGٮ#6l(N^YY 5>@olv@@303 Γit;v블(9 EǏq_х*NR}lVHҊ1eQB";a}zIH(8ijs$}w(*͆M䈥~QdlmSr1%61ғaZ9#8 py)UiƗjrxk_ O?|jxPW%Sq5TƋ~!.LPeW>X, zׯCCRcd*-R IK)FBTgUW[`i* [(@5\۠"I F-gݿY.qo3Feذɺ9ͩʴw|D EYBM J~U!ش͈86N)TS<[U[4~~w1lTY(,Ŕ$TC(qm^`Xqg.ɪrmСZiQ!j#ቺ;5bو[uroZIJ׍[k@.^Iu9ܹnKhv)9Lp0/aeѱ&Y0@L{tEoc(Iq{ԋ&zؔqp]+I[s0 LҬX. hY-`/P1>`qKi7Ȳ)E')\$n[ZWiTPbM?+2'UpBq[WL9mt5meסEǐZ) Բpi*4=p\cRHwJ%tp6n qeV후3't}hNrewC>!Γ6M-zKrH 1,kAQ;eB"/鍗T`b;p^U>Q+tߠ:t`cZA^e'pTAI|6 E*⢢=2Zjc\DR*qڦחQyym?htVjn=0uR;{g!qg)+bsz@yhXwӎ3BQҊmfóT3J΀#<hӿ $?/$ AA$IhdhX;?sw5zLN3YGd2GkX꒼ۯl=@ :Ru`S7JoGU"0g(Cu kLv <$|A  {m< @ ǻU;jS>ί4||`_S֝)Ttr@ IcX G'quOޜyU^#7.H}_vwa) 4s¸~{Zo6@Dng׆]+@ / 4 f,:Q~v]yS3f;rT ǰ/gjtR;r} a9{Y??smC sA#!`NfG  Z Iw,ݽ[>y٨mX$R?1zt#rJjEE][X=y@߾}wزk }@~ȯ]=JS {(kpPK Ur<8`vaRU {(vpw:eFܵ)?8cq<ʑ~ U}c;(IP=ʯGyUmn{Mvduf;:Gw,rŰK7vя{:wW'x~xV^QQ

c_wfQYQ֮c?@h߯u$ ՞.oTWΜߣ6Afiݡ.f7kV›5C$ƒOCy^9G?͞㲿}~{k,fJHKYV4ϺZr⭋?p3HqU>߁zieY۶PjϔQ4  neӠ")n.]"6VOcLRV䳫҇~k'Fё7vpxl|P,HQ$t'xcMeђ <ϸ&@{p7݃(,]yy X&#lݕnn-^ E(Hذ=;-F7fۧ~k<{_67x`3 g#SLhDZMs71L <6|eᄊqd*/^&Zq3eRUzz86\QN9Y_8B*%r۞EM?dk>eAy?V"pI M#ī 3[*WfH+ es#Sj% IDAT\aѶ!a6? #W'xaq<{j$ډ3ur~^Bwr_\=|y,/Mmξyء#2\Xuw^!ɼ;D@/tK ;zmnˀhMMd_E x{ hO{:q[PP_%r}x+3T'H(N,껛ύ$3[-% jj^%[{G $4;'O˝6jclM1Cj48nfR83h;ىRsW41^ZxWDfa|TɃ3R5G~hȱT{LJV<YJ0,M)[Bs4TvF(V-#xun==0-B֐?bVٳ,i&Q@-UQ8%Eq-[LW^̸TUU"PTIkhॢ}_$zauSV>#5Di`:};K:x/-iVEa-?k]Br- /w^n<`}vca89+bߜWسQ}zs*J,,PJӲ5vYavQ](TqJa%#~H&uU}~ 9r R$)+־1eCz&2ۂ6 ~1k($ײ I֖(] 8n<#'*.jďYT(H\tjm4%[ym:m7Ҽ]r={p_T˽_= y6ƗOӳr+WTCm"3catt%Ӯh&;ʵQݹio4Y{eǡ4|yNW`t } RzGِ[Nٳgrj#{\9ޯ~H2}|J\({"s!=7h#蠬䇸~ƋWl ?9qL ۊ>_nmIuac*XH ȺĂ hVSLJ`2k}"!rjUkG[Y]{O )puk?P̬@ǡw>sJk[_,_2_yi @hS'W"745+Fie&B W*3bYN,"jv *n{6{7LՊrjhP͛v&SW8xk~Rf)?ܔ@JDi~UHn HX6YF7Wb`]3Ooݑ!k}c϶(%7 %TZB 0PziԃO?st&T$K2+mX=%AҖ{Y<*G|g우%n z`$"VJftzFvyԉ;FxsI[C~384*f09عT 8d~ԋ]DibQZ_rMo5KW@RKq@mc׈̞<*@F1cȗZc`6t`}C@cljʠx0` [Ee7??˦@-Pڵlp+;ԭ%֪xR-H Eî ʾc|~9ӀsKb+-tD_\"dvmjD|q҄F]wLuƝpPX$A Og9`g'cvlLW^ۇxQH>ΏVHҊ1J7A{|fLkۃ.}BL(s4Ve3uq[V+s60>q{RyvPCeo֊9V&˫KC,I571>`}{;zA>y6EGI8|Oyz8w@ gxMsm"Fbe1aTiPH 368l̢pru{G]m0R%5UVtO*AhH\VRlXAB2aYl {K!^%Lh HQVkhЀ *Rj$6ݝ){AKzx`LsZL'PX}П$y ]IJȓ Dýu *Rj$N609==WWD#Jyrz ޸aʲEaA,6WNs1Mg̻U]rf%;^wM{nZ~$P&k m) pS8,H#*%E6MkI;5b6U'wHpi_ C8Zb0Zȵ h~Ac PkZų,S4LܡEmi%oPŕwr?fb@GˆcͶ2m*#_-9hKpq嵘E0}͖/އ,q쬺;W~X? $4(QBw&Av<E$M+l(t؍‘Ƙ`J=\[O ?@aE$}k]iq]Kl`HJ}'8Yg}}UAvթ~gtP55=>Y|.n]Avu˂Z";A p{\e%3&}cߞ(OON:A俧} X:žӏsnX~;{EۀFvŭݭ9]?6P-ӗ 4[0LJ% Y,J}cA  r9IQS^X9Lp0/aeѱ&Y0(3#q=]"b}ʂQd)YkkË%(>w7O9) Ul6iHdL{u'2rpʻ-(VX cААq& ]~׊A/gF$[un|Sv۽N.ʈmp7ʼn#zq+ %޿u7{֫B5게V`c7|#DJĪo#czxe?)v=#{[Fa5!e5 v{*q0u8/*jWhkyl?<oP_r|BѼPqQQDϞrLnz;DR*q~N@ ƭTO//yр3?1_jH?cO ?}Jwgī+:MYӓ6 J+AתOBP_kj|(z$ AA$Ih9;=e NgXm)?:d2cָ%y_z@E>bgīʫ:Ru`S7JoGؿWM y:0=vA KܗWWMuUŻO@Z 5zWM y:1kfQX@ ل&b ^en=zz@ @t>h'@ U`N'z@ ⩀pkWGϯ?o1$ pPX@ / 57Od4$FT{bխU>@ n@P=c{V3CTf/iu\@ /vrXfEvǡ:K0VfhF @;a}}fVVCCCr$oFo6`ii3ҋ;o\tV1yS١ {xY ICq=A$D̬,gaaeA "(+++((4HeF,݉E\cqb2AE1=@DβAD 99>oY+L&333AAAϦEalݎmlZF Dl= 01qptp8[putWiϺQ@ts;= Zp<=xJ> @ ٷw.y _{/tv$UEq#&9t^^JԅxC~dA -@@ 08]"'l=ݷ\פ.X&dt^FT_~ɝsl_G-@ 6F3:osc*x9qmmG,;/'lbᨾCFPiI; >\_wMlgõ]t4[FjSuq l.t@ ^0 (tC!r9F (wZXչoZ[&Zʵk)WM9I-8=r/z0{mF۩vV:poky:&}dꊼ3~SŕvAߤU_v~Ŋs5MQ8M?4uߩ.7*mbe&rJ+M.pN~eŵo{BcgT }./uv(}>e7JčWv@ ^+h4Jᘛݸ~Ch?R733R4ZåddT҄ƍt3{̲SvU:%YrYGf<e#/ BPwH:g~8ٿ+)) 66(LW֪s<2\A#{ZZ~=߶ST;lZIZRB)B+"(DEEQ)""׫"( ( qPv}sRڴY's?&M'i%MIHoj2{k_Rwyw8̛{TIekΡ#'psY3{dG-6,Kttm\W_a@͜8yU+o2] QjF*:[YoL}>|Pp Cj@h[>uÍl [}ͪѾΗHw9F2.}Wܟ #0v=@}+((7{?9!!!GiTQ؜ QFcTtn¢뵌T͛"&GD)̅0SWOP_tGkr'-ozE?S游ǧ=.5UkNlz^hTX DQ4LsV[VH5}}jhD.t94:KIy$7t&-#Em_Qp,\P#GXnhу'ܳDdYGO*\  4("F"Ɩ_,*:p`YYc19+^׺FDDdffƆ=f̘%K̟??%%_~_|ӏ7.9=5111feeEGG:'qM6͛ٳ,[,.. 7L6d2p*?sLFFFjf!Ա@b2"##Ϝ9X lLy/ԌG[lٶmgxNO,jMSRB46QQQMSRB̙JaaaRRҿ~ѳuר(@ sQ4iҖ[: p nKwoOEiK(j~T*(+AθʸɎbA{N|/KJLHJm~)tTULt1 NZμuX…N]v۞sڳ)8i[#oa+ pvy?Rhx׊wض]=% 7%Wf rNѺǓV~n>^77l€i{=FWgGָc_L|FNny/6s\ m&ܹp8N>_E` NMݫ"R9h@NIF"&ܪt{u{&~="'^EtGz~8urrp~;cڜ=+oH ƱcfN RZNS[,Er…7mw- ! R%-vn+<^h?fn%җ..-LAbqF{tÊZk/hH믲ĮW_7DB`cc1\=M@*!bTȣ9%_##Ƙc\ɵ|A>+:ĉ&*b KgPV`ĜUD"8,X*VpuMB.?.ҜG|:UisV*: e>㰲 "ϑc\qeoc7͹}sSbD\*yş+}*e/\9אQ{Id1 d{V(s.gmIW:R˥ii嚍1fZ~EE11Z=EZMX\\N[OWw;\ܻ^<% cbbK.Z.Wu%SŪzkږ3GOԶQ_n[@C"f1F[O~EQAVFRg &B(di&}VO2Y0oDZk{ k5-6BQ+|%œ9s>3fs[,Qthu*yׄ&^%5Ij[4 5i 175ZCAK{E9sBZg i*UzkBѤ\L1}>[A,vts}L&ԩSnݪjz|眈.9c/AWČG ?)|줊 Yb0Zuk;y넄?iJEs,em}6z(r"jWi Ewß;R$n7eY,icLH+ՠ51xjpubdj JJ;h4"Vg. Ewr"ιBDQ,3F{NZ ^o2-F']XrTC{m~7ʘ UP寈1{vURdd]pQ\oWQ!ht:"ݧϭZj46؟ Ƥ9q(oOkdZ JlX>3K{9˨)c$} b9`Ԏ&ET湆Ϙ@hZ[תj}sFgks9=n؀8q&[Aڵ[$?Is XѝO^+mC^:9Dsֽcz8y[_>[_Ӟ/eEK R7'|YVs]}{U./뱆ko\~H9R 8Ɋf!HBYs31^X^2BpKsesdž}5))gΚ1⼼bNrUh ŲgXN.uuh\X_5ݺKEcII]" ZsYyMRX=FR١C.W+Zm\l\BrB@ZA蘝]Eb<}C-5D!ejf955UVq@bB"uŘBVTr*Jgfee_yeiii@bk ` MjW5e`2Ro{KZ!"ƘJbDFf:@YBz"*~-U8{P\pqN W p:7n=@@/ƘPl rRǭ )519kDձcjEEE;wLNNNo2ԱѸk+;w&H (;2=IӦz.Աb8~ؕ;p 29992""ԁȈ\RRRMp,ECEFB~jkP!q@} ^Beܵ/;@MO第YٽNy"GUU.r[>+}ZPc|̸>]gucvFDH љsojdZ/\g?voW/UwOn&|&|:wթEd ~߭}H扗~7O0i~{߮]<3nn{>[f*ŋ{:iӥf21"&◽. Ox5/@@n;rq*"U57[`\boOώW3uR1(ߺC"uڷiZqˑ5Y4U֠ܝ`7Rljvtú'L=#Rʝ:*'O{Յ8f7H6Sk$X/zkxߥRU\ݮt.f,{cXKM啨#JDj~bUJXg:Nj.Y\[i:u\8?^=uoI#+^ZǪ-F. [sR6qt#RED#yleK[mjҾiuȬ#/^{ ?w)+9.yޓ(qq$=]l6]ҡ}V' x`+_j+;O>0]vdK-%?!qxDfEE4U Z>9.}k6uG bH6|R6oޣ7=Fյ'xqew_零Ţ- Wكv-[(#-'e sּko9nc%]nȝ9FIΫY/ L1Z2x =c4Dg}RET®^}60~82bt:w pСV[TЎl7Rxgs{p6{izû,ô CDo=@CZ@PzA8NZ슴"11d2bGnh2j n0 h4`8 Z@t: ^?  !{Hz !{>X, ai=@CZ=ai=@CZ=ai=@CZ=ai=@i&EZfZ}y zpR9'aĕwI^ See the COPYING in the root folder for these images source-highlight-ide-1.0/doc/source-highlight-ide.qhcp0000644000175000017500000000035011312456337022665 0ustar bettinibettini source-highlight-ide.qch source-highlight-ide-1.0/doc/Makefile-doc.mk0000644000175000017500000000135011312456337020616 0ustar bettinibettini# Makefile for creating the documentation # only needed if you're a developer of source-highlight-ide. # # Copyright (C) 2009 Lorenzo Bettini # See COPYING file that comes with this distribution # In order to build the documentation you need the qt tools # qdoc3, qhelpgenerator and qcollectiongenerator; these should # be installed with your qt installation. COLLECTIONGENERATOR = qcollectiongenerator DOXYGEN = doxygen Doxygen.log: Doxyfile source-highlight-ide-doc.h source-highlight-ide.qhcp $(DOXYGEN) cp -f ./source-highlight-ide.qhcp ./share/doc/source-highlight-ide/html/ cd ./share/doc/source-highlight-ide/html/ && $(COLLECTIONGENERATOR) ./source-highlight-ide.qhcp -o ./source-highlight-ide.qhc source-highlight-ide-1.0/doc/doc.pro0000644000175000017500000000104011312456337017270 0ustar bettinibettiniinclude(images/images.pro) HTMLDIR=$$PWD/share/doc/source-highlight-ide/html html_docs.files = $$HTMLDIR/* html_docs.CONFIG += no_check_exist !macx { html_docs.path = /share/doc/source-highlight-ide/html } macx { DOC_DIR = $${OUT_PWD}/bin/source-highlight-ide.app/Contents/Resources/doc cp_docs.commands = mkdir -p $${DOC_DIR} ; $${QMAKE_COPY} $${HTMLDIR}/* } QMAKE_EXTRA_TARGETS += html_docs INSTALLS += html_docs OTHER_FILES = Doxyfile \ source-highlight-ide-doc.h \ Makefile-doc.mk \ source-highlight-ide.qhcp source-highlight-ide-1.0/doc/source-highlight-ide-doc.h0000644000175000017500000001574111346256130022732 0ustar bettinibettini/* -*- mode: C++ ; c-file-style: "stroustrup" -*- ***************************** * Source-Highlight-Ide * Copyright (C) 2007-2009 Lorenzo Bettini * * This library is free software; you can redistribute it and/or * modify it under the terms of the Qwt License, Version 1.0 *****************************************************************************/ /* This file contains NO source code, just some documentation for doxygen to parse. */ /*! \mainpage SourceHighlightIDE - an IDE for GNU Source-Highlight Sourcehighlightide is an IDE for GNU Source-highlight, http://www.gnu.org/software/src-highlite, (given a source file, produces a document with syntax highlighting); in particular, it is useful when you have to develop a new language definition file for source-highlight (Source-highlight reads source language specifications dynamically, thus it can be easily extended (without recompiling the sources) for handling new languages), modify an existing one, and, most importantly, debug a language definition file. \image html source-highlight-ide.png Source-Highlight-Ide main window \section homepage Project page The official project page is hosted at http://srchighliteide.sourceforge.net/ \section license License Source-Highlight-Ide is distributed under the terms of the \ref gpllicence. \section installation Installation To build it I suggest to create a separate directory, e.g., build cd there and run \code qmake ../source-highlight-ide.pro make \endcode Remember that you must have already installed the source-highlight-qt library. The qmake project of Source-Highlight-Ide uses pkg-config, http://pkg-config.freedesktop.org (if this tool is installed in your system), to detect the library Source-Highlight-Qt (and implicitly also the GNU Source-Highlight library). If you installed that in a standard place (e.g., /usr or in a system directory where ldconfig and pkg_config find it) then this should be enough. Otherwise you must specify the directory where pkg_config can find the file source-highlight-qt4.pc and source-highlight.pc); note that source-highlight-qt4.pc will also contain the references to GNU Source-highlight library and headers, so you won't have to worry about that. for instance, if you installed source-higlight-qt library in ~/usr/local, then the .pc file will be in ~/usr/local/lib/pkgconfig and you'll need to use this directory for setting PKG_CONFIG_PATH, e.g., \code PKG_CONFIG_PATH=~/usr/local/lib/pkgconfig/ qmake ../qsource-highlight.pro make \endcode the executable binary will be created in the directory bin If pkg-config is not installed in your system, you'll have to specify the LIBS and INCLUDEPATH qmake variables manually, using the correct path, for instance: \code LIBS += -L~/usr/local/lib -lsource-highlight-qt4 INCLUDEPATH = ~/usr/local/include \endcode You can also specify the name of the libraries to use by using SOURCE_HIGHLIGHT_QT_LIB, SOURCE_HIGHLIGHT_LIB, and BOOST_REGEX for source-highlight-qt, source-highlight and boost regex (used by source-highlight), respectively. This is useful if pkg-config is not installed in your system. Once the building has sucessfully finished, you can install the files with the command make install; binaries will be installed into /bin and documentation (both html documentation and the one readable with qt assistant) into /share/doc/source-highlight-ide/html. You can customize the root of the installation directory with the environment variable INSTALL_ROOT; for instance, \code INSTALL_ROOT=$HOME/usr/local make install \endcode You might need to become root if you install in a path different from your home. \section sourcehighlightsettings Source-Highlight Settings Source-highlight library uses a path (called data dir) to search for language definition file, output format definition files, style files, etc. This path must be set correctly otherwise highlighting features will not work. In a standard installation this path should already be set appropriately. However, if you use a non standard installation of source-highlight, this path might not be set correctly (a symptom is when you get errors when trying to perform highlighting, or a message box shows up when you run Source-Highlight-Ide). You can set this path using the Settings -> Source-highlight Settings menu. This will bring a dialog where you can set the path (or choose it with the browse button); notice that the dialog also checks whether the currently selected path is a valid path for source-highlight. \image html settings-ok.png correct settings \image html settings-wrong.png wrong settings Tip: In order to be a valid path, it should contain at least lang.map file and .lang, .outlang, .style files. \section basic Basic Usage Source-Highlight-Ide can be used as an editor for Source-Highlight .lang definition files (left text edit); moreover, an example input file can be opened (right text edit, top) that will be used to produce html highlighted output (right text edit, bottom); the highlighted output can be seen both in source format (html) and in a preview format. This way, while writing the language definition file, it is also possible to check on-the-fly whether the output is the one expected. The highlighting can be performed by using the menu or the toolbar button: \image html highlight.png Source-Highlight-Ide is a MDI application, thus, several .lang definition files can be opened. \section debug Debug Although you can use Source-Highlight-Ide for testing a language definition file while you're editing it, the feature that can be most useful is the debugging mechanism. You start debugging by using the button "Debug", and then press "Step" for formatting element by element the parts of the input file that is to be formatted. You can interrupt the debugging by using the button "Stop". During debuggin, the debugging frame will appear under the lang definition file text editor ("Debugging Info"). The debugging steps at each matched regular expression and the one that was matched is shown in the debugger frame and the text editor of the language definition file will position in the corresponding line. In the "highlighted output" part you can check the pieces of the input file that are being formatted. \image html source-highlight-ide-debug.png Notice that if the language definition file includes another one, the editor window will open the included file containing the current matched regular expression. For instance, in the above screenshot, the editor is positioned on c_comment.lang since that is included in cpp.lang (which was the original language definition file we were debugging). However, when the debugging finishes, the original lang file will be shown in the text editor. */ /*! \page gpllicence GNU GPL Licence \verbinclude "COPYING" */ source-highlight-ide-1.0/doc/share/0000755000175000017500000000000011312456337017110 5ustar bettinibettinisource-highlight-ide-1.0/doc/share/doc/0000755000175000017500000000000011312456337017655 5ustar bettinibettinisource-highlight-ide-1.0/doc/share/doc/source-highlight-ide/0000755000175000017500000000000011346256134023661 5ustar bettinibettinisource-highlight-ide-1.0/doc/share/doc/source-highlight-ide/html/0000755000175000017500000000000011346256136024627 5ustar bettinibettinisource-highlight-ide-1.0/doc/share/doc/source-highlight-ide/html/index.qhp0000644000175000017500000000245011346256132026445 0ustar bettinibettini net.sf.srchighliteide doc doxygen

tab_r.gif tab_l.gif tab_b.gif tabs.css doxygen.png doxygen.css index.html source-highlight-ide.png settings-ok.png settings-wrong.png highlight.png source-highlight-ide-debug.png pages.html source-highlight-ide-doc_8h_source.html gpllicence.html graph_legend.png graph_legend.html files.html source-highlight-ide-1.0/doc/share/doc/source-highlight-ide/html/tab_l.gif0000644000175000017500000000130211346256132026367 0ustar bettinibettiniGIF89a ,薴ŝɯͻ, ,@P`H$!%CqVe2XJ(Ġ+3 2$ kv-u*"}|}|~q(" $f 'l(&&$r & !){rƲεҽͼиP?Bm A%V܈!k/Đ;^$Ɩ#Mf)f͇(WLK҄ I)L:eD Cx*4 Uh %A^NKbeXkx!2t !5t]$%X.i[]YfEkg`:zҞ;}jaaM׸c瞽vۺ8ȋ'?9積G_>yu_ߞ]zw߭Ǿm浏G~თ/>٫|W}v;source-highlight-ide-1.0/doc/share/doc/source-highlight-ide/html/index.html0000644000175000017500000002076511346256132026632 0ustar bettinibettini Source-Highlight-Ide User's Guide: SourceHighlightIDE - an IDE for GNU Source-Highlight

SourceHighlightIDE - an IDE for GNU Source-Highlight

1.0

Sourcehighlightide is an IDE for GNU Source-highlight, http://www.gnu.org/software/src-highlite, (given a source file, produces a document with syntax highlighting); in particular, it is useful when you have to develop a new language definition file for source-highlight (Source-highlight reads source language specifications dynamically, thus it can be easily extended (without recompiling the sources) for handling new languages), modify an existing one, and, most importantly, debug a language definition file.

source-highlight-ide.png

Source-Highlight-Ide main window

Project page

The official project page is hosted at http://srchighliteide.sourceforge.net/

License

Source-Highlight-Ide is distributed under the terms of the GNU GPL Licence.

Installation

To build it I suggest to create a separate directory, e.g., build cd there and run

qmake ../source-highlight-ide.pro
make

Remember that you must have already installed the source-highlight-qt library.

The qmake project of Source-Highlight-Ide uses pkg-config, http://pkg-config.freedesktop.org (if this tool is installed in your system), to detect the library Source-Highlight-Qt (and implicitly also the GNU Source-Highlight library).

If you installed that in a standard place (e.g., /usr or in a system directory where ldconfig and pkg_config find it) then this should be enough.

Otherwise you must specify the directory where pkg_config can find the file source-highlight-qt4.pc and source-highlight.pc); note that source-highlight-qt4.pc will also contain the references to GNU Source-highlight library and headers, so you won't have to worry about that.

for instance, if you installed source-higlight-qt library in ~/usr/local, then the .pc file will be in ~/usr/local/lib/pkgconfig and you'll need to use this directory for setting PKG_CONFIG_PATH, e.g.,

PKG_CONFIG_PATH=~/usr/local/lib/pkgconfig/ qmake ../qsource-highlight.pro
make

the executable binary will be created in the directory bin

If pkg-config is not installed in your system, you'll have to specify the LIBS and INCLUDEPATH qmake variables manually, using the correct path, for instance:

LIBS += -L~/usr/local/lib -lsource-highlight-qt4
INCLUDEPATH = ~/usr/local/include

You can also specify the name of the libraries to use by using SOURCE_HIGHLIGHT_QT_LIB, SOURCE_HIGHLIGHT_LIB, and BOOST_REGEX for source-highlight-qt, source-highlight and boost regex (used by source-highlight), respectively. This is useful if pkg-config is not installed in your system.

Once the building has sucessfully finished, you can install the files with the command make install; binaries will be installed into /bin and documentation (both html documentation and the one readable with qt assistant) into /share/doc/source-highlight-ide/html.

You can customize the root of the installation directory with the environment variable INSTALL_ROOT; for instance,

INSTALL_ROOT=$HOME/usr/local make install

You might need to become root if you install in a path different from your home.

Source-Highlight Settings

Source-highlight library uses a path (called data dir) to search for language definition file, output format definition files, style files, etc. This path must be set correctly otherwise highlighting features will not work. In a standard installation this path should already be set appropriately. However, if you use a non standard installation of source-highlight, this path might not be set correctly (a symptom is when you get errors when trying to perform highlighting, or a message box shows up when you run Source-Highlight-Ide).

You can set this path using the Settings -> Source-highlight Settings menu. This will bring a dialog where you can set the path (or choose it with the browse button); notice that the dialog also checks whether the currently selected path is a valid path for source-highlight.

settings-ok.png

correct settings

settings-wrong.png

wrong settings

Tip:

In order to be a valid path, it should contain at least lang.map file and .lang, .outlang, .style files.

Basic Usage

Source-Highlight-Ide can be used as an editor for Source-Highlight .lang definition files (left text edit); moreover, an example input file can be opened (right text edit, top) that will be used to produce html highlighted output (right text edit, bottom); the highlighted output can be seen both in source format (html) and in a preview format.

This way, while writing the language definition file, it is also possible to check on-the-fly whether the output is the one expected. The highlighting can be performed by using the menu or the toolbar button:

highlight.png

Source-Highlight-Ide is a MDI application, thus, several .lang definition files can be opened.

Debug

Although you can use Source-Highlight-Ide for testing a language definition file while you're editing it, the feature that can be most useful is the debugging mechanism.

You start debugging by using the button "Debug", and then press "Step" for formatting element by element the parts of the input file that is to be formatted. You can interrupt the debugging by using the button "Stop".

During debuggin, the debugging frame will appear under the lang definition file text editor ("Debugging Info").

The debugging steps at each matched regular expression and the one that was matched is shown in the debugger frame and the text editor of the language definition file will position in the corresponding line. In the "highlighted output" part you can check the pieces of the input file that are being formatted.

source-highlight-ide-debug.png

Notice that if the language definition file includes another one, the editor window will open the included file containing the current matched regular expression. For instance, in the above screenshot, the editor is positioned on c_comment.lang since that is included in cpp.lang (which was the original language definition file we were debugging). However, when the debugging finishes, the original lang file will be shown in the text editor.


Generated on Thu Mar 11 22:10:50 2010 for Source-Highlight-Ide User's Guide by  doxygen 1.6.1
source-highlight-ide-1.0/doc/share/doc/source-highlight-ide/html/gpllicence.html0000644000175000017500000010711611346256132027624 0ustar bettinibettini Source-Highlight-Ide User's Guide: GNU GPL Licence

GNU GPL Licence

                    GNU GENERAL PUBLIC LICENSE
                       Version 3, 29 June 2007

 Copyright (C) 2007 Free Software Foundation, Inc. <http://fsf.org/>
 Everyone is permitted to copy and distribute verbatim copies
 of this license document, but changing it is not allowed.

                            Preamble

  The GNU General Public License is a free, copyleft license for
software and other kinds of works.

  The licenses for most software and other practical works are designed
to take away your freedom to share and change the works.  By contrast,
the GNU General Public License is intended to guarantee your freedom to
share and change all versions of a program--to make sure it remains free
software for all its users.  We, the Free Software Foundation, use the
GNU General Public License for most of our software; it applies also to
any other work released this way by its authors.  You can apply it to
your programs, too.

  When we speak of free software, we are referring to freedom, not
price.  Our General Public Licenses are designed to make sure that you
have the freedom to distribute copies of free software (and charge for
them if you wish), that you receive source code or can get it if you
want it, that you can change the software or use pieces of it in new
free programs, and that you know you can do these things.

  To protect your rights, we need to prevent others from denying you
these rights or asking you to surrender the rights.  Therefore, you have
certain responsibilities if you distribute copies of the software, or if
you modify it: responsibilities to respect the freedom of others.

  For example, if you distribute copies of such a program, whether
gratis or for a fee, you must pass on to the recipients the same
freedoms that you received.  You must make sure that they, too, receive
or can get the source code.  And you must show them these terms so they
know their rights.

  Developers that use the GNU GPL protect your rights with two steps:
(1) assert copyright on the software, and (2) offer you this License
giving you legal permission to copy, distribute and/or modify it.

  For the developers' and authors' protection, the GPL clearly explains
that there is no warranty for this free software.  For both users' and
authors' sake, the GPL requires that modified versions be marked as
changed, so that their problems will not be attributed erroneously to
authors of previous versions.

  Some devices are designed to deny users access to install or run
modified versions of the software inside them, although the manufacturer
can do so.  This is fundamentally incompatible with the aim of
protecting users' freedom to change the software.  The systematic
pattern of such abuse occurs in the area of products for individuals to
use, which is precisely where it is most unacceptable.  Therefore, we
have designed this version of the GPL to prohibit the practice for those
products.  If such problems arise substantially in other domains, we
stand ready to extend this provision to those domains in future versions
of the GPL, as needed to protect the freedom of users.

  Finally, every program is threatened constantly by software patents.
States should not allow patents to restrict development and use of
software on general-purpose computers, but in those that do, we wish to
avoid the special danger that patents applied to a free program could
make it effectively proprietary.  To prevent this, the GPL assures that
patents cannot be used to render the program non-free.

  The precise terms and conditions for copying, distribution and
modification follow.

                       TERMS AND CONDITIONS

  0. Definitions.

  "This License" refers to version 3 of the GNU General Public License.

  "Copyright" also means copyright-like laws that apply to other kinds of
works, such as semiconductor masks.

  "The Program" refers to any copyrightable work licensed under this
License.  Each licensee is addressed as "you".  "Licensees" and
"recipients" may be individuals or organizations.

  To "modify" a work means to copy from or adapt all or part of the work
in a fashion requiring copyright permission, other than the making of an
exact copy.  The resulting work is called a "modified version" of the
earlier work or a work "based on" the earlier work.

  A "covered work" means either the unmodified Program or a work based
on the Program.

  To "propagate" a work means to do anything with it that, without
permission, would make you directly or secondarily liable for
infringement under applicable copyright law, except executing it on a
computer or modifying a private copy.  Propagation includes copying,
distribution (with or without modification), making available to the
public, and in some countries other activities as well.

  To "convey" a work means any kind of propagation that enables other
parties to make or receive copies.  Mere interaction with a user through
a computer network, with no transfer of a copy, is not conveying.

  An interactive user interface displays "Appropriate Legal Notices"
to the extent that it includes a convenient and prominently visible
feature that (1) displays an appropriate copyright notice, and (2)
tells the user that there is no warranty for the work (except to the
extent that warranties are provided), that licensees may convey the
work under this License, and how to view a copy of this License.  If
the interface presents a list of user commands or options, such as a
menu, a prominent item in the list meets this criterion.

  1. Source Code.

  The "source code" for a work means the preferred form of the work
for making modifications to it.  "Object code" means any non-source
form of a work.

  A "Standard Interface" means an interface that either is an official
standard defined by a recognized standards body, or, in the case of
interfaces specified for a particular programming language, one that
is widely used among developers working in that language.

  The "System Libraries" of an executable work include anything, other
than the work as a whole, that (a) is included in the normal form of
packaging a Major Component, but which is not part of that Major
Component, and (b) serves only to enable use of the work with that
Major Component, or to implement a Standard Interface for which an
implementation is available to the public in source code form.  A
"Major Component", in this context, means a major essential component
(kernel, window system, and so on) of the specific operating system
(if any) on which the executable work runs, or a compiler used to
produce the work, or an object code interpreter used to run it.

  The "Corresponding Source" for a work in object code form means all
the source code needed to generate, install, and (for an executable
work) run the object code and to modify the work, including scripts to
control those activities.  However, it does not include the work's
System Libraries, or general-purpose tools or generally available free
programs which are used unmodified in performing those activities but
which are not part of the work.  For example, Corresponding Source
includes interface definition files associated with source files for
the work, and the source code for shared libraries and dynamically
linked subprograms that the work is specifically designed to require,
such as by intimate data communication or control flow between those
subprograms and other parts of the work.

  The Corresponding Source need not include anything that users
can regenerate automatically from other parts of the Corresponding
Source.

  The Corresponding Source for a work in source code form is that
same work.

  2. Basic Permissions.

  All rights granted under this License are granted for the term of
copyright on the Program, and are irrevocable provided the stated
conditions are met.  This License explicitly affirms your unlimited
permission to run the unmodified Program.  The output from running a
covered work is covered by this License only if the output, given its
content, constitutes a covered work.  This License acknowledges your
rights of fair use or other equivalent, as provided by copyright law.

  You may make, run and propagate covered works that you do not
convey, without conditions so long as your license otherwise remains
in force.  You may convey covered works to others for the sole purpose
of having them make modifications exclusively for you, or provide you
with facilities for running those works, provided that you comply with
the terms of this License in conveying all material for which you do
not control copyright.  Those thus making or running the covered works
for you must do so exclusively on your behalf, under your direction
and control, on terms that prohibit them from making any copies of
your copyrighted material outside their relationship with you.

  Conveying under any other circumstances is permitted solely under
the conditions stated below.  Sublicensing is not allowed; section 10
makes it unnecessary.

  3. Protecting Users' Legal Rights From Anti-Circumvention Law.

  No covered work shall be deemed part of an effective technological
measure under any applicable law fulfilling obligations under article
11 of the WIPO copyright treaty adopted on 20 December 1996, or
similar laws prohibiting or restricting circumvention of such
measures.

  When you convey a covered work, you waive any legal power to forbid
circumvention of technological measures to the extent such circumvention
is effected by exercising rights under this License with respect to
the covered work, and you disclaim any intention to limit operation or
modification of the work as a means of enforcing, against the work's
users, your or third parties' legal rights to forbid circumvention of
technological measures.

  4. Conveying Verbatim Copies.

  You may convey verbatim copies of the Program's source code as you
receive it, in any medium, provided that you conspicuously and
appropriately publish on each copy an appropriate copyright notice;
keep intact all notices stating that this License and any
non-permissive terms added in accord with section 7 apply to the code;
keep intact all notices of the absence of any warranty; and give all
recipients a copy of this License along with the Program.

  You may charge any price or no price for each copy that you convey,
and you may offer support or warranty protection for a fee.

  5. Conveying Modified Source Versions.

  You may convey a work based on the Program, or the modifications to
produce it from the Program, in the form of source code under the
terms of section 4, provided that you also meet all of these conditions:

    a) The work must carry prominent notices stating that you modified
    it, and giving a relevant date.

    b) The work must carry prominent notices stating that it is
    released under this License and any conditions added under section
    7.  This requirement modifies the requirement in section 4 to
    "keep intact all notices".

    c) You must license the entire work, as a whole, under this
    License to anyone who comes into possession of a copy.  This
    License will therefore apply, along with any applicable section 7
    additional terms, to the whole of the work, and all its parts,
    regardless of how they are packaged.  This License gives no
    permission to license the work in any other way, but it does not
    invalidate such permission if you have separately received it.

    d) If the work has interactive user interfaces, each must display
    Appropriate Legal Notices; however, if the Program has interactive
    interfaces that do not display Appropriate Legal Notices, your
    work need not make them do so.

  A compilation of a covered work with other separate and independent
works, which are not by their nature extensions of the covered work,
and which are not combined with it such as to form a larger program,
in or on a volume of a storage or distribution medium, is called an
"aggregate" if the compilation and its resulting copyright are not
used to limit the access or legal rights of the compilation's users
beyond what the individual works permit.  Inclusion of a covered work
in an aggregate does not cause this License to apply to the other
parts of the aggregate.

  6. Conveying Non-Source Forms.

  You may convey a covered work in object code form under the terms
of sections 4 and 5, provided that you also convey the
machine-readable Corresponding Source under the terms of this License,
in one of these ways:

    a) Convey the object code in, or embodied in, a physical product
    (including a physical distribution medium), accompanied by the
    Corresponding Source fixed on a durable physical medium
    customarily used for software interchange.

    b) Convey the object code in, or embodied in, a physical product
    (including a physical distribution medium), accompanied by a
    written offer, valid for at least three years and valid for as
    long as you offer spare parts or customer support for that product
    model, to give anyone who possesses the object code either (1) a
    copy of the Corresponding Source for all the software in the
    product that is covered by this License, on a durable physical
    medium customarily used for software interchange, for a price no
    more than your reasonable cost of physically performing this
    conveying of source, or (2) access to copy the
    Corresponding Source from a network server at no charge.

    c) Convey individual copies of the object code with a copy of the
    written offer to provide the Corresponding Source.  This
    alternative is allowed only occasionally and noncommercially, and
    only if you received the object code with such an offer, in accord
    with subsection 6b.

    d) Convey the object code by offering access from a designated
    place (gratis or for a charge), and offer equivalent access to the
    Corresponding Source in the same way through the same place at no
    further charge.  You need not require recipients to copy the
    Corresponding Source along with the object code.  If the place to
    copy the object code is a network server, the Corresponding Source
    may be on a different server (operated by you or a third party)
    that supports equivalent copying facilities, provided you maintain
    clear directions next to the object code saying where to find the
    Corresponding Source.  Regardless of what server hosts the
    Corresponding Source, you remain obligated to ensure that it is
    available for as long as needed to satisfy these requirements.

    e) Convey the object code using peer-to-peer transmission, provided
    you inform other peers where the object code and Corresponding
    Source of the work are being offered to the general public at no
    charge under subsection 6d.

  A separable portion of the object code, whose source code is excluded
from the Corresponding Source as a System Library, need not be
included in conveying the object code work.

  A "User Product" is either (1) a "consumer product", which means any
tangible personal property which is normally used for personal, family,
or household purposes, or (2) anything designed or sold for incorporation
into a dwelling.  In determining whether a product is a consumer product,
doubtful cases shall be resolved in favor of coverage.  For a particular
product received by a particular user, "normally used" refers to a
typical or common use of that class of product, regardless of the status
of the particular user or of the way in which the particular user
actually uses, or expects or is expected to use, the product.  A product
is a consumer product regardless of whether the product has substantial
commercial, industrial or non-consumer uses, unless such uses represent
the only significant mode of use of the product.

  "Installation Information" for a User Product means any methods,
procedures, authorization keys, or other information required to install
and execute modified versions of a covered work in that User Product from
a modified version of its Corresponding Source.  The information must
suffice to ensure that the continued functioning of the modified object
code is in no case prevented or interfered with solely because
modification has been made.

  If you convey an object code work under this section in, or with, or
specifically for use in, a User Product, and the conveying occurs as
part of a transaction in which the right of possession and use of the
User Product is transferred to the recipient in perpetuity or for a
fixed term (regardless of how the transaction is characterized), the
Corresponding Source conveyed under this section must be accompanied
by the Installation Information.  But this requirement does not apply
if neither you nor any third party retains the ability to install
modified object code on the User Product (for example, the work has
been installed in ROM).

  The requirement to provide Installation Information does not include a
requirement to continue to provide support service, warranty, or updates
for a work that has been modified or installed by the recipient, or for
the User Product in which it has been modified or installed.  Access to a
network may be denied when the modification itself materially and
adversely affects the operation of the network or violates the rules and
protocols for communication across the network.

  Corresponding Source conveyed, and Installation Information provided,
in accord with this section must be in a format that is publicly
documented (and with an implementation available to the public in
source code form), and must require no special password or key for
unpacking, reading or copying.

  7. Additional Terms.

  "Additional permissions" are terms that supplement the terms of this
License by making exceptions from one or more of its conditions.
Additional permissions that are applicable to the entire Program shall
be treated as though they were included in this License, to the extent
that they are valid under applicable law.  If additional permissions
apply only to part of the Program, that part may be used separately
under those permissions, but the entire Program remains governed by
this License without regard to the additional permissions.

  When you convey a copy of a covered work, you may at your option
remove any additional permissions from that copy, or from any part of
it.  (Additional permissions may be written to require their own
removal in certain cases when you modify the work.)  You may place
additional permissions on material, added by you to a covered work,
for which you have or can give appropriate copyright permission.

  Notwithstanding any other provision of this License, for material you
add to a covered work, you may (if authorized by the copyright holders of
that material) supplement the terms of this License with terms:

    a) Disclaiming warranty or limiting liability differently from the
    terms of sections 15 and 16 of this License; or

    b) Requiring preservation of specified reasonable legal notices or
    author attributions in that material or in the Appropriate Legal
    Notices displayed by works containing it; or

    c) Prohibiting misrepresentation of the origin of that material, or
    requiring that modified versions of such material be marked in
    reasonable ways as different from the original version; or

    d) Limiting the use for publicity purposes of names of licensors or
    authors of the material; or

    e) Declining to grant rights under trademark law for use of some
    trade names, trademarks, or service marks; or

    f) Requiring indemnification of licensors and authors of that
    material by anyone who conveys the material (or modified versions of
    it) with contractual assumptions of liability to the recipient, for
    any liability that these contractual assumptions directly impose on
    those licensors and authors.

  All other non-permissive additional terms are considered "further
restrictions" within the meaning of section 10.  If the Program as you
received it, or any part of it, contains a notice stating that it is
governed by this License along with a term that is a further
restriction, you may remove that term.  If a license document contains
a further restriction but permits relicensing or conveying under this
License, you may add to a covered work material governed by the terms
of that license document, provided that the further restriction does
not survive such relicensing or conveying.

  If you add terms to a covered work in accord with this section, you
must place, in the relevant source files, a statement of the
additional terms that apply to those files, or a notice indicating
where to find the applicable terms.

  Additional terms, permissive or non-permissive, may be stated in the
form of a separately written license, or stated as exceptions;
the above requirements apply either way.

  8. Termination.

  You may not propagate or modify a covered work except as expressly
provided under this License.  Any attempt otherwise to propagate or
modify it is void, and will automatically terminate your rights under
this License (including any patent licenses granted under the third
paragraph of section 11).

  However, if you cease all violation of this License, then your
license from a particular copyright holder is reinstated (a)
provisionally, unless and until the copyright holder explicitly and
finally terminates your license, and (b) permanently, if the copyright
holder fails to notify you of the violation by some reasonable means
prior to 60 days after the cessation.

  Moreover, your license from a particular copyright holder is
reinstated permanently if the copyright holder notifies you of the
violation by some reasonable means, this is the first time you have
received notice of violation of this License (for any work) from that
copyright holder, and you cure the violation prior to 30 days after
your receipt of the notice.

  Termination of your rights under this section does not terminate the
licenses of parties who have received copies or rights from you under
this License.  If your rights have been terminated and not permanently
reinstated, you do not qualify to receive new licenses for the same
material under section 10.

  9. Acceptance Not Required for Having Copies.

  You are not required to accept this License in order to receive or
run a copy of the Program.  Ancillary propagation of a covered work
occurring solely as a consequence of using peer-to-peer transmission
to receive a copy likewise does not require acceptance.  However,
nothing other than this License grants you permission to propagate or
modify any covered work.  These actions infringe copyright if you do
not accept this License.  Therefore, by modifying or propagating a
covered work, you indicate your acceptance of this License to do so.

  10. Automatic Licensing of Downstream Recipients.

  Each time you convey a covered work, the recipient automatically
receives a license from the original licensors, to run, modify and
propagate that work, subject to this License.  You are not responsible
for enforcing compliance by third parties with this License.

  An "entity transaction" is a transaction transferring control of an
organization, or substantially all assets of one, or subdividing an
organization, or merging organizations.  If propagation of a covered
work results from an entity transaction, each party to that
transaction who receives a copy of the work also receives whatever
licenses to the work the party's predecessor in interest had or could
give under the previous paragraph, plus a right to possession of the
Corresponding Source of the work from the predecessor in interest, if
the predecessor has it or can get it with reasonable efforts.

  You may not impose any further restrictions on the exercise of the
rights granted or affirmed under this License.  For example, you may
not impose a license fee, royalty, or other charge for exercise of
rights granted under this License, and you may not initiate litigation
(including a cross-claim or counterclaim in a lawsuit) alleging that
any patent claim is infringed by making, using, selling, offering for
sale, or importing the Program or any portion of it.

  11. Patents.

  A "contributor" is a copyright holder who authorizes use under this
License of the Program or a work on which the Program is based.  The
work thus licensed is called the contributor's "contributor version".

  A contributor's "essential patent claims" are all patent claims
owned or controlled by the contributor, whether already acquired or
hereafter acquired, that would be infringed by some manner, permitted
by this License, of making, using, or selling its contributor version,
but do not include claims that would be infringed only as a
consequence of further modification of the contributor version.  For
purposes of this definition, "control" includes the right to grant
patent sublicenses in a manner consistent with the requirements of
this License.

  Each contributor grants you a non-exclusive, worldwide, royalty-free
patent license under the contributor's essential patent claims, to
make, use, sell, offer for sale, import and otherwise run, modify and
propagate the contents of its contributor version.

  In the following three paragraphs, a "patent license" is any express
agreement or commitment, however denominated, not to enforce a patent
(such as an express permission to practice a patent or covenant not to
sue for patent infringement).  To "grant" such a patent license to a
party means to make such an agreement or commitment not to enforce a
patent against the party.

  If you convey a covered work, knowingly relying on a patent license,
and the Corresponding Source of the work is not available for anyone
to copy, free of charge and under the terms of this License, through a
publicly available network server or other readily accessible means,
then you must either (1) cause the Corresponding Source to be so
available, or (2) arrange to deprive yourself of the benefit of the
patent license for this particular work, or (3) arrange, in a manner
consistent with the requirements of this License, to extend the patent
license to downstream recipients.  "Knowingly relying" means you have
actual knowledge that, but for the patent license, your conveying the
covered work in a country, or your recipient's use of the covered work
in a country, would infringe one or more identifiable patents in that
country that you have reason to believe are valid.

  If, pursuant to or in connection with a single transaction or
arrangement, you convey, or propagate by procuring conveyance of, a
covered work, and grant a patent license to some of the parties
receiving the covered work authorizing them to use, propagate, modify
or convey a specific copy of the covered work, then the patent license
you grant is automatically extended to all recipients of the covered
work and works based on it.

  A patent license is "discriminatory" if it does not include within
the scope of its coverage, prohibits the exercise of, or is
conditioned on the non-exercise of one or more of the rights that are
specifically granted under this License.  You may not convey a covered
work if you are a party to an arrangement with a third party that is
in the business of distributing software, under which you make payment
to the third party based on the extent of your activity of conveying
the work, and under which the third party grants, to any of the
parties who would receive the covered work from you, a discriminatory
patent license (a) in connection with copies of the covered work
conveyed by you (or copies made from those copies), or (b) primarily
for and in connection with specific products or compilations that
contain the covered work, unless you entered into that arrangement,
or that patent license was granted, prior to 28 March 2007.

  Nothing in this License shall be construed as excluding or limiting
any implied license or other defenses to infringement that may
otherwise be available to you under applicable patent law.

  12. No Surrender of Others' Freedom.

  If conditions are imposed on you (whether by court order, agreement or
otherwise) that contradict the conditions of this License, they do not
excuse you from the conditions of this License.  If you cannot convey a
covered work so as to satisfy simultaneously your obligations under this
License and any other pertinent obligations, then as a consequence you may
not convey it at all.  For example, if you agree to terms that obligate you
to collect a royalty for further conveying from those to whom you convey
the Program, the only way you could satisfy both those terms and this
License would be to refrain entirely from conveying the Program.

  13. Use with the GNU Affero General Public License.

  Notwithstanding any other provision of this License, you have
permission to link or combine any covered work with a work licensed
under version 3 of the GNU Affero General Public License into a single
combined work, and to convey the resulting work.  The terms of this
License will continue to apply to the part which is the covered work,
but the special requirements of the GNU Affero General Public License,
section 13, concerning interaction through a network will apply to the
combination as such.

  14. Revised Versions of this License.

  The Free Software Foundation may publish revised and/or new versions of
the GNU General Public License from time to time.  Such new versions will
be similar in spirit to the present version, but may differ in detail to
address new problems or concerns.

  Each version is given a distinguishing version number.  If the
Program specifies that a certain numbered version of the GNU General
Public License "or any later version" applies to it, you have the
option of following the terms and conditions either of that numbered
version or of any later version published by the Free Software
Foundation.  If the Program does not specify a version number of the
GNU General Public License, you may choose any version ever published
by the Free Software Foundation.

  If the Program specifies that a proxy can decide which future
versions of the GNU General Public License can be used, that proxy's
public statement of acceptance of a version permanently authorizes you
to choose that version for the Program.

  Later license versions may give you additional or different
permissions.  However, no additional obligations are imposed on any
author or copyright holder as a result of your choosing to follow a
later version.

  15. Disclaimer of Warranty.

  THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY
APPLICABLE LAW.  EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT
HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY
OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
PURPOSE.  THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM
IS WITH YOU.  SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF
ALL NECESSARY SERVICING, REPAIR OR CORRECTION.

  16. Limitation of Liability.

  IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS
THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY
GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE
USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF
DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD
PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS),
EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF
SUCH DAMAGES.

  17. Interpretation of Sections 15 and 16.

  If the disclaimer of warranty and limitation of liability provided
above cannot be given local legal effect according to their terms,
reviewing courts shall apply local law that most closely approximates
an absolute waiver of all civil liability in connection with the
Program, unless a warranty or assumption of liability accompanies a
copy of the Program in return for a fee.

                     END OF TERMS AND CONDITIONS

            How to Apply These Terms to Your New Programs

  If you develop a new program, and you want it to be of the greatest
possible use to the public, the best way to achieve this is to make it
free software which everyone can redistribute and change under these terms.

  To do so, attach the following notices to the program.  It is safest
to attach them to the start of each source file to most effectively
state the exclusion of warranty; and each file should have at least
the "copyright" line and a pointer to where the full notice is found.

    <one line to give the program's name and a brief idea of what it does.>
    Copyright (C) <year>  <name of author>

    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 <http://www.gnu.org/licenses/>.

Also add information on how to contact you by electronic and paper mail.

  If the program does terminal interaction, make it output a short
notice like this when it starts in an interactive mode:

    <program>  Copyright (C) <year>  <name of author>
    This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
    This is free software, and you are welcome to redistribute it
    under certain conditions; type `show c' for details.

The hypothetical commands `show w' and `show c' should show the appropriate
parts of the General Public License.  Of course, your program's commands
might be different; for a GUI interface, you would use an "about box".

  You should also get your employer (if you work as a programmer) or school,
if any, to sign a "copyright disclaimer" for the program, if necessary.
For more information on this, and how to apply and follow the GNU GPL, see
<http://www.gnu.org/licenses/>.

  The GNU General Public License does not permit incorporating your program
into proprietary programs.  If your program is a subroutine library, you
may consider it more useful to permit linking proprietary applications with
the library.  If this is what you want to do, use the GNU Lesser General
Public License instead of this License.  But first, please read
<http://www.gnu.org/philosophy/why-not-lgpl.html>.

Generated on Thu Mar 11 22:10:50 2010 for Source-Highlight-Ide User's Guide by  doxygen 1.6.1
source-highlight-ide-1.0/doc/share/doc/source-highlight-ide/html/files.html0000644000175000017500000000271711346256132026622 0ustar bettinibettini Source-Highlight-Ide User's Guide: File Index

File List

Here is a list of all documented files with brief descriptions:
source-highlight-ide-doc.h [code]

Generated on Thu Mar 11 22:10:50 2010 for Source-Highlight-Ide User's Guide by  doxygen 1.6.1
source-highlight-ide-1.0/doc/share/doc/source-highlight-ide/html/doxygen.png0000644000175000017500000000240111346256132027003 0ustar bettinibettiniPNG  IHDRd-ok>gAMAOX2tEXtSoftwareAdobe ImageReadyqe<]PLTEǾ"&ﶻޠ{ԍ눙נED9hg]_X<@:#mhU1tRNSvIDATxbC: d#h` @X",***LK.], X@t b @BD6%""  % B:Hf@ RPy"K`\PbC(!II!h(!Cąl!0[X\J\$TM(>a$S @ Ш@R.$LJBRAG1 (FPhhT%!`&q%u P    CT$B|Wl!B`R$( @A%%@,(%$RPmB U`1IYB  99\1 yCCCf"[N'=TGȒl8^K5<SRɤ%@@  b1qAXH&BR y nP4A j>  t!+(.WQA2MU܂ `1%`19F< 3cZ`e!\ D+. 83!lYYA -6EJV @XXX 4 @86`RdB4I " "@xrʌHA`f ȰC"XV0C b@2H ȓ p)!( 04)(%R $Tʀbb,s@7 Ѱ?f֗\PIx!I"Ȉ3 QYt^^gv- }>WJOAV`$&#88\FF SFJ$ƀƊ 4 - Hf ?5 k1d, ."FˀI"4Hgx|fm)))9. aMD& X@t b @%DK.], X@t b @d`ɽSOIENDB`source-highlight-ide-1.0/doc/share/doc/source-highlight-ide/html/settings-ok.png0000644000175000017500000005251411346256132027607 0ustar bettinibettiniPNG  IHDR i pHYss.tEXtDescriptionWindow Class: source-highlight-ider"vtEXtTitleSource-Highlight SettingsW IDATxw|ǿϓn]Z tP6ʐ!Cq @@D@ N@PD*D@e9؛RhY|Hڦɓ4M~El}{{yBt)@Bl`0LæG/# 6 q aA$yq`0C<Bx0J^VYM`L_^N] =`0esuɳ>dh KʌTT|4- -+"L^t߾㉇W^6J|}7[b5%S2%F/au%@?_Z,u^C7Dn5 Ӱi*7;Wr61Q*>f&FE> "Τ/ͺ"͢rAi6@ CNg(݆ZM7ZDg}s,s݄08jQSc7ШQ[QM^ЕFVZmzA<{RC!Ν`Bk=4+uRA ym> )WkSxoDS0o1u7oiCKv[G5;`,s zvUЙV&J/&eFvIUX6K hbh͡ ӕ,BKH1 8DDXG^ @H=e9_V_RN7EgP+LhnbO1w}&%lr)b! դ\$ 'B ;ɤ3U|w:Șő ^BHV-$RK u'}Rq<⼫oj(Õ!WΝ#g+T2rRR-_vJWU*ֿ%RvR{bgV37<iI}Y "%>ebو^UCjj-R`4|5`fnȲ&eg#Np,E]1tЋnN>>Gdf T˿w7&gCr  >r@t訶31O%K[N=yE<"@Coz}oM$ f}reoTB@[J)ҘZNgK *kDTȼW$縪jA"+g,sԙ:h[Y  4w* _.B'rN,ۛ^vl ۭUDƛDQ)'ݹ)IG%Y ^\U8h/"~̲q@qiOu>56Iº"Y & VKEy9R`4E@h_ЖOY D+vpa-AaIz=ǟ9iiSҦUߛJXֺ4TP"wYbbu>*&I@žIH0LN-|IH6")"(!T[{5WD v'u}]hbKM_8 ,X&hmSȕ2 8ֈ(kyc\)"`U8XE\A^uHVvRJw|Ƅ^YМ枖4I0rBwT_0qoOI?tѲbi쩁?7ܸ +:>LNWfu~ Ӌtk#F43fpt.y!1"\iS e||sf&=A[;Ӝ؁=2+BԤ 6"N[H} eA٥zwJ^z3_s(jrK3r5m5Q IE99Ӿ?2Xyh4 歼]oP"ݙZ3[pP\zlں '2S2:/56,{Q慌?-SxZ^2I慌 Ow %SI`WO2k&>\Ȭ4x]xH˸4992.;,8(p 6ĕ"u̩ 2HT2H|QLLT6kȵi=Ŋ߳V+!6ݨG{G3sciMr%QR(G "R'^>V"E8APr\p@bRǖ *fH? x e!l\frZ%w$X @8־;',B`UkE"Tշv4UԩwE<0"I\GdT ؼoE(,$\!!5pɗN+~t](o^<"țHQUH⦋:o4UpEXD/g EI$H} ޣI=1! )@H+"̽G_ gFe' ]xso 8a0F#7WYMVSΟ:V˳VP;jv>Qbg];w.ep  xV .d(x׃6,;~k~Ikgm|W!v(, O*]IMjU >U K vLlK0 lpw$\QH_?UR)$jXqFq)e)8k0G{)f\Nq WfҠ6R:A(x6s1HFJ"88j4+Wc\}P5.\9\ދ_ Cx;tDop `y~7x>r+e"q8Og ("ܵd.Rrpc,cMe/;,@I0Pd \[òJjJw#KA8T?XRhs $XԞኲ ^.dXB١C륙 v;AF]_"fwIʑ`= 3)SijD\҆*F?0&V#" 7f!23.0 j4R1WM7vG.H;pr* Y5BTͪUKmľ^sPl C3 K @pVAEjlceg ]ITSKk5ʹU3,~UP;=ƛ # ^v:ޮɳ:'&le،5szv{Β׏]k}dŧ wKGJ_ݳ]B˖ E={W-~b7  =|l;.׽UBB^oX>o8UYYCUZdl=/ް|HǾcn-Z0۠=5Lڣ[׾P堍[ܠZ%:̓U楨ϗNhwڽ[׮ZO?Zf[qܖ9#{jcܢoygvJoe)uUġV`)etLֽu\lVƼ3E9u-wgڎLq]c[w|jjiWYً{^+/AdthY/zϿok݃IY;SL㌛f<ɹ)u= >g>JCgsO)顋W.|w{_<}~UO)ysoid3 ?㦩j7^t|x.&?{v%/^={^l.\>xݶy+ݗn#n};~˱י&HtmÂqN%_tZH .վ ǎ84ɫF9t].,y}`fWSRڽr| mFL G~/v̞Y3 ,yJj_lϢSLxp׳b~_ƿҕMoqWfCm-{}{:~U[v,s͜ICz`Or`O??tRDSavvy$ZLP0 %Eδbhߦ;?o=IĄ83{jx ,䜱mhڿ͘q˗0BLҀH Aw2{?)K d2)ɳGX<ضb:b..h$i"+˄Q{4iŦ/.lvуUW @IizS3qj鉑Wvb@?lxH/NkyL>['MZ<64qڋsM5 =X6 \^ ^|}d'_q%Ώ:oFp IDATG "39tDLEw*?n0L9X Vo {٢}Ot}Z1f)_)*),) 91jQRʼb` vfH}H(u@e4R1:qyYt^cfh}V*ry;E&|q7X!='w l= ׆ً,UPQģ[{>zΧŦ2 U}r߅juBk'f n;rڈ{FDq=Sow_Lljx2NES XFEmP $z5S/B?]ʃ&ﶆ7hHLV[Y}, _:@obys׌ͥ]oN7/!._8AqkhՏE&]oN77oęܔ`M;_zV}Od3%mlMskiJ%O9r%amֹh@OGJ]T-ϕ\ٵbsVܘ!Qb#h_BCPܡnS&lIڹs9&qSZ|ζ&f?t$Ç_l͟&]+U?\Il&ѯv!"ZS rSơߎ,4!QPn5Nq̘)S>\EI3 SQh JNX+4}/K޵bKNa~bCd$plbYA*OvRj_jE4K)ߴOYW> }}v+?@G(czMZ!#/_ з=в_!d&}Hu{m&){N\ҵU,k9Mnsl2Ic^t,tuE>>5g m[*e;S(0]t͒{nfq['}xNcW]w&;{̛7[Q0zܬ83wZMn;,4My>z w굳;fL\cvJ4%7zcg/~SuǵΝ ʚWO}n~~vꑵO&)ћ>u!~:hQ+sq:+7?OP@l]ϻudiܡ9OJh JgV_X).YSqU4q~Β@|~ 3$΁V7}ŋuѧ'KyJA.fu*7 먦jWC7fwyhKҍ5թ\2Zޞ'|hRsc{&G8lD=]KYu y :[u: Rk<*>kw.#{_v#;Ak}dA2`.ZjT_k8}*LwYS Fۋ/Nf/oYRg5/5SL7fNI-e8k9l8_Vm/a0{+-ukg:sߺ\6^^d{^hV8`E Xٱk9on"qbӱ/fx`:FI?n䅇xgyc0/'b0Fd уiTY#sog?/xD`=8a0Fd уi@`=~ BǙL.| Fu``qq1 uw<3!`bP}S&1 S{?:xDi0^ ?\vMm=|MMN+Wa5m>Iq>,Em(9h&-;31:eSڮeL/~yrF؆tsgXk$3<"4\v&9JҹC_2|Kl ȢziywPRS\x%#,0_gY8BYtl*8yyݫ2Lr(Ze܄DH ƔZ _cobS_M1.6.V Lge#d~k!ùuzH1Vsl:KhuĂs[*6.6q~GX#dӗKW:_笡((]{N<ńL޽M|ll\cؑ!ПYؽ+Ǵ悘 ZܕZ EP e:pȃ]>˅%V5AmJBnGkj <K#G?hDZgw/hϒ-f6v+/03F~?al8UG20 W/\]ڴi*7/vΣaeI{9dz֫CY|qo0#Vo {IlKAV:A[{?^xJbSTĄjpTwW-1 2BRVe!Ӧl޼d%m^s1{驠|>܉_e{le>Yuf! k>|sgkqsx+ڰeTMJ/ƿW&4j,Itt'#d$ߙ?)fm^[CE#] K%³,˲8ΝW!8>n#E];Us%Wv؜7fhq[`8MGduaS~-dLơߎ,4!RJ cFOn[qБ4#0i? uϲ,k2cc1I-b,#f2۶&3tDx&22Hg۫*xDi(t W?+"yw 4 엫iPOЀOOZ>by]% jD,}sލN#-,B=i&_~"exbIow퍐)S&SJj?"A"vT -٤ES.;5OB~ou9C~ hB'AJ"IN谁}sMn`淚=zVw c`1څe7n<أAg4-H_hsoyݫ;~k~IO9Gdy_i&T?щ!iL}%!)woZqIwzԩO h I{8ڇuL#<Au 1AÃ)XOn<1l|ԉ]^ZWg?TNDG94=͑OGxq^gOFGi}q2K՝!SUʊ8~NW^l(ݻj'cN?w`Sn}:&DtɎ)7b|5l=ư'NuO^).jRrI*X=t,hwgow}v2@ʲ ͣNDGH|Q`Y/K~}íNDGh/ӣLepx)crV{Q?Q$ux,>u%AΟ!qwSհaklҼ#|#ouJxsaqW+{k 箊rh8gv;͜7w`%y˓Z ;U"+:{0'Ǝ s8پ=R#O6yLdk/-3MS}|ȗۊ͟X(L / ])]~BGE@HBRE%]ۣbIn}8) :8k<@Vx^Kbw]X܎jQcIGG*mhJpfn<1#O5%f/0w/ɥ0AJ89 vfV?KpϵyRAL ,iЊw~Soyu!^^)V{"}Ncߗ'eOGOw!0Cneh޷yGK)7|@  ~lϜABh 2 L1_zuA/+;T\3I70$Xy> se' 7"X*iTZB$UGiwZ-Bsi8u3rڢʘ8C>0BZLg=޲ɻ|-IDATK g$lOvhm>awbr%+7>NTZR3Yl@Ȑ֊Jͤ]EϘ !k?hrD><&g0p>]F>`)Rd_2f.hNX~ݵcWDacO>,}Tvs8wzwU&뤋tP,e|*ѡ( 4DfE;|{ݔ|tS4~BM }_8kR&2ZMҕB|u|jd8n_(T &v,ZnĴڐs>JLլ;֝>w/I($ VEȣ}t["蔔i- 9GҩԑTxF1o

tg; PJ{Lys:޼L$q|[k\}B>ݮ6$sDMLpc'xՈ KZiW՘iFK@,%8mwon5yP|R/+:乾DG7d#N:dM}C_!es7G,"on\pϞرއT/G1!p 4dEll|AO+FwYpZe6<٩g>eqi :3V%mG ;?;*0SN9Ell]>p SˑMp 4P<@w&j܄ҡW>u;ƣfwsKB̙%}tU-Y>ajSw-Fi 0j4g-6T}r{/7Քd.ZlhVs#z_8u# b#Y0 ӀA\zmnOQ^H/}P9>R儳/]3L}$byHGܰw6e7aF/aN*EüX3˃|E"??t8H9uc[ZSΘYߙEtV-Y4ytA-pHfmccZuƎ1euG>\;Aws{8!Ns{Ul\ll>s[*6.6q~GNp]5_2LŕM;nʣ#$ep>N;s^yuH_Bi *{>]ri6<3hl3)QYx~LgF>bR)?;Бkɤ_kռߚʉYXRճ4g)FK>5?~_^\}wG^tdA"EW|].,✮=(Á Pq;|ǾmZGĄNIc_x;Usʹq'mZBblS\IN)FU~ᾨ8C7]9xɘ0bT rRkjŷn1HoS~~q~Ap&*+|}Pgwwk6 A>G)*mm":u1gm+zx^xƏ`;JXqzBmN &Iv7#j$ ewɻ˻oMoN˅W<6F撈N3q2BBZ8x.,dgSH "2f'XOIJK AbD4)dM,/HWX"Z^Zo7 ,CO%%Iڻkk㔣#9)pnSLQʅnD2B7Νx˟G迵 KC2I7FdgӛY;-.I&"~Sn?Eo_~vWOda2*{984wIFa2sg=:o㙶A/@YE=GR4F{x͟4!Ks2fzbY)1rQ{ҬJܽI2&w?ݷu£^dd&";Ǔ# ٌUfc8m>dL9؜̰_z]9r lGq`+״ՠnͷ5v7#QƪȴV|?WMye#2 ܥnl8R)YgoXSҵ48K_vߗbsk~=PM]?^xf3?x"ONb{X0$Z]r$S]@!BQkn `8Q\B!紦Ʊ9_uI[pWT\TR^VYYi4hJ__?_HP0ʁFqKB!ZSduX^?Lz雾al߸w=/QiXQח rctV=B'\B!Īz״ꖱǛCe5?y>JA ~]er 9}EQ}(nx\+F@SCNPTY:jO>_5= ?mjIFm~Pz!уFNP̸ Е(Mh#V Hl G64+ %KD;Q9 xv@{9Ox bU-=e, DUC~>JQ=\t9MRG!^YL_]իY1Y."ֳe !Ԣ|٭}r9\\wS-Q B\.Ho@ƤtpS.([Oc^ǀ*U=LP6_.3踠2/DlYjޔ(FdڀYt3D v ]Gyb(땴i!,+-=e,~> L>]`Yf~AaA4!1攡e'JeL!\)"YfBW958!H?us%E>:_=0> tM 0!}aԊj鎋]2NDQIҵ%O)4Ѱ3GꫤbR}: $xaI"H$&)lA*6*\sѨ%ghE|}3ql+[|P=(pP - Ep zR)U;$Sn'"U5ʱ&f lHO8+e_+tS$I%ITX\нg ñE)B@54_<:O g-&~QMT3 7!T"żjbJnbFMN61Z7n(BiY1H19zTD*'+iYAB"/NK30SzE,)!?WǮ#)B!rZwEJPݕYgD TW*5 Gt;5@5`&[ @RB$ ;&Q@$GT@ϔU8w4"Rtz^V҄hrkYt4H<eK:/SʶLQ\7E&|KL+^tT7qQ"#WTl;U)ٿ}* Y_9T{V0 qH12 3SkUerδʭ Kn .}7bɷU2R&@8%.u$P㔑:@εR&x)$YM`} N\۔)jXwlLe^ nf=R2'.$dI a8'Mጱ@iEnX? rY!!ǣrAjm,41a̋wXKM7c}u!ި3 7<)a'=V x^YfE}Byǀ?VR٬\]IiE 8$[fkb p.Cj~("1{߮A2ZF2@!R^_ȳEb:#%M$P\14Rсr1NJaxzhߑȾRQI>82& fhʨKZ.3ݠX5CS^(xU^م7 #Hpi=c#ڒqvDV\jq,nϪ un?PIVݖe+"c =}"`L=5W6,BM.ؠ7Ϟ!S9!C DT NlTdOT|:uOjga6'EUQVL< cE0: $b&B$-0v`@idJ'״܄ :?_@G|(,CXi=(A\PEτ$& Z#DMTy8 ># 6m'Z[Lhd8W&wIQn*RԂBQ_RPfjԻW+A&Wd\q0\UbMզ5i~ß%_-ۍ IY@&gT$jYSEZe((-Mhfڣby5W\uc $?? ;NjOժCF*Ms'@aQQF;z|P[j񎞎 (ST~{K鋗'E 4\Q+oݰf|-+վ*ÅEf5W4,BMxVsӿTVߧT]YIF??dYw HB]/ /DJ 10Jc!4U}JFiR苴I0ݤAFDW1[a‹&XQ+W?ws\H)$b(ʲs4V^Px(?XBaҦżjRZ퉬Dd0RdF6 c?f)Vi-6Ax=1>^d65}k*[,BMn^P:<(@i^/*)Ut~|iw;Q܏Ų6Q/n/@-w}:ҥ+3A2.k2% g*!@[zCbҥ#/bvYQfC&Y'3/{v#JCYşd|z0c @Jj%yY" FñbtQB-kY1%r{"+X?T~ -EBLBMkwֳ\ $QimljV!B!ZSdu/>2dQB!B\7j;B!P3ך"{ǂB!P!B}\uBXwPx;DQ;v3ݭ̶wcOUɂo qN.nvqpױp;GPNߩ_Mx>OGx0FgMEr}6xT݇sYN{8@wiYzS~Vsj|oMFFE\=0ϳ|]7Zljqn0lwsK=B[-/!q63R^ʲED*;z ;''1oD D|tpƫōO٩¥<&qꇟ.kѷ ~{ M[moqKΝ{&\ƾӷKB&<)@Qq]X:s+p`8^qI6m1|{i^Z~\_ů[^W]\c khs-ֹtt鶻]p e^ª|=x!s|t'_:w`o<:c]+;;tD򄮅/=GaA-(/~c˳-=.|x/8Bv}մp"߫~oqGry<\XX\֡?*OuqwƸ_Kf,y=?d o\|oӜKҧ0ju!agxu$_%d@w^;:` uqkZsjs^,0_b=ny]۴L S!??rTM<+e74cPؘ]g˅2[1L!U=[sg'*i6h 'P?_K3w|_ĥ39YP1N'}jA] pl'eu{ ,p}s.{sGynjdwO"wW;qz]JhCvtI[y}9xWS]4rs{iͤ7S @+5,݈/Zȧ~|Lj/Mz=Tig~cb~Fߋ y~qVU O{dFCC,b@v)~v 1*PS 斉U\/22y\JM[UBF/jn AO(MUOVg/[O!X\~Z8W̟rm.4HtaoP-ejQ6rKP;F/Gl䭬n!Ox=־LF1#AyiXs"#BE֩\7:W+v/7Xщe,H+4ejמ/䋦NN[t$_X䛜.&@y|v=!+'WB$`yG>x?J}"on!h_ -O3p^ V[lVD(79;wNwMZZ:coyna{,-bEMAʇ&]η#'?vw[aqA#sṵQY6`G٨/&Te74ZP}Z:5<4monMEf[߮n~ʕ97SUm> nHp 6G5%yjޚ4_}9ƞXG]NF1a|7P֥};>T r吠k b`P* B#[`kX<}mP25^پ>!-5tPkFHͥ@ͥ0g6p33jsoޥyfO_W*= hl!Fx 9+&+r4O#Q(S7 ^w=h!giit!du,7XgzmSYce\-6PӲYn{[@ݗu!]G;Q^*Cef{놥V?2o\2gҞ_FL5BBxcH'a:-3WB`57}l)OoqV ǧNPu0P3ou] g=.T\ؐBMZ܇6WgZ=OZлlB3ƱBxN;xCO^;9/l{WWϸ!p<\(:s_5A6jG=B-Y[;0(B͍+g!  _ϸq㏕FΆ=dxbC }tH+ a{|ڧ<̞WȖsp\yW{[Ж}Pʙp$ S˲R~ I; Bh`<]~F(,^h:?`h?I8:.]? S BU 7iA,l1?ϥ"zR)WPr0< R/^Σ!{NHi㌥%gQrT֕KW\ܻrh\A8,mdÀo:BqL8"-T? ߶(egSE?Kr8N{#/Bs7g6~Vrτ 諿{E ' c72N{m>#Ft3sONeNUŭ~ݯ'a˖ByJ>sܜ1#PqL8I]%Q;v8yv-5Q[\mV$`.>f_і-[ H!b5cF~cM SO#o(( I8qd3gh4 `UQɏ회!B!ۜ?@ @]!7 /ЋDy1%L)Q'θ!Bub}  E#g1} >ϥ}y8z8@ 7JXm1^x. !Bi΄~R޽Wqߴc's}3 YEèA!~l1bOV2_|!!B!<N h0XA 'Nfo޲U2;_XОsC/UW.eArrB!rXoZ;^9d"99|c?$ɗ{TqB!B, 7U \iCp B!Bܔj4IoB!BNMlA!B57c=B!BXB!P!Bc=B!B-zB!Z<!BxB!j0#B!1MPS"|Sw!h)4O >yzB<V,{^kҵM%g@fӈ29mM5a>?_)wuTzq[|+$hB$wbu'>|fin\=(kwi!H$Oi#g|^b8t<žW6{|N=i=ptc[G=ҝ:w~/O3/̙8n~C,>PhZK0flym.:%8\{W3g"&;g;êBM;S;u3 ^?Ng|qkm?Mݛgf=l-LTvjӇ$wmojp8?}Ɔ|9;ߞ=s΃神+wyO2AGܿ.毓A];uJ<뭝5uT r>oΟ2lС>xe(I$n1tذ)ybAW3>2yİ)s^ِ^tyM6tXܷe-$g-㕯挺gw̿k[g,H!/I$vÆLtM+<GwS񚹪gT{3K:e7oSF rۣD "vqV=s"mkكsi- ]UeO;!#<}Ղc!?t?p`ߖ^0Mgy~{BVgܕɶmp gpuZ;Vr =ڱ| y,AwX^ʶ?1qLJ2~\m];)X&뤩qԋEV_YwWK̉Q = @P7 LTo(GT]GCIvdzmn})C'%?hFce":V^9 Q Biv22¯ \l#!SBB?ެ xs~z?<"4 %JfCk"S^)S?=<9yHrq6@^=Z3i}3]vy4ͱӚ;ZfA0ZkulMPY z;۾s(kc*,!qe(0 b .Rx;/{dMGG)( @OFQ@UrUPZЬR&p"oMZi ( VhJ.AD*a}M AߞYpuO'DmOS^X~7ʙ,LVHaz=oXըr&<.5?_U"\vu`0b ho}Xת{fm3Bŀu{: yʹʨ(lh\0s(THPr=UҊ=)`piRX8+[g|Ԣ?^(-䬙1nE& Jc8[!ZqI*pI (yHMtSydZ%p_B0_+gĚh+JtuzG٘"&(&HMf?SI@!g1~/v.NԡkvtO )rD[SBȳ@Qi@z{[+i (=θ _msO\O&P)Q/(SAʃTP=(DkmA5؀p_|-4%Y%)pִ@8bǠokw~X@ЈGs%W|b0eRXURj'Ԉ6vŧC=DQ@A۷>RW;W6nqb 4^DK@B@ (T 7ͳ+7_=߿o@;}{IݍNqOD0pk>YW$&U 0.ت8f)I;MƸ0Ul)?o7z7?M>Fv6=Kqu}щ1rD$TIrrwrh=S7s~^_ܾbEֹcWG*,϶QѱKHh0B²坦Nns#|1 B&U?c?67?Y p?w5+mY#3o9t#b>S _i7+yQ<]7]Čymg$2m&b +~\ \=23qzBeOrsg xy̤]`B|:؏_o c_Z%XtOrm6/Yݻ$t67 <[/ӻK̕Xכ/jIq73G:u?)ˡ0]v_⡩عwϊ -_hy:%51i_|wGPlGOg%uwO?/%@3?r̤06Zn{rό%Sw9]'Zi։Ykj-͕}]CzЍz't5sU&glc&61`{/n{jڄc'ܜs?r/!*cݵ]޻%Ъ^.zyLT~QpuyanO3j}-|ϒEo/s̿3'wx=Z᯺Ӆ˯p5 i_z'@g׫o͝cHf/?+(ehY,5?9p ezE'Y>8๿uVo/ HukOJkK1W*4gkk3sSz •:.!Bfy& 7MQƞ-PmiMIsyClȍB!PSsGgXdY!#tOL=6_38yW-ʫ#_ߝ;wbbߑs`eF_=:w)Ç \-֝C{%&5ͯL12wؽy,V{{./|em 2z~M6@!B-2g%os.p퇗wa\-g_ջ-o}x[cg"\jg.~+j IDAT;sG7- ?YgsǾSؘ4`-עIi??n!Bztݷ$NJꝔ4?o_߼lcM b)65rK[4M7E_{% Q^>baa}[NǟyL f&~zl`ϙ;kϝ-5:.0Xylo B!bdMkn{(FҍEs|mJDds=[!2jV*:_fmʤ;Uܑݷ UD_U@fBbej+&YN5J6Me M BXOరgX|ǵEgHe7-[ ZxQ ӟȭ@MPQuB!\fKLP} %Oq 'DC /9ݬ'G\X|oG߶bΩp议"B孝l_?z$v;ls2AKԧr϶"Iooy :6gMaJ;=Z/8=}N6B!<Υ&&vw=Jn;v9!w׻/?yM+IHYAN@N6B!<& B!B !Bc=B!B-zB!Z<!BxB!j0֣(I?!Bk$FjQ4m4iJB! FFJz:kjQ4aG!2c+)Ğ=Jzʴ ¨i6rzBB z=FB.ձrqO>?f1o4%Iԩ^G~/?OɄdQ矚) @(X|Ǝhmn)זm?F3)8 v5ٳwSl&))i;B!kU` w38^{ugp(ڸ,6 Y:_xJ0pBťy)x֬YeuEA ${CӴV-..5s`0]CӴ 0 ˲@FZvС.^ܻwkYY:tR 鑑F׷K.]rXO$qu΍[Q-{O0MHJ^{`Glrϲe>˖5 >,+>%MFJ c~m慄+ذxۣqOq$=F= D(@xgŞY{.[-.uG90`$G U`ˏl*|` . agO5oA K; z}AQV m׎a:$6Z!B!=(%]ϸtz;–pHYVܼrrEIOn.IRyyyÐv5d2t:fzLf a 0 #c;mIQa$IAMuLk4Md2@^^z%]oKONnnnn.MQ[m{3TŊ Lf:QU*;fCBhrDW&O.t\Ui5矁ӧ7$ z[a<8 J>ȏ,Yfc6Q#C|NԞ 5pby Q= T(|}]wVQYYuB!d[Mf$*J%$vv"B3@abFCIq\^ӇtڥIN8raRi Ø@JeIT,[SÙiϺRvN`+W( իGbcbF ~Q;Wo&**+M$LƲy448D$*" 8Zˤ]]e_'8:L@p8,\~87&@?{w5%iNXoq Т.7m8:(BPwoR}>yIXlyt6 H^RUU㸵*.*dv6 G~3AA:Mj98وtGW)"\%'qZ%,bjxH̟)xYX,s33PKjjQPr\WUg0fl6t)J]=I C!tsu]rWKzyyuϯR,uWF(DTZ7Q{,01M\eʓ7AM3_P/`XsV_p\T\ `w*а@~0Mu~B$bUD]V,!I0-piۏwqדZYY=lLj}wp(YXT*y BA?iV (;$ (hDR"m{!J̻-"V(jߣ"$"Y8\f!:qŒt\;d3hu3YkzfS$/Bͭ{.Pr  HhpHӕpj` ABaÊ]b,pԯZFrAuU5AtH~cׅ#G4x;$ lFK.'IRPp <[^VVjժvn6묄sΝJ#G()U4ju~~~HH Hk]($.i",}ϕ,h>S TYYf55c m!Hb%#8Х| X?.L~~@RI7PiE)U*gg׬jKSgU*U\}ǰړ.%9ocmmH_>LIGAi@SKIQkT,3y޻qR uM>RZb*Gu;̐[bryyE?FnK\^VVfffV[b?GNNIw^HhJSTڷk׶mۨ1c;aHuc8f^NOhVUʭ9ٝXV6 IP_8[2v,cJ\T\64ŌY  4Y0Lc@IvbRhNWV--)yyh &Y X+R 4y.\ J{FF?ɓ ma]=qUUٳG7WݰRPI$>tٛIVf@ƷZī쑟i\=WYY}BqQѩӧU*6CmTQpĉϟv]&222222::^v\Avvvmmurǹk[ՃPj͝zbkꚍ z[`o(dIõZF"E0 ƍPu%$p\7<[ݚt T\*×t֯w6nHi؅  XM%Wu kp6_n od?ꦮCĿ,777!!u@]!x3g*ywF%:>>naẏUƠ;v/30w@iP$p5vð@ ڊjэ5AA` jlY 3-jUVR"2  2ʜx}kh꽟lV$;AA俦25t*6wI䠴AAn oDAAi=  PZ   &2KZ]  476`0^_ZjJή   A$IEyI>jRFSCAAAr}hJ%P(ﭹ   o\naaÝ6W*j  QVJ%hKAAy硴AAAyMАAAydAA =4 -Xիi&΍?o{0|G ?}`mQycݜ;c޳v-)=5ۘ:'>MyN 4{vMC=Hߧ47cE9nY-;K;~w lB_S 4[xiʅ-j*! NJR/// rN0LLLt𞵚$V7minJ맭Ȭ4r`0E퇎л;nocj*ihAyd2KKK$$#j5<Ow!@P>ZvZ3~? 3^Ci2b?O&mSߠ!,;x@a=ƮRF:w#;>>h3l!ʸ~y,jrjѡb|rHiEwk}w2/OY>sp+jn絔ٳsΝ;w o=j}5 l=p շMޜN.;w)MQ̺};|0c2S Ay!HZ ޛRe!J$ V-o6VFZOyW{&SN[xa{n>}U{9yмW]z֬ڲk3!mĕ]HkR< {®[znj;35RmAA E)JFCR${C5RYBVߧXi=׿1pc&\+\A`ZvzTN?u2wH䷎@iʧ+Guli_n-da,ːIw:w$qOY_g#%l7>昡}I=m40rGܧe`X069,+5Afyk@Tel~m=`lj țY}jԖ$Vy28WM2pPHNժ?O-. Ъɸvv5i$!M:}2i  ~joР|5t^LZ{D @_) ]V$n(m^BgjВm?v-,5R7D~1KZ"q; 4|ّtEQJ7 G=}+cJ&hD& ^yLg> (u񭣻lXf[{P&"$q7y\wyB E) }k~ qjٶhJ%v4b2Dn?߅EUޞ^H@irw \y:׾}PўӗƺKnuRO\ٮ-arﶾ^^>?X|h^WOYnN01C}@Z)iaЪ.C]؀c0⫯׳ߠ 9F:OWy:/8riF}m͵9 6j%Ǟc-mytT;#wu-#; aAݜxMڿA:vRS9KOtДz1`ܲ*¥R~ڍ ΣB9)gk(P?9#pӡΝr4&gԱ6\yҏc\rMx W[zu&N 1Ebz8ߧ3?3mLW'b5xz\KP@?z(y3(BpmwOf͙5}Q̑m ӦcmvZBV|en>JM|ofnMUӶwTC( iz{Ne_ІԪpCtRʶ[+ロGxaš cF`9O:?Io0lss=3x 7@oo Ŵ6fiÃ4]i[Yo }-`; Xw4[qFqxW{ί-Sbk<m RC AZ\x ZRM{;`*dؑPd)'G2,C&}y#)s[1j!HK2nOΜJ-0\G@QD ?#y1mLQ_vٷpҼ6gP`ǭj{bC|ohLNÇ bo)V,{=:pKw,6ߣC]I< ˗B#YIrNnx_069 w~pqI'[&lQЂ~y|k+5\^ӾB׻ݱ]{Ϙ3lEݢ:|ݾϾoS<@5H(%oGEJS%s۶u2&K)M菁oAF7'angt9%R1lLvwFR(33|{~MV27<,-6ۏY~ @WW?߯H`ݺG#@tj]kjѝc5mgܤiǾ_ B 8ϾoŠ(e1.=fGH';vT ZAh6 vsv̮wplyZmZZZ VzI&m〡7\ͿY,ct&~ئlu{Ċbqwx&:#v9s5AAN[0:4AԖ:x.o  ok O_4 CW|;jԖp2v[ F= A^trpxݑ,guy%`0hb״[ާ4cJAya36NNJ }Mר ?~fgkknn^o;-ͭX贾2..ťEy_dm| \{{{ 22tu-˥]iԖfHhtZ Cyݼq##==m7]qܜf,, śNr&&&\.}jKs3$Vz4: ++W8 J*Z a<RŲ~ؽ~ F<@yq\c7] O{ͬ>}jKAAAJAA䝇zAAy硴AAAyo]f'/E՗}O)rFKo̷f붫 \qn+c 7".I(]Y(0#zDzze+WQi^pG݉e~=/d ޓDF ({b7F9=-ܑ̨#M ͹ݟtZ ٿѶ)hS?`FL=2/v#38s>ѭ#zD?d'V%icUҘ Np{zrƖ4EAÑxt:>guSF?B#֘2WW;>Ӈyp^ HoK7NhUϖ;s.ZGz4KJ7^Ĝ7nul2>đ ,;` dL ؅+[^Zu}\۠7)z8r`Gk-7wvl,٠GQ,[^udkŕzp׬_Lb nNKUt6%va /<9.%;}_ ]<הplxBӝl?x_?c#cuÃϯ/n; YL^CߙA$M@RbI&Hɫ9=ܝmJ&x%mV>Vr ׍7j*`[8?kD[#+J*Lf 3A<b\[c=4;.(J/%s.d9,,)'qemiSo,s׀=!p ̷b LkN={:5i=giGNaW6ޞek%٥ċK m&b|0D,¡96ˉ01AYyQ{Rlpfގ4GZ3$l4W 1_3ݗW&F?mzoLm^|ɣ Dev4׻s_n/q%&~=%`<t' .Om|Sev͞ζXiIȰ7*ՀG̍7+~'hR4MYY[pqJYuY0ic}cCy7Ԟ<_ZS\W:%5GJY۟ /iӡ/OgU@`!w[l ?.>`龀2n9G}4]DK{\mޭ\g} (B)Z`RS%8>ˡَ  gHRWWI|}J3ZBG$Kں?}L)ROieFfe4 l:3 5;tB GOGJ"lgRwtUs T<.jcQ-s ǧC}nbe*=:aYQ3իo+.q(w﫾Sآ ;s" /ztǭda X̢ߘS?z%/Xni4CcG.״n_%OA栈9rU{׿kc)p3*[4mamF]w峷T5+|nĭǡizW>:<oȑ#Gl߾.W*!!!G9jkEs?W?,.*˫rB(//.*s< Ay^~^޵+W^f=gou.fݬVk*I_y$kڜ=$)_|BS|}Ϯ<+&g[WB# \4Yux>?DMK/`!Yzlo)J{vpwBhsTr;Pd!΋SEVX8Pda:W ~;Qs,(Փ5B~;EQ葎..(R&, |=vh(_nYO@K[F{}ҡQל[W584ճ$O[7_ō?rʥKu3⢢1o* @_)v,wl;<:ڊrsK};LQc" Of\Y1嗱S) p뉧 r7{r ΈP1祿ks;;{O@I.;1 ޞJFW|0'z__~7ten#ߎ[?Y2EO/0qw^ZeˠmWMAg~9c>:\Iakr߶=4xUĭơ47v_o#R7JBᠴA Pf\Jo&SO)Rvn%:g}Z?; KK琨*Hm޾}[ ޚ';7w胅P'rp%6kK}5>N^ ϕc2,# ӣ4I7sjFL&mlnn%e_z-b5p4{+(8bWe_}bo6i5piY/#Sl&)sO 9loq!8v11)N~@|[r{qQ@ۮV\ϏxyMz#g^}Z[pP9}`+ ++[SjnW%:G;b궄QR$6mHڡ;o_飩 O}^=UO_X12s97ā.΍l/>7ګ?54DrI?Ky]FkW>z6OIԓ漫Slud޾>}V>iYqU_;5#$]}h @)-Rdazmho#(/X83'p;[|]"7W?^ nr}&8xy7G>YJ0FOJ8iSؖߟ ټUμk<廉oIR)ڊ0Vϥa'ڈοC9]ʼnYՔ"C»o@|aY edދ2mxGMu\qkYU֍T©sg+m/ʟ Wĭl|e%E67ɦNI;csK7w]<ᗇ*P'oyLE~SuU3h#*$i04OqAڒd>q?I39qg# P.ڼN5\vI~oa G}+pOisMy%S\ϗJԓ漳gOL` IDATC)I. whYq9>?.7W6~=Ɇ`{ 8]0˒<+OƳok~[o,|]'sHL cvMsL8)IRX;s۹8;9'r3`f9:g]РGTg^ fuLx [5QF߮JlyT,w13sv7f cL6C[^#VB]RL7j66Fƶ5̩nZ2\&aYW#+؂GJZtjq\6eZoSYLӂIxz_tȊ~_cۦی٭JOIYy}1}G|jTOI1lCE@uS.苧קoG}W.nc,Axqxih⭫ Op*u@qYttE\='I: Yʉhʳʵ9||PgPYAR% /e01RCPX>.V<@!.%>3?`V/GK15U&"U*lSU\)'z=9>OEr95OuraQMc,9k], y75u}3X]f Zքo1LHdiW\Gx>p`2 &Nj >FAw]vTBw?"趫tYR ô2*H@+ΗYԅLdgfuE) 'g crM:e텚Y,uݮT8C %I{&V,Y[%BZ(gdJ }<]Gq`䰬uczc i}^OCqxyn{#TUUi4c\bCBB|~ Gi= H IȘe .s֪$D{{]ZE@#-"L%z1&OdmmҴFQE[e/v=׮#~Avjnet t5-7M.ݳnp#@׼Qzx`2WWK{i3 MfC=Mp=/Sۛõ\,X)k@Ug' Z{vGB7П:=5$M{kaߧ.@f05ʜ -Ȫi;sajk*,MegRKyID~C0֤zI8 kӏc/}jg> 3d0*R [6{+vݿ_,q8<0 q,//{N^U8 ҂Lm{vWϯd$/ y)G1N;g;\7'2Z3\@Tƞp]*iK.qn^0dxIuM, L\˿3Գ?n-9X'_wZRsOO^D1 d6ɷ7&=*?i@_<19Pz_)ا-?QMV}"QB6U= %&>6n(Zi |f.{VR5{9/'7[0NoЦ ?يW.84so4u]&y{k;Ӿ"Ϭ1iM2ifw Yy3U%?"Q=ܽs!7|`] _ӌww(ǚ=[.ě9:uY^afP@ΡgؿRi\l]F'n,dvN> v k4!͸eك,wZ2hUUA;<{Yصr;MQ. ng:q!úv=~?}M$g_ܟ6xNR.z;UqioTcA7J1}ҡmi4U{N~#J&>`6+.`*[~Zun6Ok)BzM d믧pP''KԷ"]<ŇasBIG<_O#O:[]\,l>ޘ(ǰfgFb,dX"fޥL(ǂ;*r)5%ŒT G[ٝ8PBݜR mK~,nk*߷_qӣ *ZSy$Bx ?<{(VU~jŹ!Ưx0">ێ13.o!̌ O/ف?oƨS0zSB4!hŁ;?˩N]{Dͽ@["n᭥NZyyADo>iw%g>sr)sss6`00 {jjLV"{[2rcqd2G*sjrS,賂}{`!Znо4&yM?͐~/e ~&@IgYxĻ.Ylه34-.J Fl Ȼ=իvt4R}Vh'/3mƱ߯1;ml^O=|735W^!o0o|}7ɲo}x'JЗӪ nӚv5K7,= w/_U =-Tu{ݕ%%pm1|46䯳E2)e2l5&]F<Ɗ<Ӕ]zҲRh^MC7FӖNЧbY]קrګŤIE˗X|bF'&~yb:m8%;c!({1#.>[2>*hk/p9MkS]sCQȢ)^l`4*Cd,]ZƐf .Uy[,Sw&MHy {͜D_2YWU:~|2-+:!mϾ(Gᢾo|x˚>06aGux54MgiGNaW6ޞek%l9=h/ ukJS5%C={2z%J$ZHB_εG4W 1_%ەiETQ8w~O/GO{/ŗ2X?ބ{ZxB66ۨN"3&Ʋvߖ5 Qwd s_84{9v#&;c3 ՠL`ٶa"wxCɒĘAImq\TЪ4%3OvՏLZeJІi>1c`L]! ߩzelY*$&hV8 & 6f9DeXш+4ݿ*I{[KHq"~W.Fʎ?]G:YusUy>7Ҕk]_*?Uaن 4MYY[p/(Ȍ-x*s,KWm~R@W#Y;. { ApV-ZVGZVVU[WhE{Ql$d!w$~><.{e^~*ő :ؽo1R$4un̲(vFeKQ7̑t$Q=AAKQ]30|gô.+~Jccl ;ٷ=<廼gcC3KҔŒimYoSܛ7\+QC#/NM(yy<.zψ/kziG9-[]S}!ϺKkQ"wz6E8=r:5)Puʶ+GJ ڥ}#ǣ;g$] yx<[єf(D~. P&A`7Et>qN٥țjycϧ] }  .Œ›_QzaQbVS(Ps}'{ҬsmyFݤljŲeo@sܞ_ $Kg{Fln;wrU-گkP~ei9uЃsZ5yބa͇ڰl)@FR! >?txⶆx72| TU!.hje!]u_P<7#JdN3sH,,O{Q'[ }^xC 4_2dfK_D%*M-{ @$"н>7 W&"o/9?2AA KQU^y*!>^N߮Fod9* *Q4}Q3SS˻衮4=<*'>_ WA]q$&H<6|DC%$' !a=A 3?n1 4#<0a#P?n~s^IA.zY78oVvVMFHQ: ؋\ڄYe橅\v۝L/et禎Vw" a%48a0oFαKA$ WAh?rҒ?Έ|Ԉ(s0{X{}L i"LN׵%vƟ\SJ(Sw}>>L>J =T @z{ٔ %Lzx~H-]V#RfY:bJx깦n=ڹlyy-+4oUϽzBAA:ڪ>]v[x*OmtoiM'KK[_WSS(@]x}$b{q.^ʀ5qtǞ-v}TCxIWߚ.hrt`.ιwǎR,AīAAi#e̖07+8m x'k*M9f-'{Eh EG4q vY=!x5z B/'?WB#K82Oi8.e{5$/"M SΝ4*NJ :M`3wAD'+)Ry)EQU ZOP Вk.ǯy hJ%EE*z(chlddhģIXOAAE*JZP"ܹ@WjZhԪ1 )Z]sz  x4jZ***jݪ@(h1T*F$'  C(r#C1}C#cR 4G  9^ ogz  x}|>zI#a=AAA> pֳ!a=AAA> r   =Wk-  Q(d˖AA(r2AAD'sRvْ   ^2   0j}aAAQf^a2a7;*E^wڙUeԕ.;X>S롅lHr CmhXy73,LADGhS2TkL_*/266xf]=5E$1A 2~9{w׋|$#i_5p╦fx% x4Odl{R )>Ș  IDAT^wa*#CO[YAk;ʚ;WsP  7@d VKKK)*۔[$-r9 MGN=\樑Gp̖XK>vEm0>L <-*ޢ1` vX KJgMgj 49ޯ o|Ofzr'VbMֳg^,CSb3Y0^܏BŧƟ V7 ?Uˇl)\ܒ>]rmZ=6NÃ-ۥX (ZAAj}aR`ɯ6Y)s<ЉeѾ2&VħÂBL7_W`;cT*:QZ+~Ni۹Ǜ^.Uƞ3jg.n44ҏvE̜~i'a#bGzN x߉Ljm'sxAcϏ)Ў쬟,:iqS#ͥ+\B3sKEv:rひy֩ƒ2/ѓE UitI&F6Wyv(ioo`kbi@ ʢMJ RW.@hyx|JPkyJ©7.)J)ϕYɔNF]Rrqr 7Oz .6qk i-]{/`K#SQFBC?|Ƿ6ԵW  : ynLq1qKkwygW5Ï_.wcq@66qjJtQD]k8(qRMz (e uaq\ЦUjzr<#p2ǕL "PK UWW.UYo|1 UuI˴JCOШtؑ6u6dW}(V|8ʥƷ?>FZxhꑁ=#`OE8emw*;oe4Fo$ x ʦUF@Smz5d|_P?ZNygW;~BϷyY,i] wj6ܹjf֖-zwu~ țV.L>b5>Z (M+~c/~sJZ F.(̈́Jv؄cQ&dV۴ݦIg'i?8x݃[|A11x"Osצ]qrwbQew(AC+=ҺZOAKYΉqqٱxîmA-/黃fi1:0vs΋V?'Q-\d~vletsF"']?U~| Oc9UG[5Rxn?7Kx{_pcKӗPeg#eM׷\u=Îy5׼mB[ost\;7Ю.'e\p43Hw\]baj.2 %v3\jWur;e3MӦ&ܜE"QoI#zPQA(Sw 7!]2i}}i tQeum]=L\o#GʛܚߦEz?o74qjKDAfr_:RSehk'UEG|.yac'U۞Ee/WB~c'cG GQMϗz>\./,,zP_ ."]ܞ' ¡a.Gw!lו֭E)g|^gL@~<XԳF>鉷cvGЯQeXqlDH׷vui~GEj@)x/خՔc>ne֩,yA!riǯǒx٭gufijgdĎ_Fwnh%[zw)@]Q?~.Nb?}ٛݥdqB;zXI$:N7 4n;[IVN/VS|JC;ZI/Mk8[2_gzyY]6SDuoQ \U^ٝ9<"y~M|Ttuը55 N鴗7o`fld ^["Fض y I{.܈0>ZCG ga=rNΪa3kK·?ɵͧҕƭBG>Nu+ʖӯ>eJ>R9p\W.Wh^[c-ڏkVړ+<ˮ&W}&i\RVvzs/Z|Jc%vsxdo_g̽L{կ~ d}k_e(һ;ILJ2@,lCLA 3 o*Z< M'KK[_WSS< j2o tκW3Qe,u ]Mߛ;b<Ō"1{8 S:<͗=aDS|K}jcȑ/z}Z^Z*mZ-'o(F*%:7A~<& _\>ƧE5>*1WL&0µΦ&Aȴ<1ZZr4(cchRO.lϕ E) JJkZ>P]K˕mlUxկxVƌ-F~C}CVn;>l`?U]~m͹yM4)ehaPs-\Or|rOw`| 6r AZ 7a6f[ qB]}~BHL^BSK;!75lYNzA9c`{(vwB*_>ֿziY|^!^Ž?{Y-LoUf:oۮ/+jޖ PX/ĉ#O 0ji,P\޺'߄<|N_ɨdto;y͙t(jKAm# j(cz1[ԒSˮFg>u `zMX7wia\#QFzӄfZ7g{Ca شZXkiʧ Yc2q-(+˿4z4ƞ.e`96a]):U,g+U8~ةu[U;2Y#v34CY}kڨ¨Z\if,鱧˶:u.h '}/֑~b?Ϥ+oMlfo49EDP>dOcZ:;s?Zs>u ϶+f}ALg7hB gݧh $'Nu^Yx4x1v`2==`kG'&DZowc?0E 3Wx8M YmǢ5qQǖx+~aINvZ^Phfc]Mt&ѲҵzQ5|Uuf{~@g_w__ނ;UgK;ې1z۠S ^N,kS>"iG.~QЋCG}ut>tdˇ?qm?+RC^J/5BVuB۱/~m' '7 z>P!]j)Dl@z=蚮x#t@AxO:xb^YR?yQY¡x8 P\1}m/6-6ޅ1=7$'S9@y槮|-Johx+F URtsyBY1c8UٸkC|hBÌRt)ɘcqp!S  L#0+Vc<"|39h>c)f(؈m0+$M~0uXzQ S| ?j/GZm6Z"ϳ~D_uu'+~# zKRna Р(OS3tG7wK1V+s\caxP¹lR|ae겥w2T}۫/BL͂7t103-PhPuV{Gj)x͡PCAETKSP Jax x<J {ϣZE(#'ZَزNP]Fl^V@]ήąN} @D@c}xVLذAA/."//GO_~V,-0[UFۻ<*cGa|)d<r|@`DWl Îcه| .COt6\S`LUxUٸj5J:#Rlo M&EhxNO;(Lc;,_B=׊-rd߆Qs:ouCg#tCk +1}F=ʠnG `kOޟX>GAԿGfM; b ^ar$H;\LO¢ݰInxTTC>(Tb?T]d܊(y[^jgAYnY(M@ s {(axx *7ϱ=e}q}l_7ګGۻNa õ"$`&t ]18M)8"k4kοX6UŖqEq@SMAH8ԁa'|%ٜ~OqߟS?Y}2ua{3^lgWkZo#G/p*5M۹׋OѠL"^NNJzQqP>^}~Ղm|G[sg=թ MOC|ЦFrxb/H`98,kNoT X)Oa8VÖmU񥱁Lv\_-J?'P]pkÔ?~Tصl/zWx8]z{pNF {EQ>ODϗc0M0 چ1rBXo?!c9!xh=Cj[:,+Bl̖ ZmztV?*Ċf#4~1vހ]59'c9<څgVgmwoA )#o@{tɧ,x :Sy Eq/I=[z|?_e橅\v۝Z~UwsMVV.mBVL @wPȁܬCy7n)GؕmlGӡ} C^ɩf}ٛݥO\8 I"c;dqB;zXI$:N7s"|JݹDlee5Ӄ\< nMؑ2i}])s|٫ˬSYe;YϮ1SFoZ4jAK?+3'ur8W;؊L}Gbys5ơk}#C h= BXc=?+źdt鬌4 :eS639;I#}7 IDATfUwi}}|:^zQ1YX}'&ὓ4CtƹFF8bviҮ=#=88[O?=kۈYE?\sMWJ{rss򗊨40n="ivڝu#f^q,|um"7T:w*Oa4iυQfaGgϊ_}rnX#Y^ d}k_e"һ;I 믹"~l]ym̅3lZ:#9"`2i(':ib{ɰ{HXOO%ο%W%cŖ Ol|yǭxgDgiԻw_<`O7w @9y7M}9O`qbcbdPܗ:fr'!c8zJ*lW57VDQwC:g݈+ϷidbbijjaRk`?# Vm<ݟK7&Y^481j'*c1,oziRLylxЀ.͗(m$6>-z') c ضXêAc2=CƂV$(S6 STJ(aVgb]cbe LX/|ZUp,J(ab%؛*Q5@y\I*P04Th> ZTq_LDQ2Ԋ˟?i X{w/}CVn;>l`?U]~mm1.]̘MB\#+R/!u"rV& Ao}lc},UP7vGJdE5_w({|„]|o#çQqj(MHssy'GX46'qA4J':t%1_ 12xBNm|;9 @Uqg"c`\}?K%T~:\* [y0!릴e!A~X-S]ggFFU]*GOںud8Yr07nbg&6 "X"qtǞ-v}TC5O0N}Bۧoߟ g\ó::0JY~5-4@[kA#}\;,-ySH ["a=AQMilObal:خ ;iT8uwf`26UGO c{/wkA"a=AQsl/N'}jAKzr ī FY  hHXOAA   #a=AAA4x$'{o !9B۫s,J"vq[7K.yFV.;2hHXOQJKKcciuFX_d i};FB7W˳qg$䟛wcK ERj1Gr[[y;nw5ώnn%v<ȁ?w mؿDž4o4bO٠ Cګ[ko;s@-sg+ʩY 4,8=ų[@;ΪɈ) tHc&uX{vboݢb~`j=>IlMS@з  #皮 keO~g'ɧCu!GoMsFԅtrxz;1T@8OCO%gE6bE%uU>~㗮87hgs5Uԧiwֵ=zŽJIBz$o!k lʆ&gg=IWZq~':Xn݌~sk`;w+>[lsoΡ*Ȓ3Y:W;UIg-8"Ϝ-;6\&6JWs/B~vYmz=Vڏ>ՎOV,ކAu 7R"1{8 S:ʾ蕏*b>m`;nI5d}VYwjgWorhc#P^d<34], Q }mE%}7ds֍Jifh#'O1.bkj[zuyz@sɜF4ŷ7'ߦIAr=ci7ySLzAX7=X 5-SdR~ކNoL K&i4o1=e^Z>,],D{S^(rr))U25P"hPjJS|X~rU g˲Κ_x&&e0&Vһd{Cy\I*P04TʳK,֢ BoAD}f{wKܼL\]}%Yo=ñ-~'GR#=d]>qA_Җmqb<Ց}Fɥ¨CF#/,X4w1ʹuOwl.@|Е|%(X ?ZU>9dԥuf5WV:k+_tm# j(cW_X+8w뒰#H;R.:ci׍\y8}ciz1*O u>5|ꪽ C|g]˪3-OGR1 @}W8 O,02xMxi476g&6 "X"(8ز{ lڻJqGV}>է6ή:-`o"[ˁ>QE=~j}~fIÂqtǞ-v}TC 󞰵 {Oc'vWQl;`듼#Û5n7z- mUػcZPŘ/;XTRk:ʢ?uYj-&/lj!mZ~&&:[vIЌR迿~<~tmfsmvš?[>uކ]pK!E''%lZZRPt(&R ZgIu[g.{_:*kcnLkD==qE͇B)4@,8!2? LW?6b?a۾rA th\C/}U9ʄa̿_!x-պʧyE\T%+hWV۫ӻٗk#vaT| Mi] MX?:F)neiѣfQE4]1@8q充r[j+|>_d`qDH44,@9 2'?WB#K82Z|꛷]lR{ "5 ]ЫP>slUcwt/Uf5䥧V 8۩'5Ww}y]U߁SϚhBPnǕ}\]ϿmQ~G"w.|uZ2lgKwe'4;}jЂ[* NP{e_rda tnڏ]0 Ja(ƴ1փB+Ï&c!`mGQq#W6I +]Gp`0FꈇNmqt0lir_BhM·NG~л\ \}! 6 OuDrtQqRgioȫ|@ilObgl:lČzN}SP{ͻ|M-='M# 2WbeGW ruΖ3+?m-s&[;N>b-;t?+Hz3''Wֳ~e_K=Ț^s⦈t}z1yC3>=pܭ[ @x ` nNwaT~MY^L: A 3d<@|K9 CqvH;0.˂- K}T0l= q f;gw qm.O[Ym|?z喦N;q(#п9x& @&l۳Շ#AZs5&ϩ =Θ_GӮ,M &R`Uk ] r@Yt m;hnXP-z P= {ʷ- pz5I:'lgobe jǧM8g&E .˅- K}c流1 &(0 @SD˷ۚBt8dܠ^UΠ5
o!^ ((As4CyA}asXR[)ȃ) r(U4eS=YѻP|"(@9Kz{  zݛ^?gZǀ/HxN͞`\"+mdF?ꪹ)u 2m\~,Q?0&63GqL3),. +Fk0 sg*4Q*_Zȫ.I /MXxCNUzv4s{-<<_bu 1sLKXjk frUS39*hVSr)pQs}jzka*H(@R%9l8k;>/ק  R0ivcGx3}aۿ/GT(aBbNycLsBϷyY,g]dzgwW͆; f4hHki+4#S\Z4fC&CLgHEQڴRιiqZь֭ZCLi/ j /R^ą;<ߕme!Hx8zq%#x4 yzGVR,Ed<)\Sqkatg5h+wcJft,gal)657qVsj1RB7qKiHS/l3ApiYyhGhym5ΛaJ8#Fx8lFXΙg~1HPN)gBwqM]?7vȒ!"(U+*TT։ZY[~UmuTd2rQPzsrs{CN.'P\~𪚱p?$ƒreKy(/OGZj,IA ~ko}wVryrf&A2AS=y̥l]m]Y[Cv*ɇy#x[ fMZokO=9مPjr><3nÎ\ڕl3~xze_gł 5ѝ!Șp +KeyPA4]e>i?xr0"NzXtsU=a4|SKK.dW. gV6&,ވNN&&;M?̵j m Cww3Z8!PcxYL-\&n_b]dwLŠgjjFΟ"zAU]'FCcgT`EnxOF^)WBfI"eI cw#$e.z@\mqѱ|aQsO36M')';`?nz eǰ@-${;YZXU̸-I,(cy /Cq$6]3l?q0sޕ]1ůehdOޭ PAA|;XF6Fcg@r#L&-(WgY %+>pZΎ\.Yv kψ"臩L)Uuw%i03bebe, Ȏj:V!J=zO&)JR\P޲\"W M̕$o{r:aePChy=u " >>ﳈӊ٦: *첒l! t+P &{3^ƒԔ/#^4Ko{^f|CT)M/ ;}៵Ӻ;u+f4.5`/TۓNaelz/<=~4>ݙ _Airo'ʥ%9|0-:R(_C]hW`:k']-nߋueKWOj4 wK% );wA l/~.]$+y}`Y qΝ?7O-Un\T\"7jmǀ4ʎ?(ʛwme,ĉc};} ўY=,MxV_l|} QGu[ތg9epܦc+KO:p(*ҷcmU{QYMت9N c>N[~&,OD 051s6}73ydu2^@2K*n !ŃN80}`6vU. ojQ?x^=n~hʫ/i fCEI7S]^WMuD4liW3OhEuAskC]wbSg J5lѰU+j>KcZ5e*kAi,XuFqI.Lڤ!Y:AX563A|8X14e槁)+6|lv<""+z|&YI_[:lvR[^48bN6y!B&5 G'[c HZ|h#jX$ bLth s}E bJkZFB/\X.0w8:`P7˰g:AQеPgPiqԂ$*ؘ#t?2XpOEo"\ .G /=Y X1p(|GbΦ)n$m $awJIGav<<1}B<`n}'\*Q7^4 ?߷jŵo(tr궎Ҏ~ͺ[wAtc?E S9s!B'?q3~ jHl@}[5 +~ɉp]7X7[rÑuD?<r_*~B" zrW8#!΋l2taE4h qb6Rf1YEAGu@xGuƑA0CߠK_81_H9B; C0{R3?4'!k6#MtW1<.m<c%Ij据]@L >\硳I߯N!5z FPy1tƷetq+1[w(iֿFBfNhcE3Z\]v / `P<%;c~\ƐJFW. &,Іo x5.bt6|`9zvXE8(0-0 FTOC?YI4@%hzv0]E34#  >IMiNA(L@iި&F +˲! V%cQWE{>adcK,XX9c lL R[7~thc!=G'94Z-'D;;@PQgB'!sXl` _dA4MMY.]E3  ⍦47UibdyȬ;`el9S: m6ai#/sbF< ,YxcO"qg>6V_No1d'Bwc93U7?/:ϯYI4èsmW  JS { )By!bD09Ģ"yuxuQ dqt:= (xC1Jǻ4i)xQP vlPbE d?ĀI7p&#`:KªHy^ Qe56i\zQ_t_6o*y](!IO^0gd  44a=G~ßU+`!SQ(,rFWƠHtP.-`t ccxLA) 7`[7'bʔ~)O #ۑT9KQ?w+P,Y ̘?bDdT8諏0 1ͅ` kzc Skj[7~<+Λ&)FuU#ڵ-3 †  > TPx_P(|@Rb۶2ƍgqqNNV|Tv.~ KwMKz"hX(ޭ}"4j`M-3MbG>fIyo^&$8Ըf$ kAX~:tS3*`0'740p8L&(KQ"X$uL`Zѷnۿ>54*N[^S[7F5v$uvdLOAaGhO-٪˿SXa05c@.F̅=~5~5x kTHcAA{! 빞dvrâ#U7 (j`M-  e>I8AAA"z  a=AAA|Ȱ   >xMpX_I| :`y8`叴{iֻЫV>{zM#qodﺿk>_ Sz^ iX/.7|~56`諸 "f>\zޏ Ca%ޢ%>Io]5z5~5x &% cR=AyADhRp8:`P5/I7gCK/ʧ_OMKaȕ)҉``υEL}A\Q66U1G~dn9̭^e5a  #Gvev:S+~zat8郢kW+0UTOuMq7GBI#)FmD\ig6o@MK%h⡭C]YaY2MyW;~5T<A5Ұc?EA 1S=$|eU "\{H V{v5$apR#U`<YLGn\YTwH0XL@RR ^;y I;qc"[qţAIҶ[P:2%^_fQ_v$ i\ms`\ .r+-B}UCᳮX|\q$ n:uAn !9R!4U?n59/T[ f= e:[ F#MyW'~y_<Ax>a== [RBQ<:jغ /(e4UoCů,Eh-xQP ~m^B`9t v0c0NǡOp(/]=pIĪ9BXv )k9(Ȑq+hWוxԥ(~ l0?Za49į mA)LedEy='cp `w1`7 >1(l aDoCů,Ehەv`;b~GC~Yv)t߀m0L )pav(G.=g>A pŊvnKJYdgj4tϪKy=Ać ޾c^ 7 HJLoVPV&?Y\Cm,Ee[ؑh/w+|psՅ5[SJ~՗2!٥Ƶ&aXfp]Z{V^_^aɮ 8H8# Ⳬl3ܸ D@=QptmA1hs[Q>?z6 gױ{kY{[Dļb¹[iPT^bm%ku7?|AKGtYO9kwee.vpL\ڏXyZK,j2p\lDqXգ2~AnQ< 8qa2E1 FդP (E"Q`k6}떝ZZZCr)5A yYo7c'VkCׇ0beOͰ ry1~n.3RrA\@'33iD!+eRV5"cv >PdXO^r7u"wvcN&T{ڍ Nv7+2nլ_c[6џf 9Dʮ%[)#>uozz`h7ӁTٰ\su__f'^@'OI|Zw4\I-W5֭FT/x ,?{k3o3 ޻'BZ: Œ"Θ m871Wmн9lIP=?_}w [q PLPPmC]% nOkHq{t1I8t"/.#ޑM5~SDqiKdςӗ.((`A FBAQ֮NeϮ׷N{ؗJf|CUIEٕb >xG>Oy~x)N33ssKvCcBeĕ[k%")}7΁NEELrsԦl8t*m~ϵ_H_0nVxܳZ[jtm|~aX-w($xȰ =ы\tw~_jc#.agB@vze76}\=\1 -I>~NeD\^xxјE~n[xqEi{V1^&*///ri\$v[&.#rT${yogjM(z%ʻYrr_&,?)bYhǙbIiڵ)Y6fvS~W.*I>oL~s鞜9'*&K .MZVe"h2>a9)5㧋]>k#g1KcU+ 't.AK{~Cm~}~h__q^Є!p4Ұi`-jE8(`P$J{~3sļ^Bq Ս&ka r7Y Z&g= .tw|P4͔TУk!:hI[6IyuAq>0~ _Wy+P8LY&-n{Uԭ.uUy}}AjJp ,Bذ3 įP+"dHn8pq 'D;;@< aQ+D:J +BO?{!B@!98eˑپ9CԽ~-?AA|̚ڰ^ ى2`2jOʫg^ 8fЭQ,t$&sўa41X,u~֝i7Qo\4fvsFpw휻lei>h~^-FJ(1]MMxA/V ףmت*.wY-♚Qʓ$qSG63o\n.AsdK?XkW{߷x hʳ5AgO+yۖ khzR lec35w2yv^_za9}rW?mEt3J\I⦎VA;ҤPxI+' +_rA\@'33iDJWv˃(nDzSڣ8Dc`00% Ewe݄.G»/}+tp\.AQLa}<7>BAGYI._(rs23wRZj )-5˵~gsmա'$}oV x-gٸN//i[gȓ t%Q, p$&C gir/mMS"K<<}]#|_R\r&Ŕ [Z^\.?^g7C"efy8=ߴh>bq&dw_q-G,KK┝!Va<)g{έR9myP7~\.\>㖊ܿ<]th yMyC/)u2\*HaUtryv@r]Jr\h6~?Zoq"\{}YmݨjHs˃4cww:=-0Қ+]YrIZdSon%*:wwǑ?<ߧOɳO?sٳ?O8o;_egWC-++|b{VffnPvr $|u]ϙ_zil6NvvNEIR@=|Rh+ -X|>6,afG.amc[6џf 9Dʮ9.aChȳRŽo0:og<еqdyPw]&ǢӔW' ۥɃ7Qx^GySR^(|x()-w{Ocۥ-)_Nv7+2nլU2iR.#*Rz<]Pvk5}䙂Qwu˓A!Y";:`3@1YL 0Y D*DW"9EI [W7ӯo-x'CW[+I6@v" (-QER9pCDI6(q?ҠmyygBqCҌ]^(x?T.Eo+ʜygCWUƣrvrʵ}ep]{F^`Ԉ7+C/iaFelgJ̶SuGJKkO37Ӓg`nmtj9Y31( zU.gPMy"z ^ׯq5H3Mix@g=Ϻ]z.%M̑sMI,c;{sck~ mB]VD|>WNP5c[ ?9O'6 +fA@wu5_yQz:ySYKU`4jUraҩ;zv~d ׽P]D|C)x,@\]"Uqˎ ZWKEg04>>V &S.H2TEIgPdrYcL2rvI@Yʃxűj3! N;2c=ۘ]OYxq^$-hԿ0{r木,4ydrL. EdߓfTbZ%ᨹЧ4/>' X#)BfXLuAI12LcйnCw<A40Ie'}hTgYKò [5v{i˯q꩷C:S-lGl?5̵OTnȴ6Uէ=n5?X͹dž4wrm?~lo.\dgJe{&6vnҥ;/yrνį(=fyQ/5)+~gV7KW7-_n^'-7-]1ؾUy_i;WzЦ}u[+M5?lۉ;.ʷtPHQèlҶ 3dYCm>Du[+a2-[S-EIe278Q X<pyța͠V^~L,$m#I&?D:R]wnCw< HuE^Sَφ&psO3F}75̼btǨ# O8\^Vf˗/2AQb0:l.ãTTf!\Շ1Aq~͘&=v;NARR"}ц(Eє~?YsGؙ U>~R` t9rep"saӺDmX1p(|G|ʍkZFB&h//"dV)07= '9IHR:;Svy6icxNز#892Ũ(:P}2 ~FH%CI< ۭ1YHHeyOuϩ_j^g1A{S^^SXPPTXX 7''''\1=mXϱʟᢃ_9Sldh,& ) YX$ B`P|_0pؑ偘8"e:wzVA /@wL> e_C\L"IFpkJY<ڥ$ + 7OM 9/h9a#`AqPQ8.bt6,`N0tA!*,|= L L삳(UҀ6&| +P:c=)$1[8 X!:Yia &,Іo x/?]z-AGг 9qGA n#!0@#.܅81D]l5 Nt_  #!̭ω$NAvkdd, *7` ( zt7oE{ G!|͖0Xx 厵$ i\msl ͲF٢4ȍ>|sBg] RqH4A4&lv4d  >MpXO֭r#ZmKN9^o`sf l\p70} @ģ X/˿8c[÷[k5%+ b ȐnO,80T9>ګ81$e(T0AAMĽw 8mLkz78lPվ j?ĀI7p&T;/x)DQ Cp^פp=MYQ<:wzV&:Q5m cJd8ww]O$bcr,TN<,c| d@5:e_`ݎAAx՗޳goY[{Nbe?O|(ڌǃRU߆䠯>:3Ɛ7551)n9 |ZcP$:\ͽaQT][8R2ߎsPlG"WwTժ:ac>A pŊv0F;]#4},Y'cAhc& /ڵ-3;$nhGAԟ@ 3g@ 022222[HiMa#!"khyiͨ<D\5Q"F3s:ră%Ulۙ':. ˺.sc+џ L QnqHյY:P]q>dg:x[}mA|:R?L>2<aO***rpp\臞=,Xho_Pp)$ňhdڥӴ5c ^n@k[Sπ7'759=]1t65ZMzjUyΟ=m[6]W fX>u܍N.tO3|t菋~~$?{gg lԥ. |<휻lei>h~^-FJk[/C{_a*gv/Ftr251iiac.3{߷x htrt,++sqq?`[okUqXqCK\4ov4x!/m/71;'/ݵv(/eȧiq*MOE ^)rmh=o/'=8œS]|8?|VBѩ9qkb/is$){dž.M03+lcCxѲ+,/FM7I܂05at}>_WZy\f1*> 賱&U廒[3]y=QaÆ _1 aC>68'\xDs}t#8a/{i=9֡ @=|Rh+ -X|>67QAy?3)wӎeӷlhvJ4$6]3l?q0sޕ]16oaodglao``_TPqc<4SӬe=T6GOJ7=؆2l5fFVe.9 ~y6S }Bq\{(-3Gk'k}.KD]rܧe˖-[ o[((+kժՒA|\$iR^O+EAe1bq2q~ӫtjb$-%oc84p@a:8 qnb$y`[ -2d1Y,&d1d-fYڂyB9ti TB22`T<± wXy&}ؠĝH6mI-﹧ӭ@p@ "FA>߂,]wN=K3Mix@g=Ϻ]1qRoMe8Nx\Ygύ\F%9sbՌo+)؀07HZ6&$eE'~B$xȟ >29c 2H {PHMNDnNiE1VV3^ocrrŀ$%;y L\w2\Z jEV`mQu˶ rE;O&,~ dzܐV՟&5 Ysғ,]N Wf x_i !ŃN80}a(F ~3ﵼw]?8#o[;]Rr~ x(װUGV8ȲrWz̿ZOק)zLJNCeYeǘm'm0֎6[^,s؂2jᵿNj>KcZ5}==a>H携_O ZNJu%}!o c; Ȋa@ז+T=_/G 1g*IħiNU9U.bX#׬Φ4 *ؘ#t?2Xp!y6icxNTDIe?C$ꧫG 76^ϑ̿p?p)0 3-8:`P5d+|A3 xqJ@fEy! .( l3qO{.,z`Zp b%y hlZdq.R(tr궎Ҏ*٬w /[tٲ;vl}p֭+VXRj{.:0]-f#e6!vD%t4AIZ08.kߍ 6u+P ҫt J  U"HJ^H!m7@8ã{̝={g7 i2cF},Fn$; wu D[x}:p tށFwγ41!DM,k p0{~@G$Va!-4]o`?_ByD>_JxBO' kMߟ/D\KB,,,| 6ZQާOwi5TF65"4U+C/`#o[{[0l0kk+UVY[[9yָ4 "9^Ǡw]ϱ⢕0R?ZCHb NNprB!AixIV<lHn] k7N,n `-أ h䈥Ъ z` @W?B!BX}9sݽ˗P(=%۸zx,XGFXw. ~h 8@J $3yBpڥP.`."WEr.4ũCaZ?1~1)N1[u!B)Q.Zwߥ~}uE7ZoHV&^iU]acrD's}>Lfǻ:t~>:wxUؘv V[jAx)5GxCe/䠟+bo G@̏x gp.hGAy$GGE:$~;Vڽ!>[BH ]QU="?W,h(qB HV  CG ]2K!<j:CÔC#2hȣBS͛$RҷBGˀF !8+i@ B!4x/@Zt' ?䠟VZ#`o Sj2. -Ę:9ڼ 1)4aü;>8Hf KRaos/ݕp;nwFWF l"³h?5OӦU!z;V|_X9AI/"6rYh3-]HrE41xt mPзJ JPT]<v<P-,Ӑx 4"6ɏEц9}fcɍJB$p6n{s6Xݷ~8~ذy)0 ByQZϷp lm">2" Ua819@x腹  h:zJ+C]0@USbF*d<m 65x2SG y7qǿL$aC}xfgek^i/p\| !9yMfO޸}IJ_|o[VM䡃MfYoͫjZGז[n?Hmۿ~cULM6j3>F74P_3?xD "|I4|F;u2Z !ԫ>+ʘEV#XxMV6%X(Vٕq&&aQxUess bQg"#sa IŬ]}I% m& <R`KTzlBdB^B+gsebBnaKͨ#kP\ᨁZ'O>sg.\ ;ͫB+gsuZp56;1\-r'fԇiPg5²"KQ4FQB)E?>Lᬜ,y(N!^0Ǘ+q xcf/Z&u) 4r¯ 3& W/Ǿ< b1BO*Lt$H4)\Vv 4y3 Œm,AO_X]]Lv̐J7Rω ]De+fX+Mm,$uAqϡ~ְ r8s.V ׀;ڤSkA5p_9s\G>nB孼od6 p y/GfkRa(N!R#7fR?Kq9Z=7A M,pş۪sEP ! VB||tTS(>vW~bTV=σ6b!ךnK!BTz%4ݽxD" ޒ&>zp^MybU;%hB1v.:,6BK ?VҾ2iC!Agp-oB&1Byvt ,tVtN 3W/ިFC.U!J !5䯐%N=u!4t4C!BHGi=!B! B!4xB!QZO!BHGi=!B! BHq^h4uHMD">0\BHBHtzJuKM(ʴT>/+!nл!';WVsW՜Fd|>!t('g`Zu,Z633+8NRi4e9jcFR'zByVǡz}]S(m rנb>8:Di=!<+ЬNtuN=ls@N:BKzBy6䄵+'Ƭ7aWOd.&)J !t/$}ŽIٱqC-]!2cu]1B^,B3싘ֳzDZzWdٜNՙγh:pLUi,ϠNBZBHyzkgHE85(7̰/ycϦ|nAcª)ڢ}7{xs&G}}C^ia½Q*̓{)MK>Dk8m̺MNPQY.]ҀΊ.>>=WGj8@y}QTEh!nQZO!\٬VqeӜvܹKρW\б,˪ίxt.:u;vҴ,˲ʛ+^J~AQͣmzN;EǪ#7>5|s=:uܩװk(Xe{vԹ(˧8Uǟv;23IZc*6TR{J<<9t?j ?8:pή휹q?eܝgVƷHڽ;\ܽQkb** }&1buT=~tBn\89 !uzByԑؖ9N>oq}᨟:As+QGQQ{|q˂v ;}Įoo㴏}:{Sv/v?}lw;hUPP0]rq'68 RCUm=ƾJ#>n7y' ?&z3l$bDQ缣{&9 c陧6jɫڬ'S[;ndkSCO&jeEzߜ8U"5Mj!Klv<=Ob(a=v4}~ 1;7of'>g= 2BYo?{$R]  Fwh)ݝQVܓ*28߆BT*gӫƵ}?P7Q^ftY!LGrHj9'j%NBsLI<^ӿZ}3LpxٲBˈ, O(8U-xRB/َJdƺ{ݳg>qiu*.h &#K],P)Us\Uټ;ޒtxGa5D'4{-WS4}t؂ߤA!?,@r)kW_ ][^sFӲ![w0CF5*c,,Z:]E$^%:Iff4R_иoo/)1 '?nyjw{<4!@8٫]Kaa%;{ ], 9PbM -No=kYf> *1_qgOfAջʵ݇hJ `#`oo#^-F-AVMv&(LPEp׳0N@ {$~BHPvZsKc4I[3-ԮZ3r%cnزD `-r\y#Kf;˅cOE.#V|^6SHl[ v.×_c~NՀonǭ_)5Z^qACL\qΒ㏛Z,>dU;BLq#|% 9v<³ le*+Sr SޚRT`Y#~5QU<$B ^groj5I7ɵ+#ύ|?q[On|64=uf⭋>aki)Mpˊi$~a`dn+ l#(qp|&&]Ķ[8g1*p0{~@G$VEc &"d0n@a8 !]tO5vc˯&t4mUi;ϓ'cKƷ ^[p< a~6Xx4ȩׇkz}Xh忄Rj%w6#ҍ* IDATzZW0M߲:^OOM\Rs`z;=tzO-s/lM}anl9`Xp'w;0x/FV;HS/Q cq*\AZ/„q0cgtÕ8%bC/AsIeqB2CK xs "_* |,qV l:zki奨X@`i] "yQjo.: r~lehb "0DkUPE_ huA&FgKd>u:{ZnC!E]vF(Cbu} p,^=&|U*']z=*UZ3; ȈUi&3+0Qf̝D_m^~EՎS`G=UOp(ymaxjoFG]3F8ՎB>,'4xsyiv&CRz/Ȼ( 0q'_v_Ivp;9e.vEf87Z[TeK. lc;!z8dWnuvNn^G`{sC|s'UҪA0t59ԸMSH 䀓x@lf{>q{=N)1ڡBHtuE=̘Bjz}j7ey?=o=9w6e^5+&c7UCvwc0kzbUG']6xgGnfOi}=MTaBjB0/h4"-Ͷ"TFcie%232Ub"---%\"BP*2,';[W |F[B4J('B!}]On|%i"Mm 5܊sمf4FC!EJrrKRp)/4c_̔[fmc+XX!B{a@!2}dERG}Է>IFu 9`a =ݔBM!zKwygk}/')rqԼ^kdRTByh=! S-j` 1wG1b;Ss~ :lB!Y=&hB .y|2- ]ƺ]…BԷNIHHغm۹se2ٳhF !P]bqӺBHQ*s|T*Λz6(B.i孬4B^z_~aYI&K.j4keZo&BH}ˢԖ_tiIC8zHNNSx{lܸ13+#ݶhBmFP=!0J+W 6SP:@jvzBn3uBjI T*TۋD"'k9J !B}l /T(9SB!LTxU,zB!B;>:a$x}7Z95+U3O_7f˯9 3R7Dٸj-<;J !S{qdCE{1E|A]qnC]$iG2qC RR /yh+7w>o4B!C[@cylvLɵa֡^cyߦ_:\>c7XxsYl+mVz9ͤKS$X1ꩂou-bUhr>Yjdnrîrw\syգ^z/tZ֬T =)\}W֟X su+ٿ}oל݇f6ڙV xw3z9Es %_!V+㖿?bY/=l{Fgrd'W [Q] i%.j.7淑U[~/>avNv(g6v]^b -*C`򼮫ZY18w wCtqs{vyw]Qrƚ7ș];s)1NlʅQgTձko3xiV'/^0xD@FOR5Tz|A{hhǍMk͓Y/g6r2+O3GgUVJ31g<*,,,>>^,[ZZeie%Hrs/VPZO!c1cCDflf 6+iͅw6+V >B..rׯ߈;^}!WI @}!W}Rx}>.9S4R+_yn%DOE'Ƭ>oё!!;??{ZL[Tat7:ozJGܿ¬#pȰr:48$vWqg%j 6\=lO ;;֞[2uE}C[+\XrUme(^ X|9j~rz?%njL E4sT#6pȾ~3s[abϊl`v(tLc[%[b&;m*p"8lNk mQi?\b@)1[8 ZZ0)q&po[b%t|eDRFrUhRiinnfnnfff^3SSk++NWCC!^y+cf.;'ڨnfnݮĀ*{l66@:rcyvc;vG'eJwG>!ԙawXR꼫#f;Z .|\~΄Y1Ҟ[;4whh#"/,4eZNSu=(.}ۛS]wyRjUKIh1cԙawtVcza  )'_QϿlR {<ѧ% c^ Hk'G?$@e>4 2\nο:XTʽ9s/c]>લb]*6Ph#du<16f0;%^MD<{MQmT{ulC$Q.7ca6&BER.|6]j|ǖ{KDqbɉȖd[0]%3-zBt)Yj_s OPh 71cN4K/~OKEG HGcTIsȦiYw޻^]ޭyF{}h0r <*?> =oO==ng޺,;8ƼRXTyX׏-%`kܿqEo1U8zBH}Ę;KhG1B;2wP=H=&y&b7ӂ+"5{򩧉I[P$E-ffe%[Ju5A(qӆp@S9]lHֹ8\UX}39<_F}Z\NMDLa`9g2}߸ǣ4MiVBi%Jn5ljo] W 6m=(r$Z8~ "#t+I{z+j+֖<; :}oag"7'zSPM.H0ƶmrVcܹ0Uc |ZKB235V7^a˫¢ xm{qKL Ko.;4K_Xӻ9 *լy_])Ϯ~jmrGt=u97[[bRdUG̹ O4c tx،i9r{]|%Cc^M.`mQ:S΅GT Gh.QCUO=hll{X/\ ]kƒؼˏz@Uf9qiv-֝YVձp=M!Hrb++3xWݽam^ڂUw]̹\^lOں} DΌG~iVY9y]̑uxe^N0g翱o]nHK,ė#l21f)]~vp*'ckE)G~'JAԗiQmvj{\~{ K [<^}nv*''2SS75 nk"ij7}3r9D}?3Lw7u|t6*ՓqkT(RO~%wrzBH[DEFD/k,?=#In*O5}|!6{Gأm;@ўۜ;i|&X}N_̑>^ ][vpngZT㛙CZZXD"#wh4w>,djP(HWBCAn %I47у4 BQ٦m|o妦?8y^g: /-Ϭwr4w5(\nvXiLZTQ5'n|.̺-taȭcAQG'G_sU1z\뺎^cBH5롢6* >rڨXjkP$Ai+_rGp!Bi('B!B86w\0J_aBy('zLA3_+wNoLPH a@;_:-3V !('zHt;Y3 WB {g{GSuTKl}5'jMߕ(n5QrH<_lg/x!8aKW><{M*t=0;%$&"g's MBQ*Jթ5jaʹGXR1RZgQ}LT\j@fOd>81\fʾ~EzV_jӜzȻ!OR=>OPW2/Zax9<ܖG[QLf,~k=O9gr>o\чFms&B4`aF;O;'ٸǎm!4grxny?פS ! R< a0&f&|^%BH=&tuj%n;g t(37~=nm+ f3RƱh%& l!h MmL@w)\zE_˾ƿ[6FZǢU6JXˏW0p@ϯߔ'Zݺ)0 c p0*Ϯ~»~Z+]c;W4!xzVQuC,YeY8V_Z /;;ԌMB&W;X,n?鎩Wѕ˯v=ՓU/q{3f^Mo/PË>Ы/}wHNj\9q,#ǜ4w)U}!ON. hl;ኸۑy=l|9I }2=6Aw5zͲǺA dFqaɩ"ٳWݓ86SghӄR1eY>//]uDa`@`^^^j#BH%[=kCx;=>S286fT.ne3wod@2nog@=S?5S@{Umڢ`I~K4ҤUu^}mf<[..XO9@< ? Wjp5UHM[jsUS EÇ\nffxI7XIVe'gy7O𳃣\diB18N#55 015tjɁLw7u|t6*ؘv V-YAxɩ" CB||tToNQ޾)~tdvS3칷I,Hy|oīAj4f{:BHCo3feefp,[~rvo`0``ĀP(HWBCAn %I47у4ZO! dC~wס}Ңk^m?ړfYV!*S /f/B:t:хrzBS 9ŕWQBHsluf:K8qs[s9evh3}>B@ 4֋ĵ<޶!E85TV]GQ ̆o9|{]AyB#h=}GK!B3adۢB!ڧhj*zB!BjN5j[P J !S{qdeT+6Y{1BB@ _x<:\{B@R&.d`88~!]尶N#P E9<ՂwnK%)yL&OSh6Ɏi=B@tN1rUָ_&$TNOMRojJ\WS) !jM9D"H$jm!Z"b 2ykۭuuRD!6DW"FUW͛!Ԣ1ML1~De]|'95Qٖb"KfB(=&ú8UBGցʼxG!T#PPs`m8UBHG@ם2mN# zj & ~ڕ@!r"B!Z=LB!j0G!Bô!Z5QMx;/M8\Xpz#!^luZxPg)dI>z|2*/y_+9#ܑP\ B`hYB՛1=^oB!߇[BZh) -0GHn>B|$QpR_q %MݭGsdGTM''A w/[vO dbH\: Bm,{LڇUsuAF[ PJBH#gǩղ6}dz]5aտ ,}U/+3iڡB7&M (k]6/hG|Ǧ4~ʧALz:R(H99> ayLKەPח-aEF^m_JTLB>2/oj?"- N8! /B!TܶH0we.)d3e8$9ר #Sug|iDc#$Oozrԝ |0@va^Gjɋ 8yQ4D{u˔s55%xu^SJqcpvޭ۔ޠ2gXsa5ֲVf3jSHkvlXVˀЁ YA Jp:ԍ\"lOna>zf(9rKQx||gҒBsJ]P%^H37 :d=qSۯFc/lwBmcDPezntT Eoprw3 ~"ċ3~Vn7$ k.MԟdžX'E@[v<עT L3qiy6AeۭDgb9ȓr !Dv*TPNYQ;z`@U oY3DW=rW1(oKrBBy+R$ILo˻@\ @)DnEQY: @3a83 ZCk:xeĉ/u.J4quںN\4Fz(@We&~V"qlzOX8i`W}`Bפ)P%e;@]钌?Xv9<<` ߦeP%3›hhLb} Mv6қ~?0o %&c7]O ƼC*>rq[t|ȤwfXqES{7v,gv`V5Cod Πw!5dmy=//?iHS^)XtbөRP(Xoh1RHQn38mO L2mZ{}^FD&E^{Mڦ:r_RSp` ߽wH!U 钆O }UAB6ۆ[oxnm7 [ ^^~FmoF]s!߶7YI|~~^^Vff{`ܸ<)%Jz顼`S76෡gJ$Egd`7EQ?XS׋(JWu=S_32JRty:JhZGݮ=z^-mCEQTIxnz' Z2WLK&Ts6"EQE5(Qc(duea^k}8z|]V|KP믕6<\joh#VXM$9>3H\Sr3d EQ2EQTYZnӤ%>箤9nQzݎX%xڒn_{`nC}/Go2iG{ҹ+JJ; ]9>QρnУ _)3x?P𨀺g!U[(*{ 4V>q8Ҕn*#\/FiJ`?U;FEQT{G"|T'm4x/gxŁ+kH ެbm+]РȲj5E5\q?7\EQ}Ε5TzC}EQ i,zσIb=T{lq[(Ι߅~\ʗQ}ȑ/\r妿ܼyܩwٳNήW^^*w{=+3߶73(#P #~R&*TtPm[6,&9@ytc 0MQJ^ A /3|/ZW3@\[uJrsh&2kڅr'jVZj}Gqupb_gzt1SY>Äiv5a)PvOKZa(P,*l^>Ftꇤ4T H~[wrZec%y`[_Ma멇| obB!31PT AʳxE?ʒgn[+  ߻Hť3ԹUM k^чvm>5tm;3ʈL5m0irvey,Ӿ.o_eKf֩*ԼAi銻=4w~se M~ W4Vz}%l&Gՙ^o`KMVzgq+qrwe׼zj)d݉ A{zim$?EqEXrdvے%~{ ⍰jIJ\C"W(4,{Sr, ;;gqgc x_6-N ;ئf}n]|xwOyu[JRs۪,px"QmXPR@5K1=萲wٱF&M * +U<1 4F R=TVk^ ޛ~L`VZ|]8Q~ \M;,}PD(+c R*&]5Zt| Q|=w ]dhV^A5RsBg2&UZ?E\s)4VOwZ;٢ԫCUFwQ'`_}XAƽ3f__hy7"_^#PKAxz߭q[+o0[eZǶlekcs"UfX@ n=xw\3˼s=OILhJkl Wl|.{#$SDn-iLq-yI_ )+{RjPRPB_l67Y|4&SR.ZÙbƮŦ s@SW-~-f왱{O\ﵰcO~Y.ocQڣb9?NbƦ0ITդ)Ǹ-~xa;M*@ac"o wUçTXqk- M剒C:輟IJYᄄkɛU5)i*S_2ߦK  NJЗ'tQ-!W\ =Y!laرbeI?zصS#Jm7Uzrq  7C쏂i=B׀. h&, [uuN]}zšCιw9?&˶o;tfMdzF[nʮ=%`Z?ϣ \_KM+[ Tӎy֥0L81 df0R2T+>7X[bs>J}VMD'=SK*w]}$)JmF2~ΰKle^޼2\N_)nܾjRt2E=pMcBO/>{_&4++Z{Q)/w&= geJ@Z|;y50(khVh|VNnAt.7jt5Vz#-4^ L-ĤH|JA%^iM)MS`ZB- v)C#_W݅iŝԲ>OWud͎,ؙa 7o'c@ާE\7Mvwh 4U~{~t\}(z{kj[ms]W.zZֿIR±ATFXr4}eŻ-=47X. y!Q>,4Qm=br45w_t$ZZ@rnÄcg.~oÖ=<ҹA1#׹U]i8-nm6|Kwe18 `˅ G*ڏ IDATYI9IrH5Oq[Us*Msǧ}:Z8ϿijWeُ߉$4a>w N0zaT8|nGI\emWAQɞz:]6EbGoMrTj):[jo ^̦瑷ϽO1ҝݸƏ<ȀG]\?L(9;UK Yrٙ_^.wFtT*Bhii 66[$I\llR]ݯQA&*9cx~rKbmW/[7R4୷'^}ٺmѝt5["P5Ҝrsr]SSUeXt:BhURYUHTRR",|d29\PK++QYF3d)WgB֎><<37<"Ny_xMݙmF<0b:fҚ[>-cB5_i=B!ts6mYy&%HbP[C}+eV]B}ogzo4mE!٬h4Z1liZwu!jݸNįڵhMo ~M4sק1CK>C[V gB r﵈B}.#P3 q114_ #r0Gffڷgq8B5\[BO Pr!k!LB!j0G!Bô!BVzB!Z=LB!j0G!Bô!BVzB!Z=LB!j0G#+L]ՂB#o7$kz=ĉ[P+ siwE^B|HWb!,B|{@%O1k3IdT+x-bG)i=Bl3it}vPH ʛLuX0[q+G. ʿV Qo:X1TM^66ijY"Uܛ>lyhRuF)i=BnmS$v|>j2gX,raŲ_JjWU_zHJ%-=s,"NLz~(Ra^_1Z|B zj9j-_R}.1 }wv;L#:gdP|Ywx>XʯAb)!p9r1e둛CrsBwP#O3"@A!p: [~65\.>N1Ԭ t +!DrƠ|Rƿ㓥4ž<QB7{6!pz92啦taOcZ,"8l߷Ncn\q%Nj3~YE!J=\JkhY ,#~,CҪSfiG} nc!ćcϜCUUR}.1!!¼R}9'ix6#>Cb:Zj7K'Hޭ^JE]c=GDgdh#R`ZB-$#fKÓ1$%cW)EϘ*AtZs)jnF 9z/U P{]]_(K&J + IbXpL~+5^8;A\z!eW_Rԕ2daIqWݘ7xyEI3˗4\I..۱⮠@$deo6z{v{n^n]n5{FG Ώ}ˆ3cSULv69)nܕ7]_"U՘-bgKgz%WdFN|l: ^)TYNYtg*wN`^,yB-9"P߼NxӖЄ7M]_gGaR5q׃2%@םt#$>O^V2. W֛7LTaNHbXb|x+8v3Vz`nba};]/z]V=6NxJL}5t{.Tk%{uwMmaxɿmbO{l9hmQk=mJ/ 6PU٬4bb1pq˧kUUw㮶b**YʿFMm6*3̽jN{xʧ@u;9@)o4ݶYZ^zAlB$Зi=BXt6f*2S ? ` Vp)k͂P[*Yۣ3:2Ut-:MOSX댁te2X4.Z!+ ;LBMgb /z ]Ѯ Y̢zݶr018Rd5Uw+ K#eVCOrԪlWGW YaYCh'&J󒄵iFΧ:GKi\k_ @q' 8p?WB}5rDXXo΃52`6PE8#PEWi&BdEBD)Z}ĩjPRE8,劔F@qU@Wi "7O.H)Ȩi^](%m6ܟR(CQ3Љ jU&DՈ!421X QV>:ӝxN(P]K Wǜ>'< ~чe+.E5?LBա PO Uo@eWϟ:i#5ISW-*ܧ)j8Qh'u1Vc@$qqW Z#J#KŎ[ *.vM=eBŶs:LSc>~ȸ0ML [\!W\ =׹)77,cXȻ&7/B!p Uog ?r2xq•K?](WfU 5;ft9'4+pn,'0:5>* Z`hшŇD$&PU?HsuQ9o8/xՂM/ukbE7[EBk(B0GVGɞgtNtT?qZԠ لK?B,漐y$ #Õ-ۨjtZ3rWqLq(`[~mmFrbpjo ^̦瑷@ Y-NNNΘ\z޽%>vb.8yˇz^)PySZՅ0G5'BƏFU鵮pzo]\j#tbP⼋sxG~VhneѪygylʇ0B!P ;[&*Jy"ևL,nxAc܅1r+4VOEb^P˄i=BZTyb76tB!LuK.I[BM}W%߮V y{'.!8%?AՂB8_j!ڍ=(WZ{/w|Qʍ&;!5 :O<9:!Dc_Gj7< TBWðg)XnJ!!GN`"Dzܜ! +iWP8hx%adTh8d;>YJ, [f&Q9^V)MԟdžX'ETqؾo4!LCeǼݸ*J@nqwy8dF&wsqHLln.V vhe3ExzZ$LBE9nꞻ1]:?,_ +uv_(QfӳIYL]=kḫbfA40`kTP/c}k n͟AqM. ftlhJ\]o{7re I>60O7Mq~q$1,zyx f&z}rekOl*(./D@I%~J#텳͵R lE70eW_Rԕ*Bʄ.'Ņ_Yntc!J2˗4\I..۱nEcFw/RXQWYNYt 㠍.b;C'L-'rn줛YRJps#Pk%JOێn޸yYL0'`%S{Lgb"B= @!iUL] {CОqegw8(hڹ/!YE%zt&L>HOK=GҏtۚX:O=E*xgoM| dYnS|U [ ťB]Fmˑ MAk{B}N#PkŵK @0݌Mxǭ8He N _<[0FwQ',ELYw_: 0Y1#tV#@9u@h>I9.. fJAclai_@~b^MKHm8Lmcyv 9|.sۆ4=B´!Z+Vûj}pƭ8gt`uG yZ/ ̰{7ol@=:l͹Ԩa/Sx=r@fĆ[<-n]o̱0 )ŧ Mz|3o-0Lf}*S>,2Ki{'S ߃wdv/PVt#,漐y@Gx[:Q44f:7E74ŭf/w,fjL$?qi^ Fl7 svT0˅ G*3?x[VQs=!ȀG]\?L(9;UK ARbbWgg~yX,NtT*Bhii 66[$I\llR]ݯQ'| yk8>U_i& [1gAy!n~!3L<4ʊ`njfVL:kDĿEGDuSO~ I6?wN,Ij}ϛ+jZ˸=#K}S4„\.SXiʏ}n;ǘ5%Ek#i{_@qHWJԭU@bw*%slMB^Qڣn{9.D[/geȔe~`~Q#>oMɯG<$\\PmFv@)`:[vƠVqQai=BSvuNn{04:~kΒhڃv܍ќ!BQtEi՝U_zr+9Bx'B!0G!ut夲Ǝ{U"^;O[-WoƛSzx[B1>%!-=p9:9 {Ikj6#Deoоh4;doskyڶy?\͠.p%l3i{6V?*7L+x3Jo=>ڧT"qRxe/Nt`۩}8W=\֜+9bR_zB%ɠџխ&ܡFW$Qu L,&9&4G"1^OER9W-:Qy+:9emu*HgPg$;YR9 %vm(f>8p!Z1JٰK_ROVz;/m뉗cɏ*nNl0'le߼moPxoSe/^ IDATן8cy//WWUA5omg[IRA5W۾ml//CU7}|6tZM5IۛDoz(~Ga >^$F/s ( !csΡץ͑taOcZ,"8l߷Ncn\q%sK[!pWGӅi0w.z\a8{M@}v$Qل-}<>\BQ?UA ʴ[ؑ'aM6i k@try|7đCY5 -)Y &}u;b@t2w1 G\&G%?Hd$ou5hsaNo67 90׶KȭF& `aryȋ'6|ڨUUyȔ$l'MDrXyvL_kԭEHJt>b@|iwu0]O:nPPyj$w8ducfUkG5-`ZBU~EqmL[hl +DxߌC-O*e?|i1&5%]/|],ȀAѴ:*]Zx浣qbe'fT灲!vWR{`Fy :r')LmIaK͟\5fߝ@*Uk3 ¶H_M7KH]<ۯASgU4#W B75ф.'Ņ_Yntc!{%~[^Kfrq[t|ȤwfXqr4oڴ#$>ݠ?i%8ɘ2IɋUJ'f<*сˆ6# ;>ӎf{-[^1"|Hdĩώ ~T9UÚHf{ VrC%u/s {Y`Ou҉=#p:öCtjΓTӃK$qK-cf%{|%6pQWD?(aUTIp4\ljTk+kR[Ч´!Z+Yi͵LN8l2TȗǬ}Ο0zr}+5|{>~\5 0s^K2S]ikjUczS]QjI}p5ogѓN1\{:U1mo0aC{e{ԫtEifjfu @²)}d`8jzl$Pt$vYWCs 9\Ra鿑RI{V賁bN+K$Qו 9; Z&m~ҟjNZ:uH{s+$3m08>VϾ=otTFtX>yⴌ\yV.<]C')1@^[b,쭄rd*a(1YeO6ݕ+Y KGH+h8NRGKBOPOYWҕE*v$|x2RWj qPOEiTEFJ3t5Y2sD[OWh%LyU&ߤ5TaڳeO)Ԧq,v5;,1 VRk_VGC=^_ C/%U5-:ڵA,^fQ2ݖ^ocq 5I!aM/$zL?HcO6׿jitժvQE),z@V\[8Cbl$EIJs.l֘/ʫnb!D@cY( |l~ j~X Nxl7UlQmj- tIk~a)1Wbw \]nkoyXCުǥtmJM"f U86I .3ͲyP_b8R~"`輲1e(}q7s+T&‚Lv\HmͪxIFNX.{{v~&eJTYTie#JU' A#oI~)^vovq(-7վ#8ڒv5zIdvfj b3b%*ìbT{1G_\ۂ>.A֊j`A g *Ewr+B=-RL] U HA@Zye-- LTPU+)I)lʴ:A lE& ,J*<Òï͛S'dXf0jNڣb9?NbƦ0IP9]-hëFyW g{|l{l=> 4XZGSizgŠSRKMtT*n]Fj- RS?^EEݾ)v"UҬR),Idm=l}\9"-&dT-*:Dm{f̗%2CMʏL'zIp1Pi $#PkE٬c'1/ k*'Ui6k 8=i\xAQbn e6c2 5e9/9vy zThWO{kٹGwV u5?6@OuIGE3J#\-$&Oc끊h;XoFS kѮ8S4+pn,'0:5> GoŦeF=w5f^9;)ꁋnzzmأ9Ҙo/3`dwXסrn00BBzG'?K9=:Za;ML(x/h̎z4$`oZ9G.M *aW>$$tuMziDN @T۽W%v:,&BتﶿRn7ߧ *>Q&I* M~X V&F"K{-oJS?zWrg>ݼ*nUPbD",*:AϤSGT`U(x?f״fi=BZDiĈi{,k/tb! ǀcB:|E/4Yy]{M$ܮgS.k-b4//iM< sfedPD-LS3˽^-QsLKKiRK .. 1 3c wνssgg,^\oKaߤA;yX@e&╆tkO> zϕZm;2KDGːE_pZ԰϶ƕ{iq0Yπi+W|74+=gv,dJ_v6]jQVD&bDѾEV(iyRC*wY~U}ED5'dɳ&icWҀ.jҫơz뻶aGg&neC*U}7=yÿT^"ҫ/ hcY<}V8m$K\h/Smɤ=پRbջxˈH>oҥ2n Wٶ&QZ$3=ܴː sЛ6 ho皛NWC)zVz}N͂74mבF[v 57 cy.Aމ3,p |q# >^B^}ZtWcG`ƮmѺ4~ju'HOoDTjVϤ^\#""(8 ܾvzdTE]z54J2@w/aݍ=1Ywg\dVv *'>5KRJSF(+ez#-jVۇݢYd6SUeD7xPf0^߶]4D_k=FjvwX|um1c?EnXcqTeWm8zt|b{Nݵ|tDY:3Nv{"It|8l..LVuҸμC+sĈi#J&uFVcqTeJ75l)==^%.i=CZWnyjO#sN?l+J[Z}kw8v$!ƈ1-szRv('[EaҰo R?3ѝhjUoI pfHH|إ:D$տP'0 s]6maH^wqݑ60ym1*d>,ƨ}~1dU뽾Gk&ҿa1՚~[GDg\6(Η1&n=>qEGY ێJJO+QDDΞmͤ}PL1FLFu{pty=u"!#HMu;ۆáOE81FL@Q(LA{(H\nͲi8H}o'Dg9TЎ[ tW7X#܍;^kNA>WIhis~;w=o #"ݽ]qi9&Sم:cbJ Aԡ0}H46!_]nYGځ8:CfkR`w|Q)Ο&GDz9:%П՜T+44\6zs˕b>I8.+am|ZJs5UԢol=۬,$hڭ؅)M]ewUq߼|{nDq잾,_."Шx""On^9hȢr}J};(Ubi̪A@5\DAGp`~}IAS)ԏޥjm=GsnDoi2(CNKwDD7OIɱ4?f͡S%bʱjq(e.MPJ\R.?WHZ938*dUqH#kwoF/C7Uf٭uU$c׹y]'2aZu_{1~qt~-JT#C""JϴPM-D4$nE7$b4?(I:}UF*2-o{ٽsOr1f=p|q2Vg|}ѭVyGծGW>]^47ߧ C"})3@}M/t0C{j7D+m/!Od4.Dޟ%uDRQlUIAB"nW7@@RKq^7k j6mm% k#Y[q_C "zr1钞Zޥ{ *$nQ"CV\DD4~![i-9D"ӊ4$GItӂ$%"Gghc@CZ =^ky,cň#m*&ݎ @/~\*bP_1s}VAnS9MP}p-g mcK&81A]vۭט_-S=kSQLT/K)(h[t?v {kө{]ʌzCNE4'ht M TϏ_S7)f>iAB"m[ kB%BhJ/pDQ _}2ưzIˉUෑUI"o2V.ɳTbd-,2$ZlDшMދ*l_FNhfjFDW'ڌvEZ%{Lsa8ڱxIo1ERG}^"tp/v~uJ ze wKjjٗw&!=\k0F|C9:]ۢuCi̓c74Q)ZUA˗kDD;{ iׯGFE[t:ݵWKT)TBtw.0^LW|N䮔o b{H$Pq0xFP(*U>}Tʼ b7ѣ5k,aaF772Be[qgM}iCT]ٳpw;̕sz"ۇݢḅȐK$Db֗&@h.̎bE;`w(N6Z5[?Tsm#\;'Itk-[ ȄBaz41XAQ[FT$ӟ!IקQ<+'''22ҳR4uNNJT];''MzV t|A2D"#R(?B!p\%Ň.i=CZyϽtbu =|pa6nӧOfffT*gIj,:BZP&z9x޼hFWT =^aâ"#׬Y_V֞_ֽch=TcǏQ>}"jP*QQQMDGsUaryQ\\J""ZݴiSD"RcCZx<իGD@T֯_\G_8LXFm;<.i=CZ 6lذys nƍ i=KɽQY͒mhQe&_$,KkMrybISK@q)y>7ĵUW_0ssrrz'4ocഗfZ|/xK?[}zMJsb/|oٿ<ʧ̣obo[2bCnz_ިǘ/~KWT cWc]x7݃ jZMcLW+rΓi~BUc #^9IDATZ>s'(tz\`9%Kw<<==~m"Zp={h׮,Ph~\A u }rBVu$4V}i1PJD6KODտ֩R);.ޢ:0Xȩ6cG=ތLj:0rJZ.Ocf^Їet/OuMݨ[wzM<-2=v=)艄vvI[Z~4gd)7nlI}}Is}movp üſnlº_ߋ;YSeee߿MLLةӔSJcCZDip/g1tHAonDDsQ2[F?j^ YqbW `\ƑNp-7ϟoraoo>G't3"aoߝw"!˩]MLjkԪ9=?@~JrM6ʕժ=klI8NERδiu oѸH"f &Mm=klhef& fSD6k}7ql"L9;pt>yX+GƯ_rY_W~69ӧYBRbMmR麦ww/N:c>)pqƌ=(ă.wx3yI_ˍ7\&WI_ļ1L'?&K;}ƌ 7>cFnA=[zH$,٭0d 鄎洛>2-pֶDD9wO~OGD#0!F75"qMc/‰4f͹(ho=x01c<^]_eҎ}2xժH-$غπ!c{;Z3jaU) kw~{\~7H(XRڔ$ndl[m|P_ug~Uh)G;GѼ)))5 N8N,wE$qWF`n=4㽃/4,ͬ3w&5Ww&pRa&)q+絋C=9Γ7=^?;[_41LL+N%&*p>u= T9*eTͿkI&5C>43iպ_Sf7NϦ4^uR^<~[9:Nv%&"{HLʺVW^F:lz DDz7MBQZ$̨Wx3#)x!w+Xvx$/Xe.wVxfU앆)J#%GD1*i¬2]WGzKZ^S)&'~_ċ7f?RcmY xm\5sÆF~l)˛v 轡Z~/6 >Ǩ޼U0U˶7޽ai#7=N=7K7ѭჄ)û5 f'~Zz ':]ۢuCi̓HOoDTjV-S/_CpjwnN~=2*ܢ]Z๴z͛7c @ ogU=@(nn+8bM&;~hD͚"({hXͭPVi8k׮]p^Uj^_@ BL&IeWq*ѣGҭ[yHOֻd:>N+۷o| Ϛ꟡c/&oڒ7o͑:cx}s{^8Y5s1aV=Zck,CxcyM#χݨ8qB% xq?.Xz???Ry] 8R_<~˺%+777QMfHSlz TYi!]B\P-o-b.$fXR?.'حNH$"ȿ?!gU9z^. Ba99K{N7w~2mڴj5nn=o)+\P I7]1Evј^t&dl `ƍ>;I';U>\Pܜ T*&9rD*dV y'b/EvŘKjfiB-Ec6T\z Ѕ rT*ݾc{Ff'/prDa<233L31!WϞd1üc㉌CK]0(NZ)bx sB͗n:,T[\d̆?0Z_?3_ 9! ?@,,Z0%ɼy>>>BZPn߹3sƌϜ9QFJҼ1!wKj+Ȯ{i}fZ-Ofj_~իW3{wfΜ `e֣2s ?U,>pwVС/G.ӈE5Ou +`% &thȘV2)srǏ5j4CZ2aZZ(l{z%=-?ӫ~nsm}Y ~&y-#5?GVs'-&wuE)ӻŲԒ׽fda bj[:}XHڂ&$2GXLJ4Q3&  6'ße%3l`<+YODCyy |,Av3 嵐y;SWe&^^N;<$J%*uNf͚6mӦ qgq*GsBulٵb6$QN>Z MP(Sqg?\+tIRo?'t:]ݸB~T?!?AzZ`1,TJ73J ''N]bJ ŗ.\ǣ^0@`L 2H$d1q i=zp Z4هZmOΆ:0WMVO&˹HL{sw}iY0N@AA̚;wG;C(0$0=7mz{atMWq`~]Ј~an=& Kbt:d^^^6CT*}R_ڴz~_.Dz!"kYy͞Ώ/y{xk!""+wSϒdDHtp0 NSqoIރc|>{H77rH ^൪\kkٹj^[˵TδtFb;ٹ{3E/veŢp[~w'O섡IKwrwl涬-j Y? mnUġZ,5$i&hvUmkQY-|-F5{ob;|/4w뷛,]:b͇< ;K ~%p?wNTJJgtP cyKR777L&Q5aIENDB`source-highlight-ide-1.0/doc/share/doc/source-highlight-ide/html/source-highlight-ide.qhcp0000644000175000017500000000035011346256134031504 0ustar bettinibettini source-highlight-ide.qch source-highlight-ide-1.0/doc/share/doc/source-highlight-ide/html/tabs.css0000644000175000017500000000346411346256132026275 0ustar bettinibettini/* tabs styles, based on http://www.alistapart.com/articles/slidingdoors */ DIV.tabs { float : left; width : 100%; background : url("tab_b.gif") repeat-x bottom; margin-bottom : 4px; } DIV.tabs UL { margin : 0px; padding-left : 10px; list-style : none; } DIV.tabs LI, DIV.tabs FORM { display : inline; margin : 0px; padding : 0px; } DIV.tabs FORM { float : right; } DIV.tabs A { float : left; background : url("tab_r.gif") no-repeat right top; border-bottom : 1px solid #84B0C7; font-size : 80%; font-weight : bold; text-decoration : none; } DIV.tabs A:hover { background-position: 100% -150px; } DIV.tabs A:link, DIV.tabs A:visited, DIV.tabs A:active, DIV.tabs A:hover { color: #1A419D; } DIV.tabs SPAN { float : left; display : block; background : url("tab_l.gif") no-repeat left top; padding : 5px 9px; white-space : nowrap; } DIV.tabs #MSearchBox { float : right; display : inline; font-size : 1em; } DIV.tabs TD { font-size : 80%; font-weight : bold; text-decoration : none; } /* Commented Backslash Hack hides rule from IE5-Mac \*/ DIV.tabs SPAN {float : none;} /* End IE5-Mac hack */ DIV.tabs A:hover SPAN { background-position: 0% -150px; } DIV.tabs LI.current A { background-position: 100% -150px; border-width : 0px; } DIV.tabs LI.current SPAN { background-position: 0% -150px; padding-bottom : 6px; } DIV.navpath { background : none; border : none; border-bottom : 1px solid #84B0C7; text-align : center; margin : 2px; padding : 2px; } source-highlight-ide-1.0/doc/share/doc/source-highlight-ide/html/doxygen.css0000644000175000017500000001473311346256132027022 0ustar bettinibettini/* The standard CSS for doxygen */ body, table, div, p, dl { font-family: Lucida Grande, Verdana, Geneva, Arial, sans-serif; font-size: 12px; } /* @group Heading Levels */ h1 { text-align: center; font-size: 150%; } h2 { font-size: 120%; } h3 { font-size: 100%; } dt { font-weight: bold; } div.multicol { -moz-column-gap: 1em; -webkit-column-gap: 1em; -moz-column-count: 3; -webkit-column-count: 3; } p.startli, p.startdd { margin-top: 2px; } p.endli { margin-bottom: 0px; } p.enddd { margin-bottom: 4px; } /* @end */ caption { font-weight: bold; } span.legend { font-size: 70%; text-align: center; } div.qindex, div.navtab{ background-color: #e8eef2; border: 1px solid #84b0c7; text-align: center; margin: 2px; padding: 2px; } div.qindex, div.navpath { width: 100%; line-height: 140%; } div.navtab { margin-right: 15px; } /* @group Link Styling */ a { color: #153788; font-weight: normal; text-decoration: none; } .contents a:visited { color: #1b77c5; } a:hover { text-decoration: underline; } a.qindex { font-weight: bold; } a.qindexHL { font-weight: bold; background-color: #6666cc; color: #ffffff; border: 1px double #9295C2; } .contents a.qindexHL:visited { color: #ffffff; } a.el { font-weight: bold; } a.elRef { } a.code { } a.codeRef { } /* @end */ dl.el { margin-left: -1cm; } .fragment { font-family: monospace, fixed; font-size: 105%; } pre.fragment { border: 1px solid #CCCCCC; background-color: #f5f5f5; padding: 4px 6px; margin: 4px 8px 4px 2px; } div.ah { background-color: black; font-weight: bold; color: #ffffff; margin-bottom: 3px; margin-top: 3px } div.groupHeader { margin-left: 16px; margin-top: 12px; margin-bottom: 6px; font-weight: bold; } div.groupText { margin-left: 16px; font-style: italic; } body { background: white; color: black; margin-right: 20px; margin-left: 20px; } td.indexkey { background-color: #e8eef2; font-weight: bold; border: 1px solid #CCCCCC; margin: 2px 0px 2px 0; padding: 2px 10px; } td.indexvalue { background-color: #e8eef2; border: 1px solid #CCCCCC; padding: 2px 10px; margin: 2px 0px; } tr.memlist { background-color: #f0f0f0; } p.formulaDsp { text-align: center; } img.formulaDsp { } img.formulaInl { vertical-align: middle; } div.center { text-align: center; margin-top: 0px; margin-bottom: 0px; padding: 0px; } div.center img { border: 0px; } img.footer { border: 0px; vertical-align: middle; } /* @group Code Colorization */ span.keyword { color: #008000 } span.keywordtype { color: #604020 } span.keywordflow { color: #e08000 } span.comment { color: #800000 } span.preprocessor { color: #806020 } span.stringliteral { color: #002080 } span.charliteral { color: #008080 } span.vhdldigit { color: #ff00ff } span.vhdlchar { color: #000000 } span.vhdlkeyword { color: #700070 } span.vhdllogic { color: #ff0000 } /* @end */ .search { color: #003399; font-weight: bold; } form.search { margin-bottom: 0px; margin-top: 0px; } input.search { font-size: 75%; color: #000080; font-weight: normal; background-color: #e8eef2; } td.tiny { font-size: 75%; } .dirtab { padding: 4px; border-collapse: collapse; border: 1px solid #84b0c7; } th.dirtab { background: #e8eef2; font-weight: bold; } hr { height: 0; border: none; border-top: 1px solid #666; } /* @group Member Descriptions */ .mdescLeft, .mdescRight, .memItemLeft, .memItemRight, .memTemplItemLeft, .memTemplItemRight, .memTemplParams { background-color: #FAFAFA; border: none; margin: 4px; padding: 1px 0 0 8px; } .mdescLeft, .mdescRight { padding: 0px 8px 4px 8px; color: #555; } .memItemLeft, .memItemRight, .memTemplParams { border-top: 1px solid #ccc; } .memItemLeft, .memTemplItemLeft { white-space: nowrap; } .memTemplParams { color: #606060; white-space: nowrap; } /* @end */ /* @group Member Details */ /* Styles for detailed member documentation */ .memtemplate { font-size: 80%; color: #606060; font-weight: normal; margin-left: 3px; } .memnav { background-color: #e8eef2; border: 1px solid #84b0c7; text-align: center; margin: 2px; margin-right: 15px; padding: 2px; } .memitem { padding: 0; margin-bottom: 10px; } .memname { white-space: nowrap; font-weight: bold; } .memproto, .memdoc { border: 1px solid #84b0c7; } .memproto { padding: 0; background-color: #d5e1e8; font-weight: bold; -webkit-border-top-left-radius: 8px; -webkit-border-top-right-radius: 8px; -webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); -moz-border-radius-topleft: 8px; -moz-border-radius-topright: 8px; -moz-box-shadow: rgba(0, 0, 0, 0.15) 5px 5px 5px; } .memdoc { padding: 2px 5px; background-color: #eef3f5; border-top-width: 0; -webkit-border-bottom-left-radius: 8px; -webkit-border-bottom-right-radius: 8px; -webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); -moz-border-radius-bottomleft: 8px; -moz-border-radius-bottomright: 8px; -moz-box-shadow: rgba(0, 0, 0, 0.15) 5px 5px 5px; } .paramkey { text-align: right; } .paramtype { white-space: nowrap; } .paramname { color: #602020; white-space: nowrap; } .paramname em { font-style: normal; } /* @end */ /* @group Directory (tree) */ /* for the tree view */ .ftvtree { font-family: sans-serif; margin: 0.5em; } /* these are for tree view when used as main index */ .directory { font-size: 9pt; font-weight: bold; } .directory h3 { margin: 0px; margin-top: 1em; font-size: 11pt; } /* The following two styles can be used to replace the root node title with an image of your choice. Simply uncomment the next two styles, specify the name of your image and be sure to set 'height' to the proper pixel height of your image. */ /* .directory h3.swap { height: 61px; background-repeat: no-repeat; background-image: url("yourimage.gif"); } .directory h3.swap span { display: none; } */ .directory > h3 { margin-top: 0; } .directory p { margin: 0px; white-space: nowrap; } .directory div { display: none; margin: 0px; } .directory img { vertical-align: -30%; } /* these are for tree view when not used as main index */ .directory-alt { font-size: 100%; font-weight: bold; } .directory-alt h3 { margin: 0px; margin-top: 1em; font-size: 11pt; } .directory-alt > h3 { margin-top: 0; } .directory-alt p { margin: 0px; white-space: nowrap; } .directory-alt div { display: none; margin: 0px; } .directory-alt img { vertical-align: -30%; } /* @end */ address { font-style: normal; color: #333; } source-highlight-ide-1.0/doc/share/doc/source-highlight-ide/html/source-highlight-ide.qhc0000644000175000017500000002400011346256136031324 0ustar bettinibettiniSQLite format 3@ ;n!]]%tableFilterAttributeTableFilterAttributeTableCREATE TABLE FilterAttributeTable (Id INTEGER PRIMARY KEY, Name TEXT )b!99UtableFolderTableFolderTableCREATE TABLE FolderTable (Id INTEGER PRIMARY KEY, NamespaceId INTEGER, Name TEXT )h!EEItableNamespaceTableNamespaceTableCREATE TABLE NamespaceTable (Id INTEGER PRIMARY KEY, Name TEXT, FilePath TEXT ^amnet.sf.srchighliteidesource-highlight-ide.qch  doc )doxygen  ??*-hh!EEItableNamespaceTableNamespaceTableCREATE TABLE NamespaceTable (Id INTEGER PRIMARY KEY, Name TEXT, Filh!EEItableNamespaceTableNamespaceTableCREATE TABLE NamespaceTable (Id INTEGER PRIMARY KEY, Name TEXT, FilePath TEXT )b!99UtableFolderTableFolderTableCREATE TABLE FolderTable (Id INTEGER PRIMARY KEY, NamespaceId INTEGER, Name TEXT )n!]]%tableFilterAttributeTableFilterAttributeTableCREATE TABLE FilterAttributeTable (Id INTEGER PRIMARY KEY, Name TEXT )  ^+b5+B!AAtableSettingsTableSettingsTable CREATE TABLE SettingsTable (Key TEXT PRIMARY KEY, Value BLOB )l! Aindexsqlite_autoindex_SettingsTable_1SettingsTable P!IItableFilterNameTableFilterNameTableCREATE TABLE FilterNameTable (Id INTEGER PRIMARY KEY, Name TEXT )H!99!tableFilterTableFilterTableCREATE TABLE FilterTable (NameId INTEGER, FilterAttributeId INTEGER ) E=CreationTimeK\^'EHideAddressBartrue+MEnableAddressBartrue?uEnableDocumentationManagertrue9iHideFilterFunctionalitytrue=qEnableFilterFunctionalitytrue 8]=CreationTime EHideAddressBar$MEnableAddressBar8uEnableDocumentationManager2iHideFilterFunctionality6qEnableFilterFunctionalitysource-highlight-ide-1.0/doc/share/doc/source-highlight-ide/html/tab_b.gif0000644000175000017500000000004311346256132026356 0ustar bettinibettiniGIF89a,D;source-highlight-ide-1.0/doc/share/doc/source-highlight-ide/html/settings-wrong.png0000644000175000017500000005354111346256132030333 0ustar bettinibettiniPNG  IHDRKm pHYss.tEXtDescriptionWindow Class: source-highlight-ider"vtEXtTitleSource-Highlight SettingsW IDATxw|UlO!^D"EDJ@ QEQ,# ͆(M^B mMI62ٝMps9so%{]~S`0:G/#37 yx/ j' Tmo RָؚE<{RUCCn;]XM# Q<$ByG%*տq+E5ӭ6/6ΝMi]6£S̢۪dR)N=GU*L!2nZW>@IC_Gs *"ǖYJBXndL)<2V_V|kڿ~Q~SKy];]XD~EC#+( Q`RЀ2me=;/?Wq=C+(* PN 1۫<'ly@O45IR#D!k߫ uT&<$tʫ$BOT% 'F_"RLJ%:~15t$؆,!cLKo/j*4^(ó x ol'a@W?u`@"<1.`ւTapW/0A xV(݃˿ߚ L-V+@>ɷs8Ж\pQW`TL7X7f뜛 cک"i>n./>u*u CT F ֥0 TxDi_"Mhr)Ŕ;O™[Z ;vIBWwkqet@c>+t y4|i{ By3XShXME9BؕKDW 1aܠoaL_\RHJV"|'VP2M%[?8e|ޠp+#v{>֗@!$%%BvJFQtEqFk݌e3ur+GH7^(XBCDTۨ5}2ONa3~dWesR PI*6^)I̯> #AI-<]$txB.RDQ1P)iso?#*$"ڿsJBD3yuxDTF&v~i5DF-6t2B^:͉I|蠐~Ւ_G 1opղUȱṣ@W鷬N.8~ "-dIWGt FJB>=pR"L4Q9AhԈ #Mv]y'Ĥ̏7oX;<iI o"e>]H*VFLou; DũvVJ?э837k`YVEAl/*״ubɱ:iyþec(l8 >A@(|RP77ȇِ+摉x7g6lZ|zwɾda2OYoX{3Y=K)0޻=}[-8]C?ukG ?P55$]$v#oZJRgI2th֯:[οzH߹}ɊHTjK}4v?y$5X5R@ٹH4d!!_{`HnBVi-sH[IF:U^+D |2!JxccQfFRyJG:'i\3Bm SPTzF)e,p܌um^)ʾ>D5[裱rQ=98WssE*K %qA.'+׌3Ux+j:寪}sK4@/h 2'?lp IJnZ)귥HҼe5\aA^YJrN)Jb瑒Qc몵6~'NTQp-!hIE"IR !Xښ]dnc H6(P|! g@xe@Zwb$YH4Vɨ}([Y4 DyDR' Y8$ <iƊ2,uB+ 1Y^\44։WeA,v @`s=zc>CRy]2\JejKD!0NۨQFQ~}?(z[JLIul @0Gb%xd}#ԐLP Th5EI QHuw(U@-x*8bK+/_{tSTI=W&"xKqI0:@YQVB;8HUih(*x?ʥ;-!F-=7'gx-O*Mz 8$Anj[ѨĤraDMaWvLTZ<5֝=`0  P>Ri }R0b.CT'pQZ1Zkg]ŵ& >nA7EK8[M9|M촪U/_[g{gX1Re3:fYv8&m4EXMIwӔ)qW++XwQ( Tn~촲v`Sჺfƽ^{MsGϾD+; [gWE2U#uu5San-;i4];2 n)5IAXq;>u1P(@lܐr)b[ nRMM&MBNh4^W6ɴVR;hyMd'ÞC ǝe)rm{Ȋ+ jZAE4Ti^J oR;,5(H7w惓+@VY;׬|_,ajE=ݧ-Fc Zh,•ZlSڶA ![^L D< ؎OeV0鲉zwjtZ,kĕ7VڵƶF[q :.],TvhǵuxmZl貉G4ĸt pEms9P|5.P Ҳ;rl*(e]6QM}m]`\ͤ(ӛ *QɌP}=k-\5iWPa{mƕex8ֽR^6U\W~:&:{.+hph zZ`]s[ˆ`>':fvm: }E&^_UEkf0K+~J[ JĞLfw A Z=d{j6. գ87wf /Ug޸#CжW.dm׮٩޾)%)uk/v츳ԭer5(W\KiCDYPCI]ȎPS kBuJ%vLխ3Ae:s) .jf5p}Y #E6V:iVy t脸k5 Y<ƼbHԊI+L' RԮaεv]C}=g].Un[!E,q|ER+YARuҔԉ"Z&o3[HKlX;3E:WA(59֪V7v wʆ*tX~5 ڷc0DΕ/+aL:(tH\eϦ.{=wp#a#㻶Hhr'j2>]2y_#R>|UZ_UfElч6,e9Ppε\ݾxb͓7Oj}[o3n !DxqԶjwu/-NM mVɻ xK6c/u,3Fo^2w\im<0k `#/S_i}}UHOoUa3)tì.l-}q; Sw7N N̓bNBSb͇kU@.=H7hSA4B$]FO mJݴ{쭃J^-3wRiC[*(Zܤ˰CƬ -2t#,^?57mGsk6O|! |P)WtzQ&5o wQ|Ʌ-iԼyG^f]t͓Z|ی>״n5e-d!mFn^e]>{~ԶZ̩뇵ci' 4:r~iprzJS?4ؽg߯K}m@ dlj)7%3צAcfK۽'E"@K/mrg`ōcwPb - IDAT\V}CȖQwVc3: }u"vxK F5SK(V>qc3t^40w~r%n;SK uh!eR܌&Ґ]z3M MP~R^_~h>sրhAҲ1(ʿKVmb+e~l+;fڌWNe5M<'R@ۗe",u=7]lIMGt |WKB*ZN*$~”I@&D_WC( jSf8[`UL5}v^r@)f̸fysZu Pâ]5hA][(zG& ;_y@LV\‚ST> !DIz N,>%TTjCcgR@dO[gVh2g2Eʔ40!g3JQ>f)%W,ܨVoCf0EHv|#H3]Mu~3gآLqѳzmHIgJ"Et&Ƒeb{~?) Jos7|Hvxt}d~gn3r{~GsGSj 7_w? ⌬ mQyPIc7 *c6/6:׆Xp՝*AIzК7wBt@LfmO(j\\5uT @Kc"h:|SpiSOXa &FAR0ԭ,g~Hd3 &)/K;v5TZ X]O=t5as?ݝj)ҧ#bozg\#`8jpmia"~ #b/ld yU cNQ)EFKAՍ[tWK9^s}9-F e:8!LAWtz7)*d̎!d[Wkvk]<ԩU*0.ڙ*37|ῷ 8ͯ'H}f\N:ϤϿ|/~+s<ޮF-k}T>]>`E$'WyK}i;bFϒ./f!C=:syگgmeˤsT~s.48^VB~Mr/uT>hn^pxtǑ+[<BxI~t,MsN=xc߆*Mzn"=aI;&3c?NK竛,6\ `O@eC>[}R0Iݙ7{གྷ_>A;b~jcvH? %Ejr1x9?No};\SvNWVJB6gf n(}]A/8>P>}k r6U7戮"[iJu^{ilR1[kxtmmҊ7`@oJ*.Q}k v$ILo:+)L@Q (J'yqtcl7gξJ>ހ_H[w`0 cϚ+{:k=ֵ ":X#'R":UCHuiyxߵƶR0,b}i?'wnڸDŽ3(1<8(]<_BpHptϗc^hOXC츩CvFͳ6 j;ݿYm53v-{HJ쐼fL˗ߤ-֍?wdz!)0sPgfOOwo-g@wMSn2];,i0[W_bA!Aqm.?uk~7wPbxppLzGԣ9mvَQ&Ř`Qg~)6pM=3>Q`ɛd335}qˬ_lщt:pLV9|_OxQ.dfyc.xi{o߫xqVvm*o1cj˗cxǼQ?{ͳ>Q0 guКg 8L뵟rGm [}þ:}(giAK/iywwMථ۱: cfCL5uF.akIcwA_Z2C0srÍn%^6oܻӣ|]8QI/.*@*7_ysJMx qF_mHᵿYޯ5@y7sQ`lQ[#X>VeK7^yg/'uu +t//,v90iP||O@;L 7Z5BN"ɽR ;ni@_wr~er@'ȚI;kx7KHk1R]&ڲ6 4}w]7JkmV;h Oʽ75z^vYhDK;π4["E<o4{҄5Dz ؒ;'OfdF= -:]ǭvK;Ӑ];o53ةeYvn|B›>?rm33o㴎AmG,uZgft {ò _3%v 8mゃbUY'; kkIV?!q2{Ů8cE|6O/u ٣Wfw &6 ֎QhC =nI=yȧ>Q~_'EYikԯGn=J.mv0^s_J 9?N{e-^X]{'×\w䮆0Y{#ګ!UAi찗l{tw^ aCunAY㾩ʽ*Wz2r]*ey;qug"|>+|8{3};ދvxJl'c\SGvnx fta0̃KXc5~ԝ*_*`0/`07` `u`0o3x#X1 ( v`0o3x#K18hua T*H,ሆVg S,k0CBۗ:8/?_.Q3i:c0Ҳ$Zm}ST*ύ7|}})giVR~.G(++ 8Nk8#eJepppAAA 7,T.|UJKJv$8 |9Z8 7/Z[ԵWN`\S9ɫ:|tt޸|ޓm;j@PClWOr߾@#=x+)ɑ3צ]}vvĉFRu|xLhפ.[if;.xgDe.cPM'MBB[d§U$rg#n- ?*}fL{Ę{$r/}ZF CCZE+bˋ' :}4pM'YXLD&ueP$9Z)A*~Sd8[Vi՗/V{Mૂ7@ Em):Ea@74Qb*2sEaQ.O\<쒱*MzjB "֡W<7?]1~!ΜkYy7~2)c =nI c`j ˲oѳ^cهqZ4-ɏ;֤Igi68ƶ6)x!D` 2?bE("`!|Ub$ɝ;whMKܹ-qyS~ 1?5.v`ć RyʕRed J4eW\mԨok2 3#>oߟ7o(=Sn]vƍp???K[W:]8X1P(LyٳNP(P#$v`u`<IT۝:EPj\ԾGHF`:M;o5_jmZ9OxUQ˂ #sU٧5ҵCIDATy7,@q^ȦߪˤE_`5Eٸ%Ny=j=)HmYmؙ[ ddsů}x*号JpG,-ԄO_O6@~50и{wIV)ii"Ӳ?Э[۱f=VGePw3xr-Qw Uf>grUK41@o#\\t<0.[$RT#m%h6EͤHv6bS@GM5/ݲ8 /Sr6|MfN.$uUyf2RH~Ҵ.)Mq[%@~ɦ ԟLU 5i>Ȣ;1%szWӈ2fZZEǭʋu̠AuȺlv䧐?Yw)ԙkkΔ, t8b5ҒZ9r[;SS,6`ʷY6־Λ=[ +.p*_㙏ҝSۏH͚!ro;d5#c@kҜiӄ:` `>WG͔ ˪/Vm>gGc3=[/3&Нq^}5W+Qw 0IVd}xXsxF<GX鉴L&[n9~'5OЊ?-*VׂY# *7&̯ARjn"}q-E(f \)vLuL7%!>Y^qh'QZG}<߹E8GV,k%8I'?9@sUn.3QJȹf~KS= IrHsxj:͵s>体מ;B1 6ؕ(9]٧1ȋ'2%'*B7sS| `ƍ4"]ifh"gZ䝖8 @ZAp!#`XIz _8!l?غ 瑓rR'ly4 <#c>|~ڗqj򅋷R[6|+B!޿ò T &;+8/Kҕ# k:I?׷-Y-م7L_qG'*lz|9[jTqWS)eM :uJy[rwAA(uM#j>nZBvs6P맯Y%[侄[7j=l٧?w˶O ތ he}_dz'DԷ?W@ÿ~̮Br i\.9?NB_0<=Z.~R:c0 P_m+a3SG,k4!DoIqqNNT*(g)ֿ 0ci4ZjWP>W\H$v {`Zݴ93SEDDp=ŲR 1mia2 E s*xJKK;{;vΏ-FE̘=:c0u[p?#{SS֔kX?&$$v;~TbEu-7X sǥE 'o~ș>ˢK۴>wpj)8IuNjдyϼ\"X1MUɛg׿K>}\޾#&Ǝ.?~zO%| U `]KFu*D :iSap=0Cg/18 sOr̯xܡˎl?Yy^=+[ A?oP%;'+<6oXxPNv\b`9u, &|~eReXo̵K3~?g=q0/!1bzuDCJ˦շN١j70.g@oV LH'pGko#X8j9d 1JB[0P:u;#H˖{ fgLg'F))PZ4b|kcCݲ˿]<5ףİɓlk.&Vo+2N_kO2:e Z,ZfdFAcK*erjoȬkϘaaU.ppخt N:'m5<`S]TZvN?"||?B'k]U|8Ll^z.%D+t1<Bd IuvOhєQ(71(0_%^f ٪(5[~U4*5%t0!®G߻Зٵ$t7jHkXHY쎓kI !]KrM?Н0nP9رd|/=VfZ8?xy37У`7ٝ_՚^}@o$D 8" H& cmXzHql~jIIiNLXrQ~_]Ԍ_ `-,:`yaYA㨞 !D!p<|t(yco𲘴zp^r(>Ji稐/ZE7睱ЏM4jY=?:N.MخVtx1EQlYQTVۺ%4  X̌ 77ك4 q-a[Ex i$DQV- rqat] gBvtG+mg=ھG3izJHܭZYD0m=B_@Gw |az=Cw _RAw8#aE999NO;8 >Q|>ֺ_]̈׷Bi)S1X_>k?'Hc5AiG@@'}0c1ƘFqc14Lc1Q`2c11ci'1cLjÇ+׭[7hrqȑ#ĠA1\l޼|I:v4`!11p+u֚\TL>K,AΝk=}0`N0c5 BbŊ:%B^F9s>}:`֭\K ¬Y1Ӻ~NV1[̔xzzb׮]0661bĈr ** ?v }}}L6 p AWWåKTe޽666JĺuTe7n-Z@*gϞ=ԩ0qDdggk{1cssaee333ܹ ,,--g@xx8f͚9sm۶kCqqFES0ͩ8|0Ѿ}{ܸq4wAnn.JKKg"&&8rN:DL<WFvv6^}Uk "_|ݻ| RSSm6b۶mŁ_j,XY? ?fQObӦM2dtuuN[RR+V@WW;ww^aĉ… ĉ!ХK ;;066;KKK̜92 #GĴiӰo>`ɘ%K:t($ +-ÇGPPjXaa!D"> HKK66c1PwʪUY/SSSa``Pnd2RSS\ DTVZiezh٭댌 @TTbccoԨQU `TTN DDbH$?Si9GLL ǡC={ɓ'ׯٳXmcLp΁#G}vxxx W^իq`HJJz[XX|||0d"""*UG^|^Ν~pvvv#F`ʔ)#.^u֡UVxWrJBWW:::ҥ ϟ#Gf_+W1p@ܾ}CD"[[[Ƿ~ٳg_u; GDDvf8<`!ݻW^СjxNN.\sss888 !!<+RSSqU 8&&&$ܼyڵƍHNNƠA`hhX`ʔcU" ]΁5q1X8 (~HTpfQ&_&(`D1+@00A4399/A_T.^Crr1c ~ j߄ %_X\`b_ "cR0B>=FcY*| ( òa@z`+NTYo,odf,{o  c1ʉ "})6`/"g1c'1cL8d1c &c1(N0c1ƘFqc14Lci^)fLc1Q`2c11ci'1cL8d1Xk N0c1 dgg~ѴӧOÇ+N0c1 t wܩѴAAArD8d1ƘJGW:<99Ǐڵ+1m4( %%>>>qpcz,X/,,ӧٳgh9rN¶m`jjm۶a?0`Ϝl Lci !((ƍرcaee[RR+V@WW;wall X cccToؼy3N< |HHH15Bc)0;w.!U~ۼ*k3;v 8x`ꆯ`2cL+t$L&Cjj*222 =B"T*EV}'1 'իXz58,_IIIZ_vXX|||0d"""k./1cZ5l0ݻϟxzzt5k._\a|r{.,Y33^&9A̙6o~SHc1VN\ Lf( H$ ÕJ%233ѦMjOMMիW1p@Ԩ|V!ci^)eUO,(333=V÷c1ƘFqc14Lc1Q`2c11ci'1cL8d1c &c14/. '1cL8d1c &c1(N0c1ƘFqc14Lc1Q`2c11ci 0 Lc1Q`2c11ci'1cL8d1c &c1(N0c1ƘFqc1͋ DBG &c1(N0c1ƘFqc14JxDEE K'p$5kkkX+k~kkk899i윜klyhѢVnwkeЈbR0MAe}> X]>8ǔ)SRH4L2Z);&&Z)i^^`aaݺ dkfE@@VBeM+h\B ,ӌJj_}ԣz尗e~Gf[o&c1(N0c1ƘFqc14Lc1Q`2c11ciT)O=zzzpqqL6¸\l޼| 233c,\X֬Y\yccc3;wJ5uȑ#ĠAx_iuY37nw^n1h ӧV=ߞƺxau.wm q|i,4ݾԾW07mڄ'N 11 Ð!Ci&ݾ}t\vv6VX~Q,+VKGaݰťKjNA]*ӧOV_۷x_iԦ.kfڵuV7nӶz=5V:4&iiit/w]ESB[M/}Nӧ~oܸV¬Y^N:Ν;5~6leܹcij4YoAAAoMPSjRzduIc1guUs_c66ZٳgO!..#F(7GdR?077Ǘ_~Yd?^ĉ.Wmnjj L{n@*֭S[t) 0b$&&ݸqhѢwޤ>̳zxzzb׮]066ƭ[GGGd2GPV)))Axx8۫:m9{AN'";;[P3ӧO{g۷ŀ[z eڵ+1m4( SUm=;?ev܉  سgjI:ixXU-kR'5k̙CCCmׯq ŕ|_ۺIM]]uZT*9::҆ (55RSSڵkBÇjӦMCCCѣ$h޼yOdddDdDDC'"200CQAAZ:vHJd2-ZvA۶ms璍 ݻwrrrH&ѡCΜ9CbRRR(((޽{C&L{Ғ6mDEEEtI244sx; O_[-_]mk===4iEFFR||<Џ?HEEEtajٲ%ݾ}233ҒN>M%%%j:M9d2:p҆ mذPU[lD;wMhvE}!"۷6Lprʔ)4eʔoںuݺuӷk׎:TaرkOQFLXL$ d2rssV`9,YB&M2iKJJh͚5ODZJ*=ڵkG;˗U?[ν{deeEDTV!DDgׯ_iܹ5N 1ވʶ JJJ""[K2^{5ωlz*^aMYp!,7޾\`f?x==z􈈈iƍD~ռn]6=~X5Ņۧ=ksu &#"wT*R""r YXXzRN϶&'i, fMeMѣdhhHŪr,YB>>>LRI4vXٳ'Qzzz`ִn+syz7}xb~=%u=ֽOT>۶m+ׇ۷ok׮Qݻ7N|lSˊZh 󡧧v^*ۓ[e{RWOYYY).ǓHS}RSSa``Pnd2RSS\^R}P( "HRjժ^Iյ봹kE:::FFF ** qqq8vmۦQ→6FTTN D&//YYYBbb"VZ޽{!H"''W_ R ¿/<~p п:tH[a5jBCCe8 Ӫ^5Ú={ɓ'ׯٳ}A&Mk׮o۾/6庬ȑ#uV檆x1\\\Ϋ=ksuT=)>z+//۷op>prrիWzj8p666X|9^~e 2DڵKՖw]uZ_g^>\;vtB gggر#M0Ysԭ[7rqqmے7ThΜ9djjJdhhH6mRd@T*%ggg!"x277' oooڵ+M0ښݝhАݩ]v믓BvBYUcH$}gdllLF6m￯׷o_rvvK.kZR$___266&777&oor}0`f?x=:/QZ fFFSVhРAdccC[=ՕWm{Rj/r޽rիWU'uDIuKLoKuurQر#Ғ\]]PC>?>*_Y穫۷O_Yjh}0ku=ֽOŇ|SZZJ^iEҩSuBr޽KKDMt5"*;9QgϞJNN0obb":FCK0ÇLw)7<%%)##C5Lk[)44k.B -8< IDATcUm,K[ug޽KAAAt9*,,ռSUm2+kk.T_Ǔ`VeQYٿ*..3gPTTm.5!+^Keu[]gԵ9ֽ̹SH%D"cʔ)|n_~돯/OióYzJLsЫW/XXXhv|?v [M۷˯OUZc666Bz1cK1W0c1ƘFqc14o3cAxȋha"T&bHZJ=1$21t%iYNK DP͚ N0c1 ;OB#D yopG 4]F_o3cAWZC$E AY&\鸻&_Ժb9.\x-ܹ-DAA J[b ;yyE(,,E~~1KSY^c=U`^_H dRd zCAW]$(J(Ujv7.`a%(-ŅM4{6R>l5Dr7blHUqqi"Hp=fv-6KEp:aoN.5 &x%Gx(%%gd;hZ___X-x @e%…VM45Źdd)Y_VINNFrrV 酘=;ݻF~2ij{|$HLR)6hѢ ++j}bb3 DRQEb>ܿ }sh<B9l0oB 0~_@BdRGA",ˋɌ3@j.DHfk}kt6ú5鷃LҰNM"#cG_гʾn׮LMMV=ŋagg'pD000ZڴRI(FRR>>-HJGzz1JH$DN~1eZ)})RٵWV$.~,m o1qD_Ϝ* -r}.=Č?!==U_DXK" oBWR#t%+P*DhoL:bިy\",KlH1 t<"q>kB_>7!H$:u $\L߾JbXXС04ԫR/"I ާ.^Ƀ&l/E@Gx%ԩN8y28}:%pph//{zY 4A lz!BP(0^*¾=./}dI͛5ztb1[on^ϑ5m))x⦅p*.]zy۸$֮:Jo<4g/>s)/}ɇ T8l`BCo⭷<~FqAA7z9ر <={v~7uTPR_ ǍL 0$,=&fJlEqnnR)dm蚦sbb?h`11XgW;`3?d"h~CW>. f A0JNƅ 1~|ZϫT+AA7{Ѻ>Fѽzz!aKMTt9;G?G̓ұKݢ7mGOGlp6Db1HĐs1t|e^GJ%/6@,CYE?]6?ع3[APw]amsJ$b &\ H_F^TO.M`|Q8l,lwWEiZQQ)v'QPPiӆFĤkr._~|8̚.D"%A^Diw, N0Fpp4N|mڣOJ%N>zS4tR_+DRVOѡuzܻ7 33 hӽ;n^iy3ݻn͛i*._#i)⭷bLwwhZ|ϗ647 iL\OIIEӕ*Jx],^ +czi;6s&;UW-Zi5I۶!--[ƳR9b˖ ^PZy| dfc!=ff2--&&-ُȎ/ ]Zƫ5:66g` nz ƍ00h#z#GАy _y2,Q*w! "L{MP}oI?F bi~޽Դfw<aݺw!6j {7"%%FB֠f4;i L]Fƫ5Z 'LLD#((P6`ee,tFlWA_!  =LGcP C ?_ٳxgԴ|{ѭ_-\C.cÆ$%e9sF}u3q_%l Es=QUK`woiԢkּƷ5@$>|#>>:}4J!|.g1:+M'_N^q=- e+z̅"4 RLw$Z](J d2:4*J±c/bp$_ClP&f(KN[Xc_S &8u/w=7Zq)7' GLJ EOѣ1b }0S;wϏ 4t㲎Ǐ__0}W^y<ѵС 0C@tmaevxS &Ӫ^>hPgx{;˞U" KhJtsfV2RmY? C ӧpu]O>+t8!$&֮ ĝ;O0n#De iw]ZMw=CbZ &7%8u*qd rr ^^e6{䇄?l<-u[bB|0&EEqHX ۷ N2}u1N^T771f Y &Di8~:BBΝmook |@Z^ӛa=+~Չ ~__L޵ ]ܛ"4&z{\\zNq|qWF{ήaի|F۾`ЎO'LpJ%ʕ8E눋K<=0f / HMǿĶ3`f`m!&u}\iNA%Yb}A:c7QX8{ѱ|V^DlDBDgaZИ8d NL@`uDG'Ȩ%<]Fmݤ[hMbL8d޳V@p c&}2xхR {/w|ua5_~?O%:?΂ -#t8 Fbb&6l}б),}-2~pd"'^ڠPCêG% (,,?.^HgggL2ؼy3>n8dMBĥKq?$t鰴4={c`Hhp|zSDF`X|e%Z:,Aɋ;L{ĝ;Axq~ N\O_1>'oǍb d/.2AO67.L: ܹs#FƍC~~>~HJJ 5i7o&!0,ٌy }e //{DMQ`,; ]«^Ŋ +`ge'tXooWoG1߅}>СAaӦص+[cd_vp:ή|:a&ph2 &@__;_ٳ'v܉rYSX3F[K}D],/RVViRWr{+7xbSbK0sw}RQNС&;#t(̧ի"rt\FKKSK(|6)JFGdjjJ?͟?LMMm۶{jy!Ο?ODDK,!SSS%777JHHPMwu:t(d2֭޽:vH-ZW^yƍG6lDѣ ߿N:E $Tk׮$Hm۶vZ8uTpɚH?|O>>O?EӧYB5 v_M= )(+ȠhСfఌ23?SH_D=z|BvvKhTPP,tXSlOuN0Ygh&äIP\,ٳwx}wWCϞ򲇗Wo884OIR6||}Xj|=f ѦUCԺ^&ցc+$񅨒9>x/FW^i>}/(((; QNJ$+N|x6 B;'C _j G>! JU_ָqp) :5j,YcccԩjB3+/XXXɓ' 1FFF"!!Ϊa2 /_ŋ֭[CTVqMЗPkr;w.=H|NsiiٲKrp4B#32mHˏ,UxƆ JY.llQBBСԋ9u[A;L+V\҈)hǀ+tl]9JY} =^ܻwU^JՖS-r RQQQK}%"-[g f͚E~aqa&===:qDXƍGn["333:{,r""222{OݸLjڵxZrs[Csn }n "Ꚑ[K+$6&p  V]ܺwDiw ݹ:v\@۶ ֕*h 䴒ӧhr_ʡ)?DPTKRӉBCCiժU쬚688XUݻwe˖t-""ϧ^zQ@@:tDDt5ѡ 6… K.tѣGI"Pdddo%WWWt$޽{jS7):?6m:Am +f͘:trr egCKVd1ς9  V(rI'M"RjچBT҄ %//&uE LÆ:tG qTP(ٙ:vH&L gggrvvPJHH kkk'www222۷#CCCrwwv믿N J%15y{{bMԧO-[͛C>dnnN...AԵkW0a`2ǯûoRsS&p X6nv~Rq꾝_ǎp:Upaٲ ;vBqD ܽ'ǼyTj-DIDATN!g Z>,M\.VpsNJJ͛7Ѯ] .oܸd 4X7n@"o߾N999p".֮ ¥K1j-[[+êۇpT-: s4\t]vEn1"I`2VJK8>h$'gS'Soo{bq9z|  ĠNzjr:w O;wSp4"88oy..=G#.^|kܹXEcзaɵ]Fm_f};5-`2VϔJի ǯ#.. FØ12Ħ|Xzx)0H C:rOn-^u 농}]uqT Oɩa1* &c} o 0:`dLj=-{ৈxX5q;Vfd`+z/:x~;v g|֭bb`ݺ@GOXhL[^'PV3m{4L UyRtupuoo{m:rq|v3\ >X1a[t:Z9x6H^&mwQŮ8#rUqJ:y2ty,AZbaUu[jnfPғ`8 lF6{?8̆]~ٰa&]S-bݺ8;MY,B=sK*U8Ui}mKߥ $` a+DСh4^|ѕ OҥK/V?Nx;j.+&CzG3(zUU;o_rX~-ٽ{w&4T :1E6OV`baDqa Rx>I(/&%%3HMͦQ(<?gN.w5li{#^z7Ƽ l:^2lBF껜'v.v.]Oص8X4!.!43c\-R)DSS($$dqv%ukQYr.!,0 [K[}H'V1;!}ZǣoI,X0F<[й5!!Lꅩ5!Z+ BbC$..WKٳCc6%}'Κ5k c, wґ'cljkwcdl?hh4?ە|E 11i˟̙/L25SJ1icU)3BՒ+gTfrb!V䉷anwJN&:!vX>~9 ,Bߥl*_w9ND-pO.alܘ2g(ڴ1wiԔՓ"/126bXO0t0xFTfg\ʂq?7+RFEtĊ+;jA9OTL a0'0]b(&軜oT|s{Ӯ~/j&/AeH\5=fqGUDρU5H\LLCPzxUuM6l/}ԡS jι~~tpq!xf}s_s'E$'aaaX!͛aC2j,ß4. FΉYtk*ǶǼJ!BϙJ΢TfryrW#zϩܛD`DZx8xK2i$r?WeԩLKN2=śon{뻜Fuulv-;7kiu!Z B<ǪjIIF 99;xz$(P>][βb DNħOq? aa$$0/-6q ^b̘(Y.Zî]Dn,g֬,YGN-?z[!U0@ݦÇ/ Yӻw^lFO$WbOui)1c?0{WՒ k(ξƄ Y4}0ZÕetK{7cB<L!NTV֐zL)-b(( C{֪k ?K[fιVΗ_F]]Ȥek?~=mۚ{;xͺuJ22~Epw:-H}GCR.%(8\J}UN觍HB\]]=?RA|Y_W5H tgpɮY###a,vۖŋl }aoѬ{嗩^e6#γn';(hWj+)Hoi8m>v8ҶS)Dk!SѬZ-TfŅ 7СP(<3fPTD'F>q=Vm朏^iB:߰ɴի_}|ְx/!!ͺסCY.qw ج{^JV=qi-ml%T IBKnP'O^ŒcPx_'S^nՁbӅ1YձU]Lݱ鑵VNQQ񡘙5#cXVɑ#9x{!,,!CeVZ)ЛrСh4FM``{M[y>Cbٕ/dꐩ:oډ2 x}wß%%֮#=#Gֿs[MRLB4 BPQQ8255j<<P( 6dͻ-yNȸ'ēx!CXL}neaKLmLp׎l0m#/xHB4F(gS( '{إc'); ^0aM5/9=nǧAC{Y6e7ykY$!,$4T*m87qn#11P)FU)".aЩSmk nooy߯;v|,v|ҋ 4޼iSq7oeFMXSSٚ9s4i:>3gnӣ%;ҿ=:::2|&S[Q1&-ӟSa$` !ZRϢTfpH#Fnٽo g̘;#$MؘmrMӖhn w\@jJF&M*^3}to5T)ή5CjB<$` ! eeդB\\&))TV@P'|A(TI.]~0KrR;bδ06;BBgML̔)U~L QQmGb}*ܺpK%%(ͯ]g3|lnO`%m$S177 __7reBB>ĤϿ?r5ξ8G/:{P)x"04cc#uѱB}W:|섅)Sp!S)6A4C!BL!BS0RSS9s#~hU^^η~u>̹stB<) B ϏM65yJbccvZ_Tk䚄iHBѵkWnǏSYYNJHBPVVFhh(IIIL>BATTo!cccyWQ(^Xx1̚5dT*˖-#!!'r)/_ʕ+QT\´i $<<\B$` !cPdddplBLL ɓh4Ν;ٴi>}j#66Kٳg#33Czj:uĩS }ҿKTTocРA=zT?.!sNB<&Zܹs155[nspҽ{wѣtЁ)S`ff /B -- ~m o'022 SSӇѣܜW^y!D#+Ocǎ62mԍ1܍7(((`ڴiaĈ5ajW^O !IBfdii'k֬iXMM FFFRv{/--7 OA !D32d p…l­[@w !>L!hF̟?Eѯ_? pwwLJ~}K,O>\̝;WWW]Ɛ!CZB2!ϰ3fPXXHxx^/..}ɻZ- mrrr۷/֏\'//ܰ|"##ҥN& !B`ooC122j :בBC!` !B)B!tJB!) B!B$` !B)B!tJB!) B!B$` !BI>BFrr2.`M>]%!2\\8v.à9::2|p}!xHB!:%` !B)B!tJB!ЩM31IIENDB`source-highlight-ide-1.0/doc/share/doc/source-highlight-ide/html/graph_legend.dot0000644000175000017500000000423611346256132027757 0ustar bettinibettinidigraph G { edge [fontname="FreeSans",fontsize="10",labelfontname="FreeSans",labelfontsize="10"]; node [fontname="FreeSans",fontsize="10",shape=record]; Node9 [shape="box",label="Inherited",fontsize="10",height=0.2,width=0.4,fontname="FreeSans",fillcolor="grey75",style="filled" fontcolor="black"]; Node10 -> Node9 [dir=back,color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"]; Node10 [shape="box",label="PublicBase",fontsize="10",height=0.2,width=0.4,fontname="FreeSans",color="black",URL="$classPublicBase.html"]; Node11 -> Node10 [dir=back,color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"]; Node11 [shape="box",label="Truncated",fontsize="10",height=0.2,width=0.4,fontname="FreeSans",color="red",URL="$classTruncated.html"]; Node13 -> Node9 [dir=back,color="darkgreen",fontsize="10",style="solid",fontname="FreeSans"]; Node13 [shape="box",label="ProtectedBase",fontsize="10",height=0.2,width=0.4,fontname="FreeSans",color="black",URL="$classProtectedBase.html"]; Node14 -> Node9 [dir=back,color="firebrick4",fontsize="10",style="solid",fontname="FreeSans"]; Node14 [shape="box",label="PrivateBase",fontsize="10",height=0.2,width=0.4,fontname="FreeSans",color="black",URL="$classPrivateBase.html"]; Node15 -> Node9 [dir=back,color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"]; Node15 [shape="box",label="Undocumented",fontsize="10",height=0.2,width=0.4,fontname="FreeSans",color="grey75"]; Node16 -> Node9 [dir=back,color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"]; Node16 [shape="box",label="Templ< int >",fontsize="10",height=0.2,width=0.4,fontname="FreeSans",color="black",URL="$classTempl.html"]; Node17 -> Node16 [dir=back,color="orange",fontsize="10",style="dashed",label="< int >",fontname="FreeSans"]; Node17 [shape="box",label="Templ< T >",fontsize="10",height=0.2,width=0.4,fontname="FreeSans",color="black",URL="$classTempl.html"]; Node18 -> Node9 [dir=back,color="darkorchid3",fontsize="10",style="dashed",label="m_usedClass",fontname="FreeSans"]; Node18 [shape="box",label="Used",fontsize="10",height=0.2,width=0.4,fontname="FreeSans",color="black",URL="$classUsed.html"]; } source-highlight-ide-1.0/doc/share/doc/source-highlight-ide/html/tab_r.gif0000644000175000017500000000503111346256132026400 0ustar bettinibettiniGIF89a,薴ŝɯͻ,,@pH,Ȥrl:ШtJZجv h d@L"F:򑐌$9 (8&Nz (GFB^!˨)WVl)1 w̥.wY0Ib|Hpf:e pJ}Ȧ6nz 80%"8v~ @JЂMBІ:D'ZPKF ּ&16юz HGJRb L5Җ0LgJӚ#(e>Ӟ@ PJԢHMRԦ:PTJժ&5;%Uծz` XJVCjYֶp\Uxͫ^׾i)$Mb:v, ಘͬf7z hGKҚMjWֺ*$SPͭnwm +Mr:E?9Zͮv9" xKbLz^A|ͯ0/LN(; n0'LaJ0{/{ؘG|(SCr. v1wc6@LdHNd/PLeOXp|+s2L_153M5t3_:wsgʹπp?/FFЎt!-JҖ1NӞuA-Pԝ>53UWծ4cYZѶsA׀5,aƶ3=e3~-3Sc6mo2Mq>7ӭn$D~7,y1m}v\/N3#S\gu-mO0C\'_S^|.c.0ל49~s=3d:u)?F;ˮW|;W)vt˽w|=xA;source-highlight-ide-1.0/doc/share/doc/source-highlight-ide/html/highlight.png0000644000175000017500000000226011346256132027300 0ustar bettinibettiniPNG  IHDR szzsBIT|dgIDATXoE3ر I4)HHKˁ/JGā$#P$:*BR[%p0k'v5ZyywƆ1$b=l"k],c=wt`J>]%66FWp ˘$yK۰V rNmQ=;°}R{(ÏzedQ/v\|8=2@J0hʣe91 qJ}_ ]S˳pkƉB7Yԋ؍B9ʿ{+6F]QXjɽKЁqin^-rA*!ٱz3pG~kWZ͑Ɓ!O!kE69pčiXpQ ,緝>cnsb:Mh42ppW`vk54# =\Pm"v/G.QR f|8U;!!h ĵi!(~yc)zaVUN"Ι/ԅ؎J0Y0%`JBUBϵQɈeF(ONosb2 ,G*,qyA@[ 3/J0c 2 Yւ=wsEF~O]ys?I^Zw&X^EX[tknP4V4˄aH )SQ<1JbF^>ql 㡵RQ41ZRkq`G%L$3?K~ssmJLiF4]2AA{G[[? 4$¢"I|V ۝lJV#h0ء<wQB#xUeIENDB`source-highlight-ide-1.0/doc/share/doc/source-highlight-ide/html/pages.html0000644000175000017500000000233611346256132026614 0ustar bettinibettini Source-Highlight-Ide User's Guide: Page Index

Related Pages

Here is a list of all related documentation pages:

Generated on Thu Mar 11 22:10:50 2010 for Source-Highlight-Ide User's Guide by  doxygen 1.6.1
source-highlight-ide-1.0/doc/share/doc/source-highlight-ide/html/graph_legend.html0000644000175000017500000001074411346256132030136 0ustar bettinibettini Source-Highlight-Ide User's Guide: Graph Legend

Graph Legend

This page explains how to interpret the graphs that are generated by doxygen.

Consider the following example:

/*! Invisible class because of truncation */
class Invisible { };

/*! Truncated class, inheritance relation is hidden */
class Truncated : public Invisible { };

/* Class not documented with doxygen comments */
class Undocumented { };

/*! Class that is inherited using public inheritance */
class PublicBase : public Truncated { };

/*! A template class */
template<class T> class Templ { };

/*! Class that is inherited using protected inheritance */
class ProtectedBase { };

/*! Class that is inherited using private inheritance */
class PrivateBase { };

/*! Class that is used by the Inherited class */
class Used { };

/*! Super class that inherits a number of other classes */
class Inherited : public PublicBase,
                  protected ProtectedBase,
                  private PrivateBase,
                  public Undocumented,
                  public Templ<int>
{
  private:
    Used *m_usedClass;
};

This will result in the following graph:

graph_legend.png

The boxes in the above graph have the following meaning:

  • A filled gray box represents the struct or class for which the graph is generated.
  • A box with a black border denotes a documented struct or class.
  • A box with a grey border denotes an undocumented struct or class.
  • A box with a red border denotes a documented struct or class forwhich not all inheritance/containment relations are shown. A graph is truncated if it does not fit within the specified boundaries.

The arrows have the following meaning:

  • A dark blue arrow is used to visualize a public inheritance relation between two classes.
  • A dark green arrow is used for protected inheritance.
  • A dark red arrow is used for private inheritance.
  • A purple dashed arrow is used if a class is contained or used by another class. The arrow is labeled with the variable(s) through which the pointed class or struct is accessible.
  • A yellow dashed arrow denotes a relation between a template instance and the template class it was instantiated from. The arrow is labeled with the template parameters of the instance.

Generated on Thu Mar 11 22:10:50 2010 for Source-Highlight-Ide User's Guide by  doxygen 1.6.1
source-highlight-ide-1.0/doc/share/doc/source-highlight-ide/html/source-highlight-ide.qch0000644000175000017500000135000011346256135031326 0ustar bettinibettiniSQLite format 3@ tH!99!tableFilterTableFilterTableCREATE TABLE FilterTable (NameId INTEGER, FilterAttributeId INTEGER )P!IItableFilterNameTableFilterNameTableCREATE TABLE FilterNameTable (Id INTEGER PRIMARY KEY, Name TEXT )n!]]%tableFilterAttributeTableFilterAttributeTableCREATE TABLE FilterAttributeTable (Id INTEGER PRIMARY KEY, Name TEXT )H!EE tableNamespaceTableNamespaceTableCREATE TABLE NamespaceTable (Id INTEGER PRIMARY KEY,N  -anet.sf.srchighliteide )doxygen    qb5H!99!tableFilterTableFiltH!EE tableNamespaceTableNamespaceTableCREATE TABLE NamespaceTable (Id INTEGER PRIMARY KEY,Name TEXT )n!]]%tableFilterAttributeTableFilterAttributeTableCREATE TABLE FilterAttributeTable (Id INTEGER PRIMARY KEY, Name TEXT )P!IItableFilterNameTableFilterNameTableCREATE TABLE FilterNameTable (Id INTEGER PRIMARY KEY, Name TEXT )H!99!tableFilterTableFilterTableCREATE TABLE FilterTable (NameId INTEGER, FilterAttributeId INTEGER ) ((c$$8!55 tableIndexTableIndexTableCREATE TABLE IndexTable (Id INTEGER PRIMARY KEY, Name TEXT, Identifier TEXT, NamespaceId INTEGER, FileId INTEGER, Anchor TEXT )>!EEutableIndexItemTableIndexItemTable CREATE TABLE IndexItemTable (Id INTEGER, IndexId INTEGER )h!MM9tableIndexFilterTableIndexFilterTable CREATE TABLE IndexFilterTable (FilterAttributeId INTEGER, IndexId INTEGER )n!AA]tableContentsTableContentsTable CREATE TABLE ContentsTable (Id INTEGER PRIMARY KEY, NamespaceId INTEGER, Data BLOB )   KK2dindex.htmlJSource-Highlight-Ide User's Guide 1.0index.htmlhSourceHighlightIDE - an IDE for GNU Source-Highlightgpllicence.htmlGNU GPL Licencefiles.htmlFile List4source-highlight-ide-doc.h  TTWVPD !AA  !YYQtableContentsFilterTableContentsFilterTable CREATE TABLE ContentsFilterTable (FilterAttributeId INTEGER, ContentsId INTEGER )| !aa9tableFileAttributeSetTableFileAttributeSetTableCREATE TABLE FileAttributeSetTable (Id INTEGER, FilterAttributeId INTEGER )D !AA tableFileDataTableFileDataTableCREATE TABLE FileDataTable (Id INTEGER PRIMARY KEY, Data BLOB )` !II1tableFileFilterTableFileFilterTableCREATE TABLE FileFilterTable (FilterAttributeId INTEGER, FileId INTEGER )  n: x?LJ߈<$\aY^[#O4XZ!risfs7yqtT9S~@"XK%?monZ؜[-$^ o306=?5"X\K7DjJk}t6&ko2y96O05,\upF|pE(Znnm)ɶL.E`N 95&,\Ey6KP "/#ݱ#K Q05ou-mݻHHLJ}D|%+kNn^>D]x *kj"N]XA}.VwOoߏg;ONM TT44WVE5[f *i18{\YБtRYؙ{zn慑=L}&dnZmkVIH            ppGbP source-highlight-ide-debug.png source-highlight-ide-debug.png; AAhighlight.png highlight.pngO UUsettings-wrong.png settings-wrong.pngC IIsettings-ok.png settings-ok.pngg mmsource-highlight-ide.png source-highlight-ide.pngJ5iindex.htmlSource-Highlight-Ide User's Guide: SourceHighlightIDE - an IDE for GNU Source-Highlight399doxygen.cssdoxygen.css399doxygen.pngdoxygen.png'--tabs.csstabs.css+11tab_b.giftab_b.gif+11tab_l.giftab_l.gif+11tab_r.giftab_r.gifo }}pSpA)!AAQindexFileNameIndexFileNameTablerCREATE INDEX FileNameIndex ON FileNameTable(Name)p !AAatableFileNameTableFileNameTableCREATE TABLE FileNameTable (FolderIdp !AAatableFileNameTableFileNameTableCREATE TABLE FileNameTable (FolderId INTEGER, Name TEXT, FileId INTEGER, Title TEXT )`!99QtableFolderTableFolderTableCREATE TABLE FolderTable(Id INTEGER PRIMARY KEY, Name Text, NamespaceID INTEGER )*!AAUtableMetaDataTableMetaDataTableCREATE TABLE MetaDataTable(Name Text, Value BLOB )  doc A=YCreationDate2010-03-11T22:10:515qchVersion1.0H}0R#fBk}#COW;S P=wH<HXvzIqn|$/sוԃ|oD3݅.y5`xW#ImOh:`-h *6eXW,Eegkk>_X;dgfz# ~7/.Ѫ{)CdIa[,S j>26f2\OX2{>J%3`+yPT4FPC.\&5bbwXHQD+= mjKKK"W;Y -;QsJcYsqnd>x;viVe2+NӇ"$.ýY27SQRۇ610gSR(񖇧agGm?1vgYs7A&|hCQņwpVe|qa#tߋș㤽Ҧu&r||{Sm˕+Ob(bܝAo|eQ1`6.9X*i9<0W&)'asN{JJj }% x߃<kH O 6 V,U3uP[XWȗ5ƣuNs©@ pvzf!. ;)/w E9OG+=wՇ؏?&wi[ZxQDdöpwg:PC+JUh" okX|FOݦFNpч2&9FnxcRH'Dע Z۬ѼIeQ۪{Ikڏp&>xݤi?zA6 \IE[Rick^Ց-EݧF`D sSڷXvFl}֐G)@z:0pa >X|a,rͤc$>U HQc)!jʡ75IEχis. : x?LJ߈<$\aY^[#O4XZ!risfs7yqtT9S~@"XK%?monZ؜[-$^ o306=?5"X\K7DjJk}t6&ko2y96O05,\upF|pE(Znnm)ɶL.E`N 95&,\Ey6KP "/#ݱ#K Q05ou-mݻHHLJ}D|%+kNn^>D]x *kj"N]XA}.VwOoߏg;ONM TT44WVE5[f *i18{\YБtRYؙ{zn慑=L}&dnZ]!K9v&h5ȾRBH_~R;sR}[: 2.b#xstLdd`dh``hpA@" LL. p؅KxstLdaϏ_~^cW_ƣ7_~l>qॻo>:ɵ/m9:w>w{.=q[>|qɫ^<}-_γ׏_˻_ϟ,"@~a`0-`EUB0fT#]g848X&Y0ØH1=e]OtO?ZժTP_G%G/GGMMhLxԸh/Z2zEkWmXe5[m߽km;|M;9}lә^{vO˕_q7O=sg=}]{߿?K7q49.p)sxx<[껨 G&Y-YI4e4Mᴳ|:'?~>RIB>2V. n2 ]KUqqdK]qK ŃN7*{Aq,Ӓ^JO?˨fjsGzkbe"N=?tmmVU_gv֬뉉|gm{y}Gy{wػV_vw+K_?/ړ~{<]on>_n?aLV, Fx}TmLSW>[ZZ[ez[[VUt`~- R.])dœsx{iONpF[шK1~ meIyrI)ɳ)&£8¿[6Gx@kZFZm[er^unqԐKMik'm4_+:wr4xUMo@W*cM mմ=UbX{FS8 f>H b1 K!2s'!DH!.KIJBF!c\@߱Pg-XS$4(^;mI(m<)l> 6g4l[N^̿aDW #igRKHj_L$Y/uacij3-Uo uW*AŨ\ ˷ (zjB}QAG&f 1uNX^Ґ20a0@2bޢbA0Lf㚥j )ePr\-M>aax/#IX;yܘ07DGɁ=s1#*  $[R?{ |# E(PTQt[.UPkezGx{i@8i}0_7% N0S>7I5W^(~<4)R].sUaKwFkU Sː_4T5v)(W`QZ% 4ٽ>}vMa(VC_l{ _yrAڍs_J{VD-P6HwjxnKEe|%N$LM02y2B )rϟ Y `.0@9N^FIϺ9(a9#BmXI#e ׃ybnQ#ZnLNdoYym?` Q+nR%bŧc_\)+61z#>OYl]U-`A$D҈4 Ds-s]]5e^|d[TĻ9Â'V\w4\8%h T3l#L hU2ۡ $U ܠ#W3Bj`@p^/'v*/W+zAAǦ/_HRyh>zFQr;Oqh[ K/{Mĉ3]L,>/mD5g <(>)M:r:3o|.ȟ3j=;XΆ޼r1" UYVO3j~뱺(3B7DEun~L!B/a{ C4~G*/#/?"L|ܬoTay R3R5Hq.&tw5:zJ].Ol!ޠ2e:į2cy4o짷Lwȫa_cc7ZlZ'VPH% o UΗi\=, YJ̝2Ozl\TU ::F~16抣`l|ǹ@m>ꇦV(fYvąOA]Tv] foM5 ~ʄLLCR;]n1drFkG[)*"ٺo+|-6>9@6'wԑ]d]łG]2/W]9 ŗ{)j:G2dK-P82fHƮSaBP>L &ݍz^'"Ip\kh.D.4"f5;h5|bQ "'pԀU0^Cx\>ZZ#)V<cΩ)x~|n[=N8%Q`*Rc^#g! 9I8~rrFq0=8c %?AвZ42ivHW Yme+t9e®NJK7l/OgȝCVh,VQ%l%풙un3k ɓ#&sVpmeT\d\iĢLj kU%*'sb)ϓ8S̆CަC<60SH.doXyoi2, s72]3cGv$G*+$70N%cK?dbMҐQ \J[[R&2+va<@(b!4Sf C@A!N^"Oc3KZI?fkD> JU,Q&yT3ReRjYV8f|.:y$yJW|V d7AI8vRg *H%mȆk~àyk9/I>Zf`'A.)Rw^$%\^k̍=㟼j}z^y)Ә2x-%g|ѣ"kViU0lb2D 6e4<|(l鷌? 6OZ7(Ud";D+Y `͂DJۖor^oz z}*"NV<&#LmB< ׸3$GV#ȍ lԒdj0k[_'P v6J~sv۵t\s"=ibq2)NG B i}=C>){3 H䝫2YZ$W҈GNbNuxzqU6 EB"9JJ#Ps{_PԢQh3D8oTJiZ7BG.\0QL#T-FdzGQ 6X4/"_g$Bط ۜlh3 (=$кAXWy]<|tupykCN'oo",]949gg]Y)C)"'t*ziBBYr`q\ g <4np) J>,i>gBMjGUPT&뽦m^UDƶ*!Ľr}f>$3b[_.o>7 O_~ei vk7`UBZek4n [].) Em1BXUp"ͻ!C).P(C3q(tVhM"Tu@)u#u0fBUL^u|qVu?-b܇~fv [g P}א`Z+AB;RoY"3H8#VޒM@F?%h{GZ!4 8T%y]wN}0W 5!VQH}#s)G6BZw;n/ J.0#ؾxڽZ Sj+]ƾ?S, *H6w_ҪTp48ѐAS^972>_vo6odzgpQ.-E,Qp\E_l/ M<[ ̔ʱ,MR8$cñ9]i'@o!\z!帿%F"~ - =;.F \wU}!_xb~n4PRs4ū?. BեggP9!Uэ{Hם =BhYsᒗe$9!.#HwT::pk5}6iw_q*MuU. #;K c/)] '˚xJia}@؜`H5;Xn܇թLDK9#Xm[:a!dg`X9a68k<(꣯>ښ=_@{AA\tY {z5Wg՞4YfhЁ.c,^qw. S0ZptxIӀEB(ȗÃg-nRkדe޶^d8? r]4\~lm)jG1 .uk /3Z:LٿqÔ J\LwP|/;|P٧u程D= Q@!,4 HɻZA/@HCwD[=kp[~z˄s8v|Pu\a?M9,-K?8`=[6~ɿ~NzO/[/=S- ^hGk,#o59%VS n`!xZms۸_;{8i;-{b;N'DBj`вD\,gwt9[,eN`4dr6;c]>_[6"_f&ۑC|8gI{鳿22D)BI1L J!Q 3s>+OL \%=l8j!a"yp&d~~[q#uV TӘn$.r |:?DFP*|3Zi6'C<= r?1ڔ6cdpPr}z ec3\=+xՙZZD g0<[H%ꪋP$+n:VnݙTAј˪|I·0<)^S$8uuB5_aOVfRD+`.1GM43xbHr/UL"䀀_:SdQB\ TK5DP۶|S۾V\ߌư:2P SP$?y8]O]Cϕޚ:9ćY69z>tdG:IZ. '`jyFR׈ LWh( c$j T.^ԈeL-J=~(z.[J:"-%&dJYL5 -xuA4*bTIJ%{b&5n(TsBv\ K5Ϡ!Ni:+.\rKB097nXnx3*A _rwx# i}>~f4tQ;vRHN`#@~w|guNN#V#"uX`!b] K:w!siJY-+e{թ=LDˌc'C}]3whw{g8CvNCzTeOR(MXFζj3#hlfN|{!wd+0AWz|n+XnfS1/_ļјJRMp_3"5}Z ̨q PWҺbsWK joTY<]fhCcQf D_$ȱ \y48&ZiOoO9DOTh7D|>,a",e >5E| 0kuSeo\!wk} #i}!kgXl_ʶ.e)CFKZw&sn[gW>mkߍ1}$SSkÈ+[YW!dz;nQK(0B{cCGNJ9z6ݘweų"q-e+~=i]0$#+{k7]!NRgjYiBT:Jp5I=?7 8kkf.1bb|5R)fCYӚ):"̂V/ޱIԃtR5gð;]Uwڎ[›&[nfiq2|Q·oH,rnijQbUba虒^mfYkunŦrJ&oH*ÙX3mCfclsK]I _]Yh<9˹[sS~'c>oB+IyJϏ3 7~`4vMī~M.T}R⤰X~mAQ*ݒ[}@vl5Q \{iASHoƼwNgLkp]!"9] r,p,b#ghIks|S`-:^9Gj~9D΀v}˜Lf~s,q\W0Dᆴc͆qU;"yȦqSŅ+ 9#O,gaHM`V. r -Zca-nrL X'~Z)5rꀆ uǜ(-, 8gX_O5[FDQгm*?_sٸh9@'0IF4_zPp j+/|٥h#8_75E_<Ӈ` MHl}Ihi@ߨJ!^>R<]3|s e䨡uC.iYCEOO&9a.s)3jrE0pr5c/g7qRt$aq T$"uRI̊8!|%sqW9ݯaV'RR=I o6 D8%k!œb--2,~lܮp(C.=)b_Zǝ?] ޡ:\ܽo#CL \yC7&}Y7ae=AG:V}o#JZAǖD/ݏw;n.k zcۋ]Y{ZjU\r q>6p?f3}gm*Ϊp+4?31]ʄoD P_ 2v\z|Ri+@SlDpuQW uc 0ef$ ,8j}?3gc6xJɰP깅R.eVǃޛ@x)?&Rn%pSn=@ogw(WDzV\ &wG7wd>~}5(B{9w ar^k_{IV .A=bxhVHvbW*gՠQ3ҹF <$.ڲd [Z}Sa{4@_3 Y.Ϳ7y7{&S&ayn]oJ?.4;J&o޻z=gGי؂/X y:v̰MdˣhtSAX%Z*}e(du0!1.Ӊ^t"Lȱ1t +*QoLwM"a_,/]A`Bݯ{vUkQ wMt Uq~{ ^w¡%.mnxojqa]q_Ƥ%h;ەHޡ(9kDp#$I8~`5dPZb{+ptRvsSb]@Vb*R<&-Ce'KJ__œBYـ;s'u}8 0pw5MO0k^\?K/*Hp~ xHu)LR8KaToWM0B$<z ìĉ`\SF3aR*./Awbw]ݖ (\"LHC X#4㍔'snz' _W)T)uy2xי`syA/K=DJNڵ)cOؤ=1r<^ˌB3yOFyV/ Ǿ|-^*:dʥQE\m5- :(ֽVޛ՝ߒd\r mp٦G-]) !HkV8 ۨܙK%!&Iϟé42lEyHd=^"#`Z If^%*D{2׏W\߸[Գ䳶0S̑wH5I.n@[şr؝fOy\f2*f1/\ [ӥi|VF(Η @{왁L?. {Wn83_ %-RxziGNYw5AVeɻW0qۻ(3$P$(ӷXk $?*qpC7 :D0`Z8.2rcbcl'晕<ǜVi/ΥP?[fJ!?f*QB,lCe<ޖ0А<~`u*% VvSדtZ!/;C:^XJn"7O>Lp%ZVm^_e&1L1[_XfKQyL֙$ԻJ@g@`Ja;$aYIXނ(}`>BI&GtԇnL Y}گ'hZY_y[|maDZM>,RWN/)=>9][V]NL"Ú d,P] CuGft'[m0%**8fO%6KI[=2=z$ YOmW &vOpjϦBk/g 1fx6{ k[A:zG1Xltc1=paM49%t 0>kÅ Fuc |m_.jk:Y^2젏zا/N=*zɾ!D[#iT(j5P?dvAHm]&*⽄!?i QxQNjtbђ&a5b"|bu2^Kq0&vQر K^K ~ M(Rpt>Ik\ihuu E|8L{ $!7̀({lian4 V1Gy[tS 0-~tO~ ϛ+5 C"y{7; 'X2òRviziD-/b ԅYI4TL㾿VEu4k_졔!X{tt˗TQ7 UyBICJSU.fm 4䱐ԘM%3ŇC"5n3ɑy5H_y HU!g+ OBXui 66񁇷f51 `wwWUFi2+9*GLd;t:5b*tu/#T۾<[ h푂u'$eR4ቪj8{FX?) W-e$C抏Wֹ1((؜'͛l"?^nԇ$^k)=^cVlkfWX{FuG+lJKWZ"aꑅ'G%Uj!1ΉN:4#-t+D0ɉ#;zfΖq%2rFb$RwӥG ȻnH*1ϗBl0A3!?h55#"##s6H X,f L |mCM\|5q$nTrW5Un(yf2aJد䚦{$r5eYhhg-8KZ1`-2_P_}ҘqWpw<, _ ѻxŶ5'ָ(((R*7fY9I(On-WW4 >ksw[/AGOw.PyFe`5\"tSaaX=YTUr:G+#{4㵨J:3@{%0_'/:qBW4cQs;/9u SfGOp;ow/<Ღmȟ<;88'BkL=v(:Fgk觩ּd@_jN y(.9ߪ W0*|S_kP.'Aog<y.ACEg'F>3yxTA/^kN]JtdcEtrAbm\[c"p\cJp%-d"8{s^BHo4JǼ _gINq!ebfq3߻"8wNmfk&]3C:-^oL5QEƻc/_Њm`k,A'>dL:% 89"OThI`>3o2<>s8B_Ԃ4y)^ _v[ ;f[Ld@0s'ә`,,~c3 J·`ֿi|v9~L"ltU*upl%ʮv W%.헋~ tRګNWw=g's,NyfSaBC[]l'l'XoJs\&S!l%RcZΪ zP8O,׭ɬl^Aý"gͥ'$ޠ*O,ӫ d%;䓒 aߥNQv)Zf4ϗЗ3ǽY6L씎o zk/cJB < p3ϗ{73+7AI%+o*kl'J;vк<>H*y8^bc}p>9ykm@NrgPbX|6LN+EӒln3WE/n55[YAɃިӘ},ʐv5uBX.x4h江!Ilporr>[󺕘e;BEǧg ۶붛 ȸeQ[ F%tA¸$CB)wǹT秧m .#І3Q/Uipf[Zo\D;i.Hu]~B@` g^ۀ+=Ǒʇ; ,X R<<(S-\!]>t![Ь-4_MvԄf^7tBP;yx- *~v`hich^AW xK/Ȣ(jTu(|brՃs2wOzlgM8,zCBIXLaF'\OtúN7kǵ=VKNY8Dr9T6!q-~'`<$%8B0@<N |QBt<:6 MYԸuy#GMf@oz듚R\T|0QA*i|ڝeQ=-mA4qjwrߙLK3sR#ǃQʍ\ 9ϟQQM~^OldEnziDmsګ"b=fvmgК"<4ߠgX8˺:{Q~[ڏc{vs;J$2EWl<3*9>$2~9Կp)}o8h~L'2^3ú \Re՟ǧcsb^:_-~waIeoKȟ Ɛq?Eb+mյ/=Eڗ`3rWuxeyjOfH hxZfa9u2 FxЅ%-:wg /W̏{ߑaG^o/okF&4;~y>r;ok+x=EMsıe6JZH]SoDA J:)Bg2/E?Agat?d FeӾxET%hoD-JdLLo) 43 rQT$,ݚ98zɰ_&tRIHwx,:z.RȭT+-֪bó[[[s5c5[lnqzp;Œ[$r1=ciT S Đ} bb*bC{1`;/Fˁ tysăAdag胒~ r"J!+@&^<v%-em+Y]`Ü;|֡Σw]Ηj<׽fn}ת-5]yzD 5a1U-Q=jE>=*%~~-_ y"|=w%j*,4Шπc_Љ1q: Y!WaD^)ASXX 2Ȁ:o-X-#F`co0[ '][Q:+J9XghlSu i#.78n|f"؝zn@TNN'NH£jؼ~ۍFՎ]cf-x~ThT/5֧9*07Ǚ=5g{1v{YG>YkEtwAGKФ8fB '7TV%2UCkѬrBnF[8Ά~`J㇇l !dpOu%/PNAS_tykU5I$6M\q 1cįC)<1́O%qWjz7rl4/;K惸紳,s48l ]p*dHi Tu9}?ũb9JBz'.t7J8ioRiE*јvgl!ժV=L~c/솀)(}hnQvn $ayϽ6|"2 8sg5zQ"7=nي,Ml݈9Mh'k,|A$'PU S6]oܢ1iN0гu\-v~ZTekE汤_IɘZ/Zcng v|v x3҄fd}'oK:w ];F rIm\/g +y Cv*d?X7[ ?L^6xy~..R?SypsZktZ]`~ 򙈗.gmu۹wI\x)U JqrbYBF׍ !^#iQ)0b]̡ ecgx&rwf/I(#&E/O@v|"d1\ZosM_pJ ]a/*`WQ|)U2rE\k t7lnϩXr aǮh~!r]{v=3bɲDEB/=@gÃ1#RNLl%DRě;̷i5fv'hQm7+~2K` _4P|N̵c . OlP hs~n|1y~yqYIޛ1[˝\b|Iw8js4!];9^dJȌ0Ѕ?W E4 ~Xneu|%|= 9Y C#lX'}pZX\HB>Q^%k0*OYg&f\x?7\{Epe Z&ƑH Z;Ն%(AjAV@yMqeCH&%T^+"B͜g;J0 +UuCs4˘ 7<;VE0]Y1$iQ#+o`^˜!C*[t82:+QD4pc鏋A$p3_YpHAed}a[Uں~ Q^#ڋ;~c)$pO [hi E϶:"†TNWM{ַ\ﭳ>XŰUd~e =H_v>WkBmIE8docϓ3w{w *ѿnoZaWm-[<$mb9Vs3m#rO 9/X|rQ|*||cg)?5,w76 =bz&}fT%ܶ-Ct1}\Һ:z7)MMsG J~ıv1p~~DʄY {{vփ>ۄAT"/?mgm\5No9ݱ8쟅d6t|_>c^ƺN2B[FZC'}!m`"=tG Z }+sEFD+love~'zc\>Ѵwz]L<'}\9x8+{u*KMmTTT )|s鯭ol Ь@؀e*? s 7w0, j:}4W[:Ad27)_>m8"&~Qz>[:㩣.z|m`v8_* mv{~p04l%;߅ԕ+ݭ|_t qʾ[Oni v+9ڻyk=_PnYLx7JTAddyX(|\NΕ u&U2gǩd V e]^F0ojE`YH)CTym<2z)`veCZ{$tBE9. _:UxӰ>Nl`ry$UHN392[?BBX4x.ڍ:m=iEOJ$$.ۥc$)ygN@fs`qY"(< fDsء7ٵ2ӌX&X)Z̾ue5ǨN(0PzҸvEs]jFo Lmq7LS|d~8W.#TЏ3z2AT:O$!3"ۢ $ŒħH@ ߓw'F|-ײGSV&Asm}8oW07 1{׬t',%uO 'ߪ[/km&y@zP\7rgdO FŚ ˷Qv7:ϐD*[.)NfI~fy8;&E+-V@|z4w3ۮ 9Km̾N#a ;odHO4PPg뫝dC0#Z_<yRY hD\YHNYfIvYYYrr0,P<+eyeyt)=5Q((=!D"/ 6Ï&Sa۩"Evf 47҅w=ix> 6/iӓ0^0= .8 V32VGjB|u22:zlV st&f{ш5R%3NWI}=+ TZmcPL<<FH"5.5u]^6gO@-pUn.V*o۫jD&:JS96q/\Yh022R0{r~^,:tI6wRY]CXU U|[FEEpfCB-6nxp\"7>%nڶKli/Uza3s{q uP6kR6gDX<)'Kピ ş2ե]0_hS/|Zmq˼X0Pѭ/Fl3FjżP K@ H-̬;Nj%마M7cE?k /FGN͂(v|s0`6_h- Η?pmvA>7(cL(rD_?l6w)KQ"G ffqL0q>t>X7 +xg('k%(7԰pkC5f4B߬3iOLֺ.2\RQP?ΐ'F]ӂJDzy=jm(DEs`âDgsӎ:@yu*t@~R zf"+ I$ȧ7'GH1L2Sna" 9s#Ă;rjeP*'4t}<om&rxl<QnHBIOX4p? c#\UPnE %&w+g&ʞݟ bF>H@J6?BőJdjc}^a֪Qf=: m=􌤿=8V*S10dJΚ֞dJتw+)&3cd\"Qp?9h*Ż8.͎RU:Tԗ<=bu)=̒UeAΐvàݥXP6hfh`x/ʗV[6X]Y"˃{h;y#OTv{J4l:xdBg*4P,*B[]Fj]kTi32n{#ɚ```ೊrchQ<1\'_(vNrE?dK],.!|pC+}^4/okj*.YO|(Vb\mXVj63bP;FA4FTLLD TDF6])/hӤXkR~ERcuL14Eyn\/PN|!5R]gN;^6"] eaDW.qƢ'"\𱊓D_v @.nhH9<)@!2:xzz il|_F3/(HҩL2JQ{RVOrˍ]ȫV31@CB[|FĨ&&d&r/+@/zj0ĎOgc9CEg~2^] S 72/) ي2k3R WUx(XF &F dKҳ.0Z_ E|p^Rlc}K,SZMN ÐwlajiІ.y6PC["HZ (ܫ[8k"WS{V-x^h*֨hhhSv׫{-W*$%E5 D C ã, 8"uZϢX +5%nwvJjz~-**2,IMk>;RV鉎̪C @0{0da2ln&4u:NK*ͩ\\C?ZYbll, g eXYhFΣJqOqӂں&}d!0sNHG z0 w4Oƛ>0Ū5%a#>PuX7.&0'U ENf cE bBnn>ۛi.swM_Y mk100LOMgʌ|N{& 9dj TE@ŵVw(4R8pմ8ԡ2Ug"X4 '(6?ڢ!D{zQt8DH&}80~iHZMVdd2򢹲$щɉllLQ̽(,i{51i5jrK{{7 ()_%sS`B;g>6v۟s[&dDp@w'yz;ީMvj}֭d%%-ܹjHQ7AƦOs:[`t)(XiI\) NbG[H.mA#??XLCٙhWzS|-!g.Q薘a3K٨s\w[eВȐ75e ;)ptwpA: MS]Sغ9bԓۡyHiCN:UU(W#0-!8,<isRzXN'1. 򯔔k-.a>:MqUÆRtuҊ$676* B~3..0~YS\} MLLHTS33:JEO/{_\|aDžn|X`}gaacccbRȞO=m3b'KHCJ5eK@mx'2f|3!Y$ۘ~z٤(#9Ba膵Ю LI='AKj/ FSsDlqiVG;6#K9⻙Z9[Lj&|Z@1V8< S@*nr0[}fSG׌Us;<TqalE_gjEia#,VO]Tܳ&S\J**62-?tuqIB/uh:6|ƕmjco7w{o{ ⪆mM*]'&_+m[|_hIC+7q4Mέ: gj;syuxtT4srp_8ɧggOtvb%.?bY3k[Ymo]#Xmgs UM5a(~g~G}iJiLZq0+G2~;jMK1QP'c43٣瀼N"Q;5 FmYD` i,3'ӯkip$Ӌ}Ux_FQmڛ5M-YX܉cG$"gF$NsgΚ f ?laulۦsZi0+$N*rybQQݹ&I"]e _&)bccXX"|H+(ahN&9,|MM2) }P#" '"1eēr:+}=ߩZɳ4WΠmcw3$c! Mb!Ù|LMVw9jϸO̽ 57{4Q!^Of8soM̶g&? ~) ꣚ _+kE󨬘ZU@]:H8]@=5bv__G6V^ܵ2$(%׽>zs.A1܌ɠH/ÑkDfVr~x}U(W/漦yhQpV1rwTzUedlEY^Ol]ƪW:3[W"RekH!$Ja#/"@+Z+CbhV9߹_h,*cp]ͷ֛_&i@W(T ÚVs,u}Ȑϖq_wzB۩{*i}4ʧv07 סIw*cw"mĶ)MS2"L!6gK,`=Z2Nz Wc=fK`0p93kB_{00ߟ{yXZ:n6?4%H{VI~0}'Ru igMP-J]7QTe1SnGfw:6zt> Q.Wºn]˸,eBJl|z0;Kp,BどHUUw3)@#v`Vj CyI njB3$>2ƐTb1$\L"%襨J\^`:.URsqA W KW9(|1`!|:]w;ٹB] D7Ǖ%?e"]p4Cf$/ v:O/,}qK_1}ʒ[T˽RBdIxW~)3c10&ya_5z6Sn}y]vW-9&_C7ZJEMGʟ|.&agܹ 22 Up" ܷ0U4TF{+ WWsZzkg,߭S9<korV>uV6VNU<&Qkփ~fqW ÍQU?Mq9=U-+h7a@{B{C[~KQwz4z$k.Ydvjtq_3#;VP,RD>{Ъ "ndt? !D"t[d7Z}Pa0PHimܥRS7`VP ɒкVdHng\KybN?.V5D 8 㑂 OUDl%-0rKQFi>Am:yZو|Wk$1ys5ެI^s.rk2DmR֬6DR1xpGg4L/y)[XFuL+nb-j4-n A]o4Hw*u Us܎/ k$2:ڼG <؞lͫ~'hƪĕۭӋ=nj<~sbDÁhɰWm ]q{5>pWa0Iw_L߂c찚E]PB/M@3dJ N8 2XlMᄅknXf&N[(~^t] A%ywlbtmd>X_S2FDKQ,1(m^EqU24,8oQ@V_y+{ 1:sɪۣ|< Oͭ G\( gifY!y(Ree#y39fq$Lmm\Եnq=, fcȖgU_p\slŧ:\fE*YWEŸURI^/O^m!<;jfZa6cz9'~|U GGwdQsfݟO?fz7yZޞYHAnP {b`J} [u9GDsC~۟cν0 êX }GՅI>&/<312fٯo I/fr Laa^_ķ--h]wO?u,ōj`NB6S&٩T\%Uf.6w.udasiߦUE:v0u`՛AjzypN(Pj{a).%-O189r4wQPUU ÍS|v &dS_>mWDKֳEDD$\3wvK_Z Ŵit:s>"amBX6;˂{ۣj#s5vF`u3uU&i.'x)]FJ~:Y;Ψ \^&΁{[knCmqEޱmZ~Z՗:zH\(/R#:} ̒H0}iLEM6Q cb9ؚίt$`\7iBbR_MY;pvvvÃ9<)IqFffV3xʇ5mUUcCCCԯzhhبxtK.Ѡ?MOn]ښZJ>aoƆ%7ig[GXXhw0P?>F _m!$jXf8i2jLI7;aHBBNxYVa*f@^ڏ GAQĊ77:4$JvJ0É>+{[Њ\p!}xmShiTGfрr-9+e{ |hD=;y'5`3gjիa&V`kro+j6EV09VjVBo)ejۧ+je^ $FWW_ %FX[@0tO.QL4Ңh蟂n+},l\^T#+pǫ+hM[{p폓udrk0/sqM߂$ݮ]mp/Ãރ#ٹo'pjy?e%+Ot)f rTqOX'UhQtg."iY6>qWhG*8q.&Zٓ~'Ƞn_DK>;DŽ?ҽZ5MUQW"` ݕu6OL)lkjn&,|xfu1cpHHfkQMA 76uzDkE<_w.2@5)\L,屺ُE:4 Xιւ圏i6soyN 0iq#ԫwܹ]u0^]Md)'HtU\3Mz Y=g}(x&F;iMm0Tn5u^+i.5@*JC\lGFHIfr¤XΊ=n2맫&k8z]4U. fظ8ɷh.{\&ypiN$%NI"43ƽOKC=bc0qǘ$P?OS(c2qև{ikU \Peܚesc ڳ _O‚}T7.|^AD%:-x;%qZWw:qBvMl$hH|s]׎%ͩ ȟ>ebmO|.~@;!~;,{wZvǷѴ:esD;bY:-MFP.M K`)+³HL]'H3nr٠X?m0 ]jw~A*ğS Kl9ڿ[H}_rKݤr_Tc6 8R]%lT{=yim ?}~j iHۤEYvMةK>#Ǐpq4./%{?rYl$U@Ak00N`pr`3@ULNɑ.ry(d9o?ո?Z^D"ZZt22͎g3js'oAg㹷(LMkgk9w@,H(& gQc,F JOVL{z/JRJIޏ40N-UPĂfvb&5?`JWvrz9"@@Ә0f2XEs*cWS'ms\an6\_zէ 6!zLKbnZzW9L7i.J6( +M\ʝZ4_Y%hL8WVI^$}khN$~])j_htEliILD*{d@p`q+6|`aj"?ZrE՝:+\Es"'P@'DDVED!ZG+ㅦx[\YJGC,بҶln#a\4oa>ͽSKF.,%<{z!z !T<~-JPse%@k Ҩ~{?ӈ5eerc fwhhjHrl|ÀcTMzDVf x e֨_PjkxR/+ lt\'7v0 ԵzA J2y9o ^?w\`g:+Gc*2 fq(_m|H۝΋ۂC0ba8]BҸ6.b^,)d'([0ܢ'D=_cޜ^Y>C,U'mV-*vL|\?ޛLBMi>*Li½8)޲򼼯?ӤpluE{Ϫg P(|:P<ׯB!l(Ef#ov^5F MM(8+"ZQ'~4!SSo NRA:͔q]" 3uFL=L$KB ~րj|[E5aҒ5(+6vz8z+11n~|,RA"+cllـSCuCss^ʇPZ]Ɨ\1bu `͊J@A<-2óNbONKA!qvޯb2zN&ᒥ PwUfv+80)|KJU-@>gI<ݎmF 1)>Cn+&_KKlMTroڒ)QZρZ_F "=Y v{,3A3yT"⑛? J4ܷύѶU8aiv]vd:QTז8INeqe.@+U c >)kA֜s ƒ MMᘜ9 dY]a3 yZ΂W4WGc!. $=yOlldRy˒"C\$\5=TԚ3JsVٰ<.ҟ')`)(vLo,_32~tMqׇ&]0[ /e~yzZ<.Gm^;( ZUj ~W/ O[fc) 5}FHzg TÃĘ3V;OleMC0 RpigFk)C4qȩ߿[kP2RyQԂ@|9dl  %yi5%Bš9\p@ENc?!},YZPf}d~`q_p06%WGvww{ Ʋܶݣ0|~,-1(z|Eh[EW,\J*դ>*Jq!HXO_lQk1mnF=&[?EX7l{FX{=ʒ@٘o/?*xKv'tTja6[^rph8S>7?SQ *LKF6]9JNJ=߇T)}3/v?j_4 Hge{[ Xгfq ܌ [aݻo,=? {^u8(1Т0cJdM-Ep<,mg3d.J?S#,K3=;xvYT yS[KK$^DʩNjEux#j$ ~gvLdqn x#l.Kg5Nt v,Oz?4eM~ Yӥ ffACKUTzu %Br_BŪ{6`@G:QA#sL4q`ear:ԓs/5- DχOZzy!R"^ *.՝Pt!Bs/R"Oc~l] : QGwA$=w?Y x(QcXQfzw9q|21~^*-7O'gMabo/СH& 2; `jټQܥRTd'h~c&ξ.Wj}>R+~: PcUs_52\i+A1*6l~S%H4kN3duqq[J`ݖI*dV'CFBr>`3ء$@uayOfrh(fXQY0WJ[?Da}Ќ,7u|gk4߃)t ߵKFE"Oi2뱷cYJryF =hpwKCpwww  |{ηWTWWUw=tM$NwIl:GRm6>ôT{v׳Iu"S7Xs7\!xB*~`M  'nS.I^|G0-vzoh]NdžO;懠=4l3:9ѿknACY ?swϜ&.7x^:AQO}~X'l!DPBH}(_ L^pB)gdm:S/!پd|ŔÿX@)ΧHɗnp21<:|_#JQ&V5tt;J 8[^8O^g=¢fr$3T45Up2D$Z[lSvߎ |s{g}SR}5odGI59~ gRtzj#א4,7!eSD gBb62EqB& # u(s^H} =@8ȔVL{@oуOṖ CIF,*gc 6MHilOF+@fZEMtI5޵.]zl;n>"fAz"oz&.I|enVkdk ժ*gݝ;LZhB$Xd;`yMOyBOfjqe=:cheԂ7^{$..h5Y)fZlYxHc|4昷[$[ByAp^cR1+E%,"\,S,(y3p^ʱrB˩p/{{Xqڵdž5W*hՅCe2yWF{PoM\CӂB|G,gK/_rWp ݃u^~,0*F"S|PDŽj)) {PP @ dMq>PWTEwގkę#zGAf3Lx)B$rx|a d>*$\=XWefwh+izIeP⤽I U{ Q|~a[$k,(FA9B%b92ib5͂5uTwO;!cSm V])TvlL;r5zWj77"6}z:ѝtAq9i.Lă0v<|YqRY~;7ݓa-o̮O.u)̧ *E*3+?gd3lQg&6v#xr=ElECyP/}z3 }!6K}!՞4DFdcʃf[-Kf3tBu5kzeUV17>ɫlw'aUL0dLNu9Gld eu'Kyiim9Xӛ@ک8!Sh^FDS'.4 htRU~3qStJEs&54AџuI> o|P^Rz͇RsdQ[ J`=zBנf;U^^27ye0ulĠm}'^]U񵵉up%4}3oDҧ1>XH-zT[Vvul4Kb7L_9E8z *iJ/̎<%H8.RQ~noo!reY&;xF@16m^E"1U<. چ^b]+-2+_V% 6GKd_s;օ5l`* d5܄{bcGt_](L*h¼F^aUYl6Nb-8iryCζ ա$o"#?OH cN3Zg}͢$c>k@"ɘkQDvkyWh-so,dBF9޾W"y8dlʄLuY,&nɒݞ6i^!WrwUj,ϙZ1XÓҒ'vP_ q:y."(׺ESD򼪛na1+9oLYn9Hp;UgLCYk%a5 %߫PyVd2M.g+t4&kfooZ._Ȼm {t;qӻwai*@NP!j)#u (uÝk &.9fV.CaQWƞ4 |Fj8}>7ÍbZaӹmtlR굧,k[ VZ38֋_pd2,EDriti3rEZ oF`5n~ 1)'iҧ+TSʬ~sO{g}eUW%V^ Xl`c=#유.@$*wǀ>}Mm 8kcѿ!!rwz `< sR%z0aJ rڶ@Sz-GnM?xXb+l|u @MXט+{q>@,o)Z L!Z2ѿR)ׅa8a' ƤxhԺpB|8Ųdlg!8H .m}FyE7D.7A{ԫǗBgrJ!C6lrL}2WBپdvZ?JٯG8(lr+1ƒSe,z~oH%[Vai)6*ܛH ~)6+ނfmw.-8z,>7vdeTQ MYgwvUN pu#F#QU+ֆ=(R:4,Q1@ͮ{SJj`G?Bޯ,{=pOe97_uy(5Sn? pdgZ^ݔpLM\_"&>4oS#}q̌Y{7Q(7x>+l;gc$ ɂ7s(=ΙBVk9|ݹ:տe1UbPpil <rߺwɢe:kdE;c¶J.H)tggAՄ& _׆ pAsyfD7LW;nHjz;ʦ!ͫ r^dg7}-09W}: i`?^})EfN Vaz;~ΩIIFSwYw_Qv{<o=6:E+裬s?j0?dž"K\iW@RïKފmB>m7>wIM c0TjcͫT`KThTͫT(k~2XPh" BE^l0I]>cbx_0ߟgzx`/=&!,u4O(~&'lVj~8H+pbo?+rUCR Ʌl̞ShtޒۆG͠L3 r _`^[!\(#`&' h>knƅ5I J$+CG;;k2ſ`/g=PԐC8zw^zQD`LSXY:ސCV` S/ J^R dU.cDmb9~a{@dCR M tґ:%I ,/x`[SD|ֽ W>xeSա7cCdB<XXKl߱]F]dߋ傡 Gɢm>((==i>꟦ *JԽÃ@y"/*r`k(5qӵ|Z?!oGL]M;CݳYw8V6K.EIq >ӣ~ܕdۋoc/NSgEn%D 񐲎j B⊝i1M$Y O~?AG|`4W;V?a/OCCH, IQ7u[uڕNW/|mE\KF8lK =R4ۖ>z>ߺV!l LNB gO7tYLzuvVLR.?0txtT| L2Q.x1`]5̖>G ?>GjTAYǍT@kJ6zϨ_7*lҎ*L{*))e$mTٻ+^磥ЍG' U&L *-E(Bv>p;| -K {* y'03>y`~CUa?GŒk0+\Dܶ*Y*2<3Җ"*ʵV˟K*/LQ`cǃh 423C}Xcnufiw|; 3řxMsIyojU^]Ұ1dҋ7)7 3YZ+JGJ.^3msaiOU~ {,#QIOLv>qAjG%HeRcpwu/ 1D\zRXfSsb斶4@n[<ٱ^Q{adPsR:G J{#we Xik)A!#˗p} R0$P+Bx#t`o8`n.?6ѧ]&1hqli}@;Lw"%62Ґ':_^#jrljׅh7>(E$S7ڼؘ.Ǘf ݘ2NYH }Q("¬/V~1A\m:29'X 7zt(UiU,iTkUc}+l1%b1b?0% lCJ촲W<2/gmzlM.jI10W*E71Le0Ɲ\|5$Ǔwwi8X6;]̧x||MwF`Y偐ϿZE(6K !OVS{!ԭZ2oѠ7m6WZ4ǂIЉ5o=W hii-JzX!#&g%c=Y͛"`%7LP~'ON}jk4<S`p=z{@>vޟA\ʅ:6 qOBhߐoc(B (ǀ1 GFA1@л@)˿:Ĭp!>3>FfWڱVx2)`}j㝡Lqd<ۇW-S@$'h[=YKh-.k TO#7fJ;h%?,uiY99\L&9>#t _!z'U| pY\L^fKvs;0ĕɋ\匬R U)'!򴷆B $Uߓ ,-# EK?"+bRYPws,|%][M4CG7P$$!!!"FM-G^ꄾ\BkHeLL>Ko%8)l [*W9.sgjANetGxȆkwL"S O5y 8oJ/l/y:ANWcO#"kEY/|Ov)v ;H]H1gjs%TjU{gVaM#y<=il$hw2^>^p!*gZlkDV&hЮH缗|I `(YtEwP\׵kd^ݳPQoN{[ف70b-lXU+JU?ue9UР7{5t0*dNY^ 1ڌgu BOK6^lIa"n ZSM:O NƤ^LEgBX~2;H =cyySЛ3=F󀒇5$h11;F[_pqIj&>d%e沃qx1$Vvp4ż+ eoOL%Cg%ioT&:í"in{Y7.\c~fS];D>^v@7zI%|cs:/;p)oq|Z( `e˛]^x3J\`R툑}RqG¾s'=GԶ$[[=K?eBp#>D2%Hي+7LWO yKuO W/#n$dp|Ȥ졸/z{F{T'9wDFlN+ː xs_m=&#ػz)q%q?x;a@<8T jyNlΤXJv,c\6޶LU9zc tw>L\ Eqr.mMYIf4:b+jYvr'RہFWBea3W 'эᓯ -ݏ&HJ!(79Qe$P P%d}^RT{j1e)ӉӨhtSՋZ=RT1$(!jvwH'W%VMo[4|phylO{~φM0G .oŅX79Jֻ|p =w t|R 屰_4d6MN"Mn;ڻ$M.mm-& 0 .Ng Ci*uYEpMU2t%#LOyԁ%}ťW< b-#`Za@8SlxALדǵ$_™Y,,ٮdrvD(p}^c+Q7֙V]}>=R[{×0;JHkaB|2EOoM% ~5<S*a&Q)$2dhf{':#Z;: O{7< )Kh6p,(~ȼrhҝ:i(5D-olzrIn%ؤy54Ʊ:,JupԺE䚪Lzc*2>j>ζV+Q@]?eCˬl$(׼Q粦f6 UA(5^#;„t1PHKѝ' oOy0""a#^)B*ܫ+{E8)!Z(qM\eK.Qp?G03Qxz"އMvUp Zfǵ曂KG1h6%&Scغbbo_lfuYw$6W"w}Չ(lH_+r7 dҽ 4L&? 峽5zC8yz,:x]־|mijw+V:rivӎߍ tި/̡ͱ治 ^MvS`KlBfOÙA`08kt9xaacpvq`d&sl2sIk>'N!sOIQf}DLO2Oܷ]k;7(mN ZO/`/~P|gdn721Ğ?n909HdAGI\z%&Vױ`}t5ɈW> m#}`\ me@N@kE_?1LH> (Տ >`;:)in/Iimt;I5[%`,W)gVc"a&a.CJLQeJ\_Uheq;ŋey$֠񝧤!23;菭n}Z&ȴ`$QPq nC)HJxB3Pϴ`|YA ͑ 6x'>Dyh,~lFc%_=ѨC6, B\Ƌ`DljV4Yrq}Rq*Hf#&;*?loz%΃#^]x}l>љW%O "/1áX<&V|j/uIrs[Fs:* 81p_識 \S>Jىm]-Ԟ"10mKYBƆ4 sODehڣ8G?T3aNMkKmh֠X#ǘd5$Fp# %i P$)>kZmޙ~:]ۑQ:0Y@hr#:l?+|U@$ !5x&q$h[KtUņ7AJoNPYz%ML_~ǡ!IK.~P^Y{z@*Y4yY׬Xc7=([$i[NNkcj*o2)G48mQ;gZl]3vqy."RhgA[b}T[`eE>z" m]^)/ kX wV~Okh#pʳVVw(36t{x6Jm|,U.o=B#|{j#oA}c8Aҭ;{X))sQTTpG}-2m_S몃\A<}6^Me}!1һT:7li:R>f`{G=p3M7U~\>Y6h\[eS0h=P{GlKw<{rKT2褩̧£t%\)S5e3{ox'jemW'Gpf\d͙:S 9=]))27I8)mDhvFؙz{eZ?3$?󷕱2a*VU^(eS!6tF LUXi}`'A NS'ct&^!ϯeҩI\Yuf"kkEfKdZ tԗ?lgn᰻^8/Y#Z*1.`-%('VukDۺN 2_ֱW浩!]1d`s^ԏKOnJs9 +\=/kUXAC; `+34MBCmGڈ PQuJDəG"[tqB7EWwݟ_hTje̾SExIT*$3?Jf[V@(kEz89 85Կ\ύYg (DK2sDA8DkG{>RUr׻ ȓVj-h˿Z=V G>8L};S0fe"ΪX_''*)uZ^+oCx)i=者yRuUK!_T9Ȁ+YudkDי#֣1}+;Brjȭ\i.ُN4l)VU >xM4bv'=WB@&cUW MbtE%flMdy3iz)ʚy - 7sNzLJg7 ѦX:%N(wλ._#N56gl9f򀗮%xCC,P  OI(;sCQvq]ϙЧuS1)~T8=aU ΅jV!Ȇ&z0I Vi5aqZMJ 6=wN*vnu{pKA ;"m\ʗ;j(eƛ**܍۾56aO^:.s޶7(: 웗V,mU$| >vM瞒8w#0H COֺHU a}6Mv^_lh A#r0'bUg&W#'=84@Ǩ?;&9+&ᢖڊ(xږs-\Ǘg A !&;oJN #ةφ^8}R̍n=B_OȮWj1uSLo+8=5#&Mժ1[{YeZqȅ^϶z1\#>@j kt =ZP¶Wv%hdjO;Q9JGN-XZ95=[pH4$$*6X PnψcNA! cy`uD oF 3<ulDM}5չѢȕWK1Ht,^k#ėIPAK 6z/Crr5gs]&2 Jgu1>͞ג]g㇨>5<rG8k0[FA0nM:/}C( lߞc⎡(j8Mº3S%+\~u5~^v^|6K3հX v0Q$П6c:?a7j#z*f+uG!ˬCdv/О[ѢHg"[|g<$t-8(r5?=Dc7^o+qm>T h%ͩH{lVk'j=tHof겴q21eJHBu7X=Neqf4,^ݩozbG~C⮯P,.Vz劐GNǒc?j;3xJct3LxJOyа -߀"X)d}a{>C>QvAq<NI憉$H[mNt=mwp*o'NحG#!Ryu¦ >?y9TmJn~wq#kUCP+.ןPi[߃M*44D5rU㿃~Lk?i[8d-Cr wd: v3:^P~kY Oy,#А,آw y/:1r]ޞyP옞^awvixw brNi 4Q]kSjhIͮ RDlWƂhp IaʁI5^<&>c7mYdZKI^W+5!H_-6b} rȥ؞+_l2AOՙr%uc"OūdeOURx䴭s/,ڑ 66)nS"u{=8ޥpi/1|7Adۼ{^/䕢~$O @3~(|*C~<1V#+ȫ?M3O!$TKSϓZ̪VG\];Thۧ.ǽ4IgTgJ)&~naMK9GK`z/X<՜ꚤCAuRxq" ; V+?y%é$FǮ~s:llQ*\>dɔ~ݢ(DǍdW͖Z N" ̃xRBmUӷf=>fCa_/zmdnPQ7\_/*1B.% #"hh+#BYi\͖.\Z'Kp&%焮`|[jT{-6d \Mz\WGĉ#@2qWJ\vg>1IdztaZ?U}grrlUF疜ǠGIꛙk#?若kZb!w)Z*%fHთ?t )̅VF͡rkn ~2.LeI> ph=˜]= !3ΚE~" TuJzDf2~A Dr|?QͬFR^?k Ȱ?9ݯݟoDEE ?V>9}a$WLРE턣y* ˠWLdRL^Ja4+-U5q;S_@iƀEV*3~Z,!i'Ʊ[Ar >}j*\ , %-R P˄} rp(J]tŤScᤲfݑTY<,YX\Eadc=x )nbiz J RzdjFke1痐 ^}VcrvoeBEE$(Q(1 CQ_:&K_Y峪R1W=blkӧk~-^}MP}W<%C|vC 7(?{-64F,7p4~yd, d+h.g`+kVIT7:mq5ۿ$3Or Vnm/u_dmvaikBH%\#S#Lߎ_o:nNeDEY$>٦`޺3z-ovYA;!8www,w]乯os֜]vѨڎ%:䡣ǫtSX>+&`pIؿ~ ׎; ex90Ӊ /\ow2v+v׈XGs- YC++k{8N8_Ĉ@2÷GQ!xYb> rMHࢁmxqYHd2R\HrxEwtqwTPyayfȩ׊tӢH/DY!r,d#z,?G.E}OrJyXv4),|[-njeS<ļE1(eGjQ>ԧqĄA%+9a? |$jbO ɚ[O4rOD?tP#//Ϧ 4"I8lءhuai]FmdCӃ۵XFٜr K}ysߗ600;rS;5Ap&JK=J6mB6}Ŭ"K[ޡ6<ocNL[<[-@oƸ qX`0! ܜkSW.JU}w ?u n6^%O-_|#[vϱ^&Aw>r)eMw;{pUFGeO9UC'l̄68Kb3 'רADs];g<̓ia^eDd?䉂8.DQ?:)ڷV8MpMO+:g \j#{[I4]GolPؐZ4Z\zSI{_Fh]eX;, UXp ž.m+嬃MXvۧ큘Tfy*$[z/nXc&JlVdBz) 'Gatۤ<ۛgtmȽ# i!]tTi>^4]oa%‹0a.ۼ7(2 ̔J{GZ_3PK,O`nܻ5n`iu{;e4y`[o$gG^z~HlH^PX^iyaAB|fnWA+RBuD|pGύeT ߥEGk2}s6aR4Mofl6{|FtZt8/hDj8TSK5ȦL)ypM2Rt2!!sFLSx8"Uo-X`%UZU^)u¶z2DnҿzRO1?rKr$Xޭ(6a uP}}) G" Lw ezʩ3: u,-{ϒw;V7>.q;Ak'$}+݌|cZ,w?7V%QCGq'vX\+.:=S+gjDkJ/T]0^]zɛ饎#GlMʀ:Iz-΄yx'q{L^֢3Em CCjQV "o/03/@`1A& *[Y˦bHx۝iE|6ټHq\iٓj¨how n^Ku!1 ky_fZ[N  +DRT.][d\,O7Pࢀz?wL~1rgBZGSR9nQBr9?8 P|Dfk`,ɝ,7sQQ+Hy0$ᢰaVzYMMf|tA{@sNr@f$&tFW0a3NˉǸ E~pj['Q~xLq]?CtHg"*lPRA(*=6AtZb5aKZN(-ia28?ק[CtMY0.zx7 E#66ܓ_P)KW66^$wB#`=Rk,<ɐ{&vZ-' \ ٯv 1R!Mxgrk[XBUz:=b* !i}X9جu7n5s)w'HqatRcA1|vx0b Aj0ߘ}Ծ(#aԥeo wSltMaUֻ;'%)x<6y GGJd|/m۴Aqgf dg +;G&K9{◐h`]$S>zyqD&"fWp) ,o]ljB,BWu@fLXړEqaxKN!dclf*ul} zy=52^xrͧ |Tҳ$ #A^q5D0VBdRosN&<ۣ2o)7|D}zj‚$߯TT*{s@#h5ITyB:r`oLjy/t_["u3cu1OV|K?VJ4>P/]?[`6C}'f0>GT ! ^yJE101 ѧ#Jz}gέ˙C42qyY1@N4^fՆzv &g˴ ͿmSOrԠ !_R"TTd.l_SZ.W{# `O9>Rc~u/h,IGx^6|tBdnA5+zK>kU9؛yL=~Ņ{8dtz8^ A}k~#wvT&6FxP0\&F{3ϒ<YĨK|!aV#RqN%k%ھ."4B_< 5O>s. )@e# B0w .j})!Pk:I*a+5ω'1J/-9 %*.,7+Gt6S _Ihk`|{{"?Nh<9Tt[vb3ilS;ݘj|x߹SVW;3ԗ_y[ ς?[x@] dň\ї*QmW6pr UJX;piB ?ЦTZ 'I<&Gդ瀬hʸݺ𧁳φ|P')a)N6% <Ȱ?_1n®w6|%Q=ir^Mx;6Q?:a*sr;w j=oa}e)fm@ڀ&L |0#c3jap}Fv3LXf,E &"U]gLT~gFa,V;d\M:Ys%#9 #ijvOoz<ՀWp%|ww^+` 5ԥq>r7"z 17fn&yGа8=I*̼1 e1v,Lݐ=>xK~SZo'ƎKt&mz4[AvI jsf?ͅil?N$b;IЖWEIVHv!4(n\ Ӫ i,uRm 2C AW.KNխddF !WL$yQkY&o.vZ( 1dJOk S/SӨ-+XV95`~jXcd؇M^n~!CDjc@_|QRٻ9k[#;CQoo/tI(+S{l~2I' B FZz-+ۻS 5 ) w[jY7if4R.ND? j VK'ۀ,@s|W܋ru'ݑh%hlrѨ^~wW2_7;r])$G'jxv 骢ҿ/[U?^]g``[O \WcuM0'{X?lO'ϟB $e=<+8}p;h+vHX] ɧN5BjFir)jv9؛bVonn|I %6hrUKMnEdR'u4jbnv'cM%|5G`[HtA =GMD^7A x~'wRsTH!OϤM)M2pZ/go]ϳ!vKۈAvI1/vjl >r ڶ_Y }D(TqF #kbb&Rqx*/K&j)ab֨Ej25:77 Y٪)/P*ureTǪ37ꠛ |k 3GjO?G$ SF5HMASnJ O%dLz$#XQ4mɻYۻy{ =]ߖv{ *&ܲ-ޱV Y҃51R&`1\/6LcdcO=4#ҌS<15^7wAM]ol#w7;vVI`ku޹%1 UPǨ2nϛ&$kWנd'k?(]TZ Ga1c/NFِ*a;qmlE;.QHhy\N,7_ Zno?tv8e鯔[5kqoZEB SnVX={4<cм^[(Mg۹ <ߑaV"e0$:Z9w M'Z c ge"#QeץE>]~7_8>i"ow33ն =#0wǢ[Ԩ \Lko2_̀rn>C 8{vOY ӝlDt{4ez#[rblcD)ƺ48_ 91p:}[ G&p\^ѵOh:Thg\y0&"*y_PK[E e k>Xl-qQ鸨SB䭠Ie_]'auޤl[?dR-9Kd7OL:'z!GLm 麟uʾnkT|eT_jBϪs yȼ*,3^X'-%^Vt3NYp 'e 6DFYgK9dvm(.4}7RX\H9~pZz%[W ) Hfit0l0Mv>p W|N)m_%17K1i!Qc`oNVVtʆlYxcԷDrPlKٲ!>N?MSnN1x`JB>2:۵^U3/i 05'΀)qrxxz˘ZPv ۭcm]Q]dMT$pd<\%(0p0ɇPvz!ںc" ~_;,xil#Cl9}ѣT95j. Va*xQW !urz?` # Ħ]٧MT#Ase[^4]9^]Bƍ^~;ǺLs(39"~t"*-t'%3}ɵʬ zs//ʴ1}*;{=EFhO!츯œ;q`ŋc5 qb^D}`8Vs? Pb| $EN:/اV?tucnɹ]28շve:BFU2bkP{%͵] G˼8zp"mu]-gxFztB]`ޏ<;gL͎뾟sT2(.'mH\^QO#ϻ/90{;'뀰 Qj&zJ1";jklLLo%%Zlc^~ i34!(iGŒjEaӢnd쬎 1tF4AZC^ΟY몬|*0Px}CvDk#K`$V]z}f;{b `tj)Ou=3Dzdyv&:2E6 ⦵]H%_ ZtI ʱ] *G JG˻0AwìMonw@-\F$)5'l *!g$ jW?olf4YεCr(`IP=>=Mo $7ڻVAicO7);̣|c\N2yR'7-jR Ym& !<[Eܫ4=kN䢴8?2ր6%WL<2Y& *i"Z]&HbN6 [.)jh”I†U 4'd5ՋKK֋yyle4ҮN4 86aĚٝ) /PV; *2CMd+pTKҷVa FjnL70e]=7Ǎ s39x`{mJP=pxIaPc'{&Ⱥ\Ty^ xҶ: t/ݸ.u;wj<暉0C'q=ݏ_[0_׶m ϛډ-toݵ L18s`y'y8EMh$=dP5kQ"zr1_?KxkW@cI Enn6U f6L:fO**ԑIx) ѽE:GBҔo~ A 8D-OHfXL06T8;P܊ i">ta@XGY)u#Qbhk3j 3{se\R0Z5cpInQf! ^$)VO2#ZM %fhaŎ8{C҃}&w cqC!,iҋd< ike5I]Ӧ:؏79`P7KA™K^ɼ|Rnlp̺ZXPO[_*?Ag*-}5!0L Qb!&Z Ȣͭ0WL31.-c-\[yB6L&5AW :/)Af=-p W麒;26T=k4l Qd[qF j"mU Kb{%0 Y܌q)ߋ4ƱpR?]j kM VXqz||?4ZCFE %`V S|iLKe l F/d6A(7yeh\rQ9p(_t2AҾVC~i% > M̮^keys&QlEn|KP(\ZA69<'*\@9oR76rʔXajiok"VtFaIS Ѧ=.eOҁ w,y}-zHZiqem^2U.LU\[ʼne ?yNoW %ƻ߱Jh%֡Y*W_dxeuդrQ_KOa q$7V>|,f8<$g:}˓d-*]`vƑϊm4T%蒛؎vyhbYA~VQ5mZGtq4|Hӛ)\v/ پ`Az,8bB^BBD7tOF{,8RKJ [_ErOjzi3.cSrmxmX,8= K cte1LuF %Tuݼ'7pSStwFK4gCޑEg&N/WCFa02<-&fHgml* \#|l'm>nn3e0!.βNXa,Ҁ=-0arZ|>iSpH4Zo? p[dZ3D>MQzjg-mN->U iRw~)$m6RHRUTl2v,_JY3e23ʥɐ8l,[ܻk_#6wRG\5>3mi4c]jӱzejD#}Yn z頻7'bdS;p@JC|UY{I*J}K^yF+)j9{ĦY{gNdcu=X$>B%QX>{3B醛] W+=׍kBE[+*I}Ÿg*4aω'9pɆƒquVաE\*1-VAD+D\*_ᜀNx:K z¥cL)99h+aC珲;G_<%*1R˦A k5*/0yyv7fÆ>u~Ӊu Bsޜ^f͕u̍Wh@ZH,;b)R$ы+|ٰ?pp-E!t_aeupğwi#27װHF7S3+s.-z\.eZ;>g"=j83^5]gzqR|Z]ڼѪM3OBM:7: &lkKpt!.,0G 9/{ar,rx=jyj2Kod2򏧇Bhjt=ݘtL=lZkڝ'cn]>yx+3kS~bddޱ7khѤ\A}Knb6ԋNh.]F>w|Y^gwhlCF?nUz?9O_lv622sF hy~TI"`&RtMRA;C]a¿[s)~ݻ'0uF?6ۜLvc?Ơ1΢:(^XZP=ѻ8!ʗ>lg xWe=\vC%ňt\7Q6^EX]fV^uzEf4PIOOW%0eٕ0Jn n-.Ս DoOe RU[~9:7{Ӟݝո(-5^M-9s0R~I@ZrvBF̐å yJidfzgzmjm"J^9(rH&OPWy@w24%DT~-;(E}惌ty"f3a<3QYjh-Ws|LD&0;Kg/d<< ̊;M_ͷ%/ `a2Y!)\W&=N^[)B4 s IoHqˋO0B\:pjcDj QBIAϾ$dgonMvI$E-QLɢ#kӰoaiNXo{O0CJ.(f!Qe92I{gGs"VM5/]zИď?u"[ 3 T"1yE8z7a`+OȥF!TMO6ll%]= 3pf_ F/eGBaH޺sL][c7 L!k*!괅*d 8AG(|ƍV?)-J3A DNJOn^^ebm>PCxIt»ո e/=rE2ï֥{\%v$fKP|'BW%"%p,*(YsmxKI? h8`Q)3@ ɇsq^4;Vr9+F[11O6ytβ pð'Pyw 0s"ҏ@e> '=!ojr6#{+>qT0QW $h>Sna0ϙVWb?l@~p~=T[B=Srp5*NFyZιTl Y|0cvied \YԚ7y`sse(>4Z Yy4՘M%v}Z.Z;a׍{+ש 4.obnZKݭ2bNQS((P&3ؘTRs/ǐGfKy׹8;86,6צgF#jӴ{K#=~S P;!^S;VK$Vzc c Z9dbm>jZg:}lSMVrԏVʡX ;EaVy$ȺAaP,N@b|d_cu'~:ޖPu9{PƵ,rމS`k;Ƞy1:K%Aٽ)xp| woleK>.N@Jq?`wjO:N资7G5Zd& hΒR6V),3 r=n% a7継aj*ť7/aLL-anDw]ތV绚whA BReXz^B/3j!! :-(W,o/. Ei>DC~;;\ 4Kqͦ@~V?Kv0^lyfd40XeT\6<@- ]ww !xpwwwwww~pX_}׾I c );_cێN+K=3jd/qH7f6mќS,ڽ@DXþq|ۅ ;V fDiL;Qޠáf hLg*DA In%R L¬j+nHgwjkú&W~NYprC'Ooƅ[.N{:]n~\nϓR,7mozEo'Xp䰐"}d%4Zq@be%PAv#0o?0FEM0OX7TJ.%û.xKmեTO/؁0#4\WU]0kO ,քʭ"Um!gi+xD%M^CJ / ~0;K6=g |V-{yk-zWubXy?LUiπ$*r%i  `THBh:ۑP8aZDv|k}}}m_.1ndDp#ӸTQKܳUt:YRJχDNswRX'AIֺ*׭\x> 0H^w{*KThuޜ<F*{쎋rʸZi/--7XWgg{GVnd!k zxKYƚ:!X\0^R+-m0 My`N]_ܞiK.ݧH)yVseF;RPﺌEy-A5[:7*ڥA ޭ~?hHX>&[E#T Rz9$D/"oS'^ld}ż"ٿLݰCL:*p(vG쬐C<=][x$>0/WP>Gْn'VI՘H.8,1}y%e:p|:cѽ)0DnASqmꐸ=8p|q>h[eޛ X_9XE)f +dd.GxG':t@O<5Pr`g1/ ΧfNI"  .n3g07e3e p4sfw2FP$r=7y1x_=IL K1K<0rEw(A26al$&'v_P*cűRégkeECNHQhX77T-\vo1f/r؈ΰ{J׮k>#h HAiRXQB /2ԶD]-r_J y(2I}ګ&Qg.£ri5?a8z7Q0%I;aߞ~}[ @ǿe|Z"ɴ8ꔝhl"$KpuXlm4HS @Ǧbμ>On#!NԎ%0۳c{,Y9#&D5<z/40c{cbK,]%|_{MU Mv];,!,diG, CU͚/OV5o8_uU $pjۄt]8O}DegK-!ٛSH?H/= bT e{Piw9 8җK8>߼Q +3 )=>₀19vf#"\;J])E҄l[gr!klyOgrAvU܁df qVXY^|n82] m$џ3}f˲i ?S)1h<7Xg+2;Uypz}-_s8v%_טlv555٨k{o6u_|e[=)0~*(ofVqau_2wG1!Q.uZ)0#kۖWB>hv&EEqb_&+x+:[2O2 A ;{|G0BEHn'cjJFpMop57ocS~gd|Mb6qyZ[=֔0<[y_u禧nfcAA_)UWROaH'hhn6W>n@Cx\=1\7B_ = hHCM`gwį lDQS <Ѵ“#XJm]+ }UGgvFnsbg 3;(ǝiY"lʯ) s+S\^Qⶼ8sp E`'G.JB06n9_"-z7q#}Nsfg$At',?^NUݽPЋI?߿c7IV3M ޿96D&{aߪ~iy xi&`*c0pa_KkȔ/5nH7ȟ##'zp/.ta #]p|Hp- TzB9r=iU:`bz6fcsjhbg{$gg2>Szs8ayϫ6"+Kw1hɒX,Sňs ٍM6n}KhN#g時Y܂N YhߴZ`4@ ɦ]b8!IY,膠a1#]]gٙ7Msl>=R]~Uhz};\v$n+0paL/?}4di݄8*tZN3U1b(tW!!y-fId˗h*8)@e;%0K A|Ov ߰bF Fs2`gUgZ&UU{Z1bM!IשqE(w'Wws6)!Q/}$4RVHVDgȟo7>( Pi xڴL8ěLSalLy<>ʿoB[{{sڽ}o- [qZ.LEZ_DUt䝞F6/W.ECq>%xOL^ ԬF_4e ?.|Btx -FI ڪmmQl'm/G`Ac ٘kBT Ou;r7M45yu"} B-Z2V' #0yXh'9??w\M p0pC/XV] 0KslT5w1Cֿ^zbX_/Z]X>hqG"Q/T*q V?ƿmvh\eݮ-tP>줸VFhQhg ߊܪh> 3M3]=os,\f2_۪=|_/^_z|ׄ: 0N^D68xp~8ܟ?Y!z>]}/KSx _u0SI"ݟe_8/BC+վ!-wl5fJ7YgQ"F#U$G%œО工dGnkBgw5L!g`&3Lq=wͱI0cQ7y:: XKg|;O?1t4I-nOܛ/h5;KPnAToҧŷ/KyΖ>^#e*j+__O %W|?^_K*Ad(qѓ3t11a^ cb {zE#vk FIý@xHse 2kH˱Y_8u,1H4 4cQÖ4-8q\ྜྷz+S#hQwD,-T]~C!h7  BUpE`"ZRu(B4447cluS?/_\"_z# mPn&1nrjm{~uF_~ץ0C% _s}d{]<$pҫ)F ڒ"iޣ@#^pٛ"anAJ!~6)}sKO,4(8``aqN\y=1߸SJ=ӊX ΎgP bk, @JO m J`a[:%9_-eh¬f&-tmMϛʋ,qoGE`ajRՇY}_,v4,ӡm l$B"tuPx"H"Y񔮵x'%\;<2s۲LًDO:3% A w3Ƣr|3îe^bUycS ;TA82mXOp@&ǃi^u%LU.-7ajt0G^RHPv32wğF|N`Z[9"͆"0 >ZJ/QH5 z .-ս9Ƚi +PZ|PR^6RϋYQvON{gM˅T(bBwvKEbQ 0xiXߡ@p C;ӵRf6ٜ~э#٧ G|1Vj^OM*@zR!zKKRS>* 囮 9S8,mo5W}@rkXn_"4<cgoJ=žVߡ|HapR]% !l SzmNk *]OT/:Cd[>^uטN?ꔑ*ޅí v)X&GOfn\6 =`l[XN\Z7.{r] ȕ2ffcz<<9gr[4g]a_QY^>EŎ=u%;ęU"`(P+IrHF[NL.jF{9~2pB:|/Jr d%\a{fىa,\maosoÛ{醲뻑טh*u Yhi+Lt2C<:^7G#2gN~y/a`ϯ(_MܿS bn֕O GynPӬlL_7ģ!:$V#7?+>Z7.k0M1Gid K{d{SWca# ('1[:-տp>Dۯno^/ՙ):uA:m{Wy+ EA bW>oJ@!Qު2ag׫__$W •$ ʀ J/PЕR*r#m@ Q8 Y롖HN}ChmM.i,>螺f9<&Ϙirߏ4rheef,j%0F߿Z 6K ˍ.wWKɳW Q"UJ6G\ k5Ʒjz:Q2BwW,2CGt]# 53 ɮP;p$IeRYscICqdnUNPVSmء# 3xOhwv_dG `ͣHkЌ=ul5RڊD S|C{ :_k \E\ܸ' ]VʑN䘉c3-E%^Yʀa/6e?0-+n zkT;ʫqS(= )p;΢l Wm)Ym3r=*q|.ⲝe=X'\}J>D@&Ehҍ[F}`=-T7u'uғѪHyrW`MzvBE'{,]x΍gpqȑ=D蘡 &Pf||kk+#n MS=,ɛ9R_--7(´wp`ffշ{LII0*(+_Y4Q E#!9F >&7ȬĀxv5sT]]}̕.H=755 Gν2Z‧05*3dX55Q};RDiL9рm5ؘ 9dXp"8N# "MQPشUBbccA^`(Sax h;|\"ۙ,8vt—͆Ft99P? QN-.^dO詎ґR~n̉#. WwdR]0- ic\ 6Ϳ5p : KqOrwp)U& \x)Ze3L!ff~=c1l.!`ȯd@(p{0I||in[6.\{Ibp Hkp ]-vSa47|xA.,IuXpX6KLAɫ<ק}񪊛syLf*"?v>Thg4Z|$5ᇦ58YE3R;^At|6]K3R=B}q[P~, ]/@7sPXA>쳏C-X/jBeZœ:hnvx)qb +Ay 1<饅YRנMI#t O*#(qqgۧ6#ԅv0^~:7B|vbRVpzAb[ 2 rmG~ "-01$B .l߫uzqW>hR\zg5_sX^lObf DLՂ TcXݟ7% T?i3_ob#3Uv+#Op^66;Q^\Qx^O .OܡSrr ǃoc@qrW] `/+jq,XZ( ˒5ݙfDnalr('JwN-KӞ]^Y ^gqp|v.fEq V z&0iLۖ ,b-:#r71,ߣ=AIHdʦn߃DX +lzK<"oR ȤBP.Nn4 \EM@"RI{O' #+*`Xל?SsjYT녒bSu,M4ZW$j!EK[xxxeM II%;?Yl]ʺ82ZSmΗ9/}si/ ;OuE;u$bĬM~02BDAz|>vfCNTt_rȾIiRR~@Q*9h=G*\.>qw^utE;b!!gۦUUdr|]Z; {_{(pc_Kic{xYU'.Y 6S]P 1*%zٛ s 7<:J%ޝ:hu N|%FnL|0Ѷ4P&rpjBB|f*q!{]mz2=4U;˥>Dk~zR./(I??1wQq_g$8oR&bBqK~Cv'O5>ɬ;?vy#};SD雷`.s)bFN"§yY0pxS/,LeJC:U3\#n'ʗ06fFVЙlܿ=i¥d!}?hۣ@!PqTr#=̀ pKoѾȬnNmOBݸv@6Dx_pweln-y;|AgMk 0D %,v(o`~bؕ*ғd=?..Em._ 5 2o-$B/rR5,i~m֋{9"kG/KoZnߤVG e?w}SI裍ʦ8 a v}Lד3rs`-3ks9c}8PCɪm'(CnwNTFʟ#L>C 嬬igvoWXo褘'<ɷ5XFyT5Oi>0((ꪧJz|S'|$Y(V{6/ل Ƽ U}vDDgnH6("ug:#œ7ѩx,Oo΢,Rzٶ,n$4}>ϻxCb@:|ݯ[&݁'&G&#Ur qq,m|IPXCl`].WyC&;:%4 s ܷRL[p0?!Qi jw1Lz92I_O?g$P[GQkN\6CS% *˿;__\_/-. t`#nq%>OG6tP!\ޖFp5] C"SrH :0XNтd!{F7ю4n7 (pYT =- UZ$bM@ܺvR)wk`1s R6#cnc7MɰXT;G9, dB/|&ML<<8%]xɁ?,GCE;A9] +vV['R|Of["q~yN9k,yv>C݇4qaTDP/jxu bHoT0}oM4xoJ' [t0P->~~)p"Ls.ĩXt@v$Wƚ.<fpć^`]lmVA }*pm3e>a+CXIgݘXYIB^Fsn+˛s6qYQ圷].lCY[g /딅W\ ^Gq,[r^NɁ+lOX&<4kQQms!cv // ./,QZ{cöϸ9x^}өT)̓xZ) Ѐ!y>Jx'8 H*BI"/Ӊ,Uj⳼De63vYr'LkjGMFFVʚKpwV)v e]DGSG1((g˔7Tb9E=!"fFN[nHHHtm,9xm@d!*RԐO{t X;zm q&ɺ(4_}NBhR<3G D(B2%s{\cҞӹM(8f#:2ʼn3L%#Ԑ9q RfX_^MVB.033iXӡM$"%ʭjk+ eͼx{{6WO(rDiRDL;VO0T/f`fD;TZVVpOprssCKK;GZY(\ S2 9fłj|eAAAEh AD+Rrr>nn]ZZƷuMY{6TI~Zúڂ8o"& MnoV+}谥|+~eY\0 5ײ9elo0J@> [=֡L^/o`` {EKP^y5 L>1'8B]=X޵aJw{=u~" HzrJ\{փn= CJɺ M߂Кc2$bC܊ށp'\b޼[tBfѹMy6D2&u݁r;ΛmȗXlZir80bZ1 8-M-&Mۅf#?2yx}l%w ~b% YH{kzd,TfƜ%hI&=OxɞMq4P6LdpAbkj##3a̷ ̪y qDlZ]B qUl#3Yr\_F뚝SrߵPnͼ?>!ؐ)xddL%*B⻳0b(r0ü k-a2g*QC@pF*.:BӁ1eHͺhB *7/U\X&2wryTa_#x)>qqe둸zIhDaVf8y`4+nLoCrcV(fyYjx3ja79j(L(Qx'))Lq$_5a~C;UZ>WSmr~`m FskA׈XO5, ᴹ0j7D_u?@i=m`LFwݺ˜ 'Ec,mWWL̀ 3ߢBl-)5 _MKÇjڮ{W5in'w?P^糴 Vݎ{w7Su R~wỂ;ZR[$v˕T$QcxH=./q=W>A1z?S67kG)$dh\9T]c#jDo8ffTj͗*!Pjxgv׋tB^e|cVUI@~PR'H/"oJ3TdjHyJtEzo$AHx>:R.^@S Ctf5䙢~1e$!ӖQ^2w,Jd t.;?P|v촗mL,YI#l_ TX懡 𼶕<8k_bt'u#썽bBiGXfW<8kV'̚~jr0y2wM@!1+E{bhj%Q{1rCB\]9kEIuVUQw:RyA'g])kb&/80@3u|}!E9 _=҈^NҢsgQ͈̝* 3>KlyqJ*>.}u-0uky2c>K>LãGs۫ P>tO >`r#ہQrm8sPޤTi8bM4sGݩr 9.ؤ6H<@'Ή Ǻ zi@mbEX: [1=S u_ljsxJM+wfF-*>>m M ?W֚s qm@R7=,LP / *E,Cʌkبo"rZj7]بUBBڒ}*6~qjz.ΎK `DRtz=@={T`Uәt~>#ř#/uMs7{hT?udq2.1{]-#mp=X9aAHծ@*XN{rQY>AG)ZmSQ=d l,`?Bb ji h.{31BA4U gePP`{[@j3KoRm£-T 2".2 F4k|{uyᩭomQm-Wt:tQ,աmıx܈Z7 Zu'Ҏ|c: ;Elj%H ,PZS%F?bCJH3qY:Z~:@&7њO) %:8ghQ<~Q-sR=W3{W)+[30ɩDH ~y`31D=X~vk_6휜…aNn| ^iOLdCw%వ|וB`𭠑iR|c:ɨk*o+L%j8{> ~~ug~ߙss I0 OƊwOjN[(!2Dۙp9lW06k[N A=Ä1w3,ڭ|U5PTo?cCQ'S]@߿a;]IKPm*uQƚA֥%tW. :[vpQ3zWdwMg-76pVFN|4+A'v>RWDSӮHc;̟?ȣ]J6Gݮm Ѯle5Ȱ"~uYГ] ݮݚ6iޑ!IkC;.b`!Y6.D?ER|b}kʼn< d_S=zHx+=kڈIS!w@i ;*+&@xJpϛpșyXWhNSbx2f n ιob4[9ȷAu%Bn7֞[?Wp&ƈC>ȩ*j_ _ƜPRgPZ][Vڶ@śls E&KcXN ^Ti,ևsomQg aVKcul(l06DcnbiiL]Uiu֏jF/L:K+zPXW p=\,rߤ2"dҢ?%IT$_ ZB4Gnn[w8I=OGĢ3|-Z?:!%Dz%`x./(`gwEŽfK&ICYͰ(H|vp'FyuOc5i&0L2|V( =d4k63 ~# $ƺr|Wz$l,X\q&$sc/ae|FoAA>>|C.D'VNAaO9ae >ny ,r}w~O::d[Ē:Jʎ#| ~u]wfz2g` NgGq(JbQ´0`Jz0X-1'o󁲺x} Kpf>VyM(+2a%^D['5"զ(a>Zҗ"lj\z#90eK$홹SE2ұ {]BC^>8 p.*.R1[ya|I )ۑNۧ%~Jj/ZR²>ē\}1lAk雙SvA16n lAݓҥADIoZ-d иUucqc\˯0{⭥>XtEv8+Ϙ+UE:kɿsiv7cȏ4+Ԋ9y/ d&ic,> VH ;1BIgH4-JNOVJ)D w k:h'CƣKpo9a&pEa0n(W/(he6U_qYꉬ:W\`UIFaҞ6DR |J,dt'ߘ,) ֋^طTK9 r}b7:V~=w4K<09;miyÛλgUB_8܈̏^ !ۉ҃CLvCxt3גqٽ Czj6`?5h{81PMHRO|zQhAf3G~;qgiaƳMWL#1* ӝkfvS$4!Ui=?Й!u+<܆dkBعE7[R%5|#_WuZNיD6"ZHv?$97}e 8a4T^$&wٹ+˼]?0o;m#$Qgspo| 媯馱?ݗz(&{r?ҖHäY5J>Pfئm &{U. [Eں;ph$Tu.j2-1\0^CsHmcaA"XOn摧V:2ӛ^[6mw/7߇`w7~q_|7$^W4l֠ɳ;+գ(TO[x ǂxjXhH~;) iL|u7ֆN!.,6szOtB&Z|l"LEA jBE[ olﰉM$&im4iqt~0B7=έ~v8󌶃LY Ɏs{Pr鯿=5YICj:e`֯7ff4 h|΀XcD;(e.M>x5L3Yz.yuS3 դSѼNeWc&ceGDĝ3ƞ[!ɇnàzcn&@s.!/G[l_OK0a=$o-_j:|*yҿ DsB|\No/8b[{[[V/-D$0Iqw[Έ}gm?]4PIۑWsPrzCslG2W-s}h4| F laGQLNi9%kl&~G-{{SSQd{G $E>B߱;=Cƒ-{LR?]:JNl74'1OLo'ޢgnu2dzUNBp~ZSjX~}`6R+0zIVIMYyGWz<6Z2 9P<ݷ@nGfچMĵV +7N9A^[O5m\ɑb;.+iA[eҠȻ4P7)II;\lG&| E?)"nV/ZsB{iK/~|.zԲh?1 3ν2\vIve'9-iLɸyM͍[4pIH37ja/ I{r$:O3B0fwwR,ݩ?~ /\b~𡭪%xZ8Jֆ%ജ6 M-RUxX3Yܽx={ۮty夐g&Eǁ(8}drߨ1Ri ##}l~_ZxuzEI̊ሳSh!O&՟z)~'f.R1ai h |ʩq4YmRAu9'{q !<^fk#y݀o׶n[PImƦ4_rXQ? PZ\==b LxMՏ/|.wkӊZ]T弗  4F~,w8->^X܈˦Bޑ֜Gxy#l'?RWՖp9g|G>>NwV9zށff6yV.b?3ycɚ&C*PʷquQ X4r3?R&̝)Se>kfT'npx!x}=Y~"V*WmUxsja mڝIߗR~uT ZF(3yjm)*h8T7v-RTޱ{͹R96gm}fbXL5+u[@Xyݮ_ 2* #΍@kmgس'똙8ӻ|ʬ{xܜf*[L+vlhO$&¬ vM5µ}Bd•ު k9_%K6U]}mͺ*ȴcv5yI_" !f[紓8pJjG[:*m_"xz 9#3;2ljѐw`MNRm9*r^cRf)c\cldl# ̑˦P Ǘ;K57k~1-EOmkSV>!sz;hmJnq'mpUqDRѭ}oe;؂h ^"rx"R2gLM>ha 8v/}44~mWP:M:O+}f余Y;;Z5T-ljW|ev\+;%2rH/ 8.۸.FHWq;:?k9ίYT bd$SGgF(pwp<+F#ؓx~BB MWr"_~.NYȻ// ouVrVC HE~{|B'fb3+.νgD3†}=cgX\a^Ϩ\-oПfҸzžbw [~D\nşWW@ͤ0Y&߅Fimʽl@xVOU\Ovz528c@TBxUGei8ߓAG\CŢO*zWrKTT~ZBw :BiX5>!$ah?&osPNL6ON+,.>LEѿM_ AVzn#2Ēps_7(;'tw@ rsTA ȢSWwKpo%N*3C rvū~`seuÉ7K>Â~̏;"{d!*sE$8v& rsg0 f3{]}sݺ{P@VҠG:a'6#BJbuˏ{9=Ϧ#G }c 2/ķ"ۈS=*nIv9sp`nmL<)וJ8 nO,ʠtsUgC3u+l JD4Y rm,Y{0d%jAr:gպ65+xETfdIZSc޽7s!,u@Tޓ_Ƶ A;`"  ^*"W*Z_f1c$="F>FW~L \VU^jqwlMm' 6DZlKS~j"~$x8qXt`X9r<6|Inޣ@ߍ Z6+.d' Fxe<J"&ZR!#wb\Z`.ϥ,s~ao*ϓUv-iR侧_]nuv5Da3 /vᱚ!5ш0h+36$ Dks"l5I >??72COMLR@r{eX[+pݠ!S( ݏ0YmcwK):o֮HqKKzQ@B]B )nAl) 7~~6򋓍ЎҩӍ((@:;aBht{$gl['x:5zvqO4\h5]#ۆ*F]V|O4Da@ɛmzlC9>Tg{duwʛ|>xɃ sP"4냤5kw1)VR '}CþǢEIBnv zJEfucF+WYьLƛo٦}}Mȓf ̍w Jvdy&_O]K"Ae'5+![عdvUm\(Mڇ؈zz~HQ Ȼ {1QŭD8 2先9R Q2V)%AONުVԤ?k7^uzqK^TEӃ hX@&1BF%ϙmk#g2丵L\M ҭ}~pex4uwH+@&׏*9,c{|hRՐM&{w#&STQTϿ}ĚC=Zv3y8#{y<7v7C7^kQm1v7;ve|+}sYs,Žj |\CTḼ lJ.(^Ia@(n3[?~C`iTf -€7$lx0amدȖ0vfWJ`ACxjD|`e5-3`o¢ q)4c9 Ɓs𠂎Hd`L^X=$+|xCpKoӬWK.Hp(v8~{Xw^D!ঢ়Ukδ9Ș @ۿ6Ow-NbxT:5↜e%l, ?U(OõɢB1{vE9 q-=gxD}lMHzSQn%B-[wۊƬg؏eNYnfڙRM~ߒݒf[/>Y O|;RvQ^RdW >/ i>h9wd }'*GXX0n;v%o8g{wyOן~RJ8+%~:x]PVtƶMP8gZC<L`r ҿKMҟ<6k}H:eH>Vk7Oh l^35-&cѷJ- xOZuFZ[${XHZG=۠7/6*lyoLG'(>/|cBAX4|@>֮ʁH^L8>GLn1WRv7+ _AK#U{hYʅɞe~ m'#ڏƕ[˫AM _Xkn!YxUmfCv,6U@S(>$i#KMH&rνIMn^F?~:#qyUPaTG0 ~#Vqu~Sc{ͶQz dڎ :rtvVJ.ϬSϕ["̙'Ƚ^>m@&-aaM|["9ٝDNVPlzf*%E[ }E~˵ݧV"pW~UWAb.՟LFl=drFyI{ϡ>R1,ӣed  -Lce ߍG9g*璳5`ˎ;eyu2WɆ\mE7D KSG:\ Il@00~bQ֪~ބ~.:s۽׭ȵˇqsmgGtՙ;%!JDۑO*b[` '?o|MZRN3 Cٳ4<)ѯ?+\ Bjne47Nm3קIݔeխ}o nF_>=Zj4%fx$G$`8*ܪ:?:j-sOtXmY}U 4[{ Q?vz]7or?؉$CtLm zobJ?)>\ae<'x.r>_YZ^-uRjnUYn_Vѵ:Z[D|/teZc>q]G!<|ENIqIsKzLx1bsN dATwR59 \ ^M*H30*'kވTЩaAQ+ClC\oߜy{g_dגm jbK>zxSj _E9.Ô.ΗW N[MOjF#Ϥ j-"y]^Qe 7KeQ 8-0K$,lc :vw5ʕV>,[#ɲ:/| \TZz VJ_0n@uV ٙUS0 C넰]FoC rs{"Dz׭?^|?\ޡgyc4 QA``|2GO&a۶q!$I=$/pS@N-Αt _z)ń\;ܡvRhϫ"[YDcYgEvIVx5균'ij]njG~VkxG[6ZdNw1?j&jYI%ja+o3䲖d+'ciԂ !GG x|XP}ݦdyǻ̱M͘U6;OFMtA$ 2/CNY>J۱+b7)E~x\7ױ<C{n>tƾ*h# (>1^Ӊw _?Pm}<ѕ8]lf}/vxQl |2kR_O}WUkjʬyXX6Z>5vN*ߟx:2Ii%bZӓ6DwtƍSP!S_Fbq+M7I3TJI f{bYjQӉN$} yr!u;Y٭l}#XbVEQ ك%Mk4ӳkbFF4Ҹv:'IY7BǐƁ=iM+Ye+WWƧf^H:VO ^KąbZ$^$oA)-$ϘƘV*.Kޙڃqzagtzya]5<^ ڵ%pzn.bǣ}7+p٭ sꓽPKb|221'.AQ_!3!;!=FD}ՒwFWF) hnӻ5''}£<߈0? Rh I8 ?㼘9vX9<8.R .T#g[nՈV&dT'?WiP@ٚUшFBHW၁є/sniA\aTK9>,٣/%;IjvuB2*kی~r`X1cH>摧(i=L16ºB`V5tHA|sq (2{ZU}uoD?G9Q}](\$k2qI6ڶMtff=nVц 炙<-t/k M-OpimhY6"^3ɿZriFĪ9ч*tnZ|2 |kw^($h+lE.?VxeGAQe .Y0|9b fk 3kQ2}+Qsq TjeŎfhNf#)# Gjeu;7*S;d 3N%6sH/Iw[-hiमbKJ, Iyv!)S:pp9c33cZdn!u#xE _SH N{ ܯT_ƏETE4P@VYQ>I#ueQ3N~W娎9:k--_n*B\gr[<" zME@μ2 a1~eePuMt\\ϼGI- Mtp ϥ^"0PU.kw@qE`Vq;^|<.[<^~=Qub;Dۂw<3n;}Hj!x݋QXC]pre`1/;>~ϦX_C )O^jZA?0E;::ZL"]4 \%iU! gWhPxIﭿ{{*WY Sx7§D7H"NyЗk^94V>q_ 9@5Qب==#' 9"H8`}e/DR"?5VR/#a~,sq=Zh82X/YML߼Np*e.4+uX4JC #dMGGurO%(|PA0_UHO$mUԯ([1S'H(yXNsHdzEA\0C?GyӖb|?-IwP_0Eb;C`uD՞Re (lF_l9{,Ή7Deim^z`ijf8Qd?o~"ݍůCi_I-zş}`E  7^ f \80ޱߪ_eX]MI N!8wwٸ{G3gΙw7g_Z{uת{oHDM%vU9Mip%b`OĩDkL)me]8T&D>U+{ա\܈pXy5#-!7`$QVsv:3^`7_%bO9{yauj6Xdy֬46\k^ 6' _ rygŶq)EJT9ϥԟǛXSpo_MהeJ0XL^ǑJb]%2Ȅ عT(<[=N"/Z Jؤ};6479,7m:.vra\5J' AuyjR;ȅrD36<tqW#8"Z7G<;8ռ`І8"_up޿%5ΨUHO| B 72*g66:PIa1 [,sqrA}a> e5Q{k!L`d]u`a"uC#R3j:-&T FӰ-,jWis!6C-k3Ѡqm!\9U$TeH<[^wb-Sõ`w/%rPc4Rb*SUWֶq? JPPu-Ǘ73K ;%(QmorSTu pHQavᚙI#V\^U%hu|F%,c=<`~LZE0@bGrgx=e, 7IBcU'5FAEBW{"@"kH$\ZS|琂-*t谼:9:nr4nOؗjҎz1X!~(F$b v''`Z&psl'pW(T T }&)JvhlK4 0Po۳J9l9vW\Tπ)4i9 IrC]5.ɃF&Ē"X>Uq޸l} S_mXSOKR\%e`]1pHjLZ@UKB1SCoģMno;AYN )>4 m JՒuu1/w&B][u5RmWZwx7^/ P9fx_%~KRAA,oMvpep|zQq>S14 3FOh`ś+p#ع{?Pa1.PMT ) `dDy(_4SNVKkzU[dDl.Ƚr(.;w ŕp_)A{Bv3 ]NU htTDIt|Qp's-#氫EOL}^e7ȷ4'9< %x7fo'*RrX/YQc5nE}Z謓5O^Qjo/3g4'!@Ƥ!So cYC%ʎ:/ּ-rtS)ycV7ӗ#CZ*J5!Ye+脱77$5s#1Mh` HZKҴ㕧:@r)JvTvX!@I,kȊ`Fn##Rke;mGiӖ:HL#~0:)wݯg: @{̨g)GLTYr,j IU&es~/P7vi+1ao#,f#Duz uCj=৪NcL},, ,'{-L{PƔeqOaF_ar4gm?:f*ՈOB ߆XdXإ'1w{|oK?̌ )~fj.^DG)_t/3X z1NeYfXܽhםI鶲 c'KQ|k/q9^gA EsP5D+bz<'tZ,\ 7OSI5ΘMIx捺~'pP"?[!hZUҼ4}%+.+|?Bo GH67{y/sP@kS+f;QDLM;J&O`N&uA.ҹ!5v{gN9?x@rϞ LrҲDHI!͸p$`9&B~LZ)FuK% w IppEfiO(ўq&]q(' O{uf)fj mwQC !E5xwE4o dʊ7wPt8` tb(M Ñ_ >YHJΊń:]ywhuzC\v2{$pN mdkᙖY-;˺_2ob|Q#@Cc}?I`)TstZRԧ2k1{2R#mpduvëUMM*[XXHɂRx*n ,x\`2֬tڝv3ʧ,?1ۃÛZs]/|:#":lVDtͻ*_iIbS*[\e߸:#}}%#ޘ5l#dj9u{;9l._O 'gv}Jgqc6__Zt\fIXy gh0L^≿'NS4O]'-t,%ɱX+_0}a|5_s·<8ݍ0S] "t[}ߝs=c^iLX!+y_,6%g[OU#6H#p=;)?)3dĤQJ,IX)%zdиnbx3<sy$i0-.h|IؤG@OҼ137SDiݯ:sG!1B3'TLG}ڻ և_^ciR58,ñ))QᰶȚ,5T($m |)BJ‹G+ ~Kz0.Z, Mz}э:I'gqmªCa_p[V^V_xJ, [TfmF])d땐]szWc`"a~22&q&DU;j{h2rxQ~ ?=ȑWf'bMՕ&Hu}Y@їn e^m7dj?]('EJ1 zQTboֳ h}Q ^ br&zJ/C8# :^$l:0).sA4;Nuc>(m&B ގዕ ]gY Buc+yDnWG%0U Z@6u[*wJ*0Q<ÞA8|W|k]9022rIB1"dYT&|^e+(Q%![{~+6R Zv`~xi;V5|fe{W*m\8|?wDLhoջѫ͞ݚ| 6^7$XTlq\}vyc<[ԌYo[ϸGetTcX` |{38dw 2ʼn})*vI "REeOQ0Ɇ#Ooc`GlI*gQ!)z774Od"n1YBC(D?1Eb0^IOҗY-G,@G77݆_s ю!FfPzzdhއN0s7ZdBmE_.?fBrtxNvKlcꚂ9)_$~AhTAqU ^5ߔ%{ m2Eyi5l[P;WqD(£8|K|cpgKgpJ<񫁊Q NN%v;+ڣIir~Y+|n^plvq6c\CVNG$=?iPbE_swɦ鼅#+u37Mjx.ۗt؝& -|IW4Rp}x*oZg\֝)('.iR" 4Džd$}2[E_gWpk &W .F̌9)NESZDo *,9-a=5X( R)ؚ,݆"&%;"%6fK\E}xio3@OD_psB鬽qױyFy$ 磩3.glCk}p:ƹʬ|Y}f_Wb32F]?)ܚeg+H4ovRZ}1_:T3 ,$\+ 3bR,aEE-JqcbvFqcu`waфV;kJUOhՅ2%\N6Dbm uv#ĬlUۛB`ͺprMu/]I jEp`b+[d*L% M;K>jqb#W.zCL~e{UrKŖk:پմb^^X8p?dfC6VR&ny 3Ԇi'g\9]# Δϧ Vul Rzfv%o7(UymA.veᘛݵDD~Liޅ* !NTA݉2krnz49 DEkQ lp໑!)^>9%@P0.C(:jJ`n5~2yY6> j9,G1eEX^uĥqQ{z>c(4= yMflM'G{ tgh0$Zqr C-FIc掤wYzH| FrpB^a#r$>~3kKHlɹFp#Dn Gu&q[NXv~E݌^T|c[eyEy)U9W !XSdڴΓ݉u7| ̕[EP$6};whh&?y0t3ji>Y ,fakNXo4i.Wt~(J:1B4/,F84P@ r+,o5Bk~.[nqAp*ڢd XNAbҴ <ihSRv8w`% n (~P /ldDJۤ/y~Ỵt>SQ QC`7XNg^h/ T$J^%羰]BT,ʳ?) Tպ2hav%wpV<@%عY? 2b_650jwQs+G ׁXX mD!"̝ךa3+em̓SA.97AH[čtjm(Wan6׹b` xxb52( aV̈1ODr</|Wx @).Y"]%zź sNvh;GK8WEa,\x=R gB3{Mqgϣ7{؛'Nst~734 a]KjX\i `_@ukݫ1@JကlL_ /ކfC23\sIA H |l~窅rҒ_|!D¦E62-~tJޔS 8(FV'nxH&il%l ɐUll$QIsBlacrߧ'}pguݨB2w9HPjIFS{C}8q ;L5R'Mk\qTk)*)=37زq8ɠ~^ZބuMnjEl"<8Ɖ߳"~:xz-iIɉ=wc7OEna[R ģ&Z|"$3`F#OIMdgpnhWr,ݜo|p/*hDl'`mBG]pOhpvi z`pZ}Ԃ5^5݁R_UӖ]ޗ>J9 : 5v ŕPK,!L) liK3!won&Bcmk BTJn=Beج5¼ܞ^{wgG+)wbߊ~Z/ aozp9o*34Z̑ !]o֝^0lG~Ӑa穃}Y85"`n7l`=rme8xi$gtD@3U$~&U vՁ,*@ovN!K w>64iIB92$Sd\ -BsC(> g13׿.؜ƒo%eJAs{׮ P+޿\ֈTlKr('.8B^L:P E 8K-2waTV;(`/!ǘS\B} t]3RhwTxeQ Sb2Ht ^ɉ&jj|P)T\NL\)>׽ G%}{wބQ^=ZuÞ~~k-*6}oi"kHE=Gу$n Hڮ eȋZRKtͮڝQm^;;[[E?A`U$~u&n֨Z=D,2 X_\= $fGn=~[]|8ځx3P6~YMQ_{sM::X)MW>W.?Ut~`_π1SAӗ8P'y1[/_ٿSق?Xpvý>j6ub?,¦Wg8}pDrprz>Z5|_Ot 2-Hx ~rr2w"S tܛT{jd4;{F)90F+%ybfɈ {1K \MɑSd-Ѩ.3 sI^yo~ V-2\YZUɌ둑VXk(tJdracKz`$eg-'m^cfgm"iE~f+QQ;|㟎a:[6no-~7i~a?RCw W۽~ߞ,KJH\MNJkGS- ϩOÕ/^ۇ\%"_No?Z[]t!AԼ5]MzbEt9P8YtHzD>Du>Mn~2JM}[ \`,2tfnF4aY9P,'nUct>сL&%s򰪍ހ0FOwJ xk[Ckkl_?g_tOV0S~D.= MkJzO?rFr{x*Ȑ`:.F4ܽK ԘzS`Dn`$-9-L S ь0Q<2?x0ۼ /Jqw QM5+{ (Ψ=WJyp`O3dű^Fe\~S+''jV2VEҶ׋6=a$]~T N. ڧE9DQ?^j] 8&:.cR=z~`2s Yp y4R4S ,rLNM ]N*Ӹ:tZ[Hzi*ia^4Be(̌ ^wˈx6Ԙ_/nc~3 7Xs^8?,shijNDy ;O܎,Sf皶Fq>=Gz%E_/0{/U+$2;ut[xy6,=I"wBi rk #.'uKwRmL`cRK(k>M/ hg (`u"\ SP kwQd D;/\A MX%F̕R/^1j9iqxOyMZw,#$qX2Ф\U (biO|l. ,\C! L2Ka^'" *8- “b:n :e 9:GR,oP:(9w)> '%3=mϦ!jf=dU!$)c> κX?~UkzZZڒ'%"| mg6LpȡrN ~/el{T1p^ JnXf}UGg+|>K,n?ijD\^vׯcf)zkpqwй_-Uaڝs,5;yY9BfzR3CFpmo)cl]+1cl73*zLY*Le޺g:Z'lf4 TsMB#s JNRSk#a> 9YJ5{rґ ,eOi5ܽy)̑ϗphА<:S9xH/"GY*$=LHLTLJAMa2I7Jao^Klfw}E8-w<|IDq yȩFmjs!nNO'@."i3lX\H@GTyObDCɈDP*=?15چF02Nw==9h{H^n)`I]0:Q)\A)JFn:XB* -r/(1*ħ=.V\GPW2 [znѬ7=ܴXTS2:iOu87%Ro8dloJFGl/o\o}.sW]68T*GEyr.'OYP@G&K3`!933sl˔ń?o w񪦸 |=U2X۔zTF*rT'qsR1"x }^;ܸƊ5ZT ߿ eX &/wҤNp<,j^!{0{9I<(&xb7B[[{ҹD+:o(ɳgz+riD˼QZ%;)!"a a7tb=̂]jADq}#S>ryA}zD+G-c?alȖ݄z3خ G=}DRtr1=-nhNAmg~fpxؼ& eOz 7P_(ջ4 ~rӨiW~qϽ@7f"Bp{5絿Ņk IZm yx|Me˛hy r3|2s7XSCwjިRsD9 h$+4\aL ]]_g˖IE kN 띱Y3O-TA:{ S& u?O-ۛ5%7* !٢Fb2=72$/{=MUTF1H,Cݮ] 9)Ap>Nx>?|㐥$/cMPX.3P:s'߁_;[l?Z9Kpq7EɆ|3DaVFhy2ZWCЫ:arePKh׏G;NC{qm #:^-:;1ѫ}ico Ȱ'QW@mlyVh:S\řh1 5`ZuF7/;^HƲ+(nFCAΝ͡C:sn;Lw)Gٽ֍KTT&T(=7{±H(G_l1j|5Og¡=Q& }!Q 3;{@XBbb7ggw&V0i#E\QӖ[^]hb=ɦGe3WIP*xV]H1sx1~p8K' cU]ݤ>6۬vȲGN捖s*566ntfG |3}Xj3m' cMN]JLfFS ےeЍ2keǡjF'Vi"J|Fna%;b&CvfA?R`*zuKFmޫx ,^$ҥ< H1c f¸&XK2E)'YZ WCHmOulvA{BA =]Ӆ]^a8֊n(1B`U>d&|^#cx820h;M-L|i*r(2Td I|۪f|9ݘBntX㼕nb{6>O7M*>xFOtR+c4fŘ/abCBJ<(((*-yo(Xt T~JtܖNv7E~SD f.FR**哤q>>Zζ蒪W`B<`<\mX8?B3E2$FR\b[\Hao叝D14֑#5ژBP0`E6\)N{Sdzw0M"1OI{ SBh8)Ajfj_ a'rQ3](}fl:ҹ|`#ݹı'hRڝnlzy,YN{Wje"-Syvyyrf%Mht_S|_ H1 &YYY@fYYQJՈ}]~c\O%{wU"~Ѐ/o M4|[~zM|x6arY4d%5Ja* dq=[MH; f{og( B߀+p:r6i>{>:g~SVÿu*0YĐ*3ճs_Aޯ-(d2oT?` ?ZiTWV\*[tl*[AHٌ X"k$AY e QA!J B2Y#t !HDd [b "K@3?s9{{s}o3!TL視\$, D)).ke+ U~deH4zUS`zo/I8TXkG߿:QK[Y@zQ[PtTvi5첖 hHq9 qM&\2LdęvWeK]i9mea!t3UM\g_^׉z]]O#bV_ڡP^Uxa:9d6s_3+@K nɛ2Y YV/dRL!3r̴p,̒U500;(Д>ob[$#7IEyfTaPS@Mb%a&c`,VO/HRTN/逢^ 0ݦWs+ۉQc@Y*>-,TkrL;1v^4HΏzX69- >p[[[&憎  S7|N͔BpD@4,혎bd&cĭk4 Uzt.R4Ak5"5 b.C;{cPWeW a1}Èn4֖@[P7_Ğ9/"'Sϭ)**T 7nσ_V&=mױ햟xJ]a7Eu\!> "WzoB-]Ⱥ?Ħa+ߧc[w//LM >&urZmؓ1;y}UDMKZ ? GV-bwß$A|h2TO5:Pc#e310۵HR&Tz_Z2tа;̐H@3wJyꬕN%g ˏ&B㭚ZY)/CxBO&ڸALRBsG%!M-'`F֍B{G5 3pɠN0.2)HJ<*ޑ iDE~\x}F $:H Wn6p,uAO]n4r:T0h=H+P3Ec~e?H}zn'ǾO)t\pA "闕V"ɑ [^8?; x+|c]`z4*49V?*0faU/baeS=?\jhxmlgH7OY5{])@4sێ6m>?l*0!h[S:^+B(Mս(WjMO Z]eAM|['I%%de<zp&\ĺ1;kf4*]ƺ_& fm ljF-ƹ`yD}קs($`.MjWtrIݽTQ ǞȤ46t!0LȻw?o]jI[D<1%9-BQNP\pK;-HZjlwd_}jh ~~* VޅxUX\K6CwO Op ܂;ww{?5TW.V,* ! rR{: Rz_?tƛyEZEвfN&iYĔu0[~3upxGRPji\6wRN}  ~~2ۖܨD %%al8)U  geARFM¦kO< -a0A7?`B0s)B0$CMb* 30JTdlNru!Py"B<2&X?4($B!O"ڬA¬?\c*֑vQ%D Ԋ/|oxqPW8tWT黫1!p~R@ZLX3,7ewLј}׼ҷQtD2Q('!!1Rx!%U1!43?9*e)mӾ#wvyGq n /nWZp!X0؝B[L#\wIp0B~7D'(¨]#'A#xћ9|r "'e|}Qౡ[̩m1`Ŀ2lnC˅ЭjkT lt^6zb|<NZw,:4qW<象uto/*B[1̺oC1 +eRQ w7L!AC7QN1!xVtU Xh3U"~(㍮AE RHD #o܂.e"J*..sN|@#*[  l7Mȇr>(&0-\r\6C_XUM^2:/9f+Ô!ׅG<4eyXٴW_:v9AW1wxI|>*cX!d(yFh"06'?JwSMDJO;^ =j 9oȭӡ|ۊHTr]7T#oA:>J МH9D~27`djܹ/%bZd}8k5Xpe"{+_KBI^zi?'-?t2)Oz&/o9CoKR<d *V]k1JK T5偙iIˠ,0 . QSY=<;?J$Br?dgQo+S .J_afT^>\y8+hԵ/V`텏#1Vf*j| &d2X;S|PJgTϡȣ? (Z%dAhi|[TA+`3xn g3~p+|DKT8P/0q#l ~#>ExVGf*rʝC̬~[XW=Nٲh2rZiLRt"7O4ζgLp%{#mEf_E䄓Kk6?XȣaYs0EudH9֗Xܞ0aE)܏8`f!F"^` Bx1afShqdqwu=6ȧXM!11k:Q/. =K6c#ư{D!T_2,fƦ .4w޿u-b#9wbʴ]ԛҒQڝHSzu\̻!MiNBNVMkn@7_]ڤU&~008p5 W .{x2 4fiM}bJ?~;oF1f Gnuw.a:_#ŞDXz1nltTҐB}hR,rM yRP;`iiA2M]pͩBM1BkRډ^#8Eȩv*YF4e7fƎeXcڊMY#lqJjv8H6[PJTnx>EW0Zb'2B]#-ɷeg4)9ځ(s-A>9^BV+;;guhCހ y,`Y6bC^r%[;it>E߰ϷJԛ V%~W[w7`tISFL衾癄M_c.јzEu /c(\Y ."U!wUS/Xk{ G"a~i t\-n~Ȳ\p.vʸe݊hZW2k)b=r$ǣMقIm3rb9,`TZǥvv.?:%gOJ]Ey$`W;}670?]YC 50ei9A1_Zus)jlsV9Tf>[#l怒ZWm3,IvY -Ru>*ks>7>ʇaUPP@灎A$gEB jQV.fbM gw4ƋZχsCa{&$Ṟ{3`9mc=dqlqmn(9;<m6m*xzCvgyW'>^5/LG(8ht 8AU= B~U~vVf`<#ox{:xRk"9nb&xhh#B,oa/8C$.=EfBcb3'He#lQ ~<YGx Č3FUIbh 7K\H *kCӾAԡt\6c͔+6Xlm5_ލ2N_>p k VXLԟ ^XYJ1p jVz9kΞQ"Ux-7p J֤JcưJm*UCmDFqd-6+kg%}%\#M`N0ϝ1 )U*0 i$jUN^ 04 oUۺTcәKWz-BW=ڞ&2Oq֡q-]";F6e)jKyUm|,?w$saKMѣjgղaZaQ:0|!#ˏlpލXP/Kpէq0#IE#paD @wA+Vޱq[EM3Rykݶh㤴O{":=aL"FHHt-[pQ_5&뽘NnCl ֓t @FZZ^vַ)bTegPu@81U>yb_'Of@{DjN%J^i HC`.Z*n@yR] jk2Q;1*V?vYDwP4m,K鴭#j+t)<P&%Zԛ/`9k{%7#hSa2psah|X6IZ"J(S@ i/Osaz ą0n t+@s#&RK2(\$`\( &z~JLz z[1!=yb׎pF^<Μͦ;ꝸ`,jIis7ZMT/ML!@#8 ҃Pmpǡ4Kҕ_D=&3klca5ASKR/ZY=ًF7uo0ViUd¬!ffume WKDϐ-{H'M+gmo^Q}ڵӛ d9xS@5'Fѓѫ?ChuT!7Q"Ղ`[@1\kʯ@}^o_wZYcq<5䭓3%}&IS/]TAyKipzmV_oas/=7:tEm1( VcsVT;?!Xԣ|+VOaуAJ=¬yJdN,˦4i>dΛ; K4Xz z8Юi3kXD2G'=O5/UE*B3tẒ&O_`xSsrb TnAʶ}< lå]0 /3!s,8C[6_<ši"m&TM~9)*4+SQ$_$kv%&QRDIR/iZ*~n7$ViX0`bE8XEŒasD+m{"&imK;~iMk1V0[:Nϓ5~^]Kf~3C2KNp\Ue' tRvy 99L}W.OD&λPr^W{bbG">V:xf!+RDv ׍7B}sY/9/ɋ˾8{6+ 18$#P\A};pk5z66 _ I [r*b(lJVN'ܻuW;Wc<1ՋDJ,%t&uj4._):aԚNuRl@)H8@e6ukOnfj;V5e3ߵ a!%xPǶ5=dw0iO,Nu#"FOc! %c:4Bp G3<]eqm㯕͜+-n S\NU^d+|4~[ӵ^ݕz~uumsSX1(&q}b.dSJ1T4>'.fOKB8f,ˑ,idOZ>zB?k/ N};y|l9 ) фSm@8I,bjrQ=ӏ`"|;^ uc>֙I{&yo?BǝE'k2QGdt0u9H \+c=lm>Su*W鸺lL:i"PWf)RF;˵LƵ\PT)@)8gLVA5pRSI|TZ褀fIHS?m`<{ƭLk7ħDLe$zzjؗ+r%erfl[cWM$!i+䴎UL6'Gx8*IӝpX[H&'Mוu|~}x}"?}= +Rzϴ69zfhyrf:)A xϱ9LB"ft-{ ēXdYYƭE@oOѵt>.⿂6c&- f%ӎ3$Gr/~VV ë16Bt4OӸ-͙`'RoZʳ 8l-4yM_Ai6ޟZFuh;{TSS''NZ/&< lϐWWcb~+2Jvt}'+2Sa+YKڡìkEl:^v!y"}3C$^>ʱ0$C4]9E,-VW&Uq-Ob` hbN$ۀO͜8 ^wW8zLMf9 zL7(40?s5ږvy{݇[3Z˸NNx9q 8_FM'-H5էDVTG }T(~꾅Vj B2z>!U[t*T mX^nu8KhIZL@;ŽOm3e![K/KGԥb-=^mkx/(R w. ^0=!5Wd qJHzL{Dp(s+Cy7> zJ4dIvwϾէXZJlΧTl.A%^/a8ߛ?ڌX!m?pV.v$$#mNQZٓې6%_6~/^n n\NSG-e){LVC YÝVkx ^2fWr+N&OFnN||El'6Q'vX m#r{``pjKݑ&+l$A)G4U]1?ɤWS"iitv1E<4hhGX~OB  J ;IJ>h"A˯hs[=Թ 3ΧeSXSHiGxEݣN|*Z}]Nn'޾ʯv 1mS/?hHQ7 \qGOCEM {Ii ACF,4 @AMzy =Oʫtu{svgg9z{9^U-3*Vg 5c"tji]k}|I[/=ZSVtق9NiJ{풉&韖5xӑL8{m6eS*HRxm\ܭҿtO B^/IjRճw-]PG0L uYF|q yh(fgwd.$s8cW O +|]t2@W&v[-e+ ]5L-Z2$^ Ab|:9RcZ Xx9Ow Ybpu?!0!chKgƫJcs`3%k-q>8NʼnR#Jd8;*~zw+W=3N Tp=tY `䭁4 )yN3;/sۨ Uk&(f8T{w;+TSy GT/d5{ ACq!Y#9:P<klRG0 N~^.$mz(g׳ԩ,C󊷧Rzu?7V+͙G}*'ɜvpyDW{/l,yAX>cc~阷a`L+W`a qpk.grX'brzX0-n# ژp@'в=J%L)0$q b@prx0-Yobg{hP÷܄,um/JYn(T")B.Rև9n7'wO%D32q 55ffI7G%?Wc뭵N8; àKwf0D җ49 "$X$5ZR V2;Gh l,\)-R5l(\ljF|0Pȷ˰*EVh`&FT鸡Cpl f i?*,>M+oy \k4i>:shE~-XWS@lOS7v >cM0މdev{rJfMTItE!8\/t 5p`^#|i7NkD"\ ~EK5Μ D\@Ϋt\73p.hycN-2gAeu7n{y,lC Lt'ncͳ`xƋZ- Pje\:q&Ry*\*RA4, } -! + .|+\<64`:)||n".{tF\q 2͍qb|o> >n~PZU\}'9Gs Z8uSv㳽]deciP o׭uxFƝرdHtX>˲Po`hYM7n6mw!}r}+2 ,| -5ތˉ^6A86/ $ ]hQ=]`HH E@yZz8 H؅y0a|c6|.:NMBPfO>ymGZ'GPEg1}!a#|jIXN6OEO-59Mf\ۢg*t֓qɫRń}jC'h4/;v 5*@FV&8$;~2abUnluDܳDuƑPSOu S.pG7 Qos#7"֡E6XFƸװJ~9(WUW\`bu OX,>+2@{{qn _o_AQ h҄!Na'p$7Vݩ9WaD.r&:r<+ $Lul]9CϟW+4 kB/l|z8 T2󝢆k뗙ˣ$V^J*z}'m! 9,wKx\S"ڮ@t\^^5Ps FG͙mIugB.t ߯kL/.ȟneԷsJ "ȝx67/f@F69W+}sOklLPp!xSa7oEN1]EZ5o/s;L2FA+ O|á-8+r$[򾶶z5&[f n9 lAԉHԁUZ @(4w ೓ګ҄@6̈́= np߭#USDҚ_;]e>"_mJ+4Z8vY!Zs8`d~3jOoȨ_C":3/2ӏ'f4uY>d4OQ.h.p gɈ,I^d=^[_$@=!\lRJ 6Yn,M`|I:e<5@ż&@"ݖK]2p ZYoZ:]'{tT3bL: T(جC枯t*[tgk~VIhx06`ny&>ŒU/_<(P#K Ϳʄ`HYw11TnWp:~/gfr/"')̬`6}!GAc!rsW}ӒF&#@5y+ V=kU9Ko$|usr$V6̖?% QF,и r5v=c:7u\#Z_w Ł%BÁdާ^z塾3lSpF4nDk%Op„ 䋱ZVPOMƯHP٬"*5fI!BVoJmtǯ8ǿA>݉U@jNros"lTFItϳY9>$_ԒΖ:)9u؏Je;ճrtpbǐه| ]Hf;TuQX A+u/關YQӣWvi0G[(~53L4Vq4ɸ_:);y'\(5bq[Nȵw#.y 7T-&y7s٨nl;b%~P6:<`Ú_nrrg9oCژaü'+zǯ6*=W 2N'@u4;BŠݓ*v`^L߂O h>N foӓwzyl"4B'}elX+e)*]_)Tz}<P"Z׉OM ~.[q7 $ "VT7{CHr3OiDڽTmфs2aAP魛?䐑j5e@j 1QF;qT-"YP d<>T#(mL>vo,q쑲hBb5s-lӞOIpk#<;cTp3?$M3ÃHv.?>bp?? Qb[k+1ß*SϜU$ *$YDJJ28[sXTG%|7BS֬OS0ܨE[rz#NB&Svbj??&ʚ%GpJ)1-́ ą+>N[A ?J5~B(t ^I-[COPol|[>~D̚by5QĄnlaa2R^YL&o `č1..)NUu|r'ԩ+|nٍx FQQIhHT 7*碪0:a(h=t2?n=P2I-}^"Z@kr|{xn;/yH3X_ Ci.FĸO6LāԺAS by+`AKSI9'Nɿn -[%$"vw{YeߖVNU#jǣ۸qMp[7ebAT(K5>ҏDuq,w_Dy8yx`<}p2qk~=ぺDaMॻj!iZyLSߕ2ʝUh a?)|ve+\`>X(3;uumrA).JYb.sn$ף @yGȔRZ>.2du.**=528k(_w6*qgp{[F. CtPx^ٸݠV$3s԰N ]>#>:29pf*scȈ_DJ{"r:99ge:`$хkJeB񛗜&sAayyՆhߝь-[9$j(Gڞ}GHq!)Lqʀ%Ҡ-{?.γe$H.h!b oqZu_]i\:q|<1JQȱFa\R1KI}73jJ"9 $/xf"E!|U` xro;>)ύ_!"[Nͪ.ϾYsE+ˆU1oa- F;Rb[=|1;W Tuɘ;^ Tav+*FUeÆZιOhD0 AFGk76!;Z^Nߐ7x7&$mSn-BmYL;_߇7@T$u1mx4 ߬knL'L[Fm-'+ qbMC1"$yg-(H? y =$%H]?@-  2`rE<~.3٠|k v%~He7 $ihٺ*笖R+6>ёó5?\$j[P89N;JliO75}ϲ m#/K/E{HN|)'io(/-xWik!B6EAsPJ̚ăyq'-BTVV uޝiIKO̊VtfҀpZ> Sc,vٛ Pw&2ŧGHKU 0a6;90 㻡8JT>7w>TpCrrm&33.?E, X-ZV/%!qPPT ThyF_X%l:A*z1Gw'@F/25L z~7Sll.S̘Ʋ-[E^W鹘+F18N _w21ZҾՐӭIgVM|_ [uQ|t]w>!Z>U&>)UӮr@Gexd')%cQ/o':eրu I".d +~ВE684Zm )A.TK5[&rXgNf I̕#-[nTgc8qg1?ONjbV \ޡ~bxvE9* v'o`w}QTklboquv zi]hhjGc)!T9+!D#ߛ5 f fk]7 P,!I cgkw׮C9:\a4tQm3Ϧp#d(˕1Yue-۫ZqryN%%AW8 wYޥift"'M )ReZ^6#IkFlT<[ ΎEIJ7>~3fïԤcYz)/(!yL_B. } ^y,ֿjru*t  U`ۓ#v9 )G57[FeLSJmX&)-orK`lFC5+u;#'kkn%wDz$NSY?CᝃCKSt34)=-J<G; Y ج.OȥNN4/G[qT{б6,%cg"3xpHC vB{哷:pDDC UmvjєbFTen0 l:Ωֳ$80YBIHg4]7i q*aoI  J&ety( eYn1IS ]mg{ZF8I}z ۞VJMIvfe)^ hJOu}(|"g頇NEB"N?fH7&x-ߦ2 l}ͷure3J?^eES[ã^($ygc!˴h[g=%mTz])s5CrNb|fP }8 鑵2|G9Ws04eIm*FUfm%Dhfo/[c׋Ty t)3<3l.U#a"AAi ƬI ejA)ؙvй#qp[Wg`#WeĞ>a= *:RE|tCžN\ :u>Ll-<N4,ݿz㨎xYb[ YRj^'YbOMĎe }t1MzE{vDݒy3 gő hAlTvau]DI%L]Yݞql2~6X[~jJ'< 3ff)緷Z%u7L2f8,e;h6҂k{n!ĻgcB{I?ī.ܯD0D⒄ɚ9S \wwd463#L5x%(+Vޱ7HJΡ砮 h$FnKޫ_"{mi*ÌiڟZD.f5i }/b]U{)f:J|,HHa ayt.{# 2 b#H׿_"R^fygGtٹ^8$lʮutbMEASB<ꑺ 5 Waxlt O O͍͍7mcmll66mww99=uL<  Šu  :@ۊk8JH@((l`hofhfc Yq!4pp$tq743531~;#}$TGEdhfm kY'e&@+C,",="@[WMBH8F)v+a(rI&ʴ)dە<02#5lQ 4{@ɷG18C c aL?Yews]f ͻ(Pn~` r}~x5EـGyy,yYy} i>!,].=5) .pdl7pwA`t;A L۰3bf޴)܋}v=4\!8!{A4!#wGcEf|&7|NP<Ȕj!i Ee=-=c}#y4332A 'NMXbxrN* >V#o `ULxtctfM/cĜ`b6'm۶͉`bcL8'9y眻pZ{Wwuﮪ](%I$x|xT,{ }k_(%O`rr3s1qrtr4M^P?';$Vq)bk!cU6H,ǁJ5WҪY I` :BDs5w`[H z|M`+l?5*WN ԸղߊTlG &w&ěaf0^5ޢQ~^!q=1YGL(⡤}\ IAuҸT3L1z8+]/7@9wT+֢MY7"Bh$4є #c|㘬xԦ;{y“p h(ea~s~Q[ƺ&>=!#'r,%Y%/rAz a" r# enRoy!rʫP;ng>LIXf#B9K|]o^ [|È& $VIjV;""d-Xtބ!eQVh0Vfrpⷡ&jgV EYjÉ0**+ =ȍV|O$cUȝ:PdY0z7ĊIC8d?XIh +mѨXtG_)s] _('KI<~">B<~t˘9 ~PWj xW]U)}׶@2Bƺ6|`I-"FߧAL: yWG8*IGQÛ j'AR:A0O3C &[O#1bc!8Q;@ )Z}M$x](d}]CeoR$`rɁj\jvCs9?K ?=>4X9# ԽB81'k0 l= eg2/*ݡ2ϣ#~"}?#|վAh1H)Z!g-](^ %@ٕG*_$MRzf乑cOC\}6EDJ N*|-))bW*zaaш㉳ṊSF$  +z%&2F5`3{V4roU/fZԥN )" )!-pu|Wn }yS(!/Tf6|$A+](0sS0ҎKhheT3swq$](#G&AFνPBϣYp(6*5 QjMMEްt`f$|>A8Ѩ8IAA^I[S-i!)s!$Q2H:ng%Ѩ_ՠu $Jf ؤN"SJ8q ;JMGq0O ZkDX1P/,N Gj_8_: !)Xfp@@b%oZv$?gѽ(-48=ollCs?snfYYrx1ۀi[.@5HՃYF7$Ϧ$F ]GX=<<++$s;&Z)-h@zI:OR`+Uި lj5隧OVg9v4Ziz0J޺B,V4`w5],D\x rl8 W6?ܖJe IQYՋY[>Y*Cy4' Y %vw:q-SBtbaW&#:׬NCu$Qu7m1ԗ *GfDp+B%ye+Qe#+ۨND+ JaRY+ j"qߞsV &._`,bD+M9~uYp׽ vd\TKHH# 3[`XO[43~SnĪm #Tגc Nk(ve ە#lBvr hmJK(bMlGE86_ƖE9-YEIgR?ZkďӕU%CXElk;R[ 8pw h R`&-S`& ̄8 6mLJh B~}9X#DLhN^G!E7ֻmb#0a "6Ar {Da}rbYT۫m/,ǽaD+$AR:<40MwTkT~ipy9\SV $ aBхSK2 +5G/ Y$t.=xGOG 5jD$Е5)?_welD@rЩ*8-[qVA!-*s7q `uC Muuksuczu5adAi"BH CU=<9ΆRu(tJWTJ*-4 RFNmȶrZ$`>NUTjtKop)ZH!%>+wO#ő( ܤLֶQ 0V3 #U FY2( >Wb)\DLˬU3{޼6ER۫QҶ9}6W쬘D Has;Ok.x[ ^AڋM48ϭCt=B6p3$rd .O=*0hh<, \#$7'MMںu+(*$Kc8Ǵ TfEKU:-Q/Kr :zOגI`\jUXOK>ҽ E%$DU޵ Wj,8Ԥ'>2l&o%ާ*&(l/q}UNIAVuE+~&-_C$5l_AqdA)5Lܜp- '3/VR0oQxpSЧFĔRJ{z71m-ӟY>/Qł oQ,7 r lmYkM|O73PsVDf]v%I<r~yq"jP›P4IOkTF+UƥWtKX{>ȔCOr@~d॥i6 fRpH`=3; pԷėu%s[HNc1ګ9 $9|D;#o:'8mQɗI)H;"/ܓ܎4jjcxl[h9C;Śݜ 6>KrBk6}0`Fi&|h:Z$ 7ix ݩB0nL=˦.| $:u%R+>f^=J`SXQz/$Fԡưḇ Y( z0Rm,"$ V*Ր~9e(L}}""S2dTaRs (׭IN&{pL8 T酢q͆)ivLpTY˫ɍ.J LnB ah~J|%d)S&M=%XmBF"^3;͝$rs92dĩ6rPZsُ4ռsz9'P~>5BhכQHsHKMTpdyb7"(IBq񖮹_tą^Dm>u̥Pnove-Da[L$%{\Њ+.3b<xy yfRQy,%P(1$(2ZZ<1LUX&\B&U)i\/d) P7JdmoM.)P曆_{><,fK8X y5I}ce8 >هaQ6o[XӕQJ Z-9gO/gw9o>o*h/U}8)ۺyX9Gn0`.³^L(n8?yԏv7QrP%Y<™V.&40'z>Rܨѻ*cqm;Zc`&maCt";_ՓoIeZvh:GHM֏\4-Ն|F䋱7GN}wL Yju(9'Yړ%||nL-Z u+ɀL&~6Dl:!5"BHȜ6i`+Bbxn#J򉶚7gyG0}_CݷR[pSӒ}VUm}| w^ Vcg+μ^"zU*"ᵌR4-ZYҋ.)h<{"=VCLVsB3n4'E|k6D_jqjts~jɢnȞ51RmgD;I IDXC^h UBpJ) d8Y|%^/sNѻ?#T t$*xDZAB[/ %0K<9NinCpGͧ %2i)0檢 N&ڜuyLtU0 Djiv*2ߑ7`|4uՓF.[n|/]ǭ<`7~#5/ޜk/= nnhFҚ ™qu]qEε?}twQYQu bD-o|X.tC !4.O[ƻD=՞+UyJz"z$ېZGҭDY [|Aِ&vXJᔧ#e7@`]jv$-E SFicgIdrv*Z-R Fe㻅yO#}ŘaIGŋTdϗ|Kt,Cڋ@ BƬvőHf5ţ>wL+)Hǝyd˔wUcVףbHzݎ]:V*CNÇO߮"-,t5) F6xvDV=9k2OAUu]Kg:02ynT~hL[v8Ԯ:1 Iҽ_.FF恵Nj3I@ 6?#i(\|b֔ Z0HA_|Z)ރ=[>BwVtֱS^ΥUn y콏zlw}0"V_%Gscx8*Y0٬߷z' =ZN>^rKƼX%0oi<(ZKPA+B?(0rhQjorR?g 'aek^4<} ~:&T=ԬZdxێS|}u t>B4"+ʪ$E٥ɋkgxx9<30x/ٓYp)IA8]+E47"&\LM]t>㺿e27@̐~Vm=0uX5xnJ{ Ԟ/ R<{u@gƒ˘`%ڄ+ 2bܻ\mP[@L[R Ncyw#q&>+v;H;]96+%=mZSv:Ի7 xH.~!D =)QfrֵO_2o6ntsLuJ^-He5ѺtG /i(/QH:NR{< M$, 9-KˋY1J\c.dؓ z0xrar[_muv$:poʴo$2QBd,kLUOFVj7!4h(r\x3,IR~&g!H'P8a~)ۛd)O.{nJ\S}6uOѻ! Inbz;mbC|(3/%IБB )?W2!IM{rJA^$Q%a&)-"ܑA; ("xPw;WYMV7k"^1>< Zj9nL9YN=Jg~"LǑ. f܁b=|jxMa>"d:Sz7*r1[!- izY]{T~2dNdlRlf#v,ޠڻW8i\D| [xn%G!9NOդE?ћTL~7b #>:8| Iּ iT"RZ5}jR?uG'~҉>FqmrI ~[P~8QDwF,1r,[t6JU_VRQ3Wznw5F9aGՇ⟘^oͲSS]5h+? 3O_0Kh/nx^E^nLܑGv^}(dғasdƔ^7)FD3_3GSqk S PD'B<;Un+&VoFc)a`m,'7uC2oכ> CP(NἨPY#C4g8Zܫ7Ϋ0]%?iedy\ 7 e﬉y  .+$ɛִJ-?Ҳil@' Mh5z)2Jn'@]-'+|xذY<'`LļkAO>ٞŒ4JOm%*OQUIL̲}PELü\oP c?d\Y^:NneVr&YԈbɜѕl \(Q].9D&֪F/ ӡp wWkDhq){dB/w@ FR*;J?-[ gb'd-J^XR9(7ɯ]}Q~WLb4b-E h-I0,pV4PϸBVEkpu5\i)~gρOބOk;Xya/tLb^yF^/ ,8-{68lb~f3Ip']9f!?>.,\o/_@{Ÿ́LwgڠIf/QU(Y󲀏}qTAzƆ3Ə Y_iȡLu{{<%p{1dϺLk+3\̔r9gL.|qzLTz\q=Lz@z7\]iQ uw-#6h~5̞JA(H9iYhXڃn"|I(b38U# ݚ,.n6t 6*]8qXxh Z2̢#(\PPVj LfEu{:zⶎSɝ[r%91[! BgͥBέ u/l0a\7]Vt}Njg1Ƨcɛt |Gx.CuADT &wrVv  Y =L5SϚ:WgYeca#~Z/:X; zr4 3 ov_Cubs3?S#+RqLv7+qnۋwMěӺ{M^㥑>7}A^vcAzٖӡ؇5O'_wUOB?|dy~R\o{pg}&g74fgvf{lFg/FS]?t>)_Xak>oX5?Ԯ;:Qp \mȶz9zŬz)M\LM41(}x"na0:vsABpjZᄉ70fu7Hx5t8{(..Bdjpx|phjM6˖pc6_y;ϡ @HO~^Sp%yW(Zk* VeZqeTLф&MY09ƙU:y3&j./R32r@JM䖾\ZR߾ct4zOYJDd H#㯳[kcpRH=_TKX+A۴ak~YAiuABJ@ٮWԨSh# }DgW&^z>COE.qS. @)T'_-͔knM DԿdw_԰ m0( & X_s&-67 2ɺUh8}ylc/@|2asRl7t}`ittoToǍn k Z$H꼪'F%YRQano&gc NN pH;74a ί~?=ۡ{Ϣ.D~.iط$ZVAcقbߑKEo\օf!z.>]FMhiQ]ӫ\U{;R?G {Xm9`#݆]#{{۳$EahU.Sю\vc]gN SasL))_"-bYn fbţu&vuj)Bp Ȱο7WQ=Vb+NM+/U&ƎБg}z>dY0|9>ZRhKo„@CAx RC'KazFܸx:oa蓟yV$7p9:oM! + vxe|a9_% &}-j~v M&޽Z/?HTl ?=D+=]fxQhllXgCcUY\KO[n;3bUV}49JfN@aV8?1;E|Q񨤨K^v٫ c^!9, /!?3YV^mJ% S^^T&fH_}t4پqKqꧽaxQU.OIhŒeՍHhAzMoٟW= &>3]<]ClOo\9߂BFxI9/K=1"?j&q/0hj5$ɞk+ i/) |~'plxyXٸee/*ݧ唚 ghfg ?I O5 G{Hly3gy!QEzW1*J&9-\L.zWap#zCy s|AA6/(*o&$gOtGK|^ǠEGwuҫ)7gKC+Pi ^BB"4_kc9Мͯ^,>o23+ko/OȻ"0PIW~jR P{SJC[l>yA+Cf?XPMqb|| "Bj^/jMnB иz;*);!w嚇e͎}x˳*/7EeKRC<}_$ɽ6yR|z1DJ0$#Ϻו@_ !!i?ٜnE\􉏧$9IO=˝.b'C|v%Bcs'x-C[#D18ڭ{jb64 @}ˆ'eNpn1h>;(|oYOuK k/rkBYw}b<%v0$LM RdB@fK\{n]H jjYk~HuK /rcgU@`83;6^E $,Xfm$Tkyӓ!$_@"GN{,)Sd悟P Ġ] jK|: ?K*{Lf4[l<=j{o0Q G.Lb"ak՟}s&͋bb`;iđh U37]!/W4;H$?K$ \So|%dra#. H]ٽ=)ycGB*&vw Fq&$IUk[͕Į,Yt?2B~=r$(SSSS6ٯi6):yʔu:w#lڤ!2Ԫ9u8E9yyyPq-nu粙;ȹx$'vJuvv+㠡,frTɗ̛j_uO:N [ quC&SUбsY|yn}ƍ@(wEeWk̀l7qɲ:Ħ($ #M_̞u_U KL΃?aqZ, /}Ӣpg z֜w{Y,"to?X8E;s1@Zr=Rd*?ZD!bjq+W`2H-ƪӪst@h+$Z\l5ޗrN)EtgS0wT/N6)+gDZY-2gJ微uxg4DGBSF[KVbmQжsnJ+3C]u;ؾw`ۢ S_;;_-C"FԞ/ ^ bRotժC:?p=ʝ-ێdb~VЄߢ񇚻R538:~۳ZuUX+gR%?nԔFؙ<}b.`DXdțWw e2`o9=qyqe3JuY%''4Cu jM(HlJSڨR-|ͭVZoc:3ԆMU]`?^#@﮽wZdn+zSOJsw{"#z/J/-tbIr%̂cުTh$3WwvmúnZO'xe^Q̒~OM9?&?k'~%,_˨.fl*Us8R>yD s&ޯ7C9 2*\-D,>mteT۬撮7(/DC|)9p!m~a \D9 D UoY "-p`V?ȞO_E<'QLd/ӵ+ˣ6H@wQ18dKp&PqeJṼ}^  Рb.9*M2>gqƻON1G M469<>CQk\|XZ 󹫂SdovA3puA(0+Ѧ瞣EGOnŌ\UOC}DN-7=)>Vژ|=HZJD@εP _`3qr]O$1m;Wvh -ȱ?ZeTA"]-HH#HHA# Kw*. Ktҭ4,yy_י9s{lr]z3mt`+Hֽ0M]DB΅,3Pp,u+o1j2]_N[zxѺg#D'쭾urrfs?5~6ZO= ȃIjC5<:hKM7S6@./`~Y̻0 xN=оLJ9'_Ḙ́\g]63&& J ML1+al<p|aGR`7>%NG`SC kݬtse]E?0ocC3Pa[4sߴZ=@螙@.;H!A::nErORPJ}2ȿ{%dСN(M CU>1x8B)'d&˧mI;3ǒ# B=rDgS9[$Bpg5lc؃~nO4+"\7Vż֞ƎQ+N)ar,a.eMƴ0R"FXBQ_cNAňyjj|ZdBYRURCb)reJ7LdGϧU9@NBLEkۙv1x);*j:k) ^=z$yŻ.oSR#Y:P;ȐmߚiR=313ּKZĺtg DߏC\?f9W'uA$8:@hZ'f­(c ݘGNĻъ[[Ƒ3Avlx̮$ip꜋lq l~M+}LەIe5,=d|B)H(B-k'ǜUĽ-bp,,`z3}!g_ Qx~oZ⛨0vpu׵_fp%mu4]Kw=..l5lN x`/*ܗ,J:CT .;* e)&_&̘:@lhR(CtξU 5PYDd#?} CםWX%gb(uO;]kM}b6|KmIDOW{Jc:*e=X~Ti:ّ``=H6`,SOƓahroӔAIeSm^l S_^:H:5jfk+x6\5C!3~'Hkfoב˽k7wid/mP3W2`\PVvm/eT-' ׫7nwdmOݢ; GHj#uk|2I@u'Qx.53YOLyqѣ2ͽrNTuzr^Ž?cgfxCϯጊ,nVlM+TL-4M=ݤt`%|il14"#S),>_e4tC<>dⶪ 2LH:-gI\Mop(„PߑX:kfubZں?NQYq$ʚfY3aYUn0U{* 4=? MLp: m$%ÃH0I("ZS*HEvM8OpJb༾ѥۙS C ظc_#{G bMh/pG^'jĥύkq#3* tQѱ`Twmqhi:0Nll( M|!bBKm܉Ԣg(EPN%5/Jb\w1Oq^mݢr_ȝgIw5RTT)/AoYN\L' o$L\6.73Ҽ񶑴t< s7]@\W{j ?QR Uv*d0R/ٯ9XL_br:367q*݃q⌵q{=z7JŒAUouabS{O '%fcd+y>QY=4E>U}j:/mT},KA #F6z[lΎ\IM$}ʵGq׭a^ HIh<̶!k_IL\`UhSfho3s/ C#뉉6QsJ!1G{8J>n M }i 八rc̅H|ܡ.5AG'BujM W*R?l8^,,rqו=u|rOP $'G~7]&xiY:Rk<{m@Dv逪̤ d|&fdד -.ٗ#߭ ]]gމ5Z/8K?ҧk0Yymu=ea9c%Up47L:q9`&UJ KbY\KRhU}2c.uKQra=8MLeRS {=ryP"a˷moB7qBRT &zPEyhڍ%R1Bu9i8тWi) cHͣ2Φ"> Ʒ3##AҔaѴùMb*F*(PҌ*|]Sh`"pƐgL)~TSba{uґ}olMHGd}ϏbтbVw%`ttTf IaHȇ,вG*5:7>66t@IVJ0B&S7`L4$ybėcMKn,߽VY95R3]I^]^j)_g_v?,/jHn3QZ+CTil8'4I˒/rp5gov?Rerm ֝z&}HĈ 5C(&H5"q6TJ~b?TUw e,sr[P'"%<γc7II-1;oh6Zo ,bMB*h6]>c0P<7LƲuaT/Fgzg߇n}]E9̺s8 wu'< k#i$Vԍ;J/ aq^JI{>~pnQ-5uA^ʹo\8*.g['7S$" xEڻkG"ԫ˅0k ,-mtE8!TzxrV߿FlDEE}»g<-CDHr<0lMe];7YKfy<ȸ8ЕC YS`?8$Ox0īG_%x@:H_qO 3Y;n|6ZO{ #<03KVeC? 5 B IAʪB41\Mw>4;AC83Ku"`PUR*XRtc=wt`J>]%66FWp ˘$yK۰V rNmQ=;°}R{(ÏzedQ/v\|8=2@J0hʣe91 qJ}_ ]S˳pkƉB7Yԋ؍B9ʿ{+6F]QXjɽKЁqin^-rA*!ٱz3pG~kWZ͑Ɓ!O!kE69pčiXpQ ,緝>cnsb:Mh42ppW`vk54# =\Pm"v/G.QR f|8U;!!h ĵi!(~yc)zaVUN"Ι/ԅ؎J0Y0%`JBUBϵQɈeF(ONosb2 ,G*,qyA@[ 3/J0c 2 Yւ=wsEF~O]ys?I^Zw&X^EX[tknP4V4˄aH )SQ<1JbF^>ql 㡵RQ41ZRkq`G%L$3?K~ssmJLiF4]2AA{G[[? 4$¢"I|V ۝lJV#h0ء<wQB#xUeIENDB`~5 N2NH x|eXM6+BQ^5kP$E ο!Kj:L@,,jdhalag [۹X89q:ٹ8Й[[\t&h/h9U,M9 |$^@ H gy+BÉC  xOPNG  IHDR szzsBIT|dgIDATXoE3ر I4)HHKˁ/JGā$#P$:*BR[%p0k'v5ZyywƆ1$b=l"k],+`l,ˏQ`_8ld+ 43^caq 'FA R(2Yq+x/ >`ಈXVaF. "{.b1^~K&?HNX/Gl;0c83]x)Hcӛ"! ʬ>5.f_;K'͎8N$1lLp5t*u ,QO*s(U-- yeeIr5juTe!;qoAYr`njX7'^R^㾇HHNzY$wkdT>z'%uN7QFjǝ߮SI}&"n)maB<<<]*|ڮ$NO=il8He2xx Ii4Sl2`$˩W}3Ãgv0]ulLBwzn~|jMo~*\ $`>ׄ-k8ys41 DSMcu{"v#xKMx$-iM$6tXG"skOa f3Sa b9eZ(3:r㦴:%!)R;#(C#?HI{r:H(D]džxKTa\Px96:Om,ӑ_,c"WYbD~L: BɓqC-G]Yg"$> q%>Cs0)rLUvہƪތp5쩀fA@UvrOdӮ'/ٌqhZ GXsQ+TOt;JeYqff]  GVK4<֖< =}bK}RTR9§x%|*4O'-'mn]"W3L;clqwFH\o}`iH{z֒*UYf 3ӳC2AqQ;&ĤF2=JZZ|*#]9d닇  /E_&Y"m~D)>O(}sCUM$/JEk:PҙEZO @O @# DebJ%璦+-VsHѓ{Oz /)oy@2# [fUXkKZRBPo(5Wj^3Νr:\Ny2; ~\R9k ef"sh B>r'~(& $r*2nԬNK83nv#Di- ᷍ ҚR ʝ/B(/ )EiXUCXhbz䌢KIo"&OdMy}I4*^4DiNgf?p%% xLohLzzEjƅ\8%.5;:h-7@6s2yOYC#?Lh"򟕐?E' I|Y"@nTmCJ]>ˋAW^ DjLr *mh#xe.j z[SAw9]ׅT1*(Jn/ Mvd5Ѐu~[ʎτ^jbasOJ䢆7Ɍ]A& _\h_܁EJߠp3W#{ť0r[WĔE op%?%!g:1^qNuc\-}̻7_曚0hhZ,vZi㤉ppmƁXAb.&W |H3Z ZeAMCj0+'A5 TsOh\!Lဠ,Ӵ"*?1 1iig!a˿w;~1ѽ 1)V1H'僭TLSfuQxN,L/GϨ~1@A4wCP^M}3%@A#KOr-D>x":H̅= V|qƬ/ <}F$OMPw+i[KATZѵ[I4R m{>L$C)e7@JDET ce,,5*^;[htaRZvkPKEREyi3Al\nsrtBI;R?K.T`X__8)qX=,z>P6@ <`%Z!́>U?/F>X !0HRg*KBrDOhakh8!^ZjrDP_6@K$,pN9< ̅7 3nQJKO@ 5PP|Yκv_$| ~݁9bj|6^4^7FlϚw쭽 %݂S'!e`Œ}4)I{r\!{}Z#8+\ 2S)ݩ%e&b[aXul/`L|_QX "z l.ģB7qN|cSݛ΃>&iP;sV\xdub<^fLD>xiBN [=/Ly3AvO;:+ELj ҬMɮlvDwK˺ jrZ[E? Cٷ=mR 1tI?P/,LU 8$hN6D~_<ܩe־A*u#a0}9ĢϪ!$hB(L rXy AtrRyU0XhrӣseyD{4ZʤT $K9I1;诨 "U2UX]0NKDTiKq(.pfLʛ *_B1Q*,Z63_eHDA8'w$ x|cG:"$&b|Ip$7Yvvˆ2i}rA[OT7P~di*\!4IwAGiH޾.P "+n(4DG>/T2{cJ1, q˥[τ![w,"+ѯs h\&hS`?O6S,!M. Z+ْ*P:Y Rwb&Bl(9ۖ_THqADIA ̡nur`E^@A4A޼~0`8*V*^qgv)z 듋Q3i`4ˏ5Eݢ(YTMT)""FKSiOGn!]xp {%K³/3"WOwᒾ:an!ևpdٶTxYQdƓl7ګ-٬?녫Ēqo'@kҥ;^ۯM8>ޝGy䦊wU6Ĩr$`P&򹑁I (9 m$E*ܙꀏd փ>si8A~N)Ql;b͌ы_w [^I"bgpŽxB0=[5k`+3\<9+Ϻg  Rߛ+-TrFPuܶݘ`$ $:kQ]jxh>G8k.}ՀVrNDi@^qɇ@N BZ:obmi|^ x(⭽,2w ]c3hmy';}2Xrkd׷7.C;?JOUGO /"Lckn<:,"Y0vߡj؍FS˔]C9I$8./4V[fgF GC Ps]\E4Py~7;!cY.:? E!5!YPDgb b6 H1b5ݪs3ɹG[o FT-06a|8P"FrS*=s0d8@)H]+S?2$ lӛ$Rd)i7 [f2"՟f\K}W]m>]\inNi-OVdx0CG3O5[-IӖp`8:uځ.YceW 5GO:r>뜀 b"<x;) .xv\uP+_,y@Ò-;#TA֣K5"l>G\GҬ^1i|ܔ Ud-MUzDS[Õw ~.ľ}hn#V ;iIYJeR7.V(s\T H2|\ #:r >F]mX[CSʔ1,{L+9.Tزڨz<߀ۂQ T. ONL4Q; N޻ų'͍_\ӷ$ Y׿mәEYnl&6n))?3A~Y3\> yYK Δ:̅Ʈy=LΓlIU.tvp"h!M@76H* ?◁LD9oEBFtIRҋ۾T;zS 2ys5BбPLP}v,TAOmy'@$<QdG컾TNXxF]K| 8#]곺\P1"x nʓ~!SӈUfoz1mS)3爷&a3řSyAkJW;G.ǞjֻcOF~ƯPkqO‚YJ&S {mf+XB5< `Xw̰J̠u^!tf2Duŵt<QW> u"!>{ J̠p貗DenOjÍRWUȧ5b2Jн|_0NgzD s͇)@GꢧD %]iPY}I#}0s?KA2"/}~zUo]>"=O4.GvI$4]MZOFOV͍Bf_{cmbGn뎘?rxn뒗\d0sK%@o^J"[byt978ȶR{!8؄Dj7B\&zRQCg;5ޕh_ik5OI_{i@V~4W.ݳ<Mj>-ؼ>Ey+\TZh|P3XRr`6ЊN{]e**$G+,=r|yasM"W[1ZSCp0l%MV [uRF8#%f8{FӅhsSv[ ur [ ةr?1*q" Xjv)!fmc/lWΰe@how=$+(GEwVz,BϞRGzڅzn⊭H''W {A1m ~"hVvFUkNXRm[ V }:l6oL$9%w Lf]1ٜOk b윔a̩ox"'P=hRfHK%6_n~;m~޿Uq;J7va+_8(c&7 be{lM@T7:\D'koYN>\- zy_܍yzov"Et1J\6һz ED95ד>a-ٲ:Fpq^namqpg^!ǘz`)^3Ú~laB-^b0 s\+?ՕC D_{7Y&W u;JЂtzgǰ;D>ȍv=125à8>hʋ%! oZzb$גǑ~oKyf8fj:ߋA q7}VP^Z$_IQ R+ l)!Tg(`\/ufmɥ!$_`'./հJo:3*%@0 /RG[:G; ;PXms)H.ߎFL|RԚ ̴,C:I߲EE)6Mis3WM1fq|~Qjd#æv~"z6,ޟ(ݽ3q!͎;ʘ}o>2P R"1JmFsOBQcM3fAlaOoc2N"SI'zU<(cF̉m'd.r7e [sCluni-+;wYG±I^Q%7e?tl2Sľ!:dNNoGT0KOrpv]kfEk嶃KzR5xV6 l텫j,w:G++#acs]M%^*j߱l}&Fbn%X?s+43= Ќ0g d[=;֫XoPЮՄK|-lź7ORo&U@Ejd&'e)iNJ$],eyYӥSTϼ)LM+_G[<0˟i&ZZ 1ƶ& G~cȞc7huRLsR.c\KhCˑwn7VNYlWxo|̟s >VRmQk>gW^Ks,H䓛-..+\2m҂ݬ2b@E&7wg8;joB;Iޒ`yr9Eϕ:u[w>c^Xs:<ު?3bX\F!Y03J_% t!Xh!pBc.^M|nү^Vp޿+uW;绞#9۫rj2\HI8,Kinr|f2+w(~[ WlLW׊[f;8)1A#2Fnʪ*2\lHK]1^D !PN[ QI.V\z2!P[-.J-'Gorwu4pQ]7Snhr1{C׳d|>}[bT` A [͏͵݂=+I"/瞥0nY؏=۱nc]0$U@# Q!Ҳك"Jp[ؓ'ҘiԞ{(N,"r`("5~r_%ئZMEq&tP!hEZ*?$s:^]eԖy.[òftuh~9I%>YL$69cEQaK "$Ǜ+Y"R;bm<_vz"23_9EO"iAlk@c?⭦ʫ `FLS؂$:qc?lUM̔ϕxKrm͌A8N.gr 0?aqas{3Ӆ+!Y?])}Q)آB8DSE=Azt9ܦѶ 7c9:>C^6'S?IQC 7h]p%s|2j%M5WV哂 e9E"@/tpNQX(Wð̞k4dL̅b$<7&qcVA?Œ4Ȃ`!5{FD#!;Ie3I(Ռn+EBp?inle5LE\}QEW5< _r~:̦8_M_B a6R5 T?R>/;K;.2ohm߶^(?jjfo,({X"%JM{Sia_mt,x}/^άڵ"jIKg60Y> cKktX0lq}p.^s Y1<ϛ.ۀ <ծJ }&K5K~C;ok M8'uU6SA*'8vD,LdLLLٚlR(P7J: 3¢i9?_ h[:j/հph3DlaHI+?fyXK!AE\ߔiH󾤌a=}tYn 4fz_qp5id` 1t7\O[AArK?Lzbhz?"zxۅl,/8FisXfVM%k|/-ͮl:"w_vn-{.-o{[xVM>{h$z.2>y~T{u?,Ƀ-fP_6VͰ%5G+{(2ۭq^)I(ہI}qa/]%׭[=mv:I >bwJ9ZK{v^O+ k:v6CiME6P[w :rTU֚:8z3}hlƹƱLt=ԡ,,dM>gtk{\+x}`+}/ CҹbIs=pK-3qy4_XÇ28RMN3ز?z3ٺ5CrwoEpn9Wє򑋒}OLtOݩLXΪJ XNlJ`4Yi%:^qbC+TNvّt_J@qg}ѐj#|/g̹e@&~mG79 Dw*=ƪO\U8EZ"\n][nSv7n7813yn惍kI;8f7omNA/c8~`˯d+m0{zh|+Jg2b0@8(\F;J=?Nt*M\s6~2U=6#&xj)S]ʠ \ļKgnE[D>Y@doze6:t_J}}zz7Q9}Pl 8SwM귵=PglXeM#pOb}C uFľM̙|M{u[P'\JۮQ ̓qCGE;Čߤ׍s"%N\tZ&Ě̥#v8MPGsЈx.2Wŋ^D mH3h8JԱ,,i23覮ۏyh_O<j)ؐgzz<0OpsPKټgLc~Q2+<)C!3 ̯24,π+($,D^hPKVZ"@x{57sb (7}N`ǭ~w[Ѵ)/L5¸ԩRh=^a$ key}eǢkr2{u2H.~?D p^jІHG?{zbEa]wi /xlTsdr9%Չ Z :W UuIb0CW6s7QP_tȷ7}wa/6o*%?͞ζ7&T$D?~JRidȄjf9@"oDwNsqh&SN}]o;@]E%SQ?;-dNJim:MTB _"/qlF juuG=Aan5·ZAYj[|^ tnU۱?"S{WMrW"'73f߰;J~ )n&-&|+$P{lZon%ꗸtUcȘִ2yrh@K0(nSITzY5ǪnвG /u&sJŘ xaseUǴH'K9^5_ C /?M;nʆOfRa골ٶmQeUB~J _@xqݓ/,&ƭcL(սkJ57I7^;IN#px63J9xvHP` &u>Tr;߬9Ywi:|(3ctsn'Ot@vb;~)O:Uslee`_TSwqr%=xAw- .j9䲙ܺD[+,a{]w$bbjKT][v|(<+>P98 ņ*nzbqn4d$`}7n,w8Xr'p:4`xeyrѲhDՌYqzudazpYb{p91;9H.U² =8pBS͒46n(E@=_S<Sy4fgr2IXEC 4x]d:u^Y8(3;=' aO$Nz{Ëw*~-^K\X_bUij.4 yd]W毽[Jwc=?cHr;/sD͗Z} 힩5 A=G<,>cI|g-܏ׯ_3^7/{芳A٨^/o q/O#H'xAY5TH|8@.;7]mk;/K}4}GgrU^ch+2e!ׇZw}ާej Ǻ-o}*'Hu]۹GC%,t.Dc%pAL%oь]MWFޯ1`a]Qs=mo\ظR?9 d^Ug:\GNղ|2{kxeROWkv|ᗾ=\sXdxC ƃ>u;۪4zbG -*:A!KuxE-;K3`sV (} ZS8OujzH8̼1Kl@$Ze̓pɼ!YEt,!lHiSр{{tK_IpZ'{Wcq~l^oӑā8<./1TX_gyk'wI_7ZM|oN][}k?oW=&:f? /אp^fm5Զ+Dp=U|z*Z5P{qufAgQMݛ U0ԫ:na!,-ʏw}xQOhVzC.ÁrSo ¦?9D鋭V}YA6Aձǀ}gP⿥]-NwJx? fXuTB5cdF*\j Ԑ)qkjwg |?HS'Ǹ8̀n49_׼Gդ@6&!8Zl_mdF̞jVf4U/\KňJ=+5su5[Z f=88ߗKcU.2wkwjl<Tttt44>b*sv{{A3ǃqd`^bxXXلwNE"q&W l/h| KT*򟳮9^V!( #GcT~;XrLAAldjPB?)(C9 \K'g|*7`U+VO{ ?j7mS$"222 .?Hč-ZJ龍 zqPH__R _bm>Zԩ3zR??? ]\ONmú꫐';jX;("To'CE6[SiCL'w<x,k~B3mw1A>rVnRuq,˹C=ǠhO͢mw盫EV,}=X,Һϩ[8%wd`:iy(iNz.$$dX>gZ͚ %NKs+(4(-K[ҢRAy0 5q^B)UtO7[5ǂ+J/+3|Tul*37xHW3cb4?t;՛NH}ɨ3hZj,, :%.ON0z trI(w`def:$n=aR$H|X[4rMςs;}ޜZBg/rAz:bhxx)tz ̕ rlV .3, zx~#=%.ڣ SpfTaxq%/8a 3@.^O }Vux-FHUhR geWLB5>0j#j#MA\h||_IRYVyCuH޳h@'>eڳdO+S5d8ʿQTBB* L\O 'ONcz,V&vk\h|wװm:Ɩ7!KXa͍c JSxB.o1E\4|[=L߸uSw+ "h YW>ѕ[\\2Qyy5VI#uoH+O_ ^k@wX_-a xS#*M*Rs7fj>ۨUA !Xr6ݫB;+f^Ke*PWWT)W.T+ rGK8VK6 ǞQ;57S>zy~FBB>%!|Kdw tlllIUg;{cCJ(M5 rQ~*"Y~jFw!iܩfbk5()"oWoų]"-ZF$(G:jj@m/MF~ z:W<< S4rh$1M?vH2^^-6p E3 |^50f:`pBnB˵;Ph՝n@o340 v{-0 xW-=^,9R *:.M_+&{ E7Ŵ>p}]UnA?4!⣖Kߊ #..=m>7G{TTTjEPvC('d6dֶ1˛m k}*9-,hU;UBIݬnӽҍGG<'ؚVvh у`#0_AoBn``)4`{{ssI:O㓣5.STN5Ξۗju1 .!9*., #U8e&7ՖS!' UOEj6.}V+5W*8&QgzwWp)'F+Dn o, k}tn]}c-VFCuEe@ZlFFFq1@a*:::]م*CiVCCR;)AXAd>|;V$DfFarHϺEmBu;eUÊ|?[5Aq0Fיd$f#E_| w_==/ebST|2}1=ǜU[WQހl4e6E.zc'!^GU:*| h$1̆4$ _!!˨$j͎竫x*R p} {QQ*?S{-K{Mh `:pٔT%))n,p27")C76@JPv]@R5E;Ajom7f3#Iz8r<2;@9+DsRq,ЮKdQ"kUMN}Pw(L<uY)'\*GQ w7[780ll\J5|݄֮%8K#N45eeLM݈򡑑3xKiͣ=Tg{qx+u!*TwEzeWpk%>e0[JH"a=RK5,`?|gJʁ!eƦYiDW)fWY:Vg#4>V ]@H=oNc7N2:MVB %E@DJ纹K+;[f{7Ia5Vtح'X_۟ A1tR +u.-}-V *Zևjp݅yAUKݯ,j]<rXoʅ$æIjYIR>N2I&L]_i'HNI(iZ.(қ;JII-egg{.nl[MfjA~huKWZ-7շ$Z7{8^Om̰֣T <9 hQ;TK5G`5PTa67.XHyP : ]UMLzv.B‹ ZtSGw߬lZB}}}>Qvӧ&W0b@@k>+U}׵^xL#vaK|ᮽqȶ)|:"STEiBTT$-H{RNHS[rMJFfӓ#M,>PЁ_GEEU2*I߾!qcZ PGY>N< \I=K+{9OGeB1:hb Ɓҋ9#0),:ʣ,ب <`ZB#H_ {ѧ_&ˁɺz*BpE/UcDYw`=e^f4Ă}l9TEy_jGa)mEV6zE'v˩|C/>\X EZHMz'-52z,X422^MZRؿ_.Li}fE9mӁ!7mX!1^B!k63/Ҝlyz u @h& !CCoJ%?=i&IK]FXV0ރbK02B_ ~;_?aIuFj2wG>=TRºsGfȶR}oMSB Ol/[T\x{ëӏ=# 2_d?85VyS!K_/j%cIėo3 %} =DW4Uj~wJű$> FZgV"r'H+LJv?~ UĈÙF`aQUq`^XɰfDQaEt exGϻryh!g?fu9}(Z~Ew$y^bOA_U-Co] %3Mv7.p(0_+f$o2XueXrgA{E[!+DNf::;QpBMGq"0 נ 7<~/M6TҸHnH.5k#}z#r%]jwԁq:L͵+rCqd gБv6"k4 ]MnIBN7DImx^cѥE1R)_irnGVS5T{~NX #*D,"JTfa(Ȯ;xBRo7:TBv67*Z:ZPsq|P`֠`t'FKhC処႓j/8Ѽ-X%j^Ԉm :TKT$WnOHbACVj9fgKgYDVTx "+SYր Fx)]s@]]):ES"U.4HL^xDAK Oz0ClVT*iA[dvϢnw̩ާdoa!QE32qeeG5<ڲOP,3dZ}Kc`R"X#Ćp }{XԕbPrD߷_`wX;/gu)n@@Uc.63ڳwp8 xJ{ wwP7O^fFē ÈtL9#O7kL|d,:Aw₍nAp9qçqg^EcBK%` §`\sWdj%`X/{)ܱ=0573EC{9}"aM(2d @y~4̷b쾰n0C`kpa7V L.6 8 + Ոms]x;Zw6N!5V;ZPzEX@g^`?{A6ŷ.zynA^ fLNM}{#{ E3TQ}#̱,:{lDJ~a`[{R B0Үt(8+GLk c||R) rWMPGC }/YУu<:M~Ku͌#'C@'.v裃 (U8}3\v\ϢT1DkW/g& omOax{ejŴ:EѯeίKY3yE2_/}c5[uA\QٙUd, BA[F;uLMsJW/*qV]fm6lIȌpe¶8ΐ{xj$njt3zW@96Z41Fѕ4/ՍPvF @GI7 !}Iٓ=`_#YK+[=-$)޷|m DZlTNn$$quzB$<M[/~!`Gui|uf4?W$ewBN(XƓr1GQd?YT 2W?ųԺq3GA*sw{Ќ*-Q=_; h^7> - zW-́*⃏30A\p?Et4^ye˚)$p-ۜ"~Dul Xy~\ymވt{:@Hy{|d#бkqSl!'(CTW-}fa`" V` vN1z!MMH81fcj$`Cť0H׌* Tn0px!~ɟ%.A%IP:qɧb,_~;z.MŷHyي33IVf\:f_aON33\@`)uM5C+DȊ.xf6 gۋ2דl*0y҄K\ScRonfCr5p9P?ְ?|Kl5egF<du8fל2!͹<(-,eiE'ߛӳˍߓ&D^+RsO-b+<*~kӣ<cTI(aXxI  lWs H;-U<_ouƇ'9˟[N:Rce93(4Нծ|EGX)U "U_ ;> o 7uپpJ衔[p J)oѭ GEW#`pu ?=R%%{y_1 1ZI&АaoD̖`p.7Q]Fts?=u>uy6] )(/t77y|-;??@A{;*@]\!ur"?9E x+Na5@+BZ9g\;,5Uh1 ҡsҺ `#>5 s#gaAJ7=t ×:>wYXBZ 'c%Dn%z -/~|V/59"wi^cE,ixszmA1벖w]C}~@6-vy3V xo(Et Tv45"NhԤp4;5*,7 =V\n`ٽqt[+D}xE[Q$L=Q _UV'Z ~ et=u7(rdgmWgj~HPR^T B%L,|Nne)a بO*t ;VЏ9Iy4G Nʞllhǀ.HE(iX79ujG5Zkʎ. 1Jh2q\D5ch1--rcv:ƎQK7(n%gG/@/,,O߾V*G3s{E>PLJd R+G3*]3݀c_{pwǚ6YsqXpV2h{k3_mк}]Z13qz@>~4I%gE"O), ~л~ '7&SDty4EW-ad\6o"'/,Ǿ&!:PIzxn%^lܔ,[H?W4Ңn, t%%4_)C;oYzl$A/o8-HL> :sa@ia;?`HJ- 7`Jj;*m. K,0CCMīd,oxG{^x6W*#ӿ>zBűzk]:'IiNMBʭ\V'''=.e< 6B2㙺{ wNu#9:8p;Ydp3KKK 1g*SD3/5TOXHJs޽rmz|+7\Ppu~~wmDם0TFSoȯ->br~BVŸii {$o־-\2cm ./lzO|I2r(oqnbcPD*@׃)4'A_5]3(BׂM<\w<"/.Ę=~)μ'<"G,\|Woɩ`ĭ~Kly)+ %81܍u"P[kFv' hI!ёm]p3؅ʟﴒkUj/_ }s&v&/ؾG%paHz>f)n|QAs@Mzb_xzUZFEbSJCSBCaq5a'.ه`R%h )|6e]8`TY^ٙP;? ;״3%gh^ro{tNwhqu~#d&jw ]bJ|7014<~?B"FhMa-ŃUJ}%NgWM'r/|/JrFUHZ Ms:cB_ PV̡'gaW_𔐯SjPJwگ #Ň&tئi#>b;2TuW9;&̪,x$џ#M h 7C[@u[l2`]E 'ƒ#ÉIRy{X ,! ƚA9v6RMD#? 4qzdZz!/=so(Oc-m)T=ryg)L!YV_Cc\&+Qa8VTfОl:Ь:. ~;!ŭqËbo|{Wȥw$Hd@Ƅec*V5 N$iS4Eill\(^p Gg˚M}f? gWD# &pHЂU Us SrY*d.6ML~^S#~}^fXPr~z(Gm0@keW7 ֎\B{y:2.WlkJ@ lhhRJA[W.ix7T~ "#\`*։:; Nzm?9$>2ys#U8UcԚyx[V>Z:Zf;ՙ~ʸP~}n:ڬ۸ V =nfA3Rx{L5٣G1 f_3&#s0K2@TB7:S0;8x Ϝ c]}pUzYf~8sCRu3)J ӝfe?cpR_P >{9Q)da5R aZ7` ~:Xd+cȭX0^8J6Rdmvg3oR|gT㋳e(͝8.Î>nР_u}`0㥚q7<z+[ȍ`_y[zTp{Pb"FeA ~Š3Ё1C!sV򒀟u}--֦˲pq q~%J-J 3wJZe+~keŸXgQiλ=nاg0;88}>Uh<GmՎ}VDyYߘhQ#޼ۚ9(CفjqhI˨;Y7>sL!`==S)=R ,^B Б_0K7Z*&N>In& )KDarޛ$:Ǿ<Ob*, .?)Cs)zEK|'bƠ`3364Xz7]QQa߉ƿGttl ndSUS$!ɊO)Ҡ3`VTũd7V|'J:jjmy@U&O&Bۘo-P:}CF<>Ԑ~\^^:l[M>-[{x%ߠ6QR@4۷>IF k%7w+vM?-sLPՄ(mcBtvU%[ZR ڈrk +.W PJ6ٗ^T@+ݽ#&IݻjSE 1=~Ӂzӱfo_!,2v=Fgl6&=@-Aշud/!mmrwsUtWEUk*l/P-zo0wm ovD:&B#c3-Q癭\^k)v8`P9fx11n3Hv**fƄwdTCUdkMݪ~cOkO֏h㛳9P>tDFuos7svU˕D@: h 1Tomk6Lܹ[7W逖Zވ60ߛ87J]Әm& w@ Px> YT]UiV|_i辘e2-vx_&k ǧ4YOQ '--8FYcSDqjaI=7̗ONF;u6Mj|bYbEy, 6Q\'­?/aS:8-Qir/27;.ڞD' qҺ\13bN20ޣ 1V!]TcX~3I&᱒Yi,2mhxy)ےza)2iपuqP 1-2dgS C`;$Z'2NnQ1y!h['iѲE;So]y@pT|M?aAIeŚj2c5~q$jt(<&h\-.néu HO0y/Fƺ/ L f&DBڍZo nzO)AX?͏9Abpwۋ==ޜ)˕D8ebT.Yx!;ɧl$N(n%~n̝Ej'xlnKx3Wv9"fQ]_g;>g9Qp>mΧUn:6pnMuΈ3㦸wVW~GgF:z \4hMS~ z^A<rw3! tqPZ(F zU 3ޡP uY`m AaF묲tR Csa{9F_\>%z$s0p #$Jp9>S_Y¼ΓQrkYj[n\dDx% Lek8IG]S×52 ^JP tn-԰ ,T%GZ(D;E~S,0dq-ͶiV_Ɨ7 at!IOG A l"5^aj-AlTv 89ے%ߧ)/v LJ/s .ҞYHr8,4b( ɵv熺Zm63%Ɓ>EFy?x25 sU4Cg5QBvY#|->defd{9Dơx_oeΏfZkb־^K2_5v2"u|Bv8mN}iunw6uP /:gUڔyZ[|GMl|<0')r[z(t-(UMjsL}GX W0\Cߧ7,mc˲έ]EG, DG⽰ i0 +PO)& m0jvl9t`:嫰QH2e+JDig }| U#jkAՃ!{s6&F8t^$"^;-HϺSь']e$V҉cQٲ6qґ>CsxŕB$ˢz|#'rK{bjj{ )7SJpt;sjpk騭[=vG[Ft w{4kp 4wwwVpw.s_]]5gլgZn #!* ~e@luZ`g dwn ++5#V}-X!J>GXw 0ɞ ,VAyGIHaȑaoqT]Fښyu |B~IC{]@q"sq}>虿=V;,2LW 7 :@S^UTbX2-9=Q'$]Ӫ0 ;1\L&~$ii(炥PہWvs7|0^{Pi{%SB&>yOsamQAZZ4wgh`xbc@?Tʹy`5raCB]_VTqK#^_Lc\,qAV3|7ӶWFI.qJ ~B CZޫd|mv8,?ʴyHW]QQIKPLOa™N۪Pǘ]6鑮bjZ(s#8"<yq'e߳`KSs|y3u͔YP_7h_|ɋ2Wγf/Y0;NJ u*r#mL 'GcWr*z)i2kDB : ;|ayq'uW* [(j3 ǜiMY^,wVKE$ ' #Ց =a43-9>-CѫD8x G#InGNīo?-&\BӅKӟkv&*5}W(تlj3*:H.^i0!u?M5K[؟ bK-\~?; żRԔC{`& K'ɾ5~.) >~WpU4̑e1 vxvs.VP[Q!^U-F"*,ptɻǣܹݚLC*a̍{!gw<~):.idێn,u[:>Cvb O;XK[_gNpv(ݶ[0yQk=r\o*(sH芄o5q~ : ONw\l3ɕXt*;`[-|nXܨ7 f.=a [y-MA*B~\5?,\jU,Gy$ot[voWDGf$Y..h{=ȉVu wd@vR!<&8Xs݌2"Ηk,cW9Km,9*`73]HZlo_ŖÜr4a0~O֚œHqZss:-vèYzQfw}7!#9뀣dgzYTZx-Qcڋ cIs&2 ap":k[J'ce2RX(ifuBu'ĩv.xr{id@1l{Qtұj5F*Fmz8R\V_QxUo>y~e~zaLL8Χf9m"8pm`P ߜ [rn>&dUV)]ɾhі?BUU Ûo47/V[Izk?}; U*w_v%O"G:ٮ\tM`a$.XHkqpv}+LRsF4;Cꬩ7yx4FGXe\FFfƼK9=8) F_k'g c5|~qB ph|u}ǪVFxCeV t9M@nqslؔB@My ai$0_d훴q\ND'iR% RVcul XIsl238dO!]FTjT2}/E0*1"4^2\%|Gr{L rQViDb o*%} 2(m,o(}VXW~[$/!T9TwnF=A2F=-+Ia*Qݝ95tG.GK+S]X!9?(}/2$"'ߣSm aoC2sbj>)[u/aFa[6gv1Swz1#dyV mؾfҞg.h 7y&jL[G]Ea>nk͖DH1צC+-4w '>ʜJ`| G%e+`xHRv,PktXPcqrv@g> -U$T n:JvT)IX*:v_ͷYW!(M)+IȿT]ge7 {|x8ʄ7{'2`!Jy:hh7 B<6CٸT9=>nboŒ=Q}OnBx@LTi}&MRh0 3-%ݩb*c2z#'zNOtpmtH|Ham;fSK\Jt7#,yAFGlvy;Y3V{xk{Pqjz>I'.8S{4g||?*l$.1&J؁PACeo)t Mխ zQUi\s#3l~W \be0>Pi!ۗG4^Fx9edfL*vlUzv>L#?K[oryړluREmZ3]~m]ӭD~'NĎ);ƾhXVt,yiimRz~:sZ3"wV~^#uk.'چ%dr%Q޹k&LN0;\w6iT$lpDp2L?i2IP'9,VI"`8ʵ/{,u.oDiŚ75԰@_%0N_꼶~Ie<-lD\Vé6&Ȩ:Z28"Mo ok^׼Cٜ_[vM5"(rgy(zzPe^EIy 5 XWѯ4|̶>@h'x|ne%a&VNt M¥U/SDpF0ܨQ/8*[5 pgZ ?oCW}؃$3$&m#H0@aB39\(=p#?Qluz#cgӐ 0%@pN,Uo(y>RNpUaY{XFt h9M'6t}~ L7(?TxDpk*BEg 9zq`~gp%;mĸQƋw5$7Hf$0D'.EtA4/G?r y rmҎj44AU՟ԉ14 IR9#9Pؔ/ >{{5g'iFOe&^hxB(2b`l `M UPE3|k6 '3* BmFYt7}* yoR89xwM}V2K;3sL-PGo8OJ֪ q! vA&N6oڠvL~Y;9sKK3{UDWcd;b&EbۤͷBHtI3?j͇$(;zplGX4譎ڃTvԚk2IFkxId67siW5)K㤧T"5@wħQT ځv ͏2ξarAy<=r]+ڶʝ<^!#nSJ4ch@O"HHFxb4mMǛLNN\NܚBu¿2X[2+|ttNMIx9o~u?w4姤/+QO{ Py%cu`GSyV^NugVdM U} )JN3ʥ_wN4 MH=sHM6YgoɃ^@ڃQ~V| ,eɮMXr<2Bp7*[#~W>bVG0t~]WFwF7efZ@6SH߇ 7g\8"pIISMZ6wS]* 1}n- ,S/ XV Jx WS&^s FFJ7rw-QہV)"HX?Xo~ʈH>޴mlW:aoг!-7WP$\Hg#͓'h ;?<.JQŔi(7z 4];~ZXCKϽNDbS#V482hz(M PpfQo, Uw#[-8Ux5! tV7y/#7 49 ?9_&.^>I8HTГoq4gxժD,M_Ky唒"\˓ŝuh֕˞RԱsO]/ !&>99tL.;J# ړX*QCyH& sɖVV;S>?rVWl./QKM>>m ϔF:Y I5; M(w~UnIWҍhjx:4l*^`ΐm5u!E C /K[vG12LXq[\W(u+iu媲{k$2TXjg.bTUHϙKjMGUs"W,u+-Q{9x` E˿̲˒XQ4"B1/M;-GG .a(C+14]h~x2<Dz{![(lR+ >Ц4;p}?fY#q9Y"zX얀 O pV-Tl-C[q'k8eC\b+FQUZZ Ӟm8)z/B2S# HS&`8ӎ%iO;FNCBm)7cE{ ^ QcTO{Umy+ nW ˻uQ4B <*IGMY n) !-PƭBҹŕ2iU/-T@,Pqpo2L'>C`\O)Q\hl"Y1[J(.sf}/ɬ}O\c<^u`4Ѝެ)k{;!&=I4.%.g#:,*-ڼΡHN dZeu Zȳ ؛R?5d6lQJQa^F\\ pu˪ύz~Ô}})ldH$ꋼN3}F1<EI֚}oIY}as׼W14f47-|4 [a;'h]wпHнhSgK\]uCcl$܅JOy x}'6|l#{ 6>]P1.D(2 5lƔ|j|6gz㽏wꬫ"w9Rd2m 9Zt&fӞe=k-vEB\ heYPO7=VNàƗ/l(x[ю`9ЇRt88u⇓ dp]X%Uk2mxFK#;rK.W&&'Cj%/Í &CCn}vE|/˚%k+*3L%tDt59g7+9/yeJOS~&)dӕD/+ܜK̢%s\ۈu]sQaI,ଂx5\|&&>H[Bڲ58Q qhBGpA CΧ)r^HCfꑉP,pON[rRNLx3^7gh _&!u.UēÈ@"nޔkZ ~EK9˩L>XJ+Cenvvp,j- z7tLȴNJRl8F ;,و~6[&uJ ]NBdt5(/'͸Pt(Gz+SR;cRYܓ[ )ӂJjI apǠxxA`Bՠz7>C7!1xb܎\Fw9Ƈs 88XH}K<ɚ߼οb IHH9TljiM fL;\ -((0nϤ )O}d8F .LL#m Epd9:Z e}jY%1)#"nMdZCvȪD@kG`ohۋf qjV|Oc-f~v|ɔ傣?|MpK[ZJv8>pU;->kx:V|\}V{:G*(0JF[ң:^!1t ԅs.?Aj5::"8/F=a=qQi0%\Xk{ w@'W ڽq~TvT6R6RSÂ"x/S) e۵|H_8NsE tל<,ˡ_{Ě̎'o* w 9#|u3/V=Ӎa @rT=Hi^q~S+ޜoEY;2 󣁘ԭjR]e.DcCz+D_v򜰍bFʻZM[ x̐Eq!H  plwǵQWήЫhIUPA9< bL*iwYyiQq S4 +S>5*}e*.w7Jh:n:OtRrظ\qnnAI5*АsJzٮ%_YoFRw%:0zV7t0U)d ^hSa@T_dg໮ yNA'//wM5෍}=җ-CM13>\x*k)xz[4Gu ~槷E[$|Ma8)>")܉ɛ Psfg߾^rin|t~ֵօA]|O{NAab|ʪHk5jK/=Q\"]rBjx<_<7ó>yq廣XvITP(2Ą / L{5̬?6WW!yʻ-ѪiRYXXyy|,%-nN3AeDJ [mNGol7t23ֻ ǕK wl1;?ڙsYW/`JlZY[?BvAkdMlNTgoF447,w, 3y+aJw`7q9ЄdѪ܉ i#jXKƮIm-!>hܬ[k~I;:aH+7:d:g{榵\ :9̹jݭ`Fa4=Wgz dd{ϱ2U(7's}+/v#,ϷQtR0@qobdM1`hy$4E\xD|Hv!euM>i+*m$vp⏊tbM'ZOiY>8\KSqV~EUb2ٿ|itK^#XIh?SnY>Ш&=(^(Q2EWyb^.rѷ8Ȗџ:ټxz>.9~shxƮ{ ƉeMK_r. ɄK;Ix q|R)}p,5=Fm:Yfj%F)e!'Tqlػ<|= 2'IVOU('伟B,.B=`$cpHtko0W}lإ⺠`_91$ZQ63AYBwgɋ}zYb͉Z]jFqPm~rqOu͡އyZ`T獿Z Y(9c1M{K4:z 菡`Ցxee4:O?!uW]/i@cPf&k'6<浦a{ᤈߌl.8A&h:!a0 PEM `eܰɌ ^&>5m^e-!k4I# 6W.͗}H*ֺj3|lsޙ ݑ&V>Ea"`WaPb߼;:^ެs]~kuS*KXyV\RߣudE*͞`щ([hC γLv@ 0~cBDTqiEl Udcc^3SáAj[߽ZH5Blj_Y8cTdѦt-lnQ$h7r07Pm/êɭry>|fcbOXyj+z{P;TULihؿIIdta׏pZ9r|ϏM?ʡ);W=_2e9R^c^t81ǣ),'ގiWS9<'dξMv7OY2g!&8=8_l#9N͘ojc.'(/c⇍HP^>'긿Icn$KX]x:9yI}xҾ.y5 "ừr~WI_wSp,{Ҟ7r?H{=<6B16g0m])y;fiZI(Kl<"È:GKUC;%@[zFoU }έt-g'6iK܋Kh%\HT'檻sP~\޾c"Gn%oͧ<g< ҦF)8SŸ;#`ۿ: (V? }c9/r/K1Ϊbˣ\DYs_ު4W1;^UZ\SnOz%aiGHqs\wbi|u5..r=ֿIK3J'L岆IX\d>GPJo;(>䧋ex=_ĢW4lkkyS[K>/sr^EAxEdx)jHV\}lY4_y7ZcLmo1o0䩣_G:doVʸ,_ry%5g;T2~#⡉C)»g Viw+xqZc Cm}|E[[`ɭʂŻFm@OJjtPMdL&.}ċ~Hl|Q }n0hA ``,ƒj]-{}=g_1ba DheN)Pwf8QxHvL닭gAbNN+(3n]O'E3od6TnTůCp T~Y/U2[HlNV@ ! {JJbY( ]gVa\VDz^,֘++ Qs$z#{:.)9j<{÷Wܠ[`JFӟ:`s4 nnWd9?j2 mGh8pO!bS"}|C.=\K:]|,!8*=;#ΩQV@R*{kO.ro6!IL8 =̃ʿ{m#ȼIx7T9su.Cl~E]/ǜuHs @1[ `T`)_yU3V '":oYArSK:Lg7~ r*r8+6QK$T2pjޖk7Q(,)ߑʼk2rY .R鲧r6zպ|޷۪F}&1sP 9ǰ k8GK䡝o(bͶt(ua1φ'x=z8GO dKi?gںyB=`>,uTcp+fT٢^K V-gm0kgآD*9i['Y!7D?qS,]Fhh ]ۑڿ#CR(q:wW yD{DtGwK.{0t+حl<2*% w wwww.ywo3kuOWu]r;㋊~74;vyi$97K. \_ș Kb0Dο VTP/=zknDx(eRhbȯ,׿I)x=7I>?P!7|SW.̙ 4Ĺ^'g7 >,hsаSh;݄7f .c!7|/ 9 XS8Pe<`GҘ3)#ySUwiS}[t|5пcgdumLǦf]*c+7datQ{?1nl_ GvUz|[#NXd:0O * }@AZl= ]Oqj:zgƣ$}wQ^,Llo4&Q„<&NJ1P| 600|x/:;$2|eI0f˰_sϒtZPa%[4pRXK\-ž܏+}Kls +9Jނ|,pefŵT$/j3T SU:U/At"@綌˼%x)0U>Nӻ#h_V/ k8Ps+ciZH 8+{!^$W͐'_na5kgΛg)r`BwBUGz(gjl=ncFLDaZMm0[CKgXSRIb1R=m:YGiu~:s$G6 wwcߚn%ShᑗkmxS]'FϿ{1m}ӴCky UfhrzbB+1Wڅ,a +ٯ%rϙ>*sv9FB7Mm|΄vo ubn!ҁ0HnӎKDsCX<$=Hv6Gf)LbLpl?0rc}w'Y~d9,):Ýp.WWγ-%^Q'VO4`hh4FV; > v|eaB^q1˽ (9t[?.ڭfNLїQCA4E) ũc}B6qe^I9f%u% A8C9~U#htek5d?+x@u,{i%V-A|G/ǞCt**&T W$ G1xPwWB, \斏ͽUݚh-CX(Q xQnII?8Uj۽ >' 4;,gaeYFp=\,Q}}Ȑ0Y"TףLNS}D62B ]< H, ߻| RhQ Ѓ1N "$dm~-񔼬  įw#E\4+ 1"PSm抑I[\KPjUJ_G- s2<^g[vVccv\9wt+c3YŸdZmsv4+ |R)*e+h֓M\g|=}b_v-d.$qk"Ιu ieڇ7A8vuū?@c |(fVHY1o*S zڳqp\&jҎᵏSB I4iF=>Ŝ=O}N=)5u?Iê)TnW+b/oJ d^JZ+6 x0=iUQ0QRHOTOF/)܍cYkH (Ԟ%+n-Gu[htn.<@lb!_biR,gMC|G?ƞpge~OU6U I+u8C.;HX) K};G,L)= sqI;\^㴍6VmZ2,R-r58bkpٌ4rRfK[iwJBo~Jkۧ 67M>L&V[h-8/^>绽՝1'펩Au}^Cﰻ$%:Ad ip35:jcppԕMGt 05 xM#T9[blN`k}l4 $HP/Cj B,^68WV3/,"TR+_mXC{sߝ0cFs+CۚFJPNSwȨHŢvRcmL^c[nO#v$GbZ*쑼!{Z: ?H>kV6kE 5U9BՅ]ddV~$u|Oоhۃ\wL/,gqm y+/Ԓc>ԣ 謾⇈,&+˭$1tV+t 3=O *L$]lNxQAvc-VXEi,w}xOj'+*NΫY+n)X!qMrM^WXSkU\Y=pU֐B[ü䪭 I)x"@;_tHN׊a5!SY/p޵~QR*i)_Li,\ ՕS 񃟄o..TK4''hu=Z*Vj(j?oa?;3n•"mS%JTUf@H6yTMd+!.o?QS֠sؼt{eI#-&z|rrB( \BMt{.48n)"dF>u+(΃~4`{h,Xgs[`LSoƂn! ?WyY%8 R} Kn򺛢\Т[gOJ2sh{څa|[xt=ZO؈!,S9eE_]` f好Kr~IMkǐ^Fz LzΓ5&͜9W ,`*(?PhĻed;!0-su@WI,k|4P{*?udZ m9z 9hɍNU@&NDbiNsmD~uGa[u ё%Uk B~Ӂ^|~!.Wfn}*e!y>_|N.UOЛlm67Җ?@ }PK+=T q<8 Rw7y_ L&;}U_;ܺ|͏ڰ2tLLU1Ԗ{^2;A{{È,LD]q~R @z |љKCKgq\ʫJqk1Af:ĥt7XW}%tqOa2$Kc3s*`DrxF_i[qX;Y`d@כ_ޮEKƺF$;sJ:;}"zlxX#(^%BogنN#&0vs+hl\;vlyopL>Z@KyA)%!c_ʽӶBEkoK/Wni|ʎ:o(Wz=7S9KB< SmGaYt!WxPz;[#[=Pw}^P>*uSAyrXaCָI_`#ZOI1^?"YV4(݉sɝJ'p<$?bJTgsú&:۝#2$0&0`p:Țq`WuxO_!xy B]}˄" (#DN06Y{Du[\yߚ>|*h֬X4r, iH~QDo\Մqv+Ojtrevqo]gMNK&J^g9\%z(xBBrnƤ2~eFgYi&Ҁm"QY WWa=}2_اf(-=/- jC:6PQS-Eavf"?CACբUJ8c|D󚶴kbkrmŹ8rsg\Y7Ħ8V7@B/Hm~lDMM&T{]U2h=3̑0{XŐX2~geJGF@v9n\nL尭?**K |O,*]Uq9lDeaBlGQZ"*߹@¶׶S Չ"O`=pUrVԟ֪u?Z8y;FDU5p1s-yqq1[;aRV+6moǡv|Ǫ%E玫e|)*_KV՘>`?;3v'@_XFZ[M~LKSEuqXJM ) GcU(L# O(ߟDOYyvŔC)(瑇e}9B.:GZ-{6&O8Lu!q&*k*k@+_M3nCWڄv}Bc /3*}bzIKA'OXu]߼פ4&*=ŭ0%q!qy[2btf4GeE3u댬|g.@bS1/^>Уad>c@|-+v$t>keWz$x5 ÔOpsH< VG+VDdN]1)4[/?&nہ{wsks^k%r=]92[v@:ܰ֙Ot_6)? v&DцxF6kF>`\e5mcyt˿wEr L@([ Ѐ=3tpue' _Ü+c @þU>ַ'-R|`4[M0^8uG ʹMz\M!)L=05_]B4Ht_FѶ'{ļh)#&Ρ~40I3Op#S"LPb)84]+>tT"6LPS5&MX0B^znB[׃/;by3K}J쓶o:D62]AfIzo팿k>æg5hp;ܲH8o %Gf iîud;&0(ЕU_88vZҚK*!h.]>X_\ <-2:QE:{|*5RзivkexUjz3?o(Ķg#۔xv@H<(GcVbYI|&`Lǝ0^GŃT+i*ڱ|hĕX?H"\_L&Q}-BGn*ŖXCP1? :=kJZ qSŭdyl.9t;^F5 xJq֯;$q/󎴛TX^++ZKNZMh  BSeqVxZ6/"+]"O܆-%&ݭqAlU>S$.LU?BJ>vTd. =L~N>R xnS!W*6o@eSTcsUv1&x:!qW3[d!LO_"3|7a:`.I֐\ q氿?߆lbhl\ն^dm`՞M#ǸkXBW\hu{\ˊ3fDՂ8̓$tғA۲)g듞6՗^=q{ꒊ椎2%3g 3ot +ݠAj(y _sJ|iFoF;K0j*j`!mU|XI҄}8lj_IuO_HZkKx_{Ձ;-rP@WK%5UF32gʶc](',s#V.M}=BƸXnq*-xsrȩ讍I>v9ź"Z{%k[ԡ450`F9%/dGiu'{@)&jɡ^]CR 紒FA W5r׌i>a-O=ÿk0rrS7 5#Қ3 V-eH9PLᙕ$VkM?v#oLd;^Z!djiE j>mk}@;A=&1TXLIN)wBgmQ{!@^h+•Y |[;z+7!pI8A S1'_%8n%ͰC|雜Dv`.!_ @GdZZI ӆ$RTS}tKq_`r4(5"ca7X j|K-XpDBviՙ-v2{4D]׈'&x"VΜ2o@0p's 0h)p#3Z9e:1Z֊Z2 )^hn>iV+H%a @l=n!eu kkN<:',%-!s-<˟MelK:bnrub4xYI73 !ċ<PpJ'+>2dSƼvj~~ceܙdv|uC 4֢d:U$ZKH@q8^M'ȇF5ѪnͻU.,X^-XpO Pk)I,ϊR߀^O!%+~x;GyЮ1(g[M,K:X%sCfxfIGWT2GޣN+7H⊕ o/>/QP?а4|/tM11 CKϾ[kNvN^\D(@)K[7Pq[u'7:6:)Ez#զmHl̗6:2^ݩ+^Ճ~9i tO?)k^vnvd:2ʤQPx^۵@H.}/5`մ⻛Kp`lמԻ5~a~i^ S;.Eُ:ޟDȀX5[39PzG4w#-aa;?*NKWo>w"7S8@FVx[#eRaN2Kå`vj` lML8{NbjgOnp8 *<+Sjm-G_rǎM-18W1ެ^5 wĽhfo .ljY>YG7ŦwGy#}i jSjD3ga IM-zT=pjq+_;{G( ]jN\Gw;iG 4

 ~oqdT gDYHKܿ~,9p2(~Rl D0S1SKYfST(ad[We;ux7@vf;6& Wiuw(r˧*9y5v_aٖHN3㫒GZc#GҵᅐZ:'Uq '۟()|z.oG=d'ee-|!zJ@]U ퟹ)p \wBF@t@䇉8ne$@*7DToұ$"8˭:Rn'75awk 4~ ق[NZALDf(Sh>lUBwAva3#cW"qٷ++4gUO,٬ v7/ GOĘPCa*<-1QWx evsqZ '`ZM1bb`VOZw\U&GayAHjeo.BZsl^-o6zm# 'Զo"G_ﻚ"o9XNa1 7V'ڋ5/`{qk~duW"9f/{݌$sF夳!Ou{O,r㈣ np9UP4\K+ '|g Xbܜe_ og&3 [Ί>L/u-Zj 9j"`5Zm 9_է]Z+< %CzٷVc[YAtuI[ mNd6Ff~׶ð3F%둳" U~{6 US5 #l{_"uͰ|_k_** zfG.5^ Q N"j9խ` 7&b9iʳ8' *z ?R m{pmoj[-)i9:ۘyº|ˈlbƛx? [u (k<tk $«"ʌtVPӝwMdi'iu~Gڜ͉L`U|a8PYUX #TvC|TPճҮ,TC+UC7f6F65WD sK] k ~:@k{x_[,w2B%vN:o(oS{1[i&{@/ r #}Q4iY2 ixyv˹ .%!dhU 3 NFv7T(/PgĕM_umraHtaˌ=NE pvrk?u͇}{ѠDQM@Z $k͛Ji +{Ңd G488vQ-;G\A2*%!֯<@NeÊ%rZ#g"[{/ds_XL\%Csii V& v}tpG*k~"[mp>Y.uhsnNKgd[tN5x'>ҷ3[W5{E :Ki=r4 ^Xq+|J_3$d|?#tVfr(#ވ_M҄V'>ڵ1}qiq" mm5:3S"Wtr81qGv ֱfw>oU7즼hPp3}LmA~^(.߆s4C:USWu>] r{C>>P6WW&u.)'!$ ,t}<`$-!"a`5!s\Q~밆Һq|YxH\Tn?7!J:+z: 2xӮ -2&F;}A_:j6Et(2F1rnaL \+78pF>$fL}F=9v[Xso.{O/3}KAcJsy|_fit8'7C6F9K8R[FhG0RCQSSc>mؒj9?xi' ^vd~\Yl&UV*xI epP:&?Sѯ2.7|*e԰|U74bOnDq2!Ս6&A)kX&CD`K>TvP*p1̏b65%X)iLpj\Kvu+!jo%ʢy!_SEXUWWP' (ĭ4isΧi΢+ V2f. W6ڬlIB;i>y)iDs*T6+e-4:xֺ/j8#Ë1,8f} WSڍVF-O k+* p.lm62}5ׅ`ZTƤd۽q%[ Dz jlezIc-F`5LyǛRQN6?ݝÖi!fq&I|HGӭb仱bc[cS m僧凪 d?`Nc!J?=P?r;Ȼ7Pf +>ZxUUuSˣ֯MomgҀ!2}c5o}qS46SfreNa٢OA|&ZtjDA3s/|طRkbpG:{ n=M '`}k[pya WGFQhZcfbkD誩=كNݜ=el8Bɻ}xLC'}7,4_'*@Jt-qURbjeyUQya&4gmksTo Ǽ;O ȋq5f"/.sY'AʉX׹aF򮼃{ɬ1Ohcdm*<e)I %^B#ANn:oĢCMp5&Ѽ_%8 \[ҔIWL`N' d"!&k8FкiIOnT|bMgtȏ ޯV:xĤ*oLATc;>Ig:L.8J\>äQ}maf"/0|{ |lm{U/>qȡ@ZeRk2WIFk?Uږk\ʶ7:v.fڿހAsas ™h;R__پI,dڀQ\%oFԟJ@ ˙2U85I,KY' \3\u/\l{ӻd؛K9CG{GMT;tٙv~ZLTJ*%Ai`mϔls9ukLbIe*/YPsJsCrL//+5/ƦI0,FB0*8.rID&;]={YJs$ }?oQq5K&;\x9g5{-u`)M8 ɚaF GAR]O<יۧX#S Y{zGH0A曪ehkjA?X1v1NIv bxLMFg2@V{l'/bRX1uMeMTb?ϬDDKC+63$r>O&MvKT9[>*LxN2R ȍS΍LlTÚQ:*}a3vU@LG-ֶea]]2*x3Q3D{u҉QK̶| rlB|*Yϖ%*5䆥RXTm}DK2b`SnI|\\~D EN 煊Xυpal-TȤ,Pӛ 2%%P)S95rud1f{+[Wּ6]fri+/>1MiH䲿?)B@Eg4vr'Sbq:VwDd]dhMr?Y{To)./gzS[h9.5R +P“ONrBU[bir_ZS{iFGuNxD6FCRgg ˶_M--~^2@e~Ã|CNl+jhP-:NR7Ds/1oNhm5kIYG 3ϟs13i<gcc?axe?5#UNXisg_ 6+@0Cfl֓>PΈSZ".A}P©gmW67jP<&>3ٱh\ ]7p `Zn,P#6~$qv0rx%,&bn\ËD]ix獋`HrN M݂ĶAҰnQ _i]hPւo;֋hZq`kənE2ㅜ5#mQmeT+0GsP;-*}X%Y- b޿Pbd[j|w TF`O(w?}O^Y8='#y}=_Xt4*儘8*}}D:7~0 Oy?W5B))jM;''+2Rq}EO5>@GxLgM-HRp9 pbJT(,j ֛,RlRV_mXrQpuniUϔ㪼g6g)(iA9ZfO{vNsdʵ%jgl[7/jꉞzOϺ=]n>ȳS4"b }^c1k~%aT!yNs6h{"JIz+/8b;cؾ-R% <\<I)ks4D#Q 7gXo]X$Ӊ9V86>^M^Mqc/¾&Y6N^'\c~ N+P<*ݤ9c96)!R 0dR6/[DŽ1~()I~D[\`qUj8Ģaw޼wl:fUhuY@fAC]':1{;=dٳDvϰUY={^Ғ._"eۊ bH6 &WD\汖Ւj‚Y֐JGw<MZ$0Ļ uT?͟onm_.ȳKӤoŏ?927 K[D㱱<iآyq8e?pO[ל;d>$C"Á; j4B3d<<: $x쥫RsϼЯculhkݵQ\|~jrY\)ih\ .61zh:'jPQeG_ut,%.9`3:湎ywYpGkL?B@]>Qt+5XXle/#>|)؀δt'%7>kFetY (J{vY{rc[i_fEֵL\KBcܼ* =xwr_/eMc50h$;)JCz/gr&Ou ^c?[ ^ǣbAdoRz?L(k0D[]dd tu-i G1yXqpU܄sTZ6ѹpڀ S\P3ZfcB}XOO&H@#I€70p%[@nsᣳ REx3x| 9q.m8ߵݍ#+m_/E,/b39q s,$foЀ]Mq& 4A$ 8䵎 `R#(`m}Lٍ-hduvo/ C_n XkV5;؇z|鮂Y*H1/j9Kr)nW-j'6òO3e֟q +doT_߸0Rv- UBB}{?7vy%9Ka}b+>n`e:ߐZťV` eSu)!%8Xw#e38νWH{0)p4f _xzp*7@WZ85ߧ<.`m{ Λ<ql1CvC3^P‭SR:- "XDf=w% [S5@=z+F},E᧥'뛎)Q 0kBq<"Am7MgOrnPESnn8;-m-W*.whݰjV٫owy^0,n#<&DŽ/H[-;0^D+K[3g3tWNMSPc"u%I`qcCgJ<Ø}DKs+n"ZQא&^$=ї""aG&3~?zL.jN{ ˧'G(ekb9pՕ`ৣW :pg >]MbEmIlF0[iI7mT-nOORd[c3#üinjGA9gu: r7)hϛM$%_*ˈv&U ѱg7m5h>x,l?hsʦT-?4Zrv0溞|zf_6xP庰63U󦽚`dpx^ U.`)o7l{7ǹz>2?sU)I?Wr?sDgk5}X)ᙋk#-Q)]̉F3ݝ٪PcG\)e4 ^o!t dwbochBZwHɲ놾|wkBZ>*| iUZO1Cc#hoQ ^2B.ZT]:|<.DByI侌듃9xSUsJ]0]C!ҿOԑ '/$0|*%_9TˡZ-M0ɼ7Rٽ 6ۏ!K.؃xBEbc$2NC:$1yoZ%dW =&>$;f{ D'2YUO+qFe酢]ˇmqnKo6OLmGlQz+mS S%MG  9b^kدHU{:|(K.s-V FQ'n̓׊{P" O՚&[\~9ٙЇynB"4S?S D3sPsp|ʃaزq=VyE[-JDK<~ ؤI21}DoȚ-itJIY+WXΉ9p 3R.vRr%CVc;4W`GW;aڷ~ZǓ v#ok:]i4N;(O9mZVs1f<v-G{T$ل?̿M#wG .Ôg#uS{jվRsYUS(䷜ ˣQ$q0 ym+s{D T  >_xBH=<6Ѹw0cs Tlһ5 ,:P*kJ Po.縨؂4S@ GzK$ѳӳEF2茱kL8_@xZ1J/,x{s)mX%XbW[w;Xh6"`:euD͒R !X2 %ˇ l/lMͯV%@y" f'8Ywh &4bhwr<=LII@7IZ7:8VEuD _+PQŹ?._K`WQeG(#=4+ D(򇕖51ƴlfQG!JpQ1 d0? ئU)hѩ1OeYATQ-yh Dpۇ1>.&I^_8><\ _vf汅^YjOLߖo~vČǐihO](SzYZA;tM lLllm֤OV9 C䶨(FwH#xZ@t2 !p-Aʐ+~ept~Ɋt$|<d5:(1 תQ-7mC-eH& B"V*;bxɉ-xEC cF1⧊v5bH >  *B$3 ݇l!xByKRPlF]9](F**Lʒ'C> MƻSʟLՕ@Mmnl֪V)k$__/]Zν[,]Pغ_Fr7ij . 3KC" +ț+ۜȓ.Duy3 L'm+. Du(J^[WIvP&cԊ`-_>]tRQޯdxAgN@+ Q?d[[&3Nt>ӚdZxc;<7kUw/S?p 6Ig>i+_#+T?8gMf F=!u;f)L`#M ҵZŜKf>S* $ Oe+X+z{ KdW{A;V| xb{vz6mEq/s@X$nws}zX?R$`X^Xb qHU|@*'DlNEUde ^a.GLSkfQ$\6K(VƉvY8_CH٢Rmֻ[T'C`IoYR"?})^)^GEH})8֛o6QFO|= Om\J,^<NڜOa>|޶xK^ {31Fn>~ WBfgڎݮg]% oY)!\R  KmU FVvHYsrNJyl_OiG|^?VH߫lT{V/VNOwk [fkek!D p@}[6Q3=)*NKti{D)z[ O=f+UC̉)@K^C)$TԀzX##-K LF `l(f8D0D { I{ւO:ǍdB[l)`؊u e7&4BX3C$5.^yl⭐.oiQyU iE ?# Fr(nfR#y1lNڶiPR!ejG5} hK AX#{M5vwg۸۱$W癿O-~(#-f0{TPw zcd'0GZ#U4b`9O0d|Ѯm;cVks=Z'>JVI(7R1~^jK_=F,vRcB&S-.=K[w&zm⸐fM]--,d ?cII;ќZB$6E?u!Ǽ4 J L}$%[6} 2;B[u݈/FM䥶\Q/8Qj~Lw7344&c3ztsѭ}+˿rLL}Qol>?m,Dt} n|XJ J$]ybP~PZq/vUgRAxA߈t z^ D.R#ZF}bҘ?4E7rmk[?x~߸v,ltR1VU՚òi<G:UYaIIWM g ɠacs‘#)O\N⪬c);[7{1K:N (T{J)2}+{8+4NU+8΅L~f0ދ)ha+2Ĥԇf~ @Ҹ^f>EGGB##!i뽂YZc3陦FEEuyr{TֲzX.0 nd4.&JFl{аznPM[sY[NJjC:Epq{:<Ǹ^ y[ 2O}jk~R07ڔ!,"QK?lH!|6#%@ulo귗aE& mC9gE| ha2";eʂc_ĵY0u+B.cpS@݌#k|ro,T)G0 ,..Uef ?~$x~R$憞Ĥ9*Ez#k îT9l,bhtOۜ̈́+V%⤩k}בYp㸓:&&y) 8Mp{mqO*N:[嚰sy w[r%پ/q8ԟPFUzO%uYl.q>+^*0 :.-oGt ,HZ@w08_RT ,&RBzHǛp/@+(($`S4VhN52h}uH[^[%͜zN+ҩLY{GRdSqLcm78,xGӉ_ÓNHEǤ閼ӜO>%ʤ#GZ>ŨyGKg~?2Y#!h!C < P>\5jk֚|sţ֩ZWS+f,PH$v8uҎffq4/|۲&w`'?M @yd1:#B"3Hq9Sρ2}$CM0-_0tc\2'km`'u޻dQ5zWzdȿ9 5mչͧi$߲wH$/3k ~x׺Q.mxlL /HT;{Q<P+OTa OxNSS@D7 R:~;Ulq g@MY,cRu[㚐 YfE3" Ok~jYUspj7rS 00p]}E mŨǂ(nutir-s Tʠ^D@PM$C|qġْ٘ĦRxP`d 43%hˠC L4$E7Um_L}lU!Ip5o(D(ߒIm`cW{~kZVG,=ir r>ДhlLd7mr/mȨ9O,V"ZmJΗT-."lnNg,,sBX葰j]*Ll斶*'G܇/;bIHM X]xBE#d[=2¯Zaac\Spa8~-:_;*<FrVϓ$ bhϯz]Ïګ> jx\CX-|wnkKdE4]֍k-;֍v91x:?_@5zu'H_\ TL3Iϳ.s?Po3*ۍRnm$2暛SN F喕9*k*x.@:,p[;Z>b)J+^GT T+vSyM1z|o'̞QW-Iu@  `X0O3^m^&Y毘dAq=Ç邀gju CLzb]H:N֑\&W٩`N5[[;}t&rn668ka*eϗ krZ*D -FԢ7__j0͵ ;jY'E J@nGQ=q?pd=oeo"+-ȀA'P&Wq%:9&%8$ 7 ;X/Szl򷚃y1 /{ 6y Vׅ0{@Ze6F{^Nj55cNGv5b7c젢} МCu_kO.%ꮵh\2GON1+@2Bm`D&G9ʎz'ؗ)u0N'(B *ȵq~ [Hf(it9ٝjҼ[^ill}n6%'<^ӷ $lWkǶvY-,K]0X.ho%%>xRrŝ/Sux*>h}3sYvGPe"9{p$`WIE0@jnAR( $)Ktݧ.3 <:w+X{m*!Hac 4Idεڦ mSWC%5琸fM?Wy4UM8Q'[1X[.] ew^:Gif TȐ`86i 95^޿mV2/Q}=g#v1i^b?+-+h~mj`3reu;*LfY3ćRdHz Z[`\ mUsn}P^R8jb|>x` pZTZ,a5H*UKp>*M랹h~%N{IӞߥygdZ3X0̆1JC7( Ц DS,уNe.Y7[Ҟd9)æ3xg{66_0O*œ2cmd4t,9Z=X6 s% ȓV_ן+n겵cĿ19C#:B)J[!wЩyctQ=ͺ+p'P̺dy{뛄BVߛIzm拷Mdt~j_YS\*m"(g8\v6(Boɐ' ՚+Nίq%BS-iFc MLn顃?ȹW<&Tyoe.%x|aNGox#}偨1:x8CmSel]i"V.[Q<wCl$֙"@I6Ӻ>Gޠ#|ѻۜ~lFcZ)Rrã܇R?F:ڮLo EsU̬*@Ec<$"/q*`[а_1FI|BY @5t 2r@+S? ]aF99>LR:do *,n1aE>jddyЖZb|rYR"^wGuh@t+X5Ih{ۺjW-'J((_CB5,ȲQą/!4AR+/#j`i{i)bgUͤLadXYd ĕR~sɲ!:y>mphcjijO킃#0.P<Ѩ˒W+;c-ZQosKE No=0 &?}@xfAԛ|;SaC/X:8 ^‚;zVbN¼Y=Qa+z͒|>Wwm_QҜ-m**rݙX vs2|H <{- SR !#[mui*3/.k6o%\宔%*R&!J&e,IrBlRU"uWXQYI'e *08V H< T;+\IU i4 ^Ir {6^aD劆#Kےoj 8f\ɽ߲{+WfQ+;%꭮iݛ8Г٥ Hk(Y Öx.C&Yv谢+ap4gJJzn87d{=e5$n"Ȅ:SrY:"r@<$г$ .fɳQpLYШ-NtgZ3R@z3U <]>1UsLVӕf.8MtX,-yζ/~H(]5.^+L,FF:LHPq71bIY3r~i  %49&,aՎe{i/51(DZ%JUFrZ`J!/A3_c hE>oJ<ԍ1vr^f_?'FTM-c~KRa,oĤ:'[?inY5ܝvP(M*^`ƻV!s-94S#d< hى_&v~ԟ"lVD]]k$_-KeѬ˳ MTRp=b gJ6*QHR9I"cwzBPe)C:hٴ@+H9zgRmI9nnfXL8a?߾`{Z6U4+F[hQ邀gO"IM\flR8^<pKڰj2>@(j%<N4ÏPPşf*=0ouVx%uBuzQz5qtn|`hEpe_U1ݹ!( ՒS;~ٶ+'\^G5Ա9!K盙w䣒/.%+_A`GI.L;;D"&Ķsc4A`yݏQj3y4~#rko1A {k "gzyDK5?[{.>Na5"gtX?R84] dN24n:-fvc5Ͼnnv >˨ hFr$b'He^ar^7*SNG$mN]k)|%:{? sW&+uu8ؚ%_meaƮĞ^}r5KEr;Ce)d]Uny*OS9m"hQ鄯j,|KbH3uTרK ~mf'ran t\R7eUkMc&ZVYmWH gf%W93Oy8 ol|s%A5.]*oF́M q $[9f_ N" TI.I{g]~tt(Sgg8TiET?Q4ǿb6ႭT.*+he-JPy>%)sD"Ͷۣ\?*_MM9"W!J=#Ce)0YkEn\yyܺn#ŒD;Q%u:n7oeu{Ҧˤd'1t+B*7Ê)h& a>f6G~{xZ?%m<$Z[4?#"j)͙ln"n|09Z4?3 \p'('r/p341Ega-v!,)| @P~:}:k)N/REZ~-K6[o&#gQܩPwEDs hG?XQIs;ή2;ͫ8A5RAs3boO򇌴%ԇ+b!*)=r,m!OUԿhMoW xty8' R9Zn׳P..%oŇc:+ҙ}u >Eվr׿+܍ 04W-F *]S_6C6j>.Rc}pXa*/ x\f%M^[M}'G>g?5@꩚*U"`Ww JwDt7oIIlƘ+۵SI3|'X.iOk 3ԃD?_>wlуFiPZ&|\ZXNQS28N,3RSZkXRC_###[d`)X48(>}kZYEП~9=Ė Pwy~O金+M ªFj,fޯ v>$]1pE~T.*rݥ E5v<11>^i,]*91Ĺ+S9@#)Ɍ% v.9!``L>H߮;tkS_q~7?,1`MͧNUŁl-맵N6;DɛYmRӶ{ hDdc20Y6>cvCӓ W?M%\\M i9_`aum3?*`27Vڋ,DqǏ!jջ45kWR8i*lntu E4YQ}[HdV*xK*멠b-YQ*Q[S235]h&bMŖxV?'[z|E,UͼGnCurS*yjFX|aX(DDv2N)({$ l;X$* Ց#sA /U 3GP7ƭ Aga0 tE;Jʹ&zV뜪{T ϟ+cVc/M6pUp,m#/"5ϖ:Â>yqyU Ӵ Z|NON5c/. d=GńVg<@,9)i`?;PXjw+Z ԵeY5YȘ~Ϳ1\Ӏx:7P|E x0hL/yDȠx,aG"55usb$ s23d1C1ਰη9or "a^Xbm Ekcڕ,^$$vteդʳ59<7U{z[f^Mr}@1cG2uiI o+H9f%U/cWZTǙ(ku*)V0>vY~{xt)`6X7 7}mg<j|w'8T_۳x7mj"q88(b8_enkH,}:ExjWkM'%;~wvNhm,;;@vhR|yaOciIv-8Uak15))-=]UZ&JD1( _PTQ7n_$Ya1(̫;?REa7B1ڽ!]GemVE Eו79 ,NGJ Gdž|NI@L$ LՊtNBnLx}+;-[_/iYh֔ "dȌc~[Nl))&4t*̌X6 +<)x\5 $%bD MR|J&355W[i,U]jmw S\!Ԋ1.A^.9wG0{꘱qlf"̛c;HN*o\4oT6dգ)LmO^SՇ.M»2l2SqkC|cѲ,<d}S'Bq5cu,-9j$zr5;(?oc0[m3kVRu= |î&r.s[ھn"c9?6%L<5;п |yTu@$U&w{ ݨwiv%ݕډ:15G =lH 8,O*8ӏ[HJF[t-)`FZ[$?!%6j&$}Z h^ T: $ݾLz*꾒a~M<.FPvA$>}}us&aYNB(JLX- ^107^jmvzC^m(pim=hJꨀPQe?Ht)9|sϞڋc|OS}~S˟2,I݊^R?X—Q;fE<鋭'kE:eymOΩOg!b//|Ԗ.p-\eM!qPjF#{fq>Og=v_m%ϸmf)K5s!?rdV98?Nxwh}lÚSӫuLKj.>4;&-龴([>rXn^Z?t Tض+BzґDP!ƬAdc;Ķ'7'nաX%hA8!*򘘕V%MVT[qfՔ=e];M! *;Eq:{ <+%LC&'~p=2Df-4ڬ Fڟx_W{I]1 Gua9-:yWߑ~"x&.@=+Qt'P'TtiߥAqR_i4δ [yr፥yݑ{O.W׎/ĸpq{#?qz#'<=W붿]l6 @}`bn2(z%Q\_2G>krް}^^ D@qKΑLһW61s5Q  qh0PI6K~{[0t*NM-QkSqG\il+#;ṃ[s<Nwo*MƮsifY-9zN Ł[B.t %Oװ9;/ڭʛ慝bEkA)f>"&}hGr@I8\_Qc5UP;M'a'mrHw k.&%T)PXٖɩN{G>ǝ~#6Ӎ+X?٢6l j{1R瓕{]}qzr^oK[HN/F$* Eڶ JfttE+\w RzX*7T.t!+uB Z:Eڗ^)h.T#@Tנ 8hɧo,I&-\-NaCZj8 a.9s!*^hVow!25x̓Mqy.>FqgG)t"CxW}1M1ݻ|i e6GSP2VȌAjANTߢ F(tΪW#}/ R)Uf%bpPK$#z)sᡒtKcVQVBL\ea.Qcr9t=Clؿ B=?^5'aO󉑿9k4BۦVwލKHv~C$n`TK.KrqdNIobm!l:}˼21p5֋xoO0z*z1UH밇ޚv 9CBj@cZ) GG2M;5J2۳,^2.42+>)zd#j=(4* [HK}2OK@sjg//~W.Iӌm#vBtkw|9`e5`6wa@tAw9ʞskWALTll_i3nCYR-bA?#YQNYV6OJ"Fנߦjn\=ȐW!k1dtXO 9>?@آ' o6Ni6/XP!{kjZkyy wGtwn'^K>>6*5 tg ;2ŭZWh{hbpbzCc7vy3 0XѬ,iŃ=Z<;|1`x8s K d_fg Clz;>n.kл就 ڛe`ΘYFπ#lqK!jK ̯:ԧ-οxvuҍ|84K0"%%j$K,]TTҙX<Q970e0i#'o{.ts3ήfI=q/גm8fV'N G~ޚ;犫`X<4kgu$Q )Mf:B VriJc$/T lm}i~>~oQW$ QrF7vyb|6 pk91lDNT4x 8_-G.Uc%"LĆHzg vyM8WY-7] {RO®9|bPF b239l XƁ̭g/aLs\I)pBw[-Wjzf:p}" \!'/;CrIj4(R5CJӖkYt ~83<ؿH]Ǣ>45=|σAD}S:ܣg mѼd>Fܴ&*Z8uyGQYjx:.A/o?THLHy1i 3\x-/. L̓M.P(u2K^%gMB '0aێCHr/`M0kQ>[W؟:P pbGL Xz ZtL\\rCB."Ϳ0 PAAAaA.%S0Zg €V{Ko;|}(sG+<rLq{>Up [' =iLV9G a8S{z4(]j.| 2)>ICbnM|ھ_AqnMѰr=]t:Dy~ /(3FH51 H82PQkc:Ϭ3Sݥ@-h((l7\%&~ Έde0@9De]8p6Œ%tHٜ7vC@Y^4TʓwAcN݇l1}Z{E:PV SYNG Iv"W`?攺kǣ6~h$Y%ѯSIlq_2pl#l!w=r :Cp8eK}Ka˽7 ~ f=]ʡ9iYh,m_ps[>AUо>i$/[ }%B l] 3jAX,k>65z=ARN+i_e>Ju$Ă.=Zܜߋ/V3aOτ9/cfW1TcFOֳk[X.?Y4-4j@_~}V9ht8_oβ>7yLqՆ.ƙy Bp(^Ν"GQ{l9<q| -mE|z)k@)=lm*x#ª_@o35"4nzZ*(xJ ʈ4-(޿|]d5cYfg6@B7i'VAg @xB}~(-J!vyCIjX]_J+`fGb+7Xhz` CK']lܢC5lPJ+aeƫy\̇(&xSV%U < K'{s3nflMm[6ۦo )S<1~o{\Vd0'q_7m VI4\j=1$G:eDɞDbSuIܘ; ѿYi!N2H?J9s"f)C ;,GYW"saiwP\ai#kOF95t/I78'BMq~^r]Vo-~'P/Ȇ:[8ߪhRUQPG#a]"G@h}rfT2CdPVOaG:eўW_=)ז.qߛh׻X!-VֺtXΏsEjBh /|3#xt&KutHή毫QgTdN E ];o_D tHN/TɓX&f}̂KhMx2HЦjؚovĢas%]پLE4w?yަO(fҶ> 9Gȕ xL{q _صw瑓2է}jup5S4&n%|hi$7&Ufڏ3yΗ<E0>ǻxY G' +,p,J?\%LX~{,؈>%}q1B}~TrodTo Ol&!DojG@"~#DtmMb9T) Se"|# 5Բy6bf4dxߴZv(gdk|E6~ЎKq%O,Ɣ5J":/.|Q4aY'H 0=q߸\|Alz< s?s0 a < lVjQj1L6 . Ω|{(v 6ڴ;]Gc O3K}c`3x"kTyI{ |NK/m;RAk3 8.˜0[cJ!=s1pa}72Z Z ׵0Mzȹ?h0ZywVn>)9p1eZ `gM%u w`cnNG'7SɵY~ih~GD9-pFMD{ֈYpe.%B#n+L3QgLQt?OX=}'wEKOo8t?ԶUX(h!lvDRp@B޼xi;Kx< CH?f˒ޕ;إb""f9kI]E4+!)걎 VfK1~7u&F] fvl{b~x5MBSJe\b3DaN-kOŦG&i};6 KCj9WEُpjX$%]sVܧv|jk)வ]6'S,7rgAYa?R%朊K/q:䪼FtxM~i5谲.D{NB ^kxm׶kxk),& UƔ"A. j3+.EV~Ee ebv z8n-|2_([  Pzֿ!px7~5F`]J?T?,\.k?.p7)6O9]Kv'6B$ ?K[qѥuC }碧qԚ&/9U >pf5ʣv>uNEXPN4\F:ANϑP|PT5QgMw"E8tRF +^nI!7^.4e:ڭ&rsem,/JL>v 1ٯ ׋gxj6|K8{}Evj&H 9c׺aw\qlxgcCBECOANAGyDx.F%^J0]3梻Ŀ Ov=,;]ϗd6Bj{F ,C~X1d6V2,] !84N{pF݂[py޽>gwի)Uc̱&2w*(,+ k\" 0[ǯ 5i >A*!I{ ĭ2ێ)thcLk,wFaJ L]⠣J3 knEF =5䴇wFB $UX*"*IDq7% z15K6ި\)^ C`ipKm BZtiO^y2l<)h3L5򜿲xVzy8ϱ=OZґXmo:*2?\g-a `haXw!w=68Q|Ɵh^T=C XmtUn 1`3 f஀I88ьӅ&RF^%O*ei&q+9οu{.0S4ى2µAZ;~vh)YJ\ꂗPq#FTi6mkM̭l/n%?^KaPesdf62C"J\m. oI("VgW}+Ӝs3ͤBIl"U}{_l1w(#Kw1&'uuW3ʭϭQnL@Y2Pփ k|)Wiʒa|}h/|[Uxތ"sү)X8a/ӗ˙[F. FjMede 3S?'M [~ħ#ŶbU(RܭŧAZ`JP̋E+~ok th%s"`zx%0t7x` Xv3Q>2K_6C+l,iaN*ًj᧗YK%_E7y!ױt /h!ީTO65c(KFi5ChT}4L`}lCTW_6Aj`kO/Y?\z3ȵ<t$\,\l)͛iءՑqq}<(gp阐\7ljzx(9Jg'{j -?#QDm.ϳ&N [B Pl|!bbl3fMwI,wq} 00p1V?EK6h$~ה6 jhH@QE~K$og;@ww%Ƴ>BՂU6H_yoK}^1RdR)_n2ce}@#|zf(W`zmhAaMWxl5/ڜ&Y' ӑ$tS+MkiaLfX yM&H :_iZ39DX"H5w* Ѻ+κϦԌ\ {2h>㭨&o ]5\FIcRvXw M> ~m{w3ն(gz;~ÆΎ0T9/_n#Tټ&s.ȕ @e}mvF> 1N[ D*eeĕ3JeƢ]lTd~CDOw1 Ҷ=x!~C2?.jvD|<5̬lm?&4Nҽ)M6¼?CMtX4lU=0Ɠ#Ǔ`N=9ݟ-r{vZo.TҟZJKx ^vn$oI/Q́8판b]WH$_hwzQFFQQ'7E׸5f`'Dd'q_ EԐO|6w+4+2IrR+_wnjSqd4_l5o'_}dl V+?iDL-TZCgI2R{9A2nZd%JsAqc˿rCP9ߺuJn{qTZަ?W_4yLaU5vV{Ѷ>7U,\йoHqXjr=m^ʧt`~8[]Gnn_Q-8SEȼ[_񭰯mq6Ӛl?c8J.^zZ~B!ˆ1kkg6A> rW݄u/ە/U?$>%h,?SX@j\dSlu?3Hm]y ɣ:'KynPth@6H s@TsL ŋ)muN/*ĉOIT)lJ#iWK \oA*C^A<} #w*fkZH+q zϮHEAT& }Ha4k>ˆ(;嚩V[ECbѾde*b1%Kn~Yy6yum q݊&0Rw%E½lbw&*Wm}>W6h/;(IWQsb29jvQɇf-A?3"A4[zߜ*J RjWZ KQd*;wH83joC(.U:Y$'ЃŐ ۦ{ZanSnih(T+ Χ-7T&{ig)nw~o !0z;~@D)o)dOfZ ?bNq3WO.w#g "{Ry!LjaTEV=9 ~w (O3n,MHһ`Eg26'݊$ef6f^ 6H- +w FtoiMd|@O00ʆ&Cٻq7SYz-{G!Td'76{*WzS氈+Hmb 1izh*n}PDW@8 ¿P*޳4+9X_5+PN8NהD{[oy m<B W@WS&e*o"jBoԚq;o-?iӳ\``Yr:Boglx>'؅nΈ0y~*5oOn7\KekHh~`P?CM4ɂG.C\'o&n˪F &q52]Guؓ q8꺀׿$ o+tw%Y0eMD(0Ӥx/; DZ1–X,F儤6Z+-<(@5}3QVJuĀ+|SԎ;f>ʧɔV5F@2iAN4 ҵtƬc $," UKkC)q'dSz 2ͯq% {',C*co! HJSX`UNZd =ŋYՈWؑXE\:'Hk-0H0W';ǧ >!AcC ۳֋C(MWVF^,zw)kPq_"[WuP׈Vvnr7eI+ZA%M%>(Ȇ8z0xg"m8¡sQN[9=3vVf_aY*񌊈AM$vVir:?n̳bld!HwK']j1h`0'Yp/̓m$ ufOOĆQ ref\%|;9CnAU{0Bz,?wW\z7CVV۠a"W4LT@"uf!#TtӒ p,od}C BPKhn ɘdhUp`/U- z?~9S',0P%mj$-Zw[wJ4whS7eOת@p P-)0fCycc|'GJVSL' kEJ62b+|lux/%sQ[x }RLFc"=JFSxG4w.l(Gџ'\Zlw tuneN,F'Zp`do6C }XkmmK6iAAe+IAfe}5gqO*9}Ĭ+#1sx(PBniF57/ u1?pU7]-g'S8ܗ#,D,|Wl H91~Cd;|K/x B *iHR?Q B+#XZJ;Dc8m}친bz'DN2y3=1J*Ws wVjuTZaSXشTD_5}8,"C* K"snA0D} y$%5fP{FfV-#4f l#JO҆nW vEi\Fw٩7Cj+Zb diX-sk?̾. ]rms%׾,Q2ӟu0)B͜Yaa^Il:Ϗ=%dg u5纏2J^.>zg/熷ߪcZ$1㿵=kw1]Z4 W! /!o72U3lc1==<E'1ًe3]!"r8w-Z0|&~z"IQ׭PʁC$o;L1(G}}=a❇Gc3E:X+MLeQ nXgpD:;>EV{j#;ήUU<"A%8cPоv~k2?PH F-lu*+ V鄁I ͉tE\=j0-\ c;NCVF'"T]Vڪԫ3<%@މe1[~Yc.JasvNL|ԝBhԺVNo)9m-6,^b0afya <E揩:'"yЎ0VsY]DL@n wͽ~Ea?.ɧؑ+UyikkPZNX_8JʍHN+\ޓ.ia!Cmd̯ZKV_D?_:OzGYzJ/nvUYXW$EA- 84; Luai.n y[Ɵ{7ۂ-lr^5$:!H7.|z]?ݮ|4ǪQ".xU%~I}iXP?H#a )ag|կNm -<;C1H.aϻ,Ap5)͕tq8QmM!WL?>+gw}ddl~orų/2ͿK[\60i`Onz;Ds~xo@t,?}0Wh|/^˱%Cywn) vtQtyoJ^'H.j49i ~-w?kO3I@bhMSr)cKK uhEf8@8U%lڀUN><Ĭ%ckHz[gQ/$Gt3 EI8g.~ӺDԯ{@Zrˏ*Ov,ksVVFy1Hm  RXcuEy?T] P./- z1r?,i7꼬MCY.3]gGyU.O&LNjǣSlDX5#Yhb7"‰/!2j];D{ xU5l<)Ƈc#öpb6B= <{F{FהȰg \cT<L|*e@-e_Sȹvt:ɏ~{szZ}._\qԦz$|pvvMAb-f?M"]PZ ^ٙ't/rsN~Zp2%n1ˮIP A1qP2Ƣܫ1'\Tb1/ /J#rژR 'tɗ_B:fÞ _%?z ˓^aSR0-Ŝ%{]YWM)E)Ț jrSVVp%0`(FKx !,[oCB`j(ߨ a#C?,ua & 52_cÂ. 6wjQ8|NzU/+*v^afwonU|v"Z,D],䫧 k32E 0qa} oϖO:`O6[N5I+*%{;#~U1ə{FO %Y³w&Y r~K@e׫)Hɴ$&gr)ߋ< ]01a/a+ĻkD*7Z N>=Yd' g6|zv窒eФ|}R'}rPtzj CEm(bylj%Ǻ%iM԰yu^W2AI\Q?& ½ة$bBliK9ZW"9J3KhJvdX6za4,$~gj$KF0\ߍJjɯ n6̆J[CFȋoGPEĹ^KϡjT7QŵO,P+0y8I/%SGéWme:sklq!F1ecG!R*)BAˆ^Q2KHs`L#DTs\z/>RfOA33K=:II>&_I2QS9ssnt۹{+vH|4F-Ä$c=p6mAj5EM 6a3_DK06LZlYnb:>N 9*H䟡nT㟖J)?ktȢl}2v%)E s8%O!ron|Ukgy{j.d^lE(4<~$\~Z 7ށnlt|.(^_Y[[IZ>}$1_iR\3C"E Dy_𳸄MXĬw;ZM`X.'DD@SB:md:WHL'n^f7C jK3;656pB18s(?ԣ-2ࡁeiEx`]Ptn/odb˽t_KޱGwUM)6I'7Z}EW ?+eTv-a:1.^zrf5V8oD Y,ѷ\~v^71et] -f ~4Tr}]Itoڐ|Gu3>uג?(r)Uhy%D8ԇQh5-jNo,QpOsBjΗq4 ~J_ ֕+DH)) n]AkL?aG*SU9|Xzsw7ʳU+3x{A>Y }1!${kKcDySIS-/Lsͷr;q~ )N~o`$gӐ}";?{I@KP{Qj2X#tYlbB܏7XܿgB Cԑ|4*Hq}zǴ7PI΅=~,4\ʂ gq zF~4$j)(%9߅XȷpF^jn.=,b5O3JVI>O7Umdd̏ Z6P\r,Ǜ14ZO9@c)׊˭Q[.dܘ Fro7*A#˚8{(4u'RV?5F`^* OȑPx`rx8ʿ94L$_@e_Ixs. <7g) S 2m14N?`Xy{NZY%0Q?$I۔TZ2RpC_c~P=r!n\l k#,>t?P_^ hY?I(FS'\9.  #/(?Φ-̺Mʛ&5ƦW~ԊOEF_&xC04sT*_Iq)}|S6 v}!U @/ay&V;#b6qtǢ@\|EJ8[$#'*R G,ou.BCӳMy?()ޭDHu,IB}Zz']i4=Ԓ2SO#*.{p[SK$!,D1‘!¸}5R5˔)Ոpu} S‰>mM(u;8=s;߾խ4;1 W~H4ZZxO ,f&iɊJD J&z:鄋}WѠb7ţR~?qmF*ST V5x#wqOQWW[luY:g<690"53f?D6 ~ΊJ  l尋 :45f-i+C&,Љ=W`֙S(&j\ [ ߚQhiX[HVppsO5cy`%>ƅ$L"+/@?mêLP QNݼ9fh8dτd%`مfq "BJ))pvi;ZW߉]VZX28k&6/.4k9t==+|,qi|C>\C}f+/{$2#cbLaϼ-XZwHCu9^QOj~j486@j/t7r9׎}ZLå8lm-)<͡"N+d-7Ar6rrFRm-B7H\Rp>4c 1i0T*c-gLMMY9-B>g`+67WmeA(UWz`Xz(n8(|U7y=nVdL}Wdh5nDc>l "zI&.DBpckLO1wbO wk̆Z&Ap #2#)A*FN#OF(> 0DZ  I5Ic'8iuZO3 NtSİ}6]>2S%[IFJQFԻz ˈk |/aRAGBA\\z Zώbytcm&1, PBQ8pdg@;-nfSzA |܁)DԞ;o,Kpj03O'3OGIi Uӕ`량bXbҰh h. ]:iVxt ^&I)dg1 vd " x8 /x"s'̟׆D mKԗY-D&Z[@fz=ZAn\"i "X5e,bL09pił*vZ"E>(V|g,1XjG:-*40RJ\pޫZ܈6,$eqbi(Z%9[oyy1. T0gܯ>kCOBK)UD/ݴ!;fd/Đ[;&FXZjLah2o8lhsAխu+9DɆ..(!~?*ϭQbMNY%*xa숵ͩ@0 'l~-Ȃ3Ցk\$bmK0-e34c]:@{pY1=+ s_g<+s޿|CBmwOFz &S}өg&C$ߍR֚cPj'|;є#G`{q52Ƈ I*}XްUe$\jKfl\cO6zҢtoXʔP=eIJ7D7y+|tvLkϙ3Pi|ӊ>E&K;5|Mմ#^##*u,YgiB3}m"cdR{dF8^0F٩F k,{TѤI:0=?Ba4G`Њ2.F/,'FGɴ8_\qYWxpWfXSY觯ukB}gX8&? 50,i[=UGϯ[bT2t) 6k4 G>dt_q63SL2hDffܰ?RA7…zsts[8CҝSJ/Um?Xdqg9ԙ,еp |`.t(]J Er!d>|%0,N*T ,c-C1QJ+LF)(W7M}u6ƳD9q/GRCrt{Ө޹%_:'%&-zrO,dIVKj*|`顥=ǣ5+n:HKrsв2]8LZ6oHG׬=ƹtʥHҼR}Oۚ|rU:sMaf5p&O!Wg~?,(Q3:ewtytؤaSid|49\:V݁ EvF^(b7cQ^.m+dp^}KiD{Ƚ=~7T_u[w_ܜ] X/n׾Cp߲+_[Aх6t2mOTUT Y/@*DM9q DGK=^TY‹Cd]O}AId"pڛ 'DcQcj#(-'v 8HoF 2upHQ Yc9b&A5N2K<)ZYݮM\jL\''vA.hx^~horh@ -t9֋Y(1qZ@Wx`Y?&QU?˲lW5'~pTe F'[<>uRԭM Le˓$j6D=%:ri}e<|]%H`ge v(ݣ*Md4ӁYX l-@6㝪O Csgv]*HA***<<<;;;:ŋ 7_DPKa޴:nད"̂6c5EITrW1/f/O8AQr[ \yc6ki>p@ɛ(_TyK%2aU\p KqSg W=]}qKHA P==;W>;њ˫ԒRtǂHm,4cɓQZ@%aeeamD|*1ͼ&XjdcM,Rs@BUWt6lV͌` 3XEC!fbdg"D#T@0i@徫GI ͩ`!h*Td\zA2nxꣃ +* B孻d^^ިsѯ1CCCo y.墄V qQW UToapjpF~Rz1 Ē&9۵{]aE+Ƴ Wk{[ɦqc&l j^ J2d/v{#=b_HB2@ g+LJPG3P:3*t˧oD[YUq9mi(pWU\TCA&XT P\vUlDV« =P7{cY טt7[y&0XTL?҃CGfȑ7xuPuҴ蜯Ǿ/lxM0."ЊY9ޑa e$:ozVT>u!4۳8hG~%nSX.U:SM}~]6cyt|)uf\81sr.1~4vi&I!r@,1չnA06%ee^+?!;%&: ެRpgckAHElܼjB_\b'wnabOmj4(D2 @D2@݊ P%iCӤJWqjF*Z X M䓤!u$(2WH֫xmzҔū XF,.Q- VfBԀz#U*oM>2pX'ޕݩ '?:nAZ1<!(^?'ѓ{|Wt(I[,ƓK>ί{#(#1L5'TmblG1i6b)`xdp 2x?t٬5p9p0ez)gV3k,Ww$@˙|{>%FVV`6]격:v/Q,SB^AV&?cL Wָ=̦iQ~>]2^6VwyiG.BlI ylzߡd3˛1D7r[^!I>}2*%shHJ7Gx2T֗}0%ߝ!v33 V ۴f 9R6]s^4b^ƙFՐxzM2:M&mc{3~RҐmÜȌAi"=%~,W, "Yzk]@Yc!~Oԯ&U/9^ۮi-BI˜xZr3dmVS)!o/ .8LJ¸(hW0{խ =]_bRC‰SW ZN:d vK<ݒT6aN.ގXҠhG/  )ܮy:&b=Xp7<`CHG-j12=bxYϜyMk+͢:ˎm ۿ%a 焾|NB, t֏g AS?erZ|Ak lW3) Q)vh饀r< j\|d߸W&Z+ō:_{4&r\, 恢lY.}Sz 6*`ihpz擁R  @f}tE*Hs< ] E(XXI8(^;ܰb#?zZ>uϺy1e5=W_-l9H3죛ƚ}:#y_o˘ FO[km7>ޒh}ۢ2X^Up?1hI $#bUg%'\Lxes雵 7^ƕ‡?;xC /İin c:_u¸ G{Gdžd͔p!ӳF)9R(]qw}Dy:hۖ;i uL#+U/{ h~{I|{Y+ pvok|4p9яuYmSLI7\O✷|ҝDZKsv@jǘD@3%UEr"ʄ]8Fa|4'7p,,=%`JbU^lM0Y"`c*DXreBM1~n"O}y^e=]z ͢m \!|lx:8؜6Y;ڈ|H6uɘ+ǫ$4Lzݡ~IWӶ:N U/m-<wnxЈRn`iHmsSZZ+6acř>%?lASh]Ƃs KU4>G8tT3HMh'u6QTn|޶5tȡc*(d')Xs\Zrl;]JOѱUu $b{0D ?q<qw*ΤD_z[2ԩT5b~vőIBYM 8|EtԫK6fgw!pq/7cOˉ?w1dz&\7^i;©p{AABe'>m/8#t+N^nL]êȻfԸ~8G3*%hMr3X:^߾.MY#ҟl6b)17&CgY86C9AupUѮ*W~-H<{HEpf-zw&zQwYq ")$"xWfಘJa懌? Q̚ &FP=J|uaZnVǡ!W׶a"^9E·ls{EC _'S l״YFc-U\MKvێX_RuXb X)tGNPWSr0d<\+jEAa8h:'Dw wMsYun=O7!Lke: /Wyfp"3|[H4˳_W6 vPk?Ip=Jjq||tak.ڟj,ٰE)Pp!>` xOopN 3ޞhØmAYn(k39ɛBK*gWEf2mdcY ckӱ=|dZd|UQěFISOcS N =vOEaϐ՛H'~@e2h"exm{\(Gb,\Ωei!sGޡ\ǻCcE9@X:3NRbPlM ̈́F`CT5`9)4.,@4T}ћi#j楆ۦR>k56Vi:Dr^C3x5N!QŸg~x@M`dlo,4Y3L$^oj#C%Trz]SIJmS*dzDrb¼ZCC7☋IGKϷHɎrJ,fgd\KHܢT`*Rw\'ȬԧLu)c,Co6HvP5x~nt5CmY{?%==A%\xӎ2yfIT3 sM\ڽh3}([5گ2I!"j(=h_ce*S{؏1Eh?0d*貍W ^Ep] ʛ߳=r1EDA)vp*v.P#.}!ysu\:h;eNiN9 Ϩ\9X$0b=)lїddW.:U*l VVbl)R\1f|-(Rs+,/WNU]xFΙMvY:0y&;onPwED?FЀ"O9c,@d^˕xxUl% _rKjbQ[Q;@XF& S7rYSTnD'{R@wcJ$1ĉPF!L>M`i:ITcYxA"{Wf-B)\vYӇGFNQ IL_E2&F,6zzU7ʢXshzL7ٔ*Fwj'e|CMROI$ ;.v+P.jm1\KgLN5 LPiv{Y샵vM@ƷDv/Lz],NP$1۶t'yD6,UD6X8iuE(CЈ#du,YRЗHttÝTGY"FRʾ_|)&`ڃ+9 ~GUl 62eU窭fvht˿o5Gzq`퉳Z8151pT'AR^OUlJCףNRV[Yo;\ex4 )vF/.7B ~0Z:ӔuU`Uӷf\zѤl1swtTD\ż s[WE4+h6gG%lJ8\EÏ/(5 y2uN/!1<` %5saZf{D8դN/qts<4Ll4nN1|Z`bʅD=HXT<=x #^<_bn#O`Oo3/981T˨-5x֟BLr@7<@}ᅛzi(I.l=ǧ-=H%jT_<[mG=USOtfMFTNYƥ*\x ,z F>:NuVrswA7\LPTe j[C!(?lٲFU,=Qߊi)=?>GoF G/,D c0K>gf"<*3, w鯽>c9'YmܵhzK|6^)T8aX$X#A'lԍ5y{'n1g]m(j: zWݞRfy*CaW'=vwh3ğ(SL0$&KõFի{T/DQu'\ danD4*Q e[9Q's2iSWyw^ȱT+뢑G W+ZihWkϤ_рS.,E1"uIj2yQWuh@h>4 ]+rJ%L:Y8s4y#T]lg^ )Ls{/A9XWуUhy+ނAC?#;#E0AVĝzW25g QA{b]xW'H]T+'w ûuEuHI5Nr!Uni(j57G:!Mp|w~W=n67  rdI{z@SR44X ƭqB_ \ȴZ\zR[6}:)":?Ktq7' ?V-s\\ t$-#7ϟ! i|kRBGwSTt$*b ْ+nFFMk~DI3pu|cfC]$Io*s*80S-沢/! |~L?Viu@,_@x ʻNBR9k|Qp?D0҉z n|E C3i1MB"rU0H` scnxx**mھ&+l{}bJy^>ib"-8uEK1%cBf>eEφ'9?k7HGl24(R RҾDaAʐ 0=$\:n?f~̑JǙY_YY8T'G}g4O ts1-.U,;6G}~˚eT=xԋ:֭q:LJGeZ!nw;>E-~X+puNH.S}_NWh*M`>4NgijN7e;yǀ;?e ƢO^fQp;\=CL|oy((usٟjcU(D?ޠ3 ҳ_O}$ymc)p0b*:y_zʊ:}U=+so!p }w{%Sþۯk's^ \src ;- z˯u9 \jBsR6 XQŢy=5ʩ{<wȺ0PԒ?s$P!%[ IM7zAks3 Ia!†[ >Vք>ƚQg==S Iڡ6%z>?_Ij5Ïa:ISQ#TT_TjȔ$jXEXn:B9[[miOG]濹ZDx ^-n:*.nn̻2]~XTRFѥ1 y>1S.#;91xzg5GMkѳ;؎QbT&Ebxay>Z쏶lE)%"A[:JV_%= >tה,]Z5-BN6ڕz{AM|8yX; Iziݖ,6ۯq0f]OH^+4ʒ-=Yfϖ-dPe2g|#]yPL%К<ڗn1p,SX2Bοy^Kt؅\M΃.`gZKg.~|)b`L ĐoL {Rڝ}ApxGOҰ_Ovy`cǹי 1qK__S_TOX=}6dP}kBcNw*QU 1 N@mu0HuN]^iϛ[mi߯'<oW_Ynw^(fטjZISc.oAJ3Ev]Hst<nEӫrP#m-lYKڑGHH^2^ |RH ~(2H|oIOIRoSZ1B ]+DR;PD|rY6` ,9\(FjLZchAb- RYé+\$!Yu)bTnT6vSpCDEBf쳧?_^Iњa_H,=.ݯ[Fʼɂlb* <…X`CQ(mOV^ttF%tީhK]CgsUa%.RpDfC)[YiY%{R#sф_9x;]> 4&G btߠ ݶ!\ZZ*}o~:r@;I񼻻z/8yzH_(T _?*{Z z.?`mđyr6BAywWk&p#>.Bv\~h!s]t}uI*Qm•5O  0{=) RB/l|3ו=:hŤӤrmBHV.kve?rcaڋQ|A,&*N39_^VVV] i~@ oTU Ś4#flFhj6.F ގ6. ֥2AXjP.& IӣEVFVL|I.VynVeb+11qcI6Zϫg/ ЪF_wwd=ϣ5O[^'.WQ@5>os/ɾ(\I)l4s-E&D< y3*]L0ؔ)ȱn8T.i隯2_U(.>GVk1{ig_a13 D%J4cVkaq}1OH#Ȃ59}.{PyZ,^GνVScɮ!j̤ [i?2xr9R'Ojj'mKO(L*HM.bKr㣟‚g/洇3gI_z z$\.%8ԀݫK!+覽8X2RLE\+.D*[V7V3\Nw5{xDNb'eoǯ'lLU V]K0P2nۺ|ȨAʈHf A~ IbTy Ї(t&n=kEQ)u%-H{8W .Gi NLi{?j*MV?8тWܯ¤ Ƭ~d r^^_maf?p:tÅy~DovbW]Jϩk,&p{\L曗iz֯_b WDE^ϥ2haz˖kB凓12'ɂCNU^*eJIh ؒP%/Y 4Nu[*7Yd~ռ944kf2ŏ_!Y<ګX'y7cGGnd1/}+ç5ZF3D`]`쉩Xh@]֔hCCC(BʭKU--1$*&(& XE8@s|ޥWܪ葨!ۘ$Iq[ >b]%"",yy &3SMSkڟoz"H,OFG\]*Jk䰽I<-Ȱ1A/r(hٖXkjYsX E ֆ<-ߧר-P:#oG$9&S0~ra޸1@;#>x {kc|P ,Qb'ņ$%v>E@~P!A8o`*|NJ{OrY |q?!B Jo ?8TZc:M>B n;Djz} KUU*BRO'Me-( Y=f(ɿ[i|d^ 6A~~}CÞ`kp%J""jr?oa.g`nk-,, 666|a [KndۧWJZJjSDfte}:0rݎi!ש ;[.`45&.2xڅn*P8Z|ES(T%hִFBN6++-$##  }J~J,kёh;8r-x(( |sx/lɤ0L5|bc-Xdղ1"u)aPb 5;q0}˩romëVY֩L}dG&;uRCRّ5d:g@c %)11\/jƝ*Q0ApX0+?xve~-amؓDS ~xNՓ8gB pQ% o@Ež;}c22$>([8ux&Y S]lq4H_ :8 v`42<%N >׵<\9r ~T5+_*+'J@x3CQP~ncqH<45sՕQ՗JBЃIГ״>_sϹEw+8\7l >0E,hDzYQ+K?%∲Lٗ\:Abqz"En;o2gE¡xP 圫+XQepQGz6 Vz K+vrxO#k.Y47+/1We2?Dsi2R1I#RS,ENGnw ~01N 5Q| U {MQRVW?ʋ S+ QrndKJUo>\j:Lc ![}X |  ]VP+9\MɡuMF-/m9*lPk7nEnS)>oQ|&L0[h8Tߤأj@Q NeKUoE[.tyDS R3*Lq  8ؓ>!z;Վ~k]%C#yˬ_qf>iCe3#Id/|'Z ox ĐXn֊y<E4Ĺ6!Wr6 S=8I ^lR+py(_@w \;ܫsG-O.6.N<9U(Wk\4mz⎲K݂ƊwC3sYhb('^E^(FZ:ۭK١I(] &rb%(kiug5?xTN 3=-yEpג=Ѐ'6>pԓg?/_O"qblp0 Bn'~ L11H:lj:vhdO+-po@Px N@ LD+9]FHSF|(x⒒}6TˤIsnAD>@?5n+5keHXXç`ſPo k{HGEk{Yy 6|iF %6-">>]\rbe BUfw?2nno@ ʺnYF\ /EW(;.*NLL̦#marxoW4}s}dqQT;& i &rc V04㌪G,*j4x4ŭ(P/V4R`ݕE\F`NdUWm}]} m4&]4z=5XqOA\Oϔ>F22$?ڍ ]t [c\CWͿN" are3`1`(6ZB\ז[g/!UC xceHn!{+UU&ch8 }}n155bedT)ڬq8@}7bR[8ѲY#pb`bb­kioHhϕ0Qz`l7M0%kU7ǧfI7 * ᓟznRU)ɬgts(X:Ku܉5WH|OuiJK'˜3̖=CӓP N3s+m}[d ]69IB $j$vg'$m@00nsΙ$Aqp[g/K>x2C/@E^WB7077v-C4bb"l /*66#};=b0߻.Nk;]@BLfu͚@ټZOf f _G0C`piPw y F9o^dv&ң` 8M8zTa|7R3bZުۚj\=g38?m6>bj{ʋM]o/F3,z=l,^g&ۖVjGy?Ko0ĭe%ˋħcOxFqnQ5 /9{g$C#aQ f_@ ُ$_qTZQmOlosD-yF_"[YgO j] j1"]}DweDNE>|: =-̛aIǪ+%C׀vddm8ݷʑ,*Is4L8~%wNpҪ_۪` dyCb; 38+ٞ 8b?w#צ*bMFS"nCBbiy|IG:F/(JJqNJ}q{Ye7w9wFi;z&EӱA'F{+FlRiEFY1{Y)E7Z7g Ipښ [Y>KUha9`! ;>ᡰ(AipMf20F̺B[":(L|YWCky+t"F#:4Ҝ>uc"dJXW'Y?tU9&H *9NDZz!a( /CT›`}Tx8>mfMu#* ־{YK΍Z`©/n8hdGJв-iAAdWvCд8hDm)b-VJf3l[=,a>? xVm6_3n{)عی/|A6j"81 d22/WLx>!LVnnϷ56.s*y/5r8$jO6bָY2HL-Q\/:`tk]F|dP>TDža7U<3h2ahat?Η`R)<^=zkw*".`ݾ\k8ppyT;E˸PCJ!1+jO3 _Iao8R6JS6$?xѸh\@WvMZI?J@gF>Lq7g /1<0f~6u_n{3EɋHM/[$6) VQU.w1Z;s͡%hXGOmip4OTݎZWl]eJl|&e`4],)ƲHu"qܴqWߦiot†i8Kpxjxa %XǿP1IPZzpN*hh쎡 ˖A7@ۦa_5l;2`Y u@Ϩ"E4IqΧ ꖝٚQ!-a6i wT&8r%eGtczpg]ퟓsD<۟fh<^{0'1VE.k c9PKMmL׎K98aonKߌI.ͮ''}mmP- z_mˌ)eL(h_+.3OI&OUt$[Vċ]YM[mkzvF6&I7}Mj =˼\&y˪MҢm626] WVp|Bn;~;Mt!C\EYTiJp]:F ֌&VגuմɁw7u:o9/'mf|Y=',gr+1Z,!*InDzNvh{d=-)nۑ+QS:N-͖^dB3X$odK!HO 3yT85`I7vn*+-wz@M ԓ %_m2OK^ *-=CG*/+τM`3įp>VAۄ9n65K5I*mqf> D$q0|ɉ^wIsެN~ :Ox$JD-mL/g/g*oO @Eʤφ ~oe*4CUjkP9 oCO$y2@̖;!kʋ3m鯘;YeDS8<5b@7] .mo 1R> 2踊惷ci(> WXXȘyOkzSк?W u+U #a[ itP[ b<Iʉҵ5 WGXr/#qz{L7tO[*i1Y0e+jA&&[ȄtEQTBۇȋ]%3QGk7+srqJdCre]#\.(S9/&e~̟vInÚ^0AZuS}UpaǤ#IN$MnMV3 dǤPwH6Mߴ;0kLfsbUfF?J#$- X9g2ָ R;0 譴Ud `]mCǂfH@9x{֌|~@ CZȹtN0Z<:w-1z̍`$Z(rŏr 󁘠6*隊 t:!:mHW]Ϋ0H9$qK7YdY숔״7e 3D5'lFv ʶVL#-cނ0i %🅮cվ- 9(g+.\vIV$"EF5f^+b/*0Փy"Jk~6+-\Lpa`n TStob؉UN[ v1  ݉m %O<+lF>J6'M^<r[dv!n"HTX05,WA49sIlX7b3TJb Y3!Ih$HL=ƐXs˷$[@h\MH-p_A:id~ą*TlYn*UUS,@Ě@VeL6BO*>NooE^ʎ111O~. yr ڦt*ΊHUIMu}+ÞPE ]@&_nK#:63e [_}4N1$>"aѕ7b=5l3+f@@ #x]N_i7@T2-" ' ,0n=C,Ct6+\(L`]`&N؀W2bso  \Z/ `B@a2rW5ؿƒ8~1N֢g𳁢 0qWˎՍQkdpw$vsd^G ))W%62tGcAE)/ "QӜwD@b;taVcyd8x;sH[R^9rz$*)aOMi^0b sDx l!% / Ibg[&GOOSZ ,luiWoz>PR6^^S֋P|L)ȍÂ85no1'0#4[}l? Bn#1ވ~U]~ShF}"Ke2wZeu r;KȭaZ$qK?6U(*mćr5!ŅmXX Vy ^7fVRvHY/.84m#m+!>$Yә kRC+ADD Xƚ~[LDR %\O?:PW9Gb (D2~yo [*F t;oނ!;h0U:Ki"s901vBB)XZΣeCy*Vߨ% ~-Rm[ Yt`H)DЊc麢炇fɪ-"YB D;TfW[׭HܘJ'D_!!Crn-]7!UUw I@&zy|vJ~ -&zXDB޾`}"5O /L#?:S((%!< bc=(J6`9$f\Jx;f,%sT[@ė qa5d.P<as vr@] ]-P29m$t1˪8_DtI]JTʥ.bij8YYL2`X-ތc 5 3>IVnq4 u@Wz::*+x-1}ve̶_B *;ڭ՛N*!J^@;EZݣ?2$pjnh59쪷)Ԉ]B\IH)$K+5S C y8{YqLvC))ĔkX!Y2ssbRX 0#Z (NFm:u riț.[7PcDB+t߻~ KUrO3$'yKLw!7rL~PLΈCf/}HxiqCbx|m[t#`L֔=8L-|cn ɖ}OSrZ~[KV&!av]tea$#1Jp,oaHa39K+'3.M <,M& \I M@l 9AfC@zv2("(Ƶg0Qwr 3SEs5{W>w4T e'a:umY(m#A9,ApDW I*2$q-$^R]Αt2ʴq0w8Ub u Ytcڐ 1ޥ=8_̮b1TI pg4P|6 Fﵰs%F&=gc,(ǥ$C]koDћLoyy^Ϸk;"XxrRdL6؈ԃF K6#7_F#.Y þzƤ.dā굲MչS^>*@ '"VU+28U nbӏm N$t߱˶P]rPq Ecsale>Rjp~~tLQ.ƅP5!%ِ߮/IY05 m:^onpcr .D7F̟rgAqɓd꿧yU;S\EBRCH)tp ˎf0<OEc`ThH6\k*+;Q@k|)0$c# v ( &AkLlmqGuqPUk>wb%XLNDXMw9D沚 mbEJ2t)vQ Q*B/k\G AR.`{ByWV^m}Q!wB8#⊗3+ؑF/9D P#lXV$j G(ݡ$gX"=[Qp⋪il* Ґ#-&+J0꽴2 3t҃Շ:fZEPlYRĴ<@>XKFNs!B#Ykv",e\X\+ra$NQz7^R-)Wb=KW9xy h|;|dZԝ":S;>lK%`m %#w,\f7(8([0^J NQa]qTeH]XG̍52+'>:?g駪خEj"Bt@b. ].AҀ">|DYrBb,c8U{d3$~: Tv8KOs' 1y*eKBC}[-ĴkSoXQu..JadlH2=ޚh P,FzMJ'R~^0 r{H۰ ծaX˼x8@C֛]\IP_]4ɶ겠h0\Zf9F +RT3"jXÄX{tjgZB#93&7j)DF$B;a鴸n4bLi& r1hr<(DjG >Ӄa2l_WR Q#b*DnORqNCf1SJCY?~ܩ $SGY ,8Hv괢#}z 'Z0)yJ(aLPQԑ@`A*,bWK/:3#$΂]tg1;)%3qzI~;ǩnd.RYel,DDQy;INIJz9̐fvGIIO*sCTB'yhќ)C]_rEHC) Ctu[oPDlR^UJa2<]B}`H"uM1H62FZV^euJls&{kX[/_0x$-d»A,ډ3+v CIծF"po׎Dx]c $)GK|')wY7' 2$AHCs`]8GW:|jvY⭸`6^u.Mפqh#ZU{3jtcf\d@RJ,2 U(@K;>dꭇ\:Ŷz&djIH*.[d#]nu7ĵZQܞa2 SWm݆mJ舼|)2G-^X卷y"`I"5qPfcrH&6cPaȃhA.+ZQ; vz5-Bo nK^mrE@5㠦ͬ0: p%TvA^Q1Ek:V5CfH L+֓ov'͢V'"H=жpx!L6-:Q!lQhjFm^n! %Q5|C@,B8)JJUDĀ\Ré͙e7PNHt$=QbWIZ/Yh71vCmPdKf>)0u[E#8:~&Z:q޴myvKUN76_d K 9C*g6{1C VHqDGz8c9(UJHoQ &I!{z4Mbyw0΅{,;]PtS_Qǎ_Kۑ] zAYj#4<㡎jd9wBQx(5'Ps?y^r/ Ae/p J1k+!u,mD8&Z[U&,aH+A( w'8Z#C18Fsr۸|vj|NKE]U 'NgVثdX!'T(5wq9nݨiVkNW~~Aʸ"8Ա]j8e`Giyp[􇂢[Ŀ ɏ+-Hboҕ_ Έ1)W5"&+ Ӌ_0ݔݖɫ%^$5*xwf\]NVP/9X8y}Q::nr޹ 4#3*p0Bcum> #~R8JvJ': IT%.0L/YMx6(#,HzUu59381i(qq.d4aELiHxNY]8I4]FfwHsuQ+oN eGx.Z6Y=ctp]TsJu}1HWk8 RW֯6awk _ ή`wʵ[q:=NRj/^OPYRc5o8RL [\3&{<|/D e!Btjc/K ɣ|Of!q {%{҂c1 W=yu|[4B߀;CBB_gQ 9SKvt eo "5tkb8FO*|FvM6y =Hi0>wYPӆnʰ!cS~ ՂJ7iqnOGbj\/j3E˵DW/(rp? e%‚VJ۬:bBB06Q(#>h"j όk Lj8 F$525rVvdB$v{B/061P[]|A77h9Ky6gmlp\3 aחIV͢՛~ Oȷ&?D!1:ޑ|6Y̿?Pn<;aרl6Me -}b\?ا3}pC| ư/1~V|88 P n LJWcՉ/p~>(N#WüGޙ^UG0ޒ!O)sw@J0^vag8%xjjt%\de]bBLU$0˯Sf*~Z~!Gd,DR\47 p`x yO.lz,E 0/8[= CR Gvˏi9aZQD&ZJށKNC0ؑCA^P خPp2nH}a)GԘ1KFuJ-PcB9/o b12?K!&>+ptűJP HE<1.J pSҙ8Ǒ`n".RUMGz&3{.o{ϫzXjlV ո̛g%*ޏҝx[WLYIVDZJĘ6GЫ sbL "In*AlxpYȂ E+Xalqi\ݤQx( OUrq1JXK7r#w<1S>=u܅ &(m004B1ڏ=$'0횥|ؐY4#ʧF CR!Mӹ9t;Pb껟 !Q\xУVS~[i*u_JUjXn9qzΕn=[Xwd'[kj_gOXr 7uduU?rڽs9҈yCUN=cTj ,/@.ũDtˈ9`tIۖն4DZ*<$y1'TJ_]ؑstd<"bV(\(ْp0~r/~a,̟He~>=mmQh .ͤ5V-|>ǧtT2 Qyৱ9ہ\mDFr\9qT[]LHuyjGعRD2t  o?j$61ynd2*-(,+/.Pg byÕja]4A#\`H%5ϑO C(C(!J;tcy]kQg'P>6_U.K/kc.(NH2A>Yel{f? },Kh4-&U⒏(FԝWwo8?V#|V3U%:T皸?*3еՁ  D{wBdtR_G4\H8$Ӈ62<~MaxqrM?M'Wɻf|ww=$/r?/'wɗ>L1^$_ӛ量䞿PuNq:yL&1L`@`/Ǐ==-5jLw֞~"'+enn){Ϻ ir9~7Yڂq7/?_ۇ("?:">B]Zr3&7z*}}A 5I&'?&CUc?̎9UxţPFm|S^J1xr(C>6|O °i^Z߬Rv))60 @"R>;1͋J:A򝿑ĴfMU'=ʋ1 ޠXEDhw ^Y-&mz?K#_ }:ERJ˿Bݐ4QIþs*+gONkDϱ>dž4wm-jfie VQe[tCMF{/GҸFlT|uSw5SC7G{,*"^tihf4հ;W%l{o M3adSS'7=g]SM~*(/ƼE(xpG>s@%4F>iپD:<1xukޣ~rtyyN9i8U?t^!TVHCItF@8 ׶t23Swb¡A|I#V#3Œ`=X uUb!nPB'&O0C'GXR`n.ޕ]/x$Plì$H'X1ϾwYI}Rl9@oF71+!"ʸxd&|z+"6ɘ`2JDxs%@}5jRpӳ]xr|չ!(EQUd@v#xCܾcYd}Wy;#LM1ZB9oߜgD0oVD|7.ڴ~Q+I}`e1~N.F/:-ͫ2-'7djͫ/^?ޟZxYzFo65oxl~?o&o6菵mϞO.e{A2>hV^~=_uc???iom=g媠g&[~u|}||N-͹my-YvAf4oARA ۬mIKp)8xbV}-m=W<̪lGYN[%]r% e:H,JE)_Agt!&I ?o ߾I̛fo?yS9k6%<Ӌa |[tOk:k 6 ,{oo@!C 1DGUU K"[hE.JXflXjt]r$# 6Ywq*ZZI>M$t^qٌ7D..sjZ5}=|]|H*c$U8[Dz[_Aï⢦IMIOLsT`|37q@f^O+fh-[b9qYi߷FDTqvr6'FE唭"ʊ`"Q(ڃa6B=6Vt^__ f?~eN!*<&(Y?ʗih/V)8HʬsvXPKG^R|%Lկ듵X)qxdddHh,@X?тt߃ʍ署P̵iR oם Hoz}30~2%%-~xIn Mm|Y_MSfm$6={ vC U߿dk VQ%, ʆw*u{<3Թhӝ 9FEjWۥv/LLi7ETPˀo Hed4LƆ8zݯ*CBŒ7uqx ]4xGzVV2%\}!sEf5ͱ[|>o ']u [BB0sv'1X?4B>}GAI L$âQ/~=Z+8E"%/zfK"nnat,J^VGf5,H,1P$6/+NU|XSo"-QW"N z5Hvߎ:N7Xa@q"?U<וn>Xռ(x0@"!!1@rU6^Koll7Dc}{$DXD6,GAG2ݼ섟*yegu䫀hH4 ~2Ay]ekӼ|t )s?N~pN>Ar.<ӰS݌ bN G./!3j&].=ZlD*z"l3| ?5)Tia9,ԛW6/_zXj냝ސkp]B BMWߖsw{sZ46^kC]7|{su6Kfu:LwGlElE*C@h=e,Sm">.KCш)XBAZ*hdD }X|A#ߚō"4M7 ]\%g'kL&1X B6}ؖ]1bX}k H1.pFӛj>Tx#E-boF<3`wW&(d=h<&3i>Jz?m  -FOL$zҞÛӷxOLE)Zm8gvv&fc[]ۣv(/ CPy1DeO.Q(`oR><,kd̀د_PHE9f)!..TإLSȀ7O֊u/p)} 09Ғ 4߼~M1+,{||]c:]CkgBBBU:ܔ=j$ol̽{Ӆ0@PԱqqvw-^vv*_Cχn6b l<%ģ%3AD366N5p__gAHyW(%%5q^' ag PW֥eJ5VƤW 1(O'TLNԾbVVA0TJnF+(t$ksc_^[kUslɉkmn_Pƾ3v 5>~åLJjۃF+$f-W'іƎ93VY旺lqDiW& YE(͔j@JJ"OukJOY'Mf9&x9d[o{~Ϥ^4\l$,dgH/KDa9d1h*V\T $uk7we Gt ˚0LgK?|_[# η)`1>l/m"tc.:<\y]N&*4t[+L_XSwo$!I9ߗSTjzII R .dr>e t67KJ6CfUC뼧ˋwoዚ1[03# y:V`37(~VU2.>~iݬNfɐ]#$ %Od ǂ ]@:̌D"_ 0?4V-hΖiMuXE$+"p _2&Y de>^rXLP\% v}b|@NN^tsji̵>3iJv!N;,, 'Rrll˝>^}{u%f&|X$c ֫WGEtWR:\l/? 2Xlt>PZK)woVOࢵ,<<>9>?w*gZ]wNe'_tHT.pRoFlrMCtt .g_Y_m:toliťeq\"IJ<"Yvs{c3+ jS^/hO 4KHzޱɋr|0L{`v^ށd}oMHra; @vWق[b?$z *Q:N ###FHԴ%ˍpccc螁:=z" ARR bi kC CptnO__.lx-6na f,W͙7MfK^,X*(ap{QUS+˟g##hnc^~mJSZnmm HG‰.Zח詿\FNW7Y{j I蹹[\_̣0%\j@.h ;KfsBfD(70ˠɚUΞTLv]8ˡtP YkC],6}(E? wQQQXk1eeezzвm bYW=@vc0\\yvf`(||uXu۰mS,qIH({z!"$~>*j7/`HL!9f2>&Po!AlUiW\TI~ ha4^Nw^T <?2J ;XЂ\Gmnn2Gcde-<#(0VA!Sz|?I! ep|:6ZQbeZ#j0Eto@ %7鮿]hi՚~N>_9Чqqx""Ir{?9@OߜJҷfI |ϧEW ͫ;!B Y`"NX 52O@3HMIIX| h<\ g=hק%{2<Ӿ,lle"L)(ɭd3a1'k=&&''U)~*.^k>N?Wtq}҃ig<:GWYСzt4U/2MzGܷt_0b k5S>e>1*(8`Lح] //6:C<44p\<;֌0⏺<A{M m >9#B_R崸Qe̟RjvBĊuWndF67ehba!j;@ȂqjQ4YgQbZSJjgٶvՋ8PLs!_J+*&&',uక559ٕ.bH֐W,],ɬ% :Wd6lguĊUa!Q$!*P-Rʭ2!$!ycnpXUf ^2"#mmŅ;џ "-lʎGUqU\+E5Fm>g݃yb\SneeemcbRj<ۮi ?4;4YU ut+yymXZnS^^QT[ ///?jW@Ҝq:ϕWuJ]\ff흖p9 ;۶jdd$cy/̏qyyn _C{yT~ ;;f *'I?w_Kڼ 7ĝN?:/D90 W8q7rsU"KȄ<rmT*ág(=gggم.z:#gO ZZZ R*8E^Fޟe/Ez< *|Z3udM@@_UWWs9$Ar qG)ҲaK~ Qk`EH(:Chwͨ\xwrb Ltw )5$Jiiz5&P1(%z u7/;Z@Pxkv}O+Ol%<[eos{$5LJ~V;?O 1Ll eb%]i/ұj +hh{勞i 6`?q‹}P's0< WzB\D)UKaKKOךAt\!KCobBm1%bbl,ZLmL"hsV>nF!@< -]Y=fq1Zćӟ׌e3 4?s2Yϐ>Y^o.+iσʄWc ܔLz6dLuto&;N~=6T[r~% ]: 3-ƳhALe%o™eE6)O_'J5455-]<]SQu+Ԏ2j+ jP4'<d@F095O5m *gD~D$XRWOIif-JÒ rPsr8]LXj]6 c(̍:ߧh'Ty +C!Q|;8ՕS"?fFˇ,UX6y^c m2Dgkn,KMx?~ K} 7Oh=3;oog2*ZߗN 7C,̍>R`ܥKe?@"$ (%tah\|-OOT;N##{yi`XN@=9/H*O c oѥ T F_ZvV0UԮ=l<38J>(J.P2G Fvy֊_VVxaeBOs"^CT|\C%_eƒ)ߟ?} So/H$@00H Ż'jA/,!ҹ1LJzHݝ#A__ǓwZvDCqW CgQ#yZO/)Ԭw!OW̓;3v"pX?z?ƈVzX*I$L)(H&~B&j+h ݀hEơKX'X-ED0q )2RYՙJE{>-ȼbĀZ: AUlul_zܶ|\x?|{i#g00rRWDȀwm7K /\E /g-JεJ"z iX:@P[XɏbD8s9RҧUHUE)M to hu=ړ4&D$9b11-KQ3^UIRـډ)(`c_,`;'&"pZbR_[>5h=C^`(Ƥ&av6W2TUX.2qP(ߍK6'ʎgaaD_d5 {7^,45ktaQ:yhimDEnZ7mkCd#ʄ,=,E Y){0Z/>Y F59A r1taKw`ov}$v|]SSH x+)a&k}$FHXfmfyARAgKPbs0R 6YF80ʼn !ÙPuhv`>5oB d)~g$]+קHuQFk\?Kv1acض#.lO b %%)B"ak-@t#f4???̉5ŏpsCcooIL5{%[iAT]1=]m_NC5:vm܎2׺{+SY}u[ܣ>/6RVa9L b5ȧ5xN^_.*dbܯJ/ =;~r(^QI*v"nRS.8~t0]‹0:nXt@zmea#[n|1[JmgIs/-67@Am˺ֹ=^TZ,kx.'pb$!fݷ"?%ǕE/*BDhPk֟cM'2Jn4fnD݊wg6Wrf^vA.^`\ 3?Y.bkNYꪘ0C9B  P< c&:i Fd^z{L֕6Md#E-adWQna r ,)#dh!9#.IBJ^=*' gJx>#KXl/7Q%b/M6AhL7Gc`56dA䁎WfI; Ϟ:G{d|h,)J7jl  7> (T>l!?蚬W+Yǀn,kNt@`Y\G͛76k[3$/%/.Li g~}Hǟg{?&UgPXk٩xb"[7>W]g=+ PAmoͳ{JqDn^K]@UZ<ˆ.Ϯm(~䢒PRuYTaٮ', xd=]Pe|qow`̩ň-Hx|w iSkpMzZ쇄'`aR_枈ЩU]eoTG{m֓.(q֚+C0 |wrqj-;E;㛸_>ovn`IWvÖie_;Sqyef"?2v|!gHlp2@>0*2i{zDQ]EM~`D߿hӅPA&9Qhc]A7P3|rWQ{Xֈ# %7-BgޝZKѐ7;R?`w*> )Е!==J:,0 Ze@D> z^VW߿1N.CrCh8&BOyz.8Mr#{ ?E6(dt#@Ȅ-EtC02Aj"eg>>J=\d<&XGbBEMգ(*~4zfaVV8)xsssy%0&>M\܏`!r 2>Np{U\ɂm'$Rm'*e=e4WE#O[@#4ʏQ3>8nMK"QX LLOwee *-e*o6 hNdܔyL^VtO,5}KI ~)=d%-}EkaatCJZ?* =<<< xnK^;ZJ*Ȱh^Ħ@66]Gu`*0 %v>607s JNc.|)je%Ns"{@$ ?pWN΁ɓS&q.;cmھ Aƥ}OS"?88;z_KW6AN}ZƓтn3s޴O<ky=8L>n@TaȰ}ڙrSVFh=]|D?42R8S%jĊOpx xொ 's$?lH&%%A ߟf g.z\|}B R(2>`,SXA\\&REEejfWZJJQ֙߉~Єsw7, AKdㄉaR}ґ):~Pz:Njˑ i1ɜ`jۭd/u5 BB+ & DC Q] &]R1ݝӷw35Wc\f߶ZۥpEɗx)}RqAwOQxUEEf'Mb/X6A4Oatt41՟ܴ솰mW=edd̉SM.x{ei9 PeGPg]S gw+XM悄:CHf~#1J~g$Gp,uIV @)t߇h@ ^*߄zO7g稇n퀦@6ōԬ@_Q۷mFF}Sw'M+'p2kVc:V;KC>*K>4- u]Xh2V8}7gjz% E$X3ewGгk tpt ??(㉙w&&Էxby7Rq@nn 6'XnpR r񌤓5!v||\Q [y<=Oz4<͢҂2P' H~6Ӯ!\3Q,o}y-&}g)`t-r:c8 >i yO7Q:14}+~UB8aj?H 𠇛{.w[vwBqW}gZA\Y*()rsr&HƱɾ!<+^WiR1̅ej_ˮnnnI۴XcmlDE'F7-8G^舤 2(3p>}a1dӯ:E:H&`RkŅZG^4>>L<# ::ό% UN}lay JQUUh;rk&=CccAP;nؤAJ+~K-G**NNQ ˍsV un߷1? }D:VC SNU^- 8#{WSP8žB-Ifuj̕|OhbbhA1G=Mh[_#c/oKT {4Lh |m)1uqקr\{B'Gl,Z:$ [;/d=!N)uŊ?fB.,L<Ą"[5 ts쥘kAev&QvoO!۟OW۵]7(" 4R`b3vNX<"B г)nv3D~`9ہ b_l}i_kuwL$yio-(vK~&h\H;4RSIx?˲[iO~ rkmu7n' R_P7\->@C顩;bNf.Ed=L< N-ݑ~ EXp1`x2:~#?Gj%>Ifՠf̷w_x4pۡM[{h|?l<Ѳ2(2X.@c?]nY^,s\NbB`(KE}AD$?\Ka.sPO3Tǔy(PYYt*t*@<Ώ6^[rD$AC$͒rjr$/KwFT&?kEGlwyU0C%g(PKM9'*& g2]Jy q@ODBk%_伶'`oN{͎TYj#X3Ɏ=qXDaP]Ey kkk( |ݖ$_X|LKk^W,0gB5mCg`?ɍ70CFVd@( IjahhT& Hxf&H<S.c@e,7GkZtꅇ(ƪ"OVyOs L$j}Q(~BϚu@\#^a t b,K5@im\wVF}^:M8_lt̹yzZ6١iˠΎG3S|mHNJ0HpErwn|!mWW(r3呀V=3Ḷ`ӧhAƿ8jK|jі$i^D2+ȓ(YL1#\zY K{Sm2lW>nA_Xh+:%pS++W8@D/:v~dݘoopR D'b]_9u#C#= ݄w+5Ý P]ևu{kkY8J[Z[;&]R2x%_Jѵ?sPE{i>aaUEgdXz(&\'f;7`AܔL)FѤb#Ԭ2@Ҋz3BsMU#g,>2*q1N3T\}{Q<Րu 0Emʄ]}Dw(!UՖÙO#_وe R9U9,Ksڇs|z_|ztwejxjDyy߈pa ;&U:L>2HS5soOѕCzFȈՠ9h9טq{1{XFGX 7lR"8j9]-&gPU sp<ai* ;I$V5A054ﰱrr޲sp0ewN5zØR*D^+ĄʢU.ӱ 1:E=zvEےvWRVn*g;OlV+l"}3D~=R$.4K vT -;S*ΨmrPP4 # IwDz(ҥ) BAZ(Bi(D7)"Rw+k52c-j~eS81/Ce==N7HP5p^:ݗB84~0*걟?(dQ$*>pX厰X5m0Q }*wJPdxs:oϏʅҢyqXp{6tmmm@5? }Oho:kBnl w| 0Ot!} !V:ʦZ\?Oz5$D2LVi*&s۹ky 'oU|E.WWF/n\nk^ZO"9}@AeD]6L++0J&k09:. ߔLU_+p?{vڲ8:OhՋlk|:^2CIzlc7m?Aa7A&&K٣mb{ HF֣ajFbAPscNG3FA29U/V:u>g߅=]2Tp$4Zʲ,t̺ 2+2eړ&o/F|dk zJ KoGjfa=viYghߐ[AAɺ_'6.[=q$wSGXmg̻+4 rl(yv4E$bZaZ8v?F/^ ~i>|B$YXC]9?8EOL0h;䩭޳~+\#|iRiT;r,hihF0yᚘ&ؔ8;}Ö?1332t?i 'DKQq~Ov޻z.iayk#je`@WUZSSmsժe?h71ڥF Ҍe6ݬ90QˌVjZ|<t%a%UPvcS1B59*p킁J' ,bCăY6 U]㗷F,vfs!/+ ( u %3OUmmMt|>h |2T7k8>޲U.32͜V^?&XOy@zb MsҚfGB3AqMq.Af! G]TDy9ZFl Ueze=FՈRʭ5ǭF݃@-s *KD./%es/2a_+eH9;.芍IVWǖX{syc?|"[Ylt p9ly=8\ObbD9W_Da: ][N>b_BTķ^sx.˘%~|Ի2Q 5v' qJ 0;+CT*1PrȖWVj̼]jՙ[IJt/ȈCj/l%jX6IEϭ.d鈆991LY#)?-mlsdL:& !>>IkB]d=doU/څ/+>ppEM(-ˋnsg~st 6[G/3' d߽2(k**g(uO^ n \*(P]32T)x.&7'JcX$TNԪ v7 JN_塚|euM7 u.*vllxVYA",g]Sz{{thF\# AK.z@ H-u=+wv4ԨND{O4q"Ϧ|o~z&:1iPTq=ym }d' ;C}'o b{˵2=.AUhӾfrq+.>؈JHL@D A먗6xO]wDM^nK#,T֔ںʢ#}Z;Dc€ (*H,EE(T}_qNFۋyb']iLc'圝f@#G"6b%>@} @Eȕr!-FP,;t%NPB8"sgJKJ,6i&jj!UH}%pq*A:&&&1,vlE <Ю99;_9| kE5,))y= N #p9׃_x ff077q]]]ɐqPMSS.A_zs8`7m1#d2٢=D̙3 L_8־H Y}cZeӒOipedfVUyal\9C8I>s!\b sjsuuӳ VP@8']1`YLV68堵> $?4ܘo>ͫjaR@CPUF@y&2?GUUW%( ZxMRYn.#s̼0'bUU7!/YY}w(hsPnTr%VuM^QwZP8%^J% -8yAmtQR@4M|=Lse!9<ɯ<|TL)"H[򐑏oayGO\qYٺW~wL M{oQ :PQp'{^… ~x<>ann.!:?_ §QhTfsv@ 9ֶ}:Hjnx->2 iHKI-?MLMnFڀReqqqbb;% `eIz||a#&-!o0xu$PuXn__DGljV Y@y2sʨH#fBA0vheۏtա˰@8u0FKd[g?ņCY"%*)Cl^3:{P ux¼ n^Wx\Vݻ- RtttwJtwIw#]R }w{߶Zs>1|%QQ {)qe6|L_d$!OYm佸[/nOƵVC0|XEAiWO5Ay'ʴ]A'&ԟK&DDpTTM)ƟF>ns%0>*Wlll?~BHtlTROheƘKu*pJJXҸ:ό#i)Ȕ~tr{q`hjիWKM̾_1TA޺񙍦wNL`._98TK̾Sb-nW1¨Lsa.%m /V` K-؜Üt >2 Lv꺏-la欐X 5G lQJ@/rt|bh*DGpˆD%Hx*áՕJ]{8doVƝuL v>ԛ _`Bse*9g\d?yP) {16\:+XԴe6 Aڜj=(C׈T {''y_0l2TAQ=qs Ph/y]3i۳n7-.,Oתp%U:OtnҘ|\N}_8Ӗ{ THGz.6/${ڂ;We[0viϯp[4::0p]<^|sm8Px`O<X )3>cI <H) =qT!gUUnXt9^qC pH57/,)@qg ?x ,"iLbPuC#FoiH)Gj7 VHBѶrx6  ҏE!;6:Cl5|J} sWb 5Bc8IuKc9ᡸ͙b 4e_ȹP[ST̄sCdZ&GCG09UUP`ȯ*lC$dKnWi] K3UC]+NCTC꟝d{e#0,Bp룈֌6Ӥ YeM')K,CR뢚RB5ͅH,Mq|v *z4gE` ›S3Ǩ͘ bVVb0% /\w9{FXc;>24܅ߢnb@]HIs@yo~>?k{|`AjԷ>zѾC]ኂƹF3 EwpcEK>jJJxEI_v 77>xXmo6_qՀl+j+na&m݂O%QH/+wGR:ݬs<>o?o_Bnn^ǿ?z {0LaE㗿F֖8^Vճ^]&>)Ǯmi2E\/20 d9c-*G\tSRmY^yLnwW_AONym&pg>u%2>k9W(#KL/5&82v#9Xt*BbV7zn?up \y@Ͻ>t(%̰bK1gTDEhP,n+QɈ22%SL3rx|Qa(gv0qIQ40{8h(b?Zl ==@xTn0 }W=ي[lhKzڭ\l0B;\,RC6M:L_Fُs(\ç!cNG1|no i^ieUrEjNJXv+vkh"#aEv&zJ3|&z>E.蘣|C]0U҆fkX\[< Cv@ ӯUs PZ <N{؇ KNd)%Q c7 MhTR[s`Ḛ|{,k)TbCQ%E = cCK7oɗrHAՂh8q4F2ʿЫi۪#"CÎ-q91ac8=Ƃ3{T=yg[l^kMSs\7Lf7oF"A%}6<}]F8(2A5*C) V0 Z.-0t[&Vl63~ u2IWIS "QI ;^{<+y%'Š.1h1*hi Sh0#&]$\@/S e+d2'fҽZ[!wpҍ04޷kgpv[P0DgnUeQ`t_r:$ZQ-j:!ڑr PpGbP source-highlight-ide-debug.png source-highlight-ide-debug.png; AAhighlight.png highlight.pngO UUsettings-wrong.png settings-wrong.pngC IIsettings-ok.png settings-ok.pngg mmsource-highlight-ide.png source-highlight-ide.pngJ5iindex.htmlSource-Highlight-Ide User's Guide: SourceHighlightIDE - an IDE for GNU Source-Highlight399doxygen.cssdoxygen.css399doxygen.pngdoxygen.png'--tabs.csstabs.css+11tab_b.giftab_b.gif+11tab_l.giftab_l.gif+11tab_r.giftab_r.gif   ;v5Afiles.htmlSource-Highlight-Ide User's Guide: File IndexQIgraph_legend.htmlSource-Highlight-Ide User's Guide: Graph LegendGMMgraph_legend.pnggraph_legend.png IUgpllicence.htmlSource-Highlight-Ide User's Guide: GNU GPL Licencei)1source-highlight-ide-doc_8h_source.htmlSource-Highlight-Ide User's Guide: source-highlight-ide-doc.h Source Filev5Apages.htmlSource-Highlight-Ide User's Guide: Page Index  {k{RWp5files.html&Qgraph_legend.html$Mgraph_legend.png"Igpllicence.htmlS)source-highlight-ide-doc_8h_source.html5pages.htmlAsource-highlight-ide-debug.png Ahighlight.png (Usettings-wrong.png "Isettings-ok.png 4msource-highlight-ide.png 5index.html9doxygen.css9doxygen.png-tabs.css1tab_b.gif1tab_l.gif1tab_r.gif        X !155indexNameIndexIndexTableqCREATE INDEX NameIndex ON IndexTable(Name))!AAQindexFileNameIndexFileNameTablerCREATE INDEX FileNameIndex ON FileNameTable(Name)%!9AQindexFileIdIndexFileNameTablesCREATE INDEX FileIdIndex ON FileNameTable(FileId)././@LongLink0000000000000000000000000000015100000000000011562 Lustar rootrootsource-highlight-ide-1.0/doc/share/doc/source-highlight-ide/html/source-highlight-ide-doc_8h_source.htmlsource-highlight-ide-1.0/doc/share/doc/source-highlight-ide/html/source-highlight-ide-doc_8h_source.0000644000175000017500000000464611346256132033364 0ustar bettinibettini Source-Highlight-Ide User's Guide: source-highlight-ide-doc.h Source File


Generated on Thu Mar 11 22:10:50 2010 for Source-Highlight-Ide User's Guide by  doxygen 1.6.1
source-highlight-ide-1.0/doc/share/doc/source-highlight-ide/html/source-highlight-ide-debug.png0000644000175000017500000041725411346256132032436 0ustar bettinibettiniPNG  IHDR pHYss.tEXtDescriptionWindow Class: source-highlight-ider"vtEXtTitleMainWindow{ IDATxw|SUܛ&mi)) 2qី_P?/}_7B % ({SZF7{eu~#M4~499i瞜P/JB$B!BfnMEQMEQϋ$Iғ !B!䂏&4M2- X#B!oRWiFh䪆I2RF')en0(\F )1T/ *f@N`7)xӮvMS2o@GL :>x4D:T 9\ ؈n ¢WJ6nfD+\j64>y]BΊW=k+}9U(TiTwpR Bl;@ʠ+W: mD"gBEc(ruDՕdq9,4(RD+~'2f\gO傌 1 ,TJrA \o,y RJ 3.0UӊJ0"T?cL#; ,+}(+uF0B+k lE/ pH`U99{.XJo1WD@4'ݟ&T &c6G$ÚXϔiU :Zӱ氁 ȟ2(!D$DbZ ~0k#ZSꕾH P)tS$IHlM\_G Dvj鎊"3DRMut@B)"ɸv3ֳVMRH*Co9Dv +xaI"H$odU|0@)+?YIG('芟z:$<@_d0vHȐZ4D9*B-R4wNѧⲨSE+WF:PN(ך4}X)jWj_2$I(I"B4=0T+]:AظD1j5p?c $v~q+_5ߕ6U3sf_if7K]>1.0!mݚhVTVU2r%->H (5M4DZ bC!$LMBR/>}.`UYER`?RLv\v ՠA,zT%I=R84"IH109"9J-SEq^M#"UJ8NoA/LnV+LEOğ!DJMr@9X帲$M\'9s;׃^$% ^d;t {Xo"J O̧յNUb}lKUQ.qT𹁱1J5w@Xb_&:B+YsdY7zj/⾦NZA,f% *t"=%['D+4UrjV[1N8'GśAp!L*c*lSGI:VRPU_v𼱟An"rkuk jghFD$I>߳N"PrmآzLgY)$"0?O>gUޫn82LpW@ OgiA cr{@_qHu1jBxW9W[}mVV?+/,WNS=]; D,tP=s)Q\Q24= !d^(gJwlս'Gdٗ%[usٚxrtZfe}k<1)4k$5;Y>AI!LWA-fVԩ 7I@Bť{/VЃ'A]Kw Jfvz9.Pu>.U$^Շ&uzl:R-˨vYnm@(_z-p1K LA(tu]cꔠ+rV1iD'  J39[t 6$ YϜ2Lۛϕ͹@K%oDgK3iETpcPV|! {LP; ȿT^,E ddח%09ml͵ח4j@ g}qJIXo2 4ABǠؿ(N%w[)geLXW&rvSVER"Dbܖ0]eu+dB'~g)#|FJIrESDbCbU'H$sf92&J Mfhʤ"Z.3oPZ ) hd7]dDhzEUueҵ-º: dZKa8'JVf_-WxOdB%qZPtKTDN]wAΙzjol!\p`QUn> ړ1SBTa 6NlTfMV\x zu {r[Q'1:+Q ^ӑb =p!iC$;|h \2 2ÓknB= ad4r_0 z5@H40*|ZO] JPv*T0/ pz b5 U( 4!lV9SڛLij//MX{) riX)UjX)IhT(W5 fV{Y0B5u\ PXI¨T!4- sRW7kyÚC\)޴Zz9ɻRK4q7Ez7ӳ_E"Reei-, 0;\H(Ɲg]SIC,WXTqiJ{ZVM 3_^ut*?ׅ\C%]:+SM2Փ#6wuڰ//N`.ܔe gԁ*XfMmjK*up:x☣CAByeϪ|g^ ޔO=# U|\YpTѱIlIT D)V媡< H|)tPG{\H򳌆!RhV'b]h̛]2h;3W}{8%t\LT)6l_Uqreؿ WW>,R xӡdBPU~٪ EW %PfUmڬWjVgJFdR̽{yjG}eVTp=G 4ƦLy@i/ ƦW5ܷ6 !hZ]yRp"|qѥҒ+HGϕp"E5_,/}cv#vI]ӣS1en,mWȼ3Ȕ 7@C^5ut.|Alhs=,͟t$D}eoh74F0W:E_ѷ(4 1WK B5^9 4" DySEeyAa>5 j`T xp""2w"P3P@ÉBȿZSꕾ_E3rUPLR:`(y**uVn*Վ߃Jj&G5UJe\PHD(ZF4EhvD^ B!Md$'h2O稼!B!ZS^u;vB!̵ջ}B!Bò!BBwlyS!ʧn(a5ɻD^{saw;a^[A zրwvvpGy>zv`uЄepyT|\ @GOܾ* CQ/>ζRrEQ`umw˗I1|t-q em?8^95Z;Crc5nR%ro.F@#<)=ݓ.`APse=jV܃/{:ލ֮U瞗 ԏin?;N4d̓)hRâ٭8ލa)oÎe=jGm{=U{K|[廓htXی~X8\Y-9NaO5_א n,Qہe=jC|[C=r{"xXݺ|Ѡܹ͢ u¦M?Td{W=j{GmN{-΁z4dg Aqw3amFv*ko/"h!e=U:MQ C8G7qK>ɷ-M +<чYyEjF?!  >]hѠ!'uMbDžB5~ ikQ/G&n 6ޜc(mr=7 N]ⷆ|PzY/ԥe`?of>ovS+u暑UI IywixTnv!/3g~9ۘ.pMUFj겻uCMYbZ5Nԗެ,m=z}u0̝SYV k;[IZq/rso4PK"Yﶽ?&\b"zwǁ"wqUkPH'W.3K^pCP7򆠬JDН~9vc#r90]}Dpc J.?lS'a[d^jeƭ7ҥWʭonkZwMmG>H ?fYO/s`*eRGKDU5jH{:p[}mzVZ[O?\1}..j?K=ϊyo~۫5)x<CC )We׉ɁPΎ{e7sk<,Fs-K|4QeGէbӢփr;wū+WlHwΎ {#Mx5CRQ5Q-JhF?k[ 5u|vQƑ6n6W y"NnoFȫ__T?_C)d wYֶAРw'~^ krPx4.Ra7VWnC80{[6?R!'̞U 8 Tfܽ7^14i_-;:  c-V?~%1gv}@4>}flڧoLIb~uΔ89LLXS6,%Ǐhܴlw|gx#?/|(Uyoe~X遼 lku,ڭxhVLzNj-W)ouM.z`6>4^ qs*_.A{|-WKطs 17v+ h^G1p졑.T xl7j5)b3b=iϾ/A@i{O e/7S^NC {#f}"OsoZ;bo:_dǵ: Z$xv7a{- ǵl@ljsMv7 =#Ը'M9vʟ gY=.7xfOSB"ݖO%~VomQ!pjW/ќ46WM^MVũ촓G@R yI}2w yEh+o<͠[nf5M e}.IV{)g[ix㾴. 5M |h|'j}ײ:.ֺcXxZ(,&/koPrYҳ5^<]F2Y{|h! JG u7E'[o.'*A?֋ͶvL5z|d"ԄMZfqHs.UkzOSgsÅכ" ǚ|V@لkjf|M:~MÒҡ\YrNW0Vxl9HB ]f2%u}kFI}<{־$i Niv5mܑ=6,wlsk^ZJe#8 |HN"MP;Q\"SiF}{WW>|\;n|U49c"[R#? iY u8e}q t//zl.Uy/>[n|ѳ)!b9 3]B+}՝J' ZЧlB3ԮƱCjx^7t҃O\=1/l{u JJ~^2Ջ'jA(H{1'jIo܀_;BL8̋Rel[G&=+P0Ć_|pK}FW***NNx/lYjQ]ޑ5v-G G3,+ ԷO6r@I+N E% Zm  IqNXյ[9q2ikC*x%8!ԐE8gqT@j! JƅQWK)|jIh8SYi]5YJ̾|ͻ j{g5[ 0%}/cj{?H@5/Hη39qnEJs=n\ͻ`8Cȇ_IJq>,B5΍S'YqB[?`NU?3g֋莥i0e:Ϗ;pUzNIXϿMwK!+7rՌU8B5O΄#zQkE#gKRAx9u]IUDIåWQiӦaÜB^-F̺wbM-sY/՜NG_ PXVtFb046;ud$(rY-kzB!sL8D]ٲ^0BAA$Kv–f2DE;Ne;kB!j#7`2 uT43dMg8p FSyI!Z`Ag.| GDx[ȹ3#B!Ԧ9:Nŋ ㌁iGNM\2fжckb%?aU~)}JhANlǩ+)))

R5BmR㟗$I'Z>-?nv/k3cťoX=5'q%d7};vzGt]Bp62Lz뼿n+c޿Xp'qep۰5Ni P$mӍTyo31!111Y5@Ikg% |ᨾ>c_0Y^~pϺ=𮴑M9s83[/_" &6}ߕ;Nؠ]K7{Hſ=|'6,]uABܶ~7??$TTd/y=Ʊ#|l%I|[~N/IP~f͛7|17? ~ Bl){ԑ#XXՍq,{wN6uM>|dڨ#ȇ{"yHt箮xhG|ԿV=76.~~?+X}"-۸+յ{̹}=mxv{.j=&9'63莏J}B}KzwNT\oE?ݴc-R~ݣaE?cMJr8R-/%e㈆aL=ܞwK?ۋѻzQ7Dzͯ6?uT{8C{ߊu_Yb~q4bnqwowz|aբw:hȵ8Nߕ` w|iٴ[o:ׇPe="y= ӥlٻM_4-^a g>j/8'/u?ھϾRѺ9E!_]2ͯV|~ZO)mK?Î=X2' 7KӮKq_&v'[4ϭjWv۟dph+?ܻyP9^xqok/OmNp;vmdqyG{t'/\׍ߝItyo~Pȟ#;?c6L׮<aG6CҘaΏ0K-SWi"`yzf V=bNVtS:2NnO˩yh7N?]BY`Ç>hT.!nw;$DFݰɉO]!@j1(5c.S젦 4;9V${a6nS:ABϘ)<l߳ng‚.1oTZ`/F̚X~ݻu7_z%՚ >wkP =.껠^qtWV9벺>q t)?!\?J7OZ:v=_?tTQRYfڥU" O^)4Iw/v?(=6Zcbg[)~cˎUxuwZ]{Ywgq PU ~m%u0xgPkGf)o ?\sDFsb;׾u!}ꁱ hQr\4 H>Q;mEЪMQ@4BE~"}9>0a!4?)@EO ń7?/I>xnI̚\`1lxBUW)AEV,0|y^Z{/..``4уLbRt7>{[GNżzz.Zb@z+N>79r^ClDBs(PH`q<Ϭg|巓d1X9#֖T_/;boĠ~zP2uxTTzPLƟ}wq,k1wԚN)EGCB-T=bޯ/en$@(hu lfH(2tf@YlvpؖuPlpTzz4T4q۷߾}5-Bf}hyXnʅB*8Z+VH_ %%2e'V'rT?1Z1?\r֯߰~死6>(Fz@ԡkd-fXYa `wxkvbRSuzv"]g!ny<6a=2?BycͳRyشes?mn9V[fON[ʣWfؽיp-_3Vn%ߞ J\B+iJXyi>le'W|Xrt|{s; yGC6z`g>7koZg~?b / ǿ6~]`;71gxbcOK ˋpWeNJSצ9U  l]zm_|˹LڲG7v5~̩3T|Ci׫xQ_?0)Ϸ_KbUOO: ldx)sPxhoظ3rV,]}# V=Szeq@;wP O^mxK#_rKgsv>>;a9-BNl_rAoO5sw1]/6ܝToOyΈus$u={E7/ں!^O7M1wZDj²=|dxOo9#ˁLᅖs%yW_1BǽL=~:+տ@1'`qKX9컭ד8wn xOyγ{&ʡ?}!k{:XNfkU@qq@uy;Z/Q5e8UsWj~Xs~[5k6.wͥ?6,y/)gxVlѲRѽ<ႡA44@0{ɻƳyu=筥#:~'6Bd]ZTZ)\&fj:d}6ȄEEV|2)(Jw|;wv0*Mum(l7(dhsKyEߌ_d<]瞨I̓j0c\ 75ߵjTga/n>=܃5Iyvg\V?u32"]A+c Φu??a#=s1"nYz-l܃[S^3V.7Vzt;m֤KQKXJ[6o-akg{>nzˢ萉oxsڋHDWx篍 HX쭾1D!/snN))b^A0w=䭾1ll>-؎w/iбK^i4 o-zPe}'Z*$U[/l1{[}ocټv!PxYϲ("1@F!ZzR)n}B9al}l=B>B  <μh4 !+BR5u"!_Qmʊ`V냬B6vxV[UYٴ yvԹ |zQKKJb:t7!Bk*ճAz˕y@iZQG!Z8k,BMW 2LA!B5v(Qc[B!j>x,B!_ B!Z ,B!jG!Bò!BzB!Zǐf/)!BV^*0Gr΃Z|__xaɃa_bJ7YJJy帡>nO*gՐ'Gu QtЧܩצ1G n7oK/\֖7n;9;^iA Xr^=z}E4rmϥe7/ͿyίmAun IDAT!BGfiq]K~󡥧쯝qţwvx~ӱ3&lOW8-nx}^ۼo_;?v٣/goXd+?~x8 :h}/[vYjK;n!Bbٺ;oۧo>}xF|Ug},Fp3#vlh>}޳]kvңOЁkROVoz/ۘ.%cw==%nʲ!f;{ט`ui7tbg yM B)kZ{~\K@)u6⊯1sHN1òEJ.dWbdvIL[]iZ^[lėT52&;_!*<\͂`[qjPPy(V.$8n!BtL!!l2/\ptZPqIΚYo 4cyi2K:~q#V!BiiɅ0ǀ۾nt-=͔OswsG/ڍƱ3J!B5)jܓߦjwST]AG;$gD+ 4m!Bxq6PE1 HT*'Nf͚ĄN9{ibرqMSDN<}}ř !9qh=tH;k& Moȁi"ј~tNHP87/>w|=ܺB!9U.0O6٩qNfΚRe}HG̹Wg/SBĤs*/f7򊊒9sTTT)v"ICӴN+))3{h4BӴ 0 ˲@V{N7b.ڵˍ9;j4P*c2vѮݕ˗-aA׮lݶn>7RJI Si˘nAwnX4`R!eg.4mye^7ȱcڵ vkgp|ce𡇬n$/!Bnh]DQ)Nx^7t҃O\=1/c뚥g C5 ^&z"ĔZm i㵐n7JeArL.[4Mnoș<|p\\Ռ4g ILL4_Aw===]^xQR9y0z1< PLB"U~=<D(P~ӝs&Zt…6 gz,f2|Ld,:到p VUH.)hm A1Ot׵5=H}#ijpTj@tnڻ ٻ(>pޛ "b;v5v5DIZ{bW ;!w?*w!<<{3s{w3s$)99))Yfz)zz-%yxܡXu$'¡IEp@3+H/\PffjyAAښ lyXP|%Ru\&-߬w(M u&b GG&.ݗ1l~5x<3SSKKKMPP(4R&VukjfhRd{a8&p}*c_󍏏OΝ  oRYmV5٫ciiimmPhFԽÃW1 Ɏ]q7O᫾c'#88R pˀsh~A|w2D<@R)JJ%er\&cF r+WZYX4377ѓ'J{D"YȂx;+fm@\za[fnL{RirÛ;ܭU۬3%g&{v>6AMOir<>V$qܢ";p\ZSMOzP(,,,\\\BaAA>I@ͤ)));t}I׮]oܸq%\9Sk4EZ_\0 %')rG>  `Y*K=㯪2{`gn_čKh ԼBX2f$aE"QQQUAAL.?{ZZxUdA%9f4GF8m4o0ޣjs%+8ezAjk&PqC_8B4r&_Pt s0~MhzaR@(sfzBr}*zkFL8n/( ~~~2<Bޮ];33GxyzUs`)SOITR^UBnSoM2_Y8(iARGDRtE!xp!j:^ò yH|R0J-)):Rf smE)e$dfwOrϝS2 -,CA+p4a=P!P"{0+Mi5~\Rj%=txl,q gy/4T YT3eiiinniER<O7x!{;'wm׾\& 口Zjղe˰1c>O曆ʝ)xMK ڗvjIE ;bl JgYV0Qݥd:r")JR 0D<12bVEE...:)J"XgdMLR))Q9\ދEh"'MӒ;vh {zzzWU %;bKQ3#ii/.NF+K-}W̲c=̬⚭YD$wuyn|iS'k&E5J561 r33]7~_Mqֽi4ܣݏ ]nVQ)9'=AA5V[30G!r#RdyCY׶&<d}RY/RϾ7e(Jr\777DA~~~VfD"J-CQ|VZieXڤ...EEE11199ݻw<1iijgϞ9{VWtJ)Or."AU!z6l?siVNQ@w޵׋(V*JK+Q4WDϺEGG߽w/+3i\^XPPx̙uxsYO/jX''+rۣ{w=3gӯA dJr ۩#/܋W*6VyٌûuVJ%O,Ͳ=,n2YHݸ d'SIIIjZZaa{P/%"I%;w  B>b[Hsvf>zGnGΝ!-^7w74~YjjjDDī$5$IO:%J+G|xoHw |<̙u}LJ]dz/z05dN@@QGP G5* M\ +AAkސp*7+5fg[.AADC^לS}fR3  Z`  afUV"߬.50AATbFvK  AA[AA֫~YZPT=}8AAAus8֕z^Rd2K++GAAAz)** \]*GTM  Hkfjm=MaD"Q)EEuC   QP[YY盛W!EE9  M#--5d djp  o,* Lm2%AAAHXOAAo̲ AAA*Ggf9*  BCZCS4R75J? <= *m{~b.[Q?6/ovk[G^U%Azj  l M}[RTg]iCZuSit]xPޞK}wE9ML(޽8V ,ADCR}||S bf!m޿f7 ,uMҁ nxn=di&F41Zɒ& D"auD*HE[7;VFF ,uMUk>ߔAv;X) ʸ}}ݼm/sEʱGv:z%o;fٳL8{ZזGljX~ͻp!ʴ Gwle3OU۫8-<ـ)NNѱCǎB6|D{~ 'IRD|NzL+C^(3/>Oۦ~ڽ3u?*UWFGOUADV,-,rX4LneiYTTVR+dS+^!g!p+:8?3X}2p`h߼JE̻h{o#"-eʮ)\gj_#^ʧY?eG>y3ӻt+5Țf}VrʕaǫH2˸?v7+WϬ}ϱrM+c6L"sb[z$KREzTAA4,d2Rɰ 0BdUNTv!~JW)#Z9s@{Waﷱ\Q*Koki? 'גtI=p@Kųi7%F?"T)qgM$gP8\/~^8"s^=[!Xў?;r'] -:[x)>wurѪ֕n @3)+ˎeK KY]kKgjk6i!+gl"̓00EOJkV9Tugl\(PLkOU:Xy=!~m3_ '?Y.,|rfy'E6&zZvT^Cy!+JI}Fjpӫ,%7`Kާ S\MiYvɰidH_xo=يh nշ5Ϧ+XUQ5M<ǠF3E ̺@RW{,E\,!;>cϣg,po_ 2g_VZ(~q8~ =2 GeioaӺX FvsJR@2Կߏ1p`n!/bY,Suoo, yPKٿWv;\|!G]k꒧2@;#.Ms,||9,XE֍C֭}ٲ+: OUo_z[Wl˲Ҍ;7X|ي {>W,"~c5rBkc>\Q{{՞R2u_>kZӗ|L~v#/ۮʻrbM|}|۾3|5?UyX[FzgQB< K~wm.I4ĝhЯ~0oGι݅3}mF8^M[t4􅞤|)k:ACGͺCs.5mehCZ=r~I~ndF\~ug(A@ۘxe߅߻C߸lƞTm$/ ǯGI.̘ȱ8 ԭ<B{?};cӧJQʔǮ,'/&?jW>9Sh_^զC]M$.yYXdbAv>qڧ3l|<%hq@GT,Baus3.8q ^N^y|eڷ v'c- m=[w+8!v\UVs |}xOk鑥ʧ֫*x*ö}/MrpUwK !ɏַ)vzB"s9*8Q˖Lέ?>ls3zL 56&chV> Eut '8bL/~,zZ S{S$ɼ,*: P^9/ݡCYU~]+Z j)S@'@]Ϙ80廱E j.ݘ#2:::dEƪ\QSZL{sƻerS<֣j=+}<96J> 0\E ,ڏ騚V-<) 5 (u= >6 dJ]F~Y]ǯ^$[ef<ώC?泾n>Ck]eV¹$>Sa:u,k !x3(cPffh}8>ȐzcYکy.]:Y;y'McӼ;˼'Y ̎TcLcjƷpLڷ=^8k3zGf[OGl5YN;q&α{}MxSgۃ^|ՓDueYZhfıo9bhSsWp '#61-߱VoL[ 貢Xj{N+g@`o2r [ yLVo&̞(h{J iˮ _|(eZ׬Akިb5So&C9M'}8>ȐzNw?|l\!~xl//~Hwl轿l`1$io -ܿpI G|hْ-V߯,I9Q+$>mM9j" +#Foc5ϮYcAR5 "2Yg&&>Pe[|JYƽg7mȓHY Oo[ u*Mb0/ZvU{T _s|J*wvjH$"m)uC*K]ӧt089[[ŅuۭY~M)ʿ||< o'>5*Doƈq7;{m źILJڵc!C|}\EQFFF"mQO`V!YW&q/Ng:);pu5jq f` y+n|)p]S|aDnTu;GD$:vəф;w2$//e jQE7voxRYګphqm򳗟;҃<߶WJ9NJ^ VL޶jX=\Ewd`>r "WȄxPU_y^|-;^9k  c—2GIʓ}3Z ~^0{"Q[O}VcWrh-|18mY> @E)PT*={T*09+W / :'sAiF2,Ҹoݡ<ޥ85.Öd18%Jd@ɡK,-Wg҄MwȄgKD(&o4S|ja>B:u(fVۡ<.6u۶RhO//G'זE>H0 6'vx2}|^~H34V&{n,HIJ\VYy`M M:eESY E;n5pFlu)Sc }ׄAq;b.vw"*v\9e\ 9o~A3dsV}P;a}޼pztf > !xZ{;AD=h)+fĤE |$OGZ 4nBA4(4Aq\+Li7رsW^t   ^ZXXjN]=Gڐ QRRT*9\.MQ/?烦۵kgnNzAըᘰm[j7dtasa=A Ľ{ (ianߺգg)Avx EAD5RD,h~^"6607WTY MWGIfXc%Ov0IQ~&ߋp9LeNFaD(N Jx|xΡQ *i]'z Tr㖍mmC?ՖL._ G [jo24r5G^WLXsG&cy߸+_ȑ#[n 51bQ:7ԭV'^{ <ƹ oϬ`?(")iۮ'a(abT3QRxtL}ugmץ$7z;DV_~ȣ~0뺤V2iC'NiwZs7ws<1H%F~h']LK:6ֹ]m]KPEߋFwhdecmԬ'[c"ny}m s\=>\m=Q&sGwe덡kU]l5?6>!~:TYa{,ؼyͥV>h" ɒz1Gne!4VDå֫|#1% ̾ӉKj[dxfPg aMm1N=O5u0-2ojȤ;5I*VUc^-~Й[c?Tbffj%m;i_F7󿉯#L72Tۚyϝwy'tCvvۜݹ/xz_Y?*ki C1ؚ`)aJ7?G+vaoWzFz{q홮tXitq bgO|ʽRoh}V]o:rU}=(bk1nB<5EmBL)Vwv ^+Z]# Z&9=eA ^1 qP7m{*suE zG휌>T@wԻܔTSH|urhujO Nt\.Ohդa>ʨ)rl_:X;l?~Z۷Z=YFg%niQYYai7Z f&$(@!㑦|*/"jSMgC畼w`BmYm%[+18?M_xɳR &1%k DDu"]Va\;K/BV~]/'A m~G2qW=pNT[eš g-]~ϗ@7NNX|gΨhoA˧K'xqX㊏ yĞ[ң-պ(E-WxyWgd\ubq}U q[_~{(߳&>qiRw}8ha-2LׄM?S}"Oڵ3'qMk,О[xˁ6BRvnFĎM, S}7y}Mt쯥\:UN\- IDAT`ֹ|Em9lM?ă:}?*'F=cN8ӏDF=<<5Yy׹a׉4Cu>AU3Mv>鬚ZוOEmi{/ݎ46Wrt|A~pyd̤3SUU^o7n-9iP“j@-&.e(PtSm WBU6Sg y4Ƞ0?oif>?"W yY,djo7_Y])gpwE+ڸ#>s.ڇA@GnR>_6pDrJW|}QA] ټhP36l(vj5u^u;qƚOB&&~11oekrS9l)!M-+#OV-Ϲ&*>9~Zw'>ײz|PU@$lʠBw };rr&S <㸬 Y_460oGM])yig{Ps3SKiUut^\ÛSvבA)s8yҶ"]O>}qڻu2R(1 ޚɥɘӅermԪ= 56-} Ԙ߱MM^z:7:Aw#gGG{~ka7UJװqQQU_o7j9*7fo*#qr׊/\So.Hf&i m-T ~_%]Joc>@UQ ߆"վQqafZp(Yp`j@iSRW PЎƵwh86ǏTO[5{]A\sӸL-yZZZji-OQ-?,4q>]hBFfkꢧŔ%(9cH;7'(P\b>(cٖ#&m[9(T)WaTQϳ܁[k:ƒLUG~^ox}j7-.cbkRnb#>ȗ08n]QUWcw;#]_ }&B6(pK=1.M^>8o6P/9bG[گCT.KWs]hO 0XXpdod[\uS^AzpQ_RM݄W28G  &s8Oii1S qUɖwv<׹';nbA)$DDDiTp'6Ce%!?DU' /5+8$ \;pth @-8N&~}".CySJVf\. F yi>@yϸYYɯ|syk;^R4tcdF)QÊ (KԺok~-ˏ-qxt{s+ZY f9AӦ<1qdЄZİQoUV].U^R v|@*X(u׉]g}Z۪"Dbk%|Sk[K5hE8b]J&!S7ju:yu5>Q @ G(Hllhϫ} t}z廘(Fpɢ 6v8]JP QIdjŽ gNa\C>;2%8p3O닒kbip 1p> oaVONXwH]U EHxnx z>5,F {8yM c_Ώvp3\;fQhvÃ.ȺzEUA>Bkmz9Spk9V$>Ob X,p"όk[|vNEw5-aL?Қ;f/MLCwuޤu3?a?kiṼ3Ul%wo1o7i W &{4y ɿުVu^NdZmEn4Ŕy7 k$.z]}_C/9#O|>{۽,YFlڋOmf4S&;]u:X)Ͼgw(S[u_'/ }Cmdegid} t}z 녖Y2wxU[*&L)LJ h-;da3+y3uoM';Zϵ98<]]ahSGOO?B… "dǬ|N9V Vf5xc~hu[]08a]˷`_0=31`9?5$Dx[r:A:jßaen6NM'^mh6 n7nџ n^MumTΙ|& iuК$d=c?wu[ %M o&$~&5k5 y;w5n7Sr{|"(A߄纎޴gۨ6ֶ{&= CYt]nktتRҾ<ލl,<:*WYJ Ͽު\Z|>=za4mҞq[Xݍt]LᜁsuuoH]=S NhK9p`?WN };7=lzLh4-˻Gi7j[uB[N^~]L߳ɎA=p'o\i}_>בTM!]IVUZ׺m[iiRܗטhO//G'Z(Y}~qUPt}-HdoLmÂIXnQڶ:|}ЮΦQ'`uhm'YFzzbB4M?vԔs8Jsϴ~t=SB!H E޽6F1rp\ xC)bu|lLWozU׳W{]#.r jzTl9y2*JS(BT(ry^*"ѝ[ؖ&R`~_? %F3pY#= O#ԷQ0VQڶ8^ ڶAXɝu+N\uA(TZZTTTDVSPLq5sh͚ G-o{tK+4AA "jincl{~sۛDMq\5vC aeYF[&?z\TT,6s\zؿIa=7C߼7L:m5FAU~C0Z]RRwXe*F x-Z9vT$UoDgu  hXUb1ZoIAAq\Po |A Gz  x}\] ~ e oP*Q&B!rAAA7TZ_\P" +B~ٲ)f%k)jE-zvtQLObɡs)Tk""Ao静\z5 7ѷ_u>Bcxq+q/*19?:-">fWOGy 0~:x޷ckwAo2˳YطLHD 53AAZW BQd륵^qa3R,eJAӎ_+S^e_XwAjJlWP VwTqۏY.=V T+LS^g$ը+bA{nvseeCP6MY< UdXAQb*1J@>G3A,/ofEEְSA5 pXitq b»tsqkF5CO߯Sk_W9^㪬? ruhqҞTf{AuCs)%M{g6U=Ȍtor/#nޜ|:fn>0=[y?tTIǾ^`:2[I}Ω|}L׆t_3-;,BeBj GHBVU Fo6$*lǍO0`d |p&ˆ.ƩH ~G< U`/ΩA2ʲ;O"ol/N; Iٹ;&6,J᠅3^6XN{"񴽗nG^Eo.J_>]_:ċӀt ڧRX)BǍk[eX\mqӃEJ^ m[o]Q74w|֢;n209xu~LYUˏ-u.˱p]Ĺqߌ{ "_TD3vE+FZtyx>Ǝmq' s@E).ay eY?&Dsgmm}5uo6[HAŭuO,ZZ=PZwEP({=2o~(hܜ$oNNn"ӄE&TǬY[#:vBi^TsTl:\.Tx쪣%.Isom5R!=a{ 2%$F} (.B& J AM @"(L@pҠ:PÒgɸ̵,OʗsjC&,bzI_}`: %29kߤk6d ZG! !H`U+ا`v1y < '@'S@VVrYBtZJa47k̡$ %DaQ~uKY8{ï0'͕\1\)F%LҳAV@܇R.1Ps0|@5VP @iŠSGiC”^:CnF6\vy7gǗԳ&>cV.LKs DB!Miz;ݲ%pw߶E>)`麛ٺ+{\ӌ ^];j;om5 %n;yJԪRZAsȒka!(#!~@ ;p\U*@k zëLV<~E\r. 7%(ܶ8 &.Bs"%wREoNϺ $Hc]L KFKdeF(Bs@0tt9t:[AzB4~^^sg=r<8$$LWGNzYn.Nr6ʂ]< _.sFXLwgiyVNc@#Ϋ/Ne%dZGg8miV /OfWylqvO9]ɥVd4ZυTr"Zn~lw8 0(<ZUBH̀~Fl,6W' -`hg$r; AW>~5F.7e?*@[WW'G.x;:Vag1cؖ `Xw|P)gm֑ dz&?mk-B616zĔéϯAvr748'cNoٺueEE:6S 5j0/߆/-#==1!ٹOvE}}E h4ZBGX\ZZ*Iܘ0U}@!֝ ~\|evF>drjoq(FK:"!Ia@׆ !Bk,bNPA-; M: B!,[4 5t!BHm!B!B}G!Bz\ᯐ"B!Uгe0zsaB߈;Z8:y3ϯVsww4iGsvT?*?dLoȊ;QÆ?^!i~{;lUL߷}"gھ˜*,fl(6L` ke?B[^CU_^Q]@R\ϏBzi۴ ?t-uu|S)JLrI-܊8wEC|VߧCKWkgsqǂ:9y֘kll~Tll5i>vB~~M{\gHfN6-f=(̿94xؘWϯ.{ŞK~ &=蒽?WCAv;+\KJ :]GK4ݯqo0Qұ O^{yv 2JQ;..hY)!Q;>s=CZsras]^'Ra9282& {#b^>92Ldn]" QeaS)M=Àhwca8j jnfpdA b9 z=`/r-X~z! >{ }_5]*NܔC,Cs)/ IDAT# G qeizPKgb/Wr>Cy+?~Nd@rTY= fw(|sasY$HkEO۱ڭ[ `?b@Oȴ^UAv.-LϩYFJW 0F !nyl{24ٻuѴ6\Mʉˠʿ<؎~g43r12u׷q+I.N'8z_uu+)S=Ҵ ;ƯҒˤi;;L'j<1VffcoüQquZ||e_Sؙ{_t6I(?U=Fk˳A BmL+?pt r9T wL H BkGw? @i+tLpR|qK֝T"'iiK$u-+,ZU=t͌Ҫ_]M)E`dc 8#CaJdYfDO`@"hbaRe3Jd Wm;yܸTYi^nݫ>śwfڡ5صra_O'6H`奖wK{ʿ<Ў~oOG|*a< #.ټS2@㑪*`ZXXyj_RQM˲)׍7Y4VCJG*oc7^"? a]7pA9q7Bťerælti ˿DR5 #'[sNoь|rR(n=%O,>]unRn~լOν7keeB$EN}کvO,l-HY?.'dч62:~Cu)I5gmH^C_[8G8qnE_wxU.?8v}C1}}|jz, #ZAqc#:V`B=A7[ 8B#@ N jױs=]f<Ǖص'P߆o1^UGQp댃:4.vlE} ގ.mլAgJ_kk[ˣZv(!KՌ5o6o[mU,^ؚح=cݍR_<+w*d㓇_W-l% !e??8dXw|P)gm֑T+ުzũ=.]W/¾f&^w`\~(ƃڏϝO !nbip O,~^%1!e֕{o _;8[X|PBKHOOLHprvF]x@_bt h4Y~^ťb{Ϟ$nƄ4 =^P :^ui_sk?W~dI^C@kg;l??drndX#hIR_G6! R hIgDK9-_{}+!&Nˌq]˪+;4Ϝ_ My]Ӎ~A_{}X#k˽- Fcro 4yFi.A!B談e=B!B_=,B!aYB!Wイ^^KCB 4vYCg Iּ,%?!G;*vG!E̷̬3 z@$[N UE/mqk?f^~ws9+?i=hާfǺN秚zf΁qz%q&:F /8׷[%MKlq;lIZg3n932@S.kilaqM{-uSj Ydmx\GW28Cڹy\}+Wr)Yp{E`7o2zۈRN`qDGل[xZVӾdXCfjR#x}ͭy\>oȊoߪ5lX#rɩio&%&ffeV (f M?=gHI'YNt_%eW`haf2bFZJjO/ sZW}KA^IˌwK|LyɃ%>yz9C?L8,YQ}w~p{ߜ-cT$t:mڶڵ$Ms7cD^ZdscuDP<[f$Q脉GRBEϼg|;d|6 ,BHF]]> :l?`@~ۧg^;v`ee2RFʰzi۴ ?t-uދp5XUǖd][>7q2mߋ294iGs2ы-]*nj/thjz2Ќ7u񟲻j6Ngf.>g svqs@^pyٞϵ}Yuuƣ6f49l6A(i_^wA-<.{oJ4X&V<ݱ+ݺM y^Z1:&c܉`jEW#U /̽u(Uw@}}`[cKS%S<<L(zMs%\v\Ȣ]S456-PsKqUWn]1ԓabƠ<ߒCmjnf6dfTa|rjMy߽[.ڳj_3W'{Sg urx.vqf@u iVGSÍ"_Ihy\?gS#cA-14C #zlt{ʣ7qk׶.Ŧ8fhɝYt]סs>9t3KsHY͈6q:z/V<|尬G!E$Ideee[!f==d2k3ŝaz\ETҴ?g]OI0`EYqc'n?=vhю1_n 8< -y9n᩹yZ/t>:ɡƣGƼz~u'0/Uԉ1Mm*x4E?㲐#847I}n~ք?Y)/~Wpq}"IƵwv>.T:G] }pFQtjڭ*bʵ伜ЭuJ c}bOܪzTȹ6?t@z+x|#-0b 24T r[VJ=3@xtԹSɝ.伋Gt=“Wo^¦TcxnzQH^v *oy쥏,X~:Ӥ5$?-/}u7ٴOį6;;SiZtLc//aGoER+_;,BH \.9ڊYL*O)eϞBuW pi9k׮ ǩJ?0\uRApGY5˽t&Vɢra:[s"ӄkSjb<8u@sSALyWy+x4n?Sk~:4is^$Ɋ q^^igkV97^ֱz+B.l`~wQ1-Z`v 0{Κn#VwTE0Xtiabl|N%p̚0z;Aч{,O_JXF%(r|2MZ98$Uu:0 0qDԻIx~Ep4+'.*Nj$zZȩڮ<ES yeq%pwO~WwM?.eX6]:r_.Ɯw&KNϴkj7;s&US+_;,BH%uӿEڛGtl\S C9;(qxJ3FUM̘YQ$8A@VYBU-2nRS@Ӯ`{cH"_+x4Y2UsHXL2-F]yu I-MlWг_'/Gf]&GG*[@7:}뱣\ x?[M>&FoE7c@{t%TU{qzk2|iʞ>-GcJKԯ:]Ca]tÃ7i=F6\ve7=g1oN5QyuF/+uV oqaz)~ߖz0X@ajQ8gToP} NLvnt\) J OVUohdyt3!AcʒJh^~gQF ,]6;}T,#8ziY=V"ò!Tl^Se)9W8;tQܞ9 C'';E$aǯ*bY`pk!$ꞻrqiܰi3]?nI̋/q*&ͺz֜!y*|َD"e"H$VBY^y!iq??\) ]RYIѿ1ZV3Y#Y>,K=9}vLFQyI]lHcg7K|b) ]bm[Iەkf'$䵪o2,zuOˊ쾁ͫV0 H\`d@V~lD쩞O]KM_vEH\~PHT K9rHVHo]0 Ӻ =[e[=!N+-ˏuɮ$]mX + {VXVqd0d?K蹴.=v=D"yt<8VYK@E_wxU.?8v}|9^}- y9[Xp&0bu5y ]nr].OJ,p\x#~s21_gLt2֖ zվ>4I]974c':rE>?:kl#߶2mS ջ}uZnm\1u(Ô3v6ˊwuO`X svww0k O ,zG؛vƘwSoG3xxu L67#cCK]+-s:̶ڲQ{v0E[zw@3+K sK s˾$@ٝnKs3t| :~u娶.ξc#\\ ,2ΡYϭln.De8kMN<@:WA]'3q"nbip O$zĖ[WVTH$ױ_uc_mW'Ft񢁾>ŢUzլK=bqiiX,޳g&  {f8g%I}ـBkB$Ax74oZIԹ8Ǡ3}kck-,yq M;g}i¹]v:)]k-A~>X#Jj*Ƴ֤W:Z[<_o2┋WIе:O߻'o2 !4zh^[oi0!G!ԘaYB*!^UB B*QkTX#jHX#`QBaaYB*RXl=B^Y/ҔÓH? @^;`k `7?M!7}]i;!5Ke2M5BCUl)0RmG}2\Q]HOϙ2@pIGVh]B *+bf; bbT\\xN{'Al86GٴC=bnzmO"IHѣ?C b <g^x.V@Tk *v:jbr7`Ҩk/M}NK}ЗVb1eْ\Ywk6{6/pl)H$GA˖BMqLDo`1@lhe_{aRh}5 & 3P E; la e`a~ 3fߔ}]q;!u(ZE8wnesz!7[8t.B!Uh/xUκis [w=t`H IDATv5mZ6LLkn`*wf'@]*?G&Y~&H'L2;ܜfm͌3R #{6  >vZ\ H!VYo {oƜJt `6~p[%lYދA.‘>{ }s|[=8Ud@!}(ɒ )R2Iz!q] KV$ hL:tA@gSm sɤUY+ i-$0Ҫ4$yiej%w4)`|3m.@6Y`^{vT™@Wm;BIu:QL['gB!o+JGr:Ӽ $ %` K˳,&19;xI JdeNx5?(pz 7#P$xW󷠔 x ATJgQG;P djBJ8xYB J#k #m!L[F0;y9k@by9nO@2{xj6 l-w?;)hНGuv񠕏ծ40҇cpÚ ~a3+hmaQ? `OvX&/H!MR|% !PHY:M8o`+S׽j5 42vn]o=rvVovzIii!tZHqL| Rni;\uZRlGizG!԰稾y0u 0Uu;BHdB5(M֣Ϻ?,Rg;BH>"BgBHE B zR/B zR .A!ԘaYB*E8!/,BHEpB5,,BHU֋D!!eV$ſyCJ ZV␩nBò!Tl=vdq8.M?=gHI'Y.)'W_68}\B}sT!# -bF{.˟~^7C=ʟl#ohg֧ Bo#J"i;7ò̹|S鋐i2/>;B}_BHUwSn.-g8o/w1w&N!з gq(iq3ݍd?T8߂B!"%yv%YϷx'ެM蓵xH}G!Ԡ4PK_YMvY{d?3XgY-Fp%鳖tdY?-i-ҒJn9 %/ߤ6]|qcϾ),v X=ݖ[%~"oȊJzwRCCb4ճq7u}v͍i ^mڿ6۲BNI$NZ}ps6,`JYuiMʢӲsMU, ܴ8Up>kyo4Kgg-|R275ͣ@{+IKkce5g`֟2Y3%^!]hIyPQ7Nemy𯼋nw&H]RgE8X#jH(  SL~%˄ƫ#ږ,1k5Mм K=̿lh.f YM_$񡹆5VOij")/eE7OͺaxLI቙bʜ8Nu}ӀFgmĪ)$w2 7G ˥ ).ȀnنzmաĤ4iךE{/פȰJN&:ݭVd&0RĉϬgѷ_5\βtA |R_٥/xL؉T`;3]v2'*q o_鎿zt\=;7~WzB K3py2<ݙ!I<½ˣ]:x[V&\pi˪*&(M65Ѕ0sOSY^7NuoE}_c˟-,XX,h:)eD̤2~-݋;VmdyԃRˎkXz,m5dV(Z Ch5aD|pYLV$·k:8=1Jh:. D_֊Ҥ+Qi-)E |-|ҩ屯 lZ@^u'C6!ȿ,/:6N?s[e+:Iy⡢Fg*[b-Mj)Dz!PCÊ>=)`'?/dNwi9Р,M9vKF"#$U(>69L;&lg%ͩ{;S.]0f[QC3#pת"V|a BcUBAaYB*Q<[_E!԰G!)n=G!Ԡp0BDt<#jPBaI{EZ^qeB5^Bx4t$ce0zs!.A 7G7c6%Bj%a!Ag8uV+;]v~n|׶4vB}_Y ~Rne#'=j&a"ߩ [S] M!j$+(h׺+m_x[WWE%RX;]/I+ a|A޽]aZZ{G.`rhZ^~іtVvqLZzYY!5ȜM|ѢcV [ZX\.KSty5Q0Hyy[Xy\y^ dy׌ha]9R^'kP fw@{Δ}{xzBvmըv\>k}7"!W3` !  m[7:;Re70@HSaH;Hq1VPoUگg_|_?]}"y;ٶ9mX3 ß5$3m<,>,եvG# <,r/.}Y}X]^Qg#Vdܥ7iU"Wh)h\yfr[v /Ǥe?;%ȲN\0dLZW?{,lu|Cw^Rqӯсf2bFZJjO/];1ptRFJđnR-"Pc^ A0`J ZCAPt {=K@ }wֻq_q.@Ka*Z %mat /~Rh€ظYzNk~$^I>!ۣ$r(N{Q6PX즛^ۓHRnRnةrª f;ݙ;켗!=頋2x] ^SzFuAKJkM!ם7ju~2} t +ؼR60oπkߏSMyPJ C IxH)G^~`odg T @/0¿*IEzzaBh<~ːL'-yqWg{>׶riڱnL+>Ϩ2WgqwOCdQĮ]s|M Qgze?Wu`S d.<5N `s5X E_uEkC=y.f B&<ɗ<𧩎ǏzbXNvlۣ:>19\Gcl6Ft6&YƹU ocKǴYi|tj(奰v !(nDoah`¶P"}oh΄.y\ `]òŐHpC S`?&Fk0e!d( vps 8g;0-i?Xo6+R0mz+."J'8r9a㤢Q;oyhnѹ|Ӏ#Y[/K)_\6bOgWlݟzEƍz=spQى=iOC, %Ъ?h˚^IBٿu",[X;8k2Xj*f¯}jFoL䃹_ ەj<U7ouQ0<?hG?Yp* dl[*)ۑq4 ^+Jg+ܔks_Jomwm׭¨WQ'Ƙ7Uϰuf^1bfFmO32qxZP?iLYVv ڶ$u;{4ϯwgW:3rQܕRaxȐIo?I{YU3XIUOIl)}Eqq^ဣѫ H#k0{TXGc^{=Hޯ܁f>ϱ;3;~7;;{3ot)yqVfg >S>4Ĕ!>X{^p1zHB )sa|0E..Ʋ%'?ű$5 6.Qo6a $h]~uE+O@BMq=+uqROPK=S 7 L&zS%}x"w# ;/+JT7]cOh,\u7.stڏGobcU 01N\oѰ}KnM8b>zs`\̈́QHJ`i07b4M/#rGCS|h؟8K4HyCpM WԦ#yK~M9uUhРoe ק{: ={nn 9}$eظv|yQ6E+㏮G)ң &'TOql2 S t:&PYm̚aWXukXfj,mW-%ςX6$?\N>N??2n1Z˒El??)mo6S:aQ(,1rFBCN5pQSNmV~ 暲{cUtڒ=ZЩh<3+j 8VB.n`&mFk˨w"q=yӧ=9EأVl~RߜzAE9i~>oF^ƥTm?l5 ܤyQ9RsaLtt % { /]\]m>yQ B%ѿzǨ@si[^ Qn4}Դig&dz baXeUgZpu]3oSMnAkɁgdXJcL|>á(i.U-\#۶o_wovrv~;Q MuWĽxX Q-btRYERophz}Ij *R8vÌ.Cy|."n .1y:L>f[fd/we2\Ç7𳾕s)'A Ryq&i4zn̮BRN J @ڍ[OAAU AAz rՓȞ bUֳT  zE&K,-nRDEPTEm\Y/rC(uʼR䜇\PP7@j;?A퓴KNvz9Wr|W8pkmc2im!9wn*\re涁[ jST`>pLf{U/D9ޏ:"/T]p Z̗ޛtwJ99뚺/l^Ӌ=*:Ng{|OVNs*?G]OM>67 >zATX p3dΔ $ 5Cq%V* i9OqP<o~]مr(#xNJz Ϭ3Z;DBj*۱;U%׵KQ!٪!qY.:ïyR!Txe#uC(zYK"|zBQ j;{ Z{H_q)@˃_h kVb2oqK AQYUbʣߣ/ sP4U^aUK,y?)MC<],D;(6i0aptv&Xf%h!Y8\p+[C1d"{2߾TCǵp[/ݍ&1lENVLY(5T$A,ro'UY3yzԪ;hkz[Z5[5Vy"wp\3AJz׸.(Ky#FL%F̜PXՔ'A7[5\1έWRP7}kއ ɣ{ΣSkͼcqjιc@+~ǃ[\o]J/q>?Ĝ K|9=wy)5T^䄰ߝ6pݢǝJ[_ngvӽgkW3ϊ I~su1U2G,!M YzAT/UVM jXjXs SoHp:<6-U BW'`67ۖ.Y7_;_ٝu-z_q\NvcG;^oČ[xRSZ1 ^=йFq.@q%vLjIo W‹1k)wc ^bZW?+^_QV^ހڠoe ק{: ={nkX{ )m4H~/tX8!M̽w5.9}$eظv|yQ P]xدx{ m1-(G&V|Zu*XTz9v3COCߺ:)K5vG:Ak?tb A9|QS[zAT/U׷^==C.(aYPG|q8:4R31x^#ph3G*rߒ\WY(dg(aRs)( % 2>NSiprŽGkz\ze.@ Rb*2'!I%`[^gSN<-M9HNSnSwoA3J͖2rr^gfgZZhcIRzK[_-)3`dVxFB/ADU~a}I<}1v#F eX/jx3,PT*HERBK HVx|@бI`Qkc8ʂ 2Klڥcw7V40Ǿ \}z{vDV|5r!b1 n@#iө9O& }ƚ#~2opCkHGߔk)#q̒hh>?_r~y6X \Bhd9:wE,99q#D奩adžpt%َ.v  ?uLFu㟘>hdeVxy-7 wRu(䚹]yɀɸtJAqcNSs2< jm*7Cuyr>l'߷^iDPԂ@W5E! I*xVId+{~CznF(tϹ)!( wet!Q=AQ$zy]`OҾ'=rn;^bi,Ջ;[My@i}}Soh2o<0 )<|N5͌-lhSzP1-3-`j}{o{_k\B ļxWT޸JWL-8 m9Ê" =Aϑ[k=p:K-:z JUI'ڪ+H)%%dNN_Ʀ*!bBW'`67}X ֹf}r逞׻sUk7v$Aؽê5e{UЅMxWz @tXWS}`,B \a,+Q6>FL*h:B8X²GBE1h=K-:ᐨ Ќ.p\^o:zz\Pò,ȏHE.ѡM2su )C{9?2MSp`iTPFq((qhJ 82U( '-`ͽ ;_+Hyz}ʐ1Eɘx7Ԝ a'\yvz}D>qc͑^_?돷cu!#܏Ċo>.vsl"ԭH2rtXrr_ @Z xaoO܇\"D5RcN H.66666Jԑ(rS9 IDATkRZ}OǠͺ8cL|KȻ:kI99~veS{O/(=鏖)ss+_)ޟZv_5:؝_ZVݠ~oq"B,r v&gO pw9Z^u-E60TV:F nj!l9fրZeRW/fZBlcnw?cpsq7<LcZyي,,"{V>bu²h.jg%ZZ-ZSvFuH:=XdaOrx1|KOGM? Լt֪xg ٓ]gi\_-Wvȫk9uJ?ԔSVzzb_Y@>ɭmK޳u=V_.od?dxMno2ZէxTϺlRKՒH$wЫW/W|ww={}﫪^lAo37qr7A7&T/Ϳ`\pUSf\~}T:&f}|-W}{k*~vݪV۪\\=ƅ"¬`c)H.> z1%b`"'DXY(XSa=SEAw_ak,\vr}Pоoхx5ZGaf9xgStKZ~8g Ggo(>]$L\?tLjrRԥՃ 5_*)L~Bҽn]L-+U/yԙA#ώa >\v#,z^N_F<=4q>?Ĝ Kє amwRRixw4lu˟o-ru)zPS# >Wλ!ujJGupw]B(ܯ U[?֧xT:lRχU _~A/J5jԯح:=2K]7pz"wr=܃x(vT[(k'4h瀺AFomRl ?}+W yI_$Q98Maj"f$]7RSfl WhWes QѢm-z?cز/<$JKnX#}7]+Pq곤tX8!M̽w55m/QvLx\jRX~5si~頔x\|,+{@_NV}9vNMoNݜ1mi GkX߸3oe|bW)LSVAR2(ݧS.gi]|(s5fCAoX_9x(R 8rab\Q`(Xp`l@5SWs `R"8m1 +/طI;dnvrM-rQ4 |l]\b`aju^{p#33Qf&dɌ @lk>B\3 +o3(#ݬ7)ҢӔ͖20QUY'.HQf̚{wg_Anbn*C9RvA~\[Rɽy Vڍ5 ϫW{qa-M Jlt`":vX{]P+c P@%܌|o~xxTTRH9xAC,,`3{0l5 GeuaXfZg^k5f?{\éc5 8=}N9Y#jsr&Ѷz5sNJUl'bdǻC~BKs2< jm*7Cҋ+YV˚yqP]۲7xݒE]|vݝ"w|! 6^/+v*iFf\y#si0QWt4b䚹]yɀɸtJQ}G,g[M<_udmܴ0ihT7F1Pf;(m{b~"FyE?B!-Rh>Ke=·* ;cpc?+ݝ:l?xnYL'~l輝OZ1MSWŸZş#@[h]KtR%"X?P`tqrw̭[Q-ѷa]7QKL0OƠΚhNdyt$@*A|&h!RٰZֲy|;[F5HS:٣=jzڒyt_MZM<9Xd[gԭ V9kzVV:|q~k~M Wۨym_N#є/K;]۬޴Xq=k[[-kisip-꺷g-j7d7]6R-}_M9`eTo:5u~cty]96?!l4Vmvn^]TWImIr};zY5dNFm˩eC RdSGvnl]q5˨-Rx+k;~M;H\OLtt % {?z^}q/8fG_wO8]1hj:ɂWV(BFcRW9~Gh4h˨" bS`0~{>,u s^'MOMK;.8/7e0 ò,˨ ?3͛;wVe"Gh`cOwݚ1!v|nBE{n/ ȓAAryg;WP[x_r;Y''֨x<@_No' N#7/Jn>-JgG"1!:AG&A-M,p\\OG^Qd; ]2ㇱ_.&ə5u7VF^t}=;v8pn,n Afu U7;ӺsãÍw/^ )M;/t}A\eIߏH'ٓvA|/KM30 :orD7#Wf=vvւ$w[QK읁+}߽1B 2ƫu(U̕(>{>V֗ 3tkxP#|vm+?e bEJSky6JW)9V]X3dΔ $ 5CqA|to{􆫙;ne|bAՒ=e? +GA~kیc)ȋyk}S5ʿۉK=Hf`*0ۮj_chY7_uqyqsO ~ Sff&~Iēϯ? kۀk[thZO2d%#p: Q$7q.1Q0O7be÷7d0*J% ,;|p-o6VHDx~/#0ǖÚ[{<̄ ؝`'n}e*QY.NASzy]`RoJȓ97c/1b洈tʝ橷rw~82 y _St f37{ye[/^.? 2s0~a){C`=1o&0Wb@_"G93n_tz b;ΦTZc!l/0ن1?+9nq!ހ zzHX)e/AǐGfH2LW%a=m{<9׭cR,-tu f3.|mYuoӾ1=[ Lܿ㮿~Ǝ$wX5ވ"lc8b>zs22NƘ5Bl`j] uQn#h2ze̯5}(~'-,q7+ucZ_%/K#^|ISTU]4ddo/~rAq8 ˲"?"(,-ads `gbl)6;.G ^CogΏLSUZd'5agx(P"y@ ךGPE!;Ea KA8@(M@zD1ˣTB"(do/~a}I<}1v#F eXx3,PT*HE*%@zTPi`NdQ`NqIHG QAx5}vZes3ҕ)@:D1eE|H.2,[Ӕ@_zduH{eǽu{Pr>a.q9E\ ۰# ׇ ySIwINx•Go7iG7ax;V3d=Fq34¼P2x}k_] .1}4Cv{A?7޼"+BK,]Q3KN@z\ 9AGs{C\xa,cnH~vQ6=ow{m -}QH0_X C@{g7v_=ފe\ahmA%Hk=AQQ4ou5*gwX*}7KLtt % /]\]m>yQO)`q6ħ^'MOMKPD2aaYeTVAk+]{S"bu7/v0{g"fcngRmJyH::QƇr߉=m '׿{ۉh"* ųL}E.AT#|s./tQ:   1yM@QQ:Rƞ{VLA#[4mF221=vЂڰ^̂x{Zr%U@_c hZۻWB6-{keKZtn&Zs͚/Q &;l-}Q<)OۻnA}]pаO.cW_OUV~<&ì%;v[Azuk۲W_\ @$'(20꺄o>G֨0犝E\ӑE)Wj V)M$*4.GɤO͂dY\g ͂ʌRB!8&&E˛ؚ 3!<KAzp37Ka`@PƤ؃cCQ^3s4ڻ{OȟIXP%Vgjo'&SLHyc IDAT62q E}g P$x@25meBS^ N8XZAUHsevlts rV}űt~ hPl̦F$ w_vO2'>ҕ;>ٰI (.l:\ߵK7-;Ǩ]-ѽW{'xuk2φe1d `-,[lGgV6<-' <'Lhufnt[м3k-j9vš^lӠ5ƘίWC~=|1kBMܱ{S.9q̺֨u+zРv@StlӱۀiZ.A < PϧAWwi8AQoVe-Q[P9IATWP{,\8÷jOr]Q֢*=A_OYY~p! ϭ?MPB_wZ!>nBIė@s~;(/GG (cL{L1v-FKkcQ{H/;׷xG5Տyٙ4) λSCZ5@ %$?Y@qqU !^ | <ؼJi 3a2-6AxQX@ i,V㋋7}ݲAfCA V)3 |FV/a8_U03褀l(&b9&EM ͕@ &c;XCyppJRA 0LX@ <<ObUU=Ѵ@ 4M$>q\9@a=@  HMKCyy,F7V4@4:u?ٱMDiiEQ uk0\166EI@h\P("++[c@"xW"XY[T*VC$DEM/zhD](..nju A8dOF|h;} 1niBfć ѡHzhiY9ceӄdqӎ6?YʪUF@ uo QjdHRd#uxCt_ÚYn֨trՕ}4{Xg\-%K˫YǑK&)( %VU!M%?bKVllȑ\Е.0!g*Abm/M*@cԫPMʿhhZPX@ vTKF7OΡ]_{(Rf6wtDΝ{j(ӵ.gUqؤs Jstw,2v䰑 o ,8GΡÇNBFQQ 9iOk:3V7u@аS)iR4]*tѐMsen'gN;*O;ɋׯm -Go"=z(G M ѡL|v.ťO.qg_d=9b۵-Khl=hbДYht0 Nۨ;s۾̚ݑ(.e:rDn"LUFUfP/,c[Z!a۹Yp4ӊ3F,á o4љIB%;8*ҭEdmheԹjڒ Ꜹ" 8Ζ) f!>{3Iy2tB֓׭{0c'V+BM~_YLg.x4@4)(G F d1[ԕSiuS?Yƭ03{SAŒY.L)MMbB(SU[\sGSVJ chh~֌fugdPC؛ 1$RAqh?ۛlf{TmlwcZpIɫIeUz ug+/ǟ9kb櫂m@ o4@ s+ՙE47F#pĻ G F\/GrSU zϛfu+7O3rn;t#]E/g[Q&f;9XĪ : _#q٨mEƷb] aڴqy*`y27}!032)5`dad*cqPPuL"~nþ?ZDfA/Y5ƭ&sƹ34S@ L@ p1?߀Nbaq<ۯ`\ÑY'gu?g/~Y!0o;~@KX]o;0=|oV9CIu籨{#ۧЙEK"^q>ݬm4@(p)^y$ juqqCF  F(8Ǜ77@XO\շirk>wu/{_~z)ΐ;05$<o㿺~x=zH.lډ/i˴YħdOo*^?}Jz?}ۘ,>8%fQDk=iYT%8J%0A<ӽs  K]LYdɑev'nV̵]d~߽,m8/9/_lҟ!dߘu9|j׍3a)`1oNe2)I@o4h+PJT*3ssHTTXhaaQ qw}`[X0seʹnx,cLdQuIO7 u,ӵvЮc:Y1[`!F+ -, Z,-79*ٚ,Ok<~[ Y,3+O Yn袘y_Ƕ0u`;SƶhoN۬߷=ebߧyɋRx5ϢON)g{ dil.f9 Mj1PQ'+\dM9Ү{@ir 1Z56KצeOr! >\4![hȉ0wָ!Yio1F\9Ȼ5%2a~hcާS GиM9wtk;9N \]#T^*w(s$ ;up=\fp|2az`OG 5P)R{{{;{{ t0fcDTXԝ[;&aK{Nj"? co$KRhLJMIiݶ\&S՚bc=<o]Uxdfd$'%yy{( j^K[_:-ш/D޿驹eUkU"7E~V@A wXV@ hj@ Ѹ$^˘+@ D#7I:thAAA#z7o@ r|޼orŷU47 2~! ;B_;]233 HvB {I[l(qZڶuY [@ u 3nnK-{ɒnEgϜ1xY`X$bJG_=}M.K;XONUWwPԻn@}rH:tL&>=20;C;5unjݻN&߃F0> d*_TCU42؟NcP=r#[3bԵkuPy*el5;Orjj_35fETjzI0WP皦y"ۚeת 8gӠ>1'(Sre+Wִ>~TjvѳDv [wIy~U֯fr#or>8:vlNҨIG.;|oOZb w!jUƕm>0Q =0ʥheo(h@Υ~n{\X?e#g9xd\%Nzo*6ش[Kux4 @-{_3 qݝ:`%i:\༺Gzv'đNwLםLx[hDg>TGnTQI^Q#Fʢs=O_VI {c͸gTtoJdmJ4#vc}YP92l 06,3,Z˯O`<{=8zh0gڻbz 3}.-"]b7]WW\\jwg,ɕ eˤ3vO\w!/GMY B2xkOtWspr8|ˎve/[Wufq`@l. )ujw[c c@)FjלstI&8ڌk͑'+It/Y;tglѭڙd޼_6n4;GYs Lz]aU?<ꈮn:Ӿ:EN,c,YUߧ U=!a=|; :ȩszԧ>`;m_|?uُ׾Yy~'@W,&9޷tuݢ~P==XDIώ_v>*]J p(cB.`#m0HjizR]& 9lSñ`qLazG < AP:/> `ilϗО9/c1Q b/Y e 7?mbՂ7;n 6ԂL\L6L$m7=4hyɫe-m DM @ǥS:l{iF[4ǦU8MJ#uoVk,uP]ld†s ]ibv:[Q'km 1#J4q%+KIZr|]m̈[mt]nf㨽 kauk52Ab!<;ɘ?h+꒍K$3V=,6663=]Vl0Ir\vڙPB9U9%3clۿ8q&M#`UmA.ઍcs@`^ߕi^:Bz~ w+ e,cf//xb|cB7rHfI\8˼NbiPj_gC$!U~ߊ1f▢ۮmg: ׸էDRe>_З8ԥ@+v]䨒n ZXrʭ^5eQPI?Ss:w}31w(wSX*TYM:M6+Q:)ŲW bi&=a0(ƐB7[`6ne$j2;Ƭ^P=^`r*se׭:W gI-!Le> MXdEz'og$sXmdNkoW'ke2eIzJbrsDָ~Ɍy_yQqq1 a8z )={P-_91)ϵ|-˃9 . e7.O @nFZ$vrֽĞEwzutb ~Ŗz.w(c[iܑ"n] L[ZCٜ|3{tRGf2 i{r靛;w c X77gs-LT OedGZq:l6**]([R?nwQqI"Mg}Q®8Ҩpd"|Cjtߊ:XxahNֺl s[1ckCqIc[r|\n\-W `0ⷞsk$lIx)RHÕNϨ~/,+CE^)}v#tYWf; |cCOFx>hS^ #V.+Ȅ}/\6u:L S)?^^rq&|rh"У?_{,8h-sCؕwP %X`D~IV}QOQ6^{u1ER rʔjU&AZr/' &q @2īMKsB*JaiVҨx6KoECKJsBYBFۍ2DW٨dF(gt*=Ω, >`[=c) KdTɕÔ׮ץ?tхrʊ隣jnkZu>7JhOWAm"LL8\. DZ㪰 $z.^njz,moW8r uxn}).k/Ȼ.,wrqw*FM4[#CX goZ(Lyz™F6 Lac~w-x MY•)爓m܍J]İYes_<.nd[vóxoqfz|Bm1y![nh[!蹞0YGcƌ(4޽8=v̘7]QjGǑFlʔ aX`yhԜlZ{giQd&7 HPd'}=B>{!Ѥc- :?@2Ӝ[Y]uRoT1ىͫnD2 Tu 䫥KeDC;q }4P\tX9B۸@H"1;3gT2|kZ*(_Юˊfr[ دլZ5M9j)˥fx 6U¤'R"e>< qQqP*.z Nulzԫ N9[I-!LsVFҲpjpu_,HN$w5{S)Ss^Zdp-"nぺsN-Q\CSFNOH9yn9mi:+ޣR9F-kz"g^ϣWS:_u_U06ή,erͽh\ץEyҹՃU#ݨ`7LP8zj2/cԏdX릿+c0 6_8pel::-eL? .zw֚jPmo?w`z'z֊D"YzTO?P~'4pQ#r(ō'%)9*R*|_*v2șY(wr>̢UHP@4̾pgEgZNe2bU.AAe}_ϲz7Q١ڡ~7%ҩ<2YhZ!RPsD0.Y7HNq5l4#٩8>4"'0Va,]x8eL8bS'O\-͵ k2d6zK&eUIf{ յ*U 5 ),c`iSQɻ !۾3dw JumG;SSӉ'Ϟ= 'O(?},kwazj/} ںԔEWrsO6bnU"SK~+7xm5֧lޖRp2ZM2!,/OQi" @^/t؇I҄_GKaIȊCf@*m>}JN"-F7|6yb٫yW~xU0ȴ ؕM5WGwTzֹ"|RKmf[/G lsmÁM6ܮfOfתe=Ps%r_H}ʗUժC^H;3zn"Rvu{qY<fW~ZՑ>~Oh X=;1.KNY;v,98J3+))۶dZbc=<i\xG蛜s/_xq||}uLDbBBknY_>ȌqXk:-m@qN@+>IK{E렒S'Or\=cU*D"QT=#"(=<=lvtWתD>?jo@*.޽|0~x g\TT.Y~*((嗍w"yQM&Z3)C^4u;:vc0D{)I[c\~MHz+++L1QG EQ2Y5B4M5}nuԉ$՛#JjON!%6۩eh( 0s"=n͎6+ B%K0 Ȉ7떢(;"BPP=K& 2am.h߀ T$<ӯ W#R3s>܏,1˭zL:˷RYEJߣEY_rq ** Kۛ WӘ\r&\^z'\`| !d+k0Јa}bbbt " 9*C <._k2+MQr}4z)y}iɢaBUebV2f{.Dnރ|a =CZ>ATwJ²~Ա\d?.f4.3LZ|T/Ϟ}Yqrf2 ӈ<)K=1_n!qQF.س⡇fqʺ[ 1 v|,UTp/fѺkV\͜ fV IDAT"Lܜwl#Kn3mY}eItud-+61]mN?> S1ۧw3}oChvDs쎱WXYڔ7*SwED4Ĭd|RUAՙy1RZ~-nZ3CT N2Јa}FFTZfeeնMp/_0͍eii+߄@yTjzOh*P *aXWe(O)/hB9 *5;J2Tӥڟo kzVO xXUɌV?$]շ vzߚ?4BT6KrhVe*UAUEkJt4XQa?˓4݂~h3~m)6h-7#誔j0t)FP~NU ðr`XR{^qQ:)Eԧ}XD_J*߇EZg#U_bc-Y`1Q?}|*y.[\E{L :xCeE +PTʞm:&pqP_<k.T杂2s 1X@缐E#lD5SPfiJIGf>]L@)o~}jiLiYqSk%2O98G㯕ocq `29KhXt Hٙ/ ހMi 77 T杂2[3Vm2Qy{#3x.wFy.m<ɩU) 2j6MN}B-`f6o_(KUu:[{qT}"=ahWv@4?vӡ|qT =plΎ;ڐ!f2a*Zn'`)n<3kBnYwP%bgo3-zTOY"q6;h娜4Eˏ1ys : dOG(5oȟǪDb:Z-bFqUEܐi^ G<[pQӏC5_2"Nϳ` h ֗UO)V*CZ?E 뫲5b .1Pz:7LU Hg3kۦͱhq_rlW5QuՄ`&n q'Uq[ڽIdR"]IZs7i,Z<ܨekLnx]y"8"c$n.m'?'H:3Ny*[ɔŴ{ o * r׸#b3T1/l:ೖm8 Eֶ J[4Ǧl]GdyXOf$-,lO@LUw67%DR%vݬ_}tBs"-^_fnDr1˷45^=LG lsL t;7u$ddӍUgGH^xsܭp"Ƒ%\>D'=+nY(ڹ )Z"]f+p*XN<9F, bUVMr.lS0"Zov]"tA(/ӼxN]jȿͪLiީMx+XlY1< J{?>HHmޅ6iB ?&h7LYSS\c9UuGҭ?z^gkXs0*Ɉc9Md^8ϯ0M4و/(Vњ/ `v+Mٓv]) 6>u5-M=oaLFfЙ\B"e#COr^a]P5i8_jefD%Fekf%c| mQ^3y, ~*( 24Fpܕ?̖˲v|j*ZTO݁=ًI/B)dU̡_{(VR^yMtd,Ƥ۬[D)˸vcxBId~ 6Lf*[3+ "{znJn. 5]9PxޜM]Q-y);N=%bo>/m&s_q-ȫщbWQ!\{ RoYXX(S&Oh00ۛ$)8@wB;-L8N:ߝV[jt6ca~8zn9F3{]+l޴0/L^5ڊ"=I:No3|ؠòOa%oͮasm]1;niwl~ZILT~PB!֔`Yd8my])O =45 |ag\ {^`;-tëʷ,v".K|X.kӫ豣fՖU%knq2͉Nge&%g3hn~KE&Ս*vgknh"ZAo׏ ˇ77٘vsm؍[@g'~LsҲGXsҼhJ`ި/ƅKL%e^" \g4ߍgwKxMBr--:ѵ7k"BYn]ccR50 a N=&xicF5ʌF9sy__~D">o;KW_J}IGaDUco*opv@[V_Jgy3!y2Fx`4'1Cwwk\MN6)'k3i(ͺ*h`MhR!9tvTvVH{ Uˎ/\RӊIN7j0촶BsKW C/ qf5|CYdmFSN3=m˯ !+麡7DhȣN ֵ_3uƳ ƴmtdFͧ(i=rQo|U~6lе__I 54lz<=ԕR9tˆ6;xH׻#4 IjV`kSC@❣%ٽ<鎋P&{iQ;:T^ cRFWakMroQYլ (R/Ri khpuoh)kZ@r>s9v Ru*o/NR ᛛ>a:8(w=sGj|k f% ~n3zH$\li||%P>>#qU[[,:ٳwv5|@gew}+L1JZ1|)7g}P/.'p\[ll;oVN3-Y.K_&cp]̫;Jݖp3fEi O Oɨ^ai I,jj@08rČ7\kH!_l>5$l+9-Y{_{HvsXmGI]# )|(/QGxtv1z.%+ζ<#]1utt 3z2{=./헶A=Ff|uDϯp "Zߴ }0Մ<'o@go+ ;FZcG`f|ܖ8dwٞs+߯Y]xmh3bw.UL4"DeB-5oy4@X=3$*Y@U0"=M+162lUVzq3C$R}ac]VK~Ԓo +zc"1]x[ S{ja!af[8.nw=E&%w| "M ^g}X?e0Pt/;")AA܏k? Eaa'O6/KWys:zG be5z i4.Bo==wܙ`ZߩI $<d~<# v1pkY^oOIVYwI*gE<)c7cY8jAqbo`ҁ}.{`DOĎmVmFs Xb}Kf9aPo+xf-pq3 2ژQ^w֕麧goX-'+J('6OTj g ܗ  !z tX{c27K1P$4z^&SkV;Z۠P5,v6z||lTȣ,ln";3Z;EME v{PhXЫ}_ŵʜ2` HmAg+xO P֮NxbnE>K1nCJs_Ȑ?e]c"_P۵z8M_`Ƕ)߶4 8|MN\R0\'A 1H]W?LV["}fIgFAhe$>@AT ]:M_ܾ9?wesw8:qNJH.˟bEҍ3מ,;ݷ=ʮ|GvvU[[ꞻ%o} li~bza=@ 2|l IDATB}bMSL2K}S<;pW֔ݓV'1h@uEppt ߓb40. @YXSeVrU# (U>:|xK;߻mcYš2N4 y,WōW_zO4Q~PFDT֔Mh}L5sjم|[ @{m?O0'JSbN[/soi*3 &E2MG | 4Î}g_!o#|@zlswS$4!2A<1){0@}lRi7͛ި;qd2eYІ栖cځ#<,BB>D_B7݋m!scjŅ|9ݛ~\wi򉶚""yL>  پ~pQ\'3}g: C|LeANaZo*b11˛a.Gohp/4yFM ԫdkxx[u%9G;e8# 84 LWhyN_,q07~:t# ]_7%>ޭZ4)\m[N.N@o:tsy߬,Fa=@<9%3Χr)kGZҦw&ҜZf@?O[u,Qeo293 |>n S\ø4CV={Ү+b1EaƧ+ $*Fd[;B*ͩ}:~c&3|1%[>7X5a,Έc9Md^8ϯ0M4ik(Dv]ʤ f! IYaGOgB̘6T6Ii&1u0th͈؜MTPeq.@J)˼!i[.x.nضD]g+9ǫn=ȅTîiaCNuQM VXHQ3rIIntٵwzvl<݅Vۖۥ]trpv%C7Z.Zi?#Z|TCekf%c| mQ^3y,жuSzС=+oX,Nܞr@;k uk kJ)0U/.L85M)043.=QSXS E)n^v|sӛ'PNfH b_n:Bݰe5o7Ս8RNgeΦ3QUrI"gu>KtChe8,#\y$wʟ%j'C`Y$3)gy= U!vJz4 ,p ++!+b<eTϱm@8-*qZԲcqmd9Ҝ`O|ϲh'\qVe!t+'`QUdW.X 6,dbC6\.xM}z=vXϦMȲ+߶L-N7`ө`K2R0{|nՌ}PVl<W¥Q SnKV +.ˀ]8k4X-y`a@&5KmY=?`6I8z,(UxJb11.wG6I"4xiS{uL݄,B9ibi,.hRzYRsKW C/4qf5|CYdmFSN3%SuU `e={-.Ln vH:;:XЖ_[ BmYѦQPuizw$,Q%E^uS=Ƕ%+Cg^ /JYv4"G>Ke\BwvY;ṏMqt3ˆ}Ҵ@zœfl̞gmеVۑuw©\Kw%)ZFJ,Ke$iy^C{ ~Mq\F+NNNEEEBDEi Fw ;<&N@iHI x xR5]7ݫh\H'Xi my}%aƝo\6 k_;^OΆsEi \Ц))H&]^3Iq‡%Ju)5vn32gl af#BB[?l8'ğiCx\&A|$ ؗh?Ǝg[~A0cx3|O?W\}0Bm.4j9[QmkXho-s;ɐbү^/hwU2-́'f6&xPתvorH9mHi]Wl pV&&.ψ.ln'?sS[/o~˃T]wu[$LWսm&еVvەE;r*JkJ΢ґ'/ };tW2v'ٌ^*ԫ/>U0gu8-W62l! "ơ5xzGzp7w BNDzU;T:;;fZ<#]lWS<ϐgP}W & r!g䑞3E| +;dE; ̠Y~ulNpdQQNƪ=IurreRXYa}uf91+#f-*{yĸײ4ޞÀcdBul?#sCG62'YξEtnT',!um(/UI7o+L[*5ՙBlG_##%;oNZ=CjK /pps40'guKsfP_qLn+ oc6 4hKpH7Ȝ.w8jطk8I~V4{o/O,*`t̕#gDZٕve:tʁS9jadCzLl&Iίب7)ow"88ܾ+׾+`M;991K1BdZ⌗i}^w :\b|7}3Ĥ$J- Quv6q+&urp8[_K=<='hjl+4M)ʲu4dk)±T S"3nKxQòz;2.ߵ MsǽrAuJDM;&pCP@gP_8?iY.O֒A{",u9_I24*]ez\Fi .`Ty+mNc?/xҥn LV+z--W}؝66>es=%'ε5&b0N7'ITƶ/  6|EYy-s?ÏZQLհ{mm]?;{@q I"[3uw eWXа!V1Oє{crRLXh̰>Nk@֠ė. +3u=Cf$E6uӘ)?O+"%z'[ߘ;aCw0zbOmlʡZN8nͭG ؜otړ<w̒/қ/Px+: dҽN[dݟ<91SNx⷟6lY_B kʀ&b4>2Zv!&adEB׷N@H/U`Å_UENӔԖDIA߰.)>q&w'*4rN#Qڒ2LJTZ˷ (N]XSAVbP?Nqwe1\Xn }Mc~/)xoh4 u|dw<gAa=}7_:[}OK:˳nϼ~ĵ+{ٲݕ,~Lc7n]9Rt4MߧYu(GNsυtyf^ֳ .휭ܳ;Є{D@$nk3 epP7|i?{{>{d_?u(ȝdMTrFhԳb򘔾(Mׅj k?0cuE^'sA.,Uyj@?'R#U~fɑ$#)),Ur`2)I! v2"Y!U:%?&rM_J -;SZ"Y|-ҫM2%$ض#)Z"@>AX۞08deCW>^nݓsWՕ7@ 3UYHde$XH}7󀆢;O!R%__Iau7un]'Gzm`OvU:(l9ʴ>vUtWi㽷II㮜X[vI;0iz]Õ[n`4{Eu@ۖG PXWho!(췝XP_1|箚ŧӜgwz]CQ/. VN4'^̈ \ Ac7n4] 9VkY󫧇;˜o.{GZvWqKCkAi.V_y) cwgtEi FE[g)0 c!a 3rI`bbYO( ^ul}7'|t^ZvzkAYݘ 5yluTeAeE*c'ybxyt2f_.gkfxU0<|;ͮtEi [Z'[}^2X3~wKH6eirt57N:&1<ʳ/V˩Ne fYSoO :P0;7& ћ7Zttq m޾QblnήG j/<-`'KUH_zUϜ*jJSZev>!=%.^8T[N.N@o:0#^68f膿kNs[(3kIױnn \W?Szڟ޺6g\!Uf~r@v冞ؐS#kWQU[Ԣm% xzWXI(.>\uC]ڶt97eW(&xyvEuK G@_7%>ޭZ4)\ԡuhnʗoHD@8[:0×@H VVॷVWeƛ94F|ud7C^zNɍu4-:@-#(Goǥ.Æʊ{}3:Mo,iԃ:iI#"a26h6T[`|Z N4˛qG^:'"[ 55QB42wWS~S#G-iӉ; !($՘MpZ9Z@H95<DՍ H@jJ@""S3rIIn|ˊofe ;>(&ZP Yvs^.Jk6dRJYm PxޜM]Qv2-([3+NuRiN 4o;ͨxЇSY6 IDAT?jQU~NLh]`4( src2h P efD%:1,eqđ|J 4nXrζs{ 0-hdO#Q+ɨ@.?FnakN Lέc %HXa2IV$IwXE7[Aɻ)]&&Y@Vq9{E`\[b,ڰ #q\+n Aӟޙ"o^. ~<j'}27 +RL~!_m9_h;v$}^ VB;45ȧCt'WOhoL5ŵ8BQT$$:%gF%A^fIVF()ĈvC#+ٷ-x'/sol?Wk_TmAVtsÏ{.1c:3Ҵ@9coo;" )ZekG@J$v1-Ք֕p@0q)Y^C=tԜ6}ۋz1:mK3 khpuvtBM 8װcL@]U>bcP\W_JWx0Z PJ]3ڌ&[[rζ v؈WR;܋W/Z~-`tFuǪui?K&֙ @6_kKU`d&y:>>6M ;l1*hQlGLBeY <#.1dr\{9= 0Мpfj o^Ex{G/{@ o=B @ yPX@ @<@ xAs@ Gz\bf^)k=u jl6zi<@EVd2e  i9 QX@ =V-)*Y gw'z<@<"`4AjJ$%',$I(" ƍ63р ]#DfccY7tB}{ I:QB@ ?IT*N\6wloRI1=zh4 I-r_ Zقq~+ǻ|'@ 6(:n@&а{ 1~toy4ɼ$,⌮(asތ=I D3pNtdF՘Ma}&2kxƩ4 @ !h4?֣I8$WS~S#G-iӉ$xpt5h@ zec5`{=1@ +h=@<'{J!hc1--7ss &( D?OxhHkEQ^-ӓpUa}Lv37W" W!rsscbc@  UX2,,LuA *T* a;@ @wZo{y{6%Xc|"=C^c"LфtzgOl=Gհ{mm$c=YK퉠JT׽\YTJhvWN8Jshw[)h;u*y.M#{aE{gOD/ӵm&Q-u>6:C-wDehl?t3z}?`/|٤0 ;SZuYVC&aJT?4kli{e !R#PwQ#ٔӤx^ N}6{۞4ʙlNwhG:ൕM9(H`?g"_#&"KWU^'sA.,Uyj@gYwr6 zaA%R%'(u&ܥ2]XaO{]LUoO)~%XjdsWp.;Uƛ"r; _ۑH`*]?n9mW yrk,uGٍ^Yo~33|=qq1!KP; Ț 3dՍ(ͩg 1)}Q"$![lk k?0+r*%>c ;Ll:5R[c(UPXТspKkyY$ SVT nuZmQZG{VmkRֶ֪ڡ2E Mf@ !Z^޽sλs]#K|w |+YHi $ֶtAy"ݶ79zK[Y3BVNLN|5ꍴ{)_EP-!1Gٗk~S[pBc{o60bߜS]c{X@``.8Wgft7ʬ͈mֻ➲܇mG n>7j#lH^T$eyQl퐇&HhvN:Srgg,ܙQ:O#3Ś2$'ތгknֺ=* O"OMכ+D_.%dќc /%fkͯ-Lػabp]!!Z(Y1?I_@$m!p~<8#ܟ?K >ڞ_(౹qOĦr0OLLT#UW?#Oh*&Y.gRJJ~%9u`37`O'kfG8Ѹ|t8VK_Drv992a٫oYD"P1R fXEB1fLJ qJ&Z.q#\PGiq3FͶwWeK3$讵X LS{ \O㥅ج|Joj{IV_+ 뢻͉1o;yz/эbƐ/=]ua6t`ZiD~VoFdZ;㡡An'?:;nҽ\8`ݦo?9}N`tj&}2fkϦ$}7_TXA] -*rrಸ+ULwjo\}ۙ@ =;<13 Γit;v`eft8EJm~c9&uՕnHSNjs0. Nzopb^@[\ʢ=i'~M(^!La RPꕁ(9 EǏq_х@ax1)*;+3FM@U(53ƪEA"\A?AB ҙ5\E4#=LTq3r߀U<gjP<΍SB\@ʥ(-OC;?5FsKɍj;G3CY0^sgeB"f`ѭɊ2U7' ( b/ 8ݕ3$7<=pgi7k`fARj6d-E4 }HnڹG{qA+ &}͖6iIZ2P8юv5ubi͒chIbrte>Ʃ4wML E4ߐ{0)gň!GijVғ_ 7mL ;̷:IǕRP!Vw cL[} 죡VUyUpbcꟕvtR 5-58n&XP]G7}Qvbz}έCoghlȰ$.nֈ:f6 -VO2Cxq5i WQ8U+-_LW}W_FDm<W,gZn^(փM4f08 y!B@px:Lp0/aeѱ&5ϣΌǥ[w\K \-+4*M`&N%R l:')\OڢFyKi7ʜܸyM9}?]دbIyEړ3>^Iu9ܹne&n);63މ;G8O觛Qd)̛ RgF$[un|Sv۽ i_'8uG]#~ʜT oy^3͢ 8QhcV]l7aڀ󀼠n+,x鄊1c|ihnqh_,grz5wԬ鎦d.9M{p6?Z v ԏت7bha.3py.wАAWl*xQkA7:ghuU@!N"ruMaϺtZ0p,cg;o֭}+ eL'72It710ί5 L=q7wGLf7$0LJ% Y,DgA\.l7G ^S"0oZې]#W֖8+`xڂap^p^H vG 'N{FK"ϯ-y-?cbְ!^_:ڷ@ ;e~B$\"@ <)h@ F ~tp m$YOS<Jh5U{<^z {2|xiUz#_]m-WaL*ȪW9yP~F!v(ZzJey+~WkZ3$OW'sHhC8^˟;O)r&??7\x;]ܱ"ih,@h߯u$ ՞.7&xPXۅmī7kLjBxPQQE[I@igUaZj@%h_VHMCZ;Sr>p=Iki;ϫ _mxŽʋ_+`SxV`8{#3[*WfH+ e{+<axVfi܈ Hu<8=5l͗Gq¯[4mG(ӿ2;vȌ;n}9EJu_!/kz翽EDѮSP˹.]eo^kkVR&yjn TEEǜ 8;ꔭ*&˾9K8/MC<,?<%X? ~L_N=LV딫[Rxءܮ%mxo^Z0/ON7k@q+/;µaM: [fzzu6?KRFԩHxꌐXylҢ6 WJĵ(OrEۆ4x2({ iK&ܷ9+&nO>!vl[0ːu"z-46rlghy>Ftl= Evǡ:K0VfmFlNf6۾؛㏯5;Y8?QB s6 w7AIIgZ$/K*d ^ȏWUnO OQǤMxaѝJ r(;qAIg  !=,p~`d_jIHR.'g_b^(֔$>f]sjn ϢX3%tBGt ME$%LJIӯ$gܢI-gg Gt_Qm ,Y LMfv.u?1H+E+r/ܒ-›5 LIqq7-';9>}6fFDkh;` }V ďp??;;uKmד1T'H(N,v_qm*(66oD?16n~d݁ 9@ 4KN,'lfİʌS.U% [{D ǩuA,,ƥ% @xt̯7mncVĜ@S PJӲ5v96 EZ$jŮ>4 lSLF$'AQd:W\^<Y2 附K_ ^$e7ƃ*Y}#!#}uӶKhK]Vq3+*L#L)'Y ՜J;X5PHn HX6c| n*E2(}9L]9,HF.>IxmjgW]L~ũNlW غAѥHixN#<ĝI^{9ޤu E?x6 iQ6k АcdTZ%@"֐wl9^#*V0{:nḎk{!aKRK+[B&u?e,gtѪ{(eqbhjk)wc;vb et1FU#2/&+cͅo73d;iBGٮ#6l(N^YY 5>@olv@@303 Γit;v블(9 EǏq_х*NR}lVHҊ1eQB";a}zIH(8ijs$}w(*͆M䈥~QdlmSr1%61ғaZ9#8 py)UiƗjrxk_ O?|jxPW%Sq5TƋ~!.LPeW>X, zׯCCRcd*-R IK)FBTgUW[`i* [(@5\۠"I F-gݿY.qo3Feذɺ9ͩʴw|D EYBM J~U!ش͈86N)TS<[U[4~~w1lTY(,Ŕ$TC(qm^`Xqg.ɪrmСZiQ!j#ቺ;5bو[uroZIJ׍[k@.^Iu9ܹnKhv)9Lp0/aeѱ&Y0@L{tEoc(Iq{ԋ&zؔqp]+I[s0 LҬX. hY-`/P1>`qKi7Ȳ)E')\$n[ZWiTPbM?+2'UpBq[WL9mt5meסEǐZ) Բpi*4=p\cRHwJ%tp6n qeV후3't}hNrewC>!Γ6M-zKrH 1,kAQ;eB"/鍗T`b;p^U>Q+tߠ:t`cZA^e'pTAI|6 E*⢢=2Zjc\DR*qڦחQyym?htVjn=0uR;{g!qg)+bsz@yhXwӎ3BQҊmfóT3J΀#<hӿ $?/$ AA$IhdhX;?sw5zLN3YGd2GkX꒼ۯl=@ :Ru`S7JoGU"0g(Cu kLv <$|A  {m< @ ǻU;jS>ί4||`_S֝)Ttr@ IcX G'quOޜyU^#7.H}_vwa) 4s¸~{Zo6@Dng׆]+@ / 4 f,:Q~v]yS3f;rT ǰ/gjtR;r} a9{Y??smC sA#!`NfG  Z Iw,ݽ[>y٨mX$R?1zt#rJjEE][X=y@߾}wزk }@~ȯ]=JS {(kpPK Ur<8`vaRU {(vpw:eFܵ)?8cq<ʑ~ U}c;(IP=ʯGyUmn{Mvduf;:Gw,rŰK7vя{:wW'x~xV^QQ

c_wfQYQ֮c?@h߯u$ ՞.oTWΜߣ6Afiݡ.f7kV›5C$ƒOCy^9G?͞㲿}~{k,fJHKYV4ϺZr⭋?p3HqU>߁zieY۶PjϔQ4  neӠ")n.]"6VOcLRV䳫҇~k'Fё7vpxl|P,HQ$t'xcMeђ <ϸ&@{p7݃(,]yy X&#lݕnn-^ E(Hذ=;-F7fۧ~k<{_67x`3 g#SLhDZMs71L <6|eᄊqd*/^&Zq3eRUzz86\QN9Y_8B*%r۞EM?dk>eAy?V"pI M#ī 3[*WfH+ es#Sj% IDAT\aѶ!a6? #W'xaq<{j$ډ3ur~^Bwr_\=|y,/Mmξyء#2\Xuw^!ɼ;D@/tK ;zmnˀhMMd_E x{ hO{:q[PP_%r}x+3T'H(N,껛ύ$3[-% jj^%[{G $4;'O˝6jclM1Cj48nfR83h;ىRsW41^ZxWDfa|TɃ3R5G~hȱT{LJV<YJ0,M)[Bs4TvF(V-#xun==0-B֐?bVٳ,i&Q@-UQ8%Eq-[LW^̸TUU"PTIkhॢ}_$zauSV>#5Di`:};K:x/-iVEa-?k]Br- /w^n<`}vca89+bߜWسQ}zs*J,,PJӲ5vYavQ](TqJa%#~H&uU}~ 9r R$)+־1eCz&2ۂ6 ~1k($ײ I֖(] 8n<#'*.jďYT(H\tjm4%[ym:m7Ҽ]r={p_T˽_= y6ƗOӳr+WTCm"3catt%Ӯh&;ʵQݹio4Y{eǡ4|yNW`t } RzGِ[Nٳgrj#{\9ޯ~H2}|J\({"s!=7h#蠬䇸~ƋWl ?9qL ۊ>_nmIuac*XH ȺĂ hVSLJ`2k}"!rjUkG[Y]{O )puk?P̬@ǡw>sJk[_,_2_yi @hS'W"745+Fie&B W*3bYN,"jv *n{6{7LՊrjhP͛v&SW8xk~Rf)?ܔ@JDi~UHn HX6YF7Wb`]3Ooݑ!k}c϶(%7 %TZB 0PziԃO?st&T$K2+mX=%AҖ{Y<*G|g우%n z`$"VJftzFvyԉ;FxsI[C~384*f09عT 8d~ԋ]DibQZ_rMo5KW@RKq@mc׈̞<*@F1cȗZc`6t`}C@cljʠx0` [Ee7??˦@-Pڵlp+;ԭ%֪xR-H Eî ʾc|~9ӀsKb+-tD_\"dvmjD|q҄F]wLuƝpPX$A Og9`g'cvlLW^ۇxQH>ΏVHҊ1J7A{|fLkۃ.}BL(s4Ve3uq[V+s60>q{RyvPCeo֊9V&˫KC,I571>`}{;zA>y6EGI8|Oyz8w@ gxMsm"Fbe1aTiPH 368l̢pru{G]m0R%5UVtO*AhH\VRlXAB2aYl {K!^%Lh HQVkhЀ *Rj$6ݝ){AKzx`LsZL'PX}П$y ]IJȓ Dýu *Rj$N609==WWD#Jyrz ޸aʲEaA,6WNs1Mg̻U]rf%;^wM{nZ~$P&k m) pS8,H#*%E6MkI;5b6U'wHpi_ C8Zb0Zȵ h~Ac PkZų,S4LܡEmi%oPŕwr?fb@GˆcͶ2m*#_-9hKpq嵘E0}͖/އ,q쬺;W~X? $4(QBw&Av<E$M+l(t؍‘Ƙ`J=\[O ?@aE$}k]iq]Kl`HJ}'8Yg}}UAvթ~gtP55=>Y|.n]Avu˂Z";A p{\e%3&}cߞ(OON:A俧} X:žӏsnX~;{EۀFvŭݭ9]?6P-ӗ 4[0LJ% Y,J}cA  r9IQS^X9Lp0/aeѱ&Y0(3#q=]"b}ʂQd)YkkË%(>w7O9) Ul6iHdL{u'2rpʻ-(VX cААq& ]~׊A/gF$[un|Sv۽N.ʈmp7ʼn#zq+ %޿u7{֫B5게V`c7|#DJĪo#czxe?)v=#{[Fa5!e5 v{*q0u8/*jWhkyl?<oP_r|BѼPqQQDϞrLnz;DR*q~N@ ƭTO//yр3?1_jH?cO ?}Jwgī+:MYӓ6 J+AתOBP_kj|(z$ AA$Ih9;=e NgXm)?:d2cָ%y_z@E>bgīʫ:Ru`S7JoGؿWM y:0=vA KܗWWMuUŻO@Z 5zWM y:1kfQX@ ل&b ^en=zz@ @t>h'@ U`N'z@ ⩀pkWGϯ?o1$ pPX@ / 57Od4$FT{bխU>@ n@P=c{V3CTf/iu\@ /vrXfEvǡ:K0VfhF @;a}}fVVCCCr$oFo6`ii3ҋ;o\tV1yS١ {xY ICq=A$D̬,gaaeA "(+++((4HeF,݉E\cqb2AE1=@DβAD 99>oY+L&333AAAϦEalݎmlZF Dl= 01qptp8[putWiϺQ@ts;= Zp<=xJ> @ ٷw.y _{/tv$UEq#&9t^^JԅxC~dA -@@ 08]"'l=ݷ\פ.X&dt^FT_~ɝsl_G-@ 6F3:osc*x9qmmG,;/'lbᨾCFPiI; >\_wMlgõ]t4[FjSuq l.t@ ^0 (tC!r9F (wZXչoZ[&Zʵk)WM9I-8=r/z0{mF۩vV:poky:&}dꊼ3~SŕvAߤU_v~Ŋs5MQ8M?4uߩ.7*mbe&rJ+M.pN~eŵo{BcgT }./uv(}>e7JčWv@ ^+h4Jᘛݸ~Ch?R733R4ZåddT҄ƍt3{̲SvU:%YrYGf<e#/ BPwH:g~8ٿ+)) 66(LW֪s<2\A#{ZZ~=߶ST;lZIZRB)B+"(DEEQ)""׫"( ( qPv}sRڴY's?&M'i%MIHoj2{k_Rwyw8̛{TIekΡ#'psY3{dG-6,Kttm\W_a@͜8yU+o2] QjF*:[YoL}>|Pp Cj@h[>uÍl [}ͪѾΗHw9F2.}Wܟ #0v=@}+((7{?9!!!GiTQ؜ QFcTtn¢뵌T͛"&GD)̅0SWOP_tGkr'-ozE?S游ǧ=.5UkNlz^hTX DQ4LsV[VH5}}jhD.t94:KIy$7t&-#Em_Qp,\P#GXnhу'ܳDdYGO*\  4("F"Ɩ_,*:p`YYc19+^׺FDDdffƆ=f̘%K̟??%%_~_|ӏ7.9=5111feeEGG:'qM6͛ٳ,[,.. 7L6d2p*?sLFFFjf!Ա@b2"##Ϝ9X lLy/ԌG[lٶmgxNO,jMSRB46QQQMSRB̙JaaaRRҿ~ѳuר(@ sQ4iҖ[: p nKwoOEiK(j~T*(+AθʸɎbA{N|/KJLHJm~)tTULt1 NZμuX…N]v۞sڳ)8i[#oa+ pvy?Rhx׊wض]=% 7%Wf rNѺǓV~n>^77l€i{=FWgGָc_L|FNny/6s\ m&ܹp8N>_E` NMݫ"R9h@NIF"&ܪt{u{&~="'^EtGz~8urrp~;cڜ=+oH ƱcfN RZNS[,Er…7mw- ! R%-vn+<^h?fn%җ..-LAbqF{tÊZk/hH믲ĮW_7DB`cc1\=M@*!bTȣ9%_##Ƙc\ɵ|A>+:ĉ&*b KgPV`ĜUD"8,X*VpuMB.?.ҜG|:UisV*: e>㰲 "ϑc\qeoc7͹}sSbD\*yş+}*e/\9אQ{Id1 d{V(s.gmIW:R˥ii嚍1fZ~EE11Z=EZMX\\N[OWw;\ܻ^<% cbbK.Z.Wu%SŪzkږ3GOԶQ_n[@C"f1F[O~EQAVFRg &B(di&}VO2Y0oDZk{ k5-6BQ+|%œ9s>3fs[,Qthu*yׄ&^%5Ij[4 5i 175ZCAK{E9sBZg i*UzkBѤ\L1}>[A,vts}L&ԩSnݪjz|眈.9c/AWČG ?)|줊 Yb0Zuk;y넄?iJEs,em}6z(r"jWi Ewß;R$n7eY,icLH+ՠ51xjpubdj JJ;h4"Vg. Ewr"ιBDQ,3F{NZ ^o2-F']XrTC{m~7ʘ UP寈1{vURdd]pQ\oWQ!ht:"ݧϭZj46؟ Ƥ9q(oOkdZ JlX>3K{9˨)c$} b9`Ԏ&ET湆Ϙ@hZ[תj}sFgks9=n؀8q&[Aڵ[$?Is XѝO^+mC^:9Dsֽcz8y[_>[_Ӟ/eEK R7'|YVs]}{U./뱆ko\~H9R 8Ɋf!HBYs31^X^2BpKsesdž}5))gΚ1⼼bNrUh ŲgXN.uuh\X_5ݺKEcII]" ZsYyMRX=FR١C.W+Zm\l\BrB@ZA蘝]Eb<}C-5D!ejf955UVq@bB"uŘBVTr*Jgfee_yeiii@bk ` MjW5e`2Ro{KZ!"ƘJbDFf:@YBz"*~-U8{P\pqN W p:7n=@@/ƘPl rRǭ )519kDձcjEEE;wLNNNo2ԱѸk+;w&H (;2=IӦz.Աb8~ؕ;p 29992""ԁȈ\RRRMp,ECEFB~jkP!q@} ^Beܵ/;@MO第YٽNy"GUU.r[>+}ZPc|̸>]gucvFDH љsojdZ/\g?voW/UwOn&|&|:wթEd ~߭}H扗~7O0i~{߮]<3nn{>[f*ŋ{:iӥf21"&◽. Ox5/@@n;rq*"U57[`\boOώW3uR1(ߺC"uڷiZqˑ5Y4U֠ܝ`7Rljvtú'L=#Rʝ:*'O{Յ8f7H6Sk$X/zkxߥRU\ݮt.f,{cXKM啨#JDj~bUJXg:Nj.Y\[i:u\8?^=uoI#+^ZǪ-F. [sR6qt#RED#yleK[mjҾiuȬ#/^{ ?w)+9.yޓ(qq$=]l6]ҡ}V' x`+_j+;O>0]vdK-%?!qxDfEE4U Z>9.}k6uG bH6|R6oޣ7=Fյ'xqew_零Ţ- Wكv-[(#-'e sּko9nc%]nȝ9FIΫY/ L1Z2x =c4Dg}RET®^}60~82bt:w pСV[TЎl7Rxgs{p6{izû,ô CDo=@CZ@PzA8NZ슴"11d2bGnh2j n0 h4`8 Z@t: ^?  !{Hz !{>X, ai=@CZ=ai=@CZ=ai=@CZ=ai=@i&EZfZ}y zpR9'aĕwI^ FindReplaceForm 0 0 483 288 Form &Find: textToFind R&eplace with: textToReplace errorLabel D&irection &Down true &Up &Options &Case sensitive &Whole words only <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> <html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } </style></head><body style=" font-family:'Sans'; font-size:10pt; font-weight:400; font-style:normal;"> <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">whether the text to search should be interpreted as a regular expression.</p> <p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p> <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">You may want to take a look at the syntax of regular expressions:</p> <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><a href="http://doc.trolltech.com/qregexp.html"><span style=" text-decoration: underline; color:#0000ff;">http://doc.trolltech.com/qregexp.html</span></a></p></body></html> R&egular Expression 10 false &Find &Close false &Replace false Replace &All Qt::Vertical 20 40 textToFind textToReplace downRadioButton upRadioButton caseCheckBox wholeCheckBox regexCheckBox findButton closeButton source-highlight-ide-1.0/editcut.xpm0000644000175000017500000001310711305445353017430 0ustar bettinibettini/* XPM */ static char *editcut[] = { /* columns rows colors chars-per-pixel */ "32 32 214 2", " c #000000", ". c #0B0B0B", "X c #181300", "o c #1D190B", "O c #131313", "+ c #1B1B1B", "@ c #211E11", "# c #26231A", "$ c #2A2513", "% c #2E2912", "& c #2E2A19", "* c #372E0B", "= c #302A12", "- c #312C1B", "; c #3A320F", ": c #3C3415", "> c #3C351B", ", c #232323", "< c #2B2922", "1 c #2C2C2C", "2 c #302E26", "3 c #353120", "4 c #3F3B2D", "5 c #313131", "6 c #3A3A3A", "7 c #423814", "8 c #493E17", "9 c #413D2F", "0 c #423F32", "q c #4F4319", "w c #5C4A00", "e c #5F4F0D", "r c #514410", "t c #554813", "y c #4E472C", "u c #444136", "i c #4A483F", "p c #534B2B", "a c #504B37", "s c #514C3A", "d c #654F04", "f c #604F0B", "g c #665200", "h c #675509", "j c #6B5405", "k c #6C5807", "l c #6C590B", "z c #745B04", "x c #715D0A", "c c #7B5B02", "v c #625B3B", "b c #7E6815", "n c #6C643E", "m c #4D4B42", "M c #494949", "N c #504D43", "B c #54534C", "V c #515151", "C c #5D5B54", "Z c #656048", "A c #736A44", "S c #726C54", "D c #77725B", "F c #696968", "G c gray50", "H c #826203", "J c #806609", "K c #836907", "L c #8D6A03", "P c #9A6F00", "I c #9B7005", "U c #9E730E", "Y c #9C7511", "T c #85732C", "R c #88783B", "E c #AE7C00", "W c #A87B13", "Q c #847B53", "! c #827D64", "~ c #9C862E", "^ c #A98A1F", "/ c #B28D0A", "( c #B88D00", ") c #B2821A", "_ c #B18E1B", "` c #B3941C", "' c #A88E2C", "] c #A28C36", "[ c #AE9224", "{ c #89815E", "} c #87826D", "| c #858174", " . c #888370", ".. c #8E8A7D", "X. c #928C71", "o. c #A28E44", "O. c #AA9F74", "+. c #B9A456", "@. c #BDA85B", "#. c #B2A068", "$. c #C28700", "%. c #CC8E00", "&. c #C29A00", "*. c #C4962F", "=. c #CCA100", "-. c #D6A800", ";. c #D1AC1B", ":. c #DDB31A", ">. c #D2A922", ",. c #D4AE2B", "<. c #DBA12E", "1. c #DBA433", "2. c #DDB428", "3. c #D2B23B", "4. c #E6A200", "5. c #E8A509", "6. c #EAAF00", "7. c #EFAC1E", "8. c #F5A100", "9. c #FFAD02", "0. c #FCAF0D", "q. c #FCB005", "w. c #FFB60C", "e. c #FFBD00", "r. c #FFBD16", "t. c #E3B432", "y. c #E8BF3C", "u. c #F6BE2F", "i. c #C6A949", "p. c #D9A948", "a. c #D8AB52", "s. c #DBBA45", "d. c #C5B162", "f. c #ECB74D", "g. c #EFB841", "h. c #EFBE4A", "j. c #EABA55", "k. c #FDC006", "l. c #FFC10B", "z. c #FFC800", "x. c #FFC90D", "c. c #FAC113", "v. c #FBC11C", "b. c #FDC910", "n. c #EDC233", "m. c #F5C32D", "M. c #FFC728", "N. c #F4C537", "B. c #F6C63A", "V. c #F5CB36", "C. c #FFD73D", "Z. c #E9C659", "A. c #EAC85A", "S. c #FFDA4B", "D. c #FFDD5D", "F. c #E9CD6B", "G. c #FFD560", "H. c #FFE06C", "J. c gray56", "K. c #959595", "L. c gray62", "P. c #A6A18A", "I. c #A8A69E", "U. c #AEA895", "Y. c #B3AC8F", "T. c #B8AF8B", "R. c #B4AD96", "E. c #B8B199", "W. c #A4A4A4", "Q. c #AAAAAA", "!. c #B0ADA3", "~. c #BBB6A3", "^. c #B1B1B1", "/. c #B9B9B6", "(. c #BBBBBA", "). c #C5BC9D", "_. c #C2BCA2", "`. c #C1BEB5", "'. c #D2C38E", "]. c #DCC78C", "[. c #C7C0A7", "{. c #C7C2AE", "}. c #C7C3B2", "|. c #C5C2B8", " X c #CAC6B6", ".X c #CBC9BE", "XX c #D9D3BB", "oX c #E6D08A", "OX c #E7DEBD", "+X c #ECDEB3", "@X c #FFF0B9", "#X c #C5C5C5", "$X c #CECCC7", "%X c #D0CEC5", "&X c #D0CFC8", "*X c #D2D1CB", "=X c #DBD6C5", "-X c #DBD7C9", ";X c #D3D3D1", ":X c #DBDBDB", ">X c #E5E1D6", ",X c #E5E3DA", ".9.U r . . , T B.*.x qX + , Q !.Q. . + 1 [ m.p.k . qXqXqXqX , u O.W.;X! + ", "4 8.j.` p 5 y ;.u.a.d % qXqXqXqXqXqX O , A P._., ", "1 x <.f.m.x.b.y.a.g ; qXqXqXqXqXqXqXqX + 0 v O ", " - h c W W W W z : qXqXqXqXqXqXqXqXqXqX . . ", " * e l l f X qXqXqXqXqXqXqXqXqXqXqXqXqX ", "qX qXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqX qX", "qXqXqX qXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqX", "qXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqX", "qXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqX" }; source-highlight-ide-1.0/filechooserframe.cpp0000644000175000017500000000210311345147550021256 0ustar bettinibettini/* * Copyright (C) 2009-2010 Lorenzo Bettini * See COPYING file that comes with this distribution */ #include #include "filechooserframe.h" #include "ui_filechooserframe.h" FileChooserFrame::FileChooserFrame(QWidget *parent) : QFrame(parent), m_ui(new Ui::FileChooserFrame) { m_ui->setupUi(this); connect(m_ui->browseButton, SIGNAL(clicked()), this, SLOT(chooseFile())); } FileChooserFrame::~FileChooserFrame() { delete m_ui; } void FileChooserFrame::changeEvent(QEvent *e) { QFrame::changeEvent(e); switch (e->type()) { case QEvent::LanguageChange: m_ui->retranslateUi(this); break; default: break; } } void FileChooserFrame::setFileDescription(const QString &desc) { m_ui->fileDescription->setText(desc); } void FileChooserFrame::chooseFile() { QString fileName = QFileDialog::getOpenFileName(this); if (!fileName.isEmpty()) m_ui->filePath->setText(fileName); } QString FileChooserFrame::getFilePath() const { return m_ui->filePath->text(); } source-highlight-ide-1.0/findreplaceform.h0000644000175000017500000000741711345147452020564 0ustar bettinibettini/* * Copyright (C) 2009-2010 Lorenzo Bettini * See COPYING file that comes with this distribution */ #ifndef FINDREPLACEFORM_H #define FINDREPLACEFORM_H #include #include #include "findreplace_global.h" namespace Ui { class FindReplaceForm; } class QTextEdit; class QSettings; /** * The form for the find/replace dialog. The form presents the typical * widgets you find in standard find/replace dialogs, and it acts on a QTextEdit. * * \image html Screenshot-FindReplace.png * * You need to set the QTextEdit explicitly, using the method setTextEdit(QTextEdit *textEdit). * * For instance * \code * m_findReplaceDialog = new FindReplaceDialog(this); * m_findReplaceDialog->setModal(false); * m_findReplaceDialog->setTextEdit(ui->textEdit); * \endcode * * The find functionalities is available even if the find dialog is not shown: if something * to search for was already specified, the application can call the methods findNext() and * findPrev() (e.g., by connecting them to menu items). * * In case a regular expression is used as the search term, the form also checks whether the * expression is a valid regular expression (You may want to take a look at the syntax of regular expressions: * http://doc.trolltech.com/qregexp.html). * * The form provides also functionalities to save and restore its state using a QSettings object (i.e., * the last word searched for, the options of the form, etc.) via the methods writeSettings() * and readSettings(). * * You can take a look at the \ref examples page. */ class FINDREPLACESHARED_EXPORT FindReplaceForm : public QWidget { Q_OBJECT public: FindReplaceForm(QWidget *parent = 0); virtual ~FindReplaceForm(); /** * Associates the text editor where to perform the search * @param textEdit_ */ void setTextEdit(QTextEdit *textEdit_); /// hides replace widgets from the form void hideReplaceWidgets(); /** * Writes the state of the form to the passed settings. * @param settings * @param prefix the prefix to insert in the settings */ virtual void writeSettings(QSettings &settings, const QString &prefix = "FindReplaceDialog"); /** * Reads the state of the form from the passed settings. * @param settings * @param prefix the prefix to look for in the settings */ virtual void readSettings(QSettings &settings, const QString &prefix = "FindReplaceDialog"); public slots: /** * performs the find task * @param down whether to find the next or the previous * occurrence */ void find(bool down); /** * Finds the next occurrence */ void find(); /** * Finds the next occurrence */ void findNext() { find(true); } /** * Finds the previous occurrence */ void findPrev() { find(false); } /** * Replaces the found occurrences and goes to the next occurrence */ void replace(); /** * Replaces all the found occurrences */ void replaceAll(); protected: void changeEvent(QEvent *e); /// shows an error in the dialog void showError(const QString &error); /// shows a message in the dialog void showMessage(const QString &message); protected slots: /// when the text edit contents changed void textToFindChanged(); /// checks whether the passed text is a valid regexp void validateRegExp(const QString &text); /// the regexp checkbox was selected void regexpSelected(bool sel); protected: Ui::FindReplaceForm *ui; /// for searching into the text QTextCursor textCursor; /// the text editor (possibly) associated with this form QTextEdit *textEdit; }; #endif // FINDREPLACEFORM_H source-highlight-ide-1.0/mainwindow.ui0000644000175000017500000001065411312456332017755 0ustar bettinibettini MainWindow 0 0 800 600 MainWindow Qt::ScrollBarAsNeeded Qt::ScrollBarAsNeeded 0 0 800 23 &File &Help &Window &Settings toolBar TopToolBarArea false :/filenew.xpm:/filenew.xpm &New Opens a new window in the workspace Ctrl+N E&xit Exit the application Ctrl+Q :/fileopen.xpm:/fileopen.xpm &Open... Open an existing file in the workspace Ctrl+O &About Show the application's About box About &Qt Show the Qt library's About box &Help F1 &Source-Highlight Settings settings for the source-highlight library source-highlight-ide-1.0/assistant.cpp0000644000175000017500000000707411345147527017772 0ustar bettinibettini/* * Copyright (C) 2009-2010 Lorenzo Bettini * See COPYING file that comes with this distribution */ /**************************************************************************** ** ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). ** Contact: Qt Software Information (qt-info@nokia.com) ** ** This file is part of the example classes of the Qt Toolkit. ** ** $QT_BEGIN_LICENSE:LGPL$ ** Commercial Usage ** Licensees holding valid Qt Commercial licenses may use this file in ** accordance with the Qt Commercial License Agreement provided with the ** Software or, alternatively, in accordance with the terms contained in ** a written agreement between you and Nokia. ** ** GNU Lesser General Public License Usage ** Alternatively, this file may be used under the terms of the GNU Lesser ** General Public License version 2.1 as published by the Free Software ** Foundation and appearing in the file LICENSE.LGPL included in the ** packaging of this file. Please review the following information to ** ensure the GNU Lesser General Public License version 2.1 requirements ** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. ** ** In addition, as a special exception, Nokia gives you certain ** additional rights. These rights are described in the Nokia Qt LGPL ** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this ** package. ** ** GNU General Public License Usage ** Alternatively, this file may be used under the terms of the GNU ** General Public License version 3.0 as published by the Free Software ** Foundation and appearing in the file COPYING included in the ** packaging of this file. Please review the following information to ** ensure the GNU General Public License version 3.0 requirements will be ** met: http://www.gnu.org/copyleft/gpl.html. ** ** If you are unsure which license is appropriate for your use, please ** contact the sales department at qt-sales@nokia.com. ** $QT_END_LICENSE$ ** ****************************************************************************/ #include #include #include #include #include #include #include "assistant.h" Assistant::Assistant(const QString &dir) : helpFileDir(dir), proc(0) { } Assistant::~Assistant() { if (proc && proc->state() == QProcess::Running) { proc->terminate(); proc->waitForFinished(3000); } delete proc; } bool Assistant::showDocumentation(const QString &page) { if (!startAssistant()) return false; QByteArray ba("SetSource "); ba.append("qthelp://net.sf.srchighliteide/doc/"); proc->write(ba + page.toLocal8Bit() + '\0'); return true; } bool Assistant::startAssistant() { if (!proc) proc = new QProcess(); if (proc->state() != QProcess::Running) { QString app = QLibraryInfo::location(QLibraryInfo::BinariesPath) + QDir::separator(); #if !defined(Q_OS_MAC) app += QLatin1String("assistant"); #else app += QLatin1String("Assistant.app/Contents/MacOS/Assistant"); #endif QStringList args; args << QLatin1String("-collectionFile") << helpFileDir + QLatin1String("/source-highlight-ide.qhc") << QLatin1String("-enableRemoteControl"); qDebug() << "assistant args: " << args; proc->start(app, args); if (!proc->waitForStarted()) { // don't show anything: we'll use the custom help browser anyway return false; } } return true; } source-highlight-ide-1.0/debugger_stop.png0000644000175000017500000000047211305445353020601 0ustar bettinibettiniPNG  IHDRatEXtSoftwareAdobe ImageReadyqe<IDATxڤA 0E'ųZue{AT\(,&Ӥ4"6Ʉߟ@"–paOE ֻ"~48*NҀ8sby]sE>WBjG BQ,H,1P"eЅ!ƌ0hCB/F Y*}+O\B4֞q4``8]V:` ʿ67`c@¡Q:'IENDB`source-highlight-ide-1.0/statusbarframe.cpp0000644000175000017500000000133611345147632020774 0ustar bettinibettini/* * Copyright (C) 2009-2010 Lorenzo Bettini * See COPYING file that comes with this distribution */ #include "statusbarframe.h" #include "ui_statusbarframe.h" StatusBarFrame::StatusBarFrame(QWidget *parent) : QWidget(parent), ui(new Ui::StatusBarFrame) { ui->setupUi(this); } StatusBarFrame::~StatusBarFrame() { delete ui; } void StatusBarFrame::setLineCol(int line, int col) { ui->lineColLabel->setText(QString("Line: %1, Col: %2").arg(line).arg(col)); } void StatusBarFrame::changeEvent(QEvent *e) { QWidget::changeEvent(e); switch (e->type()) { case QEvent::LanguageChange: ui->retranslateUi(this); break; default: break; } } source-highlight-ide-1.0/filesavehighlighted.xpm0000644000175000017500000001354311305445353021772 0ustar bettinibettini/* XPM */ static char * filesavehighlighted_xpm[] = { "32 32 234 2", " c None", ". c #4C8816", "+ c #4B7F13", "@ c #487C10", "# c #46790F", "$ c #44700C", "% c #436A0C", "& c #44740C", "* c #000000", "= c #497C12", "- c #477E12", "; c #4A8214", "> c #3BAA0A", ", c #4EFE10", "' c #60FE30", ") c #51FE44", "! c #529D1B", "~ c #6DFE1E", "{ c #56FE1C", "] c #4A9016", "^ c #324D03", "/ c #345604", "( c #335804", "_ c #355D05", ": c #366305", "< c #376A06", "[ c #3C7307", "} c #417F09", "| c #458C0C", "1 c #4C9B0D", "2 c #4FB604", "3 c #58D000", "4 c #66E400", "5 c #87FF1D", "6 c #B6FE76", "7 c #48FEB7", "8 c #20FE44", "9 c #3AF501", "0 c #54FE00", "a c #C7FDD8", "b c #6EFEDE", "c c #06FE17", "d c #4EC002", "e c #DAFE6C", "f c #DDFE76", "g c #F2FF89", "h c #F6FF93", "i c #FDFEA8", "j c #FEFFAF", "k c #FEFFB7", "l c #FEFFC1", "m c #FEFFD1", "n c #FEFFCD", "o c #FEFFDD", "p c #01FD7E", "q c #248913", "r c #39850F", "s c #497E10", "t c #48E602", "u c #80FEE5", "v c #01E76D", "w c #30731B", "x c #55C800", "y c #FFFFFB", "z c #FEFFB1", "A c #FDFF99", "B c #FBFF91", "C c #E5FE70", "D c #E3FE78", "E c #2CFE99", "F c #01DB58", "G c #26CA00", "H c #7AFED7", "I c #2D791B", "J c #FBFF8F", "K c #CDFE58", "L c #C3FE50", "M c #2AFE84", "N c #01ED76", "O c #48EC00", "P c #86FEE3", "Q c #2A7D17", "R c #4FB008", "S c #FEFFCF", "T c #01F780", "U c #23D400", "V c #3AFEA9", "W c #0AFE94", "X c #24D800", "Y c #8AFEEA", "Z c #4DA109", "` c #FEFEDE", " . c #3CFE9C", ".. c #2ADE00", "+. c #92FEEB", "@. c #249012", "#. c #FEFFE7", "$. c #FEFFC9", "%. c #FEFFD7", "&. c #48FEA6", "*. c #14FE98", "=. c #5AD400", "-. c #56FEB1", ";. c #1EFEA2", ">. c #2CE701", ",. c #9CFEEF", "'. c #1EFEA7", "). c #1FA20E", "!. c #FEFFF1", "~. c #60FEAE", "{. c #28FEB0", "]. c #26FEAA", "^. c #5FE000", "/. c #FEFEE6", "(. c #FEFED8", "_. c #70FEBA", ":. c #32FEB8", "<. c #2EF101", "[. c #A2FEF0", "}. c #2CFEAD", "|. c #01D91A", "1. c #72FE2E", "2. c #FDFECE", "3. c #F1FEC2", "4. c #C9FEB4", "5. c #A4FEAF", "6. c #96FEBD", "7. c #86FEBC", "8. c #76FEB9", "9. c #6AFEB7", "0. c #42FEA8", "a. c #46FECC", "b. c #35F501", "c. c #50F200", "d. c #A4FEF0", "e. c #32FEA5", "f. c #12FE76", "g. c #78FEBA", "h. c #50FEAE", "i. c #38FEBB", "j. c #5CFECE", "k. c #36FD01", "l. c #ACFEF0", "m. c #1EFE62", "n. c #06E301", "o. c #0BD901", "p. c #5EFED7", "q. c #42FEBA", "r. c #32FE8D", "s. c #08FE30", "t. c #01ED06", "u. c #15D501", "v. c #23BB05", "w. c #2FA50B", "x. c #399A0E", "y. c #3DC800", "z. c #4CE600", "A. c #6DFF0B", "B. c #91FE30", "C. c #B5FE56", "D. c #CAFE78", "E. c #50FEC7", "F. c #66FED9", "G. c #B4FEEC", "H. c #40B307", "I. c #46D400", "J. c #5CF400", "K. c #79FF17", "L. c #A1FE3E", "M. c #C5FE62", "N. c #E2FE80", "O. c #FEFFD3", "P. c #74FED9", "Q. c #4FFE12", "R. c #52F800", "S. c #BAFEE8", "T. c #0EFE30", "U. c #FDFEA2", "V. c #BDFF3F", "W. c #A2FF1D", "X. c #78FEE6", "Y. c #59FE18", "Z. c #549E0C", "`. c #4B8F09", " + c #5EC800", ".+ c #1CFE37", "++ c #70FF11", "@+ c #A7FF29", "#+ c #6AD600", "$+ c #72E600", "%+ c #E8FF81", "&+ c #60FE22", "*+ c #60FF09", "=+ c #28FE41", "-+ c #5BFE4A", ";+ c #4DB707", ">+ c #3B5D05", ",+ c #34FE4C", "'+ c #8CFE8F", ")+ c #4ED000", "!+ c #406C08", "~+ c #0E1000", "{+ c #F2FDCF", "]+ c #85FE24", "^+ c #1C2200", "/+ c #9BFF19", "(+ c #ACFE4C", "_+ c #59D109", ":+ c #273200", "<+ c #FDFDDF", "[+ c #60FE7A", "}+ c #8FFE36", "|+ c #D0FE6E", "1+ c #BBFE5A", "2+ c #9BFE3A", "3+ c #77FF13", "4+ c #5DE303", "5+ c #54A414", "6+ c #47840C", "7+ c #447707", "8+ c #355602", "9+ c #131600", "0+ c #5DFF05", "a+ c #FEFECA", "b+ c #63FF05", "c+ c #4ECE00", "d+ c #6EFF03", "e+ c #3E6905", "f+ c #2E4600", "g+ c #50B414", "h+ c #4B8612", "i+ c #427309", "j+ c #416608", "k+ c #2E4200", " . . + @ @ # $ $ % % & * * ", " # $ % % = - # + ; ; ; - + - ; + # @ & @ > , ' ) . * * ", " ! ~ { , ] ^ / / ( _ : < [ } | 1 2 3 4 5 6 7 8 9 ; * * ", " 0 a b c d e e f g h i j k l l m n n m o m p q r s * * ", " t u v w x y m z i A A A B B g g f f C f D E F G @ * * ", " t H v I 1 J K L L K K e e D f C f f g A j M N G @ * * ", " O P N Q R n A B B A A A A A A i i i z l S M T U @ * * ", " t P T Q 3 y k j i A A A A A B g D f e C f V W X s * * ", " O Y p q Z B e e e f g g A i A i i z k m ` .W ..@ * * ", " O +.p @.d #.l l l $.S m m n %.m %.%.%.%.S &.*...s * * ", " O +.*.@.=.y o m m $.l l $.l k z i A A A h -.;.>.@ * * ", " O ,.'.).R i g g A i k $.m %.o #.#.!.y y y ~.{.>.s * * ", " O ,.].).^.y !.y y y y y y y y y y !./.` (._.:.<.s * * ", " O [.}.|.1.y y !./.(.2.3.4.5.6.7.8.9.-.-.-.0.a.b.@ * * ", " c.d.e.f.M ~.g._.~.-.h.h.0.V V e.e.:.i.i.e.e.j.k.s * * ", " c.l.e.E e.e.e.e.:.i.i.a.a.a.0.E m.c n.o.f.0.p.k.s * * ", " c.l.q.V 7 0.r.m.s.t.u.v.w.x.> y.z.A.B.C.D.E.F.k.s * * ", " c.G.h.r.u.x.H.I.J.K.L.M.N.i l O.o O.l i B P.b Q.; * * ", " R.S.j.T.J.O.U.C V.W.V.J U.i k k k k j A h u X.Y.- * * ", " R.S.F.T.A.o K Z.`.Z. +D U.i k k k k z i h Y 8.Y.- * * ", " R.a b .+++o @+`.#+$+#+%+A i k k k k k i h +.Y &+s * * ", " R.a X..+++o @+Z.#+$+#+%+U.i z k k k j A A ,.+.*+; * * ", " R.a u =+K.o @+Z.$+$+$+%+U.i z k k k k A h ,.-+;+>+* * ", " R.a u ,+K.o @+Z.$+$+#+%+U.j z k l k j i A '+)+!+~+* * ", " R.{++.,+K.o @+`. +#+#+%+A i z k k k k z A ]+!+^+* * * ", " R.{++.,+K.o L /+L C g A i k l m $.i N.M.(+_+:+* * * * ", " R.<+l.[+}+n i A A B g N.|+1+2+3+4+5+6+7+8+9+* * * * ", " 0+a+b+c+5 h M.L.5 d+_+5+6+e+f+^+* * * * * * * * * ", " g+4+h+@ % i+6+e+f+~+* * * * * * * * * * * * * ", " j+k+^+* * * * * * * * * * * * * * ", " * * * * * * * * * * * ", " * * * * * "}; source-highlight-ide-1.0/make-dist.sh0000755000175000017500000000074611345151561017462 0ustar bettinibettini#!/bin/bash # a script to make a .tar.gz (with version in the name) # the archive will contain a directory $PACKAGE-$VERSION with # all the files in the current directory with some exclusions: # VCS files and build directories PACKAGE=source-highlight-ide VERSION=1.0 tar \ --exclude-vcs \ --exclude='*~' \ --exclude='*.tar.gz' \ --exclude='*.user' \ --exclude='build*' \ -czf $PACKAGE-$VERSION.tar.gz \ --transform="s,^.,$PACKAGE-$VERSION," --verbose . source-highlight-ide-1.0/findreplaceform.cpp0000644000175000017500000001451711345147564021122 0ustar bettinibettini/* * Copyright (C) 2009-2010 Lorenzo Bettini * See COPYING file that comes with this distribution */ #include #include #include #include #include "findreplaceform.h" #include "ui_findreplaceform.h" #define TEXT_TO_FIND "textToFind" #define TEXT_TO_REPLACE "textToReplace" #define DOWN_RADIO "downRadio" #define UP_RADIO "upRadio" #define CASE_CHECK "caseCheck" #define WHOLE_CHECK "wholeCheck" #define REGEXP_CHECK "regexpCheck" FindReplaceForm::FindReplaceForm(QWidget *parent) : QWidget(parent), ui(new Ui::FindReplaceForm), textEdit(0) { ui->setupUi(this); ui->errorLabel->setText(""); connect(ui->textToFind, SIGNAL(textChanged(QString)), this, SLOT(textToFindChanged())); connect(ui->textToFind, SIGNAL(textChanged(QString)), this, SLOT(validateRegExp(QString))); connect(ui->regexCheckBox, SIGNAL(toggled(bool)), this, SLOT(regexpSelected(bool))); connect(ui->findButton, SIGNAL(clicked()), this, SLOT(find())); connect(ui->closeButton, SIGNAL(clicked()), parent, SLOT(close())); connect(ui->replaceButton, SIGNAL(clicked()), this, SLOT(replace())); connect(ui->replaceAllButton, SIGNAL(clicked()), this, SLOT(replaceAll())); } FindReplaceForm::~FindReplaceForm() { delete ui; } void FindReplaceForm::hideReplaceWidgets() { ui->replaceLabel->setVisible(false); ui->textToReplace->setVisible(false); ui->replaceButton->setVisible(false); ui->replaceAllButton->setVisible(false); } void FindReplaceForm::setTextEdit(QTextEdit *textEdit_) { textEdit = textEdit_; connect(textEdit, SIGNAL(copyAvailable(bool)), ui->replaceButton, SLOT(setEnabled(bool))); connect(textEdit, SIGNAL(copyAvailable(bool)), ui->replaceAllButton, SLOT(setEnabled(bool))); } void FindReplaceForm::changeEvent(QEvent *e) { QWidget::changeEvent(e); switch (e->type()) { case QEvent::LanguageChange: ui->retranslateUi(this); break; default: break; } } void FindReplaceForm::textToFindChanged() { ui->findButton->setEnabled(ui->textToFind->text().size() > 0); } void FindReplaceForm::regexpSelected(bool sel) { if (sel) validateRegExp(ui->textToFind->text()); else validateRegExp(""); } void FindReplaceForm::validateRegExp(const QString &text) { if (!ui->regexCheckBox->isChecked() || text.size() == 0) { ui->errorLabel->setText(""); return; // nothing to validate } QRegExp reg(text, (ui->caseCheckBox->isChecked() ? Qt::CaseSensitive : Qt::CaseInsensitive)); if (reg.isValid()) { showError(""); } else { showError(reg.errorString()); } } void FindReplaceForm::showError(const QString &error) { if (error == "") { ui->errorLabel->setText(""); } else { ui->errorLabel->setText("" + error + ""); } } void FindReplaceForm::showMessage(const QString &message) { if (message == "") { ui->errorLabel->setText(""); } else { ui->errorLabel->setText("" + message + ""); } } void FindReplaceForm::find() { find(ui->downRadioButton->isChecked()); } void FindReplaceForm::find(bool next) { if (!textEdit) return; // TODO: show some warning? // backward search bool back = !next; const QString &toSearch = ui->textToFind->text(); bool result = false; QTextDocument::FindFlags flags; if (back) flags |= QTextDocument::FindBackward; if (ui->caseCheckBox->isChecked()) flags |= QTextDocument::FindCaseSensitively; if (ui->wholeCheckBox->isChecked()) flags |= QTextDocument::FindWholeWords; if (ui->regexCheckBox->isChecked()) { QRegExp reg(toSearch, (ui->caseCheckBox->isChecked() ? Qt::CaseSensitive : Qt::CaseInsensitive)); qDebug() << "searching for regexp: " << reg.pattern(); textCursor = textEdit->document()->find(reg, textCursor, flags); textEdit->setTextCursor(textCursor); result = (!textCursor.isNull()); } else { qDebug() << "searching for: " << toSearch; result = textEdit->find(toSearch, flags); } if (result) { showError(""); } else { showError(tr("no match found")); // move to the beginning of the document for the next find textCursor.setPosition(0); textEdit->setTextCursor(textCursor); } } void FindReplaceForm::replace() { if (!textEdit->textCursor().hasSelection()) { find(); } else { textEdit->textCursor().insertText(ui->textToReplace->text()); find(); } } void FindReplaceForm::replaceAll() { int i=0; while (textEdit->textCursor().hasSelection()){ textEdit->textCursor().insertText(ui->textToReplace->text()); find(); i++; } showMessage(tr("Replaced %1 occurrence(s)").arg(i)); } void FindReplaceForm::writeSettings(QSettings &settings, const QString &prefix) { settings.beginGroup(prefix); settings.setValue(TEXT_TO_FIND, ui->textToFind->text()); settings.setValue(TEXT_TO_REPLACE, ui->textToReplace->text()); settings.setValue(DOWN_RADIO, ui->downRadioButton->isChecked()); settings.setValue(UP_RADIO, ui->upRadioButton->isChecked()); settings.setValue(CASE_CHECK, ui->caseCheckBox->isChecked()); settings.setValue(WHOLE_CHECK, ui->wholeCheckBox->isChecked()); settings.setValue(REGEXP_CHECK, ui->regexCheckBox->isChecked()); settings.endGroup(); } void FindReplaceForm::readSettings(QSettings &settings, const QString &prefix) { settings.beginGroup(prefix); ui->textToFind->setText(settings.value(TEXT_TO_FIND, "").toString()); ui->textToReplace->setText(settings.value(TEXT_TO_REPLACE, "").toString()); ui->downRadioButton->setChecked(settings.value(DOWN_RADIO, true).toBool()); ui->upRadioButton->setChecked(settings.value(UP_RADIO, false).toBool()); ui->caseCheckBox->setChecked(settings.value(CASE_CHECK, false).toBool()); ui->wholeCheckBox->setChecked(settings.value(WHOLE_CHECK, false).toBool()); ui->regexCheckBox->setChecked(settings.value(REGEXP_CHECK, false).toBool()); settings.endGroup(); } source-highlight-ide-1.0/customhelpform.cpp0000644000175000017500000000227211345147536021023 0ustar bettinibettini/* * Copyright (C) 2009-2010 Lorenzo Bettini * See COPYING file that comes with this distribution */ #include #include #include #include "customhelpform.h" #include "ui_customhelpform.h" CustomHelpForm::CustomHelpForm(QWidget *parent, Qt::WindowFlags f) : QWidget(parent, f), ui(new Ui::CustomHelpForm) { ui->setupUi(this); } CustomHelpForm::~CustomHelpForm() { delete ui; } bool CustomHelpForm::setHtmlHelpFileDir(const QString &path) { QFile file(path + "/index.html"); if (!file.open(QFile::ReadOnly | QFile::Text)) { QMessageBox::warning(this, tr("Source-Highlight-Ide"), tr("Cannot open help file %1:\n%2.") .arg(path + "/index.html") .arg(file.errorString())); return false; } QTextStream in(&file); ui->webView->setHtml(in.readAll(), path + "/"); return true; } void CustomHelpForm::changeEvent(QEvent *e) { QWidget::changeEvent(e); switch (e->type()) { case QEvent::LanguageChange: ui->retranslateUi(this); break; default: break; } } source-highlight-ide-1.0/mainwindow.cpp0000644000175000017500000002470711345147605020134 0ustar bettinibettini/* * Copyright (C) 2009-2010 Lorenzo Bettini * See COPYING file that comes with this distribution */ #include #include "mainwindow.h" #include "ui_mainwindow.h" #include "source-highlight-ide.h" #include "assistant.h" #include "customhelpform.h" #include #include #include MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new Ui::MainWindow) { ui->setupUi(this); QString binDir = QCoreApplication::applicationDirPath (); qDebug() << "application path: " << binDir; // detect help path if (QFile::exists(binDir + "/../share/doc/source-highlight-ide/html/index.html")) { helpPath = binDir + "/../share/doc/source-highlight-ide/html"; } else { // fall back to source dir helpPath = QString(SOURCEDIR) + "/doc/share/doc/source-highlight-ide/html"; } assistant = new Assistant(helpPath); qDebug() << "help path: " << helpPath; windowMapper = new QSignalMapper(this); connect(windowMapper, SIGNAL(mapped(QWidget *)), this, SLOT(setActiveSubWindow(QWidget *))); createActions(); createMenus(); ui->mdiArea->setViewMode(QMdiArea::TabbedView); setWindowTitle("Source-Highlight-Ide"); //SourceHighlightIde *ideWindow = new SourceHighlightIde(); //ui->mdiArea->addSubWindow(ideWindow, Qt::Window); readSettings(); if (!checkSourceHighlightSettings()) return; } MainWindow::~MainWindow() { delete ui; } void MainWindow::changeEvent(QEvent *e) { QMainWindow::changeEvent(e); switch (e->type()) { case QEvent::LanguageChange: ui->retranslateUi(this); break; default: break; } } void MainWindow::newFile() { SourceHighlightIde *ideWindow = new SourceHighlightIde(); ui->mdiArea->addSubWindow(ideWindow); ideWindow->show(); } void MainWindow::openInput() { QString fileName = QFileDialog::getOpenFileName (this, tr("Open a lang file"), "", tr("Lang files (*.lang);;All Files (*)")); if (!fileName.isEmpty()) { SourceHighlightIde *ideWindow = new SourceHighlightIde(); ui->mdiArea->addSubWindow(ideWindow); ideWindow->openLangFile(fileName); ideWindow->show(); } } void MainWindow::createActions() { connect(ui->actionNew, SIGNAL(triggered()), this, SLOT(newFile())); connect(ui->actionOpen, SIGNAL(triggered()), this, SLOT(openInput())); connect(ui->actionExit, SIGNAL(triggered()), qApp, SLOT(closeAllWindows())); connect(ui->actionAbout, SIGNAL(triggered()), this, SLOT(about())); connect(ui->actionAboutQt, SIGNAL(triggered()), qApp, SLOT(aboutQt())); // these are not created in a ui file since they are used // to build the Window menu dynamically closeAct = new QAction(tr("Cl&ose"), this); closeAct->setShortcut(tr("Ctrl+F4")); closeAct->setStatusTip(tr("Close the active window")); connect(closeAct, SIGNAL(triggered()), ui->mdiArea, SLOT(closeActiveSubWindow())); closeAllAct = new QAction(tr("Close &All"), this); closeAllAct->setStatusTip(tr("Close all the windows")); connect(closeAllAct, SIGNAL(triggered()), ui->mdiArea, SLOT(closeAllSubWindows())); tileAct = new QAction(tr("&Tile"), this); tileAct->setStatusTip(tr("Tile the windows")); connect(tileAct, SIGNAL(triggered()), ui->mdiArea, SLOT(tileSubWindows())); cascadeAct = new QAction(tr("&Cascade"), this); cascadeAct->setStatusTip(tr("Cascade the windows")); connect(cascadeAct, SIGNAL(triggered()), ui->mdiArea, SLOT(cascadeSubWindows())); nextAct = new QAction(tr("Ne&xt"), this); nextAct->setShortcuts(QKeySequence::NextChild); nextAct->setStatusTip(tr("Move the focus to the next window")); connect(nextAct, SIGNAL(triggered()), ui->mdiArea, SLOT(activateNextSubWindow())); previousAct = new QAction(tr("Pre&vious"), this); previousAct->setShortcuts(QKeySequence::PreviousChild); previousAct->setStatusTip(tr("Move the focus to the previous " "window")); connect(previousAct, SIGNAL(triggered()), ui->mdiArea, SLOT(activatePreviousSubWindow())); separatorAct = new QAction(this); separatorAct->setSeparator(true); connect(ui->actionHelp, SIGNAL(triggered()), this, SLOT(showDocumentation())); connect(ui->actionSourceHighlightSettings, SIGNAL(triggered()), this, SLOT(configureSourceHighlight())); } void MainWindow::createMenus() { updateWindowMenu(); connect(ui->windowMenu, SIGNAL(aboutToShow()), this, SLOT(updateWindowMenu())); } void MainWindow::updateWindowMenu() { ui->windowMenu->clear(); ui->windowMenu->addAction(closeAct); ui->windowMenu->addAction(closeAllAct); ui->windowMenu->addSeparator(); ui->windowMenu->addAction(tileAct); ui->windowMenu->addAction(cascadeAct); ui->windowMenu->addSeparator(); ui->windowMenu->addAction(nextAct); ui->windowMenu->addAction(previousAct); ui->windowMenu->addAction(separatorAct); QList windows = ui->mdiArea->subWindowList(); separatorAct->setVisible(!windows.isEmpty()); for (int i = 0; i < windows.size(); ++i) { SourceHighlightIde *child = qobject_cast(windows.at(i)->widget()); QString text; if (i < 9) { text = tr("&%1 %2").arg(i + 1) .arg(child->userFriendlyCurrentFile()); } else { text = tr("%1 %2").arg(i + 1) .arg(child->userFriendlyCurrentFile()); } QAction *action = ui->windowMenu->addAction(text); action->setCheckable(true); action ->setChecked(child == activeMdiChild()); connect(action, SIGNAL(triggered()), windowMapper, SLOT(map())); windowMapper->setMapping(action, windows.at(i)); } } void MainWindow::closeEvent(QCloseEvent *event) { writeSettings(); ui->mdiArea->closeAllSubWindows(); if (ui->mdiArea->currentSubWindow()) { event->ignore(); } else { event->accept(); } } void MainWindow::readSettings() { QSettings settings("Source-Highlight-Ide", "Source-Highlight-Ide"); settings.beginGroup("mainwindow"); QPoint pos = settings.value("winpos", QPoint(200, 200)).toPoint(); QSize size = settings.value("winsize", QSize(400, 400)).toSize(); settings.endGroup(); move(pos); resize(size); settings.beginGroup("sourcehighlight"); sourceHighlightDataDir = settings.value("sourceHighlightDataDir", "").toString(); // set the global value for data dir srchilite::Settings::setGlobalDataDir(sourceHighlightDataDir.toStdString()); settings.endGroup(); int editors = settings.beginReadArray("editors"); for (int i = 0; i < editors; ++i) { settings.setArrayIndex(i); SourceHighlightIde *ideWindow = new SourceHighlightIde(); ui->mdiArea->addSubWindow(ideWindow, Qt::Window); ideWindow->readSettings(settings); //qDebug() << "after readSettings"; //qDebug() << "pos: " << ideWindow->pos(); //qDebug() << "size: " << ideWindow->size(); } settings.endArray(); } void MainWindow::writeSettings() { QList windows = ui->mdiArea->subWindowList(); QListIterator i(windows); while (i.hasNext()) { SourceHighlightIde *w = qobject_cast(i.next()->widget()); qDebug() << w->windowTitle(); } QSettings settings("Source-Highlight-Ide", "Source-Highlight-Ide"); settings.beginGroup("mainwindow"); settings.setValue("winpos", pos()); settings.setValue("winsize", size()); settings.endGroup(); settings.beginGroup("sourcehighlight"); settings.setValue("sourceHighlightDataDir", sourceHighlightDataDir); settings.endGroup(); settings.beginWriteArray("editors"); QListIterator it(windows); int index = 0; while (it.hasNext()) { settings.setArrayIndex(index); SourceHighlightIde *w = qobject_cast(it.next()->widget()); w->writeSettings(settings); ++index; } settings.endArray(); } void MainWindow::setActiveSubWindow(QWidget *window) { if (!window) return; ui->mdiArea->setActiveSubWindow(qobject_cast(window)); } SourceHighlightIde *MainWindow::activeMdiChild() { if (QMdiSubWindow *activeSubWindow = ui->mdiArea->activeSubWindow()) return qobject_cast(activeSubWindow->widget()); return 0; } void MainWindow::showDocumentation() { if (!assistant->showDocumentation("index.html")) { // revert to a custom help viewer CustomHelpForm *helpForm = new CustomHelpForm(this, Qt::Window); if (helpForm->setHtmlHelpFileDir(helpPath)) { helpForm->setWindowTitle("Custom Help Viewer"); helpForm->show(); } } } bool MainWindow::checkSourceHighlightSettings() { if (!srchilite::Settings::checkSettings()) { QMessageBox::critical(this, tr("Source-Highlight-Ide"), tr("Source-highlight settings are wrong!\n" "Please configure it correctly\n" "otherwise the application may be come unstable")); return false; } return true; } void MainWindow::configureSourceHighlight() { srchiliteqt::SourceHighlightSettingsDialog dialog(this); if (sourceHighlightDataDir != "") dialog.setSourceHighlightDataDirPath(sourceHighlightDataDir); if (dialog.exec() == QDialog::Accepted) { if (sourceHighlightDataDir != dialog.getSourceHighlightDataDirPath()) { qDebug() << "new source-highlight data dir: " << dialog.getSourceHighlightDataDirPath(); sourceHighlightDataDir = dialog.getSourceHighlightDataDirPath(); srchilite::Settings::setGlobalDataDir(sourceHighlightDataDir.toStdString()); } } } void MainWindow::about() { QMessageBox::about(this, tr("About Source-Highlight-Ide"), tr("Source-Highlight-Ide a small Qt4 ide for GNU Source-highlight," " using the Source-highlight Qt library. ") + + "

" + QString(srchilite::Versions::getCompleteVersion().c_str()) + ""); } source-highlight-ide-1.0/COPYING0000644000175000017500000010451311300727615016275 0ustar bettinibettini GNU GENERAL PUBLIC LICENSE Version 3, 29 June 2007 Copyright (C) 2007 Free Software Foundation, Inc. Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. Preamble The GNU General Public License is a free, copyleft license for software and other kinds of works. The licenses for most software and other practical works are designed to take away your freedom to share and change the works. By contrast, the GNU General Public License is intended to guarantee your freedom to share and change all versions of a program--to make sure it remains free software for all its users. We, the Free Software Foundation, use the GNU General Public License for most of our software; it applies also to any other work released this way by its authors. You can apply it to your programs, too. When we speak of free software, we are referring to freedom, not price. Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for them if you wish), that you receive source code or can get it if you want it, that you can change the software or use pieces of it in new free programs, and that you know you can do these things. To protect your rights, we need to prevent others from denying you these rights or asking you to surrender the rights. Therefore, you have certain responsibilities if you distribute copies of the software, or if you modify it: responsibilities to respect the freedom of others. For example, if you distribute copies of such a program, whether gratis or for a fee, you must pass on to the recipients the same freedoms that you received. You must make sure that they, too, receive or can get the source code. And you must show them these terms so they know their rights. Developers that use the GNU GPL protect your rights with two steps: (1) assert copyright on the software, and (2) offer you this License giving you legal permission to copy, distribute and/or modify it. For the developers' and authors' protection, the GPL clearly explains that there is no warranty for this free software. For both users' and authors' sake, the GPL requires that modified versions be marked as changed, so that their problems will not be attributed erroneously to authors of previous versions. Some devices are designed to deny users access to install or run modified versions of the software inside them, although the manufacturer can do so. This is fundamentally incompatible with the aim of protecting users' freedom to change the software. The systematic pattern of such abuse occurs in the area of products for individuals to use, which is precisely where it is most unacceptable. Therefore, we have designed this version of the GPL to prohibit the practice for those products. If such problems arise substantially in other domains, we stand ready to extend this provision to those domains in future versions of the GPL, as needed to protect the freedom of users. Finally, every program is threatened constantly by software patents. States should not allow patents to restrict development and use of software on general-purpose computers, but in those that do, we wish to avoid the special danger that patents applied to a free program could make it effectively proprietary. To prevent this, the GPL assures that patents cannot be used to render the program non-free. The precise terms and conditions for copying, distribution and modification follow. TERMS AND CONDITIONS 0. Definitions. "This License" refers to version 3 of the GNU General Public License. "Copyright" also means copyright-like laws that apply to other kinds of works, such as semiconductor masks. "The Program" refers to any copyrightable work licensed under this License. Each licensee is addressed as "you". "Licensees" and "recipients" may be individuals or organizations. To "modify" a work means to copy from or adapt all or part of the work in a fashion requiring copyright permission, other than the making of an exact copy. The resulting work is called a "modified version" of the earlier work or a work "based on" the earlier work. A "covered work" means either the unmodified Program or a work based on the Program. To "propagate" a work means to do anything with it that, without permission, would make you directly or secondarily liable for infringement under applicable copyright law, except executing it on a computer or modifying a private copy. Propagation includes copying, distribution (with or without modification), making available to the public, and in some countries other activities as well. To "convey" a work means any kind of propagation that enables other parties to make or receive copies. Mere interaction with a user through a computer network, with no transfer of a copy, is not conveying. An interactive user interface displays "Appropriate Legal Notices" to the extent that it includes a convenient and prominently visible feature that (1) displays an appropriate copyright notice, and (2) tells the user that there is no warranty for the work (except to the extent that warranties are provided), that licensees may convey the work under this License, and how to view a copy of this License. If the interface presents a list of user commands or options, such as a menu, a prominent item in the list meets this criterion. 1. Source Code. The "source code" for a work means the preferred form of the work for making modifications to it. "Object code" means any non-source form of a work. A "Standard Interface" means an interface that either is an official standard defined by a recognized standards body, or, in the case of interfaces specified for a particular programming language, one that is widely used among developers working in that language. The "System Libraries" of an executable work include anything, other than the work as a whole, that (a) is included in the normal form of packaging a Major Component, but which is not part of that Major Component, and (b) serves only to enable use of the work with that Major Component, or to implement a Standard Interface for which an implementation is available to the public in source code form. A "Major Component", in this context, means a major essential component (kernel, window system, and so on) of the specific operating system (if any) on which the executable work runs, or a compiler used to produce the work, or an object code interpreter used to run it. The "Corresponding Source" for a work in object code form means all the source code needed to generate, install, and (for an executable work) run the object code and to modify the work, including scripts to control those activities. However, it does not include the work's System Libraries, or general-purpose tools or generally available free programs which are used unmodified in performing those activities but which are not part of the work. For example, Corresponding Source includes interface definition files associated with source files for the work, and the source code for shared libraries and dynamically linked subprograms that the work is specifically designed to require, such as by intimate data communication or control flow between those subprograms and other parts of the work. The Corresponding Source need not include anything that users can regenerate automatically from other parts of the Corresponding Source. The Corresponding Source for a work in source code form is that same work. 2. Basic Permissions. All rights granted under this License are granted for the term of copyright on the Program, and are irrevocable provided the stated conditions are met. This License explicitly affirms your unlimited permission to run the unmodified Program. The output from running a covered work is covered by this License only if the output, given its content, constitutes a covered work. This License acknowledges your rights of fair use or other equivalent, as provided by copyright law. You may make, run and propagate covered works that you do not convey, without conditions so long as your license otherwise remains in force. You may convey covered works to others for the sole purpose of having them make modifications exclusively for you, or provide you with facilities for running those works, provided that you comply with the terms of this License in conveying all material for which you do not control copyright. Those thus making or running the covered works for you must do so exclusively on your behalf, under your direction and control, on terms that prohibit them from making any copies of your copyrighted material outside their relationship with you. Conveying under any other circumstances is permitted solely under the conditions stated below. Sublicensing is not allowed; section 10 makes it unnecessary. 3. Protecting Users' Legal Rights From Anti-Circumvention Law. No covered work shall be deemed part of an effective technological measure under any applicable law fulfilling obligations under article 11 of the WIPO copyright treaty adopted on 20 December 1996, or similar laws prohibiting or restricting circumvention of such measures. When you convey a covered work, you waive any legal power to forbid circumvention of technological measures to the extent such circumvention is effected by exercising rights under this License with respect to the covered work, and you disclaim any intention to limit operation or modification of the work as a means of enforcing, against the work's users, your or third parties' legal rights to forbid circumvention of technological measures. 4. Conveying Verbatim Copies. You may convey verbatim copies of the Program's source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice; keep intact all notices stating that this License and any non-permissive terms added in accord with section 7 apply to the code; keep intact all notices of the absence of any warranty; and give all recipients a copy of this License along with the Program. You may charge any price or no price for each copy that you convey, and you may offer support or warranty protection for a fee. 5. Conveying Modified Source Versions. You may convey a work based on the Program, or the modifications to produce it from the Program, in the form of source code under the terms of section 4, provided that you also meet all of these conditions: a) The work must carry prominent notices stating that you modified it, and giving a relevant date. b) The work must carry prominent notices stating that it is released under this License and any conditions added under section 7. This requirement modifies the requirement in section 4 to "keep intact all notices". c) You must license the entire work, as a whole, under this License to anyone who comes into possession of a copy. This License will therefore apply, along with any applicable section 7 additional terms, to the whole of the work, and all its parts, regardless of how they are packaged. This License gives no permission to license the work in any other way, but it does not invalidate such permission if you have separately received it. d) If the work has interactive user interfaces, each must display Appropriate Legal Notices; however, if the Program has interactive interfaces that do not display Appropriate Legal Notices, your work need not make them do so. A compilation of a covered work with other separate and independent works, which are not by their nature extensions of the covered work, and which are not combined with it such as to form a larger program, in or on a volume of a storage or distribution medium, is called an "aggregate" if the compilation and its resulting copyright are not used to limit the access or legal rights of the compilation's users beyond what the individual works permit. Inclusion of a covered work in an aggregate does not cause this License to apply to the other parts of the aggregate. 6. Conveying Non-Source Forms. You may convey a covered work in object code form under the terms of sections 4 and 5, provided that you also convey the machine-readable Corresponding Source under the terms of this License, in one of these ways: a) Convey the object code in, or embodied in, a physical product (including a physical distribution medium), accompanied by the Corresponding Source fixed on a durable physical medium customarily used for software interchange. b) Convey the object code in, or embodied in, a physical product (including a physical distribution medium), accompanied by a written offer, valid for at least three years and valid for as long as you offer spare parts or customer support for that product model, to give anyone who possesses the object code either (1) a copy of the Corresponding Source for all the software in the product that is covered by this License, on a durable physical medium customarily used for software interchange, for a price no more than your reasonable cost of physically performing this conveying of source, or (2) access to copy the Corresponding Source from a network server at no charge. c) Convey individual copies of the object code with a copy of the written offer to provide the Corresponding Source. This alternative is allowed only occasionally and noncommercially, and only if you received the object code with such an offer, in accord with subsection 6b. d) Convey the object code by offering access from a designated place (gratis or for a charge), and offer equivalent access to the Corresponding Source in the same way through the same place at no further charge. You need not require recipients to copy the Corresponding Source along with the object code. If the place to copy the object code is a network server, the Corresponding Source may be on a different server (operated by you or a third party) that supports equivalent copying facilities, provided you maintain clear directions next to the object code saying where to find the Corresponding Source. Regardless of what server hosts the Corresponding Source, you remain obligated to ensure that it is available for as long as needed to satisfy these requirements. e) Convey the object code using peer-to-peer transmission, provided you inform other peers where the object code and Corresponding Source of the work are being offered to the general public at no charge under subsection 6d. A separable portion of the object code, whose source code is excluded from the Corresponding Source as a System Library, need not be included in conveying the object code work. A "User Product" is either (1) a "consumer product", which means any tangible personal property which is normally used for personal, family, or household purposes, or (2) anything designed or sold for incorporation into a dwelling. In determining whether a product is a consumer product, doubtful cases shall be resolved in favor of coverage. For a particular product received by a particular user, "normally used" refers to a typical or common use of that class of product, regardless of the status of the particular user or of the way in which the particular user actually uses, or expects or is expected to use, the product. A product is a consumer product regardless of whether the product has substantial commercial, industrial or non-consumer uses, unless such uses represent the only significant mode of use of the product. "Installation Information" for a User Product means any methods, procedures, authorization keys, or other information required to install and execute modified versions of a covered work in that User Product from a modified version of its Corresponding Source. The information must suffice to ensure that the continued functioning of the modified object code is in no case prevented or interfered with solely because modification has been made. If you convey an object code work under this section in, or with, or specifically for use in, a User Product, and the conveying occurs as part of a transaction in which the right of possession and use of the User Product is transferred to the recipient in perpetuity or for a fixed term (regardless of how the transaction is characterized), the Corresponding Source conveyed under this section must be accompanied by the Installation Information. But this requirement does not apply if neither you nor any third party retains the ability to install modified object code on the User Product (for example, the work has been installed in ROM). The requirement to provide Installation Information does not include a requirement to continue to provide support service, warranty, or updates for a work that has been modified or installed by the recipient, or for the User Product in which it has been modified or installed. Access to a network may be denied when the modification itself materially and adversely affects the operation of the network or violates the rules and protocols for communication across the network. Corresponding Source conveyed, and Installation Information provided, in accord with this section must be in a format that is publicly documented (and with an implementation available to the public in source code form), and must require no special password or key for unpacking, reading or copying. 7. Additional Terms. "Additional permissions" are terms that supplement the terms of this License by making exceptions from one or more of its conditions. Additional permissions that are applicable to the entire Program shall be treated as though they were included in this License, to the extent that they are valid under applicable law. If additional permissions apply only to part of the Program, that part may be used separately under those permissions, but the entire Program remains governed by this License without regard to the additional permissions. When you convey a copy of a covered work, you may at your option remove any additional permissions from that copy, or from any part of it. (Additional permissions may be written to require their own removal in certain cases when you modify the work.) You may place additional permissions on material, added by you to a covered work, for which you have or can give appropriate copyright permission. Notwithstanding any other provision of this License, for material you add to a covered work, you may (if authorized by the copyright holders of that material) supplement the terms of this License with terms: a) Disclaiming warranty or limiting liability differently from the terms of sections 15 and 16 of this License; or b) Requiring preservation of specified reasonable legal notices or author attributions in that material or in the Appropriate Legal Notices displayed by works containing it; or c) Prohibiting misrepresentation of the origin of that material, or requiring that modified versions of such material be marked in reasonable ways as different from the original version; or d) Limiting the use for publicity purposes of names of licensors or authors of the material; or e) Declining to grant rights under trademark law for use of some trade names, trademarks, or service marks; or f) Requiring indemnification of licensors and authors of that material by anyone who conveys the material (or modified versions of it) with contractual assumptions of liability to the recipient, for any liability that these contractual assumptions directly impose on those licensors and authors. All other non-permissive additional terms are considered "further restrictions" within the meaning of section 10. If the Program as you received it, or any part of it, contains a notice stating that it is governed by this License along with a term that is a further restriction, you may remove that term. If a license document contains a further restriction but permits relicensing or conveying under this License, you may add to a covered work material governed by the terms of that license document, provided that the further restriction does not survive such relicensing or conveying. If you add terms to a covered work in accord with this section, you must place, in the relevant source files, a statement of the additional terms that apply to those files, or a notice indicating where to find the applicable terms. Additional terms, permissive or non-permissive, may be stated in the form of a separately written license, or stated as exceptions; the above requirements apply either way. 8. Termination. You may not propagate or modify a covered work except as expressly provided under this License. Any attempt otherwise to propagate or modify it is void, and will automatically terminate your rights under this License (including any patent licenses granted under the third paragraph of section 11). However, if you cease all violation of this License, then your license from a particular copyright holder is reinstated (a) provisionally, unless and until the copyright holder explicitly and finally terminates your license, and (b) permanently, if the copyright holder fails to notify you of the violation by some reasonable means prior to 60 days after the cessation. Moreover, your license from a particular copyright holder is reinstated permanently if the copyright holder notifies you of the violation by some reasonable means, this is the first time you have received notice of violation of this License (for any work) from that copyright holder, and you cure the violation prior to 30 days after your receipt of the notice. Termination of your rights under this section does not terminate the licenses of parties who have received copies or rights from you under this License. If your rights have been terminated and not permanently reinstated, you do not qualify to receive new licenses for the same material under section 10. 9. Acceptance Not Required for Having Copies. You are not required to accept this License in order to receive or run a copy of the Program. Ancillary propagation of a covered work occurring solely as a consequence of using peer-to-peer transmission to receive a copy likewise does not require acceptance. However, nothing other than this License grants you permission to propagate or modify any covered work. These actions infringe copyright if you do not accept this License. Therefore, by modifying or propagating a covered work, you indicate your acceptance of this License to do so. 10. Automatic Licensing of Downstream Recipients. Each time you convey a covered work, the recipient automatically receives a license from the original licensors, to run, modify and propagate that work, subject to this License. You are not responsible for enforcing compliance by third parties with this License. An "entity transaction" is a transaction transferring control of an organization, or substantially all assets of one, or subdividing an organization, or merging organizations. If propagation of a covered work results from an entity transaction, each party to that transaction who receives a copy of the work also receives whatever licenses to the work the party's predecessor in interest had or could give under the previous paragraph, plus a right to possession of the Corresponding Source of the work from the predecessor in interest, if the predecessor has it or can get it with reasonable efforts. You may not impose any further restrictions on the exercise of the rights granted or affirmed under this License. For example, you may not impose a license fee, royalty, or other charge for exercise of rights granted under this License, and you may not initiate litigation (including a cross-claim or counterclaim in a lawsuit) alleging that any patent claim is infringed by making, using, selling, offering for sale, or importing the Program or any portion of it. 11. Patents. A "contributor" is a copyright holder who authorizes use under this License of the Program or a work on which the Program is based. The work thus licensed is called the contributor's "contributor version". A contributor's "essential patent claims" are all patent claims owned or controlled by the contributor, whether already acquired or hereafter acquired, that would be infringed by some manner, permitted by this License, of making, using, or selling its contributor version, but do not include claims that would be infringed only as a consequence of further modification of the contributor version. For purposes of this definition, "control" includes the right to grant patent sublicenses in a manner consistent with the requirements of this License. Each contributor grants you a non-exclusive, worldwide, royalty-free patent license under the contributor's essential patent claims, to make, use, sell, offer for sale, import and otherwise run, modify and propagate the contents of its contributor version. In the following three paragraphs, a "patent license" is any express agreement or commitment, however denominated, not to enforce a patent (such as an express permission to practice a patent or covenant not to sue for patent infringement). To "grant" such a patent license to a party means to make such an agreement or commitment not to enforce a patent against the party. If you convey a covered work, knowingly relying on a patent license, and the Corresponding Source of the work is not available for anyone to copy, free of charge and under the terms of this License, through a publicly available network server or other readily accessible means, then you must either (1) cause the Corresponding Source to be so available, or (2) arrange to deprive yourself of the benefit of the patent license for this particular work, or (3) arrange, in a manner consistent with the requirements of this License, to extend the patent license to downstream recipients. "Knowingly relying" means you have actual knowledge that, but for the patent license, your conveying the covered work in a country, or your recipient's use of the covered work in a country, would infringe one or more identifiable patents in that country that you have reason to believe are valid. If, pursuant to or in connection with a single transaction or arrangement, you convey, or propagate by procuring conveyance of, a covered work, and grant a patent license to some of the parties receiving the covered work authorizing them to use, propagate, modify or convey a specific copy of the covered work, then the patent license you grant is automatically extended to all recipients of the covered work and works based on it. A patent license is "discriminatory" if it does not include within the scope of its coverage, prohibits the exercise of, or is conditioned on the non-exercise of one or more of the rights that are specifically granted under this License. You may not convey a covered work if you are a party to an arrangement with a third party that is in the business of distributing software, under which you make payment to the third party based on the extent of your activity of conveying the work, and under which the third party grants, to any of the parties who would receive the covered work from you, a discriminatory patent license (a) in connection with copies of the covered work conveyed by you (or copies made from those copies), or (b) primarily for and in connection with specific products or compilations that contain the covered work, unless you entered into that arrangement, or that patent license was granted, prior to 28 March 2007. Nothing in this License shall be construed as excluding or limiting any implied license or other defenses to infringement that may otherwise be available to you under applicable patent law. 12. No Surrender of Others' Freedom. If conditions are imposed on you (whether by court order, agreement or otherwise) that contradict the conditions of this License, they do not excuse you from the conditions of this License. If you cannot convey a covered work so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not convey it at all. For example, if you agree to terms that obligate you to collect a royalty for further conveying from those to whom you convey the Program, the only way you could satisfy both those terms and this License would be to refrain entirely from conveying the Program. 13. Use with the GNU Affero General Public License. Notwithstanding any other provision of this License, you have permission to link or combine any covered work with a work licensed under version 3 of the GNU Affero General Public License into a single combined work, and to convey the resulting work. The terms of this License will continue to apply to the part which is the covered work, but the special requirements of the GNU Affero General Public License, section 13, concerning interaction through a network will apply to the combination as such. 14. Revised Versions of this License. The Free Software Foundation may publish revised and/or new versions of the GNU General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns. Each version is given a distinguishing version number. If the Program specifies that a certain numbered version of the GNU General Public License "or any later version" applies to it, you have the option of following the terms and conditions either of that numbered version or of any later version published by the Free Software Foundation. If the Program does not specify a version number of the GNU General Public License, you may choose any version ever published by the Free Software Foundation. If the Program specifies that a proxy can decide which future versions of the GNU General Public License can be used, that proxy's public statement of acceptance of a version permanently authorizes you to choose that version for the Program. Later license versions may give you additional or different permissions. However, no additional obligations are imposed on any author or copyright holder as a result of your choosing to follow a later version. 15. Disclaimer of Warranty. THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. 16. Limitation of Liability. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. 17. Interpretation of Sections 15 and 16. If the disclaimer of warranty and limitation of liability provided above cannot be given local legal effect according to their terms, reviewing courts shall apply local law that most closely approximates an absolute waiver of all civil liability in connection with the Program, unless a warranty or assumption of liability accompanies a copy of the Program in return for a fee. END OF TERMS AND CONDITIONS How to Apply These Terms to Your New Programs If you develop a new program, and you want it to be of the greatest possible use to the public, the best way to achieve this is to make it free software which everyone can redistribute and change under these terms. To do so, attach the following notices to the program. It is safest to attach them to the start of each source file to most effectively state the exclusion of warranty; and each file should have at least the "copyright" line and a pointer to where the full notice is found. Copyright (C) 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 . Also add information on how to contact you by electronic and paper mail. If the program does terminal interaction, make it output a short notice like this when it starts in an interactive mode: Copyright (C) This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'. This is free software, and you are welcome to redistribute it under certain conditions; type `show c' for details. The hypothetical commands `show w' and `show c' should show the appropriate parts of the General Public License. Of course, your program's commands might be different; for a GUI interface, you would use an "about box". You should also get your employer (if you work as a programmer) or school, if any, to sign a "copyright disclaimer" for the program, if necessary. For more information on this, and how to apply and follow the GNU GPL, see . The GNU General Public License does not permit incorporating your program into proprietary programs. If your program is a subroutine library, you may consider it more useful to permit linking proprietary applications with the library. If this is what you want to do, use the GNU Lesser General Public License instead of this License. But first, please read . source-highlight-ide-1.0/main.cpp0000644000175000017500000000070311345147575016700 0ustar bettinibettini/* * Copyright (C) 2009-2010 Lorenzo Bettini * See COPYING file that comes with this distribution */ #include #include "mainwindow.h" int main(int argc, char *argv[]) { Q_INIT_RESOURCE(application); QApplication app(argc, argv); MainWindow mainWin; mainWin.show(); //SourceHighlightIde * mw = new SourceHighlightIde(); //mw->show(); return app.exec(); } source-highlight-ide-1.0/findreplacedialog.cpp0000644000175000017500000000222611345147556021411 0ustar bettinibettini/* * Copyright (C) 2009-2010 Lorenzo Bettini * See COPYING file that comes with this distribution */ #include "findreplacedialog.h" #include "ui_findreplacedialog.h" FindReplaceDialog::FindReplaceDialog(QWidget *parent) : QDialog(parent), ui(new Ui::FindReplaceDialog) { ui->setupUi(this); } FindReplaceDialog::~FindReplaceDialog() { delete ui; } void FindReplaceDialog::changeEvent(QEvent *e) { QDialog::changeEvent(e); switch (e->type()) { case QEvent::LanguageChange: ui->retranslateUi(this); break; default: break; } } void FindReplaceDialog::setTextEdit(QTextEdit *textEdit) { ui->findReplaceForm->setTextEdit(textEdit); } void FindReplaceDialog::writeSettings(QSettings &settings, const QString &prefix) { ui->findReplaceForm->writeSettings(settings, prefix); } void FindReplaceDialog::readSettings(QSettings &settings, const QString &prefix) { ui->findReplaceForm->readSettings(settings, prefix); } void FindReplaceDialog::findNext() { ui->findReplaceForm->findNext(); } void FindReplaceDialog::findPrev() { ui->findReplaceForm->findPrev(); } source-highlight-ide-1.0/findreplacedialog.h0000644000175000017500000000304211345147441021044 0ustar bettinibettini/* * Copyright (C) 2009-2010 Lorenzo Bettini * See COPYING file that comes with this distribution */ #ifndef FINDREPLACEDIALOG_H #define FINDREPLACEDIALOG_H #include #include "findreplace_global.h" namespace Ui { class FindReplaceDialog; } class QTextEdit; class QSettings; /** * A find/replace dialog. * * It relies on a FindReplaceForm object (see that class for the functionalities provided). */ class FINDREPLACESHARED_EXPORT FindReplaceDialog : public QDialog { Q_OBJECT public: FindReplaceDialog(QWidget *parent = 0); virtual ~FindReplaceDialog(); /** * Associates the text editor where to perform the search * @param textEdit */ void setTextEdit(QTextEdit *textEdit); /** * Writes the state of the form to the passed settings. * @param settings * @param prefix the prefix to insert in the settings */ virtual void writeSettings(QSettings &settings, const QString &prefix = "FindReplaceDialog"); /** * Reads the state of the form from the passed settings. * @param settings * @param prefix the prefix to look for in the settings */ virtual void readSettings(QSettings &settings, const QString &prefix = "FindReplaceDialog"); public slots: /** * Finds the next occurrence */ void findNext(); /** * Finds the previous occurrence */ void findPrev(); protected: void changeEvent(QEvent *e); Ui::FindReplaceDialog *ui; }; #endif // FINDREPLACEDIALOG_H