summaryrefslogtreecommitdiff
path: root/tools/perf/scripts/python/export-to-postgresql.py
AgeCommit message (Expand)AuthorFilesLines
2022-02-15perf scripts python: export-to-postgresql.py: Export all sample flagsAdrian Hunter1-7/+10
2020-07-03perf scripts python: export-to-postgresql.py: Fix struct.pack() int argumentAdrian Hunter1-1/+1
2019-07-10perf scripts python: export-to-postgresql.py: Export switch eventsAdrian Hunter1-0/+51
2019-07-10perf scripts python: export-to-postgresql.py: Add has_calls column to comms t...Adrian Hunter1-0/+2
2019-07-10perf scripts python: export-to-postgresql.py: Export comm detailsAdrian Hunter1-5/+10
2019-07-09perf scripts python: export-to-postgresql.py: Fix DROP VIEW power_events_viewAdrian Hunter1-1/+1
2019-06-25perf scripts python: export-to-postgresql.py: Export Intel PT power and ptwri...Adrian Hunter1-0/+251
2019-06-05perf scripts python: export-to-postgresql.py: Export IPC informationAdrian Hunter1-12/+24
2019-05-28perf scripts python: export-to-postgresql.py: Add support for pyside2Adrian Hunter1-9/+34
2019-03-11perf script python: Add printdate function to SQL exportersTony Jones1-8/+11
2019-03-11perf script python: Add Python3 support to export-to-postgresql.pyTony Jones1-17/+41
2019-03-01perf scripts python: export-to-postgresql.py: Export calls parent_idAdrian Hunter1-5/+9
2019-03-01perf scripts python: export-to-postgresql.py: Fix invalid input syntax for in...Adrian Hunter1-1/+1
2019-02-06perf thread-stack: Represent jmps to the start of a different symbolAdrian Hunter1-1/+1
2018-10-23perf scripts python: call-graph-from-sql.py: Rename to exported-sql-viewer.pyAdrian Hunter1-1/+1
2018-09-25perf script python: Fix export-to-postgresql.py occasional failureAdrian Hunter1-0/+9
2017-08-15perf script python: Rename call-graph-from-postgresql.py to call-graph-from-s...Adrian Hunter1-1/+1
2017-08-15perf scripts python: Fix missing call_path_id in export-to-postgresql scriptAdrian Hunter1-1/+2
2016-05-06perf script: Update export-to-postgresql to support callchain exportChris Phlipot1-17/+30
2016-04-19perf script: Fix postgresql ubuntu install instructionsChris Phlipot1-3/+2
2015-09-28perf tools: Add more documentation to export-to-postgresql.py scriptAdrian Hunter1-0/+221
2015-08-21perf tools: Add example call-graph scriptAdrian Hunter1-0/+47
2014-11-03perf tools: Add call information to Python exportAdrian Hunter1-1/+65
2014-11-03perf tools: Add branch_type and in_tx to Python exportAdrian Hunter1-6/+26
2014-10-29perf script: Add Python script to export to postgresqlAdrian Hunter1-0/+360
&Z%*J]`kĖٜdkA=l)46MCAkc2TEI;U: (oi}/҃ p7xMswxPAwU=a$ղi?9%\/,R6G1W[N4/qwjy\;Z!wl!Cqju:'_CA*.jmͬ52RǤ;d\xh6Us+i۝~p9 r,,bds3c=h{gcIda^~AM\1r19MW<$DJo'0HWG%{[gALIFّu:bX[]nˣ|>-GP&TⅯcfiH d/i*[[m[9 '5}3z}*ɏk @6+ +Y6}h7_1as>?YA=m朋RA*ct/\KqOI6j^.d$#Ej4LGߦ|ۓj5ՃEESPKދ&҃lx&/:dC2$zA(`nM="I mz,. ӆ6]TI5**ǔ  ϊ뼠?º*`ӭ' aNN 9};;e4Y\]9EPuyq 5(xvzG@[j7+2\Ђ\ $q Qn\JWݎ(Su)q4e;7Yҝ̬v)3kjuN?ڨNhVYDIWkhQRp)l*;-6 pzh58`hC#,,#2yuS `ͣhz6i$!n7L@#ҕ|{ h?Ogo3"p`Ɩg46 !('zKVY(:A'^ɋ/aۖXFPZ\+|>34(aLXcd/YwnW>uź6K  ]ٿޯeugy)9䕀ׯ|a J8UHa~Q[Y(AD JդXb^%HꝦ*.c+;Bn?5VyĽ0g%hyކ$ȴ1װ#=mh_Rl5-FkE~&%ދx5dL{[gH$]:GZU':@$mGi,0D5]G>^ 5Z, {)dxo(-;d=NkW m1(qUMK:Gr;$旹By f4lZKú:UuGjԪLTtUk\%ImԤb:Cfb=`#L]z4!>$x[pFJDp ׉CAEЦC$+]/ll# tb@D$?n'nm#kvǗMav%Gɯ`'IG$ ψ-X%oz^Bوyr7&Cd\q #zW~%_>d b,.AW]$UOx[h/ʖ, 5 .8hy1/z5!h5&cg0U;QyL?`[=|cP}5Vz91ΎaR"7| QGV5sgMz!݇K}rw?Va!qF{SpcEs4_W$ ӑݱ.OLvmTi ,N@"!q[H6Ը&5_~μ(ɠO`lrgqu iHP Pc2o476ҤYk j5Ew"_DZ'uwM8N-cQSE)()uLg=i9&~ ;xN6i.k!j%#)eZ6% ɶj{eC g(=P'boF# Գ6u=2.&Ci;AvXOȊcFׂM)B =NV%.L:.{r1@;1:4uP]Z1! GNƆ&efϵf]A]oG#W`= Җ>]4% 0v7nOڟE4P$(i ~Qz<*RjN~OK|HOqlTlu`b ,nFGHdВgHB.2gSjwZV6,^|NDrV :u|_ '﮷vi1%dgI)}Z^ v U\Dȝ>ohnt|R] g-7|^/ѽ^$LM#ib&ׇJ>pS,lj #Yo.U3 c 0!7nlnDR B<)j)mZѹCvIt wG@d)OOY@9Nӝ*4-Q\)I8gnHRG2!,M !De DZ]} \HPkTZlg-u2#sʿS aQ \YӲ+ő!7 в7k$p`dB~9S՗g%+$EiŇS$X5B e/PUޅ=)zAPV%tHvuc2:;[j}ș11Y2:h'E;Vx_hVYmpK<5U1[Hd -B7b-%{ 7~7ϻ $/R D(p~/`Mfz'%V<23zvNu2QU6~ȋF oD EɃ [cI0#$VtŘ%he]bϑZ>Br)k-jN\96~@J MZ> E=qS!_fx.oRjEt G|#k 'z& v܃>s_8$%w(:6Nd lhBfa-)#Y!HTL]2 EJ.0N> -OFQn=k똘U}|W dƒ6O5|NL[-g{q6Lh"S?6AZ[e|bfȕ}t>Ԣ K~9ej^z܇i;]xs[)Ŏ=@9 >@w3tzi-إ*m fOF']H` Y⃳{ ѭz2y҉rYnߤ2wR_+ܥq ɼ*?M])dDi{:\Zh$v"$TgZkdV @84ӒE_uS6G~:4rzVp ?f8 k */i=KsL4yK,Mׇ} Eb -E0?9u~f|}RыH|  t^&7f'3ϡ eiD܂1 @dY+ZT# <$^AVԿ}o98a~%ۖd7J=gKh'~(R+3ĨJM<.N$c(H:`$ Z` X(V%L;3k)y,ĄfVb6"K/Hй(u8u.Z2&K]yڭsS"Bժ"Wء x'jYԛtІC|= V_6U2&U l# Qi 2-+KٯMY8F˝'[&N3 Odd<hG:<.tP.l 1PQ8ӌs "tȡF 4x~gX|QƸ NI0|B8s}gl2EbvcZhɨFfȢ-<22vo;Q9|OBfs Vh0y$XO!֥EZ)ei{sK >I}h=>+zTk L)ǣQIqt߲AezTFGb|5بK2Mol071LQ}V 0"X"њK^L* ǵ@"Y-C ݺs,IH_2&J=|pmceڝJC O.RJgCP7RX-V~ 48"ԳEgܾkw9<6Lǁ,%d_fL:,Lo Ά@>n xktVn~i0z C-Y }'IbY+'򌨏_hiC0KrPn>.ߎPM9ϺftnN3ۊZ$ гST~lh(6^P8r,D@.k!R ڀ[%"{zeJ y;Q}.Xл p:֞K,|P?\ (z8Pj/3'qI}׏N=41 m=}* Ms8>LVpyJޟ6x|y_s{[ݣ, %% MgԄA`;4m9Y݃F.~ &M}jVX&lx{IK1ȰfXΑ_YV;n|ոzSZE|"OwaHW&:Jik5zW_Vˤ+Q-ZXC aaڽn3^Od^Hz~Xo_ʦMUsFNH uvE]@鉊g[2?& { OG\80@,N䒽63MAX63tgyŘ ˞XMRm+jzBsdͣ*$+z. Tp[ :m{~o&0% րF1J-&DnڶDua3C 1~1ૻk_b˵е$pȆjKU/GZ*cmsQUJ$'!W$GP74 i!·Nֈ]f+5B6Q .fl9^-ID9qH ͐8FgG,K#Bsfx2(L e%OfjxjG),h&o=Y=?@mW,RK8z jzi[{njd}ݢ ڤh9 x6}z6~+ NelnS |JSCL s~+_79{:.NS7Q $"5šV+[K|=Dk覯\[rʍcY]\p+O a7kBq }} k6H7ŧan@e8n)TRz Ip%a_{OYm_kO*&zΏ;ᶴU#GkT +MfXmۣdjږ.lj`ʈ qqKIMbaWTR7$!xR[!}K#g ޕ#!D?BWAKդ&6_L!,[ׁ+\K)_dTEl.R{v8Pu̙eAv°HoOZ ~ay0~MT+I*ZAujn+猥sn@ s/[Gt?00EB+^ak[9k"f$7K.W.G'#4|s(?W+݊Z;{RXcO9c;ʿꃵ{'!wx>m+Gm>lHO]|ZQJuSZ5Zh=Fjfd Hm0N> c<ݞD,mU_xA-$GM,4h*ƫ[>&N?FQK4?]|d9Pت,68j[$H "OڙCeRF \CtOu;C14JtЮ[z+1Y\2O*n>F&Æ; WIx:3skU~L d6G-PdL 2K8Be.~]qntۢ.l= ꬓBAtbwhV sAF9a5f>!hUZf+ Oy+& ̮W&P %KHS{|H OECDMjUӽ/~2Νm b Ԓ))v$-U"Co|3.^-eBјp7BM`4)ѶȺ29ǵI;(t'';Ʌѥ&0k-n>m3|3e*{ORӇd@[<< qӷ:s+/VZ&^;)"8, i+$yp,z-7&/`K ڰ_qT1xMj 7R%p=='gXX_Yxtt~1&*d*}h6rd0豛,F19ғ|=gjWb,w g*lt_7Y[xU1Oo;֥}`w2)l ̃40wɋ|%~sa#ᕇY[\ZcRA W>ĕzZk !VbJ[ސ-8ޫt&9lAT+|P0j?L V Hё4jȸ0fLh_ŭ'Z-Cu Z>QؤbTg$I`,t316%\X;]8{+wƯCz7ezd*RLT6f go?rud5SjHxث_Q?&fCM֋E!k(Svϻ{^Lh#kK |ֿҫEc\u rqV'ͲUU+ZH@]_pPh~r!{%,<}VzKv 6CzٜUic |v^Yq98/|p;2%> 0+Çxj5`v um?Zܡ jҚ 25w]׬;pDh"]smIWC7U~qQDV"0k!J8;hrtm!?{b%9!Pst4!ǛRwA\" VI pdCKDޫͱ26nas0ڐ.tHj;`5 lcA$aR/[vT͸};8*_ KT7>P_!s2-״ݪՇMլnTǫ \4(Fqp9]AY@}{{zmv.an2fkI s!kC%Rkۮe:o%!cY{&#ޗWGifFW!zW:VvoUU:P6զPf#z_p#R!O'U[bJ.0eԵ A Ʈ:W^LXЅC+Uݬ6N5_ϫ[kYk$;x>z(Cqg!-XТ9E;jڶV,fLݏ]\}b91s$W]Hաa-CO<9{pS2|)C=6`p׽'7ޔwo$INZ֨>vp$޿?nUZA=ͯ)^εb]젧MY\6'ݑ52[( WjG@ǪiOzԻU(fԆSb 6Us|JPky#ji .^6Ҩ#{A^9_Dry45e-\l .2$&8`o,Z_С,B-CexZ\K+`fwá")Ad hxo#[VSvfTy ' 1t#\ӊsHĖ[N 0+g*@ׇOpYi ݎ#0U)M)A<s/k+4{$KOR' )4]J3OXEnSr`ZFh~Ålϙ>=/rJF&ڃzRc&$;" 4$([RxEÓf Bs򧔣EITdB5Yf9C1)[> (fG'bE?ްuqodyh&Tr0kwHa&]Z]J,GGL%@XFdryMa#b!S%,Ozdk VE亄1Y1J_{.H&5D-pu w!q"qo4tu?{\j"$  ۀIh?~X϶;5YΤ* jE4_Ђ|F\rDu{J՞}q>Y8VX$>ZMl>Rda龋I*Ֆ0>VG]2ǓDž}vr[%]f`'nݙFymAv[?r46|݊v^o!t|w`_+,AO-PC#e E[^I=`/ޓmԚܛl\WJ*@A`_8&׬tUjP~D٣g'T5޳.&j 71V\)>W:&J!TJ>I` joٹ~ƒO^Z .*h H/!pv~aάjHK1Uml稐fmК!H8>zoIQAb I_ڛE_n/Y0H4 /l7ZFڬI9wS^"粏7ff3< ]mszrV!vLS=95&%7ֳ)gs~y%Şi nld;Jom?{ =薺Ɵ߾?zժuR-J0c!rl#%.XqO=rcѸ-6ݏsSuxpt4.v?j6,JE՘6mjZom(KWTvje=>mNsd/M7î M,E3p駫N d dr^z:6VJŜ9z'!wV='J1Ls]Hp_get7҉z~6V>Ԯ0R P+bG'uwԳ9֐tWلo_KzA51!?ye,MrQ+ͫ:/ܡG_Q Fgn#հ(!Es@C:uUk3Wr < %gSYq-aV p:[Zb}r _HQOh7YfenG̙Ĕ<:4%վZu`eFb6+)xNs>c_6xIAYNX \? }u H! L1Θ% cGF>9`sռJن3CP<$Sogp&re,[rߏ8 ]y;/I4-aXrw 9/v5 F#3Cf>8/X#4o6MeEvKJX÷K-ra~[B4CL($vw|63Dn},p,Rɴ@4b٣CXICҤ$= 5-6r{k,=ϔJd=?Glm?Щٜ >;KOf$@PMn+ 1T(y3wG5zDUZtT ՇF~@Bڲ)fH}ݻa/'=Au~`![n#̹.6kՖ&>t[P^[To+ `Dffs2|:Mw-SvIMV];eب6n'rBҗ~<{lL&I:?K4 Bfx62oDS&Ǔ#i]w6Ar%ą~4'JA )ߵ5#}WP0~J)1=GN;N`+mYUI-l#քewŞN+n:QcDz0VK5m~uԠ5ЮЎDu -hf q#D?IwU/ڗ"EL\-JK-WHlej5N>IQeXSsNk7軈^:{)nkݺsr8&t R9 Gߍx}xYTS.' AёFaR)?T땁 u(9SI+8r쐥!:I+)5Z]Wciޗix>Ir]OoAoPleGGC?o>t}Y$ fQkp[gtg|=!'GMvbJx2vV95E7mB$ ~o h/Yx@eyVtB"ʆJ_$'aK)u>!~D9iuKk XZP&ꦻzrt/[E ọ@ u#p(q#T=ϙB:vK^ȔcחkW挈@5nvt'pxjjU7JK_ zaD36J86?A$IQI4abFj۰:(M QC~\wDS8,w'&&ZT ʣr4k5No7ud~*EQp<2H֭IFdfS dhIEAf[k~;L/{lXm{G_ڋ22[L;ka.Ⱘ(F%Fz-+.+Z&Ɩf_WpׄbP=H gƚY}JuI R z%n,LĝI$63JMw䇣m[^k:٬䢴!lsMV.wڀ(H1N|tfukFR3YHOw?iC˓>e;YDp8d0&tU"WȬrP rEd/и ;ҤGly.&P^[ϙhƠ07 8=7Kf+HǫGI=rqy4y֙"Dwczs#aWLpBQqiCtI7[ퟓ`:/0gu[nm4-rh؎546ɡ"wVJB pHb!7#ň+eh|eAykN|/up{`׆T"l*Z1Eѿ{;TT塠gZA*,0Lf©t 䞺ODRs>őaGC56z} φэxҍIM駙TYߋ$sQi׎ґ}gؙ/?Tma9^ҧT7fqp?:h̝% |{ uymk^ ϯ;衢4G)j/ smq<"N >Ӵs}QvQK?h^ǃ;UvқjO^S:r#17)A,4dJҫ8f$hjb~Fz_(;\bRssE3P~`%9JƤxs, yJ$ÝU&dN)EGG@4 %)Y$9V6#կP(TP4Ъ*TTZ衋ieѬe0NUo慬EJV!e2P.QQcѨI SxKu2m_fF`HH gZe[T3ڙY F5cdeI mjp:/PR.|r_;ɷylZx%1)cބ&ȯ鋜3={e;u~.iDX8UCJCDNpă@Apo\ZXKֱtq8bdb,vmV<(K1P{Ȗ"5)ʀ}|j]YK;}UlL!N_`GaQ/ybͥ Df5ï`~ [#I*~QLEƅs?~!Z!A^Ztiٽ@ /41YԼ&6vosq$ّ=QBK#/A+dIը!/b.4e;D _{ gȌ)^t -;*4zz]o7UuPZPQj c\5hrJEE]._7Z@r&l?48"dLW""MD4KWi5`T܂-uZơ;jVރDhBQF54s2EPjdi]z6 IeEq IІ^gbS"73~ew7fV1  IQ[ivx{3>$-,wg%㵷$tH^DtkwRQs4QÎ ӤCQuվhu95Nu a|}=,h<.ku=f 0[Rosc-?ꉬ; gzE/hHLnt?e)Rxw& ;}t͈mJ#!HrL3Ji2sM+p]'OI/cf öT0l92N@R}i{.) `xk)g}VP(׫fE:hx0|juU @C!b Lg( &0mPZ*;$} F@3`4r})XB/nŕMZ +Opp,EFttP.0%Ix^m_Gv=Q q0*Dɗwb$?]x[L3\F|qP zME3 G~+#蓤CXɰַwJ4dȭTb`MC_%fV0V 9L>Jn ub޹c{k"Yepa~ŲY.inQsS(iv* )L8N"'jT+l=[=2׀EIgf=ɘ__^$dᾧ^pV7m=o4X]hZׁF Wi&'§*i'hڴ.3aiQEf‚bh0}uu5d2օ%:3(Q.ŎP^h+KzںXųT͋$#G ɒ%ih4#u4?]׋~`>ᆑt_TEl:oSl6+< Y[nɂ]d/8jMf]Obߘqr7iEXnq@lꭏa)vfdn!ieDATU|b塹vzJޝm#%%=r珗ݔ~^64 )Ԓ1d.`iAfD_E y5CbXB~6ͦ0ȤM}-GTs{XvY:m{v"_CS-@G`]-?~A̓jw]6 m'{dȻL8,:0Erp''y#x VD Wh{/'/k^UUnrɟyL6ˆTlfdq2+'Lj,%WP2FQ4l\I;Z+k";!68:Ҿ +JkkSuZTt&_ ١;iD&95y[ƦqXz3%FT4O9dv6Isۜ3umo\і.Gj6~̙PwઍCU(E<+NAeSϠB$;.]i<[ fE0CܲezN\_{9ϤKqLE}XhT.;Bs"qvk)^6 ϱJg>8\$*6jTUdx6TZᄬjvT:dv7ԈG+)㦮f2fZ?г|z?hj4~ ]lr `I7Ѐjo~UqaVAŒ0ޖJ%A&-\aiuC0Ƀh :zai&,{XÙ}"33Ǒ0XX\9(sG$;ʿҁ.+*QҾ_EOp4zÖjŸKZGNZTAƍZ'>aBKKqq bGI,FmɊ5:xj#k0S_mZs1R"T]rHl# /dۣH+g'{˿DHgҏY_U0NT6z՟o9CM5Fk &c>ԿjMWgR˵fR˜z:."sI"U3;DaiR'Ia:H #;WCQbÎI#UG"p3@>I<Җay0sC*)| 7Vy83j2CָB;8'lojȵ/M%:i+rv\o}K=E덌LyF&$s_r3} g|zgGGg63ԸilI}~$(w^|B&7!a\t:8  ha0A.=R7,&oqw`N@~O ;_kU5P,^t,; xsp3U1BTCz`GELiަ[*Uؿ * )X Ico|S/u-t{|:vMP+v4]!!]9'<_a2{2FPΰF]$5@wV! :Vu_U˵zp;ee/M"u\.IZltXY9cn|wĽ "4GihY eoX^oֿ7O.g ؃O΍SQZ퉨*'x \i~izkg {.qv$ka;n[3}HEHol7jޯVӒ 3:@ÊDjk 1vѣ1nu}.j9-J73 nl-x}Ok ^c3iv;.Wz^kY5".t3]P>i0FVVA*J[Ud˓O}'J&kwL>P8ٯXhe'&C[J*/| }@GYa<߮?%v)7Jx?,2`0G{}ӠDzeɠY҆^kܜo,pM&؆YH 1$rN?(^Pn^춵13ȎpEmBsmqdvխV4Ę>7ttcgpȅAvjc0ġJp ͦ Q6=wZ,J5s~6Q0snndnerf&iOR+ueEf΍),pOvh?w;D/@h;+4n+3 Y M  Vx//=GPYQLKO\b>&?=d+dp8Zñi'$݀ݐi^-S:*M0:uW%F)FԚCo/Gaᗜ:[f:1:YZZfGQQ]5G m\gtNԻ#n`,/CkٳaЄ Vs)֬V4Sʲ#= F{eÁi2w!Xȅ 7H/0%vEBݸĮB z9`l-j;I(}r-J,:Ri,*F,o Dg4=%)_zLLSo-jc|x>34V&"]h̯[q^5 !\h^5YT<3oHJ$iPj)UN֖TRunnk#rR {zuH8ҭ ^+4 },Wv_}`L{|d"}m^ޏ^[B%J- ~oOv{YdIfGР~s_9]# 4:mr0--mu*6I"VW>6}!uB#+W"R-DT]-JVs tuGaSi"KUڣZc@nC>(Q|(/bYR( ?tyrfF}Qy~as="-bGYnQQrAg*bi* pukӒH!r!.`'-ͦiܪ#v!¢{C J!&'5!u$ Z1\C Skvom,RΠUX-CPwӌ_xZJ^5hEf~/'.qnZxxews!ʊ܍KXU Z8|Ji)knXq^&)#4kߌirwzyhK~p0(T/)oˆ%BVrK͜rːFfϠQ{R1K1sn Q~"nĵux+i poMd8d4kn&~=I; |r<\.%K̎# F񀚤A%fֶȟ`@WS/8n<_;ꗵհ"dy|Ըu;z+C"#s{tXȝx)I_A4ԅ._R>.s={YŸ۩TZ9 xJG\g1w{i;$=+咹S({.dg%ՎNct]h.QS7=rF}ir ӇJ?afwΐIJq&Ìf}cRjGX]PЏ@X~6,AҭhyFErɮ@Gr\ F/\-ozHvOȠɑ8H fƀi0#(^0=G6g "?&MJժ-F"oK3m?ȀX{2>mfݔZr5)k+ ΞK!9 ti*r|$yvDPt4C,m"i0e͆9CzA&2ٹoN 6[NxR(hzsVi&RU&]ZǜY-?U!*9DF669\hOc%BycXuc[(sl?A}jFu9(DmƆl,qd}"59V[nV޷:B,dG TXXʆl0fQJSv}fMP\mlREIGjR#OPU0njd0YR~?YDRTZ~N]ڭj xk2 z̕ |*w|'٣4ν QPQt9/ hBt,/I!dהZjԞ6 S'ojh4) 2Qn4< 0Σ-lzZ Ϧqbed1hOڬtʓ@U3;RvKt=dW+U}esϭt i3zր;͹0z-T=/+;sZkJiI)]7XZ/n(0YF ncAܟ@"ǐP p=^~6,@V lC͆\@PUViGo}SQ|4=#8bڠijגF@gS!Pyh!-r 샅ԋ ,F9׮PK"ˇ]ˀm';6M4٧,$HP1,R<7s?TjX=?L%/J_+ #!>Qy!ӑ6F3Y[$7{(.5ѵu*fb<J"J%kUD<5抺A,@9i1˵ գȕ \5Ksc%|D?.iM!RbE.3F!ْ+€ ( Ycd3SKa4{&21sFpOUY+ e:rvj_65Y;EϧӪ4:mN6 sL3Stpـd*\-t?!kLf dnr5{7)_ lAS?X,sR{sbSo.peܳ}z0h'n hFjPE^uZ_uj2V5y<ӞB]X[$gu U~:̪LmE]0p"9?qdrY1kdl=.(^: DJ^.̏iV^mw{"dE-&Kv0϶lG \7]]Il7A{$q.9AT!B3_\mR榿QՔi 4`^L`B Ϛyl+τ$^2opK0ا I*:q7k~()B C`-~-/*&zF?}8slN-ț܅%d6 $ ?<Q]`pJYR JB6#}spd\,U0mʆ$I#!6ʑ@#ݺZU絬MHsgme9HX8]7Rn%KcTwgэ(mO7&ӟL:mRfgX^ݶj HBd\lUe<MP8E'E &M8 h#a}̹D登 +L'^O?W@,Wx{>8J%*}g8]1f ~-'Y _@O('uPHadmT"*=AX|]nsMSlPHOG*hG%xv|[0eNkZBk-!%R}TlқȥDqqNH;2&< p&E^.H%C 2~`6Vk%~}Wӫl ap[]WkQR aa1okUۭ} C<1 Ms9Ҵ$1>U/Abc%=4|-#{MDe3ٹ]y$m:tW!0} )+j$JӳHJ۩Ӱcz=LާMcu=|(G6? #t*=lJv1zLLlUJ&UlpM7{s^I2s:z>)Zۺ8\Fgc~Ը۲SUh Gj2T$U;tLdDI7^l4Ԩ&\V$^H>O$Og#kK0$;JqL|RRNVR;6_2?g5՘D= ȭ_UrMS}ز nj)x)ŭ}?Hon">112F3`ߕmO$:2dm{;_XHTS$PdP%N7 =백$<.GTH4jÉe5#!Ǖn=GDG &9$ FzTA}/ n>z-{LQW:wJYih1< p#-.ՁBjWe mttF"Yą\RW&oY>,K0Wo{g5/MdO+Sa1o#e/!d.=%|{0#Kq4~UNMz um-6e?=9 KzO=Zdi= xa qL^y:ݖl1-AѲ`rFyNv+nۭ/mLG8@[~[{) ̔<;i Ԯnt*Ac0Ox2sD ]g۝j6H7ǴT(p p~;i2 ë{½M4Έo%qIe2ُ'7?gVxȜD JM,w ӓ}|K =:Ovid-h>K`%?{ӂlkb+R&PNAkr+1Y#?rQG|:+zPK!͖ݬ١Md󖇵PX$2dPmʥ53-E%FO"i,g\{+$#_!GIUWDUeԨo3pIJ̤a\a}W8C)Y]F{gsSW&I@$̶gHS skEjb`_Aͫjj2H0<ڬ5-L\k|oXFthlgshl#'Pa pݿzB. -c/dFpE:ĐA$v:Y?gq%f!b;Dm~I˱:N]b/644nTzf71ZIL1(sHv`~ iLJʒ;1p[_}xB~e*O;={ʇ2 <n;l2y *55\ Pv5[JmfL4 4en #>sR.IbAaFξ >Gua%W1|AhsMM̊^ף[mK( 5V8V2stIa_k޾J[0I}g7aP>鷒t-* cU5ǼY8ԧODc?̘(̟ci  MᓎwajqpX494"(\?zIv63*+Fg0р\VZSy~:.At+9"a"g(/det{ -kd{fp}wYPmAvEtCpwb͟'1Or)?6tFpb'>^%f_Wsr8YJh/bܭu˂.TʋԪ4A3?@䯹Ӳi77ܒa94kժvj9Må/ )<۰PdէW9-]2|t. O8H٭b֘[ h?1g-@ m=9ުˤN>?Zdzv s&^Jg5G'hxI^pG#m$iEl"9D V@o5m&,ְ9-EJse{N{8T, H޽ I#'Tr/&GfE pl-_BwH]4Tk'hIS-04*-;M0ch-5 Y"7ѓ5Sޔ'{ ɼͽdotuX| Yє{y|2d8;Y]eܮlځAqdhC/1 Rl$ڲ3$/S$ K76eLAz! w~Qm)tI%$!ZNZV]z͉; mxs?'Al[Z>cJyF9w)^/\/lVN fIX9ReYɐl)Tc_ixc]f1w otMy$& Ru#6cv6׽.^t[XnJP-: _oj^b @tRIkUF4j%_sHTnml$Dl6[jf$!V_QD|!TT53swZ ٭*ϊ_g+-Y I>eZ|<"1i?\ῶ ^@>J)nL\ƟBu;5l(KSSLr1fz1F3WY!5^(sqt3Vlkd bQNAP$k(yI1I^˟|?hh(t{Yʿy=/V*mHB( LxLfB7)礂n>5f{j 0+zK6NpG6Ų sJ6m`{II\VQ=t-(% "F1?Ȉ ޗ%8'FH Wh Y1?ذhN:Y -À&rD:u[|{ZGZH3D*~D;|IS.nb, {&àrIQ#wCD6Ϗ6X.˾u9x޺8yj~[W{2hoPBDX }+3EfHp3û)w}㯎`ksxl)N++ZeeecdD 26@eV5? ڏhnLJ͟ݝ{9^Tz@723ܾ9FE"iseFVҨm* JbYw?;-XJ7ۨHJu2|4%Z"??angy~Ut^ω̆^iM1*zM͏ Y/fbGA4Gd Z࠹ysZR{x%sysDNp8+HΰKb pٶ22^قSܟ^XK/؋ 2Rs7NiGiRgtޟy4Zp+up2 na3.r;/B Wn\ej0Oj~0'v'\H=:A[酚TX;+ WF?|r눌 |>m*Lq5f0"\7ߛ# ҸOA ??b@"?{sg~ӬTͱsZ%I/sqb%ً{_LrwI#S&@yOd;ff''C !Ҧkz[қPz 1A,I崓W>v&ON`$,@p`wl-n'+We}%Z R _p;XMi5 +JtFpӴSx HAH7{xs p1޽ 0N9)^_DOv{#l&Hae[X#nlGdXnHⰨ{0ߺrF58@`S|Ia{ ZpZJap'BkЛOirշҴq&"ܽHLʗozma&[1,ryZ{1_9 .7\C:$g_L/g@-)K02L56t&yy(ivII([h J\\/UC],KH롑.I 8&)|Y$ΗrV}D_q/JP3l%I؛/NP2ń[dxLz㏤:9N ZbfVb:|=!]zZheA)8e̿\4}A!ba:/VjkoC$4Frjxa]`+k,Y~Ҡ=l(s&p"~W g|pR[e&HOvKi H-_űyMRal$׉-08s1~Nz7)k2oV&t̒Nq"sg㱬F vB[#񺨫12C9.2Ԗ,wbK泈''e6_w`ICScXP ?AȔHi*O!l@^ 3}A>FE1QSpZ,%z|Zk J/K&_Da#0.y @h"/BIlT@@eTmB0^zfh߬'˾y\t[qd?9bxpNgc9p,8E뚯2l"Fpdӫ'G3gM1/0aJ"E m Gt<Ǩ/$ܖ؃OYGNG4O!I`ԹفP0ES(^1o ٫Λ3)K<RgE = X7iV>4O?/ʌ'ڧ5wԖ8(UI^6`Ƽ$^兆ϝV٩ӟ?KKX< qJw`o,m#Ծ+&QH#+ۻjJN(uF 7Z!Pa-I]\Ћیx~wI(-SщB{&Y+pOB\UUMc3~L^_c>?ЫwS$_LQ]7"9}KIm-jA.[jōX1etIG5˙3>\3)_B{'wȸ{Y1%tr i"TЇ1y"qFq߈13=P`.15馿RYCϰ%Ct*Ν-~|K]gvc(F gXLT"O҉W`ύ[=ŗ ?sM6I_c.-\=_g2e~Gp AN/`_8|z׉Fmw@ԣ -dd{95 a. b?>py%AB-%! i$"P\oo2f=DNJq8+I٢zNcIsZl#=rꟙxFL >qz>]0gΟ HJ~$;P(/Y=A a8o*$KGwJOɔW]LgCG=: rQ2[bNL[IrҺoA^Ô4ᑘUr9DЂaniǥ J/{F+[ITOF#r` JCdm&'LWɍJJ8KmN!/@1uq3ͷepd)$ \$Af(~G,P{/#J;s3d۷o٧0k9=~};uk ePߛn,$] K~[PMvtn&=ana6-q<kT g2 )892q69Er8+n0'8ˣ/QhEhqz[Zg|x%^]> ަrC0v \INSqIO 꼶2[,_[ae @I Koʊ`]K 6l>cAYb7d&о_=]O.%%je.UONoNƏ.]ړI: Mj @8$18хQʧsLy4B8ٍ\hP0w" P橋ҨQ_H#>q|@,7p ZX&&%n)dID;8E}3xml8MAGp:&9-eJͩ$KB͇egxw;hACYo$uΒ(Pi %1vRQ8 wĐ8 nfT4>4] 8 InX[;stJ8\u.a%wgj SmDb7:!B4ӑ=LugdxNΜ0MraӫertvM@`=))i"`&X /xz7#.5 V#%ǖ5:Zū`A9μC )--5aYdT̹q3ydʉ '=#>` $Kֱ;=XgAٳe>|JS:=Kx.я&M'-0 (r=\&D3nAr`zptp9+pJr txJ /Cqr'tr7L7aKսnnXp8g1)2"t`}PF0bnN^,歘p.KZvdNa֞d<~>X.3L-]+RU\8(OZ>epkdw7?+^c%nCfIG1k1гFtEQCU_waPYAfWј$'u7ydUqv 6K a< {s2yԶ$M.*Uʑ䎏jh ˠi ?b\_1kdN/DqL䙹+V2oӏ{n^ I`eNp4C^yÅ~9x$* ` -|]/L{ci"4vD;Z^Ko1##JMyZ'f~+rA?[NېŁ\#`T!HU\=}Sw4C~x҃G Z^NdQV8@~-uZ{իa^xI'P͘8ő7Gz2L&T'ɿÜ7#n:t^^1/?ׄA_It=DA!j]kI? 7ô4e99w%@%}L/?_~ %D7,ȥ,tnŏڱejLYt<c_94'ϔyט<jG랓??25m2q*Yбk#EӬ`%C`ޔW>.yJ$al`zyyC t 4@ Gw -GH'mjxҬXAy FS4;Zye|ـc>jțu4hi92gN^dvG)2tPp-$P<g~Ae'+tRs3)ZtؒbiyXۯ$FkK(F@( Zcz &z\zF{ <^?<8"H̊[_=t{H4'49葝^ u!KRMFfSQE^:!dl7΅ P2v\,wq/6/dB(.aтK*#:˔YX[>jG#gjp?4g@>7ƞͧ,g,$> nV`<)ԏ\׵祽uFGpޤG.Fovt+s7~)Ј-BM%??o3M˽Ι^E7~'Wk^vik3(+EjրKRYlM{S5XUS#r':H^/@B_Z#U9 E϶s2>%Qcq-61/4Tqm8\Z{?B\珤7mGp1C;tZ[\˅A(AzW93'd_X,ޭveer+$?gd~?c10FD0GGeiziյ 1[FV F +mq5?yDu2{.ԉ` Dڈ:pkLd񉓜p/F< f4AX'`+?U*32x@Մ#to I?*^3Qx=rĊy"#z'BHh2`3mH@Hܪg@g\q? %8CI؇YjjAcPVʷD9'51YɆ/|~wYmzٮϭ ={X+mU{Rk _1}:D}>Hbne_hL@<}PU[,/xg )dZID/v`WٳB@hDr^pZU-6!_>m9j 8ZYh[ ։<•@2Ю_ǕF|H@Sg1 ?ݙs.єiSI˻8$A޿䛐4Z~:^_UrWzyAX`u@`&qϿC=63"Er0Xʰ,o7o -:/Ph 0&˓D `=J\  AҩfK ѧMSqlIa^瑩_-H!,YFh7~pO2ZP_V7(wbV-#dUS-퀽P^w2;\8qMtI*&RgJKg{M)HݽygHq^E.Әis9`{~z+I%RWoDfVVIB{9F{ddd\;\dB49 D/H|-O:rd̥x[dŀb^1=j6BF 8]h–|cr@Y)AiCQ-ZJD O{}Kķ֛|9XH tNuZ9g:y:5'FsdSԟ3$j_}sY\kl~_/qP otz>"jii^2ٰjGkb (%4k|lݟs$Fw[8uܻ&QN)䗻<2ynkX.Y&;!OY1)۷#IIEx$wZjxikĝw"YV d!;Vd29Ae?eUxB7-1@vt%iz8٪<|/7-wHkŠ>_1i Y!;u1;$ \?^=5i4^^9{#=X{!$zIڢ!)0)`:8"/I (YZnU 7_"0C/ܛU&4%%o,Sm,Vdd׹PK뵚 Rdcw`ut@/5jt@?wXEW>oi"sLYJDS@S7<@ Y H46] 8W }^r2x%}.$viWwcgo#`=) DN ?.i2(y6f֊k͍Ƌ_Ж&wn?Ni-]AT!ŪMdJ]ӜFc<ψ􃻌̠X=O#م nol!7tnk'$w /[`jƏ*u +\Qm~’'8C:T0Pnp3TP,ݑ[q'@ش`e"__ zn(\Q{Hӫvu^GT70K| gs-&ٸڏK_ߓFηo5]{Zj|9֮_(JӁ>ё)= DSzB V}ꇎޫjڂ穥# )mĔn)1I<5F!nsS(!'LGǘ-˟`wb\ly0 L@|c 3=Ŵal2nt͉8D+l_k|;zYW~Ujgp`7:[a2!ۿ8yܾ1- H%|qvK?2uU [3Dw`X c/oLJ}2Ox +,u.^u 6Om7MK}R4.*.i !ip=ZwjuzV۬`BDn4aP22r-wѼ"~q`eV(4aS<0+zϴ?̲57_ A[zovG'9Hż$A[hwa9g;qԙ"N0LOРb3MsϢ.qEA8ҨX^YwlvO:69K~7}7Mǧי5)DžY1%s.){ ;K9 W_{e|kLl+\)澿,wn~{|vCf0önФ5;x^g42-[>#lP,Ϩ{⚵źa40q4e3ٶ Fʙ'DrYɘlL4\|3#+5?wq|Z+ʏfoGn_h7_NATt- \+U8`]7Kgģ󬈬Z~/HV]1Yu?$(oĂ>ߖzz(Lh= 7ĚkA,Lvza4wP(1_ LJ# D"iIH5}8-MÈC<@f qE݋K{OA"(_%b$7L¨s7 ;IV/7I.wON^7_hd*@\~KȐaUǏarE sM]àYRƞt%NlHL;b 41L14a{`:0%#I9F9EaZ$VGq ijBMjAFhd(`wg`9}3Zwq)Ȕz5?!}S\m {Z;ਾVjU +.X:5g+q0E}du`Ŷ^#N; ,K6xe"ѝ ^^\qso (`At{65,l}m,G؋kx[}'zɡQntCki`ICnEC֥sG7Џ_Y?3/F ͵q_:4<x?^AlFLgŵ c~v QYy'揷ԀV|̔R>ny}U?eg-S|Q) \SoWؿiIr7g?;&ko]@ݫuxvSn) v| !b@=FȬ3#|Ow{;YyAc2+;.)e}45EU4I-{aۘQ w bQ: GUߊ~tpz֓ofy~~MeS_kgl҉E~ <:h?!E{Lۇ6\iuYv->Uߪ q=T#H(| 9ctd w8 E5kk%~ iAQ'}zA] P+\|D6fFs,I__3| $bj?7m-4*?%W:_ * U<*lEqeh(8\]cOUB[  :&! Fץh+{پ !D~AJ,ߴ!k  ;7LDҚ*s2ֱT+bi Xh`4*@;~ɪ*Tֈs=4Y`B `k#E[}J Yo:(/nD"ѧo4gG\!Z\T*et z2QQ3_\LEo#~=);Rǧ⛏G{ýu5Q8x\"(kVԋ sd&q䓕