From e70dea54c0c303add3905ba37b96da0ac9501c00 Mon Sep 17 00:00:00 2001 From: Alibek Omarov Date: Thu, 14 Jun 2018 21:23:38 +0300 Subject: [PATCH] Add waf itself(with included wurf and msvs.py) and waf.bat launcher for Windows --- waf | 169 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ waf.bat | 97 ++++++++++++++++++++++++++++++++ 2 files changed, 266 insertions(+) create mode 100644 waf create mode 100644 waf.bat diff --git a/waf b/waf new file mode 100644 index 00000000..9178805e --- /dev/null +++ b/waf @@ -0,0 +1,169 @@ +#!/usr/bin/env python +# encoding: latin-1 +# Thomas Nagy, 2005-2018 +# +""" +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions +are met: + +1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + +2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + +3. The name of the author may not be used to endorse or promote products + derived from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE AUTHOR "AS IS" AND ANY EXPRESS OR +IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, +INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, +STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING +IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +POSSIBILITY OF SUCH DAMAGE. +""" + +import os, sys, inspect + +VERSION="2.0.8" +REVISION="1f8dadaddc20912ba4dd275428a78e44" +GIT="80aba755c114c6b14ba334483c2baf30e579fe96" +INSTALL='' +C1='#<' +C2='#;' +C3='#)' +cwd = os.getcwd() +join = os.path.join + + +WAF='waf' +def b(x): + return x +if sys.hexversion>0x300000f: + WAF='waf3' + def b(x): + return x.encode() + +def err(m): + print(('\033[91mError: %s\033[0m' % m)) + sys.exit(1) + +def unpack_wafdir(dir, src): + f = open(src,'rb') + c = 'corrupt archive (%d)' + while 1: + line = f.readline() + if not line: err('run waf-light from a folder containing waflib') + if line == b('#==>\n'): + txt = f.readline() + if not txt: err(c % 1) + if f.readline() != b('#<==\n'): err(c % 2) + break + if not txt: err(c % 3) + txt = txt[1:-1].replace(b(C1), b('\n')).replace(b(C2), b('\r')).replace(b(C3), b('\x00')) + + import shutil, tarfile + try: shutil.rmtree(dir) + except OSError: pass + try: + for x in ('Tools', 'extras'): + os.makedirs(join(dir, 'waflib', x)) + except OSError: + err("Cannot unpack waf lib into %s\nMove waf in a writable directory" % dir) + + os.chdir(dir) + tmp = 't.bz2' + t = open(tmp,'wb') + try: t.write(txt) + finally: t.close() + + try: + t = tarfile.open(tmp) + except: + try: + os.system('bunzip2 t.bz2') + t = tarfile.open('t') + tmp = 't' + except: + os.chdir(cwd) + try: shutil.rmtree(dir) + except OSError: pass + err("Waf cannot be unpacked, check that bzip2 support is present") + + try: + for x in t: t.extract(x) + finally: + t.close() + + for x in ('Tools', 'extras'): + os.chmod(join('waflib',x), 493) + + if sys.hexversion<0x300000f: + sys.path = [join(dir, 'waflib')] + sys.path + import fixpy2 + fixpy2.fixdir(dir) + + os.remove(tmp) + os.chdir(cwd) + + try: dir = unicode(dir, 'mbcs') + except: pass + try: + from ctypes import windll + windll.kernel32.SetFileAttributesW(dir, 2) + except: + pass + +def test(dir): + try: + os.stat(join(dir, 'waflib')) + return os.path.abspath(dir) + except OSError: + pass + +def find_lib(): + src = os.path.abspath(inspect.getfile(inspect.getmodule(err))) + base, name = os.path.split(src) + + #devs use $WAFDIR + w=test(os.environ.get('WAFDIR', '')) + if w: return w + + #waf-light + if name.endswith('waf-light'): + w = test(base) + if w: return w + err('waf-light requires waflib -> export WAFDIR=/folder') + + dirname = '%s-%s-%s' % (WAF, VERSION, REVISION) + for i in (INSTALL,'/usr','/usr/local','/opt'): + w = test(i + '/lib/' + dirname) + if w: return w + + #waf-local + dir = join(base, (sys.platform != 'win32' and '.' or '') + dirname) + w = test(dir) + if w: return w + + #unpack + unpack_wafdir(dir, src) + return dir + +wafdir = find_lib() +sys.path.insert(0, wafdir) + +if __name__ == '__main__': + import waflib.extras.wurf.waf_entry_point + from waflib import Scripting + Scripting.waf_entry_point(cwd, VERSION, wafdir) + +#==> +#BZh91AY&SYC9+20T(bx\=o#)#)#)#)#)#)#)#)#)#)#)#)#)#)#)#)#)#)#)#)#)#)#)#)v}:5»Gmk-6gٚ};Yh;g}ݶDaٝVT[O>20>w]s#)>#)h@J_`5]v#wݞwn8i,Cymj=x[={㽏K;W;]h|Zn3aHom\|#OM}}^cOOl֓mݴvkjo #)V;zp;b#)TjU(Jٙ1UR;.}}Sq;mٯK{#;U޲: k#Wt#)[#)*ݮ{|h'[82n9mmq9kE>mGCmYEn@n===;w5V7\y=u;^UvQZ}o7=3u랾l6,UnP{vj[Gf$?ƕ2#)0@ (:oH,ċ)hR(9\)JƱYz{0E>*fp=+kN04iUPL'DQx0UQ`7W=kWt)&՚m)%+ZImljɶmmU[تZjr+#)CCJ`%$VEB#)2YP#;4EK#) -e lV6]-kVk[QS*-2ɘbH-dd@)M6P$5C"fT$6H R(MRLP`%+ME$3IdiM!$F"DԥF#)i*mH-Q%,fԘ@ -!i#)eS1ch&CIBF2P"ChI1F54KiZV3bM&HEK&-52S[-#;L L#Dm#))2ʹDQ#FȘ"AH4B&D 2#45)(؄!A"$@C$+HBБ#2Hd٨Ff$@Y%,dDR,,$Y-4bJL2LRd5%D,D$I%"$X&dM%1b#b!b$4#A0 &0,!, &bF$QERE&3FIDXL #S$dh4[ RI1Rȁ I؀,(YQ6#;"MB2H͑0L4HF!RAE#,lʓTSdBMHM(FH%J242E%LlJ#<(#;&2#uONCWf#)GG[3uKclDLUHhmqb}믔XE,UILiaH7iQ'#;֯}]u,<<3=<ɘͳO!m&{U\38]<DŽ##;QF6Mu;r˙/KQMs&Ո"-T{qfKQ8P"([BSƯFMFZ`DS=ؐJAHl=,]B ^Z_[W c]/{85zsmgYn֛tj#ןצ0b%58WAƔk^܀`{.͏Klky^!x)VMܨk/v/B,aJ3":P)XWW)-d&#+ 8~m_kXJLŒ{[t#;*$E1~%{f{"]/ <4'n81D{_LetM|pgOqz+:Z$vFM4Kya 'w-),!cޯИJ_R)XQP竺W8#QA"9-kyM DAJE"{JU +T-LNIG @ Alļ`x/tL}y}jD46ȯFhOHĚou[dMxÏ< dK.J'njw_HVd {ˌOR4?c,]qBk%[:xUeCP.Yt.S"mC'vG^8\8)sEWiWz^;|+%%#l#<{Aqgu9mHjQoP/8r J8Zf66͏mV6cȶ_"U}cJNmLG?:!|]H3U"&>8~-l<,MxxTay|"3n#;hvay+;n2/2&#&ҭU)TWm#<gouaobtO"*/}a%]~n'^bwvڟ:YгFEhEfGx1s$0JGЬ#mE~D]~7':':=2>rӨپTlRTΝٸ#;U#IW~\֡ˮNR†^ vt;8^5UTO4zNsV#mwNRyxU>y #&_[Jze֝ъm$Ʉ%֬xme[ò4^QqSQDeO}~#;Vy_і;ޣF+eq-'6:P)B(1'?Jm;m/4G3r˄tS$=p%coaIjM;Jn'gնfZ MBиwoק4Ȍ|܏G#;>8:m#<8ܠ1#(bzR4mGAa=V "5)|̊QhxAvPĺsw1>ǦcNߖ pZ,.OUoC㞷c{*puN~~UE2t?)r"P18pMaqcm\pH6SRt+U0D}nZ^`A(f]^Iq!3]#;%ʼ0{MxbZ ͗}88>Fvh*1b,N*'K[ˢ Rm-rh"xvׁ?d?zs-dIHB&'&z.EC1g\};vvgLm5nujӀJ<.j`uAj]Reqww֭[#;T'#"P8! XC1R݋qV˩G5=)L^pNn#vʋtۖU4Hʿ錃l|(FBE"!*uD %GXm=Qu36htAnǴ\ [ZU{#<(3A _qdJ!XCUfvI wϿs]@_i.Sbk7gS\w#낤#;볷9,u')5Bޡߌc9|*'^ ɜDRϘXnRD-/:Y`6oݾ, Q#;"UeWo@}qXmNNe6+;:ٌma7?*kR?+,ߤf>=b*<[5.#<NήZKC!mZ<8\^}2(𻟰>_(ǎ'~#;]?5¬O޺%ⲖˆYAF-8jx"pg#<35K3'2Ɲhl1z4^grօ鱳t|uDyU#<+ș"ߕh\/U湵:bWԃȯq_9eIԐ`@P(/h OnOO_X' I9ð%껓LC oG?WctM>~# H=s<0yAn#;m(GpU#<*դ8s^gL,P9 d@QʜAfJAXd8se5J2ur#;mQc@D:A& @GMc*9i}%|94KLWl#Eڨ^0L]VS_H2=1zmD#)+EÕF.TEW唺\}1 5ICäpQ @.1P;!ֹ.XVOU(q djd.Iu|GǩE;ox:Y`X kaߠj(5q>sNE9.`Pv_~"&l ȕ(,?ԩ_=xN|C ؏ -aHi#Ct27A|sn\Gr]D_#;zM)HfsΆ*p+]uGQ'a_;%yf!<;#)8Q|܊6뺉&<^~OWeѬ#;@D*;U|\"=:ũ'^cxv>gWr3\@$A !#BP*XEJ(H1U$j'gS5ٹ23)*u%@}>U'nWIdC3t̾t㫔#IEL1B3O"@ .~#;ӡOG5޳FfB>=X]?Okb4(-$,$F$o?Ox"ޟ5yjr5&&CTt弣_1py|nL}H2D%lUj1M%O?;!00_:O<ՅB(vpZyTlȎ ^$tObͰs>oWoZ ;upAv/4u?EGڻ#) Nƶk|\W9{vt 6p .ns>G`$6_@6 huQHmݶb1g#TܠHuSP #<9Wm>cy3#;?S44fPʘfwzs]3ChZqgw*mBa`|Hߡrٛ䔵wit,Qv?nZC=O譨 :zXU Nw>DŽ=~)4m#)驳;ŧl6U1zb}dU0씮qi_O-`vHMH ί,ôbOti6,##;=~7Zk['7#]1M?dZcM#;d$!Me7S-$v^޼?+ lﴌۃ:F㉄ E$9MNO"8" #)=E{lzy0 aJ~Ѐ;F15vR_[s{zsN0ʯ szfrfsbMM70o[;/#<`(r z>RKkájpu^Ϯk-xAҊQ!J$LaqH mVKDUKtҔh}q$OV c0b\☬څ C(Uغc}%-Z*5g^d9W”nޣ^ty!*^r)L]pAQ䚙QAB4{NwkdB#0+C9Rr~V\#dߢV}4G$iMeA% My~NYwT=ĶFd#_(&w6.ue#;PnQ o!(95pI:(0#-gJa¡(yw.?SRSaH s|09{n$qJWa#[yq8,!##4#D#;:Hcc |!Y#;ϱOSD/F|Oa~OVio8'g%yQނ.0()70 P_z>jsٯy$aݮ<˵ť㷮wf1B(S%$vGM#.i+Ro7 }˄I64#8UyYf+R"H3vʣ#%Icޕw~rVvOj#;^ppwCU;dطHb?3ޡ-s (T)h7xɐ#޵Kw`P)y;MC^j 8I⁀ G͚^d"Z`{U3``{:N͍B\jf)hn6LVB'T&ɾJ&0e-j#;[Qaѡ+D@1#;!3e#;\Hpv @ĉ7ۋJ?EGߨXRACd,PtW^{ۘ"6Rj4і"dPBIp4BfnE# ^Q@/:'$\/KwZ(chCiiF{$"c(te)hdLU-#Pȳ I֋hNikªDŽQG66f!5"`Ҋ0喺`S ,&H ;02QQ:Rұdt(h3#tTj jd#<0@RJDel+ bJLื>O{5mhMnO(s4!Aa3?M:s^IAVQ`B`l.ȿ#$>g*>TbP` 〷ln' :J௶-&#)j7}fJKB"*=]>Zzs܇q#;NMVYsKa.&Z †6d8EFnZM\ۦ[s[t՚[^i;֝!%Q`"75e"0l#;PkIہ9߶ hZR@E2)B%#<-QT_m>]+w8uW>>~n z  8-/Y\G2G/ s}p0RJ5weQjd]#KQzϳܘ2gp;<#;;S{Na,1#ʸ5 _)%8x]+I@j.:RYR #{r#)*s y o5CD#)s_\[5usG˶]s~KG|7<•.j(r$!&#)vB X[)=؟3ϙ6/#0GllwZ)N=zli463n bm;240e) 1Bv& FAGnG*2JX(_ʢ]e+ƭM4Oe+(J? {ˠo~~1dF~9q#)O#) ΊQ@d:_ 1;XOg/_DKJ+¿߼z툰QlFzS6hEf&6*}z;nQs-r;+oIJOTJlIC2"#;޴PG/#<$]_`g6dR뼨 ;%iX@ҍ~}~\j.Uv$U ՚uy~JEK*'R!t+)mT0) 1BcJHXw奟ƓD0Gy\k'FV*oAd&#)$=fQh~^Q챪i"نQ(7R}&{ +Esp[ØhorYKC29GOjŋK[?3`P;"c< +neQ=BP Hд+v종,`6SҐSt#;uXm6}K\+O(~P0?z"MD3-~S2 'kbȊt{'ˆCCTL0U"$L͇ۧI˝ `?a~3]#)|O󯋑8E$ESѦLg??Lw4ǘ]>{!/?!@=f>6usqHwՒ?TtCz@m[L9&H:ܝr^/ul+uj: l+\ G>΋r5Bk6i|r;\ӻv~:g5Ʒrgg,NAwifxk=uʨbm@T_K`}}9dfE/īK5Z@`rAC9|qW⁊{[іos P\Mᖍ.!U#ε,p_͡PNV@1+ڬNתA?>[^US"OF:O:NJAeo=nv5#)Qaq!||PMtX’$r)ȿb.P1Jߍ9CC!ij;f-DE"׳!co^\z|>eo;~,mN'-܇{>tt_G4hC-m[}}ckdzUEם49;v%Bz_A@2 5#;߄W_yt;Yg@8q]`KPv e<"q{Z1, 1Gtzfp90M[WgۻT_s5̯"˂\BrQ.옶nꖱ8$\>\&y^C_vVVb^=L>X8OI>fe`|LGqtgwl<-2w>ÿvn;"^GU.١PØŏu\id5JH@oOP~5BO]aw|G!BkDxO#;:s=:KqvruGq!)gdFnṇ4,W~{l{u-oK j~Y"SեіzHG׵K#;|#OmPZ lz1^OF@`qcKE~-)߾(J4G >?]n.qS~(KUf9_"`We}wCW %Y##;8@2r/ٔ(<.~HDt|]סҶV|OW=/*#*w]onpO FO{C߸dF">>;/JS5sgz||?;s׷ۇ40gd4zYAq*A=#)g/dy=ԬX7()F x=#u~~n. c#)i[N&wgOfm~.v>~࿃5jк󚐺"qeAPhi/}3:~NpCy1w.yL.w)4#)+J?ybhf}#]|[}l;9yʭ+{#<~#;]#;M@?#)*oL h N3Ƌ^ϳ:{W_HXn-߮|+2dAx>GwY7L)tᘾ`7_N.D[LlQOVaPr0I#)Ϛ^mڹ!\M#<;R[=@O8>'C6Y흮}S5/>\Z[t^`)r: 50qܤHtT-,^Q>~*$aD|j+rfp$:Q9=@DCM v4ia :;n+-ؾB) .j+FI ۈ͏^EH3IJYضHHZ TJQWtUjk5oKPqHLh޷`i0TQ$565Ke+tsKEv֥Mğx7&D,AJ#m.H5C= 1x#<3IpzE\4yp}|}gWc$RwBGfDM|֊<.B/qg^%MO;LJ~>jDE1I&M'=t?Ko}>1$~|p+g@ oEyU?A`?!Jhw %<_F*?7˙UYp!aL Upahɍ~;ˍjAATMAUZPqTE7wCWw)2GFB!.ey#;`#Q-f Ց447BK#;X++n`͚VV#< ]?KxjHH-UeVXъ4У'(9n?'ܛ9vO|8~dMYlb,_/.)< v{e?hݒ~Vd>y[x5Xqlbh/3#ElVz;:-3-munp٧|qjT3D=2T(d?YUF+,"5 o6/ĪB|dbg;}#x]@c&M[X#NTRfZ#<9Yo+!_Y044  \ZԺ7.p,a }tOY]A^HəZF LWFhuRnvDbkM. "8oyՐh8Z&j5#;f֬D"}S"%86AU!'fv|0oQʃ:U U8r̭1șW Ԉ#<&aZ9X[;:b( #-`) Lime`v\Ql˶`q9?ݛ6m];Ը]wB^o%J(Z'6M$ Z 9ዔN#}\^*x~#<Dq1)DKb}Ssc?aPpywT}^3<"_!ryx bzrc#g_ՙ`.H)FD8,ob'h7g#;hlw-B눣QƻÜAl]/F4RhDdP)##;sjUZ*BC`O8ݶq!. h9ˋas>. 2aWe]tw].gh>v ^ks@]!lđ{mgP<&>ɍ3"W4F]>"ΐloA'mV#;T\'Jv14xFȔf9" f=W0UKE[4O͑E;]fs3m~1ACy3RI*3Lcݍ&3 D{1$tZqF3%^M{v$F%YѥȈ҆΋؆>jwU3{rйk!<O1mi@F_mә0;]#;0!2LRqYB'!bip@Τ2l)_TѩGm.d'ODuF+|q [#)<FɌÅbCj=Sg܎6&D(lԐ(47%ܡ{ukɻF:Ƶ| I6{j]CKcnMuV+U[LJ]([8n<.N7$84a>dg8rY/K";cwrs]:(K q"Gwp]¡.;gQgtAZ8J£ ̢\\h^BfvcŎ{Z5nte<\Q&kX4#JT풵6d"0Yl<6rLѶBQHKzW[`XVC69sm Y" 6f e{V6%ii=tL2m!B߳9}޾gkŋҗxP\Ï%bz}ٷlWr']F1#*L`32hJtfpo1N1Jn׹O?e=Ma^xGk]۔?Xiib*/eu6ӰB2(6osk!{km#<7+(ebiR4WVd,kL6ޝ|-y҂R1X]T-;j&aXQcod*3o,1Za*ҺoŸL\BrqҡqsIȈf*#)_:*_ƽ~p』Ws,˞\=/Xw_ނUI#Zj.#;4}9&aH߯'s{p9/~2TPz=h<> i\Ë+Ž>S׀g4΃NCkIW/EIrg,3~^7yqh]t1"FY>Fp_ 8Ӹ+P2!FXb%#)@Y=AApَWai!hx'r8#) ɟڠ1,!S{6:r)+ť[$= - uY\2;Xz #;;!@^:Xa#;jlBHtm'AZFp]X;#)g?YѬ6'SPUH835" |=9rFS1p`w., MK&b}2svK.˗!B#<6%Xq-by԰Qiǁ_tKd{2{;W牄2>F%䈧C+7&"]81yF](Y7bBH6kzݦd!R~n "zÃxb}dᎂJO|J#pEQz۝#<]aeM9I;s/1i>J$PdPZߞaw>zd$+jPn.wnw2CY:wC7O/}i""n&K@§e(SpVH-Nm-!;]'e;3 DIv!IǕuu%oG P.'vxI"fGCMM< Ԥk>s|dMmdtJhVϘ%2D';1Kף6_6piXޠ5}s#;ТհCmݯM2qrsX?lA&]c!"#!Oپ3I`d0B$d\P978PNՄ1&G5!iEa?v<#ۯM,]S&`6xѬ)S9l4Wm/\d-G13%'#;q\3#eBO'xD#;T7f$"H`a'#f,B8&*D6y.IjSzuּ9\idJyݧ#;eSUxv0bS~-:PZxy@Ls4V9WW1$@lf'ɏ;H\wz+r`qLB@rJ$}8HIO*T\T?hݚȯIL]L=<Ӥ%_7tJ-SNL$v9r􍬨9_l1U$g*xe!9 VR\-ePJ"̉#̈́R޲|}~nr(#<!F詠ͽBŚMlǰԏ4suyAxDG-dYɣ=qTu%Y=Tdq8N'TU_#;Ĕ-tcx`{<3N=)$߉#)}>j%0mq-M9u%}۵oj̤xm; ^r7CrJbv-bAonP#;pY/.UiEXR#,#;{K'ahK+p}]h6?v-7U59_ 8X$Y7#?vτ=TtႎQ09SU|[Nct·/Ck^/ `%Bz?(k7K!"Tąz|!7/ DHch:+qΫ-0AG&:R .A}1zQ 8I{^$ű3z+c6+I)u|oWfx _C`Fgۤf:2g$&5ZӪ6w;-tz^B/s5&?^;3chy&p'XxߞT0qиÝiq|nhͼCdLk9g ݀`AUϛevdYJz즗\/Rx>>>1k~ѽQacK\UiVۣ[`2u4#Wc#)N9@#<+'nsJ^rwRюs%OZP肊Qݢ`E,W6BńN9gZANm5HuVt{{"6G_vO<]$Qby#;6Kk~=2s듽|_Uʉ;ɥ msPI?wx|y0gF7;DK$RY>}lm#;0G5,D>RBҶTgzDŴq^k@)ak͸Ճ ᗓikʻ9M8ҎOX2d*:VR׸@ŠTlt&PzFf§]zܗQjH ) ZPآ ~l{xT5GDLQS#)-Оoq|Q 3&{.ߪ1q (Xy፶r%Tv⁤D #}ZlE6NsZ9\akt]8r@P!ME9k%BV'AWs naqXF,\d-=k#wt؃b^\ܒs8‘\DufW\$98f_xo@poY}S̅~!s^an\q۰$Z9YD4YPZC%(T=erQDG9)-{M!k(Qt8x'1ʪ*n.<5zBĐC ~ڸJ#+P/xss>^ O}s`i𲸙:|]/[,X{{β:K!W}[T-: imӧ#L jt 5슠 i-]v⺜DEHj9GYtay(V#Qի2Ip>SiH)(`b6\b:Q/sRCjSӛ[*lo#)%D4oD2`+9̑zmV;[CpD8ÖtX>eO2_e<#;䪝h;a"f_/w`G}?O-揚],BF|bUc؇Y>O:o_7mS,q6]Z86#]mȎ4COaihFiyRG|%' + cmM#kVOmM7K#SR9My/+CDR9ԃ}rgG臷;(õPJ%[ Mxj["^NhF熑oxߤ'#;"k9m\.^[y0ם k 9n|r " k3/:NgM!8a092YӤJ:w~qP%K,\i!= 9E*@mnU#n)Zrq.TDHR m/O#<pOrbQg'8| di7Mbrhc4?g\J'X:K-#cמguvZ??Yh߭Mڍ->M1y4~EAkj)-e%&e~lx,`Q)#MQ PjA$<90GtC|KQo ~_H$S7#)ː/χ_w W3q*Ѓx.K;:[}OӪZt…{E#)zfMؽ!`yh7H~;GlEC*ij;O hӌ[gri+s8QҊ#< ;}u:!#;P?[&R7C-#<@ER /\ 2H^j#*&*"dS,Ұɔu$ɄA5CJG29N<İ@>P#;pk9a?Zᵎ8ߒ_Byϻ|;>n(_~Qw|{Ţ&đ8v0ыZE\4UU3У !I@EOhE#)ҧ0L{|i{qIfP+eä]گ1©#)|#<`5Q"QNZp`"YI"V·q;@1 w'%W"bOd6aj24!戍DeM,=^Iof{M{n04# |sU;5JLmځG6sC7܀fי^5MMRATjNIQֹŔ@q0-߶|ROAan0azI-. c"=;*:RkTB-ۄN"#; N#Ժq#<׾%*57 ŒЅBI @"= ֻ'3\~'t8r})>7)k|I'~sW;a KlٖG>'xb.#;4&"jY[u4LgEY/veoTEEY6ޙʡ. 8ej0\Ep뤐"IQ0pp~l\{e(2DVzR=jXى0v%I8pg(#;o/D*\dW*+L0ӡThBM`X!U#^1IzߔSiMk 0s ב7$b"W(lPuDF #{Y#6ޮdww/w迣w'JLű#;d)G^ܜUU~ mXnkMqCc#)Б4r v8EӭÕ^,XQZhA!+QkUXC#$Zs ޱ0otvR6'Jw=)Af?s8aŖ'urHnTN DUM1I.$4[#|=<婧_aZyEJ4qOdpvOKi*#;eʲK)kS1#)!>/dZVi_D!][lM #[Wf=ή#;WɲaD@V71(ed쪝8F3tP݊JMQi"4›Nx0՝y6#;ќ \&fĭ#̝jMs{vdCs~NFP%1̏Sgl#;ЦeߡP?P)B993zJ!(I\quؒȣwnjPK ʼnHJU`}SL%@75Z1 >޿Eb*B1_֚Ƃ\('Ͼ ޛ%N=>R{'՟~X iD "'#??}1?`%zt0oHq#<<9\/5.)KFS*A(镞(B 쩂 ,y!&1#;qtcFَlO ϗXk"ᛨQwMgQ旟bqa.PM1٪D`6%ݩS-k #; Gk!l<&'|/I7 ԹI'҅LjȌ8Z]mmЖB{w^xb~p#;\ҨK"3^H߷iA#;A>P#)3~HxA0l#)zY#):Os=vZVE*o_A~HC'AuBN}MZ۰tD(MP0#)Sl7CXU u ~` 0 Fctl_[6dK#F@DB.#;j6AnAlj5J#;.6HF%<&Y)[}Z#;D !Ut([C=WTp))\9Y5pR!0NS sdMDCIv2]PC(\)AeӁA#=z4deJa+Nn69߾C!:R\`<.^gZDSb62·(g vz@FjȎ/VC(zSDii_,:zL6퇋@쩢[eC|#)!އ NG#<^T5x'lX23h1;ͩ]~|Qn]97< ^\4YLed,}ǟe=NS#<韖n쏖4x!3pGkBK#)TyX$^Cn-6ܨHY!HD(rfP8d1lEOdP/'m1nEOYzjpIET= \PozUXߡ8hk>JR#;6Ⱥ&"I!`ц拈#;H:+f#)C7-/-t:M!p$@w*Q{nQIAHq;F|RO;&9U&w)mտn::mr$M8H>xua|CHHҦLhCE ] ǝtxцHdgY䝩|j#NɘbK`тΊM1J1f1.n^#)䁩$R#Gp>@q 6x*_䇾D&hϑ+K$IsDl|7ȷD|(yW-!jt۝y.-z$$6-&~붍llX5G,@z7V8iJg\x`,C&0ȥX{4bzʼ IK)2I#-늤5#qPI1)V4)foW+t񫴶BP vۉ?&ɀE4@P"\IgcQ(}IiBˤA#)XqnfvpM_Qh .^p$;I'[C41"HS%[v/#{D@#<6ʃf渻>{N#<#;8*I#&#;7AQJ5|痛םґ4Eʂ"1TeE D˦x^ADtAڟ<ɩ2A|D#;^N`nׇn!#<tm UJ` ;fՆzg 2/['2,[w#)t wRNa;5YP.{u;MVٍ9e$\AT\(A$ bg-IýncLwMwCocf91AV AG_-aD+,5v)Uv ~Xd/NPHH)T=iHBLCa#;CK3Ӝ!ן&#;|#<㕙׽`aH7ho#<(5zr3#;98q…N#;P)4z&$B2>qaoNgw,82FǣH{RՍM,vbաň/$Aڃ{5QiD4j=P#y"_݁B=|s3A79^cs;0,k As~^1jRax5-!x*#<#<kZo9Ǎ9p|yo H(48Jw#)[A"HD[ I[1F+tJD;75lSɽh7'ZZt l wľXKƏyK:)>Ōt31\@imY!2#<&$) E(8[a!WԵۭ]Q/}^ui6|o!ukH@B3׈ÿluUuPg/j桧oS<6&"oł MV>˾/{@f#)9aGx#!hy C<v~~q(OBCNp!hq΁_^Sd(sCZ#) ,ȮL9U2&>[-E6b#)0 ^#;MUKhUUjkG#;LC.Sq)1"V([G;8yu6.%l(MaXjM7b 2!^g,#<c8}y>c;Vg粭nE:>Gȇ>' f(׃ Ml):TRk]hq(vԆ*0$DRzo<ͱSE<c@j]$a"pf`E[3आ;[rYs4J@s+Ra>}~a==Skf^~9qyJo.v=@O=JY9T=vsvm68T,rw|uEgP;K H9z_Z!yWTruzh#)B=HG6d٢oL% FzyOվ߿Z<8><䋦O0jAbbl=F5یռnB>xNt+߀s^"tCC<a扩U%n>̰{9vv˓y_- {6]*A2>24gɊ5v#;4.7󆠇uicI?t '7(:F=>$MY>q FOTcY8ڏ8'a0xC䱷6,Ha[#)?>Vr1}|uBkQ(!0k"jX[~}6'&n,BWx6}9k%:%Ho֡©T}rX1G=}&`s"l(%_X'[çmg2{["#< @7?_CMx5+70#4ц|95|+ٶrxeK+͗&1;mknK^9W>e3O<d?=Ƴ]H|o_\)Gf_+L-.AHC&uv8P^:Mg덑#ĩ+\SehtTP~]ԁ݈6 7A%Ec.sWd;WS#)%h#)#r%?0D x,b⳶}ҡecT+FC /Hv&uhޔL!ʶhεF_<#;^|$il.eD{XJ#TH!z\ z.7r+3Ò CD.f^>XIwU"((Q>k[b/cۍ#mNDžvrPD>3Yf|Fqk7M<6-4A$EU3#;W33r9c*z#)uP55jVsg8̝z*%y?7}oz.z_$q7eW#<^!#;N {n]XM.G^~#5#^RF#)1H;:*T)#!7NTЃO9DZ;wJC?ѻ~cjZ<`'~ܸpq^$<սpbgSG뜋[2cJ#<-vX)y@!s2*W݇ݠ1ĕڃr|s`@٬*.WJ${?qIcmV B7B3繂=k͆f~0g9W#_9U#)mYu;#;M͔ťlJԡk涆T9&b!)E.G+^Ҍ(r,ft";KJO䈎r(_f:~ErN㽣R>>Qc0*Xn.rS_17FL30t#)=?9 r-_@ nȒ IoG4R-xhqQVEm~#VfBgV<[H:n)YmʧDn"FLrV}@e'Q{ㇴ0dw8=A>s=Z=ϫf|lXg9 ഢx05/-k?>('|d=\:8;_ow#t+D_-KJbH;l~ʼ_d!ۜHHST@jԤR!/5. 1lBiʉnz0n&-rM7*h4)9PZNsJwv8QMQD_G,^^OÙəDh,t IeÿWy5&&|sOelQú5#>,]~|su:-8otm^q<_#;k~X#e𪯽z[lj3i ;TBz-9{c$,jj?յZ:wq#uuSQɵxq|MZ෉P*VJuC,h̄នMl>?v}!#;Ja=K/1)#gqtb$7 CZ!l5kCif@#)1d,x  ܁ QUu!4?ys yckh\|R,+t, 邱_~o+cR&_1NUt)fS#nOvC~[wy###)fQunmV,(s"79ufpo$p3?6jcHImn_'c[?t`y~v:dR,v@!d5GӯkE5)Pwx%Q|'3#NH#O?aq3TY.x#; B@4)Hy8!لO7Os&#)u/'0E~GAcP~U<IaC]~[T9C):C^78a‘Z(i21qN5t؟ԞqY$N '8m!ŷg,s6I$$* @r~~}(?2Ƞ2H_?#;)eݒ! k>87u\K% )a$>W^Ԑ햮ߒ)H% sm {ʷMܽ#)L  Մykȸb:bg"߮#NS56ۘ0#<]1@扜z#)!,#)t=wǡUz֠3, zȱ]Q%x^]dҍiSx4@nWNr;6MJVKIL)p;yRF^v:N>uю2K@f^*YUe^SZBc$<['6r9 H'{>v+&`)U@H4#)SK:tn"=b|Z`pC\٧@.s*0\[u"0!L\m6??[_Ey;0#;׶.eYy8dr?g|{K42{}<֖F Kky>SLCY$s+ʝ#;&iu#S3_f.Ϫ:%]} _0E34Ok;I:ϩ#<}T+'[-ulyu޹{#<&aV::h*HrMIjR)c}tid43k_GZM`N{t|=ЭVY=UwKI.{L6ow۝sVxNLv$DV x˜зg )1_t3)B2^tӏͣETTjsM+xy^#<}gی\W`]C#

ƕF^뽅ɹ,AtP>HmK=>T#<9~L+@RUڥ R`j&hh)::!l rT9\?㫔4=)e8qsX.cH@L\dȼnHKfgފ W/jY2g#;d+Ɲ ga\Mj#9sKj/8og#\ P5t$#)5[|5]w@J`;AK7,<#;H7I$#;C1\l,iU4;]M_|-WsIb0g lxd^&{[NaêɜR#) ڠU 3Mͧmd|qtgώуVw:oX0"4#x^GB0Ӕ#)nFz<٥;!j:0>X뛲\̣Oht|0EuѡI?-|OͫcsZhn^hHm|*vߨwR8j٧GP(kZ2mLrP`01Y-ϹKG(]+Fz@#gܻB#;N٤\1뛃g_⿱#y^if4e u CyK<(,D?Ѐr\o##<56,?ZίWʫ;t#)C}~|Tg#< $e#</#<7ڞ?v`ГH(Z,>C6+Y4*){?U~x{ 0`6-gK{twva &Űm@' ;psFo6*ND'C\įO3jOW#^;S> +(R80 aeTMux@.L=韐#;N>Qy:L>gP$/M<ҏ~e#<; CCG#P>_=7,h+ 1=oK-# ܹ. S0ޟ/. n(#;O׽vԽcnBp~=GŮGc]_^8nYnJrh.wk=&rI4Ԫ{ ALG"\@#)#HC #I~A #<bC<ǃ*C޲QFOoe5[l'}}ǹ;;km h#;>M۹%17p*#;԰l1dI$Z8Z. ഥ@{f@t2 BBJV|I?#)"z<#< Ý_͗]mN#;D.^F<#;iv#0ze#)mo|қٗ#;"HRJrœ˩4-IJ=oW۶Ϯ}' #wjwn~s9u:#)08J(.6*wv޿ͫ,=C;e!jB!O RQvK#) "Y*W79@4*!?3K)t* *D usoos!M"hYNd7j\qsXke ;ZݎRˎlYvI,U*i ?w4A*X^=\πjsa78de#;Ctc0K63t;K`(F,IIџaeb1i 3#>U^ad*|R9_w~x{ohP[Gy@4`"0')' #<<-i9#<(hCIgޱH&ee9`>*--b(4#)D CkADQz$Јh#CPtCon dWMY+c s,)G|0b$#;3P}f*B&Mו!Fك'\5^ \9fSM&ơL ARG-4f336"ab{Od ,<0*;?I<7a8 F=לQ-Lް˩!#;RIAp3!~'O V;oИ0F/APuZ?-]ofհK~˥N¸1M+c1%hF#;2q٘Ѳ!br?8&mlIg\8,t%u5zԃLLmS#;5$ KYfW)H&u䐒IZRiSWzMk3VZ #u u:t@6hD:vԲ]Nb(&}o!w~f4>Z- #<5>UެX0IA#))lhA$kɡd.I&؆\+3/al(R'Z{ΝMlr{#1s~Ⱦ&e`KMzC7YѢu)sW~ #ʬG)VQe[?2q"z|ZDWNT𰳳K_}r?jo۞ ^Q~@25"Q2B26)le[[5[ݚ #)J,J{/᳭ťxmmǒ"s,#)i>x~!g~܇I3~'{W@,@KFB@1ڷ?dԥ#; HF_9 Ru.av@P]O`GW~ͼfXs"4#)#)A#)nY8}J[= 2)>R}ؼZ$K>Z"nD; zkO@9KɳeObn ! c!40XƜwڧ8X~;ݻ|S:{U;A7G.@&&iF`@=\:yÓ#)N{V<@}=KZnP {{RPy!FB>pz "M}{ܨc]#C#;=O~_mUK-)3P,$=I>t ~gࡿvUGD,#;#)Y Q;cz7HZ|Qߏb{GH[2x҃xsF*B'U?66J_ԕl`i,BumcU~~*#)wU>0;3M,'}ẘ: Y4ԽByiH}J!zQGJ8: >2s$qzp`'_D㳱Blb'dEQ*B:yvhsx-G- %oW72)E^#~$Z{9>P;#;BĤJ(~gQv#;W#< Fʥ`=N{ 3D>SDԾc@s{;CG#)H+An5ڏ}0a9ڪQ{`=KGڅY:w_х\ ߢMT"JkUP0!QGj_r ҈80U@#qR Df'Z;q4(3U|Ou^kl1W0QT^&m>#)P'`'.'Ǒc*T-OO$~ 2E"5 (8;)]s=Sc- =BͰp8>!c\Xy#I4N~NY@'0~(6R?kxXjrxoQoZQqĩe#) $uT-#;C H#` 0{ J.͋t%"^ʕ;. R#)#<xU Ds]fzdb*j65$URzh\v w #<$#<0zsJU5 9#)’E;#;S?4Jw7(%‚`BPXF5??9TV^zB#;ߒVT xCV ab,㱠Ac*"lXJe4i|[䱹٪+km#;H4& jj.PHAl)@,2igd;%9'Y=A} PPp_E4ك!~$K^ sOw5vr#;#);M 7i7#;Mz U,b2##)834Q,i G%,-f'KmxvHIG.ne=B!oE;6h;7)'*`fc@#;=#)y:a|;|MI}u%XR~@vJ7=ϸ<0H~!H~; {x{[es8"uRC3={\q@ %x^78׹>Fe-mS6P6DB-<03kp 9Z"*ϙddG`;[xZ51 fT}sW=;? qST| ВJÚMV £x9c+=^t=jĄ_#;C $=;1`JN({CGvɄ㤤#;{~7i&f#GT$M(K^-bZطTv_{sqɏ-«:T9TMQ\%,Ա2aH5˸[mLlP!';ǟ~󁌟#;buU*-]6pK)Mw< Pzn]Yv3ӅR=꜀~,xc30m3Ggv*2*nS:MƑ@AF,1@)HG+e(Opz^>\օɳUdUQ-"8;8xΏӴ،")z6mPmRy_T(y#140QlqAz3_*~ZE- hΓ\?Cs9$/Wl+X#)sg^v#;]2sœS"7dizT@@$#;aD̳pLH4Ӏ-NjAY تK⏿ȫނg#<,s.pNze0D@X: A^"`:.Λ3h*;ϵ'vsR-yK8'Rdϡ?2>ۊw]k쐡89#6v#޴|/|uPGSHa@#< "R!nVH}O!Z\N"G/%d#g#2#;FM|~=D%܃yiȤQy*##)t]hD,#<}zVa\z:G ~,ͰWأE}#);ܨ 2WꎐpFALDho\eyJwmayx`#<}D%/yImLT"V \jL&5?K94)Ff^ZBKytݰb MCeaŨwFF&@mK&h^ F4nI2qckhw07Ư4RJs1 ljC#YWa|h?(jpaކKd -|94S8d"H}^Zٝ?wu?._4r4\X߾}X|~oVM3.;K z5P3ah8v8mدB.QN .j7&,+!Ix~+ NO#Ǐ_/9?2/cټ$f-gC?+!4HɆz%\LE3g;f+Òc.l3fgFdRǁX60x𥓓ӑKzã"ƣJW~O=aa"e6=ܕ{e#;H?ƃ~xY{&ֶ`mwG#<(`xU_#闥R[76.8CՕ! x mȒ\LCr#;dh P 4<Ⱦ ΏȫSNsko4+Q0)H`v.ͷӏkQ6]e {=;cn5.I#)I%&Vv'nO{>f1'a!sm#)#;2@7]W2Q&#;UidH}. d5#<Upsz#;4.A]pe<#<";ķ?2kN2Q1KMIN'_7 #< #;_G#;SPH4T9TX_5MVRoO_N-HL]i=p=9r?EH9,; |7N (+bK!ʧB /\wt^Pu#!ao\6ZȠR2҈0^+kQsM G)=>.}Z;K#4_NGM)a?@#!#;k G 3i61"4{C MBR#;bvn,aߝR>r5q~:%r/2{'QHLwoph]{ ɘLd6fsHwkD~d@3puT!)DI5iRR\yXɜC{YM\(c9vDenbGŽr]d ¬A"#<}ӂmݳ)+Ic.$MAaI#;HGF y*cb֓4tS#;P 9.~,=3 ,Y'ŧ6ABPqoG #< }Q宛!B~ ~>•i~_L@5eL~9s~F4=">cߣ ,Mji#;jj̦Rs$ #;@ cXb DRAZ,#;7Q \:gHAfXWy.Tw3xp~JhwtFr mϐy''!;BB}[}^M>Byyع}-!{8j8hnY;70#)iĪAG^wa$KUQ[4DeH҂̑1#m,KYX-%PȰA]q#DF@+ܦF<뿕ﵷԭ)c2ljƿygurۛj~מO#vn#u%U?E]f #;M#){?3^mL0d5IA:zrۦFljC>>'5ЪDv]SˑۆAlKc`#<"E#;MRhHXh22}BiYmF{zJF ]cdgԹ^ppX94H`pRXNd^C3|5*CcdN '#<ǐ`rY7,oO<㢏<)#0v};aN\ 9f+mK0|^n#rSfxLPqEDqXxm&N#;N(xO5;n#;;>q5#@ @9r!jy}wٍ0ɬ 3 L3 -’!bs50t7qn$c+[ieͪ+u#Q#ƞ&%f8I~ɋلwF{`Qȸ#v0Hp9igEnQƙZN:sdjJqUݐF#o)ɀ:1;_6)Dl8{`fEScvnKjÈI Gȫi8X3ıIckTSj}݁Rlǡ\(ɐ4RQq7tz88'A-ЌW萮9l^z+kɢ(We͈pwA$C~FmNLt]85Ls*5f Cun0x)vMQJ`r}f1ۖ9Z:@&+׭L(v37fd˙clƲ3$cg;c{#<VTW)EB A`öE;vT1.o<)- *[g4ΐ$!3 #<gn;R(3.\ςuy%2OZeUȘBljD bvB>g31`E,#<-%l;: 7 mtld ũ#Še Gn׵1氧!k Vm;'h#;2.8}ouèrYgTU&Xx==arHr0T h\ Hsw"j#) ̀Wi2uQNuȇ/7*ZJ#;puЪ#"#;asKhhRS9fnw#bӾrdd&2mI , RӤ.a;u= )br¬[hήH+#g`͚En._MBi$LjRs)Q8dvĸZ)myv#;&˸]-0%ZBF 's)0Z"K#^:YC4N;@D⓻U n#‰"Rchl3#<]YQt2z:gm\h~T55'[s{P;:dc2ŸwPK0i[xs0uC%$L|)h.9 56$Uc)#ُz]y9b$R0ww>7,QW5l tVD_̷SkW.&oHcHhbH!x09+80|}`cSdd\ : Xx6P#0L[0> i2iL#4E)i$fjTdQ6u7Ӡ#<}tw : 5MQ#)^L D}#6\C$Ks<8HK=^-?Hj!#)H!3{NBQZ.f&-]P!rdɢԝ+T/jIT[!4hlb9Ԝ#1wݥۖ]ChSI~ˆBUJE'.8rN' G`Pl=B|YF"|b6*#;Uϣl[YTe+(z`/TI Ⱦ#<# xJ:YsF؛ݕ~X#;QFΖl9EG\Z|;n\?Ƽv$|фD25FZ6%j6XMIQYiM*Mh3UeV5[3TI}3Rs#;'E"H" tJ!7(GG(#<Xa8v9l}[h-!HG9a=A^'S͆"_@}!!?'ݾ!@P,=s*-EHEA 7LUIiTd0$OfA>U P@D}UU y|wM:Ga)H66b. ~r!y^]ʱ/@e'ܨW{Ҁ.k1j RuuHW^ #;X!M"A`EH;y8f'v5B /55eN#<~|[F\M쉺I˝0ꍐB!SHõ;ϫ^< 'y;R>f+gcA?rلkgy 15|@yQvopt}<>󸫔JtZ}9LL, R0Oi֞r#O(hmߋ\+N$ylx^e(?UN#d4BT)D sL5l A~Wxbr!hူo#;,jZeϊ YqvC$3Ce&SJ#<.XRkaPF(z% XG C#)SXm;-:{'jp$}i%?Ӕ4(5e5TTQ,ΟWi˜R#cmw(QX}&齴#ʎcBah#1pLuyآ}=42jLT(`F;E(Iܰ\9."@RYHk-x=d1BCo-ءA`e+#%KMɇq%)8+#<:& &ɡMՂNPWQ6x(#sC .!1|ˠ]7eeاqF;jt,QP-T&>r6fʌ#;nxTq̐=p&}g^M\9pN͌L[wϼZ8>YJ:.[Z5ދ`039]Dy^T9S #<<> Nl:}88anɍ7صOfNݨf#< 6:K= 7o|TXG)ozGoC]jq DɈzo#;N)9W|#;suJ,r!֦iGdG8/?R:q1+ K-teV ., rd۸BB#lW^u@\ :5ٽ@>?#F@#)OGKaD4'[rYk]76S;r.MAŶl]B(FAFR6"q0PAi)DZ6EƤd,EAĄ"Az_ Fjk%3 )"$`CCN<naH#;%8U9E*n)hpOBQo:._˼d0͉~ #;SHʛ @*H iݰ@E7\{]"EM,/VQh%i0Sb.?7XkE1pT(T1x$ѥ(×Sg\dFqR4Qem3°T[CnNJB4,6S ٲ#\{Yu^8v$sz(ŏD1Qxr%# 3Z8$)Rl<EpR9w.p<5ѝF/ձn/R8[Iݮfi̬ uƁ/y$'=;L.#wvA"ᰄl$ #;*ڭF` J@"h]2 H#pK5Qz 5Zt%^EA K dN/s{f" 3#;@J? G);TV@+^()6;q^{mbAТTb,_&$3#)!hډ[kӎ"y9bTsyEt G Ȩ_7d3F̙(&l9;?$DRB1{"ƠG uBlT*ꪤj˪THYD k #<NJcEP6ft B7dd"E G^]]Rlho:I ںL@4Tn ٍ*NrH ƞwEc&1l"GQ֙.ҥZDdDd@`jF=".).#;>4Em$L% w/{k7̠z iB6Ƌh#)6(MEpyxhu|Ae3u` jl( #)gH< t2HnzYb9sPdP֎8r(V1(i#;74.&;VL|Nm7ĥNoxԄjoosº0't+d(`j D[uК wPĥ6@a1N"*ZͦQj~t|g`o:fmmz\Ly<㍫2#u4|ߖ=HFr@IICOM##;"QyI.bW"+:DUsPSfeeb}~ )xx8qrA'i#FU}ddLT2eTZfmIWݦa6!!ʉLSJhaEX_B鯇[d֓ID+fѓ&)f2chQ,ؔ/uE4b̅&H%=LE b$(65)llRIM@e*L iVH##;d'*s0'BZmi[?#;GXR0e?w"&"gw)MQgvZ6hL'R#;vGQ vGєla) #0L-ԑP;=oځOkauzn7@HC[^vv+V!RCM봇/~]$ vNgFw#)+ʒA@sjX7MM$}mёzkr1Vellɪ(=E6Œt 2yulXž5qFVeӤ2Lzfd53lve9m3N>"‹-)1ܜ4ZUٚd[["e ff"${z#;WVL\JgOy{j%8Οrq#XN,*? 6m/a`?#;{Y UUq4!(P҄R%f hI=1͠B4AcN8'Hyz;Fye#mH a@oI#u#M`BeO#;vӺwyR9i/x^v*$5-S6ʱQE2t%.)2{"O-mR2.t55}h|-xt'D4#ژV{cHK4=pueF #[k-KwƟ::EVBz;ׂnFdlB'm޶j#JA!1 ^MaI^u΍rTcǓcO"|Lnbbf!FؐĀ%(kPMqdIkZ2q^P"aDa51q/(a7DԕN% -R]:$UXNT#*|^q6Ϋ<60Q#f#HLpq6is&?/BmiƄewkc]1 PUKp::g%ZZkaubc&y1Vg#2lg(w&R4ۃ2Fmd^+A%#kZTmٲ٬GtsIltlg1bmR=Lj8OǔQ53]OC7{ev=fW,|X+o%vJ'K&ٳ6drrViSIWĆasB桺;: Va;;SatrUW8EWd7euHFk<岒kZRiԛ6ض^apK&jH/:ZA P"9kRͻ@ PE`05VINl3$9\r-Df4iU4BDIBG{bULMCceoړmGZ7j_v y^nNd&0597W7̍ynsI2s K`Л }[T(yܕ01'LIF#<nFEM5p&+#:-[鑊oG "#8ג89!#;gV !á&WCqd[eC'1$I/:6&*2pHbƕqQٓ^K9h#92rq.fnQ3Ɖ8mu&LPaɠJ$%%G{"ڴKuM,IQtfF#;PW#2pj'-H ;,&R Ezvf[=s#6{^ZJfMl(RnuV&t9~̠L0oJV"rM1D%f، 0#)Ǵ钙'jѱ~#;h.Xh"(Ic"haWkjm 4,jCkEXF&2Ѩ5د_/>kFʠ}O\S/Fأwջ̹&A.GiFJ'Xf \ETAє3KQtAFQ08"A#(>;*(迲^#;b֢dlIvRZ%Cyf\GLq[6ȌmTRGZ$ZL2ʺ[|zބU3[ů6Lbٔ4X&#<噢 !R&lc8VN6]bF0Ddi0`_xf0ޣ*]2wKJjM4[HLU14~rA$(.{ q4-Nfi5 r0 !Kε57!#)&MMY@]df:lO#<6dW*ӊE'c}P)?#7 8%g울76ҺK/e1\<Ï;:3ղ %r'moZvY-ɕjaeJ%,N9y9b axT)7VDMN: [H$8E+5ҭqeqcF‘hԋQb䢔:P,цF!ܙL9kܒJ)"$;2#;m=r83(4N%BZ1)C=4l~fbіap29asm"Qxg-U&/tWiLcNݑyobv%O:,Lɭ Ny ɽO+ۘ!j+՝l#<$'K9W/flP`s_Kua"HmJmdԛRլ͵bn@wVJ$`LG%N唧_{4p1U2*XA:X0x4- 0i#;P',6P$,_s7F[`]ĥ7d! m@iZ  m?\ݠelwW񻗝eu]u'qK&K4ܫWkuWN7]L&߫4yXL`L0uP_P'لlsal#;ek]#)1i((ͪm8昪yrfnOLњAcQ"$h*CAC@V&Њ(3" hjb塳I)~8YNa 98op-"nom.#q#;@([Z CdC ./^]S)h"m寷uj^,$m#ͳ~*eF~d_?$"- 7B"mw2&{;R4oVcfDԛd7kSXȥ(ԍ,IR)Zbm%#F[.SZf6b$(ִ֩*ڻIWuԵ }{]^v4Th$̶Q-JkRVjj1L*JN%{l(%R$ZkEu%e&[M%l^yM4ik#;j-IZ+c^*geTLk 4"BQŋ 0 zx?Von3Z˫|:K(~ⴲ|J:f|7}z{u%~ @?Kv"|"#;Fd(O'eJؕZ'Y nXDa!׍jWBS3Rifi(@A#) }p#;FJ٥mKj L$,TT֨ TY$QR*fZS`f%" [nZZܩ5[66b[UBQIZ]ffj%SE*Soܡ$QY%eiI#<46e)MI66 ScdȖFV-RAQR*RKi-E%REiDڊٴҤ(II&Ra44ifVDdeed2m)UK5%BDU 1BD 4|f-ZRd!"q ,\@ KA[cVR/4ڮkm" #)H#)e(T0#)<?gĀyqLt"~s.9fgf<W0ht;G&<)ZD8 [ F1qRu=p.F:nj! 8oo9j[̸2z!<# YxEb_V5ճlf=%ٴrd;TvUK_UYnَg\Ч6$"<3$i2~G.?P\7m7@zt#z;Rz/B$^$@@UsxW*IRI!%H=]#)XU69WurI2@+@Xž-dNt/3[XګJ+Ot "yZ EIUa86(*RjUQk0'$.!!0Õl#&Xzɫ dIWE*T*R((a>XԦC" @ݖ]*lQ2!/5Q4 kMd ٨V"UE5س!{yыc@4Xo3uIDhXEXÍAm*Fsba#<#C"yjsBF[P#.xI.i9&#)}hkHH2!FD`] ͈CЋD1+a2&,U*c3ˢ( Z=?c%.F+ 0&={#XXA(Z@7)P!x*ctH[Eծb$->:|6qPe3 ?tڹ >覆"$k1U#;-z972 |%%bF[eG+6,h0B&](Ӿ P!+~?N6XYx\S!h<;f!g.it;06-V$Tb1D34tδC#<-o`yu~ [mR' G0bB4Hhj&h7Q!MĊ922@҅ƌ%HZp2;ZȦq+-A BîXL~IuG"fk\M#;HTߕ0ac#+;.J2x.7MneBBo`sd0=&`/|R0$ 26܊ TyPt)x#ޫ.AC#%>ǍBԸh%C)3d%0Mwה4P AbA= ao48;o\%& JR8Ql[¢.( ©`,4.hkc DK%rG!\b(xPt!#;PQ#~I>^FNͤ8wݛu#)"a: ]#;؃x I h`#< J*#~ adB' M\ɍI@{z~ >]-Ǖ |NYx}'R'C8FLCK]qu]BWY5%{vYdXo#Mj 2Сݒ`(Gl-D@?#;%#;#r #<Y~CudTj֑QP`{̔1YD"J3yWy^LVikT1#)4?)Ja4Gl|<4tT-#;T~hA`T$Ԗ6/Nn^jiSIrλMڣ%*)yۥclXjkX֧Wr[dl%‹BAP6E jœxXw*l - WOoBj#)br<~.VԢ#;_orCCѱT D)$A@jU e1 U1Q,Ԋjx`BA=ahòDHh#h@dK(^$%n_M_mt׮RW6oMVӢ(KVbGMbu]04+(* |l#) FDS,ĤFI4%#;Wm5Q@\##pΪұ×QK1(!N2n,,6Xtm5R2FU$AC@a 1\AKLD)c#)m22UUz=?<ޭ>Φ-`tqG:?|{vDcbh*`]=#<yÉG4`DCgȨb@4l ,pOqp5!l㯂.;J弯w喼s)#JZRk_uvcMVi_+"4S 8^] C ioMJـʼl6Y 2`}w~I|ϷM*t&n13#)qoW,&1ɵ D[W1S梯 ;1 8+pQHG#;LK u"0J)aAu`P[4:؍P;(MA}oU}"p#<O :B@TUU7GQ_T66#;L}tTG-c[wUY[¥9DdvB-!%J-Gpnu7H5lu^VۏUJ$͘cE#;LrIHSHov2J?ijR,Ѷa>ҺiHD0 D#PN6X4OB8v&H8 z J>-xF0L\x,iLS L[|bѳڭW#q|)oaOy(NuS%~ #)aڈ$AHRP&)-4LkSUfQ4-IKa+I!,jRFY"3-iCe+ 0ER)dij[lJmJV2[f(ՈFYEXk ԰ֳD*Ռ-1"U5z#;O|KE.8a7BlHD؂W!S!%5d Q"%EFE( SmK*#<zM^)P=g86ʮmskr2u/kMo4dv?)wD1z+}`W;fs*//H}x0?n(#Gu#h xN#)| z| H DFڜ`F*f{BiJe!#)h-DTT V[ qObTUc8[ G㮃?uоlރW 8@Exy4Fڐ}Em 0BP24V@J5&Oyh1B٢`d hKv#;#< 2,"F*F[Žg#)#)P3z2dC:Bt*fc-b6uG`xsKN1DD#)@3aűH7`aI_.Ql[jTasv?@tipz0%x%wtto[ ~}@UQfԺx]Go A?Y(UofrB#;Ot0 a4 qNlI`^ ":b?<hՓU%5MimݍִN#<G΂osݩRL+L>D l)&#<Y b% nT#<=Luڵ2TX])^̥eF65T0o#~|x`=#:#QP!o<҄!z#)@.ۺlP癰|c݁N|;yMC] ܵ-#;IɲUr뺳*T*JUp^۾y)s~[F֍ck<3K:Md#<*mA#)dƦ}|lȡk >PD:,M]qKT#<:65f=SE#;ђ63VfF!%Ok0eDk.%}RJ b"`L#"o4AbK2K+cN5,kI.Mp#<A?9?[x/ӾmCsXnY\I#q1{wh1$@cݘf 9cC"n B/]vN0$4@#H!IAz0aLΕםyy jƓUbkIZJM˺Z$h  #PdE~#)r['D!,!Ske%4#)/eojVƐƀ`mϰABل2(f`Xh|xQfyZB9fR:z͂RbZK`H1#;mП{o{+52ltٞ1Bb() 9r(j,Jk8(\ciR4dmjM[5%g8kBՠM*TVш[͇F"drT2bqv#)]F@8¨~d !)a,g"#<g;v#;#)qO.G.EPjFDL#;'1|<{(Jb2 "E<%[-VƩK_]nR{EUr\4>"HOԌx!gEݍ`ˏ }V"9v: =Dȧ>cIL&ZD]u]ug*VEԞŭ3[2w@]0 :7M0°/OFE3G)1{h\q8adBdɷ'ӯ@s,Q&3kԘFAZ[3S-Aȥ{}[bH$/uG]Nv8BL%pލf"?m7-)G%S#bePgjbRXpM1\lN#;4úo<`Cel0HHTP:)<#đm fT; L]A8F.GlEMǬ"6}0 5ZT{ǥ>y{D7:^$a|KOlPB:<bDq *4uwnkj[JVkwnu3amlj$һ+ymYEKKmmcmkʑ`SQ @|J^cYDÁRZA#,#|dD#;M>r' 28h$8g^o+r@@{xP6o!c%Q8څ֫G a돇:]kybb0V^B;4%tvm#;C ~eG>D3f? Pʩk{łF#{B2c< t:#<$kp:mws{P5u㏳:ʪɸhA'׷]^ [~0ّ m;4z Jd[;@8t[2ZMX"03zt錢&(yBb=0,g(ä[X2m5{T۟П."05ux#(+6S3y#)@#C6{LKplنi1lF~μT}\923N/6cw .#)wf)QY2K1ijr y߷7X)̉Sz/& 5C: J{ O(u,G{e'$F$;bT$! <0y+Awێ@=" #$#)5sEصcZE**5Am&+%ڭZ+&*m[}9##;eO%1\$Ͼ6CP,`˾ߗ"!N$$mOrE_S٥ɣnGG2$CQlTȼZ)B`id(i}@p@*0WW2CtHb@?G~efrdEIu81dcDV6a@q~C{c׉!fWSw]#,MF(ј5"M>v6YFCʹ5cca-=s~2a 0ְ—N"5V%Z8jͭK)QY:-qΖ&kh#;L\5? JX!1k$]E:M"Gm˺ 7- #u@4Dc133u2{<}i7V[oEw!_F+!a (hm|-Szd=2TMf]S8LJnoY!&s\"ѳaZETrة(?YhԸhΓ`bDy{m3^w#bt,ܑO ]"6hFv0ɪDA֤h]ebջ\kZEXˍP%&a&!DavYB H`l6"[tR) E4&#;`a, $K1 eTTZDpC[z;;}dnuOv !( 7"?۴>]Njrb`>nD?|↏̄(W#)mo5Vv۬QtVM(ɇ2m%o<]c ͽ{4d$rt8j320&#S„Ù#E'p@07غP$@HDt, ޛrk٢"Ū-j|4J8B#vu}IPYȢWzlk^JfMOnbMj6[ɫUfLiT2% E#;hU,p O}fgYH~ /oUjْc%Qv{^wW,)]dDJ^]wu_zKBE,+ "EXك4UP5l Z%A"ZUkjM+Vo7ZCHȠ#)L+af &-mܡ@#`I.B*#)e!yY}v S#;cNKllݻSt\83-φCUAD +UE_#)1*ޭ]]Dp N_;оa!/a&1FobY?6L%sg#)(?N6HHڑ!c'cɧHR=N#)3i\s9hTO!`h|NiPl2HQfgGDxWMgK#),2"d0BSCT>Tw.i\FiuW>*0XVB@H#faD0EhƅuK,r! З 2H"%#<&FaX n½}{grI!.Vs?AkSq> ZJkS52S0vp x\](UݬWv3D]#)K.0#<H)QiB!]ᖜ]+[zQܕwUV͡˸dOO4g A%hi#m /+5JD"6RnRV))60o`.m3to.:s.WwnjE'H@f{9=8]#; ؃f riEX.YPƕOL:nxE?ka T-B*) dZ-ѭ3Ah]Ku;N)>*t@'`l?jSOh&(CBFdD4x@cvWَګ񉜆RFG24ubCikq#<ֵ!*!X0U1f+v#;461rвKA`J@lS m ؊ɤI$(&&LM`$Ğߋ쪰kB@%yFPȺAjLH\!c vJc>aoo.hS%$ȰG ll.ȔK"+2 xEG9hQLP ba~< \GU5, RC=}`mZC>R'n8yUOTC@H :pD|jmjV؞b6OT #)ES!S &N͔;#)HA#K~\8"/g=$(*$IR|?<a7{]LJ> ^_Wq6& |?iSl#;>:٢ȸ%fgǬeyj(MBBrlUaAhK>hf;wڡ:HpQ|chۃM*{r!P#CgA]:GrinT;+ d26Q 45 E",Ih`\lhf`INYfM-l4f$ת!hqSLÆJ,X Qa2#;8=~ɯKF;apx(Ϻb.=b_<aelVlQP $r=DHwVTKXasOƝ&(oEq\piB{y4'v&- j)M7nwN%r@1|,2ѲH +Ƥor!Vl]{- ęy; YmwtXDcEPhu&]!VRFC)0m2ț#;6m2#R˔9>Y[e5P2CY1#)-u(Dlcy^-AE>h1Ҝ(=ɈPA[LEd.eiv$ZJPDCj5JƭiTG  @CpOlB&a8\+$mcy ggQFidppB:Nyӻ&vI j L1益CaՖ֑#;JPT/ |ęQRI5|z_bC-n_.~LP ݗR#)@5h5-4tY~#)f$`) $XP#)|@<ԏj_ƵklZQEli;E0}9TmxffOVYY)Ǩ>aԏv_INtW=GC"ݙਣ:#ԏ/chXs1#)s8$7֭o}N;EW9kx0B1G"E) i@=:ת!$uʾ;a]9p#)J=`J=M-sw·z9a 8\kׯfVREW)IlaG>ͅ@3;Gބ#)FhDv`wa|r( ԃ x~ӰIo6KMjw&3ufSܧ;WCq׵E]/d!Ng)zkijfɍw@?69֯xH`f[R?=-Dcbt%]w 3#)Qn[NlӚukiKMjPkMeVmdթlV}:d cxnoRbݑE4}F(fzUH-W޽'゚263d0h&&)1 1(F6&&M&Š"*Cٞ03&̞t!νTY%˛]y:)5,k7yP(T|#\m;j0duÞ#/*x_EӕCC2g 1Mm77kj`s)$?fBNzfHFqdX,MY _$#;ؕLd(Fެ6xSQeF4ph$hvw\ܶ-]suvם+fkn155{V j\DXVٍdaK(#<p@b#d" D*!ۨF VJڤkZf6U˥r.UW4ќխݙQ_{#WW(T!KN4*&H )GY)LJ#)Q QX:Cb9N XդU04#;D17E 5u#;D((&lhbmF(Ј333FM$6@i3G@`5LDe,e2BEDJ`oTghδ#&C#;&AV(a)$c ]H1ƓTL"1AcFT*H T6Ģ%R وPlP!8fJ6ޘ4g:&Q#P!#xE}2T720!D7a%ilsBlhj0d ,hxC d kyqGn>)3׶G<{v@2;$_CmNhoذDM*9^UɌԘ 25xb{(OMI_G]$HKKʄG~R'ANzcd!VF5$[j+!iJ;3*j2Qw⡃/еh* D{ iFB,S%=Uܴġ쀅DT*=/;PX);m^vl6Di(ܚ魔SHE=9Mlbֶnb@qPQ6B{n.uV1L#;,DC>il2eAq#<KZ\aĪufrwrnm=T_ (#: 7bX֘.0mEg#;Α9`8[Ƶ}R;^wty\ŵ6ۍm6nmF5ؚZkclZ5EsV릫mE[R[5rkQb(Q\,AxŦOFUKC p  YX}dNAa#)RqjE#2!Q!A@>#)6"%TS%@ܴAsE%L D-I,#)v׭uݔӅeӡ J B[F5?3x#%ވJl|UȡB]WBBƕf7{a.F渾9"^OxxC2A=DK% </^tz>XU| Eˋ,!auw|Ѳh]7IK"'ۻ硜a<)]G/>}j0sVBu_g]s`buԦ,Q oQdM*t~Ik$pBCKqMA#; ]#.2'9RuvVb UDPE `-sL~VQ\fZ&syC^[,XWIH!iheGX#)howm{NrxI%MUP*8>F XI,h C&_9$J'}gBm ~7h[eBvZ\#<sΘ6U+9ӻ}=JkZkN21D!κ;}EXza#<I~%@6#.i<=fuSEP}ۘtq^[)X7ȧQiт2]#<ïOLM~~xؽx;c~‡]ͺ4MUc#;@%^Fޗ cqisڧw6s t"Ǎl]).+O'#;A^/DBƼ0N4pN QR3a߯)e.Ki',Փ:Kn8jtAa֋ko;in:,NEwz,kCTr0̑Cˣ1=x5ac i$D1fs[*CC^*B4ɪ(q#)&Ĥ/nϫ7". a&sIVYh̸6[1H1n!X*^0CT 0d-!l /Rwk#;o7Wz합 hD@;Q$msV֍kxmͬC2d!#; m6348-1 EUd(aS'o!喸}5ḴsJ"-~\Ӟ,iLb#< }{"Fo}/BFRёd OzD$ART@#)afbтљU#Dڋ2}JAJ|Z""&%#<a0FmW3 (D4ptmb-WaF &A~JśȔ:fhUxeum 0iaaƛt!'ؤ'rѾڎ=j5JG(#<?t֓cS,P%QZt!#CL 5[Fᔤ(UApSCHi415Z6qm@,WoNvO2CdTux1 ZZiر 4QFg62Tfැ< oFqZ鏑cSJ„F&j͔enq oKWHK4aaƙ#F"ȭhME:ݔpeĜ\hQ+WYcLw =fǏL5ƗF,*g5`fV&x3$*.P`5PƖ3`C hdj1H7Yk,/#`Μq#;a#l3#;#=}|LN$+NOR#(в\=pc#)ǩ3BOU4H!" #H)lN`%rP45'E#XRP:O5!C;\U;h6#;MREUD'J{ ŗNq&E^! }DJ'bnS(N4H0#$!<1RJ`&P5P=O 3u%Xw*pU)k}&`Ciq @|cëCM*pyr.3{{s#;i1ww&ӓvn K'l[\:'>ctq#;*oʊj>ۀoFp3HH5&Q $X5 e[%]e+iˮmb5bۥZkfV̉#A(  $_#;Z'Wo#<1$"II6“ZlcHFHLii(ZV[ɰmUVJ06Tlb4&%((-hS4YM"J0#;f)BIREDgo\2T̋{áMǠچ}2:P|zc6o? w怟 ۦ#;XT{1H,~$Ci'M9|0TZ*Eh#)b;ﹹfaH7&8ذ܎D2k?  &-#;)) ܔL2oZF+}ۂ1#HX#;[f#Ϡs8G;xx wcr*LE{MT!q>ϗt>}78Tj7Sȼ}kN)m#)=PB@B)5PV+H#U&?Aki.KRU%E"7+۔\T$Y R #<=̋fKQB>K R'aEkp4X~.Ɗ}..WLE+ܑOZؽN0jxn@24f# [7o·tޗ!%Ƚy(5ٷ aFA%KPlfM##lefz {LrRJ-*#M gh*10p/[Eּl"}'_=\P{%;rtN]y)>EusS!"U|K+G0.~fu#;b>#;$/eX#,v-?1 uxKMg>H4a~:ID~sPEA@L}ᵔYQd#0x}/3/,oeҝ1rya/4$Aa1)a?Va1YL6Opwf%ʮ,0!cSTw@'hA8I#*2f+@!l,b\ݧ:btA@bwYy/ۍ Kq8L`>U52% %;90ի҆h;ȓh.Yz qTᛌYF#8͌Y`Ikd\=bcNԈ2Ғ6%V0:Ǟ0m.=dxQ20e|Әd;JƆ HJ(|#;q-L23lPKfm3S,vC˧YuPyX.]7TL2k>eωX *#<LD6#wQ|.)˪tqaߙG%300CEϔ4VD-B®yWJ݅e[GEbdȚD(X\mA-0Pէ$OEjq8naAic]fZZ<#sl鎸5+# 8ё;7!?6ʎGJÅxW+W boHYH&[ 1 Hi6H"zJ. #en1˂/Dd3ҜQ4:MkA}jz1 UӾ3MfR3;g&1dY.&.-b]hm#<}`rsG(/˙ptQsG\f`lrT$r^y'ˬXʈJHP*N DdQ2J+#)[;d{Kj8v#; 3$pcgx*46Y5ۻfqj꘾,e0#@X`Gfbq#sQ\MlDJR CqhIUBu9-larM`@.r&hbl!lRCM)Pp#;fe#;*B;k]t)l"&bHhlL\L$AArQ8샃#;g<+aQPS1 irpT)MISddjsuSS!؛H`8q͞,V:%NQܘ(23#AWE4ƚTl1%Z &K0i+;)4ĩ-C4R*Ҝ뎽qԋP t4}Ƣb#;4@]N# Ȉ#<0M4,3b^|DlTl[iGOckPeTDThlƘ>x#;to>GQAzn5aq7#L+'hDyeNOV]$alJPIHbCz)l\zڔ]6?Xn 9G\P72ˆ5YaG>[7.Id.Ft{@iJ}/pu""'&j^FJBrq뵚 x&8Yq%ܲyrN g24TlM1vh"ȚdߓsZhm(D80f-JB T|Sn^G#nu#;{qEswp(x#)I\|TU .<_)s˄ftͬ{$S#)3> lѪB]8#ö^c5Tq#)iةcX0*Q+ݶQ .Ɉ@! q{j ҨDzϫ+ov* beۊ`2">6O\ ۴J<#)!@ SOy*ddP#)ȨH@$#)'dq4n+犢k}СUan76\2D P|eO`)mjF0$#;oXk妓r2'$m1Ieݏh\R]j6;39 EX Lk\/9WH#;. Ď-0הJEK&FLzwd#;QABR ZexhӢ&x #1(*ck}޸@=!"!'ZMd(փZ-in' ~&e~]d]S#<`@6$޷6K*a[gZ@[@/ꑊfeM6֤|?U4~_[͓]3ho@@@ъD#) ˥?#ͰC螢=p[z9ϊZdmcj)y_7 4JM Xk;o ;)F6q(vXP5(3=E"0F5 yǤ-î D,l⋁#)tdi}ڜ#)S#)G#)klC]:/mh-#<ʉIY[ M>ƕRO9ݸb]vȣ3QMiѴ$ rw(&}!I!QiHkBdJc_~Lj}Wտ.AFcEEQYگêv){ׄO"h K[=2..$%8E]I]74j6,[Ŭ(hL+M)-#<&[i4$!u($^"^Sg~{iwgy$诐A58==~;m1̩,#/vA 1f}[ډ#)xH!r}!u՛2E=`wB5>bHrƼ ɔN!sU)#<%#<#<P?2`-aRҴM^0>i=S$S= EUv#<"\ejM(3ʕ&$dAO@0|M87u'Ixṯkzf2D &#)0 aZЁTLCk$6k|xRw_10^n&= V[BrkX M:ZZd30Ɛ3}Ə֙"ۙ!Mp䂇'~  RSA$HTT&iflE66SFkWhڒaX0!htYmcaKXa=Bܫ}w|"*b5m{۔Zwj8)|3N++(2#TM1KoK%26(ల1:46YKQcJ#;I8A O,WWM-i54Rf»iݖ+Ƽk]ShkzUQo7u3*e,ywcMwWw[I)dP`Ea"J #LfY$/|&P`v`߫hA㛙#]r;(IvGٱ=[`W=OAQÆlccżB'45U*qt:ż8[4ƚ+xz)am䈃"cW(&k̥idT"#)cA*M%ҘF_^&D5ﴒ+CB_U:}d}i O. BRc6::[3~(uKFJmT|M(}66s9/5"gta7T!hi^(B=P0,#;ThAeTR:921ccp@!v!F2ϒ=(#I8B n!tv۵JZ\nv&;Nz%BEaJVGƖ&[]|Oj̄hֵ f̆y>4h!'#;t>|KMpT?f+QO©4ϘU#;ɖP9;C#)zfYhB<ѓH\qHv4ÇƱAP{a8Β*89:>8oƸ*7`x0*-&tIc׉5v4m&SaKo7#;V8f`ԛ͢sOB;eƉ#CLkcTQi&]z$xC'؟lL(V#"E?q[U7E[AKb\Jj!#)ƽ}w-$Eѐ_X/n멋Q9suuI#Gqx9>rM7A?H$tr#@Z>Gdz8&Fw` #5$ו@::h,1ԱTL0f&].S`w*6LBR<Saw%5umlpȘŖLʇM3¡pHJf@C,@D"C &hQvA3ikuY!"fݓp#<v @4$8#<#)$!˧FŞpCS'm5c[Y[h6ܬVWQ[moSjMھrڽ9#;2ew+ RP#bzV#;0#<XMlB(#;Y( ,X6_dCJ#;Ƚ$e݁{œk\; #B"Y#<,­lj&$1QF^<UmMD>Cxk$Y#)5JlYG^ǭ=`A  #)؈U`@@k+]mr̶l4KD0CtAI"$䏏M=|#< #)_\D k?$i? | X">ƒ9ݻH HEl ŏ('#>!ʿy\iB*#)=#PJRh#m), 0O?RaǁyiVd2uHrf75دuHm3D\]b:;*h5Ԥ(Qk8+Q #;W 50>?N gA,M/- جI@jeNO]7uy&Y{obʟ&f]j̓$%pN~(k犪>|#<_Z>Af_*.p!sf +#<== diff --git a/waf.bat b/waf.bat new file mode 100644 index 00000000..59e3af07 --- /dev/null +++ b/waf.bat @@ -0,0 +1,97 @@ +@echo off + +rem from issue #964 + +Setlocal EnableDelayedExpansion + +rem Check Windows Version +set TOKEN=tokens=3* +ver | findstr /i "5\.0\." > nul +if %ERRORLEVEL% EQU 0 SET TOKEN=tokens=3* +ver | findstr /i "5\.1\." > nul +if %ERRORLEVEL% EQU 0 SET TOKEN=tokens=3* +ver | findstr /i "5\.2\." > nul +if %ERRORLEVEL% EQU 0 SET TOKEN=tokens=3* +ver | findstr /i "6\.0\." > nul +if %ERRORLEVEL% EQU 0 SET TOKEN=tokens=2* +ver | findstr /i "6\.1\." > nul +if %ERRORLEVEL% EQU 0 SET TOKEN=tokens=2* + +rem Start calculating PYTHON and PYTHON_DIR +set PYTHON= +set PYTHON_DIR= + +Setlocal EnableDelayedExpansion + +set PYTHON_DIR_OK=FALSE +set REGPATH= + +for %%i in (3.9 3.8 3.7 3.6 3.5 3.4 3.3 3.2 3.1 3.0 2.7 2.6 2.5) do ( +for %%j in (HKCU HKLM) do ( +for %%k in (SOFTWARE\Wow6432Node SOFTWARE) do ( +for %%l in (Python\PythonCore IronPython) do ( +set REG_PYTHON_EXE=python.exe +if "%%l"=="IronPython" ( +set REG_PYTHON_EXE=ipy.exe +) + +@echo on + +set REGPATH=%%j\%%k\%%l\%%i\InstallPath +rem @echo Regpath !REGPATH! +REG QUERY "!REGPATH!" /ve 1>nul 2>nul +if !ERRORLEVEL! equ 0 ( + for /F "%TOKEN% delims= " %%A IN ('REG QUERY "!REGPATH!" /ve') do @set REG_PYTHON_DIR=%%B + if exist !REG_PYTHON_DIR! ( + IF NOT "!REG_PYTHON_DIR:~-1!"=="\" SET REG_PYTHON_DIR=!REG_PYTHON_DIR!\ + set REG_PYTHON=!REG_PYTHON_DIR!!REG_PYTHON_EXE! + rem set PYTHON_DIR_OK=TRUE + if "!PYTHON_DIR_OK!"=="FALSE" ( + set PYTHON_DIR=!REG_PYTHON_DIR! + set PYTHON=!REG_PYTHON! + set PYTHON_DIR_OK=TRUE + ) + + rem set PYTHON_DIR_OK=FALSE + rem @echo Find !REG_PYTHON! + rem goto finished + ) +) + +echo off + +) +rem for l +) +rem for k +) +rem for j +) +rem for i + + + +:finished + +Endlocal & SET PYTHON_DIR=%PYTHON_DIR% & SET PYTHON=%PYTHON% + +if "%PYTHON_DIR%" == "" ( +rem @echo No Python dir +set PYTHON=python +goto running +) + +rem @echo %PYTHON_DIR% + +if "%PYTHON%" == "" ( +rem @echo No Python +set PYTHON=python +goto running +) + +:running + +@echo Using %PYTHON% + +"%PYTHON%" -x "%~dp0waf" %* & Endlocal & exit /b %ERRORLEVEL% +