aboutsummaryrefslogtreecommitdiffstats
path: root/phpBB/includes/session.php
diff options
context:
space:
mode:
Diffstat (limited to 'phpBB/includes/session.php')
-rw-r--r--phpBB/includes/session.php59
1 files changed, 29 insertions, 30 deletions
diff --git a/phpBB/includes/session.php b/phpBB/includes/session.php
index 0a2c1ca6cb..8264472ce6 100644
--- a/phpBB/includes/session.php
+++ b/phpBB/includes/session.php
@@ -184,18 +184,7 @@ class session
if (!$this->data['user_founder'])
{
$banned = false;
-/*
- $sql = 'SELECT 1
- FROM ' . GROUPS_TABLE . ' g, ' . USER_GROUP_TABLE . ' ug
- WHERE g.group_name = \'BANNED\'
- AND g.group_type = ' . GROUP_SPECIAL . '
- AND ug.group_id = g.group_id
- AND ug.user_id = ' . $this->data['user_id'];
- $result = $db->sql_query($sql);
- $banned = ($db->sql_fetchrow($result)) ? true : false;
- $db->sql_freeresult($result);
-*/
$sql = 'SELECT ban_ip, ban_userid, ban_email, ban_exclude, ban_give_reason, ban_end
FROM ' . BANLIST_TABLE . '
WHERE ban_end >= ' . time() . '
@@ -255,7 +244,7 @@ class session
$db->sql_return_on_error(false);
$this->session_id = md5(uniqid($this->ip));
- $sql_ary = array(
+ $sql = 'INSERT INTO ' . SESSIONS_TABLE . ' ' . $db->sql_build_array('INSERT', array(
'session_id' => (string) $this->session_id,
'session_user_id' => (int) $user_id,
'session_start' => (int) $current_time,
@@ -265,9 +254,7 @@ class session
'session_browser' => (string) $this->browser,
'session_page' => (string) $this->page,
'session_allow_viewonline' => (int) $viewonline
- );
-
- $sql = 'INSERT INTO ' . SESSIONS_TABLE . ' ' . $db->sql_build_array('INSERT', $sql_ary);
+ ));
$db->sql_query($sql);
}
$db->sql_return_on_error(false);
@@ -395,7 +382,7 @@ class user extends session
var $lang_path;
var $img_lang;
- var $keyoptions = array('viewimg' => 0, 'notify' => 1, 'notify_pm' => 2, 'popup_pm' => 3, 'viewflash' => 4, 'viewsmilies' => 5, 'viewsigs' => 6, 'viewavatars' => 7, 'viewcensors' => 8, 'attachsig' => 9, 'allowhtml' => 10, 'allowbbcode' => 11, 'allowsmile' => 12, 'allowavatar' => 13, 'allow_pm' => 14, 'allow_email' => 15, 'allow_viewonline' => 16, 'allow_viewemail' => 16, 'allow_massemail' => 17);
+ var $keyoptions = array('viewimg' => 0, 'viewflash' => 1, 'viewsmilies' => 2, 'viewsigs' => 3, 'viewavatars' => 4, 'viewcensors' => 5, 'attachsig' => 6, 'html' => 7, 'bbcode' => 8, 'smile' => 9, 'popuppm' => 10);
var $keyvalues = array();
function setup($lang_set = false, $style = false)
@@ -542,18 +529,31 @@ class user extends session
}
// Start code for checking/setting option bit field for user table (if we go that way)
- function keyget($key)
+ function optionget($key)
{
if (!isset($this->keyvalues[$key]))
{
- $this->keyvalues[$key] = ($user->data['user_options'] & pow(2, $this->keyoptions[$key])) ? true : false;
+ $this->keyvalues[$key] = ($this->data['user_options'] & 1 << $this->keyoptions[$key]) ? true : false;
}
return $this->keyvalues[$key];
}
- function keyset($key, $value)
+ function optionset($key, $value)
{
- return $this->keyvalues[$key];
+ if ($value && !($this->data['user_options'] & 1 << $this->keyoptions[$key]))
+ {
+ $this->data['user_options'] += 1 << $this->keyoptions[$key];
+ }
+ else if (!$value && ($this->data['user_options'] & 1 << $this->keyoptions[$key]))
+ {
+ $this->data['user_options'] -= 1 << $this->keyoptions[$key];
+ }
+ else
+ {
+ return false;
+ }
+
+ return true;
}
}
@@ -572,8 +572,8 @@ class auth
if (!($this->acl_options = $cache->get('acl_options')))
{
- $sql = 'SELECT auth_option, is_global, is_local
- FROM ' . ACL_OPTIONS_TABLE . '
+ $sql = 'SELECT auth_option, is_global, is_local
+ FROM ' . ACL_OPTIONS_TABLE . '
ORDER BY auth_option_id';
$result = $db->sql_query($sql);
@@ -612,7 +612,6 @@ class auth
}
}
}
-
return;
}
@@ -644,22 +643,22 @@ class auth
if (isset($this->acl_options['local'][$opt]))
{
- foreach ($this->acl['local'] as $f => $bitstring)
+ foreach ($this->acl as $f => $bitstring)
{
- if (!isset($cache[$opt][$f]))
+ if (!isset($cache[$f][$opt]))
{
- $cache[$opt][$f] = false;
+ $cache[$f][$opt] = false;
- $cache[$opt][$f] = $bitstring{$this->acl_options['local'][$opt]};
+ $cache[$f][$opt] = $bitstring{$this->acl_options['local'][$opt]};
if (isset($this->acl_options['global'][$opt]))
{
- $cache[$opt][$f] |= $this->acl['global']{$this->acl_options['global'][$opt]};
+ $cache[$f][$opt] |= $this->acl[0]{$this->acl_options['global'][$opt]};
}
}
}
}
- return $cache[$opt];
+ return $cache;
}
function acl_gets()
@@ -837,7 +836,7 @@ class auth
if ($login['user_active'])
{
// Trigger EVENT_LOGIN
- return $user->create($login['user_id'], $autologin, true, $viewonline);
+ return $user->create($login['user_id'], $autologin, true, $viewonline);
}
else
{
T l0` aZ^m`DT?{|}ӡv9l=#^7F@jIG̯\lTCXAz9l7ž oK (|xs[o}|{< ϋO1_PScť{ݭ]5m j JZ\sEilskW+m5cw?gk_{8 mm]ZjFXb}].}޸b}b뜼gFo\~1>O6f^3elmb$nh+IͬR6čn?Nmb뜼gFo\~1>O6f^3`#7?'Xz/LdkZy-SZ4-|ӱ< ۯ̖;=V$?8 imb"FyFRĽSʦZv?V?99_.V7,k1+ k7r|l㟕'-89d9manEsj1[[1~s7I4&wbI|N(NYs<[Od  [ sw}f=t/>b}uxPC4wr3|,ۣ+ڙͲygf ʓ9py ¤>Vŧp}&iZs|{j| Uٓړ6y_!Vŧ',9U-r2C[ sw}f=t/>b}uxPC4X-y}]_G02_w\^TӬCU!8> j |߈m0dwY. CU!Q`geu}`|. XBqo|,, /%ו>HB?,~$*!X.~Y]_G02_;K*|i!*[ğ@5~b>otn2_;^T!*~YITCW(\3`0dw\^TӬCU!Q`geu}`|. XBg'P! _p<ϛ9r]y\w?>}> q4zHШwX/C~+KSN !T#'OB1Ey7s%6bBGOğ@5~b>o+Kuus43uJ'#BBQ`l /Om:0R8> j |ߖWW ʟua !q?|,, /%וwschύCI(G8ԍ wqE>`0d{KwschύCI(G8U?W> Doڥ<\ ~Y.u`! SEtk]_G02_|Kk7sK43uJ?ذh/|`0dW%s~~~@|nIB=Y1P!#p__eu~`0dW%s~~~@|nIB=Y1P!#p__eu~`0dW%Ot/sl!#՜~LlTCh/C9.k7sK4c>7\%glPC+| N]8\~\>}Ͽ_qF@|nIB:Q)||ʥ<\ ~Y%ǟ3c/cA|ۛa Iеg}. |G02_W%s~~~@|nIB=Y1P!#p__eu~`0dW%s~~~@|nIB=Y1P!#p__eu~`0dW%Ot/sl!#՜~LlTCh/C9.~{>}h4ۛa $cbBdzEzu9`~\m?=ӟTz4OmͰPVq1P!٢ϖWWKi#ѥ'!#՜~LlTCh/C>Y]_ /+s؏F@J?~6*!{4\_y`~\m?=ӟTz4OmͰPVq1P!٢eu~`0d|KϿ_b= 'CI(G8بqp^}+s%r]N}Rh=6IB=Y@;f>>Y]_ /+`KBt#ܣ0! }EzVWW O/sl!#+kx]v/ qwRs?~ⶶ[5̗̆{X9;+kl\lwe@Kڣⶶ[5̗̆{X9;ݱg}k̗{X9;ݱg}k̗{X9;ݰv:%?0;z _ۄ3@a rSgs.N2"{8à09u)N9'=pL{3313313εU+SֵJju:֩TNZFffFj3323Q̌ffdf33#5vg;R޷"'jΧZͽ3ԷȉڄogSjffdf]j[DmBm7/=K{ބO6&{3ԷDmm7/=K{ބO6&{gbwGGw{3;؝֢Y؝:bXm⠢"fPB!bUZֳZVtww;:VI3wVv'ttbXa+2YN+0WD,]!ʵjJgbwGGs&f6Fg{3=kZkRoSr YqYfPB+3I,A'Dcuj6۠0&x7F7ViRn7YpIcuj6۠0&x7F7ViRn7YpIcuj6۠0&x7F7ViRn7YpIcuj6۠0&x7F7ViRn7YpIoyS^Z݈ax؉ͦ)˯SRA'Dcuj6۠0&x7F7ViRn7YpIoyS^Z݈ax؉ͦ)˯SRA'Dcuj6۠0&x7F>x؉ͦ)˯SRA'DoyS^Z݈a<:0:{Yܒ{G;ڟ=RD MBB=,I=#O{kv"siަ !N}`$T9{StPSj]9X{Sإ=O}^S^݈a=S_}='s/mnNm0)/Rb9^ꗶb'6O}ni)frIj|K[L'7@a u $؎w׵>z؉ͦz0:{Yܒ{G;ڟ=RD MBB=,I=#O{kv"siަ !N}`$T9{StPOqK0{O}}{S^݈a=S_}='s/mnNm0)/Rb9^ꗶb'6O}ni)frIZHՈBu֩&O{kv"sibš9bNqv^V!.I33Y)J$%&fp%3ZD$dq+H$,%i뮺z+pAf d0%58 йPw:/2zYI=E]H}t>DدQ>Bz@*`ί#G>oG'2~Jx!GW[ 6h:vʦUL[cn p*9_vz**}'P:B.d *z"""" g@o{iO{%fuWֵvy3^z{޽&{je{_3+^{K׷zi޷b8uڗq;m;m˭۾^Z5=*^]Jѕt{}{x|gV^ݶ(M wMk&zo4kׇZ=^}o0ڵW۵koZն[ڵ}@Q $^~?^Y`EUnTU_vIk/h$}eDJDq!rHt' 'W 4:KUUz {,lڶoç۶[[uY=o WZCǦU4V̽Z/wtmt%ݩǶ0_Lk.U;Or:mĽie4fP7=owm[ˉ:M.kK5M)ef6cKխcPjCD?D쒯?D޾R?*x%w{~g=AV@J MCm(0֡e=&Иe z$b8\"U]<@Qm ̦6eP?OVeVAj5kZԒBThZeF*Ɩ [eƚF5`4 * * XF5`4ՀfhjYQMilRQKhF5`45ZMiZa[J[J[J[J[J[J[KSUѦѥ[jThjS2TʙS*eLXk a5ʙS*eL2TʙS*eL2[b4MTFlFlFl cMTFƚedjf6MlFcMl,S[P j*4iѥYƛXF*E6 mSjThmThmThmZF5dmMZE6)m*4SmlQME6fLQJThl)UYe l * * * 6}F0@jiUd{M[kVi۟[ۉ4m Kӏ]h{n'KۋN5MyRI-,LMLc0ٲh#Q)%6ż43f)2)5)cc%4dJՌ5QO),ճf̬DTEb-DDDDDDQ"[ejɱE""DDDDDE2(ZɱE""""""""("dQl֪mUK5L 333 U333 *I33333333333$$33332C0332C3335333237%B\RԆ-UZLFJ`2**UdaZLeV* +T+QYReVSaVY,dVdSR0hTԍBԲKJaCV2#EY-²#)24VQj-K$PZ (h4! T4R`iCA PeCA&CU& M )05$ʵDZ &JM`jIʓUh!&J`jIiUTMS%5LMmm6kkη~__գj "sv^HP,jUǴ WuUT^Ds T &ҫbUR򉔶̵&+EQk2ԑ+5Lԋ5L6FԳ 0Q,fLf4&j3%Y"YK23Um #2VbfUk XFf+bVVJZJ&kC`ڦ5Z&űm b QoX>ˬY4&@2ozޫ.Pv]w^ldQ"x L+PADh#k`TDD`QDDDb4@m[jRmH@@DQDb6BA( F@6RmfD@DQPF T`(DbEUmo6@ IT{U{WEGJ&#Ò%C׉竨{+GاljM[UmJͶ%CiTs[l󪦲lfY4ejYi,Ye,Xbŋe[Z1ՒdY,K%fY,Zb̳,242̳-E,K,X2Y-Id{kxZk;2b 2q)$H8`׾n|u(ijYRf2m_+7]ƛٹ]][ պvf\ݛF-7J'$[7g]f8kw#JCքćX^,XNz6*lM~ϗ}^`2I( 1e,dŃuP̽wNczv/ WWǷReRĒ\I{7S=ģ!9\wNϞy[7^כLjtj mm 0lUT@0m4hl}UI=#җs\/j ׶Hj~߻_kPElL\ H.7_νw|#)C@*~"OqUBCZ~ZW̡ 1,zWu2saN/w^wzBWRYabi6fwnۮݳHCIfRR2iII5)*HY,M&RS%Fə$d6LʀXږhN^yЏ" U}"L0QY^*d$UI}]aPR5y۾<_;ޗΪVώ|洕yU6;8eٹsb[2Lt:붳gT=Tl^Ԫ`Y(v )d_+ڬY/zi2s;w ӓ>v{إ$i%Kih9˗Çr2wv-Jvndk6ڵmm۔eUϨU~EBQ>N??=1ߟ)Ilӛ.kîKö볣{/ڹ8=82~y(5tݙG~>aOnu0iMޯ_|Q-<ȇsמ{_OzytZﮗI*47_.zO/_U\Κo/>{|{-]uuް>{׎Ċ S;А2{|"DyWt(;$^y{˻{]5p={"7ߏWI]ȝBӂ"l蔅FfV"MdLJU9E 1  DC|ib=.;|埆'ylǻY~=J}0'/{l7M^m!`Ff](`9?Vj3?a4/2t['/%H@5 @~ܲ.pߦWEΣN+g/pڝT}[?LY)EN*pTʯ%?kWf*8FJ _{[_Vlֿu@ULTUzCUuOSW2 _د?__""""'^?Z""" """+[}wvp×G8p×WWG;wnc݌cɋRdwOwzw{; xO)5^~Q6i/p}H#1iB P~|zSiPQD{D}>ԧw#T}j*dTv!v<\=J+xxmNશuݳ̛}yr8CIGG_/QRyH/ yLK;(dI;}~ۭ`Nԣuۀ *A)ޞ]" W*< em(/Zy *4Fd1 J_m_uӗۋv`%]3X"[=(6j H0%N Ðsbx9zQU\KBs"JT UDT>l 0z>Si&2ɺ 컰UʯɝT(gٰd&8(3Mq &sx"{E"nuڶT&쨯m"BIHUyOˋ E-nZ@"Am_*P*PPmknmmmmmW{ ۭu۵vvmؐ!IWA|br8@PiƀՀ/~QTV`", ea{7)~lytU~kZWrSv9<0#^ȓyg}`* a?E8nL$M37ʝ RsSNgGq>+ cݵݵݵݵݵݵݵݵݵݵݵݵݵݵݵݵݵݵݵݵݵݵݵݵݵݵݵݵݵݵݵݵݵݵݵmm{{*{m،^ʧa'AۈGILkn]; ]PA]PA$VP0g0Sj\D`R!`6)i7L|;Ao>TD=ʢ~ῇX _ ^}wʢũ=(Zz@U%G>moᶵԼ54C*U$2=I@tLnz2U;J$TD8b_\E_T'֜bZGWZrʳfHT#h"HEJyIKOgD;ySM@X f/ !HvJ*FXߏ$j Z*@~"D@nݭ[nwmo>Y's`eى]y"׻m^ ͭmtPoDʷD 3#*ѯBQ\"+?viyC*)(*&AmL le4ɔgmM2)l '(\r NUNP[eC3-Bun[j6*ֻ.uF ZuneUlUmr˶Qkp wUVZF6UPK2ݹv㻉 `wwv)-Ѻ TV[un*aAUwUTUwUTUwUTUwUTUwUTUwUTUwUTUwUTUwUTUwUTUwUVZF6UP‚Znոl   VZuUUUlUmv[eUpPիGWV յ",X+UmUZj[rU@]uUjիtneUl(*jU]UWWUVVeh]KJI2r+h`ku[un[*`ku[rU@[[[ʪnVܶUPVuV岪6*[պ-TUnչl ]([U@kիV[ʪuUZjpU@[]UlUmwUTUUPVuU@[]UlUmwUTUUPVuU@[]UlUmwUTUUPVuU@[]UlUmwUTUUPVuU@[]UlUmwUTUUPVuU@[]UlUmwUTUUPVuU@[]UlUmwU@5UTPݪ2Lfn[Ulۗr;3`"Zkuv[TUuT]n\ \Uv:]θuWms*kpU\ \Uv:]θuWms*kpU\ \Uv:]θuWms*kpU\ \Uv:]θuWms*kpUUWeVʪؠjk.]wUVZF6UPVիVܷFʪuUZjU@fݮYݸ88uZUZjrڪ )5$Fwwn3wt "6˰U@[[ڲU+wtɰk5UlUmneqrUlUmT",X+6*]Zv\WU@U@[]UlUmnUWVڪ [VںF uU@[[ٛ,Y\www6*իV[eUlUw]UVunT@j]urڪ,Ż]vPU]UV뺪jչneUl*fV5wv QP8u뺪jպ7VᲪ6*]wUVZF6UPûfDE-*`kuvQZWU@PWj0m@Znպ6UPWuWWuv0mUuT]]l3`""‚]UVѲ[UTunj6*r]UlUù;(wwwuwqflDY\ڪ VիVvPC,Ss(wwwwP۠VL2ܱPf[5ݻ,rƖUlUkuܻWe-U5]Q]uUZjڪ )@wwnuA2)ErwwV[eh5jmUW]wUTUwUTU`uUPV뺪 uU@[ꪀ6*]UlUnUTUֿqC]k4 0Z `@Vk5L %*UT&*qp[=) %?t#UGO7kߋmϻw]bڶr",1 0@7Z݁y?o f ip9miֽs{=H*Hj8Ey*%!DfSqETT H^z{n:ίo^V:||;0I*U wPE/brL77_*x.5{&MȦ2){g> `vZ0@DuACۍ* !Ԫ&}zcaY t*JYAzkIq.Em)LL\D|ث*$d풀gcQK߲B6|6QK0A-?U~^W_m jMwN]&foN`3(@6AI'OOzI?gXMЈr'th 2իVZ}*=;tU;UV*UXUbVrUbXXU\b\r.Z…"\r.ZXk-b\a@N;t>wϟ<|yP UUcӻUUUUUUUUUUUUUVUUVUUVUjjjjjjP\RwwwwO{H=T/i*::Af@3A]7@Ya `NDR3W3/pbm[kZ߀ V5V 3UP^P >DUo icZm qmT1jM6RƠUQM"ԉ(@`0[ZS|~y{*UU^4UZ;PU}ϟ>|1U*P*UXU` UbUVUbUMmmٌx*aaaaa886.w1KMz]@*T|Q{Pȍ0߁=v*B]@) 24k.$+30C0KIf*TЉDT%LC1 1RGTy~/}0 &UE;!䂁;|nsV#:]\ z?O% ?%bwwvp*QS^gAD AU̎NdvbJs QV" Ë$5hDj"1c0EF#hj VyUQ*Uc1Db#" DDD`#?l6 al0pÇ8pÇ8pyUUUUv@;XV@}$W̙22̙2emfY)&L2dɓ&L2dɔ123311c1c&Z9R<ȧGRTiCdrk[Wv.FzDD@m~`ܠwuZ[Z/̩C%}/ áLK )z)Ni324W$$'ڕKo:Zƴ!Z6fF9dfa3Ob5@S,/T r)(^ K 8 A([٥m2[,lb1PPF5"(b  (A{~{YmmmmmmmmmmmmmmwmmmmmmmmmKNUpǛ<* Pߚ7_PPr(K*,çl>pVTvxn==缩ǼAuH>NPW~]W |7S۲)S4UPXU"S#ou<O"uTxܪpAfg= TL@-UMw>cH@㊢|9Uh*ЩE^ˋF_GPUClNQ-B؊/Y9!djtx~Nۻm=0De1ZuPH弦7`c1>>1^ǺU {qxǞgֿ[I=uR<ċ'kΤ||c osmRzkǶA&Pd+[w_y~׾rd\s; UuU.i*A-KE$PM$QHae 0( 2СCKR0DDDDDDNZ8epG G]Z8p×V2G.9tpÇ8pÇ:aÇ8pwvc%kZnm0X~ gRH<:RfЪD*4b  """"("""""""""MjU/= J$>WBLwzRa`P여l*K;Om)Y,_0v_J/@dTe;wvB@ h08PL s'L@P@p>t pPDDDv$9-P!!B=x u A#d#Àp gD,D!vqXLc(MUO2i=I?H=OP4h@ 4mS)JC&C@&L@h@4444TP=OM@h$JDhF"dCj4 &A4m Dz2j0d\{8W9K;/O$kHϧݯ.]߇uOq8_R2G޲|:z3_+W]/tOx^ 鶻_W-Ze?q:@C^aر@5@΁Wz{gǷ_^~,*ѯx~z[yOu|z/w_Ο_{=.^QJϧv巧]o϶;E+Iҡϻ]83?ON J^9|/%PpۛO-m:}G\b{N=ݵû{N3*xww͹/w ӛ}OsY 3>^V9WWuuwŝ|zx޻'3戤q5bu^Pa wq4xЭ+i6r^%&ajޭGMzW'{C{&g1ck-[Vm~yV~./>Xƶ^G5̑jw15/1 u<{쇋owZY`K|"jw{՞=/|W>yr:ˍ6+M߾}}>־~ճ3^i}0s>>w{|L}؇MZ/#YĘּy,eWػa۝={k~߉.}۟2oyg&65Ltv||Nwt^ȯ뿧/:υ~O>O=~ŗ3Ov_eO2}ؼ_qK2ݷyx\;/led;׻m.,k`6;vy]k߉->aϲQyKDׯ[USn/6 j\_h䅮en-jıgrWv]4ծ^\zf zby!ubZ&,.M_m75so!rżҕh&|ȓANiM/,iT-3~^Ke}3?:kVsnS .SkzE\M&ǔGa:M_=)|WǗ5Qe\FqJ2&KK6t 7xr%ȺK=uꖣjK$k(M/Gwӽ~[>E>*!-Z~xTWz6mY˔Jלzt>+PVRk/&U>9)4זjH XaMD"Ue]ڴQZQUQ^^Ÿ, NBʯN|sk$"ˋ\xg kXiNYZeZ+IZz/f"M:ei}5䏖7xWvNySVJnBM,~^Ǣ q\kUyr)#W/4|o/ڻyݵ|纚Uu=uJvm]|{SVpUծy-RRW&smsƜC e~12VXWZ|e?fPѕNFZօszjm`@lh65L lhmlj6m 4ZmlhVc@6 Xm` ` 4`Հ66 66 Vc@`m6m`Հ6`5` 4` bcmh6 6 0`&601 Xm@l L5` lkՀ j00l`Հ`m@j5`5`5S @X l6 Aa`Հ j S @X0l@m` 5```5`5j`Հ05@j0l5@j0l`Հ05@j0l-c5@j 5Hj50lhV[@  @l0ljCP!`Հj R6 X l6 AjCQ`Հk PZh6 X ``6 X c5@A5`60lT Vmj Sh0ڀ6jm`5h0ڀ j P`6 X 0m`Հ``5h j Rd Vmm`Հcj R`Հc!6 A@ `5h jmP@ Pj6ll` 2j6@jmlT@5`6`5h lh jmh0lTE_&[kU}TAdና)8d҆PAUY%.YT:إ9BRk!Ryc^ȿ0?˗m֞~x/toߏz7n^mzut~-~*v׻W@Ah @( 00 `ZA @ s\ @Akk p  ͸\r p0"\ۀh+`-h-p0M.W6nnQr+h @`77(r4 0(\ @` 5\@` h @0ˀh @04@0Pb` 0 ch s` sPѰsGr79.\ہ7.0[` ˀ\ @6rPE@` ˀX 097Mp +` (1.sp0644sn0,1`0( @b̀0.lb(( Q( @E˛071@` l9( Qsp"`  P76`nQ@`  (( ss`0( @E˛0Plb.\ 9E( ss`0Ps`0P`0#0PnlQ@` l(9sp<5mw~nߗ+5Ǝfڱ+DmKjkZI敬̨ХD&Juu,TѦҶYaUUPk] 3([]M5#Xm fT[UICuWw\U:ʠ53TUU36P`c%Z]ZfYUTUUUPwwwwwwUUUUUUUUPU9kkխWUZZڶKeTG:];Z6h̴@ i1 *XZUVڮmvT@2UM L֝1uMB 5&Fi1 $I$I$I$I$I$I$T(UP@v5-JbY-R#q @ ﳮ|j~Eۻx6jld6E%YXT6٨+uUn#y[Fܓuݓ%nNur;M`*4LO&֫vUJ}8T2 y#r#lI{V\?K3fH٩M"b",lVjY<ưMɥ"#Ruz}W껷ND EDLYbHX1 Fj-iEfZjgMhJii33,̜iZՊ-j[+Qkh&ĜNn]-RM:k19uUlwwNNB&, DŃRT֌a3V`kMI5wjkZi4 A( @P( @P( (P( UPU@(P ``lm6v\-a4NHf5YFI2LYƮdY:ifzz}tfi HYZԢ֦ZkXN\b T 00aa kMkGG}%KWI_U BNꥒSK@mf 00ZVkv0WqUamخWml @i]\\]mhIvp#[[Z  Ff,ř@h A4 @h A4 @h ԓ#R@h A4 ƀ @h A4 Zvh A4 @h Affff4 @h A4  Ƴ/4 fffc@ @  ۶e@h.@ @ @h A4  A4 @h Awj @h A4djV@ @ %חwu˥RM``ww.{||vf*#RʤȲ,aYX` @Zvmrww{qM-Avһn`@ @J涥n=Wm5t[ @ 55+Vҵm+Vҵm+Vҵm+Vҵm+Vҵm+Vҵm+Vҵm+Vҵm+Vҵl4[Jմ[Jմ[Jշ\A4 @h Awj @h A4 Aac@h A4 @h A4c@h Affff4 ԭ[Jմ8涒I631w25#h A4 @h A4 @h Wa @h A4#RRn@ @ $KIhX` 0HV~ڕ؉~*']Gݶ6 {kZֵkZxw©di%YX60[j0WqUmmJ- @Wm+kږmlbi]\HĖ֭A 3fbYA4 @h A4 @h A4 LI25 A4 @h A4 @h Wa @h A4  fffc@h A4 @h Ak2@h Affff4 /̼k24wwa ƂԎdk A4 @h A4 @h A4]@h A4  kl @ @5.z)& 0t0P/~][$j`0 mY  P an P 0`֯m=={=(Us{)9cn|oM2+PNlB\z.BMT޹.K+'Nttmoޞkm/nkm/nkm/nkm/nk>tѶtmu``mu5]nһmJ|j=w^j큁``z``Xmv^mv^mv^mvj6ٻy%|]MWF7o6/kɻ60=[MVMɶjnM0, VUwrm``zl մdܛ``X&m5Y7w&iɻ60=[MVMɶjnM0, VUwrm``zl մdܛ``X&m5Y7w&iɻ60=[MVMɶjnM0, VUwrm``zl մdܛ``X&m5Y7w&iɻ60=[MVMɶj6mmݓKj6:, mݓ kgwdj6wt mwNj6wt mwNj6wt mwNtI:j6wt mwNj6wt mwNj6wt mwNj6wt mwNj6wt mwNj6wt mwNj6mmwNj6wt mwNj6wt mwNj6wt mwNj6wt mwNj6wt mwNj6wt {\ S޿zgwd6wvN0.Kkgwd6wvN0.KkmmwvNkgwd06^z0.KմeOzסr\=zW%0, {=``\&SUѶrmu:IӤ5{ǭmk{m5Hftmvoj6:06wvN0, mr\tmvnK06wvN.Kj6:.Kkfrmu:Km|%ɵtmvnK06nmr_SUѶ͹.Kj6ٻy%|]MWF;'XSUѶtmvnK06nmr_SUѶ͹`[w{|Oz[ޖw[lݼے\cmr^<˓մlmvnK06nmr_SUѶ͹.Kj6ٻy%|]MWF7o6/kfܗ%`mu5S޿z[-w{Oz[-w{` ۚ` ۚ` ۚ` ۚ` ۚ` ۚ` ۚ` ۚsєzpN sє7A%sxŽph!e\ݔ*zRG{B')4KbߨBeo T1~G{B')*!^g6EBm[f kT/jL(XCw,gL ;rhs9eKaj A|!E_rhs9!47{(T QBܚ&\| nb J-LV={){_#˖>s!Cxb84O2ޮ^iɕ={){_#˖>sѐ! A\1ohx@oW/we4dʞ^̟9d Į~N ~Ew;=(1>l{uRڊ5Qx4Yz?"OʟE_W_P!~WѯOg6* J}T-0{H zs9^ !Vh^ȲSg2my.@AQ^TCF?/B4/CY)s҃SQ d2ڊ5Qx4Yz?"OʟE_W_P!~WѯOg6* J}T-0{HH?j+ʈhק3}EBf|%>vzPc*}}]~=B$ AQ^PCF?/B4/C"_ʟE_W_P!~WѯOg6* J}T-0{H zs9^ !Vh^ȲSg2my.@AQ^TCF?/B4/C"_ʟE_W_P)EyQ soBнdJ eO/]D?j+hק3}EBf|]k3҃SQ d2ڊ5Qx4Yz>ZLT-0{H zs9^ !Vh^ϾEֿS;=(1>l{uC (!^m@!|~x{Pѕ>l{uєEyQ soBн|~vzPc*}}]~=B$ D4k;h! B>}.A[eu` 2EyA soBн|~vzPc*}}]~=B$ AQ^PCF?/Bfa7~}ZVfV˕_O¢iezSr ~L>.U|>k KKŕ!O-2U\* |u2ֱ鲫 d,ec8eUIewE,nneUu]mjN+.es d,ecsps*kRw]wv+PL&ffd+U]W[Z{Y\Bf330&YXBf330&YXʪԝW{]UWU֤2"W8)yBָy^exP5>^y2>6Y|?<+kL_< Z+{#e)yBָy^exP5>^y2>6Y|772֕CIȈTOkpE6; {wR["\'8enq.re[+uuݸb`)ުN'En7 K>eYoiOkpEn7 K>eYoiOkpEn7 K>eYoiOkpEn7 K>eYoiq!nטTBOs*;{m=M> {+JhedDFTɗ-nY>Op#i\˖Vp;b`)ުN'En7 K>eYoiOkpEn7 K>eYoiOkpEn\KT(!.^f1KO2{[+uɼTB\*7|c|KO>owl2fyD$w2ø)och]Dq0Xwb&VDDmK\rׅpʜpʗ92>O+ss.Z[O%ئkz;̞q|[*!.bf1n=|[*!.bf1n=|[*!.bf1n=|[*!.bf1nOv¢|P;Vaco."mvInTBO{ez!N!xPD쓉aQ >i(Y^SD^,o(6$nTBODJWB9׋ /M8&8NuBkN&뉅D$Dez!N!xPD쓉aQ >i(Y^SD^,o(6$nTBODJWB9׋ /M8&8NuBkN&뉅D$Dez!N!xPD쓉aQ >i(Y^SD^,o(6$nTBODJWB9׋ /M8&8NuBkN&뉅D$Dez!N!xPD쓉aQ >i(Y^SD^,o(6$nTBODJWB9׋ /M8&8NuBkN&뉅D$Dez!N!xPD쓉aQ >i(Y^SD^,o(6$nTBODJWB9׋ /M8&8NuBkN&뉅D$Dez!N!xPDۧn=;rctҼzIJ+t>2|*7!G'ed=^5Qtw(iCzzǛt{(TsrKfT*,!2U%~m{y<yZK֭L׽'3%͞{޽媫efRO{C՛/׽Me=FM=H׳=aKZy{yN ALhP@8n KB&AF!Z'@_T4⎧d*ntiD%{+UfJU̪Sb;ѕU]7EEǟ*ѽ UqǏPU]O5.ʒ4((ݹ Z]vUMMF6mw T8 6S ](QC nUVebctxb2Sk:dծVo~z|=Is<η9feOz=[z{Meڧ{=1U׏{ܼ=[ҔDB[UM5Nݺfi=Mc5k&K ַPAK6[-b6 lD@DDDDDDDDDDDDDEDDDDDDDDE[mmkTfkdl"؈"""" """"" (""DDDDDDDDD@DDDDD6ѵkjmkb#`DDDDDDDDDDDDDDDQDDDDDDDDDQ[m[h|)dFTNyeR]Tx4T1ǕFJXWT7NxRFJm UЪl/zo]wcc<<\S~\kZ,jK2Lddŭۘbŭ٭J*3a0PfjҭVm %%"QlM@6Xe6,X fYDQJl)EQJl)EQJl)EQJl)EQJl)EYl)6lllfl$D؀b"Zl)l5 DKHT Ͳl6lllfl)EQJl)EQJl)EQJl)EQJl)6X DM,lF͍hٱ 666S`fl4lM)ѳcce66lllF͍hٱ 666S`fl4lM)ѳcce66lllF͍hٱٱٱ 666S`fl4lM)ѳcce66lll"ZDM6S`Hbl)6lllfl)6Xe6,X DM,YM"&,eS`Hŋ)ٰٰDbŔR"lbl)6Xe6,X DM,YM"&,eS`Hŋ)DbŔR"lbl)6Xe6"&,"ZDM,YM"&,eS`Hŋ)DbŔR"lbl)6Xe6,X DM,YM"&,eS`Hŋ)b ,Dٱe666,fŔR"lز DKHi6lXMȉbl ,e6Xزcc`lfŔR"lز l)-F)hѥ6"l "&)Dٱ DM)Dbl)6X DM,fŋ)Dcbl&dDcbl)6X DM,le)Dbl)6lllfl)6X DM,leS`HƋ)Xe6 ,eS`HƋ)Dbl)6X DM,le)Dbl)6X S`bl)EQJl)EQJl)EQJl)EQJl)EQJl)EQJl)EQJl)EQJl4ի^ jZ+NZNF&e%!f@`:fT||/ZNjԵ_czul$U^+&MV"IbysvS݅)VUFEF%$Ħ bXU`UbS"ī", LJeLU0X*ȱ*ʬHeV$2 2 2 e0&EXVRFRģ)bQdY1I&K`JYJ2,R2,DbX(YJ0V*,R,aY*2%KF%d &R&L+KV0"e,BaXDX`2e,BeV(V0$XbQ3,LLU&*v`8 0;m@U*.⭞[M9[onmMVeKnM}wČ[Mb6ƭbY-IdьTIJY1!fUzs8jiJ E@ElDQEDQEDQEDQEDQEDQEDQ( ("-DQEDQEDQE("("("("FDQE-( (( (  ( ( +mu|~]W~}a٤m:ETND'q[VFjeL3jLY&lDY2&ӛƉWW~c-kmնzڤTJB6C]t:~Z,)*Zlʙl-LmƉ,HZLT[ߊ?%ݯcʫo.^.z}m+TjH65`  ̅Hzu벇T6vb\髖-nr>>y7"0dE)!0 jRiy@A z I%L'<P=7 r㺉wq9p\/[Hf4e$ٲJfe-BYTlS1d%Yd5]c30Fʇ"=V]us Ne&MIJ%aO}]xy)DaKI2CFRyQ }$ߞxGdیjq7vz|$HdU&TQ=(5ty]tg ܫ\sv5a11%D}M_rTwgyE)+BQv^jJUk3[&c1Um2"R6UZ^|7~e%!?> L33 d33WA |o3m 3F4mZEZ"6XՍV=sSnwz^?}w盟o~1Qawq˩EڎKĢmj'ߩVeO&HT$6#H(")I|6IBveCzmˣ{{E=y㗯;^x $WUyzo/;\ز'|yOz=sjҺ^M_Tjr|:7$E4AHPEKE˥mZ⻌ ^Sm[.a}Ǿ=5[ݡ=㽗]]yjmycV^F:{Bq=vs_suӮ^u^}kͲDqb ڠuTUUbġƭcV0o^ZSH|mE[O Iʌn[.uwuY2\t7/GOn&LStK6כuUrt_btݧIykDznrn5#)c]5b^t7bjH5Tw浜7X&HsQx_"iU*MEnݫEc܍?.B 4w&t!m /)YuqZIƇQҍk̘ګ3e5:ܻvvUy+ݫ{zf?BҶjq۵i||=L~XXOlYT_^./ҷQf}>r3Id$I}?C*[kl!1XݒSC'/k_mc@Kj+Zժ-kX!?%Ba R'ݚ-?3DDDDb" DDDDDDDDDDDDDDDDO5w.w|[/Y:IzoWzzrt޶zo[mmm%:o[m-^ze-WzoYle[/Ylem[/Yle[/Yle[/Yle[/Yle[/Yle[/Yle[/Xwrh$Ix)$I$I\滒Yw$N 7vUk*۱_ġp~—E |)\_ġMvU:y}XrƸx׿N=~~2c*1cc1c1c1cj""#b""5?ԇ{ȒQ^mv>1OwxsDRb?5%W[9pV>uW/xffb(jշ[Uoڪֺo [V}6։%}dKJ˧Yl|A*0_a}$'\̤kC%UdBQ85Ua}[w=K=H}+n1!UtxPͯѽfYb1c1A1Q1Qc1c((QEQ`" """"(#1#1"1c1c1c1fYPCd |tUmBUR_! *BqM% pmI1*eCē/.ɽi:RSςU=xfP;ݻR:⪻IWUZ]XPc\*D~uKWCϥ>WqTQ<-9kreelv~:qɷ>.n%$e >{9|TfRoq{i pW¥pRtÑJjTrU0E4t1_PEF蓡WM|957/j?)/+⟋},?6JWrt_=8ߞZZ55aaaaaaaaaa[l 0˖al 0 0 0 0 0 07kwnw}ۆ\OrsNcݿK~v*BZVZjQjիFZe 0뻮0D`DD@oO;mϿ-o4ri 6{߻#E+[u7 p*φWݙ#_[k~ko PPh5@@>Wx$j(31VMᙞ=^-[߳e4U*CQʧW6WMˇY)C˺15o$$7 ͐=ԜEw]8) Sppgl*U6^5}HV@wmnٻ=mݶxx 5Snn_&|z$;;iIo࢕ flk/2ۮ*a"2NN1\xvZjި]J+1Tm77 C!*zw_#4xˎYQJkfRrNW%'Ɓ*o㞚(j*Bz^BRMC2ׯv|[~l{ޫ^eZ*h 0²ц$@ $$RDH #CNE$J@H H H H H H H#nch1Tc-1c1c1cۭkWnbI7CuW9mG $ۨQ##;}݊vC)W]gF#Pd˅U#<8(xress$/]m[nٻ|}l0p 0 'w" Fc"(1ьc1cc˯}vwǾUUUU@ZֻmWZeKT:ZIUY萜zNg+޾?ݷ$?̀fLP BI,RIa- a64IXb`[ cƍѣ[4kcFlhѭ5F4hƍѣmh*,TEc*"ƬcQkF1X,ikF1X*b,U,Ec[*"ƶ4hƍѣ[4kcFlhѭ5F1cbb,jTX*"ƬEQb,jTX*"ƬEQb,jTX*"ƬEQb,jTX*"ƬEQb,jTX*"ŴEmQb,jTX*"ƬEQb,jTX*"11X*,"1bXX*,Ecbckō1c6 X6,l6lX,[@[@mcرX1c`cbckō1c6 X6,l6lX,mcرX1c`cbbō11X6,l6lX,mcرX1c`cbckō1c6 X6,l6lX,mcرX1c`[ `Z1c* X*,T6TX,mccbX1Qcb,jFŊ6,T6&ŊlX1hTX,kJkL"ŒcZ,KlXcbEF1b,mc"1cbb,mcX,mcX,mcرPXcرPX1`6lX,Ec ckłX1Qb,Ec"X1`6lX,Ec c hh,[EAckŃAckŃAckłX1`6lX,Ec ckłX1`*`EcZ*4hƍѣ[4kcFlhѭ5F4h֊5FhѣZ*4h֊5FhѣZ1Q_}v$pAD"0@:;5m^yov{3ē*_E+| NI,ІZYefŷ]6?//U TDDFDDj"""""""""""""fffP*-*q(gUQST8Ьڻ|J6ㄕ_üKw#%+qUN*!ņ‡]P%OcY.jK[ iMho#4In33Zk]_ǒt*8P7rZ J&"eC o|.{3ٱQJ⿛O9fj@}?M~7ӯkn)/N_[ueEr|T<{ܹww:ǕYleMiht]wr 0,A"Zwj `Xq0,A"+WvYb `X 0,Ab `X 0,Ab `X 0,Ab `7d.K^{;0, 0]ݘ]ݘ``X``X``X``X``X``Xت_j*Dߴٙd&I 菼:FVިGI!1y}yk}x ꭼWZU/% /eY32`L1VeT $U3 f(fI,bV@H %m~6 4QӑImjؤ)$̸ڒH @YI"HmjĪPT[[m @ @ @ @I$RI @I$RI JH]ڦi6k$Ew]wvkZ 0Zի 0 0 0 0 0 0 iiKM"gE+UEaUt|*+J N ]kݏ![dp͟ Fg>t ߢTQ