aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMarc Alexander <admin@m-a-styles.de>2018-11-10 17:01:34 +0100
committerMarc Alexander <admin@m-a-styles.de>2018-11-10 17:01:34 +0100
commit65226168ee2841dbe7f6934b16ff38f0a27ac09b (patch)
tree8add3b4f9a09657d15176600e8d2dbe44e4bfbfe
parent02fd679b2623f7435c1e4842c4c8cbf05099cd21 (diff)
parent31703585cb2faf9ca0c2072ebabdc2b3ec62e146 (diff)
downloadforums-65226168ee2841dbe7f6934b16ff38f0a27ac09b.tar
forums-65226168ee2841dbe7f6934b16ff38f0a27ac09b.tar.gz
forums-65226168ee2841dbe7f6934b16ff38f0a27ac09b.tar.bz2
forums-65226168ee2841dbe7f6934b16ff38f0a27ac09b.tar.xz
forums-65226168ee2841dbe7f6934b16ff38f0a27ac09b.zip
Merge pull request #5434 from rubencm/ticket/15860
[ticket/15860] Fix format of backup files
-rw-r--r--phpBB/includes/acp/acp_database.php4
-rw-r--r--phpBB/includes/functions.php2
2 files changed, 3 insertions, 3 deletions
diff --git a/phpBB/includes/acp/acp_database.php b/phpBB/includes/acp/acp_database.php
index b98756a34b..19c4f6e4f1 100644
--- a/phpBB/includes/acp/acp_database.php
+++ b/phpBB/includes/acp/acp_database.php
@@ -203,7 +203,7 @@ class acp_database
$file = $request->variable('file', '');
$download = $request->variable('download', '');
- if (!preg_match('#^backup_\d{10,}_[a-z\d]{16}\.(sql(?:\.(?:gz|bz2))?)$#', $file, $matches))
+ if (!preg_match('#^backup_\d{10,}_(?:[a-z\d]{16}|[a-z\d]{32})\.(sql(?:\.(?:gz|bz2))?)$#i', $file, $matches))
{
trigger_error($user->lang['BACKUP_INVALID'] . adm_back_link($this->u_action), E_USER_WARNING);
}
@@ -402,7 +402,7 @@ class acp_database
{
while (($file = readdir($dh)) !== false)
{
- if (preg_match('#^backup_(\d{10,})_[a-z\d]{16}\.(sql(?:\.(?:gz|bz2))?)$#', $file, $matches))
+ if (preg_match('#^backup_(\d{10,})_(?:[a-z\d]{16}|[a-z\d]{32})\.(sql(?:\.(?:gz|bz2))?)$#i', $file, $matches))
{
if (in_array($matches[2], $methods))
{
diff --git a/phpBB/includes/functions.php b/phpBB/includes/functions.php
index 3fec88a354..99f65a0e92 100644
--- a/phpBB/includes/functions.php
+++ b/phpBB/includes/functions.php
@@ -115,7 +115,7 @@ function gen_rand_string_friendly($num_chars = 8)
*/
function unique_id()
{
- return gen_rand_string(32);
+ return strtolower(gen_rand_string(16));
}
/**
eG||c0h!^r^zN[kS,ټK Td\HG9r hˑ,DBQo#1NµJX 3ͪxXŧgbНG)i+c,H$>u*Pf*T+ MBw8=378r|`Uu[$zcB2@m)DnƯ< {4 %>z,vu¢z #UЄڀT 8+4"񽦸q! ?}V;{z0;=~. nwd)f6IbP7A]i`qc0=FbmgL<*-JgGS Q %B&ZS[S$eKM!?o>;f|H_)ۇhSkj8aG” w!t&Ee-_Q-wڰ]5kO%S&d[ ( ¥\tXAJ N4*MT+?@7IVD6M݄Y'7 WT<}]J=e6.5+؅v(QmtPRaYӬjYk&!4*M಩Ĭep͏qq8+>b{ʑ=[`5H}jVXUxWa1^ m"m*`{ LSYLxly:UQXrДCvbRBۊsu6uv]͋y]9 'O))/mqs?4 x@cj(Ǘ gJ  QZ{o'!rJ¶וA5?wC=@>5]{5!b`_W0OjՂ@c{U't6'؃Cu"9c 3Ю 3zGʼE$}4(OQn4j~514U|0F=㻿CZOta%i &"a_C5._{n6?$ F*i"-kw!``06H7t7_HyjjWD zxs} (O^U I&,UPs\pDȹP3Z7W$M9,3t>٠K5Yw,߬TOn!8R^LLnHcgЪʑn*b⃜#'r{MH׎Кrp|)f(yQZz/)B65[||I4T {X>a|. K 'QMm-q9B?H1c4: ͡gE` ]-c<-%"F#izkMdWKXތq:y%lj(@t^Ƈ182mUcj>,^l0[8߼ZYK)H5iQ;}J9:,52Y#K|PA>hg.oM+Kl15LZC%IlE i,{I!EIi c#m:׀mI?ȽW3Ǜ_R/j MsdkSlZ**54ap(~[؊\6^imzwQX8RBF> kd8Vt5D韻)DuLn&v.zFUop%,}m)3*L#P߂zR jD>ASG&}bRLg!>D;˻ls6]AX덴eޠ[ T7vZ,+DC|}rl"nbT?>%r{å`5@u>R_H۔0_:n:@9F<+-  n g\u``XB o/ܧ*t 9Xh8@VZ;f\]ٔt η+ H:BZ Mo~ 0 ?#2XVK()""ildClbP&,!~a~/_$cC*'t$. \&dQV,]꒺tR{M6Aw-;D+οTnH24ӒT 2X)(ϱQk"fj·e el;\{\ym+bt\-x-uSMx1D# |^HL~o#@Lf Ot"cӓ S-{z 7(YÿUJ]nFlqLT|ơ ORX>/) #R2 jgUʶ,Cw0XvxnSݲ}-Dȥ3p&kS|I^7-l+A~V]tթ?*u0թrG&aN >wż 4̷lq @g2 ft]LQFhiE2@}䴌D#ubƖTC =D|j̇ 8<*0qr /<)j]v{0#WC찖nj-U ςGTEy;p*Yu`4V'`0.pRY=KoRhmHak_s›J__nmO\u|=+EFYuMp\'2Owdy(]u}=^,I=~t./hD7"iHn@(?3`-BۄX8,Rn3ҏ㇪ ]U f)9/̣,N]dv_>7"6۸1;L_χku[dGןurpU#J{v5 "COQϺEB(s YUD%gj$:I;]^c8{M>,(7 U+ii5{/N:ـו'D.$(w;D 'nT 6A ,Sx!J221: Q{'PC6n], ζOpt'hkʫם G03ojk֞-/(0j.DTCmiCBa hd`wGdr,ECSzoa* ZBgʜ4@o F$̂ sSJ9"[Ï~ "FfZ 4EbՑ%n<1Hx c:xdbVf-/l`den/_?׍WeEPc+Fnhy3JE"zؚJp=ceo -.ʿ }HS8l*6R/wK\q!;xg Kbq{׀$\7D Җ]ړrXS'=)zAl XdQx0cXq+|J~I)ٓzrjӂ警w@!Hݚ}Ǿ7!y@|,n]Fi]2GS>ؤ\ah_" DH? ߲ ArDWIz֓0JsWȯi+!=+;9`(N>NB9*|6@/Wa6>Cr]]8y;!ѝ'o&՛L,VI>֠x^|]r(eztV5`k* /TuGz !Ěcf] 'Y&BCz%'ƉU?*I9 O/]@z顶mBQ`ùcpD{P.L!ھZ)]c0lJȌVV{=&3RJ/zոh$o.P*O #.h4ЁMv?`c 3vp;QAW-w΄|*8hva:)vܼD[c GzĝmR&PV4mꝅvE!lנ`\Ip|Nw,xՄ%`5$gLv%ϋܐ%$LQFIfFr)N69 D(`W ( ;Nf;DUըW@ٻ2VK1m{!q?%=|Z4/ˇ\~ˑ(K3^M;čKS"ϻ|H/sOj4_$㮗A#a;1ʬxmS9 Ljk?|;ni͉9pJ4tCXE!L.k2F;;0ܫ$:*!1@5\u^51S!+{kѤ6D}qw5 A E (E]zW9V#JvOh+6*$"fLwVKYZYLTG6*}','Kڴ`vh{;q\-~hfP`B6󊸈D>PP`Baλn?S:Dz cxWܱav8BPVi /qrMWZMؽԬ(X&} G ʵH)"Y΄]BPi׶K8%v,B\tR1 7'pho쿽OxҞC9M$<y#,:8r?xc_5?_tS`!o{}Xz ;83@ھ9f-<rB%8@'AFqn7 7; ujq*eȝu;H^%jm 5E@Rc!4PQGse??N%) ނvtH'̲k *1jcOƝ LlgsyqgQ eÍ~r>{)n}Lפ)=6HX[o}q[,1aT"}F1;|ע8,jO~8jєHfI& q<78:)(vA)KyɖκF= =ul` ?d5d(djM<őFH\kL[y]b+wX7U6[61a'D *1PQgE?6rّh׊6WIͭV9'[U<6 1C"d *K{$争 uYc8e=,LMi>!5j>[eĶ]RD=gj=|%fPax]v4 [4ra-kVmSGEKb8^5A t#oNK̈́Ny|Ӛ9j#zCBLNŸi0x.dc :WJXrИѫW}Nyw Y}~>_f : xTNĿĕ0Mh Hi Gmw'C? .7CK(ř&\MbTj탁҉%U}m?ԑC;(eԥ~x؅ٞf[Ղc}gOsPz {: SO4-o]O17RD'W2,?)TY`m@k⹁]N#@;de`X7ka`EJ#g/cع17Dmkp=AnuRg>$(/_D*V+Hc+C {ֶ}ODQr.^ji%ZKY%Wڹv0>I:ۑ߽[0]|>״%ʡ ?%C64޺'Y&nr o{uWĴ\Fmvϼ NO%q}i h]{JXyz<4qiHY>Ƿ, 1%p>XJ ĵ#Ӌ\LQ/?e-c_;g݅O])$ F](1d޾e]P(NaMr W_OEGZ]:fzk{*]Bvp%nB2z rd*M_7 4 V{%BWBΜMxxp7td,e9e/.k`RPLB`VHR>YlѬ Hh JcGAq{{S"[`ʓy֠R6/""'p mL K"FkpKԬoK6Oibt,2L /Ԥk#:k$ X/l.+4ɫ^{2Z6{; QO, o_&;`h~?w"# x_}W:YcBȳyp 4" Ⅷ.'^-.рkkpAM#g{+<~t"ޜghn'ujA<էt TC >Tc8 nj}C5{c0s"KvJg-,YҜK0[mrMubJ 6 3DlD« sر1nX>, gZS>U[e Ur/ %f@qCZ֤WF${;3"N6PU@bwV][~p-!Hi ȵFe-~2tc9`WoAk*cR5qOX7؍q: ϐs"b5l`%Q%0GՊ/K*~g;9?HB_(oBDŽ d٤ oAX|[>xNщV{YCEme!j~-I19`Q@g ѧ[ svJvw+K26..<*XU&gzc#u Cz%lV_o{U|L6<5o`鏍VgõL!pJ+C "H3Fry ,R+$ Ntcy܄ohm 0'>h bǀ guy6#kh{Ahy^~/  As1hX^뫄bcWޱV.1{sIt^ҀݾwqY7\wK6i&*D "[V]22s ;^ P<šj Dw$ުČ8걶hn1AݹX)U4ìqx6{;GsK? a <-ɤ{ O|;vi)鉿}v]Є XclK: jʸg3pʻ1w<jXkTrV4\Ɣ2xvZV?E4&S%Lxvtn?uEK-4͇}`U#ށ&Y~{D WeRafl2F+Ü26{h‡2("!g",?}r>n9ҫVK~os3 \!y;[wKsŋ2+3nxC},71K^ S/TzOvujBiT白QbdaJBO0Kv#z-s~]ȯg$8+ݘ5)Y6 P8{aDi>?joS?:%<G\yQ`p&Th9L Phe;q!lAZqLh-vL3PJGUnfnmtT}L@,AuJ眸-R1ڬ3+;%]oVO{>Ji\|o9qw-|†fMX+B{p+&@|P0"L}xӁ|m3f'*uKxI?O8 Fz-!Yex|-[[2EKiPLfmI 6@*HH6MxF'ɦ ~+7뛆wo37Z=V)P.m`~i&?(Lѷ}y**3^0L{>^G7Q15gS:> {62=݌s{7q&<@k(JE)@ DD"՟*%Mug3V`&蘞{dzK-iтhP(ۆ"GZX A lT4hU 0v31.;A^Bd3oe]P<$&%v=lK"w<7jی@5UL?r&ZAH/+U!*.z5g7dһ,MaAzߓ8n|_D:OYbzmFePT$>C͛]Y뿾[eOIX7ِ Rqҥr,M1s)KΠQUKF2YmSf# Ǖ>˜dťp?[a|(/GkRj?̚ N+o:ߥ _iֿc#V` t3==ߟA1:~Y:MݼItVLiQsHMF#śAVbdC3v-4 m>/kA \{dqz ӄ1DISM×>$052>:/7.81p_FXBP0L{\#f2&{=V1keI@Y)m߾YpL*):A׈H dymv#*FTvr?'H)=4mZji5|._06$&!> Ư1.ߒm?+*pE61Ls֞*kn /}]JU,Q6h(\B)ݝ˫gȯlN/8@S'و~.= 2 ˞ 7?ナ<!}abTo$~"lo/3S^]XJO_NsM5ݵBj6ʨcrFt3X"њs*Z>HV'*r9g HgP)=} BSDNo| xAU(S*Û.Dx5EU6'LW:YSrr;;-XĝS -qI{zoT4,r /0ca.lhX"28Zޥ\ ̘~Ɔ |ڪqXe_2&LtnK ߺA1h(S%TxʽW̜K `]Fȯ,ZXwtXJ$nO6 c=pCOޣ]K.&/2| rktʼ4EQ&3Y44%,|K's**,=E- X\CHXr跮Ռtx`^JJ!ϝùۼ}k1MBt\@e%xWTmcguCqf2z c\dI+.4?)tyݚLo7Tm\P/:jܬ6{yf9 ~ S2FiX '|6#[uПqV;9E wQ,CM\:u X& oAkɊsgwj`KfgUT/YFם93yc3ƀP~@8FmI֙~+H:l&*c{ fF(`oRnovYnKWi[6Sl6X[K3l䒔kMUikj^J$ -͹i93ƭ.sA@wMD2ÜX '1@%co 91z<+30G79H-tr\#{* @WWKC8oɅZHQ@ xg=Nb32k~X/ _AUq,"~tq`y;mzZ MbeC|Ta'HR1}nF:$;h]\r|^Cb~R=/hP}$A6½C _?RQWzMG%\~r]!7yu^#$LJ㾾ť7j.˄v0ί 6Ǜ?~[f5/H O[,_3Zt!5nJ(*VjS0/5AǻzKF ,.[rť,vhrI)rD.q0Y <!4~l2f !ᅟB -v+mCa)[/nO"XS-ϐO4߸ȣP`N/Ġ]S٥O绹헑}_6:D?{؂9R.ȄIXrOV ZB{?Her|:e`4H*!5ϱl~bp$M?8l߼w?7;7=` 'h0%: ) b9 ,xilFϷɧZjRcs<# =D_D?Ϛj/ tXF Tf< 6S&=vwuD?405|΍Q&R&#\ &:Ugf ]aȄ5@ >:]yt8`$#焍[ y+jGV}zG8Z07hIFB21ؖzj RxH1 R܉`_;B 6m B)!|0CO(SJ1|דk@e] 6X1G-%H\!Zʾ\oؤj0wx u i̖}[*Z^'KiYwzU׈2 l!Q A'`9FF\4?e9%Ht]ۂfM,UYnKy(3m9ctX :*Э1 ^}|7d'i(P,< QT)=1 #r*cɝ;|RX#Kh0gp; sčxqZMcɫ#1@7ϱ!aE,^%{ d(lD9FQVC,1bg{΋e/?uOnWBƦT1<Ĥ6[Bq@<7U}~E NsNc)Q$6j/H.B]ߣQ3lCOd[ :eւ#f.'H`Okv_ޯUز{FxOh%in\v9$Id;;T>(f C/ԕwY": ^@]QѭWQmM9ъXvBE룓j5Gǀ)gGSQ¨/3]fs }w qs[DV0" C Ll!F hE#ӔwAiĔ,\uK+rś]4]t?\cRodf)/>I>e1#SscrdİRg7jb>nՉ3kU5.G7Q/\bl+>pm7Dݱdpu_ n tko-4~˚`NGPOUSe*naq0~f@y3=@*%ͯ1Lw <p=<{AM2x@VJk槂Fm-w-pɜP.o!q_hy7欩V7r=E\5[Zo'me[,X:R34/~2E?|C 2kQU>3~kXOo*Ǝ.%mrx""^Lk&`RwG."Y2EYGC%Ւ{sP<XA~,c;oima7Lku^|Zt>o>1S=v,co@x::FD5%Ql \Xo !9􋓿U"|ړ%% 5q)<<$.Rm=8 e&^(UFYFAnV(ި]BL`>$Ů ~-;Kz/3ipMP-9K:4}}*Ao.@OBY6h5cSmk"a|nBj:{)<m^Kfl=)2Tӵn9zFt2`!C k}ƹgZV .q܏+KЉQŻAN"צ.S9#QjUɨ9>Aj#.u(ݩtFJ 5)&r'v#;9\ D!H1@YoR+(: Y]zҒ^30Q;\*+Whԝ=^ CPcY.@3T8&Xt'i ϟ[ſE<7} u>g+"ҭM19X˝ik4sLqBnh"<(D: w%(4Q \%tҗi# D`ݟ8CPi5ZY[W=r: yy!la󒫘\_R 6mxܜ Ҥ5f#,j񐑦LpcթNj8Extg IJý Aq5ArԂcA?/FIz ][vrZRef꩖zC#)}mYׅэ{l7g4#a XV1nݦ:+5AbxeBY?F v* ٧GϝU[. ~(Ǵ({R&Xp$c" , zF* $[XD A~I֚kq2hӽ[d ۝&ReUS+;-.PUsTnTL];G)ye = 83bR`82vbi$_ۡC+vڇs] Ђ ۦbYiQgHE^qY|N;ɛJ$r\bꘗ H.c@=13:'Tg Hސ%lrO\ΚٮLA(Y:u4 BUڸcD?!pAn<h @<_{X!l2S83\ SMUj-,-$(^`CDT8W},e^Y/'ٌy{ST:k>4 f@ ȉ D@s/ l`QqR,ԝ*}D=g}d{"V훵l#͹fBP,qIf\?[k= ~9;C J{up;F}#@w){P4Rolvw`/0mLQ[DOvii'~'Hqeq*\ouԨ+1'o<p{]. V:c*?9{AQȉNO,a\?,»VZ}S6p/j`9A$!c@^~S5Vnj*/lRx(xMv`뙿M:ŔV)29 eV;5͇D[b,ZP"vl)bIA^/q#RwA* 4., gJ.i~Ÿ(Ld􈀹C_#8էgՀ^qd3?\h<*"n`?!!UEOmP^?a48e ]v8RqWoٶwp"ȍّT\+A<%N7$8`zf<*grFĂ*x2(`4](gs ;tZe>~\cϯE3s;Nز vhLzTPC//=Ťu>R@)Ķ;0%W .#>F,wfM3X4Ku=5`i%'=!& ,э G3]8Aw#Sᓗ$-1y rI`r|3)KZ{jdJ%g*2< ]p6 c.kPl?%Ѩu[8ƠYdC9ѷdMfMB!,gWR i/ wf FcG+ZzCz˟1ìgk=:D!UZf{ِ⨳3C\ׂ =:&t3uȍO7hԈA{w3s]h`?/y3E iNE0y[.WYB|T~˾u@'nO6 DIS%" 7LPN*\jw;*I`$Rg9MM9!XP&j I1(ʓ\9M 3O߀;lk̳\-B"ԑ'_Z2/mm8{'R+Ұg/#=?HK7S #ckoHPۧmnySֲQ PfvB` XeCK]5 Y2([Bt ]mpe#Tx_e#5q=FGlC4=7ݡi6:KkFNtt9#)UW ݘG8 c[zX{C>f/Q䬀Z!uT ¹TJT`Tibhj8J(]`39>% ,Ty R23{Z.CsЭՆv'@-p}79^ZBw=r<`PRw}@E k +r^0{H[9H&(kq٢'Jce@Xp5UVW&oS0- \ӟ{6g>JwzE{RC:n-!k32H|͞m=K<'t!2H(ZiT[vn -XEw?%m{wtRTH&Wi ZүtnկaNv?kx=_1NGQ8k|&yGJ3FWؔRypS%t/1?%3W7dT9<'M^Sԓ_iv 9zV=`vێ L /+G 5w òn4rqT[ UVlje4Ь2R<|UNg Er:t1nCgr7K6zGkIãM)UlI}kBϯ&,=Y g%Nf>g4EacC;f15J!n,Cۋ-=wΩndmX`fVF#,\^?] S"?9r/Ge"xt!.sLS?ÂGOLat*dqPz'CkЎ5P֝1Y]`%98Y] Ϝv'wA.&WqB],Inc= FH ]&;M=kD:mOĉ,P *x 3*;`]|` Yg_Qhgc=߅S-;;l _1B`TuRǎp\nR2?A $kRBoԺ4,2DRA+ԋA<еInX_vMҞ)zc:ryA߼b\D1meMNwq?i# 8at'-N\.=QUK^b^%=?:_/?%Ka_uPEKXQYjӀW8>y )(lʎIfA3,a |º4tff>?gݝ <*{cZ)ŸS^)L"wl;*HiBjǣ1sΩ~/(R`{Fc~HKCѻ,S}K1:AF- _M]vli!2WuoF47̮HiMb:GnZXd%S9<^peNCy^D0~U$} USwcUYcv]Ay~Ē W]J9E'?@GҖɧ27|)LPHǾ$XRLc\HlǤ˅A]{LXWEj| KE> $W6^3=v7@mB57BS'Hm,9#znIq2fvo<ӓ%®'tm*Gcy &v#S#qզLV,q 㶳誗eu*GY8&즮i3L.6G-EFi =9g.'1R;2m)fͽD'+ MIw|z{s=R`z))}q 2Is`flh/*,~DmcM$Y96{Q).ec_>!tҪV|w ^pL[~uIl L])")̃7z9x;zQD0 r3 FW^A t,@,SdWyaY6AW{&^crfcBY. ,NߒOG'*gUQ:l  JydIS!+3I8+/_b2[}qA}zuju oXP(HOsrFؑ0G'_΢(ک:s}dE#g$=9Xg“bH2A\.8!QDN7720d WEh`S KMY~U uI1bsT/_Y#+5*ًʲL IV{~] Xq,ՏkGJ!5;/SH\&PP" H,8:WBqEK!~CӅ[M+?cDvahO謩R4Ħ-ӦQ0b_P_-r0ļ諎3L0U!\ٗ\d<8@%&gxl^adIx&^r*6Z o+:8E/_+w_'xa5}0m;2Y[8 π[T ^cO9<"'J\YهU?| o궼ߩQ "3`%e45IS>vL:fKW Da2Aw}//Kk{ݩ&sqv?MbJv܋o@ tbQ-2R"FN:KU-/ ;*HX7EgMZsy4B=;=5 7Cx$˓u3PC @.C{eikP6 +x$.b5:5:Vc"δGfUKX~(?Ym.RZ VQ ca+ؐ悖15Aсr7x;~%~6|rw !`LVZ\}c*K*;FG_Mptuuns-|L=QiFH(%2c^ý'cbbEDAȪջ]?fHa ">;'SV[ ժ (hPt?kzOe=F:z}Hı0~tV.@Ec.(!V"*s|čӄ2BmHG4BZB<:T@NsSWKTKr1\{n̥h+{qzbvR]Ё΁s2 .q5VaeҤmRmjDuyKY.}F!`[Uô=Tr/a!;Tm6#@V&Gd[%ʹ">Yo9ϯ<jSPiD+ HYTcdf}7L5927:`[_ų]WB>+._ySem૆s2z=]p#ea7"J/9a7k.'އP2hC[ׅR& ;DIoR1]R}Ijɨ#%u]) uW>+d"][s2B](lzv(t!Jd{ڱJzj3˝{5]Niv<\Oǡiض{+9UT/T||9 &[t&Qijl!#&ǔ$I̖[VEd#M/2^^(Wxt/g>6:8 K]-^d.~̞^8JC8*˂GU{KWa-ds:Nr Յt4RhHaV}#9%u:p b=@ZYa?[X@^AU> p- gbxJ&ouJqrX4-n2'ȱ9Eʹ(@P<6)ćx8Xw2+V0ڪi+ؓ!D)nc bzV*w^PʶcQ80r+t$%x QsٻDٓe.|ƇA3f%M@?'D)uy@ÚPpbe)F=^@ ? 86wrYO)sNO!/#60h<}F^a/L͙އ &xZ}yXxh?`R S0j:\qFT/^>5թRT,l7j;tNaqפpjUj[q< r҈b3L+j$mub^#)(H5a0L!ņo7 %' DT]enĦK#a~ȯ!Vw*17{1]gȒtŦg8XE0`Fs6"C붅rKevp ~S]z(.,٬" Ǵn9t4Vm$Gu 1f"#g\=Nvܯc1Hqnt_>~ΎZH䃽eY3g)lōum5qDs' d)I7;(Wn[ැ`yƦ鼅D|eGZ Ǵ(ؐymG+ht>k+wE>3_pT`sG8;$5xa03ʻ|Ԯ'@Õ$ [`2,J&TW JA36Tehn7eP5:)r[Pyaʅ2I#F1>jucՕ6Irb-d[+ #xnQ0^"_O:\Mt"5/t]CL:rC*24{I':"h= kΧm#M^jy>h59SL.z&{Vِ,5G'K?dž q Ëy귬T u鞁K5+<$w~@;nV#t DTӨV FC! nhX9&z5d Cx[3}⠎)<͉n %Z=K${ o>1*Haa0KH*>P=֜7mQBQ"tȃMͭ ]r&aK$oww]k8- .ڔ2삂xSɪ;4E4$v|c6$P\N]|U&t69ETK*k 9 2Ɡ;=۝iXLT+Lz Ce߼FUkm-ޅOl$i+ -+6lbj5~>ďy\~$)qXhuY4h;obU맙rn&DmSp-+`{!7 v&;/5^|;sdVWN( 1U25ѼC>U?" alP_hB=;}!to - &K4^)-'Waa ̯;e^.ZHN@>y 1Nr2ӟ3tűQ6Ƣ慆DS 76w2 ubdĹ&a0Z|QŽXLO4 >DFgrJrbAtT(XZAKdXYyn{~Cu"U͊g9hZ!?eËSKo#{9 nT!|,,}FF]CkQC@ωFkbСVsUP_}"R UÔQXF'3furn3ߟ*jJsWqUӵi[\t|;ټX50:5n"(XLFŋ߮>z&MObLZϚaƴ-V8&8`'ҒJ^Zy0?5SSLFൂ* ~7aP FVx䱹 n2fQzf%r50*FY2\C[&SԱrV3t Y~Fš-5 UL({ҷ. 3sBKS64?TYbRȴnj@k?3ߨmHMkR2.Xlx&Eem nU#V%Ji[P(\B? 0"=ő3Z@պM!? I,q8?:?^@V?(6"ݏysyHhŽA?dzTb6|*CX"Z8Yމ0"ٽ)y2؂zP "'x =?}j^v ڀ@ՌF w -W}]]VWa]»zSTy=h,=5ީ^wM]=A9%5I<.Acr^rΊֽT3-@b3,ǫq73|"e0xT62p\i"bqJ" P^"ka_݈*r?Fh:C1 DΣ`?N({VpwWy?NbKp9c5S_7|2(n]9^ŝwe; `K[^+bKt3Lf ڈES'+q8^(1>=[W/SV }8^{ww H-G8PFx*8/i ѲQS`ef 1XeG vRS>E pMA*ɨz#A3)u)Ln.4Z!Ȉ-gOwڷ`0a;(psR$-h'^E!*|cא >iI$@EWF/CR zߎG5Rwn 9m:Bl؄5$zb`Y T%P1?".{ x$4ME-Zvj͌k i,>:g@y)=1VJ.*P{b [&+MSub sO~?d {2L<YH1WZpm-E'Wq3u$Ď H|e^R5N/AU_4 =񺓉R~ iLEj%ӆ*8+~Ѵa7KRu h2tz"IMR:dxB~P2&tZUwYĎδBB6yW,1rbI^c…™mx}S.wVM 0 $^'76ї]c(bh.sL0hB-M8EHI*O64^vkÕ[)-a`P9 ra@k3gIGsci^J(i6m ()GfѤ _DL 05üC%h5ʬP (w!7~̳`/Z$w\B,ֈXPp}ocuFPU @D8}yc=ҶN%66Ns2}fPvvÉ-}ҔPh |,/ׯ5h9PC)Ier 8 )6u=?rT!+[/vyl!]X!\JI-Ft3,\cפABz޴/ed;weSsO"1OF#z{;Q.5bh:A@V9|pDp`Ѫk)Nݣ--s|Mt&wOUAĿ҈|_7KA7,0Q>L'?T|n fCO"h빆P`TXǮwi(ؿ#R3'5ʍeIٱ^|URkc[ _DԸ!W^UM"YųIҦElUtQ%TMttXrhi˩rҋkiǛUIsSa9 V:i8% AVx>OZ'U}܅R@MbW;>Ъ9]{`+`b "~]AAbg/g`UКdD2G/zw:YM, bMT9';PA_JAqg`omqTګ2gBpܓgjS9 6D7_MnXgX"ȓJFs21*x&`%4lsl yD^2~MsP j P` ȃqU H$3]]nQtI]7eBTҳy*0E 8b)qT s1| Y>BS'!ѷn !TnZiSִcUlstjK%$YqT0Ms6.7 햝NS.&yHԒ|ڐOgpBm|ɮ#R܅L*(U47ʆqVw*XH@UXOhێգ%H#~|ˈ?`مT4֡3R2üp!D/!g0cʌfzTerx'1ijr'J&sYA3[`rr,SDR $U(CT_i,HnLa%O R<2ho l &f )Ye;nKF_ e*~9cLĭ'RH NbߘN-ciu]s2pȨQG BxzPF: /ҳ.bRSmMV&Ti ŞY`"\gL [t:޸^4 W?ZF+7B0,5 {:* cѵg \ odݐ嚄}oL].#O;'X> M?1|}&p9V;Kz{gÛkLmVW'CE $ ]&F=|$bgzꬴ^gPa&E 98C/,ï'Q{` bP ]BE=k6)>&v3=r)Pluo/P$D]&4^g2;˶_4L=&.ZٺB*9-!t!SN$Sâ%KB|"`\r9tմ2i!g}v"@$! GAImP v,q3PO^)"jRz*2 gfC] wDۚ'˸ڜ3Q*~H~T&$5,o{؆hw#1㵽`&iFu" 0(tY?zFK!<ҞQOOpyCށǡ.6sgy([\t̉*q7ycA ʧefpu98? g inƳiN쬉^l'\o#qO<emIM{ O9д'Fnbhgu!v] h} 5Z@$luqՠ" "4.z] }o ~7,㥍88ʙ+|OeD.LXPȱOOFqZv`(rhXa1]'Y/ ɽ^&7:р7cنq*+b#S`8$$niI&=5؟f;$/4 WeK3R[QrLF% с;o@\ֲTү>AVp~Xȷ;Ey(Yfɍ@MnGWaAǑ0>Ͼm{20Zl.Ƨ cZ/;" vY%L3sk~;i~& ꪝ(.V19(&Lj2H8GJW_=)]`e-sUѣ{|}п8cRW}?qõkodø U| ')?)Qִ=eWp6Fb;G ^:O uZhi 7~*5<(kGmVןѵިԻ ?_7HD0[Rȣ@㲦oKXI էT?=8SzIUIp+ikMd9e 0;Ikf#R9 "J>(%{k~.>pMp |x/=۲<;0f>@iB_Y"U6 q0r4ky}Nz7W%ySOJEQ CJBſ-=wI 98BN0\Yjɵ%ɝ(<(+]4+UK&k|2JDjg+_Ӊ0~`uĴR[LN,&wJfG ,Q\ݬM Y5 R(ga6BS^/FPw&e_y3~^7Q2LO9;4h-gWSzϣ@24DYU"jQБV4XtU2@ֆLc6/Ǵ|ࡖ%S?MLo}Cx" wsEipj姒 UK=v"bb]@]Ξ%U<7tCX,@VE`;vw^KD9;f;ӲNΕ&hҗ +3@@5K- kwʌաEޚn甏e_# I%`]GM Cv3SlFod򳿵bҤ &{TvJ܎ P.;moش<&16ZMMJ17 \1أVGkג*v]D/P!{Ocq^ê:گ´m UK+%j5`)#Sf+vͰtWÁcvB5]#6鄼KHZJ#yݙpJYrӁ%Ɣ#s,۟s \vc gNU==_(0$j})9:.n\ŕ^0*yyik.-Sf Z J+5Y$+"5&kDJ,Siڤ˥ԫ)|!坋aGLzŷZ })]E2-ETivq(ݽ}ʅ< ʴʸ@uy2S5P4#/(#Iqy`+֡'0``'+ );7O[D[kY&3w[iw$Ó`EGiܒD< 퓾èH2"l(I6V\Jeu p :kyPCRU2 z YлmɁ4i9.R)F"$SUGƽC-j4p$icRFW#: .ѓxTw|Ӏ@7Ӭls'32K/QP#X6`6| 9rs/B'T0L!0W'A3idd(@^UA"G ilb7R&NӇ-"u!kU "Hc,exf)_R|q{*\,ā\hw^Tz~{BaBzq:VկmϖF K/. CtJW,{7&=p Tq96@r8mqhT N4˰WpF#N[ k'^`{)j(@p,`xm"+uݣ!LEʆ3>_AscW6A k7 +<]{M)|,x 3*SR[-eDu!xxu܋ƻDd 5x;}ZDd0&*p'脰57NbXH2 4=9SO{}>SoH^}0+@%^D; gh a_$sv{e)–2שn ~hv%愩)4ma6cniyJg1[%v&HID.ۋOr&mz:ߌZ8U_f\͖TLl{*3^*pw H䒇|yvIzc3g$L'}3Åۜ~FUP;bnįG՟TW/AE鈖g LBg?]SƚLyL4XֈmNÜlg\)|K,S^AOƕ YJN>79gFqx]?gbe DKZ3K z9 r&}*g֐n- BeTs#ܰ$+{ʉV* G7GIcw25L&Al yncbu$jڱAĭ(`%'ȷr3/GQ5̯L\$K /Wnp%3&2r|*RPo ^zyoq b߭\yy7 G/֪&BxA:>{|4{].Ύ$k-(zbIf.2"_V};Ϟ~v:\PZ'FjFnr$MeC`q|Er5hg>, =|K|dX6X$|BCXxN᷿ͅ'Ȯ"V1 (,XD^/j;]w0Μ]A_p\4F~w`Z!*%+w<ʀ *v'zByqXZF B kyNYҥjLn C S#@폓KOzRxUQ.yxjt3—n[wb $*N='%~]HTbR; kD{hB~ʽ\S^9F= |cQw!R}7jb*M 9vo;*C<>'>&,lCgZ-!OxZ\DaE,s5W!*-rcKsN):ϧC܁Yb' پOQ-Y]O{լ#/|5R uTOg<~Ϯ?\BsfzPı ;K.H.@l=jOw lcJ@@a'J3Y׽ʍrr4RK1gKUq2jA(:m{h̪8Dp=OQ`u;wv)JOqKEl,V짙DE(1muW4Ka56 LV)v9ZbP<[mpfIz PȐjsҊ< 9Վ" TAX?/J]eR0BxxMYskD#7ydw Zd]C[2hgYVs4,w ׏)(J,Er] !"" s [_Z⥌n/o,cg" ))dToY7۔C19r?h64\>_P4;cyūUıtCj@ɞa=Oq3݊ZBPD;T–P6VT#17 A!P!-}[/_QM1 /У&֨ʈ|+oMá*`:9 f0/S/+2_(EK׿`K&I@!W4^;d|.-Sm}yRK8υAkx3 rOimNFFm?v02b]x_6 oBQv*ܒfDg[Ǚߚes||gza}}[ݫ[I|9t)4!)"NVUV9=Q@?V8~E*,x^18]T-j}n['=5+ԃFвC\Sܖ]g_+b9J⋽a SG"WJ3$[@BJ#zf^Smj`]]etB!χ]'#gE/[>B=xdBa}cO~٘&J{~3zsقe")Vj(sڭ3Si*Sna1<9"K0+x:|* x5=CzEZY#%::Pl"ӗ=ϻAAI`F  vLhHūS,mH.`0H_K3lՀDj~#-"hHY Y+5 Ǹ#Zz\owPgmϩi:kIaP^6mVC6~j8gd|&vhP7yv/@$c%3^ PvaY>CExfy2p`jj=M5|*BC[>:($ᜣaqL~wM*r"K+]-44JW 4!~IcYӦpeD_bFC!Wslqt3mCqxXZ2j:' T*"gauqXX~8:@zIZ!n5fRbsYdgFZ?mK wWHt\^۠u&bqyw.p:j5u >JD,^3dW9^;_T.A0q  Wr]kpa08 ?"e>DTy7kCJ9s!Z`!1qVُ:8 9"_qxU_pZJc^'<_F_2YN 5]]_s]mW qL-G%R6wˣtA-C? dôdjG<|<^ƲXT8 R|E-h(Z"NCaH%4ժbp:Ƀ7 ݦr}$ԣr^Hj9SQ"^{pF'^zr()5Fep^`}0R&d YQgQSf!^Ma"?E9ùԆ:EP̮M)sG%>'C=ڡ<Ӄu#AmuėWf*_|l8e.>$oEDP0&ED E-u;#^RY.v0Nc `)Uŕ* zvs ~XarMqSQB.Ew@ QL4E5!Rl:CDwY2DjqVFIº3Q3/B\i9X|,i@EZ7+1'GCsOǎӳ&11S⣮N4Nlw-)"7ߦ|a D6V S!|JHg1E6q:m̝ t_r>on b}1L~-j#(ow'X+&D WQ)*vV}<19ha'6-a'Q&-x+c|s;V:r`(mL_Ʃ"bY)8}wwXjH)E-rO \S[T` Bc0V,6˧}t%1t=b/`, WuJ۱s1YNﹺi"vJȌ-BSEܾüEkZ MG?<O}93[$ZţK.,}nNy:@h~-ILJnPpm@KR`з!v}h|[O.b:>XѶ}*ybL"qE5%R0=[faq_V(MqWIm%K[R(dll Y/v4ThEєWBBSN7g.P2Mo ~ά]J/KԧUL=á|H=~n+)Q{@7S-Y/uaYM[-6'vۤD[N6M/Ͻ=}oEka:J(u#%,|Z&f.tg=z/h9-Groj QT%o"B%6o`{Ug:I}3aj#'V7h t3픿b7~n/794ꐨo]=ZtIC7n=]|#(v. y+Ds04fΎq9ė*IFP$s/ *hGγ5ؖX/Oq1FBWXż.%{[CnG6 3^VtdzCJO cu,#S$;>:8܁F.)!U25Q`_IG,pπoAXI& `74O>?P?Vґ/˸>4V:g~>7xL}O 5U&FW#5Գ%pASQ֯ r)t1Fѿ& Ke`7f+cyQYZ{ Y売/W؉8Ӣ`'+pcۯ ߼ on482F boNpE9J-̦lCۖ'pbżR۳X-Ey6AV<q׉atcr+_nD|5u$J^Pջm\?2y{:x]eɻyc~忴Uzۈ1 _C0Պ߃pF4/$l_~tEQgϝ:Nh,֋So :"mG>x `șG@A\Mq1<]t$q% -K2>x1.M̈́ -8Yf(ZcA6~;7lNb. ߁ l{){frm]K(уRʿS f;"ةfZDd B{u~W+ΈKrҕdub}lJn햊n?gjl#f{ swYߪy,ʷ7DPK#̮Y5ۀ v*znx po;#'!,މł S9ұ80z*Qapdf(kw1k YLnB1!Nc*Ws4j7ٌޕTmΐD4q_;'+ 2y+8Sd |0Q%~\X|bdV=pt}WQPP:50XJ8 ␱e@7[, Kl7K,⨷< @ggZ:cx=헵!E[I^ xoi]~ Ż+KpdPI0p&\Z3bްElXYY2 9 好3?AXl@;^S"zzo+M ]w&pQ_؞_" _; @|2S)a[wS AU}