* @license GNU General Public License, version 2 (GPL-2.0) * * For full copyright and license information, please see * the docs/CREDITS.txt file. * */ /** * @ignore */ if (!defined('IN_PHPBB')) { exit; } /** * Recalculate Nested Sets * * @param int $new_id first left_id (should start with 1) * @param string $pkey primary key-column (containing the id for the parent_id of the children) * @param string $table constant or fullname of the table * @param int $parent_id parent_id of the current set (default = 0) * @param array $where contains strings to compare closer on the where statement (additional) */ function recalc_nested_sets(&$new_id, $pkey, $table, $parent_id = 0, $where = array()) { global $db; $sql = 'SELECT * FROM ' . $table . ' WHERE parent_id = ' . (int) $parent_id . ((!empty($where)) ? ' AND ' . implode(' AND ', $where) : '') . ' ORDER BY left_id ASC'; $result = $db->sql_query($sql); while ($row = $db->sql_fetchrow($result)) { // First we update the left_id for this module if ($row['left_id'] != $new_id) { $db->sql_query('UPDATE ' . $table . ' SET ' . $db->sql_build_array('UPDATE', array('left_id' => $new_id)) . " WHERE $pkey = {$row[$pkey]}"); } $new_id++; // Then we go through any children and update their left/right id's recalc_nested_sets($new_id, $pkey, $table, $row[$pkey], $where); // Then we come back and update the right_id for this module if ($row['right_id'] != $new_id) { $db->sql_query('UPDATE ' . $table . ' SET ' . $db->sql_build_array('UPDATE', array('right_id' => $new_id)) . " WHERE $pkey = {$row[$pkey]}"); } $new_id++; } $db->sql_freeresult($result); } /** * Simple version of jumpbox, just lists authed forums */ function make_forum_select($select_id = false, $ignore_id = false, $ignore_acl = false, $ignore_nonpost = false, $ignore_emptycat = true, $only_acl_post = false, $return_array = false) { global $db, $user, $auth; // This query is identical to the jumpbox one $sql = 'SELECT forum_id, forum_name, parent_id, forum_type, forum_flags, forum_options, left_id, right_id FROM ' . FORUMS_TABLE . ' ORDER BY left_id ASC'; $result = $db->sql_query($sql, 600); $right = 0; $padding_store = array('0' => ''); $padding = ''; $forum_list = ($return_array) ? array() : ''; // Sometimes it could happen that forums will be displayed here not be displayed within the index page // This is the result of forums not displayed at index, having list permissions and a parent of a forum with no permissions. // If this happens, the padding could be "broken" while ($row = $db->sql_fetchrow($result)) { if ($row['left_id'] < $right) { $padding .= '   '; $padding_store[$row['parent_id']] = $padding; } else if ($row['left_id'] > $right + 1) { $padding = (isset($padding_store[$row['parent_id']])) ? $padding_store[$row['parent_id']] : ''; } $right = $row['right_id']; $disabled = false; if (!$ignore_acl && $auth->acl_gets(array('f_list', 'a_forum', 'a_forumadd', 'a_forumdel'), $row['forum_id'])) { if ($only_acl_post && !$auth->acl_get('f_post', $row['forum_id']) || (!$auth->acl_get('m_approve', $row['forum_id']) && !$auth->acl_get('f_noapprove', $row['forum_id']))) { $disabled = true; } } else if (!$ignore_acl) { continue; } if ( ((is_array($ignore_id) && in_array($row['forum_id'], $ignore_id)) || $row['forum_id'] == $ignore_id) || // Non-postable forum with no subforums, don't display ($row['forum_type'] == FORUM_CAT && ($row['left_id'] + 1 == $row['right_id']) && $ignore_emptycat) || ($row['forum_type'] != FORUM_POST && $ignore_nonpost) ) { $disabled = true; } if ($return_array) { // Include some more information... $selected = (is_array($select_id)) ? ((in_array($row['forum_id'], $select_id)) ? true : false) : (($row['forum_id'] == $select_id) ? true : false); $forum_list[$row['forum_id']] = array_merge(array('padding' => $padding, 'selected' => ($selected && !$disabled), 'disabled' => $disabled), $row); } else { $selected = (is_array($select_id)) ? ((in_array($row['forum_id'], $select_id)) ? ' selected="selected"' : '') : (($row['forum_id'] == $select_id) ? ' selected="selected"' : ''); $forum_list .= ''; } } $db->sql_freeresult($result); unset($padding_store); return $forum_list; } /** * Generate size select options */ function size_select_options($size_compare) { global $user; $size_types_text = array($user->lang['BYTES'], $user->lang['KIB'], $user->lang['MIB']); $size_types = array('b', 'kb', 'mb'); $s_size_options = ''; for ($i = 0, $size = sizeof($size_types_text); $i < $size; $i++) { $selected = ($size_compare == $size_types[$i]) ? ' selected="selected"' : ''; $s_size_options .= ''; } return $s_size_options; } /** * Generate list of groups (option fields without select) * * @param int $group_id The default group id to mark as selected * @param array $exclude_ids The group ids to exclude from the list, false (default) if you whish to exclude no id * @param int $manage_founder If set to false (default) all groups are returned, if 0 only those groups returned not being managed by founders only, if 1 only those groups returned managed by founders only. * * @return string The list of options. */ function group_select_options($group_id, $exclude_ids = false, $manage_founder = false) { global $db, $user, $config; $exclude_sql = ($exclude_ids !== false && sizeof($exclude_ids)) ? 'WHERE ' . $db->sql_in_set('group_id', array_map('intval', $exclude_ids), true) : ''; $sql_and = (!$config['coppa_enable']) ? (($exclude_sql) ? ' AND ' : ' WHERE ') . "group_name <> 'REGISTERED_COPPA'" : ''; $sql_founder = ($manage_founder !== false) ? (($exclude_sql || $sql_and) ? ' AND ' : ' WHERE ') . 'group_founder_manage = ' . (int) $manage_founder : ''; $sql = 'SELECT group_id, group_name, group_type FROM ' . GROUPS_TABLE . " $exclude_sql $sql_and $sql_founder ORDER BY group_type DESC, group_name ASC"; $result = $db->sql_query($sql); $s_group_options = ''; while ($row = $db->sql_fetchrow($result)) { $selected = ($row['group_id'] == $group_id) ? ' selected="selected"' : ''; $s_group_options .= '' . (($row['group_type'] == GROUP_SPECIAL) ? $user->lang['G_' . $row['group_name']] : $row['group_name']) . ''; } $db->sql_freeresult($result); return $s_group_options; } /** * Obtain authed forums list */ function get_forum_list($acl_list = 'f_list', $id_only = true, $postable_only = false, $no_cache = false) { global $db, $auth; static $forum_rows; if (!isset($forum_rows)) { // This query is identical to the jumpbox one $expire_time = ($no_cache) ? 0 : 600; $sql = 'SELECT forum_id, forum_name, parent_id, forum_type, left_id, right_id FROM ' . FORUMS_TABLE . ' ORDER BY left_id ASC'; $result = $db->sql_query($sql, $expire_time); $forum_rows = array(); $right = $padding = 0; $padding_store = array('0' => 0); while ($row = $db->sql_fetchrow($result)) { if ($row['left_id'] < $right) { $padding++; $padding_store[$row['parent_id']] = $padding; } else if ($row['left_id'] > $right + 1) { // Ok, if the $padding_store for this parent is empty there is something wrong. For now we will skip over it. // @todo digging deep to find out "how" this can happen. $padding = (isset($padding_store[$row['parent_id']])) ? $padding_store[$row['parent_id']] : $padding; } $right = $row['right_id']; $row['padding'] = $padding; $forum_rows[] = $row; } $db->sql_freeresult($result); unset($padding_store); } $rowset = array(); foreach ($forum_rows as $row) { if ($postable_only && $row['forum_type'] != FORUM_POST) { continue; } if ($acl_list == '' || ($acl_list != '' && $auth->acl_gets($acl_list, $row['forum_id']))) { $rowset[] = ($id_only) ? (int) $row['forum_id'] : $row; } } return $rowset; } /** * Get forum branch */ function get_forum_branch($forum_id, $type = 'all', $order = 'descending', $include_forum = true) { global $db; switch ($type) { case 'parents': $condition = 'f1.left_id BETWEEN f2.left_id AND f2.right_id'; break; case 'children': $condition = 'f2.left_id BETWEEN f1.left_id AND f1.right_id'; break; default: $condition = 'f2.left_id BETWEEN f1.left_id AND f1.right_id OR f1.left_id BETWEEN f2.left_id AND f2.right_id'; break; } $rows = array(); $sql = 'SELECT f2.* FROM ' . FORUMS_TABLE . ' f1 LEFT JOIN ' . FORUMS_TABLE . " f2 ON ($condition) WHERE f1.forum_id = $forum_id ORDER BY f2.left_id " . (($order == 'descending') ? 'ASC' : 'DESC'); $result = $db->sql_query($sql); while ($row = $db->sql_fetchrow($result)) { if (!$include_forum && $row['forum_id'] == $forum_id) { continue; } $rows[] = $row; } $db->sql_freeresult($result); return $rows; } /** * Copies permissions from one forum to others * * @param int $src_forum_id The source forum we want to copy permissions from * @param array $dest_forum_ids The destination forum(s) we want to copy to * @param bool $clear_dest_perms True if destination permissions should be deleted * @param bool $add_log True if log entry should be added * * @return bool False on error */ function copy_forum_permissions($src_forum_id, $dest_forum_ids, $clear_dest_perms = true, $add_log = true) { global $db, $user, $phpbb_log; // Only one forum id specified if (!is_array($dest_forum_ids)) { $dest_forum_ids = array($dest_forum_ids); } // Make sure forum ids are integers $src_forum_id = (int) $src_forum_id; $dest_forum_ids = array_map('intval', $dest_forum_ids); // No source forum or no destination forums specified if (empty($src_forum_id) || empty($dest_forum_ids)) { return false; } // Check if source forum exists $sql = 'SELECT forum_name FROM ' . FORUMS_TABLE . ' WHERE forum_id = ' . $src_forum_id; $result = $db->sql_query($sql); $src_forum_name = $db->sql_fetchfield('forum_name'); $db->sql_freeresult($result); // Source forum doesn't exist if (empty($src_forum_name)) { return false; } // Check if destination forums exists $sql = 'SELECT forum_id, forum_name FROM ' . FORUMS_TABLE . ' WHERE ' . $db->sql_in_set('forum_id', $dest_forum_ids); $result = $db->sql_query($sql); $dest_forum_ids = $dest_forum_names = array(); while ($row = $db->sql_fetchrow($result)) { $dest_forum_ids[] = (int) $row['forum_id']; $dest_forum_names[] = $row['forum_name']; } $db->sql_freeresult($result); // No destination forum exists if (empty($dest_forum_ids)) { return false; } // From the mysql documentation: // Prior to MySQL 4.0.14, the target table of the INSERT statement cannot appear // in the FROM clause of the SELECT part of the query. This limitation is lifted in 4.0.14. // Due to this we stay on the safe side if we do the insertion "the manual way" // Rowsets we're going to insert $users_sql_ary = $groups_sql_ary = array(); // Query acl users table for source forum data $sql = 'SELECT user_id, auth_option_id, auth_role_id, auth_setting FROM ' . ACL_USERS_TABLE . ' WHERE forum_id = ' . $src_forum_id; $result = $db->sql_query($sql); while ($row = $db->sql_fetchrow($result)) { $row = array( 'user_id' => (int) $row['user_id'], 'auth_option_id' => (int) $row['auth_option_id'], 'auth_role_id' => (int) $row['auth_role_id'], 'auth_setting' => (int) $row['auth_setting'], ); foreach ($dest_forum_ids as $dest_forum_id) { $users_sql_ary[] = $row + array('forum_id' => $dest_forum_id); } } $db->sql_freeresult($result); // Query acl groups table for source forum data $sql = 'SELECT group_id, auth_option_id, auth_role_id, auth_setting FROM ' . ACL_GROUPS_TABLE . ' WHERE forum_id = ' . $src_forum_id; $result = $db->sql_query($sql); while ($row = $db->sql_fetchrow($result)) { $row = array( 'group_id' => (int) $row['group_id'], 'auth_option_id' => (int) $row['auth_option_id'], 'auth_role_id' => (int) $row['auth_role_id'], 'auth_setting' => (int) $row['auth_setting'], ); foreach ($dest_forum_ids as $dest_forum_id) { $groups_sql_ary[] = $row + array('forum_id' => $dest_forum_id); } } $db->sql_freeresult($result); $db->sql_transaction('begin'); // Clear current permissions of destination forums if ($clear_dest_perms) { $sql = 'DELETE FROM ' . ACL_USERS_TABLE . ' WHERE ' . $db->sql_in_set('forum_id', $dest_forum_ids); $db->sql_query($sql); $sql = 'DELETE FROM ' . ACL_GROUPS_TABLE . ' WHERE ' . $db->sql_in_set('forum_id', $dest_forum_ids); $db->sql_query($sql); } $db->sql_multi_insert(ACL_USERS_TABLE, $users_sql_ary); $db->sql_multi_insert(ACL_GROUPS_TABLE, $groups_sql_ary); if ($add_log) { $phpbb_log->add('admin', $user->data['user_id'], $user->ip, 'LOG_FORUM_COPIED_PERMISSIONS', false, array($src_forum_name, implode(', ', $dest_forum_names))); } $db->sql_transaction('commit'); return true; } /** * Get physical file listing */ function filelist($rootdir, $dir = '', $type = 'gif|jpg|jpeg|png') { $matches = array($dir => array()); // Remove initial / if present $rootdir = (substr($rootdir, 0, 1) == '/') ? substr($rootdir, 1) : $rootdir; // Add closing / if not present $rootdir = ($rootdir && substr($rootdir, -1) != '/') ? $rootdir . '/' : $rootdir; // Remove initial / if present $dir = (substr($dir, 0, 1) == '/') ? substr($dir, 1) : $dir; // Add closing / if not present $dir = ($dir && substr($dir, -1) != '/') ? $dir . '/' : $dir; if (!is_dir($rootdir . $dir)) { return $matches; } $dh = @opendir($rootdir . $dir); if (!$dh) { return $matches; } while (($fname = readdir($dh)) !== false) { if (is_file("$rootdir$dir$fname")) { if (filesize("$rootdir$dir$fname") && preg_match('#\.' . $type . '$#i', $fname)) { $matches[$dir][] = $fname; } } else if ($fname[0] != '.' && is_dir("$rootdir$dir$fname")) { $matches += filelist($rootdir, "$dir$fname", $type); } } closedir($dh); return $matches; } /** * Move topic(s) */ function move_topics($topic_ids, $forum_id, $auto_sync = true) { global $db; if (empty($topic_ids)) { return; } $forum_ids = array($forum_id); if (!is_array($topic_ids)) { $topic_ids = array($topic_ids); } $sql = 'DELETE FROM ' . TOPICS_TABLE . ' WHERE ' . $db->sql_in_set('topic_moved_id', $topic_ids) . ' AND forum_id = ' . $forum_id; $db->sql_query($sql); if ($auto_sync) { $sql = 'SELECT DISTINCT forum_id FROM ' . TOPICS_TABLE . ' WHERE ' . $db->sql_in_set('topic_id', $topic_ids); $result = $db->sql_query($sql); while ($row = $db->sql_fetchrow($result)) { $forum_ids[] = $row['forum_id']; } $db->sql_freeresult($result); } $table_ary = array(TOPICS_TABLE, POSTS_TABLE, LOG_TABLE, DRAFTS_TABLE, TOPICS_TRACK_TABLE); foreach ($table_ary as $table) { $sql = "UPDATE $table SET forum_id = $forum_id WHERE " . $db->sql_in_set('topic_id', $topic_ids); $db->sql_query($sql); } unset($table_ary); if ($auto_sync) { sync('forum', 'forum_id', $forum_ids, true, true); unset($forum_ids); } } /** * Move post(s) */ function move_posts($post_ids, $topic_id, $auto_sync = true) { global $db; if (!is_array($post_ids)) { $post_ids = array($post_ids); } $forum_ids = array(); $topic_ids = array($topic_id); $sql = 'SELECT DISTINCT topic_id, forum_id FROM ' . POSTS_TABLE . ' WHERE ' . $db->sql_in_set('post_id', $post_ids); $result = $db->sql_query($sql); while ($row = $db->sql_fetchrow($result)) { $forum_ids[] = (int) $row['forum_id']; $topic_ids[] = (int) $row['topic_id']; } $db->sql_freeresult($result); $sql = 'SELECT forum_id FROM ' . TOPICS_TABLE . ' WHERE topic_id = ' . $topic_id; $result = $db->sql_query($sql); $forum_row = $db->sql_fetchrow($result); $db->sql_freeresult($result); if (!$forum_row) { trigger_error('NO_TOPIC'); } $sql = 'UPDATE ' . POSTS_TABLE . ' SET forum_id = ' . (int) $forum_row['forum_id'] . ", topic_id = $topic_id WHERE " . $db->sql_in_set('post_id', $post_ids); $db->sql_query($sql); $sql = 'UPDATE ' . ATTACHMENTS_TABLE . " SET topic_id = $topic_id, in_message = 0 WHERE " . $db->sql_in_set('post_msg_id', $post_ids); $db->sql_query($sql); if ($auto_sync) { $forum_ids[] = (int) $forum_row['forum_id']; sync('topic_reported', 'topic_id', $topic_ids); sync('topic_attachment', 'topic_id', $topic_ids); sync('topic', 'topic_id', $topic_ids, true); sync('forum', 'forum_id', $forum_ids, true, true); } // Update posted information update_posted_info($topic_ids); } /** * Remove topic(s) */ function delete_topics($where_type, $where_ids, $auto_sync = true, $post_count_sync = true, $call_delete_posts = true) { global $db, $config, $phpbb_container, $phpbb_dispatcher; $approved_topics = 0; $forum_ids = $topic_ids = array(); if ($where_type === 'range') { $where_clause = $where_ids; } else { $where_ids = (is_array($where_ids)) ? array_unique($where_ids) : array($where_ids); if (!sizeof($where_ids)) { return array('topics' => 0, 'posts' => 0); } $where_clause = $db->sql_in_set($where_type, $where_ids); } // Making sure that delete_posts does not call delete_topics again... $return = array( 'posts' => ($call_delete_posts) ? delete_posts($where_type, $where_ids, false, true, $post_count_sync, false) : 0, ); $sql = 'SELECT topic_id, forum_id, topic_visibility, topic_moved_id FROM ' . TOPICS_TABLE . ' WHERE ' . $where_clause; $result = $db->sql_query($sql); while ($row = $db->sql_fetchrow($result)) { $forum_ids[] = $row['forum_id']; $topic_ids[] = $row['topic_id']; if ($row['topic_visibility'] == ITEM_APPROVED && !$row['topic_moved_id']) { $approved_topics++; } } $db->sql_freeresult($result); $return['topics'] = sizeof($topic_ids); if (!sizeof($topic_ids)) { return $return; } $db->sql_transaction('begin'); $table_ary = array(BOOKMARKS_TABLE, TOPICS_TRACK_TABLE, TOPICS_POSTED_TABLE, POLL_VOTES_TABLE, POLL_OPTIONS_TABLE, TOPICS_WATCH_TABLE, TOPICS_TABLE); /** * Perform additional actions before topic(s) deletion * * @event core.delete_topics_before_query * @var array table_ary Array of tables from which all rows will be deleted that hold a topic_id occuring in topic_ids * @var array topic_ids Array of topic ids to delete * @since 3.1.4-RC1 */ $vars = array( 'table_ary', 'topic_ids', ); extract($phpbb_dispatcher->trigger_event('core.delete_topics_before_query', compact($vars))); foreach ($table_ary as $table) { $sql = "DELETE FROM $table WHERE " . $db->sql_in_set('topic_id', $topic_ids); $db->sql_query($sql); } unset($table_ary); /** * Perform additional actions after topic(s) deletion * * @event core.delete_topics_after_query * @var array topic_ids Array of topic ids that were deleted * @since 3.1.4-RC1 */ $vars = array( 'topic_ids', ); extract($phpbb_dispatcher->trigger_event('core.delete_topics_after_query', compact($vars))); $moved_topic_ids = array(); // update the other forums $sql = 'SELECT topic_id, forum_id FROM ' . TOPICS_TABLE . ' WHERE ' . $db->sql_in_set('topic_moved_id', $topic_ids); $result = $db->sql_query($sql); while ($row = $db->sql_fetchrow($result)) { $forum_ids[] = $row['forum_id']; $moved_topic_ids[] = $row['topic_id']; } $db->sql_freeresult($result); if (sizeof($moved_topic_ids)) { $sql = 'DELETE FROM ' . TOPICS_TABLE . ' WHERE ' . $db->sql_in_set('topic_id', $moved_topic_ids); $db->sql_query($sql); } $db->sql_transaction('commit'); if ($auto_sync) { sync('forum', 'forum_id', array_unique($forum_ids), true, true); sync('topic_reported', $where_type, $where_ids); } if ($approved_topics) { $config->increment('num_topics', $approved_topics * (-1), false); } /* @var $phpbb_notifications \phpbb\notification\manager */ $phpbb_notifications = $phpbb_container->get('notification_manager'); $phpbb_notifications->delete_notifications(array( 'notification.type.topic', 'notification.type.approve_topic', 'notification.type.topic_in_queue', ), $topic_ids); return $return; } /** * Remove post(s) */ function delete_posts($where_type, $where_ids, $auto_sync = true, $posted_sync = true, $post_count_sync = true, $call_delete_topics = true) { global $db, $config, $phpbb_root_path, $phpEx, $auth, $user, $phpbb_container, $phpbb_dispatcher; // Notifications types to delete $delete_notifications_types = array( 'notification.type.quote', 'notification.type.approve_post', 'notification.type.post_in_queue', ); /** * Perform additional actions before post(s) deletion * * @event core.delete_posts_before * @var string where_type Variable containing posts deletion mode * @var mixed where_ids Array or comma separated list of posts ids to delete * @var bool auto_sync Flag indicating if topics/forums should be synchronized * @var bool posted_sync Flag indicating if topics_posted table should be resynchronized * @var bool post_count_sync Flag indicating if posts count should be resynchronized * @var bool call_delete_topics Flag indicating if topics having no posts should be deleted * @var array delete_notifications_types Array with notifications types to delete * @since 3.1.0-a4 */ $vars = array( 'where_type', 'where_ids', 'auto_sync', 'posted_sync', 'post_count_sync', 'call_delete_topics', 'delete_notifications_types', ); extract($phpbb_dispatcher->trigger_event('core.delete_posts_before', compact($vars))); if ($where_type === 'range') { $where_clause = $where_ids; } else { if (is_array($where_ids)) { $where_ids = array_unique($where_ids); } else { $where_ids = array($where_ids); } if (!sizeof($where_ids)) { return false; } $where_ids = array_map('intval', $where_ids); /* Possible code for splitting post deletion if (sizeof($where_ids) >= 1001) { // Split into chunks of 1000 $chunks = array_chunk($where_ids, 1000); foreach ($chunks as $_where_ids) { delete_posts($where_type, $_where_ids, $auto_sync, $posted_sync, $post_count_sync, $call_delete_topics); } return; }*/ $where_clause = $db->sql_in_set($where_type, $where_ids); } $approved_posts = 0; $post_ids = $topic_ids = $forum_ids = $post_counts = $remove_topics = array(); $sql = 'SELECT post_id, poster_id, post_visibility, post_postcount, topic_id, forum_id FROM ' . POSTS_TABLE . ' WHERE ' . $where_clause; $result = $db->sql_query($sql); while ($row = $db->sql_fetchrow($result)) { $post_ids[] = (int) $row['post_id']; $poster_ids[] = (int) $row['poster_id']; $topic_ids[] = (int) $row['topic_id']; $forum_ids[] = (int) $row['forum_id']; if ($row['post_postcount'] && $post_count_sync && $row['post_visibility'] == ITEM_APPROVED) { $post_counts[$row['poster_id']] = (!empty($post_counts[$row['poster_id']])) ? $post_counts[$row['poster_id']] + 1 : 1; } if ($row['post_visibility'] == ITEM_APPROVED) { $approved_posts++; } } $db->sql_freeresult($result); if (!sizeof($post_ids)) { return false; } $db->sql_transaction('begin'); $table_ary = array(POSTS_TABLE, REPORTS_TABLE); foreach ($table_ary as $table) { $sql = "DELETE FROM $table WHERE " . $db->sql_in_set('post_id', $post_ids); $db->sql_query($sql); } unset($table_ary); // Adjust users post counts if (sizeof($post_counts) && $post_count_sync) { foreach ($post_counts as $poster_id => $substract) { $sql = 'UPDATE ' . USERS_TABLE . ' SET user_posts = 0 WHERE user_id = ' . $poster_id . ' AND user_posts < ' . $substract; $db->sql_query($sql); $sql = 'UPDATE ' . USERS_TABLE . ' SET user_posts = user_posts - ' . $substract . ' WHERE user_id = ' . $poster_id . ' AND user_posts >= ' . $substract; $db->sql_query($sql); } } // Remove topics now having no posts? if (sizeof($topic_ids)) { $sql = 'SELECT topic_id FROM ' . POSTS_TABLE . ' WHERE ' . $db->sql_in_set('topic_id', $topic_ids) . ' GROUP BY topic_id'; $result = $db->sql_query($sql); while ($row = $db->sql_fetchrow($result)) { $remove_topics[] = $row['topic_id']; } $db->sql_freeresult($result); // Actually, those not within remove_topics should be removed. ;) $remove_topics = array_diff($topic_ids, $remove_topics); } // Remove the message from the search index $search_type = $config['search_type']; if (!class_exists($search_type)) { trigger_error('NO_SUCH_SEARCH_MODULE'); } $error = false; $search = new $search_type($error, $phpbb_root_path, $phpEx, $auth, $config, $db, $user); if ($error) { trigger_error($error); } $search->index_remove($post_ids, $poster_ids, $forum_ids); delete_attachments('post', $post_ids, false); /** * Perform additional actions during post(s) deletion * * @event core.delete_posts_in_transaction * @var array post_ids Array with deleted posts' ids * @var array poster_ids Array with deleted posts' author ids * @var array topic_ids Array with deleted posts' topic ids * @var array forum_ids Array with deleted posts' forum ids * @var string where_type Variable containing posts deletion mode * @var mixed where_ids Array or comma separated list of posts ids to delete * @var array delete_notifications_types Array with notifications types to delete * @since 3.1.0-a4 */ $vars = array( 'post_ids', 'poster_ids', 'topic_ids', 'forum_ids', 'where_type', 'where_ids', 'delete_notifications_types', ); extract($phpbb_dispatcher->trigger_event('core.delete_posts_in_transaction', compact($vars))); $db->sql_transaction('commit'); /** * Perform additional actions after post(s) deletion * * @event core.delete_posts_after * @var array post_ids Array with deleted posts' ids * @var array poster_ids Array with deleted posts' author ids * @var array topic_ids Array with deleted posts' topic ids * @var array forum_ids Array with deleted posts' forum ids * @var string where_type Variable containing posts deletion mode * @var mixed where_ids Array or comma separated list of posts ids to delete * @var array delete_notifications_types Array with notifications types to delete * @since 3.1.0-a4 */ $vars = array( 'post_ids', 'poster_ids', 'topic_ids', 'forum_ids', 'where_type', 'where_ids', 'delete_notifications_types', ); extract($phpbb_dispatcher->trigger_event('core.delete_posts_after', compact($vars))); // Resync topics_posted table if ($posted_sync) { update_posted_info($topic_ids); } if ($auto_sync) { sync('topic_reported', 'topic_id', $topic_ids); sync('topic', 'topic_id', $topic_ids, true); sync('forum', 'forum_id', $forum_ids, true, true); } if ($approved_posts && $post_count_sync) { $config->increment('num_posts', $approved_posts * (-1), false); } // We actually remove topics now to not be inconsistent (the delete_topics function calls this function too) if (sizeof($remove_topics) && $call_delete_topics) { delete_topics('topic_id', $remove_topics, $auto_sync, $post_count_sync, false); } /* @var $phpbb_notifications \phpbb\notification\manager */ $phpbb_notifications = $phpbb_container->get('notification_manager'); $phpbb_notifications->delete_notifications($delete_notifications_types, $post_ids); return sizeof($post_ids); } /** * Delete Attachments * * @param string $mode can be: post|message|topic|attach|user * @param mixed $ids can be: post_ids, message_ids, topic_ids, attach_ids, user_ids * @param bool $resync set this to false if you are deleting posts or topics */ function delete_attachments($mode, $ids, $resync = true) { global $db, $config; // 0 is as bad as an empty array if (empty($ids)) { return false; } if (is_array($ids)) { $ids = array_unique($ids); $ids = array_map('intval', $ids); } else { $ids = array((int) $ids); } $sql_where = ''; switch ($mode) { case 'post': case 'message': $sql_id = 'post_msg_id'; $sql_where = ' AND in_message = ' . ($mode == 'message' ? 1 : 0); break; case 'topic': $sql_id = 'topic_id'; break; case 'user': $sql_id = 'poster_id'; break; case 'attach': default: $sql_id = 'attach_id'; $mode = 'attach'; break; } $post_ids = $message_ids = $topic_ids = $physical = array(); // Collect post and topic ids for later use if we need to touch remaining entries (if resync is enabled) $sql = 'SELECT post_msg_id, topic_id, in_message, physical_filename, thumbnail, filesize, is_orphan FROM ' . ATTACHMENTS_TABLE . ' WHERE ' . $db->sql_in_set($sql_id, $ids); $sql .= $sql_where; $result = $db->sql_query($sql); while ($row = $db->sql_fetchrow($result)) { // We only need to store post/message/topic ids if resync is enabled and the file is not orphaned if ($resync && !$row['is_orphan']) { if (!$row['in_message']) { $post_ids[] = $row['post_msg_id']; $topic_ids[] = $row['topic_id']; } else { $message_ids[] = $row['post_msg_id']; } } $physical[] = array('filename' => $row['physical_filename'], 'thumbnail' => $row['thumbnail'], 'filesize' => $row['filesize'], 'is_orphan' => $row['is_orphan']); } $db->sql_freeresult($result); // Delete attachments $sql = 'DELETE FROM ' . ATTACHMENTS_TABLE . ' WHERE ' . $db->sql_in_set($sql_id, $ids); $sql .= $sql_where; $db->sql_query($sql); $num_deleted = $db->sql_affectedrows(); if (!$num_deleted) { return 0; } // Delete attachments from filesystem $space_removed = $files_removed = 0; foreach ($physical as $file_ary) { if (phpbb_unlink($file_ary['filename'], 'file', true) && !$file_ary['is_orphan']) { // Only non-orphaned files count to the file size $space_removed += $file_ary['filesize']; $files_removed++; } if ($file_ary['thumbnail']) { phpbb_unlink($file_ary['filename'], 'thumbnail', true); } } if ($space_removed || $files_removed) { $config->increment('upload_dir_size', $space_removed * (-1), false); $config->increment('num_files', $files_removed * (-1), false); } // If we do not resync, we do not need to adjust any message, post, topic or user entries if (!$resync) { return $num_deleted; } // No more use for the original ids unset($ids); // Now, we need to resync posts, messages, topics. We go through every one of them $post_ids = array_unique($post_ids); $message_ids = array_unique($message_ids); $topic_ids = array_unique($topic_ids); // Update post indicators for posts now no longer having attachments if (sizeof($post_ids)) { // Just check which posts are still having an assigned attachment not orphaned by querying the attachments table $sql = 'SELECT post_msg_id FROM ' . ATTACHMENTS_TABLE . ' WHERE ' . $db->sql_in_set('post_msg_id', $post_ids) . ' AND in_message = 0 AND is_orphan = 0'; $result = $db->sql_query($sql); $remaining_ids = array(); while ($row = $db->sql_fetchrow($result)) { $remaining_ids[] = $row['post_msg_id']; } $db->sql_freeresult($result); // Now only unset those ids remaining $post_ids = array_diff($post_ids, $remaining_ids); if (sizeof($post_ids)) { $sql = 'UPDATE ' . POSTS_TABLE . ' SET post_attachment = 0 WHERE ' . $db->sql_in_set('post_id', $post_ids); $db->sql_query($sql); } } // Update message table if messages are affected if (sizeof($message_ids)) { // Just check which messages are still having an assigned attachment not orphaned by querying the attachments table $sql = 'SELECT post_msg_id FROM ' . ATTACHMENTS_TABLE . ' WHERE ' . $db->sql_in_set('post_msg_id', $message_ids) . ' AND in_message = 1 AND is_orphan = 0'; $result = $db->sql_query($sql); $remaining_ids = array(); while ($row = $db->sql_fetchrow($result)) { $remaining_ids[] = $row['post_msg_id']; } $db->sql_freeresult($result); // Now only unset those ids remaining $message_ids = array_diff($message_ids, $remaining_ids); if (sizeof($message_ids)) { $sql = 'UPDATE ' . PRIVMSGS_TABLE . ' SET message_attachment = 0 WHERE ' . $db->sql_in_set('msg_id', $message_ids); $db->sql_query($sql); } } // Now update the topics. This is a bit trickier, because there could be posts still having attachments within the topic if (sizeof($topic_ids)) { // Just check which topics are still having an assigned attachment not orphaned by querying the attachments table (much less entries expected) $sql = 'SELECT topic_id FROM ' . ATTACHMENTS_TABLE . ' WHERE ' . $db->sql_in_set('topic_id', $topic_ids) . ' AND is_orphan = 0'; $result = $db->sql_query($sql); $remaining_ids = array(); while ($row = $db->sql_fetchrow($result)) { $remaining_ids[] = $row['topic_id']; } $db->sql_freeresult($result); // Now only unset those ids remaining $topic_ids = array_diff($topic_ids, $remaining_ids); if (sizeof($topic_ids)) { $sql = 'UPDATE ' . TOPICS_TABLE . ' SET topic_attachment = 0 WHERE ' . $db->sql_in_set('topic_id', $topic_ids); $db->sql_query($sql); } } return $num_deleted; } /** * Deletes shadow topics pointing to a specified forum. * * @param int $forum_id The forum id * @param string $sql_more Additional WHERE statement, e.g. t.topic_time < (time() - 1234) * @param bool $auto_sync Will call sync() if this is true * * @return array Array with affected forums */ function delete_topic_shadows($forum_id, $sql_more = '', $auto_sync = true) { global $db; if (!$forum_id) { // Nothing to do. return; } // Set of affected forums we have to resync $sync_forum_ids = array(); // Amount of topics we select and delete at once. $batch_size = 500; do { $sql = 'SELECT t2.forum_id, t2.topic_id FROM ' . TOPICS_TABLE . ' t2, ' . TOPICS_TABLE . ' t WHERE t2.topic_moved_id = t.topic_id AND t.forum_id = ' . (int) $forum_id . ' ' . (($sql_more) ? 'AND ' . $sql_more : ''); $result = $db->sql_query_limit($sql, $batch_size); $topic_ids = array(); while ($row = $db->sql_fetchrow($result)) { $topic_ids[] = (int) $row['topic_id']; $sync_forum_ids[(int) $row['forum_id']] = (int) $row['forum_id']; } $db->sql_freeresult($result); if (!empty($topic_ids)) { $sql = 'DELETE FROM ' . TOPICS_TABLE . ' WHERE ' . $db->sql_in_set('topic_id', $topic_ids); $db->sql_query($sql); } } while (sizeof($topic_ids) == $batch_size); if ($auto_sync) { sync('forum', 'forum_id', $sync_forum_ids, true, true); } return $sync_forum_ids; } /** * Update/Sync posted information for topics */ function update_posted_info(&$topic_ids) { global $db, $config; if (empty($topic_ids) || !$config['load_db_track']) { return; } // First of all, let us remove any posted information for these topics $sql = 'DELETE FROM ' . TOPICS_POSTED_TABLE . ' WHERE ' . $db->sql_in_set('topic_id', $topic_ids); $db->sql_query($sql); // Now, let us collect the user/topic combos for rebuilding the information $sql = 'SELECT poster_id, topic_id FROM ' . POSTS_TABLE . ' WHERE ' . $db->sql_in_set('topic_id', $topic_ids) . ' AND poster_id <> ' . ANONYMOUS . ' GROUP BY poster_id, topic_id'; $result = $db->sql_query($sql); $posted = array(); while ($row = $db->sql_fetchrow($result)) { // Add as key to make them unique (grouping by) and circumvent empty keys on array_unique $posted[$row['poster_id']][] = $row['topic_id']; } $db->sql_freeresult($result); // Now add the information... $sql_ary = array(); foreach ($posted as $user_id => $topic_row) { foreach ($topic_row as $topic_id) { $sql_ary[] = array( 'user_id' => (int) $user_id, 'topic_id' => (int) $topic_id, 'topic_posted' => 1, ); } } unset($posted); $db->sql_multi_insert(TOPICS_POSTED_TABLE, $sql_ary); } /** * Delete attached file */ function phpbb_unlink($filename, $mode = 'file', $entry_removed = false) { global $db, $phpbb_root_path, $config; // Because of copying topics or modifications a physical filename could be assigned more than once. If so, do not remove the file itself. $sql = 'SELECT COUNT(attach_id) AS num_entries FROM ' . ATTACHMENTS_TABLE . " WHERE physical_filename = '" . $db->sql_escape(utf8_basename($filename)) . "'"; $result = $db->sql_query($sql); $num_entries = (int) $db->sql_fetchfield('num_entries'); $db->sql_freeresult($result); // Do not remove file if at least one additional entry with the same name exist. if (($entry_removed && $num_entries > 0) || (!$entry_removed && $num_entries > 1)) { return false; } $filename = ($mode == 'thumbnail') ? 'thumb_' . utf8_basename($filename) : utf8_basename($filename); return @unlink($phpbb_root_path . $config['upload_path'] . '/' . $filename); } /** * All-encompasing sync function * * Exaples: * * sync('topic', 'topic_id', 123); // resync topic #123 * sync('topic', 'forum_id', array(2, 3)); // resync topics from forum #2 and #3 * sync('topic'); // resync all topics * sync('topic', 'range', 'topic_id BETWEEN 1 AND 60'); // resync a range of topics/forums (only available for 'topic' and 'forum' modes) * * * Modes: * - forum Resync complete forum * - topic Resync topics * - topic_moved Removes topic shadows that would be in the same forum as the topic they link to * - topic_visibility Resyncs the topic_visibility flag according to the status of the first post * - post_reported Resyncs the post_reported flag, relying on actual reports * - topic_reported Resyncs the topic_reported flag, relying on post_reported flags * - post_attachement Same as post_reported, but with attachment flags * - topic_attachement Same as topic_reported, but with attachment flags */ function sync($mode, $where_type = '', $where_ids = '', $resync_parents = false, $sync_extra = false) { global $db; if (is_array($where_ids)) { $where_ids = array_unique($where_ids); $where_ids = array_map('intval', $where_ids); } else if ($where_type != 'range') { $where_ids = ($where_ids) ? array((int) $where_ids) : array(); } if ($mode == 'forum' || $mode == 'topic' || $mode == 'topic_visibility' || $mode == 'topic_reported' || $mode == 'post_reported') { if (!$where_type) { $where_sql = ''; $where_sql_and = 'WHERE'; } else if ($where_type == 'range') { // Only check a range of topics/forums. For instance: 'topic_id BETWEEN 1 AND 60' $where_sql = 'WHERE (' . $mode[0] . ".$where_ids)"; $where_sql_and = $where_sql . "\n\tAND"; } else { // Do not sync the "global forum" $where_ids = array_diff($where_ids, array(0)); if (!sizeof($where_ids)) { // Empty array with IDs. This means that we don't have any work to do. Just return. return; } // Limit the topics/forums we are syncing, use specific topic/forum IDs. // $where_type contains the field for the where clause (forum_id, topic_id) $where_sql = 'WHERE ' . $db->sql_in_set($mode[0] . '.' . $where_type, $where_ids); $where_sql_and = $where_sql . "\n\tAND"; } } else { if (!sizeof($where_ids)) { return; } // $where_type contains the field for the where clause (forum_id, topic_id) $where_sql = 'WHERE ' . $db->sql_in_set($mode[0] . '.' . $where_type, $where_ids); $where_sql_and = $where_sql . "\n\tAND"; } switch ($mode) { case 'topic_moved': $db->sql_transaction('begin'); switch ($db->get_sql_layer()) { case 'mysql4': case 'mysqli': $sql = 'DELETE FROM ' . TOPICS_TABLE . ' USING ' . TOPICS_TABLE . ' t1, ' . TOPICS_TABLE . " t2 WHERE t1.topic_moved_id = t2.topic_id AND t1.forum_id = t2.forum_id"; $db->sql_query($sql); break; default: $sql = 'SELECT t1.topic_id FROM ' .TOPICS_TABLE . ' t1, ' . TOPICS_TABLE . " t2 WHERE t1.topic_moved_id = t2.topic_id AND t1.forum_id = t2.forum_id"; $result = $db->sql_query($sql); $topic_id_ary = array(); while ($row = $db->sql_fetchrow($result)) { $topic_id_ary[] = $row['topic_id']; } $db->sql_freeresult($result); if (!sizeof($topic_id_ary)) { return; } $sql = 'DELETE FROM ' . TOPICS_TABLE . ' WHERE ' . $db->sql_in_set('topic_id', $topic_id_ary); $db->sql_query($sql); break; } $db->sql_transaction('commit'); break; case 'topic_visibility': $db->sql_transaction('begin'); $sql = 'SELECT t.topic_id, p.post_visibility FROM ' . TOPICS_TABLE . ' t, ' . POSTS_TABLE . " p $where_sql_and p.topic_id = t.topic_id AND p.post_visibility = " . ITEM_APPROVED; $result = $db->sql_query($sql); $topics_approved = array(); while ($row = $db->sql_fetchrow($result)) { $topics_approved[] = (int) $row['topic_id']; } $db->sql_freeresult($result); $sql = 'SELECT t.topic_id, p.post_visibility FROM ' . TOPICS_TABLE . ' t, ' . POSTS_TABLE . " p $where_sql_and " . $db->sql_in_set('t.topic_id', $topics_approved, true, true) . ' AND p.topic_id = t.topic_id AND p.post_visibility = ' . ITEM_DELETED; $result = $db->sql_query($sql); $topics_softdeleted = array(); while ($row = $db->sql_fetchrow($result)) { $topics_softdeleted[] = (int) $row['topic_id']; } $db->sql_freeresult($result); $topics_softdeleted = array_diff($topics_softdeleted, $topics_approved); $topics_not_unapproved = array_merge($topics_softdeleted, $topics_approved); $update_ary = array( ITEM_UNAPPROVED => (!empty($topics_not_unapproved)) ? $where_sql_and . ' ' . $db->sql_in_set('topic_id', $topics_not_unapproved, true) : '', ITEM_APPROVED => (!empty($topics_approved)) ? ' WHERE ' . $db->sql_in_set('topic_id', $topics_approved) : '', ITEM_DELETED => (!empty($topics_softdeleted)) ? ' WHERE ' . $db->sql_in_set('topic_id', $topics_softdeleted) : '', ); foreach ($update_ary as $visibility => $sql_where) { if ($sql_where) { $sql = 'UPDATE ' . TOPICS_TABLE . ' SET topic_visibility = ' . $visibility . ' ' . $sql_where; $db->sql_query($sql); } } $db->sql_transaction('commit'); break; case 'post_reported': $post_ids = $post_reported = array(); $db->sql_transaction('begin'); $sql = 'SELECT p.post_id, p.post_reported FROM ' . POSTS_TABLE . " p $where_sql GROUP BY p.post_id, p.post_reported"; $result = $db->sql_query($sql); while ($row = $db->sql_fetchrow($result)) { $post_ids[$row['post_id']] = $row['post_id']; if ($row['post_reported']) { $post_reported[$row['post_id']] = 1; } } $db->sql_freeresult($result); $sql = 'SELECT DISTINCT(post_id) FROM ' . REPORTS_TABLE . ' WHERE ' . $db->sql_in_set('post_id', $post_ids) . ' AND report_closed = 0'; $result = $db->sql_query($sql); $post_ids = array(); while ($row = $db->sql_fetchrow($result)) { if (!isset($post_reported[$row['post_id']])) { $post_ids[] = $row['post_id']; } else { unset($post_reported[$row['post_id']]); } } $db->sql_freeresult($result); // $post_reported should be empty by now, if it's not it contains // posts that are falsely flagged as reported foreach ($post_reported as $post_id => $void) { $post_ids[] = $post_id; } if (sizeof($post_ids)) { $sql = 'UPDATE ' . POSTS_TABLE . ' SET post_reported = 1 - post_reported WHERE ' . $db->sql_in_set('post_id', $post_ids); $db->sql_query($sql); } $db->sql_transaction('commit'); break; case 'topic_reported': if ($sync_extra) { sync('post_reported', $where_type, $where_ids); } $topic_ids = $topic_reported = array(); $db->sql_transaction('begin'); $sql = 'SELECT DISTINCT(t.topic_id) FROM ' . POSTS_TABLE . " t $where_sql_and t.post_reported = 1"; $result = $db->sql_query($sql); while ($row = $db->sql_fetchrow($result)) { $topic_reported[$row['topic_id']] = 1; } $db->sql_freeresult($result); $sql = 'SELECT t.topic_id, t.topic_reported FROM ' . TOPICS_TABLE . " t $where_sql"; $result = $db->sql_query($sql); while ($row = $db->sql_fetchrow($result)) { if ($row['topic_reported'] ^ isset($topic_reported[$row['topic_id']])) { $topic_ids[] = $row['topic_id']; } } $db->sql_freeresult($result); if (sizeof($topic_ids)) { $sql = 'UPDATE ' . TOPICS_TABLE . ' SET topic_reported = 1 - topic_reported WHERE ' . $db->sql_in_set('topic_id', $topic_ids); $db->sql_query($sql); } $db->sql_transaction('commit'); break; case 'post_attachment': $post_ids = $post_attachment = array(); $db->sql_transaction('begin'); $sql = 'SELECT p.post_id, p.post_attachment FROM ' . POSTS_TABLE . " p $where_sql GROUP BY p.post_id, p.post_attachment"; $result = $db->sql_query($sql); while ($row = $db->sql_fetchrow($result)) { $post_ids[$row['post_id']] = $row['post_id']; if ($row['post_attachment']) { $post_attachment[$row['post_id']] = 1; } } $db->sql_freeresult($result); $sql = 'SELECT DISTINCT(post_msg_id) FROM ' . ATTACHMENTS_TABLE . ' WHERE ' . $db->sql_in_set('post_msg_id', $post_ids) . ' AND in_message = 0'; $result = $db->sql_query($sql); $post_ids = array(); while ($row = $db->sql_fetchrow($result)) { if (!isset($post_attachment[$row['post_msg_id']])) { $post_ids[] = $row['post_msg_id']; } else { unset($post_attachment[$row['post_msg_id']]); } } $db->sql_freeresult($result); // $post_attachment should be empty by now, if it's not it contains // posts that are falsely flagged as having attachments foreach ($post_attachment as $post_id => $void) { $post_ids[] = $post_id; } if (sizeof($post_ids)) { $sql = 'UPDATE ' . POSTS_TABLE . ' SET post_attachment = 1 - post_attachment WHERE ' . $db->sql_in_set('post_id', $post_ids); $db->sql_query($sql); } $db->sql_transaction('commit'); break; case 'topic_attachment': if ($sync_extra) { sync('post_attachment', $where_type, $where_ids); } $topic_ids = $topic_attachment = array(); $db->sql_transaction('begin'); $sql = 'SELECT DISTINCT(t.topic_id) FROM ' . POSTS_TABLE . " t $where_sql_and t.post_attachment = 1"; $result = $db->sql_query($sql); while ($row = $db->sql_fetchrow($result)) { $topic_attachment[$row['topic_id']] = 1; } $db->sql_freeresult($result); $sql = 'SELECT t.topic_id, t.topic_attachment FROM ' . TOPICS_TABLE . " t $where_sql"; $result = $db->sql_query($sql); while ($row = $db->sql_fetchrow($result)) { if ($row['topic_attachment'] ^ isset($topic_attachment[$row['topic_id']])) { $topic_ids[] = $row['topic_id']; } } $db->sql_freeresult($result); if (sizeof($topic_ids)) { $sql = 'UPDATE ' . TOPICS_TABLE . ' SET topic_attachment = 1 - topic_attachment WHERE ' . $db->sql_in_set('topic_id', $topic_ids); $db->sql_query($sql); } $db->sql_transaction('commit'); break; case 'forum': $db->sql_transaction('begin'); // 1: Get the list of all forums $sql = 'SELECT f.* FROM ' . FORUMS_TABLE . " f $where_sql"; $result = $db->sql_query($sql); $forum_data = $forum_ids = $post_ids = $last_post_id = $post_info = array(); while ($row = $db->sql_fetchrow($result)) { if ($row['forum_type'] == FORUM_LINK) { continue; } $forum_id = (int) $row['forum_id']; $forum_ids[$forum_id] = $forum_id; $forum_data[$forum_id] = $row; if ($sync_extra) { $forum_data[$forum_id]['posts_approved'] = 0; $forum_data[$forum_id]['posts_unapproved'] = 0; $forum_data[$forum_id]['posts_softdeleted'] = 0; $forum_data[$forum_id]['topics_approved'] = 0; $forum_data[$forum_id]['topics_unapproved'] = 0; $forum_data[$forum_id]['topics_softdeleted'] = 0; } $forum_data[$forum_id]['last_post_id'] = 0; $forum_data[$forum_id]['last_post_subject'] = ''; $forum_data[$forum_id]['last_post_time'] = 0; $forum_data[$forum_id]['last_poster_id'] = 0; $forum_data[$forum_id]['last_poster_name'] = ''; $forum_data[$forum_id]['last_poster_colour'] = ''; } $db->sql_freeresult($result); if (!sizeof($forum_ids)) { break; } $forum_ids = array_values($forum_ids); // 2: Get topic counts for each forum (optional) if ($sync_extra) { $sql = 'SELECT forum_id, topic_visibility, COUNT(topic_id) AS total_topics FROM ' . TOPICS_TABLE . ' WHERE ' . $db->sql_in_set('forum_id', $forum_ids) . ' GROUP BY forum_id, topic_visibility'; $result = $db->sql_query($sql); while ($row = $db->sql_fetchrow($result)) { $forum_id = (int) $row['forum_id']; if ($row['topic_visibility'] == ITEM_APPROVED) { $forum_data[$forum_id]['topics_approved'] = $row['total_topics']; } else if ($row['topic_visibility'] == ITEM_UNAPPROVED || $row['topic_visibility'] == ITEM_REAPPROVE) { $forum_data[$forum_id]['topics_unapproved'] = $row['total_topics']; } else if ($row['topic_visibility'] == ITEM_DELETED) { $forum_data[$forum_id]['topics_softdeleted'] = $row['total_topics']; } } $db->sql_freeresult($result); } // 3: Get post count for each forum (optional) if ($sync_extra) { if (sizeof($forum_ids) == 1) { $sql = 'SELECT SUM(t.topic_posts_approved) AS forum_posts_approved, SUM(t.topic_posts_unapproved) AS forum_posts_unapproved, SUM(t.topic_posts_softdeleted) AS forum_posts_softdeleted FROM ' . TOPICS_TABLE . ' t WHERE ' . $db->sql_in_set('t.forum_id', $forum_ids) . ' AND t.topic_status <> ' . ITEM_MOVED; } else { $sql = 'SELECT t.forum_id, SUM(t.topic_posts_approved) AS forum_posts_approved, SUM(t.topic_posts_unapproved) AS forum_posts_unapproved, SUM(t.topic_posts_softdeleted) AS forum_posts_softdeleted FROM ' . TOPICS_TABLE . ' t WHERE ' . $db->sql_in_set('t.forum_id', $forum_ids) . ' AND t.topic_status <> ' . ITEM_MOVED . ' GROUP BY t.forum_id'; } $result = $db->sql_query($sql); while ($row = $db->sql_fetchrow($result)) { $forum_id = (sizeof($forum_ids) == 1) ? (int) $forum_ids[0] : (int) $row['forum_id']; $forum_data[$forum_id]['posts_approved'] = (int) $row['forum_posts_approved']; $forum_data[$forum_id]['posts_unapproved'] = (int) $row['forum_posts_unapproved']; $forum_data[$forum_id]['posts_softdeleted'] = (int) $row['forum_posts_softdeleted']; } $db->sql_freeresult($result); } // 4: Get last_post_id for each forum if (sizeof($forum_ids) == 1) { $sql = 'SELECT MAX(t.topic_last_post_id) as last_post_id FROM ' . TOPICS_TABLE . ' t WHERE ' . $db->sql_in_set('t.forum_id', $forum_ids) . ' AND t.topic_visibility = ' . ITEM_APPROVED; } else { $sql = 'SELECT t.forum_id, MAX(t.topic_last_post_id) as last_post_id FROM ' . TOPICS_TABLE . ' t WHERE ' . $db->sql_in_set('t.forum_id', $forum_ids) . ' AND t.topic_visibility = ' . ITEM_APPROVED . ' GROUP BY t.forum_id'; } $result = $db->sql_query($sql); while ($row = $db->sql_fetchrow($result)) { $forum_id = (sizeof($forum_ids) == 1) ? (int) $forum_ids[0] : (int) $row['forum_id']; $forum_data[$forum_id]['last_post_id'] = (int) $row['last_post_id']; $post_ids[] = $row['last_post_id']; } $db->sql_freeresult($result); // 5: Retrieve last_post infos if (sizeof($post_ids)) { $sql = 'SELECT p.post_id, p.poster_id, p.post_subject, p.post_time, p.post_username, u.username, u.user_colour FROM ' . POSTS_TABLE . ' p, ' . USERS_TABLE . ' u WHERE ' . $db->sql_in_set('p.post_id', $post_ids) . ' AND p.poster_id = u.user_id'; $result = $db->sql_query($sql); while ($row = $db->sql_fetchrow($result)) { $post_info[$row['post_id']] = $row; } $db->sql_freeresult($result); foreach ($forum_data as $forum_id => $data) { if ($data['last_post_id']) { if (isset($post_info[$data['last_post_id']])) { $forum_data[$forum_id]['last_post_subject'] = $post_info[$data['last_post_id']]['post_subject']; $forum_data[$forum_id]['last_post_time'] = $post_info[$data['last_post_id']]['post_time']; $forum_data[$forum_id]['last_poster_id'] = $post_info[$data['last_post_id']]['poster_id']; $forum_data[$forum_id]['last_poster_name'] = ($post_info[$data['last_post_id']]['poster_id'] != ANONYMOUS) ? $post_info[$data['last_post_id']]['username'] : $post_info[$data['last_post_id']]['post_username']; $forum_data[$forum_id]['last_poster_colour'] = $post_info[$data['last_post_id']]['user_colour']; } else { // For some reason we did not find the post in the db $forum_data[$forum_id]['last_post_id'] = 0; $forum_data[$forum_id]['last_post_subject'] = ''; $forum_data[$forum_id]['last_post_time'] = 0; $forum_data[$forum_id]['last_poster_id'] = 0; $forum_data[$forum_id]['last_poster_name'] = ''; $forum_data[$forum_id]['last_poster_colour'] = ''; } } } unset($post_info); } // 6: Now do that thing $fieldnames = array('last_post_id', 'last_post_subject', 'last_post_time', 'last_poster_id', 'last_poster_name', 'last_poster_colour'); if ($sync_extra) { array_push($fieldnames, 'posts_approved', 'posts_unapproved', 'posts_softdeleted', 'topics_approved', 'topics_unapproved', 'topics_softdeleted'); } foreach ($forum_data as $forum_id => $row) { $sql_ary = array(); foreach ($fieldnames as $fieldname) { if ($row['forum_' . $fieldname] != $row[$fieldname]) { if (preg_match('#(name|colour|subject)$#', $fieldname)) { $sql_ary['forum_' . $fieldname] = (string) $row[$fieldname]; } else { $sql_ary['forum_' . $fieldname] = (int) $row[$fieldname]; } } } if (sizeof($sql_ary)) { $sql = 'UPDATE ' . FORUMS_TABLE . ' SET ' . $db->sql_build_array('UPDATE', $sql_ary) . ' WHERE forum_id = ' . $forum_id; $db->sql_query($sql); } } $db->sql_transaction('commit'); break; case 'topic': $topic_data = $post_ids = $resync_forums = $delete_topics = $delete_posts = $moved_topics = array(); $db->sql_transaction('begin'); $sql = 'SELECT t.topic_id, t.forum_id, t.topic_moved_id, t.topic_visibility, ' . (($sync_extra) ? 't.topic_attachment, t.topic_reported, ' : '') . 't.topic_poster, t.topic_time, t.topic_posts_approved, t.topic_posts_unapproved, t.topic_posts_softdeleted, t.topic_first_post_id, t.topic_first_poster_name, t.topic_first_poster_colour, t.topic_last_post_id, t.topic_last_post_subject, t.topic_last_poster_id, t.topic_last_poster_name, t.topic_last_poster_colour, t.topic_last_post_time FROM ' . TOPICS_TABLE . " t $where_sql"; $result = $db->sql_query($sql); while ($row = $db->sql_fetchrow($result)) { if ($row['topic_moved_id']) { $moved_topics[] = $row['topic_id']; continue; } $topic_id = (int) $row['topic_id']; $topic_data[$topic_id] = $row; $topic_data[$topic_id]['visibility'] = ITEM_UNAPPROVED; $topic_data[$topic_id]['posts_approved'] = 0; $topic_data[$topic_id]['posts_unapproved'] = 0; $topic_data[$topic_id]['posts_softdeleted'] = 0; $topic_data[$topic_id]['first_post_id'] = 0; $topic_data[$topic_id]['last_post_id'] = 0; unset($topic_data[$topic_id]['topic_id']); // This array holds all topic_ids $delete_topics[$topic_id] = ''; if ($sync_extra) { $topic_data[$topic_id]['reported'] = 0; $topic_data[$topic_id]['attachment'] = 0; } } $db->sql_freeresult($result); // Use "t" as table alias because of the $where_sql clause // NOTE: 't.post_visibility' in the GROUP BY is causing a major slowdown. $sql = 'SELECT t.topic_id, t.post_visibility, COUNT(t.post_id) AS total_posts, MIN(t.post_id) AS first_post_id, MAX(t.post_id) AS last_post_id FROM ' . POSTS_TABLE . " t $where_sql GROUP BY t.topic_id, t.post_visibility"; $result = $db->sql_query($sql); while ($row = $db->sql_fetchrow($result)) { $topic_id = (int) $row['topic_id']; $row['first_post_id'] = (int) $row['first_post_id']; $row['last_post_id'] = (int) $row['last_post_id']; if (!isset($topic_data[$topic_id])) { // Hey, these posts come from a topic that does not exist $delete_posts[$topic_id] = ''; } else { // Unset the corresponding entry in $delete_topics // When we'll be done, only topics with no posts will remain unset($delete_topics[$topic_id]); if ($row['post_visibility'] == ITEM_APPROVED) { $topic_data[$topic_id]['posts_approved'] = $row['total_posts']; } else if ($row['post_visibility'] == ITEM_UNAPPROVED || $row['post_visibility'] == ITEM_REAPPROVE) { $topic_data[$topic_id]['posts_unapproved'] = $row['total_posts']; } else if ($row['post_visibility'] == ITEM_DELETED) { $topic_data[$topic_id]['posts_softdeleted'] = $row['total_posts']; } if ($row['post_visibility'] == ITEM_APPROVED) { $topic_data[$topic_id]['visibility'] = ITEM_APPROVED; $topic_data[$topic_id]['first_post_id'] = $row['first_post_id']; $topic_data[$topic_id]['last_post_id'] = $row['last_post_id']; } else if ($topic_data[$topic_id]['visibility'] != ITEM_APPROVED) { // If there is no approved post, we take the min/max of the other visibilities // for the last and first post info, because it is only visible to moderators anyway $topic_data[$topic_id]['first_post_id'] = (!empty($topic_data[$topic_id]['first_post_id'])) ? min($topic_data[$topic_id]['first_post_id'], $row['first_post_id']) : $row['first_post_id']; $topic_data[$topic_id]['last_post_id'] = max($topic_data[$topic_id]['last_post_id'], $row['last_post_id']); if ($topic_data[$topic_id]['visibility'] == ITEM_UNAPPROVED || $topic_data[$topic_id]['visibility'] == ITEM_REAPPROVE) { // Soft delete status is stronger than unapproved. $topic_data[$topic_id]['visibility'] = $row['post_visibility']; } } } } $db->sql_freeresult($result); foreach ($topic_data as $topic_id => $row) { $post_ids[] = $row['first_post_id']; if ($row['first_post_id'] != $row['last_post_id']) { $post_ids[] = $row['last_post_id']; } } // Now we delete empty topics and orphan posts if (sizeof($delete_posts)) { delete_posts('topic_id', array_keys($delete_posts), false); unset($delete_posts); } if (!sizeof($topic_data)) { // If we get there, topic ids were invalid or topics did not contain any posts delete_topics($where_type, $where_ids, true); return; } if (sizeof($delete_topics)) { $delete_topic_ids = array(); foreach ($delete_topics as $topic_id => $void) { unset($topic_data[$topic_id]); $delete_topic_ids[] = $topic_id; } delete_topics('topic_id', $delete_topic_ids, false); unset($delete_topics, $delete_topic_ids); } $sql = 'SELECT p.post_id, p.topic_id, p.post_visibility, p.poster_id, p.post_subject, p.post_username, p.post_time, u.username, u.user_colour FROM ' . POSTS_TABLE . ' p, ' . USERS_TABLE . ' u WHERE ' . $db->sql_in_set('p.post_id', $post_ids) . ' AND u.user_id = p.poster_id'; $result = $db->sql_query($sql); $post_ids = array(); while ($row = $db->sql_fetchrow($result)) { $topic_id = intval($row['topic_id']); if ($row['post_id'] == $topic_data[$topic_id]['first_post_id']) { $topic_data[$topic_id]['time'] = $row['post_time']; $topic_data[$topic_id]['poster'] = $row['poster_id']; $topic_data[$topic_id]['first_poster_name'] = ($row['poster_id'] == ANONYMOUS) ? $row['post_username'] : $row['username']; $topic_data[$topic_id]['first_poster_colour'] = $row['user_colour']; } if ($row['post_id'] == $topic_data[$topic_id]['last_post_id']) { $topic_data[$topic_id]['last_poster_id'] = $row['poster_id']; $topic_data[$topic_id]['last_post_subject'] = $row['post_subject']; $topic_data[$topic_id]['last_post_time'] = $row['post_time']; $topic_data[$topic_id]['last_poster_name'] = ($row['poster_id'] == ANONYMOUS) ? $row['post_username'] : $row['username']; $topic_data[$topic_id]['last_poster_colour'] = $row['user_colour']; } } $db->sql_freeresult($result); // Make sure shadow topics do link to existing topics if (sizeof($moved_topics)) { $delete_topics = array(); $sql = 'SELECT t1.topic_id, t1.topic_moved_id FROM ' . TOPICS_TABLE . ' t1 LEFT JOIN ' . TOPICS_TABLE . ' t2 ON (t2.topic_id = t1.topic_moved_id) WHERE ' . $db->sql_in_set('t1.topic_id', $moved_topics) . ' AND t2.topic_id IS NULL'; $result = $db->sql_query($sql); while ($row = $db->sql_fetchrow($result)) { $delete_topics[] = $row['topic_id']; } $db->sql_freeresult($result); if (sizeof($delete_topics)) { delete_topics('topic_id', $delete_topics, false); } unset($delete_topics); // Make sure shadow topics having no last post data being updated (this only rarely happens...) $sql = 'SELECT topic_id, topic_moved_id, topic_last_post_id, topic_first_post_id FROM ' . TOPICS_TABLE . ' WHERE ' . $db->sql_in_set('topic_id', $moved_topics) . ' AND topic_last_post_time = 0'; $result = $db->sql_query($sql); $shadow_topic_data = $post_ids = array(); while ($row = $db->sql_fetchrow($result)) { $shadow_topic_data[$row['topic_moved_id']] = $row; $post_ids[] = $row['topic_last_post_id']; $post_ids[] = $row['topic_first_post_id']; } $db->sql_freeresult($result); $sync_shadow_topics = array(); if (sizeof($post_ids)) { $sql = 'SELECT p.post_id, p.topic_id, p.post_visibility, p.poster_id, p.post_subject, p.post_username, p.post_time, u.username, u.user_colour FROM ' . POSTS_TABLE . ' p, ' . USERS_TABLE . ' u WHERE ' . $db->sql_in_set('p.post_id', $post_ids) . ' AND u.user_id = p.poster_id'; $result = $db->sql_query($sql); $post_ids = array(); while ($row = $db->sql_fetchrow($result)) { $topic_id = (int) $row['topic_id']; // Ok, there should be a shadow topic. If there isn't, then there's something wrong with the db. // However, there's not much we can do about it. if (!empty($shadow_topic_data[$topic_id])) { if ($row['post_id'] == $shadow_topic_data[$topic_id]['topic_first_post_id']) { $orig_topic_id = $shadow_topic_data[$topic_id]['topic_id']; if (!isset($sync_shadow_topics[$orig_topic_id])) { $sync_shadow_topics[$orig_topic_id] = array(); } $sync_shadow_topics[$orig_topic_id]['topic_time'] = $row['post_time']; $sync_shadow_topics[$orig_topic_id]['topic_poster'] = $row['poster_id']; $sync_shadow_topics[$orig_topic_id]['topic_first_poster_name'] = ($row['poster_id'] == ANONYMOUS) ? $row['post_username'] : $row['username']; $sync_shadow_topics[$orig_topic_id]['topic_first_poster_colour'] = $row['user_colour']; } if ($row['post_id'] == $shadow_topic_data[$topic_id]['topic_last_post_id']) { $orig_topic_id = $shadow_topic_data[$topic_id]['topic_id']; if (!isset($sync_shadow_topics[$orig_topic_id])) { $sync_shadow_topics[$orig_topic_id] = array(); } $sync_shadow_topics[$orig_topic_id]['topic_last_poster_id'] = $row['poster_id']; $sync_shadow_topics[$orig_topic_id]['topic_last_post_subject'] = $row['post_subject']; $sync_shadow_topics[$orig_topic_id]['topic_last_post_time'] = $row['post_time']; $sync_shadow_topics[$orig_topic_id]['topic_last_poster_name'] = ($row['poster_id'] == ANONYMOUS) ? $row['post_username'] : $row['username']; $sync_shadow_topics[$orig_topic_id]['topic_last_poster_colour'] = $row['user_colour']; } } } $db->sql_freeresult($result); $shadow_topic_data = array(); // Update the information we collected if (sizeof($sync_shadow_topics)) { foreach ($sync_shadow_topics as $sync_topic_id => $sql_ary) { $sql = 'UPDATE ' . TOPICS_TABLE . ' SET ' . $db->sql_build_array('UPDATE', $sql_ary) . ' WHERE topic_id = ' . $sync_topic_id; $db->sql_query($sql); } } } unset($sync_shadow_topics, $shadow_topic_data); } // These are fields that will be synchronised $fieldnames = array('time', 'visibility', 'posts_approved', 'posts_unapproved', 'posts_softdeleted', 'poster', 'first_post_id', 'first_poster_name', 'first_poster_colour', 'last_post_id', 'last_post_subject', 'last_post_time', 'last_poster_id', 'last_poster_name', 'last_poster_colour'); if ($sync_extra) { // This routine assumes that post_reported values are correct // if they are not, use sync('post_reported') first $sql = 'SELECT t.topic_id, p.post_id FROM ' . TOPICS_TABLE . ' t, ' . POSTS_TABLE . " p $where_sql_and p.topic_id = t.topic_id AND p.post_reported = 1 GROUP BY t.topic_id, p.post_id"; $result = $db->sql_query($sql); $fieldnames[] = 'reported'; while ($row = $db->sql_fetchrow($result)) { $topic_data[intval($row['topic_id'])]['reported'] = 1; } $db->sql_freeresult($result); // This routine assumes that post_attachment values are correct // if they are not, use sync('post_attachment') first $sql = 'SELECT t.topic_id, p.post_id FROM ' . TOPICS_TABLE . ' t, ' . POSTS_TABLE . " p $where_sql_and p.topic_id = t.topic_id AND p.post_attachment = 1 GROUP BY t.topic_id, p.post_id"; $result = $db->sql_query($sql); $fieldnames[] = 'attachment'; while ($row = $db->sql_fetchrow($result)) { $topic_data[intval($row['topic_id'])]['attachment'] = 1; } $db->sql_freeresult($result); } foreach ($topic_data as $topic_id => $row) { $sql_ary = array(); foreach ($fieldnames as $fieldname) { if (isset($row[$fieldname]) && isset($row['topic_' . $fieldname]) && $row['topic_' . $fieldname] != $row[$fieldname]) { $sql_ary['topic_' . $fieldname] = $row[$fieldname]; } } if (sizeof($sql_ary)) { $sql = 'UPDATE ' . TOPICS_TABLE . ' SET ' . $db->sql_build_array('UPDATE', $sql_ary) . ' WHERE topic_id = ' . $topic_id; $db->sql_query($sql); $resync_forums[$row['forum_id']] = $row['forum_id']; } } unset($topic_data); $db->sql_transaction('commit'); // if some topics have been resync'ed then resync parent forums // except when we're only syncing a range, we don't want to sync forums during // batch processing. if ($resync_parents && sizeof($resync_forums) && $where_type != 'range') { sync('forum', 'forum_id', array_values($resync_forums), true, true); } break; } return; } /** * Prune function */ function prune($forum_id, $prune_mode, $prune_date, $prune_flags = 0, $auto_sync = true) { global $db, $phpbb_dispatcher; if (!is_array($forum_id)) { $forum_id = array($forum_id); } if (!sizeof($forum_id)) { return; } $sql_and = ''; if (!($prune_flags & FORUM_FLAG_PRUNE_ANNOUNCE)) { $sql_and .= ' AND topic_type <> ' . POST_ANNOUNCE; $sql_and .= ' AND topic_type <> ' . POST_GLOBAL; } if (!($prune_flags & FORUM_FLAG_PRUNE_STICKY)) { $sql_and .= ' AND topic_type <> ' . POST_STICKY; } if ($prune_mode == 'posted') { $sql_and .= " AND topic_last_post_time < $prune_date"; } if ($prune_mode == 'viewed') { $sql_and .= " AND topic_last_view_time < $prune_date"; } if ($prune_mode == 'shadow') { $sql_and .= ' AND topic_status = ' . ITEM_MOVED . " AND topic_last_post_time < $prune_date"; } /** * Use this event to modify the SQL that selects topics to be pruned * * @event core.prune_sql * @var string forum_id The forum id * @var string prune_mode The prune mode * @var string prune_date The prune date * @var int prune_flags The prune flags * @var bool auto_sync Whether or not to perform auto sync * @var string sql_and SQL text appended to where clause * @since 3.1.3-RC1 */ $vars = array('forum_id', 'prune_mode', 'prune_date', 'prune_flags', 'auto_sync', 'sql_and'); extract($phpbb_dispatcher->trigger_event('core.prune_sql', compact($vars))); $sql = 'SELECT topic_id FROM ' . TOPICS_TABLE . ' WHERE ' . $db->sql_in_set('forum_id', $forum_id) . " AND poll_start = 0 $sql_and"; $result = $db->sql_query($sql); $topic_list = array(); while ($row = $db->sql_fetchrow($result)) { $topic_list[] = $row['topic_id']; } $db->sql_freeresult($result); if ($prune_flags & FORUM_FLAG_PRUNE_POLL) { $sql = 'SELECT topic_id FROM ' . TOPICS_TABLE . ' WHERE ' . $db->sql_in_set('forum_id', $forum_id) . " AND poll_start > 0 AND poll_last_vote < $prune_date $sql_and"; $result = $db->sql_query($sql); while ($row = $db->sql_fetchrow($result)) { $topic_list[] = $row['topic_id']; } $db->sql_freeresult($result); $topic_list = array_unique($topic_list); } return delete_topics('topic_id', $topic_list, $auto_sync, false); } /** * Function auto_prune(), this function now relies on passed vars */ function auto_prune($forum_id, $prune_mode, $prune_flags, $prune_days, $prune_freq) { global $db, $user, $phpbb_log; $sql = 'SELECT forum_name FROM ' . FORUMS_TABLE . " WHERE forum_id = $forum_id"; $result = $db->sql_query($sql, 3600); $row = $db->sql_fetchrow($result); $db->sql_freeresult($result); if ($row) { $prune_date = time() - ($prune_days * 86400); $next_prune = time() + ($prune_freq * 86400); prune($forum_id, $prune_mode, $prune_date, $prune_flags, true); $sql = 'UPDATE ' . FORUMS_TABLE . " SET prune_next = $next_prune WHERE forum_id = $forum_id"; $db->sql_query($sql); $phpbb_log->add('admin', $user->data['user_id'], $user->ip, 'LOG_AUTO_PRUNE', false, array($row['forum_name'])); } return; } /** * Cache moderators. Called whenever permissions are changed * via admin_permissions. Changes of usernames and group names * must be carried through for the moderators table. * * @param \phpbb\db\driver\driver_interface $db Database connection * @param \phpbb\cache\driver\driver_interface Cache driver * @param \phpbb\auth\auth $auth Authentication object * @return null */ function phpbb_cache_moderators($db, $cache, $auth) { // Remove cached sql results $cache->destroy('sql', MODERATOR_CACHE_TABLE); // Clear table switch ($db->get_sql_layer()) { case 'sqlite': case 'sqlite3': $db->sql_query('DELETE FROM ' . MODERATOR_CACHE_TABLE); break; default: $db->sql_query('TRUNCATE TABLE ' . MODERATOR_CACHE_TABLE); break; } // We add moderators who have forum moderator permissions without an explicit ACL_NEVER setting $hold_ary = $ug_id_ary = $sql_ary = array(); // Grab all users having moderative options... $hold_ary = $auth->acl_user_raw_data(false, 'm_%', false); // Add users? if (sizeof($hold_ary)) { // At least one moderative option warrants a display $ug_id_ary = array_keys($hold_ary); // Remove users who have group memberships with DENY moderator permissions $sql_ary_deny = array( 'SELECT' => 'a.forum_id, ug.user_id, g.group_id', 'FROM' => array( ACL_OPTIONS_TABLE => 'o', USER_GROUP_TABLE => 'ug', GROUPS_TABLE => 'g', ACL_GROUPS_TABLE => 'a', ), 'LEFT_JOIN' => array( array( 'FROM' => array(ACL_ROLES_DATA_TABLE => 'r'), 'ON' => 'a.auth_role_id = r.role_id', ), ), 'WHERE' => '(o.auth_option_id = a.auth_option_id OR o.auth_option_id = r.auth_option_id) AND ((a.auth_setting = ' . ACL_NEVER . ' AND r.auth_setting IS NULL) OR r.auth_setting = ' . ACL_NEVER . ') AND a.group_id = ug.group_id AND g.group_id = ug.group_id AND NOT (ug.group_leader = 1 AND g.group_skip_auth = 1) AND ' . $db->sql_in_set('ug.user_id', $ug_id_ary) . " AND ug.user_pending = 0 AND o.auth_option " . $db->sql_like_expression('m_' . $db->get_any_char()), ); $sql = $db->sql_build_query('SELECT', $sql_ary_deny); $result = $db->sql_query($sql); while ($row = $db->sql_fetchrow($result)) { if (isset($hold_ary[$row['user_id']][$row['forum_id']])) { unset($hold_ary[$row['user_id']][$row['forum_id']]); } } $db->sql_freeresult($result); if (sizeof($hold_ary)) { // Get usernames... $sql = 'SELECT user_id, username FROM ' . USERS_TABLE . ' WHERE ' . $db->sql_in_set('user_id', array_keys($hold_ary)); $result = $db->sql_query($sql); $usernames_ary = array(); while ($row = $db->sql_fetchrow($result)) { $usernames_ary[$row['user_id']] = $row['username']; } $db->sql_freeresult($result); foreach ($hold_ary as $user_id => $forum_id_ary) { // Do not continue if user does not exist if (!isset($usernames_ary[$user_id])) { continue; } foreach ($forum_id_ary as $forum_id => $auth_ary) { $sql_ary[] = array( 'forum_id' => (int) $forum_id, 'user_id' => (int) $user_id, 'username' => (string) $usernames_ary[$user_id], 'group_id' => 0, 'group_name' => '' ); } } } } // Now to the groups... $hold_ary = $auth->acl_group_raw_data(false, 'm_%', false); if (sizeof($hold_ary)) { $ug_id_ary = array_keys($hold_ary); // Make sure not hidden or special groups are involved... $sql = 'SELECT group_name, group_id, group_type FROM ' . GROUPS_TABLE . ' WHERE ' . $db->sql_in_set('group_id', $ug_id_ary); $result = $db->sql_query($sql); $groupnames_ary = array(); while ($row = $db->sql_fetchrow($result)) { if ($row['group_type'] == GROUP_HIDDEN || $row['group_type'] == GROUP_SPECIAL) { unset($hold_ary[$row['group_id']]); } $groupnames_ary[$row['group_id']] = $row['group_name']; } $db->sql_freeresult($result); foreach ($hold_ary as $group_id => $forum_id_ary) { // If there is no group, we do not assign it... if (!isset($groupnames_ary[$group_id])) { continue; } foreach ($forum_id_ary as $forum_id => $auth_ary) { $flag = false; foreach ($auth_ary as $auth_option => $setting) { // Make sure at least one ACL_YES option is set... if ($setting == ACL_YES) { $flag = true; break; } } if (!$flag) { continue; } $sql_ary[] = array( 'forum_id' => (int) $forum_id, 'user_id' => 0, 'username' => '', 'group_id' => (int) $group_id, 'group_name' => (string) $groupnames_ary[$group_id] ); } } } $db->sql_multi_insert(MODERATOR_CACHE_TABLE, $sql_ary); } /** * View log * * @param string $mode The mode defines which log_type is used and from which log the entry is retrieved * @param array &$log The result array with the logs * @param mixed &$log_count If $log_count is set to false, we will skip counting all entries in the database. * Otherwise an integer with the number of total matching entries is returned. * @param int $limit Limit the number of entries that are returned * @param int $offset Offset when fetching the log entries, f.e. when paginating * @param mixed $forum_id Restrict the log entries to the given forum_id (can also be an array of forum_ids) * @param int $topic_id Restrict the log entries to the given topic_id * @param int $user_id Restrict the log entries to the given user_id * @param int $log_time Only get log entries newer than the given timestamp * @param string $sort_by SQL order option, e.g. 'l.log_time DESC' * @param string $keywords Will only return log entries that have the keywords in log_operation or log_data * * @return int Returns the offset of the last valid page, if the specified offset was invalid (too high) */ function view_log($mode, &$log, &$log_count, $limit = 0, $offset = 0, $forum_id = 0, $topic_id = 0, $user_id = 0, $limit_days = 0, $sort_by = 'l.log_time DESC', $keywords = '') { global $phpbb_log; $count_logs = ($log_count !== false); $log = $phpbb_log->get_logs($mode, $count_logs, $limit, $offset, $forum_id, $topic_id, $user_id, $limit_days, $sort_by, $keywords); $log_count = $phpbb_log->get_log_count(); return $phpbb_log->get_valid_offset(); } /** * Removes moderators and administrators from foe lists. * * @param \phpbb\db\driver\driver_interface $db Database connection * @param \phpbb\auth\auth $auth Authentication object * @param array|bool $group_id If an array, remove all members of this group from foe lists, or false to ignore * @param array|bool $user_id If an array, remove this user from foe lists, or false to ignore * @return null */ function phpbb_update_foes($db, $auth, $group_id = false, $user_id = false) { // update foes for some user if (is_array($user_id) && sizeof($user_id)) { $sql = 'DELETE FROM ' . ZEBRA_TABLE . ' WHERE ' . $db->sql_in_set('zebra_id', $user_id) . ' AND foe = 1'; $db->sql_query($sql); return; } // update foes for some group if (is_array($group_id) && sizeof($group_id)) { // Grab group settings... $sql_ary = array( 'SELECT' => 'a.group_id', 'FROM' => array( ACL_OPTIONS_TABLE => 'ao', ACL_GROUPS_TABLE => 'a', ), 'LEFT_JOIN' => array( array( 'FROM' => array(ACL_ROLES_DATA_TABLE => 'r'), 'ON' => 'a.auth_role_id = r.role_id', ), ), 'WHERE' => '(ao.auth_option_id = a.auth_option_id OR ao.auth_option_id = r.auth_option_id) AND ' . $db->sql_in_set('a.group_id', $group_id) . " AND ao.auth_option IN ('a_', 'm_')", 'GROUP_BY' => 'a.group_id', ); $sql = $db->sql_build_query('SELECT', $sql_ary); $result = $db->sql_query($sql); $groups = array(); while ($row = $db->sql_fetchrow($result)) { $groups[] = (int) $row['group_id']; } $db->sql_freeresult($result); if (!sizeof($groups)) { return; } switch ($db->get_sql_layer()) { case 'mysqli': case 'mysql4': $sql = 'DELETE ' . (($db->get_sql_layer() === 'mysqli' || version_compare($db->sql_server_info(true), '4.1', '>=')) ? 'z.*' : ZEBRA_TABLE) . ' FROM ' . ZEBRA_TABLE . ' z, ' . USER_GROUP_TABLE . ' ug WHERE z.zebra_id = ug.user_id AND z.foe = 1 AND ' . $db->sql_in_set('ug.group_id', $groups); $db->sql_query($sql); break; default: $sql = 'SELECT user_id FROM ' . USER_GROUP_TABLE . ' WHERE ' . $db->sql_in_set('group_id', $groups); $result = $db->sql_query($sql); $users = array(); while ($row = $db->sql_fetchrow($result)) { $users[] = (int) $row['user_id']; } $db->sql_freeresult($result); if (sizeof($users)) { $sql = 'DELETE FROM ' . ZEBRA_TABLE . ' WHERE ' . $db->sql_in_set('zebra_id', $users) . ' AND foe = 1'; $db->sql_query($sql); } break; } return; } // update foes for everyone $perms = array(); foreach ($auth->acl_get_list(false, array('a_', 'm_'), false) as $forum_id => $forum_ary) { foreach ($forum_ary as $auth_option => $user_ary) { $perms = array_merge($perms, $user_ary); } } if (sizeof($perms)) { $sql = 'DELETE FROM ' . ZEBRA_TABLE . ' WHERE ' . $db->sql_in_set('zebra_id', array_unique($perms)) . ' AND foe = 1'; $db->sql_query($sql); } unset($perms); } /** * Lists inactive users */ function view_inactive_users(&$users, &$user_count, $limit = 0, $offset = 0, $limit_days = 0, $sort_by = 'user_inactive_time DESC') { global $db, $user; $sql = 'SELECT COUNT(user_id) AS user_count FROM ' . USERS_TABLE . ' WHERE user_type = ' . USER_INACTIVE . (($limit_days) ? " AND user_inactive_time >= $limit_days" : ''); $result = $db->sql_query($sql); $user_count = (int) $db->sql_fetchfield('user_count'); $db->sql_freeresult($result); if ($user_count == 0) { // Save the queries, because there are no users to display return 0; } if ($offset >= $user_count) { $offset = ($offset - $limit < 0) ? 0 : $offset - $limit; } $sql = 'SELECT * FROM ' . USERS_TABLE . ' WHERE user_type = ' . USER_INACTIVE . (($limit_days) ? " AND user_inactive_time >= $limit_days" : '') . " ORDER BY $sort_by"; $result = $db->sql_query_limit($sql, $limit, $offset); while ($row = $db->sql_fetchrow($result)) { $row['inactive_reason'] = $user->lang['INACTIVE_REASON_UNKNOWN']; switch ($row['user_inactive_reason']) { case INACTIVE_REGISTER: $row['inactive_reason'] = $user->lang['INACTIVE_REASON_REGISTER']; break; case INACTIVE_PROFILE: $row['inactive_reason'] = $user->lang['INACTIVE_REASON_PROFILE']; break; case INACTIVE_MANUAL: $row['inactive_reason'] = $user->lang['INACTIVE_REASON_MANUAL']; break; case INACTIVE_REMIND: $row['inactive_reason'] = $user->lang['INACTIVE_REASON_REMIND']; break; } $users[] = $row; } $db->sql_freeresult($result); return $offset; } /** * Lists warned users */ function view_warned_users(&$users, &$user_count, $limit = 0, $offset = 0, $limit_days = 0, $sort_by = 'user_warnings DESC') { global $db; $sql = 'SELECT user_id, username, user_colour, user_warnings, user_last_warning FROM ' . USERS_TABLE . ' WHERE user_warnings > 0 ' . (($limit_days) ? "AND user_last_warning >= $limit_days" : '') . " ORDER BY $sort_by"; $result = $db->sql_query_limit($sql, $limit, $offset); $users = $db->sql_fetchrowset($result); $db->sql_freeresult($result); $sql = 'SELECT count(user_id) AS user_count FROM ' . USERS_TABLE . ' WHERE user_warnings > 0 ' . (($limit_days) ? "AND user_last_warning >= $limit_days" : ''); $result = $db->sql_query($sql); $user_count = (int) $db->sql_fetchfield('user_count'); $db->sql_freeresult($result); return; } /** * Get database size * Currently only mysql and mssql are supported */ function get_database_size() { global $db, $user, $table_prefix; $database_size = false; // This code is heavily influenced by a similar routine in phpMyAdmin 2.2.0 switch ($db->get_sql_layer()) { case 'mysql': case 'mysql4': case 'mysqli': $sql = 'SELECT VERSION() AS mysql_version'; $result = $db->sql_query($sql); $row = $db->sql_fetchrow($result); $db->sql_freeresult($result); if ($row) { $version = $row['mysql_version']; if (preg_match('#(3\.23|[45]\.)#', $version)) { $db_name = (preg_match('#^(?:3\.23\.(?:[6-9]|[1-9]{2}))|[45]\.#', $version)) ? "`{$db->get_db_name()}`" : $db->get_db_name(); $sql = 'SHOW TABLE STATUS FROM ' . $db_name; $result = $db->sql_query($sql, 7200); $database_size = 0; while ($row = $db->sql_fetchrow($result)) { if ((isset($row['Type']) && $row['Type'] != 'MRG_MyISAM') || (isset($row['Engine']) && ($row['Engine'] == 'MyISAM' || $row['Engine'] == 'InnoDB'))) { if ($table_prefix != '') { if (strpos($row['Name'], $table_prefix) !== false) { $database_size += $row['Data_length'] + $row['Index_length']; } } else { $database_size += $row['Data_length'] + $row['Index_length']; } } } $db->sql_freeresult($result); } } break; case 'sqlite': case 'sqlite3': global $dbhost; if (file_exists($dbhost)) { $database_size = filesize($dbhost); } break; case 'mssql': case 'mssql_odbc': case 'mssqlnative': $sql = 'SELECT @@VERSION AS mssql_version'; $result = $db->sql_query($sql); $row = $db->sql_fetchrow($result); $db->sql_freeresult($result); $sql = 'SELECT ((SUM(size) * 8.0) * 1024.0) as dbsize FROM sysfiles'; if ($row) { // Azure stats are stored elsewhere if (strpos($row['mssql_version'], 'SQL Azure') !== false) { $sql = 'SELECT ((SUM(reserved_page_count) * 8.0) * 1024.0) as dbsize FROM sys.dm_db_partition_stats'; } } $result = $db->sql_query($sql, 7200); $database_size = ($row = $db->sql_fetchrow($result)) ? $row['dbsize'] : false; $db->sql_freeresult($result); break; case 'postgres': $sql = "SELECT proname FROM pg_proc WHERE proname = 'pg_database_size'"; $result = $db->sql_query($sql); $row = $db->sql_fetchrow($result); $db->sql_freeresult($result); if ($row['proname'] == 'pg_database_size') { $database = $db->get_db_name(); if (strpos($database, '.') !== false) { list($database, ) = explode('.', $database); } $sql = "SELECT oid FROM pg_database WHERE datname = '$database'"; $result = $db->sql_query($sql); $row = $db->sql_fetchrow($result); $db->sql_freeresult($result); $oid = $row['oid']; $sql = 'SELECT pg_database_size(' . $oid . ') as size'; $result = $db->sql_query($sql); $row = $db->sql_fetchrow($result); $db->sql_freeresult($result); $database_size = $row['size']; } break; case 'oracle': $sql = 'SELECT SUM(bytes) as dbsize FROM user_segments'; $result = $db->sql_query($sql, 7200); $database_size = ($row = $db->sql_fetchrow($result)) ? $row['dbsize'] : false; $db->sql_freeresult($result); break; } $database_size = ($database_size !== false) ? get_formatted_filesize($database_size) : $user->lang['NOT_AVAILABLE']; return $database_size; } /* * Tidy Warnings * Remove all warnings which have now expired from the database * The duration of a warning can be defined by the administrator * This only removes the warning and reduces the associated count, * it does not remove the user note recording the contents of the warning */ function tidy_warnings() { global $db, $config; $expire_date = time() - ($config['warnings_expire_days'] * 86400); $warning_list = $user_list = array(); $sql = 'SELECT * FROM ' . WARNINGS_TABLE . " WHERE warning_time < $expire_date"; $result = $db->sql_query($sql); while ($row = $db->sql_fetchrow($result)) { $warning_list[] = $row['warning_id']; $user_list[$row['user_id']] = isset($user_list[$row['user_id']]) ? ++$user_list[$row['user_id']] : 1; } $db->sql_freeresult($result); if (sizeof($warning_list)) { $db->sql_transaction('begin'); $sql = 'DELETE FROM ' . WARNINGS_TABLE . ' WHERE ' . $db->sql_in_set('warning_id', $warning_list); $db->sql_query($sql); foreach ($user_list as $user_id => $value) { $sql = 'UPDATE ' . USERS_TABLE . " SET user_warnings = user_warnings - $value WHERE user_id = $user_id"; $db->sql_query($sql); } $db->sql_transaction('commit'); } $config->set('warnings_last_gc', time(), false); } /** * Tidy database, doing some maintanance tasks */ function tidy_database() { global $config, $db; // Here we check permission consistency // Sometimes, it can happen permission tables having forums listed which do not exist $sql = 'SELECT forum_id FROM ' . FORUMS_TABLE; $result = $db->sql_query($sql); $forum_ids = array(0); while ($row = $db->sql_fetchrow($result)) { $forum_ids[] = $row['forum_id']; } $db->sql_freeresult($result); // Delete those rows from the acl tables not having listed the forums above $sql = 'DELETE FROM ' . ACL_GROUPS_TABLE . ' WHERE ' . $db->sql_in_set('forum_id', $forum_ids, true); $db->sql_query($sql); $sql = 'DELETE FROM ' . ACL_USERS_TABLE . ' WHERE ' . $db->sql_in_set('forum_id', $forum_ids, true); $db->sql_query($sql); $config->set('database_last_gc', time(), false); } /** * Add permission language - this will make sure custom files will be included */ function add_permission_language() { global $user, $phpEx, $phpbb_extension_manager; // add permission language files from extensions $finder = $phpbb_extension_manager->get_finder(); $lang_files = $finder ->prefix('permissions_') ->suffix(".$phpEx") ->core_path('language/' . $user->lang_name . '/') ->extension_directory('/language/' . $user->lang_name) ->find(); foreach ($lang_files as $lang_file => $ext_name) { if ($ext_name === '/') { $user->add_lang($lang_file); } else { $user->add_lang_ext($ext_name, $lang_file); } } } /** * Enables a particular flag in a bitfield column of a given table. * * @param string $table_name The table to update * @param string $column_name The column containing a bitfield to update * @param int $flag The binary flag which is OR-ed with the current column value * @param string $sql_more This string is attached to the sql query generated to update the table. * * @return null */ function enable_bitfield_column_flag($table_name, $column_name, $flag, $sql_more = '') { global $db; $sql = 'UPDATE ' . $table_name . ' SET ' . $column_name . ' = ' . $db->sql_bit_or($column_name, $flag) . ' ' . $sql_more; $db->sql_query($sql); } :yeh)_D>x[I8[P k:- iZF}EwoX=9Ź佦h:݁HSX~D9``Y(PՐ率Q'N\6, 4Ʃ .E#XׁԔֺWen.5 (~!G(5dHLr>+&m7!\i35ƣ0SP?;ًFPN 45٫׷LYX|O\XE\ 2*{1";s7[ϊH`:rƝ2gqj/C4@L;:4Ms uX/C9%FtKk;g#} ~4kTfZ:$v Vڶ#u#PNc&1tMj~rظ$Qw }>ZB̴|8Jo,+Ef`Tm "pyXsZ%^5Ǽ h#^p%r_i mPG`yuCˋ,G^PUAG07EM* hlʗKLdzT9&>c۔OjT^WZtF#y-.@8b[8+"ٻc:8qkj#wX 0|Tvt`J'~J__V˦֦U̺dNr4sP6j|gE=iM KUFF{.g2 GJo=Hw!cߡU*BMDsYjPRmK$O0H9~ JtȾ,*K'(,N(5Q6-|" ZuZL Wp&$- #ee´2G(ϕ@Hʢ"! CB8kF\L5\x[o-!0sSO[8Sm&Cnna4'8H?w` p4J`5LŰoc{|MeZbE^y_uƟDz ȁHyݭh65@S1aCI']}ڿYzanno!"\ɑ"xq'Xwn&uyggqŎAץYoy#Mыiynz"Y:I%4hK`/vش4ĿJvLJlI,i/"GÞ8T>tDGzoG6V=7P㩧.=#Qm;9b cL.oDz٫Os*0_GH4m[{B|YֱP8x!Ibe@ńͥkH~А#y(B:T  @`CUJm$TK]վXHF!gw}}$j5M6[m1"|Oy1EET `-Pv3-=3A_;)p]f Uj4]a/niaP 'ó~YfqLV&"⨊YO/.tk>;sck['hNU: B̒'5ŷg(yF6%}lp$#&(A!u"=H5*x!7lE#"h{9,'O^#cwo''`b;|=.%g}:, -Wuh)LtkaoPW{USbId<$=|tpt"I}sgcX?[X_0S _1yiX4%a"ۮ1&'Bb.Z W>&u>}97Tl>6 `JceY~g]COq5˗d ЎNdĀ-kS;A"",71_5/ h~{֛% ~S=ƍU>-,Qs(!ofBjǒi-t ,U l(dSij _P9ij1$k->=ֿ??%hEg.!$]>[[^OHU$K£gc’[  SO#fiԟ܀2q:YS{,/]S7@n#|bʳ_M]'{⮒3%޾>>TM!X} KP~]K?[i;M Q(׬7%8(]ݙmxĺ;7zP]^:I5gIFyqX#yޙ,ߝ]%r_1DPY@#Ǹb1 \QX=HwuB}!(JG >1gm1~Sq_8" (RFnyO-݉&ھְ)Sv'G$ $I#K4y OϢb&n}PϧKװ PJX҃ qPr+0hֹbM4Yh"E=Kճ۴{a`@@vmt>zgv?~Zþ=Yy6d16ؘmu lʫKsK[-" `Ah1Fb<*eĊmu6:KrM(LuA32 R8`e?P5(oiEhXXWEm>ʚSkiCz CceZ~e`|sT13lA1֐LgPQXa 3p~aܞ Q3(RRA`9ae-H5js{O|q#eҟRRF50G H\`=_/ܗ73i؆?gA?>eɕٶq7w&™nPYܑSbBꉣ)f{y/o[އDC`n7wy9TMd7YY!;9LA֥ޗCl7_P*?P+6FդUî5P|Gu=JOL}Cꇐ6lh 0$ _K: xih46S~}SZSXɕEٍXE :441 f)yhÉ?S58~{Quf19us{Lca1 E5޴my?mqCMX9ĥEx;08Y䤳}#&h)5Z\aB<8}?@O]G:`Ŗ;S}HҷM몑Zqf 1aByXCqu<.Sczj8Sx)u f^4  5ݬJI(A HSq9Lʱ 7_\g&*3Z., _w)dANE2*_ή4߂ef(Ud?)enTC!3'JqOCG=vZIy+">)pXI#I[a0 xӌ+L5ckvO=uz}ƨ;{ZTq "2"1,$?g>a,g1JyB+# #$*$#o4:U6I5 84ՆeBOwj rG'GЩ\+T?q( 6T[|o|EJ?d/z byq @I͜vHbOgu۩I!4(D ^<(z&FdnM^R#d@؈R6ItSO2'I6؆qx}}3O }:H EpP(TwS AWy.} :[|em\Y <,}b*L9˫>c%8K3 Bhvܮ3,Yx+:r4j(`pOg E @)eO !Q?`&5L#w%$ίu&ìؓ*(Du;v2.D Om-"h`eajFW)"(,?EVA=הDd4h4;kCF\th.XFA9CK9$=𢂂Ғ `}ίsantΈ{'۟"#=z,U!u""-b3 B"@jan?~~qE[_IdcDq=3cJ:~wN͏P֣K J!_TyJ=7Tp h^E2FjXZ.7 ,\y]™Kw[x:>|n_~1Mu,DZS0$ P1mCcLJgSQleI#9H=wN33 zhj4yo\Wֹ= f*m>T{(0E%sg$6h]G Z?/5zHi8BjKKn!M!θ#+Y~Zy7jdS.f3cdbp}Gf_A+`tLu>$)R!0|tR?cVjĤF &Jyk)JN* 3 f^Ti\ ܷϳ~e?vs}ٿQ &?*Y@)HtcU҂"@Z;/Mgx+ D(a*0){h T.+HYͺ f,M\Ly;D~ǚ욳/'m+$ U 6QbD`H@`I-?whG h nq 3Q&O657q}^5ֈ8GWy,#&kѪ[sİx)<6`36l+!a;GWyIHعY#S3]QR|7`#hX-&?y&{*$i=_N?$%jQ|[_˘ ` 7P,pV;5ܮK{[hq=C)P q9,_Mm_YfT?X2a0ȦO8!HWX%P3Q ;# 3E25{ "* 7wC;'ZTGwfv!eڴbp783NYDajj{a4. ,VHV bIvE^IO֚O 9Zf獱# ""$DD΅0N: DS^]pn'OO1 ix!<]ΟbC%[->%Bҋ`$}p78U20Y^:uxKNFe@$ A(LښMPk15tt,Ux)K_FyZ :ZieEdVIZP*$=2ȿNѳqTS<SGBuqZuOS_SpB*Am4@h5y6V)3q+w1 8r3-m`fg tiy ۆ)QA6qO\-4UcHK- ~4eHxlc_zh:tT0L{>q|ma ^{SfDd7:)i.$Nua5p Z9s9ӒŘvBtʞg9ZĥE\𻪞G3K!|h R{5wdܒ Y׌"ȤF1 ŧ 1:뢰Y*{jW"Do &)wD={m1~a{*V~܌SkpWOo`,F[:H/˪ x^OQ+jaoVSӜtAxf0owV3i3.śwbD$dﰖ$Y~?bр m&>߁hgxYW-ߥߐAm{75.R6V] ?70alXʢ-"K }Cꏺ~jL M6m}}r>.>FXPg6 +炉#+z!$yveFjQ(-@k! *qK35"O4pÜ3J|ȦC+ @b^V rJ S{AT鉣,P$v8j0g1d~Y $͕5-4NV*IKDu?zwPqE %[Ϲ ˅$RYsAsxɯRUPU[DPX+09.$LֵnÝ}Ku-2vW JC &ŬGQ>/ʵe7Y__ ~\meBZ,#U45B?̶ Z"=A;oR]/5{"a JK)'RBks*c>&uTLu-i%uőL?sb\CL0 O.PW8[N#} (EgeqEKsX1b݉uJҡZG P解.'ƼoUºk[tv7?~Gʢr$!ysC 㭼 Dc}XG-z}4r]QM,"=ovU]+S^獢gI(E4Qؽz0*C%;L?5pXN>|,_t N0L֊E'덚Q7$~=kNcГ qٹOO~f|48'K@t[a 0b }d] P8By ٸNB,{7F$ϳJGsS\K ><GN"VfKa}Njw, ,7$b,J>d=شY2xL0) k/հ-:Yx`[/&<*VCM̈ 6={#{ u)y ~Ofli$kzcjQ0^LS32j[c?]YrGx"/2?N$#C|F„iR>>VɄ~x:ҶCux| ےwK>aE3a([⻷ݻϏݭ '4ޛޜx 1Z}, M{ GDBp>Ϝ8 768PG e\o[\.su^cX*)۵8@lB+=w^W4_!IAT"hx6B75|z5^R,{ݾ5 5뿮8lnlhFنd EŭIjz~X|}*"OBM;>KOkl.nwXjIwC~+ ɡ e7At&\ 3lf`;w9⯎4 q=|^<ώg:p~iǴ^ 侬fq9FIJcccchm1?gqꨱǻisg],+wߏ_jZE)NyBVڂYM<癜ڏ#VR\\*S9Ѭ]S[Ľ^.miҵ.Z t3ZEfo?v+Qg@dG|T~L|yn#TY[rBY2X@%}w(H$Tb%(oϸ#;_ij#ۡ5 NN(m\z n_{z>h,4?IP\ }'p =a%_CW: TCek$G)2Gz~d@rW/\ors΢ j 5\mmG:3[K張B#L󻷄ZBK)R"Y3f;J u"TR4>Q栍!<Ć l4qvM HJydil,jj5mS-4p)zʜub6,g}ŗسQoun`x}NNW)k?Ax!%l=sA$ @Aߡ1]|x} 윆{_9kfYS'6hjY. ^LfyGT1_E+`\I p=㌁F<<2L =UuXKoad3",`Z gG/*Y-t4%n:2CHS2@*\g< 钚775sK@q.0VV"$; KbT\ׁp"uY̆G]]>lF˳Pi5E-~̩wO"ez~qh1-D{߯=Pɥ=-6h$Tp[lRFesgzASC}`[/:D =3>dLN۾y(O5z8c "Ve-t_ n\A4$K%I[z6C_Q[ 6fNkn<j/eiۭ'6RPtBԞ1uW< 'v6}JQb#"fÑzxeW o|2'Ǽ~-~/-QM= "e.zώky?Z%vP"ǧn~Ȝ)2z|AzLwY%1t|Gp93u@9Tk{-ġe@9Ş8͏ɩ/.C1I)phӇ<m,Q{.G)q]Cor=/c^+1S9R׾9oD9 x!ս;9m7k)RqCW_S{ gk.__g i4 C4 aeJ}Ovvmv&ɧاJp@ŇWMPw~y-q*Qe6qQ[)'cf4Q`,/Tܙ.eٰ9ztњ4$s D%O~ן=DDU_=(bO1[? i]=-;z}|#%@hH}-c KI ; "HUH_o=bUe@ CBZ~d~ff!!iPk B]8- !=Nʞ(ר5m  _EbwJ5 %;.UW{tn&G5 ;)d;ELsD\"l޹PbLi+]*}:@H;sKZ[] M ;[hL{7Tr-m) E֭1<BQYnHHdX؈! @Xo?(5R"5 Zk1h`+H<+ MKB[/Ƌ5gEO}<9[^op111Wg͟K7Lv3C!=:aORkv&Q,+bi4>r% =@pM%҂" BDk *E 1K&C!$)΅b+IO°SfLC(m A*W֮gdS#>klڴedJ$)ZVԡHeAvq24P3iEْw͕5 ϞI& ڴUQ"||eA.}B`EB4f#Q(O.כTjϋf H#^Z&^2;OU>{Q':`)5~W%} DN`hfdwE)eՌU No?#ds**%%w–_M$@W9XF10}F>jIYm@I[We*5>n`Z((Ύs9r6QEQESo㫠t ,6666666EVG.3s^Oa@yR70#'mz0`.ѶňtɍX]p}u qҵ^Knējۻp:m禮Hw,z1l3uN1hفQ c6۹2LIf`3g)Zj*.Mw͟3`|<)JR PP-?m2dύ})ua uS#shLLISP?eL{*Cf:_+,Y }m:|:϶ۛĶ#LT$ %[Q1 RC29nQF fױIf6ILDf U ˉq :̀ P\ڪrZT$Kh'od$>ePX  @fXf#O714ߝcK9״/fY*?.+xwF"^:Vs! 5H0p&9R4k|=TY12U^& f;!vc$1J )UO̶CSrI:>麋YmN4hw>]>82i|1m)%JNe[1[[d+LE+'ZJ_D+2,97ҶN ԃyR w8)h_'t69 fJb VqGr~87XBJ ?rkTK4|Cw^2004unZ%jбLWy5Xhյʯ՚8\Y>6^谸*vI@SKU Ѽnp: Aj P +ѽIXcN)lo!_&$^`;b`jm0v(GyIZf@Œѱ!bl/JDN8_ `n*L$.kN $HT fO>@nй U;l!.56Hձ$iRIL߱C .V4n@!i7c4v]QPom2翷!Aom%ʤW, qۂZNvsEcgr]we/~Y[/V8bf{/RiJp3%C[hʸ_s(6YW^=^䠩P1lrS 6}?PfMqjTX  $U{ޛ$~ * 菔zPڛ{#k; =+Qm+*3ld ,E@-w%,pdK$=4Hoxt@3&Ԑ"NոzU ,@USВ,.|V̀ƵK@,U} %U=-r=jٷ%3UuY%VQ?]+6[[/pV58jp_ȉݡc6ⲁ؄ݪV pamU$u:y#SOxVF>+Qv_-%Gninԩxj*x;ڻDXoW'K>R뽻&|q\emvϗot/V)X5U'Wk') }IP˽o}3߿FpMӟa` *eؤmA!ApA^ [<ٍǠ.6[x1Y H-(oC.9 D%t' CR| xfϪ{*ב 2l'-4[^ܭ4İh*hJS33.YG6pZ`Lp_^%v"G9=o@o yRIxzQ'q1&>4c3:ԯl\şO٩f0~* P*;rፇ5m*oc#Y̬'['y:93$46L нRzOFthѻzNv L[o~AS`PhP@oNl:5C8ˣ 7dm~W/(NGG!qD^KMb֎S^5Y{K"/ g*ڶ4,nhDD0'I"&'Dz>9;wr:wt>nu[>ןݻ_`w ( ~Z:&l)8eoQ,"rq0v e,5)d";3 FN>ęC>}iɰܰr5@1q}?sI8rSNYuZгǕg똸$˗B{#-'{8{=RA?Agah WӗUȃ4)cVm/W^1vRSxeQ}gώ S7? ӿ -WL*{#}z4Yk˹5 g5U pQ{ Bnnd#c|^mz=˕#\q!xdE 0()3Yt-"0b5  r+CyZ*{Y4Z>k@es$’g-KPWJ92z$W /' ɐnAuQ9 בSGʋ{hm28ڵeѓV̐_%[tScD;J+0`Fh-Q @-6(~ 'vɴ0eڥSoUoiOcDI(6]J?]E&'GxGmA_ڻܠnSg<gt=P hc,J s] Dx"g@в^~q !yz'%#WG:^Y}&c<㿪wi_mv(^:ݺzW7In ά^ZJ @q3tz@ i(-WG4C/e ^O!کUjE.JE*udA4Q=(=)]`q V7~xjGd2b %ۇ׊PP,sw}XN,x:TjJ\[q1 ě;/vHH/p~klW=WS~. 9b(qPd03@A0咭$|d02C(<Ϊ*>Qyϝyvz $}Ƃ@$p0?9FRPD}Rڜ.ʀi@:+#RJ( -e2Y1YwnY S$ۂO3G=۾m)ԇD7ܻ'T5zΣ yt ^LsY );rpoʗ:Kll QEDo$ zRGpq5UC$rںmR Jhzv?|rPܦv-PE%ytc-\6#Mm5D`srF>< 4I L3,7bC]'ȌzlBX %BR)J$ !`َɠ5 IJH ${/{Ok>.s xc=ocvvV+!> M<+tDP+ Ig;PSAq&}a `F${j%9bd`IM쯩2b3h!\h2bk$m"H ~Ĥ AOII~Xl'fz骙LB̴?|5l;`jlzH%@57#3UJ\8p1Jvo8f}Y 13,1=0ܕulm?bob<b,c(&Ї63mؔŠ8 g6U^=b@/L5 TE{0Y/?e¦.  @w4n#_Bࢀp /^΁3}la\ W.uY*'ꎦ}Fn[%z<_w)fo/ ,M<nHbt CH{\eF;)S}f!Gw_VgL@[X%~N9ӹɈkrҘuWx*A <>۽ ?l̝QwFPh m1f*2gND$=>gS} 32,?q m,}4Y5{X:lf#oZ(&1xj4ŝ˳PO)vVxetnvx3@8b.{}ÖMRS1!ZVڑ%mROtq'.([57L9~~: ʣfC=1)~`-]F+]Uj~Sn8M>3g<&bqI z!S0W; v~umqb_3XRr[}8 mPbnKϔsDi:/߸h y!ָQٷp2HܦbYhuZTsBlSWS{ H8 b9sɜ "_͘R Gԥ`?7 EFdy:6qQjfga"٭IdTsׁ,WZ%5HԟzRH,L"zVGҡL#I On?F3Lsd-Wm`?T'FV8G\t|\ 3Iq6meiW3i#t|,,:38>7WYѤ==cGA&atX0U«8>Dóç[ /@V]Kæ|Co(P "Y`*J:882^U h"[DA%u꟥OldbEߠ҃Be5Lgw?xLwH%->m|gp>!͑x jVA@Ё=c{Zmk X(RWaLV3&UKDZ$&oSoa;a.lBenH7H9aӉ`sN ׶n{c_Ĉ+Rh%A@ \&ggɕ Q482 cu<U!(Mq̨ي[*;~wĎBn +ZPařim%7V~׶αI&ï@H Y@N[" 0)`䳧c @eehHϩc^3p߀Rs=2:yZgظsZ!wX,[Gdm n'aT"f5:&lK㰌{$&N>L/%$8|%SުM\ޤ ' ^CP8gkcHv9lUKBU;_c9se{5Oc/'h}E&umR#O %D 1JwgVM 樂ЃS@9Ni|ۅMfd'PI>LcpkB\M$$K$/ŁNӖ_ȳ6vt1)}aQEDhѧNF05+vͧd4;ß&gv04cQ3PfyG 5ǹ_??=Tߍg-g=C tV(F"5{UD0҇a9,GU"?' U#F;7=m܈=;~ʽ6T8Q`& JFš.Y'K.I#uLKv3 9n26E'_@sdVOK)LIRSΜ][ JXGr*eJ␱<>d H1a&Y*psJGUdQ`͑ݞM:,~Xk^#= ՐT@oOgR9z<Ę>?F 2f9?WLYdԆz T-ht z |g,b=`d0ָ15 bPxxIEK"KOv%YbV ߿"=3{SVI+"h''Z_b8}skD1j!UE( 5Ccqrx|G^/m}sܺl2 u8V!#76`FZցS~keMjm tW`sӖjMlۭ8g.^<6Ms<H]%l].V,re܄Xֶ5mlNѕn[k~|՗U5Z毾9z\.;`R\%})A0p>eӳfch͜P6,/gZtd>mb^#ɠ:wNuqP/Kws\Bf ;gCĬ ̥Ix%S)rxx dzztrd#!i0 ɜxyUyf\DPYNgͫ3} 6]XGdH%%mۇ]" A]vh3R%x3l1q^[g[`TP>h$|ӱ۟_NZkd{9ώv\2͛H0@Ξ|ø'?JaFUV\}otUe)?SM@6Krψ~bR>Qh ?$e'F™8r9%c {JВ?:9#4&=fWF ym,1`#\(@ܼsTR::dЫZ@aFjk7Tm'!ax4' 5C`(2lNEѬu#|o~G g*8%Twa" ^n9 d@``_+,F~?Ze(isR5+S;g65 j[puB<[jor9Gy a`}:78QO_nn]McK;\-pw&` g( T?\.v rΆ bt`{&UQ$ɡY 9i+B߷mo»] ԺWY]F)Ea$͏ošְDBBhݾt "@TlS!&{l$)Bsixf*c`ߜ ϜfF=,[| g)w?(&JMc SwV|Ö `۹+j=: _@4*e!(s Cq^SwIF_5bk>~ 01-rG:GEY>?q*҃@:o#Kcp Kiʋ])k1EۦŸd)jGv@3CaB/D9x%}r bh>')׻TAoc"}][O9򳐃3/uPC|b~O3&3~*ܟDþ_؅ 2k"^)[2LI& BB_Be3/6 bz us![ C{sw񅁱#*;(?w"Ɯf>sp$i(ynWr K.óMc&nץC'$[E~Gl<- Иx^6%‰sjEKؽwq`G qnD3tŢ13t/qW:jw_HG!WdɟOa>0+ rFP( S|S ְh28lnq?Hrq|H?wU`Au U~ߵ|,oڣX r.C:3R.,DDpWkd+v? $30Ψά,Ӝyso~@-G/X$5Gl 壺(BrfmaO8CQэao|z>;]'>ǘqK--hM+е9_Ab_Uϛu ԛCOm&JXL.2LKn s9pI44\Mjj*J4BlY3,ɟjPq:!1)SpҎ ԰rD Q8±]mHlk/ Cb+ 9} Qh-oR\x9Ѡ՗5vsNmhv2RGaLE`oϧキ]O8Nշ)~W3!\v!C1E΢Վ垔]ħ>(uvvqoo.G@" [ROލbф->FA;cMڰwIŸSm J/ E$UM[@H_`2į'^ 8`"R_FYYoɖ ȰI A,TT &%ĺx#}y畳O9tA8\~ ) 6! Y)9.".IUht3" nD))cD:*jkLcfDc*^) b$) 1L\(0= 3'Wvٳ9?W΋{7kܟ!d>x?~.#LLiB2\a/ Dip ?e9875h5]Fhbvqw1F:2?7W DMD['sg%z4c+50cr9/ܺ\\Rݧ8 !18;:֋xn"6U&CZ-m }C_K_iT;ZO*'e_-p@p?7rP,Ȕ2`(dM{d4?A|:6"΋#@Ukz6t*B |ϽV~z-5Bdf$4$O:HjL!HB4^P ad0d06 Q~0 N"#!!ČM (@ (uBRZ »ZHЇhየ-d.ڔ)sntͤ,r;~m92&1ȐJvl ɓ){OÕ^c8KaD9U|]ҵ*RJ86,)F,)0q'\ 4&DȨx3S@7ݟ9Xo PBQ+}C3\d)îw$S Iz#(6{;ˢ":$Iq[~<L%1z)Iǹs=%kٕb Ñ4#>)BrhrSu #j<, #, :% _"/}%렁Wt9QPrA$5O |+)]~^yI\i4ۗ"~!  5>'tۗ"3v;5.F3 R`:vKK aZ{N.,ޓAeUbKV CN\Yz@n0.Y}1V3>3s^˫?bcUo5վ 7w~A ;76kF>bJp4]reBG69w4f00W g3qo/aܥ,){mhάZ#eU&FNV`jXpfH36ey.Ou#a^\L&$\b8oҘI=w?YlƊ.]L)i %%E)1w.؝lWlDD3W1`MeL0dĔ4E W#X [=-V2Ǖ@=wAa9HHbdSZvdL .B([hG`T"+ݞ! %#޴B( $"IL`D"9 ZZ4 H`ROQTVo_{};(B9''qE$` " ,I;lT!1_5X3MoB0΂lV,-CYIYwQ2:b_1%c,"0 j5&mݡ= Ig-: \]wWRR#2D5d+6XȿɏV*~ݙ! $"M6ϟRuXU_JJ(~`畤b]#R 1TA#S8qaVrw/.o_?BYu/>(\U=,±qGqLj\Xe-@.2]5!1$g6ҵX'MNHۘeMoĨS\ۻ;%O=9fRT}Kb,==0|:?"7O*sKGt##'菡 )~/!45m,]_ d2} ܅VK%Wwh?EyI|=1 QIKjl(̃LI7 LgQݞBq.g@l kS4EKGOԉ!FjEP^w}ģT0nwaܸ HD,ϰQm |{]n(џߎE祈վ@:kɽFiݩ*Gqc)ǁF|LPfGtW&fKVwcԠ5_i B+|gB~~Y𻉴ߴST|d$Bȃѩv-HAN,K-+jM:ȔlP= ې@l3\Y$yJ<]xz;~^56Y1DYV/oP! _ֺ>m+vde+`S]1Q@' @ ŭ/DŽUڿFXιܖ}͗aǶc<9vEΫ  a;m$ܿ>#:!xr%U-AHa\\ogo.~YIx6}W5 X?.5[5 v\jMO!wҥ?@5s\P` ugGl~J4P):?[gz)IzUVUoGY`{v9+q$ | [rm^@' 0H}a|ݺLJߣʥTQɺՎ4!+JJ= |G$C;-R\껤V#o3,l\n돞OrNC0(v9},YO4'I*WY blWR,~/nCO RwY,-.x8UBG]yc`\1FB5 }g ( nr-[hN~Qm9}sx_k])N?u~-vl] s(nHݭojF>Wm@$:7M99C)r~m5ok6nQoQSO3iDU%!I`fDJHJhjq?,׺'0|Sx^NaE-DFX;^5R*ٱ hf?ۿST.QZ iLΤ No w#DcOTkTYZgo[$cz)%n3M2lC}}VoϝQo%Ύ7KzKjfL=PЉ44iإQeLlB^[_А{'bJ.ztovH:-bS7-rI&$$|Kvr7!_7/Ro?dYc`^⵬TְQ0 UJTDUcW*dvNS.YVT0)U[V 5ۓ2?bmܻg ڧ?oTAn@C `LOnW@8 \- ԖPPPmq~Kn{hy (hʹ8% 9W{hO}D?&_/)CR0uC1kJ/&^O6u69D"- u83TQ7Pï .qqE47kGC)Z5B2cܜyz$QƄ@~[3g@2&+Dwu b&z;SRX gGo ,frnc/2 )BpZF`lR,>:gX?@?!`K YǺҴEGgV@9r@gu RiB{|[!אM@WjְfRCٴEurߪ-x=|j >M@)A$iGb$JQy.-'#:(&ƏfEkLvS_puK@b,3T?(SQ!g7, ' @}_gwίOyGo\;:S3M$х\q وw6B|e%fd͵gr( ]YRsMj+ tr mwQ2ߥQj'N 4pi7\#{H40@!ސOe,T Dqaw®gPL#\bK5Aq ٙ_|.o 2⸑83Kxj_Kd,Tq),R̞JmƙD(sQ+*a8<40g)o3vB+:NmY+Q㈝7.RghFT|+DzZh :ٞ:]k"Oa-n%Tthl=M5|EK'Y mqВ/0.ʄ943"@ .Odue9J)SG"ߞ`OBMSM*vj")jj1+ڊ>oI&W`6eO?Rq5*.i}r44'ips-d{K d'nZOTKGR׌mHHJEȷسÖ@P|1,4騥G,ZF.2},Dc|`V9_צә]BLLI )\jGCsRklrg,-M]\Fj_.E|XW[gQZЄ$ذ#MBc&+ x'WQ CюI+97P0L AT =$?_3\KQVȮtv7Q!WX|5Tg@dʒ?k<$ч[`\}YdJ%r?rQG%Y@0XD ʼ^Pt X}:7se:Md֛cE"S$IMV%^ب%E 9>Ϧ@y)ەg ˎz hЈ1yk}7gQPȁ蹨o`p"XKCr"q4Y7u@45nL% b1[`-m^ xm. 􍸈OԄHkL(jsHgͣ

T :5Dt.i&8~j[泙}>NoAGUy)ue%:ht,s!Psca/02Wm)`U”~ѣ:]TxqF\쵊Ou C"1un;9ۚLInbaAcB1MU;u_tVgd6˰ i/ k gI z-p(3NK\?8kHnafmFN:h:\ un3X5E`g1(*X(H1`P,@EA`"#IF "@R"DH,U@?nj=[B@.?q>:T0t $)4!;h IwDf]0ӺcUSO(bϡyΝ_@Czi&/s )FhWӬջ6.5ʜ^şJ$1x dr鄿3!Jط&؋`U':\Gqܪjll'X ˦wC9w*p[ZA-cM EoYL/ryf]1B:+ѻKTDDPI`hOĐzain7/-[,V󵅖s40jވ0:Li?#B2C,@ ,^+\5_pH6 b3"$|OC$EMM֏scoOU[iPw2| ŕ_hoIKըHk 2Es<+V5.+%i92*4p\}, }Y޷;ѩ{@_oaU%>jJj@!xC\z!R1֋yO9w_ @w^K `u^r@-w=ل>׾h;]&^x>-@?}/DkB*}GNLY4RE6603JV{=ɽ:ݹG$ ͜o%3l}Mz<.߆ֳŌ.~f"zz>ؠ.A\EXU1G(j]Z+UUU1EV("( Okh\Z{Vl QE* ';yKq+JmV H_qh :$$BF \&&$"^2@J&NbhNғQz U B'-rdSpc$HPAKPpUq[0ܩ1D`P{Cwp)GĜNNWig;Xqtssv#y84=vʆ%XT< =҃ 3JflI1̉LN0r9Vd#^Wj)|%1œ}~3|I B{XOvDZ9|1  T &’!>R+=ϳ^}WLQ8Y̅i?-'% RŖ&ԣVuIZN&j, #z06XO5l/jmt\1a$!fGKZcclT0)LX c?q1'+es;@6 H* Ƒ$ߏ_^G3l*1QX",},ej{bF((:Cp $:sH~ 4("pT2>fbLMK}T|()U8XtRP.ThisDE]EOIr$HvFP6k`$H1@(1(hN_^ź!^5(,QI'-h1YfBZ Ϝg*,+$D;D"5*%"T/K,e4) F\eE J^lZMH$'^M7ʨ(~jL6~hxΙZoR֒w6ƻf2~,u},GڵS^*0Mt[۷uNOe=j7 &665!k~/oܮt}X)^;@mNsgﶦ;u@Z3D=zpU_sqo=֎ Z@Uh&,s!CY1I"@ڑT *9Y֢IdCVP;F\ThTcrdnS$:6@2ô> ,r'rj.ͱIԫ`bqґsҧ&&ӣfQ`pb2 ЍRKU KCb[J<+w3mQ,9tD3?sbk17-fD:;уmZ>6"MEś+(d! JH@[! uIhk[\m3{'GY.=m4 '$ ы¾ߕŪw%_;4wm2M ^{iK]5~o_oabƙVLœ/QvVx4h3Uк^}qg7>QAC*JHd\"Są Xd4 '̮EfCx1.Vjg. "o)ܶ͐IsLN!*#3J~4_9+!E4X-i(iX";[vȏE΁/ T*('OA"^:[Q|j7Qoi3{gKDE P1OֿVK"N"%y2Dg \0s"d+2:0ʎ0 98Mwykl6#*cJ_UFUEVrh%395H$1:ʄT&$+YRrc}ЖFoIHg^==4Vm80$ ,49Ђ~`12 & ",lϑո~D v D Dܨ@uZccWUwFl|X^xpʷ%ƅ-=Fmu f\zT /9y)1bV.ޭtD. H̉vhNTyXZT_˗9)';I^I?C{Ee>YP11`|KeR ;+,Fr^E$dw"j+zTy_3 ;(-L+1hԾ4 =OM;Th9wK}C:h]ngdwOgCtk!!K^W~Hst}y)-sQD3#k̋չ L2*hOM^8#Gq^)j 1#ǒ f5>Ub5|%o^\AVzaHe˿JvfXZ/doX~\GV fTf#L|%>Z^O HbiFOu] >T577'  i+In{[.PXz}T_(9&i`nP5ЃPc_܉U`- ae.`fD(yHz= 6o" ޖ2z;m{!AQN l,+r^#(W1TU.z^|avcaw7y* Mt׊r4-e "wA=Ȉ;_z 9 ê>F>>@o6W}}ytqXVv'h|y 9BD fFb"GݱXyƿY.!/yB~N2)4IH%Dh3~SkIPvMuޓF_;v};BG4}Аn"(FOXCL/.ҏ\v>Ak13x#o: sY,ں'|+7vVW[c[BrP>,lPrwAOCkXX~An=A{I[ww%~G_YB%/q}{+W@}Oz:8LK)5UBʡ ,jJILS Ri.1>P^ً+OG|f._=>o@RK4x_#7/`oH3.h_;Up(R pɜ'mȆs1吜-ƠT'w;w1+ kMR~ehāeW(hy vZ遫7PqL)Hu{_z~&Xr]owe;CXC%˯ym˕7x3 $UT ~Gpd)J,X>o.LI[JWnq( 3gjJD;1R-~bڶP"ʄYE@F[6riSL' ^/>Z{..?'A%20v"1sg\sΣ>6؁2(d &ұ+djt(f9̥G@\1^vjƦY>@q (  #؏} +n֙J h}}p|y[ӎ}t DV\"GX8cckzMI8MP.S=8Xvx|L.Nݠ6㚫An6@F\mj^[0=ݶO\φ B6!J)y !)+>D<ToRӑόF&(䤜eU$'}&eB %ɗXGQ}ƹ ۛk3!rzQo`)T%H!\,VMJ )IH}ݺK&Vf%+Y#r~4v\n.yH#C΁7;"џ2AeG)]X^51PHIS c@ EGҿ_/~NG/=HH)P.w1 ]nu@_ac֯UƹU.p AvmHfmf"49f8р9hfuk$uV7?rWe\½]3ЋbUF \}Ax⩖ɍZ&@m#s> F5~#`Wms|℮1|N+ʿEOzxoq;f:Qmdv hug"jTā, m.߭T[Nܲu& Ni(=1n>TI_8=^SnewhQIJ7Sa1[KIJz|=ڙba}@cE`g>wIw%xgg335 f?1!A?1<"j襔IىˀF+@}abP#0'P,g"Akz鼔\r9A Ka@RO)hǭ#rT4 qi(6kif?M1|I}Yj+8ƀԆzEsON>Ar4~>1⸗kw4HcX> p. b2QN\+cpZ̬㪛xI[e-Tߝs=a# Y+gdXzA-fgJw~?uuh%4uS=~PUdETHHޭ C-F]/a $VFҥbR/js&kpg4fy0I}c:25ɼkg= /]QŘд{e5<9yw>̃3iN!}}g߹T,<Ԋ[vY4Za_vi;kV#W:w͓^sZ4؉zp{2NÔH8S$Mkˇ?s>Ozny'Z]Slp$ZKn 0 *TYuҢΕ/&m[- ?q(ZiSzzɎSl!=$< -sR8a`?{@պnfkzG,}NǙN5442`8,(Axݛ4MbfERUafP, hl)JSW'2lo+X8YHH8 )Fxvĥ!9B*a)̬llv"P5k9vz?d2|u}, 6rENtWYl~WTgMƶęB"k }4dp,vtkPG068ש!& Bea/ET _ا $gII!VݸˍcM2(l.Qջ:ۭhQ 5;Y'M$xWw2A$Q&64eS$űSvU:^RHKӖnmyFSLwtFtPQ jkS7DCq1swGn XfS .ʟh1&Iژ}SFQo`i(GkOwENͷ"%83xC|J)!SCƧ`J` wUT,8߫͡,lW6bZWe `JMd_d!?Qh.y~>O mhQUt䢄eTM" ʫ\5v?8u'n?18@O?CiiKj uSPA,ڠ<^ĴThp5:φZ |$&1"(kΈaVH*m;8̞W +Tk3*lh<Uuy$~0dW$4NO dV9'|%0{[$\tTcrtFEKh"Hc[H~ ؉`/T3 ?@mV_׵whh0:H230 ٯr[ҭYm8wq32Xd*o-8mzfp. _Bv@D5b1-S!#7v;B5g1..4P;ӥjHFhb]FS~v[:YȠG#%O9zwpCv,lSY ޴8zV1GMɍy.].Ԣ#ҿ>陒'};?(xTT_gFiG鄝6,s;lHL!M&5MEyQ,WtRaZ +USjû´)L{̱G"+L c~@uBR\`z_0v%jXħֵ|g#d`fos}k~@ß,Q]O1pc-#ꗣ*K3̐kݩGתh>h Dn- EW<݆υj#$G 9s]>׽=$6!4(|oFl>.<2Et9Cb*?K]guMFCoG߷+7n*)-Y9'(E C1e!KK/߸.h3,: laj7Vg<z;dMxiAq K' =^Cr1EHHlɒ%뇌uغWcadq7XDqq.dEh:DCOuB&(.J \n]_0Dʰ$6 6-9E>%8=.;v Q'{m4\Լgb~-רK-M?[I"*q+D,*}| V 7XńCa|^Mm1OWfv cU[FnXf<;8EbLn7EasXU,рGMo2d?!8iCX~&Ԭsɡ:Ԭ8'Y: ?5+J)V8B&GR΁ 9+Wi͉Y3*z( 0hJ @]>a"(N&tVJRN¸,oVBPgf09mC6.TJY2] h՗LË_+l2Pک5$jC%X-VfW?c}-G(4ox) C"\)R)JhjxJHT *B"O)9DRf;FCw{{mxL)bZ=)OE.㴀_,v/OWB8W٠;@ :2W6&bM/=v ҍ܅ۂe tЯXZ2,qD}ଓ9K7 &A\ f1@w{DZ@zޯ7f) qu\5ɩDaN1 ?PHA>0MZ= D#~кr=ғp]:/rLtݮ ҭDE)T:O 07˅IԌB ޚZO*o>v|[W<(~f\łCS,BVQݧn>H땵guwޫj1Z¾"mJrc_eSIh0KhiL/g|E u8--~,ÂSj騩tvةx]D ^$#C%Jw2)9,~ dM> q)uQfcusntsoj"D.'* z}ŨW@) x =!]G ī&C?!4e9by uOJʯڼWJ*Y7OYS琟^Q&1)QW{fdbS1JQ/:bMB1az,aLGR{aG)|_ X x٦֖h7ᢙɡK =3:kN @*S ToX1;qJE1BIN朕$;L6g9x2b Ո,-$Rkо&u$gQ &/+{Jxb{ݳ|:ܗI8zC  ^,jo"pV,BߗBn uOlgs9< | 2C -+xN<27I H;%2CO'JDInW>W_XT|Gv֧tvvӘ 2m 'j\B5xiT4C[0_/SB)MfR^_P,7YF`q0 ])W6oAV8\ ?ޘ{p"JeGzSB^ԗ2/6lٱR( *ad4o!pЗ1HӱRM'ʹ9ai.wE$ ;?9xTZՅ{6Q036iz$/ۋ/jke{ܜixE^q&M!(UD*jHy Nc4xXPi.{|zA7G:HiB*¼` ^TY _+%(T,ulT+,3XmaVanlBͨ %)2)9D͝:tg)JYs4Y &5kwGs|/AǍ^OYUfܱ< NJʽ.\+zMzC\v_a%{P^a[|?{K {m2WPwD˔j|N|oǝ(PI@0detK- 'u,-~_)Ks~*OXrfsq)c3]ڥ,ﴵm"FCNw.R^%7U2*?2@:H^SVmTEzG%M-u)!ZG?Ռ`_Vdi+:fQּa"4I*\vwsgVaU )7X.kU uKBLQể\򡗊lVE"pty"Ե1EuR㫠|DU]ErI!ת<gK.e$=62. QL:3Vc:fE͎}y'}wr4VS. X)JR8d$U!5ع RJPj*Qe,KC7``kݹ6%WM vcIp G`r?}JAϕ6܈F֊) So6!~0t9h d/y"Pzg. T7o[)J8r`BXI9vW?R~nJs*s*n? a[xD<2c֡P7n߾ emu:욧v[_~d47`(2ƥlq9+(.#*M/(."{{=Ihi3?sSth?/NM ONp6迢;m3,`a 9 lόG!F_4Q1F.4/q]vo;/PIbƧ[,b|0b<depm!_.7()P&@-U#j9!‰ӳ?0L̃`R_M9_# `l$׈Hjzf6ڕ"FS,.Ph*ufDAGУ׸T5Tl Sr N3NL }`RϹ"+3̚!tȋԹѤP[~oLnOhg륤2f#eDN)Ӹs ^5Iub 4sFǵleݜ:T.k˴w>b YVGNW_/iǍW:Vf.Lb<%|;ӳ8=Uw'Bt)3*5 &r=B}.t2L%~<   3w LH[PGn&fW|lw=Rc#Uj ǯcUdU}{⑑6`1l$'ź(Ӄt ΒEsao5zzEj)P܀]':o1cW 8'YBW(J$2\xUi=3*tO:i^VF\h3Av=&Ȗ-F`-eE#G/,`X-v~@<0r=bqfHŊJR*j$wyXadR̲Ȋ]Q윍OUjUhuV^ˤOrz$~CƌwՂ@ICY.T@MyQk#&T_o !_ 4(@lU\]-?s@n_o)Dpzɣp\ H%8e=, M  ࠸r{3 ܳ35'Ggp8g?#u7FӌOd o)D~oO6 .~fK龁~ Rxw 9yЊa,ƒm3MTec&7MGtۘl٠%0P7L'KڰyI3}]7zA0XB]]:5TqL""s7џnv@?lO4Sp4K/#쨵ajGĦҴōste8@,&a/"L8>hb2Ha(/٬r!!1do;𵶿6/@Ig![P᪰Dm<>wDDߵr{LR7 jKС Mc;MMR9J=joϨ6,]?|VWb+ ;ljVXh9dw;!~Eŷsz[<&jniS($5Llf .@ܧ[cy.{(F˖ }rf^f4Wˤm|:G$m4<#}WEX3R^8'[3٩|QIVX Ʉqk_SR1UuOʩQh +g~?H7:)wz_Yz_Ч na'# O7xɬb={IWe( ȗ }!E8ŗ գu3C +VrrBr ⿨foJee'>] NIɴ&*pD(R.םAd Id^jSfةQw2N_>*f E$Kf jQgjJ||&9%|n*2`g#.oط=O*|uP{aVt;pe&5W`v|kxI86iW˄L9C8/8@iHj8{b8͝R步cK u Z΅:PzASm^@&֧衰!ŵjXO*pJBjuUA3mN]e~u;%cKx/\U䉖J)ݭ-P^'} t ƲhY4)JRA}; ]ۚɀXw*?lI_Cc&(BJD4DIعTD_ݕfAX}RCP2r~h,ddMʇZfb(2Fp[7BAfBK|EߴW=W9i;\nnax[uDxHt?K`sT;'i~UvTwg pfe)a7Q: eɶ  l]S6{lYznug_n|d?mU$`׿=\szBknH3lA&']^<: nf3*0Aj=n۬l­XBz91 }wr9ĉdqAQ iPd&oB%d$Q#MIOMhÈf$ܩ9-j!.B,LHa2X]UOD #j3gRF巫5XS4 落`z*:/QVثLމxp?JSq,Wd;2䎒gVlRKue"!DaَE-)~^ٳI߀swVROS+חb~,ѨaYy0TA +۵DLތtR7C^w%Ӹ C>M$с. I\zS#U dtzuLiӂly:7KSlk& wd&}Pt.ԷXȟ>b;] )GrzT1nEBq@E{ 11dAm0tmsW7%YAi71Ԝy`L38xºTV'ZeiyQJrywg( $N_A MhkQWDf{M8n 9h䌙D:ZwMEP ,J0mBG5_v"Rjp(05տg&^\j:5DyksE:ߖyOGSl3^##H weoh,F8ґNbB yѾ1V` t0AM l72b : d|_3h C8awLK=9 Mz<\NZQVDZ6Lj12e.NϠ*F|Py,S8TI'L#+WyEԤ Fb< c u;۱}gX ʟy!-T k3#Y~ì۝B>P7'Nmh凓\}3ЫT/e,}`&$&#ri1jm2LAG 4)?i*J|%&ݬjԖzKsSnK35r*z5(yzQ[#Gv#N]On%#F#T)_ ehʬL .%ui}`ꌏ,HyZk*xc# pg(W>/cUM'[ _{{fHsK P 鉶}٘\1my[iqA}< *zlJPJJM 0hM< -hg֐S (fL^!&8`vQX騉LF P@H@%̑jiQ4f1B3眠mݹYVn GFl4)lSKTբZ1+!jӑ`FQԢf^9f̍8 % QUJ!%j8]s>{bOf}Dl&7g,_Z@X̙`JLqr̤rrͬr%UfT\ PJK0օXE-N`nE!0ΒChFˆ\0R@1X,Fz3ocA|𜳸'͇Dh䐩>c83`hځ4֛\vL<o:jGcbrnX|"X]kJ AP3SZ\{gZF3A=I7:⯓ ^Zj}!CUhA4]{O܊fl“k=8/iͯ u@}>VgDܡj!*l",K_'=/|=G"[kou*_qY횝WW$-wT)y OKڽqerYE 9 0 +B.Śs7TtHipʬ@|љ 3\ Ԃ[P-f(4f^ 2̎Ss즦Vk2ҳ*B;S p`;(,|sR2f -aA{C/Չ:Y 5`3yq/( e޲ M񫪗S̽aCnoN)OBM̵fZhRGHW@۸3ݣSTX&PCf/rQJ#%OʮPiſTxH}LߣKCQn6U(BmRHמ-fʁ%ԓt0'n9p6[4[;s`ӰSɎӴ=̇`mr,ǴYtjFI_?in!-[#"vyjTQvyiS/w]oZ$=;v~Y\\zfD6+DXݞRɋIJvd3B3^K0X`.M_5[vF Sg6\fȟi,E/~gm7gKѾd>ŜLƗJJdgt9h( 壣B]]_.>]s1ֵחM&ȄN}Ƞ$ϯdQ`EZGHF?S)3}e =N$r}rB ?U0a*,+_i6HRb?&_1긥* av 9KfT b-PcBw (_]4\>'Ӗ4+ dVu. ̪=J m0[*;4ace B =/&>Gik1\|=g(KPod'g#!ުx:QaErݩ}??M).U_7!;a_)3J!&]j*Gr(b/i B0<5lli6{ P?&Lpr ,#rE+Q<1~{3]>ڶKbjwSN/A:cJ5R *fl";,@[6E k#hjNKd;0=T# 4#Psܜ PRSD[ mk R]QP%xzyH@&nM ,)\MVXa`b2A)ET>+ F݌uq7:x8GcɿiG怀 D$KY j[Uγ_~ߥžky{u\ǟ^ARJ~s;9ڴR rO=aPҞq(p@B9p`Ks n@˯{QE*= zpE=$įh>jVS<((׭jH2Q(>Eʉk bo%aXxK'vV#2fdzSkHG,)5RVE=~9lN 0%͹IYB1A v+A-+~Q@ܲveGa)BW(Ŋ{Q_dV]K3-@CFy7q"y1ޓfΥTwvr ~xxJ ]dkܭ,5哗.")I{~~y[|h8DA@v0U>jϘ}O[m]׌̅gq+SǍOi_Dwj[!vywe!_<꽭Ό/dJuwcf}+ ??@*OARt#ƪ#ýyŻ ZҽTnHa^OwZs'&ي>~ÿ5O;Hi6$k&DMfOS@A$ TrLkʬd`L &'g=@q&mA=㯟y&0PvLv}iz_2 d q,4w+Zf閤+L2 RneD)J X :! T-ERU3DJA=~n}hi\+~չ`K{/>f ԅ |;e֜˱{%A ]K@ el?$%*/x4ŽeQ˷ UXwpI@Y{Rǖ0 e"mѫ@]f)SIccy" Vbj4θ"չp[7ۍ}Lh0Э ń+6`RO-VEF4fH8Ѐ x\ʇ3FC "*>M{q6cup-wo:௄mݛy97^kVRf ɳM bfӐE#oZ| í` gnKDa>hz7#] rZ=ş I19ùiFq}ۋ&حѽx xb0iq\[,1c bm} &AZw8o":5M?Ɲƪ7k)/b#F~,9"zj#;?F &U./+ZG𙉼jxO'[Uk!7ij(^F}%ښ ?N-OM?9?(kxO;OcdLd|֔#3M+-&MfmŔmN~7ύRʼa'aTޥ4%<*CQv;!+ۉ๥L E촛B4~(5?" $%il/ ,x#%C/+_s9!Lh#ךXWºeG!H>`od8zLՠTld/M|FʯC۪bZN㺗]U^2n I0Г/6& sǼ Fj^*xӧKq^|7+/r0g;n̕CGSl's6Wk܈K9ٰy z  zW!].'02:JX dVDE@|6:2&_$M%ݪ> 䖛W4d}Aп~B,8u|cՎ{:yvwGwin:a@19g¢a0C qp.  $$=J#7ؠGZh#EW_FG( Ȳ]qn6Vk~nznM"E@BP(( * IH`?c_`3{7+u ".#xd C`Ӄ"A ۟Q-W#=>L߳ˋG? |hųGs~f!P%=cma9H/I ]vC%6CfL2䍶: dL/Y۲BZf`ɑE }ug QD) lhbɝBFA^K_o٥ECRbV#~~(/ 1W7S!6Yz98)YGrbM22 LęUAMDIĂd*JWI6Ueil$=)ybHĒ L"敍sy!*Q̸w2㎤NYcyHH֟q&\+m גRxDH&4D{: @a^"pv8))". n]۳nհcE2f b i7crdLtYciCeEP/U IK+Z=f! 'OT;LR./vӵpy寳̎72\o ʯ\%^{" QM簩nW]L> da7=Wx {1<΢ `!_:ˡȅV4<%mRfq˸\(G"'J"1#9WA9vG )}(W s{:gGt-sOx}sF ~1У\;F|W]B-P&$^ .66/--\> da:iL,&L%"i;bYk ]g~ܬ o]U Jw9*;k ~,S;JmgWm5B9OB+#ںb{# \HM Xc"c 7zm6VMW)z34x!~P]0⌣2PɐHaXR%# c4͑hiReH"3-7=P${iWe$><_ʾ1QMO lϿZh^'og#p8FZT-Lcw$8!M Dj0yE h^ۮJrY@&AqM%´B!4m.Rd4YAosl-\! Waل6I tPIB`dHAB|ju;ufE{ILjCfH0`1uAgnh4 hޒ $I\2l(ϡIld #FWp+7VQS-\QDs0(¢_]Yk)N@*wyS2DF@;o>_8N`Ќ$4w /A1rs&d o7D + T jh%n}Yhf ld< >!6d4: ,CO!ٺ vgtvjh vHi7d9$<ڙ@^,t3gmP(S>LZ5uDfYp(RVqd+nIô5Yd 4I±{_#=q=p Fy`3KAXt>MUL,V|~1qqT-!HXtgH>) J΂Ÿg6bj*cE[2XS)̷qtxHM?.i]z{mgtXgJvcYk$9p?o4Ϡp8KSr>O\Pv!46h9n5ÆSU#{7 dv KZ_ȡlZFLxZxWX7u+MFv%ڻP "",)Sہ,'7yձF>ruNP{TC˗UCr:%<"W `Ѣ18\#\ 3 #:b*S!w?>8'RDn<0w aLIIy&4Ϋb$4Xhhm eQ)F !y<ӄPWJmtj16?T_4bt\YIY[a?2[w5BЌcy[-ؿBr!9:(ǡ)١Sk?<q. x .jeZ#;GXz Y05;FoVF0̺D>P7+QƔmEqz6ꙩ3/_FV2r>a\NNwSMWR6=tqK\CCCJcFFH+ӣ%V|,;A.o犪Gp@=1ظANs8i$yY/+  e*bلP'ŸC0fb6k̩)d@{"r3bCfXbuG$(ۨmK1 !B| ) ) ~Otc0gzyylq2#7yݤ)j+ ¯| 4Z 8MeM(mkN%>^.>'ލQJ>ܤ;@-Y'*hcAѽC}+nvϢ@%-uXB6 R5W7xhل"][ϹЕ(򵯛?c޿{UUC<(Ehw;ݟ|rhPX7e^HK?s\fōpFd>_aeiW-1сfxoc=dEJ~77ø=/gPʔYz[Q88ϣucfN'U rc fsX݄L8X qvFɪԀhne0lT'}R63\$ ߰(d@~JSR9VUD/ RU8~^2&4uFs/.ؖj$\0cx:8HUmVvன}tZz^Tol >s_(ӂ K(XN @uZPǻjl =O_XhZ3fS5w{VǸh56 H Ls>KtbEqB}.HD%uNKh790;Y v$QC_Um{kp'1w=i6\8$,@|C(A^4>ey YnM r̂dȫLe0_VN 9kg?MX Q~HI2Agn7=B -ۯG^۵h7-^Z]u`9Nm^T!=OWWIR@=Sel@B.d]#UQ<,L/|R֤Vw([&b4` z>c5f`z A p=8@%o 'a:S5v'?UNI{? ["ڄޘ6I*I rLa")%+FXJZYBPhzzB1B˜6LC6&lfa r6ۼ6DH?@Na@D_Ey \fd4oF .8h:e$PA Bl/ ASBJM *miz=H:~)LO˘^3y鹐5Wa385D/Ѱ*61}C; 0a1H?qT ֶr7> *.S!ʡ1Ǥ [Xi@b\]L3QnU>\bv#ba(Drb ^ܺ !318V?m#[>XiJNĤ /n{=Iè̑P<{v:y綞 b``Y+!1BzA$(1FoGF$O]S ǣSug{ZЗD_KSWlHAr E,G2G191 (XI\(Hc7%B  E$(?㲀xg`a$!_><ÕgtH-R3妠F}'VQ@ h9W(?Sx2Kd0`v/@yo3vFO/?rZmS7{\ /z`7/Gjxb͍̤(E=7B-E˺=h rP0[ڌ6)lK-A\9(ܺx 7X@X _҉bKLF%fM <@!T(X,o'Qco8W(z 9U8hTt#8ݯ9A.hxd1&R~^.3I@Ϩ}y߸(٣T!fw(#eX/өb{1l+S{K 3hB_{iLT`̤וcbȟ0h'-2k N -ڒ"yo55'$r9OϡȀ-Hf&ӝ8X9~᥮)T30Dъ@`yz/]ZC . Yv= D@b R yY~S&$߬y5Zm5R-WWBq|x°m=J\Hc4y36sY>C@;IӋ!m}K+"AXDϧ8cV.b~d Ҏq(n}jq|\oȘkPE3Q92YTDۢpu=CuejofL}`LNoɌ"WK2 zQ:[׭2 Xt!x*ky3DlBa *=8iذFNz=@Q/sXcC{)s>#2}T; R_K|:Jߘ P4[-8W^'ԄwN&L+|!cc_gOtDu,7C_~-j} 7 zb~ۡUB"S|p>)>d7v,|}nTϊ3UsV\bE҈r%Lb^{%JcICYIɟ'y :?2re !nTlut*EC`fG[Uyg'3 d_0C'`)"ZAHlLi6/I~MyG s_wAz#>B5/}|%|eN@2DB8ZS!,1=J osG\2:\Y4 @1 YEJz3TeyT"0Gj\xf&OM*1%T&†N8 ,>$vfBLq >uMuGpѫ%H1~kK&µ";TaU6 R;7T"*ԣvI Ns)?';F@RIɖ^ O9z黱Vpl0 @K(5G'qH^qㄿV%Oʲ3lL3V{jb&BѸLx)EѨ+M d:'ղ,5mܱ-_,iԚ_ ċZF'5h1ۆ-<OҐ@%V}Ym{[ ?RG ꗀ|+fYJKB6as{ ʟ i{과 P$L3Ct7vF k1ҜOr 6 3E$I'+ӭ9j/$n(50E%AzW3Nql qEw ?ax8J 5] - 6ʃ͕ X΅/ Ŗ}CԄ $U@zeΌs"Yȸ5_f@h Ȯ{ҽn*F{'Ի{wn[cgݫƇOК:O0.T{HإI :kqc94P/:@j gTse~7scN梛Q*F.UoqFD*'VaV1"NKk,(FZ"<܍_Iׁ 5w#/sBI0כo}1sL^-r?Dt14PUQDӔYKQ43= ./6bTkP¸SL?Tj=S xdo2jв‡R_5ߣ+onJLa1/Isb5\ڜz܄=e( i`2 v )4iq?jUY$m-Z#[qh$ToU:j ,a(>ɛ/Il^Z!ufr \'Q.ADؒcn1`EJdDgZoR+tج]:!)^~8ky/k'rR*םdo/oW=j UFu&(vL`|Q搯wOgr("VD5gWgR3`r2}f;ϻEc:R!ޘܚ~lG z>C|q\ž}f FM V#\qR:(g:!?dhӐx'ݽ4/Yn lnrFx]&#?3iRk-v{l6`p3jVR1D tp^-k=̨:aѳת>qڈo@#oeJJ^r׹#0FVtO}wh %܉ȏ1YŊeFz֗Cg<|Su1q\%*xԍaٓ=ɏFBvLJ4’!bwv'EN9ןWn9̑)%I$j}3OUZιᾫCo[f](0A&9^@hghз]quLI|^`z,n:>ܾBj^^ ecKάz$En}\}609E&@bHpf b# -"n]dq\Vpl /%S<}Fux[z [B im+9vN$@h̄3Z@< @ ~ 09\σWK sMw_=; /E#oSlqh,HKu<1u]' AXQY fka!fQ 0Kƺ /M0c`U1*R%$R1nww:P&}x+^5p*hp4ԓ3J5^^ȗQN<3 B΂\2h SV7["_ByH#!#0S=fO -N|rmǢٌj ~sթ뒰gW -0r-}({r-a^!E&N]9B #q/%eA6Ò,< fiC_?QG/cly^Tr>]v8P>KT==md,ׇw`N} Ht VUA(Oko0UpսOvw4٬S?q1]7 O5gp#.$d0 (51j%ϣ\~d~8߉P sc42~eEY6- %SΫWdze"8?I&l-"ϥ{d(ߢ3?Ͱ;]dG^ *( ``I| 7keXG/(ȣ?5H?ףϚRa%#t'jDA118`vxP$(f]1s:$rӣ |4Nv`TAwhJRÑPO7<5\j: `z):99GMxjQ۽P B$*Xj#Nr`NAMZn6W,::EAg9BGjPp,H&0cua" _SF bДmPvUwٴ.M0?lI{ђBjbs"$}YA`PPR*A`PPR*A`PPX `OY( 0 F0㸁j DdҪ*UUU*U_/_Oq +ھR3O*/jĮ&)X@& !G%J6oW$c3 #Є a '!kLV|D yW$@i-˭7C5)eAAUM#NҨg|q Ɵ|ִOϳ|n ;L(eЖ>g @Z{g)s@lu:ʆf5wnʓ\܈+L9 @Y&,Ms!bMh(L &K![D\N?璙wv{g5bzbW?UmW>b6n1]y'a Yfwp|TfWH[b>\m{J C1Ii>FQ^DGj~o1|E) < Ra>ȣ__n~dH:eOF:6M2:y*"#p7oBf7ėGphě"ޞ\{|hR8Ѝ^iPMʧ"CIe/FCLJkl-e]6d>m@i3 j\=,>T^g7`dMAz\o:g9lRт}Hx&PΣ_"_1,{=_XKOlҾ0wʳֶ̢B v#p )6foVk'LT7D+0U{Yp;0I.v n^7O={lo_+~I/6I(EX,nS}kvá^ N9-دYNR @BpCG_? o^n60IÀ]#u20sOOJNBYpN7(xۖKapD|4k` ˋܸe/*PuB|G0ӷzFwU݇"uew[1YjA{̷"egg^s.!k:F46LC;&},GG}O i1Njwgd>ӂ _Yѵ8wʾQ]iCtgP$A)R-9 bGU4lz{+{W^(d Нny&t⇓:Qr9*"*ڢ1YД9?@>Z{ ,LFЂ|ݠ׀dpd4sx?zzA=C֮'8=M]ݼ`Is/J&HȂV< O(~!;NB\ĥb} .vGgO[Fٖ= 2a) ٮ5[ h5u%59AKk!"\%oi~.!Y8$'XbU$zA &ÉwW`Hj .[H)9>C~ VbƐ~0nrp8/{XwCxqSwџU;~to1Z 7O*W/7 r@C}C &?[="Z]4īr`P nC[7j0ܸ[1J R`,N.խzϔO7`q!.qoLV hi[J+_Ixrt^KXt^yVvTx O٤XQVGZƼ{ɻ$Zkrή>g5طІ,|"D ~WtFrYB=sbͤ(ea}ԟ0VzTbd;6?+`*/ہPfs{ώP&k7lSZ,[166QUH!?嫵/Oz) B]UፋI4pxU d^ⶨ6{8JpN#ׇx(m |fX4dC#]^MHK3/FHi`$vO1$x. ul/b MBZp$*B=+$Є]^׍V^cly-ǯgޜg &J6F`\@ W[rHc"g!'-!12xB]$bIjmBGKiЃfBذ7O1aÌ + apc*X AVz \ba#Bq&cpTw=/<(4ƒjhVE=Mz5n".IPY VC1id5=ෛ);/}u*#" ,+x" >n>v;3<$0E=&l

HpN7Ua讲Qws'q$L b3[qSXw 5zM vͿ䰘##U(.I,`0C f0`,F@wNEaؾpKG'WAQMqa_1sUC~]U?iH恓 .## { jxF -% f?߼("NKd@`6Kzqs;lVh6U{__4 pNdc9{ɜ߰Urpr~e]ԛ2N^4H'/+&+}W5n+ћv-c6m\0VI;ԙ{=PuW~8?.Zf*w~!# `I.i 9&yߝ~s/"Z O#hm#L p(#A@ dQ V B|`sx$+&xDRxSlҡϬpZg)oFͪL¨ʅEDdHlWz4Sv=J+,S|F Hl@X$1IF=3 ~Q"Kp=z! Sĭӡ_ܹD=ւ]Zeg W>4ɬC^.1{GKȣnGALrɈ%EDod@Nv>lPR W?/U4#1KA{W @7lw93DIMSKU Q8˥AXH"Xz~WB_⽟񇓭OhTޘ,;ED)գ31X,ރnlzb+_Z*@;!s`ҧvp7!`ca>ݪ$t!s?zkMCdb+[7^%#g}ަ&:JJ56kA Ŧ$ f屉kHФĻaqKkuh`MsKg]6D{m"Ɯ<.Y!^hE2H*QbR pwS%A`6=l!ToE:o̥.ĕk՘De{4TzɫBg3zԶ- 6 jeev0oyx@YďOufrЕ h'J=}=^jKK{B,%< DBX *ExtЉ6#٤9ns*_At93!>Fa5*isf^rJī Z# @%f p4M "򩋆h`&C^"a*S&eNaI4s@f[+qH(Be#x+4F K'9~!#!|ʁQ@6; @ 16B8lg9y>3Y|і|czznb3)B;Nf&e;-iKOgD{n/v!ӜgK߹6'2$5)hc֔P$Jf7EgFqDf8pX|K{m׸5.ܘ~+0ܓMD-JrH O[UR0)cZ(̫>,G\ONoO?+SDzwP:ocB2 /e"A'QbD[tM֗.bh| r@FLiVH uW\M)iu-pʭY@RL)mu @'iwKS5".BN|v$:nZ䲗#-&g Wm ,d@ݞ 9,#?ݒ)k~ 025H\'o-*!E~?TfBZ2D'M kyk0OBNf !k^Bq/F17vc8*q(y*>_NQu'mNZ Ciu2 /ٖpYZ39n'HNhi ,!A a4TZ=O|P"w1}3 IJǜ<&?MR|h.ʍUz|E 6Ioer<`tGUOW5_h=)qE]?1v9,@ q   $hf8|WbYwtϯpU&]3~a  G8>XxaWȋQms?v\2SI^kU= isrd.~kڻ^B$h_np|+a[[FiZ3)TܦmazɁ< R"/%hcKYS23ȰQ!z.C⚴Fl\TɘͲ6)HMXok[)S.ְ]g7KٙR4Y˰D)'kz"(8[=Nwx"aE2ۘ 046(8lWvXzJ7kt&dl` FXS| Z%&*/^iv[&A߅C!FtGad5S!AnHf@ukP߻y/U_Y / -^$ܺEvՏ3Pyr7ڿZU 5PA]uxᵧkVmaGɷaﯘrb*{)/:T:X*=]2^3fv[z.mk}ou|D 9Z#B!LHgݔP5CI'xG9߉y=z#/[OOi6F EC"tbx~M\gBFG!ڙ jD/[:C謣j)/*I: r짔BU& ,4/x<Ҡ8B<6g6e%ߴM."&n\MD HMF(<%j6y*ڒήkǙ4@ +13;Ǽp#nwD]{9.Z5䝺f`D0@B:pS qq۟۫ %Ud2}kl$ $@.]llYDZE]oB60$,;&T%J:`oDZ{ւmU /\^@\ ,&W^|Kge 6Z|NTpM_d"Z |cszHQӃ>{TRƈ O5He @u.@Yj1J47n2J.xg]}k:laIz}ЈoLeɨg53uP- y›20fNbhn&NaPo C$nNX78.c#g,:yzBWmۘLZ[9.tXI]iB@'ɤ0Rx20/EXL4=lK~[uH <;Nt..M;| 08;c=I'hK_}w/qh { hb * 0? Ȓ`$l$t=t>0E B B  W-$@دY]aY `s7M"~9{~*V[(26pxdfM>)ՇŬk(i9[RShcD0 j 5jRPEWcs[ dGN Q ȇ>Utwb37e& f׋4C g[* Bʛ*$ ,;^Ά4.&V.-3XMUNaEm)[rHDiI]SVw89j~8#uNȉXN&TݰSm{#Eó٤;Xy-`P[U̯uJv36j$67VI:Ӑ"bЭ5Xp܄ۢ4~wԑ>/x}g]#[y6Az|c%PbfaReH; c'uHB&cD [nS7޻z S(8 AV0fS"QC*A(X}ڑ?(ůyRtLb;m`o݋_>]YS5@Nkdg 9[3EodG!RȎ؟5 Ьu}ue}D@HL eS wYOm*'\BU5rFCwk͏dKtb4QsYD`.5Ϗu(pmEM(yLp5dGigjKId$LuDMNXvB`I7 GBq*^7zI 1}U"fxoAhsc$A1ZŮdwG>?I(01i^"BlTJ=nDM)YP zE(?*oxcxc`Ƹ;m@5JTx?BK)B6`9P(a.+=mLI!̉w!QA#FSL (+۠l@3]k߃="ۿ,yTOA%{7|Vld+1{g2W JQ^) ߓ׃.rqa&;S@-^{s@\Xm@&` !f[l{oOunUb Kۏwv6[N"!VT~ן@h5ϟ >4_Re!7֒4"sHeU~[:qh^W24w[ `i^!3pi?9Pp;yV4S\NmE?&2)(Ԏ^HG-;twck>⫨ʁ*O8*)댙) Y HSjRLxs_cPJllTySgy8 LۊB2l 5t@Ϻ]NbScO78!p;&+̣, 7a,HcJPb$ ΌZ;z1x{2J'O^ ͷ4Y4ddkI 1:\i?8C^Z3ghϚ~1o7 |*"JuA>[&.aoS hb͗Fom;|E6n O:@ _j 3 {yܭr^@[rDa5>w^'^ՠHAQΔ'wk/}P4/:D'ޖqZ4qF\_$mmȿL\:;8-9Ѕed+5[ש6 Ys!zqgO4c[VaGƝ.DKDQQz!|#Qˆbꨐ10kjJrr#E1.CCw>{-l@0k!o'N}, YHd9]Qٵf9bgD$sYM "0/&UVm a}3PB 0@9zD1q;IE]iH4eBQFm_d&M t 0F:I2`W(b$"# 4 e`O@#?o =IDD&I*DED̜ Lp|"7$݃YB>v{{ԏEg biB0# )$FG7rdbn6@xD\G=[8 &B ˼BF{>vĴU]"4\-sBb.%!tm5"%XE`mR't,c[vB*}_?}X&ᢲލQ)@J @\e^\n=v[;@$)Glw8d` |En ]F?΢dr #`MQPNSD IV Yj&?Wgc*Ą" &$  )P?Ӽk9 QW؝_~\PF~7Ѭ֮aO".bFb_fbX4J*% NHsq5dC(~Pbc&j˳*hh&ExOKɈb߲[$)6қrםWknkxK60yUNXV$&Uؿw\~4?6Wn9WIz^dfS_ɤ'tA:Rx'E2ssWj!Yu6`NU4qlF__yx78`?eNQnx7;"CY8tcUlʪDu!g΅EOaʭwG01BkBf0Iinb|9v㗶yz28C?(@ďsvݫ9xShL֛UB/L?9E"Q-Pzj^OFkmUqd%Q'1LŖ~Sɨ=׈>@=_ա8)=͓?hRpDX)\Nf:*mœh 0Nx}uhmKפ=opI/!yH˅4Moj%z'w߻.dX0UD 6~.߲߳@`>G\yv/ \<"!@ A^!ݡ׋Q ZFJr eP[Dg? Behh ˖F(zvx҈4)k\E&2͌qNEl1 0qYу"`bw򗉽湌εx|n2=d$%D2Ԃ??xE%rțhMOwiã-1 !<9Md)ac~7G{Dԙ/3d?=^p_S%ȲȐwzGYL`P&x2N+Z6PsU.kq(T=%ub=os *[ }:W,xGG(/5+!'Gn5 ۊ"e]xoh_C8fUNHL=KFBЊlw6ޑ^Gl3;L\% `ĸO[a8Zc6̘1ݘδuX>ڏg9_;l~KB.9=Agc$HUSݿt-jq[@a>Kd2{DuԼf=yD41E6,B`~aph-sC4=d4u\zήk#!/T= 3|eظҩ$7YD9tk]zL#K;>L ?oCt& E*{EBs5(x%lŋ*%%I$esq::J%?y1 +Ht9AVIW/#p׹e#;P G\t<27Q'D@]S58 QFWܠbB^9{ ,9I"ҵ\hYgn B eygL F`AY1鏻ȴrlЀȌ%ېPp* VE S#=J~k/Cn9L F²:~V_ʟ/`䜻IMk j~֪7G4r"ʰb)gE8-^0B؂4fXa'>|5dy̘A%˜ LIJ( tuuٽ~8Qj|fۆSNL.$ [CڷyyM]NYߋڸ9w_wbT+%b0W[O5fޝHQ:"eæ&r{⥻9Dg*5K?]Tq!N ƹdmyΜ%i?tc*FEE5lUAsz7ksGbPD6JsC$b wsy,@>!:cC%Ug~ȌMh {N*o{oS<1u 6Q",U1SZn$|$^d=$uȽ^x,}o-$ciqtP EKMrLQ!hEzx-m 6T)?77t7 !Mql~?+DZiANs$U^?HiĔve iIT %>6k4.O(Lyswm7DQ(ˢqGǺ:o?DB$)$E䱊P! TyLhm2}lxΨI*m.<40d;M\!YM:Lr?~Dd fiΙ@J&4ϭ<>>kg=86K9D3'ގjcP>oR#~kaN_l= dm`& *4ǖu~Vey@1[GRxN~kSԉ!l궨`dQwpkuӎ":iC'MEG*F[aF@^|mn.;Pe >M" 9` G<Aر=]t,̬y0 X;|}z$ P,t|u[, <$E&ˣ?vsJ-:TU%D~ l^gIE_O<QNe2H)@czmmr[v򶛁g.nsI:WwLv{ݟ'Z 4m  ټ2~PNǵ<)xpmyjbG-s?-:h8˜2Z^s/6o#g\sR-حT, ey5 Sm["Y}ʷ8蹀0{U$Pʥ6~@A$+U+Nqtuӊ"va6L|uKHLNB BϞ<{zƹZF6m;0  CV5ォ5~ٟ@|,   b73qiDl\z Յ׿{Z-k5vo|^gؾȽ*A|d(2˞r2 0ȓv&DD~ (DR n-$c-v|{jVGWc8㍰wWqVYe]v9eYeYeYeYeBߝmVs9NSֺS,,9NZ,r+]k9NZ%el+]k9NZ,r)s뮔;]k,9OSu,<+]k,9NZek]k,,9NZ fPbc ؒkf%"+~mQNK -w+ U[ypF-P|y+~UacTXK4@fBRd Bs$uOg6( 4NRS:TâKaÿh#}!@ 7_4z$xCX-1D>YN ʟ.ɥ'A $67f]UWB@~-N[;u US,6H堌F_wMiQdMlt a~IUzWA6DZPD+"?m&J|:b Sq1ژBM,vWG7AVS; єis1s pi+r)t4:kg0U9zn g8@PYxgu%AS48cb]ESZq>NuNƽ}!(*4cM:Khz-@mɻ61v^jO?85%ڍ $j na]P6QCRS2FȞ/R ,- EEk^l[vP&Fq@<9xlȼ\!E[]h.7J`t6 nhDGze,ӉOO񨴐DGizxv S)}ܚIV1 *-Yr/6Eq;UkNk֛q1Ckê;eOR3w("y&BᛗdT EFD6<,0i+@ezш. okPQ |PKa 9({ә\vk ms~3j]:Fn"2zV8{àhZbL!dI=u#pWG z&&CzDcpY{G"BKG9 11Ab=4N 7DdMX͇{|}Փ} ڏ3"0hAg y>} K@@}AZwK|$rYljB(KC9y!.>~1ttvE+H*㥑BOTb8Ăoo?#ɇz4y3%+ oyxsZMޏٜ>_l{!{s&g7y\/[O[14!i{>Xc4@*8;iۄIR.\}^sAxT~JNZ> Z8 QL&K *Ea;`FTDAWp>ψX l_]+V@ ̋ {&8\h;Adh{Q/!** FۋHSGDϽ~Ux>?#;2앭BzV80%fv>{U..|OWYwv2 Yۆ;&fffp ĊL}hUw3: ;;>C70+x#b11ȱlF2A bnjdӍJ^wKU-8[%4i+R4ɳYCIJ 殧/;Njy"Qz(@a$"ADa$wZpĶ!H3h[S`\ǃ"%ՑӃ~7r0`9Ԡڒ<]N"G™n)_|FF"o0ؚfFO \:j+YP;&%y#@hW%a\52ؠRq}QVߪ;6mU6]eۘ%ޯ"![ T\LR:\)p̾9#$NS^c``q5,k=`%'=ysVϩ,4GF̩,6 ?bR9cG۵ϲ3=. lJb1Z=3, {hN0|!Bh'x`jA`jʿ/,, ބJU Ή5p!rrE%a3/ <$+HߌhHbGA3$ǦwcE0EB 2k/n]µcr 2fݨ jU#6vMV)v^WfɏGIG;"=5x C {M~%go/arL-JpȚWBAC($gJB&2H9#X$;ƶ 4!6a /±d~)M9s YGxEpC@@؈Y܍Gk`u{PS[NQ]K_xk^M 6Fv~@L&dV[՛Y>7Dݵ;Κ.7R lu|w &,D&bz`m$\fQړs)κgW?dnׅSy-e*wGD:oM(sx4DD#{dד呪ҾVX&w)xF'BGY', uY mMJZ3i:?_tuZ3+qEyPmixp،]vRJXm$nwwH{]e1_aȖcUؚj?Y=?X ӚÒ?w# 3'Etyq4~*Q>>qe fx;S>-!Š!ojaDz)1G,>| +.*6CΟ&9kդO4Ih:Op Т$͢x=;M4D)EFvm$W`4oOhHɍCtYPB1_Xͱ}=CQ]ޚf-PY_4M_A7CunegL#ͼWVɪDǣ=!^Ds3Uh V/FF݃ Wx_"F^miHK˨:;#JꃂvwAE ځ+0LY@AAe)4?dLdQ[=Lpdd thjfIemP/SV _5'lŗ*T5@IWgYSQLagx.zY(iÇg$^=â0ӱ(Ӹ52Y׭hx!h*3riIȾy3~B JUGktY1TDBʚ3+Hĵ֢_$5q~5Q<lPP}8%C{^^3 y'pgOSf©nm#9C??"d,ՕʔG'uUH !ǪsuB3^ּ^z/Z 0dqWfp Ys/f %ݑ.s't0.(`4>f IBv "6 O`AW#hJ&*1 L-q_ ~]Q-iCї_Pgj؇vD!"8e1WQXŒbq0%"_dz*u;b|jأl4GDj^ iyo| Dv@Q\\kh9y Z(Fi;dzhbe baWQ6ܮ_G;~[B[!mxp@Lnj\ʨRh:I|r61[)4XZ#HP%u?w"Ո>[32MZ f + `45=r"hP DA¿9[Ё~((X1A cmp l |X":P \02iN? }MntX\HhyH!#nX%&"4+@.Xi!&TsF r;@A`W>Pߜ^ pDHd}χf$cH ji&P CsmdnH jh ,ob?{^#9/zx1(p~xO,kzc/_5 !R>?E.zޓY}ϧ@T _ZZ-@*HW$F\Kqn~t(o>5_Io$vxVS=NB MF ɂNG(?<'l>}N^)< << ƒ! 9l0[}[f4(NRB=wE\;Ƿ|ݯŸq$ Ob#L$ˁizkkn &]9$d~لOQRxXud6_?z}/9&f|CW mk_Ɏ*}v.FhO`!~k}fh|%;4Q6eCu4 mT|LqĐPɬNSSJ*Dje3Oǎ9c ;;W[;\r@?X ^y'ѡ'95M45 Πб>=?[jifg{\e~1. ϸ055dƖ.vƷ;5E2 Eh|?3Wumltc3I3PR<}kޏ;ixmOaayQ-iyt2cvfo?6J"BZI驌~\j#]86^!g7#-2 wɑXLt ]3K3Z)jA p ~݄θC=V䩿%Bቲ.79;KP+"Bnt 1s*wBׅiYy˟˾?2c$xZg6MZKz =B t@ikJ^MI~~߫Gs/֎3f{\Ę5$!xeW"Pl({|-Sr\d,0ݾ̄cvTBتSN+m }ThgF0s)z4cȜJ-e&.0vN8;!>DC6}"P1Rg Uy>N.޵P1P_wg'-pƅ`LKSP>@xɲoO >#LO@@&Egg:4@ 2kqj"0l<*-IGKuǝmsq?H1Ŕ@"`|6owK.wS~ Ѫf my˝r[q3L5?cNH囟onLa܉ -ײPh *p\{M!֚:ÃZS-MfaYb<[V;(޼d̈́WZqZT>U&eD-?Sy]ҴpL:FD2 Yt`HK4qt}J]i1@ u3Zs\A*I!+f#1VCO kSds! #Lp a4-D/Mu2$xj?@I 'l_o)Q5$…MG3[b-[) .p\yDAߕ瘄B]r @1ta[58mA`^UsR2!BncQa}qv*˷E૫"y&lHxD 0^i`z!cM_ QV  ulUTHMC]cT֤DQAt ')vF03XoqhtJ8Pb!>G!^sXq%22ԄOqeg~0vCҼcHĘ4r^_[r޿_jge4zP7L.+Iz q 1Kos=q$opޟ mU-ơG*U8Rƍ}qhM7eD@볿|b>H4h✵z õ]bgdVlܪ126b*ϺwZ0ŤG=I-J^ʭywAt5>bw-%{#= =vޫLEhل' `I}˧`8eBs,Z `siZZ:r-<*%XOM ogT5@"=5q I!D fѿt !qų;[TX2~Wdld\9_ xOYE7(L v:r03Ke%Z" G]1GK7K]s;:SQɬ*j'7N0A$CVVx/"hbM\*0ypGҴHF*ľ:#^IOOfLsKbk,ɓHځ} 8f" !'h 9@۩?5XAi0R.T/hbHjk`UK85 [TlS[A/QEQm6^CP ёD &y->rHl\_ [3SƖ4127Ex \I(vht` 猯$ju ޕo]Eȼх(/  r$ب*x63(0;o'QDhrD狷 wkrCt;I9 U?9.$Tzi.a9>/lj4t{ǴLԖ4wWT/wI]c_q y +W -x@ ֤;t[Gxj2T6D$HUUUUUUUUUUUUUUUUUUUUUUU~ 3J}|@Đ>5(N`i\0L%dOP-}ݱ7 c׳ʤ=Q_r6?Ahf1y`Aы~QO;G *:8M5=W?O>@#9Yq<۝lk` uKG>gms/hbnMp_J k\q51~is Tp*T~=j wSwYL VJB͚.|˦593I161 C(GKOSݷY"+'3mjjmu"Tti2`P^ ѥAPl`M$7!Й#k`C71DhUxtn=iXfcN^P$XrY kT^g񵼟?ׯW`b=k>mz0f_ iʛٙ_|9[b"ރI% x@ڴle)qB8!+F W𳻃WqiQ$C H]rx_`bKq3\WoHP 'ԴBHIftyIs..ъ+H\ Gsd*B-yx`~UX=oxAjr4d"+Pbi3ľX$*ŚJ|ɸѺ}o ~Ut_FoGBS}|x;]LT- t0=ekd :"Z˦ehVYa?ԈZ\tTiFπz<~~ 2MQJ\ 'n;۱f$ܝaJ 軸[h,{\Ak>=?XSMa6n=.8 Ss hYcJ8S))>jxPdk"2B&YCd7MVlT%`WQ4C|4l%(Q$h(t$xX䁬Bb?oVsF|1h@);ap0cf{~-?*w >*ob*:p$R+xXfX\I>RFx^`VKc~ť%"4Z E."|u=p `*.:TW" R8qkD h MzTfn( " ή `//.ڥR=3>!떕I}&ZT1S{JVTշRU].ʼCj+(TeVEtW\d6舄ߘɠ(yz/G%bP]EX_ $']9gKt`Q;( WIk޲e+V˜`QmA/C@R ڰ+ڲ8,sRH7W fbZt>lP]DYc;j)W5s A9nr8d@[ KF6jC'D۝SΛߵF5lb\v0D CsI>y I&$h aKbI9z&pD( ǡ +խZ @*PE%W?9$~o)#%VI3j%A{ 4Ů]V<=Բz|`o&yp'1l|浽ӹh :UkO7*2?w,Io6\ b[ȄER ZKxXa2=8c斜R~`)ԋsz 7AaL`b# tl zp2vbEjKTRZf-{ihAJ_;rGC R, 9d.mԄ`}W29gw<[K.+ڊWAHܵe")d:)TI (.4m&]Ң*Q{Waz33l]R;m6cm>JvkY @0#>ʰ6~ѐiTr+vjrγ-s4,i,CAt-?ˎyڡs2'$g0ctďd D~ٶwyXa!-ebt\bEX;|N}S>ECA6yN<EQkaultoB?ZCGE9s#1T<~dz'G) ;̽4d^N!18S+2gլf>/Yu9pf'x /maؿS&J.0Wp\˷,fam/ xp9_A$~oԑ::bvIis[LJv-_2\K><"vކroN =M8ҼzeA z/9@CBp}]1̚`c{4a:n=@^"h=5s~\|0 ҕp\w e5d?GcihJe.X=ޠ E6@q}HcEOSϑ[qv~/X+~4z{ RaGf1~aJؐ,T"W +Ҭ,6< A`1Cb8ٙ]a6"ӂI6 \AM _fw؀ &{!,Amيkx4[mLGi$X@_u{,Vsq&\c=1c4ebBUg}KZ FG;>Q[YiaCÑ9BR O3y5Aа|-zDE͔G[Slcċ؄hYւHK yxpwfߑg_~:@gE"%D51"r;9TbCqVy]~c\}WҚ!q|}Q^g>9(Wl1+_5<]K#1>ǻ2CU6`[DPXa$o'?çJ)樧NCt&p`Ō%Bcμ9uu 1'ёd0f0$.`59 ND3:w<vPam(C}"lU"U ,TP]ΆVO2;*ԞD ГA]S8<5×{tLȋ5 >9qр&0= a#UN߱au0fiQ2Ho~EȄs)Q ؉OvLJpO}3 pg?S[ERqBx/ݤLKW U)B367 f.?i_,u7kՓȴ`YF2捾2% \Coq/)lXJљ0]Y˛v;~qw' ;Of`=/~ZΖa&?4-ŭ(/U =%_0b7S du Q98<\Aj @s I(xDu+ÎoD:x~SS*R:<Ys>yMi!9B4gI %f#+TFzĊ!uGoF \dQ)EMJ0$pAB \*~6=ݡ)/惡ZDxėOQ֛9'چNFuS0zGi_jբ/of2X̱yntHϬκRHl>MY Pw;m/RPXH(Y")$R_KwNyAb.l^PHON4_Co"H_ecA.H?O9$nuu$ɡ)@adPX)"c3j%x`f4E_DmlР &4@yWV`?&NG:=)@ }J@_Rp83L쁺hBJ'v6[!efU4?L?6+I׽9#4&cOD0=ǦC,.7ܑ{V g,!;G&ң:WFD]-`>JŞ]FSLEVEF xy ZNڍoj^j( %u3D$titxCf_ۄpQ7.A CfrHkb_|/|";f%ZJX7r Xچ1MaT ڣ++8l=rMiX#U\Eɛ̒'CH,F&"}r*(ˈHs7 Rؓ*3?oX&!W%J\2,,82{@~}^;g`[$ڸ P*(m0nU_D[;ol薏;wN'~y;r5;Q9=#6&_K OxMY8v(48 =Oô%s)-U;Y2k mB ?Mi"mφzOxN2[2q'd{,hbIk{o9 qw@Ud/MugT6k8ِa]1k0/ B'0xb x(ˆloG Wtu{dXlERI:;kJ=$H((dqiMib/wYwtv@H9E[z)<=zh +Ka fnx л妜Υ;i)aٜXNCy6k F>DfĶj]X' r `H$eO:>`lGB*ܤ쵮W)H~63''.;#ˍcx<͇$@s8= HH6P JQ>`#Afւo4z6(cqsV)4O"pF|>.U[q]!!.q^xLfU\s-624{{[p_~Uvj}L ׫~ RlqhsAX" ',mLRIzO}-:K $v)gxYpqPܥ$?xM?V`嫾!{j&` !q ?n|QT= 5lN=4gs9\xˀeJD:Yu+&$n$րD cML)ï6[69PP?wη$YF%)HTzAP|!H(V`LT0m}c7Q鱖y tL?ğ$!^"IX \z^Ҙ#8%iv@imf,Lߟv9?}h1iMy F47&U#Xĵ$z?l45qz`s7~/)Y8Fc;N 2#dꙝ lmfrk x>1hݪ4p)3/:" kr-;Թ )UG0TFY '4ZLc?})ZZF3[yo?XC](UX3B jMYjR+d7nVs@N+F 3*@?kVg2s CmJS76=U>?iDĤ%4kMmIGg(m72yiGM]ӲnZ.A;pnN3+)+JB^N `.Rq͑R{6N' JQ$C8 ĴZYQUh5&8d36dO̿`:v=ii@a׌7hݬ.Nveolm"^˷&aEisNcÚ<~hGķ0Z10΅XG e8?1#}[]`#uf@1Pdv2%3u% H`s%-淫Tܪ?#Ў[lv\9mԶrsg }WaEElS4!?TUrx3 ɑж^m]{?(n8rr;n80Zm?"IW=MJII|0((11^|_e/hMZOpPw6^\+&`p@f%ޮwB ~QPT(eϲZ3eġp"Ϲ$x[\pa"]WV hεYt(VYJ6uЧcs|HDc6n0 xl:}bx63Gج  Ie4]p GT{adWXmXGfUs~ؽ%RLi@v PɅYlD~ج=PM{|*C̀lL CteZFתYTN-aW0T0`33P0&( ,} N1{&z.I--dRWf/nI+wC.V-VRMX')=ь}3?k-_$zȑ(9}!J~]Dtg,CmqSɌ ; pX;͍3A?t_9X9P690~FLӇ 7턙}mrEmscPU bMZ#PHkooW$ph qT4\Hh6p `j\ ڏ .=s-a0*Eӽٵ2 ȕ k 1Qe0 K'aQBqS>LE $APićЭ8? ssi #N9~EdK! pTZワ&$4iP^`h}l-TWw'4e["e TD (|Ȩ`1.Z@ (4:԰Y@# ZO硉8x~9%6ݘwz{_Z>|5 HRYeEdaװM,lYTϱ(\e"$~AgJVL۪g{F@GR:@.M#4r~m}DOM Pce|r8!2<DZOX'@/Mv-P(D23\lV$`cدxm9ˋe˓\V`sS±U罸eRb,mܶ"EC""ŷRng1V$ox$P{Qn$2f[(πe'TЕX aOH(HضW/J!cњ؆ܳ:@gdN\8p{]!/d K=roujzx*1 p)Z)'HLى3H)mJDf]D%(i^PTW<4mB[R^ᕛ_RJGLXB2xFυ 6Ey5Ѫ(`W3Oyk4ıK+moPtrGϚw~|(mr|q5;'Ǿn؈B&qՠ""EFU)]J=Z&a+ihدLr%`R`<\$HF֬A$@eAɮ&eT)5iɴѥ&yӹ,f7W W f#rZE vMսVQ' X"0VWjQՖ1P8ܛ*eҍrM͋ w'snwQJTU!+M|7Zj70+hțFN}đrBy뺟)$}^ n:/M"6$Pq vޗh+":!rf,F΍t-2 5yN[67{RP&@aAZHd(>i% C ՠZmϺZ.ï}x|l,00 qr:">ٰkV蠳ĎZ9&ܮ00Pq=Z<^zhޙ&_d)Pb>3ɂ|$טg#T%9vVgdF)!=ZB |M\[7}ɽ8H"Oȗ42oL<L>f$baƒ^&t/&9HmFPn`k'w,6r*YMku;:اo9xnVk{%hvR8Z@@ y9D$]Yuh?K to"BzrOm.fSQ|>۫0b 6T㯯LȼBQe z2P 4<,aAF.ZbNy|Ե B!$3bk.ް^ >0Z7C V:hPaRaO /s넨'PYu%iFnԑj+c){ѐCH)Ϫz}|]d$mQT 4W,̃M\Fh650xk*XѰU}G*i=>_']qOm }t}c cNNS6OG%c_eW\|KEon6Ojed8>pR/μ@+ıϿ]? t?27Irxas] CbMR1R9t[>)ϑ$2v`mo9e | w4󬆃>zyl\:\2'&_>^|iaJ*-pb@GR5o>HKyj {㊈c7wj@OIW.h]?c+H tOVH +W{p \|%h8uUjzv zJ ObEwo^<*.bQ0S}z4 dc۟QUn)wv?8&YG.cMAVNI7X20/=\% :HCNQ P!}", Lk]wձ\TUCsſԮ$eq<(5ܦ@~ָZj)l@vM^'[LJLk1hɚ(ٕmd8n4u=5 ҍI YRg1EP^U&|fO( %%nfȀ?,πŝ$SB ]LiHhjoo9n}ʼnͬE'z!-jk&EwwǧwEd!d0&f)BE;5~  !Nbz|WOwc4V7U6  }d{zJkk-]{]B4ARcן%nT"i~} _lx"\c|CKu[XN`~gךKVmVMm*|Rt9?HVa$ IzţT0.ʕiGys[&-ʬEؖ<&;C?@>xZ/ l}}G?oH4! c]vR&$(RBFՠAV%%_0rlz*i>Ɇ,V3n0Mj827y (ĉ;fОoD&8S5ej!O= ܿxl'&<^#U9#u@J?jX&yf⥨I)r)M7Die\Lx(8̺v|!6Iq³oΑ7wrC!c HdIm \7²P ~HʋF'8B u$?xo~~QU?r[a mtt.^z1G0O'bx @>,^Q~5h5P}0,rZ N'Uwt]݈ qkdS%3p: U8Op}\{I(}u(4eKTlj8qX]w0\=GZ¶3±LY"S5skM&e,I4{&O%OZ9lpf:Si'WD:DK$PEySpK{ VMLY?mݘx ](RR&C]N?;(e.T/2!FPX;; '%AdWٿd- yLٛzFv+FJdủsKAbPR\2'DBgmox痺J#˧ Mi`pN^dqb0##fp~ܱ"=Y<=s<7[/׽ZA>0.ƜЂU ~ONA2Ilⴥ$Ee54r`؇؇| m9_yqFU<#bXdޠA7 ?wzg0,Kp5t^')06ry}5Eݏo~xbb E 2NnHC4,6 TR%S}x3\99<ykGap]Q{}atk;sQݚl(rkCzy=iR l "˭IZK?"(,52m ֿmguop [Ȃ1j(5FEE:`䔥U~jɒ0F6j]6U񐎧ɤF %|lʫa[9 e.ۃz噆f:Al}'6Y>c{љt]qb[1)f[5"̙GӇғ5K0KjL ֨FuVL卦:>Dž%Bg$UZoeu@D ?}VBz? 4~yOC1۾ד=@)-î]-ȏs;>#"A,_~7\IᛘR uL"&SBe8Ayr#7HU]oYֺ[)-|viSqB 4S'ܠNhEiTD >~e!a*}ǭ`n޽,%e/y|+<aֶm"@28jzQ>Oχ `@ C۔i-gt_?8}pM1i_Sx#iB5x_}^f,kR sNVĀ$%8|Z_r},&319^n۹,O1ksW(̭561_rsq^i^38O;Y+TO@5=cb3ɃЎ1mq$k AE?7޴MVx !E*,5|KmnpBvc/ ^#!Ff~0_dV- Ď>vX1G? )@B}tpj2P,Nd`"wb0= m! yW_rw%_@f B(LGųg6Q(k,=u!fhڅ)KWBC8q+ՔUa8hff|5y-yQlAhDοݪdTrbT":%UIJcR}gt,<P+D|9e*N.hU҉<%2os#z-.Smz}GS1s-ls셡*y)m24 }gkMX cmn"MDb& #@Djvn@_SCs3Sy㜊=R>b.?GԲڮ6 YmobXo"XoƷf͙( ?{m7Vn)C͟_MnjŒb;AeT38BW7@; E zݜ[L!in۫ ŀj4af/vD|AP,xGt~zҎyFz=kuYgi5+xhSs,H`*C0.vqN_ j+ڇv>Z fb:Ql>2*/g^Sja99XѴ#dIXь%+~ɴtҖ3pci٥,h>3맑?+V#s!E D絣qx;+zD%3Av~=qZ6.bU:0xjWr,HԒB%[OFh\f a]!1(㴙yO܂y_$SXA>8*U/ߙ M9f,w#2&/6VE:K  t.{Rvܐm/Zpg< Q{%|eLSM]ooo77I0>W.,rnG؅r'Xe^T"-[?Nj'Ug&{VSP;15c%/vUBtbE4Qd{4M{ȭ"B }b Bi]P{+MFQx,HOcr ҖȖN~{\'׊E}})>1XuphN?*l"ފčʱZ%ue-0 YRܵ#-q)ZspࠬR@dD5tpߕ.7aT͋φr4yO#HU"Q\ޭa nQvQت(g{?Ta:( O,/Ǥ/m.n7Iʈw'Om~~Ϭ@95) &HVxݧk0Jt~@(3Xo>_cc")VYn(uA 0x@)*ʫۆrOYe7BMn#ű QF۲0cr3*DW\&i6o?)I !xSd5:&5;V?FR;F6_K>2Q6p&N)ڋ8;2T;\~1Tv7/`Nk&jt2| }NI n͡-,N+hihNML^HXuHG1_J € Eݰj&Cn^qbWѐGIW|*E0j8,VPg*4hȬ(8hNY j bSt2}5؈}?}aG\8ʹBq/0{|n8.j.i g#YaCRM,H\Rӛ.{QGG$!,rJm'm< ;o,}<)%K~yįxp+E2[iEoJa:Ƒğ-y}4Y(XU /i*ppb.Q';Ȭ aG2ul~Ƽ _d7 2'հCʆ2)ly y&  (׸RL`;(#SX1!ߌtbeN;&OB@hؼR6Hhp 9nժlxs#/NB%ϗ?(C?UT6}.kwH}̵֡W mj2x8Ы>]&R<\VPҿk͒|-_2kry%Uy!4*<4I:绪2Ns̔5m2_(ṖWlc$'[FYUPLWF t|B-晴C&JSU?cGYCߩ$?NWN)۰&hpSCL"s6g21gܚxR+9]'A/C=:)NfܾլZhpfHxnfS"!2  $'u}WPAZ92G(޼PNY"|G &Eѥ+e,Fquε7-2m?jwag(L\g(3da^AϠ 57xx2!^YėD, է~ |ЧfCf $ "!꫅оKZ0ԛ05lw持sG5By 3'wTocz?åUx! {K}oǷcTB xf2K־Ʒ˵FVjOYU1pr;WFU,b>K֊Ww׭N l3Eg}1 閇F<]ͅ󪢣mxݱua@ 5/ZVT!MδG,ΜFIyn-Ӝ|}Ҍ?V`lT WMT,k(N>Jv{^|L9-l֐sÎb3H [E H\pN­7&سRϫ`n}vK ӱR7/~P rcNݛY,7,sY9r SL* 2i z`R9wgnř͐܄{@+IK;>F xciL>1inQLT*a/i35aº~ e0CjMVܨ$P_ǫ5h慖gԝ=rW<ʌ^Y!Cak!K*PD |j$ : {yizg}UoO_hINc1}KlF MUi`Ux jORБEr4?=(Lt/PO*̷P0)σ:5]V=6JB(o*ġgetKY:ʌM%l*MSI&G\ke|BSS 'Ԃ4@gSwg>$ɬ4:@r>4؟w½KO0?u+O& ~zv]k2-T j+GO 6m8r򬧎SE6HVyh[NboO O-HAҜQr:iWWּcЛ뒴%p&8a6GNɹdndNh :P<җ:Rj*Ә'Qtv^M =m4lkٝs9)S|d;_0/Qe\ݺdlY2;Fkiij0B:RV5i8Q`.,N7h g^`#RI00Kl+T$TD /ZQ!ou }2/ +y^G-w=py}^vD\'qma1Dt HcU&(>0 !6~+v_EG-wB{Ewr)@D:kw[r:-,Q\R5.;QYWĆj%%_P+J%y-lUfL0'p$3P_WxC{_笹0>;zq_:c~ϼ5KC\\L NF-+j>fZW} C0"hPIL`"%VVkE`_ OzШV{ґt +EX⿂'CȢR g_չM7B"it Tj<ԯyX6xZ0 NsC%h)ebl$vD?רK_omotf(J-u._80a~oS I meY@#Q*]12Ó*?K)-'p8X*R*N5[ XG`m2`ZxQ^?W./qo𴡚 C()0Ҩ Ck1Hfrt R4GbYԕc H7Z*û5U R wGf,+D[% fc_>9z$w<㫜F`0 Bm<++%lu z! Eו*g4 '`30`0XLlm߶@hQY fڭ<Ge BD#p᠁rNe;$ y ?7`tNAq%P_kuk,x:U [t1g?ңcpor{8wB'Ri JR 6N]ңgd6[oVQזť)/L8/هӍ!fיoڜj[$>-r'(<6o;9DtpyE:ؠPn[ HuB$xqtHBĝApp uMIO56(ļd)ҹ,%IM21Bh:Izy`.:^^pnd,mzla LZT("kҠIކ0:Y}Td|ڿͷ_kGVβv+AFwma_ Af^`ehX`چT: V+X<5xY$Ȩef` # _c)7d2x7I IPT"I`{_ʃ``@ 2&C̳{y-,@1"JEm ZqE@ WP}F0Ip.c˥MͲeRYeBݡ0A($DGz|-Rc煆qgR(LJ s/Lk0 Pb0h~CaY6HP=\D^c.r3nB4,b14;{d@YV(`EEP5yxxrl,К ,҂[m"R;_Z)bA", )A6_zNޑWŅleI !"ۖIE#!(ם]wSYKō|_Mzgn="sia@T "0+% TIeA %c;ĩĿWf։.T0Lxo5yo'@K $ȹVओPQ1ҭiRY!Ey4PyHϡu4mK5טk rw dBwe)-ޱa~ ŕh)x.L#6/bTq>|2ۋ|C{>/S/zO r<]rDHb W\}lW̥(-95)C6R;>S(Fs9NP.g~N?Jv]9Gf6F;|wmm Eđ=3ztC6@2+;?5(cK1 z"DiyoKߠAH$ ce#M eG尶"F4ǞcB3xjz9l+3aH٥eŎAK2"tdo-6dga <[0bR$TizGdq8.k[ 9Y(}PTQMѐ{] oL9Ljfag7}jĶ{~9nQw*.D!?lj_ K3lBԽq^-<^}LMls\Ƞ>d%J+ƭq~ HBT`2 ,gIo;)v?b' l/O e?ai~A9;譜R9&[V];٠6KC{eBG(-uq}O057!C|_x{AIuT18I~ w`шa-0\xwn dX\oN93;QJ0Ul%[>n}ȥ6׳^#GȴCn3$Da&i62c3Xى7a# dƱ$Dt,5z͛M̀\vX߃mAnbSIcTԶ$wfX6DxJ_zƓX:J=:VzDyTF;p<-Yse=6߇!٣7 0E؅ee~"p0h0I|_ni7 E&\hҬE2 mq+%Mab/"!:PBu8bQ,[ms7 -! xjGPHCv)X$P1$cx|ejcxƿZd;9_B,h_Nr15 Q5ZH3e a_NcV7tȎ Dž/S)o/ ˗'cC Ǻ~N}\&AQ {\.Q72Om Rh]{WKBt#3Sbk ?O6wEj\j[Drx0@80.R&x[8Nׇ/TlDw.{gMYxJc%7.X2j5|n#Rb0LK[E/% v[^.UE۳mF)вJUC`M`x ײNX+1f=ioec~]唦}i9rpMj&|IGLYE֊.ͮuT,M*אRBEĹ%EƩ3 귬:ۙ9fp8)8 p^Vv^Hř K_MGgVk@ڸ Z$m?`9B(A}ݙZb9& +B`0aYa@XU%umb7|cXəb@$ ] p~/q\d;8Y٣>WA7v!6W|DpNV}ѧ({>za`T]Ļ񛀊ibw3E=;~Wk"I]ܸmU 8/lX^ bMktEo=Fѹkee8~pgS/d)LRʢ^=72PTK(m֨Z7ё:N6ty@z,If!D VP@QY!,]Mu)+Ej0<;*)GO1Ǔ}d46""HƞvFͷz ÚF}ɪ2iC[" uV4 CnD ۑ͑ p</^j թ"gL@isPdR",DT|SB 'j!]Nfa<zEdͅV%1 eM(iT&Е6iA|ĽUq S73Y iy~5o,_l2̤wΙ{糚rʿս-$cQAmfʈLmCB!Og`8by3muUa!%`9cTqNZ|~)˖w,0K`js1YK15 @CÓDȄ|wTP5]\/,YK>M42ff. &yXTڵ60H3"<(B@fy8&-DCSEEآPQ$ּ4 j ʇf=6/knJͰF^e<:@ZFgq G4H _v@j lXԤXQ FXUX$ F$xQ3#`DsSJ@ES;tG(nٶnʵ.wvr4 %-E*Aw=X \!TĔ rV+)8%z VqFIH / T4P_1Qu" urW4`?4 ҽ-II^5OI +6uj@Y(%H< X٢$4ϸv@E+w2B8"D*Ec\½4*Cf`mLٱF(1m4uǠPLGN7(>~t)Xhq<$OӪbCcuW:cNͦˌ .(u4m,s}@vt$6 FQA@P< 0Mc"huQvk M]u!-Ymf0r٨~ΔGaͩ)G|sVΪ`غTRc`(Si$^+E3(2(=Nډ OQ =Ͼ'# MgI@z$QHbkF @ OzpI~ajBtp ^0l wt8X Q1 $j2꟒fFN;>޿bM]@GcEz]g6H^!EZCݥ4PD64ux$J=ӌmJ;~[J8F4IvQ­fPr9]`y*anE}CPV~B~P.<#YH6f0rC @)!ēd]:b=p`P˞lb  DFD` 7=p8VDthRȰXPYdžMBt")r=-V& t4\EH:*}BŢgxNOqlc4dNeBjg5|TE"DNĄmʄLR, ]+z×9yCmX5HA|_\M,XS H&dB6m X2<+zZ'ZrӱHTε]M%&P`-,UXCqOC_s#}-$heNI!J6ʹvl/ִj:2]Mb1VBKƴܡ<Mئ9{3@O ْ]X(I Ƹ<ŜΤWpȪZG "[jIv !oSOE0݅"+:!O\aKjl5J=K"&U݈o&o,ޕpvhsd]'lJѸ0BqӶ> - `)",DFC7ۤ"IŁdlY 2r62II`=P|7LYPc 1n[ڳEZN¢D!f$fr/BVk4Lw?Y;2{X1:aX B,Cܰ+oלfcٴV$ .M;=p5Z TL~^ZFJHC\ÂBW>u2MLuF:0S.qr!]y76IT24m!3)(Ӡ@a\?Ekן,!~ kkG^zMn<$ ieCZ/njZSKJϪM8R! R=Wʗ +(S`L~Ǜa)R(4*z8A+Ӷ(#zf\*r IfG+TX.xB8$54ByQyzXL~ 5ܳʃxX&nXD^*Qoh5ƪ&9Ȃ#A{Lb⪖.*:i(WX_ㆳr; Wۨq5ɬքf}{+,eZbu } =KC-֤/>֜v}ۢ=ŮJ/_j.p٪Q^ pʑp"/[H6:%#C0D*ƅn`g|7֫cll & zƆӧi;ikk1HyY0T?|XUI"R|1d+-_`܊CqD`HvkCXAוC^v)g86bW_QobQut嘒 'KJ35W0XgZ1[fӗãb՗zl3݅qUovə:@ߐ;2~5eTX |9S >{Ts(|OX緽(doXӓAD\P۹!緢'93l],SD*[αw&,̈́NݱeG֮ti3HƱ6K؏rRڇC-*Jb@4+a|ϤwIW[Ms:71XWE?&(|Vw-Ouv/ue}[1GڋfԤP$d%0̮r*m7RóKGnfh 2M.tp\I [/X =f­ M%cl|:b:Q2ReJeP/kOvx!MS,nC֡"+vs/jyge06NRY"!}3cfE0KZu , FBH?rJ`G+Nl˾6ܛU<B6\b>9 {ʤ&hH( zUX]Dg|d6mc !$zK usPl2;3'櫊l$daFc}r4=3W' Ej@sb7P/.b9& 6h)C^ zkglń=lTڔ,1 ]f1-.Ԩ_t"Y f22Е**)5#0eo//֯Xf%& Xf%$2؈CsUvwZ-iE$VE$wV"w 9[&ٺ&׀ B@?lB4}q7:ac!b`ymb(DłLHdTXrv2n-ڢ}JdQhZ $H" QyQēھfsj.6NO9 @٥zXmlj9*J*Y *XDU M O2XǡȌ{>RlQ$7˖I]Ɍ JXX~ ' pi~BiV('F;y ``ƃinj,#FR5'ÿx%kjli1.wTI_0 ddeϟe *_F(s:`$T }]^ht8=7wF Vt((1CRh0XDfi;gi>STztLh"u!29 U pCyfQ~A5ĿDŽ-*FPYCeMWg9xe2Ueql?7zH@F960-qz 1FНԘX ц `c oQ[4t@T*Y&it}Npg՞x+lC\N PxJEo{0&Lx6бu.|.UYZ;LnI ĉI z4o֘b2{F]l0XOʖ0gu& á~ՓLK30NQAIhl 5eR/^~G3|n ݾ#Q}$װ񵫩.E+ IfMs .bj6lIJ$e*4=CBȞ5DM4̃ d%ᩭf$*e`'#k:aq ~h2ƣFnn~uM?5Uo,u0j #D7 wqФZLڀ6!o턙p}jΓxE٫5űʤ@3R]K|KO*>MoќMZ{PF#6o~ۤRx~N[GT N.'PR>FiE'UCjѡ}R -Fl)­BOzineskKscm Q:  %gY@^F{ٲ,jGJeX#yƝ7A4]1Eb3 Z2@C-BX?\>"]rnpCJ'JB}!Jdтl@}0U^O.KgΠ8^8YI}UsYEVpZ0W?U!(dSRAfbH%v"3zJj`08:k$l22s!0kJix266^[~Cs?66 zwo~D((RPB`mtWdoE+>ί,xj}|r e2&O4&9G *ѓ M8]KlPV^L[ 0`uiZz1f Rǭc}SB{ɾ%}Q7Y\wy@֮#[G5e !d.L{>VrB{&̆+}>wjw.cBl !9*9ΓMOFjGJ{Sר/s n\_C%06Lv$r<9.ӎB{=69a%Dd|zx؃_!29H) :$c(PpVL/&飵 4 fEeo)Y)\c^bUd!j&Msӓ FHْ*Vͷ/Z'Aa:x!%2^aգl<Ǒ_%a]`"$|Pb O28A )rPU_ 0d {+#AoL0\qOz1Gb]t~ 'S-`M\{փcZVquˡA8 5Q?濡#Os YuWeq كrGBDΓ,vpyz5X/FD!*#mj6`}$:Uwrs&ã]ب7 ;i˲O[ g`o #m!N(?09IY>6oA7.Ɠ=ݤ놱"1GY"aop~D/=, YB)ګԄHtcLoN%c9?zt-bDe}St:` ETP{C")LBRMaŰ$Tè]J0~Bj= Cg\3f1–BGSlX EjE(jA`WQiŔ;Y톫axYsq$U`*c67"3@%a]i3.^ m,j$ciJ< ޲,&&꽢餋LܓI g{FΗ',Dk}|d(t߽};zjHv8[lhxMa{Bdئ9?w3q^TEԷi|5|{(#vˍ)`(ʣeqD!psFk2b9ʔRXh2Ek1Diי2҆ل-”m,*E: %Rc-hJbc2a3|*qj NdImzmf"{"^5sc`hXgK"8%d sb"nɳ79`&y&}KwĨjLú]Hdp̓Dw3ifj&م&;aVml̛f9 Քՙ#4&I&oT6ؐxhۍkƋ"0opݡ[vk4b_kLE=!Bq$J-JPX2^ѓZzvQ?<0W<&k^CEvdHdM~Y1]R|Ɛ6!XB$AʰkįZC_bkF,6ߟQj3P% FŎMY"22ͥH~ep)+9Pe˔౻Z dAGCY \LTi#dYrF;kCOME* %-T ?d1"2@TXB11:bR@?N̛i@EH$8m)&ĢIcyq c/`k9zfOV0hF$L>zV8G ҦYZew2;P݀Ƶ'.HIm /s}yH XփfLcg\21a77NpޯE5z+?AzjDtdX*3eMWԣ-iI u 8B@e%Idb .2Ұ߽`ZkV5Vl/YJ4*JWBMg<7Pk9w{)9xwzvy0Caw75Od:; ލY@F`ĠoTnTj3P u cyQ!nXQ"fξHH2HHz_k#βsH:ZP5,w^`짇'Lj#3D(3L Qrn3hM>:Y ꤞzvr!|GF=Q񌇫d3,1`Bؑ^eaaM3 3IfؕUbyLö}yzP;min\GmUFY˙i,ԡbd N ˽\Yykf1 MA>K`Z9L7-#Q Ad#Oi\ےBrD@2]H*Ё.i(bJ7Bl\-kiz]; m5'Yā<7xP?ߗ` &Mv7[BVo0,ZgDY͂'' 핷\i;< p&79 I(ZDc1.X PH[&DDH<`+ֳb TJNR"dPVAfLJQd$R}.ف<6%IX}~`1OM!qsg0Jp.+(ulft:͍XV>zI IsGRH8yoVxR% hqj&fH=IހT ]H˽d$r.s:]@9KlZ _rq 01^ɣiPV2݋b-] Ҙ9FԸe,hZWfJKxxI3Wq:mOa;Y!i*3_EzCE?z˶ lIVeS|q T;[crXg_Lsxb;)k9qtp)l61=Ƞ|" 9/u:FM6'@,|L6/5.7{[ic%UU;]ԇ=:!4Yd=b*/0&>Pd!W| k#%A&z0f }I)beN݆߿7Gn>lV2ݢ& :!-"e({=N$#qKar3:EDjψm:s0/piN.+>1<{OTjC=H(f;eQHWJ+ _.C`ҧTǠU _GsAyDk6`ӏ~<<>tcÇv%V(1 #b( h6lyY;k^Y%5ޕA%zJb3=#[_አT*@sfo n4Ce>h&PWLUף4lOvZ8z&;^ԛFIRh,w2tSH8RS0K6l*r(6dc\`+p0,Cd&Oa ͥ ̘?u4FQYw eP؆w# XBLlL;mߎ7զekTȨ<͹+PYƳOLĝ9ۅ)Hs\icЅkMC]7-x͎7Cf bLNjuܢAeT87\hgo)'ijtGGۻMS<Ͱa߰ކuwh=@(,ꈗP-=u9DZmK!)#΁cQXE% qW٘M`NAh#2*"M^aF7 aTC]"܁4DJDH1kwXޏ" "ji{ i#xxizUh yI H&#UmWM̬Ypi:?Hy j##]\7bS +2W"FK-ƀer"WM:=[fFp@y >~1Qw#dgwwsGc(DP0Jh+ G'1Ag"uF.E5]s^m"chs^ocK)f (bH0>ҕv!9%Tz7A8_ltҢC?{c7eNH/Jc?l0s,sixAc xF <vo`ˤ %veV!r 6N)EUw-&l6Yl|#'.kU^挵|{FmT,"{9盅>z.!X|`I2 Z?ʹbף%ǛlV>,G5J#@3 ۏA"ai6!3C?R$5CدGm [HQbbþ_U35lloRe ęDnD.G[J&y(6#7V~ ~ lĒ0FvIdM S}7ѥS6meYKqzmО6vڂ!oёr$*XoZ{upHԇ"" P(dL0Six0jn5 n2me,=>abX EF(ȃK`m!;]fT Q(P\Dʼn)TϤ,1 ȐQ߿LHuy}Ȍ#ifyA5@݁&t%,Ct7#$[oP)SL`KT|D@㔯rI5 ͝D;nC{ 9t^<٩0zȳøzlNc>34M90DHr@3ҮSw~K%mMfVbh"t6NqɽqY}lBCdL{&G5z{>z&v3uOi.UX9M5oI2A3f{H$:R$~<_.WS0},,op=cj ͌̆o!pUIZ̐LU_ޟ }F [/dok2ͪv͟it2 1/Ϳ {j`h*2@8%pcթ/"ijU|4=lt c=5}Dσ~@V0\m%(G\K`ghHce5Gha"h||.iEd3I(@at{gR_zk_sqYk#'z"X;j 4Z Cx 9dVz?^dN IgH oQbK:4[8=\m8 B}& sBڍޅAlLHMyQ-氿%Ax2xfw cG؋Kt%$t0[- pCObg(3H1=Hc\'$DL0[q?ny-üuRrI<_HܝZi•Uz^ {24 2b $wio;gV2/71 nGfSk|Bc3xzg:1Po^v_җ+"ZMI'./.֑'Afsbr72![2_dp\Bm_SLQ=!M!P-z*_XʻCnL@;,=;FjP3kȹW|6A8Y8ݵb]R#&VBk+M͂kuRɂjDėl_9S =DWq9V|o%wz2?~5IYZ)GUmxSL. T;1AUP@Սͳes% 6/}0_!rtBӖ*<;0sUm85p[44#cYc'?٪Y&KFYzKI@|]Gfg䝲c(֧˭Od& Q8'') R0BHFo$ G.`Wؗ]QOȡ^V7)%((Xt !nVJԪRvgqfDU$i!dwSUYZ/$`jW w NɐCv!րgķpN)SazMM;3ivbTDF,B޺XXƲɀ%4*)Za1 Xh-A8MƤKe<3its+i.Viko̐aH //$-κ0k)YR"]/ + @ _%_PK 6,%gpl®+f3" L`XKQ0 %ËoEH:UUB}F@d P([ȩ a$I!ծ]~\fr'q΢(, &eSxV[1+<0ֺWbgpx:DLMX$KJ#" ޵B?BIM&uZ}/?Kjቍ3N22PT@20B{.DFksr"%(u2VHDD=D,;JP41wp]b\@-H[ N囊Mc+_1}0P-{@m",.#㷻?hD ~KZ-~&x|71y5d,D T%^"I$:g?l"1-V4Q`ӕ@K;2ChG{AU8JEbX#p[" +;`׺ gtP/&M 9 d/cVQiHi+"ZBK)y9 4r%4GdH!c:]T? h8x@.Anb tH^@3&bVDe)hFp4uyq_L,.%w<ưHW~@Ȗ,-S{=/?Z-ޙ-q!99 ɐ]Um86 H%q 2iSnI׳v&]< $v6 6>/[Qksu%" (9†Ye\!ORH`Ճ% %fqěP/W0{\K$NA0&NyӃXeI&2,P)QYO<,H{E%]{7_0=O3cA'`,61Xi2!1* b~Y (` ou峤7'1lz$("S W6y n EmH+@|b3G& 6~9MyoЃ(>eS`6/ljXb28|dϴ{_%Ӕgd_l%8Myy du;@Ex]3RKR2+~h> 0Ep!ɩKz@ yiXsd(Fuu 0ΰ^otbH_aùaI\Ko ab>g7{^a4Œm,)|5~rJ 7=ūre+iR.c1h 3 Yf]d+!T$9$=XD J(6ȝC5A $Brp*xbOCXT0h3ٸ.%놋fdwN]H1Adr=ɬѪa]fDFa]ֵ-R^[3 K dDC)t *d; "zeƔC5+կ4c'&z+j. j=kY2)W #w`l7agTuӳĤ&06` *j*HqyaͰ Q+Ui9+(h4y.\$)<\:(DpoI65 dڡfgI]DiqA"kv &${-+e<[f D5͐a-X6ywѬ(ҴSsWN;f̉IY3\cR1YiH%-,\^I7A͆$sHu7T!NZkeF \MY,PMgK37P$M:aD+OF ,@(m5ڡX)ِ'<{,*rfZk BnZYC9FNd$Hp <֘o9CFlp2#"HWqȚ&S˿ݝqN+mYQb PX3 kBAn5| $R{z;H,"}=8 %qHe!"~?XWA5K V( JVkh>uz: sfOP7 QlIaz~q_$5 hFGd6D8iV30U٪9a6-3Ch!B10wSHڱcH $uWEb D *Z@APf) ԎÕo 1p-*X-9s̃J&F UK4Z، N6iɈKǶ|4@>͈&$ԕZ9z& 0%wguyPwO3J !﹃2Yg{lm3$k)AtL /=) ei0' *=)!Czm L' knAa&몿[;ݞ*u H(E#`1޽D"_ه1\c$0I^ۺ"`O fh`YLK &;m.9'+c@avBcf)&W`MBI4Y-}7_a@n\RAXUF}jŵ(![iiqzgC$̝蔦bv>S&>"uImm (Lrn_Bv xa9 I 9U0YⲒ%@YtHXWЧ[Z6n# [Sas#!Kym !_ (c!2eb4)t =_= |0)di`6FD!z1R$?a "BtմtNїd$, T㤝p?*thOӺ1#a`aV7q<(AӓU(i&QVS2x 5PD<"Jsd3Tp ]j! b!N=w'c#4T&lҙ5[޲pABb`L^vv!fdUb$gB(ؓ1+ hK$8 Io.7}L].8Y-k65JQLzut!mkzPRYcCGtU`UjʌJ fLX3*T "*ZA b=YaiFlN5xÇ:U$Lj3Y!.kj )ywNFB%X E) HbXHy'4b.|QX O\'pXSg+3vIQ,(D]$b ԩc K (@X9Qda u^e9!'LWY an9*C0uVfBYo"nmjdco@cӼBdi$I4 $lIabIPM@y:bLtzH"N'ҝ_c}*H4k Z3CԒAo w6uwu!eOv#}E*V"EDOzdCCEHaR lqaD5Ҥ9OVr!hHt9B7VƔQ8 )L X{ݡ"= 8Qӆr3a6+]0( "q`[lKXa"L15vjOٓrh?tkc fHa%+ad)cN~%׫6 J@ +#<eBVrhJ. *]uBLgZVIbमg,=Y /)]:r X)Y$xz$6!c߼:i85MqM||ia1chRĒ=$ 3mt64[͞+X* N=AaNXAЬJfHV-ƒAJnd=[gli:PYD^RUl\Tg ban8/_q1}%OYQ袢A-ŊUmkOC1;dDe`qH׳X:KFz?$gLl9ASmO=4{͂ Z`DV,[Lֳ`V!> ɣF@9!ls4O"d^`.%Cɢfk6z|:'|X6Im $/yg #=m}G\ k#Hs Fʮ;apo4?~0;ko*2-%D=w')Xf+mQVPФc P|4gd OqF6n#k,<[_hLìfrR&3SLɄfHBꙶ3) N䲉_b)sX>t_ljbSW}n9دqQ7'Wp Ja&k"'EU?c恩&4GV_?hVV`Ҥ*U VKROx̠j3r_Ve,6 H}\6ta`0P5" DsrXn ib=OSֱԘI< 5 | ZoM*+GR%i=ߖ7pO]?б*'nYq#G|r8ycD]]%UVʛqqh-dޛJ5U5`Sn7qt A?/8dKBR@D~]*Ԑ~qeaӨ&$ja!?`RRk:4oۅgEv?9qa/0zIJ 䎣'?_H c!\/؂>AOY8C .3WMG^H$D1~ߑ/[!jiyb} @FogBhN=RwH jTٶ)Qi*y2_O0aGF,L)A\dTb!o('JQ5O#6fcS&۶VJNIJkҹ*,(QTI"lb{]0>T4fgL):-HC2C!f^ 4sbIm;h Lĥ.ݒLwl3E'39-NG96tPX!qfdQEFI4; &M2,diam*QRKJ !DA$f(w\c%ILb*6Ɓ錳MsUJZH4ŻQ? Uo 6/J=X I҉yGڏ?|>y4 6nՍ J;8yh)ܩȶ`ldo1XLxF'}kR+@fyG$$ HAHoU36YTִ^UX5txBd@qͲ +#lB\[뇧zX&?+'KMr2~ 6ҋQ,ZX=ArYP1}ߐK?i$k EA6Jr]fGIHW+T,iFmOs`֫ 0Y€(5#@c [Jt#"}[ƌ2Qh(%Mu`9k  FMļpQ;X)-1-cKXz1lNHC|0TDch'X6B7 Xxjɽ0 u7=O3 !jje h^{%%0ش`_}d BL~h|iŤ 6&"\"ėgPltGWW?'bG"$ xvRf : AIi@;y/p=!;B~4*SN2Q ΩrX5'ޔj~?Sr '-U1"gbKVSVqY8!)RW|dֵ0>8MW OEx+˓(E?w)kO?c0>,&DTxQ|ik~&-}I_ &gά˸}>)#Du o\>H$=w[ikK!Oδ.&[htgBb0iml>wȲs7M(ޤXL1HR)6e*_eg״¡Џ N,Qw*䪶 w{"N[G 37ҶscD#)9ګU;N寤E#BErY0i@x?yq~۫(/`^ b mQ?eQ-AV}TS±_=*1C譊zC'ɂ1iQ^)mBb*(,?N'?' *|ʢ-;vgn(,&϶iLQV?!à (Jz,~Og̥;t'jTi۶|M'r(NFdFԯ"KbXJ0 ޚ jލrޝQ|C,;:Nms~~pY1'?A|&Zo}8 }M|&OeۣK,&f.N'L `MKM2ά,+]̤`ZLnQ͈4׸ MC(^ j߇&[i* +f0-Q8PR5 Vdaݓ/ݝ)7I Кd$2L@1eZ6)"K{E9kwpj싮v.ԯ@E1A3EYF&=4!!a#}0{1kV R-wjJn-ve6la?!98$QQwŽTM+0;g퇨l݊!dk(.m|zݯzۗ>!RC<ck Ж~S J QypMٛ4p72a{VjPIDJt }_U(w 3eFڋlsqR̪J[. " A5%z=% e4=[9e!{Lm(D-^#~Ze.[nla`8m}ʫDEiI)gz9/Oô&40-ٌv2T(z/n(@)ҥ˘YG7 ѿ]Ef ڵyI\ eP  k]8 ;7)؁pqM|^Rf5EgN`(Bj<7 X P12EAgkoouo&;{"f"?&zSL"jhA*(wUQ$EfZ Rn&ԑbElOBr-Gڍd zC($ɝۥf4FKu4F*JH"  d)F0G|3.ďn*.6۪H aJdIDgŦLnOim%եK;Y-AHbҲu涕MoOJJK@7'$0û6 `HTPwLDTlogevek3\ָzI(x9&HA` M Ug>~d8SAh0/uuAd(,Y#`,Y>|C`7²|V$Ls'O2) L$̉VLl:-K!a;L'iQ"ͦZQUF,3PՋX6UOB }XOR0W_< TQ4;XV('[ر`1Gnʪ`?婍#ag5[9MģQr!,o5N5-@v6Uk㶙6@"Bw΍Q(&qiLud2h >]GbMJ!-^> e h":5x5=U`.BO@ܶG#VCrOh4e '??@L2|tX  6,>;SU{hCƏaOf*NTvJ19pgx)Ak&b8seQnpioP e" *'y | j$-A(Ǖ59f;XOد%K(xGȅ=DS7q]=;5>@kl1]*lCayPɊض{}v^eDMj܍/2lNoIvX0+d~OJo6;,b ɗ?E1W9(@O,^xǎvOc#!B'3BXU bӿBӚ*kp:dWCJ`\/wRxMbxƨse$PdBBv?^kp$]m*bEPccbqMH DkЊݥ c*, =<+F!Cӏlvmpa0i(F؝栤VOcQ@(_?JvS"8۴37zsq~BljX"&*%1U*J* -*e-l[bmDRDD`!|&iPF!h1&11-3,jc o֚~o?iOW: w{&\~̚.=daٖ[5^>)vwzى18Lw%L0P@e'4e#! .͐mb6Q>'~9)o3S'ՑxA= .WR.kZ00`faQK!sT.W {^%Pdyb7A$c%߿|ҋLl̤GⶏR!da`"}sL ^|s|Uord@PO?'`7U2-szWrt{u y>Jj"D@_GW;~r}[4A Ǵpa$Kڇ҈6$49]ĬB4^2ɈZ00<0c0Y,͵ֶf[;نY}K;t\z#eX#n{fkS6jEouJR`6"pnD_Ibw|D+<2~pVuc++E&n7 tgK*6=S rխ@xLUoLm]~AcRLΖw;]$_*VJ+W_v| fbzRP{5mP(Uj rzAxnmޠtIU{D!CЕ@W}1/TfH9D' vuIm*AObq_&MRZ>foƏە+J][Ьۈhh\:ɾ8$(V8 +>]y Dz7[28jqN'r| 8i͙hbFLfHMll$]Z2J~r:_W?$S|}@h/iܙe߈nL4L;dM&[rw]ďW-/Ee4j@7H53FGוΆ?)>sq3m#'cKt猏}̖'+ :eV>jfJ\a&𝋲zt[ 7I V@YCIC C.`H]63p?8I [:,@:e""{Xkx[^9^og~ap bjvPG'3_[Uv fƁ"rr, mTz;NUg2< 0;A$c$=)p!A!:_Sf:=mM4IJɾ*/?ݟo}J;x'r/S"{K:2-/K4yx*2ngkBU 3! KQR:3 s0h- ,殕Fa/[}>͂+դW8eVk,7Z۳F |תQBHM hF׹5xcwwRpMk}&VX2ݴ61(Z JPygq&{>6&~amBVԴ4BDo&[0m! `j_H1Y }F֌ply)&C"N)A/;ߑvsX7 k<;7l7tw Sd?IjXMx6|`ݰ14F!(VMpZ+'6+cT4$Mmř9 ـ/ a逇0fQAB@ VAa"h]U'0D&u)r HX0`/) ޽ ]hT)+lwЕf5{{+Jj,JPu\~]dVY)ԑ^( XtBLHwx<|l*?oFΐvHXsXTqU!xQaf$d0I@!9HdX==+K$aTLCGըRm96[J1԰Fmlk8v#4؀WiYQMhjTMrP 6.d\0 5Sl(m4B֑EjRfh͗jTenVb&L#F2p31`mdd8Mp]`ld1f˕0TۢzF~Rf@XGNy)LEz%B TB0`M~ y Zj!*l>@{&qO'rxNxghLKh 欄7)< 4I;ęݴ{fz/> 8GqI$"#:^ $#F^x `*mʊ>ښ`T$߃;oz;9߹P X^g|xd={i=ԦJ:Xsd EO|%ys†n0@ D`ZCq)^ Lȋ &I;Bc@RdภƃSS&UHWd5qm*tdjUN[SBMήDI5;,VVHc IГ`F2(zY"$n5QBUƠiXr䂌 &*hH<ĕn/0i;߅J3eANX*AA@(DV< QdDa)%P"eBE",AP"(1Ȁ( C!b 0`, (H$HH$PFAR(,mEEI!i0?sgCWe'^vY*"БRG)#$p[j?gOxΤk%nC2Ƅ m \v`TSг0kwb[=slaz$ءιQU VT Y>ٛ7sT+5h 1!c7?;!H yhJj b}!k1 ĄR}UADEB* "*'kH ņU0PF͐PP"ݯh߸3MɂgkrL.0l[Fh6ӝe,dƀ^x:j ~F0*\:WyHd&EJc嚔@61PJI[eĀ.!E4W/޸p_m58{/->q{.RJ( 軛A(ia$pA0}尨(;T3hʒN8$4@9% N/fm&?{{g!]-4~l? y@eR~oVF,]V-BaP(Ya9ٝ) oMHwalthնm95  's&{-3\e;o@+B% miv66,}B&S\@E>:HT(s 3"~ߑ=+L8Ff_G:6z]o?nˊhJ*66b<* StX.Db(8֖tV6$kO@,T.s.K" _ӭ gl܋otT2Ffwk!s) єZFU`;ps2fmD]gZmÛ \uw;@FX{j󄖓8V -Ԙ= خ""tG&Hb'ߋ"yRi4U-Z^~'`|1VIHA4G1*#2aew_ kKVO"<F_f(B[cNJxf;h[+ JA`on}vҪo\Ƒ-%|~j=%k*(ugf0*Pv.>I8ۀ.u5Bŀ"N_P#R\iBQ%/!9buc538]5"hfS2,3OsA-'zHpn QBVdļ$xƆpbim 3W6 ǝjY|7YvAZOy3c7@@xJG4"o~qluG0VpCQ0U~A{3 !;;` Lʬʭ~ɳ`v%yYo<63~ʍOW~¦}Xrܾ}(A@ pd/Uq@*'ȣz}/OҏdpT051$mGxΎ,=V ~:e@vT_OLq`c9б[;|}i?cD| !F btx2U$k^ (dGދMTERaZz+|Z4VmAaҾxp䍝c X$%t3ARfs69ܘ~-ћ-LAO] noiNmmkiFt7&XbcmNs7}^W+;/mS}Za{&^*nj 2Oǥ@{5:@{A.k,h%]n˺ K[Wi*"G%nOWZ瑯W &5bO_ ac,B]JQ ȁwwxsU2}gx6x2qNdYI4~1h0D>רA'Z#^P{@t=>TR(1X;X>h RH.P)-oH5"|?AI3-7ZtۆՠO9ea\6 q\=>6"VTβ})ZBPx]ޣaws]P,3{2!O;>~|eg8M) @ژԸt{c_WhdRikih&DKt;~Mݙ = z:gnUswʨVIcO] +/ny@m(!wyϹ⦔a㽿:6p*kˀeE"/XXAGykͨ 4ӼEn8Kܳ10S66cGE#b(7K&%]lN$#8|۔eekV&:2&p{ $p@RȮ6CT trm,oRXUG+",}v/L#X>@B ge*/n_wk3]7hYc#G@141d!OD Oꆩ_u6d.GZ[rjV@[ЈLlVsI:.-ޘ"FO;ҶePb0D`.#_$ [Dfk} 1>}hG=Eg|F@Q3!(O[V^_e0 mmK_WYB3g/kΩX'H2E`2X(,@R R đM0BPS 2z`q.lv̄bTEs@Pօwlme, Fo CCg#O\If#!̋?B NP'XSFl(p1o^ydK/LuPR 4"x xXhhVh2dP xxNDy8.zrŔ%AHLS~ωBwۦEḄ =Q~n]#aBϵ{!ʉqk-/X4:_/o7QzS`rݶJ]Pٓ(23 Zp|ʊ#"B0k uJuX,OhT`/R"Ђ ? A'Xz?وf,s9kp)mK*dD#D@M 5>KSkCwSѧ=rȏ0rPQF^h]`4J\ Zgr]YEkgHhHr2! Mj}i0|81%.)M&^ |Dn+B%+ܱ؇ڽOx++à2poFk۽(I=@ by(]sP 2/\hÀuXd7QM)£D[&[`>Py0~ƑͿFQo?p ihd}B =<{mDz\*/|$}iw_.cƎpmJ4/oxvN'9fOxC/*w;"~?<ŋvk:K<˙(l5g| a4IQ"˸Ű}.bm>p,NUmViÕ!Fghׁ\ kk "p$u _/Z#{G_?>:!Xv9䐓~K՘I\M+Yߡ@g*}ZFMkL3T<5HaN`Jqk`Lr?W䛩3%.`d+]M̍O+̑jy6~ߔLAlƉj?BtfA_ۥ}kا$[6N=WQ)Mt[ 7>) &-AeW:.SoMiM(̎&);(e 4(*5+K`j35BDs}zȿOWd KfiÓasџ.+GY^j`$%0ƃ JŮ*gfituCG}@* nʌL7rXX?A32!o/ DX΁ǡk7njc9LHRJ X ]e=Ծ$|^(q6|+@I[(5 2X#hf x-fwwzj86\/Ry9XRMYհ4$ dI&? 7KOr baJ1N;+] o>ۿg43H r=^2qA>? 5byttҵtkM+7Ih /Yu-hְ=bsȨCkL ],,Z[\*9eSeТˉ|/~wjSieC/ r5Y4H|X!Vz?Kђp8N$a YXE?$mp-؅Fkkneנ\Zm/_ L ⦄ U0y^0D*,"ɼ~Ё,䟟 ?&I2!И`(i6SfN]w#.M 1Ѳ#, u=H}gp1HP@ h.-4,Ce1 ķЌκ;ꄡ@63ݺ,FI4βw_ ū5g?#Ks:=lsEqF%VD(eO E*1~I׿B1@?hH6e;p>4tiɘ'!(:I,$g)"b DrM;-nq 78LQdryXtqIXp򚦸7JhQ(Mlmu,Y\nr}ޜcNn//ewCm2NfX1XI,ՅfZkEa*U#ҪFn,2үN壖!R\tkGl-8֌ jL:PRTOB30K&]9ϑ1kiVE7.4qN'aօd!93іz q$=ݱB@'gk" e*C]5v~>7MY:"+ڒPD|CwO_?Ehh!A`gс"̟BmAR޿0'Á VWL`:˵Y䆌ͻtTD¶5yٛmMbt8s (4mdDDb(t  y_|{ޖa6MVUA({v>S ,T>SCn;.L 4vdz3C>D(>VC,*fQ @kʋXD'I4V ,u 4+jas"&x4^M؊ȬȰ7` e. 5g; @O& |`Q_Ph% BʺEzB0PqP. C/!=I20-a!lVGф4vyyL4ܚM9.v-=F'Շpv6vLi&/?mkűyq̩¶?@o IZPcc jPИ4T14Xm1Z°L)8z i6g{G#)I>= uqr)aEʀP70 WIsBC&ĶR%]W/_vy:x>4̫{N0'١ɝԀcOdv~7$9 &H DGBL OOTk&ǒMuLp`bVإTթG lk4M퐂4%ȕTH R@:`w`-d:XHT!?a`Aa?ènal2 gpAs[ '#Y;q ashri MZ &5힇cOC:Mo8nǮ.#; x5vr*/ϛ򿯻̭m5CQD|,J $@ `"W}8 PW_7_/}Wk>ཤOaXZOPbER N?_O ;Y>*TRW?SL'ڳ;I! 4Y#*bNgٞQ{誓(O-ڡu)['Q|98r;+SmO@Gm+dp(B@1\t1] XLcФ$|̬<T@V,za0\#= 4L (RÉC&"Zkt+g*/&[d\|?,PzcA yg#/>[CWM yJ f\F;. nO[*mؒiT."b~svYcmڄsDdfc# խ *Ed_w>+3BM1[d/Mаh<ˡY` LCi4vfWA9#,6전m{`#ymI+p!7RJH-R募n?<)J$Ig //CcWHFwnoDulX.AUPVPtdѩ]̘vo, =@ Sĥ]-x`>ϐ4>5}e4i&,v~3{~/tR-&wt嶗]vcFA2Rɧ.gbt"X%m`]lPܗ[4%5WZ *d BقJuYjYjp h0P¡,)XbkQI0tV{6WdBf[cdefׇzB,2 8s+nʚ7H͡=nqG=qg+`*) p&Q t /ט}cec֫@-p bi[>Oລ+&I.]>as }܃@դ/q5l|si|4GJҝhcݽ{8}~>OyngI=&$\¸҆CDZ 4 70_fd2w}םTK=W,P_@q8J f-WebWZ'X$a"ߙ$beo(ҟezD!$H,F\}qƊxМGr!6H|ZSCa8JGER{x @c^q*BE(NEb`4^'p|h͋Q@7tuFa}ϭEbWzeryPkKun~g˃$7-Q.Kh%ԞS-#sȩrs|[5Uu6+WF)T`7|ƕ:FiӹF'J`C bgR%+|QQ]+(j6rAc3rEt 'i:nycG\I,=o ~|zjyd6,皈}:S<4ѝ)0hmtN>kȥL|/$d*Ѓݾ6Dmvݙn 7C 0yQB 6A߽"z04.>}F{n{I\E7yMyPxL.' px63Cی[H /Z&FIj\-b4l݃&1Aـљk|$}"iEV%l[CzoWMF'^#'52&1-M99',O+$\0r(̬W3c O%TTJCHr@r>~Z_EQ$4ԟSVJӐ*+T8禄 mhT'G%hV7C.h ~}i u bMjܢL{!:ɒL#B`;6m)eMD 4A-=Ŝ:u~p?׿[<`Pmct0u5 5$fQ˶\[RJ2X*H.e5U6Uy~a6D4z7YÅR%UYN[>{}a{uOcen7hy.;(sDj l BP@&NemS3KD/MQ̠O[I"9t.[QpVTI@;jO.lr}9=pqfZ/w"D\ (ZgsEcƱxnbbq>O䂑svik|tcҦwL~HOa;1^3ϿyBbri8jL^`R氇M>'|"I8_q Cj9B 8Ȏ.OMJApt['/zfXL]!RŏM:pe'+i )=|A5l7ҹ"qp6{xnnj@ߪ@]z`SAEcn_~9, qvHʉ#ڧe H(/ ) ۦIXʟ)@_ 1Pi ,:F%(rX3h9NxͲ n'JTf Xu?R* dy*SS!Q񨸬hs\ҲgG>s=h=f9&qd@P%ɿ[; +~G4+2|f(w:5tA%b%ϧQ豵e|+zXNA4['qkŦumKjc-юhSCF*"2u~?}.a 4r*C?s^ȏ:m?5_ő@bҏdU8YTe% %"7K! 1hC?Wu,'m[Q wI?hToBMŎ6i_У|r߭QO[Wޓ^hmQ`fncZR^.9S]0:|,urbaljp̽vg*>we-!}QμY1W]LE.zEBg9gNN{>rg ڒ mi67Q?&K PqSe'z Lr^4mE~ijt͗is'4 3,U<|k=;l:Ӧsk]_;CD$s\͋-supkZ-yKvrt{wԇzLEy_  ޮ+5ㄶ-`Zb}^MXٻK&ɦ}^Xa Ģ: 2#0Ͷ^3߷zWX͋-:L!R f;;YDF4GTS^3 nz&8\FIi ƮK 2c RbvXݤ u[dӠRѮF7]lѸ"&rsX#3 nnˍuKi*w5,i]dM1meg4*2L19 t٬ &Sakhxɤ*&WWZF7#,y&%@ZֵȊrV-h.`7Rm̥̅Lb&@8a%̡d.\-UoN0RÎLw:!K1hkYJ]`oٶcܷkSP)+˥U<1AkM@UNjά*]6*]ڙ[]BGn 0Ct;fŻk2.A²hGV1kw01 T`N3?`t!9-2V"жD0d2o}OuFb~6<.V5 M҃b0n3_'ښ\:MJ `LKs3.*).?VwgY7r^ʄ~"6n ƒb.u.~U4OFvgڊ>g+%hUfCȜLt{$*av)DB$iT$*Jb2t*#i{E`':O[:'[^r<{d6o}X(c0",G 2i-B]dT1ɣ ~^O Wp}D D4-HjUӂ X&n_|:ܦtXFu~I uVI?> &?C1~C$0d"oAi)5{qヵ!G>'rZ>>oQ~4/A"C ydiAr~7VdQ$@^C8fS<3%*i򠐞1 + #p=W?ړLATS\&/~,7< ÊMjY|z3(@n-v{(H_D7ʮyû m-FL}1.~eY,ff(A62]R^Y,ow [E{R+@vT`*AЗL=`Two)>psqd0P4Rfff㌄[A`xݕMzz;&'%h|Rn9GfSw޸B)N7kϦ=>3e!v5 B_dX5W_ZHBqWse ͇)j~p.1$@x-@>NjI(Z2!!`Hd2B0ETCi'[^~W}YYP}sMs x=-&a59/m˰KtTEw.EOB}ȝ9t )pqs(o}`O(+tl'Xo⹱v <]Y*;/\}=hŖt9(RAG~k Xj ɶXrFe1M=DOBs$HU`$v|. U)|!u\JLR avN*hu `,;!$u7mxu6CfIQ 62P ZA` "ZJ)".X*bq!k)%eHĆ'ka1 ]C`1a %I dAV@`V:,QE9q*nI0q Q5l\5% 1pYuOh@ $+4֜K`'o٘6Ѡx :>c3s怙 dVF"P" o]6kW+Ԡj`I& [, 2JB[1;LǼD*T%. 3*$"DDȠU²[KhXe%`"Ata2LCk1 ȑ_[o)d[]4ARVm09D@ID`N9%dLE+$+ ) yn;PN0ٌ^ ro9 lRN:>öGo|l,R [xZRk^fZ. c$ 2|r2piDp@`l\ՆTN+}$QD@$xB6AhPZE "Ab MO*+<6#-D[BN Hn A_J{u`9(Ho!r4aZrZTi#& |j=`W`A DؖBJ L `i jL`I`HFcc1UV U)!ޤ*ѺT2a$a o6*W`Ej>=6M/x;6 8X(Y{H?}.cFڽ8{EUV`,t(vR0IhYHB* "lE HM{_vDCbtPCg?$O- +@ Q if1 Ү`gs}_S*7~; ]xʽfwox\r[߷ۻ&W6l )  YECg^nՆ-57$*6"\O&=mQ{#QEȆ?䣒I§p~ P2n.aQnPcDx.[]˓ڈ L: mKӴĔ츮DU-++|5B=K.\faՄS8E#icM,f VUFDV9 _,[VuA=%`ORC@gK [d*yЋ'tY "yInƻ"AsiZfI(M#F9`t_Km0o#᫝ykoR@h.H1EͅSqzS!1a>C3%J%n7ċCYP)mo֘ *I=c7a5LO?XeŁ}VY)nP2o:6&v jB`e-$]4y[Jd"m#' $ Ea!" EQI (EP BVʎ&9rBE ,(64!Mj[4e Y kUшP#,a#YfLѧ mH)dFI\TFA)YKimՅJr6uԘmXm:1ֵԮcH iЬziF 9EAAa$$T88i&2hRI v$FMa PnB37Ȼ2v d69PHCEF ɵh -$ 6@%hv6'2#3D@~e!$9udCND,4) E8s  thdAgf `tMT ,S nMЩuNLwX6i$V͈*RhTj-mPvn7L1!p0C HN9]JOvAFd{=%+}~Ԃ!L2l :ϗD1s5Nz|&2CeQɆ?&XkǟmK_W ^X (ODƒ65L ~!hSUsĢΐj^a UX} 9BO 8Z 4,Ƒ1|CȲ:JZ[s,~VN CJ3 \As {(=&7- @A{2oЫy oLMAkPI#M 1b9=݂CJ5v.=Y6,y]ol`h"UK(.k|bMQ݈ %,B"Ue =\{1,3yD) :`T;M3rM;Pod^{xlLJ޿ܱqIxܺNV2}K'ī/2<>kVRjt=Rs˘y~L'M6+1AOw)S@MG{f0TQ/T1_Y-H0T_ޤb+,k ;TX's5_(dl{r'AQW^nZ.~Lj%zXłʵ*vޙp~DhpS\IYz?"]y\c2z1~;ơ~a{s$׊[ӧVFoU00#`A0F l\|DS*G,;Ϣr֢ `g5WAFD7J G:5ըꊈ:؜ŢveslkmQKM+0X&k0 w=ĄYd5eU#|U⎝pxz]àffCP. EZrań "ZJ.MH0*=O(T6ʴf16TZt-k@U;tҩ?u:(Ⱥg5 FѣAOAB􏡤 0= :&NxW!̂gwqd[Fk_d@RL#zG1Ź' ྦྷ=H(J6}VZ&/4imQwP*|ӼX;rB! lOҾؼCEtQ0 tKr@oiU+:7z˶%ހdu.5Qkb O|ߗY4$*ivƞׂ*͸%$Е-Ee Oټ9[8Z/*0\Ԫqm S$iM4VGoz! x*谗^paI1$|M܂|BQ]콍w?Ǡ \M`&؛1!,ޭP=f"Q5U ~ʾ7Z@{x(*eAlph"Mh'X&ۡ]"8!F(޴ ! ԠgcF^^mZAJ52<&xDR~˟i/6LD`&0*Ѳ I`R #\AdDEkH~kXx mF2H"ꥨ_#~q9fA BNcPq+`)fB,Z ӆSC| @[r1[&a"Y: 1ZV0j% 6SBmM<f`eg\GG۲ uNGL<'nJaH4D5Ku.O- 0*t!=k1$ȊJk00SN|@E >kAϮ;nP*"V*w#;ٓ1T\D+| Pw `ć9v2l "2lC7tPFHDE,TEEDEo>MG<K &VgbK$S6Ԣ8U8"4##!Sd T !JVER"E>'oL,d+ p1@(" &UJV#$H+ueDޖGWj"*E$d>!R$BYQ9o9S ځ_ 'Z)$w(x:yK$7U$0H@U'"lkѐ)b AUCbİkL yPIܝ9By-:ͣڷ)<4MpB}Ӧ3sdA2ȲtYh؛}^LvՅ9>;tސYRA`(,U,",J1I'v ']BృE%/03 PO`5 Cu)!HX)wC]{!9` E bJaMfR -C1d!&xNn=$&, BiQSM1,lAѦh͠+$a%b";,<| " ڞVAq°MM]ī3;bP$AD\C0XP_Qe%V1b("E$)" K !GI<1X?]N]ӿ{ ܌Ġp>56 7o$z-C (yHeYӉDm(pۺ(-a5-E.BވbXJ ~uϜgs+I߭Pe1l[B8eų`B ^ǫ.z\ݬ72PCKYEfmQ"cPMEvȤ/ԡEUQ`>](TWo'ًٰ9ڑiTb9[벒 l(_ l}E$P$QZOC(!e f93!KN6dSQ9hH+n.**FW&z:50YHXeJM޺N*' EBRII:!'YIR>y0s:&m tTS 2E.Ysy)XPk EPF#&6JbF%* *PT:cRpStOT4cj 5i !2erML)N-!¥@4:9/ogezf|c;ż$I2;}%*qXXzk &]h+IJ(%BFQXւ AdK (n@c ;a2$RZc,1bUfT HIOF@@g uvhd d;^d2N/}&AݩJIe؄;ld; &!zQ$<|q I;rODdbdXF$H $ d=?Inc,i1D7!ÀLF(<3-ÉűQ iy'9aSr²-YXʅ{<1!%L}T 04[HOrY{^l';-'i ">`S AT ) B gym~s8)Z%][%tN'@nH0 Şy(m)q~ ;`+ոɉP 1PՠPLM*GWLM7ї*{zfoɹlCd6nQ\Sj]`d3l!g6`ÍzyHJt \z3DJ]52&bP(. (f3"o'hZa5m h=EhXn[[%KB3LF#Mu$ &&* -,M{t:O<@?y֠{zp#=}Qah=DpQp*g)= KP!PSCMta?i 'ױÌr#rOTdbύ ߐ}(Sۯqg|p|G 7֧V8 40ㆷ?9/0M4f DuOHUd*2NqM*T)9ԸFz? sĤdw_!5֫{W (ĶWZd\~uvř3r2&_!St@ ~}Z/](zrYx*9@LЍnv8ʜf' UQxBHR޳)q. \o~=Ӂb=H|O+<@We,O{ =ܧ5<(7D52Ώ*o}zHQ ܖW̑޺Pz e/o)M)N8Em1YHfot _/?ʅ|LTYBHYCVʒ"f*fdkHWdXe/sVu`?΄ T_*Oqb^gxiFHɜLQZ2=iNX'(7بCnwZ$PhMMj8ax}xO`޳/2is#&2 WCAk]./m69ƴ8}>#{XY8?(P$9s "*OԝiuSOM9Aou#1A& .sE NB#2,xkL%O\?DO&I[;QXi@kK~5I fFǑǯ}}害#_`HR‚b(%T(S.U{5?{w)?7@R͉F8#Wf|ժq, /KC7eן}0ףz&k\-haOfŘlêccǑN0 Hm#@Xsπ̵%HBI1AAiE ̈Us?2^g~%{Hh[j7 <ޏ6Įň7"37THC>yBP)Ńm1r GIȖ[%qUN]V,%95g3,5$6,QbX5.ʧ{A3ѣYn\P4^XHRDCH5H;ꍅw[Eф{FNK A`#m TK2Tz6Wzh3YK"r-,ǏVJFx!P5}NN,8@x&J ae Uؓ(}'7LSJ̮pk:JʾͰ|ZLj v?L@ &!X( ,Egjoj s@9pӑ@ԃrTf0 `(l͋Ӂ'[%O(,Tjv48- J+h1..1I8UQSO {"[w1oAxs"|)!o̩TGESȔtc>cahԤ^qG̷/R-6)E=.^j¢3|n\nŷ1"21IZ bKBg{bk7@$PMV.'dD" `F1$d)̳\owѾen68k R-/Հ-ѨM%x D,WJybV*ȍNy(5ͳ@@X);u 2b1##͆Alî]DA-sl[/Nt%WyJioMcY: U^x V{-Mzn4+˻85ڝgjK I@}HONPFI e!I`;($6 !lm ?//>!\v yC34s?f~ͶmNXߜl1b͌!͊6-rәbBn?E:D{Fb5 B,tpŁ1SL=;NdVebFgb@p*mP~CHJ0::$b"d$x=3YsGQwѢ͸?_罟Dgڒ5mi Fo M% skiAI-DDӱ)TD%+$C82"zg"^+*P[M vҚOLܲڕLoζreT>a[1+뺼>pL24X RGNӡ~Ɨ$a!`1&eeF{KdU1;,7 dP<'.^04t}uPJ(Lvr2lv (vVp/Pjl Urc}FŞ'4>T*Ȣr-y 64f{R߽CV"AAB`ĐH9'l<m:I?Pv:v_pzcY {r`|C uB jMH ?3!N)$6gPЋA\!d$3+@@B0gz'?&́50IXtEd5iA;Sש {7ƹDG9%zk7;O59P8&*C4T$+3RĮkԁT2R.$ZhiJ {<:EW66FVyh Ǘ)[݁zll*--9BrC N/(X 0YmK BeI6%mUͣԮ7[Ep"`!)aV[u  fR0M3%˙Dc0Tj>J\lbg-绗1QNr:zB3k?U6r|6ԙO1}f=y Ϲe>35wpK*YjI(Ũ6o Lex7a…'Ey%2v9,:r8h 1SF"4̕t̋Jr5 Mc(0Uٺ> K4i3|"BtQ@`|25? yNLdkүI Pt?@8VBK|h:euc_d/?h lt|`}遨dĊpL(ut jX:/sJkW滚ܣ9ɋHAkG)I}<ԇFz81؂)X];0ygGKp@mxf{ˠjA,>8M-KLMcj>SlM` cHS[ '?t԰xwɿuE^үINzJ^m2B@aܝ'a{E22B)×J.v!zǘh-DEB(4J׍}9Wmj2FmlB0+u`1.ŘFS8rݝKB&xmnG&v6v% 41wK.BkZ>!p5}!#9JFU-YsvzLpjW!u RM,U@I[ -B.IJ/}}ᬔ SƎ 4t(pSqCBO* |XLd5qUF܁(SɬA_ec@Wx۽Af{˄f=3(TZܱP ncRc{P@t+cmR|(#1oHFwZF4pk.=Q%#^i8Y9-V8/x(5_ t[3K UonVC[D_; (t W2 dqN ]UԨ 833Ud*yHK3˳c'|r)L\ (P~S;M-*YHe*Q,ZuxE;zt) DYˌ!RH = MV S@+okZAD>FA{/E2ctڊ,\0ݬ]%,klts Ӭ $%h#1'9c1pV&ױ诖LoM$z)A {HW-̨ao&Obx,J{ۯ<\^7(G@=?W۱1m~Mw׭@\K.8ZYC^<{/֍9|=ĪF&5`Cf1`9+e:1L@CzFg ?0P/11xc/r>>RIܽ]fp=3BF\~z/[j9vLd(iop%13>t6jz?4 ]v4OUPz0OCƩr WIщ;OǼ;D7Tk {-ƨ=mp\}.yj(y1}ڸ.~?Է- 1`~mcl3/j^8)Lš-e[Yz) +>CIߗ 3bbE|1zkXʫo%ڿ@9y(`_I&SQ=`(Ě<3E_y*eq M3v-]BnœEAeǁv N$w;prɓ}Qy$i9 ؽ$8 H~̓`AF+%>Sσ&Hz Q;.[.PK#e6iVˌ^ߐGilpW)viꆋbb+hF(3{qByIQw&q`=Rn-D/6+ 7F6W,~kw}ޞT9C>iƀ$uokQ1Z"_vc1irnQOkh>naQgkf-v--[IEV@ʞ+J!+ӡ!P*VJʬКڕAOš]mbO貳H=6TQE$K8f'PL6±Oo+!, E4ūl^|ifB!/z;y_F\a: n7]'{/M>}ЙL.|eQG8W{}ls7  ` 9qύ qM7yz5fai7KCerhѓ[nCڛ1dk9)wJMȤ$g(+BƂ;M.#jJcK+ {EIAeճ61ucnR62u%UPQfv&-6jJ+6jH9d3{Րӑih(C;]QX" Bi4(fJ"*. :vÍ";qdh1*IiU8Bj0e$6 qYb-ꚆS!,%%2 B)DҭժSMk2k_1"U`*` E"Db]0JbpjFD""jl(H2QI@R{/ _hp& RN>%r đK9{!Vui&!{CN M0)m?rRH!N>OMXdGd_szq]O61A$@`do}Y~5WkL̷~gIi}Iօ C ~s:$=么Ķ C RILGC-0"h hcA *UU)p7o|~}GԈ Lfs\Ē7]sኀ?k3zڰg$6B7oP{?km䯼ozo8& CP"cHp(Bi 1apiX!qWnaŁ[ } 5[.hH#1:$ȣET}&sxU٭KЪ m{uAD!X[+,@D@QU_{ǖ[jW`WJ9Kv ?}뼡1rC &H&@θgeY묜]KLN)FғAtJn_GOj([ #Ft|T՘y4jzl: nG^JGSTma}T6plbzHm|AL/ 2Q7zg&l4JV: ~#֛)Xl/l^K|VT[L>,PO̧87v~)Dǔz$a$5>{  ES(mjVTY&VnNyo(C ¬#4lL%.?LM2lQv i\le9Ve}z<ey?֖D% ( k3|@G̙Ut NR- XNX;b )㦎civsrǙ@Vs:KwEϨڹ ./;)-pF,bq0z<SxݻAOGa=c6^t@lHblH6 b@d }zx򎯕I֐ЃD-RHR{=@B")4QER)Xy{;sMtyRB11xP跉sBm$6"W~ouV@~ZV!t} HCI69.#Ki L5%H1X6 bA fwakQB/ƯwS{ϔȨ|ۆI=S q^Ͷ a$.*aJ!'5b[v T{@W6i,%VHV) s'}kq +I!+!4\Am ;mFtcZW_%Qi+)彖~-ZІgi;_#ʙ&`*"b+U R" E$dH2#-Qb*( Tb A8k$€&µBH^}EFghWj_ &`]s٪BjC Я" Fb'4$rzW~J]$TgU,$H 1"+soa }u!g`]P *¯u|lR+^8Wc*Η+W]*C޺>0>%ʳ@;D4$ce^̚&k!Zk2 `p4acc`JPٺZd5o4,]VErG<c_,MccE͊)lӁe'wbLS~n%dZ-hwQH,R^^# A1&HֻV:WdT[8E.iD`W7|n]ա^!ڝ| Y4]q9.Ay|1@1` &0PXP/5&p3)C:62Bv2v ?of&*1Mmʢ1`y{6tY,q!S Mg*l5I_; Rɓf XuQ)Oدkl56XS"'p>&Ϛ $,]W2Ăw+W '@Qޕ}ľ6Q0a SبEQ2T`X %[IQb26ʋ؅q$$ADZT l B2[uc+(B] 0`zY{d*mj,RBC>h'沨Cb:En77;.S?yٶ&$j:Wm\\.qkIlP01cjA R *II[?"'ڤ8`_\W*kG;|A8ε+.$ ?5:y5MLQ|Qt0!32-Y*\T\c ]TĴL.r1BV&7lc_ d; :}oz]6 NJ,ReDg*e0Ծuڤg၉+ld{5vr-W¬<2lxHkHDpw~ug!?Ρ1i [I62`8 4y2wcuq ?\J aXvR,m+o%Dw+*t`ȫIb@r{ť ~Tq +zmtANϺ}BfҦ$MpZHΝUZS~ysn^+ְ"Sf\>P>/^ bS,Qc6mYU˃ 'nrL4a1{)TWjK5O|)E2#PXcl(E Ɋ.9.QF8VI'w2"F$\(:b?5 PDP Ad(n:oPG Ċ@o#!H2]S mq~O~ep,K o_l’q|a%  JLA䗌y&\/rf y A iuY{š-k:*"[3΃h9xMMA%jι 8/,_`b()N[`b lwLrNU_EN P`Uw_uh 2 E^3AJU ׅ‰v:^Z̄zjլd@A;u]I+ =99Ea wRZ* ˝G^겛Ll'OL;% !ڼrDέ]B'ެ3:[_=Las9@;@@&UT4jdh-HhEk)\, $KYWE!rq67W| TQص2V2qʸa ETJ7,GuօPv"6ɱֶH&UIJd}FTrL 9bWjz=v4!YE5RxDŵ5MUJ/4206nUqGԒ _I.(|um5zYJeKT!B(*NNd,,W A) $NEƕo &SsN *'ll{ٮmq``VGC @l¢%z_Quh5֎1h3p@(K΢!h͚5rڬt*i2Qk;kdY.eMT"̈e=Sa }B邵ƕ-UA@}7V8k1*R.92`RmK ۫2ho|m2rrI:s3aBUVMD5en~IOboa"R`erA ܸ*L3=hdrRQ* aRk5L!RZՇiDZ|蘶 ۨl' RDO?.dv2P#S.*&A[ocKص9m05"W8K&Ʌq/e}f aav]|f˾gT놷&&`Q@X3L&&!azB(((( ((1݌sScZws43x`jfݷa pFM(:M8 aqhk%z;9iP-HEC4 k\Z(ҙ `f0S!ɀPj 2]c1 qvBBBXr'gUF*#QE*,TXi'p@R J dn5P'<h.aYD2PG!ӦZX|V-@~y G8jX8#ӮO!!k*"X9]~_X{t 'R p$VR[3;8نj%rdd^dAg^S\U4[zj~\RzP"5}3'Q[T}LU(ie%`Y=Ebzgu*7(^(v\A\6O! :X|E1FT+$QiЅ~!zyv.VN5eリ }Em]ŗT)`DvbN(\A,PziF:?Y=gƒf)$ `l#܍P̣].ī99"Mۭ۸ҕRgC|np.#^t?;1d1{0CӾ?E_ۿ,ڔ7WYejlu_ʈN<9&50#Z[ V)+K=4'-IWk10}Z\]%7O-Y}x!%վ(W)=BjMwK}c0]VVB)ʄȶd!z>CŅa"$ ƈ $(ûZR웴:qIh_@@|1;dNRAɄYFcckZf33k20Ś H0@)**@u2.Bm H)i+րV*03 Zpȁ+d{;a|dNs~&2H񦉗0% (e[r'ݞB '; Id"_!vd#,XebʅJŋ,X \bŋad?^w!hddI$3#0MciZ81v˳ٝ.]XaC4'e\};P3[i6ÞocA NLdD fכ uM376kjW6(ږ`m*6KTSS`kVlCjV7Wkh50u ;RF"OY##6NQ+  Cؽ֛'{`>kAD}pNfc*v5'fɓjLv!&&0dSJ=˚!p<T֠tXN&UP̀XL.aEIE5AM!hXdnZ1 [,RAKrJY #^d 0ӎURR%j#68IrCacwUj{c6JCR~! i 6@6Ԕ^APX"A`,L*āFw5h12 H2TjI+*mmkJzap91_~B.ifHjH5Ů#_:1`j4]Oq=b+\[?EhMd# fl`6hMlMC2֎flhy,T2"w 4 /yoJe `(3HHZAI8IY9 'VMsY M瓩Լ Ѡ+J@4a&"_1\ [18Z^ڂ]Rn7@R 'QmH3PjFmKB:d6Te^$K_p]!b@q ;.;iB Z$6&jqOgx׭ n^u m"@^,:lO) XD |Ҥ|Y"XAHͩFs&B#:>H~aìfʓHDAUE,D-R'ABMuC?#8qNt' +SC'l7E0HQ2hoR>HpF?}9Rs@aAAT"$#@MMw$$01Vx[P{ Ë*ԀHPa1JnFsM\шiىrgť'9& cZ)7tlSukhĶx42H# H…0Ĉn"@_S97x۫w|7M%i# b(d4ZUbXF6I\7VB_Ta \CێV`uvHqUX>DB2"An@:QCE<$o']VD;n*viudb,!ߟW22<1e8:Ox7AEabG9 Z/#`Рbk~ߧ S.Ϫe!wMB=}e=T s EvVe%C PggFPCT4W `MDeJb$F ,"$F(Db "ùܝ9Hm:0B 5PJ xwWs.W5x%͎v.4NJM\C%<7ɠlěބ%1lf}4Dkkm(_U䤑{mZ]D#AQ-Z2wxfMv'm9Ʌ.;{d PȈ(ԺY%0ƃO8ŦT9 %w^&{iŢēJ XXoZyAܖ8Yosx#4z.'!@n=&#{}D[:Dz5Ў~L1O4r`:]f0M6'vAE~w%<'Y>rr2d,_lSb[1*S"͕}og$u9 aB0׊VEz7}pDxlX&T !Zi8/4+ `5omAvDg %d;m+G2EЀvIwTiJ7t,k6>KjJIo>$'&Њ%Y?Lx8;?j__g3W~oſa| =ZNGC5ph2/Y Fbq {kەIEar ɯ{ҧ«_U,PNޔ͕7rᰅIMu ݾD6㌃+" A7N[Xw%dlP{%;}cw ;_ @%Џ^A|$cdA:#G*D|~m@xg0vrnнK6O_~>F,EE ݠü(@) }ok* Eq$@ ! 9{7Y6H0h7 =?6s|Vd f'Pr/B̾]NAU\ M3 n0IҀ< 3X'B>U'@ɉQ7|Z~%$ԡ:2Ka-EoS\]&v uKGὕk'{}|Pz;Ã8Fl\Jie$q(G): 4Gql0E?V*h*aE0Ш0,)D|,%y.HJK`?„`#XXCm-!-L0IT[xzhKՑQd̂́J/VjͤXn-9@v!ćjڀH2d߃ kHY)A  G@$V KIXu3@1[MJ Q5Ph%9kįe%V41`c!7 H *Dg|VA6bK&VSws6 %eR *Ceax攚NtWY6͐i7,& qaK`K,3˛x ܵ2V6ܢ$H:RPIpDޠ\wN _J<˼C,%@\0C$=TUX"emf$`̛R҈@$1+0eHڵ)k}runTCLX|(cYom+4&=V74v 8q%@J`PnDVD.@]v1@kܙLYTI^\=5TV L+gv2*θ5Kr\EE b& ;&4 d0/3Y֬لLR`b$'G@&I/^7*U@.V(t.Ndnos֪.UlN* ~MGvՑC%5 fqTX@ZkITmm(`d) ԍ͕PF_+VYAUxKn,]EWGVBv>.}h3t[J#"|݉pUI '3jg)Uj*vN[&%VQ;,bWp-;3 ;SX(dL e0(݌I^I&^AL6`N6(\Qr !e%x BJFXWOS!sQƪubg/p W{&ew@AMyYZ@Q*W_|X\~Nɥn_EaQK0ri[,aH#3llsizf69E*m4|H(pDU!YP@QFQ& I7@5,GN-BE𾅙P(hP^8ɞSMZ+b)}UGڰ #Њ6qDʉR{, BN՘K:4_ў ReLN?T%{\T c6(K}nD}`vz.w$ 6t gC=?"6M",3Yϐ篑ōmUp_f1JJ 0FAHCFq59P8sY>Q9q=TNݐ^VtRiV,7=Cdr=\Y`P],!A?ߗ_欲JAxaV>Q>Z~M "ɫE<3t*qz(VE"wrZEvJV8~7^i ڤE)LUQYsd?NR~&EEUV1"Th(*ccmnަ[a14$̩L5<̈́؁5Y~]M 'u}~P5 's(|gjLꭶ_C+2z5Aʹs9Cw@iP Nsj)A|4 hXUC^R(LG;:));HzTZ @l N2pPaÆeA~籨v0aiCL 1!~]E,[Ú89SCr=lՋ;ᮐ" d L +2!K a[:=ϗ~NXtܐB V)+h[[/+7eJ&_ߖz{{a̐0k㗌EUO&qG]1Fh3ciu.;ߋfKQz7kl4201/ I?KA1"dsgbhqf3'^&p-P&`uI9 (!ėj :l2LdBTK|ł\9IP9;TQiZ}Ͱ(2DE];@^ %n7CA (0h4y `&VDq)ig*hȒ*@(e& 6iEC3;QFjGB@w 'ۖMgAx9NQVQ 0mX@:"Ax]U)mV03qk/&MWHC:>ؤdEAR!b7y }z/"NHa/bS,{cVŢ4C:H4LK3km[֙e&lɌxrikT^] ]#Ș8f7`@f 03 pKj#ͤ2JYIBqif$ y#'(Q$Wtt[o'6"%%5 LrE?i4T²EvkJLHUT<,J tªVTPYt!"`\Bd0屜mՁhm$7y;"BRH늼w:yQbDT*l H:# 2 c73#sjl/Fw .|ΡZ#4ѷG,峽k`P0`jB2PH´+Z)mn1fL0uMtag~jkB ɺtnX36I;}݇P jh OP\pVC 88  ?XS>C2Yh0`i)vr m8hV lw!vC0w/J{͇W+ zP0Sh@g+}/|evS)#G<~ Ьh3G`՞KkKI~<ޖsM+2hR:$[JUಔ X):,f7)òkO^WgYOc= /PQ,QJcQ|8Ԗ~VjF) E /Vzè,THa T!Q竊f rsR'rEQēLY?jlĘ42Moxtȡ6I&C|smo6 '٠PI@y",$}d!P+Y3dy Y$i I*0RB Vc M5 AdMJŐP|Vp1 =a~9dپl¢ Yah)3[fv9$D7xoH}<`ڶd H#K$R@ J;a8 97c8Q]Y1f(\H'vD@w.:F |HOj"(MD&Qp`Vj']I˞"L<7(1L ]e FŅvW 21Q~3vszl} rbR ^cĠ2޳yHyM`Bl"%f­b%JMm!G{ݪPڨ2DLB)nwś٣EإdiCek*jh9Mdzӆj]mq&+*.V6vM]]f)-(iҙZ`C&M%֋11KEI.d`D`]M3Z.Bkgl Fnݴaem,tX3 m-Ju5"esɧMkvrhƣFMIt2`.3av]%QtCZʷ Ҝ%Ⱥuj҉D.[1UpE 4n]MZbBCJJk73G(vFDcVF*P% {(A,hgO^Ug2i$#B_khFa1Dd|1V>%uPRvyզpi {7=k`|~ 墜XQH$&\_[CY}8=xό][HjhpHT49aX `VAb,Bn}N$k%@ ( ' Hc1X)&CfIY1zBbJXd FEH2'OP^hL+-)ϼxWo$] S jie4@JhX 3U`CcYV'si"ȿ'syff&}|?.FM^ ʞQ'0B[Aե.D~I% I1#XmCAy$mf,l!!aCW ni{]R"҄it SYE!436@υz2HКm+b$LeImR~ @JMCL`48;QI uГ0kGSG*%lk|?CDQb0TFzYF=6<&㡙bw8\i0s6ii`sg8Ms788Z*3 0ghjiXF @${A3*\)s(+97g^~Djk%)a+RV)!nYF,T$^TYR5o7r{Y /kX*@U#F,Tc"*"?n{]&<6vY@dm@/gO_^=h=b$C}"nV 鳶k4{~t)'Pa z:O !;ld:YJ2]$$Blm ."qT5fde'j9W#Od(j5/"x4>؉9M֏ u,CIQ҅A,g_4ۆc/>=Ic6AFjm l0UN' _T UKIm0`HI4+G34W5')uҹHUCNrxxg׼:պiXHK}GgM03, ;!-C!PY=۠CVX M0Y6fqw៭lK$+8Bd_Ũ; HL~rUτ۟[{&epɞ;rS΁7/.$翞l\H]$YK^#GMLXe竌[,7JK^,W0!PFݏ\'kjx'$,1' NinyS64?U?~<HY9YjJTV5b/*SZPn@ɺ8}qӫJm[C7nFLD~E ԴL!=cĕ89xK^bM\(4#Xo+QW<BnfP[W{7 S<ӰZcǃ z$2bP#$:'D M6G؎xv8ѧMPE53Lut]wMNbSa30(P?XNE fa0'1~QGV;;ĥ4N>L>7YgoE1*gb|]q{ۜb:A;$d@;<ȡ ;ߠ 鳯9Ųl:&*AO>VgxO#p s=|ʄS1w&vDؑjp6F O?yp|Ǯ0z R|P)9fW:6ޮmZz#2?Yǡ%gpRԊ:*݅.lcO6R^WE䩋Pm} Z>EJ!r5@Y!uFː!ky)eFվhaQl5[-P=Ph"!3y(tw GX*;vǶ@@vJdp0{1J[>L* B9PH(;sF`^l2%0ν* #=µ :5m&q@9Z`$w 8d@'aBSiz=b%N{b$-  b,]ÁU TgH) d clCG_bD֐v$@GPPp~hZ?Nm<6ҹugC0-hQ+4&?LZm6ĩd8],pB $:o JIΨ4܁v?ݤ M 7E1]kH\1?/R׍>Y5XSҩTSBj7poJT΢`fzzcZ_v^n`=oiG !k  sW4\ɉ ä@ł=V;H|8KR֑: 000'bݏN25!ݚR: 蟒dA@BЫCK^IZ ג^Y']^k}:04 n44#xg63g@-:D*  (-$,4okt$D68PKC˽#?8#нh44# {4&S XK1]p4VH,Lx?`D=m2yA + 2͸&|wrk^gkotF(;' ժEJG}|,?7H򰶧0®nmmo^v'LOF6^,Y;,h5%pTs怱Ozu0ā}n_?7G5;L֍I"v9x&T% Ss+rJ[b*oNrA!AVBHE隤6֐oEv7}Xbl4&oH7m_y;~ʝ⠓s2V.%IE`)5+ +K䪻AqA;Q dK'K۲*ܬ F E()`ٔ\J ʙ!%G }jʍ-SM:RJRSY)+zi!4;هS4fO1ZE(%z HP0`ƒ|䒳23rw~':Rĝ 0q8Ec8 4W B9h`AdÑ;^Q?~->nf 9Q` . J ұ*>Fgk#޼=v':y>Z$ m`BP nXfPvOy6.+{ބ!&d},Au,L VS($*c83Bdg;J^4 ڦ'`'_Q3%r2Բk-MGhW=7D2CizG$DSJ7k=#ҎffC=%K`WNKA!E_3 RƧAJqeu^BԮwuk@0zBrU95:(!ev?Dk|S%%RG̪8R2^^8i`.L (cVqԶ_m)76 q刡یg0`S.nԢro IovHoشIuz}:9hx6/{ik,218rPPhlsq oTnz'B?l=]gG Ο# +H΍YhԻKmOY^G?p@ddEdpA;WN|x8#?yAi鈅KwT#,Ϫe}G>_/@0FTøfcm'm@n LhʕY?Pf=;Ixjk!^kHvĩLIg_N@ Gh81V3 2ěbf,ׯ#8&MK@x4A;@W|^ىe}3Hi3GZI37tM#^b4#h8rs"iO=r_ʙ>%@(}Á4qlAhO@?ErgϦ mƗ}[QkRr4;63v'^RFr4ߪRi`ܵ&|wVYrGr&I3Z*#Y @hA>pcbggܳR)'R;|m_ѥqw[jd =] I}! -+m߆{됑j:yz2\M, 3I-J4o>r|kdf=7}U6pW~ mUEehZVS_| o?7Y>_`iy2GZ2}֪»NX[+P~GgB/b=/#˟&J%39m 6hBI%&Bim`oӡDH),R鰕;ڤk~!¢EH!X mᰬȜY^I }lǥ(EHALfɆ"2*c5XT]QF"(1"")d_zʎ]ќL;fƒ#Hc?P35 4cGaX1~kMk_2γ~Zzύ Ye*\R䇳Є]"wj e5*" `>ަ0<-t ܴ#, .Łsw40(Ka{YΛ/vs_ID m"#2~G{쳭>X-0ҰGawBOk$bÛ=J=#*=C +owRc06*0H!sřL xKg ="H4uw^*HssH2™fX`tΦl'n{s DΠzKX.^aU^Ts>Rm|wf1Ԓ^y6(5Ӡv/D!7, q .ˢv94'ң({4Hv\χm%m hhl b˄W=/ ,jI6 aj)IUH2 0!PhX)YrKj!JXu JU%EzmU\hѐKrfPS4HI~ %`=d;` }䀢 1] ԄP|K`nXzb_NØύK "Dz&#`țhC,PȆ3y#G|G,XV1.7Dh+֋ =x_5@xC=I0,q|7X`TO5,]E@fYErJ=oLdz Cǹ" @`GC͇Ǐ>;WBg:1b(F0`R X`O,OA#>BvrNKN tb,Mk5(@/k-:w5g\P^A$c=̗{Q7 0Tה(=_j?;=Iً?_[׿=yw&1QP"°FUt=b1J/=**DN{<='?פ_|@QVy ?Aizy;inNRB,2Vip\ [6>5LT`R*1?EUbNN+F~`LԧbTaQHDE",͘VEAI=fBsd 'hH@ld&Xh@aa@*,ST1YLf 4hAq$e$6 FĒhH @z$qڊE >gU[V"hId@ $Y @$$'IdbmBjRcN> B'nNOT;*wA ^ H6MTV{al[\G??&qNwVj TGR 6xISVF%o$3$oQ`O0iZBTb!RnQIlkH0 %$xng",D}?oЉ ||KRI?(sauWLkGv8(תv179JvOmkǗk @e>ڋU\߮S6a۞ @jޝxV %FU[p%PH7%a õ4c.zVKӮ.\su8(=£Z.:^pnc-xff)vXz2 a|]Pιv &OgW0L[,e Hkάjѳ|iuAkWdwv<\6eqodYaƷu@Mbzt_p7+]w5Hn|&R_.m7^rtv:isUj1J8,ZS"wU@,-bN6 |OQvfEFgˌTwcw{]y p8 :%A cKPZZf=RĽI6g1Af K-W2-k]YR8+K%]Bt]|gpY}:((fӭ>7gw]?w~ y˂/4X3جG+?ռ_pܛ3jRݍd?-Z0ktۚF1M@IСDh\R6Eh@a^Ǐ;Uqfwe=! pόWGVRYkU8=_f1Ĭ')kZ {Y](fZpՋIbq*,f-O_&f[jf̶o?XBHH7{ϳX~cb\\|ľOc#Gs\c̥wT.l .jN5YIojLtX438^&[e^##66]V􃱼8(#Z¿KE_wߔ(ğNzz_įxQqUS"Rr| 1̙ nj@标/(k}OX %P52Xr,SU$ѥ嗌Z Sm|܄}xT*w2gt ΟTIޯ_:F{ԫIZK]']ԩŒfR鯎 ɨSI\S=Ns(YT /֗ =||$ޑ0FCGnW:I 7Ò&^m'_ygkuݧXM5ES=T[v2@pkЉtt熼4V~63V T7 XeUn`}e-Q|-K lu-(Q #9 eTc/7jhR/95"(/CͶA)Qmwge76yM?)H+/نPTYk;U @?R,+S3Y-cenZH~s+Pj~^Nr},& s.~ΎL]FyL!+ p&.\6~?oζF+;GShGgRʒ%.>@z>W&ecǚB~yA@Oi]yс͢AX2cSNE*/O9v,@^ Ny%y ^R*m` A3z^͓O^oYfb8k<ؕPjnu)uP,ʂ6sB(jE ٞ"(OCUyUQMrA!6`EV sRHb-:2НnmJ :NVzQO.]RJ$JM振 sP IK(p^N4\h,&vgFseʢcfjul^ޫQVL].IJ*۽MWo>;0vNv͆]RrN s֔cӶLc0x04`6S ] 1Q1~_J OL? hO9 Ϛ2 x-i"g^;ۢWYt^jJa#$3Be=kQf g>WّX\ j,nuL蔍;0,5 BBN_g\>&]hɂ]?llOhsfi `[h>?iƩc1nZ==i$\ɢmSU=phibDgP_ vI{T#TVBd;;K=MLUuTv[ [jD-w<΄ȏq JߓBMtBGY &jM렲d?lK `ǧ2 v`˿ kFBHbhV Y?wGo-LK d\b(f$dn(s"y9tvQ>۲NTPUzoNS'C øA!vd6 L 0.0 B I+>R%ں/ >7C(> ?ᠿh;#?C-4a hVBb $ i ,B1[k5^ sPUdLv`,J0u@% %V!fɤ+@b h.(H 6ŌEl8$%qs).ej ')5A%we䖰@~r7[Es>䘨)P67p`1y19 cջ CU;W%8&(4wW'-m݌%qHsa^kTܩ[wTO[Y %WƁP6]&WkV|Ŧ'ת눺mTaE;Xle05@Ӡ6#@*"m>0 %l^18Ln"sf*r5j(hODD 8E|H0"Lf ce5 gR1])˝)%&$b9ב]zE 4w믃HbvmڹNwgISS3*dғ"Ldx `BN&OA*E䰅LxiX$1ҜER"RIJATYZ sIh@q?s{ ,1zթ9ݙ2o [&k_:kPto=Ar`+JpRǒ4j= X_9A/ڊLg6;MЉ\k3_۶ƣ#TQ=qz/l;Ow=\ыf^'Y һ[݊#*҅d'FlyЏm`f}hŘ+NïnxQO Yց8 c>;6v3M4;|έ[P*A#zj]uU%'6KNQzvŴ Wt8:wЛ}ߌ3Иr$3HIOY:VC⣆o? p`yw mt|^Y~ "?bS}d-f-v= /ORay׵Pb䵠`f2qOZ24=,cV!2,/w\۰}+i'?ȹ aC 20Y ~/-1֭`A{ mB'm);0@uG-h7ZACy;?t^V;m=M2d;*@R\Z$_ jzwy)Ef\|;61$?}41G[P'P yu#?!\䯾w#̂7m0r  tfgE1/>m _[||g~:uOuV:2p_ۙQ"6 3|o a@1BD ( ads =)+=wbS~zˢM_^^RXb0ͳ ==I\آZf+$j5m6mI?OaEl~aQ଩u xTTc;~A bs1!m,aXAougs@Ƿ0QIn PPKRɝa0{U@ D MCqÀGT۟ēE5 KSb7Y᦯ӆRi5e?aӢųHMIZLR_UPa_AF&Dmg^`OE|3gPA00 ^4`s DV%EE?K_AP =>@ox߹;.A{Cy2.8e1SA'3Y@^2/YI)HE@{Ύ {Yag$&QMr&BnMm)VH԰6"CI8A؎got5ٱGPvŐҘt/LGO3bғT@hoՔ!,yKl Zh"@go(aX$oe^"l|+nefy+LAƠ`e(QX,Z}W@`H$ј> ϋZf3 \lat0[i"?G0Y  j2}b.it\ozemlSh|+sh>J';xиqSC+@TBye3ƚ7zZ6BRپ5gqCP \iJf MA@Ħ`%< L0=? Cb2l{2DNؔb0 &Q66jc}2"Y}6WN4_}6:XkXIZR@LM o'.|'vo{*xλPZUhm[iAb3eV Uz .% X,0ULd>}Βd΂L0g>^7eodGmz;Ewn11H!w`bߌ|j2C{`q[Q P#4 }]oӁTg9{˗lNn(%cHōBJdzhj՛6җbe? ⥶x@ܱk(:f_o@.;(: +xzCmp(~# cJ%-aFZebrۣU~6_7-_j'ܾF<@F:6akY^֖Bs̆wz-ҙ.I7ޘC?5! J7Th'p21ﻳ:H}cio8 (WH=6xvrСtC(!'f3\ڮQ >f26G(eY}H,@pҮC-4ri.=$DLeYFt_G$6ZUwfQ!2RZiG $LHXlB0h'#? [6Y-E+Yԁ)B@aĨ=g7Σ.SwB]uQ E]g_ZC;W>IRLnqVse4CԲM yAaѣ\8&h+/98e7΄oee?V7"[*7hV2:ModOtb*Qu$Îb@gIg:Z5%Sl ï7 QEYI+L..PpG[7ȇe[鏴 ^p?ˮ>gUeٴ}eBZbBFɈŖ@UʘGhзuz9Ǭ\SG )G0!T!hh{?Wd}L -=$1XYIz&0>~_)ڊX a oq4_`dAHOtxط{sɾe8V۶Wg&otBr rt<(ө LtZj7\Ր͙s²Ejm . +QcQtcѫmjq)OU5T a%b BGUP(D@ђ\U; `ّ`\L,nHZ*EޤtcTDz2ݓo}O _@91,dN`"p]p!cZqÆys9f4ֹmp7\`./h~ޱٯwc]خ;g BBgk[f%3owˈ,Ń)fbXCID2R.4%_(Jr%@>`cT)OK̹;T|"gO& I2_† [K1wv4dHZ՟IK 6ߤmZGx _2s+ֲpTj,r &~Vn` X |8z |kqR"QAbj֬pMKky>\M0I^8 ^vJ4*B"CzG@O~ddbE pZ$/;BUp,qK}?%>Zwk2J ҆fҒG$5܂RC߰L}˜W<@$B>pG"ht{Hgբ4Tm2"J" PHge=ddnx2ϳ=Aʝ.NLHT?b&i ^T/-ykl{pWbPmu*r˿,yI+8aN%&yE V *YAV!Բ:QJS$"kBB4̨ljRx!Vn%Q^l#۽h|avbY<4FeBY@ .3΋Tw|>˧qtdzǙWL_f\>]j_.}juhQ߲lBtMF4wphJ"ڤ{U q&z.u vN6nYa~QM9>CɖmcvoEwk]Fo{ҽ'0pcCl='5Ɵ*ޖ-{]cW8DM7>w<T:{NXZ+S<`RRqz_KfV췿o:(`V$h_f}ώZ=F/l.:%mMu!=(INpM$*:iU.עmwlF 2oZ ,4|ȃֱ1K dMQHޗ}aB+[JsMNˎzE#~lN;IY4 +0c ѫfТ1nͫ&=W *3hճL ȿ熋ƾ0#d!B 7ŔK , OZ9ON|&䑏&a,@9a 8):ؠ`Q Xۍy3ϖO ~[79Q&$A~A1T>v6rOx_2g[Ӑ ?~K681mz.Y#wrhn`a9zz|r,)BS0UP@]K/6,:J?7‹fV܀_sg1 A_&},@Y@Q=q z^zmPQUly_eEs 1I@e+1Z~)X,׮1BB=F诪 +ď2SsγϿP/hM%qm(*EBTʛSCj"+Ta}PB5tۡ:pp^n35fk38gl~\8pߐ[P-(]LŪX,Kn`Zm<QQCES ,LtN!dZȡW**33ՀdUJԪ`B_7<2$#%D*' =Rt< 5ͼ|j$55p "6ԧɝv* !c5Ck *=iE2]֘(t;.%5&iuv:ݸsw[留#H钫Xq*XZCa9!T@L"d?ma->z۰^ȃqJ]^7 pOK\>ܜ~vB3KF\ɋMp/ćȀ[*j>G2Bf2t7U{wqQ0=|rUdtOUη^Ɂ26LX .N%Ur`{U_}\ϋz„"mm 1KO& M$HJԞZB_HABhM/_)˷gɠ4). uz=d8W+?Vs裐eݻt"r>Q^c{ߴB` Ct8;nF!{mQ8{O)>* Aㅥ2HYHp9ޑ &NPdXaIL JO6yO>o/7HWhS:E*DrUEC_ tˏ;t¢irRa"3`=)czޱ8k5m6x ̧=U"+7{A\OnFm?ByjV>[= S]e|4ιNYYꁉCxZo/z0w8vg5pr~H2.{vVnΚÝw]<ϻXo:3 z_j}0][M7?h dנ0^^0)3H5I pC5YmNg )P1Lz  `4^EaXOb=Fmn8KT}V`2ks0 0Bi}%ĭ[= :{㖴ZcYnx]Fnsv+Cк3z/øuy} ]D ~rJ?]i!3V15T,B(Ȅ_ .Tݷ ʖԅE]f/ ld>SD XsV r y!"p)u9EOA' n|b}*?T1Sspf91bx/oW5m #bB{>>2Is̆H_V9ub%̆q.,QA gsI<Y.J$ydQƒҠiA2T)t'_?onYnsgX;XWr4&&uNt$ȠĈ4(Ҳ?̫l˷(4[! 6O1?aPc{ZDax@#@2!0b0Q?v`bE~?eGA41Ne}zMVWg-uғ9~1Uil4 7Đ J.r{GtY,n%y+fU(/322K N=(^NU;\?=&!JBxEͤC%ǭPǟ,e?Oq/ީ ף|e#n($~  ^IPX.u@^Ý*Smo!exbs>^ 2%E"BF.3K$: M'2?@@f]1#HQzKCouQ>LK; $|ztL,1[L# WQ@sxY{<uPeNTnw u{kJ6y]E%"ͧ(G$zm(gF-`& Ph3SuyN|T.kw슼tvPrPޚ20^y`e5nGMEC@^Zj*%'|x R ̻k+#@i"#Kش8!is&ǍdȾz hcEߢ:4 kAWXr{Zڃ?=dK.z*{y}>UH#)\R+Jz 2܃" ھȂ B39EЅDȰ%q>󽬐 sPwi"z$6#= aIHBPB_2+xX`Az1+ 4fZOvѫkݱ b_4ǚV5,\Y)Wz7$DC 2Da!'_i&'tЃAq/e|e pHDPL1QMyfUfWQ?DS<;By|yzp' pCs}s m'G +Β&7{[{i[b*@F=a]PPB !S凪G%AGsBhjש !Ql7T 'Ū,(s{׼e8imn-*\'H(%=/h`=u鈙ץO-!~f=ABq ]:x =1 e$hDVckO6oêW\-vhlL`NZR@oOPC-M&T %TH; x:͘I1 hbiO:x =n=W/Y^|x^.7c]]9U'ZzTH/igF e_4?:#!ؤjz&Fp,XR41P)͒q!F<^~?|a$!J{,Yn| 폠)FEF7؁1y19\HFb~tue!fpߌnݴ;䇠nX UL v#NqaV;y54"^f[H2Y[]Y샏:<A{x>\02!R ƺ&{wvsl(l(~w֠2V> '0/bzFg@A% Gf潑vI-ݴxQ;CllUNBj$b޲II0$O{ӒEQdwXv;; 5=(" RrOT^ƔB%{_s:Px0÷mQ/eG龟+so_K[j7,̛'*j8B 6 Blu2\|Tgнb G70w܃bOTP3,d F0^Q !qLO0j(1xmMk؏1 Ў`H3i11R kqbl]VQ0EΤB2ʁuÆ^#ChBf5P/˶s$oO)[?R0wG9eXs}`~YK| h(- ȳ:k,9NcђchM崺A7]i#6"Nӷ7Ep|afEܤGr+ rMQ&ֿ¼fvUΞauA搅2s`={=wʚB Ϧm .{;XrRFʢifrq6W[$ZTAXץ$ @M'Ɣ]hg7, evVTD.:fwJ&c2y}c;bԍu{-͎:$RKC79ةUNܗ2a!Lqo`zFPC&ѽW%Euէ{Ah`g Bf͍Yj mjE?4%K9bhv5 0\dۺ =.BUpqf`?Vxl7yw0;ƶV  bN&6 0x b$^FzD[a0s&MqY@6)ɽECcg{66zSJځK6c5DyQW+XhrY[4Rl``|Bl3eQrfp8U:5H c$?d'  ` 7G]W) U !)פV-&{"DD…A` %!7}Ѐ1`!" IQ0 9Le xZr,aP=}QXDj.oH >=}t:w׸|sTb*<"*ҥi~;ԛ~;g%y$9XE?+-Bixn͇T, T-܎ ,H֔F`(%U|;PK@?0OOW gZ{OȔ}ͲZu5ED qP I ,y[K3fIE'eL_왉<,Ͱy:IcpذJkȯI}uC-:|ܥ/y,U'4O^N5mQ`sU'}s`6+.:hW)gaCk9qsȥ,륶2 wopLvK.ԜhA_tgJ379E}{gS6K ZamTŷēFoH$D0¤|nmdBDhx~xWdG=E}ur֩:fE[9tg)e!O&:Fo[zM K;`ceBݒIhkgțjj9!-8)C) ClFULU\M[,ێ ]D0'nQ)!òfjd+m_6~}1 1Ǣ`8ʾ ^]a&#mQg6T(@]&I ia Vx>ƭAI  W О+- aY\WNRNb;4ѿxNGYI ` ,cO BX#XI(Ȋm "w;ޞ:9^Vk Z)J @P@H0?݃z]Fi4F3 g'@a4R22 (Ԗ"iFⴇ~_yery1KbӔW+H3EE."r׮26b7Uuv&awE[Rݻ9OEٜMS7Q(A Cp-y2@0#`e0qQP&*/‰ED/0!E4 . *(.E£0!p`Bx\(,*A(`E@ h6 Efb. *29P\d$.$`/ 2aN5vp4a%y^ \+=SZF]Q}=rNϞp˗ۏ >=lԵCUiG#׻arW8l~!D 7/ ;R~=0jB,0CFw6E / 2 YyW +T/X@}R\zu~qrv7:R18o&E sɁCknwyel~'i 3ϵ} v7!.¦SRi.ibVib<&+qBpbEwWmTIyyܸe-Q%"֍tReI)889\ZJ2 "B$\@ʈ=? C1\.R!\c+QM+)nOcxۭDڤy_KBml)#t=⦦ 96$̖BT,F F͵kXlQyS|ϗ##<%bW(w S@<[1\}Gz c8)Kn!K,ޟc(gm[m#S=+FS(@p9FDxT+>S^ Md} S?#Xűkrtp0=w7o] O H>@O=Hu31RhяKz s7(wq(9~g!Ο$ZP~rF }A?(#A}wM PXR5ڵanx04:<\K2< Cn~uKOɺ)?Ǘ릠@#ע?FB9&/ǑtfNM$H jkU^l2G~stf́j^\\ &'E?@ ܱ*25̲O(,=.3,Kİ&yP?3+W$U:\i@|ʟE]rHGU 8H}i NpF9?<۔TP 6םL\2/Tu4 05{;l"_tGlo2^2:eͩ' E f҄%G|Q<| U*U]21d㴾夋T۰% P[]0I#֐h?KH*_%k=G+9T@x_e__N%B?3ڱz`zw?id/F|M.ѫ4<ZO2×3F眅kf#fz)^sEe?ye tu{g\H ߴ]A]!tEHh6B- A^:~Q8c|v#nTq_;sͮnҜJh.yJ]\*s?*?{/ey^]7P_Y7 hb]u9HyW3S B̾yKB'IhMb!禓i:vnzyߛ';4?ّh<#TvfDC^;l\{M(~_VTy(%?U\OՒ'2OӜ<}hWr"eXWu \mTEgyv#?O rd kG3U#fxfQ/eKlʥUm͡ M!J=4J`yZu+u'FGG7FGJ5A@?Yte#D)x.:805Y3Vbay4uLi+TňSkQC jjMQD:oJ;uދx;7[wؙ ݋0GHȚ'B>I6 -z-G-10؛B_0Ym1@s*Ѓ3 MҔ4FJgӥN3HcJ*rCR>kRRi$[-$XVh azYn_ .wW)oZ~]nEĴvֻ}6#IeT[YYcf!j5&ݥ't(_MS-[zJ Qǘ)3ʞ.:꿹^G(/ڭ'ȅ, `nl_yzhXtM'KarhkzaO1IzA6#~bߕgY mn=>VUYJ2xlɪ:0Js-'z# `*ʩRjy z,q/9\9Z6yyUb$DDHI&8 c4; / ,F!4$y} nrH@ 7d9C`IC7QXOA#~H:u?CuJ s|3VdUeշn[6-s\[~_A|F֯ȭ0OM.|;hBLPÇ/S&q!P$TU6qrԟϣX>J2H|L z 'q3s)u '_^ռ2&+]- }k$@2G (HߋdVc:rk]ȹZ3=- XM VփF[;mO;QkyTSEn]}҇]mkA;"X2? 5o^A ˉot.Uݮڥ-P̚6s9[#JuT59rkS~+/+v IPiΛ=^9=3v}f=uE=JS{8ZшW$ p@ =RBA-p(8̩*ٟGk9xGWeeqp!cGEb&G$vr)L|E8"f~Ҥ'<49-Vd.HYU}ĩl Xt kh$ ;~72QA S_:l#&Od<+'!Y"zbjCb\*e2W4OGV\GA)72z3])`il/{em&k3[ݻBG®Bق۟VngT@iATF6.|OO5%E39D*$ٙYkͻ^ˆ&3]4W͡><-fucR?X?$HOJg ߋn)p!+4?BU3opDAA.in?yxm=V+s{uc|/LX܋y}~IRA*U)ӼdvAwmm }/chzFпsٽRCrw| GxK1ob;C9ចKhe5P} SD0⃶\e'ǩOs:܌~f2msD?}Jb)٦i@i@h32㋡@9fGU.&J DNWdSѵl&Wĩ#.g E'ֹ}0%1:t}В,U5T>=}MQw`[v):tr=Iй%\|M oS=>^^\-LҮaX'2GyC!}BF3?yՕZW_t{{ֹ"Df2~7^cTQZIWwQT :Hˍ&D7GnE`YASu2G֖X08^4IRͥU0 bWYMx3(.i:x@鈌*!! hi YnS B:?lo+b!@ΊvR (K] /bn##_6'C[~f *v%㭆a$þ Mj~W*-wn^ZmOXk7g͞::V}% mTa*Kv+J$L{Njz,Mxz6Ȇ@nfC;EV&.9eǦd1ֿ{fk]Pm\N,^)s4}9tͶS?h H dmH^QHWXj;_P0/hbb/Ȕ(2.{猱b)2<)QN5$6/]zJ=OXQz’`PtrށL"q:W&HBx+w@]rYS~Ač /Bdd_0EF!+asīX 3!%ev<S¡IBkߏ/Yu?үd!hBtV~,-%"Wg&fp_TJajt! La0^&PKV2S6``@9{63֏{`Ycwe @YfzZbks|(h*Q~sĢR|(S $?}w0gqHka$3b}Nr5c>m6-UI!@0:/7/'QsK/ƻD+~Oǘ譬 8i)R^UymY}ա74!}H|SxFϾOϾnUm.k2w3L3>vD:^e1)"?wd>kHvZcV ^&ew%D.>c¤A)]ǀ0OcpKF ZnƷzIETm_A'gT "SxBm' v{Rљ7GAqc<+ۇ dO4Z}\c6i"[ V̷l=m$@^JYXeJXB0߯Ȣ21(af:f;k9y֡0`B#P3n'cڂ U1M-B2kH"őkJ:Ĭ|l8%ⷖw<(SL pe7"BtIc(on1X0Le#p2$E䱚3vC I[s+]0=?H$i 8j]fDifg\ \ҜmM؄t΢+*>i] Qފ&M@@ +{U+f  G~Gkorأ9=ՙ&qi\?w|mhO."qo.J b3TR c1@^Tp0K2k -xE3~$%(H ?7ޭBz% K<PE>cXZWc1¥*7!Vf§Pxծ,c]v8 ,IGhQylSq6(?u ؗf`ѩ5^tܮD6s4Q߷ОC30Suϯ)ꦔj\ Tt# - ӱGςcg (`>Q'5 b5Yzj|ʂQ ^I$l+[Rq/xb('LL PUWRʫ_Nqӌ=zY6d5s~O0Gsݲ%lg.*2Phk]uP9 oruyP]3J]p-[z жr1?lv:lOTP |IX4(2m3RMgbO"[Zx IVY{K&hXitFx o/F8ۡaAT"7'e-(n>S(>dp"8Bd8Kc)0#6X[LGhIHG`|Ŵl o$xMKCXs;?OF#cw>H=^\zPILR>CC x9ly}_bI XjղߋO*7jOZ&sߜHz du,=1nxnAQ&|%nX}E\i ?{Y}\&B*$;ƃ󗎾|;OG;~ԢDsȘmƝ1O`-%RZg-xgdr;`[; ȲOx( `(/RKy([:|Iᣚ%ވ&BA0T?1EUwFX wع4xۼOo٢qIM&k=aUg7%{n[E,엳5'9Z>I܍&/zyK #Q><51+oTbanXքQ о8KAmֿt&HcJ {X`x?1UKg _.OUq'i>V3X'`|@@'زzf,HwQl~F2kfE|^yI c`c{_ޛl q{r].܄{VƱΊ DNg/USQ3b891C 0mɬuX/RSzۧ)צU_J`?bf2~> wyKݨI,cpQFp.yXOdg GAƃߵhj G+E.6AT=w;wkܡ'1TH ( HȤdy (0^LV{Jʌ3{ _NI:qKbO)~N0nD8!S%gWiʵ0U[MW2<{mT ̍Ɍʭ+˴&); 2Bk׿=/nwf/̻/܅Ds$55@j _W=g+L;hrs<8r7Pr{T%Y)acòm!$iF8,G_Z]|4ĸ}fDxnh& h6?HCD{Uǟ'i IWDJͱ:1p'X~ϐӤojKioN,c̈-X T"S Ƽ5 h2d# kMvK;f;I3N9x]=7^f^! X/TJ*:WWϢ4_K9Xi '{2 W'{v~Md7yRXŠ!"7FNovࣝs>K{P~?6j[)L=ӎXPj5l} f`pr>PFv{gV%vdZN#j #;|ɀu[ a)⭯Cd찴6@p7Ρ&~hߣ&V `9q{B6KSl*>Cq wcQm?:TWdҸmدK޸O%c7S%+if;l?>@t~#J4wBf/]\j:C_:rBT5>cAw 'Fngi8'`g }B닩 Vxkv@Q:,kٙB<] lQr/oR>{E17ƴ\z њ~TA2zP{6SnZsTS*"%Ie$n ^==!i P!'{8F\U7\'HvWfC@+ee qrȼ,(NySD%Vie6Dt;!(K*\6s>_oLh xN|hq Gm ]jHD[rx4:hP{Iߒ4|Xo쵛FȐ,pO!&!3Us5jc`fgOpb\VÓZ_v> ?F a ŭ =kZWh3s*KU+1ycUGiGA!4眮1[&*O+i K<-^4 V=5"xM; Y2v}:w,;7dI;WP#R@ųηmVΟ8+ yD|F&榺pE8/ţd -iā^[9p܊%KhIwy^jՌrQ[)P$ XD`ivH!!)aoɯh>|bUH-w' r@R/{u sBnw"^o9L8Աpqpo18@͇(X2dc;B@EWWQloGV@WCJ~g01~2:K EXP1ɉs Bg@M134,1^^ >O>{>кS) ư%>̗XN\H|3Xk%d7jqKQcO[a,"y{% Z(wפS4Ԩdk ߭l~ŕL;s#xTG T-LF^E[aG6 W@P\u.D~}8| haB1 JIju>?lA+YߺW~')@l&ⓝZDzhM+6ߦ-ecq$–?Cv>M/v\rp7IF>~PAT)0J2K/H,!Ji W_Z 堉kJ)Gmi۰yu0}'zyac%($!+<Y >Iru'z%A^!ugA0zGq2 GYg97zU|"~%Ks Eu۷=>zƏz$||wQ)y(F(os}ϝjiL7dE*?&@AmdtQT|ɧzV"/ Pz=1n}5': }!vZwxtS\Dxeb62LCPJ㎋ m%%HlT B}&tQӏBJo]|T l 7ۇ;yJ>v;m7;T]췵77Fsh^:rFh֋$z25E2é[.BYLl(|-fX>ӡ s+,Д?*ߵ{0$w -Yg De>R7!9jfMjj6݃LM8 # Qڧ<<)ͤ0Hx`P>r?i} @ݱz7P]Ee:xwU U⡠ KXi7b6BD ȗiݵ"b/XZTySӛfte5 p}L~Kq@K& O esmX)jy>Wv@w!ý0?^H3I[9wH/%2;_?dգA%S¨x?s(8ޮ ZY":]-t+OyR^|FE45>DΑ\#%IL.:xRyJJ]P7Za?X)R9K9n}P':m j`H_jTf<u8ҲQa"1vH̤|i"#m1}?R3`{ 3:LuLT6*, SԫԮ[wɇGi"r#2+{,3 ?SLGAhIwowxg+w܊Q\A )avuE۲-O `W֘#n)Ei̜8x䙗;R#[sZ-/7x,prbq?l9mJ<_"+}l ?N&E%8%'ї[bOש|啫>Rђh sFlf|ɞq({\o:[g ]̴orSr"IIrc}G\L8^b$A+.k+$w!]Ph|grgV91moŖV[L_4@Q&lcAy."Gϖ adqlN`- {{jZW^~w4aaDutʪR}𜗅~8vbiOaeoRʗ_!V 1`60F c~%8fT1E>18f.iMѿ I|b8ng_^'8wg4;9f AՃ2I03|55+g~mOqT &{Tީ*!l)]jEec5CiV5 7$ưF;wqxsH%!C1qWԊ"n+fZc7GX%'_sXaDp;bz|>[7NPkQswy|Ƒt\G=\Y XJ!SYX-ߕMepiX:oLUBPb%] t)\jmPOy1 eڰ>5u="CC1=Z]Z)~Y-5Wכ޼K?dǡy򶱲iz ז[VT;a)) (ARHmY0[zK@!?vI~;U|Dj~}@~3c8Ibvh!^7M\ ;/_rK]Ā0D7-mʄ{C a"rn5n7q%Pux9G7jS9t`[HMAa]KS4iYUu[=(~c_ h] a,̏oDa%Y_P9wL1Jvƛj:[ %^~n űDgaF9-L,q4q7>xJi^gN#+\ % ZC]yBV <[VyuO%I{/%]%ROVe8ab0Og(<礳˾q`%,i9khX2F';{re)[ [GO(9^8T#q6|4m%[vWByߑWC4ϊ=ܽ.+;чV5y|rP>{ZH*|ߎ~"To[uH3WeA.~72̞Pii1E]C,׶T,˘sހqJ1i9ǡp :F>;_ J!Tzz`{h ߭+2nOxJv4DDYSW|赍K WSfw±ަY.bbXZo0 Y 8/vf3]y(Q=eU]| [Iv ~LU/D0# SD>m҉^MިF@Au[A]{vO sՓj'nRkBBqA F i+4ڽ wأTG 9Wo.QRN/ eKڥe*C]PtN][A%"ǟmi?&jI[6>(]`]! 1䂠2a/4uqU"[Y ̗Wy;ȔNwQEVh|`qumZ|lzGꙐRt! 㞩=Z8nd 8["F+7VS2 C)ڲp!?lf@ k ',@p3(~v$=4GL 梿1>󩐵 Uҳ%rkB#jc@A񎴢#U>`h~#UHGii"脁K'O:TDMqǮ +AT{rݶ*ȩzԼ*ͯ.~爏YCs7;yɳO>6𴧧K]V"yy;30 +2U((VgAp~4dn L IeJ|SVO)E3H65Ni # pGXŚ ybI3g 4jfAXw>;(-vk59J6}>r'vs-TwCDx[-:%tɋq)Sn-KX=9ukɾc_4=gyoբLuZoŒlFX~&!o[a&rPf[#~gu_8lٚkX R'JQ%̙q5S 0=D7ayI1z\O =lO)pE9/[5S(M#?*yxeY N+8]!l+N? &{tD{?[ո\`6.pτqc2=H*TJ7JK;?8IMK|Nd>}6I^M;򾅎-c֣i #鿴qV0l>sb7_韸PSf:[fKѫѸ#^0@v>[;ӳTG߂-+{0%puvY;!D[ix7^-g2 ~h\H'x|#,m&,l-\{V'畤ʦ!밌Vx\׵f!(]F>zFKܺ1HG3Hd IԮ3"X#?FW>#y9 ;L !(Kv!?[dhuj&»ܺ<;k=NY/^I2K!OB$՜q3#v{Zi~v2gM]],-K3O,DSFLӂ)FKe X@[Mx*JZ2 cv.]/>\u;6f;cRUba"E.U ??ʢE")h$g9m!g+O|NeyZ#+![anħW/~iI*=-pJ)TdT޻96)-(*&z~L>I Dvh\uR.[vm jOA-4\P~l=X-P'|]4:}IVc XkfAĵKbՁIG~)=jQQG!`ĢFHߢMʴm2 @|2 tO8i_hI7/5$b"sxU=g] "d˃:>R6twpsO,%B|X,7Ԣu@nn`#+=ol[ 嚢 ::$e+3񿰲Ɔ9fʑ Am۬zhDiJ?@B>7F}ģ~EП7?DhI.g Q,$xn  [J͍P00CaMl['^U>1Oo;fN&WdzsC$ ,,w5;{\71VVd47( SzW{I_GB5`G|`(BKxm㫺"cԶ춶nGJ1 ,(UjfrTnj\0DϳK$å`CwM7G1\%(n.TN˅ '#PEyC\Y2-2[o :p/Yħ&:Gclh6Z׼̔&mB'ST@h>QLڢXyD)~Zbl,y/ޔM7MYtHZkaFdQ"L6K. 'z57E[z>#2eD'9u+3~ټ%pwj cT') Ul 7RF~_F!̹勗(#éiRP||%Xc,|ewa"Ɋғ6_Q-bXFmBkaрԮ:fQ\&O|J6 lRjc#LCH`=w{#q*r_]*ȑf.!O3B 7?n6."WΨ*{0}I&,Y~ ]cY!\ek^E }܉)Ix>@M:sFJff}iM+z,q}=֑n t.i25*'K"S3QM~Z5 pģ-- H1qe=m!q)mFEC6oPaĭ̭9AҽM.!YGF K~ϤNOMӿ%֌#2˨~&u( 6|[ \iM牝4 ^fL-'vT >%\Zkt*v ǿrG^ 7CF5> Oy){5֛glTk'X\?d.U%?Igj͐w!ky) ̯s;%Jdy:@w}Oz 7']%VCzi&t{\!/;wN/\RM|9/˸39ڈy;&t:L'iy3I\?r@Iۮk\`cs(%yjBkAd#Rbc8L(]r\@[/8"+w\ry<ƕ8yCWE˔[]J>ڴ&| -ef # ^{02.1^W'_=/ / B'se:ua5f:m>|Y~hU_EVh2wK46?mV(09Bmf}?B5Cl߅L.?͍^t ;RjNaq1nm{O#f䭞:wa686]L-:4oV ]Fee<8|4pAp;\Wag f/,^,xLwl6xx|spub::6ei13gh# < #gXqm8rsMΈ1f]K Ӷ[#_TaCP9ad(P3URӰ]?AI+$]glw>& \nM)emQTINBXؾl!30‘;j_0VpXɑTg7 |5?YKC. ߸çz*жj _!< rMNYH|͜h RLp47>58}B$ jI|Oo*C[ne'^/A,w^CQ;#f-\dQ);Gò5fwT6|T4*_PZLwqifIPؑf2'\ڨPBwAPqK "jPBSN*=\$Dv+"j?A_I{]Po[oz\|U1d ?r6Bm!i |k5x %9 %l64j:D~}nj-Ip~Ic>'*pV[5eW5jg+2Lv{>:+[AI,}ؕ$ܟLb 8Tj>P,}?v?1mKΆ˪KZz;_-wv\(M[e^&1{3EV.ϡb([RQƢɁW 笘t3@!!*4Zbpɚy:fPȲ5~$ 0!!&,ќw vlpĉ=/UuiZ^V YIWNr4qpl'. \*TYTϥ` ` ~[n _^k^ pFA\oKYN2j$EPB1ɝ1ֺ=yq)*h:q H ^-!}숞r4Apv(̴,lv,q5#.ٍC- I)[^kt#S;Lx_ܧ HET:ൣ8t;=m ,= y:Dx ȷ QZg?IދD7;(~@=XNi -N!] C$|֊{ߍNb'?纼&Qpo8'%VjKM* ʒqi3vE$ }^Nun{ߵ4ĻjGWg,_>bM˥w=?v0lGGkQ^r5h|Zlvb/'8 ȏ2gl`hNIl-K`Kǀ1;f vD~C5U p7mޝQ34X7hO=tx{âs;a얽#1՛uTa!)zy Y6-Z-MqQ X!\A /pz^rX/+?Ӭyjx&"hR};,hDC,^WYTV}{+4w%'@c"QI}h%6OQ{"yƇ ).b K&W+;j5 n~DXig^/d֗r4nzrԓ*nu:)MK:qSGˑpkZs%IOi~r xiM^,sb/-f be4 gE|}g^Uئǃ4fs n6@u9")̓; a/#,p;-N=c6`q&ӟ{_@0 !(F/BwTbS-M377&Wv>|<yX+1VbɽlhȨ1d._FL mp8e#F-ZDW"[ +C?1y?>cd{2aH2@d{/UhZlƃ,2iWw; k$*Єk=-ltO|5]3ũ?V2M6)RI;x-%[jM]4 ?'*jHF4J(."A?>Ѳ3GzLU{1I4m3㝲WGHt^gP6n-p簡C`%bON6 `oZDI؜Y~K]gqԭWYyHv5:6`%zơl#T{=$ 3 F/R5++%[ƺNM#zx*FF&0f|x̡ ]C2Tª+ҹ@د4PAlxJD9H·bOqɷٞ,bTQFIHܪ%2vF81MJ/ߑ.?l+b r>1QnVfv=Xx ){$b\1m|1S &reiϦG+xɪ˶B: !:+OmQ&q!9'4zfpHt|E<)_IXZm|U ox)wf|;QbLXfo8]A{2I75ih=Vv6Fl;.:&hjwe߂xCP1JL0w| }o]Ȳً lKҦڢڏYg u{830VB㓌q֥_7`ގ9'ꗃpM~`(W/u1`NF"1:+4uC51?Z_|WqD][}FRpj+lS5M'FC{ilqz) \vxPyBj~I#o8^PСo6˖ )9k-ժVl` W'^H}|pVCshX6UIf;LL| )T&=IIYȬV uw _m|;mQG^jJ{Ud!E}YjtyYH^8N| {CsHe;| r$+EDZn3㒕jй4EͽvT>:<`d?P ؑ->.bʎvؐ=أ?JqQ3VƮMybGN(QZ0ݴp8E1ҕy0-xQуPhAOpXF'kFCWn 3,( +Mv=Uf3g+aqbn@ZO!öOEW,v]ÿ=.0Cp$O+j)i"Ɲ(Dmp^M-3f]DMb kͫ~q'ffM$kX ̜1b:@{S|UY7i>0C%u>7R2LWφ^TŌeR;9AZ%ZwW,}2>FzrD| ~~SܜPuC-1"̢LAVR*x|:/<Fф }@ӳyϼ\$ s D?OC=fRy`>z }~==9 Cp'};culs>8ոOWH GgLUVJFJMg`}bh&Na:/") c#Ks KGO&1 i*; i(FHuȸӂ!fﺑb\ڍ{\{6ZE2K;CIE$#+][G+@Q}Ц AU9 &!~;_.O@kfM |]P#̄xLNٝzXcASgdPHzF2j]ڭ0Ș1"jo)R&Ww,]MxB#+s; ދICT?lOi(xQ{mF4_78_;$oQGJr=֠JG !veΖ]-g>ӀMptT/~OES .2#dž@{+9Q44#zkŲLD,=D(}T,א܏(B[|uۂfwfAͣFxt`~K)Kqzv煇.lɸ"Cm\UXxAlvQ mHG^J!4: #`"$;c9 퓵V 4 Yst8hB-](?L}F&B][5}GJ KZa~iaѷRmDsǺn$Nۻx.@@ U͋"D9\Tz{fV]Tœmfzh@ٲy׿ t:Ya3! C (SЍ׎RҌ9ʥ\KHoIfƣd "xrQqqA$36[sבc2<0m-<> @{$oZ~~s^&k6xZLba.S"Hr]hݘ67ANZcoG kK Jw)A9&л恕/B-cNז:nK.ΨAjZ>UzM>-0TlT"9M9$k?/fW-f@h| s)wTpw2pK-30\5) cu^7mꥑk9>**KpH$V"O|J~kwa &ǎFK=^u'-Mp\-Q젣pu/r[^'Z|Ҋh?Q/{@󼮁P8"˥k\-ri $ޖ{;4_](>ǀ}WdǑxo9CM?<nOhӃ2(h^9w3I?!tYK"փR"Br8Xh[\v13M}3Z)l>s u+N9CLt˔:A揣_f0.A"pT@R!޲~wGzL T U/](:e@XuF](PbTL]{g)3FY> z1scLʘT|Ʃ BWj$/(X)ѥB[;,RB_7[!eTöY\,)I^tqJ/o'3 ,$SQu'$ xۣZ luMZ;zQo݇͐ U5ާcm fC ~ <_jFʏ[{pd 6+i;HNp:UAk JBAe)7> $&2q bHT"i|'zF#bzů\ Z9vaMY(UW|x=6+.7`2U|6NjGfAx6_uzCrn]_1.2c5c < V@׻mNd[+򏣃8'|}pCI[|q?liQ{6MnD<7gKUiD4)OQUl%F}=fM `wEm5d'*(ջ˾o ;ߘ-|nX>|) Gs7 -O\DVe2arDA _7$pM^SC3B.5ShDB6SyGM6=\!f;Q7n4=@x3ʖr`or Cσ1tg贈U*8D9I4WY'+浂|?y᭟sR@WTJCou:Z(k:%i9on w$>@;g7T@S2i1˫~+Ń6?밲`By@}ߜ\[X6lN=Tg0@eK_f ,}!Ig)~1gCn2 ySVUzƨAO݁V iV|.>dޭrm9XSWA([ܩOkŏXIO"YAbL *-7:{q-!,ۣL?[ /<2LYddLXl?%cﯤ7Ax"{u2P"}3 PBt@%X:IeɃnq!U3;9II.| LAd~WH[&wE(==V+J h]̥:Hdp^A1T갨N]YSd[, D;=l}FRWhZ[ρB sAP`%-#BG`-/|%-Ns1 !r?A9NoDB_>J6ayw!""2J+NPcO0;JCZNp5ҥ;hB]ڧ~O;éBdggs2xB^FGεM^; 'm:n+|ӢӘ7q% wW_"[MX'&!rH_Q0y+;?Qn *w7^~X~'RBI04 oM9v䬣G K-,+UGyh}]R#F:h@† {N4 @wucXIbd}]RUɶ=W.~SQ;xQ9<6jL-<* oT&܏qv#]ƨ69 |3> /^kX\F/}wiEi D7.xR2&`@ҹKzS{-8f E)y4f;B Ymh'x 7z QN{L~W)u&BI *TDs l4b ͒`Nڽ =hk_UGHפ]Rt`VY|KGH0^ۻhrgU?| &uxX d*LW]Ѩ[SڟS0ܬYp[RzrU ;F׌}7_U±Ū͇sC`[6yMC$Q<raZc) m X)E$n_hAX%e@88h)}TT`< >oft`#R ΗIxgV gO4ÚbJ=pj}&D)`XR8@\#|f@]bd5;XCF8JU&pOO/pjtv-{.2/_1LN](ib-uOzѶ!ZP0!ǾL5OgϲZ=pkcf'uwgĝn DŌbc-SU_~i-fW7Dm4#JTu*TׯpBO8ja JMnC]68QG5 mb :bS kg!g,Woaj*88=QUAӿ>*LV(\oRE "ш8J(Uu c-"ܜZR[rL 'd)1&JefK-Li][-ZI\dG/pv,K’n^s^ݧ6@bZHSK1oBj[g[q*yig3lK՗aPnm15~vgOyX̧rEGy-\A3&Q;FӘuqi,N>uvhWWׄUrG=~ڻ[t I:Xu(5`6Q$DQ%:,ڢ[~=#M#OΪ~\Moho}jOlU1MJ\i7 /Pi?"זImA?/S<'Z54Y8ezt4Qk\sJ4O:(hTKa&JWBrad'&> ߯mksѫ:g a&Bj%K $eOp/`];q', j{}wLsGӼ劙v|<5 h#G(yܾH*5[Σuxl dC_#70#>~×1i?1O}Rb__S[}D0<+Ƶr/ȥQ%i{?# i]V=La-fDvpuw@bضS*n.źArY+'k8!);N]bc8]r<}iR|瞶]fU89>\hpŏ+* 1.f?uZ_vRy!w&ˊI^]}&-yະcvb>* Frw0}- +9d.VVҼV^Paٛճg3ʁL(9\$ k fSyw 5$TyȺ{L"(>5#6C=ah.]~wf &%zq_>T Feua6̨Iib%@^ÿ-eMwU}FΕFhXZRp5ìwv9SqZC'>S $I ޱG5qo*Qp}`OR"̞vvPG.shNndF .2]nԿ)=gtX ̳9 q0ܲckU[jM}τ_X$ǻG  kXË3<c ,>nqrz>ص^1KPP E`#ӟqHk44lnxɻwM:**kXܻCX\G+8QNڧՓJ>hvi8 βQe[}b; 7&_"׳wuc CrӛeH;CWjkj۹=NYbzE> ٹtzڎ?pɛK&SC]?nԩ;{Ӂ'5`g"֢V EH?quf pSrQ]uT2!?țw%݁p@ ֨U8ξ)l:Q~j\a"NHO.Qϛ.h0wn:g(gt:ۅ`fL<5֡d!x̚ wN7! =(jSaqzI ~U+{f"j֙\iHpd[Nݝ wn]CnE0:r΍M]ī2e'=Тr)ggKǎPּh. n3Zp I՗}0+Vz"d+F}&:кÆ&X At|q*="Ј;x'_3oJPrD]֖ ] V923aiY{}ؽ뾊C),%p.K$H-}%nxH"A1ʧ_s? qFk FňqiL96r11[U]2^kaJxL7seL2Ne\#%YsXĹr#ƆNdd\ddD1z$*0bm hzaV~a1'[FhȽjYl[kL#cn[w}]>BvB7L&I< 4S~t}哱֧~O;/mfư^Юk(ꬉ"Oĸp_ZSԪrԙ{d$(Y|L$lB;nۼo"" C~} 7Ļc3tjܬMs:^')ߤBM▅}5h|7ߑy +dN B_`L p%+f1FRrB ֘eJ>T6ŕ-674}[,uX~ImRB"T,I5w(QԾpuv6P/ty60/>|ةzfl[˃ϊ[Y |^5j-t#7NP tONhoMNDrof̡f}Vx? 7%}DL"^`cTp@%Lyj\ fA,WѺi Q ލgM y{ ߏ^}`y^6mȻz,(W}6Ԧ"IGo+᷁>.-c=ζ ;|HZ4Iui7Kk^8vfӫrC{S2CkRʼn+% tNˑ4]Gq='_ws]R ҏR 1{9 ~&ZukS4tE9u#{Ǒ-  fdb !3qa1| KqV NISfM$B5y"?IC"-`]/Mg73i0,_u e,bȳx\ Q(\#+{^a"z]>?r  h<"Z`jZnSW_/M/JKuZgƚDoO4 6MqzD4uΛ%sT}?ݮ^U!BBO/n:F`Zz/9;5G8 $3B[z3^SFb_~/<7I+ڄ_n)lKN#@gˈy\2:ʙx}AxSg]q”8b q1GKwk?9i~}KBa jњ=inZOx؃ u^N'Z?t2oxWZr?4FJan, *" `sծn?ѝ:HMV!Q=cL>}ÓC ڶ_OC}>5S7j}M7|@`"ڸ @̝\(y?t-ߛϾ]Qi4 gy9ѿ @~'upw{[}No9vuO`"_r$?W`;7+Liltq.Ӂ.F^L2aQ3w :sZQf2‚KNFGW:6p^⚑ N_ͨU΅+$vf8J:S^9ʣVe'^3 Omx/QӸ )9w0qR5hRζ?ȏy4 ~>'] ["֨1O!ΞS[X%%Z*[>uF[M!oPE%q:G 5:1MQ%bo.o_Ro:AXtX x/zk2 "+v"s-ruODB@BmDyiMČn:|AuLjE#*I&w6(O`vqV^.c43i0(Ԩ) jL E CΒlUY0Pk-gmQ] ^R ^JBuM ;)N9LhYVF!/LA :b1Cc+:)IBAؼ$[@OUgqDF65 QRV^ГQy4NE,::V0u^+7\+3[vV&/۶Lu:y#ބً48\ky+M-[MK\ڿY5 G>k+sћ=mJuV bmL%hUJځ59Z0±E2iHm2 c- |" 0{i(pe!!6>](C,SOBCSa4W\Ҽ-ߒAJ5aV\nE'uN*,R `557w%@o Yj0?hXe\L4M+c@Ý@x Ӛd}vnCCp|Ǎ9wk\ْWɻ˾_sueEAO%`و.\F(O7R_VԫZQ/eP hmoE>6}uJi+ܬ%A 8D$O}9+F^ YcE8ߌAgMEeaQ+J7K Sy5jc9=+\Dvl(6*,k|kV P ĜXI %8+A.#~to4>nsY" dADO"?Iߒ|,Y]=cE*Z {sVhNlJ#& <]OU=.^xPY8'4YPsְ ^j, y^6& D.xQ<ܐgj ~# Ʌoo[ieBe]M}Uҝ=K|Q)-|7]eN#^Rߠ|dh(^z5|czi'Q- ;]b%R 3=K;&:= D|@3CdxR/4ʸk= 3`5ɷ1X7n䏒T)LTXz2YK$LTQ$o]8D'kVP"zy [f qlj2ORZ$ɺq:b`-##P%T2\I=ONԚ1/$sl '95[kfa"VL#Gܣ֒jB4Y*Q0M"swkQ”-;4io{}tHݻ=>wzN=%2}T >]C3ޮ$lL1?r usO/4Hh zU-.!Cc鲪o5DH$# woXG|kEg_=Ƿ$6ŕYVʺZʹ%iy{*ʹb%1F 9_frl- ߛ7d YO0uPs t_''3%0p8rv!Ltmg hkrQ2 FߚK||ofڡ?#Mܤ9F*N}=1U9f+qxƯZΆfz#VjAʥjAmMZ $lq`$DC79fe)>%׊Mr#$aIHw1?N5^v36X9e&1:!&0W[# +9}<f/*OtPNjj4>lLaiBmUP.:&-9u+8WKg=~S%#G"76fG3cq:/{)Jis)DCђVͫWPy8N5vHLRfOo3M&EF/V4-N  4m$dz͸lB)WGypN.[#Ja ~.ٍR G2eKXç5*x`I:e1,z 4Q)Cko*G3DT6;(8wM]y5Ӏ$_Pe gM7!]K(Nmh0R|'wĈu=?X -F!uAQFJU QIإ0+n3cf=隡b0J9ؼ-nI+?.'͎b7Yq !NqZ;rv%gC5CCuC:PK՟w ̔+ hfoDVG?ҥ(ၼ7\ BB~j3oߨNh#A+agei?!l!݆81# d.Y)IZBkP~?[w=61wF?:}VDv.fT<{_T;@cy9{>?ݿP{6sQ!mrgKgri*+ elcu+gE?74繂\/OfC/p"}P80kGNη'N=],ޑ6d #a…這mΟXd'mnM>X aL<74 4SXi(zDʥY?{(.NRLНŦBE ;Q8!+YĶ-nk.O_|`ӹQS yzpߧύy"%N핡0r(`#HbZq㹶m0ȑ%]; Mq7h틀Yyl^fQCdw>>HZj1T>? {*5 :C}Ib+Mճd:?;9)?n4WQ=yXϼ F %\LtY[b~] .%! ^eF[Lz3j:d6Ib3Qm'Bjݭx_&!SiAY3< x>)%tHĠpl$êZX/Yu(zVa:s1g" 0Fc[('5C_E;;aŒڗI^a( +fMzmcrNr+TfQw.ڎn Q顱(8;옴 m`ZQq8uyH2E• з:$2H[4n ' G :2سTkYt87Sq4^2N9=` ty+F&^+fbTiQmߔ7E>*4;k+ΫTĖDL X&0Z@_[@L]2r's\ Snm^fyPasJMk+QLjGfRbg65B8Kx?^< Ul7koEVŹۖO9Z19#xjXUkiv*.dhe4v"{: jkpO|w\uK\˸pH1)`@h*TDe>KCg#Ǜ8ppJu}gV}çS WD T ixKP/7&iWZU_Z nd0-jcၬCF;}gIUp *l ᰏHAbؕPJfoD+<2izY4^߼Ғ8z]V( XW?K?OބzWiQsaA]CW𓤏9Ft =yVe=HCAy\+oQq0Xd@&Y]cṢK !˻/b3h[Xo",e%OY 1*d}ss|i25 {`sY%RGjۂ6j6]iAƽ'eCKm,X|JJadz TLؽܻ/Q MX̷vہ>E* gk?j2gb ˰65YHlCj" (OO׭ j_ AxoOoP/A?K{MaS. 8߾=]"P~EwePgJp!;wlښޔ<]$>?1zyHIP <8 f~ [qt~$qD9.%ӉK[G%OzƩ Djs!FEv27 :{&FZ5e0 a~dfB HX_ 屒gJ:}\6Q$ȋt;~Ǎᕽ8UtǦ{NN^K\2Zr®*9 -x;.~Q׮~Cum=pUC*U}E.e}͉9A'IK Xp}tީf*G +k?LʊlgO_$S큢{@kk-"TaP~ax߶)l.HDKUaP7l6oRkPy .t:۔}Kez#3r&JO2xo x#J,ؔ\\6.6&T  ǚ2:$Ϙ"Pv[)TƷHEh~O1yn3Y˞S 6P),GdwSJh0^ cԫ'#*F?  o5S?̿mZ[R%īH/:HzʹngOGX%Q2w+( @̽C=Y2D"ho6!0g{R8vܿ*):9 HBb p[-gSҬk;sfХzBW8P N&$$f?WܳߢGi/ON9J^Ay}jm\@ʁw5}4w]:`~@a 6]u#OLWr ^j3꼉qƱJۻ{,ެVq!C)4$ 8 j(h=b4X)a1$g Tsf7y&31ѡ3W;aPJ;e:5:4)@}[FєGy;p0,2'(abYHeSK !_ gJpωK{5U %vJG{&sη89F%$ƻ\V ,w;. *oZ9zR΃5 ?/zB<*CRט@D`P,Ď^$#&#\WP-IbKmߘ}ԉ rꞯvIJ:Za eBk1 ]ze78 `'FFR~˿2C*'Ů Eلa~%~9T-ϻǐ )^baInwjr.bٌӗ[ECF17v5X29f@ŨXrFLKh߸q?JA<ӆPœ%&xE׿pa@~ڶpJ{TqW$/ubހh0|ݠ/f@^1}<& Ę.aj~ux>S飠/*nD^Au!oծ41l[_OUmj>Z: ~~d-|&S_XCreU W?³);ZùzWdM azz& UDz]_B{yuEǵ9oKe\ww[;//,Q[(I2T@Lj&1Wuk5;Q^y`K=]fέ+|5e a5߻-0P.M<*ǼV.&PhgFQF?cusIPiJЁ!aku'GM_K%e`/JFB*D~kX:rֲѱ)n:R} TAJ3 "Oz]JC/hp\f^/0@+6-wi 6&/%eG9䖪Ҝw[!̩3(4YLbI ݃Sǖ 4Z[&8aҁhްv *hFx×1gN+r ;|&}:ǮgY/ȸխBD[fV%]rusȓ7M7#Z.̀&i+R'q?_9J.j8@඿o೵?dnލ¬^$eY7h3c6Oưu#چ=/Cc>ؿNW !va S;ȣ#Wwh" {1L)jz܉&ca  HH83Z-&c )-綈KF*GMT{; NF6rC{;&bX를;U%]:ۆ*L7t{EJMUj1ƌĿ3yYgqz"ކ'5 "I6bپU럥V(ʿtCu+oxu$r>!'.mAe?,8YQP/D9Vm4Q?68%Š^v$V @?V z~oy .nAqtpX1Ϝ-0LS=$EG[|.9FRc{i(P$Z0JNaT!B_.b'2!'iO lwN9HR$nDZYx3KLmD3BtȖ@Ia ~D\SҎJ1>vȣ?R؁Q2 HQ: Ͷw=ON[32tr bRxŻǤ7\=i a_ [ylvU3wEm7a;rO"maF{VXMdհ<*mo4 p^+}.y:eSPsE+Z{A~FH`km E}1Xw֑Ghò.YT':أH"C=n1rİwOkbLvb bKڹKI|v/DgeAU?wKV `i4Я3Y,Kmj rx x{CT(UIw?!֢KKb# "FXzvEg5N=% }6 5pOy ̒/M>e"E*DYvȲA#J$w ceۓ|z`0,2}S~:y1aRZ^KrzWqvBt-ŭ%o CVT<ݭv؇G%:㠪 E3uu EHʈ|d4lQ.т$oPϫWM~댤 :,BXbb9RޱdaЏVZ%Q!W^_w!q ߵTIGAf^ty +OWZb.@H Vj .h+M%܈PmȻFr>Qɵ:ߞv.yl8aS^2C4obdҒߟf Z*k~p޴%ITAP%' 2(.MQ=Ggy;IsԈX}{}]Nos3~_겾]}N(+%ٓce2Ej]^WٶNMţ ʹE;.W~#!#3cQ-.8 R95c:`0S?RM9*N#@! G.-Ĉ?C|[{`sb"vrhؿi,&~̸az"7#QϿ@aJW(zcO*Qڲ?I`.Sa_nj "9Qݓ_+k\X #Suc'bgjf3W*ɝu?ނ^sټW:܈x#U\Yt 4GBa&Ѭ,O9>"?ϙMʳNl1=VJf%Dy{z5)gD~y|SCBs|. 0bY]?74Qm`GzpNd7v3ܜ4*L}$ꥐDVrt*BXg &^lWdIВDʄq6g?u"ay>}ôYr`/ZGv|R&Z4N!LslX uW C#P8dCA};"2ztzm6Gv#E)(K'g B.ʱ~Lc m P<$97Ga }7Ev bfaM R5rfW_[Q>ɥ_6x,%f\]嗂tZrLXwB n6:]j#5ֶ%BaN\1Eڅ,.ˋK g} g^MkUVܐaĮp5@}ɳewrL6S> LC|t8ބ-oǁԇۍpQȤVSE;ՁjdǘUYW@W -|8ট<< ![xVN3b?c53*m]ţ?L:xAz.d.Sq W $9'4@rq1{i9sMh%a*ˇo!!#K?U9%ёBRL=^a xnQu*%=&LA>K=tMyu/VgVZǦ#g|rd B5nV~' +k+ ûf ?-t%L5(j7D zxye)lUV**ua# ݸ+pT',wgm̄6- O?xKIfV"7JP.~%x(v:&'T*Q6ʪ!.V!(zwa@VQ^wD q?1)ɟg%rH+sL7"SwI.Y{*+͔OI=K xb/F`}Sc=S`?7+SdBfL4> e\#A]B]mL?A8shȮ$+sfh:_:"?12 wCyIm)ե'%QuM_-ҿZF]gK'>@vO/ﳅ)y61%@ժi)^%<9$ '<OyRDYo#o7NEv:7m|9_ 훎n3ô'ovLJtM J~/$!fd*Cz\~#Ch_z{ݨDbs-7+(U{'8ml-ʼniizj:ӣ}Μ)U@asDbD2ӝ`Y#(كxvl*02-A@M {ug̨Ujڦ)#0(+SD B{C^$%uŌ@l*Y"귐U\74b|%Pow?,|=ӯ$2/X"@O@ Ki1sgD\WU(6+pRkut.Awd=m:4anbԽ~72Sf`Jq c{g檄{O~>|\6Op1xruXU MtMMb'q_{jQ?7--jwfk7}y 5a(հ駩 VF? R>(G4x2VE{bViP=1ƾ_g?tz#/PyRຏї@rۊD˪4sk$Ll+*r8F?YI(l~t; bW.Z1dPQ}rl)J)e&폰bOs1(10&Ql W&d *(=5 6>Cc,xsדd4> ʎl a!ARU{l ߸w9WjFހ#e2:RC\n# r{j!?Q[21?9q-i[L,b},P쬧F6'UсM\H%"漢':v^t>9ʌ[N:_Bh!Æ8\\jo/d8 |.W[VtQcCc>޲a%g]{c?*ͤf?|7vd^ jUnGw۩Ӵt#(&{/ u:tǡFQ%/)+H%4;jB72=C` :RFbN #?1@H5,/ R/f/+|(s aT`b.~>V=.7S݌!ݮ,]@0jM좿dA ,! 1>WL\$7$Nf|TY+ʳI;~#O"'<·&.OItBSܰX8LwWzK~`'rzX @DC'z6j@x~RoFO&-lUj>GA(R棼D|m:쁌Z1aUΈ"[؁yW'rĻG|rib.(Kq/- J&ֆs4,9swelXcVN~l%8xmv@+<Ua>6#XBߏX(܈p=\g|pjjɎ_-QY !.h.F>\3_l} fێVxa 2{mptg[&\$$`+ص\͓xKUXGLcE*eW k_>e n,(?xl)tÔZ3?Q n[ˢ3,EQ?ZJ/=}snkђ ɼȃ˒d5cgԇgBQQ3j@gSUMPq:^q6"Sjt>\c }DiiΪ/uj:m,weuz'ܳ2Uͭ,Oި6R$AAK]}ϒEx\ҼON#/SɎhd801!5|/ߢI&vbɒ\;nۑ,7k.J:M8I-.F3|E/#l`S'̉Ѭ6`!LVEΑ0(aмH sLXÿ|9{UۻJa&ܑI]slm^#GLj}H ޅܳ!;CA2H.}GW}0ˆn>J+S#kw(,Woƒ`@=OLq KNjSWW}Ք“p rߣFdΣ/[$.SNU>o "* 3=,e $x<xgS?OPL\;o|&Iu#j҈.㇋EN,9&- ~Iݛ%T A ƬYց-I2Tna̘d'_"$ zePе^Z )e "#jjBxd{f>dn@I<Ж@e? 5n ]Z!m Q4^xe6ЈIχJӼudt翤7 1D,<~$ÌUA!1+m5A/DS/C:Xe+pJV9= *Qhj_υ*KNcU)6=TTLtz$ؗI4n, xk?)#)0xL*ud|:pbL˔~(EkoH`缤EQL떞 ŏ'ޔݥ"D^"z)b}C- 7tV]+nW/d:~zYʌ".b1&saT̶Mf.Э.$]3 9쵾Q*+%j\z;wU5*'CY|&ݘkNph/>C.ٝ~9& qqy['x'؇ˆ7FE3:Eh5? 'a$Lf\^һRKJtTU(j}RօXxvM | Nk8"rpYqSF!ϋI8C~]Akee#G?yTkDq.(&Ꜣ92!7'y|S%?Eݪ ^{U_{45 aV}ѴO0HG 3 " `.1 ̃7C^M/y/׉,I./l"GW'DoTx|U&;W.@@qʀ]jlE|#.M%9(Gé/6B> |OadCwba59mzr^Lߥe8L[l: &eX1&&ߠ`KαA_#JٞrHV"fdAJqn1FtD_qwVjFW/(>,,Ɛ#3 t73m`o|}(\bl_߰)P4:1֑!č&OD$o>)tkW܀ >@սX96DՑ$Q$ S¶d%ӼA}'f j3/b4M?LbJ_$+b3SzJcRuH%LH|/Cˎ1:P0 ,@^0]FK\VJNSvlP+~Fr_# B..-bm$aU 8N1` sJ`",nNlFk KbrOpZnw` Os o_+m1o:&YLǮ!!au]_ts^C30fLw)jWw.^wn$**w5WF `FtW[B80}|( z_T"}sn&[)*c% %s*`gT#ԃ2T 9i1p(NRDyKbz!u'5.6JLɇ t$b\<`S^q,x2(XZ9-,57 o"Rڊm9N$M|6,G@# 2K FM]#{>'ZʱgQ`lxX4b,ȊgJbtI|"![DlQG2ȸ:fwi;mFE7mٱ;nOqfybMiq!ho#O; G9^iY~j4zm.]<<-6 # p_[MXmEp)TXk|#2ߗ]/ 8 ]CJfxjo>c`~OH%ejGFބbfal :1N#vnG5/r-[4 ;GAn֢_ބ_Z$ӰB"\դV#tj;VUGrΘ0&+\8Hg"ґhb!/>&\],G9\(  z5 wD^\"\فFe%PUtraiS4:8M,~:oA]YRjuOw.1Bf`/8_Sa#\A3v* +cʟC.xKxd&ruf{KU~w~7'lGؙa;C:`L"@SCC^)\„(NJT&]Ş*G_+tB{eɼA#S!%wu2TVj)EbyX' >wzdR9٦4kSͲ)=GB*f P;"(8# { ؼSzYמ-,[Sb9XO3ػz0{[[fD1b5aPFo[ FWKɦ" xK0c$$9ZAICR8}(M = uWaᏅT |*+3Tj9S50r \ v&oRQN^ |ܶ4BFtbGxyE!''S]mRhj뫥q7!]V(FtNAYR"呟R%!ˎ-YFFL1 _ a)TeTk޶UnJQV+O@>6^үP Rt QH4rϷ9Cd{on>7>®-P>0Bg`@ID\@Zz+aс 0.%ڕ),0F5&q2V1v'ĵ3ǥfhr̚Vv>\tG5f ,z&OOX*+2Qݓ Gy@,ur%*$)\Y 7ݟ_I?Ù.nf!GydYY9@Axr-C[EB߶iIw;",t_y}x<[vG)So {Ljњ8FBzQZŁ)X/'I)OOhgpȻX_oӴ` "EX*ǸQ,y'p(o5NZ JeEG^ѢM#q?ΗCKOv=2?w~[]`tTD{YN>.RB_=??Gsir%[B<҉B~IO$P@7`;5?]Hv)Fs |htSV"S< 5 )`5UUIu,_%Bc!Kc'+Ss| k.h- غa0iLb莙tN2Ȋ†מj)%W? *; Z唘jIf|4teZu#UR1 isEA  51oWQJ_~հMMwq7x9?麵sej]Y`@%iuhAVi;/y5 _;.pa+w//r\*>E_Is= }0OԔD[wS)}OS_lNwxa[}]G|)o9#$]z8I8=.WbkaƮ;i␋|X?pk (BsS_^֭nR廎Hl^B95{N '&z.":MlW!N11Pp fQGմ3=k(2rX}/=U4OoyV?锳P@ b*sv\F>xE/+/{qhh >,{؅~b~@^UF+=\#m+aS"H~ǽ\\#D1Adq3VmCuUGD#l,QΠɧϡ7I))`~7szuܢ){ԘlL.A#Z$t尕/佩,c??<,ȶ!(/ùhvf!" .EOJyX˫1ئ<JJH) 7GRv8_$dW(558{CG Ubg mɓAkdpS(t+ InM(UH|Vr]W̐6@59&W@mMxbơTAD<`?o){.9ڦ^Al2JeQߝKCBp#Y o'XLy&_٨Rfa8]_<XH%^n8½>&9r'l{<Vqi9w']F=M79/}+7i`=m:$Z]#i_g!ޘ&`AڸR\ekTLS!IlǮ$d'lX;krJHQt:P• 0W[J}Zn?c鐔{`׊(XaT'fD{1m9jHlm6F0w+|tk~B5}`p_#ǭ~+?uYZKQN(<\J3 PP *^%9OyRF|-截QZ hwGa)!$Ѿm-F7C yFy6[i%PUX,64M66fd7Kr}Zt֐rMS,n~ҧF禃L pPFfjԹֵb;Ibznb q'/[yN2_Yd7!mYpyFEhK+~oe 9aŵU? gaK_Xh|8 TOTSz_y L29(-9>^qcQYm*XgZZC〤#B&82}V;A#GS#Jꮠ~T1 NY3`F,h<maX5[ڶ"߼z%hȘ+z׮iV%ڬ2 13oڭwA#pI)D^W.YpYgX~la+_wxHx1\ݢLmY}3Y]4փ`4G~8Ve*HvY#u?_E$[Ckg X|tNd%FpyVn/p)  BPv*LșKFl %Im69͝QIf2,Y%) 12 dNZ<4BqmOw"4(a?_e^ Tvv>4)~4KþTX .*&F'M׏"J~HM$-Z.Ll}e7v%CPa} jX5}ni<93 J>j91\D5Xzt(\o[צ?*ו%`Z &k@TQ-;ecG*L;7\#r{X":^w/uvz}OZAZRS&š K~.wJ}a! ~nEnm ^ƞ".Aif,<7lt!'_g:}_\X,IQ7/KӸF. Ѽ c\ăƱuq6>l( x 8拙i8`?)CDOa?cͻͲTV;AHÚ,!$z鵞UYH|F6Eg3lss!9$ȠOl'[B1Iej:': LJxmv(gUcAz+UKL#\ fYpnm$i#T}?K+}{b?F oV)8`i$]րfٺ!ϭpO3X-cvBb&CSĂn~jEwNɉa+E߱lZ(ùy^޹l[>~@'YV[.'SqOI\WOnNp&>O:l - q[4Mq^̻{NQF0zuVazĜl "8m*oހx@nJۥA򗺲}欠W.t}ea 9!WBzw0X~IbQ Ɵhb%hW4Ѥ$em5:Z$+n->K OUlO 'iUBrjSaTXhF Ӝ2 [ȏO$+vv'?ɾggW${&t/?5 msf2e:"BJs+LJþXI71?3^=Etf䇉6vDa$prRaWqhX1Z4F[ܯ#Z&_zoCGrQi6XU=a;ON'$6 PЮ x%qkuZ?kL~q %؟~'2O@^#,{I>ݭ)45 c|Gl$$ =ް9m"Z^C~^bC='d3 ]Ti2]foYB룖 D' <8X!~)ߡ;?y{፼WBI]J dS?ϕU(\La fw̴P'O;\+5+?j%u]|R Hd'({_Lvg4OqvrrBVF\{# Dh <ڌ>WB{,^n\#c'wO:xef"?(Cߪ|$*eg7:hr]=a#\-bpJ%.v+_sH>b?RR^P3+?JTބ} WQK!|u#Di9[)_bVt`5U~΀p MfeLY k^˔ad)4VFm:|}c* SJeTqcl$ [*(!D#8$ҏHzt_HZvJ-5@[GJqWdab$"p3+&J;W)? *8̅qS^*8$Z|JC" ʨm,Є䝪GVvC-dLj7(7AInzW|p@C!~n*K77\p~C`XaqA\4 kNaP!pM7Nx]AXr~Wc|:0,]0)< <#lj/0eDs =>RT77YZ}WTA/[=[~o"eF;͹և4Tkoi}CV9]mě#Y 3Y~X Z 7lcVqBSLk/uyMOM݉+y{uH :,z\a2:_:CP9XX>7̫h+3Dw^#!r~Ol&ŠuR`- 3EPd(Ї!-wB?2n<.B6L6p ҧ̽^5~5u􀎵@NХ PZ~2W*,? Rwh`˜,S'@<ډ:1o;#4Vnحl*x#~̹kEe'אwv+"UmyEeJM SC N!'*h0},I%K|ۮtX-Xq5_}8vJׄ];Xzg%Nq(ls]^j[Hncw=Ba:sh4+X>eH?aj/DOJ0ULp|HP*UX'r hGv])~k%Ω);&Tt ':ƥ|4;.PjqQ"|fL)F/<_eQȘ 9ê6tC#3rzv3ST*5/UJA5\ŕL8~JKA]ptGW0<DRYWH{+k;",>93b|߭, o2JM61ٽpj! kQXqcOhwEL/ak,0N~ rar>WV_'X6뭌-f XeC P=Ր#3cm5 Ξdd1]e34:%S %K,cOO!DD&z 1+rd#:d+w`x~nWy9(pq/O }"SyyMᴘw|hJ=S"1R ׾A!J$" Xk4,|7%UBrv8t#4WS,׀᾽!d0|z'p9% O+rYk(آ(Y)ZH|)e NB T_bā$jsAؕ`cBۜwᴓ{i!T4B>O}+.N%K(y rʀj kq4<>*a E`v0妍[ǨcNtooںK|K)C1Jdz,OnĦM#X >*EMQVh~P1o(^tXH˚$mkIL Pc[1Elzv?M&ʄ@7 arI>q&K`rvM;QAh3,NRn)sA}3((꾨3l2ڇam ܩ%+-s{mTM ~$aç|XdE@M"tQ~˱-ḚBb2=]ԍ'G[PM%?q%X] P}@/w=Aw1&7r3." Ꭶ *@iT2@UE-akIT~ }Bӱ%VZ2B]ɜ,GuֈSFoQ}3R)#lAsE0qޝ)O WyvO2k/RsB-țw#Znjhͱ×q2޵T|rZ2ڌd - thzgvxī{G)vB<9k_ń{! S|l&x7KobYeŦWƑ"8ݯlO\ȮG)^elH5(011!jsNuG > N~i: revWz⤵iNzPXEMsYR>C'(Q)fCCZ,m]Yt{$>$PY;U]jQF19x^fA8H /oDFy>&u9wu+ /jV H o WZm|D1BղHТ'UlY7~;A{.<ōLS{jg+"]X赛,9 >IɜnYK΍f2}&AX GHA4s)kjk೛WH~)7)%@Lg?ޏќ۔:I$W Hyݺdb4;.}1PmӒNLd̔nw++E|B!mȀ/rEjL`zuqχ\>fLi{;O!!c<\L@[FBT_di1y~lLQU5TlА1uqyFsi *~IY B4Xi"jy>?%B&O.Β* hH]\ͪ4@(;F![cIrUp+wS XYXQxJygqps9XX;rc )hq+ 1ȩ8v}QJQNũ<菸߇!we0O|"p3  /0l3`癆x^α.tsӃ[4#2ڗri4FT7 >Z_ 3[,MiFl>S $J/)omպv\Y#P%:ƥk.4?]uVW-R 7)Dz"7-7n@#'/ >ƗfɁ%Y5ssڂh9ʻBcp#Iֈ1ּ=?jߴPz!B㌝[d[{@;uimgEL)0#%dji4=S[~W Z+U@Уv$w*6+g*dO>T!a`[ D~I3AxweiZy-Kb g6̂S5Q@ ~MDGN!vB.F/q_:a>ȿv?[UXni|kj\>t:6_?v1_՟ Ӣ Z^q*تHU{ !M2նڮPz voxjgN 'A+!4J9zN].J Zb_q-*fX5Z&jIX:w;,K8/JoG' 65} fL.rը1l;KLFXbG9E-؈-KZm*>k8\"GkT Zu QyOMۑo+B 0sV j.+OJ]l? mah| 3(S7Y!p'!#$^(o GCfiUh\#z`FΨ%Q`IZ_%Dyg]RՉ$jZM]\ Nut,ُ}8|hg[JU<8AYn{7YI$Q歉uAI<+gQ|ީʔ.9{bFa"10T1+|s3_aANOiu{.{_5R:C΅g-};Ch+C1Ke;Y3A@~K!KlhXRy+MZsgT΀:ng`۵m,&S(39Qx<e)HRW'md)W"{O^/C? 2^,) aE ʽ,ݍqucq8$PifYK<=d"58"'_p`_u$UiJp:Z2zH_Z)f%6'R-1Z 1̏Zbi #M:hw_2R$qt+a3SxQt˓&ÃX3s iE+kzd4%DZ}ȍDJfHF"Z QTT̒k h&NhM{"vl n(`e5b}Oغ ֖柅x# GI ZEMn])h`2[ZuOd5ͽLU&ZB+t8{a pK/\ДuѨ,yq=)>`C# T?"BǷ%v넬7ޘTBXok@|ڞYuRL0&#[`xn3z _ttl&=~vir3l#ZK^q7bARcO }zm5bO@pl˺tSvzK#)FQ|OȩA9ƕq̀'3@Q?/( Ow46S`׈Ճ4 tq q ,MdV1t 8~4YHC)+xC3޲x^G}~Od?[̰%|oiUGJVR?/M%tHIu7b6nyW^;6.rS\6 Mlj6wwͥW>!EPx>o.iC o!>uu8n4Lpw2k.ejJhe-. ylSK>1mqy_"}7h]bc"`b XK_~쇬+a8b3NV?;VAg-yyK۽"߃%qf-R|\6l9J:d`ގ@ >͌DdQSnؿ-ҾmhQjDOEfw9:][(mD5lvS[paиztIPNLcT؈{$k2mM_K[ʃy'"pFu7:~,X*4VɾW_F+A|PQjλ'C0ֶ"#ؾ}8Nr%3]o=(wB%!H7TSUeؔukAWeMzd;+"EAlyC.Y; T 0Yg=bѵGUx(^M`wIH& /=S\7b}׿`-ܒ%RaIFjBuCPڳ52x ɐ'4Hb YDƬRJ0,D2|ϪO)\mF3wM+ɏ"Inv_O5;{෪}H?r9lO?Dѐ  jlI=Zzg{M&Qϰ"[[&Ct썰[ i%.g<xv;Ym*, c7Uqמꡰؕjf SF{bܔV;1̪7ff> vx wӦCtR* U;2H8s~Q_,TK3ld $bvai=rCûw<,/rV`_OBZY##& a?HTDrk=g}EF TdL|X.HܾT/W.ܖZ]_7I-?&LOtkTēE "96~al'ל80-:"ԵyRJOvCub&?^ձEc+VϞ0I53Uϒ ӂ%K@q;&k2@N'bY6o$ujJ?"b_ŗ "~`Rˀ(N*ݳc1l_}%6>LܳVhL({R׫@qOA/A9 {Wv:@a!D#*mgJ{ gȫvM_D _)٥\g"v=lz`R3}H u4c}钅b<IJ#w/D?oEM%CgANqfՎ|Rj1QIC Ui)avkAUځo ̀=tb 0q Uǡ*U,=d1;#xF^:7q-52 ;VE`| #NEY~!3%p;tZ9'KD*Zȭ@1IE |HݰDT%h)I??xd!ʜly6;j` k>қfsҬK1ǾK^գYͅ>D1b 0iڿCU~9*0`>#aH9_]p]aIj5ܼF&"Wm= 3:'vFv:R,wrt@k._%DƨwLǽu ^&  d d%ֳe6սSyPWd#F"KJUܹe@FU 9U1$.Ꙇ3qc>ЌسnOU8] lF\[/ 6gsNi6f WvЫ602\~Zo<*ɜ@߫LFuekEg$/xF Ojj#|F 9 .晱ˊVU ?.Ӷ Bj>G3c c=L{fz8GL@F;j|R~A~[.U,E (-jF7mԟzHd|ҥcl˱Zyk!` tp4Vg-ۮG]ÈC7074x3|SK=NfK$NƻSu/c3E[۶a:NWWT#68r_Gٳi%CI(r\Kx钁Oڦ.!\g!+lTBɒ?<9mo:pǧ񛒁s1 |;E |UӉozO[2& ,UDϻj(7b{>]5r1|Qs;+ɏ4b:{2·.kYC ¸pj^j{Q,Z@IP|4F) 4ǢuJx}ws'V| b+_Ѿ*4*QEBclV}tT:)ϕ?;(Ia1ռGLQRS;$4N4 +)KaƑ XiH[?ŚEG埱e͝Pi^w*V7ƜLYoe>!E6E3ϭH7M^֌>?hޗR^5K*;fE4Qd<B[Cä@m̘q({fs\2Zۇf>bzṬ$93>8?;7Sŭ;=S^Aֶ:%UܝSRYP;sZ#Jtw?ݶ<թ*Xx]mC7YĞ;vzq|^v/QZ04.oXBMג d9t 9C(]U*xs~wfΑhrUIJ4ҬEş#AvMKiwh2kHŜ Xsg~ƞkJl b\= A2z-!ijfu嚠 &[pK(pө%H*dzN"nhr͜Z=w!=Mu= ҇$(#(vR1)f_֪#!cO |,gfmרw!ƱALZdWVo<*XU,k| gl!V=Iğ/3gx>BeV0M u 25ӆ2vږQ f vz+͒h_ƀDYQ#@'//jvfbbG>qc'̢ KXd* zoJRw/k#ج2aP3)T.ϙ'-v,fʥPFS6"J*rgD3EY8dʜ%|ΝT7."j$zUh[ vN*Y$p+~^wjEOJ5+CG6p9OVfBZ|rT,Ttl/׽Gmroܲ8LxK@"G GHes)AF? K`bw/F?hOb..Q' Tx"`dD$hOzfVӤQ~Olzo?V7,WMN+nͼnЪ[ѢQQB7R7w"+ľKsH-F`ք%eMq 3\`U)Ǚx1ůA^Օ-Kds.|KChr|+RMnm[AmT&xpԩI;/֤^{+UG@=}$Rcm%h08Ōʈ˚xEkxʸAɖ,6"ip !&*A6ޛ^D6rP(Βz t*dx8k۰V[N _NOwW!xDӽ'ͭh 6c6;_V1)xy=Oh(advjF*p7dzǕ6|c$, O lTDX  aFe-)>xcZ-)`w:ч=Kxo{z 䶄jAئ,2hl~T5j0t'tf,toc??V_`d~"-++w@ʥ#OD׭l~CtABH!"Ϭb? FU3/ضRz^ݱT˰hH=Fѡ^~be+K^RYCM+p7nq?>Ższ55m=IYb>,JI>l/X z@DQہY)ӵ+z3r)%Z#ϥF?V=qJ+> W, nbIsҮD43f݅~>%S @~ŲeD#,Ko̼ML7KyC0IO/ձE; YXazj]L&bΉ /7Jt缿\M< YXz.%ީrډN شK,y/032?Cso.~6׺AN)Zu\ E0?) O1]RH@[$BWN8/Y2ȴGij?nZzW7ץ[6|a=~qz!/9mNdL[ydX#P#Ss=8uA`7&p W4Tߎ?+.AEDB&M a 7ᜧaHnoxhIɱ)_.%Ww|o~]gksX˧:+Gl;;JC~>Nĭ!^ P{W)OHo*yYF_?0%N!(ՠ y_,ŤKn3D*| *吇&%E.m OrgJ`@ 157()ǹZ^ͿyB@!W12JXٍ*Hw\ /מ5ㄍn!@a-&*F]#7/J?= 1ن-_)aC5{ќQ~LM Rw]z]DIxL\AWy5戩wyָUրA]rXyBEB\m,|YТ[f&dǏS6{. =y0B3q݆^/MUyo+ iGꓡ_878+QN{<,1z`]; 'bWܔ4k" A؈?UVy6EoXF!l0Ț*hFt,h"3|O,2 Q#;ZXX#Yq/얎Ej6Ț ^ A>Q CNJ u< 382\N &9F_M _/PÕz5}ǐS~|a91>V;^+g-`OcdΣItUDAPؔ5-"c}n2`دKҿ^fPj[Hᘟl¿y | ׋9td;n%rDH wrթp;3>LLsz޽V-trCqIJg $k9yxV)Iu,~S|HQ̭*H JlLetKg&I/:0z?Oi(3@I 6~[+R}֢]9!n2 ˣ"{-ܝ/ #*QhUO<2 kLм,27a}]#e3uչ1Ci2qFe.T1h.d c>֍G"j}?1)9Ʈkȗ̉ddgStk匘8)S§ <8uL®(ͨ\{rX'T=!S61BoIk؄3z?~g,SbP+"Lo@8v|}Vac}ATzB L -P{mj3 ,! 3a'0A.(o >;0߰uQ'hԨEfdh,B(R7NQFȼbM} >T5fw77loo$#y`ZlVQ6,|׌ؔilvKkuşAm=;SW}w˰Śuz5pK=:1gS.}xSu;ZV;˖Ǹ[=iO%Mܰ]1{-F;vs6q/15{ނYxT#X lRa?JontTO"D`}AzM,f6&d??,@<_`Jvgy \Aխ-~ouVչp P={1D%̈! rIld+cc2(>"WDܓ] &~gĴq Δ=҇ڜPܯsQ-B3r݊L)찚[r>q4LgϷtӳn@ԕdQF7/Zl&sn*{r;/sۑmzН"%iIu?v;y*rQ&Xvps6Ov7(^Pӡ-kYǞξ~?*^W?%x؟y*F?-+?-_S{wlZw.EE30KU`KcNG ;%I@ o|Mwς 6"͘_uVLi;Z54 DF#4?~: f!ϔGTl7/4>OJn]+}Кlۡͼk Nz3fm_46vwmZ?S1(xhS3z8KQܝu/ xYBQ+e &S-p2 H2D-,Щ:Cخ^Y|vR V8&l){'! uV B+ J{ѷv[+yA 1A='mZ;X_pc`3 i u|LHJD@y@Ikޓ) <K5hT?z=ngKN:,TjzOm?fQ^-Rv/fieɥFbU$o4$b#(8QQPeEA|u{&4d^X.eV.1~wscM& NN[ӀGw;zSdȍ_~G/خ-n%?k񫣎<>w{CuK߶y[{6j/تRzqv\g>FE.蔃$\.Wc\i6dJ:RoEѪc~e"tU,~tFVx5F((r%, fYaƶVc}j nЭMmqY8+)xexY)/|rcmYǩ͔3/"%]iB':a5jH*E<5f|jQY@cz.oOHS23lG˓~{G@!%تj36$JJ[`gW I^þcґbFq9B7?)X4ECY.* fv=JCHՕE辑szdD֤ig 8ꄋoGp^ie /#*bMJA܋HTS?le Pغk  .qXDV͹* 2%Chh56=+(F"kSf7~"$ac:ΕD#l6Z lͿxeY%K][4ǡ^?Gp݆1L;+Aj7}[r2צ i^3Wr+Gs,KP#6iM./y@ O`kCwy /o0l`TYd55y)O1VWliHj`MH6QHФXB>/TDfѷx} XuP̺|&s#|ʏ#-to}w$599咥=Qq'\ (~%a Dks^\SaOt7[ F3I `{D!v_ }_ҕR:)/;ɉ7)N@Bx-ÀE@i~˖De!ԑ#ݱb4"PFI%f{›6*rdUbTS 1}C\bDاpM Jh(诉|u{ 8#hnPUf#PyJ3[ܡ'H1EbTQGN?ױ̪2_еVI,jFw-WuRP`qCHClX,hͽZsҹ7ٌu >mAfe"T}`00$Q~m%y$#}d$kf7˕wBǞ6W_ƅ:vR_Ϊ6HS޴00:ną1)w…_}=ޖA_WU?jWLyHE-_Ţ+3SW[ѤK&9Yr@d`dI#XQGs^ˣtV<1y0=wcMxPXv;mt_Q% w%;ȁ."C/5^/hN#G'2CGw/S-UOݖp}c,KVb7 E:7'@!7 mqđ DeʖP?#լztF&.?@7!jӎH #!~lYմ/[7WFs-$hob\͋i-q5h부; ik\wN>&%b]2@PD}؍GuV$Wy'OeqG 1ij^x\q.LI р?p>،+!ppܩĘ~BC&s}օ1i_9I<9yK-340租J{0gɞ~iNi A[&htM= Kˋ?um+HW/)K*cq(Х_߄?ֿP s-W_Ez<2Le*I'J$nU\-Lb};Y-^ RQ]Oʼ5)WCIIy<`󤩍0KްJJZo!,Șj&OS1ydٲSZs_7pt +**Fܖ~KVh z!m;V?~tX+y#L'𑙌,xGdyП|ȉ`D;͍ah)Z(ھDe/teTǁH ) 7ڔ[0jTT9*4Xر`dRY^sbg:BySVV#A ~HjHY02nm^߅l<´{sngWOt Vw"TavhN%!En@ҏ<܀QtO }1ayp--rh[ScТ 4C>ք08GGQ?_̰25rŜ/ qVhUh4/9[O_5 d|OYcydCVJ6QKrMW4  KhKy?pV,:ħ Ec.EH/i29bZ~UQyi FT:$/EZi7wjVО@9 ADTSrL\e"-_tȶH?)7)̼o ܤX*ϾmMBw1 1ê~f[<8# [4~ZLCgRzÞVA ͟aGF[xa}cjk@C_-&n^ b,mk;xn 7<ےNhQt0XMp LRUGJ(BBA#)9,||5r^4wU+X4w;eV,]b2M;JuMC(rE=j$i-iɑ.R*~+j/BspN-y:x^ "Jk)kWjd]6GXy=>Ѯlu @`onH(-ʖfϵ8Wss $LZ'f ɞA#BkVAʈPK?t9sB<}#s*DW;'rh@'8<Ir~Oʛ^w04$aejPl:ҜA8Y}0ޜq kyԇh&A,.(b2wԄ[f?8rQmAVVDV:|鈖 |16h2wmؑcYkBhxv,H U\P-g>fU8*Fҡ{+"=e$Թ8U#܀6ASxDq۩X*;t҇Mڴ>4﫽 qEgp5>gsFt03N4nIǽq s앀\*eLd1nȻ3[>Y}nNᗑ󢹏 T"W@|)+|( \kRZ}G(̾:(iK#B\dQ:opmOCj9[4Ϣm@Pum]lkRO3ZuAf'q֩F leo0H ' =6X)ΈTGwzo=cܖH 1,\.5p :t?y`Zh[?ThOpYP ȝQ|y:S C vw Q"2I>  ňՁ|gWI#2 0~w+8oMh:(N鰶f=ekZ׸Dpȶhzqgbzݲ8Kto\܋\lO޼L6vu #.WC><,,-@\ӡK1Ian=0-ꚠ#[8J0 XVxe.jWܭ(wIp&yfZ1R|hϝ;Xջ|r ek]lV_]3w̺>PG(eޔRX8fI\VU|9lg4pGx[oz v>-eE!}x>4"dvGΌf%`7N<[Z/ #/W?Vџ U Oc}t e(|:K*'dncliۯ&;טPuKs$~| 'B huVXoR $="#_++0ܥx,Iq!mJ}>BR3(`*];29<25yMmoytfI[ĵGvޮomFcnZ(׼[S-gzbI*B*x\*HRvnl,PC 7ewHgΒړqdPBkOYկ㦤0,JcyV&HfAYtv6m`yGa1qW_C޺7u%d0guFzū;zMaf7|sQCKp5rQUO8wߐs|m`"evIR25zY$#ͻM:Ӭ[UW~+5s?>v lY~iG1D#%\,s_^dXp?LF:Usʿb83F`Rٽ,mrLtXmPlPAطX(h/a0f  F.}(̛hyĝQx27<g Ī)DG|{k ;Ű|L(i ʹkk&L0GP֚[=.4)tB67%B)IC.WlS/KFa`"$Om~j =I|bi tLr2"?3 #3jČ"Αs~"/zeIA`yB2(Z!VTw~3$.3aZ>!S#OI8[!GK?.'"ޱGd)Sb2O7 wLG:nߣdEJ͕d{G|Ln7=1H'ZƕPۛK 7<'Zs! 7zV ͗`[ƶc4O\{1>Rl$Y^ +S+_N8m~<o{+-2Y:#Q%W3Mƪ/dDn0giEb;Gb^.A;A64= Z'jHZƹm&L DaI?6`3} d\Q"6HN<),K  L`zOq  8'@$TT=CGϢ?{&tH1mL)XR8YJ=%3K?tS5M ~%7]h[6 o*]%.*s;g ϯzFJohXxwXt픍ʠ0؎ULZʭ;9+jjR<7_7WOS*ܖc C{^x)]ER=yU0l ^X}eLsASq" Pxi >:o65iR$*ǝav{6q]Kj3^M,b%C1H Uܠg/OOF*o;k6jx*|` ZQ C?màfp)W׿6Z6xɠXAk׌䓫&e!Hip4p&n*.*q "ѭfoe"|G nL4\-Fp_{aNz; -.lr)xD}/BޞiZz! mKF9yڃ dscg$Xy y9z=4(s jB`!S0M [MmfvԻZR^N7c$AA((4\/pMJ۹TP8ՀxG%^€}X2ݐRMx0m>Ó[_@*x 2ŅB;څݜo{-N/y3v".NZ%:&ͻ3){-t2 XfnlF5,+c}!$|:(*ghaf@g/=X#yۧLGߨEё&D8bHR*{z{0pzAU\,ל}G SgDžS}UUw|<#j3s$ڌu>;S L%+6E}XB;RNjɟe\ d (i Y<܅7!n5 e@( w~2> OƊ pN /Y|K|':P qRXxM24ʧ*CU?^( :S]M  ?ƪ3v$ӛyr_C,JHΣɛɚfZW]@KmV±5&RP'sQt?@ǀRc .ᖅIB3STq(%% / gK%r`^D" l7fkyn^\m*?y8[,:`+fPQ|Ah6z]`2*y ֛j?Ro.a-bJ`5dI0|0+"IodQUU-K_;PZT2S.euS]#c3rgd*13~r ]lC dyy, yV\jx@d3)y{P`as\H„>_!*wY2]>mp37%u,P{Yp0EU-1t5+Xkݟȴ}:x+혳A< actDRXfMx/r`4,b+BZ1Hc{h >uj̉pˊߑc(!ո NȍuCl/X`*yOJORDڞu<IlsTWIY{Z@I]jo;V?TɹdG U G bb0ɅH\7 ̜9Y0.о޾cڐSG;;`C'4Kjg,9z&@+}HoPM/pv7$lgKuF蓓'i[T8{{p#E.E{% V|}]Ph1-¿&Y jطl7' ZWM6Um[f,{y Hy?peU1 zM}7U[l]4sI(V'( [x&!8{2wGl΁<2:ݥqۧ|IBHՇ.]~ZR}EcrSѰŰ@! %@]qM$;91V7FWmk _Yg~R!38yJI*&iA3IN6qB6uحGڿ9>r 7ќ96abS Dm"Z@)ёʥB̼/Q@c(ʆ6Z$[ _\zUP&YZ8Fвy{T -uO*W?s@&k?| ]HxtLX`;cdjKc~N^G06w%VQcFAbOOĿ1şϓ)PDŽh 6 o2 Īk>B?72U%izޥ:Ido.7k+zc!w; E6FI+hܒ/&ҁe^F"HܩT|/1AHKqp9xYN'K5oT@1ou<8p|l:O& Fh=]:gSci@ /FЕHvJV>Y5EɪJo-Wm@U]H psO҈_cq/s>$$Myij RSz"!u}P`U!BO}Hrp a- B58_>Tm^/hSKE2OeX1y=ݯ M_'u_(CzJ )p5*8Na7.fcy*8t#bvFjl\eΈ1ĵ抍yxѢtW:]XXcϡV VUpȭ ՗VLn<:_+\P71/ l#ZG} \JIWMDUUϰ! ~0SN@g9XR+=rPmDٟ@m[#2.@heYHo1 m]9cb*V s|:7yЌO#+3F善JtPf$_6-类nletH}ӾH[l{㙂-,8]" L' {YDb6r?>"(-7ʛE~?e$ivfI:LˆߌdpO ϠZe3BnهU*Ԃ[LAKkRj nZߜi =K# V" NƋ֪ t4߇utSq@hр hG`1a4 ;dYYWY){4Gh*fg??CsNQx +T=EP#2Vɸ\6}2X|S5d+t84DG;7?8b@f8*iblpơVވZ$߲()9ksGܘީuhUs7кPQ 1Dݭ73~pf*]g,qnJ Ոe7M"( B$"qi{dfto1P[|J\>g2 vh2&vvH&a.{fFM\vҹ30!E6,Ԥ&&h E S0m'><)*CNUOMK:BՌIHㆷ#74*IV`9°^{y߳ŀ@323 Q߂E MϞ_;>R m~&XLjX>ʜ5Z̬^z>*˜AzQdC+WׄWnk+j7d_]%4J*Ǵm&ʳ}eUWQK| 7='opB3|rG@ Ջyv{ts~L[i|?[/aGS2@-bp$V*mvL8_Y:u\nK߳br^R;遰PnSqEj}J5ovVż%?7zd'_Z0ǜO6UguD1_蒲vw*?kIPЕ/^j F/5 pHuV!U nZ)a,P(pZe3"q"H_զAK{ѷ|u=$3YrLD.cTG}U/_tcY{@X6̙0Lu]gswgH7hjԑWFص_5m_>U=NFMSp4?]5D=/gsy6ڿg_H}c36w3L h$'y_\XG$-ETPxBX! >hX4[.Е[YѺ3|h=t<\pp}92gopw?hG#V_6jc^ds4Jz~R6U5v[( .jT.]NȋD%oT\ʒ}z̞&7ՔO/x<Ɂ֟d4}-H;)_OBF FISs o/̺n8i|+h5PH7b/O} CclدT7~HM=>1ᬱQA:=#5i0_|Nf;vBϫo%@fX4 7HaR, S^'ReRT,i\jFdȘFCh#|V!f)Q |( 0޿; 2HRG x͈Aj0s_E~SV'r eܷy&?l)P{VZ\QHMnv.@(>i);3V6O,͟ ?-r8=*˺[~&1/6ܘwdRt}C{|'7+;+|О#^DamR (Lu!vH.9@" ^7JnGmRJ&PSYۄiOyyʜ Y/79ܵ{-) [rppe$yT,c3UNM%uf[Q(ӾU_x&VɄa9G&v=~oO,P.qi?b*3;6kǰW!2.~`Z_T gcŵ[qrhᲃkZ"vXscPVxJQ7zLP`EfH"QM6*+S~ț^8h;5h1fj>G3A]v9G8M.WLm7tzHr]08HNb  *QdkJ=Uz_ }8s랛C^~/B.9QXT˳/f#@sV]),v;<S*fC@")0ܒE\yE[c[jY?Oƍ08g(_>̠]CT(; (CӒr*W5:0 4-+ =}RE<NNӄZR)zdul[s0_udS+n%(D!#4l5<% zR\bT.V~A?~T],!F$c@%$I|5Tm-{|r}E7M}7j^CsYEV.m\'ynXϼ]-& %0wnBZa] 5#)͒ޮ΃!:Ld3ʪ~>lO>on1,}d;|}߅j^ڈX/S9\`Ljwm%5? )xף^y9`! 0M]F%9Gta>;KM\z<<[ @tiUV=LuJw=qU6nF񣷟~}\Yy9CD+=W#燣j>(;D 𱖌$j(4~j%s(C i/ ab7"л A8p-^w!>s.ˎD( p=)[9=.hSA:y(bê"]z`npEy<Мy߿heE}K!iŗeb 2jw='HJe-GHõ;bE0 ʫ|\}`w涯hZ{sy b@Fغ+cʹ%!sCNWV8!ReJhu]U*"zi0L‡G(0|;.禥4ÆD}= SgFu.@M=(:^M %,4:k9AaM'b\. 1kfM k%~Gh77zZU4b2(DQ"55hrKmV[ "U!N>C_[kdt|2}q|;3w hb 6M# K !W&dSJFpȝ&Z!Ae@-`ǕZXcN!h@ E}I5ugjdyQvKUM\D:+lHڜcj2RP|R3L_E4wUhM-Ċ" 4.~ :& at(aa cH?-&,x%iCG^bk-1¦Ɓ2Gx搭^ar k6F}<&.e1ŵeR JaFm7u$TS|R{w#% (v2=UkWNdm`B_l!W5R]c!tj~BP}~ti]s)Xv~yf23;1b iy2TI!B4|HPoD mQZ+z}#SVw i )0N$n:,;G]"?jiYP Okk_0`U(m/ 5A-!#t›1=669 %ŊJJc$T44 R1!?b?WX +H^%*4H|8qKr^o#/ [#<iu40> KTwөJ{$_a ̪?S[,eGQc-\67@𫷁Q<;埉3~k3CjAqJ~SF-Uhfd|gXp@?7W{) NtJ@{jnjA'9m1S(rv2rBL>_>,Dt6vLUxxZH Gąǜ}!j=֛uo2n*zrLB,}?2CjHk ȈCI +!|!P3'l3z1eB^Qvw /&-"Bd Sw{W(9l&&~xB̳~5V_AGϊI%TKj?"?RT4>Vμ_"揺ɖq X=d6>uĿv(G$$t]s55)quFESIJ}laM$ iaI8}wI5!2eO`[v!rre;L}NPV0h$Ȫnf`o`Ά5!i T7[˿t<3~|S5⊔"~v!Ջaڒ.!`覼6 P}*ә#v_upl[f:9My'<2ehTײIab>̐ h7'xӏ"}?zA; @zwc٪_4ZȘiwbSC쵃gƑ#aDdg'(Z6 biw!޷!4b$RT(s@h"z+ob=BӤ[T ƥzh4?8TU̸ 3^xH\E{PCy-:9}m?ROHc?J?W%]>o.ۛadwќJ7ńorGFd1Mdg3/ 5A~6q붿R֐; ^;9hV qaU_[kN* %{ JKI&BgxO* 7Qkzr529JՓ 3y?qGr;*~DUELHm;pjr454GC=KߍA1PY2vi曌tQm9Fڳ =9:K;PvÕ3AԆJOy& s@ljEbѝM JDΚXwjto{_6`\m/b' s4sژQʾV'M~,> h{o6?/AXQQowq԰b~>\kL =.У ;,I 8ÌN`whY˰DQ(J`%f O0MmG$q~˻0V`NK[4hDwk cDd7|TFMweٟѲ"j[m &NfEmCK$[邚ћ`nWv622g(Lrg^i5)e/IBOoS ϻpFkhR~<<*ZiC)dsKJ_{.wf3n˽CYr!Ѧ"}MGQ:ԕw}ۆpJs#`.:cx3( ǑR[3Z=ÀA'B5Oi91wW! W~P.ܞAF FЎ7HHGDddV~+d\'jbE{a FVˤDuUM"ۭya>A Q[kO1Dh9Ew`;0u!eO7&;pvCia-嬆VyP(\oG:~K"LH=(spiVѧ͔?|"p? ӛY2p׳9TKT-lx29[vvx=:cʐG{^410"A7Js_XA53y`Ii8NX̯2;߻LQcտԿ]ߍg{ϕjO)pë8#S8i4{</%]{DѸg7x՘]S7c>aFP`UBuB2h}kxځDa@ʟqD';噰'7il6x1L1^ #?̈́h{lX?{:a|L-C]AŞ7݆EIz`k^qeXsؕuwTN{s!6;/ ,[9'LSP8OBL'Ϲ+0%>DL{4GkqD6ڧt$%#$1NE~kL%R&ȋc[^)p>;gSMHDUt;!6!+Fmpn#i<ÚeʺoB0z-X왅+DKZ.gFQSGgGF%E/Y e:f;|4t}\'\T{sB=֐2 E~ qז k/9MaWlw B"QSxnYT zS^L:d!Z5|qCg q} 'ڏ-W}AxW*!  7i硤tYX[Xn䀆B'Yț늑!ePm-41w%ujXwy<8 [ f.92*{j/x Û vB_҄a-xkM+K;22t%==Gvh^'4ɬ⽽e :Ea^+1{ҁꈒY7~bɕft_~1hZ 6 ?58}:7DԱ+#W璼}#r5ó'hE@޼Ȥ\nsh({- p3|X[o%5IHr) 1Q%r)-n'`倵/ }cpӷ95Q朎}-\ji `)X ψ쁷G]eO5ҶBA`jЁ8=v4GIݻ K>K4O$ ꜮIq)GN'We} xOqrK&юhJ$].#{k/NٟxO/F{\>8v{YHw{vvQ 02x&P|$y&ݧD^CYڇBgY>cQ *s!h"X64>b-ru LO{{%4?\DF "E:D&Kiby)s "/8VGh-8.H[0JM S\v0\E/q MIt߳νQ7dAgLu}VMg=B{`%n"bC,L/'hu@-٣$G v+я"%0SR^-Khu ` 88߰*'͔F]A}n5[^L1[F6X||ݶ@׮fbygl9Hho:ƲtjlL0֘o.ވOeu EF^ 6BJG1x {fP~xK^E!ʊĒƌWGK E-4~Cv)F& Aߒr4w0#\}\Q4! DŽwyjE+;x~ .dqrsL)0tɠ!Pڶ(8v Ӕ8plh'-cqp^kS .Cl& _p9 ~榕M]mJ s_ e,ʂ1ح1Trj{};eܵb6J0-0'* Ôsu_?CGk?U9gw Pgඑ:.4I|u6뛲7B@4$rEZ086fpaяm2#&{Gu2&OYqH?V'+F0Ҁό\hk{m ~v:XuFZ3s˓yq9z>{yo> z?Ԫ7GIv{tMjĪ/bRkok.lFm$tss=`^-# MPA Mjp?Ʌ#c/a_,JTk@b[,r6l8+މ2O~#V&p-5&Gg]``u?er-!0m;bKMްJ`ww8,jcd!\uP3,=]5tIJfHi2'\AUM%vQC$ d`?EL{VzuBkY8<6Qc a?$ƛ:,rcy7q6!ڧSe'BX`AOr/2׵X%LgEr-gZP|;Uʰ݇ k'B2}*P y+`O9jv⋀Jc\5^I/ Xz惺BrvsK`cOygviMW*~R{|D`KnZ(dtNFp$|nf* LCn"yF< j _QVQ`>H=P=l>'8f<5vLC~mȽKUe1u]&u??B9(}ydrRmr| [y?RT^]M S3[?0$0WN~*G6;VW` Xu&Eǁ2C3{PœmeJ"}{k"Ӛelaoof0#[|1'0y!+A 3V:GٍxԴ”t\{_,0 C n q_cTqPp>o@AEc- Vot` f7A"}ySq.dSp$;Le2,@`XvM|CM_⭿6i&bw<Vd J?-Zpŷ- JgsgR-.5Oۦ1;[ B@]pvo$pm0ޥ($=&߂VӠK~}o "JdӭtU yp @R9r}\ *zV֐G45<lVO~uAA8ݤ3E<}B7y:8+.&a~"5*{:5 3###&ܽX%v)=H*#B yF˝ uc꿸 ZϪϑ!4kN69/l9q5}*v6bРQO^ 񤰫ZGa7@=SVU )`fRF'!|K?R7a8]آt~1yw٨jDAu v&Qu6~QE4>>N\̶!yTxYJT~';+]0OBD@(<(=T 6/0jU1mWzY6 hoQaUp"ZPWwSn'C۾6%8G v+OƼCI,(㌍;YvbjHy9\rdɻjk<+d[ʈ.' A'ʓۣ 0lکX (fZp:1z wF%vIFꡝqDg1hqy* [BrYܺ &gU< yŇPN_yL*|xifHh|%f~D$  UF*' ǻO:B4;ޢua28\),tbsYdv[NQ(E ds ?>oʠu#])rKH(= aUsEN:zOB$~r#{CsЇˀ=* zqz|. fFFiJ5i?Uq aR\|!J؀ͽf``.Wl_|Xޖwo<1K}7p'bZ<+$}qE/玀q#,,~ȿ=6bXa?58xQ&Y0WRfB5g[J-t&|`g %\.&-Y] .ڍbח0Xl}9cF8\:@C>>zZ`_ /Lo(4ƺ D@6aÜ_?'ޢ(/%N(kZxj/=B~vLmn ,tE/-_cJgMbbFGgEL\0#K6{6= zgӯ%+٣3d0. %ǖW.3Ι01=G{ ޭIrA'[*@ V4r]$$}S.oʂwz? 248 $TXbxEHje1 }k)h9;MMe1 N E[|d^N3)8GGYb9yW8[imaiEN|\yЗ6f0]!=m/!XHN+`Df>X[V֧ @ hR=DѼ`FNЌ|%DO[jl'D en-ёE첎2, ! n?hx7E^]Y<>C[)*cP_$w{gBX mՅ{I@?v(&>M4e^Q;" j|SH]VhęY%:9 KYFfŸY''~.D~:dK d咏\kScܘLq]ǟqya aF-(k3o<&:Ū[oI-xaE"3 RQ鴩{Fwcbgɳ5:aSY(tU #Ir]y,W6|m:LkY#8 ջ,/Y5dtO6kRʇcGR7-r,VF1H{T@m\aI>@ *C$酢-`=2^VAnW°Ac6A]Hex!f՝} rg /A༬29 r28MZ!׍Ad[*1geLK_q!-x͎y5EE/-ü4p=C4կ+~YT/C j-6P>*XnuPPohئ9zݱͫDD}-a^*u'+LU}g;0 b[}';?5a$X8kKyKN1cVy }J:dVAT,>xk 6|_/pC+3Wh'=>Q(ڵG8țov}w2 ƽ(4Q 8B+vcl9d`;gRE8eCt0(TpӊS$}q^VtĴx AXrImDyJܚ$!+ͯ}ZRܙl;aF߼9eW0$//bZx:֐O>A8n"̮r,'b(BW~.e'$FvrODA,[kI/ 0!씾=<]*Ld!R̬闽Ш5 *ߔ;0Z&ES7]  ʄpaY>ҙ?-t2ܐ%wʐ1~ʤ?#Q"q-j4 칛mfz2*Qo4)@Ay(TB<j5Dw82(v;Y_mX(M"7q!G_6%bΣ &=:.%^갯+%*讱F ʵ"YgR>dqC&vScV*oGkiY,D72TbFdDe3ԴL v/_K<[O4|1*7Ll=]V`F/YҒtue>=x9d-ݶh̒\,Br\9 @uCYSxj93' x&bT6 5Pp4a ̗qp2λV&fr []3FQ/ ))֘"iP1fxtiIM1(u[-uٶ&$ǎ*l4v76mN>k~i8~,^qM `9XcVH#ӑJw!.<'K'@$ײ cR=地EÈ2LyJ7jg6Ue7('Jcg#ܔ3Gz&32Nli$A UAk٨C &kxoW]zaddf<