* @license GNU General Public License, version 2 (GPL-2.0) * * For full copyright and license information, please see * the docs/CREDITS.txt file. * */ /** */ if (!defined('IN_PHPBB')) { exit; } /* Ability to simply add own rules by doing three things: 1) Add an appropriate constant 2) Add a new check array to the global_privmsgs_rules variable and the condition array (if one is required) 3) Implement the rule logic in the check_rule() function 4) Add a new language variable to ucp.php The user is then able to select the new rule. It will be checked against and handled as specified. To add new actions (yes, checks can be added here too) to the rule management, the core code has to be modified. */ define('RULE_IS_LIKE', 1); // Is Like define('RULE_IS_NOT_LIKE', 2); // Is Not Like define('RULE_IS', 3); // Is define('RULE_IS_NOT', 4); // Is Not define('RULE_BEGINS_WITH', 5); // Begins with define('RULE_ENDS_WITH', 6); // Ends with define('RULE_IS_FRIEND', 7); // Is Friend define('RULE_IS_FOE', 8); // Is Foe define('RULE_IS_USER', 9); // Is User define('RULE_IS_GROUP', 10); // Is In Usergroup define('RULE_ANSWERED', 11); // Answered define('RULE_FORWARDED', 12); // Forwarded define('RULE_TO_GROUP', 14); // Usergroup define('RULE_TO_ME', 15); // Me define('ACTION_PLACE_INTO_FOLDER', 1); define('ACTION_MARK_AS_READ', 2); define('ACTION_MARK_AS_IMPORTANT', 3); define('ACTION_DELETE_MESSAGE', 4); define('CHECK_SUBJECT', 1); define('CHECK_SENDER', 2); define('CHECK_MESSAGE', 3); define('CHECK_STATUS', 4); define('CHECK_TO', 5); /** * Global private message rules * These rules define what to do if a rule is hit */ $global_privmsgs_rules = array( CHECK_SUBJECT => array( RULE_IS_LIKE => array('check0' => 'message_subject'), RULE_IS_NOT_LIKE => array('check0' => 'message_subject'), RULE_IS => array('check0' => 'message_subject'), RULE_IS_NOT => array('check0' => 'message_subject'), RULE_BEGINS_WITH => array('check0' => 'message_subject'), RULE_ENDS_WITH => array('check0' => 'message_subject'), ), CHECK_SENDER => array( RULE_IS_LIKE => array('check0' => 'username'), RULE_IS_NOT_LIKE => array('check0' => 'username'), RULE_IS => array('check0' => 'username'), RULE_IS_NOT => array('check0' => 'username'), RULE_BEGINS_WITH => array('check0' => 'username'), RULE_ENDS_WITH => array('check0' => 'username'), RULE_IS_FRIEND => array('check0' => 'friend'), RULE_IS_FOE => array('check0' => 'foe'), RULE_IS_USER => array('check0' => 'author_id'), RULE_IS_GROUP => array('check0' => 'author_in_group'), ), CHECK_MESSAGE => array( RULE_IS_LIKE => array('check0' => 'message_text'), RULE_IS_NOT_LIKE => array('check0' => 'message_text'), RULE_IS => array('check0' => 'message_text'), RULE_IS_NOT => array('check0' => 'message_text'), ), CHECK_STATUS => array( RULE_ANSWERED => array('check0' => 'pm_replied'), RULE_FORWARDED => array('check0' => 'pm_forwarded'), ), CHECK_TO => array( RULE_TO_GROUP => array('check0' => 'to', 'check1' => 'bcc', 'check2' => 'user_in_group'), RULE_TO_ME => array('check0' => 'to', 'check1' => 'bcc'), ) ); /** * This is for defining which condition fields to show for which Rule */ $global_rule_conditions = array( RULE_IS_LIKE => 'text', RULE_IS_NOT_LIKE => 'text', RULE_IS => 'text', RULE_IS_NOT => 'text', RULE_BEGINS_WITH => 'text', RULE_ENDS_WITH => 'text', RULE_IS_USER => 'user', RULE_IS_GROUP => 'group' ); /** * Get all folder */ function get_folder($user_id, $folder_id = false) { global $db, $user, $template; global $phpbb_root_path, $phpEx; $folder = array(); // Get folder information $sql = 'SELECT folder_id, COUNT(msg_id) as num_messages, SUM(pm_unread) as num_unread FROM ' . PRIVMSGS_TO_TABLE . " WHERE user_id = $user_id AND folder_id <> " . PRIVMSGS_NO_BOX . ' GROUP BY folder_id'; $result = $db->sql_query($sql); $num_messages = $num_unread = array(); while ($row = $db->sql_fetchrow($result)) { $num_messages[(int) $row['folder_id']] = $row['num_messages']; $num_unread[(int) $row['folder_id']] = $row['num_unread']; } $db->sql_freeresult($result); // Make sure the default boxes are defined $available_folder = array(PRIVMSGS_INBOX, PRIVMSGS_OUTBOX, PRIVMSGS_SENTBOX); foreach ($available_folder as $default_folder) { if (!isset($num_messages[$default_folder])) { $num_messages[$default_folder] = 0; } if (!isset($num_unread[$default_folder])) { $num_unread[$default_folder] = 0; } } // Adjust unread status for outbox $num_unread[PRIVMSGS_OUTBOX] = $num_messages[PRIVMSGS_OUTBOX]; $folder[PRIVMSGS_INBOX] = array( 'folder_name' => $user->lang['PM_INBOX'], 'num_messages' => $num_messages[PRIVMSGS_INBOX], 'unread_messages' => $num_unread[PRIVMSGS_INBOX] ); // Custom Folder $sql = 'SELECT folder_id, folder_name, pm_count FROM ' . PRIVMSGS_FOLDER_TABLE . " WHERE user_id = $user_id"; $result = $db->sql_query($sql); while ($row = $db->sql_fetchrow($result)) { $folder[$row['folder_id']] = array( 'folder_name' => $row['folder_name'], 'num_messages' => $row['pm_count'], 'unread_messages' => ((isset($num_unread[$row['folder_id']])) ? $num_unread[$row['folder_id']] : 0) ); } $db->sql_freeresult($result); $folder[PRIVMSGS_OUTBOX] = array( 'folder_name' => $user->lang['PM_OUTBOX'], 'num_messages' => $num_messages[PRIVMSGS_OUTBOX], 'unread_messages' => $num_unread[PRIVMSGS_OUTBOX] ); $folder[PRIVMSGS_SENTBOX] = array( 'folder_name' => $user->lang['PM_SENTBOX'], 'num_messages' => $num_messages[PRIVMSGS_SENTBOX], 'unread_messages' => $num_unread[PRIVMSGS_SENTBOX] ); // Define Folder Array for template designers (and for making custom folders usable by the template too) foreach ($folder as $f_id => $folder_ary) { $folder_id_name = ($f_id == PRIVMSGS_INBOX) ? 'inbox' : (($f_id == PRIVMSGS_OUTBOX) ? 'outbox' : 'sentbox'); $template->assign_block_vars('folder', array( 'FOLDER_ID' => $f_id, 'FOLDER_NAME' => $folder_ary['folder_name'], 'NUM_MESSAGES' => $folder_ary['num_messages'], 'UNREAD_MESSAGES' => $folder_ary['unread_messages'], 'U_FOLDER' => ($f_id > 0) ? append_sid("{$phpbb_root_path}ucp.$phpEx", 'i=pm&folder=' . $f_id) : append_sid("{$phpbb_root_path}ucp.$phpEx", 'i=pm&folder=' . $folder_id_name), 'S_CUR_FOLDER' => ($f_id === $folder_id) ? true : false, 'S_UNREAD_MESSAGES' => ($folder_ary['unread_messages']) ? true : false, 'S_CUSTOM_FOLDER' => ($f_id > 0) ? true : false) ); } if ($folder_id !== false && $folder_id !== PRIVMSGS_HOLD_BOX && !isset($folder[$folder_id])) { trigger_error('UNKNOWN_FOLDER'); } return $folder; } /** * Delete Messages From Sentbox * we are doing this here because this saves us a bunch of checks and queries */ function clean_sentbox($num_sentbox_messages) { global $db, $user; // Check Message Limit if ($user->data['message_limit'] && $num_sentbox_messages > $user->data['message_limit']) { // Delete old messages $sql = 'SELECT t.msg_id FROM ' . PRIVMSGS_TO_TABLE . ' t, ' . PRIVMSGS_TABLE . ' p WHERE t.msg_id = p.msg_id AND t.user_id = ' . $user->data['user_id'] . ' AND t.folder_id = ' . PRIVMSGS_SENTBOX . ' ORDER BY p.message_time ASC'; $result = $db->sql_query_limit($sql, ($num_sentbox_messages - $user->data['message_limit'])); $delete_ids = array(); while ($row = $db->sql_fetchrow($result)) { $delete_ids[] = $row['msg_id']; } $db->sql_freeresult($result); delete_pm($user->data['user_id'], $delete_ids, PRIVMSGS_SENTBOX); } } /** * Check Rule against Message Information */ function check_rule(&$rules, &$rule_row, &$message_row, $user_id) { if (!isset($rules[$rule_row['rule_check']][$rule_row['rule_connection']])) { return false; } $check_ary = $rules[$rule_row['rule_check']][$rule_row['rule_connection']]; $result = false; $check0 = $message_row[$check_ary['check0']]; switch ($rule_row['rule_connection']) { case RULE_IS_LIKE: $result = preg_match("/" . preg_quote($rule_row['rule_string'], '/') . '/i', $check0); break; case RULE_IS_NOT_LIKE: $result = !preg_match("/" . preg_quote($rule_row['rule_string'], '/') . '/i', $check0); break; case RULE_IS: $result = ($check0 == $rule_row['rule_string']); break; case RULE_IS_NOT: $result = ($check0 != $rule_row['rule_string']); break; case RULE_BEGINS_WITH: $result = preg_match("/^" . preg_quote($rule_row['rule_string'], '/') . '/i', $check0); break; case RULE_ENDS_WITH: $result = preg_match("/" . preg_quote($rule_row['rule_string'], '/') . '$/i', $check0); break; case RULE_IS_FRIEND: case RULE_IS_FOE: case RULE_ANSWERED: case RULE_FORWARDED: $result = ($check0 == 1); break; case RULE_IS_USER: $result = ($check0 == $rule_row['rule_user_id']); break; case RULE_IS_GROUP: $result = in_array($rule_row['rule_group_id'], $check0); break; case RULE_TO_GROUP: $result = (in_array('g_' . $message_row[$check_ary['check2']], $check0) || in_array('g_' . $message_row[$check_ary['check2']], $message_row[$check_ary['check1']])); break; case RULE_TO_ME: $result = (in_array('u_' . $user_id, $check0) || in_array('u_' . $user_id, $message_row[$check_ary['check1']])); break; } if (!$result) { return false; } switch ($rule_row['rule_action']) { case ACTION_PLACE_INTO_FOLDER: return array('action' => $rule_row['rule_action'], 'folder_id' => $rule_row['rule_folder_id']); break; case ACTION_MARK_AS_READ: case ACTION_MARK_AS_IMPORTANT: return array('action' => $rule_row['rule_action'], 'pm_unread' => $message_row['pm_unread'], 'pm_marked' => $message_row['pm_marked']); break; case ACTION_DELETE_MESSAGE: global $db; // Check for admins/mods - users are not allowed to remove those messages... // We do the check here to make sure the data we use is consistent $sql = 'SELECT user_id, user_type, user_permissions FROM ' . USERS_TABLE . ' WHERE user_id = ' . (int) $message_row['author_id']; $result = $db->sql_query($sql); $userdata = $db->sql_fetchrow($result); $db->sql_freeresult($result); $auth2 = new \phpbb\auth\auth(); $auth2->acl($userdata); if (!$auth2->acl_get('a_') && !$auth2->acl_get('m_') && !$auth2->acl_getf_global('m_')) { return array('action' => $rule_row['rule_action'], 'pm_unread' => $message_row['pm_unread'], 'pm_marked' => $message_row['pm_marked']); } return false; break; default: return false; } return false; } /** * Update user PM count */ function update_pm_counts() { global $user, $db; // Update unread count $sql = 'SELECT COUNT(msg_id) as num_messages FROM ' . PRIVMSGS_TO_TABLE . ' WHERE pm_unread = 1 AND folder_id <> ' . PRIVMSGS_OUTBOX . ' AND user_id = ' . $user->data['user_id']; $result = $db->sql_query($sql); $user->data['user_unread_privmsg'] = (int) $db->sql_fetchfield('num_messages'); $db->sql_freeresult($result); // Update new pm count $sql = 'SELECT COUNT(msg_id) as num_messages FROM ' . PRIVMSGS_TO_TABLE . ' WHERE pm_new = 1 AND folder_id IN (' . PRIVMSGS_NO_BOX . ', ' . PRIVMSGS_HOLD_BOX . ') AND user_id = ' . $user->data['user_id']; $result = $db->sql_query($sql); $user->data['user_new_privmsg'] = (int) $db->sql_fetchfield('num_messages'); $db->sql_freeresult($result); $db->sql_query('UPDATE ' . USERS_TABLE . ' SET ' . $db->sql_build_array('UPDATE', array( 'user_unread_privmsg' => (int) $user->data['user_unread_privmsg'], 'user_new_privmsg' => (int) $user->data['user_new_privmsg'], )) . ' WHERE user_id = ' . $user->data['user_id']); // Ok, here we need to repair something, other boxes than privmsgs_no_box and privmsgs_hold_box should not carry the pm_new flag. if (!$user->data['user_new_privmsg']) { $sql = 'UPDATE ' . PRIVMSGS_TO_TABLE . ' SET pm_new = 0 WHERE pm_new = 1 AND folder_id NOT IN (' . PRIVMSGS_NO_BOX . ', ' . PRIVMSGS_HOLD_BOX . ') AND user_id = ' . $user->data['user_id']; $db->sql_query($sql); } } /** * Place new messages into appropriate folder */ function place_pm_into_folder(&$global_privmsgs_rules, $release = false) { global $db, $user, $config; if (!$user->data['user_new_privmsg']) { return array('not_moved' => 0, 'removed' => 0); } $user_message_rules = (int) $user->data['user_message_rules']; $user_id = (int) $user->data['user_id']; $action_ary = $move_into_folder = array(); $num_removed = 0; // Newly processing on-hold messages if ($release) { $sql = 'UPDATE ' . PRIVMSGS_TO_TABLE . ' SET folder_id = ' . PRIVMSGS_NO_BOX . ' WHERE folder_id = ' . PRIVMSGS_HOLD_BOX . " AND user_id = $user_id"; $db->sql_query($sql); } // Get those messages not yet placed into any box $retrieve_sql = 'SELECT t.*, p.*, u.username, u.user_id, u.group_id FROM ' . PRIVMSGS_TO_TABLE . ' t, ' . PRIVMSGS_TABLE . ' p, ' . USERS_TABLE . " u WHERE t.user_id = $user_id AND p.author_id = u.user_id AND t.folder_id = " . PRIVMSGS_NO_BOX . ' AND t.msg_id = p.msg_id'; // Just place into the appropriate arrays if no rules need to be checked if (!$user_message_rules) { $result = $db->sql_query($retrieve_sql); while ($row = $db->sql_fetchrow($result)) { $action_ary[$row['msg_id']][] = array('action' => false); } $db->sql_freeresult($result); } else { $user_rules = $zebra = $check_rows = array(); $user_ids = $memberships = array(); // First of all, grab all rules and retrieve friends/foes $sql = 'SELECT * FROM ' . PRIVMSGS_RULES_TABLE . " WHERE user_id = $user_id"; $result = $db->sql_query($sql); $user_rules = $db->sql_fetchrowset($result); $db->sql_freeresult($result); if (count($user_rules)) { $sql = 'SELECT zebra_id, friend, foe FROM ' . ZEBRA_TABLE . " WHERE user_id = $user_id"; $result = $db->sql_query($sql); while ($row = $db->sql_fetchrow($result)) { $zebra[$row['zebra_id']] = $row; } $db->sql_freeresult($result); } // Now build a bare-bone check_row array $result = $db->sql_query($retrieve_sql); while ($row = $db->sql_fetchrow($result)) { $check_rows[] = array_merge($row, array( 'to' => explode(':', $row['to_address']), 'bcc' => explode(':', $row['bcc_address']), 'friend' => (isset($zebra[$row['author_id']])) ? $zebra[$row['author_id']]['friend'] : 0, 'foe' => (isset($zebra[$row['author_id']])) ? $zebra[$row['author_id']]['foe'] : 0, 'user_in_group' => $user->data['group_id'], 'author_in_group' => array()) ); $user_ids[] = $row['user_id']; } $db->sql_freeresult($result); // Retrieve user memberships if (count($user_ids)) { $sql = 'SELECT * FROM ' . USER_GROUP_TABLE . ' WHERE ' . $db->sql_in_set('user_id', $user_ids) . ' AND user_pending = 0'; $result = $db->sql_query($sql); while ($row = $db->sql_fetchrow($result)) { $memberships[$row['user_id']][] = $row['group_id']; } $db->sql_freeresult($result); } // Now place into the appropriate folder foreach ($check_rows as $row) { // Add membership if set if (isset($memberships[$row['author_id']])) { $row['author_in_group'] = $memberships[$row['user_id']]; } // Check Rule - this should be very quick since we have all information we need $is_match = false; foreach ($user_rules as $rule_row) { if (($action = check_rule($global_privmsgs_rules, $rule_row, $row, $user_id)) !== false) { $is_match = true; $action_ary[$row['msg_id']][] = $action; } } if (!$is_match) { $action_ary[$row['msg_id']][] = array('action' => false); } } unset($user_rules, $zebra, $check_rows, $user_ids, $memberships); } // We place actions into arrays, to save queries. $unread_ids = $delete_ids = $important_ids = array(); foreach ($action_ary as $msg_id => $msg_ary) { // It is allowed to execute actions more than once, except placing messages into folder $folder_action = $message_removed = false; foreach ($msg_ary as $pos => $rule_ary) { if ($folder_action && $rule_ary['action'] == ACTION_PLACE_INTO_FOLDER) { continue; } switch ($rule_ary['action']) { case ACTION_PLACE_INTO_FOLDER: // Folder actions have precedence, so we will remove any other ones $folder_action = true; $move_into_folder[(int) $rule_ary['folder_id']][] = $msg_id; break; case ACTION_MARK_AS_READ: if ($rule_ary['pm_unread']) { $unread_ids[] = $msg_id; } break; case ACTION_DELETE_MESSAGE: $delete_ids[] = $msg_id; $message_removed = true; break; case ACTION_MARK_AS_IMPORTANT: if (!$rule_ary['pm_marked']) { $important_ids[] = $msg_id; } break; } } // We place this here because it could happen that the messages are doubled if a rule marks a message and then moves it into a specific // folder. Here we simply move the message into the INBOX if it gets not removed and also not put into a custom folder. if (!$folder_action && !$message_removed) { $move_into_folder[PRIVMSGS_INBOX][] = $msg_id; } } // Do not change the order of processing // The number of queries needed to be executed here highly depends on the defined rules and are // only gone through if new messages arrive. // Delete messages if (count($delete_ids)) { $num_removed += count($delete_ids); delete_pm($user_id, $delete_ids, PRIVMSGS_NO_BOX); } // Set messages to Unread if (count($unread_ids)) { $sql = 'UPDATE ' . PRIVMSGS_TO_TABLE . ' SET pm_unread = 0 WHERE ' . $db->sql_in_set('msg_id', $unread_ids) . " AND user_id = $user_id AND folder_id = " . PRIVMSGS_NO_BOX; $db->sql_query($sql); } // mark messages as important if (count($important_ids)) { $sql = 'UPDATE ' . PRIVMSGS_TO_TABLE . ' SET pm_marked = 1 - pm_marked WHERE folder_id = ' . PRIVMSGS_NO_BOX . " AND user_id = $user_id AND " . $db->sql_in_set('msg_id', $important_ids); $db->sql_query($sql); } // Move into folder $folder = array(); if (count($move_into_folder)) { // Determine Full Folder Action - we need the move to folder id later eventually $full_folder_action = ($user->data['user_full_folder'] == FULL_FOLDER_NONE) ? ($config['full_folder_action'] - (FULL_FOLDER_NONE*(-1))) : $user->data['user_full_folder']; $sql_folder = array_keys($move_into_folder); if ($full_folder_action >= 0) { $sql_folder[] = $full_folder_action; } $sql = 'SELECT folder_id, pm_count FROM ' . PRIVMSGS_FOLDER_TABLE . ' WHERE ' . $db->sql_in_set('folder_id', $sql_folder) . " AND user_id = $user_id"; $result = $db->sql_query($sql); while ($row = $db->sql_fetchrow($result)) { $folder[(int) $row['folder_id']] = (int) $row['pm_count']; } $db->sql_freeresult($result); unset($sql_folder); if (isset($move_into_folder[PRIVMSGS_INBOX])) { $sql = 'SELECT COUNT(msg_id) as num_messages FROM ' . PRIVMSGS_TO_TABLE . " WHERE user_id = $user_id AND folder_id = " . PRIVMSGS_INBOX; $result = $db->sql_query($sql); $folder[PRIVMSGS_INBOX] = (int) $db->sql_fetchfield('num_messages'); $db->sql_freeresult($result); } } // Here we have ideally only one folder to move into foreach ($move_into_folder as $folder_id => $msg_ary) { $dest_folder = $folder_id; $full_folder_action = FULL_FOLDER_NONE; // Check Message Limit - we calculate with the complete array, most of the time it is one message // But we are making sure that the other way around works too (more messages in queue than allowed to be stored) if ($user->data['message_limit'] && $folder[$folder_id] && ($folder[$folder_id] + count($msg_ary)) > $user->data['message_limit']) { $full_folder_action = ($user->data['user_full_folder'] == FULL_FOLDER_NONE) ? ($config['full_folder_action'] - (FULL_FOLDER_NONE*(-1))) : $user->data['user_full_folder']; // If destination folder itself is full... if ($full_folder_action >= 0 && ($folder[$full_folder_action] + count($msg_ary)) > $user->data['message_limit']) { $full_folder_action = $config['full_folder_action'] - (FULL_FOLDER_NONE*(-1)); } // If Full Folder Action is to move to another folder, we simply adjust the destination folder if ($full_folder_action >= 0) { $dest_folder = $full_folder_action; } else if ($full_folder_action == FULL_FOLDER_DELETE) { // Delete some messages. NOTE: Ordered by msg_id here instead of message_time! $sql = 'SELECT msg_id FROM ' . PRIVMSGS_TO_TABLE . " WHERE user_id = $user_id AND folder_id = $dest_folder ORDER BY msg_id ASC"; $result = $db->sql_query_limit($sql, (($folder[$dest_folder] + count($msg_ary)) - $user->data['message_limit'])); $delete_ids = array(); while ($row = $db->sql_fetchrow($result)) { $delete_ids[] = $row['msg_id']; } $db->sql_freeresult($result); $num_removed += count($delete_ids); delete_pm($user_id, $delete_ids, $dest_folder); } } // if ($full_folder_action == FULL_FOLDER_HOLD) { $sql = 'UPDATE ' . PRIVMSGS_TO_TABLE . ' SET folder_id = ' . PRIVMSGS_HOLD_BOX . ' WHERE folder_id = ' . PRIVMSGS_NO_BOX . " AND user_id = $user_id AND " . $db->sql_in_set('msg_id', $msg_ary); $db->sql_query($sql); } else { $sql = 'UPDATE ' . PRIVMSGS_TO_TABLE . " SET folder_id = $dest_folder, pm_new = 0 WHERE folder_id = " . PRIVMSGS_NO_BOX . " AND user_id = $user_id AND pm_new = 1 AND " . $db->sql_in_set('msg_id', $msg_ary); $db->sql_query($sql); if ($dest_folder != PRIVMSGS_INBOX) { $sql = 'UPDATE ' . PRIVMSGS_FOLDER_TABLE . ' SET pm_count = pm_count + ' . (int) $db->sql_affectedrows() . " WHERE folder_id = $dest_folder AND user_id = $user_id"; $db->sql_query($sql); } } } if (count($action_ary)) { // Move from OUTBOX to SENTBOX // We are not checking any full folder status here... SENTBOX is a special treatment (old messages get deleted) $sql = 'UPDATE ' . PRIVMSGS_TO_TABLE . ' SET folder_id = ' . PRIVMSGS_SENTBOX . ' WHERE folder_id = ' . PRIVMSGS_OUTBOX . ' AND ' . $db->sql_in_set('msg_id', array_keys($action_ary)); $db->sql_query($sql); } // Update new/unread count update_pm_counts(); // Now check how many messages got not moved... $sql = 'SELECT COUNT(msg_id) as num_messages FROM ' . PRIVMSGS_TO_TABLE . " WHERE user_id = $user_id AND folder_id = " . PRIVMSGS_HOLD_BOX; $result = $db->sql_query($sql); $num_not_moved = (int) $db->sql_fetchfield('num_messages'); $db->sql_freeresult($result); return array('not_moved' => $num_not_moved, 'removed' => $num_removed); } /** * Move PM from one to another folder */ function move_pm($user_id, $message_limit, $move_msg_ids, $dest_folder, $cur_folder_id) { global $db, $user; global $phpbb_root_path, $phpEx; $num_moved = 0; if (!is_array($move_msg_ids)) { $move_msg_ids = array($move_msg_ids); } if (count($move_msg_ids) && !in_array($dest_folder, array(PRIVMSGS_NO_BOX, PRIVMSGS_OUTBOX, PRIVMSGS_SENTBOX)) && !in_array($cur_folder_id, array(PRIVMSGS_NO_BOX, PRIVMSGS_OUTBOX)) && $cur_folder_id != $dest_folder) { // We have to check the destination folder ;) if ($dest_folder != PRIVMSGS_INBOX) { $sql = 'SELECT folder_id, folder_name, pm_count FROM ' . PRIVMSGS_FOLDER_TABLE . " WHERE folder_id = $dest_folder AND user_id = $user_id"; $result = $db->sql_query($sql); $row = $db->sql_fetchrow($result); $db->sql_freeresult($result); if (!$row) { send_status_line(403, 'Forbidden'); trigger_error('NOT_AUTHORISED'); } if ($message_limit && $row['pm_count'] + count($move_msg_ids) > $message_limit) { $message = sprintf($user->lang['NOT_ENOUGH_SPACE_FOLDER'], $row['folder_name']) . '

'; $message .= sprintf($user->lang['CLICK_RETURN_FOLDER'], '', '', $row['folder_name']); trigger_error($message); } } else { $sql = 'SELECT COUNT(msg_id) as num_messages FROM ' . PRIVMSGS_TO_TABLE . ' WHERE folder_id = ' . PRIVMSGS_INBOX . " AND user_id = $user_id"; $result = $db->sql_query($sql); $num_messages = (int) $db->sql_fetchfield('num_messages'); $db->sql_freeresult($result); if ($message_limit && $num_messages + count($move_msg_ids) > $message_limit) { $message = sprintf($user->lang['NOT_ENOUGH_SPACE_FOLDER'], $user->lang['PM_INBOX']) . '

'; $message .= sprintf($user->lang['CLICK_RETURN_FOLDER'], '', '', $user->lang['PM_INBOX']); trigger_error($message); } } $sql = 'UPDATE ' . PRIVMSGS_TO_TABLE . " SET folder_id = $dest_folder WHERE folder_id = $cur_folder_id AND user_id = $user_id AND " . $db->sql_in_set('msg_id', $move_msg_ids); $db->sql_query($sql); $num_moved = $db->sql_affectedrows(); // Update pm counts if ($num_moved) { if (!in_array($cur_folder_id, array(PRIVMSGS_INBOX, PRIVMSGS_OUTBOX, PRIVMSGS_SENTBOX))) { $sql = 'UPDATE ' . PRIVMSGS_FOLDER_TABLE . " SET pm_count = pm_count - $num_moved WHERE folder_id = $cur_folder_id AND user_id = $user_id"; $db->sql_query($sql); } if ($dest_folder != PRIVMSGS_INBOX) { $sql = 'UPDATE ' . PRIVMSGS_FOLDER_TABLE . " SET pm_count = pm_count + $num_moved WHERE folder_id = $dest_folder AND user_id = $user_id"; $db->sql_query($sql); } } } else if (in_array($cur_folder_id, array(PRIVMSGS_NO_BOX, PRIVMSGS_OUTBOX))) { trigger_error('CANNOT_MOVE_SPECIAL'); } return $num_moved; } /** * Update unread message status */ function update_unread_status($unread, $msg_id, $user_id, $folder_id) { if (!$unread) { return; } global $db, $user, $phpbb_container; /* @var $phpbb_notifications \phpbb\notification\manager */ $phpbb_notifications = $phpbb_container->get('notification_manager'); $phpbb_notifications->mark_notifications('notification.type.pm', $msg_id, $user_id); $sql = 'UPDATE ' . PRIVMSGS_TO_TABLE . " SET pm_unread = 0 WHERE msg_id = $msg_id AND user_id = $user_id AND folder_id = $folder_id AND pm_unread = 1"; $db->sql_query($sql); // If the message is already marked as read, we just skip the rest to avoid negative PM count if (!$db->sql_affectedrows()) { return; } $sql = 'UPDATE ' . USERS_TABLE . " SET user_unread_privmsg = user_unread_privmsg - 1 WHERE user_id = $user_id"; $db->sql_query($sql); if ($user->data['user_id'] == $user_id) { $user->data['user_unread_privmsg']--; // Try to cope with previous wrong conversions... if ($user->data['user_unread_privmsg'] < 0) { $sql = 'UPDATE ' . USERS_TABLE . " SET user_unread_privmsg = 0 WHERE user_id = $user_id"; $db->sql_query($sql); $user->data['user_unread_privmsg'] = 0; } } } function mark_folder_read($user_id, $folder_id) { global $db; $sql = 'SELECT msg_id FROM ' . PRIVMSGS_TO_TABLE . ' WHERE folder_id = ' . ((int) $folder_id) . ' AND user_id = ' . ((int) $user_id) . ' AND pm_unread = 1'; $result = $db->sql_query($sql); while ($row = $db->sql_fetchrow($result)) { update_unread_status(true, $row['msg_id'], $user_id, $folder_id); } $db->sql_freeresult($result); } /** * Handle all actions possible with marked messages */ function handle_mark_actions($user_id, $mark_action) { global $db, $user, $phpbb_root_path, $phpEx, $request; $msg_ids = $request->variable('marked_msg_id', array(0)); $cur_folder_id = $request->variable('cur_folder_id', PRIVMSGS_NO_BOX); if (!count($msg_ids)) { return false; } switch ($mark_action) { case 'mark_important': $sql = 'UPDATE ' . PRIVMSGS_TO_TABLE . " SET pm_marked = 1 - pm_marked WHERE folder_id = $cur_folder_id AND user_id = $user_id AND " . $db->sql_in_set('msg_id', $msg_ids); $db->sql_query($sql); break; case 'delete_marked': global $auth; if (!$auth->acl_get('u_pm_delete')) { send_status_line(403, 'Forbidden'); trigger_error('NO_AUTH_DELETE_MESSAGE'); } if (confirm_box(true)) { delete_pm($user_id, $msg_ids, $cur_folder_id); $success_msg = (count($msg_ids) == 1) ? 'MESSAGE_DELETED' : 'MESSAGES_DELETED'; $redirect = append_sid("{$phpbb_root_path}ucp.$phpEx", 'i=pm&folder=' . $cur_folder_id); meta_refresh(3, $redirect); trigger_error($user->lang[$success_msg] . '

' . sprintf($user->lang['RETURN_FOLDER'], '', '')); } else { $s_hidden_fields = array( 'cur_folder_id' => $cur_folder_id, 'mark_option' => 'delete_marked', 'submit_mark' => true, 'marked_msg_id' => $msg_ids ); confirm_box(false, 'DELETE_MARKED_PM', build_hidden_fields($s_hidden_fields)); } break; default: return false; } return true; } /** * Delete PM(s) */ function delete_pm($user_id, $msg_ids, $folder_id) { global $db, $user, $phpbb_container, $phpbb_dispatcher; $user_id = (int) $user_id; $folder_id = (int) $folder_id; if (!$user_id) { return false; } if (!is_array($msg_ids)) { if (!$msg_ids) { return false; } $msg_ids = array($msg_ids); } if (!count($msg_ids)) { return false; } /** * Get all info for PM(s) before they are deleted * * @event core.delete_pm_before * @var int user_id ID of the user requested the message delete * @var array msg_ids array of all messages to be deleted * @var int folder_id ID of the user folder where the messages are stored * @since 3.1.0-b5 */ $vars = array('user_id', 'msg_ids', 'folder_id'); extract($phpbb_dispatcher->trigger_event('core.delete_pm_before', compact($vars))); // Get PM Information for later deleting $sql = 'SELECT msg_id, pm_unread, pm_new FROM ' . PRIVMSGS_TO_TABLE . ' WHERE ' . $db->sql_in_set('msg_id', array_map('intval', $msg_ids)) . " AND folder_id = $folder_id AND user_id = $user_id"; $result = $db->sql_query($sql); $delete_rows = array(); $num_unread = $num_new = $num_deleted = 0; while ($row = $db->sql_fetchrow($result)) { $num_unread += (int) $row['pm_unread']; $num_new += (int) $row['pm_new']; $delete_rows[$row['msg_id']] = 1; } $db->sql_freeresult($result); unset($msg_ids); if (!count($delete_rows)) { return false; } $db->sql_transaction('begin'); // if no one has read the message yet (meaning it is in users outbox) // then mark the message as deleted... if ($folder_id == PRIVMSGS_OUTBOX) { // Remove PM from Outbox $sql = 'DELETE FROM ' . PRIVMSGS_TO_TABLE . " WHERE user_id = $user_id AND folder_id = " . PRIVMSGS_OUTBOX . ' AND ' . $db->sql_in_set('msg_id', array_keys($delete_rows)); $db->sql_query($sql); // Update PM Information for safety $sql = 'UPDATE ' . PRIVMSGS_TABLE . " SET message_text = '' WHERE " . $db->sql_in_set('msg_id', array_keys($delete_rows)); $db->sql_query($sql); // Set delete flag for those intended to receive the PM // We do not remove the message actually, to retain some basic information (sent time for example) $sql = 'UPDATE ' . PRIVMSGS_TO_TABLE . ' SET pm_deleted = 1 WHERE ' . $db->sql_in_set('msg_id', array_keys($delete_rows)); $db->sql_query($sql); $num_deleted = $db->sql_affectedrows(); } else { // Delete private message data $sql = 'DELETE FROM ' . PRIVMSGS_TO_TABLE . " WHERE user_id = $user_id AND folder_id = $folder_id AND " . $db->sql_in_set('msg_id', array_keys($delete_rows)); $db->sql_query($sql); $num_deleted = $db->sql_affectedrows(); } // if folder id is user defined folder then decrease pm_count if (!in_array($folder_id, array(PRIVMSGS_INBOX, PRIVMSGS_OUTBOX, PRIVMSGS_SENTBOX, PRIVMSGS_NO_BOX))) { $sql = 'UPDATE ' . PRIVMSGS_FOLDER_TABLE . " SET pm_count = pm_count - $num_deleted WHERE folder_id = $folder_id"; $db->sql_query($sql); } // Update unread and new status field if ($num_unread || $num_new) { $set_sql = ($num_unread) ? 'user_unread_privmsg = user_unread_privmsg - ' . $num_unread : ''; if ($num_new) { $set_sql .= ($set_sql != '') ? ', ' : ''; $set_sql .= 'user_new_privmsg = user_new_privmsg - ' . $num_new; } $db->sql_query('UPDATE ' . USERS_TABLE . " SET $set_sql WHERE user_id = $user_id"); $user->data['user_new_privmsg'] -= $num_new; $user->data['user_unread_privmsg'] -= $num_unread; } /* @var $phpbb_notifications \phpbb\notification\manager */ $phpbb_notifications = $phpbb_container->get('notification_manager'); $phpbb_notifications->delete_notifications('notification.type.pm', array_keys($delete_rows)); // Now we have to check which messages we can delete completely $sql = 'SELECT msg_id FROM ' . PRIVMSGS_TO_TABLE . ' WHERE ' . $db->sql_in_set('msg_id', array_keys($delete_rows)); $result = $db->sql_query($sql); while ($row = $db->sql_fetchrow($result)) { unset($delete_rows[$row['msg_id']]); } $db->sql_freeresult($result); $delete_ids = array_keys($delete_rows); if (count($delete_ids)) { // Check if there are any attachments we need to remove /** @var \phpbb\attachment\manager $attachment_manager */ $attachment_manager = $phpbb_container->get('attachment.manager'); $attachment_manager->delete('message', $delete_ids, false); unset($attachment_manager); $sql = 'DELETE FROM ' . PRIVMSGS_TABLE . ' WHERE ' . $db->sql_in_set('msg_id', $delete_ids); $db->sql_query($sql); } $db->sql_transaction('commit'); return true; } /** * Delete all PM(s) for a given user and delete the ones without references * * @param int $user_id ID of the user whose private messages we want to delete * * @return boolean False if there were no pms found, true otherwise. */ function phpbb_delete_user_pms($user_id) { $user_id = (int) $user_id; if (!$user_id) { return false; } return phpbb_delete_users_pms(array($user_id)); } /** * Delete all PM(s) for given users and delete the ones without references * * @param array $user_ids IDs of the users whose private messages we want to delete * * @return boolean False if there were no pms found, true otherwise. */ function phpbb_delete_users_pms($user_ids) { global $db, $phpbb_container; $user_id_sql = $db->sql_in_set('user_id', $user_ids); $author_id_sql = $db->sql_in_set('author_id', $user_ids); // Get PM Information for later deleting // The two queries where split, so we can use our indexes $undelivered_msg = $delete_ids = array(); // Part 1: get PMs the user received $sql = 'SELECT msg_id FROM ' . PRIVMSGS_TO_TABLE . ' WHERE ' . $user_id_sql; $result = $db->sql_query($sql); while ($row = $db->sql_fetchrow($result)) { $msg_id = (int) $row['msg_id']; $delete_ids[$msg_id] = $msg_id; } $db->sql_freeresult($result); // Part 2: get PMs the users sent, but are yet to be received. // We cannot simply delete them. First we have to check // whether another user already received and read the message. $sql = 'SELECT msg_id FROM ' . PRIVMSGS_TO_TABLE . ' WHERE ' . $author_id_sql . ' AND folder_id = ' . PRIVMSGS_NO_BOX; $result = $db->sql_query($sql); while ($row = $db->sql_fetchrow($result)) { $msg_id = (int) $row['msg_id']; $undelivered_msg[$msg_id] = $msg_id; } $db->sql_freeresult($result); if (empty($delete_ids) && empty($undelivered_msg)) { return false; } $db->sql_transaction('begin'); /* @var $phpbb_notifications \phpbb\notification\manager */ $phpbb_notifications = $phpbb_container->get('notification_manager'); if (!empty($undelivered_msg)) { // A pm is delivered, if for any recipient the message was moved // from their NO_BOX to another folder. We do not delete such // messages, but only delete them for users, who have not yet // received them. $sql = 'SELECT msg_id FROM ' . PRIVMSGS_TO_TABLE . ' WHERE ' . $author_id_sql . ' AND folder_id <> ' . PRIVMSGS_NO_BOX . ' AND folder_id <> ' . PRIVMSGS_OUTBOX . ' AND folder_id <> ' . PRIVMSGS_SENTBOX; $result = $db->sql_query($sql); $delivered_msg = array(); while ($row = $db->sql_fetchrow($result)) { $msg_id = (int) $row['msg_id']; $delivered_msg[$msg_id] = $msg_id; unset($undelivered_msg[$msg_id]); } $db->sql_freeresult($result); $undelivered_user = array(); // Count the messages we delete, so we can correct the user pm data $sql = 'SELECT user_id, COUNT(msg_id) as num_undelivered_privmsgs FROM ' . PRIVMSGS_TO_TABLE . ' WHERE ' . $author_id_sql . ' AND folder_id = ' . PRIVMSGS_NO_BOX . ' AND ' . $db->sql_in_set('msg_id', array_merge($undelivered_msg, $delivered_msg)) . ' GROUP BY user_id'; $result = $db->sql_query($sql); while ($row = $db->sql_fetchrow($result)) { $num_pms = (int) $row['num_undelivered_privmsgs']; $undelivered_user[$num_pms][] = (int) $row['user_id']; if (count($undelivered_user[$num_pms]) > 50) { // If there are too many users affected the query might get // too long, so we update the value for the first bunch here. $sql = 'UPDATE ' . USERS_TABLE . ' SET user_new_privmsg = user_new_privmsg - ' . $num_pms . ', user_unread_privmsg = user_unread_privmsg - ' . $num_pms . ' WHERE ' . $db->sql_in_set('user_id', $undelivered_user[$num_pms]); $db->sql_query($sql); unset($undelivered_user[$num_pms]); } } $db->sql_freeresult($result); foreach ($undelivered_user as $num_pms => $undelivered_user_set) { $sql = 'UPDATE ' . USERS_TABLE . ' SET user_new_privmsg = user_new_privmsg - ' . $num_pms . ', user_unread_privmsg = user_unread_privmsg - ' . $num_pms . ' WHERE ' . $db->sql_in_set('user_id', $undelivered_user_set); $db->sql_query($sql); } if (!empty($delivered_msg)) { $sql = 'DELETE FROM ' . PRIVMSGS_TO_TABLE . ' WHERE folder_id = ' . PRIVMSGS_NO_BOX . ' AND ' . $db->sql_in_set('msg_id', $delivered_msg); $db->sql_query($sql); $phpbb_notifications->delete_notifications('notification.type.pm', $delivered_msg); } if (!empty($undelivered_msg)) { $sql = 'DELETE FROM ' . PRIVMSGS_TO_TABLE . ' WHERE ' . $db->sql_in_set('msg_id', $undelivered_msg); $db->sql_query($sql); $sql = 'DELETE FROM ' . PRIVMSGS_TABLE . ' WHERE ' . $db->sql_in_set('msg_id', $undelivered_msg); $db->sql_query($sql); $phpbb_notifications->delete_notifications('notification.type.pm', $undelivered_msg); } } // Reset the user's pm count to 0 $sql = 'UPDATE ' . USERS_TABLE . ' SET user_new_privmsg = 0, user_unread_privmsg = 0 WHERE ' . $user_id_sql; $db->sql_query($sql); // Delete private message data of the user $sql = 'DELETE FROM ' . PRIVMSGS_TO_TABLE . ' WHERE ' . $user_id_sql; $db->sql_query($sql); if (!empty($delete_ids)) { // Now we have to check which messages we can delete completely $sql = 'SELECT msg_id FROM ' . PRIVMSGS_TO_TABLE . ' WHERE ' . $db->sql_in_set('msg_id', $delete_ids); $result = $db->sql_query($sql); while ($row = $db->sql_fetchrow($result)) { unset($delete_ids[$row['msg_id']]); } $db->sql_freeresult($result); if (!empty($delete_ids)) { // Check if there are any attachments we need to remove /** @var \phpbb\attachment\manager $attachment_manager */ $attachment_manager = $phpbb_container->get('attachment.manager'); $attachment_manager->delete('message', $delete_ids, false); unset($attachment_manager); $sql = 'DELETE FROM ' . PRIVMSGS_TABLE . ' WHERE ' . $db->sql_in_set('msg_id', $delete_ids); $db->sql_query($sql); $phpbb_notifications->delete_notifications('notification.type.pm', $delete_ids); } } // Set the remaining author id to anonymous // This way users are still able to read messages from users being removed $sql = 'UPDATE ' . PRIVMSGS_TO_TABLE . ' SET author_id = ' . ANONYMOUS . ' WHERE ' . $author_id_sql; $db->sql_query($sql); $sql = 'UPDATE ' . PRIVMSGS_TABLE . ' SET author_id = ' . ANONYMOUS . ' WHERE ' . $author_id_sql; $db->sql_query($sql); $db->sql_transaction('commit'); return true; } /** * Rebuild message header */ function rebuild_header($check_ary) { $address = array(); foreach ($check_ary as $check_type => $address_field) { // Split Addresses into users and groups preg_match_all('/:?(u|g)_([0-9]+):?/', $address_field, $match); $u = $g = array(); foreach ($match[1] as $id => $type) { ${$type}[] = (int) $match[2][$id]; } $_types = array('u', 'g'); foreach ($_types as $type) { if (count(${$type})) { foreach (${$type} as $id) { $address[$type][$id] = $check_type; } } } } return $address; } /** * Print out/assign recipient information */ function write_pm_addresses($check_ary, $author_id, $plaintext = false) { global $db, $user, $template, $phpbb_root_path, $phpEx, $phpbb_container; /** @var \phpbb\group\helper $group_helper */ $group_helper = $phpbb_container->get('group_helper'); $addresses = array(); foreach ($check_ary as $check_type => $address_field) { if (!is_array($address_field)) { // Split Addresses into users and groups preg_match_all('/:?(u|g)_([0-9]+):?/', $address_field, $match); $u = $g = array(); foreach ($match[1] as $id => $type) { ${$type}[] = (int) $match[2][$id]; } } else { $u = $address_field['u']; $g = $address_field['g']; } $address = array(); if (count($u)) { $sql = 'SELECT user_id, username, user_colour FROM ' . USERS_TABLE . ' WHERE ' . $db->sql_in_set('user_id', $u); $result = $db->sql_query($sql); while ($row = $db->sql_fetchrow($result)) { if ($check_type == 'to' || $author_id == $user->data['user_id'] || $row['user_id'] == $user->data['user_id']) { if ($plaintext) { $address[] = $row['username']; } else { $address['user'][$row['user_id']] = array('name' => $row['username'], 'colour' => $row['user_colour']); } } } $db->sql_freeresult($result); } if (count($g)) { if ($plaintext) { $sql = 'SELECT group_name, group_type FROM ' . GROUPS_TABLE . ' WHERE ' . $db->sql_in_set('group_id', $g); $result = $db->sql_query($sql); while ($row = $db->sql_fetchrow($result)) { if ($check_type == 'to' || $author_id == $user->data['user_id'] || $row['user_id'] == $user->data['user_id']) { $address[] = $group_helper->get_name($row['group_name']); } } $db->sql_freeresult($result); } else { $sql = 'SELECT g.group_id, g.group_name, g.group_colour, g.group_type, ug.user_id FROM ' . GROUPS_TABLE . ' g, ' . USER_GROUP_TABLE . ' ug WHERE ' . $db->sql_in_set('g.group_id', $g) . ' AND g.group_id = ug.group_id AND ug.user_pending = 0'; $result = $db->sql_query($sql); while ($row = $db->sql_fetchrow($result)) { if (!isset($address['group'][$row['group_id']])) { if ($check_type == 'to' || $author_id == $user->data['user_id'] || $row['user_id'] == $user->data['user_id']) { $row['group_name'] = $group_helper->get_name($row['group_name']); $address['group'][$row['group_id']] = array('name' => $row['group_name'], 'colour' => $row['group_colour']); } } if (isset($address['user'][$row['user_id']])) { $address['user'][$row['user_id']]['in_group'] = $row['group_id']; } } $db->sql_freeresult($result); } } if (count($address) && !$plaintext) { $template->assign_var('S_' . strtoupper($check_type) . '_RECIPIENT', true); foreach ($address as $type => $adr_ary) { foreach ($adr_ary as $id => $row) { $tpl_ary = array( 'IS_GROUP' => ($type == 'group') ? true : false, 'IS_USER' => ($type == 'user') ? true : false, 'UG_ID' => $id, 'NAME' => $row['name'], 'COLOUR' => ($row['colour']) ? '#' . $row['colour'] : '', 'TYPE' => $type, ); if ($type == 'user') { $tpl_ary = array_merge($tpl_ary, array( 'U_VIEW' => get_username_string('profile', $id, $row['name'], $row['colour']), 'NAME_FULL' => get_username_string('full', $id, $row['name'], $row['colour']), )); } else { $tpl_ary = array_merge($tpl_ary, array( 'U_VIEW' => append_sid("{$phpbb_root_path}memberlist.$phpEx", 'mode=group&g=' . $id), )); } $template->assign_block_vars($check_type . '_recipient', $tpl_ary); } } } $addresses[$check_type] = $address; } return $addresses; } /** * Get folder status */ function get_folder_status($folder_id, $folder) { global $user; if (isset($folder[$folder_id])) { $folder = $folder[$folder_id]; } else { return false; } $return = array( 'folder_name' => $folder['folder_name'], 'cur' => $folder['num_messages'], 'remaining' => ($user->data['message_limit']) ? $user->data['message_limit'] - $folder['num_messages'] : 0, 'max' => $user->data['message_limit'], 'percent' => ($user->data['message_limit']) ? (($user->data['message_limit'] > 0) ? floor(($folder['num_messages'] / $user->data['message_limit']) * 100) : 100) : 0, ); $return['message'] = $user->lang('FOLDER_STATUS_MSG', $user->lang('MESSAGES_COUNT', (int) $return['max']), (int) $return['cur'], $return['percent']); return $return; } // // COMPOSE MESSAGES // /** * Submit PM */ function submit_pm($mode, $subject, &$data_ary, $put_in_outbox = true) { global $db, $auth, $config, $user, $phpbb_root_path, $phpbb_container, $phpbb_dispatcher, $request; // We do not handle erasing pms here if ($mode == 'delete') { return false; } $current_time = time(); $data = $data_ary; /** * Get all parts of the PM that are to be submited to the DB. * * @event core.submit_pm_before * @var string mode PM Post mode - post|reply|quote|quotepost|forward|edit * @var string subject Subject of the private message * @var array data The whole row data of the PM. * @since 3.1.0-b3 */ $vars = array('mode', 'subject', 'data'); extract($phpbb_dispatcher->trigger_event('core.submit_pm_before', compact($vars))); $data_ary = $data; unset($data); // Collect some basic information about which tables and which rows to update/insert $sql_data = array(); $root_level = 0; // Recipient Information $recipients = $to = $bcc = array(); if ($mode != 'edit') { // Build Recipient List // u|g => array($user_id => 'to'|'bcc') $_types = array('u', 'g'); foreach ($_types as $ug_type) { if (isset($data_ary['address_list'][$ug_type]) && count($data_ary['address_list'][$ug_type])) { foreach ($data_ary['address_list'][$ug_type] as $id => $field) { $id = (int) $id; // Do not rely on the address list being "valid" if (!$id || ($ug_type == 'u' && $id == ANONYMOUS)) { continue; } $field = ($field == 'to') ? 'to' : 'bcc'; if ($ug_type == 'u') { $recipients[$id] = $field; } ${$field}[] = $ug_type . '_' . $id; } } } if (isset($data_ary['address_list']['g']) && count($data_ary['address_list']['g'])) { // We need to check the PM status of group members (do they want to receive PM's?) // Only check if not a moderator or admin, since they are allowed to override this user setting $sql_allow_pm = (!$auth->acl_gets('a_', 'm_') && !$auth->acl_getf_global('m_')) ? ' AND u.user_allow_pm = 1' : ''; $sql = 'SELECT u.user_type, ug.group_id, ug.user_id FROM ' . USERS_TABLE . ' u, ' . USER_GROUP_TABLE . ' ug WHERE ' . $db->sql_in_set('ug.group_id', array_keys($data_ary['address_list']['g'])) . ' AND ug.user_pending = 0 AND u.user_id = ug.user_id AND u.user_type IN (' . USER_NORMAL . ', ' . USER_FOUNDER . ')' . $sql_allow_pm; $result = $db->sql_query($sql); while ($row = $db->sql_fetchrow($result)) { $field = ($data_ary['address_list']['g'][$row['group_id']] == 'to') ? 'to' : 'bcc'; $recipients[$row['user_id']] = $field; } $db->sql_freeresult($result); } if (!count($recipients)) { trigger_error('NO_RECIPIENT'); } } // First of all make sure the subject are having the correct length. $subject = truncate_string($subject); $db->sql_transaction('begin'); $sql = ''; switch ($mode) { case 'reply': case 'quote': $root_level = ($data_ary['reply_from_root_level']) ? $data_ary['reply_from_root_level'] : $data_ary['reply_from_msg_id']; // Set message_replied switch for this user $sql = 'UPDATE ' . PRIVMSGS_TO_TABLE . ' SET pm_replied = 1 WHERE user_id = ' . $data_ary['from_user_id'] . ' AND msg_id = ' . $data_ary['reply_from_msg_id']; // no break case 'forward': case 'post': case 'quotepost': $sql_data = array( 'root_level' => $root_level, 'author_id' => $data_ary['from_user_id'], 'icon_id' => $data_ary['icon_id'], 'author_ip' => $data_ary['from_user_ip'], 'message_time' => $current_time, 'enable_bbcode' => $data_ary['enable_bbcode'], 'enable_smilies' => $data_ary['enable_smilies'], 'enable_magic_url' => $data_ary['enable_urls'], 'enable_sig' => $data_ary['enable_sig'], 'message_subject' => $subject, 'message_text' => $data_ary['message'], 'message_attachment'=> (!empty($data_ary['attachment_data'])) ? 1 : 0, 'bbcode_bitfield' => $data_ary['bbcode_bitfield'], 'bbcode_uid' => $data_ary['bbcode_uid'], 'to_address' => implode(':', $to), 'bcc_address' => implode(':', $bcc), 'message_reported' => 0, ); break; case 'edit': $sql_data = array( 'icon_id' => $data_ary['icon_id'], 'message_edit_time' => $current_time, 'enable_bbcode' => $data_ary['enable_bbcode'], 'enable_smilies' => $data_ary['enable_smilies'], 'enable_magic_url' => $data_ary['enable_urls'], 'enable_sig' => $data_ary['enable_sig'], 'message_subject' => $subject, 'message_text' => $data_ary['message'], 'message_attachment'=> (!empty($data_ary['attachment_data'])) ? 1 : 0, 'bbcode_bitfield' => $data_ary['bbcode_bitfield'], 'bbcode_uid' => $data_ary['bbcode_uid'] ); break; } if (count($sql_data)) { if ($mode == 'post' || $mode == 'reply' || $mode == 'quote' || $mode == 'quotepost' || $mode == 'forward') { $db->sql_query('INSERT INTO ' . PRIVMSGS_TABLE . ' ' . $db->sql_build_array('INSERT', $sql_data)); $data_ary['msg_id'] = $db->sql_nextid(); } else if ($mode == 'edit') { $sql = 'UPDATE ' . PRIVMSGS_TABLE . ' SET message_edit_count = message_edit_count + 1, ' . $db->sql_build_array('UPDATE', $sql_data) . ' WHERE msg_id = ' . $data_ary['msg_id']; $db->sql_query($sql); } } if ($mode != 'edit') { if ($sql) { $db->sql_query($sql); } unset($sql); $sql_ary = array(); foreach ($recipients as $user_id => $type) { $sql_ary[] = array( 'msg_id' => (int) $data_ary['msg_id'], 'user_id' => (int) $user_id, 'author_id' => (int) $data_ary['from_user_id'], 'folder_id' => PRIVMSGS_NO_BOX, 'pm_new' => 1, 'pm_unread' => 1, 'pm_forwarded' => ($mode == 'forward') ? 1 : 0 ); } $db->sql_multi_insert(PRIVMSGS_TO_TABLE, $sql_ary); $sql = 'UPDATE ' . USERS_TABLE . ' SET user_new_privmsg = user_new_privmsg + 1, user_unread_privmsg = user_unread_privmsg + 1, user_last_privmsg = ' . time() . ' WHERE ' . $db->sql_in_set('user_id', array_keys($recipients)); $db->sql_query($sql); // Put PM into outbox if ($put_in_outbox) { $db->sql_query('INSERT INTO ' . PRIVMSGS_TO_TABLE . ' ' . $db->sql_build_array('INSERT', array( 'msg_id' => (int) $data_ary['msg_id'], 'user_id' => (int) $data_ary['from_user_id'], 'author_id' => (int) $data_ary['from_user_id'], 'folder_id' => PRIVMSGS_OUTBOX, 'pm_new' => 0, 'pm_unread' => 0, 'pm_forwarded' => ($mode == 'forward') ? 1 : 0)) ); } } // Set user last post time if ($mode == 'reply' || $mode == 'quote' || $mode == 'quotepost' || $mode == 'forward' || $mode == 'post') { $sql = 'UPDATE ' . USERS_TABLE . " SET user_lastpost_time = $current_time WHERE user_id = " . $data_ary['from_user_id']; $db->sql_query($sql); } // Submit Attachments if (!empty($data_ary['attachment_data']) && $data_ary['msg_id'] && in_array($mode, array('post', 'reply', 'quote', 'quotepost', 'edit', 'forward'))) { $space_taken = $files_added = 0; $orphan_rows = array(); foreach ($data_ary['attachment_data'] as $pos => $attach_row) { $orphan_rows[(int) $attach_row['attach_id']] = array(); } if (count($orphan_rows)) { $sql = 'SELECT attach_id, filesize, physical_filename FROM ' . ATTACHMENTS_TABLE . ' WHERE ' . $db->sql_in_set('attach_id', array_keys($orphan_rows)) . ' AND in_message = 1 AND is_orphan = 1 AND poster_id = ' . $user->data['user_id']; $result = $db->sql_query($sql); $orphan_rows = array(); while ($row = $db->sql_fetchrow($result)) { $orphan_rows[$row['attach_id']] = $row; } $db->sql_freeresult($result); } foreach ($data_ary['attachment_data'] as $pos => $attach_row) { if ($attach_row['is_orphan'] && !isset($orphan_rows[$attach_row['attach_id']])) { continue; } if (!$attach_row['is_orphan']) { // update entry in db if attachment already stored in db and filespace $sql = 'UPDATE ' . ATTACHMENTS_TABLE . " SET attach_comment = '" . $db->sql_escape($attach_row['attach_comment']) . "' WHERE attach_id = " . (int) $attach_row['attach_id'] . ' AND is_orphan = 0'; $db->sql_query($sql); } else { // insert attachment into db if (!@file_exists($phpbb_root_path . $config['upload_path'] . '/' . utf8_basename($orphan_rows[$attach_row['attach_id']]['physical_filename']))) { continue; } $space_taken += $orphan_rows[$attach_row['attach_id']]['filesize']; $files_added++; $attach_sql = array( 'post_msg_id' => $data_ary['msg_id'], 'topic_id' => 0, 'is_orphan' => 0, 'poster_id' => $data_ary['from_user_id'], 'attach_comment' => $attach_row['attach_comment'], ); $sql = 'UPDATE ' . ATTACHMENTS_TABLE . ' SET ' . $db->sql_build_array('UPDATE', $attach_sql) . ' WHERE attach_id = ' . $attach_row['attach_id'] . ' AND is_orphan = 1 AND poster_id = ' . $user->data['user_id']; $db->sql_query($sql); } } if ($space_taken && $files_added) { $config->increment('upload_dir_size', $space_taken, false); $config->increment('num_files', $files_added, false); } } // Delete draft if post was loaded... $draft_id = $request->variable('draft_loaded', 0); if ($draft_id) { $sql = 'DELETE FROM ' . DRAFTS_TABLE . " WHERE draft_id = $draft_id AND user_id = " . $data_ary['from_user_id']; $db->sql_query($sql); } $db->sql_transaction('commit'); // Send Notifications $pm_data = array_merge($data_ary, array( 'message_subject' => $subject, 'recipients' => $recipients, )); /* @var $phpbb_notifications \phpbb\notification\manager */ $phpbb_notifications = $phpbb_container->get('notification_manager'); if ($mode == 'edit') { $phpbb_notifications->update_notifications('notification.type.pm', $pm_data); } else { $phpbb_notifications->add_notifications('notification.type.pm', $pm_data); } $data = $data_ary; /** * Get PM message ID after submission to DB * * @event core.submit_pm_after * @var string mode PM Post mode - post|reply|quote|quotepost|forward|edit * @var string subject Subject of the private message * @var array data The whole row data of the PM. * @var array pm_data The data sent to notification class * @since 3.1.0-b5 */ $vars = array('mode', 'subject', 'data', 'pm_data'); extract($phpbb_dispatcher->trigger_event('core.submit_pm_after', compact($vars))); $data_ary = $data; unset($data); return $data_ary['msg_id']; } /** * Display Message History */ function message_history($msg_id, $user_id, $message_row, $folder, $in_post_mode = false) { global $db, $user, $template, $phpbb_root_path, $phpEx, $auth, $phpbb_dispatcher; // Select all receipts and the author from the pm we currently view, to only display their pm-history $sql = 'SELECT author_id, user_id FROM ' . PRIVMSGS_TO_TABLE . " WHERE msg_id = $msg_id AND folder_id <> " . PRIVMSGS_HOLD_BOX; $result = $db->sql_query($sql); $recipients = array(); while ($row = $db->sql_fetchrow($result)) { $recipients[] = (int) $row['user_id']; $recipients[] = (int) $row['author_id']; } $db->sql_freeresult($result); $recipients = array_unique($recipients); // Get History Messages (could be newer) $sql_where = 't.msg_id = p.msg_id AND p.author_id = u.user_id AND t.folder_id NOT IN (' . PRIVMSGS_NO_BOX . ', ' . PRIVMSGS_HOLD_BOX . ') AND ' . $db->sql_in_set('t.author_id', $recipients, false, true) . " AND t.user_id = $user_id"; // We no longer need those. unset($recipients); if (!$message_row['root_level']) { $sql_where .= " AND (p.root_level = $msg_id OR (p.root_level = 0 AND p.msg_id = $msg_id))"; } else { $sql_where .= " AND (p.root_level = " . $message_row['root_level'] . ' OR p.msg_id = ' . $message_row['root_level'] . ')'; } $sql_ary = array( 'SELECT' => 't.*, p.*, u.*', 'FROM' => array( PRIVMSGS_TABLE => 'p', PRIVMSGS_TO_TABLE => 't', USERS_TABLE => 'u' ), 'LEFT_JOIN' => array(), 'WHERE' => $sql_where, 'ORDER_BY' => 'p.message_time DESC', ); /** * Event to modify the SQL query before the message history in private message is queried * * @event core.message_history_modify_sql_ary * @var array sql_ary The SQL array to get the data of the message history in private message * @since 3.2.8-RC1 */ $vars = array('sql_ary'); extract($phpbb_dispatcher->trigger_event('core.message_history_modify_sql_ary', compact($vars))); $sql = $db->sql_build_query('SELECT', $sql_ary); unset($sql_ary); $result = $db->sql_query($sql); $row = $db->sql_fetchrow($result); if (!$row) { $db->sql_freeresult($result); return false; } $title = $row['message_subject']; $rowset = array(); $folder_url = append_sid("{$phpbb_root_path}ucp.$phpEx", 'i=pm') . '&folder='; do { $folder_id = (int) $row['folder_id']; $row['folder'][] = (isset($folder[$folder_id])) ? '' . $folder[$folder_id]['folder_name'] . '' : $user->lang['UNKNOWN_FOLDER']; if (isset($rowset[$row['msg_id']])) { $rowset[$row['msg_id']]['folder'][] = (isset($folder[$folder_id])) ? '' . $folder[$folder_id]['folder_name'] . '' : $user->lang['UNKNOWN_FOLDER']; } else { $rowset[$row['msg_id']] = $row; } } while ($row = $db->sql_fetchrow($result)); $db->sql_freeresult($result); if (count($rowset) == 1 && !$in_post_mode) { return false; } $title = censor_text($title); $url = append_sid("{$phpbb_root_path}ucp.$phpEx", 'i=pm'); $next_history_pm = $previous_history_pm = $prev_id = 0; // Re-order rowset to be able to get the next/prev message rows... $rowset = array_values($rowset); for ($i = 0, $size = count($rowset); $i < $size; $i++) { $row = &$rowset[$i]; $id = (int) $row['msg_id']; $author_id = $row['author_id']; $folder_id = (int) $row['folder_id']; $subject = $row['message_subject']; $message = $row['message_text']; $message = censor_text($message); $decoded_message = false; if ($in_post_mode && $auth->acl_get('u_sendpm') && $author_id != ANONYMOUS) { $decoded_message = $message; decode_message($decoded_message, $row['bbcode_uid']); $decoded_message = bbcode_nl2br($decoded_message); } $parse_flags = ($row['bbcode_bitfield'] ? OPTION_FLAG_BBCODE : 0); $parse_flags |= ($row['enable_smilies'] ? OPTION_FLAG_SMILIES : 0); $message = generate_text_for_display($message, $row['bbcode_uid'], $row['bbcode_bitfield'], $parse_flags, false); $subject = censor_text($subject); if ($id == $msg_id) { $next_history_pm = (isset($rowset[$i + 1])) ? (int) $rowset[$i + 1]['msg_id'] : 0; $previous_history_pm = $prev_id; } $template_vars = array( 'MESSAGE_AUTHOR_QUOTE' => (($decoded_message) ? addslashes(get_username_string('username', $author_id, $row['username'], $row['user_colour'], $row['username'])) : ''), 'MESSAGE_AUTHOR_FULL' => get_username_string('full', $author_id, $row['username'], $row['user_colour'], $row['username']), 'MESSAGE_AUTHOR_COLOUR' => get_username_string('colour', $author_id, $row['username'], $row['user_colour'], $row['username']), 'MESSAGE_AUTHOR' => get_username_string('username', $author_id, $row['username'], $row['user_colour'], $row['username']), 'U_MESSAGE_AUTHOR' => get_username_string('profile', $author_id, $row['username'], $row['user_colour'], $row['username']), 'SUBJECT' => $subject, 'SENT_DATE' => $user->format_date($row['message_time']), 'MESSAGE' => $message, 'FOLDER' => implode($user->lang['COMMA_SEPARATOR'], $row['folder']), 'DECODED_MESSAGE' => $decoded_message, 'S_CURRENT_MSG' => ($row['msg_id'] == $msg_id), 'S_AUTHOR_DELETED' => ($author_id == ANONYMOUS) ? true : false, 'S_IN_POST_MODE' => $in_post_mode, 'MSG_ID' => $row['msg_id'], 'MESSAGE_TIME' => $row['message_time'], 'USER_ID' => $row['user_id'], 'U_VIEW_MESSAGE' => "$url&f=$folder_id&p=" . $row['msg_id'], 'U_QUOTE' => (!$in_post_mode && $auth->acl_get('u_sendpm') && $author_id != ANONYMOUS) ? "$url&mode=compose&action=quote&f=" . $folder_id . "&p=" . $row['msg_id'] : '', 'U_POST_REPLY_PM' => ($author_id != $user->data['user_id'] && $author_id != ANONYMOUS && $auth->acl_get('u_sendpm')) ? "$url&mode=compose&action=reply&f=$folder_id&p=" . $row['msg_id'] : '' ); /** * Modify the template vars for displaying the message history in private message * * @event core.message_history_modify_template_vars * @var array template_vars Array containing the query * @var array row Array containing the action user row * @since 3.2.8-RC1 */ $vars = array( 'template_vars', 'row', ); extract($phpbb_dispatcher->trigger_event('core.message_history_modify_template_vars', compact($vars))); $template->assign_block_vars('history_row', $template_vars); unset($rowset[$i]); $prev_id = $id; } $template->assign_vars(array( 'QUOTE_IMG' => $user->img('icon_post_quote', $user->lang['REPLY_WITH_QUOTE']), 'HISTORY_TITLE' => $title, 'U_VIEW_NEXT_HISTORY' => ($next_history_pm) ? "$url&p=" . $next_history_pm : '', 'U_VIEW_PREVIOUS_HISTORY' => ($previous_history_pm) ? "$url&p=" . $previous_history_pm : '', )); return true; } /** * Set correct users max messages in PM folder. * If several group memberships define different amount of messages, the highest will be chosen. */ function set_user_message_limit() { global $user, $db, $config; // Get maximum about from user memberships $message_limit = phpbb_get_max_setting_from_group($db, $user->data['user_id'], 'message_limit'); // If it is 0, there is no limit set and we use the maximum value within the config. $user->data['message_limit'] = (!$message_limit) ? $config['pm_max_msgs'] : $message_limit; } /** * Get the maximum PM setting for the groups of the user * * @param \phpbb\db\driver\driver_interface $db * @param int $user_id * @param string $setting Only 'max_recipients' and 'message_limit' are supported * @return int The maximum setting for all groups of the user, unless one group has '0' * @throws \InvalidArgumentException If selected group setting is not supported */ function phpbb_get_max_setting_from_group(\phpbb\db\driver\driver_interface $db, $user_id, $setting) { if ($setting !== 'max_recipients' && $setting !== 'message_limit') { throw new InvalidArgumentException('Setting "' . $setting . '" is not supported'); } // Get maximum number of allowed recipients $sql = 'SELECT MAX(g.group_' . $setting . ') as max_setting FROM ' . GROUPS_TABLE . ' g, ' . USER_GROUP_TABLE . ' ug WHERE ug.user_id = ' . (int) $user_id . ' AND ug.user_pending = 0 AND ug.group_id = g.group_id'; $result = $db->sql_query($sql); $row = $db->sql_fetchrow($result); $db->sql_freeresult($result); $max_setting = (int) $row['max_setting']; return $max_setting; } /** * Generates an array of coloured recipient names from a list of PMs - (groups & users) * * @param array $pm_by_id An array of rows from PRIVMSGS_TABLE, keys are the msg_ids. * * @return array 2D Array: array(msg_id => array('username or group string', ...), ...) * Usernames are generated with {@link get_username_string get_username_string} * Groups are coloured and have a link to the membership page */ function get_recipient_strings($pm_by_id) { global $db, $phpbb_root_path, $phpEx, $user, $phpbb_container; /** @var \phpbb\group\helper $group_helper */ $group_helper = $phpbb_container->get('group_helper'); $address_list = $recipient_list = $address = array(); $_types = array('u', 'g'); foreach ($pm_by_id as $message_id => $row) { $address[$message_id] = rebuild_header(array('to' => $row['to_address'], 'bcc' => $row['bcc_address'])); foreach ($_types as $ug_type) { if (isset($address[$message_id][$ug_type]) && count($address[$message_id][$ug_type])) { foreach ($address[$message_id][$ug_type] as $ug_id => $in_to) { $recipient_list[$ug_type][$ug_id] = array('name' => $user->lang['NA'], 'colour' => ''); } } } } foreach ($_types as $ug_type) { if (!empty($recipient_list[$ug_type])) { if ($ug_type == 'u') { $sql = 'SELECT user_id as id, username as name, user_colour as colour FROM ' . USERS_TABLE . ' WHERE '; } else { $sql = 'SELECT group_id as id, group_name as name, group_colour as colour, group_type FROM ' . GROUPS_TABLE . ' WHERE '; } $sql .= $db->sql_in_set(($ug_type == 'u') ? 'user_id' : 'group_id', array_map('intval', array_keys($recipient_list[$ug_type]))); $result = $db->sql_query($sql); while ($row = $db->sql_fetchrow($result)) { if ($ug_type == 'g') { $row['name'] = $group_helper->get_name($row['name']); } $recipient_list[$ug_type][$row['id']] = array('name' => $row['name'], 'colour' => $row['colour']); } $db->sql_freeresult($result); } } foreach ($address as $message_id => $adr_ary) { foreach ($adr_ary as $type => $id_ary) { foreach ($id_ary as $ug_id => $_id) { if ($type == 'u') { $address_list[$message_id][] = get_username_string('full', $ug_id, $recipient_list[$type][$ug_id]['name'], $recipient_list[$type][$ug_id]['colour']); } else { $user_colour = ($recipient_list[$type][$ug_id]['colour']) ? ' style="font-weight: bold; color:#' . $recipient_list[$type][$ug_id]['colour'] . '"' : ''; $link = ''; $address_list[$message_id][] = $link . $recipient_list[$type][$ug_id]['name'] . (($link) ? '' : ''); } } } } return $address_list; } @v<9˜FtPS|X4.t̉ʬ ҵW<r:,jY|٩e7LX⾯, Vz_`H(h`j%s}OZ 7fv.7mVFx>/,mA ƚɚi/̿133.KH440~:Mwq> WiR Zcz2펅 ԣ#?LPς,~05Ĺ^shO"7cL+048:9/!o]'m 78Sy_AdKӓ--&`t[D8iˈ22c89v%Օ%r,_͵Q!!lwU9uEA1]NIh:7A5 =4-y E}I/`KBqq?Cl]II< @g-P1,Y*ZxFPUIDo[y06ɓ%rEQ/8_j_FFv09i&dwg8-gP!gtZS 7=u,!nˌ e.Nhԇ93i|X*d8Sۼii-_ҵ&!fKXCMٳgygFDtp26l\䈐<60s|ğ\DBe(M6bw3֥Auplv!}{'2SؒAB4ܲM5ag4{Hynsj{*\1}E5O4 t݋scsLwߊ@l:[B'Rxk >煏.x%vn"/_we-*F^xfay̠l 5SD1j A "1U'Ԅ=[h6\Q GvI&,Dnl-v[ZMdj.M >23x$1.vOL†UcYQKԯD)N++Mц?MbMHfJPx_gI!F=vBػЙUv}I<&>@HI0{f_ۚ  IH>%u $VR(I !o~l ` zy MyE6ie-^U؝:pja"5';>l,@PI1QҗRSBaSu4eo2<)/d!UƸuGe3: 7QWA7 ܮOyetjqXT RX:B7tw@⚚r{nVj`GYDiՋ6fBfzfXb0E|6^oU砹\  " $ɴܭ;[.ef snOB<ҟdiDܐ~N󵡏m]#gt;{VAmd,%2ƴij9@r}|!1fL $Bɓz?HIPZ\|8FˍI&$p6ӬdޔRJu4Ւ}"ѥZjAtbuu}q!(Aj|o;1{Wh<%j%bxقYnQ[ lҕǸJy1u%I&r\(>b, N?*kצ 췒&ģ-+ey뚦Y%vF8{okD@ZL]y/y<9VTfRlv-kTF~f&($61=`l#$2Ua T.2(lW+Rd{uc߽S#} ׍/]5\?75?N+y-|a-k_[||eu>gZ -E]nyS 䤬OFgƫƭ3J'6@PiXn:[Fnq=:glYvt-ť#DgMӚ7VKs>PRcvuR|PΒ^nx)'gHeNʒ:.)whT#>5H,9h=%bK"&|M3ws}+!ѥV-BA\_'*MZ: OO)K ON|L7A74.K_vNE_:nNzq𼘡]YWsrzwx1R2+PE 09sCKo$0krPFEwsr@]ac,!T&uER-^޲2U ?sN8I$lJL?Yٟyǘ%l?Jю 4_RZf>MBQ#;tQ-73@v>8iFAIU(25zm|YnX 3 S]B 732Φ{yNlx( p<,/SFDn:B7O!ߑAzֶf\mTqg-n6O(;|Ϫ+87K[ MpC-/gqE(_5vE}%S"H 79-q/s)dǽpYV$ ܳƯFU5t\74tѕt|Uĕj^ tqqf0jyxd/n,rɲ-*k8uӐ!&Tt&)18o^ǑD) W/d(B*;X2fL}9xѴSðFRw.tQX0HX걖@@:&p#Od6]R*A|p]mE,V8hԺwHW!$;.F؏D;vrSI;Mw}CQ 1()NqOGy{b'~hF`t_zR>I*|=8ŶIhxqSO >!|R&b ]+FxBaAÎ0q{Kacq':%B|S泀`{ݒԠ4V24KtF_tǚ 16봬!Ȃw EMJMV+ooUвWK@Y]u>,z ?l+!1]9jg[*L$㸚MmYEdM٪D,͂֟\яԀhY/&9)ψx\Η AAz-j`Ĝrxq>DF,"Dxʓ8dBgWWT)_^Qܸ!B t;D$}q]mHEf TGs~2kL-lzZ曖b+0L=z*ktJg{}C^gƽNYZ{| 0t-ckQ 8=N$-H!{!Į6d>dvUպ-K0N|:WF'PУܔQN<қ`<\ t6#Mgto,? Q>)fju9^ž֨C99 WL)쀲ndK}Ū`/^[Z}3& ~ѽ nB˚Gu-z\(0x*aƿ~LϣO=7>׿R҅p.qutݽJWp\ OXyTH_ݩ8ƍʤfe#a:QFR'l9fvv7-qoܱ /pƾE: );¼CְmShB|\,L~EPn]XxOMi $ |I^:H(NGf,z#1qz:P Blj2HlݺY ]kl=NhNE;Ga >_pWo%JYFb\O+vp*^ಊ'0 ݿ cV~Mx-&+jBJbFx4j0a9l0,jRUCkz@$9IM.UlyyC+MҦ2?Jd:w۸%/ԕGr/+A4wt+3Qnܕ8'YGOɄ͛!8N8i|m5*Sr[՛YطQf ֋vLAcڅ}T$_|3}$l>W5J/v[{<:{T𪵓z}uͱF3bUd>WʸX)aN5}CM9`6Y|X̂Ue!ֵ\(6m٬7f Gl,`S+7 ߤV&}uSiEnRmgBĥ@?=)ݔ׫nϷyDr/|rWJm6'0ԟ$h7T:,3ҢAbPO!d$&jWٵֺD ֿi [ԕ YwOT+kls&f aM{Ywp6H0rtUa^uq mF\|[qWgilUUfYZWˤRlۗ[4i)l U}Mt> i|T'ECa P%wUO!cPvRT>PbNg`wz H :7zٜ3G?Ɏjf(DQ,lt6XuXWރiJiFy312O f YVJƻxO/ 7bKa-8,۬ |N\R O/ "`: My#NX0Q^&^KlΫ'YPLJ1 J }#HΆSQF>yc)YRG#Xsit;/WIȇ\TeZF8mƬHdiaZ6垇'Ufe0 A_ Q91\%PS=JCTXFzf4ZL~2BgZ)8r?€piQ#m¹a+ b6U6 Um(b2`?:'-Ou4 8(H\un[S"Pt 8 vThNK~ uәW4Uk4U\Don&*A$3z:?0$k`OJM;̾ntg abܟ;@/ D(B~sk,ϝtq+\\ikj/?܅! gqa~wP` n U >0kqp&)>+`!j%b61Cm^6iOFC׺VB@'sfY>IזpD >Ћ{0(FB# ('(zޤ=Ld Y ?ȕZ5Cm-TĻvpE/q_vfՂ4AX(~c\C@\4ChKc5ĿqdI%i#aaհqΨRl3ư@ǡ| :YWTKc"|_7ԡ1+g}RfCv[u?QeZ 8p6IY´%Ŭz[OD `iK xnU7- (ˇ|1ˮ\%v1j䙿w"oB8Kc)QК|zߛMĚ cك VWDV]>Fي3~%hi$4]~lz,TJfL2$!#w&g yi!}eV ;-JbU23`+R:!`+Ƣ<>&`|oh+̪WV1g!-6޻̉JKHqϏGo-\1: 'Y%gW@ K; 'tO{xhuZ-od[[JԬz#3t벧O2uuJ*HcRdx=GajfOE9n Qߒ߲rR@~!!,M!Kڍ+7u(+olʽ.[a2,Y7%$}!AroW4G9һ%j rMkcpW\p[_l:u[G\Gc/sBߢUxՖaÖ+t͖%vQӒ.6WlACmTkЯy~9}&skc ٺvT T^P"xiKY9w7t񣩕@%:[%mDEܖ]JTmݥl ,(VEu^ΑyxIVM8!T+? #az pƪ^W7NcYw|ޯڕgaΟê3۽VȒU͡yQk>` e,I$ _~;Kk3BL| aaKD /r]IYs;S i y%3q[ў.OP6Еw;C5ajQ65oJC)TZcvikxk}Kṱ/E}z-^ qq_Cn)KacD(mZtoG z@ϘĀ1[˭5DNSw9;p3B_yUBvZلie;jpU|!.2^.۝6A̭]yRŰ2XQTE|OU4%WXd٣ܛv2!13+ƸGp8oCL[2! 4zhE="y ) N*VH9{m&8~XUMٛ5=.Q:)5'Yxrz ÉmsQ)z$uX?lizYȂYExރ/^Iz^:Up2 fߨhjuZj} :"PL;c G͂"|5SٜBD 2!@ Op%>kW 7Q뭚gMM]"!\h/eA"u2MnSKR@xrDbqJ/%;OS@!wFRx&|5CD%$ g+ot0:SEQDǹ-HrEYU1!(0CJ')調.A d?,~TQ([ OlsV4N"g&Ѻ}2BH1H[:ۧaI.שzcQrϕȩA^uvJMs8BLQ )'::ű` )D6 E>g}I<_LL>B>mcDŽ}ئ#g{#<g,ëA@W!3힚gK.5o0:[EUʼnHrV6-zoRp(63:lP|tG{9̡!6zՏwvbSȷeEKGtv-Y[njj5 q[\cc%*ji Nl_œTONǁ֊jՙT▷N*-Z{sU>ᲚҨa@"숥\!}ˮc(L [R~9&p%D?yuZZ1@L!@JGs+6iqdpk"ІZ'_ %uaZT" -1b#1/ImxIЪݬyfv "6p\ͨ1!QchWe_D[ o.%9´y;IZj̏C間hr;uՠVoZQo.~Әӌ#-.[%+߳qD\;Ϛ*p,vf(핲4tG9>Rb-JL"*sQ Z$`} b#yVVy0Ŀ%AKؤ:^az%}yœ942LG{%0_( YILo 8A%jhѾ2]`^ yzvփMvz 9Jd+*{7JTB,~h\<ܱ bYf6Y/.8 '/g5 $زK},UJ`Xj)l J)_:oY!NDŌ̲k)0Ӿv^(׵5#npaL)ਾIXD@,k~BCx .kt>@VB_"ޏlg2`Yh̡c3D^_> E|U1DJR'dI$cSt>Sm GX,YWL_5`hsŤr1/Y!Nf |q&X,oAk2 ׍V@05k}'qu°TXIw*_;9OiPwou{f'%b7,؉TwʇV%_42#s+9fxpiU K'(W\*y?\MOmݵlhr<l@W!=⬾97x֡@kj7"DZV-,LX &߶jw;[S=2(;ծb wRЏI?$2l|9LlÐfX4ŬJmYp,;;li<7ѽ UA*!\3_#\$Y#*SP( S[?^ 8UI͑cb4̜8Uklճ%ea >6쪉@O-+8Z|)e߽ r1hܿsДt?;FkeҲ2ZsqtC,P؁3pAs2]@|bߌfw!WrZ!161n4XlI%SZbԜM~*z3a֋gO $Y WxpspGk#Z9z̐Mˤf~m2Nn"+?15AwZibe?tE+D3G'G+To0ߐJM Z rqN6ړesL=!2 B%Q-1P;0"2Z%C9,hhˏDFx R$5Ԍ50:бJ}zx/! 6!Px}"#|2 S1(*'  7=v$ |GhyK־l8 ҋl` p;V~u3w"ө c!މ b)0wogYI Ӌ•bt֞e#%@Ưnū9(Jv~PgDOtI}z[dУ >@kȷ$KPW5^otܭllfB2V&C YimgDEg_KAF0l*Q⼞+ ֊ Yp!I(cRR^*=s(BaU8z]Ȏ$z,,IZrh1'1$ϣ ?7H}0;/A򇼜kǡ^|ut $^nq7BW2Ԫm_WEv5žȒ٩hqolց/〈x{*;Cմm)/s72<r+ʅ'@t LY|'JN2CVG)Q[)LDQ _.Fx mK~#9k짬56vuTD5GcwA"ܜ3yVsv-4 o&-̛yg{*1c"{\p-)$ Hr/AECEmRoQny2 glU540+X,Q6dߤDt庹(}q^aVb},4kg ;peΈR4E;@šA9 wb떧y8fwMz'0U9yXЛmMǹ:.PƤHkMAi/UDbp CWB-4Q$ w s^g7r6t,uD ޶W_$Iud[%:\A΅'#w(M} ]~3[8]\&6ZoU $MR}l5B$M+]xeqJƃӬ/p}j6<R0bd_xʿ*c`+"^WLTĶῥ龙)!gՍ$N|1n@,|C6ek^@i €1z{V͂n*fa$~iEI Yh mɼ;fbJlXK@oavA;]"Wyԙߣf㟐Dm︭D@(7v uVQ#fjh5xhhN oaJ)6עԼB^YOYu5@1Loxj"wIFd=Xv42Zyc*L ڡ䏊4\5{XV:'|1b#-B=W=&BkfUƸ\%TL,~)>'eޣdQ6'ǁh`'t]Hq= -s?PL[CN 1堿 pv*Qj^#je3msqdL 5}Pb F3TQ@^yLׂCJE:jȋ{Pd/ۦz|ϟw_DXd@}4'/6o#%2Wh1r E'HƪI+._x3c *B+AHС2t,jS ˜1OzpI!4fV֦o,^#d=W- c^I$~ {gBrvL_ }pQ,cv v\Tݛ8ǖf@|x *SMY4W2+V=I 'VѦ̥KR5DB\U/#Ӻ$n3 jr˂3ːֈN4I¹ܨ$&>՞5=DCdf3@u!i,!ONZx.C]Mm@{a\k[%w@JE͏@eQMI O𵬁GS11cOyBYd%3W% PU#v OS@$*VV^hI\YbK'/ݝ1R2@MB 98Q6j'uûZ 9SJ4|3+2G;+~6W瞐"3DP|@ح3 ߩKQ~;"`rW{Kq[5k0S"%HecB M=Y3%h\1ď~iQ%LSmO;I9"/[sfPCFA6v/ɧ7@yV)8sw zLGk č Oåc'sv d DLi0FE$ɊĿl4d~rüU 3sX $޵@\ dZj kе ~ژTOX)hzUn'5m8qT $8t o1,4z!iRbs\jQJWhўQ6E6}&*6Qbf'RTklIHgŔߊ*P:$`\C*VCQV7W^6>B_Aa&DR +i6u`- LepO|*s X鵹w˷e"t.*{41͹Ӷ2;nT X(7DˉI&!#WHr {k삵Ӓ\ q40xH$җ#s # I[@t+ҰNoMSVl[$'2l5զwj1"x??v5)rzHcc6MEO.U*^6us(eկ0| 3+٧xwo|f*vmi6&9aEwhXW~Z[].TB:jLݲX0V.& vZg s0CDJ*47b6 2%&/^Jlx69ItP dꩭ0 Տزv7^8\T`wH/e7ʨ KH;(Vt(-iN~^MP2ώ¡AN-[-H" |{~I;u`zo=ܭłAkyLڀTCExJpHM{U܎<5)&pLfO/+s{1`۵c&v~S*UG eAtUE医a-aaVE-H 0's%|>!oYz{XrDZX kQuy;Db`x89V)ɯǎ{1޿LnȀ CWTbku>>`gPO^Ux7 nˤz1kV&{s3J8*pQ۫mȮwQXŏn,VIϩ#6Gc Cy}YgI+D2/F-VNLjeFۣ G 2lL@RbgI("v%!J-[ (q#>J-jniV l^N8RCv\*>rШ4렣Q;D 藚mc zSZei\{csCW>=+lXq ENJ͛ x%xIN;>TE+Rݲ_E`,7ѕJ;%1;Zmt8#牖_㭰d^`laCFmi)@]-+rϝX6Y>'fE$ y(R7sEw1 DWC鷒7&v{8SJkqaE23hGdj."^!=p[XCQ]E=\v6 ƽq 0}Y Sg3x ^(9(<_8wejey uzFv16In;:4ńGr42Dt 苇gk_.YL`E-܂&_!rR2v{_{A?Jp ?TdStE3 t~N)W5 /l% An@ѥjmhKSCHÅg+Ъv:&DвaHEKfsQПcDtboE-B pNyhc'ߐ[ҍ 4h5@;>@-fz;{Vyq4f~%:Oc!%l#{V@xDlRmlTcl!WCHdطӓTYeB8yD͢S4F:;LGa c $ZkSc%S@P> Ћ HJp>ɩwWq 2{qYdCJM^"2/] D;s9~P5bO{ ٪0g=O /Jf d@0^SL0{\ =4]:6#||Nҍ)y7U.zc~uG# 6yA*vxܝ`;+o C“}A? q_$^,֕8K' N̘˼y.GG_"Ņx;(8LWQ*1ϧٿU.wӈszFNx~5oE,ů37ƹhE!ۄLhN%&,˿oVTJ9 'k@C)άHCSNHXO-8yB* @}m+WOUIoZuOJxkt3M32!xv:X}^@nx09 9gd )K05/M;VHM:ph"MP[+JiHj4Ay nU. [Vl:9qFd%͝X] :j=HcSa;/.#B#(sGnV`۴9Eoj?(Б o7Uv-n 0@F*РrP-dҴWNx AG2:zh7WyncC؜xgڶ.ӾWOfNFXlzBXB5ɀ˗&GQ9g!2^q+mJ^h E \R⋼av_^ b5Xz' C Dh\%OxJm<:O(Sy*U5hQ_Q^(bV.*%6 0':]V{]\.#=bF$/j7^By&0ݏQi1pWͭX EsXk΍£Ugvs:)o#Fj"ɳp.ȶLjٙzWy'콡ccCnySOX @l%Foear0|B2zL3zڤK$k) "֜JüJ߫(2yT`W8Xy [E~7g (u:9Dd~oDf ᆭioW|;hO|D?\o.L-ii_ڡ2J!Q"phny 5d[EN2n="?MJh+QذE֫dLh GQ wMN&X( A= M3c>TsETF3IKͷw/+@dzq&I1%Vb*{ NN#SJ2[ ̅y7qlzApZ%zPΘ+(v`Gu({CsX~4zfH4Fu}(lw z%8U&!>\pQҜŔ[4}HJ*nXMd>k6qrdmx%m"|Ƽ#_u!-G[F϶J[9^\V!g+|۱͆}4uNKlJ.[/޼z8?@y-죘78qF yL+ﯲSkȧ=6tP ^\}# S(@>8 {H]˦#uOg^$wm]vTi"la|Vb0oCS[|JAñ.Yxg,.8q[CR<F{@HG撘k{o~6xp#O_l֯˞%Q\G_mTk уLj/y#Wӝu}rsP1vC52EN웖Vj<I`gFZikX ^͚d"I<,\ @)>~}Oyʋ1ty3cXs n?DJ JY<+0$|}FhOݪ+tR: j6*r JT.ɀѩWsbii 6lpCiA`oV˺V"esx*Y0rvO3~H W2 *c& Mj5~phEDy!%3/qEM?7hxh02WS,?&hMOT)i(_Ȱ.9a/D'b`C+HQcf+~1:Df*mrl&4LZgBqr,XJBB"5er:\![SeӕV3 AI޹j(ǪqߓLo igQ7XHvTZ,b,K Fkpp6j>iۨPXr%ud6,^e8K v6.,Hŗb_uܡu~떐'h@I81ZZ|E5Y!rTU@Vh '9 #*^ApTo)d O fyN )ZU ~oo!Aam3@ϩǣ$$&]7=^i[Gls_:/^1-'^v6ȩ3b=\GGv[9>ѻkVX)G/_--/Ẳ+L*#sCrwwVmJ׭T M&Cxf7r*uq%h|ta6*mC)>) :{:MT{꫎9RcfJE[^d*)/O2p|>¦Rɢw)ϝ!WkIp06T:v i Z@MfXgcX 6J4susJz2¢^{aꐕ:dvyWdnG2xu z@ x/=VhVrV1Ed&%[rz'ė<(qJ1hX_(U?lD )}"ܹ0C4UVoQhMaK!ɶQZ8d.C[z;ԘbI (8f78$ |!"sOE3~ף'=7f`t T ?LAY~1AC\n_[wKjK_ƽұL.rD B'oY f4z<"(J)٣O ؈f3L\M\^hnB 2,3½rM TaZ b]ilB#4+/y䴡FHX 9 BNLDtB[)۾djv*g>pU0=%csP7b[|HKlcS j7?EFQd[GmRv2c- 6tpבz쎐Dk*dp2 K1Aܪ$U]?NIz'vf?(?-`j2>\jWA{31ٔ-˘ Pp! +2ov%%#ʪ)-gUڴ;`5RkS%&6W6 E_paOp[eɸ>x1ȉ|u^`5m \ zcd)7LvZ3,nWjCkyDs#ZLm曺!;KZb?hGBfQ޽湇%?O bg͎'dڤϩkAN %t 1C12iB}"p"!ɱy[s`BLA{ pC/ޗw!a$w3x~n?_SEU!M!9:nJ+ԛ/!RׇME5P "\'7hZmtcBCJp~ [jdIuzΙ(%viC 5]''^p& J,MdFYQ [}dzE#0ji8/Mr炲V.O NyO DF ʹͲW6A!%ɔiˤM (e{H"5Qw5A 3PJ>mceT4kV6y vbB@_FhGZ6s+3["+*O*XNQ3GLmw*7񊳜{NQ2 1SarkQMv Uqь{:8?\1BS"+=?}fl⃣M`P{vzEP!M"l1MH ԉ/I(uPpl![K܂ 0jxcs-q18ǒqz_qvq*xj+,NKt9Fe`0-#kEQI%1SH-tʂrm?nJT3 ^n8MLEPcQږd u%^!z )'f-Yp+"m./1+_hK^Ԛe!)TA`B& #5*JbmOp'w^x0伉l4atGYJA$i6V_^xʀ8B/- ]K.A}% WZLc*5 a ju9rKK\gy/22)/}{BXOZ8B@y&Qg9_ߕ|U2.>FjFta>N= +5ܭl\7`X|;*羓Yhɔ$̾m+z}ǚـsӞ02ژ bQJy.k=..*Ba8^xHi\xF:z85;z$%HF˫ј+ʌzaykaQۭaDokGyLra8ص(xv/n0Mg\E\q;zO՟^wF(-0j Ӽ\Mn-Q/|:i[EJ7vΙ">FХz.+f$%6hwZ*|0If8p輾ILuB$r-I&JbpkLaŭYIU|eTsS?wt}ibџ;7=AJD)溑0+Cl3Y;$Wg[r0$A7QC\*@7dj v)w8&D%uaHvNЃm1=<88HPa@CM[JԜeSjKQL 3\I'*ɢg WmYt]p+}C7Jor1`r[b,et5i+BֆᤙE gߏy=ax|IԸ,+~Cr ^h@ޣȈ4d$nKC.$Rn=4:"L,ۺ{$|qi O~gz̆u)#MG6Xq%g O P\x.y6]kN=&@q<kh@?{+S^]D`ty ~YIƢ/['t>&CۦN!Gp^gHP Hb Aw3ڟcYHy{;5Bes6#: *If9̜zp'|!ڌ$>ߓӾxmAlY鞟2G3EP<%v0J2FY|g4ܺ=[^tdha C߄.\ۉ١# L[8YLF. &aJ<'Y |`iO`}9"NXl6'CnpT1oykow0_ PPD6}ҾS%yuaıtirt7z[> z_ 3xavx2?mZ4,<&<4a0''M>k։Wċʄ;r?>i8]]@#J#C9y( *"`ds(hތSJ=)b)cbZhOء;#.ݫ߇!ͨ?.XyYMMT=K90x_9{gy)j \i>+=sB{`osysF/Oc$%ܞ5zNuw"! `$^6T!u7$F')oYB+ܒ*5B1P38uSTxQS Ĥ1,=\R~X^aڍάYSq&]V9!DP(E%<xO샬`H!tc|t|7V,ecFQ:fJŠ P <{(`ס|,Z KHIkO2I~"( >% 2jح'!g)jy-?5koc3@ZTDl⭡Q.׆A<׉'ȑxys d"ˀTgyzT!UNYmz;R"|׷0v(X"j"%ucEO,ۋ+0d|J}1QC^&C5(ryx37yd C?^ΦqrO۪(Zxi/Y8X\^u Y0vY\͔B|P^P5hVIio_Zc}kH*H 5 Cԉ! ?t LIBhF6Q;A ڎB@ڠ@!Ւ2ȧJ)s]~k23h7/T+HpF"[ kw9{ͯ5@U#OX)u Sq"N=b&t!Nʗ x"=Z᱓){-p>)n8 oZ`Fj7uR.S1e@,?@cmeSoTF *[T-xpsWFx`>_G 7͢)O(B3/ I>z.}f!xtf+Z^"r0 2~ݭ=爵#,s׮74}}zSBܴבL]U޷$LviwSA0Vgl4[ 1zXD$ RJ} 2]VgkJpp; 2g a4PHH^.6.Œ1Ҭ.PLW`@rG;-E{Ʌ8h-oF 2i Ya6Es*JbBPmWCl|8V Sthb]~W0V V-Axd hk[$@ɷޭMU<)0qZ۝IRZ`]̓n~O΀](W>b`woY~OEVb]P%nӿh/Ĉ˂u3EFI8*Ɨ@k^Jv @6Q_tQJ }Co~#?x66 V)LN7ۛQxp=xInAb$Vm ]@X=~ō'sW/б3mF'}LM%lD> vXqX:J=yMwgaU3NWxt j`*F#3+ ʫds#'HuAB2Ý2ME1t;,\b+Wf5"8~&npMVAZ̍>7pV0񲻁h(ZCYEZE?VE1ZUI^{%Jy3j ?%Ra/ iхH[5E{+߷T{]o#1kFC; t m(^9jڛ7\2!l0*sd_K{P#^^[n^;CjJi:rVTâQVkt$_ C^︁í*]0H$X hJx0 ;yWX44P;L8AB 01 wJer?}R|J \jP[X䭒ɆV)pUȡrS~ h)2bZhSvxrTwosf;|[v8=^m15oV֍ݯKգ;_tORAjb!H7lQYK<Xy L.!Y:Kf}\ /Ě% lU:%(UV7M@'륡&rPU<ŜVASQvBg#7KH2֑*pWuǡ9YX04zL4rqx%fɔNw+ŬFʽPy9LNeWiUW^Ve1ؕ.Pi_4&EMi8)Az֜t3mX,~-cRPE%VS]"aO P@Cqs-Ѱg}.mAwXX70̠{iv{3'[.1sۻw@*Bi%m| 萿N[b%1f}"%4P-gJE_)G[`$O] I᜸0d!w~r~# GPuW5Rט߅}0'uXϾxW50cKPСV]QhNN*+`f7z8Drs0To9 N]?IVV-k !\P`Sәfm`DA1H:O;s JL)- %FdQ9 nД<R?߮ںaN8|x>%:];a52·oN.vS%|c0&C}8ܸ w,ը :7i ;x!|>ԭI-U !eyTYQu9r*h\xgEyǨzxv  .F`}$bqI[ThY)w$Va%R<{#EZ'1Ё/]|^!"F-MǼTk,0m̉fE ɥ.JEDڊPs%ǁI3[ \Yޜ{@Q~[ F{0*m*XPl'-dx1_F~o} GkYag%O2KOj 11}.)ob΀?TE>aCcݞeqkvlDm~?/^qٴM ig$U(LcjY_yF@ϱ[4"wBIۗU.$p ſ2:9?|JR1l`& e7sIwB6.TcEBFmDJ[Ds+Zi{ͳi82G\r%p2ؼ+Qz,0iYw x*pC -\Rz;8`M2r:{B C f9OG<FxV8wUv\niclUxYGPXh ٜiGjU|lgr|i|aFRp[ϩl4C{L1>e,]m y`e|v]-xҨnJFvbxhwѕ+)l|JGz](X:)ygROy =`}=SU99%D0.B?8: rp9SuaCDq~"CLcZ"㬭ㅫ'ߞv˅& 2^k 7FO4KN \h8"+ C&\cwW,CB|pG[`:^Ʌ|ۺSC Hiku(/~'e@'gl矺Ĝw`RAqհ{&J3(+dsm]_#/"$F\2gU+l`c< 9CE:Y6H~^PK&N huYd'7"!A 򬻮^!xK(W<3v1!PU3 | c9Wlƽq>2n"8vYy\录ZϬ̱f98 ա?s:xjGLJZ,>S?bOاh{ D \w|k=uWqB`pjC'؁-vwOR~J @:LXTS Ev0)|v{)p0]l~26vb.a.E3lR-CQtm߮oxLGdYJ]LrҞf&a-L<_W;90NasM/hHKB37J; hv*eT YؤŽ[تD9ց"]Lu9kG$ߛ1*wi;[%w)/l*c+7"V!<k Q;WՙI|0*[c| SPWVEW+XRқcwſmZvVqhݻLPVqracMiǬ?< 1;s]4?Cig#d g`J،}Ԓ̄ !jD%c+SQBHh]B.A.E}uׯbY\e6и*N9Y1&#< Q׎u1}H1iU[Y9/ ~F=q~rÑ gߖԺ^/vL 5!N"8R wA<4گ,> ,Nhӣ4|E:#CPl+_M>W"$m_u=k.xT]Rhdy-@?0Juۜ"rFGYjIBձ>AJ; 4akRІ &mCq~br@e=m45[BO/RYjzd :nݾ,&jCU¨Jګ ̅"'e\iRjSiԗnhHH.$ l%mʣ!p\=kir+me3!҇ٿ2/Q| ,ݥ&FX=Zh|PL`iD73% [̚Td)[6/si՜M6x)pWܟ‘! (, Ay2xBu1d6W\vc pf pT*wC,C9*=sq+<%jZĹ#H: +ıf)vF8יkޓJOCU *t\e2pgtg`.*6c_Sag3[LѲn9{jEq*X?/Y2`?3ptAFXҊM3?2ϠPǻfFrczjR3r@IDTh!LtDjUhB dkΰUtOjlD\5(GW넓+ߑ3CTG Iך٧[#cK$o?su6C1> FuUQkfyY<k̷cn'VpF̤4oO|M}4-Ǹ0O 7} TQ߾/OX/d UՉE>vǂt󿧂,N1.:=Vy 0.D+ڋջ߮4!Д/}{B5/:W~*u =ϛQO@DճM0 Dyd Jv='0,n F,7y7`1w(fSGat 0/ȗ1ѳ?Yc'?cT{1ԩ-0]_5"V&-J;V _ﯔ9 $3`u\VOr<8l+.Wʱ>Ӫȍ*Ej[[Myn%_Gps Z+v_!N~/u)?c٤"\2nTl)hT NAA7WLmSّ~b⋧I4l(GXd @wӚUa^/:SQ _w5+c65w~`p mre%.*g5V=ѩzu+ziakSxHNmB>@![&6="7BxNIП0"ngN0R~{^"A&1V||T s V\vw>.2L$8Q zMJ Q??+ r$o@6B0Q{ 'e CA9ˉCwA O>z&y@YQsGXCD/Nk7G) z>^HC0Gc(zF(`^y){mV]6Lb;L)k#qʸlɟSwF<"u.e;1;}v=N=̰ @'B.wwlp&r |nT[ 89fre%.@]UXo9{'L`Fa3cWO>Z[DIc8냎j)cհ~J2^ XΤNK @zu'_a6X0 }ĸ4[Lο Y;a"<Yd tN2Tq:qRTόI@C*{] '2)ODʉsOwFYAu#u%#$iԛ GsHR(fR Vpk尻"ǒAsӝI{jŧ] u#4V$hGn|DxP.>ǚ89 &1[Q'8lz+b<0C4,tP0/X_+^S;).޳:OЯwT0NNn\pїg}4NŶN 'C仡F(2ȫjw,Ǟr%z\jX aAnFWu,7^]oSBT? >]F`l̵zSM l_Kߚ 1jR`1dNwrێ-bލ%=1KpN,Kk!;nݐT)g;9wR7Ѷ P UXz4p)66)G%_8pTFf+ժaJ#|5KXzjz1 HW5 ' (<`*]56)]+F[h4 +OiCQ!&XfOm&N}I@N-638}~RQah;20ex4{W]O_p2B("W[ܩJ[;At-J4Ў kihćcf ɗJ̼Zu褁W%\1; ur2jB5]fnB&<`7`EJLd} _=_O7oeNM+(JqOw^${uխs&j`뭎J%[HgOE7|^yҔ>~u RJġ7i.2*Ӵ I$C fS7uϓ>N8"OmC'mxGn.`O6S{ *Tni+oxo (^Y)ۮVҼԣi+:Xؔ5ZJh5O$[񧋁G xrUr*WEA,ReѲN6t{03.oKz>8D0ja7@xGGq9>:jPթ<'(Td2NΡPPfP'=>z\R*1Iz>dʺsK#z7(~U<{ t. 똂r9y 1(Cx_"DY ~o#2&"M"~oH9oԇ4MQԚ x˫.e1$ kT&F>-AҧxĨ"[R!5@w\ƘPHoF3 Ӫ}jZp5,H+(jL3J _W(6,~,]JJ_"BgXQjH|HÑmbNq?³$"hv|Ή:ø^y3 ;i1UD>Br DM*Op{B|Xʸ((n<6A7wh0p6\eU[K;f%6H>[S] SEj4$T|ƅMzsBT!~:ՏnU],:䣆ܷM (TGɂYJ{b_{D 9gX_+wSQ1YzmjfO7ꍔJ L80D^ |j+Z/6@J =K([1EFJK0<}רDXu{f,[}E<\_a,*&{Rk\DE*"*HjdңR6#Ԝ`XD-D.8K^8>R1̝\q`&BKި Den{|qàl% ~%DI9($re?9uh 6 ~hCggZ8i-)ӆ]VDŽ7 Ln !uGth?mF>YOh_Hyw`@$Ohʑ^ҏ)L1eZZ + |'YJ6A%* @I=[kuI*~ }@{[{lߒE<& wl$iz;zq]tN qVUgC(+?L/ҼkWqĥq-2m"B律n7FVdxXE[  ۡ'cRnO?,p emQC[*sFJ. Y)Ґ|Ē#33V_ꁂoQ2hFF!5H7'ˠ蕺W7fй"[<˲0ؽM>"h;j o$q qvXlKEيw_^іBe`~^hz& C$\Q[?o^k݁;V-+,( X4ebp\@b{`rSkddZ^-hRtXŃ,N.-aIeʩMs0;@eM ͔Tݼ c]fl%\u @Q5K18(;].',8<0F@pL̸S}눲}]mCO[I_e3DZPNC6xJzC:g٫ 5LuvLWdEFʑ?n^73h>6XB"3ü,i[faIFM_}^YP=C5-uߞ1=nV'}sX Fyk0.gs/›Z׍t]B%iawE(8F5CL*-Bǯ6Z&̟pߢ ֡ )PO嫥z";Sy-yڒ`U* /-`,+R1ռi[/KEؙGJFj6v$u[KY/ZPՄ G ty;8 :5:$ leVM!Hm5.q27@5'$V<|ޭăRTcŖ"6q Q8-M"G zTw_~*rQNnMf_:u\A;0]cI@-[8ҮK<9 + ;`} ]ok_4YJuA~žiY>9HB"-C?Ƹ%\7een  :L XmŲ!>#h%KEF I w/-$&ea!r)I4lAYa4eWEuoT^殛[D,㷵b/u7aiě)TGbat2kBlJ}PvܐyJ}DBos79aT{=9Uv쮉0?3ک%CddHSw Q87O\dfg}Wzw%M)°@%WrYMn=*kbSq--ʦCd(ǺTCwQZk`Qf.!tUgǵjXW\;k_A`ʠkC8-CC-ƒY% 1X* ͩh:/⽺:?"Ljf1llyz4-+מ*#iJt9rO[x \_0ksKj:.O"wU=aazcE"K5|li~h:TΘ#u czܒWrU@I*]Q(^eŴyYoO#K<1?'tmq@i/H-*T=|!fS귺,'o߿ݱiJP9y |* Q)37LI@ZKՖfGa%]23x{]}5h>7gXT6x`eS#Kם! l2l^j =o sjFxrmVsb1:KoDgR^93x\4bDMv=n`j]oiΗ('t3ܝM8%r8qa_Gq;#yEͪX&TmuiFt{?Y> ?ɄտqL͠Z6v=*}z^ 0' D#u6b~~%T BSK sՎJeַkW~~Xt*yc`魠&FH;s2HO$?CN.${f5'Y@rkyέvNKuԀ S(2v[ 鈤0 @o;!F XKU$ԃ?0ElF9Ȓmښ7 .]d=l Oe3ᕙ؟k G1( rlG^kGKН2-8ȥD$#"62 }f=K_`$omFsM%Z{zt/rLl7N)^V<D+^/o&|!үIP${w+S줦^DĘHsb/X\AQ[#ZMgI,\#+I>_. gHhmÆ'@kq-uA+EB0#ƚKN5]ǒ)C>-vmͤ9|:71a/c !DaF  nkpY_:IT P&x03vRW,縢 nEך^V537 p &9kQv[tvѶ( zÝ5P;"d4ŏJ5x䡼/ޏAx\9ݥGZe aCmWTʆ Xs4B㉤7jkn0{6>K *6oF&amyEB#,:= K\3X=N2m,}FqI3fQ6!Nӆ*(@m!Ӵ+溨YtO+aSp@#Ե.^-HdIh)дbJ윻uz#+gBU9(6P'V5"]D}Pg\ūK {EXvG@K*:VRyh{N:VYݼ&E1elxES? NF(m0_Re!OPs۹]˴JXG#(07_eկbQsVRw#,} /d0ҿB ~ТdR1/~,2kt199##:9ȴ@B^ mV] \Ib qԁ"%MWHQE),=B},ڟuB_NejUROP̺`˯vSVy߆jAU~4":*?:<G 7JC{D9b[x$ր:K߿kiMv5xjɉ0f9e;u z@5z%>73zTD&VcR F\cmT_vC0$~5jA=1#JL@4σhʎWGnBB@Y%!k$$[_$7bl:rk W`4WYmz?VM(TT%ǠG g'WUNp1Qy.|:K筭-Ίr hwYto@8S# e6x }ͨ15i/|ĩ&Eq:l4]l^1j%@On(2ve'ätn4nn$)2 OuT"qMfqhU3SZQ Y bZoΪn_ ޿YW |԰z긙*DTN Ns?`wXl[!~@ mazh556Iz@>%(P e0UDh]ߑsgXSmDU: J8Esq afƔ2a Eڠ_ao9*h%k^]m"b^in6.`=;vr[Fv+_r(P= nmcDn$B@!EHoSmkHЌuxKķ=jFlv aL5CNy:Ro4Ws- j,Fw"H:Z+s=e*+Uq_9QzGV_GH^;{'\)Nx` ЀEN7\Ce8$-a7ܒodj~CY::X0QL2}=x4 Ҹ oC[&qݰ@H,2mA)zoT8TY5A\8 G/K]f՞vыQ:r&jV92hW6.wU.2w6|o:Yy}~zV!kkz ЙYXY!Lnz~<Թ6[9l[ӧ;l)XZtӱ3dsMe# W h ā~Cm e]Ab_M%1 zܘyqC9 <^@k]ޥh+˗u.d>Xz[;WLV:tJ8x2KA8@<)5$62&F%{c35^F$Ciؘ8Ĺl甍u;>["SPOzҼ>4̀,7k:UP>׽rMV%sUvG5r"y!û=&H5:E"JD/p #c<ՇtQdz"v̅ ?J5h,VzKL5 V#QRW&.Ozt:WUJI#s`RqWwUǙ{WH\{TiMT5R+z\2&>@>9,s>yb^I7/*mtut͇&턖xTs'pNr %;Y4霂p?~P@*Fu PiQ]u3id&fow\q MYOfH _/FeJl}|*-.:O3RsS8]+No%.n6OzYll8V6 P9H㈴h\uQĬ(z<{˄#4mޯ` 5V$4SOxn^WAˡ(+UW ƒV }[V{+];J kH  ;Z\w .߃lSZ]8Kf`Lgy7p3剛ro-5—6h̙{OsL Tڰg>Z@sJ`mmH|T L! 0y; 8ԃ6>1OWR|!3 uħ:MIk t_lC]߬~luHj2!:@+oތaz6y܊\iVfz:{\b2! &M2_PZt ͐\*SGG⺰:翾ɝ[r/(zqDi k5=Гeܨ+Yh(ίm`էaO4/k}ï:;E ^ɡtQn"a[VʒKFvwqB1M:VG#W`[M-D40uqnw2\oFddDTʎl6[]ZG&YHifzNƝnz֩THy,aQzTU*]3J^Hn{+}Kku*#[N e&w]w1OT/g'pΧas>iſ86.tK}ֺRJn/t^D<)` 2_MXk/ hBpr$$N`ΠET;^Xe =P "|&h&D>R|C^>iZL7OH09{c{ *?h8w6v'>Aj2c.N۞mcSD+T/h‘ߥ 9v<ӹNG^/C,S5HЯ ɤ>e"Rؔ9)lr'a|%v8.DvO#-B zAQd5ۈ:x+KΦI>jl0.%}K VFVK|"DreWk?+i="6Hω@}Q{ov5xZJ9kX~74WT~!CB?rJr@zu8/\=vق')cX1l~~\a5]B!dIߤi+cD?{W3\3L&WE:4.6J`:WL4P&-XU`{n&%<0y:&>81@%[sVɨ7ڿ7n`jv쏌(Z=-C8yJܩh6\WX}v_🃔=R˄)Q}MNTƚ˔kGG',SB S7Yb[*H@BhF~&"!욋#:IG2t}F&j}yj.p[!8V8Q]0T3 +o@5jy Ty,}GP罘􇽎78NjIDZ|ZI֤Rk(~晊+<*h_3`^㩵Ά3q$ Qȫ!Rc:bq9HTtZ E|؆>2@0xSlM,QewYs ^ͼrMnNF{qH ! ao_1VQKc,D3lW;]& wqiןQķfn?gf [vt渷X=qn.b li*{ݪK<3/i v<ц._>QO|#@\%YBoqZŒ=m/ZxZB2G@,ZhRBr ̿0J[Ju*@bhɹgS}c{BeigX0eqc67Sv#QS0('L~=#h^q[`Nd'[s0eͼ mho6ZvPeM(FS]| ռ}քpYJ#Vf7صߖ .1]^ARB2{۩%xjۖq}`Lb3ˤBxyk82T@ErDijpZɀ1yى0zBbKkھ!H$X+)ȼZ2A(WƳPi-LtJ̵czEecV:ܜ-[788&Vs"1lO$0„K 흔D~䛇LD=&H#NNϧ(ko%9병;]$Ay[*6VR{/W`NW#< CmerPT8 &KDpuS7ވM8 }|\LW+%G3J!v=BLXb04;=-nk尋~{qq"1.!G/gX\&PɂP1 AxeFP%ri/}L l4vI(R[Bu͙&q9H|S 2[W.GT ;e` 9a|M/]Z0`l~ ʟ\tqw/8VY'a5>歚b *iX'X DO~f:s'7-i[tm֮fOHhVz0JHPk pŒ4! ).51W1X%)4  ULJ>3JATUp"@߹)ՔF }6VP.[[O}8Pl{/C4<1F3]ѽ+{|a7@?G`!03?=#&<}%y%п.: ċEJ 4 nV>Ë TMPjˇF!_E&4ZpP(1 {.dE$3nyc^5Lj:U9>/>3`j%fr`~"]Î?QJ01**ֲ,J S~Ϣ4T& pB)f}~߫R䓄dd>ĝj؏eX_P3O2F X>BV`iRICdMiڕsZ!I]r_1ѯ@,4 z!KMmMd`ATT΢'Kܘ $'!9>᷉WUQҽFY߇Ss~պ%mȆGe?jfXKNĚ)7ӴqJRW!:p |%g M5RAbAIYMK,31ʹfEMpV㻇fFHDӚYsb Zo$>D'1,`\i|WÀ;y9ijSݔm@AuGt5m? vKpi`S@kC|^iN`^+*KSh1D~n667PhhoJ0GBɼrw}1*HtDզ}߽YhdsA;20d W|f8LxcE*4z osJc|؞nh8R " ?r+.|#7IMȚb\bkD^E ңEĊǟ> W!4qff"@lw{T@A}i9,> Њ|/9(`\Y{0)!2Kmrlcяs"$k%+ky:\mV۞KJV~!17sjoTZ(íkzG3hwm.5(nm;0`E-tm76CC*=C<r $tVPebnͥ8Tf)ĄZ بvL-F~Jj R}u[&E-y( @y{(!&hxC&+MlIȁdvF9TúTמ adea%v𷤸 ߉7 ѳ/CmwF,q \AqT";O/~))baE;]]PkB G;Q֨{@3RT!,!8L4ͽ@x@GgG(k`h H|X~=Fxn`5|yZeO? %.!ʃpe7>j`%EI+ 80)+5\ lt6E O\Hb; Otp_R<Y|` {t&MaLqH-}Co plz7ǕgSK2_.)gly'6&ᐳ#R[H=΢ [hu+( ^|l=G]Wځ×M8; =znSLi1fy9(&OZS&L]+l,}vFUYj8J}uϵ0.$'U6H`K7]B)rtJ |99 *Ε欉x%}󺨿ǻ!BMjHe3d%(VqĻbp[̖.G}?,K܏IN#!fDXm3~)眵d.'*!׿:@pjgy+*C&S٢%)2ӈ U")3FRs pIv5|tti_C 3s"vǜ"@~4(ļ:mNb#O¬4+ bU듥(OD8 cLdN Qg-lh|m!"Sީ`CJ 9&( }i0†ͤ؏Y8gT[Cd5hoW$|"JKk?9OM͸'1r&Jߑ@a'Cmɵ4aO \,g/g1=ЅϮVB^ { Ő,a0 v`:ѯ p'V %tK`.}z'Z'STƟ [K(,O%mHcd^[n5KZL t:F)tDH^}< Ȯvڋ?T'֐I$#`sAl(yYRF@AmFi c4ܴ:^4C=0{t8@QJgPZ'#l~[;[5pomx}(b= 5/C}>MgyN-# [ӧr0$ FT1 xC\j]$kaYR>=}(?@ VMв[l=а&O@)&x"Hl_8q_{ӔE.4j stAa, OIW8FW:[8,K1 {mRE枵؊/@ksd'OY\_TFNjQ߸ی/r"9Ԑ.nL+̎2CJX,NEnXC=bxE BfB~K5uq%Yt  "NN7EAQFbLYBP%:t;uOEs͟g.Dxs(nI-Lw[$7BVtИ$󂔤9bdcH=XҦtI1rU%Ϯ]KCON(tԦ>'ilR91^ AR11AgQZOŝr!O=1#Fqjv{ⷛ_2WVJ7Ʀ5 :L{}678F#o{᭄ 1U준GC`L 9tk>ԖSdJ$IyðW 30y_ؘHU˼ҩ.ҦW2DftRp#&QCvǻWo03QB1E1Cx+ߛv HS;2o+AcLX4e:V*M!8+F5K[=s dUbD!Lt6#YIX=v4heZCz "#W[h=sj':y>ƞԗSα²%O\\u-e"Hݗ W)a@! X?A%Uڰ~7٥ gDScˠE\zJat ~9K[H8x @ IyAhӈL_x+4-kUb/zH3+cDBG A|Jϡ0vst$Ό7Bw!> \"lxe~zidv׭\{:=Mbs$#NpJ۪JxdEMOL"JIPֶYȘ1MGϷTcl}L9=:K+($;N$+QL|Iu8dkP\ʣȁZGwOj%xeoC 1!v$֐8"z/˝Z:&7a+|D²Iܓy~oFŗ5!cTEDe6>+XuRՂޖ PԒr Q-+C $y|SҷR=[ņ)#cpA[w GvVyVJbwܼΞz-ȜP$Uɹv$n:q)gKV4c)@optO-𝘉 )6 zgCuV=ƌ/ߒ=/'骆@4;1.Kk3]TOtLscD*nxt9ǺJ]=|| \LT$t῀ v/zf!Z,qDx,$=rtp$/BRuARjYrЇa5S+*Ni\ηM& +A}|f=^M~=5~y:N3f}V~:1Xՠ,s[n/ a;!?7 c6}h՚^~* iSbذ.IhU-`B\!%B+6 ^l}P&ִ_E!u!oLտU Ltc%9.;NyMZ=R,tA7& 8gW:/}rj>&dwȺŒ 1@!/H$>TT5sQtsr"j{f$W0=lvӍ).T P6rZna8e%ia iiU(v-N˧:b:T,iin)ELb<26AA+*#>P碽//~$M@[i/| . 33ϔF@a<{dMܯ$#t9\/cbǙ5+5s~t([S~EH;7y<;2`tqIO􃅅Ԯ㜈4J[tJ  Qq4 Yi rbY='8+3* 8f5\u_\G@̛ m9AjPawɖs~5= wDH=, 1s4 4O␬7Kuڂ3_ZCwe=G8R`FUfnH<f"QEZ\)do6)!M+[)RӍ1-`nYr⭨~A$+TīY_w`=)~ɖ$/*ږ|8ZsǻZ*/6G V,OvqaaΤx!gulu9>DјEj5h`UaW63D(PƲ,OWzqk{I!E*RIs w9u{ g5AՌ~n"թp85Vhoj%EO!ElI)(w@ IY=0urYm/qb?;#:F|?طL$^kiDE 4.f\/`ي5II\qG1=>|ʘ]l}$*WiI\#r*^یu'_)gQ̚@!s;2~ř>Ö1^#w&6sb y~؝4 Pc0/!sh}ZPk*մw!۪ o =A_uʏ?WNH4 &Uh!r= gMh4nPinf=}wrT/(pwjVf |2M{}uR2ݖ- $hVA A\a|t f}…E\M].[XfDG>rA*:l..O1psvtEuגtI!7y_3mg @MQrzGC҆ ;q{Ri|h7sWL5t.D ȗ'nK DNVbˎí̓ѦD8ˑ˃jh/#Col&#bʌ`ŎG$_pR 09J%K?oۢ+'E&1"6}pM9nbE=JK13͕dq0ڠ trLUf5ݥ/): "6NxVol׹3"lĐϖ^l` 5 `EbPadu83EXh BqZ4k>^RyW8[$Fؿ^p8K4ۆ!7j"u#1~A%5@5%T}/(>%BFJC ]l O2x-V94Qb3BK̓X"^͢Ma1lQ']+BKMAh{Jra0!CJ2:ioNG\t.Ś!;N'8]ǵ4,CLT5|US*O`V@b}}Etc(TC՜B&h_U|V?ZC7\q>#eFɬ8`@Ե65Cg_.!FWNȴlCb< B oBp |O/58}b+SoympP8-V13ɐʝ,FJ WJ8*-VoD zܗ;·@)MS3/"~jKj9PPuICn^Kaɹb/ٕD+S}S6XKDfU1G\m BI!}hg Zeϥv1ľgRP3}D &]@8RA%aݐcJC5  0Q2ر:PBۥ6ď`2&/GYtTojc2t&%yo BUE]Po9[~4e*DBP;PHR~H -O#szΨEq+*7ao & gwI~k$7S?Qj<)S8j^RuNY/E7-rV> ~2Q mfmրFIw'H2cFhWmq.Q̗%ËJ`$|1}a(Z|MT !M/ -܇F7x1&hvp0dm}z4[ 8\ȯn0kOg?[8 aQȺv̾>jH.!Y&B4+Njރ|_x).̉C7lN1F%PuNij>n) /'cx/I ttxfewdG :xƵS\?>?.ij(sT"wI%O+#mTweS32cJ9˒U,kڇwhM~C=6?VE{,t cX]u)2SH~PM欭Y?KF)3NEL\:N?ENT ދO/UEv&4N!mq5mclbipv>a? .X A63W.Tp}ixݸ:F5ĥQKdb2? 3-E5bx`pt,9o1ɬSԆv#c?Uew ퟒɿNٻ3d  +zCG,@ˬwy `= $dhtju:1/﮿>f.3۬~7g&}-qezIvOm˭GOḵ,^$s0;&i:RȶV74seXve FD&A#z[}ڡ]om+z>|%zæ\6Z0%=N%oC-Q("a]Ky_/ϲ@y+*? {F:_.iS.JG L:&ӑ(З(tHzyLLyh6hB5'3 )O(oCRމRZwq%?S˪h]]C3. 2.\~ݕI&)JeHZ P94?Ԕ䵆ӡ4Xd"WWGYGĔr{rl?Nl`/9V!iӅW(xH(_5n?pN7Ȯh D~Ș*RC2ԋSUCe%̐ JT E&u,/J5﴿#qhb8X9j^ibzQ D$@}NJylewj՘JvQ!teEIznQ,bcNܔۀ^>ݷ@}8Ӡ2 uw97NO)~ ",g0f[G]]rg5!#\boDB{}lǔ`M(hCjyG=iJvUpE蠦Ϟ'˔skkg$nh_/1rfZ"HO{\$,Ua>>M)wp>7MڦObFðvSyZ_v/ND8Ǻ9u@RQ /tQh\r` Wq:2omX$#"R%g?<= e1Js MS$7+pOFX"[jV^wة,xmOTI٬i)5%eblOH*W2IJ:T1֤DZIJGdNV?̥V P6C<{g%&u$Ƶўh-fYC{JeD$8ZjF xo$Ĵ]hdP5Ap4WKN8m1fRxlxÿad%fЯU}oڒ!9(97ztoΑGMIvP,E.N%~d[)05`M݌-8E90z59$ qa8-'DKipRG'4'yd 9/bbлפ_Ѭpߙ٤Q]FztRA`wnX)Lk1nj.e: *S)\g?+L!ⴄA=$T8`*0wOk,))'AZL90a45t|ΫەlY6)M]%#SvWKt-ghS{NlH5QˀKأOO[<nbi!1LJheEu01 v5ϸ v'baPppepì/E8dLɫT^K2pHQnrq_颼vknLK- Eg9U$%>K 9Bi2b̊)qmI謵׌ݶjK%H${Q \җKP(sw J2E; xԤj__PY~eXt0P{S3\lmk[-L%?!Abקāh0t+E:%WIk/Cls`Tx 6:KHnU4I9\n ܎|1Z1" $uGbq >ZDKJ=4Z?O->!$nJ]QV*\ut?To4Ҩ@\9>lcp޵q-^yx&IC3Mp'o BRٝdV*W踳Vm:;녙YȀ/Q^۹b;M|DVHII>ѩXvk".~]#d+=z೫| bw̼#"7P2ddTpC-:Ck$ⲍjijK:bTk!|@gi\0> OPGt;*:/Գ q A+3yѽ&Њ"DWNt9ݷ+3R=5 ܱzò,#q86}RLJ{3um9 }!z f1d \T!7g XlȊY Q19*d` tJP>Fu׸1r}^"]gxLnPVGvAcÎ~~^Ƥ!No\ʖ7wok}#b^}Lf7!Ҋ~AChPMwqT;EO'h2./}Wnm&P~Qȥ[a8H3ef#ļ}!:77@%n%cv؈F .hS{Q,8-f_81ݺ]:#Wh7 ~O0+XD|pj;VCA4*з3CyuK5,׼J,]ja18"𞹉t<RnIQm+>({ 78ԇt[bT^1ȻO}'>z}P/Wib-_> 1E?dm_3 ,aoGuîC7ld+ W\ge;rY"Bhf0yҽ*'r].@nRK{fۙ- x(=w\8ԿWpOfXƏnp:*X6IaL0sWģ@#5D }5jç*O]H=|閰XR*C#.7[SV%@o,GsE 7^>9͜_<obg&>ζHh#aYiY8|Qz@ٴR$tNt"al-EיC&3=yv $~1.< ?IE栈JVQ)[U }#6x# BT9p∑ JPE0V0Z#}Xp.-_a8|g-feq=9ȣxKs442 Ư[(ºJp ‡.^v ̎ЈOc nj^AD\K vQ˪T-g'_͝ww$OQfZ6îR] ex },fl@#6*+0h +X1@_2xC bBj8>'p~޾S)6+g|ak& Iz:s\rU.Z~1ʵ~䜊hTO S gaP WP8#r͛x OPW^tpZ`襠mҁ`vXAW zЌQ $_Ś@X墰f ~n6ȟsuH6jzψ牣' ~P=J$oxɘA`1m)!ծe8gA *i+a<1`hxV`Zz{T}T&W`q^/Ц(W|5o>y[#lOv'\R*-S' *|sXq& +' w볅H;X84]`~EE'Pp7|HXN||O²aFqE4tq L5-+RpyI ?E{zQ>GCxԚV%5 NVpc©/'թ)GF_:#L}xx,yvf=ppgv~! :o2Uw 9vMѡ&ao[!1.LJ1ae8CoI^DR((̀M3 <ZQ]滰+5f} :a*޿A>śA׏G$N )=lF d_#&-^||Yc[0J* *;xQ{}Ґ@&w#wR=NSgRGF.t _44Yk|/s~EV E?H^<k(JC2XqUV0;O5av"b(5\?s1#q`Um6=CPt `FtNj[L4-k"I]\9qq`@p"u0§n9])@/eNP!YQgflM9e* El++sШE@ݙŒn;R@dZr95>i=ucg(L`Mo+o])nf[DG;SCl#vؾ4y_sd؄N{jhm ?YfJsaOZ3yIQ~ AiTt2S g㱥(Ou:Te5Q)2%NJոm EӀ@EB7yI\/sWbAxݔÛm}dL"'ckn T"I' $A`I70}*m1p;` SXPḏ_8Nא[ }9:{ՊEJaGޔaodOZK[JzW qS=]_{# Uq!wYyP QP,~txNw%5 ӡ2!ee{ӛXҿy5 mdϭkm dwYߏEփkWOc, ?j-~GE+'+]r<.Z Вh oU[v:R 䝙rYkEl;3qCb`I[ +~un mJ~d>b's  <\SREB .A6.9%n{ W[!SgeGjpXnL]5B@g/FwD0踣_eR$L9lH|4 DR)v{@FMM|mEeP6Z~\Zg߷@mn+rZ] :>pA2ÎF'#qOd}3^- b5ktVGFNV&M4?L'@8ޡE P Wqw=m pyq蠐2\_ V Id:35s+o?N%ELƀVv;P]q~~gceA7\?<{4= kb>5 Ȕ`P5+.oFsoȣ7 c\dQpd%,/AwldmH#] rnepbM-3XLo$ie.6HÞIcTԏ}aƥlz!XId]Vora `]hg˦6TH?y6Yƒ NP0!T]]qaU#1KkynW*aHҀ!#=7o0 g\f!!Hؾ]0T N-g| UG|C]]I$XՠT]! RlFv8픓qѵ3\$\`OZvPK\'㰚׊?DF}ڜ΁nsnq  ֩! ~s+LFz#ݵTvc$y˱{& =/'K=K}Yr'XT|EV.fF j)`P)$LLZB%W5`oi9ԡ7 h_y&Sg91B}ೆ'tJFpsVݨ?"]-rϢBX&Aөi,LE @J=!IS@v"v9]eD'{e!$;GDO-q @'pΙmOƥ8#'(0&? PZD.^}Fu Ƃk&kGLc^&Yp~56 kC<,w¬fOjHT}H85땠<BGJA@:|mw$Z!EXTN48\|f2ġ_VC -6쌹r"I/kտWEbG-yvz.7 3So䍪ߜCakz>_/0I r,`rί+/7 +[u&se7-͐ )fkGV]nʁzoR;Fm\svrLL-^Yb;d~&Jhͮ]FU_4گ-XѶr"_ՖU +/TVXqnpkdbАJ<:bKZU?`hv-YA- ib Me-zw+(Ы>y.|[Maf!vX*H`u Е<',n?>b,OO1P mC wZ;ԵGwllgNVOIXyg\\,A3kP3$6Uj&Z;+ќ?юžS8ݗ+x]қ NEV0~ >NT]\Ԑi鄌}*G!<iOcFC^rD%Y1;FRkMW `,e"g."W-~ 9BŐ1nWf.-3CIf=50=256HRe6Sl=S>S%'Ti\"eĽ]%L[Cr0{wT؛;)-ʚan\I7Ra<']|ٝ/KDBL8VVĈeT}28R6ѝŏ▤=@lyHϑ`8J}1] WofI;&9<5gI:ɳZ/ĩb0IIɑJ=;%tsqV.Z7,.<*Syt&.)h{ևc-!sf# /ݭ 8*ܵ!ZeJ+z$J^E2x>8g ӌ~[Y1d1EQ~e̩asp!\0"x P,,VoπfAq'R6(l ѭɩOm# 9Fbr\HgP_2Q |oi+&OYht1\K+=ho$Fb)Uz=iBc$q`8O 9`lΨja ,5\?P90u8޼t4='4+* sNhMͶrUUxb]I/y) .\Z7 ,;F褣s*N`%Yht 3`s\b @Bwt<Ҟ Ř*Uv G齦5#w0ŖiIP9kQp#>0V&"=LytjBh'Tח"G6DCYeqk"` o̺F P|4ۤZFXm! :N;ō\d*I7 ;gĜf'e)33nBA= CKUDOh(ղ΄`t24'S-f@Sڋc#O"?LWwq0`=h|kaKo5{ߵq(ϩZ觴Lf-s2=Wc볽mh3h_8EiMWУ0/?1rX΃dwA@(Ȁ'J9K8}~7K]*}aLj$̠7Fn"!'`vZM !2EnqZJTFx22e9J\< ;.*Q&۳E66ܓ -2 pes. tzTl F@/{[;NL+?9Bp3}( UV<3^T kbTfm=`Lw`zɑ-("7tְz>Msr=/1+"Y ,K:S]*(IkvQVSYKL~ &_m,d, vBګgH@l~!hvzRinzb^]ͺQ0&.;r(YJ>W<: !! *Q|'u|)csHnSI%GؚjB%:@bP6<g3=7I^PBۉ̱1f@r*px4\=OBg}9VQpE;䜶⣧pjꝙBrSƀ>zJET%~y{4fr(@25[ p`Ab(>u5O()6B!6:/D!,aVKt9:.uW7{*>]ZڷR#O$rx@Zx yc>O/xLzUHcP_5qn).;,8η|czG=&\-MNPe4i) 9p8иV4#:KMt5zVAl[䮜HWKE}\īo]Flb~ \o.|*T8W~HؗGǙ'`("2hR@bs[:/pޛCxYDw9E~a{ J2=naM #7k3!hYS"KzVQBea|<3*X7;Xr6ÂdREѼV0ngFKzV质|h)1hE;ݝy,ǑNB=\OD}"[8g71A ć6xq'zSc'^iz]`Nxod1:9{u' ❩w,_%(wNt~2 \}+3`{'$.( 'x*7V'ȶZ>ЍIq c9%©NiKD+CXe #w`ţr+VQ_ӥ:1EAX%TjkH?'$zz,zfntE8]dڭ~Pf*f@1剂к=:  b-_ΧQrF&dd6qƮHv]jr\Q)'jʱrӏ@vm#DֵV$ޡ[)#+12?lfVq"&p4Eed`ӧd83>1+qBJqLVܬQ[-G!&7/XN/J!RtC^i lp4K&LMIptU}n V5yNJ 4EKJ|]1io5U]sicY>nmA$4M^YK9.d1w='J{ߙ _TFT1-㝈=e?>#˂>3ٍJ8;>,G&=4W89i4k@KIb:-ӞwP<=z;izĨa R:ǀ j.a սs4?a_H9 /f" άjd::Bl}ÅbFҏJWmD) BK_i.5Bb⦵Z7³K`!cBB0G,E*];N;Ph^-hL=!ՎfNH)PܴyMDtT J-MNP!i:ӈ)7E,ihqjD1B*,Vj b_b,\:<;9٦>1=5QJT-uF=D;om)퉚~(IRBcb L/RACٯw d'TtQMU91>fC-7m|2(~u 5)u(q^2{"Op8k_ea)h;=_?Tർxn:4*w{i쒏Ul] ߿b!4)Zjwg_0JlAV`UA=g`{t,݌$\?R^Ϗ1űO5,xd@5g pЃ!| nB'#Bh}qZbHR.:""Uj J2QcN;";y[A!_?_mk"Ie_A>"΍t=+j1t$~MYBM_MoTl5o@樎G' ukYͬ,Ր}p^+17.a+m]xMa'@\wdaKFQ!^93RCJ\w rm]xWNqtrNDio]f0)|TyAnͶ 2_3ƬB\woJzX/9fz Ģd|QUV1POJXAsZw,0ϊv謒EgiĐe D#[p, )6.""IY v`̺Ş& !dbci>TZZ:"S@ȭoi2ɈֽX6UuƢ ` ^z"+} Δhj O=ilpA?Ԉ vDZ'I)c3VbI E &7sى U6dK ::"m4ݘ~8 kb.N"】89mBgӀvm1?m2lSqށ~#lj| G͈!p_xgFfy&k2{|Ӌ IU2|d}{̋=NO#scH a4#~>vc[=T-71^~*#EW#{νlQe7J 8⌡<^5 S>Y _)-y6 :=+Y,1}R) M{p:yTd' J]wt`)S!LYKj:A:2R![N"uxmD;>I&=4M)`Zjd?aVÿN  fhԫ¦Q L`fX2dEp.gmz6; ?J9p{ndN0Y8r-B矰v`g!lp֙15x_^Wl" <W#;S?(!@?y%\x/sYEqDӍcXu|w9A+fNfR81yAp׷Jw4a>PS\wR˓> UGZ:_^3S2#$.`у`6 {oLY'k;9rG,\S&i]C!dWy~wMTR?;"|Mk@NQmlL41$m2$w2<0+Nڥg^{,ºwKgù'82$U, NfI=mu=vS1OyڷM;>OSmUvgf@Dȅlz%:NCp  Bu',U}I:&՝um ZCH߈ Bo"vqԉd>*P!Ղ&s& Rhdu8Ax+_ ܕ'̰;=bRm͢Aqp)sE5ZL7ۃ9gPYu؊,Q&1`pFvm*#QO]2ƞ\k8ѕݛq9{L0 kL5Ϙf":Tj"CA 6%ߣr));c@c4G" d-X;+Ukb!tڎi NJ{Yղ~4ѣ¯2Ye'x0N}#6pI95 :}eBj.߇Qu/x+w4Wk81|v;# QJQeNw6={dd;;!.bƩI.5 b6N_K\q8g.o"VMBTFSMe ֒6ȥF?R9T= `Nհ!zot2NBup`XlN3IK à&ͭlc{%2'G}=vm\rO5p\9+CԅG 7Pf*zz"$<>+^VM/*yk 9rffpY,6#fTEMͥ02?= y83¥!u ʝ"ؑh3=F.l="Cѱf%p[BH1=uؾ%MK'I'z88 xqnDk?$ |9Sm+b3ݘ'\f$ҴV=5f~X>K[EDcݒLrKE(I/m`dq7)R9qrBHƊhPY9@_s 9p{zZ56 1sL#9h-˖B ҳ i;}*x0qzKoOoWx!=@Fr(FB>þtzvH:3|(,PE"AUSkLy6hR56:HPk jaa|r*6M'5gjL?vtԸU}y[H5N"HDm%ɥeB0`R}P-X>Hk&Za ۖ|ǖ=aG>B AuRf "R9Ґ(z7`zC*iiЮLӪ"8CVUh[ЍkuNJN:3AN#p_X̑W%3 y=0ᐛ$:E>~ &MQV,+B bblwΨ=,$xg:<_,@`XEX 񊹧3C qw%.~-qQj#&S(*5ܸ⑙'(|w9|1(P2 Mieۍk l.aQ0AXs?9[}nAP\bS1sl=R:b@P@p!xPcW3q|YaP\ -ojFԻä-gДPz:Ӿy<ƻM]X e*+$ M9uLtNݑ_:PGN %|f qwmfn?E3:O+dG;a!R*Vuɧ s&>&2~ ۩c11MVp v1/: qZx}߄DTO Qs!KTurF_X(Yz~b߃KlL2 05"X]d?+DXƿ3;D$f' (S_rl'_'C=r(ϛ5d =ᘯ-Gq) µx2~Ek*<RPR-LR26Y`~+Ᏼ@ݧSA$j#y@)0c6)ɬRGFoCaN}NsC8e{6ҘnřX(l sRar%AiE}IfS "+a>O"/_{hq/q" fAAZ.<9iY$gPշ}K.XM@ [}ӇtM]D# |24 y'R| Wa]º-I= +6-|/WhCGƉc&'Wo@l3]){fnTj6`2[mG0 C<f<\ &6 n) n֥k9[_U_SO4o% ?M5|v9 Ң6'RKCtfCG=趜dњ^Ho7 c[dp]* iXX6Ղ1G<_>,ּHyM eX$"`Hx ,y$D28d[ȃ7W,o첗gؔڢ솚K%c8ۥ@q36e! Ofz%ɲ:d[ܣeI]6H?49@ca9a }Rw9} ;YX^Yu 103W=a| $hmϮipNS07sQ 6}DAWFԁDz>z\vޠNj?yޣcd52"֦BV;&7B-xw2j0V_>ކq }{ F5`qNtOUBiJk傛BbL/p+CM:U/K"\25啁tf[׬N ,Pd$y^6@fC!)n%lDD105?.Onz _jwI2쉣g6[]>ZG`i!|B.mm̍xÑH['Br^\h(mr{ :*hgj &1~b%h||2Pd `39aQ~=t ~b=36k JHa6Ӵ#?T-a񵆛2LS/G^J>[6{P )*Beĝ 5TsvUY60MT1y/b [D7 r6AD'j BUf{>^q75CV!tTBf*v@_e: @5V ȋ Rt\u,/1'P7`Rm8u;Җ+yu&WB?0C@J}$kJhnRFsj׎$ha,uuFej_Ӂ»v=ha& yaA(Ssf3eݼMm`յHjB{5]Wf،Mf|4$ ]+x]Yı™N1tEn#셄b\|W〦,e5jk+M,%d 4 >#__7%ӬU# ?9¦-d&#G5GRmά8LR*iă2v$9:/Wݺ9%4D+D -{ [4MΩ\ ,'̄S7L\Io~ӓt>GʕՉYxaL j$uͰ~[VENT1c:2Z@s&uo`ުDoLigǃƟzլzDL/]4A\kt>z){W{>`Oޔ +Rl3_/Iy-%06wט4$l#ZINLy9NԽ[~RY1+~MTt[k&*| g~FZRG/Z:Rװ|nKig|/á䐢&VVxG*-<]ɩa^xģ-]&*PLKI4c뉠S @t(9^ &l2v28T)>@A,P ~0l$vn<2v֔')j m3x9F`}ZTv)D~ԟf UDh|p*_Y"{"s^i_\t3F}qwGRCF]g@ !6'ܡ?DZrݝ>Zb~ehQ .?, 䓲SL0bhհ {,GJ~01XEERc[5ʲGUXur,Uw`s.)cB+bΦX_K2I [_ qW'K&\.BЊ3 &kj6*:GACHu%y]!ɠeb0h=-Ck.jQfQAKbʔDddQkNpKJ\BzgEvYszN ]]#,V A5b,1E@Ǭxa[?[>&Hvqǩzx}mJ9EU% Ha7ȩ zD0t6tGju4ܥLv)asG{0 uMcت1eXt8ifmy,=?ygJ^I:c\"]r |DjċD@Kl(R8G9(idyW`̖bz˙VCOJb8GOOg>"8{A9#O r(X?ʅ-ݶJULonBv#'k p+x31hɱ< mnc~ <ݳY'%\0s#d1!7>w<ͯ Gm$2[LK̐r4^]c,/8`4qr B @[x'uBUu2Tn\4LCsdi(|Sܜx 5?0>jt(¯e;+R|x .rg4劵ufH:B![IL9MN@FN֢oǓCJ:31V[%> > (&[3\ڴ^*bדJJ兽zw9*Tt?BQ(:QO\,vh_kE=DnhTaW 4llnxN}۠RdHA!<;W0f.0U}%AY6C')%S4'zg:7 s-VU5iWdsn6SYX^䳪,+0&ȱ c('y2OճZhv*]PS-3z&؈{9iZp_ i)Emn560~e5w?51D| m"A&i]I"@صp`#6.ܗ8:=?wųCmEnĐ`:yY ]8!qXLa>یa8CJji56z>soT2 fTc،IIoMIT3՞D'-}qK'T5 5; B¾zot ,}SB ?gWΎ2ZnE+" N$4AHʋ @sbzpeVw7˭7&٭ǫO]_<ȝYRjRFOx!oYi ASu:s=4ߗh& Ċ0dQx  [^Rt|s"X:μcp7gTBQc?uLz-#8E'4X74 L2BRkG8~цrWݓӇ3@Nw^tn}0DͿKm $2 A5<r%P"y;Z1I%L!H?c h22pKmgGm+-{*:[\Ȭ:%[g3yҎ+OJnd׼1"V^@]fƇ[.P`C i8/?HK*l\;"s|G&_vg.>-CU䥗XbQ5p_;("N*l-+Rzw_u}ǥVׇrJ8ƣ^J%AaCE.إngLpu\tԄV^q t(t^6ck* Fz0l9n S*7_7+LގzC$թxu7F 2`.04OQNZ oj4"U%2LO`lH'YÙx_T^Frxol)DBQ(c#uaLmقE|Vsl jr^|+K?(_/g1Au-\]ƺ ߂B5Wݪ+/y?3 9xf"͢wR9j $o ;R?̏¿v%xsat9UN U[whY ;uVY}Oa9uosI~΁;56 1&}_;j/B鴋pG*6]+T'h"Z ;2/{ȣvH4tsƂaEN^dFq2}1(ɂ/<qKL%;##8hC:"c̨מzxHPHt;vF5JͺGOwyF`RO yxl hKrYHWb.ꌺ4/K³-={\gTf 꾶X4BzP]FX֌ 5Ulu}_+hd>cp& f5c4pإ4>J ljf}E7Λ>'g.D$αɇgjEFJDԷm@ǐj1Z]YR#BK40*%c 8"W H Ϲߴ !+5$}uY6bV"jU[,_:߾3L+1|,.n=ZKE/!^WQ !a4_m^| 174{_Vz,$RkN?̠9+ U%"B>Xɣt*xn_iC_"+2a1oԧ[FjGg)xƢՖ]*JsV^3m<"DZw|Ujc܊ŧSAמ=~8g8!l5˩_ר ,V`郧QF5 ciTllǪj֩ hOxzj{2l tHx%z!UW 4?2~@:>R G ְg2:ɳ!-(ٜsd_rk/cB5 o TY=H6]vcеT &䛀4{E_ۥ\61dᝋ,"+*ʫqlm"J-d&b,|wUTbD!^Z[6 ! ԹmX$3.rT%L_ z~V4˟Bo17C] DSQbuU౑y)! a9/ДAF *t/Ƞ(wd4^\Gfv/)B`l0])4M%4>GHZlxWh\W @t:b#c!>Rc#4z+X}2!Q&ИlH.-NwkI'xsPXŠ%tݎRu(tRZ7ss5܊\r-f"2 wp_]' vz7 H} {nPtv)dӲ0'dq{c]#k2S* 8X?`K+$~ΈZz u9;,A)ʐ07" Uސ6&!-!7{7or7SՆ>)1m|tj~2xUj\As*WVH3Q?*/М>}BeT~ɫS3)z+~mVпf('mt-zQ MIe ,Yt!/,N\\`(nIBm<|FKLfpz1,H̏D:?xx2B}Ĵp®3XsgX6&- \#(IbCY aqڍG"O^~X*gd"ꈗi1%sV3۲d^++3d EI`!FoW/GĸK0,6$2 ]=cΕAi)Ws. ΒiNGbˎNy!khy~(&}NkuVboϼTUكʚVwr7Aй IފyP:>SI"gm"MAK2uGLݤ'NMJ,e4^eVwh5tq}T-/A}>R-пzkAGRiLOT /ꜫ8!m'$wA@[hJHF7l:C;a9M&pP˾A]9R!ntuY78@e^Zj&nSKը+h~E]W3`9N]4 FwԳ0cPPnd(҅G@РPP WkìE^)4>"]+mNJn9.N$)0+-Ģ/CN2(:N(Ѐew߶zRCd8M`I:%#jZո$זZ{H}48}#A;#9ш\+Ҁ ,9vi=پU&~:5 atUխCO[!Ԅ2IDC'>SBz?5`;aT3kuBwZ>9}אּ:SE$ $g~P>\5ۤт/8#moK!*0Hᚍ&qF|aQZ@$0x%FFئo{sx@ Q%l>x`ǧ#3ӡl%3\͠Op6~F$hǕ.ST$ ʭ?o>¬B0{gN-g ٷY!5dlX0cz'E}9鯴. 4Q+~S1]Ŏp^'5 [ɐ҅jN|ń (B>Woh Q65HCd|ch_ ϻp{;0"3a?SOƭF<c,@0-BLL*k)~›3qN?԰'ˉ>GC|PSlN꽢IAZ. Pd(p\Ypʉmp? H kdAFO2uH.Nd8^3wN[ *f6_jl5z,zU6(l˪҅inpu7am4iyK)XjBi?`啎"}y*Ps%t'qo;\B=A[ɌXeu5=t[VkgK0XVPk&F,VTs̫]I M L0${74VorF Ryf$,][ QweG7=+ DM@ڎi[_"OPm`?o6)r-c9 aFm])(A!Wi[u"9p9ax_Ҍ:>O}i{$5d'}:Rx.ov Q]spT؎l&riXE8 턤h˂DJDjBbpFE.-kvv's$Shs)>aHK[VAH491YWj sea-О@a̗̩9O7 ’KHm}3alMUMt7%eW`>A0bShG{47.KCU.yO#_ 'X\ۃzj(CvwA Ou`  ȅ =˭H/ Օ&SPsg jRilK #`"%bma_XλY/_K::]+hڅlc8-֚S}BQsr>4g 3()`kY9͞xPv_Veʚ0yq{mu$V6jΎzY$AZ[@7FhmdЫ;gǕf.;H>L ,4=Pғ1^ p [!9LA^S&>H32FӤ!֕Dw/s92Ck+@tJ%6ְdT}XLWlkZUx\Mf(:_ܭ3;j'PGGJ7I;Rm p1(j/6U?RV~UR6-{ qf@YHRy=uȴ`EuMA2P؅ǺȍK{qF?LQX hs t],]肏dDvVvIjIHWh2PCSVcaX+ʮ2OC ~&LA:*M{Ĵ<ƦԻ*K4h! B)$J>I㏙uwE2MTMf϶(VZ[G71$alv@ۃ/e+Aׇxz1o +6q__[2\>X\#;|uwhCgv`Ԟ@3Uo];5m 8xRdT=Prg/fnjNCLM!jE%$H aCu?ٮ2\~%6Z4[Jz\ k\th\%#]"R Nmߙӑ ~UBcf&S&99B>XH${?'⹜DRE -fH׈#[X65U`7(mY 5ur[җ߯ y MX֡=|Rϟ`.f!1CɲH҃lԫNj^Kڒ /?v˰d>J琢X msduXxZVo":C?{Ϭ"lRvnؗ9*ēe% &ġ#w5'u8[4"$w[J#躷 L˩=:49ĺ*GoE1o]>5'nqAP=|5rFu ks|i^_"5hH4=W1UQmC ;vj 5ϸfOYGr|"_x ͷ2D|/7S!OwjiUͰgkr@VKC{B,u?W&M u"Ud{׵;ҨvI9-3 tFb#sO ePng.?V vX~LیW5:P&kU[fX]aVE_vAiA 梓ńDoʥ|WzZTr:d}=IH ߄D/?McLqp}gm% <Ͻ ]"l\iy`ūb@0B]FGF %C%:l;G_A񻙑s^^*J M24JX kh@wbØ*Ɗzp{JF{&V!-VGV]wpʴѷT$|"ZdԌ0B_T7`n6)+L爱Z48 ϸhd89Ϗ.o]rasbU3ȑbu[Hx|W#uw,HjV ּ%0G$0Z̑[>NӋ14t++;}8u7(uz|CLC@_(=Q\ 4HW7)(G.>$o_P\ 뮜yӃ,6k9mi$'Th\Sֺy$9%yT Y<(u"}/!'iF^Eɺ4z6qr(ok_ ĂSxTX}١ 8}LNP] L8xJnIe.sBp9W<#: 0$ k~ M~ D%5Um>><6_ywQ#|&xuITz_cSi l-+_CT`8qvF)!]//c2oj* {i%a&>35ڡaJ3Sv1DƐ1;*|YL,s=cQZ"+_ )u0-owSݗ<eVieV#d`<.w0X+M@=Clۦ nAS}a2R43W&o:5rfe3ZeY/% ׉"7\瘃_σ (jUY$eݯ~/QɕRSSDEZ[fZ>KE 񩎵X|m79ӀH0~iXU9x7"v7}E&Tu5.E&ݗB]7 *Q~OSK`-vfj1P*' tQQF^nl!"YљOpSS:7E40\&ZN[7 &{6Yi]9R"N{_r֘n4K %c cm =eO;6Vcn'\ko*u\!XO$6T'ueZhD' iDw{&㯣S޵$k-`_e&&(RF`Z G̝״r GAj܆hP@+}yTWsun3 uR]/~¨ݞvgMVS7ٛF}\Q7qj:%Ml`M-BSkf 8#'Ay5c#tUjAS-V$ M44++ӯm`=ė{[ c어M.ŶqLHR 0ɷMLu [P rB*tۼࢆ?n2I 0etc{\sǢ"rϦ;M<פMYbyO?H?wR/RӐ=o$5t_^C9GK#ϗYJrk"nx0fvg%Pt1 _H0ۚ_ϦW'™ qG@\!+Dh4((XBUNu!`})YHXT?$+@H6RVky ?.MPcFVhP 급J^ qXX nC歯 #Cыf/4n}qwY>6C:K'nfܝDZS;^㗛@!g)I@m;ˋTUGs0zMQLb 8T !fsV`L IGMC}| I"u%hŠXa(m5r0Y.OkfBۦH@ֺ#X`mm LU~T!"7><.2Ȗ/82kTGi)dZfWYny.j޾uFH[6elgs]wmT R'Ft" U͝;~SzeR>sDuI?TMJ{+I F :D9zv=߹pN.o-] kiҲ}FSGO_fy|rt?vr0u`E\FM&(Sy>Xz URʷ.(,IWbo:9 ykWbй43hPx9Vߗ/FjF  !HZ^"e] l@ -6C2 DJ]J E^ Ey`֢ۦ,.'{EMAwؐḞaD=`W9p1/N%/; E|RYw<Ҩ7;9%ސ^4eVN}<&ᣋ$.lˣH4 f;IᴝJNF.2tg e.m| AD^0 4qnw-~kjt xzԈeI,C^-7|j-Z8@ڂbfoƓsRZ'Vwk躆bnA';s2[>aDQ78󟩹:tF/=YvJ&ǔHbp.GtiY"8SE%쁎9GW8lS؈ /{NXFT>T[ {#3|&5ޣ05fC/fyafLWrNh>+D&ׇrq".]o&32B$BZ' ,BN:$f(@gp󧣺oaS5D3IhN9p7}nm3\P Z,Tڥ(qX4658~⡱N/$b9B\/iBhy {23舩Vن݉ȮVA㉛IISUw Zc Ԕ]δ $ ^oyWI*DD]|Aԉo,lu X3z 71Ҁ[g4B#=A>꩞# ќt%|nQ-Kl;Axf'⿺ X^bI&˳jm!j^#L`:( 'fp]C4 x+9Ǯ?O#-W$s^~L} }D/i6;8*MH?77OF;Oͥ0Z4Nrki||қz24ENev%Leҕ!.-RۺTk,u?&MTniŔFFORcDZ]3iQ\))d))x1}JLzEFjȭnB$s$LS)dm)&-[^`/`,j-b@h9,E*Í4Ipf&#tK&sހz:drucbZܮASӧs:!%+Nr1C?h˧Fy4ۉm!^BCv095R폚Q _r~[(yS#,&iݳly0М1mb<-)WqAbKGjKo;@g.BD#!wčcZ"o @nThlsLݨ=)=k ՃRI**h'i4xZ_},)$\;/3ݽz`7n+reV$OWU%(Z)Ɇ޹`p jgQ>sʌ؊h#91Gt63!"(vA09kfHh|E1 )+ΛhEF?VE!Qp6!qk^~^qyLYCDHnp$R}+.v\)n%_I QC*?>)&M/4)eº/7@+>.a-F5Pj&j*޺}Be[/LAjܬ$#}adiBca"e;q 245|U Z|Mm,5Ij&36І,Wl7.mB2TVf@GEH:aqo! \ܡёӾ]8mcr҇˗2_2͛>'α*lᇹ gy,&X i5f@p`{WW(Ya^H$`%SQ~gۃ.TQqhX} DQ\b摺/0 & [l[ <^t$*C;\p~b ba}4,L MpuPFW[N8Me6ޖ3:>Hy,{@= ń^r-MvoyOW8ZLj˻y[d_GqI^u-lSx w $bQg\EE:/v "SeދQfB)\^D{,G]r'Q,n*D&[tш!:AeoA3tԅzle,X;GBhbk{9}843i#<5o t #e1a;Ǘˆom%el'> O |bW@rޱM;_?1D$"~F*n"tRݢq]vG{hwcaı/aBƆԳ#&̽hsѭ {GBMd1 Ē;{HpV?eB ?dT!4Q&@ܺLlt}4li%GnF3?5CAX>Nagu R3s-ĂJ* &L~8 򮉞t|L "+{(Dx !~G !fyZ63#']Yҥc`7{bNRhk l7IŴ:;6O"zK3o$C w ^`P=.;/93K1$GiѪVV/vk~smn 9$5zlS -j O̯aG[%襂\Oe_1ö ;IƕG jѭzs"znmbmܯ_U; ;[re;sdum JUq*MpzPX+Fcփu #<(vXJeJ]'&?Ǘ#-/R3ޙ,V'[> EgNA`,dxH v&Ih@JB$B#pXw-*.-'cÍ[<4򵡱h #v=}̱p%fƭB;G*KE.G' 9}mV(Ǟ9mG`ow֫:֦챆qUBK23(ziYd& pOR>٩_28#q+raG]C+HEHe/`cL}kG[; co;lC,[ @E k@>XL|1C0*wKr0uv[㢿[a c2:zͶHqB޾pTpI 6?4ӟ`u2 CO#cKd^Ptg5ti|u$uNƺWЊ )jn LF_=BuYJQ5j ~zw8Vdc>@&kpVmʉ+gE~69bN6;Ohd$t̚0 ÔbzsX8Ȥqy!ʌ(v]'w6>qˡMǖKl[`YA-7Τ@`9v鳒oو&ZeY鼲Gs'I[`҃ 2P1*!X]UpN#f$tD܃TlqQ-语'hH1Awo5skIqBx/7QDP~ik4̜τ@7ΌnVBe͕a,6!eiG>y$ES#-~֛.yWSjgjZ i8 |}6'lG{B0PFl86sZXDUn2JL+I^$Q u 5wꖸYyB$UKCҾ]Lo81ey\bAb!Sowɽ&|8$ȭhG"b<Ƙ&v] _$d?.Vql=F}߶TXѡ=$NԝEȠBiY jV.w]=%`aj!nă\h$+-w0nC Ifg9hmL=K5+K _,F7\gQpMY˂]WPD49N ?վ(0dʻ~/|&I@yjۧy Ct2f$.pɔEB{{_҆"sBa߯3>bǹVn|-7Ec GIZW etHESгr t/ybH$$:Rg:I2.Ʈ;c'fwYa=+# ;,;i!A{qh مfd=>'88%XSMƭ$bSQ8<:.Sɼ 'iy/Dp d}㓶쨲&^h '/ Iub S 55<Ě_7 1X%Q*7 Ņ)_ipm_tWZ;xnK Bb:K„[pi7qfe(k=Xм х`;E) s5caREtid)Հ7șK, ͓'c&j"CO)wN_ wX8WE+Ć]KeADXΞ mnc>@_h[ vo{ے0)̷Ӷ#sBoeqٌaI }f?T :|D|S6$8ϾGZğN|[[\2|嬼pv b#tfU\np4jZ'h)Cց4HL`{H39/^Z1d|0VZsƯz uC;cG ˆUi]6MMu%Qdzt|`j7kŴTϒP;v^e' iܮivb>n%uV(8 9_~zt Fl:4=8ׇ>:)jg|0B &īv{y%c10]~W"Ҙz'97E.?9_1[יR;?DܪAwXbޠܼ`~-{;m]'Nqi4 [/mSr@ZQ ac/ksJmp$r#̸CG؃)v;0 9EI@T!]^:7kpC8CM9`(!opkv͜M`\5n0wZm#@N>N"FvujRfb%/)zt <</r"A$v: t&ITZ:J7hO.ۥ':#*RU) tMVj:Ll.P^gڸo)vEM(G2 Gf}Ь~o7fo]%ee z7lUa?nR^$V51b1hD@ w2;LԄs]'.R@=˾XNaѭ<:I-S6 (8ue`$S4ia_Z27q`:MȆ2K` "n;Zee@?8ğm5@͹Gu ^<O,W@/N_1(jFq=G3Crg*6U]'qKA  ;k^._NB56om/TkKnEįb -xOAW#JT/&܆ȏgbu!u6ͷf}5icE߽%?)WHs!(T꺨Gϲ/iN/U9KF4].".^Q0JN &r '3Q|x+Й >U^?&Ue H%0ɵT ;f19SL, A[ vBIC 4aK7,scf,}pNjn|, ь 'j6j`cQ zĩ.$ބwm؆kHyKsHhs؉չV;xflA.<[O)L-bGеQioߋ3,,\r[J_ߋ$Y sո0uHzaf~\U9轭](е7s6z2ҦzM|PT_m!ɺ92q<LYoq4uIjvV()+5BY4cCO%QOlSfC{(+m hzc\jUbѷo̎. gY B腃,ჸtΨvόw`4ʺk{DvCޘB`mReLn!f$0AϹCb'2l3ul^hf#q` ǽVgiϲ4ӌzZd-R 6PS@Be"^q?1rP"tg0wZh0dNwZ>D|F8/\V1CRaq7fd3s`FSSa)< ;Q0ӕK@nLYe0^@ĞXLKd$M4gj)w6%`xzBQpJڨ6,f936j]T@vܰOR:%/]Nqx\q7J_Zwd@1B5?[Ł@6޶(wY)}XT`?d$* !ɰ@./˃;FwH͎". ɿ>BhH.1ƪb⚕uGL2T%gug˽?Ю,~@RomcJ[9Rken|kyBg1&KEѮK<Rj;\J[O`%x)W5^4G2+d{;f<յ| L;^qќ#l/v}~rzu+ܿi߹[YwPw-:pIZ~+be[Ԟ'Zë MT-]9qT6#HPL <0Mdi7`q{^yh7@6U#])7g"@1Q1#EOkҁS>R͡޶#Gp:!' ofzvG°sO*^f[RCCG*jar0`g = @ YC "|QsOI;lk1TAw~@7Iʲf z|nƛL\vW^tItJ I!fHڻ+1Ž${d'a??]R4 2ZX$G+rA{g{Z6[a9~X"u |G]Y8i= תy܁7Ԑί."VbUR8zH*7zSk]F:k asYLxZvnFN (] r[^Rٙ("&~~jX˔d0:A /e95LVw\RZX ~ q\ *.մY_~hܷzAm,c.O#8Zi&$QsIJ@#(4"#FXRJpA0Z )U0 +z8(I&hn&ũ`( "!jT{.n]ѳ4X ~sNQ>{L.p,ʹ:lY*tzn) G4z%)f"qO 6b.zѱ ڲ<<˵*eIdP J0=o!$݂ cs0D#8LZC1з w40m#ͣ${Ocf#pJD(rd4d+6EV4몗J1ⶫ6 Ռ 2&p+4h_O׈ 69;k $BݢnOWn{ԄXa^lnk.S NabJی sٶ*h\_ض.~~Bԃ}b55<鼟.njC6LŒwqd sQQ u#Q-f J)(;Ut\]BkLۗ*gF(,RhLσ.bF Txc+rm{*j3<2[d59@3Ր̹fތ[qK68Xz}|}Yg >hRQ꠶Y%Ǝ'ˀ#n,ž(SU(6QKe= BKڻO} Zyut3;4FwT`: ߨ{'K6I x׫xj힃mF/έGq*rS~&472,_d0oRXnDʫ7DK}cѢmRR0xCpndr#?#~l2+4PK:; NWzO)-ä]&|=ӒZ/-9e)&  4)ޅkvNfK4gSb'$6 Z w RL7hsE`M<vI]ݻnBbs'Ci"̪JA \OI~x6)6L:.뮘/p_J$W99xW,d5X->K9z~&LN{Fy /_\tVVEgz AZHφ.xx9Hӓ4&xA6v 5TQ6m;Z,V o̸`cʱlR6C/\ yb Ę״LthTq|4(K>o&.6bˠ}9"qAY[l0:XqZZ#w3| u>RJ 6jp=ax}XGJ7t1qʛ3 >tN Doϭ iJy,?S~vFJ#N3X PvCOEK yvͱ-,`fJu͆Xt0n7~E[.1] $7) [1C E&'|qTi%##" `®s@{=$ϳ<ޮ ;18mp暆Jް3kU9>HI=#ѡWCn6L%%׆lȦ9&g e@>9{h,:=y0H--3cnF蟧#8גj3KuC?*5m < dB 2Qn+%Us+, tW0FѤ Z- 1y 3=7&s}9`a՗t)*Ky'*auj5[<>OQ"$_a*8s).&3 CI9h ')y ? x&0vie7K'/_/ 䟑zʚji+sZ;%h1Jt\AXdo{ m{~xǠ7)9`ﱰd aL̎맡Jgum@D;y\PcR}jr _B"mHoJG9%7"wy;7|ɕf155,yز}`&A:JOژɱ xG'ԮyM0Klx 4P _VT+p*f(BhVH})) _- Ÿ"xtnP "O`5ȫ C##~;7[NPK0 " mOo#;3 O}w7Rh D< <[KR~rRs.tCFej.G&CIym&hM اpjE6cioc~ ?Q]'It'^ I9@"/TVz=fv1L'qZ9"dž|g0/>ղ}-Jg7Ibm6GOϘfR|%5VFxM8×|1B+@(*ꔅDl'e.i;Ͻ J;;(3u9pf PNh$3æ(v@pLH5D>NJ+JD)׎y@]Ki]DQ*O L~q{J#l{3kĬ?„-e HwyDr-FQ)c7 OSI mX|QƨGo׭لѦ=,Aa(K1((mLj禐~d\BFK5%b%I T =uj4.Ƅ}glv_L[N:㎉N%Nq#v_ޡZ s"ńDyj+10+.=) o ǀ]^z\ԲFo=堵XNf2^WF(ah}^|VP'&X;W=xquY0f) 5$wuoЦ󙱎Df uXsQ#Ku-;s}"˧t/?A&UHsAfVYR(rpw^msZ~Өm틕pMSe~|hYkej&r{=Csi`jTD 36r#ds YE2(q*9z]0 ^>›dڀ u-y&{NtH% r 6CǻYYjZ 꼱3Smu7aMx},.Kpu}5<_Nn $uzNU@tyg*qJ Iraن+eL$É 5J\DXX( 024~1˞!o[&!jyoCX HE,ؔ?DTKmCSJ8vP m q u#7Xwt~tGϴ&2wJ6M&`#:_(ҏF .m,ZޔZD߹9NX>l]ګZ& @2:^R%Ժ?ԥ } sAXAc'*eߍsq_i=2}񫱪ӥ5Vʏ^6{J~Ίx=On1[o?Eg`n'zۣA.Vr?ڜ}vE/?ը&rYl~H=r͕o :$qu+ !7<On&]?SLG7 2l}#7q,%!i2ϐ\SyQ퀔̬(nIKщuNҬ<=e` -*z|!B}=5'1^F"1ѧUZnS. rIP`̷C hjB/ XrBKi6&PJaӟ=9nj$`ԑ8mB,Nqffcdg,.oF9՚#}ՕcJ4^b2hBӵ\ wt6M"M:V2[EԂ(3@( ľ2QA%<.V*瑖Fѿ5Z.ru}p` p2 U*=Tl['qw:<˜7 H619 t2Xȡ͜lzş| g @E4`oA(<pa h,\nOK'h}Zj/2Y=`]faEÁea5"B! +k~#l"i1dr!$GE{4܇r &P{1[57wDK}P&wE5Z'?D95qPS,sfW˂+թR1ps‰#{9em7<,}9jÛghu:ha_4HP nQǣ]; 1v!6fގ]M.u(cd@%};^PF~_h5z⪎T2,=CISE{b1tUZH{(Tm(uxuc%At9tt|A]_zQo OcU VEheH2tHXvNt~r9pݕgb]1$d HQ&I{?5ؘY .u?Ť3C6S>|˿W=poj DWWscU lif`<^T&;'w27i_,kpn"lwCtA)bdk)I 4.Z18@#3 Wc\udhf9$"*OX>eGO'\:zC)7tSy%|47HoֳJ}TiyRtqEi vQG?A *1C>N}g'sXBK*ReP:NMg]A| +9ñWcE䱲!wrUH5}g^$;ڮ E_0?tOerrځYN>qP Msȏ8eϺyz9eyM+uX_ ӧZ ,"_bnp}f~''$}LYwb>7T}zLZ'/~me]abEI"?Y96z& 52O>g/&.^E] gaL /M/ bEjI"㖭(RTO*OVPkiY<\WR 'NjX'|QjDpK8/ vF;58`8B yy$SEdv8xpc`> s% oXĎ )Jrdþ(qJUBqvb.L4y˕Wj$͉_ۮ?"j]Co$/-icRS)f{ Ԩ7x\2<\_ E^9W B)&q+klUu9Svy')A>O|J LWF^Q@v'&e-} vCR (-t攙ѶWud#(6Zۮ&H7'؆ޜBiUz̙A6._Jm~Z|`u廷N:l_XXʡ|Н\윦 .oyqO{,sgȄ6eas._?>"H;U=FʢLv!d(zH|-bKVl!74;zh"6sghU(^]>ڽr,;X.CX\. *r۬|1Qchr䌯q[j ESTFDhaf͙ĿzKl'\-og1(:QO(J$qHtuXc(czrC˓/ʒ|Q#O7*)^3;?]cox"'{/Q;7N,UnE#T5`W.pl*BA&h=m겚j$p|l^QXV ,K2{7rsRH(ִn @iM"׳+&7I}\n%#L~cvX1\y ~DzNL,(mv }|xkick(?UiЪ>wB#U*B8$ITO;n)/ YP֣ ʋ&ғ"M%D-rF{YS#7du*|]|O*T՚%$9dޭ".tigsؑubˑ^fdO0/Tں֖F֚SԣLalRE몫btQ/q6A<&.f;DǕS#cKto+3(3܁ȑNov rǬy{J,u,r`}ϭS"wyѧ8!/X(pؐۄ"Եe* 8L<̈2'wz,#0rsa4m /XۄjNK _- B Z7҄nc&s c.2WzELkLTk:T+$l Ð@~#lfIB5*Ÿ~^!F^*v+#B0#c[8>8 Ju.'{?kD,@e1e¹p5q ^H2԰-3}T|F΂`S -TUW#aЛ{Cw\f'; w_ćH0_fécᄉnFJ kNe<溗.Să$Sವ-XipZ3g0cg4ͫVp%?{`D1hǷu7!o{_`w \\v1 ڹ5uęS˨ޞDLhM:5gS%o:C7:$u&_! L"hy;5%7?Vcۺ/;)I 5Qe!MvHX| )CQ{2Q^2 gNQn0J#WK- R!_H Y)Vq0kT{'d5ӍIe ziR lО|+q'2cuЎT$6d)ٜmb8F@/oLP1Я"/,-/"4afk!'I:&/kс"4{'`( ;b2F<׊ !<@ _9+n^*& Oݹ%oՔh_c9Fq CrFċaAUM*\t2)י(aisr$5 R Ҩ Ih -Z|Űzm\Cc )ôag,ySsbLkWU*2w(56t4v -c&h2$v}Ipbe)Dz+ԆEuQ#D>XLzf5wP}ڇjx5z~ _􆙆}Zvd%% +#(3@"G)5(-#xctgX\C8T;%(9:K6\BFėX2dkH}!d\ak0 2*H^ܟ+H=>OƋxSʼ1e>%ںcZЉ%%dM5>é8[7 %ΔyZ>"rRl2g[T}ˠ@Y1:E輌/m;%ng8Y̞`H^>T bq0_ `?.7Cr`F~>!`BnxhR/g,[QZ   l!%YB}x(KlϏE< ';%yCĺzW̫2ePlI"bk*.gZ КO~pSKmOJ,~v\*e|,&'xod--h nth3Sy 2\[0{E|d>Z0E%J)*YpHg ǵ9dp*¬w':ͅVA'&r|@K1e$ kcDʥ.w`ZtM3Ӥ V~}gs#QYݏ+zk? 70/kDAn#0ZTM|!_D^%Qـmx%OK(Io?6X{w? Fſa6NMZIW^#g:7ЪffƛD7_b@^BpoF ^gM<+ 3>^{x9 Єq4!zcz~6 q||D\{>7>SC*ПXyyn9u0l X3c $::0"8V"򞼿e "ɂsW۝ݙqduʋ'ݚ?̻aZxfU8t>3ϰLjGn$od~q( !tъ0+`\д+󔪕 V/s4`W`B),"cT6ó!:D1$DpŜsKG7:{Vl;n&$_:QA{X:KKEkP֋׎Ue{c>ĵ\V:ϤJ|b!Iqc_7Sz'@juՁ\C|?2a7|q3HL"צ*'+ Yԏ Rp9v6|xe)jĉJaޤ8WyP ~ JlXY$)A-q3 #*H% 8ڢB({;Zl <ǔG u@rþY\Qh9D&=}S }vS*1T ԏ?aV"̱)DQVWۘt֝@"֞,`VHn tZ^HHY8oBTKw-Y /F{RjJ#uuirZR>$eT]@TnF#ڌ'x1˜(*; @f;4?3T;k@C @(rp6U;S +}{({ Z;UMDmUGhf#QEkrsfۗm@xy AZe+7g ,[ N\էPupGH;cpQSuV&&lu-at#"\lΛ< ݿmLE%Jδ)Z$`ء {dPZH0yk`/Dx yL«jb}Vg_ ZS ;peem!}[vo`:/Yy&ǑLݗn {Fg'@]S ۶H1 4~&iH8Yp/ 7b>/q->AcJׅ H@sZл5@m6"4hKqbgAK  8ұ%l}iO8H׹ޭD> t/i\s2o`BW3NR (ݘ۠G[Ex,j_jP±/sͧ) fO*\oJ5D [kotbMFJ Ef|tr9(Q{|8驈e,]üuHÙ#`dC.;d~It_d]?/ έ !'J?|I=ֺp tAupPvog̡T (PMׄbehb:L1r5e]n$[&晡d[oyTɇ }kpo>z/=ds{u@n}/H cCԲO@XN߃).na& À1U |n9n4W'uyXf+3!~){AN4>I4 EsGf oid2*pJ!pȤk*J<nٳVevsoyNI7patWԹs/}6[&M%Zc[fq%\.GӦi:Y+I'N# }<ɸIu=` U q&ڕ <\Q>6ױuQPPe!MԲTiHyy3rأg][HBu/}zFIͼZWITܱ?JtyvpD'wɮ W)% U9KMl"JC>5"V6K`[0ߎ5qZc> HZiHvZe0b,B`WZ \Ez x0a*t0~% P蜦mi]~y\Ahb|{[4iAZl dl{:/a m RV)ʋw>i>ڵ1Rbҭ_w-hSLJ2Dɸ`qP{n P۶"C"әq W#+vW*reC!ɼːi"ߥ4T&`FZv>28ְJ5dt5WU>WC9i_;Ʋ  MT͌KbpZtAKK6L {'>B>P\ZrdHӀr@-`h$YMy3fʍ]%Ɍwm BE%Y%jO7ZhIx~KFy^Va8iIG>@]V(ؔZ_?y iUYf},e1#I4K~zY֛ćCaNsVq,t.o'O}*ø䕌 '6iS(&#_~mV'$@ p(z^@Gh,!orʭͥ|]>MV9ɥ<`^SӗSp9XFBMU ) ^<|gJ}O V֊0dBt?yJ}H=r(Oxu*hAMi[|<3baZl)FF ܥp߶c1SG.`?u Za:횏܅厭K`IL$&4:V}Pb#U+N%F>&(l6-Ӕ wc xTS.ar5 vf`k4崆ͥg W]H GZBgt]T|5dqFY gH s3`ON#z zToT#^RXpM׎g *>~ Mv?#Pj»'@8-M7HpRTΞLAĦo,}tp9IcBnO>BW2moɇ==}h{+q,RpK!Č*].m79|氀ٴ xqGY-*srD{r?9keJ`\ji@D^f37SFV/?jꥱG(HJ < K3,W^MW3؃(W" tfSdq;9D%tV \7vNJFsx-B5js9'WMEĿ,JE%=x=;B9G0EY@al.k:mۚ `'.o*r۽w7g ȏa>lڗyGxYc(Tr~/1w= .g%YN &rRLr;{ݖWbʢ0+U}_>XƗ@X=(/=Kp<]"Fک Tw uUs-h'Yjj:aG+#*ЊRh`]"1O]!pz?:6H7gbgٌg>$q kQ  ueae\)Fr)Lk!0A[YpPIr{6k`h2нM6Kln0]f ɒ:r⒅Og&na {{l̒E̡M"dPVf NfF5,ੰ{\m7|DQ}*nAI8X5>^uPREiq%$9|Pd]"-^? tSu9J*s— CD!eeǀ&x]k)Q'." \池cPݮ8>l49w*u%s cy&7iJg @(cN:+`;6Nb&ϨcwdSq+t#N- F.LjWZ)& F4ȶ{w]7A֑ T4 ϶}(똲k?8? ti9:R!@ۦQ=}Io031a@v XW -'4Sd!`gEgB_nrznȞy){qc~T7uYvVbZ=!/\$-XV^SZ d4zִBC *eo幞Ȱ\-ţgZ%ĵE<̞mGm@ 8Ba!l`e;/M }I)\ +(걣#Ҹ7ًF8*GeI0P?gveMN};pl[Zp DZt3RHO:IXyQj:FoEeh]IQq}Y=d[lycXS=3Cw E-@%o^Ӊ6'V; s+o3RwDЅrn o=eM](x`O=o/\rI&6 ϕLxPRX2g{% ҼU· R6$>] bմ='~ zFLs8kJqbw0]->u_{fCґuK_2vY+Sx*s0C zeo`7bJ` $Βtc$ e|]pB`ǵz&FyJ]d s0)fl }g$qv2[N-`0{UO1.[Bwp>GMTT!7SKƽG/1D,- y`tu~(Cs\l3v' լpyt!2Jӽ*ϭm}HrZ"lj# ՈLŨ tZu TޭJrd9O`ȕAZh 9%Rr|Fp# 4+nщ/X"?Q/ۮ\;( fϩ~$gͅ*Rp5sxnjzMooBT&VDL V6Q@1iA;q"V*@Pёła&5;9 J ]-W]NFH+!^<>N_y}> OU6x$0qq3 1Rl). [2kx:ŨkQ"| X.dcR<8]NF2hʹBHiNWnH'AaޣrLր\sb K}( ߻؍.P_sI(k֗?S>ӯ=h+)y(iSaRV:TJaf4Sv\ϗrP4ƤP{1XI"<ߔG]bú4DyZ|jTT$H\D{OCfRyBm7L'3lL ꦰ%yS1CleЙ޸tdm. QΦuyh}g7(y[.~Yz>aCȳ](?dpPFK3^]fTo7Coڤ)ˢv"=t$|<7$Afވ&QiQaaa?4"$)[xZ .>| oEvb2< A/:G B~ȈjFIٞI%qL{!P)Vp3>scmdvP/_ 6|BdYު 6<}OI;P}K?)͍-}I)D> &T.Ѩ -Ā$JJ`t W y spi.{>Zf|9*cZlHz)}1\X @5rp8q /,PS;VThJ ϓIdxy,Gq.C%ibHUknuW,7/eā&ӃWML2zPa FUx˼6#U-G_&-NL'R!h#+2K\b Q]r QHbW1#7}L,Z$[62~* H= qUq%PKsݭ*yi_ahSk|O}2 wg8% ?FoڕT 4 3MgV}ʔpGB'bNNvjEj ";/̀閹ɲ\NZl/hg3J27< dߘYUh \¸>*&=5g,gI9ꜲY]a]jkTS(H8Q'^5ͮ/\8 DRɡe7D ZCs|aI!qKE^z2lT-o Y3k` \:63p0@܂-7.zNKZٌU2xK !~$ժ tJ]b"T}!vz̈́סGTFn7T'eu6R3\-t? g"tOܕ~T*9dpMc ZU[=*>@h e=eER;U($~0ƇL]:Oυjb❐͹jhr|_Z5eP}?pԦr]zҩzv_7ՏVI-]ش?Ymל8xYI.Uq;0/RkYpXL/nnR`] qHa"aqT vEd6[P-jr&-97BfV8Yɖ|OJ.fo.jң4@wD^٤,>f_/tˋ{q@z+J=TQ-'lh1E=F'"PA1'[v{9\*eOFzgF+ 1(މJh|˔ꊺN-13Q,zFr@7R"8kung|LƊGY'= t0Nju4 (̻mwG$E/r@-<G5UmEJD9%ib7JWX Oob:4VXj+yc/]Z3#'axxɽj..v*RN=="QߣńǦܱw'ANZOk5:f筵B x4H<ͱA4POch YV/l^Ex#1k~Tcߔ>h6p03dŲ"! ab;g"؝z݈1f^E;sBmՈbHhICP_Je>FG^akaAG>W 1Ǒ05t!O.)$,Hs< 5_Co#nRpڜ9TC?>9;Z; ]GC54.Mx6R=jS.sn5l`c.LSͱ~ zI PVB#~ B_s( HC2ָ yU|}TɎNH Bi'OW彍b'j@:m@*GpzFћhPkȇݿiS26a+ ic4^65 hTuhjSVCv,3@Ƞ7>3 `J ]W6'*r;g9j&utrmqR닻!HKF݈qVSTpeE6uKpTX8oTzEaO8LwqHѸ-Uy5&K ZorF@ s g2Pa{C"sTxm ԁX )6QiG/wdaO-_j`oG+[f]ZgoKj#͗1E̖kirănw<:Ǒd0v(T9@t9_`;|݃foI3܏yy:99&zd m)0$[(_OЀ>'>T+co4]9~n8¹!;lĿQp4D7}ťy.jG.ql,AK)J`qw(Vqα$QeDýG 0#qaދT4n0 X(8jpyQ'!IR0py5r:́Uao)U$3k|2Iwne[}LQ}P-=$_9 j󖈺Xl-/4^ztwX Td!E3^J"ם]&;gZ=8U'?RiN͆PB&68Fnf"-Q’XL >\$<< ۈR. r VKJ֔6-O+F˫Uft |zCemטAV-M$;;G6 %QP{ g@jCד!yyOl‡ϛ21WPT}iVˣ`)67wu q/G:Rt&*FL,[v5~m37&=R:`Ӱnny x:O,j2sg큢g(AHTDE'GLҕ۲rP46Vդ{ӌxګ5ArҠN}*%}+8}2F>)e]?6#cg{gΉ PʑaɃ< TzjR9:&T&YwR0nB5PRX[FmL_c!ۍw5("w:r ;UV+l_^yJ孢ȹ$3,,{(4,Zv?TPrJMԢ8>bGvo<޾DB2v}Q'#}ʎ5?e W߳vRPY YqVM8G(@=bդ+_NGb}D2/{uf&A@C{6 A,&3fN33+̩Zw^ -|-eNcs@n"f lfqz~n K{+eVrx5!Uu`e܌A oz1uRS:)̻9(>"YBV[B̷nWrǮ~/0HlKurn&ʪ.+oLա\sd/^~nI!3p-+o[cNd H0R4}?XpHJ ;x"Bna3w-c .(ĿW ?`ŅVbfZ7O/]EooGqPJ:'Rҏ=I4gtGfգV{3bo]td 7>m㦐XύrQ1"=r?XRYcDKE' SG;fJjMۍ<ׯBZ$AIh9na3rna71XD2O̠Bj ஺=xlgɣ]?f1G4,q`KBT6+xN.c9 s DCCMџ)z_/=qr;Lx?,k{mrac+cn㨨i" R3Űr?RoUY<2$zD%h-kKluk?[fx9?lHT87N 6x{i%[s֭. 4aMi=~HX`."Xam*LQaίu"̚E =hKQKdH5&Tc?cB+tޮ56٫3*QS%I܅r%Bk#i-1|b.MW9v | ^ xs3>MhEWUJ٧k`%7~ Ql^zg=\I;yd0R%)9hsZKv+ȇ̑+^zy/gXZUD1"1bbs*N20ߐm8 Tl赀!_U_=O@ϕ&S"lp\Ytr|L9nmH!ZPU5U(9XjI'J(CZTwG#H2ywkF*MMX=k ]-ӹe$Ⱦ(+BAHwFAOv~ ]WvNpԺ5HOoxvlbtx|Q^ᐪvG ~ 9y/y1螨Wz*mVWp!NV^9$ޱ?>"R;b|kr,Rxnp܊3r.cqEV< әRm/&AY9B>W?89%n#WDz4WzZ"٠b€˜9ax&t5';T_}w#NKFx/36%MFsS΋{jolFWVwA{FM& #{HS $rNcxȌ-tyMRD칰j*HQDf rۯo;-(̼xT,xՅv-mD}XeեrISą4L9'xĎ֯w޻jv+<毑do!K&y1CE1(&bE?ɡz2};2SIYA}`8_NYq/[t?ebFR#U7 KFkQ Ax=N jn41ft.nx&=5vL8b$~rdAf uu2AAC:l0N=g^ Mw@ÿksps;2s))%pԳ'ҽ§h &JV^d5u1fd/RpnۢRџAv\ lOc@@"lWsվcDN pSEY^a84 ND,y iqc __ych Q9ḭNBp9=3\XWJ& biKMvFm,LքtO"*O8% hsSuO -~%sb":\H*SVԚk "Q@Tm{ O<읙qE&W I$ ~ &r˴HE/N{+˕ `K7*_y0E ]c|GhޞD1[3fYu[njo@Q>0;̑!.n58>kMb2[:1nɰ(`J@)i|N㒔3qj9;)wjGu_tu1Q0[†f|5R $dsY#:bi6c,_-njoح̿A_>n9&6ʤZ_VX?̖/{E@ڟ%p"glj?⃺x؂V p j,x&e48e舘鎮Me'C&!Jεm` Ttv\/9$=4+hMF'QY3K Tv NlSE!>DLcx4Y{G`j:)3]BCUh3FAlX?mԜA0BuBO잚ADJ6+OIB_UM7C5l~l{żoiǙ\$:'`UXԎoGpKܷgP|zFge-S jem["]IzJ >¦`NG*g4wH X=TKʵV2CngBLzh6O}#V}+7g4*ic8BwV̮n6XI 0upyxj:z} ߀e+ ɼ m~K!Ig&g c5+ --K徊el8X '#}0g{nD-qzo6"87)T:#/zK)xg>,_ͮ[Daug: c>)fSNƯIMws\{UPqNp׹NQ7 Vf{}y>h焙e8H6&*ޏ*YD?r: A9kDߓkxEZN159N1nțLŢ43bwB3PM(qӋ3BO~ 9'hS&/%*i.Y^j[m8+ƦhghT_ ᝆ̜dԤj: O"~,ц0}1WyW6mG^'I(qvjw3H>j8zԌ7~nƗ TqݹjuVFBxI}D>_z)ǤW֤㋱2tBGQ濽`WT+a5t3YB!Fǯ@=h3єʲVao,4`la  !KP] jy%4+GP"VN;0jC5z?t |#u8yfeUuOE/jXVt .@uBT"PZuy,lHltb'o.u2̒Xu6cA܅# X~?#?I3x*Qk2/bO8qX3^k%C9+ynZw ء>료Ha‡RhB6 Ԉw:錾L)>зiR~2tVj: X*,^xٿϤޒBQFMǨw_uS yx6G:(#J4COK=w)0-) tE>M;T8(1և2xTp r5X<;$e%;b!X&Q 8i~" >I8g ǩ4|lJ3s +yI'I&;.r&ʞ'R(Q1l_T\:SˏOKNj{Tꅏ{GvO)Z=g/(hN()ð>W+Aǽ2m z!܊J} M/a&Vjg%.`Z>KbU0WI!jг)-Jh_3ug"m\znvd/#/0Llx @Zi^'Ȋ_S戽]5?jE1JB$r-6G&BPa^ XEh(j|>@TЂJWĴi({j݊c;VWlyE%MD0dN01QhpZ]Hj0V-~A.++?Yʪ#(FOD3b}+:?kx%P"׸NC'lIA}"j$$YBal$>~V'vY@ #GȒ=hV+=!rdvPXm9gyOVTqG כ:OocM'o29媟0Fji"^:X˥-6v&%_URM<0"Ik gADB&y}UXD~";[ >y0#7s {\1-.pkpgN9BãIG{ hV#M\b>qf>d-J'pKpaklt!hcXp r[Ugὒ@B@>1bS(HƉO3kCTpħ (*#'"VEX|FWׇ7"9 P䊢CJ;jѴxP{SXUT̶&3:6oJ3gj4ѭS8 NN`[{ YN2!mFJ[ !:~Ձ@Rgw|X $zN,nMZ5bXVeyxp7Z8tXBYhny0D sunS4|"Q[DR 9zjȠm)-liRiEXO*/~TQ ;A|VOée; DZjO bQܝt*N,>r6#*<}$$CƗX+:8 Vb"H$8CEe6hE`$^Gt#cx8TϘw'! 9>ShAH JEov;!bym>>.f)ztgX|*bm䝩5ZrC0E b9]9%qÄ~n㱻-{dYX3)^_UWLaDf `pMo$3B4gf[lܪL*Dߝ|$LkOҀ?Mv{9 $޽Mi G'O:4ql9K{\X1)٦nl^piir* qEixp3'`9n5K! U|Ec:CPէ J\vAxk@U|!FzXВ)Y\Z-0Wi_z5km0HDwCF;ΘglndGfR =?M&O[}z"Z l*=EuӒHEu\NE0ԎyweI>]R jQc鵣tܟDcxw аSeB"cB YOP֔&>4,ZZ&k*BP#YHI7ҧ&^j S׳#[i͙k㯀@;=M9?Uu]k9dp>ӍbBː0ދOXq8u(^-k6*=:w* رY ['5)vK0Ӆ~ݲm:b*NǺ ;6tmEjCIK",n+d~ɿp֯9sb=J~BP;/ Ŀx~oNJv*M6Yn◞^BE/h7Cҝ95H<7taf+]x:Ho;0a.HNl%5[f[aQILu›g;p]јs6IFVt:/>p.xZW%1IVgYGL!lB4įA ^LKKDF Kb-3%Sn}ȌF~n Nr䉵a*6N_/\dY. "pX~4;\|Cqď(i a(eHɏ#UIwKu*,.}׏_/7=F_N yUpJrnZ*`5_.&*I :x-˅zydxѹPhpBKսw in֤8_O|hBE`LΧʾ~Tzw)-CK+8IfCܘĊUil9myK&w6^-y0$L:j~Z#.؅{0s-(|i{뉢cTB8Md"zΑltǝ9 @NP1P`5\y>Q3ЙƑ NcCdu-³cH4d՜w`Z)Ȍ&yC,> K+8$2h"jht2v Ӗi.7!#_R0]{yA!(M4&جMu|p9yeyسRI㵕2Á] yk2TV M+^*6e_v )ƴ~+Y@+)wq(>[3Ni^ai6)3|৓ )`^:#ݐ}v7N%lO,Dآ8U|6{B%O&7 *De #&7Ox1ݑNTw.zA#o k0/n}mGb?7)gGҝ}xWZ%󊹭:?;Nrɵ”4)٠X34#tC +#^Y$h0Da@+?1Ru{JcdMg5t}BB.ښZS3:F_t0iӒr+6w7e"=\-'t5J9Hu=AFg$1\σ)AB[N2hS^[bcHA9M@=}h(O\ ._- q;ۢogU-%.77|82;`>JsKInEW`C:/|.7 <צY_e@g~3Ysœ!Yeax}zXm^^FDUt;*Rcr>"htk`d"p M! dn5oj8iz*Q= 9{C?(X nKnf)'eJUEch} &2\kd7b}WݤgrK;V9a# ck/.*`jPBLkQ``(x/$h֛Q-ʜ ڴl|Ref`#bR&ꏴp]ޟ" ltB47't N:`}s,D<8VbtrP"ý^x(:/AnUvY%u(2j/m/|ÏJ{EQ-/q`w5i_FD÷K{ *>J\ҚD]8tP\}?2'PM9#&2)UL޶STt5 /_<^%˷%9tzA>:JpY.R d%0Zy̪4\~(|~*:x> RH j/sU߻clgv>pٍKTU~U]U \(l%TI`E$@ A/m?*[/|Į+wȧrʆ HټG {VBARZzItgzS:n~W 9O1}rFaw#w2&H蠎oߍrRUO+[Lgaةji- ).׳QH P&ݝžmٿQ'{yqEDZrRYsi;7cՁ 8n]qc"-4pƺ{qWiIo);{SGيwԭ=V,BhE/ziR6gN+.#XYEz 4t2bڹt-@L3IJv}ˏK öK0>EGtՀdNb ĵ/ixP$ILD9! =ʍ]=tDB98]fYvi~.0bgg*3.90Pe(.ٹP)=o(l!k15琜+@k倃skܜ$:eZ܎AS(aN7%RP${Qۡu!_s ̢ep"-J L8)Kͭ`?*5XTᬧ#4T1VKc7R} P0sිɶ+ϭlazfwmP9NYe_8yWη硗'jk-|]O聧ft)p `cFFk-5đK7i[zkix@,`\ۃĜntHP$DyeU&y{BT0&vNGEF. L0ʣ8eVԂ2^WRh{eU6ҧzU/-q7ƫO~'g`O`b)}LIN{D֔fzsG,̘8%eHI@ ;x)Lm\ez~Ȧ5{jKƱK p"͈ 2l;'Ӌ0 qht=FH8`(ZL3k Sy ȱC2jFVJɦ]z< ^_55A4E\rNrΠMg2QcApBFI-2{GtA1g$2% i|!GscۓV2dOa=Ox@眶O zy[<4 7ژ,fooGTb9-ٮRi=NweѸ X_(*-| $%Y'&:DsZj*5n/c0 ޫш+}inHlYn]T gň C%Fֵ ڹ_1slBނ{~x#$Pj,7v #Xm l&ۇvcj ­;xBϧ&ЇJUUgkAro<+a )UsFJ\RM}!imTGU/lz,ѓDVKD.õg1wډ.o)ic}DznԚKt(7E/G4- :d;YLJs]M{&Һ!K_̭Γވr:F;Qy:Aקlk|3F3jP`7%IqߜODr\Gs+#G|KDmֺ ]D:H~ )0oз+qPeXQNMc3 ;h*wc@¶ϯ!E7r$+d*G=,! <@^PO+#n {CH=+8*&+8J۬YCNm*7C%`@=u>+;U1k/ $Cȩ,^0QAbdy_!̩5=j,"Ȍ eci,Oc(.ZmrJ )C1>ؐ yAbԜKn'~,L{`38=Z{P*VU:c@,YBh+r ts"M2g2Q!P m)N\Iy~ua'Onj~;sCQJShbd_z߬V3a6 PݹO; QC|p—H 7Et^[$7E c.ǀ-Fbie9Ԍ?JWVÜ2bXH %TF;oJny%"I)kzO #*uA RgeQ͸mmx[zlxz ^ʭ(sF1$G+ѯW[Ys=u3 CxS\r/%mK}0:.; x|btz<3 ÃYa!S-Y٘Repfyyʎe% 3_`4,QWC;Z3&g'/*IVj;?* ~]HP@Zf~Qs߷X_oL&.a. (춮n&i ;PVJ1}⋐ѐowԸV" ݎ# QT=ɷ.9\W|(3| QpK6}QǪ de;{缮I(QB5:qgC .]B/LK,k;*\3Fa ~ HFfNF"LO8v`8"Ӡ j%JI+۾kc yX0X3GLbb0(5EC1 wWY[Khsˀv4Q9/9Vn^782͔=c$5 t5Y,Ci hiWbVWȳe-[X1t#}^%UOO')hX <}>%׺&7;bj Fk:q|FjMSVsf/Lw@),oɑ;mRl'isܱdMvOjfw 2.;~2TzD: l$̺kBuaÉeF`'"2Eg$v1XsCD9 &Сqho~lM BhꥁH$mIB뽢:bOyڳaɕGTG]Uj\@Xt=>*xW+S:6}` o;R 瑛 ѲߡsxAHJAӭ4ǥ?SdY\-Gf-F 9XP1d6 &GzDZN-{jkrGkܨz(p`. +I2L:l?#0t't@-jPpxK8lMWP@SG3I|RұK)ϣYW=;x٤/Q/+uV1-'smrJֱa~J\x8>G r?zP&25](|1 P'3Iq3A:ͺ]oBl.{ MMzk*i>U)&{Bi5y#(P *~Fijrnvne8 V-a?є {9BPl|~ɚA w-d&t58@LJ]k 'Û.A@^I*XTOƙf%X42Jz{D>Qƈ `\y5{(M 1Z跃MoL0$f kGzl6vW՟b- ow~+cH~Ss_Ah !Qe"Z? -aΓѡTk#.%C>I=da:1lR̫GƞF* & '^,,3ȹ]hQ3-~{3"Av+v1+vWęLr|Skis%lLEKveoeo) fB9М5cޛv2oJIq7n\-()5"[dC&V""%ƆfvgZM&7Vʔp6Z(s !TBKubJu[6D 'OEA.ȽD@ɒg*mj3{wa}bVPTI'.j?Md9P2J֟8ͱ=] XʑB\DfތDrd8:P(0IrI{&Y2Ü~2k;<=o6E:=o@M*6b ZSH4ȭ'f8?>7 X넘 e|!!4Zf?&؀K?>!QEQ]5tYj;r]QY|9/du}ȏRp s9ϞaWN# D;"u5HWoL:TqR(ng"kBڠ~l\ }U-t9!\u2"DJAZ?h grѭhfpz6:rqGF)~+1uS0ѨՖ'G/q)pf>-:`@7ʕH!OG˰5jqA0u_ 48c1"B$ȕJ+Q!|L%r-Snx{|R)6 ,8ChE)OhLn:Rmsu,ёHk0A=q@fb%EQK 8oW. nyknҲqk(6DN/{&Pnx^ck#mkĄ.Y9sܡ?Vd(K3kGmјfщo0a׏hG+ yy]΄PhsTr&h0]llVn7"lV/8Ӱ˰%#$`ZhreqO%C$@-`k Ql9O)}TSbUaܥK$M=Ӏ\[F* 67[ R& y4z+W `\.٠`ѣzgўE7_) c!XB@i6 K_.'*G"4bX/KYh.n&0D-J1rLb=[6Re"źQW5NN2>rf~Ws@?DK#(MdaS-?W>|Jw!̋gy +<(2꼯VNs~S [>I&ȉ}D*q-Scu?{g! W $ť1'M˕Qa6I%MV с#չZTytˊ2(Fsr퓲|؈A"^Lt 2^A ~3O h76V ;ډcBsV2PЛ\f]jIY%~wBʯ4flBM5hr$4bU@yR.5KV+CtUi6BJ"_b£9`cX#٩q%(k'q+փ$Cd:Ħ\>96{ii\jhOs}iκTJT6_/,e:I񦷺ROD5Tĥo˴1Jp6BӉ"J<"v=4(*4G+a(ulڱ4+o}sAF(rLoţԶ4Œy3!R&ȳ^4u r"= 3x+ߥV2OiS?n+ es1 #GNIn(("SW҇k\O=ǡ[hkqp BqVi*aV, 9rG9&^b$M|F5#Xqe_rx(R Fd){Jo:ɤC#L8v{Qv(xhbN(<{9 -[W?eG֊d\֒t6YL料HY{poڪJpF:cGE,]`ŬquGv.C^>YM}=>u2yՋzUg]Rzɳ}G}nhνq^in?;ս= #o QVR%o5a%0k14x߫q.RR`:ŭZP)vט;F5I9 }>vo);ϯϘq)*g :v6\ ,$ ߫1l΄[WBp 7Rq3 >7m -ə+=˱MELq:vvkݠ֟ Qï,Y+5@3l5=@)_O} g5Ғ2h}g eMhqme$G(>}Ѐ(kvmcXRUs ~tJ쨣Ggnja;^ȧ=ҋK6kHf7`:RJ㴗U}@ Z:ho S%Sw&v 0xF[AY@glBI0Ò56QeO4)$dx5z͍!X d}QM L1/]hxR 05Ne9OtF TĔR RJ75M@ 1LQSk/"oΰq ΌEp˭0"2Jގ~tY>Jd9p1Gk\mv!Xjwϫ*bIp0 P6Jk3E U?L[`ϸywr^'wt!K@fU_NE̷񎠞plʹ|=^2hBu7k;ׯ4$~!rpbp61D5`+h^4s\.40 9u{0mVoIi^4`Ƅl E~ JDayeK~:TM.3ьp{p4*cӏ,'dL9'Nˋ,2|B'g3Sg@c]p ͬǩQu}5€yTpM@lUe5z<[:My1OV9z@W]@Ȧd=]0va{ؤ xj"7^"9av t$4@X)^Ll|T rmZT=r91htb JoNT!oMqbV76[LT}D ۨ${KI"# 2&.0ax4 3M O>U=(T+H,RJfWbү:ELďg)fdX4J1aCIaR7d\CZ뉃J HQ(e/p`LzČil"GT<416+`p6m"P"JXu("3dB>sCdS(?H?lu 8PSކ D|CŝE?H7cmE J|ϪI31Lhi5Wp18<D9٤:4n]P4H8Rmy$'_²2B: X[=rutw2SXj#=E b(1i#4ccՑ.?5Dy\٬ Rs7]liL4GU}!hHwhM0tJLFu^TVpbO/I]H)Y6wp@n}o\V:q%0mS$("PKkem'o&b xiaQ7"Cg"x_g52:$0TUw ?^.#}p|ɨYZEЕoF\o `.7c C׊J㩔@,b L% '쎦KW{Z3Ӽ]}9=g?b|RP'Z;%7\6aS0/8|UnI<B$'sJ @h&K _r5P!gu5 Dٵ%2QвȘUFKu?CDvLWo">5y1.hO @[#>h\K Ȃr#OyRCT9DPf%Æ8B>KkM `|%%!L07 87FhƝoR^}D1WT84Oy1VY<>4.Jizs=8&14;[ZBt885=NJg3YŏcCa!H"uD+fgX^"b{Q8e#7"9AB>n.C 'cUŪ",T<[[_",z^< U'/{#^bvzHfvvdFM0($o|-#K-?ncy$qO /Y>#tR>ЬiqߚzdzL ?ۋR|ӝe eE,ðVHDzkܣvÓ)zwNVʜ?)K)|= B.c$+_LufKe_g24[M?,M+-n2rXC4JtIRqLǍɳ2{9W-[W[ VmJ !GN otoW t'Vaz"8}UhUEiY|φackvǗAzJ>ho#i ^g&m M湻zs` 8a*>{*asy ROcqHrpsZO&QJ/Aw*mHc3~k"۫6OadЇdC?Z*|@g^~4zŚ2 Q5 XACFU;WPڱj3 ?H̎`LfU=).]ѥ~ @uYx ̻"Ҕg9IY]i!PW؋BQ&jɑ[J[%B bYVU=LzUkZ<$Z|TsemСѫ!ӗ/ Y#}Xuz[( d5UZ8XO6+5?WpSO9~6a0>Ҙ,zNì$TlEkHй罉%-RG&J1L!XZ5$A \6>ZJ1_Po+FLQ}Ou%T?USz) iZǭI' /U Mm?_|:TQ<  ]"4jz -@*eofM۶ؕklGy K#d5V.o2"iWZp9NI1qhs75_!3}hH|m6#!NmvyBUX4$hfPAnUv"nO*rA:qJ%?0{Xbv]1JYX-nBz9ke{SScn&qyZDeyt,0J7'\NѮ-[??GpbmL˲c"lvGXPG&I Z\HX q DRqUPdFau3І¼I!ĺAR=Q7kor#r|L&L{.ݬ\ [1oa -8 c>nyN\_ʇm!n{zG顼("C者T)tM4Пܶ V&5ӳ͡;7@ =&saHg9SԋĖR'pyn (̘ ~gC4??L"ŇߎӳNU{#J#g\z\2[ 7 ;x-O;x~ JaqJO#[\>]1K!Z rH=v۰x`7dTAo&51 ]\dY%VAֻyk;D0a OA9n5柅iw卾)pcj:Hf{z1 f@Q5pR7`|.nxj`eǘ&[e*F :o_oQ);؊5Ok` 3w5;APM$p+(KF5U L0ܩuF=!8tC@>uNUHu3:r^ N:_ 'jQ…c9dСw#B{8`/0Ys;a ֲ팹<^{RSn%sט(f^z \Z XCA*1NTki|Eç<0g|}T5~5HPQH2Tv+ c@,.FGAl<^i7ΓB^BEձ/ᜣtJ C٠/SVB\&hݞ#?~$IVi씄,-l1ru1mHv2oT\`|(rLO[)4*8gvqWm" a1kk2AO#@Œۨ[I~#p`ji&fo*j1+Y0v f%L(-*mS6f63#`.g黈a1eݑdzft7wbuʎN[4a/A&$/i^_n3 O0rG_%e=(O Ԋ;k+IJ/1P 9I'C( )a@Jkt[x+D2l!t;PGxݵ}1QgT80q {6yO/f%3!|5 gpM}6 S[ER$" `-ھvW h>|oPނ)Y?2w]6eEʫ:rh7'ød(`y~bJFy`vN}%Rk#TR"Cl6jl9]7f1sU6]K$y" F%&ɗZӞ\yN;tEv9gRED`4i,?aQbS jac.ΓO׎Wi)@T,P‚ɷkݾǷz 1 D"J&V?(иh;RwinLf,:a6dz+ ^J:FD>+K{#=nJ˟. ־>2/wqY[}hhjIY$ۘۯ`}ZQ >zڙmgf SG>x*h)^h6*ttꍖP Wqz˴>J\Iĩ^ s;LgnjP*&BF"`N xֽn SI buLU jO'V{Hr2ar.N* X*l9 5FgIXUκ&UbF1wNJf96? CSyyUleHR>xyxw]I87FLEH~B*P;eMjyvVOq[ ؘ%S 94FP@a]n@KU"%Lln˦buT#1~: P42;[C3k`ܳocH%ezPvM3⁺/-9ȾQ9^p?tUkkVjϞ-(A'0lGFbhXV zp<`>!iس @B ;lE&=m{@# a-b fJvqڵ 4:u)8?E 9`Z7NBVlsPG?5{3`3]K@&(Lj16vI-;*7W* } #IѠ~Q/#G`A>שvXT GH^"U૑1Gs_]s5m11Vcp6i ĂyH#"K-sNaePLԜa];(dĈ~yh|k,M"}Mr X^pTl`$H8PdUs~@krFb-%$[\OB==CHW[pAm7+w{rxqBաwL9B.{$3l=m;-xXǎ eOhXnG4Y?3Jc]O|s~X ],h`{ʍ5W/fEN0>3ŸM(VZt98EF݈%)` tfMr^AM헌!.Ht:1tAniahYecUt,? 00~xj#+s,Pg/^9V!1(%!u}O0Wh2HVܦ'咸Z6D%YzY϶Qeܼ?@jzx٩"{mG9wi)4S *6o2k( (c?-Vp0 ~mz*o!%[ IdmS"EgpX2G!#/:,N }f0GIYRQ5{a3>hu] G<$mJߟ*И/uk`|."2d_Zy8q-ExND]1rzS2,lr3{S>64 |ke,<'3wȞ7~Bib0zr.}(:zI"hҍ:kvJgc@ؾmm]/ݙ)-p9(uu\DI*Wċ%% $RPzZ ,T5NWuZz+<,<O+~[UCtw)^ޛ t_˦Q\thqy xwm-g-^2!L*i qX&= ͈pL&.e~J;4c[tq,ͽ/$<;F PZ0 8%wB.,WL‘r(7nUfWaRM[h|`.7J}WaO&M=LƟW2]/2+Q4lepS0`],hG7wJ ߘJ#UfS0m$㡎D5 r))Zk,br: aB2YVc- }eYZà洊950 LHƝBs%\^] g3 9f}/`2M0sWeE6ȄK>_+su ^"[oE,ވtICfECn0XsY~9r6GvԴٗ[j )2`w},-E Ҕ0Y[T Jp.,^}ʓg$ѿF%(WسQe[_;|?)Wi D.~עx |?[U6RUӼHxjfKgvjL!YU+d\Q눢ƉŘn!+k_l @WYh@ 9DHIۣ!;|EƤz_Wz$ kJ ;EngkR)!mNcas7W "7ĻݠJ`%1'T;T.~{BXė: r sЦgNOJ*UM [b,9{)"  koe},@^:J+eB|ꎡiUGfpŏV8j⛃uJ rr fb"?Y \DS9 \]b宩}._?T ,B,Hjd{8Ouf*rn`|]anj}+r &܁ -o: +!/)oTA!ffT2ݢd\g*ǎ|k|yP'w?&g'-nk~%Nlg1X^گi@$RTrRڱOa-fO#124 ^:3< w4jhNpZxD`:*Z~kBKǛbN;SVSFj ^Na:Kb 4&}'7|ce@*N\+242nqf>z"Z95O)uDkyAWtXI |` y Kg[XuI䗂Qap^HڮW 8ڥKE%^ lYa򽞸hV ̎&:W}N͢\ߡ.^;㍞Nt[ 9>yT!ReO8U9b:qevy*,z;wt4*:ݻ-FIMK?墷RW2+ۡi& aJw|3L2[ak`7"˹ruG8pi:s}RUJR'9qOLհg8d=n\R:Dr F8Vv;R6)fŬ+s@IUcw΀rn a2RBVj{ м| |\ѾHuQnN!RQOs4*Vk=FjO CV0m^vMZ?ԓ!03PSnnjpIBIF2 ndfa&q0r|1G{Vyߤ>2ԧg<-Q2tx ?^e]F*A1A,Ea3v;G͜j} |7[ Ϻg5v5.ٜ6<;9Ξe: OY eN㪺 t#WvW67j{v|[4"`NDf%UCbzESXJ]@/ǡ%Vr ʨpPMKĊ 9["`I`iEu:Vfl:u%2_k=Ng&t7MB,ԉK5+ԟQDvD>OߑVEx=q&gіF,3gLԿe4DYqi2E%03ӔB\'N4 PE::z-BO,4LSV2z2Si%B_ m2|Q Zed 5J«sŔD/ гX*5iѾį vǒQʌE w ]zhRO ٶ P3iZ A*\b ZuaUg'Tp~hm dIбCfL,4 u>9,Z!!o{!јQs!P%w= ѨL*Ub@> V }e!PqYr~jEIkNדmm#>;GhyF;igW('dbrz\Ĵ9m`ܛ]e}V42Ku $F-{rqA#kA(2T a+CYȖڶVT)02e@<2b&j?&uf"x.`FRo=6BnӄMZ v, K/ [I9vT矒5 jYg{&]i_SО-kHP6)v^&3 *Mw+"CJF^,{$tyKV DyKk0ȡ!PC nZLfl){|e3 r,xeƴd17oV=FCzD(W]P~굪|S _ccwG bdV1e3I:CQS0tB&ż“y27I"ȿ Q]*ya^βT}Vˋ ܓ`Qi X^z΁tI5.^a~ eI[Z{G#:T9Fl;zR0"l~)h_+Xq0}j)|DP$)2 Ψb&UCxs¼ѡ(f)6Xҽ7]Ÿ<@ͿtVJǜ"DHREA=mO =udy.JKT]7aE1%j<p%H_yJe+" rlh+"uذ0cT0!za؁ e-@t+-#2ɚ̩G>[um3q]Ղok3q<ȼ=58I8\aq2.Hh;&MwUf D 8MkeZĞ_ Z736fC|ĨZ4Z} _P&?gz!pc. Z)-P0>.׈%m+1%ƈ4ؗ4/2^00+28.28 l V[(iWQmf801deg9Y/c2ʶđ~C6ڱ91`8?t%i*U(IJ׸d /k7^C2fw."@f)L6JV9#/"Rҭ{0ep_(Yڿ;-M6^>.5j ţS|OoCӊfL c*[S@x )T"hH (gW6儩2v߮{6z^ofHeԎ3|: 3%Pl%;}4 9AVk!qCjJ!\!aN na 37xbodzCШINO`FJjd=$1&ԸI9zܻe ,Pmed՞ArD7+-/3!m25HfMg}S7ě-4epc@/LnB-[|wwٯ DF(NP朜{Uߕ+DI˔ET ڳ1ugfMs&"^J kl\kTJfD3['ZXe*ɾNJwn e B b<4.dl(*)kLMH"(ۚ*@,oa@v32opZ0lV6~X(0s ~a %K)~Wb| j $|7Ո˴U!\1j/kDFvMݧ*N:m V[H2B驛$[L nJ JC\NUme"wm%U~AɊ Yި9/:%J$:~ȹwn!u?mo}d[*49㛴S`A.Dz gkY 9*]pQ"99%ŒևA'eC5 {3f9|D"2 K7V;9xx GG^4oGc˝Qqºpnd~-6鉀'X(ZzɸƬ,-&>x;I70&"NآUOTxk؝ FI~!e(lYt-Tu I ΜSLo2u'\#V! TzHe`e"hXResc+"d`y"ߝV xǞTˀLV:ʑ+q <ǔp=+pO/Wt2E6:ybҵgwoLu-^d&i[Ԁao}pLG=cPc۩v-1v:Ç Uh~_?ܡ}a6ӽ]@Z4nݔ 텁ϾfO$RxX*mFH*ô"y>mу*>(A^Q>WN Zx졙Jm9=.K-Yt0vOFT^P*rඇd=.LyVsտW_eLt_Zf4]DIal0`h27AÄ4v8 mt"#|Y*ܙ@ "wԼTy΍k5֣e7~1 eA2R.1c3$#7z3w+Mi\Az4f];ڽI|4&¯wlycê" #y!ɪhA6l̃d}\ȟ6MAqpBbM,;wHȽAfK\F+% di|S,xsпh59f 4k[\Gz*)s6Xj2AvG;]*e,EDU+ ~hm1ЎA.Y8G`r9GHm ~ QMR%F\_S6[+pW׀WHy]EԚY"ysw /.e2%Rڼ ᐘ`XihncbԸݧ4=vqO"v(۪;\=e(UXg 1sPp{{E^ X R {fIH Z6 &y!w<Iwt2!eܟT,G2rcD XzНEC>~eWNk PvdUi| up r5»FF 5Iav=][ }77 A(Vӝu7Z7!C$j>x!U9"i+$s#bJPeDTt~4?CP$<ǎokԜTx˜杀B+Kv,,ВBk΋Nn3xԏ8Ͷ H!YޘG^o[PNL@w~XӇX9& -^jhS&|>Qog;yԿSi0QIPv!13v-oJeΞW۝5=꓄Y&#LzʍshE hI*2PDe$=UVOf>zgw;B-l^/`Ѐ0Ƥp.&60 )@D ך+-.XJ1ϓUn [ÓB2Ua,7$k4E[n $lzjyc0=Lb\M(DXOQ8\@ tF@T, b,KVI۶bC)6۔T2{.ѝTj-' '.^3TJcˍ%RmTT*MSj BNbh ҁ_q62 c9ʥDC46Dy-Կ|ASTkyPu[GbY*AJ=5Qة`F\5mcByYm"J_@5+OdkI8[Ҋڢ +WAL~T󛙳Z+5 EZs iZavEFBN4kO^DgIQh̍Yh62!}|,H7"#NM޴Y+in8̩R fFc-QIcŽ5ζyV~JDrt_UCsF[}aJ<%j0`h =69nmHe(#\`o,{ȪuG?! T]D,}w{ eg-B} 5:bUp~/b6eO:zrye52gMf 2-ӊߠd&rM4f.OT >Pu{=nm~80RpSZDP˚eÅM׻3MtZNđH6_Vnf0|1uc^h6LjrLpfTBTK%%ݴje6vEZM.Z 2JGN1O^D vA| }IU'W`[ӁK\ &8=s,lLﮬ* SB-Wi1hmfidIKJ%i>]N+Hy[#e% 3pN2لb-8DJY}EK2kx/V&mU:mN89uњ!NJp8lSkuGLnS]az2"CQ~R}ċe:󒦓z0])iA9<䯳Pk_A]ZISob%AiUJ <;fZR˾Ʉl|J蚌&_}9F5%c0SBХzn_u X%;84Q_Ռq1(olT^Jvy("fo[ʮ\ +GR!KqB YC!K2]}C [K.nT2h/DZCarxnDs鶐}&ꔑqr"*C#*,$> ur*p"]Q"@jiU /wBȒʖpc* {HÎpD: n ;Opr)U dx87`Mb2~_J&E/.Fi~v?51A\GĬ6坣u@o&ґ6Tt"%X'=5+;r%&GKn%HrX1 ?Otzy'+c9<2{-ܢ* EezkQXrZR/my8|ni"Jddpz̴ҐClM.eXzo=DKZbh=_H,ufjSpr]sC$RNJk&D*SF]frTx8cȾ.1犥1* 3Vm-ר K5 R>7_ C5Fvt:BP y8]mG16oyۦ1y\q`+4^gH8"$}vǓkARjFk$mc!c=%u>ϼp!P7aLɌ/ ;t٬ lM-|pݼ -T2*Ԩe4M r_J du]LꖧhN ?ըwZn !Y͛xmᒗU"+0ƙ_rGwUf;:!N=lôWՕY/(.\=/vh½Akt<1_VqDvA_Ɩ*Y3fc'9 +/+t532.:6vMܫs#unpm6ccTulP/m9bdoj,eoWX􏷴O۹0 S/mx 61a&4Pڸ.51a|~4׀$wG k!$A0V@B+Dg0>EcZi9B!Gwܴ83i(]MHnGnz  6`PWk'^6"e(*MFw= &= MH2jp*5DzNtc keزw'ݜ[!%“x4x!v<54\d) d̆ IA+ >G9/KqӕX uVOWdR}NI^;EXKh`9-gߥ;U:gd'viCb5fͤзy^HeZS+;IZ7{P CKݧ"R,֚$#C ]7d1'T窎m{}DiE"A d[yEn Kt9kzo哦J|EȢkZk=u`̘:&TS(lMm1%ڤzZ sRY; AlCyi"M_] ;S b Z4DIxE ϢG{r `'b`[%K=zw "njnؖdU)m`OdWׯOy2ӑdUZjY=$ ΁1aH2Y7lVŶ0-b9D<2B4EӠ&%N[_[/}[@f.Iܥ-l9- waV@;+9OWhsevnQzw|%ٓ$5rgx=zv*wrKrBj:0*sB?7X {orVd+&/p8 |. 2Vw"BF>MV!`۔QD+osw`m<u-sk3GZ()EE@ 83H'OrK[v'Mob)IxG3B۷H*h]Y[/PjTDcOl4đ;H(:lTگ`ʻ0lX[:YTÉ08jc_#AN2*_Rq 5&F%pAØ^"L͑p/6v/4?cC=R=z\^ڧ|9Aw9)Dh Yyiq-@kLBTUR:Zêl숽 Lh힚cbi,oMrHnN:0Īu 62W~dy|gU^*Ly?HȍᜡD8qHpieάL,Ma8n}B^BmQI{%7PwqSVS!ҭx&ʭШG[vn4+.*ֆill:/Lf"pꠤ`I&)bovߗ$ݒ׵L=¨Z#/3(ݠ`7"VǣX^^7_!퉚deOxl{'ْ"d ,85ٶ qO߿鷡1N.޲HxُGsz͍l@2HF9:g`׷& l4CƎ0IUPʫH]#w|J~Wb4  ףD=;fq@_V_ꅠ38D3:u֗<'~4̶ouWToQ{*pt#ةP(t.bؾԁVzo\E E,;jgB>~ \jB(s"lh :/йIľQpe۲ Tm25JFŗBHQz3)A0ec0*>6\"|h6 VB]P"摛[;ǖ"qU6.|˿r ,6X8} /$/fVPltUP3qEUl_۵snC`f{~`oT*ҔՖ#JH`9q6r-eSq-zq>r'kUv>1'w'b9W*iNFԖ-UCZ7=,yY1'ܫizvOAͬrXq;{[ݔx0p{H[m˗Tl9lO.J[>w-shs{˲0jeY)i( Rm #$-Jz~P{epj\yچ@ LJi~ +垏'5X̀ ±Ycq*C#N{=k+nz,A>r_},:pISt3#. 7 NE-`ToL bT@qLn \f8q9ĕw&rn@w\)nv! ,4 ^:,XlC84& \X6ESGlL7Ŋ@=mlJj6X+I {``f(Tھ{E6kf[ \ (6#׊?Bo7 gVA_ /ؼ(ozEF.|&OO}ȏosU^5^qU1sh"PWAجq.f,H+Ql0i/񁆈"'kȆ'Å~lakFvV u;64ğhɢBiŋБ8,ч~" PخX_3.ǝL.Oimw`?, [5AOai*0:s^ ^&VDp HLٻr;C{Y̰K0܂V5cpAڒhK)p4٥"_=j>_Ql`A)pqfhװ/j׏PMg%b>bIX|>=&4g~sTņlrDA'w;hP֍qDx=qRzݥ .NסXY\ID"^t/@`Ltsto&\Rhc큅n@/=s+os^&LyBÊ/vƯ#QlF]I*+ i05hrĀ _V"!l3C;B]l>:FסDs*xB6w uFVR^87ɣb6Eo<ԾD9zVE-1q-[ v/W>p x@zW~p`F4i^Eus vV2r-&`* K~Ck`G+yyN U KB"k?|0p؏(kNDL#SB̪ 7ÁwGV&h^,T7L%1fy-)&(bk-JKpI'8Y"n-3U Nst JFIx2э5~&xݭ"YC.Y,~uz 8x0:RGNusDQ|j' \\y=md,gʉ -N(|N&J&"r 0BctM5Gfa^#mHm=8jWʾ7jYɧ`LDm!5' I_u8TN Δ/hg 8Q\CF'!s,![W#oRg3@Pp̚3oڲ|ىG)kQ`'ZB^$< ʴ O=3 $qA֪d:.^B-b:eUf-TޚF hͧr:t2@>RV_ EY;7mt-m'jG"W/CE%bޡ;5|=^c~4r Sl[)j@zDnG>iE\Ϝ ښ qP>qh;,K&th7 ɓ69ָYyU`3=B}j?=+YcSR%&l\Nc&,6 RF\e;tVN$I|q_ t6v~ڇb c~?G1?2Z-BpJ+>H>YՈȒ4+Ǹ?hgJ<ֲ Z2 gtx<UewMM>Ḫsz5L#|qy⋗sk+Du˘xKf^s#2Dk.dvغxOsN@ X-2unp߼YW^y+5U5pT[q_˂?nD4Pf4(3'A7i5"`ͥMQR0#V))ǒ×VLPntc# ~ײ#cUq>b5_?^SV" /aagC1 {X]>SFhBf#GGu.Q-.rSKXI+HM%'I1/&F!_+c}"XE vAc1+_r@‘QMy)rhYWyAЫi?ӥNO$e8c.9?9/-7vJZiH=s!0tZpām5PM6uW˜xn=sĹG6@IWItR%t;>Iߌ.Mqj;2z9+Fl#D@'YM(Za"QםG5kِ> rrR%HV 0aRx濮qp~2_W/V!O@K?Ȯ " OH>hPd4/&'kטNrij,jd8&6_SM-怡DX vrmGf6Œ8Xqo?Og*E,io& H)g%LhziMbV ^FO> -2&? *̎W #kSZ3&D޲Մ hɢ ϜuMa>G yQߚju6Z c#Kf"MZ%,.kZ^&xq` ,wz282@[-╲Xl8"T}p Zd6c&n&&7Ċ'fNPPzj?;]b_!Y scYB{VJ0\m `؎.]M2lwyϕ2H[7a ުnC:Q i\C)PV~q̀wۑG}Wd/} ͉GڙWv7r>bDk n/sQIK[ |<ĔQ׏ss3{:F~+*dg\Jț92-9Eu- mӧYMNζk2]k35 #7zB@ѱ#_?xu _ y0yC^FiXx>#sV $P &޾ fRH 5:&O]6n(4Iv>?< `ww/p8ZQrQ$qnU9@-KR˄Ʋ3/Q+DP HEzLz X3#J٘Ͼ'1(x%̀K4% UfU9ga{Qї߼A28Бt5).!81ɭ}ވу%XzȆUB?:mzH~#@ (T@SZFBOdz}04ıG>L=6,q&Ѝ|ay '@1Q=̪LcUݗᒍ8Y?B[ˍ-  N \,[Ӎހ;Ž@)_6DAvz;Ũ`GQ'_FI Mj™0ϒZe'7\&'sa?Pɤ.SH>45S6D3/"|Ŋ$^ dlv|~x fBº(h֩\xh@ʵd]2XUW#b\~LE&[:5sP^xB]MHd/|Zfsh-!*7lb}8 obpնEix?/;s|py@W`^cAS-pHzWPm.{a`WSw ^۫~ C|hpw`h' shMOtQg _Ɯt3M%lulY7w]fiL2bZ/^ζn(Kv!|C[9P-&uXlx7_/>?큡ղ/fcD9Rte~zBKY@TڟP}&Fpa@oeA7*-V_[ N КcTc<|FP0l̶,y%{'`w1mޑB:Gu)dF8GqBF1k1JI-/ޝ 8{px|(v>K=ǐ!ٲ4lF.;GDehG7΄RP^#61mk ޠ^g~,G6Luv2 :ag鴵Kn-*S 4.CHI&nC@bO+X# D%-'DN.k*X;leٌS) cUsHv&!7WnNRQJ45œq*9 8$o\['7===c ;L9anˡז?nn44`˕4 pҺ5(Q%#75lE L&Ak+("g]S6;D[S嗹40./f-YpB<y_SEqm7&Դujj#Vd:*&~s|BidZVL01"©dO,6VxDt7m ?њ{4~P\8JzQN>DC 9 f?}"D7@;m~/-|֓{ǯ6 tZ}:K .#ν7 zVE;1=kotBfWl5Z e mlsYprzeamemJ l p/QL5\o1~)-W9!s͙092Alee'\@8.:W,!6b&U "cn0`4ϔnZh`p.ohX_ (mao]dm;1}`jP{J ;,Н!߶i!F*oX( ^m- r y qbE3p 3D̞uRA5ep(۸ʒ=NIoC࡚}}T&daKFykA+$FYڬz'MI+Zt]8=:]RD=3?Ýh=lbi|aa)i< G?%.3g腤4]GC󘸣35chѝE1i.oQZk)ށlOM@#*)>GDž&Ahgi#4Ja,ozpA (Iu{&za+,cp+$>S?W`My$nMgd2u1IF0MoAFPc; SCRx+mJ:%PQWLD~Bg9A4ʚE}.0~$M2L鮰 ( {L :5F4uȼ]b"z=3 ;DJ&x!BaGNt Z xϫԶU4@7bo6ĥM)(] 0oki_A=IXI| >a`(섿x q6+2mP5@lnO"A`NsҚ{LvMؘ@DϬڬL;Hmy (2/ptjs:.5Z/pdZ:@$w%VD2XC™F{!t@?0ˆN6=v&D$NYԢ~v[%`A-7iUDz9zAv$X{Q1RC%s+BFOkFV(/S<ˈ}]7z{-)鋃štV+-!(jM"]lʱB%N QgILو4]J 1utVȈ\/Dbc F!X!ӵ~0}' yҷȟxwLBAArdKu%pzK I} Aos/ٔ1'xW<A+3XPEx- /C^ \i!ȯZCJ˱8hvQ`|ٙoJxM5A|I穐b#e"E%UAYHi纡vwk!骷RWʐ~ٯB9BPt边ieXWEW.lsz'h^#慺%U]xHmBU[8#'~$OZiU췑K4!(^mmי>ߥ)!U+w]k,dΩ[oQ9jeL}B mϨӱ"T,UaW ÖV+_4=WD~.Þ$PV (64@4w*]sU(u%r\kۚzx"g1ȧdTeb[Ցg#XLyRQ$q޺-:@_i# QtB)̝F%~~_8^ [YwWld#ԭ[$JK4ifӮi2au`ȝI TCr#18sʖ8"Xi8`jhM%ڒ 4+WJӼSIauaIyh}v=,-fBə1)ԡ+:*c _:iU!:?j.N;N؞@ځ ϋniCfՓрWJ^iШDÎѴ dzЈ_7`?~->0BKӶMi:~w9\ 4$][8q/]:2OiMɀtGX-Uu xe[iwᴺV;,u{`@^4PWR%F}`&0jX@EuoIMgCl*@m"7I㥼/38y`]VۨEU8F6)n| gI-Zlz%dẃRtUi.+?v9Fb7O$j'Th2.ܙcNݴ8RIݬnص9~q+YCs:[qCVR.m bݯ`eDp+]pn.#y7b^v֊HU8#E=ikb4D3J,HXBfNIabWDo;vRUp#:[*.W<Wnw=&`)F$mb*ڗr{czgL#g{"ItzzJ:O8J6.oǂ =4zYmP^62_"B4bTfPjڒyJ?&]b]JS_?O=;d໐XK|`q\>LMY#89zNQ۔aJ'$ڜG=> l' )R=4N@ͧ B60z_Cf!4784QBxzTHK= >Ѝ.= #\;qvelyμ=@qLyx7• 0 )f!.ʝk?.GL64+RTmNJ֝GÜJiH6 Y29U3Xq7\|`Xgn51eX.͝>qwvG*Yվ/Y65=dsl9Wvvټ5(c i0*ws`<$$ !L;$ur lIx X-"t/NlUYgVL.bN>Qgs2(BWg-a zD q|a#m A\j9C+ʶ΃SAՓz! VySJ c5J)gcy` L3?=/ o?d%f?.'9f| kM)mMLL,.K> fyj2 CGI-ԇBVeYW9a=pH\ۂG9Qx)_`jܥE^2^PR/alPRv<ͮc>9 ,Xk<oL;Gm:@yMveTkS9O먻W g&gg0yF'*՚ϱ]#s6sm +?ְi (k!&LBǾT|Dx ()Z//J<a'xUuy5'V[rnF]C#01kqQZhVr!l\n7'ttj3*ɐOZRbv^..nC&5:ogD`fIh6I?λҌ~̡íiW (ʟ*~WNNC9|8 2 '{K2UAO: 1LOJW nn"ʘcMCd9C{=i9X匦 %:.B,}6$U;^c2e[x-phf 6n3CP]rM-r'Y!!Otu- ZaL=@ăke*4zs0c+>߆چa->t m<@!wW@m },fvb)fg(}.}lCzC/{<4V{wCVp9Le"lh.ow@,Qk<qm=`'A&!9Z~! ~TH۹#(C=Qr [sbܴ/'>I20q`(1xk-IGCz7X("kP0ۑ]tgW\o"VΡ_aˌVfП-3DP:ܥ^, tx>6ΰb: avg6f>wdmP{D-gM|g#Eɵ`^RC@̖ 4W3> V$dQ-~i8hjn8VeX IܨT~p(gQ}]? 0|Y,hrH޲~_[O32gifBB0]Oi!}^CAKLYU<\/4mg~meKPacad_wUQji.&.-Pnp(ph7EUdc 8hSNJzɬV5o"xz;/ߛ}Er8;g鞀-"c]Cd"Vq2LгNI3)8Aቩ+m'VQ'a"76b][cV/;ECO*dTѲim 5Fh X`M\nڬa]D0=D=42)ky꾖%ݫN%6ۉG`d"zxSxY#~왷)2[9׌:rл#fgӖ̄3$#sQ1^32Ni0؎a[~ԒbۉC\!QCb 5oqC(pKUﺝrsF]f1!UGo67U;#ՏqQ4|4 qg iJi+5"~TqbGLK7 Mq5 FnW{rĴfDJ1'7fV>c`7XL$ӯtsWC`4u3ڷ| QL%[҇ NƔY*4R^ӝKXO Sa+>"6险 ܹBpxBDm#LC/L{֓r0A>C-X ʓY?vvb3$4v'9/$~J?!ׄ#j6ANMOâT 滱M_5'4kꎳaX 4}"5u ԴbÈJk!Qr5쥓1.Gs$$KL0z'"fc;%u&;>]$iTI'(Knp2u΅zrsW=c%}.zXs2&|\yk'Eܔgu9jbWۻD=M‹ՠ"n ίoDߝpY)&G +$=j%Z3Sã:s2c9#ĺ49ryrpoN %1,sۏs=!kR)Ȳiwy^R_Yttm0)E;cXyƛnn rQEFy˧HZicH1~~IJ=F(u2 1N>TxJ߮sh"aas:r:gUW`CEHܟ y ucꙸwͰqf۔qcywp8RJƼ1 pW`Ea"Q>|1EůR5YGθbq*Rvt(m.,ll-DpBG0d'(3:NlVf7;[/8a:˵V)!)@اٸͶI/!CQkH 7lY DZ1PC%&Fkh7d퇡jE`6n) .JswTA(ot'&dwM!4ePWͤ9 5%n2z>p^u2mr&+;ΠjiI(*@آ3_ ,uG]J~5<5A)&Z*;ee޳AfŲ7[\~`ޞU|Jp3+ţ~y_oe~k34|%TPklTMk|_{}C-qPP&z'yajSOZ!X“/ g[o_]a\C]X Ǫ})Ob>pIQ:3/[ O1*DsbLmz3kZη|kx|ܬ؀A~D>"p5[޵Fv6! ۱Ǩ EFM{^ X!5 (  OhG+džɛ˗;<7ɚ͠ ɜoc*r<(1 Eae;lM,ghJ& Щbhp0%Ny 迡1D< THmeSFv[MO}E,75 0@Yusa`Oyms(P}#YxIh65n"K, Xo6*'~p1)$t߂ uB- \2m^@;(B;"M6]TJ_` |hiYEڄ9.y-8QAo,w]}ps\-E>i eAbHFf+D,#r^)1% Թx1u#8k "(Fꗃfu8rx J@qr=hUق`Fء7+̢"zDt*OVbR8J$E|lI ۽.JL{Yr`vo T 7ɶY-ndz63$y2@նHx\k`'/G;ڎM ]G:|693d $&j@!JdgN60 Du"k, O^,infx7QE%xY#6"`H# 9~=ҡ7J9EwnS+,&nXs|!a,sr&J1jˉ uKhoC" #ߌWtXI.pv17߂98URܹ3~WiFU)^9{!"ؕ]*MƉ5V[TCrX$6 rzZv[!Q\]PP 9 ("I|_djJɝb9ՇHhFJhU #^|s#'Xl< F2qZ\Gۦj D܄-"Ew$sJN {1^  WǮ{\ *BM注zx#+3!+ ބ {qbQzx6N arvA:ZZEI"0i86S86!J%.qbNҎjʎLV|j BuU/D ?Z꿞o&Di/4XnJUKc-ÌK<wv̧94d挊 #W,VZhޣGqԝ=ܨ6\݈wVPT+ tɓP{ 4RT DvGէhH/Y,o rZ{K)mqIZrIktRɖ +j">aQ5ƆN-HZ)M#V/dy3k!QKmT0I78#.=|!11yUUWiU% !Lӄ!WkTl tsQ*z,(ԁ!%9z-3.Ƚ>ןZ! OiădLܕِ6p.D|1] 3fǏ 7-Ed[pi5 ІzAk50 >3lEnI0xخqWڱiv?fG\?Ӆz&7^*]`.#-MM#򳽌`I9MeGh9.Eҭ/e# z?<`)ڐO6t2+T<1\](a 0Szer0SdnRzU9} [Xp?&;,JXpAO"ffV^]|&CM^{So_>\2e/SP|2UKavڵT{BwPE (s!c ^WUew @k&͞ލܰ`[.^m0Uόj>/E yJJp+0L7أKV~ ڣ*{6 pF\OPU똥i׺[nn̕ c27X=̒{HpsDP߇Ʈ}=x(uO\G y3= ]2+ ˻xr{.}ʇ΅Y[ 9ޥUc ^_"lH3` XtA ;^| PqѽޔW|oě,,R+918Mp>T(xƺohL?}dvUqyȇrkw5ep;Vnz@Sj塼˽\e3MEEuz>ד;D, ltOy(\ $#Z `VH̷5R[Z+9H0F WEVDAgUX4M=OXXkg.{HI;էwl#6K_פ;t'O"RFxjR%{mȹMkD4I@ گ&OrLa^w{o(~7w-؇{(刣!^8lbmJ|3#+4pON.@wg A*)0\A]-~,XbTPK K- cL>Tר!pwpY9~8p7k_bH+`g2”vf_ ־Ee{U%&wZ֐h3IS(F]pl28Ps8[R?F7D.ңmr8 ^Wh"N Ǭ&B<\XN1O:6dt̳iBQлMvA8teT7FZ)^{LE{~L~)_P+ 2Hf8%Q6 ?E'BMoDI#u$1g->H񈀠T,wfzrKw]WC6tP1c#7-pb>CFW+dos宧a?KX}')[uf5agn/U4..TV;O~"ܗR.Y݇Ķ-xagF%|X{+a%/b~rӖ˶% e;e-Y!z 6R+A9U{2 勈“(ShaʵU)m?cvϠRGi%`׵X*uΠk>XM̏Т! +8>΋O|xUߗ;b;oWn9TOe/.>=H5cB  )TCjt[13ZZkfxfI86K!@&ވ&6kset҂,ksAO0WN؁o?&5(2nY7I&A{5cQчg Jr/O~ Nc:Sj(K5 j*i2Gu/ Ca(W#|[1[ r|6#4)d$S;,w;օJE A*oL; ʌ]k7?gx7<cǔh1--眉ܖ+ClSSʺ VܞMwX^بi1o.~s#ƣ?_E͒qldXX3U( BM\MPMY.9JG(y5_05!4 /5@.Y3Y*be hG6U o&JLAUPAGu3댂=j1X^os9c f `%<[޶ :ӈ_ϭh3rbz- aP+JW.f+~f y}d4`bJy:T"#`MHNk%I'L'/ށdFyR7u؍Qb>D&P),T[(0ɲi`nDe>Q>J𷥍 Z yQPHB>#$7q3j˸d[ +!~.auvV 晤+p"$SGά٩aJ!zc @zt^`e?uaj|aڭlxC+R|tF(y=IK/3uBq(=.DB_gd2}* _Ov5KS]#J&8@ Bve̒>m h2es";~ 1@ RUp%jʉg]yrqKjW2znܭ̃9 = ]\{$eyQ Pa8NܚBe/`9G@¡fxT% KJ">~.#\̛EO:&Bay}$R?AtW$?G7-'Ap.Jl-AX#F`"/^P `M.?1[X&t2#ڴz(#HSi鳩I`d6^AB} {07\RYUe;{HnB&ړFȐj@ߡjʽcFhvRhSnT9jB㊯,[n#0d>o@^4 w R3Gk4|Cav챏}93QtĴrviL1"_'h T8/(Zԯ9eЕr[˓381OҠnֈzX]zau:1RZSplk>؜OM,]V>ؖH +o&8Q^[Sލc>@O晬: 2 :nVzy9Z:Eif؁oq0b_g%Q:(3EmfVJgà"sNl)>#dzr,A߻ ~K$COlb\.ͽ#`QJmqF(,?Z1;xi3@b.^sJx.(h]y uQ$]o߁bi;!lE2g?/lYXJfDk/6]w\ePɸ=MN|L&ą5 zg:P)n#kgwp\y,,'&ւbM;fN*6gv[FR4j?>.ŏD!#>1e1'U!!BэL\ohYvˉ?"lnhPy_Gg]kGd#?b\[z) xWT[e Ne+Nj\5…Շ٘k|i_[Ht}AǚI Rꨯ tiJЄ cD^"/?KZ9 M`OI *3h7Uc Akݹ<}zh RKut3iIp[_6`hs$B/`(OT(EQ}8$L?=[.ѳ2~ߜxc7dj펕ԙm8cܢMVW׻W^^hw,nEƬrĉ'д#Z\) h-BY>ڄ$n_@k.hS4EV(\Q{{v?C'RݖG &]1W qr몴t{P9APNuT*gg5G;G7BFiZՑMp]#f}2hD$iMr&6+j²'C"8-d>X (Yre|%Ԛԟd *sT Ҝ2m-sZ>uYu3o ,/В~6P0s1Dl?$'Wj:oe/'O(~']Jb(@ܒ[aVj%/&[ E1%PᖖXD^ wwY2Ow2]`qvIt/B#6N0A/+i0]u\,=pݘ $< jS݈V݂wt0 l5{C*#e:/}W7^I,i"aYXij~Fֹ!'ͯ]Lu3r-cjĎ| 2>堈r8 D_^]yP_ė@;KE=oG!x_ GY BJ%|&hFg7jV2Q fARǞ K\A12j}or>_"'\z|"F)wXq *vzaA넏Iȣ0}DE(tW렋zGxx^ld}O &ܮ\7#-IB⿨?$q?T)#h}1ߑ0huʍT`+M\e_ a9m*p_8!ELi_B?PnGZŠ D‘4ĝST[T+pXer(BH4 E+QݘgC5\:]9xc  kNloD9_vwAȱ1C :3@w[7g+1 A \ 7CJl͌n#?yk*3tp +MI A˽'51xKlj<:TU1.wa%*:HM|$M?&#ߋ>[YOG塿u IƮ/ >m9 `9;1a`y|YBGXDf_e\L{ 4+?V_wu5tU EC]l90+,Jp;b'ν:o׻ףR%An4ΖyK 4%ɝ 'UF.ÕnIXP#!f]LWخx*lp, dzzsv/>#Vr:6hVs8=pAj6 Nw#.zyӓJX,/l7;,Rn"c>\xʶGo`% ~>L/D63ro3F%Ƣ_|ARh*@`Bg.Tr ;;J"@$u-X B} p VK^LW >VW l_֔i-=(ׇyZY%@#O%֊턪'4Z``f2jf!Xy\a]`5J,'=o hVM߽pH1>P۠h0qzQxA9]1E҅W| 7WI\dXW2vfb+҄Lpx͵#9=Q^F$m _Utdf[cc7*xZR/#N1ߩKkYzPT4'>{^方3"(H$(l K E4Sjn#@Gێێ;X/r"+K ^']B \*kow2o=߾.*ާh tz>QL<L׶$ԸeGcㅡY\68D/=2pB6|+*X?g_P wdmP16&3=PBOYw@鱮'0>86~\TyqZ$t&Z:HsUi .)SNOĈ-t+ͬz3'f3FA]XK~^}>+upjTB!o! N:+͘B  uume=|9eA &mHؓtgI ?L܍yiSR~먱YҊJnlM!bPA}v:PP\v}hdm5m#%UT3i_@@y{ Vꈀ BBV5] kVc>}x7k[ ?V2x;e)y.n9I)Lz 4/)jj_hT)gTb=r^#8<@6L pņ L􃄶oh P >ڼ5V;,_r4< &*{CtMCT!f~"t8/f'Md>9ݓ%Y^7̕:@B2xJ$' i3rR'J0Nl2ˆRDD:ԡ z^S\GA(+N@Yn~ 4A+QF5P'Ѷj׍FмZIBBG)̊+DOk^[_YG C洊G (aԇ!mWLp)s<8@ -M5 hD 74>،W ΠI]& _-hИy8ZH4futy?Ҿ҃'= :-%A<8I7DŽ,vg;&7(:ZlFYszU+4M!'o,T.WeYEER7v>v/$b)njqY/DH+v̄at@FV+{\+RsI<" []Hs:7 r>Gt:q= 53?%+C.Z.S7 lxTQbErVsXFЌ6БU+X DQ}w<@mS{heZ8ß-%1EH՘{O6;^#w;?SKp5droΨ(,~9HI@5 gKn$ B1`%@V$C3XNnf dF-Q*qN {YT$PeVFt )6HV>rFL_Ņ oH&ʚ!YLXlV|䌱|a7WNg`*i.EZ"vY9?~Bp31"Su]`2(#`&6My_U<Y RN=p ZIo}V aHBv5%[j;(QQx\owh,֮W2ߧd kaH*h4\9ej*4e؎DȏFbʮ.#]HV [+RLVv{NHc{3aPa }V}w~G2| Z0yhvwohYq4`Ke Nc[ی)dI."ⳎξͦxbQl`_NUN.A^tЦhkN(8DN`;/%S#Z@DWPF;]pvS)ԍ"PlH@s'^# uz gRnr:SgɌPXr̸rςxKmx+5@x(MF)A 6&:B $`~Ϣ9oo/ on5@uPRv@iI ٿZI-32q h6k-M5 jno ,Kq5W nc܀N=pуmHg'UK?!6S4`5"5Nv)cR伆v2 adR޳o)AEe)쉐8פ~E YR6#bsτ1Sâdc{Ğl~CS>sDsζ!+(=ÏmRi.'_{A5D%׌Tts0%>43mGBhqQ&ytuEvcCm<.>!,N$_TLV|X>Vm/J }E 1GNy7#7Ӏb'+p.-Br'.q׌Ylȫy^=V d.ƔDŐ/7 mzb6](cժh߿k6թl$5bև hܒ0 jſ;+ǚ Lį|}As*L`!"?s`6BD++(i?-[ P wOK< />{V/x e)A!x\lckBi;0g&uc/Du 8@)uXnݯYF-:0} }fI|;ƧAكf[Q<̌yȻ7{[$>BXb"wVmݡ5 n罎Y" Yd28nOm!~5Fhϒ*.bd$0, _THjJ-I0 ͍vzl߃]dͪS$|w>^) λѬhI#OQ2bd/u5JR(τ{IUJ1 NER괓Q: $I1.! 3.whΘHs֔ [NW ,]5YG@W(ƾf!H L8a,ST%'yT2p O.@-Zki 0Zi7~L[ -d|`uSA&TH({#cw/0͹ (v*݅e -f,+$HVs YݙK82DykB%Hƪ*ĝǬnކ,̱#P' x7#$ЯŐR.>M~Z=f5宯v}P"unaF*Ui6sk=U7tTP:lxڌ/AŒ0,AǗ]wtZ\xU7YfMSOqU fĀ.T@jtP2KܱcVhQm޹R-l:Uxaь -yJA*q( :Un=?;ć|R>)N0gVulB !TWsL.*ҔR"uZYshXQ#NgU 0=O^Rd+&M<N!6qܲEN?Sy*za-3 Fs}mx"9__݂t+N>9cK{ ilim9bًv%Ѭ,VH*GiOkOBD+a:VZ[ybM'-$hȕbv4VݬE?j!]TawAGXpcui:=92Q|]%(1IN0JXiIV%t:h+x-zU9,PVٗ)]MMv\Z47F,aeJ{gKy<'] 5KR.p^ /@y2 S?x4|XՎS쵬@3.RDG_44vEB0Q:^a2aSg)4mp9&+(-UC"zu;t w+kZӕ{p=!dV9 ԋeS3N0z߉L=bE,d]V ,,@)ucߝ-X :}r\* E\f =Ǝ6X+섅2w))l Vk U@i) MɫF*S(bu"׬ӏ?Iӆ͑l_vAK"g;5$i(K M#0cj a{fd"tWXKە.vww8|l+^KdX[f\((EPQI>΢}hbeeܗ!R*n>:Iw4 uKFIihuKL{qg7Ec02Z6IO'XLmKqfRe80 2a{"&⥵X cJډ_ x_`Ta!H&Cų{y``VLޥDTy2/M*&ϊG^/rdBʕe25\}7?=v!25C}mxQVS׵z?ԞA, sXG- ?^~ɋ_9\J0JQ9@ct|Vw$2m? ֬SsIFQ<,v@ F4}|(BvQ;YsIeX]4 #GGr\2G>ąM"jeF6@;")YI6uS2H3I2#BB>gi,Λ-MwW 5H$< 2W@DL%M kox C<Ȣobꍎ3Mj0l[H%M>f`:,ghzؕc!H@|guD zdXf.Is? K,=c4v5]%{FAһ֣j9gi3hty@vÕӻgRrG]0"fsJg>ZEޓO;Xaғml,auVEDEmAOaP|k(k@ ]G5d~SN[k)lr6d_t &ޡV c|f2rJ >x#r Q̊zh5E%HͤUS|/bcģUi% kԱ 5aasb!J; r`fWEI]S?Զ{QeS6zyb}|{wu'0 ٵPw4gpBE$Zxno WDuM JR udĠ o÷7%]y{} ~kl enr׻v>vt]viehߨQr #/n U0#pC^V;9$'"Nd)Ougu~ /Jzp[dt {}~@Ugq#9 X!IB'x^u A\xZ4bΏ dBEiOrF#,a."/ϫW"_0Dp8'n9u( 38߂C(eT69^ 7-g7%; TY&szEEIv$DZNN1xCrFld0WW7(JB]xQ%`G50Xa\6)zV"5^& *9ZHd i13{u6?[¹0ܾ+!t?ࡗQL`mFcX C7a5i,wg K'7Kz{N {e}HłtFv" , s5 +X:]T*̍z4C4;|?owVW (W'7:"Z'x|(n,*o-$)rq UXB`n> lHJ;+BtqI)soB#4@E#;c3!YʡV9}3w.#d6*p&bV=l\ј+iJ@D-X=:eEud kQ}s9P=cPF.>N!f}h~¥l9}.ZCp suR.d%ȇeOl"E$S7L̤j)|DwFjk Uɂl")C.f25) `@/cEċR7_ffAϹ)LLi< Rٲ|3Z4vG-5X]7ŕ}kB$ N|]G qh0bD -;'7gX`Ww'PO# 't>'Ht~?h{ |.y`+&sSOgaâ ?ocpsVU6l6 c<:}^L@9nU = .q¢5XNO.x<` 28\a]rz65$2ݿ.7g8~9=9(I-iqn{fyiH'a֌A~d ?qQUDcA](X=q˿e:ܧ nx6ni%ݝNy3J s~#5éC`LvZ!假?Qbxd {,.A],ŐRoU.kx4:E 4_5H ~0Z`S01N&6ay%w1ʩDX+<r@BvѸ\$!k 2oGhwDa}/c mIM6ǎkڤv4ɻ`}I=+Ro/d5#)\P gMȠ W늗A!;?e z8W]mH5"jC|@\!$eY AjQ>a_nEQ1;:gw@[_P2)Cƫb(!s!$>SWm]T^N39,A !Jgj$vn",õ.f0TX}@lV'))^6OHO ?@'ۈ$DI+*Jro=mbb[SSM:Qzɸe%v iN+f6eWt AͳҔ-i;H}r8*q$*4($}A{{l\ F3 JJPX_~v>B>B׊=HhkNqH>]qՄ>f5x*㝕i&Q'\8w)xD NvG!(وB"TRH㼾U4 <` azFk4)R^HEˠEA֨\Qe%f֌CI6)cBgS;ڷq>jM.ջ.]/*ZvqU`|m`^z ZsR9 IG|m]ڽ^w*vbe_Z?ȱnÙ…uf!]M"2n  }\Wn1ܓVx^/Zu*c'я1Oloj. ѨTYuE ^u$(wIy%74(>1Z $"p[-jWKbPFn.K^&sg^:_ G9R].P!2ü/b-V/.3uqXW3f/hΔPP q5:jb+_Ȇ ǃ{NN^7KCK|INҴ-ߩ5Ÿf#_ʼFBeFg /+O%/?ڟ٪/ey=~_8;Up A䞈-\_$_B]iCD_;(.53,㨓KK~} e1#cߘW?0|O`KvʙHSfCZ\v'{|P "Eo$^8 'SNPJ">KeKJxKHz{@22ZSCʲŶ!xSc%ͭYK+LdDUwCkcvz^!}zh΂c;aV0Rs" TK& Y 0Q53KN ng0P|=`Pb{%v3@X$7\c@R1oeՈM_Yr# :^/("L2wN"|sA;ULT vES+G5G#OZK8vCu@PCH">>8B>ڎ{+ 8I:_Ȃ\B$M9 -`QseZ7^(Q Tg)DҾ&}!aQjI$NZzY!Bs !GE":bB/n5vyl=,.ќqn>p {^%8Η~# K~Ӣ۫raE!A6C?`fN!ШukSa0'ejͮ![ev.,Vx8"L@h"u))Wvť.'5m9f#WQN 3UWȭʣfTo.dhN䖠W4!6gkB)?t5!/smk$ ps<#AQ́-p͗c9Å©fm3@$K6uv:Crشe6Jԝ(s!!吜c/45b̽ [[}CM53dR!֡ ΰVi?83P\Y (EfpHIB:ƥm eES=7^œ:ev@4;-X܏7-6n8_BƖ*h >cM6.N=3Pl"h-LRtDY W}{ O6 h+(HsiDXfFa7IfPT ;泅 ɜP Iת.1PH c~k|vj>F)%YT&m!eh!Fnca3, t0\CJ,BK YWM,)xL{h.ʴV5rWnU:Y~u>f2>2FĦ8 7|%K|5.M1Ӌۈ!'%&YF МPPBc'v~##$v}</WMRr[@"nB[%::'+F\&Y^͑փ<*ZQ:$z|Mvgx"o5H&#[gӟ sOjJ: sm?]ksl Q KʇajI;Ϣ\HsǔJ#Bzu!Qσv{ bȾuMN`VYYqkJVɭ Lc9JȦ`!GPL=\ĭl7n*0˳lJEfTٕkqÃĒ,:Y峓LZ~BlE\9ÉeKeY =$ڔ-vŃKJ@AbooZ bM'X%DvU| b~GDD=,.>K B%l&jx\"+ HH֑Q]*] }?&he)nks#m90<W:^hJpjo̳0-͗N4D+WՂ+92J,#݁D,Zl!$e)t;X{~]4`^)6=} $9XJqU |uksvFMpT%Sa-.y)rW~7WCo=F4rKd=A_eXԋm|{ 2ZX^ruKU{Sʜm@qo|DCdqs\$@*Nn㹑vA- @zуHmwȾagCF Uٝ:5iK\] ~ySI q+-f+&QRAWgO<3HDdF)b0_DkЌU%3oӺxcSbwӘSZ(sC^9 'BYf^cBxg.jf bx3QxKF:y*rev<d-Ƥ.-Ƞ>Ih"鷐[oWu`,ܽq7.8/]>B]^7f5;򇝡ghVQp"~Fф`!i^0B5.|^u+Jv,4T-x:$q$ĭPv()<Ȓ>oXgB,x^ځZcVn5zN3MFjW2xWBqX߲9Cb5:?I㫁~ |P1協c(?y.:Z6†MoaU tۯhyq~rg"|;F9fi5N4~DC?nv3$I( 8Ǟ-brB-d(+3@M"ڃ_17䭇JJw~C#}OwH^@ R|ƸPzNRWHrBJi9 [Tȓ +8ݠ<ؓjOQG-͜F!,ReE7C9 @jh˿oG4c Xjr=P*3wTbhu>LpjRw 1wM530)]΢tEyYJz@W g8dIՙƉ /hAc!`@YaLݡ;'%Mǂ+O׼E/f(~&2 `[yJq`[ӈDWSG0$3i&INKsh,N!.h0tem Ifc[G=.-Uȃ:* ,fbFرVH򢍻sqɑï)&B.q7]x™*QKOZ$< g#_@s'B7z,j|.RơxÁPd[HoAowT.ɨ`-缁8Ҟj%L"@j JQM$R$"ԭfǍX].ܵں~ʈЇ$Bޱ()ؓj\E> _#+)i˲(yH$""}fri0Q%Idn='uulLLF .3 eo;fg\|0g t$S&= 89qzQ3 p~#6 +C)J0|&,`ǵ 94S*zP.HX@+>b3~iA|}0@ :/rdDyFޔfWt_O<(P> }BԒ |pjgLsz'wyg\!_WUz6FcC$`;A okx=Hq* 'eTV。/up)o\LcU+ncܳ{7N " {VvP  CM}d# `wNc7yiM@IKO:Pq8q n4`)`C|-{i0ys' wsM]D( nKfLlB0ȼmilϨR9kd E*ԁ&(Z}NqX-, ( F"oL:ṟVVa-9 \V+9:VpsǭU}VFo!g=#'}_/3یtAGjGb?!73",;f׏sHr:MF8mLziZfkc?e2%bpBC5_RJ{"G(>Nu=&@qYvN +ɶиl~2 xzZjzq[ɕyUpbp3C] *Jô7hYz[oɟ1cy7A_ryRw=뮭6-X2֤2޴ ӞpwyAE vIƾD3m3;,-t%O@`jf%?حrm,3愌%bteVN[cީX'}P.W[Z1{P(k0ً! ?FCQFP8ͩ#2'E}r SٌKEµi?QWdms,{'~&Dž#u,1[Y';OWO3|˱ /b7"WLC\Fv&rބSz(yn ?EY:rdn>oL /̿u.XCSYѳ955F4!֟cm0s<\\{70YIsrG+7""cC F؊`c@,dІ e&G%#C(vvٽ( CUf M9 Y} S/'7}kuWULV%'C{|b֑`*M~/_ 4.qLVFNR|6oc wpUPN틈}MM wܟҤLEF%C}䎊~򪍿2ȵyq#Zcգn*Y<@kt_ux;hU(H #+) 3SmN&>19$ Lq?to @ðhGr1E $R&Q$$FTP`+lrtul뼅ˑ F*P&3< Wjlw7`E MG_vS=`<]>=|>:8MGi3t^4EHAw5 C\34"]2L]d%~,̀o'R'1L-G.=>qHɟBZ?1U'B;e[ĹtFDŽ5NsV ՗, `Z}EWL#gC~`LV4(wgk$e|dKOXYհSog#!H'gvd?EњZuқnC{ |i},"?qّ;QW%Ƴs15K =ffr"|VzFSM5{$Y2Y(v(ӆ|5񏁪eb'^18 R[UY@WoZ%l0mz"EPbnwy%p[Qpjb `gO/ngEKY<|mְ9rdf~gj? .dhB/]x|EAA|b‚}U3Ink9 '\xfs̓|.r('bN :f|5ĠߌYQ٩ L>K13_l-6s'zo.@%n|вu6+Y_#g"qCP'G[F ‡# $d?TGb>?NA6D + dOezeW?O,Ӥsuɻ3QI@ȓbGv[.*Zm*Ce*?,'5I^dNBŦ/wgg[cގCivG;cZt0bcW$ELH=OpeigIRI{/vs& 7)ИIı3OmS&^duɅ:uh8,uwѣɮbC7)oT;:9zy2#X. OplEVcTG!´Xa7gCS\r>KaHPdp) PûrZb"]N_j˱?fErMIWd+O?:Ƣ9D7Diz:6p[(`3]B`WMaQA!G ggؓdzվՕ)Ŧ*MQ/Br`" ~}ݦv+I X6~;%/'B 6־;T&)ȂSãs3srG[Ahϣ^;rRw*yI弲ЈT/t>Yyao͏c dυCo`2peEnoī9ʹ㞾OLn Qwr9C#ZR[l}-Hܰ a4س/RbFe4S.;Jp^܊cm|XaT1k"ɣ0Dw C `bn~5V~Q{ǘ8+PCjt嶜sJqNm JMxwX~.E(@&z޶ߧ4 ]̰?4y̖Af2\Tt@EdR7B`cΖo͉1ܼ[d/O5xK>Ud_-}auۃU]è~3BkBqYLzN~kH7:8@כqjBE@)mUh /_Pϖdw6r0e2zI_( Q +uǚ%;Z,H~Xcb? <lIAҬ<%ƸՆukKo+v;B6;lu 8GV`ۨ/_PDLz" Y+&%,s+~"rAm"*"w۽9c#4W c<N .ᶁC|Sr5cSJ?9?G+JNnQĐcWvItH8r$z @o3*-K_xw0!=cGRԠF*I$!]Sng$Poe=i Y S -UX`r_r|jh}/S>G(xr5XR5ЎT~q,SbyIu@g6(`bN|xu+"s?4!ta^*D:moo' 2]#\ezQ6r_܎^ |tzYI> W\J6tj:(d!SwpÃZ^$'S\9ўgU7&Xפ:~\D~V+5xf*S.j4V̘.»ejAh.Мr) vd[^c+ «夆@}*w'@k.dWڙ z#Fk%ˆKZk|G ~^dz{RQuY51"%`$j-UE煥/u;4M'_/ڃxYkϟ-9`jc]23=|"}gCnLܫ}P,yX KOsY̱?j]!-5G ld HE] cgS[WG¸ yw%cI,-'Ir꯭[ȆlCT.1?KWn 7Ztbɧ* b2ŏUO\&CUg}Rr aiPY]_6(͵rl\nBTUpysXpu((I/j~&@4)9.'bB4lvؿD*^ykDpr n8XF \뫲l~IPtQD2;;`oځE4{}0zSK>z-`acXn ΕQnPTɩ*p Aa8,Q;ZuMњ˷hv@ vN㉮U/{NbQ1X2Je[&O]w֠c?b%c{B_dk،oވ^XjƱBk'o qx`Q;~9tLTϘ,5c p тͲCn 37\ϽR[,dG"Uu >`(Z yM|&;Z,m푢% `)s< eL%r|$TE:.K`;hoٶBQ(I }&7W_MO;殔`Ӛ0jMa:^-ŠVzkG_fq 8SIz8e_=ÄdM.T.պ\K~msZhD ;,l|ƹh_ߠ מ+`P&黀 # ֽgje.Z-]?zBh/Q\#Mi2_K~L5U&Q-X΄r [ST)5}<)u6F8X4G2o߲cš~ F>'w"W+-3VK|r5M6ၳ5?d3>,zqDy ҋ(ϣ X{"Qa*7Gӛ̀y9R Թσ]]C$kong_G=ɡp F*C/DZGsЂikUai_"sB.d <Q 8xjϛ d\~WbE\Xĕ.zv K?wW >i7oy&ѭ تr:pK+ǣjgoB>>d<pڦH B V{Ӗa8pm{ݏ~ě,9auwC9緌W˖]M i=:o)BY0P|~hPZ& ^ M idEݭ;.V~6s|? ILr޲=K^Mﴤ H. v$j$ĽQR\ŎRj'dT!="QylDEܓ^W?k2tHA9_@ՃK}N-l8+ SS$byŦq; t,8& ɖ#σWpJoA{t6R+„3BRw8JHFev&}]{(BnkzPhML] I7LOZc|?*_HߟV=^r硨Wҳ zM"j]Mh@E1iU/̿1Ulv$KjHHmwȅ@ٓY]x?}X-r6 xb5c |X rXq e*PjƗkS8bY'uő޼:yo aNq~ q`'PwMWjź2}2*Ut'1ܿ y`&4دg1-y8 ܥs2Bʞ7g;l}SjHiXÚJ̢iKB4:d 9_W3 zf]Z[D2v%dRbe&xVFׇOV[ nRN\*7N|'FPRbuqoNHv1\ӧ+RūQXѬckaxhC_vhJ*moy&wFY*ӀLVKciSS@vn_1j1l4H { $xG6V/`v6Y< SX ?`]"[h`ЛE8Xۍc&=APX >gk{F*E8 p|2?Wy#$ zD+z<݆3!w<^ێ-O ,27Xù0 PFGao5._49u[Um"q9f/*Q{LF+I*jb T~+oX@$"^UJϝ@ݠQ$f2 Y,O2ec:;EKLڗk硬咷81M6A^%,qR S_mh `(ILWZc7fAr͌{fAD[帮cZ[Hs6ˈgxVRv /eNv7H:82<|@v݋" @;W!|*BOGz:5e^W{eȕqoe[$+צ@^]J=rrZvKʨMcrҙ[iXn~3v\?o¶(eI^zQs:Q$lZ>-L&3Cd7=p}8yT]m2kd ת|PJ =Ww~^qmgOB ?rP3t#+EnM߻f^ljv7}n׉DKۥa (RΕ ? tu~עd34,7q|vH*CJ Թ.Nӎ:Udך2"ƊgOqf[VIF7g2=p0li a7SY+(^.vl዇'=q>x=䧘dcn/ Uaq&`(SN5:p)Qsd0Ov__f+ x:u,7\@}Eeg)Y I&[".-w< h/) #r&̳"X_oqZw/"qJ NQ(ʣޚ 6gOU!k;Y>Ȇ!ٜ@ BځşeQ+OĎlVkrtXT^qq#%삫xݮTwn'Zyxb!5=ލ{ޖ99.vVN&H-#d mJ8-Pd c߁F"RX 0q#sF;n2eh`:]i7S hZ9Nmo솱|" f?]ʥ}5Rȝ\$6&Kv-j-ofXhmAaS.=.tLehK!PCtgv^3{Ft'>ە&#dI׿M^?2rjC@{ PGpr",љF0Fɂ`-Uǘg[h*KpjXl'sfBb:rrݯOk4ߚpp@Zޥ!A՛71]BRK% +RuX( J׾e'nxOٹo50R 0wH8:]. {_v"IMW4iM*M\_ť%RGؙ|=DNj ]uWfT|#:t(jbhCDh(6%i}C[RC tf젙8Nƴ禥4UiHs"s(7<_p6(6L.:Y z(xNL`Mi3m`złîx2g<9$nbmz(9%aS~ME0̃5lphl˥ZJ"7a-NIA! gam/pP B饭;@* jE6e6R!_4K =a߾]ٵx/6oKhCE&_wѝ!>[hy{͡P<-ov z)_M}g5VV>ʢ=mj!p^Wv$}a1ZJ贒h"gZs Q*|HWIvd f Kp= /c&@oH,Pp ;@Gj$$cpqC?yk҉2GXbDє_0@MHZ蠍+<9caS<3F&LGkțۜ#:cxchB%b(#CRX1?/"088oR6a?k1]j a@+H o-^%(d㝂kW,rbC$3Oȑ]3h)e @ /i{~Y:Wx坓U.A2ڴN_/\TDG1LML=PEY% pg($)J׸5I\%,*# M*Hex鯊 J_!FBSӵ=I>bO_ME+Dlx!6lK(2eS&ں'sN$Av9L%y04 \j~CӀ 5m^yIT./@jw=6vD$r. V{9: &vs'/ 1j\u:9S8F Y`S]e"*W:)H&~+x~i#j^7=XpHjlo NRNuJ,{O!F37bKįQ*0T%c+~^.CNN ɗ+穙EXLWxw3G&)2s6g1Ov׾hk>t4wR俶3tKb \2.Qeš0T;,Sd7}pv8^a.zҰM8ɜ| ,&gB2ócd-⵿/DW-ܳMFwyB@-~9 YzaUdѩx=޸QCZY}_E<nYÌH4g(aWj @e@sT@vt0?jXO8lQp-o.2N#Q qvLt\_VYN8%v#V=d-AE(t?=p9}@Dd(`8&[ 斳f/.T~?U!$IHz<r0+j%'Lz͛ tC6kQc? t֠fϩs|2u>.PTJ{m[%'' P6lv7yned,lr'Gc8_*Ė3~=t`(<ʞ\P@g#C Xܧ=9R߽MIna!V&`3"\*)XЦ]da~g>fBW+zvOڅ Z (h>?5g莓{Ъ6e\JOk۝ϪC{=Ԗ|.IDLM@ԋD!\d%aQr3%H6և54P;٧60S3Y((\9JA,}W pr6r#Wlݪ0E膾fH r"!) 7%PU9OD4ׂkыb .Oݠ0C;L2K| SL FIѾvPhx-5&7tw#m ڃr<# =\K}"eaۖ~?tIV:fʟ`U}͸&Y1eE?N xgyʢ"=>XBy1$:&l/(#НFwT%ץ/ݒ<8y4PE7<1u~qYt ,oiS(fhZcZf<)z ޛԛl +b ցEsd~-RD?@¨8jm@er?E| JPR0s?%Aƭ l+KN D C$ԇ gD|_z>|gl>?E_ڙ[dE=:.\#w~5-Pgئ;IMQmu5Q.:1Uw(xm}/}ܛ tubK(X{1"Y4GPE^&[pN 7J9c'd~:yŗ]y}?~5R!^]@Bl| ?%K  ▔NmckDWdRPJc2jDBL/VAw &7b&whaOd{p,bǏhR/!ye?O`X跗g^~H&>Qa%l Ic4ׂ2=0I=`|ȃOkC;kt͞xck6þ\e@)RqN.K|(j?]5+R<6ƺnah|%oxh,RFazD }fq܋޲NN8;Cu5yQJN{>=0 $ympq(:I 垫ELgDR1uYzoUY)DFfA*Cg~R:(R k; ;^aw?C˘ii6BP=T5SVeGDȶ}@,|9oáݫx(&W7O( WN7Zn;Ǻ|e?z7xz3V&~^^%~$-(@4c"m4W3* <,LhM] .',O"% :J-~m A*Ndĭ,5>h؝$x lqV<-W0mc\Q_$dVTaN,;oصir<:_^  ;^#RJaᗊDqrv9qUv'넨4&TL] tƚ=ɎUx#bPOt xiYF u L_h`4PjFJlbاsB :!:"e+cO\R M{2ͺf2\w) o~H u)'d9tfƾ$uW)"xcI }'45FIR[/n\6½_ lo0~7D4eFh*M$PT*cmx:T XvTX&E@0&V*DU^ mPpCPVC8K|OoW8ևIKM0asV~7؏Z-_[obk`eK^%Ei^MS;8tj-hF@תz$58rّR|]B%5V[DrQf~\ro 3Jv־P95+>m34 =boy;+ܫr,5˼Z`2-s בi QP>YhXdr 9>u+)pONwKPi+BH3 n}_p2m˪gI]^DN?t!R w1]U'0OԊSo%x[$_î~\m-Lꁸ`ynNa A3gظ4؈U1΀l5匿 [UeP UC@::O:fx})迱!!%2hbQWb@nTƆYuU27վ2ځhx-Uය$7PSyjeSl9kwz0KА]43 !ĺy"vmQj Pg M)HI\{o[$.V acDܿV>fTV u (g }7`զ?G~{)F Is}Qt("x*IHO6Q Z n7cĬh*5 36~Z ,h9Džjk&vpRaNa+:pωw~iyCco7dV!f]DkDA:}((~vxmc{BŐsSLU츰4r65dQ]rcQVE9s\nɃv&gė):m!gK/ FK șN-YŹVfἨlG*/!On%1Uфj #cL d.K!otK800<"Z2XrkDb>];`y,NrU¬bNQ|NH?AmKd>^᧓}!`y6iBD { r p/z`.`Gfȷax׌} q OխyѴ<;=} @y<f|ADf# ?eB NN[cτ],"B ba7|./3~?&P ܾYt`Ȗ.J+;f;t=(VI0rNt$a˫vG8`8 ]^b5Xg-V6ASWC"j{*,ց_(٨0 ڪU$_^Gsۛ2Dy w]!0 m?C#q(r֕ ΂8EFHv僉O㖴Q>x8^_skŞ⤅U?BW.\=D u} 63FaV0h9x!Jqlm@J>}>3)Yl*ˍP32ݙ513 ok!Fԟ/5ݰT =$^2ı6q^s"c?߫J FLFcFTOUп,`ڒ홯z9O{l~W)/=-a" 'j:*Dgh4Mf ,M^!1|B]ōUf{]cض\h>a1m^H`Ctȕ ׄȴYJXY.gf1I"2*ߌ/Xv 'q:996C~kfHFRg0xQM{\e)'ڶ$Eډtg2@X(i͛H"y;d=C &Ozmt &D+WÿTLoI0}<zFݨ85JﳕoG`A,K3 Dec7Q7]=ɩKpS*t{f"N4sY%Zju&ʣ\x=,IK˵[8`]Q;,0䥓ƸDAj9ux*{Bpvr Bn+8H]uUrdܕ^џ':p%W_NuO w$q^U4 qd'Nonҭyp1>}:o߰0i WMKK_+$<^X6abeDd#+[7: Âx0qYyF %3"TS+ )!N%ƣ&<1+ }v9uTËcDAyi)D+56+j4@4()rȥ2Ar6;pnx](k6 }}+Z"6wh,[ZPm-o1ڋ}m? @QYt rgd=1/Q?/(i{:#|Wj@ZݘL -A4RzfTZ O?EaK9ZܽE=r#GMjP#1P'x*e߂U%(.D2E$`5ֱٝyP+Dd܉Nkܧ]0Me} SFZfVǔ4n}˨Dj*Hޒ'?5Q#yM`|A,k 콹L6>|1MbgLKY ]QƱԋ^<0WweGNG[.p6U,C+nKd٧\Cхײf밝$.߷[RU$6+n&2P$jEfR. @l~?j5%Y}2{-Lat+^MX?TxTf(*IjIjB}KC .N.Uy2v ڈOY*YϠBi"M$I_&/A@jN*}mrAz!kde97zģYY3Lr\#'SMOj݇wvV|nKm.u A-Sk#bP;u5rOcZMQT\׳i#wN//z70V7Xw}Vc%mXYbz- %*|J~Vq'M\<Ƃl[N 0pYꀵVXW-sc;BلE g69m4EaμϬwc<իpM椌K{ f 7hrC\%M,rX|V dC]Ƽ{vcbE'(q,َO 9_Qh4r@c=Srqn|Ӵx9]IƑ:JLܟ&f =wo+QW]BG(=*^DdbS-SG{ЍD^YwN[af' rF"~gS8ɥY"i8aE؎+tOL@?¾o̔Z H-?u@Dq>){ u;_}{mlǪHNhQeC>l ?t/' G#,O~{}a+ҏIy!G Dgܣu֢f | 9x+K?#U.cΞ>uI 7 åss hQE,aKr]^I3JRĪm~Fg~bH|G{ r0$bXr¡tv t7\3zbK$jjkWU^-&Q&dh!&w[ )sGF^BV!(Uȸ n0-NzP>~&9G;ԕڥ%>Dᶓ:8\`)$[ZG=8~%'I=JTr^ FZAlY&1 Gt9ێDa19806IbP?CXf:zyr{kxJrCG}ĩkWƊX/I|hkz]jpC{EVTU;{4=u",wn5p!m-l!E Kjfq K9ǸСk|@@EAq&^ p F0 ZWE`;rZ*'xV#Evɡ9y͓ k [3~A;av}a(ѾTeQ*iy,߬ڎƔ4\Ԣ6Ditƹo*q:88Yo6u0RR TNĐc ?zZjoqsqWAosy{ѰKF8<^uŭq7EL2syc"n`|.K=}CG9bZ ,"p^lLq񖠤ܶ*A^wٍBy~/; vZmJ.m)}$&d 'dn(-nFh! %WZhy -#_i9,8_J? N}:DOJʬNZJ{_Bv]*=X?!VS5=a͕to{WwMdsUB9@>a'cfnї@KNF/=Ѯ/.1 R=!璦 }x|j#n1W1ӱq<̫x1\Ӄ{w1 Jf|ctC Ie _p^#q.,,V<#6=).q*4dl*# 9$-PZ@ޔ/~| Jr'vU^>أeddnIPmkh%B9~׶ neomc\=I=r5$kkoYjjM]]x2 Y̯$ n;qZ3Y;xO +J*H2k8H $k)Lk7fT~#] 3"To>G]ou\](N(TV<;Jmbj۱jT::[1ْ̜dc=f3%:u䍽A(Aj ]ؼTE;Luj>)ucGnP끕 [ 8ʃ.p;*߾BUk1FE SDM>p]'a Ӕ!L0zNHbIZ ]123r`dfZsE2Z>x[qzRi,vk,B-OoOkK|7UٷI$m7[-4m~):Ơ[L;w>Jz(_-|61,HBcb#hv$B',kagMRNihTίlI5=TsEIȍ1S$(Bb(Cp ȧz;a7']`@]!gdS2QXl,pgٓuƻF,G%kcg3,5KsR&Q6\SyE񍌌J#y+?v'X rRsK.^c`FfQ ؈FR@__P!`cw}bR!yW98rt 5|F/> ^gڊҌrc]I U۰ @z^l>2 UӾ`~xRgv(h%=FN1 U-cT 9bf;X-p=IEleO *yMqeIlr'Sntʋa,L'7ḣ$\ėCᓦ),fCdĹkcaqCOK(p&[idpM{iR{l=ۀE٬X.Q(OR*ruW?s)e;9\掼_/Z/ޚκdS5BX1ͷnE^ɼ,:Wؤ "|Tyò'z?r #tBxD|9L9tkI{E5k,zrRK4KKONW_t%Ln>-!Г sO{J+:D%q[!-Qy_/Һw˯4ψop80[Xg c۳ ]5jȧwvUjg_50/{?}n58F8όJc,uehT8T .9v_07),TіmAMlqR$ڲ:S?2V\/Dy8}6̮X2enԹ獟ڭS#5΋ٍr6 5{XƳ|)z}q,eW*N)USWF4<^Q"Q @D޹ߑ5h}$\4|sR66k ]$2By:}x$u0RL^xTwb{ǫc@P-o{)#tR;Y‘b?؇ (Bk!#[Nj3=)\:(sI01*3aiU b5~_$gj6>&mpFznkA Ű.?=$>"(Q1 KRPctґ3^/ uq#Ι<#Č+0q"vPx_pJd1ҽ:%:DFhn}# D<}ҔUMeՇUnJNna#K6/[KM8˖o+Q:R Ntgo)ao=@ާ-#{Yz괗$BX +FTaR^I H>m6[&?@*$YI  ^Ȗ> (hRDgYڻ6(Hz IY-K-pno"f"خJE! $dAr3ϱ*P_n=%cg y̞"z+ X[ (q57> =R0q@W%\RU_7 tuݸF5TIcѕͿɡsqв6 h7aܣ;uD7a^)R+>.kjȳt2e&ke. !EVH΃Vƹf̄jϹgGnmvf:EtCW & 11mZ.pJrlV,jiju"?V\΍Iw?,wvM 8 `alpd"n@<yW;ї ANDv:~*Z{/ނ"2W^J1+,$(bo߱]*ks@]JLCk/-:RXF)Vhh$ȧtM6+~AO{G퉽׋޻(}(>Px% 9[r_9Qө+}<2;#Hk;&ѪM\G@=.eB󐏒U ePh`S6ZlxOƚsr6/u5bw߱?j~MDNo)-Rnak?I(B:Z %1sR_<[Olj{!Dm LG Ա3Zkd8(_ețk%F-t5c +cf\QφN s@ 流KܵܖxHX`ya-K cԻ3y̱DCW6h|OkuN-Q+N#2ZZ[ VdDγd'?]y4;ٖz{V'?vl LQBpҍa̬UjvFbJڈ\T~l4.N4S̠SWokJQ8`'VݢJ*N#qY%  t<BT/%Ydmw |mM:lf/ᖦ+97lsZ!v(;PA$y"[L`rTg݄ɼS=o`waRQ8]7;5])]K[ W jD6wZAP]/,m;]ɈPm,H䅏flTA3U$Tȣs:񐠥}PF (uDoL&My/&']df68'A[IA~͏ ya:Lţz9ތ&koyEjTN(< ^T.jOocr<a~?ܒM—g FT_^F6DxcLWz j + m]%'媝[pcS#D%n5溣A:>U!S*EۇTAO($5܇i@D(8J+gXl,i0Z T9@&UWG92;YwF< Ke{׏`qӁl*u e `A#WޑWx7ӠVq&7T}e§0 1W+6mƷeFRKI4$86}1-j%OoA9&QVmdPXJcQq^O>݀"Rϛ)A^dr: j}”1[ܰ26z&0x#que1=ک\ni۫ZǸ {w?Wy3Yu'AD$ o)o p_" >:m(3ӹ `ڠY:WS+S8 OdRY=9o!mxr++mu}eCӧ!a1J6Ŷ1Sk^6#U-^,eʇĿ`GPB9?H< V.7 n䞩@U#5 ;nFm3UZgfmUvr f}k^KFr'a*>+ho ϣϬ|l\*pgX%$*XHS@4-c4 ˒)4a0r."y-*jMϽ+b2Wg9Jإۜ t|qU v}rqlq xj M[N<,  \`:$}@]o}Cl%#H?ĮxI-cu?O p9$#5ifu(Z!%ɼ_ԔNi(bU +R&z(K/ Qp xCYіǘe (#c\߄7& h9 =̭ _|̍  \whj1{B'[qg ȹ`]5k1o|\c~U'OtӀl?-Ywó-*Z•Q! \b35\|.9jyTy#@6 S%L9b(#rg?H񠦹_p`<20/ir Uqɶ.C>Rh~~9kz_nNXSk BIQ뼺dIAm2k~5vѪ`\N8N>TpUcP<ڹ\!J1O,P8=Ih Ѥqv]םG˨`F.k[s@`DͻJ.+?֣Uqv3ʟ{ X #fHITm9'ۇ:wǂ_ƪTÆrhQ)n qa5,f=?/.S]}d>2Qp91;ƁՅ4{>5ofMZFБ/EI卆~6.UxvQMGB3=X{U}OW?>bB#T>N' 0K`S"Vh"Jyj󕐋4dK?Ǎ$˞@cؽ΍7b,uLn}A+c/h|uHyW.pơ==>ټ>GBXGFGPcAi7Mg7=b%v%SvJ_|kS~@YTV"!D.G \ƞM[«|2K,]I{,xKTC4GkC*2YzTy(q/ղ~ӳZ(jTUZs+X&B( ^1QܭcܻN+'D{6%EHK- $~@|Ty(;?©o=]۶"]D)~ajg=fK.o`hLs(MnBv<|I*s%@xb8Ec_Z *kJMrrvNcw r{dyDe]RV֏cP!>%{9Ar.Zuwzcty9h $vNb=,U *`U5_-Dm=G> (f4/yW5_t+脔4*' Un0:ku1Wd/G-8\Klm_0 n{ S{.7¢#qY D_"e\^pQ"—-I)W?!l\;вP)o胁`ǩHǢ/CuS1 (:*l6o^ 6YΨ.R>cC9sd^Ģ #tt|A>F, CvLk4,ط 5v5I4tpn<^~y9j{lT=0MtShAF$5b+hv9z6XEI`f鼔3p)v'×Q$OK |YsJlH nBCd2i˱6f_trtx'{l HW ŪJ놹ax>Nf_ݠigR'*;-bqx*/tK$WrTjR_גJӠs<$JJ݉Y,nn1/i\弫xf\r]WsW۬o[@i؊2DPZb&:D%>Ʒ$R-2/YVսHC$[&O  _k0#pAEy.EEҦ>4 a]x/} 2%0C{t#vZ4ǸYlzX,D3\mCUж6a*J`|[U/ou@D 0`Dc9l[)CPeL8\qOyr_$R@rd)&MTocME-,0Db:{[xQ%{os7RWΐl^ ]NXTٿN\z'N1gD\ F60K08W(kß,[dŗ FKCfCVmSI;p{˵p):Hn^]/-TCD/FZ]W?mpޭvR*#^U'6u?KDM{4yrp!kh&UD˝w^"( q;ޓ`) !- 33TJp͔ں'` gE 1z lqBQ$%ޚ98 &2Fb#uvZG`ram)>mOj ԝK˾deՔ ᖐ5֑zWF&c[.O GP!>ѨHw_N7i8ޔi`7 !EhN]^w-7Hݨp$ MYaֈ -m-K0%4l ? ?}Ī@6T I}"8:ʹ-2]wf_47Ä}Ye#Z \M ,hY;giC *lPi?/: ;Ӛ ՄO5e!9A# <&si1A'ƂW|j*~OWdCnW6AXŋFw$8ŹhNx&^-$rs~Q".#I$j$`T-6$+UJ> p^z,MKFQ㋓kɕnG g /jp1ǖVĹVmi|4I:57V(XKBrUjwEnRVT1ˮq|:OieXksojҸRWzb S5.FBv|HnC ptsI ŗ$M*⌶G.L}#~|H8i7 Įؙ&[1@S wHaD,ØCZ(TI<)zܾޢ˛SJg7!;O/`BOFȝ>do QKī8쭑>I9872"tW ^Z RCJh&[A4ZgaH6TPsz~ &tYWx!) [wg3K=a(iu?73[\=\ȳY+bSE8y ڑgkW{L=Z"(1(,JQQ]5yi'r@୹g (_/:l32~$Sp**-{_* qpWlWiµuO񿍩NjÞQ<"x‡'^U&DOg;]g R8<w݊7Ɓ~+&vdX+&)wѹg`N%#93{-|..D7-͢7nyM;lVqZ?#sߍΨ1^?)B][gpO ye4Y<[Tv8wp41B"/+JD#aX`B`")1:GeBo+nIa =R2t$tŒuKIF-9]XhІp0"b/r@SK=~t2OE,+G9cAFF"5V/w ;1>߼X"9 L(xCh7w*U+ϗϢ_`ϪD &E)3֜qONDP@7_K1aVUD܋3@vBϨ0&y9w>jjym2 E 4`6}>{4R37qh,[@:'VimƲZ+Sdz'?~}mm1 jO, RLR2N3Z; T+J)&}9iQӣCۧ>˕N$uzE"lB#26JMV/)c+]vWYd;r~ɓ^lct ֮5{Y~r-=#o{vDJG&5 l ~22oY:Zۚ<ӵLRт*O}rG}pB L\w\;U^;@t1h6P@lǧJd5l^aObPb ^oiX! / hگ-kn0\0 MCH}UcH҂Հ-$#),P I3#0W&*>9#8qd!.{ 1⨛w_H}r:%iv9y MmJcA򏩣sO[zZz_- NdzָjXW QlaԄyp[`B u"t^]Cc?흥gz4nնNF$f4Lqex?!oї2I;u؝U,< ?c+Fz-q"_cl<$n^{_:mb_m~K Rӝ JI0JQ., /wMR>Y å'ڴ莔2?%b6* G &$I57> Dн\8"[9*B_A㿄D]1@Tsi2C쐲sb+ab dD7Rh )_tL|.Pd\"u(u+kq Țtg6,N,5O`abgP4(<nn #Z/PۑTZ ӯ]ehBFQzKA©J0#!N҉ s;C\Jޣo g`"Pɡlsr<`  $lLPX_ꠐh_+cNJ NF^~` #΋w.J0uSĿmN(Yl4J E,rt4ٷ!mtqFpDu1CH! :69V񈓣S"%orxLߒ@tKos5*o)٫dh4R{4"&? }ə|\z~x!lg?B|F]!5<W[/J}TuX<3D ED,E>/Ge` X=,{>̴^6Cei"įЦ9!j\ڤ r֦'mL~ ]:++C)8&o |y{3&L׶xPWͺ/;4@gsM!v>р/`"k:&|ƺ1Z}'쵨5S"(Ǝ.\_GnL:`OSpȶh-E;K+3h"0 rdcWSE_ AM{CRmO*v7 D?is 4,G$J(*:1 ЬV/G,2|5tYQ&p~G Z U6qAg gϕy8dz>E=#⚩*d㆏ $ZN?#P_5A8A\zcZG㠻@-&]TxJ $iqrgf݇"QmGL"dcjfNo=*a!A'~ #٭LWw/Jek rTl7P/$U+BNhOO/T1N<5\iOLUSu@0E%Ԭ{^0{jot.2RRO:LX'QMIEc$oQz5M;W5WN~kxIxY,6qR ysg;8ɡe6+~▾JuMUÞ&yӂ<vuO4iAt,QQۮİ cgSrBf+kIz1Դ?Ă5t´|xN5Q:ԯ[=W2Ԩ=ж6S[5Z{KaP- lBu5bߒTQ@MGPNdB~dHxn•DMTwˏ@Re6@C(L0 7}p,x=oPbDXXA.Z&T򣴴mjjy6˄5ʡ!){]m ?{3=X6x8 b񑩵(\h[r%t21#J*" \mƐHxB ]e{̦ ]S<beAӗcxH7!G 1! (.21"/`_uE (^](%2㭝h#y^ߥ@ ysػ&vqVұ>wl"! F8U\v|-AE:|Ҹ8h/[;>j*(94cv0Z@m,g}n;Uڴ@}w__pM܍w"o'규F,!_ydx;C=xZG>]됊@P1GuN fx$vlQc-:m.ٌ# LT&/>c2h~2Z`{z.1I,j I'yZ (N\atU̞qU@4vu;#byU#Sv*i\T͵Q.~Ӿx~3\̪Dv52:H @5PׅCxgP;lZTLX"J`|rB=]x%KσhtnD btޫwXiR͚oyN y1m9[&zz/ %;]Ǜ'O@EECmcw<_:ZtI*OoѤ`=eHw%Qù'A2.EPDVh=UBMQujZ~a %$!tf Jy R)I_m1 }X}]gT^~ÝXuҸ݄IqIz6 pD?L#[z!݃OUL{ ~bPaۦ m śz ;Tu YD t QO^a7)'o JMǾr;`M.Ё`axSXyH"D?2+nQ^c;p;kQԗO 6ob"x6?Z1/RgӦ׺qM2!7AHU7 ձKQ8 /pH⚉0J0jA܍=/A02g|-NLeMCP{LvcSbiY 䋈aZABx<*a<٧ EkI'='&9NM{Bۤ:HP z~7ii!>6P'<Nj`߆;WU0/."R! >F)Sp3FZ@B4#[mȠ3/5Q5@7m//JRaӧ;D*@wO3S#a#L|GS(pѷ8 rup%FK Q&ʔ'V.;3\Kq:-.) "b~w+"_P; g RQ > ˞`;OmAޖ lf 趾;Ύ\l -gu_8(/d> {%Y d+P~jq2VN?ϹL4h'̂ [i =~AQWsR#W~`UC,˝E3WFAǽXP!ovf@4G#>G9v؞|svUpbh!fAq?Ut..ޏ2)?;;YkzxEA;5X-U_ٹWLB\4wX);Xx|4~#$;خokVٙbٷFNZYO 'vC}M~%AJ7z:E<9Tsas|4;_<iX}z$FT`p~oar!2u5MiE#83ZCi )WۛN Dy6Xrqݏl NN Q3vo!`m0U*aQKviNn7<9w"oY ^ Ox,uM⹺L!vޞ SoFz,*Vđܥi?*4WkZJfZwJii.{oFB`wt#b>US0B=!]YUverZ>2MGɔk-b#YLkvTEc=5)sPk}f($bgEf;گHyL߄(=.Bex37{^%\}K`6CѶɠDA6m\գU9gE^!6p\y9Srto{D/g#ԙ~~, i@{/ڟx/SU8frwt[—!R_P`)Xm%d@8 nEx҇sG,L|i&f0 e|Yu#nZ,DK~uJA+8dIdp\̤q4-+(B q"Y*Ni1Pqay4 tO<^r1.tը_K(B]&]V;zFyQp1 mA˪ur5뺻AqCNS? WWVibϤĮ-# uZh3EsB~KfQ%WYCEZ&E ^>YmSmƓpھ~#jrsV taP6քTN]`rg6~Y$ɢJ)NWyн6)wb|pCFT4|L ]c0Ҽ%tQ -p'WX, rn)iKS_xbpcqkj{6֥'VЋY=dtwvGtx oD|jްl6бL{ou[KsmWLoGZަh2GUXOr>bBSI1/s_Ŵxg8U91 e:KO|QHړl4Fmf_B9OnfټQrs #B8Pk?W zX|]:&'GyAy ܯf@הqpbAKf./hL }O ݣ0~8[_2D}W}NM`DUe l *e*;o1L.A 舂*ʘ|'!;=:s!5 3s69@&7)kR3[YKP?%N >dN}x;-7*G*~Xh1#TsƏvמKDz^.0"9Reof4+{ RItlđ5j/W6s|:V9&u S<[3';/0_-;r3l`ZHT g4&P{^^&p}N1X2ZUr6iΉ->#giZ~z~VR#@$|ҏ/*_s6?-IS1"cY%ӟ4K޼᫣ѬE, n+ֽȪ87T%~_U֨@p'\Z?̂V63v r NϤ9rx`M~%(%$(Wz3XBarT7OSDf; bE\ғ_K &}~4TUa?}JF/9C8tӺ͜HbA>2RE()gAAT@FԂy B D_ эU"쵇$1t޶]7W{HH= d X^37ӆϞ:lJy3Az o!-\jX  QFVQPZb_5x.Æ` vǸ,]o٬ЂZ;xQ%Wy#8?Oex'>sfsm\$⚠*1MxC<2TjJ $9Y8?݊ Qz98(IH!X`PV@FdKw*Dm.'% '^egcs+KS/"2)Ʋ''Rط2[oV~y#S-2nSEzGE5/۝ d8Py!e.kMwJT!ǎj > @2dX*oU}%[Rb! DrJļsR3WR)dnPaSk~[%Q.zqj{lJoS>mC1>oJpw[^EL;Mq͍2Hv7:sYS Ly^z:)jarv zUhTI_C,F6uEaxA= D4wzG?=t 亦}xėI*ԠX!Nh.3Hv=B(BM9*JBqKSFTL[bXk>xud $-[?T`% yD H9?ުX/ DFlP?Mc;.b׿ 1ѫs|0lEeQRPh`m/˃lv+{ÄN{??הxWS A2 }XP~KXA`\=7Wkn$\1z'=jU 1hg^+˨y?5jNxvZ=kT454h72 o&1lQlq7,;ۊ+ZE c5K)SWI%#6 swc ) XyJ6bFJ|&ug㠋?zR;ְTv=:XL"tYN= G_V9?OcW35zSeUBIᇶD޼9~ [I4?DMhoOEMux!O豉Pe| L .(o-)"'pŴ>p{Ymw sw11u+j%N`M+H!P#͢0 @~e~'N~#iWeNTGc^l>C|:Nu\tD E)܇"Qݎ}dKS$7i3#!,ʼ[f dFkޏaaoPnR4wJ#eso5f:zM_T{8|JpgsfA!UX&A[rlv:C!$eDXu٥ؑѠDcuޞ!D×/E\GGu/`-toiXг8 xA*" =Ck,% @[ۈAn}CrFx;BzdrmuuES?B3k@3a%tx:ry56b[kitt?ukV[XP! MYc~ϐV)T.D3f3{,Zi.v\,JW&%+0߯%>?3̵>~ICbu/5>Tuu.֞9*C 4'̖\tww`#*Pw8L 3nrA Xҏib&5@ iJ +PE;>βO0MqMlegcJ?]!آђ aS+)gߘC7(8M>*;4P{UyG!vu!r&.3M{kERJW  UҖVؖo|JǶpy'> xrT&DX/ DOЅU5%@UpVl9M}RίX-77v^)1[?_y f i៮-ҢxEp~pRK Ni&1Qi@f+'tH뵋mo) tUAI )T<-9XL8$G"Li6B%9 ]^QXd '0&没q} f\9eNde?sX7(6+9 W_G; '8i' O4E˙ k,OxNM NQѻi|fIgMy8q;0ĊY~ƢsQ}xo:Ǎ9'߳2jF ,X~Xݣ3>?4b =<}'z=c&dhЂ hҡ!Si H)88bV5LX1L*"+7,FGDrg >?,*3 XufcR@; N K+ $AeA { Bhw5UGǏdwV%fnlN̺Kf}U_bgVS((TTֹwR Ce UtokvF@.;>aܾ#qzgYxTKNf_Ia.|w 4$mؽ3Le>뇘؆-PTR!OY>D|>ESk^ 5ђ5yr:R̤~¤d|h Wys,7Os!I[_Bſf0 ] O cj \IK1'\J7 -½o{^(8!EY "ָ͙P CDh.fH|flu$RC505}A#}|ٚc5mg6c@lG`w @i;M(+2P\l&B|'#%ppIG?b颢;DL s5:Vp3K=ne t3K]ER:K御 $Rj3oAS"6w>ޡT AGn2ICUiui9֝.y9J9}i KE[6<)v|*{uz 2p3\Ho3,Y#\ T`lNFWxX*/3y$pKkHm,kawr% &ك|@H_ G2"rSB9 (^tmi}Hj!_֞zL=Iˤ<&Lc|;,q见&q`GzSm{Bί-l*LQwC o)iy!c&'Cvu~ u G]N>/|7/^HeʠDex1TE]R9yA7mgeO~dV/6>> N4Kx af O.ن%fyN#e{c=ph|o+4P nT+2vg)miE, "Bd[%{xMz4C믋) ţM1\H(TPB^*Ȓ i)tׇFj>ah()NU P |kB 쎏ǚpځ}}OV:g$9g.Ths 9b7PrJԖqIܲ ?^̶edaTf\PEDņeITF?28ۊX-}2)W^~ټ ju&"Xo aAz8liz8{VILE]J P曐 kjaMP${>`5@b;.Ţmf\Ʈ3KcwQw;т&1CѠډ㉛G58̉N7Z.k$] ,+M/箫/]e84,z.*홐ܲ^F,<ǖĒkjƉ.}ÅN9yPsq1RFGקRkS{ o^x a. BLre+]D.(+ƕ"Z36|duIoClt|t~v.gKAuߊt{J]<wһhy+BeQ`m iΘy5ex&؛MTÂi]םc }`<MHN l!acFS[.'ZYL:,'8>Gv~O1-G5Կ$;o_Qi~auӛwӔt}a$L~Dwn ([OMRJ$B#o*77#@7k!C |VZ< ~;tbƤ׬ n<[>,gEj#qe'ۢY6r?҉)3m%Hk Fwyu3nN$M@?Ҋѐn2h+>}0(שzX ,O͆Eޚ.vEg-Ua@poIΌWD|R9w'E9jV{t6I[uMalsy۷)'+#qb;LH`XYT`"]m(D~&G.)P>!MŅ.ɛև 5JnTMp8lm3cf.8ȮW<ΤDWAkjNRscXmGe Fy>c'4*@?yx w9,܆{A|合rEkohz M.1<$AØj7~2zFiϢQ͝n]mt< T֔BP}*X on.܇m2];1r =k Ĭl0#*놹 -Yz Eʙ$󮺜A;!`-=F|9ehEQ $|'W1ew.Ad675\Si=:#?"wVhzc 079ƞu ZKpʏ#t(Pʑ.|`U2g<ň?Qn=f90n]A33?1v]/ !k(O ˑK?,S 4us *u[HT$䟽22ILHW'x=Hp2VxIyDpX6ϐnXv9?"ؚq2*W!lda(۹4qނD tBgS#ؒTHIH1$:?{A,t"ivBcX13$)Hft\LBXƺSB x;ink1TÐl-ڛ8 UjsV+T7ܨt 8$|Ⱥ,wBJFyYA!~PK0Jw+}%wUߜdxC@ˡ"y)Anc9xA~׻lӺcpkC/&"bWjgn|<%{I.c 1`5mBgy ^V0cfѕ!"UFWiɱwo!J/)S?<6e 9wSo:*R0*ls X"VnA*!8gU5`B |[2Aqs>ESAV~gF׌:S(θX5kwO~Y ? @S׷'ICq~?hyue|14?0Y}<{>fD5ZqgŭWzL"X\.c|RC8Xn-./Cj*:$l/ҊL>Vތ?օvZv2CXT+;2OQ/Uwf:A,]j %p7ePBX$szmPyp;I6L=ǎHa3K?3pox B'+9 ߍ9 u#+nptE5NmhJDߘ8.iRwuӠGDO SApsL%|E)WJk(Q_",8pO#$QVw RpVN,^2J1]ˠɬ"6nl#ȤЎg AXzӱ3-|Č..,Snݭ>(DzXނЮ|>)Qµ ꤽ.\zzg-+UR -M\b&iPoёQ!v'~r1s'NwqZxqL?җ _n9}CcUJЏG˄K5uGKV7*ާQ,'fa-˗CG'˚ 5x)a?7`QlkdlZ׊.5ޯpyՎERVcWCًշ9pB1 ]4pg^8N\KAp`.@{`tSuꅋ#jEJ`S$vw95H{qw>CJ }UYiIu7@؜ 3>5<'V70-‼&ӡOz$S$?",F-fBE3^wYfpXѧpԲeSʪ!Gsr7]Zqjq^tđ{Bmk]F=E,l·@4o=Qip2f2[F1E9 ih9AM dWN T"N*T:`Ǘ!eJ bpel#Ǵ=JǚJNA6ʯ-`"nYGqOڄ rb6+Xַ`Sh w^BWFs#Az+ idn',CZIi bE`P0^~ze&~,5~2`ѷ.i=nѢI5*rWR#ǔ^΢rUy+ 7WQ3%JS7ofhYK@eMI5ii-BO8zes60xV㊮bBX$E=љgsYEd 0ExE#$I*4>?>z=L:jX##;>3kCYnHz'^gBl5؋NdYaEmHɔr0馄a5r<bTآV53(lmwBCZ8,'1 nTaW;Ưjבژmʁ2;(E_M^/icx5(}I, VDҗbeV.ϖ'2SbT:-&m1rmROtkzSm r2qI-q}GKg$!B wLs9}-4 ^aE9qHܮե{Y$do,lp1ZA!i*'AgM]X>,ЫYj,;'?ͭ ߳d'Fcfnb$` 2b\4ۯohxPXHlBPlWN6o.~N7vمlS"GPAm c[t93W8JQЧ_vL08|+i|:c0+R+`s f Ǝ.hF<9}lg]f%uNE +]գ)9qj]']BИ2[tJ;Yf)9*2 |\%2@5)Ke΀)IJwqF[)!XSqLaǪLC hHH,FzI˥| ',B~bd8̮GIGdV,m+96K,g{-fIPykLT2.N/o :P!0sWTQX,x)+>iBJϡ1Q34(g~8& 6͊=EMej\-옻M} ,yA*TN_٨݃1kɕT́Gҡ'O"Ͷ9w~kO˜~UjFBmTo`Pf’*]@,QtltBbؓp$-)mW xƉ^>+ܚ?k:LBzCk LaRJ+ts{!9>=H79Ѽ^|ZC[Fr\8[8)=ΚXҲ9M6a{}ά~4j9mfPy;};B"XڭO 6ZgytL7 M"S6MsFījEۥ3Lfgd`^$\T3!4aַ|7RD(=M(e6wڿP:oASpW~'b cCsL(E{Rn?T C0^Npv(8ptuL?TpB=/'ey :&qBpR1s¸"7Îr<&aM>::3KV^:% ˋon7GR+˘++2q;fn0@*0H"$6GOcŅ t \Tq~՜6PdNz]g h,`1bȳ;4E'_6`j:77^N0"1|cZP0ýJw?('3h4ȏ)@Lq#:ן/W*T.$gMm}0ͻX/e4:\"3RD,V;J6>j'fcݠz)O4r;2@kd%%YZ'u&Jc)OPNB&ڋ 52VdyAhTprtw1#>ckDQs1@7\氐ʪ$ 7izOJu/$=M%L`ȄLbÖ|-cT)gj4>v=]RHfd8r(|}ѧowgoG%xI-ұ/=2$4 Py316f^)zk|$0fg+bgݤS`1:\ < -n6}㷛:Vs~4\'b; s远YV k FZ=T-^Ypr+ є*aÞl?y11R IHHrf2Ν&넑6\"|,Oj+KUYC-G3{͒)4SAH4`_Fne6U\H3xYE,a z&VaNpMAJdh){ŭo|]{I=NH/#pK^穪[E9ueCnHR%m$@nny҇m*5f'3yN"ny!E}mgg B\rۣK,8e`,jթ Vc&@b:1}HyY3VEv}gF^P^|Z -|'MtCGG5Vcz5:tӧXYفQ>t|'@.6|oUxu5lteA8I~W[p f>PSy/$z[Ad; `.:6B/̏pѥ9N σc-`bkWq-$$%Ysx0O"-#Hv;DR0Nrj`+- !'<bUo/$ɒYcM!杚˭Jv:65:+"R!`W3z*}&rI+Ef37-O͏[)Vo6h26\ak:ӷ_-0g^vۼ{T '¨ht7ٔ.]s H; <ȂR>*ڿd:u"z#k?4cJ\5O}= fį Z +x \E2Ϭv `[.ũ[ztY-(" d-I-#rDhj2$d"cao>=?`ɺ(<`;AVU`g'g,h\|];mk(+%%0chn걦Q#02`uL`T XtD-MqI3ѝnξ޴~r%Cݞ "kJj,fIJ3 r,hK[|{4o%ep,1:6Mq@kE]k{W#Ť`n!5䛻\YFy]I髸A1RgLF ֓a[Et%f gusukSbMK޼֢Uҹ3Ϧ1[ڄqTb6TxBMi./d>Sb\n95˜(0sy:ѐI\:G 0#$-.l`  h- Dc+VP_;8~`xnCq1aDwɯIK]kAF3ARRD`B.K1n8wɟWS3 q&N n7āR{ǣ ?1ξC.eR|n96G][m=VZI |G6`~EO<)%dzYcM M*U}`y>EӬ~\ Qd`.\݇ib$KxoDZITyA*d ÐV-q51g_Giv bMK4ݴYv=2"ʘ iX`c$,cMљҦȥ4$8Ms L|:!ˋJfasjZ1˛t N!(izS~\48E:;pW#BH(q8&Ę1RYǫL4Anӡ^ۉZվuFES=ɻwjЈ^\Jc-UUGx@l/iH/9 LhEj'2!q_ T= MYAQ7Akx(Hywc; 0'rUbxŜbbϘ)|˵Qy]ٷnjFk|A>Zͬe҅$IRhݷQb/h3վ.ݐ;W-o ryFPc}</I Aخ~V$+X6E=JR Dε~AI pw98Q)Vp{O hÇ!Ǟ"ܟ{[أ )@`i H/(f,9WtZzil"K'DIinπJelN5vXCZ]Ft̻c\&ٮ=&Л@[㺰NҿI $B.,BA>wď;h!~ݜJaOQNnM5Y$.Ei5yN¼V!󩬇)fIN_HI6jګE+yW{̨GsS`=)M)fadlsa >d% K_S)2ggzʁb\쉚VTA5K݃//sHi<-Ypd(67C A|]?L4qh, Ngsk$8:= (bxɛ?~am[#iQa+aM(7'Ou(*ci l>roԶ:tJ~{2"&ï")mwP εnCta%T1G&gwZF r|o]?׶E;"_լk6onL]uJ.,\˪Z~*RHYӘ] 1$ g0WSMb0AAer19ATJ8=y3:Lc}K6vM[`1#1S^=#`ؾˠL%`W/{^#0RW%󉺘61uuǃ|ACD4]\ |;PĽoucmee}oUT^ k+P՝]9'kYݾҿ@Mf g4]b@pÊTp9̄mPOظBX CpdgܝWSYYR=BT4H 6]\8 l0m@(F}tt8`"ol@ (\E, yu> z'ކCߟ>F`*Z>\+$gZ=iTӤu!D.Q%ˠa'6U>n|+Zx5=ťyL!H-ҽ?!l^隊 困%':7gdgXHN?s<]ECb {!Bgˈ 3:4QqwE W@H-Y2UH<.~5{ߦlkyڽɩݨis%}>1rY,b;fٱs U$\b{F$, oayr)z.eԄy=|gFw^#ȢNxX/Q}zQFqؿݒ@UgWRN燖!_ W;`XD0B@OGzS\5.kL}/0\$񗜭M.Z @%K"5" :Di!hfcZK3줒g{{L֑P L?P|H}q ]y\P@Dzl)olF1PKӋtE0btwPJXNw%CwK|P5:u5cWzgVKkenA S<7"A&Spre./`fNBgBLH[= z۝7.qQ?U$$J?xo&,Eg2 $uI@XKy~FוT~FGVg+ k5\E?zc%9o]@5;5E91Y!|T:,/ ?–dUάzZζA3+ƺ@eBҹ7e?Mh|%~(ѡIiY .g78JUXşqb, qlc/xFE޺|rl>k7'\ [wp%}{2vXIev;TG<ɋ}[[- 01Dg)?ߵ. 煮+|YǦ67O㎻V!_q,Z}EH.+-O !8c_4NBc5p+NБ)2_.{za=%5$^@LhBG);agew=6dwbfΞ.i$1+wsl-c.vD.Tmrء7OZAeh~,pvSE3ծxreN6Kqr '!)*򚩉 }&@?2][֨5@ `sysX)(>x{Uq$T):vTΟFӸMdUb;B}hr֒-?kwFI5Cc2ўJŌW坍/0s S(Uk :of55O0X8CH- P?̈:9'٘Py?k u+E%)݄>4ųf5Yטdtm`n".0dm:) TBŕK#Rz+54cWׅ_bP ++&5@`0,.u1@cxc3cȥ l 1Lqe$$bmd@5e3+su.M)bi 'If`E.x}ZgsBU]w*)c#$³m#Aܮk)Xyoh )z[{B5<YA|]Ea٬M.}G,t-3 $A+Bܷ <P8܇inP^d@i{(Nc~6I[FBdwe&;8yt'ާ&ҐX)e2J6>/4b UPO^F87+sTԀX䝾y+uE?rٗ mOj TWCl^OMZ"7ykD~*Vvo+TZb=U/Wdmj>>G>f=%9 "Td_\ӷ;Noާ~dbqXSR`;)w#X4OHm RۥvЦ] ֲ\¹)""bӧ|F;hYq}`]Wc]$ahvÒaOyuKZ/&G>ؘ-ym* 4].lI΄^x1܎E ԿF]3Ͻ0ՐL/II΍|BRLo\+ y ~}ʫhG -[[DƳ3X ́l_.=qVx<X~zIW!Ⱦ&FehQ  Nw8 *Awz8z_1L7{OC\-/Zz(tA'nGT0.&bɼirBprfHI|* CL;"duTaP` e]Y3# +FtS K`7E!qF~V ԨΞRܪE6wG<S6;i*]| =63/B 4q67zd)h|sADȤf] wt7[+c;q ; BZ5xq;Mz¦˛`7tt:8yJOds 5Sb)D 3"`%di4K/J i-n`SAS8RuM~™URi xћKlw8Rqry'9JV14b0#h2(;)͏nt{/u C)!rֿ*xyeNh+F`HYdz,?IDTl}o< v̐q QgCkJs4Fs~u¯FY)ӂ;W~9Y5orSKKOzMywmJu14Zgہ5rL5AHS JI{%k-uw V)[:lپikPNjAQ4 㿙"k"UXHFrS2ɯ|.G"G G`EѮc^9Y ݎ+" Rh9T( 'N s]yF,wn UMDJDnHB=3uhzOR}{X@Ld$Vh>"TJ,xijف0'7B^3zxCvr%r8Aag`)]9mv P/Cba|oVy16/v = 0$̷[5Hd;Vtl=:ڂH5 #@gٚ8 gQ aq C(S}1Ss゛R+!;b3oa ;lUjg\C ỦQ靿68@w.*~-^fb?ӮT0A>#ՏwE;hxU-~x蘳j9I)s w{U^|]'fXrӣkaS uD(_6}OoH;Y m̭AB@!&j9n , nbQY [ϽH@)y wA"@%CD1~wH'w .rǵ^f+;̇ɢ&oK؋ܲE&i$ixZO0kʗISE됂ɮ˹#rvsO8Z7v1o yrERUP[Dh3̍+J,ܛfD 67݅ߗiO?A~l! >x؉1 j4VzS#̀ѣ&&S"2Pժ Qx'O 0]J.KpuL#P}bqu1ȋ)[fE>Tc- "6 =T{28_ӿ+  †»Tf( ts"s>%-ϛ~qQ)="eЬ;~m`V_>U:aFH1 yn[xp"lri<)]"4 g\j~Y \2ro)RT?j3V(:{tu7;FoG6 y㐊Š .gR-B<M[Y #)&0Y'TIGOx_4I!r=o|(?h${)rПx>7{U{m=pJ 6}.JwU2yOxMS^qcb!рV-C[㊂2ch0E)o{'A?? u!dޥx]'0O:=sm9'Dȡ}龽fy]@@ 7PyCiQ#GTkzl~=vY)f45+gфAlb,)#Ig5AJ~k4ōLvA}oHuTJ=LwAJ