From fe66c51a19920378885fb790d341cc50c933b046 Mon Sep 17 00:00:00 2001 From: czaks Date: Tue, 10 Mar 2015 13:13:18 +0100 Subject: [PATCH 001/169] ... (minor fix for locales) --- inc/functions.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/inc/functions.php b/inc/functions.php index 2a398ae7..f1fb07d7 100755 --- a/inc/functions.php +++ b/inc/functions.php @@ -358,7 +358,7 @@ function rebuildThemes($action, $boardname = false) { // Reload the locale if ($config['locale'] != $current_locale) { $current_locale = $config['locale']; - init_locale($config['locale'], $error); + init_locale($config['locale']); } if (PHP_SAPI === 'cli') { From d2de4419bddbb7b0e09ced1f01d3ccb45aecc50f Mon Sep 17 00:00:00 2001 From: Matthieu Date: Thu, 14 Jan 2016 21:05:24 +0100 Subject: [PATCH 002/169] Added: config option to hide email in post. (prevent emailfag but let the possibility to sage and noko) --- inc/config.php | 3 +++ templates/post/name.html | 4 ++-- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/inc/config.php b/inc/config.php index 69b4bd3a..d5bdbfe5 100644 --- a/inc/config.php +++ b/inc/config.php @@ -550,6 +550,9 @@ // When true, the sage won't be displayed $config['hide_sage'] = false; + // Don't display user's email when it's not "sage" + $config['hide_email'] = false; + // Attach country flags to posts. $config['country_flags'] = false; diff --git a/templates/post/name.html b/templates/post/name.html index 13c676c7..e7f85f8b 100644 --- a/templates/post/name.html +++ b/templates/post/name.html @@ -1,5 +1,5 @@ {% set capcode = post.capcode|capcode %} -{% if post.email|length > 0 and (config.hide_sage!=true or post.email!='sage') %} +{% if post.email|length > 0 and (config.hide_sage!=true or post.email!='sage') and config.hide_email!=true %} {# start email #} {% endif %} From 028fd3df15b2e2edc96c5b84156b0b039ea16562 Mon Sep 17 00:00:00 2001 From: Matthieu Date: Thu, 14 Jan 2016 20:16:51 +0100 Subject: [PATCH 003/169] Added: RSS theme --- templates/themes/rss/info.php | 61 ++++++++++++++++ templates/themes/rss/rss.xml | 28 ++++++++ templates/themes/rss/theme.php | 124 +++++++++++++++++++++++++++++++++ 3 files changed, 213 insertions(+) create mode 100755 templates/themes/rss/info.php create mode 100644 templates/themes/rss/rss.xml create mode 100755 templates/themes/rss/theme.php diff --git a/templates/themes/rss/info.php b/templates/themes/rss/info.php new file mode 100755 index 00000000..14b39eb9 --- /dev/null +++ b/templates/themes/rss/info.php @@ -0,0 +1,61 @@ + 'Title', + 'name' => 'title', + 'type' => 'text', + 'default' => 'Recent Posts RSS' + ); + + $theme['config'][] = Array( + 'title' => 'Excluded boards', + 'name' => 'exclude', + 'type' => 'text', + 'comment' => '(space seperated)' + ); + + $theme['config'][] = Array( + 'title' => '# of recent posts', + 'name' => 'limit_posts', + 'type' => 'text', + 'default' => '30', + 'comment' => '(maximum posts to display)' + ); + + $theme['config'][] = Array( + 'title' => 'XML file', + 'name' => 'xml', + 'type' => 'text', + 'default' => 'recent.xml', + 'comment' => '(eg. "recent.xml")' + ); + + $theme['config'][] = Array( + 'title' => 'Base URL', + 'name' => 'base_url', + 'type' => 'text', + 'default' => 'http://test.com', + 'comment' => '(eg. "http://test.com")' + ); + + // Unique function name for building everything + $theme['build_function'] = 'rss_recentposts_build'; + $theme['install_callback'] = 'rss_recentposts_install'; + + if (!function_exists('rss_recentposts_install')) { + function rss_recentposts_install($settings) { + if (!is_numeric($settings['limit_posts']) || $settings['limit_posts'] < 0) + return Array(false, '' . utf8tohtml($settings['limit_posts']) . ' is not a non-negative integer.'); + } + } + diff --git a/templates/themes/rss/rss.xml b/templates/themes/rss/rss.xml new file mode 100644 index 00000000..30fdb473 --- /dev/null +++ b/templates/themes/rss/rss.xml @@ -0,0 +1,28 @@ +{% filter remove_whitespace %} + + + + + + + {{ settings.title }} + Tinyboard {{ config.version }} + {{ settings.base_url }}{{ config.root }}{{ settings.html }} + {% for post in recent_posts %} + + {{ post.board_name }} + + + {{ post.snippet }} + + ]]> + + {{ settings.base_url }}{{ post.link }} + {{ settings.base_url }}{{ post.link }} + + {% endfor %} + + +{% endfilter %} diff --git a/templates/themes/rss/theme.php b/templates/themes/rss/theme.php new file mode 100755 index 00000000..33c1b210 --- /dev/null +++ b/templates/themes/rss/theme.php @@ -0,0 +1,124 @@ +build($action, $settings); + } + + // Wrap functions in a class so they don't interfere with normal Tinyboard operations + class RSSRecentPosts { + public function build($action, $settings) { + global $config, $_theme; + + /*if ($action == 'all') { + copy('templates/themes/recent/' . $settings['basecss'], $config['dir']['home'] . $settings['css']); + }*/ + + $this->excluded = explode(' ', $settings['exclude']); + + if ($action == 'all' || $action == 'post' || $action == 'post-thread' || $action == 'post-delete') + file_write($config['dir']['home'] . $settings['xml'], $this->homepage($settings)); + } + + // Build news page + public function homepage($settings) { + global $config, $board; + + //$recent_images = Array(); + $recent_posts = Array(); + //$stats = Array(); + + $boards = listBoards(); + + /*$query = ''; + foreach ($boards as &$_board) { + if (in_array($_board['uri'], $this->excluded)) + continue; + $query .= sprintf("SELECT *, '%s' AS `board` FROM ``posts_%s`` WHERE `file` IS NOT NULL AND `file` != 'deleted' AND `thumb` != 'spoiler' UNION ALL ", $_board['uri'], $_board['uri']); + } + $query = preg_replace('/UNION ALL $/', 'ORDER BY `time` DESC LIMIT ' . (int)$settings['limit_images'], $query); + $query = query($query) or error(db_error()); + + while ($post = $query->fetch(PDO::FETCH_ASSOC)) { + openBoard($post['board']); + + // board settings won't be available in the template file, so generate links now + $post['link'] = $config['root'] . $board['dir'] . $config['dir']['res'] . sprintf($config['file_page'], ($post['thread'] ? $post['thread'] : $post['id'])) . '#' . $post['id']; + $post['src'] = $config['uri_thumb'] . $post['thumb']; + + //$recent_images[] = $post; + }*/ + + + $query = ''; + foreach ($boards as &$_board) { + if (in_array($_board['uri'], $this->excluded)) + continue; + $query .= sprintf("SELECT *, '%s' AS `board` FROM ``posts_%s`` UNION ALL ", $_board['uri'], $_board['uri']); + } + $query = preg_replace('/UNION ALL $/', 'ORDER BY `time` DESC LIMIT ' . (int)$settings['limit_posts'], $query); + $query = query($query) or error(db_error()); + + while ($post = $query->fetch(PDO::FETCH_ASSOC)) { + openBoard($post['board']); + + $post['link'] = $config['root'] . $board['dir'] . $config['dir']['res'] . sprintf($config['file_page'], ($post['thread'] ? $post['thread'] : $post['id'])) . '#' . $post['id']; + $post['snippet'] = pm_snippet($post['body'], 30); + $post['board_name'] = $board['name']; + + $recent_posts[] = $post; + } + + // Total posts + /*$query = 'SELECT SUM(`top`) FROM ('; + foreach ($boards as &$_board) { + if (in_array($_board['uri'], $this->excluded)) + continue; + $query .= sprintf("SELECT MAX(`id`) AS `top` FROM ``posts_%s`` UNION ALL ", $_board['uri']); + } + $query = preg_replace('/UNION ALL $/', ') AS `posts_all`', $query); + $query = query($query) or error(db_error());*/ + //$stats['total_posts'] = number_format($query->fetchColumn()); + + // Unique IPs + /*$query = 'SELECT COUNT(DISTINCT(`ip`)) FROM ('; + foreach ($boards as &$_board) { + if (in_array($_board['uri'], $this->excluded)) + continue; + $query .= sprintf("SELECT `ip` FROM ``posts_%s`` UNION ALL ", $_board['uri']); + } + $query = preg_replace('/UNION ALL $/', ') AS `posts_all`', $query); + $query = query($query) or error(db_error()); + //$stats['unique_posters'] = number_format($query->fetchColumn());*/ + + // Active content + /*$query = 'SELECT SUM(`filesize`) FROM ('; + foreach ($boards as &$_board) { + if (in_array($_board['uri'], $this->excluded)) + continue; + $query .= sprintf("SELECT `filesize` FROM ``posts_%s`` UNION ALL ", $_board['uri']); + } + $query = preg_replace('/UNION ALL $/', ') AS `posts_all`', $query); + $query = query($query) or error(db_error()); + //$stats['active_content'] = $query->fetchColumn();*/ + + return Element('themes/rss/rss.xml', Array( + 'settings' => $settings, + 'config' => $config, + //'boardlist' => createBoardlist(), + //'recent_images' => $recent_images, + 'recent_posts' => $recent_posts, + //'stats' => $stats + )); + } + }; + +?> From caaf741691c9d44a9a186d6ce924fecb04f4f347 Mon Sep 17 00:00:00 2001 From: czaks Date: Fri, 22 Apr 2016 05:35:43 +0200 Subject: [PATCH 004/169] [SECURITY] keep up with modern password hashing standards --- inc/config.php | 15 ++++++++++ inc/mod/auth.php | 71 +++++++++++++++++++++++++++++++++++++++-------- inc/mod/pages.php | 11 +++----- install.php | 7 ++++- install.sql | 4 +-- 5 files changed, 87 insertions(+), 21 deletions(-) diff --git a/inc/config.php b/inc/config.php index d5bdbfe5..c0e967af 100644 --- a/inc/config.php +++ b/inc/config.php @@ -1672,3 +1672,18 @@ ''. ''. ''; + + // Password hashing function + // + // $5$ <- SHA256 + // $6$ <- SHA512 + // + // 25000 rounds make for ~0.05s on my 2015 Core i3 computer. + // + // https://secure.php.net/manual/en/function.crypt.php + $config['password_crypt'] = '$6$rounds=25000$'; + + // Password hashing method version + // If set to 0, it won't upgrade hashes using old password encryption schema, only create new. + // You can set it to a higher value, to further migrate to other password hashing function. + $config['password_crypt_version'] = 1; diff --git a/inc/mod/auth.php b/inc/mod/auth.php index 01ed5b68..fa1a0f4f 100644 --- a/inc/mod/auth.php +++ b/inc/mod/auth.php @@ -18,7 +18,18 @@ function mkhash($username, $password, $salt = false) { } // generate hash (method is not important as long as it's strong) - $hash = substr(base64_encode(md5($username . $config['cookies']['salt'] . sha1($username . $password . $salt . ($config['mod']['lock_ip'] ? $_SERVER['REMOTE_ADDR'] : ''), true), true)), 0, 20); + $hash = substr( + base64_encode( + md5( + $username . $config['cookies']['salt'] . sha1( + $username . $password . $salt . ( + $config['mod']['lock_ip'] ? $_SERVER['REMOTE_ADDR'] : '' + ), true + ) . sha1($config['password_crypt_version']) // Log out users being logged in with older password encryption schema + , true + ) + ), 0, 20 + ); if (isset($generated_salt)) return array($hash, $salt); @@ -26,25 +37,63 @@ function mkhash($username, $password, $salt = false) { return $hash; } -function generate_salt() { - mt_srand(microtime(true) * 100000 + memory_get_usage(true)); - return md5(uniqid(mt_rand(), true)); +function crypt_password_old($password) { + $salt = generate_salt(); + $password = hash('sha256', $salt . sha1($password)); + return array($salt, $password); } -function login($username, $password, $makehash=true) { - global $mod; - - // SHA1 password - if ($makehash) { - $password = sha1($password); +function crypt_password($password) { + global $config; + // `salt` database field is reused as a version value. We don't want it to be 0. + $version = $config['password_crypt_version'] ? $config['password_crypt_version'] : 1; + $new_salt = generate_salt(); + $password = crypt($password, $config['password_crypt'] . $new_salt . "$"); + return array($version, $password); +} + +function test_password($password, $salt, $test) { + global $config; + + // Version = 0 denotes an old password hashing schema. In the same column, the + // password hash was kept previously + $version = (strlen($salt) <= 8) ? (int) $salt : 0; + + if ($version == 0) { + $comp = hash('sha256', $salt . sha1($test)); } + else { + $comp = crypt($test, $password); + } + return array($version, hash_equals($password, $comp)); +} + +function generate_salt() { + // 128 bits of entropy + return strtr(base64_encode(mcrypt_create_iv(16, MCRYPT_DEV_URANDOM)), '+', '.'); +} + +function login($username, $password) { + global $mod, $config; $query = prepare("SELECT `id`, `type`, `boards`, `password`, `salt` FROM ``mods`` WHERE `username` = :username"); $query->bindValue(':username', $username); $query->execute() or error(db_error($query)); if ($user = $query->fetch(PDO::FETCH_ASSOC)) { - if ($user['password'] === hash('sha256', $user['salt'] . $password)) { + list($version, $ok) = test_password($user['password'], $user['salt'], $password); + + if ($ok) { + if ($config['password_crypt_version'] > $version) { + // It's time to upgrade the password hashing method! + list ($user['salt'], $user['password']) = crypt_password($password); + $query = prepare("UPDATE ``mods`` SET `password` = :password, `salt` = :salt WHERE `id` = :id"); + $query->bindValue(':password', $user['password']); + $query->bindValue(':salt', $user['salt']); + $query->bindValue(':id', $user['id']); + $query->execute() or error(db_error($query)); + } + return $mod = array( 'id' => $user['id'], 'type' => $user['type'], diff --git a/inc/mod/pages.php b/inc/mod/pages.php index 2c679b20..a07de4c7 100644 --- a/inc/mod/pages.php +++ b/inc/mod/pages.php @@ -1734,9 +1734,8 @@ function mod_user($uid) { } if ($_POST['password'] != '') { - $salt = generate_salt(); - $password = hash('sha256', $salt . sha1($_POST['password'])); - + list($salt, $password) = crypt_password($_POST['password']); + $query = prepare('UPDATE ``mods`` SET `password` = :password, `salt` = :salt WHERE `id` = :id'); $query->bindValue(':id', $uid); $query->bindValue(':password', $password); @@ -1761,8 +1760,7 @@ function mod_user($uid) { if (hasPermission($config['mod']['change_password']) && $uid == $mod['id'] && isset($_POST['password'])) { if ($_POST['password'] != '') { - $salt = generate_salt(); - $password = hash('sha256', $salt . sha1($_POST['password'])); + list($salt, $password) = crypt_password($_POST['password']); $query = prepare('UPDATE ``mods`` SET `password` = :password, `salt` = :salt WHERE `id` = :id'); $query->bindValue(':id', $uid); @@ -1834,8 +1832,7 @@ function mod_user_new() { if (!isset($config['mod']['groups'][$type]) || $type == DISABLED) error(sprintf($config['error']['invalidfield'], 'type')); - $salt = generate_salt(); - $password = hash('sha256', $salt . sha1($_POST['password'])); + list($salt, $password) = crypt_password($_POST['password']); $query = prepare('INSERT INTO ``mods`` VALUES (NULL, :username, :password, :salt, :type, :boards)'); $query->bindValue(':username', $_POST['username']); diff --git a/install.php b/install.php index 95caf8ec..5a2d724a 100644 --- a/install.php +++ b/install.php @@ -1,10 +1,12 @@ $config, @@ -551,6 +553,9 @@ if (file_exists($config['has_installed'])) { foreach ($boards as &$board) { query(sprintf('ALTER TABLE ``posts_%s`` ADD `slug` VARCHAR(255) DEFAULT NULL AFTER `embed`;', $board['uri'])) or error(db_error()); } + case '4.9.93': + query('ALTER TABLE ``mods`` CHANGE `password` `password` VARCHAR(255) NOT NULL;') or error(db_error()); + query('ALTER TABLE ``mods`` CHANGE `salt` `salt` VARCHAR(64) NOT NULL;') or error(db_error()); case false: // TODO: enhance Tinyboard -> vichan upgrade path. query("CREATE TABLE IF NOT EXISTS ``search_queries`` ( `ip` varchar(39) NOT NULL, `time` int(11) NOT NULL, `query` text NOT NULL) ENGINE=MyISAM DEFAULT CHARSET=utf8;") or error(db_error()); diff --git a/install.sql b/install.sql index 969107a2..fbf220c1 100644 --- a/install.sql +++ b/install.sql @@ -131,8 +131,8 @@ CREATE TABLE IF NOT EXISTS `modlogs` ( CREATE TABLE IF NOT EXISTS `mods` ( `id` smallint(6) unsigned NOT NULL AUTO_INCREMENT, `username` varchar(30) NOT NULL, - `password` char(64) CHARACTER SET ascii NOT NULL COMMENT 'SHA256', - `salt` char(32) CHARACTER SET ascii NOT NULL, + `password` varchar(256) CHARACTER SET ascii NOT NULL COMMENT 'SHA256', + `salt` varchar(64) CHARACTER SET ascii NOT NULL, `type` smallint(2) NOT NULL, `boards` text CHARACTER SET utf8 NOT NULL, PRIMARY KEY (`id`), From 48726950d9e2e60d543c8e30ac2e719fb3b80822 Mon Sep 17 00:00:00 2001 From: 27chan <27chan@openmailbox.org> Date: Wed, 27 Apr 2016 14:25:51 -0300 Subject: [PATCH 005/169] Update Font Awesome Update Font Awesome to 4.6.1 --- stylesheets/font-awesome/css/font-awesome.css | 168 +++++++++++++++++- .../font-awesome/css/font-awesome.min.css | 4 +- .../font-awesome/fonts/FontAwesome.otf | Bin 106260 -> 123112 bytes .../fonts/fontawesome-webfont.eot | Bin 68875 -> 75220 bytes .../fonts/fontawesome-webfont.svg | 99 ++++++++--- .../fonts/fontawesome-webfont.ttf | Bin 138204 -> 150920 bytes .../fonts/fontawesome-webfont.woff | Bin 81284 -> 89076 bytes .../fonts/fontawesome-webfont.woff2 | Bin 64464 -> 70728 bytes .../font-awesome/less/font-awesome.less | 3 +- stylesheets/font-awesome/less/icons.less | 47 +++++ stylesheets/font-awesome/less/mixins.less | 38 +++- stylesheets/font-awesome/less/path.less | 2 +- .../font-awesome/less/screen-reader.less | 5 + stylesheets/font-awesome/less/variables.less | 51 +++++- stylesheets/font-awesome/scss/_icons.scss | 47 +++++ stylesheets/font-awesome/scss/_mixins.scss | 38 +++- .../font-awesome/scss/_screen-reader.scss | 5 + stylesheets/font-awesome/scss/_variables.scss | 51 +++++- .../font-awesome/scss/font-awesome.scss | 3 +- 19 files changed, 513 insertions(+), 48 deletions(-) create mode 100644 stylesheets/font-awesome/less/screen-reader.less create mode 100644 stylesheets/font-awesome/scss/_screen-reader.scss diff --git a/stylesheets/font-awesome/css/font-awesome.css b/stylesheets/font-awesome/css/font-awesome.css index 880eb825..bb0fe51a 100644 --- a/stylesheets/font-awesome/css/font-awesome.css +++ b/stylesheets/font-awesome/css/font-awesome.css @@ -1,13 +1,13 @@ /*! - * Font Awesome 4.4.0 by @davegandy - http://fontawesome.io - @fontawesome + * Font Awesome 4.6.1 by @davegandy - http://fontawesome.io - @fontawesome * License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License) */ /* FONT PATH * -------------------------- */ @font-face { font-family: 'FontAwesome'; - src: url('../fonts/fontawesome-webfont.eot?v=4.4.0'); - src: url('../fonts/fontawesome-webfont.eot?#iefix&v=4.4.0') format('embedded-opentype'), url('../fonts/fontawesome-webfont.woff2?v=4.4.0') format('woff2'), url('../fonts/fontawesome-webfont.woff?v=4.4.0') format('woff'), url('../fonts/fontawesome-webfont.ttf?v=4.4.0') format('truetype'), url('../fonts/fontawesome-webfont.svg?v=4.4.0#fontawesomeregular') format('svg'); + src: url('../fonts/fontawesome-webfont.eot?v=4.6.1'); + src: url('../fonts/fontawesome-webfont.eot?#iefix&v=4.6.1') format('embedded-opentype'), url('../fonts/fontawesome-webfont.woff2?v=4.6.1') format('woff2'), url('../fonts/fontawesome-webfont.woff?v=4.6.1') format('woff'), url('../fonts/fontawesome-webfont.ttf?v=4.6.1') format('truetype'), url('../fonts/fontawesome-webfont.svg?v=4.6.1#fontawesomeregular') format('svg'); font-weight: normal; font-style: normal; } @@ -118,31 +118,31 @@ } } .fa-rotate-90 { - filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=1); + -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=1)"; -webkit-transform: rotate(90deg); -ms-transform: rotate(90deg); transform: rotate(90deg); } .fa-rotate-180 { - filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=2); + -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=2)"; -webkit-transform: rotate(180deg); -ms-transform: rotate(180deg); transform: rotate(180deg); } .fa-rotate-270 { - filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=3); + -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=3)"; -webkit-transform: rotate(270deg); -ms-transform: rotate(270deg); transform: rotate(270deg); } .fa-flip-horizontal { - filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1); + -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1)"; -webkit-transform: scale(-1, 1); -ms-transform: scale(-1, 1); transform: scale(-1, 1); } .fa-flip-vertical { - filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1); + -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)"; -webkit-transform: scale(1, -1); -ms-transform: scale(1, -1); transform: scale(1, -1); @@ -2024,3 +2024,155 @@ .fa-fonticons:before { content: "\f280"; } +.fa-reddit-alien:before { + content: "\f281"; +} +.fa-edge:before { + content: "\f282"; +} +.fa-credit-card-alt:before { + content: "\f283"; +} +.fa-codiepie:before { + content: "\f284"; +} +.fa-modx:before { + content: "\f285"; +} +.fa-fort-awesome:before { + content: "\f286"; +} +.fa-usb:before { + content: "\f287"; +} +.fa-product-hunt:before { + content: "\f288"; +} +.fa-mixcloud:before { + content: "\f289"; +} +.fa-scribd:before { + content: "\f28a"; +} +.fa-pause-circle:before { + content: "\f28b"; +} +.fa-pause-circle-o:before { + content: "\f28c"; +} +.fa-stop-circle:before { + content: "\f28d"; +} +.fa-stop-circle-o:before { + content: "\f28e"; +} +.fa-shopping-bag:before { + content: "\f290"; +} +.fa-shopping-basket:before { + content: "\f291"; +} +.fa-hashtag:before { + content: "\f292"; +} +.fa-bluetooth:before { + content: "\f293"; +} +.fa-bluetooth-b:before { + content: "\f294"; +} +.fa-percent:before { + content: "\f295"; +} +.fa-gitlab:before { + content: "\f296"; +} +.fa-wpbeginner:before { + content: "\f297"; +} +.fa-wpforms:before { + content: "\f298"; +} +.fa-envira:before { + content: "\f299"; +} +.fa-universal-access:before { + content: "\f29a"; +} +.fa-wheelchair-alt:before { + content: "\f29b"; +} +.fa-question-circle-o:before { + content: "\f29c"; +} +.fa-blind:before { + content: "\f29d"; +} +.fa-audio-description:before { + content: "\f29e"; +} +.fa-volume-control-phone:before { + content: "\f2a0"; +} +.fa-braille:before { + content: "\f2a1"; +} +.fa-assistive-listening-systems:before { + content: "\f2a2"; +} +.fa-asl-interpreting:before, +.fa-american-sign-language-interpreting:before { + content: "\f2a3"; +} +.fa-deafness:before, +.fa-hard-of-hearing:before, +.fa-deaf:before { + content: "\f2a4"; +} +.fa-glide:before { + content: "\f2a5"; +} +.fa-glide-g:before { + content: "\f2a6"; +} +.fa-signing:before, +.fa-sign-language:before { + content: "\f2a7"; +} +.fa-low-vision:before { + content: "\f2a8"; +} +.fa-viadeo:before { + content: "\f2a9"; +} +.fa-viadeo-square:before { + content: "\f2aa"; +} +.fa-snapchat:before { + content: "\f2ab"; +} +.fa-snapchat-ghost:before { + content: "\f2ac"; +} +.fa-snapchat-square:before { + content: "\f2ad"; +} +.sr-only { + position: absolute; + width: 1px; + height: 1px; + padding: 0; + margin: -1px; + overflow: hidden; + clip: rect(0, 0, 0, 0); + border: 0; +} +.sr-only-focusable:active, +.sr-only-focusable:focus { + position: static; + width: auto; + height: auto; + margin: 0; + overflow: visible; + clip: auto; +} diff --git a/stylesheets/font-awesome/css/font-awesome.min.css b/stylesheets/font-awesome/css/font-awesome.min.css index ee4e9782..885b3840 100644 --- a/stylesheets/font-awesome/css/font-awesome.min.css +++ b/stylesheets/font-awesome/css/font-awesome.min.css @@ -1,4 +1,4 @@ /*! - * Font Awesome 4.4.0 by @davegandy - http://fontawesome.io - @fontawesome + * Font Awesome 4.6.1 by @davegandy - http://fontawesome.io - @fontawesome * License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License) - */@font-face{font-family:'FontAwesome';src:url('../fonts/fontawesome-webfont.eot?v=4.4.0');src:url('../fonts/fontawesome-webfont.eot?#iefix&v=4.4.0') format('embedded-opentype'),url('../fonts/fontawesome-webfont.woff2?v=4.4.0') format('woff2'),url('../fonts/fontawesome-webfont.woff?v=4.4.0') format('woff'),url('../fonts/fontawesome-webfont.ttf?v=4.4.0') format('truetype'),url('../fonts/fontawesome-webfont.svg?v=4.4.0#fontawesomeregular') format('svg');font-weight:normal;font-style:normal}.fa{display:inline-block;font:normal normal normal 14px/1 FontAwesome;font-size:inherit;text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.fa-lg{font-size:1.33333333em;line-height:.75em;vertical-align:-15%}.fa-2x{font-size:2em}.fa-3x{font-size:3em}.fa-4x{font-size:4em}.fa-5x{font-size:5em}.fa-fw{width:1.28571429em;text-align:center}.fa-ul{padding-left:0;margin-left:2.14285714em;list-style-type:none}.fa-ul>li{position:relative}.fa-li{position:absolute;left:-2.14285714em;width:2.14285714em;top:.14285714em;text-align:center}.fa-li.fa-lg{left:-1.85714286em}.fa-border{padding:.2em .25em .15em;border:solid .08em #eee;border-radius:.1em}.fa-pull-left{float:left}.fa-pull-right{float:right}.fa.fa-pull-left{margin-right:.3em}.fa.fa-pull-right{margin-left:.3em}.pull-right{float:right}.pull-left{float:left}.fa.pull-left{margin-right:.3em}.fa.pull-right{margin-left:.3em}.fa-spin{-webkit-animation:fa-spin 2s infinite linear;animation:fa-spin 2s infinite linear}.fa-pulse{-webkit-animation:fa-spin 1s infinite steps(8);animation:fa-spin 1s infinite steps(8)}@-webkit-keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}@keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}.fa-rotate-90{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=1);-webkit-transform:rotate(90deg);-ms-transform:rotate(90deg);transform:rotate(90deg)}.fa-rotate-180{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=2);-webkit-transform:rotate(180deg);-ms-transform:rotate(180deg);transform:rotate(180deg)}.fa-rotate-270{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=3);-webkit-transform:rotate(270deg);-ms-transform:rotate(270deg);transform:rotate(270deg)}.fa-flip-horizontal{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1);-webkit-transform:scale(-1, 1);-ms-transform:scale(-1, 1);transform:scale(-1, 1)}.fa-flip-vertical{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1);-webkit-transform:scale(1, -1);-ms-transform:scale(1, -1);transform:scale(1, -1)}:root .fa-rotate-90,:root .fa-rotate-180,:root .fa-rotate-270,:root .fa-flip-horizontal,:root .fa-flip-vertical{filter:none}.fa-stack{position:relative;display:inline-block;width:2em;height:2em;line-height:2em;vertical-align:middle}.fa-stack-1x,.fa-stack-2x{position:absolute;left:0;width:100%;text-align:center}.fa-stack-1x{line-height:inherit}.fa-stack-2x{font-size:2em}.fa-inverse{color:#fff}.fa-glass:before{content:"\f000"}.fa-music:before{content:"\f001"}.fa-search:before{content:"\f002"}.fa-envelope-o:before{content:"\f003"}.fa-heart:before{content:"\f004"}.fa-star:before{content:"\f005"}.fa-star-o:before{content:"\f006"}.fa-user:before{content:"\f007"}.fa-film:before{content:"\f008"}.fa-th-large:before{content:"\f009"}.fa-th:before{content:"\f00a"}.fa-th-list:before{content:"\f00b"}.fa-check:before{content:"\f00c"}.fa-remove:before,.fa-close:before,.fa-times:before{content:"\f00d"}.fa-search-plus:before{content:"\f00e"}.fa-search-minus:before{content:"\f010"}.fa-power-off:before{content:"\f011"}.fa-signal:before{content:"\f012"}.fa-gear:before,.fa-cog:before{content:"\f013"}.fa-trash-o:before{content:"\f014"}.fa-home:before{content:"\f015"}.fa-file-o:before{content:"\f016"}.fa-clock-o:before{content:"\f017"}.fa-road:before{content:"\f018"}.fa-download:before{content:"\f019"}.fa-arrow-circle-o-down:before{content:"\f01a"}.fa-arrow-circle-o-up:before{content:"\f01b"}.fa-inbox:before{content:"\f01c"}.fa-play-circle-o:before{content:"\f01d"}.fa-rotate-right:before,.fa-repeat:before{content:"\f01e"}.fa-refresh:before{content:"\f021"}.fa-list-alt:before{content:"\f022"}.fa-lock:before{content:"\f023"}.fa-flag:before{content:"\f024"}.fa-headphones:before{content:"\f025"}.fa-volume-off:before{content:"\f026"}.fa-volume-down:before{content:"\f027"}.fa-volume-up:before{content:"\f028"}.fa-qrcode:before{content:"\f029"}.fa-barcode:before{content:"\f02a"}.fa-tag:before{content:"\f02b"}.fa-tags:before{content:"\f02c"}.fa-book:before{content:"\f02d"}.fa-bookmark:before{content:"\f02e"}.fa-print:before{content:"\f02f"}.fa-camera:before{content:"\f030"}.fa-font:before{content:"\f031"}.fa-bold:before{content:"\f032"}.fa-italic:before{content:"\f033"}.fa-text-height:before{content:"\f034"}.fa-text-width:before{content:"\f035"}.fa-align-left:before{content:"\f036"}.fa-align-center:before{content:"\f037"}.fa-align-right:before{content:"\f038"}.fa-align-justify:before{content:"\f039"}.fa-list:before{content:"\f03a"}.fa-dedent:before,.fa-outdent:before{content:"\f03b"}.fa-indent:before{content:"\f03c"}.fa-video-camera:before{content:"\f03d"}.fa-photo:before,.fa-image:before,.fa-picture-o:before{content:"\f03e"}.fa-pencil:before{content:"\f040"}.fa-map-marker:before{content:"\f041"}.fa-adjust:before{content:"\f042"}.fa-tint:before{content:"\f043"}.fa-edit:before,.fa-pencil-square-o:before{content:"\f044"}.fa-share-square-o:before{content:"\f045"}.fa-check-square-o:before{content:"\f046"}.fa-arrows:before{content:"\f047"}.fa-step-backward:before{content:"\f048"}.fa-fast-backward:before{content:"\f049"}.fa-backward:before{content:"\f04a"}.fa-play:before{content:"\f04b"}.fa-pause:before{content:"\f04c"}.fa-stop:before{content:"\f04d"}.fa-forward:before{content:"\f04e"}.fa-fast-forward:before{content:"\f050"}.fa-step-forward:before{content:"\f051"}.fa-eject:before{content:"\f052"}.fa-chevron-left:before{content:"\f053"}.fa-chevron-right:before{content:"\f054"}.fa-plus-circle:before{content:"\f055"}.fa-minus-circle:before{content:"\f056"}.fa-times-circle:before{content:"\f057"}.fa-check-circle:before{content:"\f058"}.fa-question-circle:before{content:"\f059"}.fa-info-circle:before{content:"\f05a"}.fa-crosshairs:before{content:"\f05b"}.fa-times-circle-o:before{content:"\f05c"}.fa-check-circle-o:before{content:"\f05d"}.fa-ban:before{content:"\f05e"}.fa-arrow-left:before{content:"\f060"}.fa-arrow-right:before{content:"\f061"}.fa-arrow-up:before{content:"\f062"}.fa-arrow-down:before{content:"\f063"}.fa-mail-forward:before,.fa-share:before{content:"\f064"}.fa-expand:before{content:"\f065"}.fa-compress:before{content:"\f066"}.fa-plus:before{content:"\f067"}.fa-minus:before{content:"\f068"}.fa-asterisk:before{content:"\f069"}.fa-exclamation-circle:before{content:"\f06a"}.fa-gift:before{content:"\f06b"}.fa-leaf:before{content:"\f06c"}.fa-fire:before{content:"\f06d"}.fa-eye:before{content:"\f06e"}.fa-eye-slash:before{content:"\f070"}.fa-warning:before,.fa-exclamation-triangle:before{content:"\f071"}.fa-plane:before{content:"\f072"}.fa-calendar:before{content:"\f073"}.fa-random:before{content:"\f074"}.fa-comment:before{content:"\f075"}.fa-magnet:before{content:"\f076"}.fa-chevron-up:before{content:"\f077"}.fa-chevron-down:before{content:"\f078"}.fa-retweet:before{content:"\f079"}.fa-shopping-cart:before{content:"\f07a"}.fa-folder:before{content:"\f07b"}.fa-folder-open:before{content:"\f07c"}.fa-arrows-v:before{content:"\f07d"}.fa-arrows-h:before{content:"\f07e"}.fa-bar-chart-o:before,.fa-bar-chart:before{content:"\f080"}.fa-twitter-square:before{content:"\f081"}.fa-facebook-square:before{content:"\f082"}.fa-camera-retro:before{content:"\f083"}.fa-key:before{content:"\f084"}.fa-gears:before,.fa-cogs:before{content:"\f085"}.fa-comments:before{content:"\f086"}.fa-thumbs-o-up:before{content:"\f087"}.fa-thumbs-o-down:before{content:"\f088"}.fa-star-half:before{content:"\f089"}.fa-heart-o:before{content:"\f08a"}.fa-sign-out:before{content:"\f08b"}.fa-linkedin-square:before{content:"\f08c"}.fa-thumb-tack:before{content:"\f08d"}.fa-external-link:before{content:"\f08e"}.fa-sign-in:before{content:"\f090"}.fa-trophy:before{content:"\f091"}.fa-github-square:before{content:"\f092"}.fa-upload:before{content:"\f093"}.fa-lemon-o:before{content:"\f094"}.fa-phone:before{content:"\f095"}.fa-square-o:before{content:"\f096"}.fa-bookmark-o:before{content:"\f097"}.fa-phone-square:before{content:"\f098"}.fa-twitter:before{content:"\f099"}.fa-facebook-f:before,.fa-facebook:before{content:"\f09a"}.fa-github:before{content:"\f09b"}.fa-unlock:before{content:"\f09c"}.fa-credit-card:before{content:"\f09d"}.fa-feed:before,.fa-rss:before{content:"\f09e"}.fa-hdd-o:before{content:"\f0a0"}.fa-bullhorn:before{content:"\f0a1"}.fa-bell:before{content:"\f0f3"}.fa-certificate:before{content:"\f0a3"}.fa-hand-o-right:before{content:"\f0a4"}.fa-hand-o-left:before{content:"\f0a5"}.fa-hand-o-up:before{content:"\f0a6"}.fa-hand-o-down:before{content:"\f0a7"}.fa-arrow-circle-left:before{content:"\f0a8"}.fa-arrow-circle-right:before{content:"\f0a9"}.fa-arrow-circle-up:before{content:"\f0aa"}.fa-arrow-circle-down:before{content:"\f0ab"}.fa-globe:before{content:"\f0ac"}.fa-wrench:before{content:"\f0ad"}.fa-tasks:before{content:"\f0ae"}.fa-filter:before{content:"\f0b0"}.fa-briefcase:before{content:"\f0b1"}.fa-arrows-alt:before{content:"\f0b2"}.fa-group:before,.fa-users:before{content:"\f0c0"}.fa-chain:before,.fa-link:before{content:"\f0c1"}.fa-cloud:before{content:"\f0c2"}.fa-flask:before{content:"\f0c3"}.fa-cut:before,.fa-scissors:before{content:"\f0c4"}.fa-copy:before,.fa-files-o:before{content:"\f0c5"}.fa-paperclip:before{content:"\f0c6"}.fa-save:before,.fa-floppy-o:before{content:"\f0c7"}.fa-square:before{content:"\f0c8"}.fa-navicon:before,.fa-reorder:before,.fa-bars:before{content:"\f0c9"}.fa-list-ul:before{content:"\f0ca"}.fa-list-ol:before{content:"\f0cb"}.fa-strikethrough:before{content:"\f0cc"}.fa-underline:before{content:"\f0cd"}.fa-table:before{content:"\f0ce"}.fa-magic:before{content:"\f0d0"}.fa-truck:before{content:"\f0d1"}.fa-pinterest:before{content:"\f0d2"}.fa-pinterest-square:before{content:"\f0d3"}.fa-google-plus-square:before{content:"\f0d4"}.fa-google-plus:before{content:"\f0d5"}.fa-money:before{content:"\f0d6"}.fa-caret-down:before{content:"\f0d7"}.fa-caret-up:before{content:"\f0d8"}.fa-caret-left:before{content:"\f0d9"}.fa-caret-right:before{content:"\f0da"}.fa-columns:before{content:"\f0db"}.fa-unsorted:before,.fa-sort:before{content:"\f0dc"}.fa-sort-down:before,.fa-sort-desc:before{content:"\f0dd"}.fa-sort-up:before,.fa-sort-asc:before{content:"\f0de"}.fa-envelope:before{content:"\f0e0"}.fa-linkedin:before{content:"\f0e1"}.fa-rotate-left:before,.fa-undo:before{content:"\f0e2"}.fa-legal:before,.fa-gavel:before{content:"\f0e3"}.fa-dashboard:before,.fa-tachometer:before{content:"\f0e4"}.fa-comment-o:before{content:"\f0e5"}.fa-comments-o:before{content:"\f0e6"}.fa-flash:before,.fa-bolt:before{content:"\f0e7"}.fa-sitemap:before{content:"\f0e8"}.fa-umbrella:before{content:"\f0e9"}.fa-paste:before,.fa-clipboard:before{content:"\f0ea"}.fa-lightbulb-o:before{content:"\f0eb"}.fa-exchange:before{content:"\f0ec"}.fa-cloud-download:before{content:"\f0ed"}.fa-cloud-upload:before{content:"\f0ee"}.fa-user-md:before{content:"\f0f0"}.fa-stethoscope:before{content:"\f0f1"}.fa-suitcase:before{content:"\f0f2"}.fa-bell-o:before{content:"\f0a2"}.fa-coffee:before{content:"\f0f4"}.fa-cutlery:before{content:"\f0f5"}.fa-file-text-o:before{content:"\f0f6"}.fa-building-o:before{content:"\f0f7"}.fa-hospital-o:before{content:"\f0f8"}.fa-ambulance:before{content:"\f0f9"}.fa-medkit:before{content:"\f0fa"}.fa-fighter-jet:before{content:"\f0fb"}.fa-beer:before{content:"\f0fc"}.fa-h-square:before{content:"\f0fd"}.fa-plus-square:before{content:"\f0fe"}.fa-angle-double-left:before{content:"\f100"}.fa-angle-double-right:before{content:"\f101"}.fa-angle-double-up:before{content:"\f102"}.fa-angle-double-down:before{content:"\f103"}.fa-angle-left:before{content:"\f104"}.fa-angle-right:before{content:"\f105"}.fa-angle-up:before{content:"\f106"}.fa-angle-down:before{content:"\f107"}.fa-desktop:before{content:"\f108"}.fa-laptop:before{content:"\f109"}.fa-tablet:before{content:"\f10a"}.fa-mobile-phone:before,.fa-mobile:before{content:"\f10b"}.fa-circle-o:before{content:"\f10c"}.fa-quote-left:before{content:"\f10d"}.fa-quote-right:before{content:"\f10e"}.fa-spinner:before{content:"\f110"}.fa-circle:before{content:"\f111"}.fa-mail-reply:before,.fa-reply:before{content:"\f112"}.fa-github-alt:before{content:"\f113"}.fa-folder-o:before{content:"\f114"}.fa-folder-open-o:before{content:"\f115"}.fa-smile-o:before{content:"\f118"}.fa-frown-o:before{content:"\f119"}.fa-meh-o:before{content:"\f11a"}.fa-gamepad:before{content:"\f11b"}.fa-keyboard-o:before{content:"\f11c"}.fa-flag-o:before{content:"\f11d"}.fa-flag-checkered:before{content:"\f11e"}.fa-terminal:before{content:"\f120"}.fa-code:before{content:"\f121"}.fa-mail-reply-all:before,.fa-reply-all:before{content:"\f122"}.fa-star-half-empty:before,.fa-star-half-full:before,.fa-star-half-o:before{content:"\f123"}.fa-location-arrow:before{content:"\f124"}.fa-crop:before{content:"\f125"}.fa-code-fork:before{content:"\f126"}.fa-unlink:before,.fa-chain-broken:before{content:"\f127"}.fa-question:before{content:"\f128"}.fa-info:before{content:"\f129"}.fa-exclamation:before{content:"\f12a"}.fa-superscript:before{content:"\f12b"}.fa-subscript:before{content:"\f12c"}.fa-eraser:before{content:"\f12d"}.fa-puzzle-piece:before{content:"\f12e"}.fa-microphone:before{content:"\f130"}.fa-microphone-slash:before{content:"\f131"}.fa-shield:before{content:"\f132"}.fa-calendar-o:before{content:"\f133"}.fa-fire-extinguisher:before{content:"\f134"}.fa-rocket:before{content:"\f135"}.fa-maxcdn:before{content:"\f136"}.fa-chevron-circle-left:before{content:"\f137"}.fa-chevron-circle-right:before{content:"\f138"}.fa-chevron-circle-up:before{content:"\f139"}.fa-chevron-circle-down:before{content:"\f13a"}.fa-html5:before{content:"\f13b"}.fa-css3:before{content:"\f13c"}.fa-anchor:before{content:"\f13d"}.fa-unlock-alt:before{content:"\f13e"}.fa-bullseye:before{content:"\f140"}.fa-ellipsis-h:before{content:"\f141"}.fa-ellipsis-v:before{content:"\f142"}.fa-rss-square:before{content:"\f143"}.fa-play-circle:before{content:"\f144"}.fa-ticket:before{content:"\f145"}.fa-minus-square:before{content:"\f146"}.fa-minus-square-o:before{content:"\f147"}.fa-level-up:before{content:"\f148"}.fa-level-down:before{content:"\f149"}.fa-check-square:before{content:"\f14a"}.fa-pencil-square:before{content:"\f14b"}.fa-external-link-square:before{content:"\f14c"}.fa-share-square:before{content:"\f14d"}.fa-compass:before{content:"\f14e"}.fa-toggle-down:before,.fa-caret-square-o-down:before{content:"\f150"}.fa-toggle-up:before,.fa-caret-square-o-up:before{content:"\f151"}.fa-toggle-right:before,.fa-caret-square-o-right:before{content:"\f152"}.fa-euro:before,.fa-eur:before{content:"\f153"}.fa-gbp:before{content:"\f154"}.fa-dollar:before,.fa-usd:before{content:"\f155"}.fa-rupee:before,.fa-inr:before{content:"\f156"}.fa-cny:before,.fa-rmb:before,.fa-yen:before,.fa-jpy:before{content:"\f157"}.fa-ruble:before,.fa-rouble:before,.fa-rub:before{content:"\f158"}.fa-won:before,.fa-krw:before{content:"\f159"}.fa-bitcoin:before,.fa-btc:before{content:"\f15a"}.fa-file:before{content:"\f15b"}.fa-file-text:before{content:"\f15c"}.fa-sort-alpha-asc:before{content:"\f15d"}.fa-sort-alpha-desc:before{content:"\f15e"}.fa-sort-amount-asc:before{content:"\f160"}.fa-sort-amount-desc:before{content:"\f161"}.fa-sort-numeric-asc:before{content:"\f162"}.fa-sort-numeric-desc:before{content:"\f163"}.fa-thumbs-up:before{content:"\f164"}.fa-thumbs-down:before{content:"\f165"}.fa-youtube-square:before{content:"\f166"}.fa-youtube:before{content:"\f167"}.fa-xing:before{content:"\f168"}.fa-xing-square:before{content:"\f169"}.fa-youtube-play:before{content:"\f16a"}.fa-dropbox:before{content:"\f16b"}.fa-stack-overflow:before{content:"\f16c"}.fa-instagram:before{content:"\f16d"}.fa-flickr:before{content:"\f16e"}.fa-adn:before{content:"\f170"}.fa-bitbucket:before{content:"\f171"}.fa-bitbucket-square:before{content:"\f172"}.fa-tumblr:before{content:"\f173"}.fa-tumblr-square:before{content:"\f174"}.fa-long-arrow-down:before{content:"\f175"}.fa-long-arrow-up:before{content:"\f176"}.fa-long-arrow-left:before{content:"\f177"}.fa-long-arrow-right:before{content:"\f178"}.fa-apple:before{content:"\f179"}.fa-windows:before{content:"\f17a"}.fa-android:before{content:"\f17b"}.fa-linux:before{content:"\f17c"}.fa-dribbble:before{content:"\f17d"}.fa-skype:before{content:"\f17e"}.fa-foursquare:before{content:"\f180"}.fa-trello:before{content:"\f181"}.fa-female:before{content:"\f182"}.fa-male:before{content:"\f183"}.fa-gittip:before,.fa-gratipay:before{content:"\f184"}.fa-sun-o:before{content:"\f185"}.fa-moon-o:before{content:"\f186"}.fa-archive:before{content:"\f187"}.fa-bug:before{content:"\f188"}.fa-vk:before{content:"\f189"}.fa-weibo:before{content:"\f18a"}.fa-renren:before{content:"\f18b"}.fa-pagelines:before{content:"\f18c"}.fa-stack-exchange:before{content:"\f18d"}.fa-arrow-circle-o-right:before{content:"\f18e"}.fa-arrow-circle-o-left:before{content:"\f190"}.fa-toggle-left:before,.fa-caret-square-o-left:before{content:"\f191"}.fa-dot-circle-o:before{content:"\f192"}.fa-wheelchair:before{content:"\f193"}.fa-vimeo-square:before{content:"\f194"}.fa-turkish-lira:before,.fa-try:before{content:"\f195"}.fa-plus-square-o:before{content:"\f196"}.fa-space-shuttle:before{content:"\f197"}.fa-slack:before{content:"\f198"}.fa-envelope-square:before{content:"\f199"}.fa-wordpress:before{content:"\f19a"}.fa-openid:before{content:"\f19b"}.fa-institution:before,.fa-bank:before,.fa-university:before{content:"\f19c"}.fa-mortar-board:before,.fa-graduation-cap:before{content:"\f19d"}.fa-yahoo:before{content:"\f19e"}.fa-google:before{content:"\f1a0"}.fa-reddit:before{content:"\f1a1"}.fa-reddit-square:before{content:"\f1a2"}.fa-stumbleupon-circle:before{content:"\f1a3"}.fa-stumbleupon:before{content:"\f1a4"}.fa-delicious:before{content:"\f1a5"}.fa-digg:before{content:"\f1a6"}.fa-pied-piper:before{content:"\f1a7"}.fa-pied-piper-alt:before{content:"\f1a8"}.fa-drupal:before{content:"\f1a9"}.fa-joomla:before{content:"\f1aa"}.fa-language:before{content:"\f1ab"}.fa-fax:before{content:"\f1ac"}.fa-building:before{content:"\f1ad"}.fa-child:before{content:"\f1ae"}.fa-paw:before{content:"\f1b0"}.fa-spoon:before{content:"\f1b1"}.fa-cube:before{content:"\f1b2"}.fa-cubes:before{content:"\f1b3"}.fa-behance:before{content:"\f1b4"}.fa-behance-square:before{content:"\f1b5"}.fa-steam:before{content:"\f1b6"}.fa-steam-square:before{content:"\f1b7"}.fa-recycle:before{content:"\f1b8"}.fa-automobile:before,.fa-car:before{content:"\f1b9"}.fa-cab:before,.fa-taxi:before{content:"\f1ba"}.fa-tree:before{content:"\f1bb"}.fa-spotify:before{content:"\f1bc"}.fa-deviantart:before{content:"\f1bd"}.fa-soundcloud:before{content:"\f1be"}.fa-database:before{content:"\f1c0"}.fa-file-pdf-o:before{content:"\f1c1"}.fa-file-word-o:before{content:"\f1c2"}.fa-file-excel-o:before{content:"\f1c3"}.fa-file-powerpoint-o:before{content:"\f1c4"}.fa-file-photo-o:before,.fa-file-picture-o:before,.fa-file-image-o:before{content:"\f1c5"}.fa-file-zip-o:before,.fa-file-archive-o:before{content:"\f1c6"}.fa-file-sound-o:before,.fa-file-audio-o:before{content:"\f1c7"}.fa-file-movie-o:before,.fa-file-video-o:before{content:"\f1c8"}.fa-file-code-o:before{content:"\f1c9"}.fa-vine:before{content:"\f1ca"}.fa-codepen:before{content:"\f1cb"}.fa-jsfiddle:before{content:"\f1cc"}.fa-life-bouy:before,.fa-life-buoy:before,.fa-life-saver:before,.fa-support:before,.fa-life-ring:before{content:"\f1cd"}.fa-circle-o-notch:before{content:"\f1ce"}.fa-ra:before,.fa-rebel:before{content:"\f1d0"}.fa-ge:before,.fa-empire:before{content:"\f1d1"}.fa-git-square:before{content:"\f1d2"}.fa-git:before{content:"\f1d3"}.fa-y-combinator-square:before,.fa-yc-square:before,.fa-hacker-news:before{content:"\f1d4"}.fa-tencent-weibo:before{content:"\f1d5"}.fa-qq:before{content:"\f1d6"}.fa-wechat:before,.fa-weixin:before{content:"\f1d7"}.fa-send:before,.fa-paper-plane:before{content:"\f1d8"}.fa-send-o:before,.fa-paper-plane-o:before{content:"\f1d9"}.fa-history:before{content:"\f1da"}.fa-circle-thin:before{content:"\f1db"}.fa-header:before{content:"\f1dc"}.fa-paragraph:before{content:"\f1dd"}.fa-sliders:before{content:"\f1de"}.fa-share-alt:before{content:"\f1e0"}.fa-share-alt-square:before{content:"\f1e1"}.fa-bomb:before{content:"\f1e2"}.fa-soccer-ball-o:before,.fa-futbol-o:before{content:"\f1e3"}.fa-tty:before{content:"\f1e4"}.fa-binoculars:before{content:"\f1e5"}.fa-plug:before{content:"\f1e6"}.fa-slideshare:before{content:"\f1e7"}.fa-twitch:before{content:"\f1e8"}.fa-yelp:before{content:"\f1e9"}.fa-newspaper-o:before{content:"\f1ea"}.fa-wifi:before{content:"\f1eb"}.fa-calculator:before{content:"\f1ec"}.fa-paypal:before{content:"\f1ed"}.fa-google-wallet:before{content:"\f1ee"}.fa-cc-visa:before{content:"\f1f0"}.fa-cc-mastercard:before{content:"\f1f1"}.fa-cc-discover:before{content:"\f1f2"}.fa-cc-amex:before{content:"\f1f3"}.fa-cc-paypal:before{content:"\f1f4"}.fa-cc-stripe:before{content:"\f1f5"}.fa-bell-slash:before{content:"\f1f6"}.fa-bell-slash-o:before{content:"\f1f7"}.fa-trash:before{content:"\f1f8"}.fa-copyright:before{content:"\f1f9"}.fa-at:before{content:"\f1fa"}.fa-eyedropper:before{content:"\f1fb"}.fa-paint-brush:before{content:"\f1fc"}.fa-birthday-cake:before{content:"\f1fd"}.fa-area-chart:before{content:"\f1fe"}.fa-pie-chart:before{content:"\f200"}.fa-line-chart:before{content:"\f201"}.fa-lastfm:before{content:"\f202"}.fa-lastfm-square:before{content:"\f203"}.fa-toggle-off:before{content:"\f204"}.fa-toggle-on:before{content:"\f205"}.fa-bicycle:before{content:"\f206"}.fa-bus:before{content:"\f207"}.fa-ioxhost:before{content:"\f208"}.fa-angellist:before{content:"\f209"}.fa-cc:before{content:"\f20a"}.fa-shekel:before,.fa-sheqel:before,.fa-ils:before{content:"\f20b"}.fa-meanpath:before{content:"\f20c"}.fa-buysellads:before{content:"\f20d"}.fa-connectdevelop:before{content:"\f20e"}.fa-dashcube:before{content:"\f210"}.fa-forumbee:before{content:"\f211"}.fa-leanpub:before{content:"\f212"}.fa-sellsy:before{content:"\f213"}.fa-shirtsinbulk:before{content:"\f214"}.fa-simplybuilt:before{content:"\f215"}.fa-skyatlas:before{content:"\f216"}.fa-cart-plus:before{content:"\f217"}.fa-cart-arrow-down:before{content:"\f218"}.fa-diamond:before{content:"\f219"}.fa-ship:before{content:"\f21a"}.fa-user-secret:before{content:"\f21b"}.fa-motorcycle:before{content:"\f21c"}.fa-street-view:before{content:"\f21d"}.fa-heartbeat:before{content:"\f21e"}.fa-venus:before{content:"\f221"}.fa-mars:before{content:"\f222"}.fa-mercury:before{content:"\f223"}.fa-intersex:before,.fa-transgender:before{content:"\f224"}.fa-transgender-alt:before{content:"\f225"}.fa-venus-double:before{content:"\f226"}.fa-mars-double:before{content:"\f227"}.fa-venus-mars:before{content:"\f228"}.fa-mars-stroke:before{content:"\f229"}.fa-mars-stroke-v:before{content:"\f22a"}.fa-mars-stroke-h:before{content:"\f22b"}.fa-neuter:before{content:"\f22c"}.fa-genderless:before{content:"\f22d"}.fa-facebook-official:before{content:"\f230"}.fa-pinterest-p:before{content:"\f231"}.fa-whatsapp:before{content:"\f232"}.fa-server:before{content:"\f233"}.fa-user-plus:before{content:"\f234"}.fa-user-times:before{content:"\f235"}.fa-hotel:before,.fa-bed:before{content:"\f236"}.fa-viacoin:before{content:"\f237"}.fa-train:before{content:"\f238"}.fa-subway:before{content:"\f239"}.fa-medium:before{content:"\f23a"}.fa-yc:before,.fa-y-combinator:before{content:"\f23b"}.fa-optin-monster:before{content:"\f23c"}.fa-opencart:before{content:"\f23d"}.fa-expeditedssl:before{content:"\f23e"}.fa-battery-4:before,.fa-battery-full:before{content:"\f240"}.fa-battery-3:before,.fa-battery-three-quarters:before{content:"\f241"}.fa-battery-2:before,.fa-battery-half:before{content:"\f242"}.fa-battery-1:before,.fa-battery-quarter:before{content:"\f243"}.fa-battery-0:before,.fa-battery-empty:before{content:"\f244"}.fa-mouse-pointer:before{content:"\f245"}.fa-i-cursor:before{content:"\f246"}.fa-object-group:before{content:"\f247"}.fa-object-ungroup:before{content:"\f248"}.fa-sticky-note:before{content:"\f249"}.fa-sticky-note-o:before{content:"\f24a"}.fa-cc-jcb:before{content:"\f24b"}.fa-cc-diners-club:before{content:"\f24c"}.fa-clone:before{content:"\f24d"}.fa-balance-scale:before{content:"\f24e"}.fa-hourglass-o:before{content:"\f250"}.fa-hourglass-1:before,.fa-hourglass-start:before{content:"\f251"}.fa-hourglass-2:before,.fa-hourglass-half:before{content:"\f252"}.fa-hourglass-3:before,.fa-hourglass-end:before{content:"\f253"}.fa-hourglass:before{content:"\f254"}.fa-hand-grab-o:before,.fa-hand-rock-o:before{content:"\f255"}.fa-hand-stop-o:before,.fa-hand-paper-o:before{content:"\f256"}.fa-hand-scissors-o:before{content:"\f257"}.fa-hand-lizard-o:before{content:"\f258"}.fa-hand-spock-o:before{content:"\f259"}.fa-hand-pointer-o:before{content:"\f25a"}.fa-hand-peace-o:before{content:"\f25b"}.fa-trademark:before{content:"\f25c"}.fa-registered:before{content:"\f25d"}.fa-creative-commons:before{content:"\f25e"}.fa-gg:before{content:"\f260"}.fa-gg-circle:before{content:"\f261"}.fa-tripadvisor:before{content:"\f262"}.fa-odnoklassniki:before{content:"\f263"}.fa-odnoklassniki-square:before{content:"\f264"}.fa-get-pocket:before{content:"\f265"}.fa-wikipedia-w:before{content:"\f266"}.fa-safari:before{content:"\f267"}.fa-chrome:before{content:"\f268"}.fa-firefox:before{content:"\f269"}.fa-opera:before{content:"\f26a"}.fa-internet-explorer:before{content:"\f26b"}.fa-tv:before,.fa-television:before{content:"\f26c"}.fa-contao:before{content:"\f26d"}.fa-500px:before{content:"\f26e"}.fa-amazon:before{content:"\f270"}.fa-calendar-plus-o:before{content:"\f271"}.fa-calendar-minus-o:before{content:"\f272"}.fa-calendar-times-o:before{content:"\f273"}.fa-calendar-check-o:before{content:"\f274"}.fa-industry:before{content:"\f275"}.fa-map-pin:before{content:"\f276"}.fa-map-signs:before{content:"\f277"}.fa-map-o:before{content:"\f278"}.fa-map:before{content:"\f279"}.fa-commenting:before{content:"\f27a"}.fa-commenting-o:before{content:"\f27b"}.fa-houzz:before{content:"\f27c"}.fa-vimeo:before{content:"\f27d"}.fa-black-tie:before{content:"\f27e"}.fa-fonticons:before{content:"\f280"} + */@font-face{font-family:'FontAwesome';src:url('../fonts/fontawesome-webfont.eot?v=4.6.1');src:url('../fonts/fontawesome-webfont.eot?#iefix&v=4.6.1') format('embedded-opentype'),url('../fonts/fontawesome-webfont.woff2?v=4.6.1') format('woff2'),url('../fonts/fontawesome-webfont.woff?v=4.6.1') format('woff'),url('../fonts/fontawesome-webfont.ttf?v=4.6.1') format('truetype'),url('../fonts/fontawesome-webfont.svg?v=4.6.1#fontawesomeregular') format('svg');font-weight:normal;font-style:normal}.fa{display:inline-block;font:normal normal normal 14px/1 FontAwesome;font-size:inherit;text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.fa-lg{font-size:1.33333333em;line-height:.75em;vertical-align:-15%}.fa-2x{font-size:2em}.fa-3x{font-size:3em}.fa-4x{font-size:4em}.fa-5x{font-size:5em}.fa-fw{width:1.28571429em;text-align:center}.fa-ul{padding-left:0;margin-left:2.14285714em;list-style-type:none}.fa-ul>li{position:relative}.fa-li{position:absolute;left:-2.14285714em;width:2.14285714em;top:.14285714em;text-align:center}.fa-li.fa-lg{left:-1.85714286em}.fa-border{padding:.2em .25em .15em;border:solid .08em #eee;border-radius:.1em}.fa-pull-left{float:left}.fa-pull-right{float:right}.fa.fa-pull-left{margin-right:.3em}.fa.fa-pull-right{margin-left:.3em}.pull-right{float:right}.pull-left{float:left}.fa.pull-left{margin-right:.3em}.fa.pull-right{margin-left:.3em}.fa-spin{-webkit-animation:fa-spin 2s infinite linear;animation:fa-spin 2s infinite linear}.fa-pulse{-webkit-animation:fa-spin 1s infinite steps(8);animation:fa-spin 1s infinite steps(8)}@-webkit-keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}@keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}.fa-rotate-90{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=1)";-webkit-transform:rotate(90deg);-ms-transform:rotate(90deg);transform:rotate(90deg)}.fa-rotate-180{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2)";-webkit-transform:rotate(180deg);-ms-transform:rotate(180deg);transform:rotate(180deg)}.fa-rotate-270{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=3)";-webkit-transform:rotate(270deg);-ms-transform:rotate(270deg);transform:rotate(270deg)}.fa-flip-horizontal{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1)";-webkit-transform:scale(-1, 1);-ms-transform:scale(-1, 1);transform:scale(-1, 1)}.fa-flip-vertical{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)";-webkit-transform:scale(1, -1);-ms-transform:scale(1, -1);transform:scale(1, -1)}:root .fa-rotate-90,:root .fa-rotate-180,:root .fa-rotate-270,:root .fa-flip-horizontal,:root .fa-flip-vertical{filter:none}.fa-stack{position:relative;display:inline-block;width:2em;height:2em;line-height:2em;vertical-align:middle}.fa-stack-1x,.fa-stack-2x{position:absolute;left:0;width:100%;text-align:center}.fa-stack-1x{line-height:inherit}.fa-stack-2x{font-size:2em}.fa-inverse{color:#fff}.fa-glass:before{content:"\f000"}.fa-music:before{content:"\f001"}.fa-search:before{content:"\f002"}.fa-envelope-o:before{content:"\f003"}.fa-heart:before{content:"\f004"}.fa-star:before{content:"\f005"}.fa-star-o:before{content:"\f006"}.fa-user:before{content:"\f007"}.fa-film:before{content:"\f008"}.fa-th-large:before{content:"\f009"}.fa-th:before{content:"\f00a"}.fa-th-list:before{content:"\f00b"}.fa-check:before{content:"\f00c"}.fa-remove:before,.fa-close:before,.fa-times:before{content:"\f00d"}.fa-search-plus:before{content:"\f00e"}.fa-search-minus:before{content:"\f010"}.fa-power-off:before{content:"\f011"}.fa-signal:before{content:"\f012"}.fa-gear:before,.fa-cog:before{content:"\f013"}.fa-trash-o:before{content:"\f014"}.fa-home:before{content:"\f015"}.fa-file-o:before{content:"\f016"}.fa-clock-o:before{content:"\f017"}.fa-road:before{content:"\f018"}.fa-download:before{content:"\f019"}.fa-arrow-circle-o-down:before{content:"\f01a"}.fa-arrow-circle-o-up:before{content:"\f01b"}.fa-inbox:before{content:"\f01c"}.fa-play-circle-o:before{content:"\f01d"}.fa-rotate-right:before,.fa-repeat:before{content:"\f01e"}.fa-refresh:before{content:"\f021"}.fa-list-alt:before{content:"\f022"}.fa-lock:before{content:"\f023"}.fa-flag:before{content:"\f024"}.fa-headphones:before{content:"\f025"}.fa-volume-off:before{content:"\f026"}.fa-volume-down:before{content:"\f027"}.fa-volume-up:before{content:"\f028"}.fa-qrcode:before{content:"\f029"}.fa-barcode:before{content:"\f02a"}.fa-tag:before{content:"\f02b"}.fa-tags:before{content:"\f02c"}.fa-book:before{content:"\f02d"}.fa-bookmark:before{content:"\f02e"}.fa-print:before{content:"\f02f"}.fa-camera:before{content:"\f030"}.fa-font:before{content:"\f031"}.fa-bold:before{content:"\f032"}.fa-italic:before{content:"\f033"}.fa-text-height:before{content:"\f034"}.fa-text-width:before{content:"\f035"}.fa-align-left:before{content:"\f036"}.fa-align-center:before{content:"\f037"}.fa-align-right:before{content:"\f038"}.fa-align-justify:before{content:"\f039"}.fa-list:before{content:"\f03a"}.fa-dedent:before,.fa-outdent:before{content:"\f03b"}.fa-indent:before{content:"\f03c"}.fa-video-camera:before{content:"\f03d"}.fa-photo:before,.fa-image:before,.fa-picture-o:before{content:"\f03e"}.fa-pencil:before{content:"\f040"}.fa-map-marker:before{content:"\f041"}.fa-adjust:before{content:"\f042"}.fa-tint:before{content:"\f043"}.fa-edit:before,.fa-pencil-square-o:before{content:"\f044"}.fa-share-square-o:before{content:"\f045"}.fa-check-square-o:before{content:"\f046"}.fa-arrows:before{content:"\f047"}.fa-step-backward:before{content:"\f048"}.fa-fast-backward:before{content:"\f049"}.fa-backward:before{content:"\f04a"}.fa-play:before{content:"\f04b"}.fa-pause:before{content:"\f04c"}.fa-stop:before{content:"\f04d"}.fa-forward:before{content:"\f04e"}.fa-fast-forward:before{content:"\f050"}.fa-step-forward:before{content:"\f051"}.fa-eject:before{content:"\f052"}.fa-chevron-left:before{content:"\f053"}.fa-chevron-right:before{content:"\f054"}.fa-plus-circle:before{content:"\f055"}.fa-minus-circle:before{content:"\f056"}.fa-times-circle:before{content:"\f057"}.fa-check-circle:before{content:"\f058"}.fa-question-circle:before{content:"\f059"}.fa-info-circle:before{content:"\f05a"}.fa-crosshairs:before{content:"\f05b"}.fa-times-circle-o:before{content:"\f05c"}.fa-check-circle-o:before{content:"\f05d"}.fa-ban:before{content:"\f05e"}.fa-arrow-left:before{content:"\f060"}.fa-arrow-right:before{content:"\f061"}.fa-arrow-up:before{content:"\f062"}.fa-arrow-down:before{content:"\f063"}.fa-mail-forward:before,.fa-share:before{content:"\f064"}.fa-expand:before{content:"\f065"}.fa-compress:before{content:"\f066"}.fa-plus:before{content:"\f067"}.fa-minus:before{content:"\f068"}.fa-asterisk:before{content:"\f069"}.fa-exclamation-circle:before{content:"\f06a"}.fa-gift:before{content:"\f06b"}.fa-leaf:before{content:"\f06c"}.fa-fire:before{content:"\f06d"}.fa-eye:before{content:"\f06e"}.fa-eye-slash:before{content:"\f070"}.fa-warning:before,.fa-exclamation-triangle:before{content:"\f071"}.fa-plane:before{content:"\f072"}.fa-calendar:before{content:"\f073"}.fa-random:before{content:"\f074"}.fa-comment:before{content:"\f075"}.fa-magnet:before{content:"\f076"}.fa-chevron-up:before{content:"\f077"}.fa-chevron-down:before{content:"\f078"}.fa-retweet:before{content:"\f079"}.fa-shopping-cart:before{content:"\f07a"}.fa-folder:before{content:"\f07b"}.fa-folder-open:before{content:"\f07c"}.fa-arrows-v:before{content:"\f07d"}.fa-arrows-h:before{content:"\f07e"}.fa-bar-chart-o:before,.fa-bar-chart:before{content:"\f080"}.fa-twitter-square:before{content:"\f081"}.fa-facebook-square:before{content:"\f082"}.fa-camera-retro:before{content:"\f083"}.fa-key:before{content:"\f084"}.fa-gears:before,.fa-cogs:before{content:"\f085"}.fa-comments:before{content:"\f086"}.fa-thumbs-o-up:before{content:"\f087"}.fa-thumbs-o-down:before{content:"\f088"}.fa-star-half:before{content:"\f089"}.fa-heart-o:before{content:"\f08a"}.fa-sign-out:before{content:"\f08b"}.fa-linkedin-square:before{content:"\f08c"}.fa-thumb-tack:before{content:"\f08d"}.fa-external-link:before{content:"\f08e"}.fa-sign-in:before{content:"\f090"}.fa-trophy:before{content:"\f091"}.fa-github-square:before{content:"\f092"}.fa-upload:before{content:"\f093"}.fa-lemon-o:before{content:"\f094"}.fa-phone:before{content:"\f095"}.fa-square-o:before{content:"\f096"}.fa-bookmark-o:before{content:"\f097"}.fa-phone-square:before{content:"\f098"}.fa-twitter:before{content:"\f099"}.fa-facebook-f:before,.fa-facebook:before{content:"\f09a"}.fa-github:before{content:"\f09b"}.fa-unlock:before{content:"\f09c"}.fa-credit-card:before{content:"\f09d"}.fa-feed:before,.fa-rss:before{content:"\f09e"}.fa-hdd-o:before{content:"\f0a0"}.fa-bullhorn:before{content:"\f0a1"}.fa-bell:before{content:"\f0f3"}.fa-certificate:before{content:"\f0a3"}.fa-hand-o-right:before{content:"\f0a4"}.fa-hand-o-left:before{content:"\f0a5"}.fa-hand-o-up:before{content:"\f0a6"}.fa-hand-o-down:before{content:"\f0a7"}.fa-arrow-circle-left:before{content:"\f0a8"}.fa-arrow-circle-right:before{content:"\f0a9"}.fa-arrow-circle-up:before{content:"\f0aa"}.fa-arrow-circle-down:before{content:"\f0ab"}.fa-globe:before{content:"\f0ac"}.fa-wrench:before{content:"\f0ad"}.fa-tasks:before{content:"\f0ae"}.fa-filter:before{content:"\f0b0"}.fa-briefcase:before{content:"\f0b1"}.fa-arrows-alt:before{content:"\f0b2"}.fa-group:before,.fa-users:before{content:"\f0c0"}.fa-chain:before,.fa-link:before{content:"\f0c1"}.fa-cloud:before{content:"\f0c2"}.fa-flask:before{content:"\f0c3"}.fa-cut:before,.fa-scissors:before{content:"\f0c4"}.fa-copy:before,.fa-files-o:before{content:"\f0c5"}.fa-paperclip:before{content:"\f0c6"}.fa-save:before,.fa-floppy-o:before{content:"\f0c7"}.fa-square:before{content:"\f0c8"}.fa-navicon:before,.fa-reorder:before,.fa-bars:before{content:"\f0c9"}.fa-list-ul:before{content:"\f0ca"}.fa-list-ol:before{content:"\f0cb"}.fa-strikethrough:before{content:"\f0cc"}.fa-underline:before{content:"\f0cd"}.fa-table:before{content:"\f0ce"}.fa-magic:before{content:"\f0d0"}.fa-truck:before{content:"\f0d1"}.fa-pinterest:before{content:"\f0d2"}.fa-pinterest-square:before{content:"\f0d3"}.fa-google-plus-square:before{content:"\f0d4"}.fa-google-plus:before{content:"\f0d5"}.fa-money:before{content:"\f0d6"}.fa-caret-down:before{content:"\f0d7"}.fa-caret-up:before{content:"\f0d8"}.fa-caret-left:before{content:"\f0d9"}.fa-caret-right:before{content:"\f0da"}.fa-columns:before{content:"\f0db"}.fa-unsorted:before,.fa-sort:before{content:"\f0dc"}.fa-sort-down:before,.fa-sort-desc:before{content:"\f0dd"}.fa-sort-up:before,.fa-sort-asc:before{content:"\f0de"}.fa-envelope:before{content:"\f0e0"}.fa-linkedin:before{content:"\f0e1"}.fa-rotate-left:before,.fa-undo:before{content:"\f0e2"}.fa-legal:before,.fa-gavel:before{content:"\f0e3"}.fa-dashboard:before,.fa-tachometer:before{content:"\f0e4"}.fa-comment-o:before{content:"\f0e5"}.fa-comments-o:before{content:"\f0e6"}.fa-flash:before,.fa-bolt:before{content:"\f0e7"}.fa-sitemap:before{content:"\f0e8"}.fa-umbrella:before{content:"\f0e9"}.fa-paste:before,.fa-clipboard:before{content:"\f0ea"}.fa-lightbulb-o:before{content:"\f0eb"}.fa-exchange:before{content:"\f0ec"}.fa-cloud-download:before{content:"\f0ed"}.fa-cloud-upload:before{content:"\f0ee"}.fa-user-md:before{content:"\f0f0"}.fa-stethoscope:before{content:"\f0f1"}.fa-suitcase:before{content:"\f0f2"}.fa-bell-o:before{content:"\f0a2"}.fa-coffee:before{content:"\f0f4"}.fa-cutlery:before{content:"\f0f5"}.fa-file-text-o:before{content:"\f0f6"}.fa-building-o:before{content:"\f0f7"}.fa-hospital-o:before{content:"\f0f8"}.fa-ambulance:before{content:"\f0f9"}.fa-medkit:before{content:"\f0fa"}.fa-fighter-jet:before{content:"\f0fb"}.fa-beer:before{content:"\f0fc"}.fa-h-square:before{content:"\f0fd"}.fa-plus-square:before{content:"\f0fe"}.fa-angle-double-left:before{content:"\f100"}.fa-angle-double-right:before{content:"\f101"}.fa-angle-double-up:before{content:"\f102"}.fa-angle-double-down:before{content:"\f103"}.fa-angle-left:before{content:"\f104"}.fa-angle-right:before{content:"\f105"}.fa-angle-up:before{content:"\f106"}.fa-angle-down:before{content:"\f107"}.fa-desktop:before{content:"\f108"}.fa-laptop:before{content:"\f109"}.fa-tablet:before{content:"\f10a"}.fa-mobile-phone:before,.fa-mobile:before{content:"\f10b"}.fa-circle-o:before{content:"\f10c"}.fa-quote-left:before{content:"\f10d"}.fa-quote-right:before{content:"\f10e"}.fa-spinner:before{content:"\f110"}.fa-circle:before{content:"\f111"}.fa-mail-reply:before,.fa-reply:before{content:"\f112"}.fa-github-alt:before{content:"\f113"}.fa-folder-o:before{content:"\f114"}.fa-folder-open-o:before{content:"\f115"}.fa-smile-o:before{content:"\f118"}.fa-frown-o:before{content:"\f119"}.fa-meh-o:before{content:"\f11a"}.fa-gamepad:before{content:"\f11b"}.fa-keyboard-o:before{content:"\f11c"}.fa-flag-o:before{content:"\f11d"}.fa-flag-checkered:before{content:"\f11e"}.fa-terminal:before{content:"\f120"}.fa-code:before{content:"\f121"}.fa-mail-reply-all:before,.fa-reply-all:before{content:"\f122"}.fa-star-half-empty:before,.fa-star-half-full:before,.fa-star-half-o:before{content:"\f123"}.fa-location-arrow:before{content:"\f124"}.fa-crop:before{content:"\f125"}.fa-code-fork:before{content:"\f126"}.fa-unlink:before,.fa-chain-broken:before{content:"\f127"}.fa-question:before{content:"\f128"}.fa-info:before{content:"\f129"}.fa-exclamation:before{content:"\f12a"}.fa-superscript:before{content:"\f12b"}.fa-subscript:before{content:"\f12c"}.fa-eraser:before{content:"\f12d"}.fa-puzzle-piece:before{content:"\f12e"}.fa-microphone:before{content:"\f130"}.fa-microphone-slash:before{content:"\f131"}.fa-shield:before{content:"\f132"}.fa-calendar-o:before{content:"\f133"}.fa-fire-extinguisher:before{content:"\f134"}.fa-rocket:before{content:"\f135"}.fa-maxcdn:before{content:"\f136"}.fa-chevron-circle-left:before{content:"\f137"}.fa-chevron-circle-right:before{content:"\f138"}.fa-chevron-circle-up:before{content:"\f139"}.fa-chevron-circle-down:before{content:"\f13a"}.fa-html5:before{content:"\f13b"}.fa-css3:before{content:"\f13c"}.fa-anchor:before{content:"\f13d"}.fa-unlock-alt:before{content:"\f13e"}.fa-bullseye:before{content:"\f140"}.fa-ellipsis-h:before{content:"\f141"}.fa-ellipsis-v:before{content:"\f142"}.fa-rss-square:before{content:"\f143"}.fa-play-circle:before{content:"\f144"}.fa-ticket:before{content:"\f145"}.fa-minus-square:before{content:"\f146"}.fa-minus-square-o:before{content:"\f147"}.fa-level-up:before{content:"\f148"}.fa-level-down:before{content:"\f149"}.fa-check-square:before{content:"\f14a"}.fa-pencil-square:before{content:"\f14b"}.fa-external-link-square:before{content:"\f14c"}.fa-share-square:before{content:"\f14d"}.fa-compass:before{content:"\f14e"}.fa-toggle-down:before,.fa-caret-square-o-down:before{content:"\f150"}.fa-toggle-up:before,.fa-caret-square-o-up:before{content:"\f151"}.fa-toggle-right:before,.fa-caret-square-o-right:before{content:"\f152"}.fa-euro:before,.fa-eur:before{content:"\f153"}.fa-gbp:before{content:"\f154"}.fa-dollar:before,.fa-usd:before{content:"\f155"}.fa-rupee:before,.fa-inr:before{content:"\f156"}.fa-cny:before,.fa-rmb:before,.fa-yen:before,.fa-jpy:before{content:"\f157"}.fa-ruble:before,.fa-rouble:before,.fa-rub:before{content:"\f158"}.fa-won:before,.fa-krw:before{content:"\f159"}.fa-bitcoin:before,.fa-btc:before{content:"\f15a"}.fa-file:before{content:"\f15b"}.fa-file-text:before{content:"\f15c"}.fa-sort-alpha-asc:before{content:"\f15d"}.fa-sort-alpha-desc:before{content:"\f15e"}.fa-sort-amount-asc:before{content:"\f160"}.fa-sort-amount-desc:before{content:"\f161"}.fa-sort-numeric-asc:before{content:"\f162"}.fa-sort-numeric-desc:before{content:"\f163"}.fa-thumbs-up:before{content:"\f164"}.fa-thumbs-down:before{content:"\f165"}.fa-youtube-square:before{content:"\f166"}.fa-youtube:before{content:"\f167"}.fa-xing:before{content:"\f168"}.fa-xing-square:before{content:"\f169"}.fa-youtube-play:before{content:"\f16a"}.fa-dropbox:before{content:"\f16b"}.fa-stack-overflow:before{content:"\f16c"}.fa-instagram:before{content:"\f16d"}.fa-flickr:before{content:"\f16e"}.fa-adn:before{content:"\f170"}.fa-bitbucket:before{content:"\f171"}.fa-bitbucket-square:before{content:"\f172"}.fa-tumblr:before{content:"\f173"}.fa-tumblr-square:before{content:"\f174"}.fa-long-arrow-down:before{content:"\f175"}.fa-long-arrow-up:before{content:"\f176"}.fa-long-arrow-left:before{content:"\f177"}.fa-long-arrow-right:before{content:"\f178"}.fa-apple:before{content:"\f179"}.fa-windows:before{content:"\f17a"}.fa-android:before{content:"\f17b"}.fa-linux:before{content:"\f17c"}.fa-dribbble:before{content:"\f17d"}.fa-skype:before{content:"\f17e"}.fa-foursquare:before{content:"\f180"}.fa-trello:before{content:"\f181"}.fa-female:before{content:"\f182"}.fa-male:before{content:"\f183"}.fa-gittip:before,.fa-gratipay:before{content:"\f184"}.fa-sun-o:before{content:"\f185"}.fa-moon-o:before{content:"\f186"}.fa-archive:before{content:"\f187"}.fa-bug:before{content:"\f188"}.fa-vk:before{content:"\f189"}.fa-weibo:before{content:"\f18a"}.fa-renren:before{content:"\f18b"}.fa-pagelines:before{content:"\f18c"}.fa-stack-exchange:before{content:"\f18d"}.fa-arrow-circle-o-right:before{content:"\f18e"}.fa-arrow-circle-o-left:before{content:"\f190"}.fa-toggle-left:before,.fa-caret-square-o-left:before{content:"\f191"}.fa-dot-circle-o:before{content:"\f192"}.fa-wheelchair:before{content:"\f193"}.fa-vimeo-square:before{content:"\f194"}.fa-turkish-lira:before,.fa-try:before{content:"\f195"}.fa-plus-square-o:before{content:"\f196"}.fa-space-shuttle:before{content:"\f197"}.fa-slack:before{content:"\f198"}.fa-envelope-square:before{content:"\f199"}.fa-wordpress:before{content:"\f19a"}.fa-openid:before{content:"\f19b"}.fa-institution:before,.fa-bank:before,.fa-university:before{content:"\f19c"}.fa-mortar-board:before,.fa-graduation-cap:before{content:"\f19d"}.fa-yahoo:before{content:"\f19e"}.fa-google:before{content:"\f1a0"}.fa-reddit:before{content:"\f1a1"}.fa-reddit-square:before{content:"\f1a2"}.fa-stumbleupon-circle:before{content:"\f1a3"}.fa-stumbleupon:before{content:"\f1a4"}.fa-delicious:before{content:"\f1a5"}.fa-digg:before{content:"\f1a6"}.fa-pied-piper:before{content:"\f1a7"}.fa-pied-piper-alt:before{content:"\f1a8"}.fa-drupal:before{content:"\f1a9"}.fa-joomla:before{content:"\f1aa"}.fa-language:before{content:"\f1ab"}.fa-fax:before{content:"\f1ac"}.fa-building:before{content:"\f1ad"}.fa-child:before{content:"\f1ae"}.fa-paw:before{content:"\f1b0"}.fa-spoon:before{content:"\f1b1"}.fa-cube:before{content:"\f1b2"}.fa-cubes:before{content:"\f1b3"}.fa-behance:before{content:"\f1b4"}.fa-behance-square:before{content:"\f1b5"}.fa-steam:before{content:"\f1b6"}.fa-steam-square:before{content:"\f1b7"}.fa-recycle:before{content:"\f1b8"}.fa-automobile:before,.fa-car:before{content:"\f1b9"}.fa-cab:before,.fa-taxi:before{content:"\f1ba"}.fa-tree:before{content:"\f1bb"}.fa-spotify:before{content:"\f1bc"}.fa-deviantart:before{content:"\f1bd"}.fa-soundcloud:before{content:"\f1be"}.fa-database:before{content:"\f1c0"}.fa-file-pdf-o:before{content:"\f1c1"}.fa-file-word-o:before{content:"\f1c2"}.fa-file-excel-o:before{content:"\f1c3"}.fa-file-powerpoint-o:before{content:"\f1c4"}.fa-file-photo-o:before,.fa-file-picture-o:before,.fa-file-image-o:before{content:"\f1c5"}.fa-file-zip-o:before,.fa-file-archive-o:before{content:"\f1c6"}.fa-file-sound-o:before,.fa-file-audio-o:before{content:"\f1c7"}.fa-file-movie-o:before,.fa-file-video-o:before{content:"\f1c8"}.fa-file-code-o:before{content:"\f1c9"}.fa-vine:before{content:"\f1ca"}.fa-codepen:before{content:"\f1cb"}.fa-jsfiddle:before{content:"\f1cc"}.fa-life-bouy:before,.fa-life-buoy:before,.fa-life-saver:before,.fa-support:before,.fa-life-ring:before{content:"\f1cd"}.fa-circle-o-notch:before{content:"\f1ce"}.fa-ra:before,.fa-rebel:before{content:"\f1d0"}.fa-ge:before,.fa-empire:before{content:"\f1d1"}.fa-git-square:before{content:"\f1d2"}.fa-git:before{content:"\f1d3"}.fa-y-combinator-square:before,.fa-yc-square:before,.fa-hacker-news:before{content:"\f1d4"}.fa-tencent-weibo:before{content:"\f1d5"}.fa-qq:before{content:"\f1d6"}.fa-wechat:before,.fa-weixin:before{content:"\f1d7"}.fa-send:before,.fa-paper-plane:before{content:"\f1d8"}.fa-send-o:before,.fa-paper-plane-o:before{content:"\f1d9"}.fa-history:before{content:"\f1da"}.fa-circle-thin:before{content:"\f1db"}.fa-header:before{content:"\f1dc"}.fa-paragraph:before{content:"\f1dd"}.fa-sliders:before{content:"\f1de"}.fa-share-alt:before{content:"\f1e0"}.fa-share-alt-square:before{content:"\f1e1"}.fa-bomb:before{content:"\f1e2"}.fa-soccer-ball-o:before,.fa-futbol-o:before{content:"\f1e3"}.fa-tty:before{content:"\f1e4"}.fa-binoculars:before{content:"\f1e5"}.fa-plug:before{content:"\f1e6"}.fa-slideshare:before{content:"\f1e7"}.fa-twitch:before{content:"\f1e8"}.fa-yelp:before{content:"\f1e9"}.fa-newspaper-o:before{content:"\f1ea"}.fa-wifi:before{content:"\f1eb"}.fa-calculator:before{content:"\f1ec"}.fa-paypal:before{content:"\f1ed"}.fa-google-wallet:before{content:"\f1ee"}.fa-cc-visa:before{content:"\f1f0"}.fa-cc-mastercard:before{content:"\f1f1"}.fa-cc-discover:before{content:"\f1f2"}.fa-cc-amex:before{content:"\f1f3"}.fa-cc-paypal:before{content:"\f1f4"}.fa-cc-stripe:before{content:"\f1f5"}.fa-bell-slash:before{content:"\f1f6"}.fa-bell-slash-o:before{content:"\f1f7"}.fa-trash:before{content:"\f1f8"}.fa-copyright:before{content:"\f1f9"}.fa-at:before{content:"\f1fa"}.fa-eyedropper:before{content:"\f1fb"}.fa-paint-brush:before{content:"\f1fc"}.fa-birthday-cake:before{content:"\f1fd"}.fa-area-chart:before{content:"\f1fe"}.fa-pie-chart:before{content:"\f200"}.fa-line-chart:before{content:"\f201"}.fa-lastfm:before{content:"\f202"}.fa-lastfm-square:before{content:"\f203"}.fa-toggle-off:before{content:"\f204"}.fa-toggle-on:before{content:"\f205"}.fa-bicycle:before{content:"\f206"}.fa-bus:before{content:"\f207"}.fa-ioxhost:before{content:"\f208"}.fa-angellist:before{content:"\f209"}.fa-cc:before{content:"\f20a"}.fa-shekel:before,.fa-sheqel:before,.fa-ils:before{content:"\f20b"}.fa-meanpath:before{content:"\f20c"}.fa-buysellads:before{content:"\f20d"}.fa-connectdevelop:before{content:"\f20e"}.fa-dashcube:before{content:"\f210"}.fa-forumbee:before{content:"\f211"}.fa-leanpub:before{content:"\f212"}.fa-sellsy:before{content:"\f213"}.fa-shirtsinbulk:before{content:"\f214"}.fa-simplybuilt:before{content:"\f215"}.fa-skyatlas:before{content:"\f216"}.fa-cart-plus:before{content:"\f217"}.fa-cart-arrow-down:before{content:"\f218"}.fa-diamond:before{content:"\f219"}.fa-ship:before{content:"\f21a"}.fa-user-secret:before{content:"\f21b"}.fa-motorcycle:before{content:"\f21c"}.fa-street-view:before{content:"\f21d"}.fa-heartbeat:before{content:"\f21e"}.fa-venus:before{content:"\f221"}.fa-mars:before{content:"\f222"}.fa-mercury:before{content:"\f223"}.fa-intersex:before,.fa-transgender:before{content:"\f224"}.fa-transgender-alt:before{content:"\f225"}.fa-venus-double:before{content:"\f226"}.fa-mars-double:before{content:"\f227"}.fa-venus-mars:before{content:"\f228"}.fa-mars-stroke:before{content:"\f229"}.fa-mars-stroke-v:before{content:"\f22a"}.fa-mars-stroke-h:before{content:"\f22b"}.fa-neuter:before{content:"\f22c"}.fa-genderless:before{content:"\f22d"}.fa-facebook-official:before{content:"\f230"}.fa-pinterest-p:before{content:"\f231"}.fa-whatsapp:before{content:"\f232"}.fa-server:before{content:"\f233"}.fa-user-plus:before{content:"\f234"}.fa-user-times:before{content:"\f235"}.fa-hotel:before,.fa-bed:before{content:"\f236"}.fa-viacoin:before{content:"\f237"}.fa-train:before{content:"\f238"}.fa-subway:before{content:"\f239"}.fa-medium:before{content:"\f23a"}.fa-yc:before,.fa-y-combinator:before{content:"\f23b"}.fa-optin-monster:before{content:"\f23c"}.fa-opencart:before{content:"\f23d"}.fa-expeditedssl:before{content:"\f23e"}.fa-battery-4:before,.fa-battery-full:before{content:"\f240"}.fa-battery-3:before,.fa-battery-three-quarters:before{content:"\f241"}.fa-battery-2:before,.fa-battery-half:before{content:"\f242"}.fa-battery-1:before,.fa-battery-quarter:before{content:"\f243"}.fa-battery-0:before,.fa-battery-empty:before{content:"\f244"}.fa-mouse-pointer:before{content:"\f245"}.fa-i-cursor:before{content:"\f246"}.fa-object-group:before{content:"\f247"}.fa-object-ungroup:before{content:"\f248"}.fa-sticky-note:before{content:"\f249"}.fa-sticky-note-o:before{content:"\f24a"}.fa-cc-jcb:before{content:"\f24b"}.fa-cc-diners-club:before{content:"\f24c"}.fa-clone:before{content:"\f24d"}.fa-balance-scale:before{content:"\f24e"}.fa-hourglass-o:before{content:"\f250"}.fa-hourglass-1:before,.fa-hourglass-start:before{content:"\f251"}.fa-hourglass-2:before,.fa-hourglass-half:before{content:"\f252"}.fa-hourglass-3:before,.fa-hourglass-end:before{content:"\f253"}.fa-hourglass:before{content:"\f254"}.fa-hand-grab-o:before,.fa-hand-rock-o:before{content:"\f255"}.fa-hand-stop-o:before,.fa-hand-paper-o:before{content:"\f256"}.fa-hand-scissors-o:before{content:"\f257"}.fa-hand-lizard-o:before{content:"\f258"}.fa-hand-spock-o:before{content:"\f259"}.fa-hand-pointer-o:before{content:"\f25a"}.fa-hand-peace-o:before{content:"\f25b"}.fa-trademark:before{content:"\f25c"}.fa-registered:before{content:"\f25d"}.fa-creative-commons:before{content:"\f25e"}.fa-gg:before{content:"\f260"}.fa-gg-circle:before{content:"\f261"}.fa-tripadvisor:before{content:"\f262"}.fa-odnoklassniki:before{content:"\f263"}.fa-odnoklassniki-square:before{content:"\f264"}.fa-get-pocket:before{content:"\f265"}.fa-wikipedia-w:before{content:"\f266"}.fa-safari:before{content:"\f267"}.fa-chrome:before{content:"\f268"}.fa-firefox:before{content:"\f269"}.fa-opera:before{content:"\f26a"}.fa-internet-explorer:before{content:"\f26b"}.fa-tv:before,.fa-television:before{content:"\f26c"}.fa-contao:before{content:"\f26d"}.fa-500px:before{content:"\f26e"}.fa-amazon:before{content:"\f270"}.fa-calendar-plus-o:before{content:"\f271"}.fa-calendar-minus-o:before{content:"\f272"}.fa-calendar-times-o:before{content:"\f273"}.fa-calendar-check-o:before{content:"\f274"}.fa-industry:before{content:"\f275"}.fa-map-pin:before{content:"\f276"}.fa-map-signs:before{content:"\f277"}.fa-map-o:before{content:"\f278"}.fa-map:before{content:"\f279"}.fa-commenting:before{content:"\f27a"}.fa-commenting-o:before{content:"\f27b"}.fa-houzz:before{content:"\f27c"}.fa-vimeo:before{content:"\f27d"}.fa-black-tie:before{content:"\f27e"}.fa-fonticons:before{content:"\f280"}.fa-reddit-alien:before{content:"\f281"}.fa-edge:before{content:"\f282"}.fa-credit-card-alt:before{content:"\f283"}.fa-codiepie:before{content:"\f284"}.fa-modx:before{content:"\f285"}.fa-fort-awesome:before{content:"\f286"}.fa-usb:before{content:"\f287"}.fa-product-hunt:before{content:"\f288"}.fa-mixcloud:before{content:"\f289"}.fa-scribd:before{content:"\f28a"}.fa-pause-circle:before{content:"\f28b"}.fa-pause-circle-o:before{content:"\f28c"}.fa-stop-circle:before{content:"\f28d"}.fa-stop-circle-o:before{content:"\f28e"}.fa-shopping-bag:before{content:"\f290"}.fa-shopping-basket:before{content:"\f291"}.fa-hashtag:before{content:"\f292"}.fa-bluetooth:before{content:"\f293"}.fa-bluetooth-b:before{content:"\f294"}.fa-percent:before{content:"\f295"}.fa-gitlab:before{content:"\f296"}.fa-wpbeginner:before{content:"\f297"}.fa-wpforms:before{content:"\f298"}.fa-envira:before{content:"\f299"}.fa-universal-access:before{content:"\f29a"}.fa-wheelchair-alt:before{content:"\f29b"}.fa-question-circle-o:before{content:"\f29c"}.fa-blind:before{content:"\f29d"}.fa-audio-description:before{content:"\f29e"}.fa-volume-control-phone:before{content:"\f2a0"}.fa-braille:before{content:"\f2a1"}.fa-assistive-listening-systems:before{content:"\f2a2"}.fa-asl-interpreting:before,.fa-american-sign-language-interpreting:before{content:"\f2a3"}.fa-deafness:before,.fa-hard-of-hearing:before,.fa-deaf:before{content:"\f2a4"}.fa-glide:before{content:"\f2a5"}.fa-glide-g:before{content:"\f2a6"}.fa-signing:before,.fa-sign-language:before{content:"\f2a7"}.fa-low-vision:before{content:"\f2a8"}.fa-viadeo:before{content:"\f2a9"}.fa-viadeo-square:before{content:"\f2aa"}.fa-snapchat:before{content:"\f2ab"}.fa-snapchat-ghost:before{content:"\f2ac"}.fa-snapchat-square:before{content:"\f2ad"}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0, 0, 0, 0);border:0}.sr-only-focusable:active,.sr-only-focusable:focus{position:static;width:auto;height:auto;margin:0;overflow:visible;clip:auto} diff --git a/stylesheets/font-awesome/fonts/FontAwesome.otf b/stylesheets/font-awesome/fonts/FontAwesome.otf index 681bdd4d4c8dddbaeb4d4f2a1f58c38cad92afe0..59853bcda7308254f58c2d74053f3ba55c21b9fb 100644 GIT binary patch delta 63162 zcmZ_02VfJ&);2tAHM0wHkpxE4N~ZU2dNb98W+0+B(@ZfK1Hym-%Qo(EUx6{;f^B-} zgpxqw^aLj%H#m)uK*&ucAvZUWk+ib&KO@6!@ArEx?e6T%?Ck8R&p9L4E9xI#(>S7S zwrIkW6rv#E<0eiFUq1hFE+OOv!hLXW!i+Jqh?#UF+=qE6>l^)ipZ?kXljh_6I?iKO zY*>~sCOh>j!rd|xqEN0`wQQyOpf7=NABW@mpfxB6Qt%l#pNI2~Yc|-o2X|}zKF)U$ z!uQ{>YW-X9opmkDj~{N2^+WAF)&=e|1Q46rQlF8vYPYO z1bAx{?zT#2ONFzgGFRSfZo!$=oXS!~W~U7L%jx{rK}(IfFBfF)+b!gbNVv;^p#eD; zH-uhME(!7mH3bI*tAqJqZE$FC>tJKBCAfWX=iu(ay@UG)4-JkCjtZV0JUe(%@QUDd z!JC4&2Rni@gY$!3!3Tq@gHHsX3%(NkO7L63?+4!wz7zaS@Q=a21^*e`7@`ar5Hjjw z*EUar97_lF8;H*!dD#>P*SzcByc^KGi)h{rY~BrO-VJWv4PiS+|1nRy8Pi-kws|+Mc{jd!H^ILf+kB_7 z&378xe5bL^cN*J#r?Jg<8ryuQvCVfH>%UX~vCTIc+kB(3%{K}j+kB_7&376*K@z)! zaf75mUD`Wd400rr66fZBlL z0apXwP_$O`QVdn>Q8*PPic&>|!f{k_QgK0XS@DwMEya6^4-_9Oeph&uDrHNhPT5u| zD%&YLDf=jgC`T!6%5%yWl^-cTReq)XM(I`Ys->z})drPIRi^r0^|R^^Rij#^?yl~m z9-yA0o~ce$XQ><1UufEEx@mf8`fCPhhG`--nVN%|TFr6IY0cj>?m*%Q6aqs7+Xh+! z+Xwat92EFm;HkQToYau9tb}PPg*KkhO}(c(%iB`%RVi~v|QFQtz}-z z11%4?JlpcsmN#48YT3~8i^^GtAEa6|Cd!9Rd4X|OMZ z3(<$P2WyT9nGiBL#1S203t1epJY;Q1e8`rN?IF1#heFPT)P;N;axdhkkUv72LKUHb zp>0FEhYkvj3Y`I-}02>#pmki_}Hy=IUZ~>vcPIxwbvTD>4)i~^fvuc{d&D!zfs0}R*dV|@}(a_V--!RB9!Z5}#(J;j@+px&6%&^+9 z*|6J?Z74Aq%MHg37YvsTFB|F%Zy9bHy79E5=(TkcwWT3WP9IXin>}@!S-i!piX6q$ zQgL4^F5KbP)61e+CR2Hj%NOy1C>YxDf?OwOW2>W`L<_Zd6(@@)#gn{6P}2d_fNg+P zkO#;HY&hDnd-o2ZbvSRJ5!A?=-F2~ildXt1Ya)w88llm7Pl{HzUPJeZI-k#_)ZLNw zYMqY`5mB|bgZJ8&iKt6gh*Yo9x<|;r&|iEb1Wj*IQ1=ss3SPFcK??&!i?Abx7lw!^ z5Qd3X;W;*B+XT_=l5NlN)Kza7!%tC1iPkAg_i5H%>m0V~me8wkYM4GO=@VrRF)Nk?BypV>B{MF*1B~()VCi-k< zIlKpNDBoSS!y?<%?CoKWzQnN6NDk|mu(b*VoVn|iAER+d!_ zsy0@q)n*;Gc#l)9>V?9ZW2cN-`H6fH+Y`2@V|e<6vYp^!1gV+u*37?IO0O1h!yRvk zW>2I#0@GQi#`J3&Ks!Xef}h8m)kGoGUA|l=H1JfP%?q@bC~M?)f}s~k1x3msys+kY zys#hBvJQkssLe1Q4?A5HGC+F6zA7P;n6Y> zDIJ9gPvjlqfN{6KE#-xeXT3RoAum)p>%<%p^f3kGp}{@tqtWpsP~0CFhs6JmqbCEu zX*UHF{O!2g11!Riyv1j8+YX6;@>ZYCXWN5GT_kPmJ8qHJF_xHaG!8eiN_;JJZ*tzO`&=x z)$0xj;LOLLg1@L97a5PQZ;E%WH|^S$ow3`xG->1VB}TKi^iB~MIS~)82g%0q?uOGM z2zCB^RYpcu+8*Pc!nEQH3nNzgJX*h1*XYoYn~?BQSQh(9LHOz zT2@aJSx2l8Z*opd%$zwfm+R^-(;q}>eczc%>ZFTHr3!$RMyQP=Gs0sL} zDn((!%$XCclBVBeN36i)=lL*3&vfWSkvU13Sp5Pr9NQp|KY*({;SWnS+ zcv>Y+QGYI48*OwSZ*l9@^iw>NB>ME~8oYizE2Vb&x)`TfELx@v73Lc9S&c9b4WKV%YQJ#`6B%6MT0@6pQ*GcZZAYZoLT?H~%L z)O3U>H>l;H&Yk5TYZHW~dylV^yOVE^K!bS*wJ7xTx0!EEum})S!pCny#?Wk9CtLvA z2ukqbGIn5~CP*uHY*=^Nlb=67j0XB8Rv4p#K(XzO`82GV76i>;OoE>Nd|NDi*~RtI zSBZ2##N?2rD_1T}NltbYZV&uZa`o?0y3)lB8aaZ;q(q1w8$@kpW^Q(-)n}Jos?^N% z6bGm=asyvflvhw>aoed&wYR8bU#Zcos-v%pLM-1y>M z1MJkU7O3kLQ8;9hT=@l(wR-Qt>LW(s!H+cf25lpl*sGG0 zMu5I(F!;uB9P~Jlz2}?ki|SX25FLVi2G4~jldeQ`8ryxuonL4l(N&V3Hsbxsci3Lg zl!^jG9yO|ENiGr8E)gtf_NJ)W1Y2=HH}PwrbNxLkN{jb#9UVt_+Jy}(g4T(?1}OFj z2!+y&gNKZViVv2SS_D=3j?H^Fn>KGw-LV7XgDA=t1@n({2B|Zbb<~O73M(F+U!nQjb>&q!I@f6e?i|j=I_nfn<2F=$w)0q zGlAxIC8zGrvJR8)s-(7q!Uw*LNsOcmMD3C4gEf1td#f{#Z7&y+OAlonG#xxtyuTFl z;^Lg(`{ZQjw*ARMC7Ag1ZV*z*X64Zm*a)(u}Lx}Es-*ApuL zd!-k7$QSgv&FOHoUA)-gaBeG2ZYxlyyqGSQozr=NqicC#HE$5;b)H5FMWQwo?Ba5_ zp%>-Zv?bk7FUhgAm98<;tUM-EE#sYZ^BR0LGZpBk`3MEg|AGg62whQJP|{XtT+p}x zDkUR3y)DE=q$q5zbzZEk7549URwnNkG~+@14zTlxy9;Ol)f%bxIt{pU*K%jrbvZ!R z8l@?NP2)Ak`5tPziQNga0jgak3eX)cybASAlum>Vs*z!>`pqR_B2QsD(gz~yvTYSR zDAks6Mh6tTRx|C!{P*Z?5T|?{A|RVyin9o(M99M3^fSIpklV=`p|H5vD!58YT!Otc zvC?75+`BJ(pJ|`4eMjcTz4o?S_EzsaViF7qc6)-QvpT_EebfpwP<9RAh2DJqG7Jjl z4YPIxc|259M|r&9b}ey$*)C~DfB@Ukkvwe&q01gfQ0*wMO|3NvKZ34kgSxy-=mcY4 z(+#3+6DDUU&#YBVAF(F}U3JGq=ZTxPZr!wL>)|7GI2ExCKXQ2MCbYfyBvSnn?Wm$z z>X+n>s>pWqk{UwY4oM2_5T%BNZ1?F)o65L0L#XRhzi9lH%`2NKmwzX;`)1%_j3Y0cAPoUFz_e5&_h>EY%aD`blR>&#I zF3BiK-=BUUtxUGk?P2n9&@HHTF@4X$Yr}__)dOfDEU-0|X|=U@dcD^r>ovj_`kMd2 zY)r2H&%f|YMK(6j^Jt2f-4Q0_c=nbg%&vPl{gwXe9xl+c@(#K~J}WHdMK{yp1oobY~{8Wmcm!^xl~hM{(R+^CPDLmRE3c$om81am6o*Byfo9Y zT+EUvE1`ECN-za(#x_MNdxL%zw~iN1(S}o0&%Oov27er6hf(c!R60vb+g`g?TI#HH z>~AYLAW%vjZLcjZ#g+Y~Z3W+O`B(W@-*5_BGqt=TtI||iQMk7p<|nlani1meU72Yq z7T*iLF)G2=R(9NyF*)*}KjcnyP%i<>S}mldLs!%@>ZNNSNL-dn1x3@BX9h0IT%7GR zqRtir4HJcqJZcZe;7{^>zZddF`lfhC$VtslE#A{My;y+Xnga{h1J6>Zs!D{tZ7c*2 zz>@Z>$wX1$KKCX$6yA3P*g+eM8aN6K*R-kkNZ(Cm0n{d!(d_ZA<+4BV3;NqN@y-91(N^7cxCX6@00(-un9 zr;i>zZ55n*O|)N@C@e6RNqfr*EI(9!c=N)&K%u8dU*Lt(gL@B26@iuc)KGT72m?(s zAxc(nU$8em%d$g=ohG-AlzG#-4aNI6S%vGOHdQo$#SDTR(=<&*AE;@JcbZB%G+cC) zmz6!?;j9TNd(9KEx*9&Xlm5h0r;yHL!UTDO+yUDJ0d`AQUg!e%wyYfF9Q2RQGzgNd zff-3>=`BVX(DE)pO@sdN4;o|@%yNoButFy9Ni%Mto#c*!EOhS&qEh_QmkPpw0a*h~ zi4J*6enC1Om%2dJF7T$XboE(3rNl;mQJn>nDuwm7Stq}i38zRM!`^lq0b>2TW7V@5b->Sz9-rDw+(vO|=6 z808)qHDurgamuz(VPJT>h;ROU^5DUfKN+<@-4sHgE|>%og2`5|rfRiN#iTtv!z{WV zM5o$P{lf0ku&Y^p7svMC2ZazTYtE^KGQ96BDFdP&X80L4BD8c-o8Umb7JgACSj@^g zSO=OykQ2ScY`Si9ubf$KJ+anaA;_IK02c|6`#=|5*jOFAVAaY6E7?uZ824$ut^d}7 z(kyqECA0EV*qN+EPr zkyb&ZRWxbUK(uj0yMt(7CP7C?@B$Ko|HUNa2nj79p@)giKy-VEejzc8Cx!;n`Vwg) zkv6ZAHV;UcmV||quo)yQm4v-W!kS3i<)rNcVzdxre`35!Oc}&HgNOnVV~Lnd9O8Z= zzDdN##L}8rti%#UEK7)GE3q6UmLG|=9kDJU);%QLNWwRf@PCkYBT2glr2S~peiLc` zCFwAZbht=5ilk#I>G%ujD3eY)(y54aooZ4K{Bp_jL#(#s>#Hc93<*{GHEQCbc#%p$#av)^dK@ln@oR$M5{>j zLK6KaiFT7{FNyY%8JEc{Et$2D%(_Z!C1mzcGDl11>?d=o$efqRTrHUwPUcS{3oes| zMzZi6Su}tw`im?+OO^~KOKy>+tI5)>Wa%EV^b}coi^S+jOlRVV89-vjkeCLtY#~{e zOO|gZE7W8~53-_^tkjZ~$z)XoS#_Gk9w)JlWc75ix{|D!LDtA*?O3w*5Lx?AvTg=h zS3u%Mk+{#u`fRfPG1*W;Hh4*VI}$&c#5+j*J`#VD#J@t~?~#pRWMdbyaS++)ARB)p z2@VTM*hUgkNWuY<@FLkXmu!k5n{JcMm1OhxWJ?~|Qb4v8kuBd4dw*h|PVD!|)_Wwe zm~5*c+isBUy~y?|vZD*xv4iaRiX=J6&Q!AVRkDjCyVj6h^<=k|Bx^|WOp^RFaYPcw zRFa}1DJ3N3AxZ5*Qezw>^$`BT+xqF^` zwTs+4O76SKgIMw)j(j_e{Jj_XPEWpzC*OTSzVArBpFn=tKz?{Yew<2vyh47OM1D>t z4||h`f018ykY9c!zkWs@O(MS?A^%uUeqTa<|0i+$^FH~bhCIGZ+}nsZhWs_3Bkywo zFLH{uoZs${t*JCx;qm1iukL$US>zT|ASk4W2pNlxc4K#2AdvXKE zas%ga16ObZFLHx=a)T#1xFK(FL)_fZdEBrBZg?m+d?7c&!i|{Bjc{-yu5%+Ea3hCu zqjqtlw{nsHRP9=~Zs$EpFE?Zuj%t?j|moaLEB&vXVdd=s>uJE5cN6bSKhst# z|5cSpH}bv+Hv?E?TLlh%5gI@K(;P!_&17EN=y1{oPhWbKlP*uFGRl9s zUGUB}@@6@*mk29o6tAt)(nUNcZJ5~2Q39wMh`!ta+sxC_(^6GgS$+JtQ41r5CW~ESe2vFNQ&qmxIMIf~mV}$6LATVU z*bXdkBwq}8zY5-r-zY=fDE@?a>NKF5$Q&skYIEQ50Md4g=QEaWwo?5$!zPB8s2Toj zZEB!t7%pN08lv#R$TU!!ST0pWwH`p{izh^HE5nJn(k+D+Uv7iE)xA(vk(PAWZd${; zXUi$7^wP4-GSl(WnjPV^+ z!|@UeMUTtvGNka^MP&-_MdfG5TABlpgI)sQYg6{&Reso4dOWGCqgrg#>w z>ZOYGg4kpOE)4@*w$X45hM@Kg{{LP#8(!Z)1T2Y?sbD=^tljpPxR{Lii!5$f;zJMsY-@rM!J4QTSLE~t{> z7K}scczpsQrh0>PW^%j0&qaop($A&OCU=NE$J1q^r4jGhz`%7DKERpZsidERKA-hM z^>w0xx*pDCPtZWy1J0pA05oyrV@F;aj+$&ZVz766#sOc7+64%zdGs5_i%X~U=Nt%3 zf$G@CHShf2AAm$WmkhZeNq574?DTS1!@`7(ne+=jGvV0FR_`RQzG;%CF~a-qE&lqp z=!18(>G)V)Z{We#2>uJ zbzf{Jx+BzDOo<&rOYgo!?U-OY_IjM#!Np!XJ;uwAW&28zF6Z454-Fke+6_F?Ky9l; zPRf~PRe!|O>GZaAW?DFRTe>wZjQdFXaatD#ifid@z7i5>N8aw;NhXg?eO|h9-2c*V zi=h0?kcHPo-%2&3Th;2=h1=$t<}Iu|8*7zKpf=yCIyU#Cc=-#+j_OqV!A*#Bx^0Mp zBibapH1rzJf^uP0EwYeYMS0P&)S9;1br>gg1+gd45Ai;BKmM4fkK?7H>22Eoz)Mm= zafy|(KoXsdCv!Ip-jtKd=uRvN^eK^=t*0Nv<(fOAMuk__mOOoEwmpVXc3R*0D^Vr%&H&UcEh3F z2k2X()MiEp?K!>|@3SFJYSZXGdRv+_qhr7)yc9oUl4Fm*VU_bg$Wi|(n`^xSWd684 zLhH(Qy#H%ECed(-9Y6chH|m=uJ@0Aw5V(9DUClQ(XaM3h{9i%ugSvwVqc)B%W-`&H zfF_G_LFj9K2P&tb4LtyO#8JGiTzLsyBIjaTf-M)QL)Zq?^@$U@m`3 zLxo3oDRIX*7ukHjIpjFR!W#P2sl{OHV)?# zcy=Bk-JjKpyD2@I)q{(XjL(PTc=+?f9Roxc3qx5Dc4|eZ(3A8XM9^VA7^n^p@{u2# zcsB2$?}@s5Zm^<(zQU`$dL`RIL;FvgTunNITL&$q(?B6f2GsNEHEw@qas zZFmr{OcecXsA~q*8)T?ewJtmi*n~$9(2<=L^<9S6jjVhK3oxtMjo*M&Q#ZQk5&mgE z9v7tL(_<|_yu*p1Qa@WehtBa=-ObkSIH!B9dyO$M(V1xSt#$g=`PLe%DxHT-H}eb` zd`hY_#m<+yocl~arHT9Y`XRS8vD8H?#BJC4!tTlx++4R)=uSh^XpQo zE1Xq8>r(mZ<|e6wSz{E1rZyk^giHQ9Gqc3F_0IKnUYA1ZPMvg~G~LV+o5!J>IGRY@ z?B3iOsqgF&h(u|_A&B)9T$wQY3)|=X5ZU!Puk|_Fn^iw?&Qt`0lzC=V%1$vHl5Pr* zDdm{8K#@Vh2$0P?>>vn~Cd|0OgD*LP<-E`c#EGeE$``!koFjIHL3e42rhP<2d#f*E z35!)mQ1BAO3^W>ykSdXLnl&j3>HRsA1}qk>O?nL-Dq2?a>Zzg?v(~%Hpi7X3&n*eios&M8+b2v`{Nx$D&@OZ&2{#+-fJ=>hkL9T6RL=jCphPkC!aYTVj$^<+P+MIn7!)M1>14&1+|9ckfVQ zsMG7x#mJ$`qHiA@_`6A0CH*{a!AxDuW=+9xIlgIaa#Z@7lvsOw^!kZ=rfdt;RV58l zK~)CPLU2W)+zXgtFbzShOK^wLeV$TeHJmZ4KLSM#_qx7RUnx6wCc&!vP;$)ghbw1} z?mo8EWcH+*m4DF_VxX=KyZRu^rm zvgYU1&{_P2Gc-X|txB-FR+!{#>T%=q#?fn{b{TJ0KA;AuC&67#ixqdxDhE9w4P4Nb zJ0&ey(5LMz{`^_AOx}^Wduv`>ms~DaWys}dDji)g&#_#DMjXuYT82Uz0vdL)GcV4j z@;#qjL&DH@aS{KtZj*i}3}aRmw%`u17+N%<%%f*j+%6?@jGlGZeD*?L zS=}sROaE#e4!I>=Uo;Dx9kkeL24^=qVDV@~`Z=%gfJZmtZM3G##qW6Oxy2p&!Q=6` z9vUX{a6aJJz$yyonM>u89UyrG{6Y0IbVbamGE7F^RF$-MaTmo5nkc=xxLc=~`NP-u z>TJ}_kk2Blw1b|dL*Ps_>&}PXh~@{DxFt&iMvKz&C0)2FQtpzWEw_sZ)vxxvhKX1$ zeXt~)UHxr|RX1B~*O?njPpq*IivL zxt6x;qJi^7UA*pdmOf$iG-&K1(#zBb4&-DVu;vyNBqASCQL|k0u#v2#cT+O!=w08 zzs>joC75nnz)Ti}cQuO*9roM43t%-rEjFuf)3IryX8~QnALg-B^5M8dwPv*%uF3QC z=`|K(zRS1uV5h3xTsh^OR$VFjpNdVH;;O7M zR5MeaE^vric{lwDIc))oGWTnS&6{1@&Y0lao^e&yZnmJp zWL8h*Xm4*7bP6H|x7mx9htXkSTlmJL#-y;jyoc>-H(zwt)>3u>6@16s$HLtBQa$V8 zJ8u=jWj}bju=b5fo+PxFhsndx-hIq>EX;>5%pXNj33~J-shE-80434@x#8bq0CjW~ z;@e35Tgl_qYUpwH=q~jlmM@_}ZkiQuo;K8jDdxe>5ft>eNKLkvh7D+`f+(rT{s#~_OQmKlQl8m%S9(0x0ee|n{)FfBE$3|VZ zA!6Z$BlE|mp(j~tDZ*P32DxX4nWJMYixT1&*o{uj-+3v2#Z*T)k9KyLe|C)9P9xCR zg~lUb2P1DZVww05MrZR8%OLf+9%?3vQ021Tt7o@}@ZTar`U1i2X65hb(=5im}D8Ifj`(T9Adi$sE|B8_+ zb=7u@$J!W9PeDko5>@_MQp?z`j@S5gHFgWVCcmU=w5i7}iH>6A8g(`Lwgrx&d`-Tl z+CtGm%@)h2kqEh-LYhx?jn#uqRa3M7h10+xAU?Knb!K&I$etPS{*p5v3~lgs=B7^6zeb2tg8Q4f6%MwFA`U` ztSe)^?Y7&k3_ekLY#Kiz2zyS$&=gg*{aKAI)-jP!$KCwkDm(7iJnnD`g$DcqKogjF zox&k7tJMkl=XTwYrmmhc=WQ4XZYGBz;(z5xKmnnO1SE0bn&I3+Y15jX+$^bLP0u-N zU@T1S&dbQ^ddToeZ^I}azVJef72d9%-pgVBj->JLz`XmHugh?2$}sH(BMs%77LCPy_rXM<6|%WqdUwJ9u?*Qq9`2 zS`5sqq#Zf8jdp}r_i(Lo$j?Y#X-z|E-!B7KL?w0*OC{tgJ*)PWBCKmE!bJ_6DZIM_n# z-A&KB>Md)~)wy-I+gGvqrTQEuW(FFN#{mBu=?n(|kImAQmmPS*OEq!xTTkWHS6{5T zP;ITgkoWS|3xRM7p;x5f^-;_#pTE9yz+O>GT|d4*CgV~)1Tt(ge?su7`cn{O5%oCJ zHy=Z3D_{c|Xg*)xnmT#ur}ZXBK2VNEn2Ao9Y99Z-`8=O*L^lS=Ll|Cwkvxx2^HXwo zdg(*49-ceWnmqPK|Mg4$>zFO{fqwI$HQe_9t?bs5+;(6&S2w8Wu;XZ_O(P|ZUj)tEYkPIVuH zRD+rwx_Ps6dF|%5P}Mv9>UD>TVaP8rUF1UQjF<_V|C2edUIt|9JFG3A1vN?0* zIg8g8C!N{Y#uz207wjp_w8HAOsrD4_&2pLC4KTHAk2q~uUm7f zu$JZZcK}of6dRa(1YIpQM%0Q=vrw4L@I6?P(Pu@%ILB(ycd1s~lZX8BqGI};J6!ef zF75L%4Kcw41#E%@OJ-6iJT}(S$qbACvNM}pNZS7YF)hI~@RX|DXwUp&^1F!Idd-{Q zCJ1`J$+?8dI)A<&i=!<+kn&{mw zzuB+wMu0xMhzzZ#=R~_W4N!nxZatrGa``?sP*^;802tpN8y?`9JgrgW*0Um)47%2P z!Zh_%ukrxOLw4?=&4Dxb!G0v_g*^NrLW@BEYKDDRVc<6KlMVOw?-iZ~Jai2ozp{YhJ_qn7bmiPsXDpkhHF z>_XvSxOAhun9YsQ3qF@&!mOF&C(L~FV>$^OrTo{~r@XG@;(;x_I0vodXY=%BUN@?I z*>7o;7J3+_V4f1iy0No)T^cSmU(ij*B^KRS4IjjSjJ#WPhp#Q&C0Z`BRYt(Awup4l zPk+El8f=8q?gZY#W>!zXMC6Qy(3KeGb5!4(>Ic9Jnp>osTSf2m5Doo!i>|Z|$|O;= zZWrARhS-h$7Uf#1wv;W3GwL=L(ItGrj{NQ0jZ&Yj76lqg)3$ce{+(x+EHc(x$QFx~ zxV5{Zv~I)7sD3Lq1FoO=1tn{OGlWr%Dvj~(NF8{=MuakrxSsDBMTx=#05HgKZ`|Ii0N8@kjY zvA;tXUFXrC(!BA**^1Y!=aEILK0|pE95P*W6;*sPUv6R5MHg+)*`B?_@}j+Z)?y?2 z+LE!wk!U#`SFvJ|F>d#w#4Q%oc`5f;zgU3Dxdt?SE9uR+mo3GI3u>y3xW$d+8=J3K z^2_oLlo{(2>sQ{e6lru<>S(ld1}S-{@a*xW+ld2uVXzj8d7>7pw(&2Ps0lo@0VHQu z-8VQjYj~AYqlFPqSjbQ6x^1$hoR`ySg1lHtw|bPmN5~aFh%9IX^|ayiU0y2MW*7or z70IzzlW!fH3vZ+0zrlp3SFGL$_oah8W6T22W$_^Mlna zZrgswZNRlX5%OaL9Rk>?uN-D^yEMhTl(5~*K;eSz76$|i$O=7Nfob7>%z_jRbToo* z>b}sDQ{eZSl~v4>jBFN9$R=$JZww#DH?K+YgnPm%%4jX#GDHb{{nae57L7dmg9sNu zuXaP1>LvT5HpX5ksxW3A zb_{I;v+5F4sJ;d$(o0Wc!Fr99zoVVHBkyS#&P$hew0F?MH-9|nS;&BnK1XN_mB249 zh5I1=yCFL}BQLWst1!1Xzo4L?IJYRPFe@)3Cp*xo*?7rNkm=0G&cShZPG){qQFfuT zxFEkUzbL05D{%QmLvD7KGb=AEKc^tSAg`d%S&&6fMft@!#W{tUxmmdSVzwbGGbm$>bkR*qW$HsZu~efW`DQmoW|1SF-1#FOJgz}%dO6C zAH*bEHjXc!Ta+BQZuPb$&l}}=wB=H&PPXhyPPS*Ri%*WUFS!%A@%sEir*ZzZIH&dW zuId?1M;r9XAfaIdC2(JK1s0pM*llLwaC!CRDdll3)}BVD&A?@nUs<2@Gmh#I0q3q z8$BqxZPcY{URuETfn~>AWUdo!V^*Gn-A66`AZA*KatPJ8qafjHR1ZvFR}!x4A1;mB z*&%3V_=cU;$E;Tlzj)24E2@&>cZzK?!>K@33#oA7g6o2*u*jKPXw{WON>w{MOeqO> zoJuP@dv))%tHwW;-<8#tm8()$$t`5n%d%k7&?^@C!g<_5|sa#V!; zp?uD$%M2e{J7U=4t;-e}bu+^y&9070dY4}<_1<-q!E#r4?_(C%Vr=1Oz6LecB}9O6 zoQ(~d&favGJQcgHFa50zfreXNBC>m=wm^f)IiN*+C= zpILRs?CnCw00BHnQ|dh<=to3+ZJwl@+<~lo|@TPU7{- z(}ybq<0VHD9A1Xa~2eVC5p2PGIO#5 zPp$>aq~~WAWftd_6c!W~mgE#=7G>n6XJrSTSYpV^-cyiSl3C)EiVBJfrR>7=qI9QY zPi9u&i_5@)X?f`->BTv&qQb%=S1t}S^3$@i0^i(h$jL}U)3p4IlKkTQVpoBbL3QG!)hbuu_*l{AgC+ zhlk3NEuO-@MSf5iE0#TV%)CSP1$-7emhA%C$zssD0l2aI@d?rQ7#OnI8;)oLGjCdh z0hzgFSOq6Vtp!CgJ1Rj+aGV=OmGGsM;30%~AdNlgG~!`%iNae;8w_*~2G zb;^7A55fiT>0{iIlu+QmfUctj}mUw(;bz<1y`U3@7ufE#N-_jt4j zs)s|?8?nb5xXs3M^p0rIo&9LKsM~f9DzU*ZamI{^7WtmK*@S}qgi23Ms6W#BI8g2W zr*S<1y7ZVl)d-yhfb5we<>S={E|pxqVgxj0cpwk3pkvt>BaiMq)4E~N+U2X42d;~c z8o1CTUt%^EI&OSwX5D-gyY*e`sz08rr%Dq{tEzMRFBZHQNJpw^I1PmL5pLB|Ji!e~ z+M}NtKg6tx!E4o>nJ15vMV@+{QX_ZB{amdN5 zUAv7_s-|3=kI>V++)S1Hd@eP1pi@mW;PI(*zvFg84!`^8+)WeoJhRQ=s{ijKcNTR& z#H5Od26~DNx*ujpC)0adzQ0fP@AtR~=TGzDJMZ4I=zfd&=bs8r|SYx zQFMS;@zxBN^=j&YqLr&FJ4*ck7%-AE(w8CdlIur5h!qXFW{w&-ex& zRT&D54y5qR);wmU^f=a_6dbj;qwpGi>^4=Pq$I~+SRl1#dJNjr;69oD|z!wgMlOBPGml0`a`&Q!6X9Ou!ej5Ggz`} zC>JR9kG}#eX`T{)mopgttwWD&+?a@TkxhhuI6%XjpPEgZhK(5=4*OScdH?FoLbG3| zov1FyMa2U&^gwyVp##^@HiB}!%bZ94Jd}6%H0>NJ-O36Z`Bj(GDgUL^npd+v1N}s+ z?jCB;qrP&(zLIiRS=PR6S5|Ubpzc=`OJUi&R65p$gs{>74zQY&cSsGx6ztZ#dKY$_}$Sj;k`O*CGgC zze4ncxrZ3!Hm|mSJeRg<9N9QBtQi8fTb{si280}!H^5<{Eis>TG!|M;ylLHcs`Sze zNP&D$QBIAd6*Y?y%{77!w9#< z9X1=tn zSsl|9frEk6#;kzQgGiIIH5WcF_ovV6#u8l`F{{ooUHcU;yzBI8o@C^7`ztCq|ic<`k)*u)pIl8GU^0YqKqMxx7MUd#z!^=O$gxl+PND zzxJBdznby2x|5%LW@JbmqIMV`J`B>FEbC}bdDKPAk&6djdWGhSQ)b#%F166;QSubp zMqX$7j^CZPD{r?|?m51l+((XLaI(eQpgxaO*KlT=a1?R$9+3A~<4C_X_?({8DtCu^ z&ByQ`@v|EBz7A@iv+=Y_79#7q({`rq()^-sy}|tvDT#0uBVcJ@$rW(eh|oMb05<-B zy!v{klq0=1AX+!ra&M`uXmh|GBDE~;uFypjX;ASLg|3E3sl~klg6pKS#Ra{Q#EPE$ zKu!xduyhhI2;HM|W_1Y%coWQlMgN5Zfs&unHTn#Y-={ZU@O7;YLrZl)+{89tY-!idmo33 z&QE!)lh@xzRM&_Vik3w3q-mFgcIr>+W|>K}!kdQw4!H3&Skpt_Eab(2%v zA%hJcEq!&;LCeonqxu%VT+;K2M)z8Hokn*!TsrUS5QdW_SL+jRn*R9aJsM!m_h=05 z)w+Oi=||Vlke?69-n&-2ViG{IrO2Sg5p^g+-If zc9pYrZ)#m&%1A_hWc?HONyxd5Sd5Ao_I=Qq*%OJJ7W_m@U;bj&-WD97jchrP26}J& z)bGcE--cod=v7Z5RSx}Am#>>G9ojdOE07-To5dZG#+0rP(Cw8@mzqZDW|w9kaF*u= znpGc}y$(cIS%$YRe>7V|ZC2GSM!FRv)2se<(k%b?KBI_;%`n52d!;{1yLWOS^y+cB zSV3QAM>S^;*6n8RmZeyCHmg^0Qsn;5$|O_LPHFA_c8=G1wg}m*QsZA$T3QSZZ}wiJ zvuH~ZQR6T}G@TbM&y(k|{X6o!cj!Di?;VwAvu_Y;G$wlbV}~q-P*4Z}P~7wB^69Td z9R+v443P>Qa6(g9e4wDfLg&)Cs)B+8#f2u?U#~yQr=~el#QZk;jW1F^u`;i|-qR0jz}o=k za?*TAt8TOiHu?-&)EpW8_wP>tJe?_5(;8Wj)|9zKzd`Z2ryCuL=og@%uGsRBhCQ9S ze&(g11Cpbw=x&dzVKf?D4~3<$$E^f5`4t_i@OJZHz2!#0D}Cin@>+Q``{{tuG?K3U z=Yv(#KD2b`tU4Ay|Ku2x92PDU*(e+Tgh~ygJ>R6<8v{A>i+=1^dC7WCkG&>&3!6dbf4%=tLaC0Ik7aBdTBN6!&7GUL>j9@YF4>NVR$+7 zT>3dn<0PkAE`opvPm(!#m3-MG7sxSm1;m^SNY@Gooen=wp9>MckUp=XE#U(Uy)7>= z>8|^_$#>iHP=tH|6W!n;2NChbA)+8iVf5pn7(8lB;eq=^v_1wI=+R>^NN&O+4Bum{(a<+N zRx@a*4h93lsjdO@WfLQ^Cj~Iymx`&M)G6Z(d zWGSP3G?ym5RX(+oXAs>l52qbNE9lprNAxRQ0{z|F!61L#w1s}H1~?pIKz?G+iXMV4 zL7q6WYgCLC=SwPj&Oxd&|DRfxVFrn zIPjN`Jd3UWNr^wS?w`Ua9yv|p5VdpL#);C&%7NN(NZa%1$6=;rR`hG-kbw+5_Oit- zUd&|5UXlLk>qIa3_5j87;YWJp3-X@@{zN$!UWW@vm&ZnrNYPazl)FUhMX9i=Ex!fx z`IqcEfh73TRht}`Wzd=pga$(}QPd|m5Qs$rG{Z!Wi#`}j5AmaK3?-2p>iCDU&FA_G za=ph>Ot`_HZwh_suYyJ}9c?}8aQgo&V&sCAK3MAw#oQoz^-|$sqhf^EPkQ0-U`HkI zDgi2MdF`#&&VOzC`74^r?>Cjva{lhyKbwBOi_GG?4flzWzg?@=U$2sO~x*D_a_9YaRv*OPvKldJzzhz@%Yub_YNi+o^7tzd-lB z&g-!=h)E&0x!yZUtmNzdOqf{7kLRWO>Y?2ClB%Wy=astEbjI`E4jtJ1Jvor#fc>ZAj^5SwNq!`_^`i=g4(Yx+d6 zRZeWs@?&a84iUTwdlF^<5B;nf0v1WTckQqMuz9RLhBuibjjrvxC<%1T>?O8AB7V!% zpG&r*Gd!j44@{q}LexF+x~9W1SwTOP(_Xb4k4hgo)_7;h^+A1&v=jdIApJ)}Hynj}f)#Is030D^Waj2(S}tr|c66aBk;e}(R39$cS7G&a zMs0UzO-jY#^lH;d(f@mE%Mw;@wW9Ytb!KK>hN+)abtEhn%S|Hb8jIVi!A(CsTKBhm zaK{+bd&!@t1$M9_8p}K)puc{PsPS>@DRe1*Ys<^s zYqiKt5J_$ViVNK0UbqKZ7q;%baf^U6QBheclE`(S;ucYHpjao4I*PSwanx08Yi*0& z)^n4S(D!?S?Z5x$dEWQ)8cFUr_uO^HZ+w5>pUUL`1m0Buk99QGis7iv`Iqsm#y%67 z&w0&4tbbd_-c7);jdAcbf42OO>w#YTq#mwRb2Jo7&7Ut?gj!%(^f(NBtY0p1M0T+g zYg6e}flWo&fvvgVi39%#+UiLuuUN~K1NPS&2{8c}fz?G7y#jLWH-Z%`gyjJD+I06J2zIi;EZE&22V^YTo$A{=J4aowY@7P0%_ziVzLiMnnba95rJ)W+wmSg))f(@_wU)OnQq;o%&IC(R2mDPwwT1njpQm;ys9 z2c|?|V!kbjLW~!sQlb^tbXOdCcu*zWPdn!zbQlCrvI0n2++qIi%D6e13wM0{`Imsl zS9tlpu(0ht7{NE)|D<2unj6`WdpYs1;GiVMIpCaO4Yslb@3#l~`d zU@SUHo(4~o_moKVlt|uFO0@Kix2MEnEzb+-NXx?@gU6O>8VM+j+56zf#L$=Bv4h1V1a8J~kHDlozWO50z<9 zb(|XE5Ro`uLnAe1^o7s^_7VC%S~z<;(`|K5mshaa^GM=7sh zD_(}NBXAiH45Fc~;dCuVEJH7B^Xui^*4eua1Ab4g(exCmmjC5Fsqz>nb;TLL96AOR z!T&k)y8@d~z+3-27DwyDqVAC?7#@n3YO@|a)38(ackz2seW7U1ld zsJNG!4;dKa^k7F*3JweKk~m8MuJ;1&J$Nz@W4UbTgu1wFrKHSP0Y1dQS()frKno`FgWZl442ZY6lIcA+i*bI-9V%v= z)ncUuTT3J^OO-n+h=UZzb)Z_kl%g$o$RtK6Ehcc@6dg**7RjYo^jj)op9v7a@Ag2R z-ilq$n5|s5Mn@WkC$btt!gmP)#Q;|W$mN0_=G}z7Vw_6ZMQa-FWga$IJ4wLh#ekjF zs4LOHiASwc8n84f8CIH16v8n$nSq`|R6?!_tdz<= zHs0{P1bR)dMS@<_EY7ik9|#ni7Oyb`y$BZU3h<~&6VBnIf)Z(180VMymdIdbwvwy zA%6fEWFahHwvWv>YT8R2e`a5vAF5-VHdTqaVc(tKQ)nTL!!iO3Z`gmz?`drT0Rcom zH!yW6F{AP5V3l(sGzZApm=?S(qb1V4tY*({zu2#7~D2Si*k5pgHjP_EY? z`sBb-leINO1b%M)|M)!NSL@*0E2dDsTP)9mu@c&PrqrEJ+i$SI;xyxmB5G>29uJ_rKihq#es0BVU4@{%Duk6Wi`D4 z+&OeNnEddX=Tg1BVrD++^`Pp-(Yf{`$0YLHe(P8*E5=8+7W%3)*C3AO9LCE=?j3(@ z0T1}>EQ!xee!pv}uRwQ8;%GWX5T7Snt?>(jJ&UyBGDO$PJi3-H6tJ@ncIISl-npAg zncj0(ySzzhLiL%{z~zF!&z_I>f5^c6m$R@@OlJ=~z7f|T2C#wrDrmW3n)I&=;HMY+ z-~znQcc>CdgHbe8sj0qmK}fXEJQ3`3L9nNsXzI&36E2=es`QUL!`{81d%fin zf{%b~MIQ&C=n`5sW~5hY_baVOf7-jORW5lV2iZ>)gih)uK%0rvw!{4AL7NerZ_q?# zF2Bc79oN=?4#q%PmRA;#R)&t221%w2imh0Nx!;fmVbCuPXF_N3juj&PhwB%#2W5d^ ze-q1g+nb)O9!8Z_+N+0--@F%$V<$@8j`zDd-R!vm%l4q@6Z>@w=7fj#Sto0@g4-cx zK)e!JtUy})w!-5;zx{hnTx?UK>9%5lb{J2i(4jE5nGi8*vtK+}C-|8#WlD7Vl>8cO zFWtvhE|e2CC1x+GfrISjCu{n=r?Q8hihOUeZ5vHu`{+LIml%7>Fda3x3s6y%q(smT z#eBL?<3nW(kG*l~`EYqmfK^2UxH3r5i{1L@3f5Kh#G2^(fY5;=T!Q+Jp=6{`jyP%Z zlQO^;17U%8M_dGFwabM;;n^u;n=3-@fg|ab{Z5A(Son6zOd2qSwx?zA^O@9xX>$PE z1H`N1o;#9wm3|~?#7C?>m9zzt-CSs~4ipY=J7z38GxZ}2c7G)#u3c(gH%F~x0SM~= zggy|eUJsaFR?_yUZpgdpN<;&@O zKv@7SD1#D!P9z>x9I(_)knG}_`c*5$gV>F;w#+k&-`jhgi6k}cOV89d9<_tsdm|)j zz+yCG3Cycw;i1ZbsWHud_RJukSFj47ty>Kd5B=y9Nc@^7>@j^TmfEAvhFJFlKd+(q z?x4xfwZ>;#w#8?}uAItxcuIo6YY4ksYv+1zSlK!lO4cEkDwKvAD5$Q7E5m~@%qZU9 ze!_3HgJ^`nuCwbw6kk}bq3l#by`Fpe?pWuzienK&gd+j;y>1Oc(d&G)`t3K`4~GnQ z5BDBQPUA?#qj`@6;Bqah!dZD~9D<*|h&=j@AILA@--ptjILW_`MF{5de_!x#IC(#T zUn4HGCQgpi{#KixlSNZ`u`B_4R^%?71PL(-*e+!Sp3(38 z>=(~+4t(DsE=IJ{JS@EU z>__+@M@bDXws|K0@Q3O6ir--Gw# zbX5F8%zNo=dcK^rWEh{tzs7n+0PVknUa{>%o|VDsP0R3(g=oD12Va39hD(7l|M>wi z(ndI76+O2&@ZFrSrs50nNUr(xBu?w#zrGN!Ax{0#(2%}j&5BhtPuP^5YFR?Zu{N{~ z8@ENbD18~t6*f55J5uSVi)bnvmYU5z)hR$brvty1gd;ZdBb4UsJNliwIX_}4j>ybh zw=q@8UZk{fx5;*A>*z_>;1J-WaNqy0F;G=5Mn$tRCe226lAa8>1fXKUyA?6R<#63G zxbL{{&^zpof{)t0+XJmef-(KT?d)MrUWTdlqvt}AIs^^5KLXL99+Re%*Go8T&>}yc@wei zh-(oydsh4+s)9om7RSXcHz%(IRuB%n4V$bM4ASm{?t}m8ya(Z)l!e4?tM_l*U1QhA zU0e4WmAGWV9mfqV4)56_`LG#D?7v=`UO7V0(Vp~0h%{ZWPrh9DJ=_p13bYmi4j0(B zTy9_Euuu+bGS?y@UroUZHxKu_l78yZalA z3P}`b(rH&V1pu=RZ1!zU%G9(;>9M-rbc0>ITBkK4_SkefOL?Duq!{Sp0Qk$-E6r%U zxWtvA)EXqQmKyOKI(Bb&Gp)D;#Xf<|M636=kGk5CXDg^4Cj96Y!?`y%JWOy6fQ*P& zrxolcuJ$MW?Y^IknS@r*RZFKH!F=6Ij}n^oYRfqih_5P>IXadzWMQaqV!Q zG0Iy0c=Y`x_gWnMy@u|9pR*U;2;WdnJO++EMp|(&OVLgkpPD+}0uFYpN3#rV>h$Tz(2=HPQ`6OAKl_*)&CStt zq~>UTYQB-#wPG5o%+REsEJ!gqROYI$Qwy^%E6fCEnIKxTkr+)9gF#9{GMmdU@W5=Ip2|n}~ zkWYHa<)*$;d3Id^R(CKNIUljg^qP>e!m>0)y;hr*MY{-eiS`%aTUR+9C1}7EPrJhG z!Twdr-}PGc(jTa7<==I=nzB?JgYwNxem|hrRMeWRUZ>64h+4J0swJ9VV2;uY&bYF= zaJu0Bn4S-2kr=^fqTtbEL5~G@Oe9z269wjo?u?C&&o$CoJhBW#|5#1 zFZgpTfHnehjcTx@GpwFF9)e;8v*b znwlB*xwkyNiTB6a=Y00q$46(6zHOHs8+kI(u!5(ur7Y6EhOdUMB*G}&3 zh5^Q;5lC^aecwHs^%iYT&~TbV-mDa1P+%>BOV2eP_Y%oR@NP%b|dWa zE}dy`PGjHQrnNoO=qoi~qmvDa%f0b8`o7zxY*f>;)Q-E3Q097I-!4;|*bvV>gR_7( z_Y`4gh;LZM>~cxN z8eFae^z|ih5Y6#W7vOILo{=9paigRX;ZM3ZUHu)^JfW?g&^|QuDeX;8+`aEd)XraN z2C?6NFj$Kx;_b2F4`YlR&sGF>ZC~dG%%1XUTjnyD)J%S*nqKye4=v^)lEaQv1ZMiX zqPK5cyJ@vt1A&t8u6U2K-+mZGhS*;{G@E2Jxl*_fH)YwgGSKZW3dJbHQ(D9gvWGk} zqZM^}1b7NGYwUycUIbTok+Zttt$haewzH=_3WYhIJD3kWx~^WuBRcH~UxpiUCBJeD ztEToeby+xm%Y`8oPwYzyAJ4fl1!r;+V4lxb&fhNFLA5*9?pV4dDfev7l5GL@1CQ(a zZSQmQwf)}Xku~cf{p7F#A2VTfv`!3E-B7I=yf|j%;F;;`avTSBqL0eo-tS4H>Y!KN zI(y5QNeSt{#%`E?6OlY(C0)%s_KYW?242O2nxD7WQka#y{L+R(ov4cHV!!$%%(sbO zl>NsiA%4j^a>!ogX&XNuRfxa6_tSB{{;CZ7p{Kokqx_QXZ=W^$(m9OEP<4uS|2 zNDO)JwmM;!)a?bIEOmEC$I71Xk#xcV5)<86?vfO(}Wtaa7EuY-$lrZpEE=MC|Lo4Xy(c znE3+h%sK~oN;RxA?TiTTrvl|0dZ*Q8`e0bFGV$=fZS(;Q6x_em5y-6f(kyg18>R+v zAm?wHNGAoIxVP^IS}mBy!Kxg`;|IXzPr>F-k9Yz4F!b(>ccmRznHgZx&fX&4v3GsB z7-o%&FGoayvo8`3==t6x-61-hy^Eq*J(WZe@Gr`ohBuvVSv0V)M3A+PDs ztowA3GMNg0QnN^*u75YuM`yEd`_AZ-5oQ1QyN`UZvD&M;0lKKzq=Xrnu^VFZ67n*2 zylk&m;|*`6^R&qf+Jgx+khg!6`gd@joq4si8gqPW^4oc0&Yl40u2K%hv3K}BnsbUJ ze?OwiCc5h$wd3`d&|Sp-&G!vI_*PP$P<&bZs9*E%n9A(=S_6M@6Xs{>1zLPlRs*#jmCB zUrV$%WZX!Irt4k{H1;!fqt^oPPFQeL+E&nj=nVRx62xHuTyMjl-d&-y;hx_h#RGT; z*&Fr-%$WF25ZdvmQLj+@|DnlYs3>`|6%Nh8H)(Bdv(eeaP2wYaMp+Z%T4Blnb=!1;%%VA<;@K}sACTz9xIPWVod z^2!UmmRI_vedbSNgGQj`mT0b=7(Ijot{eq)Dhvw0;9))fX`&BCl&GKU@}FrxuW0zC zq{J$*08a5AKza1;SbV&{I2P(YtZOIe9$(izx=*qP{xZ=7K?K7J=g>n4FJkwhlEcL-H9Q`A?QV8t(jZEq@ z#NPhR7AQBxQ#gY_@f7=)Z<<*5(pJxCYeh|4r#-`TG!EkWSgi5ianFEx#EGXQM%)YDHn;EL6XGgNG>=Q;%;=W*KFK*xFdv2hw#tREeR0CwzSdj6b!NHip%BY2mt0p&17TC}(IZ`fGj?tuEeG z*&DuX?c;B=PsUHU&A#L9ULQdFyVK@;<3iflN3F8w;s9vX z6Q8-hBoNHFeu}9N|FOiWAAv|J@NU4|>1Tw6Zfws~X&A31L zsF^jO4b(>`cRu)`(G!Urt}a!E04E#(L{5kHhmW3jDl~iI%I9{$2_`L45>glt)W_?A!lZ&~uTrE`4qK+O;*-rmRg}mkPLLTo7F(sS9)V zoj!}WjocJEfVD>N?L(Vo(m^S7;9DAtN0F<1NOystIQJO>z>cUkb|cfnKD5za=w&S$ zJ+1m^C=$AejVCa*g`HCl8_=USX~ihp#?MLPriY`zPuc$ln}Go)h|XkP@BK`xrqjOb zA8|-rXL^Jkp`X#t7nIv@!pggY?;v=|mI1yKS3k^pAnmpWxH1-i6$tgahRyfAI$a|NSCFhmEGqf@X za^Ag0yPQ+1^EFOH@EDxOA(8Z!B!A*V+G`M1jihR_)|U*d`X9bVo?ciU?Mv#tpAvrz zqx;Z=fUO7y5a-BgzT~DgqYE`mypa~1HtBlzRc3d6m@?+1!3X36ob?xG7STd!l|bhx zl|X-!i`F<8@+W-e6**SDnH($L-# zqOJJ1p3_HBYi=6qG-*R1L!cNR=AqrwR#?*hid4ZUS?qE|Yxyq@Kn(4>I!&$+cib6? z4prj#*@yBK&T^jz*FH4T(qaywuA|gd(}hS@TCp^Yr!D=mf}V!YTq`BmW;O0Q?z&i7 z_-;WSttL|Ckpk@a0ZUUkaQx(mSoTlZRY+H2u1WqvJ$CrXSur?2Aut02=^vkSnr0DR zK6zth5>1%=qB5yx!U(tw?npIe@YN`|oyyC+y|#ilaV& zYjZiYo)X1j*en2P14+&ShX_2D{4HYO3FOPDiyws1~L2S z5rpUspqmWr7QOXuE-2UkU-`U48-|9!Epm#F=6wZ>mI2Vk5G)m`@o3oTc7V4g4=r-uUkt0_R+`D&m*3_wkW_9D?$f(t! zRNQtnZlDB>S;mOrgR)>|vy z4<1`IKN`ooyvKX=@YlQb&m?yRNj`v#Gk8}#0BoXSOEILc0fUGU#IuN1XWP|HwUqxL zUp8GWRJf|(eA={9wq|%+cI|jq(7(9l%Og=cSU)bUls~UZvMVV|=mg~(x{k=P@00cK z)5!vD!O!o?M&j5nh z^*G?R^JpC0EpafOlwzDwdY~OJcjQeoOO(?CNKlu~0=)@F2AQ6|W~PZ+cVs`n3Yoh{ zuzRjj-CbRoi%)fY=0Z0$se32vOhEWUJiHf6@V8J*#K`?DfPCO1Cdv^anFI@JVc}== zJ&d*^6Apb=SQwC2c#1aUHiw3%3PoBZZxhMNs+CmPEhZ+7Up+px2ErfZa6Pd=$CLXY zb&AhJLEft;e;D^lh&O1-fyRjVcnkP@3GMRcM_9pA0_2?r64=C33h-Z|;Zpz1abt$8 zh#6d*bPA0`Rd`OmWSOE&Hk^q&Ido9Mq>nz@8GG3bsF3`vfiNh6nDDv$( zEfnqVu0ekUT>WF{A1>(+5Z!(+cMBr@$Rjy3h|J=0MOF>+o7Nuh45g=t{96t3RTV_B zX#T<*{MMxY(;(jqCcUebfoAHzH-{QYTc0vX9%V!(9>9LlieWBrAQK%LHSZtd(~|-s zPjtwFjo=gYWr>HLJpJ#`6Avsi-joJ#P>8RAwHBWuu|ZW>0I4@}5xNHt-EAR#$OSx) z{u%($vk{sFDFDHw{uBwYsi-`Gu~FGak(PBMNR4vnT5+`OHj*IHQ8t)JXMb@!(!;J> zW=YLT+n5!Mo#Ra;2Pj@E-AH5~iFE4?qG!L$w3dl=q}wDaOF1dKGq#)8ZFyzG@{^L1w38uGHcT&L8w5tY6HN%M!TIhlD>Nh;RV2T0}}ONR0H$VpU#N} z#H|^=Ra5v(2>lkh?I)_0H-6qB#4m)T!g1l9$3LVE>Bj+S^7;@`U5ZBgaUI}>gMku@ zQA&^(q=dx`lxSt(+U1KOBusx(^*?uf9VNdFAx&a{oC1EkC_|Q%Q-1C&X3$JIFe{&9 z!o@lD@(&!yhZfD_qrBld#o)fBCHgte7&t-iQt$qrye%`S7rgLw zdYngr5)FR|_t0tF%Q81U9PcuMsTWh z84wym3+3~*F%mwMk-RBYW#65ah7|#oE>(bz4+{fWaG85pEV> zhd??&2;(AVR{#y%h$r(d{?BzeqYlxJ0P;6Yd-oG$uE(s36b}eBz~y_X;vgA-1Hb{F z&~hmm>Z+EN_@P?8Q(porr|lUxbygsmIp^jkD4f63%>jT5{S0#-XqIKA4k@t?*!OVz zm(Mr^QY++}G*5k%e$F=rcO}i-#WUl#TEN>flL{>J2|K7$25I`xJO;lb+$1Y?TdfHj z6O76g<}|dT6W|e^0YNn(nKfR*>d!^$SP)^9vY|z6(s>HFWA#JSsQcMD%;4^+0hdHK zn(AJ6$bE2tPWebPLOI9gDH-gd(nRO%4GD~%nMjX!qPxudlICuoZDdRnza$|(!&1aP z$Y(>dkp*N3`-xU{`xUx1x=-oqW6(Pf273)dh1cqlY9x%0TS|koBQ6aq7=La!oyMx2 zno_Xm;?Q3jo?Col*cGJ#jSG+;)+gb9m+Kb)Ec=C%_P*6Za^x=Iq$!D#=ZBNXFs!Tg zZd|>@B327g4Ma1!Rn_shS8lj?pto61kF6hYdn z;laRS_Xx6HjYw-OmPC-S$~{y*R}U1NG>fWgGHF19>qmw7t5%LlTay+nMuq59>m0i> z_Zj(Flhcw@k}T;fSEeNyMfg1A&J9SPdME_H$3B#jbz+FkPent|0ywVTv1E}W-Z*Sr z|85o$)!5`i4M=ajpGpNcOOM7(J)XU9WS7_)8X;>Nk|--nW>0>`n8TSIS2PK3|}yEQmh%tNK|uTC)M9 z`OR4xk-om@{_@O5MDp|QOl?GrL?`cUM4ASm@N3P3Q&aj5oily-a*G({Cx6$7G;Bx294Zm{fo948B(v`tfhXD6oJOr6VT^V!v*yn?;2FPM#GGJ); zZkFjozssSOoj)21sp>RSsg(onT?W?t60Lbz1B|GTpHAn`YMujX>n?xqNkJ-~nmJ#k z8h(DOW-~cWOH%`H4J!Q2TWE{J%TM-MAs=f@f_zm`{_>}diE*GRVF}C@4Lm?F+{X4S0EoonMDBGw(Q{ksxtDQQ{-hFEp?y&5{E}hD|D{28Q z-AAR1QmM8bI==p>k*?M38iPBGX@C6DvwXA3bpT=gyCmkLwxupd9`jBbnk~UM5=m!BJv1xU zWI8s;rOin&*)Fr@pJSj3wB^!>*;7VvL4_DXLen{cCpcJ;R11W& zF|f@)7If}|o?i`*CB!hucUlrdr_(k`Egsz@r|+e>t$sVpS$+3NFG2G z-v04x#8Q~W3y#dB742{JdCY$;;&VBq6`Jg0f%%396|g=JU;_4K)pVW|4Xe)#|GJ2G zm+-=*o@20Wj!$1^bGKxF1=*yEQ+snlLRi3TAAk@mF28VtFY+@v5UbWoZ~~AfUMz;o z7sBILAf{_2h!>qP9VM(&D_?!L;x2H-eJ+S!{hvwV!f{YEj;}40{gW+DyhvjNcw{4K zO=latl1Q8!=Fo1mm6A=vp&f<8Rf(V!8%*-bc!OhQ=1McGtXYY4@s{q|zRWbItNgqb zF<0`~sNfAakx6S(7lAky9P}X^OaG`w7SUt-3E?`lKj`D$qXuVf3VUb8`RdSy$}*tY zK&B!-w}}^RuCdOw1~#6ButjVX3+!A<>zl=|Yyf}tfO^rE20UoN!ptbB+(6n5WemGX zZ@R}IPa5q`JKv=8q1L2c6)5z7!qL$g%x2GRa%pR_fCmr7aGb0>tPL?%;+YU8V^Yw` zOWKfzx*&majtZlEtPKgT;#Dfkp=}${$%|5 z0#=Uvz30N1sRfpqM|LJ&FhU-56&P;9SQPl~t12ZpBj^0lvl4enD2T;l+$CyvNv`Cz zMgtMzMT@`y8EkN_qqF74?MTg!uE7)umjpkWyM)IAN!3#`d&#u;91E?&s<G+5zQQ(-=sSTD+Ay@JXhD2vbFKq$f|g3q z?q$In5OD5eTf#{T8^G49$H@^L37Ge6a;J`n7jOA@DKifICjar(Pt0_dAePyv1#Rdd zt_@uK3=s${tw*25vj>{l4kb*TZB59Ef5*T+Pg4r8p}QwX=>ksx%Ib22XLK@sr7_s7! zvm_F?1&0tHCvc;plWPiHVN4ASlSU~ah6$N7r%W)4Z)J5S(ug?a$WEkFO+DQ$;DFt* zTHuZ6qT@x;V%q5|8ub;XhhiE<ChkjchUFos;dkDRAx7QuPxOCWKj)# zoinIUF^FTSPH986k@P+Bvp9Ki6d44W?6W9R|Gj{yE@0Q)Spu=ymerX|_rduT}XH} zbkxy%QAz>by zN9VD9X7|K!Xh=m*IC;t*EykUytSSq)xRaj1BINS={=Zm5}_ zNUzDyyOI>YDyeB-?>Kt^386r`n@1qhz56qWmYS=!bU=G~pSY51!uhpy_Q$o2u6<%pi_CD*xJp+~LZ*T!b{uep&Ij zw%}gmNB|yqt0h!&O#=P|hyxYeL!b2`4XPbwjZF{^GBn>l%gKLg!Dd}=QWI<~lfHVA z_`MP9O?s0Mz(?c(y-5p%@5rlqlPki`Cq7zf996}c~KwI zKz;CH{h@v3+&-j@<-RoCPYk!!R#Cq6Uti+=&MMi{hm08iIT+{jPYDzzbP00d<5KUc ziS=Mt4PWNN9iu&}0lZtwi{u-aMk5XxH~h{Ns?q)~{SGftdjqg!!jvyHEP-YSZ0rC2 zl21jGc?kG7X@ZGduP<3|IROvad$f@JJo7u$+f`AT0hhg_5+ z`;qoOSVjKoT2`v!$X5hCWy8M!=a&FKfOdl<4lO}12BAPa_yP6QUzjx&+1rLlD9$N7 zkd4X9o9RFv)e5FcIHKN>V78UAw2Aw^SWHqXRj@#s-m zuG81?ogg>=fNbMFal$}zHVH=&iWZOm-X)+pFaiZ&RKm}3SU&Y)>QyoGstM*8gIM!w z>(;HG17P+4;|B-vQcauU9xIYz)yRimrq9*qt<_e*uCV|4^XIK!z8oi@LNTqI$@%!0 zAz#35?ETlS)@@opLy5$N{O&M|-`;g(@!1KRYq0K6OD+P3-HW?YQW4a<8HnNv(@`4i z2wHJfH>_RMu>NO9*A`FM@<%bvD;8(Oje&d+ z;eWr5@A1eof3!M##L$f&a{5cT<3M7O#3{Dgjr%icD{G)by*q)A=>dEH^rbpp+uVUf zuc??C<+OpsRIe0py1;kSrFRmvU=qX($V1t$7TSn8|n*IjTpZzy4%V0u)irwseMPZH9!baV})lbR!)zW&wm2ww9+4CjFa)OM}68 zgKCkBEQk(egMKix%<`cT5R6d{FVTBRbe;fIB%I23<87u@ppN73~5vSKliFQSX^gs zJT2~7z8gafwak+EBda=``Lu5fc2H(Ch`$5oW)WW_;nDs0DYxiNNv<@6G#dPS+3%mw zUBa#V6gAXGHc*k@1iwIhz&j~IY?$Z0RK7v{s)!RP-j$ks!PFl!{|z-3+?;WB!g&nC z_Ml&+r_hfs7Rm8LNK=1W8L4WEZb={vh&1r6M~09PC>up!9{~@=Rr&r9@3BdpX~0u?5I?0D zPvshuehf2DiH?eI&w+u^1xj5Ilnw2pa`K}sKmL9V53BeA?QE3_1@Pfb1JMtyD$ytw z)uF@x(W1V547)K5p%Q~RnNFkA|9A7+?9JThZN=bw^EUuc70KIfByFR4)tDbTnvTL) zg&fDDC=jx*)T|AQ^qDBh6FwqMn??v;ff%o;5V0*Yoxr9ecUXm2q{isc@N3kd{a8OW zw&ued(Mpi7e1ym6?IUNj47+%d)1&2OIcf4HBxb`0@K=-T3-@x~`lkrI?IWxfV$&Rf zf@V-b|4_7_2yQ$VULuWd;cZt_?Ck-uR5U_bMa&;p zP`t5!k#L}J#u7BI|Kn2$0XHFKq7{-nXa5}`{muNV6re?W!7rAr|pJ5q7-OG5A5b%h^K=U~!fPKUj18*C=a2Me*;(5*B zmwN}4eZv#p(-_ztI4BgL*ccQlFJW;!KQ_DrbiSr|P*h$^<6>LVa;yB~aPmGPtFGVN zoPW+jSHLUKec&f|xe7HDZH4~ll(K0Ai6wjFU4Ajn;^?)TrVTYqHPZ$d03D#}2WHwxpMF2Wr1rDnc z7#%d!2JatNy-IN5qaftsh<%t}HSD3sp>|iruhSuq97(!acg8DUpwJ^8*%*T%DaLn= zz)Cm*4T+2XM6Mzz#!3m=9IxI1wnd<`=Cjf9z>~(|D9BBbu!!k#CcU_9jo>K&P1PBU z>q>#aT>vkVctI)9ClZ_M%DU8av)fJ`>dd7} z?Td|bta0;Hsu-L<#F!W{|oj$VY;DzyEDXe>HV&U|Y>rWiN zbmzpB2Xw@VuddL(PoIAsAg>rj8nxWh^LI}@F#twHe`OxC7_#;*IUBob`l^nD*UkWd zhi_jy|5V%&dC$fJ2R7y)NTY_zCq#ZciY!yBj1HLCM~o(?eSP4i(2pTuA%3bRD%I>I zAEl4anDotuk9u82H=oP?TEO!A>%>gBL1M;`+Ug?I3scD$Qp4*UQR!Cnwnu(ER9A5! zCq}&sx85Ew+WgTDoR++8X1koQ1n*C(TQmGc$R?q{U-r zS%>LF;*Se@Gln#;#*bAkSe{^A1i+`No2s=OIhHi_4O0cllgE-;?_-N;xmedFA>cUuJYz+JISk>0YOUg!kqI)ZO_p2taF?jtnstaRw)mhL~m$GC@>N4(a zQ2AtyBTd6XVD(ld*;j2`y)onQp~qkB(uoeC*{WW$b?2&W$*3kx`&J$}j!?f46+lyc z#*+@hTM3?`l+-o!w!C3HY1|GT3z(a`t*di=Gs5(IO^QK{@5&<<=vb(ufk;(X)L z^H>aPx&8}|TUsZ$^vS|I)5|Exe(2(Qd@#~-TMj0C(S;=!Mh#A@$0=e)f#RgKWKxP6 z38I_F+M2XcqXf~#3b?oo7cV#1WT6vtjI9FVQmD+LI}PJo6f$&0B7cUZ>cT-@l&k@Y z4|wF@4R+%s(e))505NPCK+xnU$9VnUTLH6mxG_-tvlUA^n=7V1z$kAZaDFj~)FL0r zfP2>p1Udu})0??bHd-K)kaMmCGn*VSnbZc6iacmCX=c5G(FaMDspYNT#az!{8f3{jpe% z%g(8%qIU%`N*Be&WUXk;Q4PS1vk!rmp{fw%u0*;swQrA?(=EuuL@ze1u4^c%emjY2FhhD&I5>)k|xu8Z|vkh7x zf{^xI9S%*={ewr3TKKW*qel{^{1N$^fUxhl&YB^?o!Q^+;2?k z%9=~t3k$bj(y`u)4WOpu40RS)Nx2^~=h6NGoe65AUu=k!IQEQ==cJW^I37Fr#+kyq z?dGbrh#-F*OX~T3Db*6>sxwG)AN+QmLE78dC~!8Pp$Na5XCWnVdI+ zbg@1YU~fRGTzwwZM^k|B^#E`1L5RlXr6Hy^k2(N_%qy!Hoxh0_ug77O+bgVJpO%_o zxt(-&K(Am{HIKK=;yA<%+U=>SndTx}{_qcjS+zWPMZe*ji_d=4*UVD2bCc&Lfsf{E zg{j=V)JgL`N}fA6cpfszo6#i^uXkekp;-qk>{EJ9yE`)i{VblaJY^3^r%G{+e1qA&Cy$$v|6W_IO-M;d zPBeFN*H@2TF=6^BqoG(sz4L5B)wC#9M$(OEMx)dxXUkmOY+TBx!ZX9Q1HDLncaPe94npvb-v$E2s<6B>7 zYOD%NgreU+8(st6x+_U|fN1w1I@8m&{Fd_a&uHc5;6>KtB)6EwN*U38>+ z`1a{%i-PZca`o=kEy=65z&*D_p)eC0nrP^!G*o?I*P)A7aPYaiLvM7?g0JqJ{KITg z$LF9RSDQluLvzu7F*@O*@z{|q0=*RWLZ6wo~J}JZu0E$%Pdn*r5-K9HrHTH!Lfwc-4^ApXQ%pln?rT#@X!_9RJ7p4@IS)) zCSXp+IE7hEeD1u;1&H9eB%=DyKPwH?=j7AJFB)%N7}jq^D)>>jJ9+qAf(WOd<>a~K zkX3vRl$nmHSxBpb4xbIPDC^z+>gk1-7G5?w`+&Y4SjOoBo*Yip4(EEq+pr@q*4u(X z)XINjaNd{M;>#IMJ0lX&49JY z@;nkS0*#orVex)8nz8sQ`_7eXcTb*(pT5UTBiLv);NOY^)$w)=c ztHHI0&{>jmyylxn*GqFOuM|HuE@k_D$HND~s7j{uNDu4%Yy}BWac(3&)Ef{|2!|Q2 zgWDMkc)P`2tgUFtXwbM@sDVAv%xCZCaRYH80`Ap11i*;&&9e!uiW(aiFHT8bjJB&? zFN}hTTdiGGsQ!6!#Al&syvKBFL<{mB(q!8GnUj7ZQ*+C^j0(a(E|ILC=mlf5}dke|nq zHKs<=hRk*LR0m>$(TpOM-@!<57%1;J#D~lC7m$8Jg)fQ*w-e+~7m(VmUPvyzC(iH> zKHPg8=0zO9zaxE>-{=(s{YHSHzcw94i4b$8H61LQ1TkB!#P;4D?r4_dJ#@2ur z5V5@oSZ-8^#q2`ldGVxSm3^SuiGgthCf+Y4`A|Hm2`jsodqutzPsUm*;v$vYDb#mh zJl$UUGwuI#=~cS077R5$KL*IH6G$jIEDuW{(LRV(+Lu6jS$rXnHbQufKW$_YSJ_nM zLz4~6&L-evH;Zs(C6WdKut2c8>E?U1H644Ljx&l$a<4>EGjK(66f((Az{idcaslyU zR>;c|VNYHmpHC#=wOh}(W!)9mhbACOsnl6GbW>Ekfu#1&Jbg|f8b|;dq zu~hO~2Ops4E)aP$#p*h@O`_%}B${kkr_Fi0FL2P`ICLdBdB zOkI;rNtoCdIfj4jNyBD*c6;yLwYoD}_eKO?jg{vvCXK3yIp^I^v`fJ&@wQ;o&lPQ%o_ShZ*t2*wZqYs2UW3+6aY#^JR`tVe>o!$jD9 zZo7HC&5db2W&uvI<)^y*2R|PE3K<8V^gw{U$$8DhKr*JfNcA6=nQyY5GyvY*RuQ_f z9qLVJW@MTkpHiJgNq3Gi&>@+$1Kjunj6m6R#QZTN)8d(d$s(7>lTP3>2L9_!Jm&-m zq1&&44OpAKWlOf%q=^FMGO})#gT&bx2W8_8=Nsc>@^2ui$AN}9XSlHQrAZU?lP?lP zqxt`4B}s4*zQNO1^@)e{uR_p{FXH7?Z-0MAeF8TBLF@nVHT6-JV(a^qtllJEOf;z% z+6+iJwKet-psUMdn|;OFiPN5htr?MK3;x(%?{n#v~-y8*6fO3J7cwVS<1v!>t~}XN1q*i_k2(gel7Ar=lfCL z40t_WH}03W3#bpCBjd`IjEtKf1SM_Qkeq4Un6)7*%d&6ZvMouOegB`jz5^_Zs|$M<*uo5bSp&Q5 zj2boeirv^X#;(DN4J#;$6h-RLmbSEI7nUl`Ua(>BrWj+QQAtc{j= z!kV1afwM12B>c#nNJ6S8h>H00c+nBrtnjzhY!gcs?JlTn`prZ zUA}T%%i3$P*E4o($=Q@4+GFh@EBX{a^o7^FaUjr-U`%@V7R770yWv`I(drv!wiR)t+wy*;0!2-BiBQeiM5FK`FNhb4}fh%MxYk_r=NMQfn zMlJ?A7Di)O($+ChQQ@v2akHH69~#&0IPCkkmsC;?Up`18Tv1{$5ME#p6kA6!FRYHZ z&I}HNb=3AWL*A#i5wMAzro> zneq+-_P!i)@Kd`C1c_#(><~f9wBGO&q>&^8xb2b*&%GlhUP9o^pp-zBv4Y=L4ACxM zQBt;&Z+kV_V1HGWzH&wOa{cpGH?YY#Q)`3fVHg7%Z3OPQA?+>FU!%z#Hh?%~AU^YF zFx?n0WI6zX<=0HPeq|qq1RD5hj#kV%c`2ueun z$@>YAo-5#Upc|2h`cD;{5*ra()Ls-;6a}I>-5zu}VR-SZ1AINmil!1u)5?v=BL!$i zUU5l&2{PzFKU3MV%G1moY&}**VNP~IHfC}NUWT&XYH+4QKp;u`|Ms*)&YVNG%|>|; ztlou2dG~3OGZ{u#>&plfOlVKRwd;=nM~o|DV2jb z4+Tu{iQGnv^0yRtaUgc4X3NVxVPJ9(a{HLfx?>;>w(qj#9Y)*f1zuZ}sY}%5Xtj;B2 z+F`f{?ukF=J%__9DH_Rb^oU1(P#=Y@LC-@;tLA~`V+dwuwFqi5gAMtr-ceLQ4>|l6I0g!87{^eTh~2Y7K<#&vtm~Ib z4C1pOB10llOvNN4BP^~^_hIg|LLWe!mTCnAS&%q(EsQYGchQ@5j5Jqiust|JS_cGP4U~mJ-;qH- zlEL3Rx%B(FCl@lS157GYUQvM#_Oc^%AiV_K;1~a@pqV06Q8AM|CLdxrx=MQTCRIt9 z!lY`u;7HXv;vITXFUI5JT#{SlG&rC3VtPRjz<59=yhf)zrAze!eIEf_#rS?7kzK{) zeP}NsfZES`%mZl(F^kK4**EPx(}1G-A!f9LI6T9f^=hGy3v>}AV>6zC#wDDcfHs2wwlP!o+GZe^nWVH?z%PqYkeit z%)B&?c2v?nlj#7;&EPvO0Y>Ew{i{mivgx(^l-0M}lL-4Ol)^ncaVT$|6R1naGd$(4 zeGJOYK6?1;F%@13vMw+!wIUZQP#R^SeC*qs-`j9rZGQs0x?oN(Gjh2lW(ZJo zNnue5kI>!_MOg_nE?v2?JROnc^?1n!Ol90s?N!=OXI&l3nW&jI5VJ}3>D8;B@Z^mS zXc0n3SSZH7JVd8F_ZKIjxs3;~1ABRK71d!%Ez$gldmjUtUJ9n064D2?h3M^8(&rb_ z=PBufR=!c3s(p3Hkj~tTeM-^?4mRg-qmq_4uWt@L%kSNI&a@Z*Oy@T4oquuap-HuB z5`2dY5&k4o^rV=q08>xV;>^(GrF`nD`V}oH>O5FmE&Ba?>-LxNWqU3AO7^L5ZNBiv zNFC|Zfeb|ulY#a*z>%vPX$3LTn|fM_hBb=j4&&*fO|&=UM3|0(P@PUATRGq`AgKF7 zyv*TAQ3nD>5|?Q|bFs}rXjyn{cx=X!rf~I{$xS1M>4wIRTr!!94Y!6i$Ehlr8K9bhyzlQou>V&(L zEoqK*-lfuc7aQ*KEqUcM9%K-bgjDN3Z<4`Rkjy8`tqjT{#o!Vmh#vqx;B=n)4Tk;TZUE z2V?#!IEFfgqF5}n1ijm(8#zTe4qwp6=22H26eJ4w`faqH*nP zI(s7>xp2`}4i9k;Fxp;w&wkHsZ4u6%(?Rn9j~eM+$9XLV_5pGeU(d7>K%xV_{GqUQ zWYDpp3#ge`z2{!V5h$yBPm58)hSpR5e0ALS*O6KpAgskYk8 zT0PvXwY8QC8*i&L*XGqqVGlc*{W+U=tOrhA>Pb^2lbwW3R5{mxBU!&WWtcR(mJ?Ys_iFr>&keAD<`dtb{#VQmdRAU@;A1fXah&?>4^wLtUW%%&`k5M{v z#PL;1qH61@m|1>l*)=`#sa?Bt>iu#ae8%>kiYlbDm(s;SMOxF=qRq=U<>}W)?L3gn zZxDlXn|JMNE(&Ze+PAqVe7_?&peTHEWO%Mx>~~%JEwcy27kf4#nVi2P_%j2K{SwSu5 z93h^^idHQxRl;GfAf-w)kOFOCSzejZqAoRNl%(q^8m@r~rPB93WpZkIN-qBvjmu3h zN;hW)W|^(o2+_K(oCZx%IxeIm;2XzDwxRvV>);m2Hk4uhNwz2}E6OU1`7gwRXDAPf1AV=mF4150!xMVXL4Iky8p#htw>bpX_me}K^%XA6ETQ<^3zWQyA(Ji zO7SG`(f0`c6tL92r?oE@kj-|cL+{YjMmn=?aob|VX3iA#V7USmo z*d*939Tst#;LK+rfGF~XRq|8gi&&w}N_#N#a(=*{kq-6ftTS5XEGA5CRxOg8!*R7Y zt=IEbttLp;hXG??{I>KYfyYh+-ak)MWTs`OrXY_NsJ!a7msQ*N=Pm0P1(;ncDs^qa z(2eKg4nmMjVg#+HGlG;cd4~VmZ{z(;s&4fCjHt56ri4Jd*v2U6SI3q+>{nc7dylNlekj#{Lc>3@wNjmOm@-EG}V^v%h(;*jl8d=i$(F}$$`?@ z3UMVGtT>wN6VPFiL(3lyPqg1)xYX>!=>u)#Wcwn%t$h? z;9*yNr zXO1R$Fr;<)oT%<{+w-@Zwr>~k<0SNGCED>#Qvn#X^^2ju#6g6&G(_qb>4+WO~jD*7eSuu%@vG3reDIi`J%PWTYXnPs8TKVDoGygsRiQl<;H_}?fo}D8t%O3@HgKa?mU0^ zM{nLoM()p)_dojRJ}Nzps4yLN0Yw-w0C5=qEXb{hcxfI0w6a?J1Gq_p5n7-aLKH)Z z_Y4g4ZnP4AbAi3|BgUR&#xMl!ze#-6COR1urJ;R5`$!&Q&~vA$fZS%OF&X&PaZF1b z^eA}*mcsruNU44#;J?7)k$Vc9yf9A?X9v0c5hUj6$?CSKc>0L6(W3}}T*5#JMG9d= z99>7!+aSfV=dM~y_|}Ms%uX@gxAaIWrav6+bDYYoTLUWAC$3$es?N>I%+J(E$5!o3 z=QHb~?nK{6Bp!ib%0%iBJtb;FW_&<&dTesEJ~OkRD2rcTk$AY`fK{juI8J1Te=a6J z^eFG%&}m16W$Qspv*qBy`sPe^1m=YuqKH2#m~_~Eki5#{$W}{)nm#36L6Fdj+7$zl z6#J$l(19g&E(w-mpcqK7Ukv1sYR#$@M%{u6>jV`( z|I@9YPmhq_Bn!aeG#`q|cKbT*md1_ck$DbPd;pjkllL4fJ(+$qFl$%x&gd$&Dc|Hs zB8RwDO^dQ4B55X#2w1T?XUfs#N0;BoIe85Jo52C3M=-6yghHOsW6|jGfl%N$h49V? z_nUtJ{2hd^1L*t#;ltjV!Q+TQ@#8OVqf)!*9>(7fzr&GNE#Z!FIde`dcrPa~zo^Jm zq`z|d_}eA?N%3sa-n6}28_==ErP?R=zIgJVk@vdy7&)>>_j|y-x2b|?H!Yn9^?CrA z*V=IN$lE-u%e-QI-xYAo2^t+{R=G5nfOnC&pJ@G&a~@su)*EpX^is#`g2DYdS&F5z z(;?ysp13%$2m8CiE&knHgNX*KkgXv29@GLm0pQXK<1njAMJA$U4q=MX&-)k>*0gR zw+0WMG-=4-TazC0;@P$iS`5V5R<58RS18IU%`qE`10AEpT1eNXZ4uS;^fT9`$0lJy zY0A%|(iHqOy{O2m9CfptGuXuogq54=~J@mAt~bW$)6z8;1y{Vr4~@@*=*I(oapM9s@S<4`cEv8=^U>?c=X5Y z+=u?RFrz55C^N9Yq^yp3ck!L$t;ZMrvFQ`FX)u}Bi&!}OhmP;Grp{yneP1+jnQ0j& z&Xks6Eab=sj#Q$cV@$gG2y^&$TX|_h)7Ash{2nPQHsJv_fjncAA2N0y`~*4Fi;4O1 zRU&x5PdwfS4q7Y_k7^-$YYS*C=B7`yua4_aeYpih9pnZE)ZjzlVJtE#s1_8X$NmQ>Ra zxHc*{5VLJdPTt11%EJv?Af<#sEQ^NMY>k2Ye! zqD^U>F9BLFf1OG?sV9+MiD>S_b!2!A>2izo;yxsuj{Zu9ol{%) zAFv+KS5@U1tN1->-!F>L#m=Xr(^hfDn7ozS64XNK*1W_eOUjq%Q?}-(3w%;)<}zcv zI(Asy*U6)n8CXDB>nQE&x3JCc6_bNDn zyWWE=3e%A=jP>Al>H6|Y#IAYXpo8fc9UU_TOKkpqhZ?ibJ(aq?urLMDpL%(1L=Hx2I4bcx(xRtKEM46XP3{f zz{_HuBy!}qb{^sT!P@2VeN_D_aLEq?nvGNj;ey9QvN_i z&EeDoYO?lA?PMoycYoTKsMH!=Ph6V4b<@_Ul2v=Q5?!~aH0UbruZ}KjO5Ulrlok|O zaBcNr;bq7F0)7Drj*o9Zze4;9g4BO$RzI%+xIR38eSA`cpkB6RdDJ3(VxW24JUV> z*YDet7T>^^Wh$Ds*w#nr9HU9Jw&`sAJE2YL180|u5?Zug8#eIx&XR{ zvYQgq)>cIZLN97nY$Q@ZB(0u)S?vlgNn>HUeK&Q+gSfj+*vhoolg~asJC7dY0Szu>dW^X zFgNQptIwQD-+G)s6ZdXi;~DjHc)qj^X>k>C`t*#v>~tO@y$3zH3;3*pl)}J#WgZAL zoj(d6v0?&sozKUG*3Uf~r#9Luax3*Iskugh4~^S8w=q;rT`v(qF@boSOAE~Uw8-_w zaQ%{HW%XhFlEyjlaZ6%D>*k(~Rjl;d|-~kyz0)HoS8p%pb z*y;i_At1tLg*`Rphm-dOdeuK~c`O%S`N5 z8Vd}9nFdamApM87dGw#~$OYaj#hkRqW7+2tP zo1?jHtF(^0j=M=ors(RVKr%|8qpFj3nyRY<#k=BNh5b;F+fHp#b+jolNkV@F^zZ+0 z(no_%ycT%-_RbxkB1oyOG3`vM22X}Rf##ZxSnwdl6f)h_{^xVE_F&H5l?jQ)%p|U7 z$V$q;s+-i*_hDIiK|vW;RbVm|Ro4Gn_iO#HYV*EQ@D+)Pj!}Zvn3-kF&x0qKD_g$W zvRpr6Z0x#;d`5O|PF_aZ^2}vv%hj~!Y8c+9(s6p~KK>q2Uuz*=caL9)i`vH*=9T2+ z=<>2(TM(?Gchs<^Vlw&TS|)CF)*7wSs3=H<`@Q~@BtLbw?{$QH7wnJa2& zENTSsVZeiN@N2oQ>z&jQH&Y7m>P+IIu(hi`Rw<{HaJJq=ik0Zm4R zTmu-P*H?UH(=O{S{q>Ti^9A0X-PT3B8?>`;Mwf9VLX-u`OZ=&F&P*!fHDBZwDVoU8 zcVIe%;n9SkNCnO2G$+=D=NiL#`tE!>lm1SR>gd~KA`(MhHt#RaLaXOvTlh>R9fI)DBbesw{j|BiYrCjA|ZrX0u-c)P8 zD6T9rSC*>ZhVfT*nE2{HzM7DJlQ-up$|}l`@~Ptn(02qWPLO%7_B;0fYBz04jY;6w zFE5{QIuaa~z5xlll2>lb%PYv!(~XB6A&(UWS;m4a{nC}|Lo@lzg-4d2Peq=&0Ku{4 zsvm# z>>}sX!jZ>ZYhZ>q}|Bq4TskrSh*_@yaU}8wuE@|R{bQp zOuMNrexLE6vDwmGzo)23C@L%}qMgZW0pW+|maU3hu|8|ozLkg{$}P-8R998Np*1CW zWYb!OeU5lndoefcnPy@XUbLIdb_@@&KL*_A6c1}+sM(`Ou5P6Ya4Kx5;+ z%7gmdJ2R6TcrYb&Ke_2>_`%hIq#GT*E3#ru{;I$~E;rXU?Xw&SJWHa=&K94~JqNjg zgkuxQYI%^`VbaAFp7SZ%68tlR4*P7%PCl(Ju`YFc)8U=Xn7+k11_bR@G7R)9FW?fvWEC-k8Siga_i(WbBY{!)1zUv4&++jO?x`an` zMAc@FzB!uqqa83?8mQj1dR^E8T})|gWjyx@9zaSc;r_ZhzpyaBP;bBeyOt=v{)oVL z49T~MxDR~5k-1}_9drgC&=|lfUZ;KGT9`FP?QpTr)9%FlXD4t&K~P^uMQ_;>9lfPt z=ans&Rv+b#uAbizqL;RL(d9#JUT#*Yls2?8@wHzgTG2Niiq2U->+@!D zy!K9NYt#*HZCqI5@(gvu{Ia*^BAE#yN~h6n_>4fFvpCS&j)e0({@l5YZKt@BlS1W* zx})m)IWx*;NVIWrGzT0Jub!uVzjOvg`ENwKh;-M(-sgXTxBxlx>^x?Puj=RuGDk~X zw-J|h&$yxpQ+R}q*3WlLqsOTWms?k#SFf)uP>@Ix^gE0vCAtvur8bScHW}bNzX$gz ze}{IzNc*TU?-Z75|NQjl?+^1eCra<1(tWq(`vsqH;bW)H7`Y`Rd1m~|)#`QOvC~3z zD=XGCL~w-LPrCp9F6oe$Bt&PW%zl+>gS)<^4m)vW{WbXKB$oUy#pU1RmG3%73dnuU z$0(LeEnF-8=uo;6sZya!^ust9h7TkfS#?46K8T;_iWMcZ#}vna)tIR>8U2)KGO=3*>4FOxfwAF zrjFOISkt&?6R&A~cR%Uzi}{{f^V6yU-6r+kqE2qi*tJXd^R2^QG;mj{PMv7Fpgy#) zYQ{_*xle|J=lw+pva@zGya@TfdETW#^4#`T9@fEiZQ$8jtu>H`VaByN+H*ho}vRMZV4P89TziILCTe`_V0iyqoH}U$K*kD zt~zdU&ggl%X(iK(r*qlqX?ba@BX>sX!o#s)r_V?$D$eAKua|sqU3WR>ZrnL;EEz(3{6?qbIrB}OgXXwb%JPX?SkftR18O0& zC@ca%B5QQV*xoN|p;L5BdbB>=SqmFb3ujOZ#g-ze7JQ^y*js~I*q+pYS|}(e;d5Ws zLebf({TyMgJUS!Qg6c+ZjnJ*hTb<8H+*)woOdw`%*D-V=+L2PDUu>B5^kC4xkZ<5E!0T`55%4_8f^55jo zmZ@x;D7(bp6uJ)y>Dv-!0J1;1=cDz+)o6-N~>lx|A3(oY$n zG$=bOdnkng%E8JJ%JIrKl+%(m?6aq4Yq zL2Xv=Qy*8KQU9R+)7{g(gZu05Z@ABJ4-?$8-3#5z+^gN|+?(9@x*u{s?tahxf%~uS zf4Dms4@Qf81bvv%n8QwG<}iyvSFw)S$Ye4(%r53CbBnphQ1%s8&vs>dvi;d%>}Yl& z8_$-r$Jq<)b@ns%OZEZ#!h`V$^62W(+hefD2#+xylRc(+%=B39vBo3HL)hYx;*sT% z>rv!Uxx-J<~l4JgYo+c^>t= ztkBb@CeGHPUO2*E+AQUYTCGUZq}DUfaEPdhPc* z>UG-dqF1Ze7hb=5yLktCclRFR{ifg@>b=r?t@kGHSnqi6eD7NC!``R8FL=N0{h{|Q z@6Wuy^#0cSk@pkt|N6N3bnxl!Gs0(*&s3k;K8t)-`)u-w_1Wf==VSJ1^f~5p&gUba z+diNA-1GU_$L=flRr$W++sU_=?*QMyz9W3c`cCnk<-5Q))HlpG+&9WM);Ga7)i=vm z$oDPwwfa{2?(%K+J@5OW?>*l~zE6E$_<8#I`vv+L{5tz}_v`C7%5R+CEWZ%HP`@z0 zb$*-uw)iFbW%!x=%zov5jedvx&iTFTciZoCzpwqi^Lym?yPxRSrg71zG#U-B>8k0i z8K@bhnWUMcS*ls72}d%jcuk7NsL9uq2pX%VQnOvtq-oZi)?C(nsJW~8M)RZQsiw_e z?XU6I`Sbo={CoKKeb<20hrf_tL?n$EhkO}8olRTDT;IU3S_v-r!m4^VN|m$8;?XNW_?yj}AU~Xf#SK_w8PO8J z`#4tF4bMxR{A$F6k2BLdS!k%OtgK~6;ayN@03a<|M>Fg|W}|@(-?S;5?alD) zSp1N3q=D6v6%4HHux-;zlNnI6J6isxW_M)HZ%4AX!-zyI@yTRIG1K}oY&_rrVfb6h zu(c_b3C??iX-OHrX-_lKyRU(ZUd1X0GI%Ktzw^wd8X_8Zub8Ha)V zz=#Hg*@$sdpON_$Bd&FT&IUFV@7%<6dN{bjzz%_MW@{@`64)$8 z`oWi%W@h9VjXbOE$Dok7>q>V1i4~XF&WIgkFReH+pJQ!b709y%_8(V24VRctNH~jB zZHeq+#>8rinZF@CxeP1CL&({QbLUQEdmFrzlMO6F8d;;6TXcRFt5%8o742X5UYN%oEFsy0`N^2#<1}W0mxJ1i?K7%bC`*snkq#yVf2Ei&{ z$7yC1rK%3+A_;T|^xqIyG32>Ke0R|SvqU)4w%ooY?<;CpnMFWElmB5A{& z`3TWMCR1+^-;ZzMcC}OjI+bsjIeW{hrJ(y5MP~uTzgqu2Bbktrc{*TxHy9Cx@j6id zanDEu4 zKowj6Ctrs(l3{ZUThE~wP%+%~kqr8rft9)(E3P+*5o5$~9g7SZFqr@U@}o<5)(38+ ztKsiH#@px|E{m}|>o*>*RZxks%H2|9Mdmw4>o}C~oeAG^ESNk^tW@}{_G?3j za03gtR3$?@u__b8-g@`lTWmW67>mHZPOP?!VfzEH>+p|Z*ck?Kt+*CVDh@4)S_Ovv zl zat(_nz>)xieT1rc)1Gj2^ji$s!l0|$N1VnTUoo_eNJdQ-V|muVb{agm6T6;~5IU|b z4M!iTzzdiP4Qyg^RSnNN@p)4H+tZSfqyivl_Vzn-C)y5MzUy@Z`#=3eGU{(OSk4d9d$dSy z#awa@zthw5?Vx`BoahUu(-G`9{;upFBMB4A(P7koKlRa(O2h4UF8_gX<0Tlt-*&i6 zt{d>rxB}>gf`vJ<6M|ULvMf1d7G603sHIXsE0wpUsA-An%l5EX9yAPz5w0mGk&z1a zBSsQn=xXS{=xdUHGX$c?z>a`47-jfV8mX*g2m^@$i>JjL{F<-|Lj{{5G2u!OO+>+T zM1vT?pjXAjm{#qGVFA}4D`hk%NGyc}=By-&7cH8AwpBt)rZcpJl(13+R=rdo^-}AQ zf~KubUX5y$tcul2P5Vs-G!xAjqbPFIv-A*6z~>MvNO=|HCe~O=cA!SGss$VSGRzQ> z0{GbwXP$TRrGa&Qg1e*|Fj!|~m0Ecz{u)E`W2KYD*a_ocRWxOyA|*RRNCApZm0pr= zF>*O(Gn}?CcNG-zEF5V5G#H3fh~WolHl&N(V7WNBlWm1f9x$;B^O*fmDk3S*qtt>~ zBqG7wVT)l;GYfxUh_belO-urd9ovz7jJTrfCMlG2FM=AtPY%eYRTFL*Hl(BN7BYj_ zSgV{DPCMJ@V#aG{Qe#{h7h4vUov@7sv7s?hpO|E}2|QbYkw}H%SV`6417p`KFnvUlap*rZL>UZM5c&=cfhAiS+c_EnUk!Q(Mse~pLrjn<7o_@piSq)l z1A7ntEEYK__plQfgnS#=X6g9Im#!!)Sb&lH86K}zSC$N9e&~-T55@#%n}_=xBXC7( zovETCklnGvbS!2EtBQuCC{3~nXj`=PWgZhiUY+Be7z`L)Fu8{`D%%Wf2gw5}I9;Id ze+K=J|C8Ob-Eu5`FC9-R0;-N2v!2j{(6$TScp@wP@beI8MIRZQ3oZI;4IGI!mM;_1 zN|W^T^nCg&5-bhxXOKkTOa?-IgyAR118oQcxn){~K{K@iSy)mr zypL6~5>SsN`wT#_#i^h$sCG3r?&5w^?rMzN3<(VSNpgh&JEe2ojCCW{1y+%ekRB7G ziz$n#P2ku;h7sspkc?8lm%5_!!=jzXAsHw_5fjKER*U>wY!|roSh?xB6%1yqqOq|O zjx7u*RK?Q2$XwiH2H;|@WKJG`^nCsG>pIDARLQZWCUbr%KUmBqe~~{G6&))oYHAVC z4GvBc=J^*t_T^=2F;L@K6#32!sXHj2&nu$4rnJNRmpd>{0r=_+rK9TwU50_?+Ul zq{gT5Y!@`h4r~|~6Cb}dA?8`XfO3oHa8BqxaeUVb>Hdh#kNlN3nd z`0P`NB~^30H715*A0ufkTVDwYKS@aw0pO%VlvGFrymL|~cFDF?5gRz$RuZfV@y zusDu=8y2;o_vuJINVd09-!;>4S10O(USb{ogHSq%NMfZK2IQaAwZv8y{S!ivt$zl^ zucj(Fk!KI49EfY;SkrWdgBN1h&@S3W+jCNQW5n+eu6mo_RfSs?BAhCL_kcEU_@Q>vJowI>9yHeV6jf=VU$B@gA$K&s+jB^>*Uq26#_mNUM#P1cO++#^ ziR-Zyvxi)E_Snn3Ezz1#o~TYMwHVnFNkEnu1a>T-!YVdO*;yQ_Abye5>k(p2*(^y+ zmP%qW*8*Q*0epq*4Mb;+#pnn@9gIT85Iq2u(1Ki0xBz74Y+~sBlsg1@sv_4J)`GWYw;8mo=npYI z*8okFH5+!})hla2J)@GKNM_E=f<=~LjcQ~)$jOk1R1;J1*pZmIFn>IR!iUijvr>DU zb{xYxoM19>Buhe;L7VZ1hDSa#2okF~lq_##?)65+`CmuTNHa#PO7D&~3MEDw6Wjl+ zY;;^wTsof~TN1TB0cS}~ZjFI0`SW_IjW0rC)FOxmr;ugqr6~YjDGdEiV$Q>TFyvU- z6u8?XD%l!+O|^i1%4Qb&=vel7og4wW(*X>(;E6mbOAC}jh6##VE_0p5!yp70>i$f0 zZ?4G6Q76@ZrNK$yz=EcnOH0e&R+bvb0=5s^x7*nh_aN4Z)xh?WNXA%2Z9#Qqjb0kG zK1VAB>F@w(;>w!pl!O9FAB1ek%*ZtwA?-N!AiUR5`tZ11TdR_#>i^JJNbo{(0aFZ= zOq`@jLnb2zr5GwxdTatlWv~;okgk0oplgT+OS{siadf9HwU8w_jFMG0?IY_{A|=;aIX z{Z=2P%mYuvf;LW$8@b8zQU^~TwA_2tA2L_xgUPPX8U>av~hRTh{BGp}7 z-Q2P3n3e7C;--|zSj+pK=cE;xCD-eayrX59cf9=7V~4#zl!IVS?IGoy!QDFG3{Ojm z??eF`lcYOHKY_oF((>*I(Wf>l3AI zMVjn2>3&!`bGNkrPEY3#J5Tsa)>Vmv(g76nzdx8J^LE}4h1At;w#>z9Stjox_{v5& z%LyfgGV9mAu0X9$YhQ;sT`ub&pC_#gIN&1ll5c1~;414ZPiS9v`}-uEqmXrxSGVt1{?C4utWkck zeZN{3;1brp?k@9p`TIVstfxz1`+hIkD3_BHqBbYQM63&s>p0QU{WVYd5X+F)I&qU{ z%?z17Zv2Q@A(JO9oIPu9$ow@iu@O<5ItKS0(szL6GnbEX;$GJ|BPYvd$!5wzWYcBi zKyWq!TOqQ^vPrUqu;I^=&BfMy*&4LqSXqQDO14SXQ5G!gD;t8p0msIwNnXs{-5mJ;?1Ar_e80cHE4Q<=GqbZZ&phSxJhMOC(K%lf z9TRM}38WdxA{r8wIBHbv-EYPoBqSn?2)hF(Jkzb`&Yl^Q2@weX&0Dx~ernu?e@q}m zn?*>#&r280Pu7lk_!RD;4(YQL8KD|F18EojS}$E`-}v(>mb9N6I_MG6=+v8} zcGC0y^Sht_oK!aAJ)v(fo;i^OEJ3bDoK;rywlKHs*5^WNA*$@b=Rym|q{cTOB9Tb9 zrnHVsA`6?+L8LjUZb~;Jl+-k(C1NCRG^Im`g?x$L34zVXOO_Z6w;E`!nvkG;$QN0q)K?VDL;rr2c$Knn-N1mep6Z^9Rm(Gr9;S| zfY+6{sA!>g*~2e{xYnuZYtshAj#|CSK5WCHwACvY4T$a8y+_Zfi`J$sTfHhazH5Bf z?qwbC3-?fg-xns0P9^DNElDE-Fw~>SYO;#h$uP2kEJEIDvJz+YPEXRE^uX^_T&ty* z`Af!#p9mX-HP>oB5#AIGB4`mb5f_A~;vA_?O23EuSq z-t`)HbYOmSO@8yhJif==jFdcR5!T5TYVNc-{J2bnb*_kjSy!3~*8&5>+Jtq#Vi6yO z{$+$6!p;Ct10|89HEB-<6NQwK1LRdf5<&&N5GBNd(F%7^wjjx4AczOjL;-$mTS^9r#0s_&uc!{e69Ij z!vcc?mj$K;ZU`(6JQ(;{;5UH}1OEv8Q)||?*7ns7){fGS*G|!9XdT*G?K|2!Q7cXs zpB3kbi^S#P8gZSNE^ZOC#R~Cj(JemK1?rmV;&p>`BXr|+({*!nt8|WZU5+kaSESpc ztJ2-qeH}!DB7!1=OhFTaW(Lg*S`@S_C@pAx(59g6LA!%)1>Fg%Yo==!*{n^oLCq4H zjc)c#vlY$k%{DbV+3aGo8_m9H#;J~m&`@ZQj25faXcf zXEk5ce0lRV&C{E2ZC=v+K=YH$&o;l({ATl-=C3sWsyPo12o{5z2Zsl@3LX?ZC3t%9 zg5Z_Gslgk9GlRDVZx22YTorsV_{HG6!S4ls6nsDUyWn4g>p~m>AvDAq(mJF=NY{`N zAu~c!LN&Vk*YHQ- zo(K}5iwKU0h=__XN3@UV645JSNW{|-lOtwC%!^nYkrI&_u|8r`L{>y@grhj(K*WiN za}n1g{u%Lh#3vCCBEF6IDdK-3>LNUysQkHlP-^qgI$ug^9YQn*_&`e7JVWc$t&439%-3dpsMT%IvBgwh<8ub;E4e|`*Dwo3(H?k@$rMG|2y{vp zGMHK!^`G;#Y7yQqQc9%pS2PCpFi?3~i|LTZ7#DX(}bqq#o)ocP*5eYarSh zAxrPk@pw!-%580BX_RcmD@IU0o6TnVW8^aWf{@UoT$Yx~Y^i)k?RY0DO~VkSXO>r3 zCAF$HH+M(&wwP^2*(JFa>EQnT2PI|2QL7_KmUhd#dxo*=rLI?%$lTNS=bewUVWBx!%>5dR&{Sw1G~(`<~Q^E?sr% z{O9tiRZA@xJ6URKZCmz^++1|KBC|Z*!fj%DW@b8u%keh#6Ne&SqSDl>^J*j=>a>!% zQ>vMFb*e=wq-IWZBVV5ME_%Ire}?or=9P%^XwB8DH5hvg-4XzDX`p=`g%ka0nltY;~6 zdTp_CS-^`zUngkRc5LY68h+#rP3VPXB#Fnoor>Td26+ikunpxIF71y)jUkp)Oqu!PMvqPrsgU; zN0r5Klb-(i{rA6?ZpapW<(G6hWg09JHv15jbiLkB{MrJ-v`E@Rvc&S)Y{?v$C8Zx) zU2NalB5ms?`9*PW0ZXQ)ywtU*rgL0LZl;mK^nAC+Q?WAtQd$RPJ%yvpl$KoX8 zquyV|S$qbOwZnuP*kYBhu_8G|x1L&(2GClOoo5-W3OyN!x`6|!q%Cu7D$OuSztUvt za~c0dC6V{yMjXAYQpWzx2PGCD*AG}PJ66!0NIZ{;=gxH?N+!vY`aC>~b)}M{>_E;z zlN2~ymfoH8@<@wHE1s-%)GTIURu_-skqMldmai6; z4#)a+G4&Zbd)fNK4$JmEdw1?N?JX-T*<+R7yNh*W9Lcn@57ZFNjPms9(Z7H%_~dBt zhhO9tx2H1=SOZ7}?^9NK;9!gtPajHd12ag=`pr#Fo}0C0i=${`(EG|qt=bJrp!K$o zsK*9Y#&jxkdIqZ%{gjTay^??ISc{vov|J7;kilDfCBFalcKPe~6MISgasCRbQHHiQ zT2tiW;)23ri`&ke+C9akd&^?X+8UNmrNv;_L|M~1Ub)j+pLEcqICmE+)~Y=Rs*cA< zb1`a>Hhuu{r)LS&#}ZAtZxSv`W7ww zEO{d>R>&AC5R0bx>(k04j zBx9v2Z+@Vbvhce?J7r+o)(*UzLDKQe5!%e{*^bPZlXPqGRwdW6qoib4sj09qzo5{{ zQr^-^No{2oBXWh8N@Ah9w!l%urK_+`kziw0A#8XRPwRj=F@iw<%Y#&&#FpYncqFS_ z$)d_68$^@VQI?#GNk3R}psdUy@#;=k&KGz(jtf$5DN6$nPKA`B=OxX*Wa)lC?a#9M z=HGtH+R2%;g>*7gYrj$Bc*VrJvQA%|tF@LEl@u234yxQ+e&lFO$Y`t;9{&z4>-(}0 z*WVoY0O~;;l{A=YkAcml+{v65C^twZ$Ut^ZX8Dq_3%ajkp!~DUKqY5ssne=7w2Li! z{$;^xeqPlq*g!dCOWDEP1EvE9OZJsnr7c_XH|*O|Hs}?>>fkoF>xpRU4ZbHz#+ARU z?9c%}&vkh2mtUUKN?Xb{sl>*}r=*ec?dju?R);JH z;}OT&Q?LlETf=|~`K4kibfsS~d%)==r-fzq-viSOi~l6+b3{*Umr7Ru7B zjSH8hSjyIyq@~5owojgKw-l!D-ncPFvhHzYm2NWe8&moJfFtz%vlENAdKyHDwUI+~ z<8DuXoq<#G7nmJtTXl*>>VvV{w;_Ma7Kv5Lj*4)N$3Yxk_JNC%6S zxm{vCWY!*cs;bJ*o{Irt=9_g{SZ6K~k2Maa3G`|1()E%Dfs<^eUYid3S!sSrUa7UW zdnbF${?zWamGl;j)7yXmEykY{YYv}%X+;obafm!P*PTA z^=RBbYn@J(3Y9De-M+#eNjzT6&M9^NAhUSUS(=kA?JC__np>K)FK2&tIk&Qn(fpKO z9zl`oPeUI53?{YoaQ3ldPzegC2BIOfZCf5{t#`3aSW^`$+fjS=*Z-0OT>lRq=z`6)6ug5;O|C&6+h zRzYiTJv$aJae?CfM#>)B1SlFqXy)ea*;y9fS>G@%vRNw}Bcbc#%tuNNEXOiOiyO1c z9EbDwm9>ywzkU04$*fH?vH&Wr7F)XeYFWez9`X~9G)Wokux#Nj?$SDPb9YK@We5al zBA>|&3ixiBmCBz=F}tW__P_>^CV*BzG*F6JHLK>;I`!;Q&+b90*&;!QQ-|Sr)q$gs zfPoj8Zm}q3)G~uPu!b3;B&B3;sdeu`XGPh;pbzgz+j149 z!1|`UvvzO69!0t!hm=vH8b;6{QOd$}7|oRXdTGU4+KX zF%39ILN9CNs3Hsf?Kc)`l{|JMbPQDtNM@d8l&ml$wq?hpu{IndV3QrMgYj8>$IeJ= z?3?Ucty|NIS0753xYV%+59FGkyE93eZQ-VD-Z`B&8y*CsN@b5Ybdoq#mNJ(wi&<6< zW_A@)P{N|cZD#O-j9}YH?rrXEk||%uL>74K>StC-WO}R;He0TRE-%84nyMO7(uNc( z&(Lko$=M7oFRkiq<~fWB7nd+mlsqmYWKQ1zc57NXtd@4XE#^>NZU*MkNW2aI!_JS#Y}qXZ znt4aAm;*l)B@1R3Rk_(w-kbKadRAuRaa<+SW$Mk?Dz&iy(IuoF5pym!-@1K zX+DuO&m+MS2`(qWRV4UJ5^|S>E+=7gNZ5Q5_8bY%C*kEJLPH{!5q&%{=!v1680VA7 zek3xPMD8GwS4iZ`B=UbqR4j?Ik*E?9^^ioTkmwU6`W9)?kF@ZRn12w{0%E#FO!tVx z^c^vW5_5lIo=MEf#JroBj}!9^V*Y{1ZHYXK$R$LsCYFiBvX5Ae#A+kfM_NZduz(nwm`Ny|@3%O6QgPFk%dtu3VWE2NEuw7E{&-X`rvlXeZH{aw;w5$W&} z=@?2nP9PogNhil((&;+s^a1JIpLE^?#FBLWgmhU$x@;v~>PXkaq&p?udypP7>6t`& z&LurxA-y!D*Cx{I2NK_n#4jhk!$_Y{(kGepT}1jdBmIVwe#=O|UrB!_>Hh&4K*@l? zWIz=e_$(QCpA4Eu2K_+>KO#e3BSSwT32!^duusYGo@Dq|GW>0l*o=(MAfq3WF>z$f zEHdUad8!+Est0+h7kR2TdFm&U6ibqpkfd8=+do#Pej* z8{`?8Jd;jrBC+L?DgDTl`()}>@@x^A)`ConCDYoGX-|`B%gD6jWZFgIn0Ad!dyz~} zBGd1Z>A#X0ACZ}J$;?bL^IJ0OSu*P%WcErj`y(=^mdtHI<}M&}&yaaD$b2oCKbp)x zLgxQM7K|bbwvdJG$if#%@?4U9lPnrZ79A&x-Xx12k;QGv;{IguXtH<;S-h4kK1mi| zB#UnlAoWWYk|mCEvgCWR2tszWS@W2z9YWTYlC|HEv>wDB zOzh7P`&VRL53;U5S@#23znZMSL)Jec8`?U^hWTW}KC_kA0X+~ zB%>qA*iJUJC7TA3O>4-ex5?&CWb*>D`4f`akz`ho%=gKb2(o1o*>Z$9))2=-l697B z9YVIgNwSBNZBs~2FOsv4dG`B1P|zVnRwJQW{K37m(7cLS4{~%hIc6fqQpmBL^E|( zfgE@2Cnvg*6C22hJLKdQa!Mi3>B;Hg#jVHA} z^5*;Gtuy59AoBL>{?@~`&9@pTCKx}JO+N`A;E zKP8c0FOc6T`TZO6M;G$PW%9?5`fYdJ}4TDL;dGh#(Km;McD`+MQf$$hT7PQrZZl0j~A0g;1p;Zsf z3DohmAbEu5ULiPB2r&sEsX|DF5ZYV_9VCQa5yCQs@cBZ7QHWR|MBEefHbI{)=+6rJ z^Md}Op#MfNY!-|w1mo*MxAeLLi8CS`lev*AXp29*o8vuEg|+j zA@&C$wn2z%CdADY;@%WmUUUepz7txTgx2eYHrs@@t%SC#g?2GQyHP^BO+vftLc9Ay z`;J0~UP1>hbebo09ximr7rN#N-F_9iKPU9)FZ4Jq^b8VurV8<$g!tcu-p7PKZG^s| zLcc{q|5%~_XTks~4ES6aXb}cp5C)wV2JaJw=!GF2g&`Y-A(sWmkdK6+?S-KgLc$m! zAx}v7A7NNGVc0fdc#JT7h>#c{BnAqJqL3IQBvK)se5kt)04?}73mu_-iUF&@kfM%G*2r#My_`=QaZ zvgWMp4K_ZPQkGU^@#VSrI`>TNq3nz!cGF_nJ%wj!bIQuMmzz$N9X-z4%KjS4Hv@-8 z{ja-KCvX>UtqdJBz_CXDgjzyisX@Pmy6QE22Ma!Fne27eJ6*H^kZYC;qYL%X1)JG} zJQxrL*eC|z^wZJp8esHd!k^UtIFHlqG-k+!a$tt+MY$(wybp$~dJ>SN!0yyz;I2uu zUe%=)&ES@f1C8kejd%ZEwv4hY+F%p?Knu44XaS~-ij(O7y@ST5%6}^xQptkNVu;2p z?(ohr9@}~>y~4uH%={s(Z(ZMp-(&ERu*(YW2 z81*5I4`TDF^8S#xpf@N#&jD{Lz9Fp~!>D^8`-T1D9%!k@6dP4ga^$2*BXQ+7j8qD? zgjAv-%sPR2`f!rkZx^Fj8GithM#6`L*M>xc?GLQe8l*tdZ_|*a)a&#ZQq=huj0YVD zG72p`>Ezb4nP)T3v^aP3;H;1l$ATM(AwUG()yx3iVb^#KUOSUzUdQb-D0B6Z-SH2Nt!36h z@eH$y`zagG4k(u4vBCjm= z&Ye28Q+C^Yw&qRE)@7r^WpTFzLyNz8(^xm;yIp-T zAXFKZ*v{Ne&Sy4W_cmp9%%D|4!|<6;`E-+SApeE`;v2|@QDx+aPHlgq zEQ*CqkN?rC&*BztVJ5uDO!_*FGHbtg+l>b^_p?%}930UqCq|qAby~$4 z*l0Mtbl`KY|HE>9kI}FVWNOne7ghnr=YJ^NT{`CK1kutf1<)eP<8#;?o`+)&jy&8> zxhsRqi0A=EVyQg)*n-P;i2b@*1M|BFq%CV_X zn)3Xpo}ISQGdd>y`Z*I$S=qR=hhNZM`StK4Cd7m^IPyJCO|l%~dyHkS3Z2=b`P7K?Bk0>k?BP*6g zuOU!9L4-l%AkpA#&>P))aC*HCOkXjgAe=~ULu6y3-oTy4dJL`y{*!f$ZK%w_$RV^u zeRF0QBzg>ijaSh?1$-zg>djbUIQiIe2obT~$#TH>{f&6QBAzq|(fj9^I3Y?gJ!N$` zXx7&JtkrUvGk>q?#|*l6PyQYg>ybgroNNuH)PsX>8pa!9O_`1B{kYvq32S&Qj$VSBG&#R;6gfw^R8Zcf) z4}N&Os*$jG)&1m5dP`PPljPP=S*nwCE#u=`T7B`eWUzhcD_-a;5VY`2(Gb=Wl#(>2 z-Fj+mFzEi2Ei0%vfm)$zoR#ZskkFm|LO9B^%)7{_&r-UNEmiK0?H0n)*t_n9>?5wQ zZ}l~bG_FrrWnNXjdejuu)HH8{%t_;>8Y<_^E|_EDTX}ZI4xVi->ZiqxTjSzF^S#a} z9uZjl^}qIiV?x8fkDH;48z0p=qmNdV3X(gT?e&xa7Bh?YKm-H5&d-A93RF?voiNRj4mxC3Re=})?E$jEsa|<;m5i&Vd+^y7 z$}?$G*#^S^XkuznC^l;w%hV&!V^E8@oq=%OJ!!7->Pd4=_x{tI+vx}#2`TvG$1hJc z=z`t&D;Pnb|7RZ*Dq_|q823Sj2mVXV|Cg!^x(!~tahmK0POEt}0s?lb0Re?-K!6I0 zYI94RI~CIqXlmRxjV=az_t=ceP6kgXP*c^9U%1U`fcCQh<;=?I4(0t0La46tpcY=F+)&eu-c=x=LO6VHMHYdi)B`ytBNNi7Dgpt^@x z$$l^zDzpxAb-JoXvooOFl+WaRv!_NkAH$T;q$xtx)Ud~qv0wv=X7Xe#r>T>zCM>6V zhpMYMA;&#fFe$1FkR{5W$V$oNR!~sw$bM*?EJHr}pb=2$BC%B>D7{|eb zoTYp_xt%6~ty4mu>Chr;`oI-k+Q#S;_yu6->Ffd(31gM- zo>3zZ*b>hj^lgRG$rh{L8)viXJIKvja%HT{wt99LSs;Z{p*U;{!`91MRr@kP?Jz{? zYgQ;eTU>Y68gfS5zkk<`{nos~!n{H_HCeR$!V3s+*|TeJi(PwioY_S|2Ny3?7Mki^ zW0g5m5*?LbyUwpcS`cRj9UxNGN9K=1;7;z`gns#OFoSr@uX>-Pov7cxzK#~itT`O* zD6UFPz_07^BfhB8HF6q zapRdMH|l59&w#tNg$HNtv9*Vt=VR1@P=XgsZSPo$B?CHzyWjaTh+0G-O@je^?@7i? z=o9`D@4^mITfWY9a0bX|b08j!M+edt^*C$S9@~(;G^T#WL%9;lg!69&51{-*OtLyc z{u>9dK2&d@BZOz7*#J$s`;Kw#TIYuICRkJForjODwW_VcQwe6ngN-#<-|(!1H?ywZ zN-$>tz3;2@$Oo_i(V4V9qdr6RDtpv(qfeWucTmE2(tR@8jUO#)e~ZfA?>+6*s`VKj zM+WNh0UQP4kv{1=8STT5I$R8y1!&Hbp#__AfjPVI)EbtEY2{9Fff`YyV=;JB<`ieb z*T$T>C+-(lElB$BmFk^v_?|is8jQ$uIZbMv!O+*}$Vx1lp@S&{qn?BYNr;|8z6_#xbAI<`r@_85HecukK%rNh8;V5{>GD1s0X-g;gT z6L!j6(DBw+)hLvCtTl2Ncp3tV;R{0+Ykf6{3+o*+6LhTgJTC$W?$?d1n=)%wi{=ApN@Inzs_&JpvsyX6myaH`e)yrb>S+0y zzgB@LV%=y0Zlo`zLhS%)Pw^{VlGwDzj+ z<;GscGDr(>vgK-A0Z4T&^+9e37nH8ElSaP?vFuj)-%{$?;kG+u&k;}EHaTRUS^FI% zh}*SI_U!Q1Is65jh)?*t>y%+w;Xm!7yfgb*rQ4i=!VD#4PG@0)vTsi3Nuwb^$HLX^ zYAZif;Uuq1g_GC-88R9s$pIOLLAR%QU;dP3=A5}RXUq+9Y{|??H>qp5qO`nhpOq^9WC4pI0}OqG+aQlH@=B1(}s8Bd>uhIC$DOg&w_SB$J>TOM_v zk1}yP0!Qp3>r~5wdGO2DD?e8M@XxP;yx#gN#u7zHZY@@WBL%c4hv{(@s`TR@tn`-M=t7CM_MYOqM0nlgIESh`c$QDWio%%&~P-HPxyp9^}2 z4FY`s_WfJ;S~)JY<&Jb^qiLgZZxMEw0K4$Ti{RXAw4P`5EOr*K=*b}NhLHtn{OJv*Exx65bXwqZ)E#cdqGFQF+jr#{PLhMg#1o76^U7w8sDkA1nHV;w8^|jhfE9NAuV530CfM^>!i+c{2 z1DZIxt!jIf#e0f{XwMWKJ9!4IONCBNz)s`Ya9SUKkn+&q+Okm9*~<_z+96;0X>p=s zIQ3N@q}vLhR~MJCZ{4xlho7@<@3C+bR65w;>L_YFHnq~+|Er=kI1#k?|D%>+oxxhD zL@W&XT1G*G?iTvY4Z8nmYOFccqJ1JOHqP7zOk}5s>B+$ZVc+2bIz=_+ zQK3sq9cFDf+xCU*K2{In!DU?UuO1;J=+wy^$8n3}c+SaFF}Qs6 zRqr^(zHD+pORBuK%-Rb|v@^xk)8{mfoIGj7$VqqKQ)%GcmjOh2VK)6G4_f|} zHp{yROA}#e6a*%!CK5aV=)eX34omm7V3Vljl#Eyx;1sK5*5}86Lw)EQgV8hik5^eZ zOGfG`#L+TCF9bgQp|8UX*jNY*FXQ6XJ!a)uD$~kmrNrp}V4?`gSdj`fyvDTfx$ib=_wwLZkaKbuVY!O}S+$IZ}AE zDn{?Vz2)}WYnI*R1^dfmYS-5$-?kL%l+!D%K~FlZxK{RR`8%^P%9=5YHKhJ=zQ={R zG;1Fi^L2}5ZN5(RTqyCYo)%O`L}Ws5pdJ`S7=RCr7n8TIweV{AE#Cjy3Q@itn1)Nd zzU7^h(_}D`Ml-T0$LfuDSMQ}E%8#ouk}%To8n@jOZv=H(+_nuWfdcXK#Pd2M>&L@b zcOGqVJ9T~n02+-U7F9%AnCJ+YoxhCG%A;ea+!*kjnMBBXVl(ULf4-{{qg zFBc!PVv5!9Rx6a1EkFhv@9dYYddRIjst$|WrDE31V0fUUruL6CQeLeJA)o6iQjOlI zlT@imjT76-9$?GL_o*#m!p>!eV{Ggt&meX>%57m|jYUPfoVg`ArP&2Lwr}6DJ6nxB zbLJHlBM@f(YsMX=+X}bu*uFD=TX9Ztj9*qRJWF=Y_S~G(?RyHW`dDXaaf$Wi zJ;uBegj(li@5;?B$SKHGb~txCcbAmpl>~XGc_*qHO(0&+oXfvut;qXk7Ui0?F*DER zpHV}u^SaU|jJy^Q`A~6K>WC@*R7T%##GMaPt-hiE#l~kr=u_q1+Q_yhFbtoKt$_Lf z`w5ZX>dNNf%n+wWXx(6jepu2wm5ynxg2$}fRCUsN?a1>tV)X5mS!uFyCzF_VCX+5- zc3w6W73b#_S@p$AaayYpI~`}T%P(BtbK`o3?j{fZ6Nj&x+BHQ5w=(YgF%ATl#~*VbtjeN^+QqQ zw09{;1>0ZRQ2sqj<<;!vHkQjd~;?gULh1-+eJXe}0%-zy0A??>Csq8iML7`>@a zpqwH<%!AE3o*Hg2!V9RXYIcOOV_IjZFq;ubkh|`z?5hJRWcJ3Y@G|5dCKsI9U_1#; zNDR4z^$Es1M0t1P#crM)7XJ|XW1uR;jxm>!J?)2q@EgeEf#vfAsD&z)4>>$qR$fXU z-x07^G@Wosk$kj#^Y9npwD|7^byUB?s$&`%^{;o7;9CCh(PB zn*xNsjV=jKJTo9luq)HE+i2=%Rh)n$kC*j7gDbg=qb5!qW#M0njbcR=DjPO;TlL_> zlulM|==Aj17%+~$)JMhr)umUj#lSc<{)_jr=<9gQJU+DRBqr|AH)WWES3dj9?fZnzrd(ffBsOxp~4Ew{3`q18!<;qj+Rwg^lvLGGR;Dvl9$&)fV0!wRbG~kMF%Qag>#RsjEDC zv;2(d=9P`h&REMT(H9eHys)K<^7EE~{XRas>Z{Q+W587P*AW(Ifg=LVW0%Yu7k@qS zn&r~JPd{RTG3w*|W6w1+hI48`0~wB%!pF)XN6(SaHbnh(o(Osz!qJog`a|OmDC|tq zyZoSx{$u8>F9vXxQn&bb%evPV|N2IZx)lcl;DShkRTG&t&~cp&)?F^TQGV`FkpAOc z<@@u>O|`X^S8iL2^R(=lynnM8HdYn*Mc#7gzX@1PiPV=TvPparAa(#Rn=*h(Npx7_?vsuSaIGC6>-v|HMK|T+oj0r+xZ_2 z0IKm-7Gf}TYWEsn)!&cef*s(Gx7f(DpMH^j3EV`820X z#77Bxw-&71fX!E%4sF>Sgw_=~w{yTp3Cg%!tFk7yX8>|e=B`&-ZqMmhX%?5k?N~dP zdZOL^j6CY4mUYjvsQSV6gQFV}6uadS6l6dzA8zmE_(sM{4P~Kh)Em~lXUeM2#)MS* z;d3vzpsHy@>27cW0%HSJbsT5E9?lH)F5?l|;|y&20gp6mH<<%JX>tyOwTh}wc&l$~ zv@b&kyTbxlu?eO3Wa!*m-CN-$cKF@Im0=zwC6|+|3-C$Jr#UOP2K+aXL z!sXOw6A?n3h7e-A8bYkzjpmBHGiHqH%4OJvqXx4x?mw`TtVrEX7R~(skcr}cpKw<+ zhP^)Obu`CKn7;l)b$#vMxmJT{6(w}n5YquTv2A8?UPC;4hWBL8=o8G^i>kCZ38ZsZ z>%b(ck5$g>8X1(plcDJMriy3RC|&VCrVM{>h)H=mucsq+=&9j%rdZelzEEqs<68MK zRQqhK|xt?|AL#|kkU)g{2MQq?pnq*I&Yhe?H z@FW(+m-{#HZ7#^P^3EgTcsD-!KO6YeFbxmEfV#f!<)GwjJ$_PI{)nkwUZ>aZ1y7h8RueVw(7 z7q1vLHKyM0iPWEUSM%ydZzE(W6ail~UuM)-E4y~LYL!IY@o)uW5AIoyp`p&Gx-nt; z>)&j=p;H56?(a?rI7pS)LYsP8U)U7^7U+sfZV2ZvM7qIU;Xy{+0AjDE%JnWaK#Tj` z_-I%S&vFe_9u%5Gt0>2IRaL@6BtyVUMJ9)Uu}eTymWs4^>tZ2yA?j^#$HB+k^aBGB zf_w-J;J^y7d_c^@5h73HRn|q}q9K)M9vx!RQWnXZF@5Vg zeN2Koysz=z+?U22u>8by+OM$zweusLzPLuG{8ZG+Fz0&h`ZrAf{_1rWVBPJ}8C#0_ zFr`g#|Ip7>=Y#hnBfL*U)CVc6i_HUL+q18AK(wnrhkbHb)(1hOVGE$0=rYPTSE!hT zs81N8;)&3=FzaSdLOhZ+FlDZMP~1#tj%fbtp7kuS|DXCwg_leMIgBfvEL19$r7M&W z#niQI=l=YPydbmop4saFJ`az{N2>P+d#L;-is81b0ZWKq2}CNeSXrWUj5QX67$N?O z)hz7cfzv__kEpS$J|2X2DOZ)Y8u%BK2TELv5?X>iGiI%b|A>k&frK%8Z?MU~DJExZ z+;4LIdQZ>a)R+j&zDfj6HR!9_Q{^x)>^Sq^D;D^Z-27&11qHJZXjG8STU5YiL6)y zjaYf)Jf!~;+nJnzS=+M$#9)nQ&M#!;;vU5j4zY5|{bQqp03_zrU-Z1o-ZOsH=cVy5 zl@V>Q)zpf2Sye9nk`og;-{BpZ_{G&XKC(PwdyM_W zyOS=>?Zx}^jvEH_W7AUj$QWROGY9jofD_?Q=}i(x8|!aj6(XApAcV&!se9iqs!Nh7;(ZOrU_vyUcQcgheQ0DS=!NUnYv*1*`A-uY^Dkb++fQ^nvtX`u$!+r5N>6�hj<$5QQ?R!UAXjQdNZv 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

t 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 NosnQF=9j?}|37PIWcC06 diff --git a/stylesheets/font-awesome/fonts/fontawesome-webfont.eot b/stylesheets/font-awesome/fonts/fontawesome-webfont.eot index a30335d748c65c0bab5880b4e6dba53f5c79206c..96f92f9b83bfd1008a197f059e4806ae25327125 100644 GIT binary patch literal 75220 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

7r8$?kb-D3z%-c} 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 F002TuuHFCu diff --git a/stylesheets/font-awesome/fonts/fontawesome-webfont.svg b/stylesheets/font-awesome/fonts/fontawesome-webfont.svg index 6fd19abc..5a5f0ecd 100644 --- a/stylesheets/font-awesome/fonts/fontawesome-webfont.svg +++ b/stylesheets/font-awesome/fonts/fontawesome-webfont.svg @@ -1,6 +1,6 @@ - + @@ -169,7 +169,7 @@ - + @@ -178,7 +178,7 @@ - + @@ -219,8 +219,8 @@ - - + + @@ -362,7 +362,7 @@ - + @@ -410,7 +410,7 @@ - + @@ -454,7 +454,7 @@ - + @@ -484,7 +484,7 @@ - + @@ -555,7 +555,7 @@ - + @@ -600,11 +600,11 @@ - - + + - + @@ -621,20 +621,65 @@ - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/stylesheets/font-awesome/fonts/fontawesome-webfont.ttf b/stylesheets/font-awesome/fonts/fontawesome-webfont.ttf index d7994e13086b1ac1a216bd754c93e1bccd65f237..86784df961f954a23a3a5afa57f07ebee0396192 100644 GIT binary patch delta 19206 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 delta 6432 zcmb6-d0bOh*7x4GC9DaAu!oQUVU3UwkVOoui0mpVAc6u?WOJztMG_GyQfpPHv5ZB= zajaTv)mYci%OoaY#0M@RF8!`sV-Sv zhkigF00C|RX-!FWnL2jEC5(3fK(yA?E??2iyS)-1(gOfz)2gzC57K>>Y5_QHFf-j_8u^x+!9imKo+B|I5 z({CB?%8yV)BSRQ>2ISb=){}s00iIaX2(eRpNt9c=C@PAoXE3!rH|lk&p4MaNc2ohi zjM7n?+vB3IVj7KUZZQQDWl{pSMl=k*5gTl(gOxNiWo?MF9-o@@FoDh zw8Aek!da{kGc*Pi6R7il^qA``lGB=SHHNrBP$;5Tfgq4*CZN+DBt0(P+JbOW`KqwGKBPl5m5a;)=>K6#b zR^d?vCGi1Sz9Al!3cva1=L#bR;)s{Q*{5vNz}Kf$-L=HaHXVQ4psnZ!^OLlIN}V`WXzeCt`8YSI%YsIeW+A zbwy$)TmKJpCq?kPIxye{m-#9Du$dww ze3jT-k=TqDG!Cl08My?T$&OH{FdN$m$z?R7!v>TPjxQ~T15hrr!;&Njsw5*=Dey^7%+_b-&#YfQ zvp9BIPMb20uiw|i81bj#XYg?CJua`EEa@G*m1 zcu|~dsLv#4rA;V8c0QBm$D}NY@g%CMZrrH)&S+kwN+B}AjnAeTuu4I4e zEoLV9xIOc;ui(XY$%Rw2`MLQ6`t|ny3)^Y)xLHrFH#U5}oPb5fp^IurmEgSYW%Tc* z5f%af(`*d?I*>%>(e~oL8_=aa_R62&fU*CIjBm-Aq)j{T`y$%>!mKB4j8)%1CEY42~K=HDVtifIV;o&cGdb0XfdCPLu`;87FUrT&Na$3vD6e>qy}S z89rj5uOmYc-Q!b;V{o)X4%ZOfW7p7W+wrNn=zYcb>>gB-F}@3a1UEOZOHsm_x7WOG zfCgAFo+yV9^^b2ym2=~_$3vIPrfnwph~3cyE8v&orr9XWWg(M@O%1rf+aJjvX0JV5mwqixxaq!@c^$l14+vzO{gqR2nOI)bAP$7Pg z94=J;k1!*y{O;}En#I`LC(T$?rsksHRau;l3k)|U7Z~BbIj)*I_{WXSGt$FSlEbw5 z1=_G_?EUWMpQ3&KXN0BqefqzAd~#t-fDrpWu_I=~f5d~g`(%{*d%VbAMpi*C7g;f> zTx1Cx0^$SwLw*Y_08ESIu)~EIrU}!F7`Q+PD^2+sFoe)y@4}_SKY=%wTM$i3ef)50 zb?}K4(tt}3QZCa1g-}d7Fktf#dyMU1j}2|^feWtQVsDkd{}7T7-!Erx-MR`F^dS9l zj=6aVrXRlz*FE=Q$3ocdfhIfxk8B!%#UYUNdd}*wbKtVb)(jB+*hJ>Q1RPN;)`T*o z=ffHvj!g{HHm0-r@Rk)tvJdDn)1ETypiB@t35(%c5*I0ehK6%X;5WKboGLr; zehYyT#DYRBUxH{xNh*{u4myi{C8Ql>aF)b)WE@l?g&*E=HLfUV#!nHU@KcC!B_ei| z5Dr!lA2TlpMmR($iQh(|d`A~6zaXc=MT?@zI7L!RTpQeP?HJ)D63s}`spmulN4faN z1`0wYj9181S-_;3aE>risC1RMCoWsar`^W+p3yHr=j+KkIO9yIYf;YETpzu@yt*WQIz1P>qDfYj6WrhDCxhmd*1G`t(ikcG}z z(GDibpP>|z=I87$ri8sv3z7MesrfxfBhoy=J~nLL4=?b{k8uLklWnG=18^o!#}zU- z@TmASJ}*3KBSo9c4I-1P&2C zxQaoTVTX{hb8UKHVEWpZUC#;j+vBCB$6?@!j!sR0?dX9W1Xc32UwOJV%dR%rGN_|0*Kf_`TVXRs2CH;!g5&3V(nTc)ssmdGF@H8e>xakR5fBv*hzbn&f+S#Q+4t=zcP z9iDq_$>LQcBXeVdW-Zn=C9k_-NOl}^6onQf>gLo6k;gQ)fc)b z*$uIUnSpaN2iWWO{#BtdvF8WaC*SOpx%hs5WnSec9j|3-XzP=NgXGJJ9cA>#e}J3J84R2 zNZA};0s8!R5ORDA`)cUiEpw8Z7o>&Iij?^qXT-mn9_1?Zo|3U5aoWnPIGGdk-NKBl z+KN0%p!5&6`FlCaXA|A+NLRnYhKebHBIFX5TEAsu(R6=^{8JaSrWS6^3x+MwL6Ke^ z8WgW_a*EIfg=Y9ViUKw9765X*&>(GQ^2X(_kKl)}07p8$>(X^7wrqiY?61HYS1|a`a)X}e%@5gM_?|E!L4+fm?MH_b!Z~!~;1Rs-#GT3nUVlUvOU_E#-bum}tI46NU-%7&q6V zF#waXY>UQNh8x!~-O@1K&C>81nErAME`TiSP0Yt*wOAKm@b^ZNIP)lBNy|WMkv%bw z<6}ASw{`H^!5qx#!0E-oc)Y^U?2U>^OszHC^+q339MRUWQ-&n?FvsQ_H=LFswI_+m zrFc#b{-FTxHwfg`!Z^**4FWmpLU@l3%aJ(HJo4K**cC>&aojFoJ3i+D^P`tM^9Y6? z8;0a4kxu7xLkvPWayDf9pygrQI)FaGInhgdO~`nT>6{)SP6ynJC;0A$Zg=bxQeVUv z?0u1MyNK}8iSdsZ|NlnC47h`GL`HlUr@2sUTTbV-F~lNuAoiuqcBjo z+ri&K@2C>_Rxk2!}rH#nbm9&~YYS?F@zb*}4Kw?Maiw{Ewu-5$70 z-Q(PA+>g26@eq4xJt{qpd))I(@@(-OlB7y5cqzS_yv})zNyDWz(tXkg-m%`Byw7^y zmgyp7O|l2_BKbZ!>(k=%t#7dJfM1i}SzIDzE9w<@{k8t3{s;W~1H=I-0eb^(25JNM z1@nR%Lqs8mLi&`!$~NWoNwP`$Nw-5&!d$`{RJ5vIbx`#{U9LW+z80Prz9sy!CPLGx z8H&h`I3Jl8IXt;JN*YxYbuyZco;78mZpzU(L0oiPbKJ<(2CYCFr(GSN7k?_jBcUZ> zPr}{A+(b5MTXJ-YIAwLp-D!E#&Zg$44o**-UNOC8`kv`$rw^z3r=_Hork$EW&d8hb zB)u;Eaz=SZccvh-BXcmTF6(r*Lw0%ggPi=F?K%CqF1agnpUm1c`$ArB-pM&Ob0*Kx zHP88auE*SpxyR;#d4cn0&1;;uZ{ARTTz*6Tx%`oW+=4@elETnqVSqpbBytqiZXme>%>G9HMWx-|J%h+;d`H986#r2DiR){N_ zEAXxOm4sKCUO87uR)$yRSN1KjSyHp)sBXz{)xxSBRfE;i>Wb>l>Yf^2O;OG6n&H}r zT77L#ov3bS-SErvIBAn`doq+uZk- z>aD7`hPSkC6>nX(_2kwE+a_<@*?zC%z}tn}iw%W4hTc)Wv*(?Qoi?4Vor8ZU`osC1 z(L1lb8~g6TcgMO`c6IOS?@sum=#L${MY|h!_x)+spYHCNrQ7r1&)Prl-YePLy!Y&T zdHeGA)BE@Czjh$yz|Hr|-|v3^$Aj4iTRxclLH!4J5BVKh@uBR)mc#nP*N-?HIe4W1 zXxq_2W5qGqvCSVzKRRSeJ>mD4k&o>@zIQ6~RL@`2|9bM1^iMiIx%Riif9w4ldwTNe zQ)kl7>^#$Vw*2h%zt1`sd+x%gl23JApI-hf__O@a4qvdlu;ugK9zjp*7vvXBUwnJ< z+?SQTcD-%APrgd}YTH*YzOJ}rbE*4s!sXlFq$UU9p!{mO%H3%|X7 zReUw=YU|bO*TmPNZ{*%MaI^I0p_?PO;%>FvI)Cfg?aBp{r@cvQxj~939f13Q$xq)RrlRuxn8+>=)FQvb9{qp4AiTkSihwcwQsC$_H zuzOHCxNz|1BmYNjL$O289=AS0PdcAUpJqSZ{B&SgHQY8l@N3Pl+kd_G>&VEm|Nh|A zh!0@|R~x!QQHD+lns9{)NnBn5KX7;grhpIlb^@kxntU+d?127 z6R@cUN{;gOwr$(CHEr9rZQFKFW9Q%4tIdeFvhq2ZQBf5Yb#Wry z6vV}WfPsL3fVH215dL`(x$ysu|4skDiHobs{Yw=6$MOD?Wp9kXgs7PKKc@dLCj2KN zkOd$x1rPgN;T)c%Mm7fa|5)EY`2qofg5)qdFPRxQ{bQhl|8k)I)6WkO zsF}5g=|3h31k8^J1cH$*dAICrZem~z1T3WSFNgJ?I1s{0!_5D|e=Pc6{NK7{h@dbj z<~Gjm|5(+(O{@a}!8p^FVFp>-8U4!>4F>{($oj|9L1LN7Yz*A(fq-Sm{;!q@6afU! z*1*Q(AN#jA;L3mNdo!m6GuzuaIRgR9-T?t2`~?ESmPH@s1$8qqH2rs0SO01u{?j*z zI@~}1-w6Uu@fFVg=O-0-nf~*OEH(b_8%FxZ`ucmIhR_g5`iB4J##$g`nti+wK(Mwz z>p=f~H+?k7?(3WA8(0`Loa*bFgDA*|#Kywv#JckjoG3JefP@ICg|mkH3Gn8C5RYdf zO+*2Q5C8=Y2-F$UTb)(yn31DJWEg=-2nmkHNL-C#0cUvzMuPu z5$YXQI27R;C6G%J(&2(CmIMp5aOJ!1HM^JnWK$hf7*+=m4*80Q$h!p@OIpZq@dV}( zkhlty?RGn;%bG5e{KqzvJg?#@!m>$N&wTRsvGg-UgO?!2Y`2B2P)W{Qnl*DVFtw?W zU1tT}=B&O2SqLpjk|+eukt#nJ#!_Pt0*6a{lLVtVxR}m}n^t3-My;`#)sZ28S4n_h z@f?w++*~#(bEWE}xy+>6QfJjgC98r6%3GE+f~{e!D4eCD%m_crTsTIS&QwZ9d*wl` zso__(uY`-2?R>Y}?N(Qo6YKQ%_TcvN$otIn%;_~J3-KWfMbU$__)&3Jya9Hi5VTBM z@DQrus7=o?#_k=v-aWbA9e3V6bzU8_#yjTE5#eV}?>(~Lu?YX(R{&zpq=2sn-;@7~ za6s@kg0t=+^-^Q*{Lanl?B9{^45**gon703zJIssp8@~7w;=8tUER?Bs>>-%pEuoh z<=q#{mDQF1tYhUS^rmE`WVLYp+*CqP&{_$t9~>Rbp#ZHguq}XOzN}h2nU2+zS7}iAnS`-aCx8OrT5FlWsx56I18zByY0jGy5ls%cgl<4q|F_> zChBgFGHMd!7(XWDfrY-brN-Oz3o3hq#<7&^1JU8vPl?hGxEa?yHSz3nz$h^>ce*|I zkYXKi<^)*~OJs=(9~HLjTf&>F)4hE1qj=Fy0MjtbyWFoSD0 z+kn1^&n!jY`bqJIIlL(F_H8sLhp|UlF~9{&%+5XOyP_vY5QpN{Mg~_DI|!RTi>5KBA4IeVqBf3KWYo7 zlkPI^pJoD~!iW(yY8V7J%1P+7hYjFH%0XzIygub|C=4@ZT_;FRX&#rFboSKGe+UTw zXdO*#r`<%d>|{yvmi^Ku%TEsp)D#LdU&xurNDg2b3XoYf&HraX1j5_ebS-|FnVo-dpZHwp&pQk5=sk|Kcgw6@7R|2-2 zE|+Bn_Q}iYDR=!oKyo#LjEJdhSATBi(A?~PlBy-L~ zULQfEsr$&XOPQMGoaea7y2#H5eur`_0Z2dI&r(LjT|T_|bV%BiTXThL3B;nAn#o9# zH<>+H->ejcb(}uiIv~hTigeB(o?xuh509n?5SG@0Y?bUTmHY~7e2&o#sW@5hk*ojM zfQ^OL*Pa>z{UV2wdWLfTM0GZK2cMyUC~T1x93$*9IJ$#}BsU{sH8X1Mv3oDI{aJe8 z_jw)R&hS@JhPA8M^?j6EYBW35al4ka+wvU`VLhBaH+_qm?Yc|6#vLbYe&ghxkz7p{ zy=)equKvx~n%)`TnYlT=J;^uo#X1UouG)mn9_})>e<2FAa(YL~jc%f-rv+i|{Yfe7 zSMxE#NRb@pxjw@&9&}o`Ln6TkmP@*29<7+7GOb<;P|v7?6EKFA3JyuG6fFp&bj0XR zN3U9-6u|NIT#~9tDnraG>cf<;?*MNJ_kg)GeD+@0_MC!R&UYYnjddS@|D(#l&J;gz z#eG5XK5ob)(K;W1R;ch0CJ=+t_VL4t?VsU#99A@Y*X=&dA)YrzCx*NJ4B`m*YA7+4ZYX(ZKHiH2_pn;7 zWBFZ_-JA=9yf}a&+OEXc(HA-0gd63C>=%FD2d%e&d%;%a%%@o0BV;?$Xb8R<8OP95 zcq+b}$+OX<8#fsr%2k!|^Xf%ybD|>J@8S)`Ce@Ex;wMrgpA=;_Z}Ck=VSA351=BW7 zuQ>~73#UcsO%`618UPq1GL3=mmT@}fEcJ=OFr4`$Q$A7A4D*|YpC^kq9AaKd65vNM zzw=ahxfQ{$lae3>v`5e^h&{wp0TGoOK!A7NJI+NXi@t?z2XEcpGcJda<5=@~ z=qe@{gPmmySdFUQ0Bodn(1>+VsGl&n1l~4gnd=ja*8BIX(pKbj39z;9?6p*nu@ zbY#dWNvM@Fs(!x>ON|=l2oPm9aV3eqTjDbC`F?-!Z2B+?19UT>A2YsS@aq{6OZa49 zu}XT$Kq7&@?fs-M#Jr&}n-V*!*g4*yo)`YK@diKX%4xdgudLw+??s$j4h{MdZNtPF zz^ty-yPj#*^jlyt1^;6H>&`7p)+j}fgdKa9EqvpUE-l#zgVvyd^Koy+@3piDGPSI( z&@sLb+N~8HRQ~l(mn^5K9e0}%eGcp#D=U;m%lgHsg_b5+JxdnsseLba?Fv*}S27n2 zdWS4Tp7nL50TXtt^CMHoGz)jhXFAx^J6gdXz-O}UwGb6l5iS~efRGlr0d&f$bLxC6 zQ|J|3z4lu60I1x-OxzK@ny}-LB{f2!aF(%RuTlKivg_pDM-OseDFpV}pHmIYc~sK` z7X)eTD>6lJ@l>fTF@g7sF`&LKynRgTRii3Dq(BLX)ZIEC?sq`tSB4}Fy2nUOwI3tg zS~18zTFbZQYW^YlCvCMv4IPkHcn%yhj8$?6gd)xLsQfy77R+9$c~9C2RZUbQ0k5fHxAyXb@7 zGo%$prlpHJn%Y;1-2xvKPM??u;HK^r`FargFeljj6>fw8XBkH(oFG<-OEE4$rvUEQWdePuo7f~aL7L2oYKT016RfWn~|SLb1m=0%PR1>3gs#LVD&Y$(=Y zkm^ba=*tatQF?XDZE{~|V{^Vg`1&VR{Ju4otIFDjff;3;lsV5p9Rz|1q(XTwugl#Y zHJU(34POC&O^rICfCGq5aIPq3f zG6j8jA~lLbBu>sD6tD|wkiPV_q$rqWDKH0wC~<3mEdw3)Hn*@dTtbxIu@J%|tSRIJ zQRlfG1)peGseXeh5sjNge8g!E*at$t1@`A30FRf9@ z_O|#86*HiBU7ajcD!g=Ca+yv*k=~ zePz3+rme7GCb6`)gPeql7Q;svNRj()&h=f`@d$vul&VZ|6-xwMob$Lse|Rti8)2`k zsS<=no*Q~o3|hl8o_<2TA6CFzvDf4YYdP>&sT2CzKtM0yFa49f{>FR=#7xsN;4mean={02rl6^ zjzO+b)jG;|wM_m?!dY1OFSWun{%?79pyyYL*W)H1=+g!SfbBZdT zCT`1En(bN>#0BnLJkAy&*jQOoseA%xR0!H8S@cLyD~Ej&44$7)Ae~xsm&s5w5@?-; z7`|^xl?1;wlB=%7>dhG=LviS^>|2Zjb6=r7>tsmugjkZG31)l+ueo5#pr>jn-iWZ%>6nDLy$ciU> z*-w<)CFvtA=)%vs{g>4Id0;K3e{o!W2zN9VMdFR2LM- znD*v);+gzme!M#WMm_A&X62a!VT<5CV?=@jiS#fg79&GWGQcozGAeKAY7_+R@RtjS z`h6`Seh%3bpYY`&rW$L&I?gFOfft|7p+(0gPo;-wGDh%YnsOk6#tfPXc{|HIz966p z{T$@pbpV}%kiSb4pP}IkN5pymQnK{>@G`^|CaoO>pV&zgA}s|Tv86LQ6kfTi13V0e zZHG?h6wM4GnR^_oP|+*ag=)38U5{#M>HA>+CTn$@y*Iyyat)}Dz{}W_VHHYwD|AeR?Lu0t;rVZa%#wDCB|=&KAZB*_4#tP;>^NhFAQ;s zmqiRMW}@$zdM-=+Pko_3Dp)NzSI$d|hh2f0DF$%nU~t_u$mxbXllSneJy#P~s-I%P3! z-GL(V-lIJ)0^l(-J5C_P6BhbXkNYhU@qC~>bhn!?e?2Q`^@0Q+h5?5e{l&nGLSG9B z8WG#8Qd_DmD_!HKD-5YqeJ@ya4k-#j5}uz5*}(a8hqCurRaK6fHe!J)m9b8?EWDNy z=rsUP{O;n0sN}q`Fu$AATe4!G%E&id_BD=E2wwtRX0y{bYFX~-;38XMpAGoF!lyU3 zSMfcz)93w>v;UJSyv_$dw;An@O9+WZ093dgYLrY=`{!+qPx#d5#(!NEH>Q~fgHErf zZ=N8^bNU4I%;{ow3aEs+T-OqMx6SV-W*@`8VJy$*Q)#S%a>=k1>3IatWo1f5&yU8a z+Gz;rgQvHoWNF)qnBwYW+B?RLzM%lDq565ne-%HJ%!(V8^nrS6(Myu_stV>b6t$H= z{!@+X^i0bobOGiw@J=LJEg|R${;VfjdS9@!Sj15h0gzIeL7o@ij+niT3P? zd)mi>)cfIhe75R0Zm;eeCR9~ztsmOAr>AXs?X8Jl+{??rF8!6AkKOJ4^QA?@jxMp^ zg_^;u-?_x87|$Xh+K#E0vkrP(VK6cj9-&fBy(&OiR$>v9nk{)o z;vSK-D?$9FvfWwKMU>=CBEcI6z8GR*-jG6VM2;}ICHX=+uaZLu7W@M7MHB~9+BaG) zpBEOP^=g-Pb^beJ5!V%OEQud_WF z-(zTvpVj9uniU-^U)vF(i#rXI?X7+TjX*52w$1f{%vgQIe2TIFnOXgJ0z_(iZ zmTHe(PG7^9e(%iLu7J-qUR)48!+PFbPI`IhF1?VT&VB0Ot(MtPMBk#)1sSR_)K{^? z(W~<3%IIs(YM`O%_-~tm`HDQ%gv?q6ml+bQ*rypZI!+t*8Qm#*&$$g@&eHclI5^K* z#37=yZ?KjkWTp^DPQw91^EJKU;N?$6lJ@k!Vc%pXTKkK$Lbi*a0izEB@pc5mMUyC^ zyZ(wmv>|=`alBg7i%l?yWXYLWJhfL|Papa1S(Hep%Q2xq5j1M9%=>e9f}9%L_c&wW zbSmHZ=uGhI2us{!5{ID`%rt@w$YDafz?Hu;UtScNjb{oET|qDzks5#tw0}x2_=(CV z3;++)76q#sQAkXdks=+A5BK|S--|1yo&QBD(09|*V!ZUk@bFaXaZ2e zhptqciL3a7clb)wI#bRG%QqRnakzbU8I6Dx%=6tXf=Mhhrm#dnfGJU4I`Yd7(vrTUmB%?1 z1%G;mf%57O)8Y3}3fx$^2JD7Xzf5P^Hh+SuL+xR1G+(e+gi?5W$-D{-{5;o_7@CkGi1!}>~^Mxn^?uF+*coiQ5t z(ZS$(>YqM4!QS0N-OJ3!@~o9+$kLiKDS^+6?CUszPTL756^=@EO;GduW*?P~Ko&d6 zJlS(sx;CI*1`n^+>U1ZM(%I}cp$6B+Rukh(&mAN7chVj;Ghw1y&dVv!0Ex-^z%G1R z+Z%=I%pK&rU|rw4#8JkaYg8Q^n~B9|?wrGH^5o$t!*dM0N#zAJ;j`^PFg`S9UTO)g zWSp}T{K7}ND8vvS(7OLk#+r z2++;RI!~Al?a6I8)--#~<}9X;*aErk4SFn-Xrjm;6@WiO0Rddyh2b8xw14cr25f;( z{@=PygRpmcP|jq`k~>%)u&X<4?htBb34?6pb_}?6ll$iUZHK5LP~VrmMDpcaM88Dl zZV)Go9?ocz!ril`vrKo$xDX8;IsE#J1asv-06M*F4YWB@T_m`Bvq2CGEJZ&7P}795 zQ@wp9(O?flZ>qM%g14X@3K{+bp9NSy|( zo{j1lW`i#Os5VG$dFmLWbhpkCcte0RWC*+=pES=IO1d$gmp#m#9)&)KD;Y96ZebdE zowJsH{-RLWq>!Dweq^D)2&!isR3&42r0`Dh#@dV!Cb6x=oDN?dMi8CzUpq}lu_S{2 zz%2XUuGt}ocHmYEnkoLdPK@O@>)!G7UE3HIC4B3^~?e;6ddFt+1K)k z87NMnmm*kU7lSj15~dN$C9lYL(HgW- z<%c`EXqe33o(QKuMXpu{kz{(7oR82ZQurr>KcLsC0tJ57os|-uo>f1Sq+dUOrcYh{ z1~~k{@@zk+>%9?vMC~7y?oTgx4$xRdtSCLgk^CY(zy!S&9Fm4*PY7y~Lu<0exF1#{ zlk%9H53H{UzN?s*-RGWSNsFcS3V$e!6&XszY7s7y-Cm>CttTB5Wr7CmGn+SHn7mgkzb6{>PU#Zdcu$EwMJzT5DZ>u}R0vOk_XBZ_5 zEs?>(0GylfoUBI|&+>TlXj?s)J>J z*%-i5f`q6Kig7Wd$4JfmK`jOnk?_w2odz-HY*G;S_a>SEfsjSA(fs?e!P~QA5+B){ zvKR5C3;`d5wj{KFJ*MPxXU>%r+k+pVs{LR*CZ>Y@n{63!sXqY(XJGJrOo{EuneF3L z1N!HPy&dsYgCPuD$yYp?xjTX)KL7!88PdA@(X;xZfG9ICS4>4xswS}0ab~PspACoX zAe&a9kosbrnS~rC1^0v>oz{57k3|D`tr(Z_zgI&M();uI&DTy8!43;kX;5 zSj2E1B6NYL;64MYo3a#61_VqH1c~dw)nF#z;x~T;Bw!XY{`hQnD~|j5Plpy?yK2|T zXQlUtC{6jJj>|XufpRh;q>>ZUWy|{3x;`sR=;GJcY@TX?9_4MX+|QCuZ%5zm++OdV zx*K2dZgsW#J>i@Jvc5H7b#OXJ&7yH!%z!~h^G`Im4b6{XaUlG18g(5T@U|N=$1#d5 zSCStoPb>a9M|it`6+bnkag*PkBd z|nGcG{hL(*hbkr({&cWtIy6#Fctu+k_JaoJ`4~{+B}WwHKLZ=Kxty z{-kivme@_S<~@ToXSnuccjMnKj^X#3OtVTqNj~50*z%$3LmP-7D^C?k$4~&KPWR9I zv`C$aJNnwVgCu?G-|}=Ta63@Fo8!yK{;T@)r!#nV#J^%H2DALn+^xu2^zdo$H#T`K zhW6tR*!awtoBBjj6{OsmzhmWsLNS{9hIxf&fw)EhdV8qlNjH)^I!`V=8QcVjxk*w}h2EZn`ig8{D{gsWlV6wjU00_>0CRSdZQBB~*Ko@E0P ze^}-x=9GR`RS}$Lxk|m{uEcPF8)hrXp6@E;aJ`XU-6|%Ku4*l0OF_W*%|O71gTv>? z0stK63{de^NPRQ7^^f)p9uCsrKcwGHxVS65TX|nPlGWIiVgLowzeG4auJ^bA0KvC1 zA-(N%W-CK$?GesGWiOX*BP%?0Kv<}yqYQG6T}_1ZG06g|-k7wJj>$8@nE9WG zdt4QF0<=Ba-f7&;MDBBJS{YXPQ!+9px#Yp}usR5079QwSA?OI;dm>E`CjmcNAer`X zSBsq@v6e5vfej@+hsi;i2nsAzR*}3G*z)1bi9FyNCLA|r8b1jq2EqpI_k}#|%2Vqe zijV7#vcDQci(ON+om_D%p8P4QnnfQu6o^nYYDzPx%K|uTDGtT7Va>Vn zQ>v7DAHJ14UT5Cf*)H%N}a;>gin=;e_F0V-sO=xhvUCT7PKU)=>w;_Y43_?n@ znQGvd8+7rv@cPn6FQbdKkdPora2pd9p|Zyl!BbTF-m|Xv2M>n?Xde!?mL=4`*zH_y zQ)D@O0BiA?w$A2`W`s~-iC`rO~8%VB9>TSmR2Y|{_!%Khe1ldV3c z>Eg88k=xwWE<&&F`dHVf#od4jpF|0vxchcmLCFypkLV^svsSp&5KTySDHD5j7o@!9 zH)5zGb2_di5U=%dK9ORizpW#!ZfFQv89NGMh=0I`X?QVV6BE&Z3w;F~)m243<44j0 z-lVn0)TxUgO=vBM36uN%?xj28Yv6btz_sPod6BUQ{cEB;Z)3W?z#jSUU5|8e1Q>vv zl8$S@@~M-|7{Q}c#^IQuUFB6i5}IP_F)>7?I}@ptDAhFDW2cN+!XFWFxl2 zBG%xQ_xp7pS`Zb5^wp>@@0R~me8c<+gR3^Z70J6ZVAf>Ur581yCy0 zel&b&Q|O#a;FraAoN=e~B!zN34N9gwg|1y$dN((XXc%2+gcGZ=Di7mDiWYsTf)%v! zq4c}W|Be4PSN(!#_+z@~&A(my4e%Co2RcAt5(@d6KMOoFm7J^HC$%V0tWY?#sV~C( z<*vFR${eXkB^tSDRBjA6A(3Fnz-}ZCgSoUT_%*Kzh`f#5`%NL7HIIm%FX@M4DWOz` z&w|#v2%jS}i1iA~T_F@VfnTZ5x6!Y6K_T}0qkyd9{>e%W?Gg$t$4PWwD1(Zs9v{oPx7O6ERmh$-i zNrL2})}RU!;_SC*!EL=#cB9~ax9FsjrezdRSbEVPubn_6tPe{>ier}U5@i@m_d(LU z9#atoNhIUSX|jweW48~f&o6`g1||uA8WrmG5H1y;ldfwK+{VVC_??URXI(Dp%h(=A z9)Kt_vgB|Kw}N(aYMV~cnuo_bGj_9@>PY9=OCj_2x20mQXI>%ng7EWe0kFo?Dhj7d zrCzaZ5HS3fdSb5Ft*7Qkq#%PF;`k{m_wP*L1uxA|)h4oDGk&MmJN11)wNFyBQG+XM zMk_Q9i&UqB?Lg?B2r5UX;id506RON*JxEmwx-u}4w31Tyx==}{l#5K+1Jq-FfjbYh zEZW3E+Qon(=Dc~CgSVm9jRnQQ1g1233c4u!M$&?UMG2x&NDw1O#Un*{=EjUF7pT|% zl@n~ri#Uras%$dYJ|unfPWEd9#xp3y`2{3>T0n0LICfvT7;#Vw6kIXYGw2f}R1Zv{ zKy}Z=Qdv@7=v^hz_kP$UGu1d-qh9rpY93^=c*X=7*Yz>JU)MLEk}@+65LZQE$exg|CN2;VC*$S&@p^eKM@bzZXMNtJMYnxUzf2G-bvaN0=Q0OEn5U2$DD?M zMWgz-liplCmeq+NKNVAvPD&m!r=cK8+%i!dWar1C`C#x4F98o~#g=j%z_b%m1`J>Mhm z>Lr9b6BR80TSkjM2}Mbrrg_9hKvdWP`ZU5T{_kNgR`BeMEuWJ|REQCR@;~wx@;P+t z)c5enZob6-8~?=47z@x^YV~{kxC8xL4Y}R2a*_-1OA;9Y2zz2Yz18_Hi!kbBd|jyb zeCkgjIk64#*6;Yoh^ov-#cl6D^<_R*soQP@55aQ6RqpmYM5-AG*%F;TtlVSF(}iG| z0?>R@i8Fd`O5<*!HmgMmqp%Dcw0muDIi?w+1mE-3Dxis@dkq}wmP0r}w)|axy~1cs z6;{<-jix+6e%AJ=+QT~*eI#mBcWL!$ujB|^*VsOXbu1g0R@8{JSLQ4Xv17~ZcT{aF zcUJMYnlw-NwJ7QA`{0p(bXxCz*r!tsFoqrrYFYKxgTu3Dk0;nWfbmob%Jn+)BFE_+ zQ~~RE7%I29>+xLcH@tY*Q@eF__l`&FRxXf({t@)S;n}(lEMiWjVH?#qdak_?vEkNkXxVU!BsxEZcYaq z&S9(DWC{9ojNN6|gn5SG+}>gP$QHESG|6$i^Yi=K-W#Vodg`=x8tW>M^9m6~`>1|1 zULp)8b}f7G;>Azf9!1A@&}H^X_ic8u*U!z)0QS1H;-FHz^PLdIx85A!+hc=(wkdF! z_V)tvVpp8wog_=Do^~z2W&2qT#D~e{Ham1{fw8M;^*ar-*KvDgD~)mKWCr5zq8D6l zAX*{G=~fbyqZB%{f+!=;TSceVTFTT2XY|QJjWNY;oLYv1GWt<7##drM{6e z-BZ9zAz>z2ky1mMX3)B9E>Ftsb+wgwSy5r<^S=GLY=>}L;KgVEi;b9c#wPwE>BzgS zxav_J4QRcMWE@+owm&%|ocuUEFEiPg$M_IxW!ZP9mMrXvP&c^t^Qc5L7Iq)~fgNe# z14dwsM-;rDr+GdRTnP-Q0@^8cst__VD~?jsZYq6{r!^io!}?T7)Du+7eb?kvP_gMqjli>{@)+y~z8|mRr*@m9MPV&oPh4Z?DLxKYiDY+w~hKWR9 ziUhC=7JOm0mSWgQ=RK3t>3Nbpo2XNzNRcI5d6juYR^SdGxj!79htlV zsU0I3+m#G!+%mLAzxBB>^?GmK%hx?(T%w1W4DaWa^?is%$)Y+7ig{f7)irsSg;aaR zT$54XIz6>LYp%2#oyI4O<4p)q3&{z){Q|Dz3rqat`yx@m*9Hsgo!L-}&GO@mOOQR0 zeibIQy)MaobCmv=JTEn2JJKtF8TV1pHFM+g`5qR{?miOWylw2xnMp={Xg;gwt$sbq zMj>=wg}2_T8TNNHb#|NRetMG;^jvQvn105fW|FNtjIp(PliDvi4;Cx#yo!r_kO=$|;RZcdn zPGoot3mYyvx@PfvtJ>tbM><5z8-^e04Q4Udw4hR*$68cq6lUL|LNs#@w$!lTsMV6h zybw2P(q+&2A?kc))Eg>p&f<#EG7;wsN0jvORHw984U;!Zc86;UMn6tw06(r$vI9P~ z{vd`vt+wo+-&cfXtJ26fP~EM`23_H@Lo%5U2%SU9*I=3G{B5cGqG-Ts)E|!EWz2r- zN{SKuP!hPql_`c_bwGFwF6Y+~wBa`YhyHCL%Mwl+q?@z`>(a=aAcbuOFw~i`1m3tI zPuDj6;%TND>1gDS|f5dBy#zZSU~ca1mXkn zqINS>{7W%*fZbxL$CV-N*LJxo%5tKhvZeL=LWSpZ`-#MdJSNVJHOmznsF$<_nC}Q<}7zjkkjAp@cv+_4gb1Pr3UwuYG7(yzXaww@K}e zW%_mf`4pF|DgS-Ic{aF-94IXn<#7YzsR7s?rTxzy5EeV)uiU~19#TPvoSDH`HyHDO zong)O@{7w{6OHDFj#p0;Km--U1-62m=d?JW!Ao)u1bwvUQ4i<-h7l$+8))q>*o~H^ zQ#ZP;7vlRXy9_njo0&bvzB!XuF18uX*S@u<0e%}F+n~6mz&2aX)}v5KRwN<#qhm(w zA8!L??YASpTq2vU3q}7nZ6oWqlq54e z9~pCqwnkb5Cf=@y%^IvtNXHQuKN))t{3=~mYIZJfyf5^An%@xM4N0ICxpcovAvZSX zhxc5QZzuTs2`=RSKUf>Rx0uH)zrk99zrxl$$@g zOr7D)rD%=}?BcX{%vdBy!^*!D`1KmDIUgvNLxXH%y*bspq^4d=6&%jLznh>GK27p` zdP%lP#Mn&Ldl_G%IBl#vp0Z5g|V9QX$Ql{s06-8*{A$iI=8 zd~ToR>UzQv1*N*%K@0?B^zZ@j4eLYZT6XUob_FRG|?u#UZ zzTUHy3h)I(GPV3JpWM&$LJM$V*uR~_bCUt`u?RsQu-lfZe3;!w= zN|3ebJfvSv=5qZ<3OBPd=|YyRynOP4Ls&W6Z_ZfZp|j4m@4%jm4iwN8rLZA~$ZwvS z#Jjtw8!5>V`616tDp!I>I02x+~tk!fY= z&f?aMYIOS19t>$$y$pfuVv7?n7ywITX-k?ba=7K9_ORnet}bR9ygz_E!r2f3hih8m zuiv2J5B+)JRAy4V{omED#Tc^`4an3aVo}!yB%nHSmR~O!gXnF034yJj-1FX8*w+tS*=zTe){QaKe)3WTqrBBo2CYCVV@;dS!mJgRehwW+?<`bhc6dmqk9LlS-@ zrbL2)oA`9U+|vD-iGI1$>0|J-wMy&GxtMi%P=nXZ7Ib!PP9t)AN}G&?w?C&MZ7AI9 ziG;_MECxZl(60vZH)1*+Vd2bI8k4*@yKDxUEWdC*lN;yztS}hBmX7=6NfJ{-M_8SK zVjH~<0_^msW_g?9(|Q&jyq~b46n{m~$v2Z9X6+pF20@SMZ5p?=eaWE1kHpK}Xp}9E zX9G{Brp-rw(W_$l7c--@T2Az-z~S@e2_qDl z>8kUjxz5`sc>mo%hWzSCh#MbsGxtv3$h&i|nSx)(NocoR0`}ilJ^Op)8biN`@kCdZ ztodI&TG7)k5O~-z1|*tbHho|f2VvXJgmES11hjlelbv`;IK?N;G^L0@@Z0@lW+tMv zgUfhzfQ6TMy|p@;-cvK-tj=ZzLj*AE`jNZjOsYH=c5z-^ECsf7jbwp_^Y#|SvlsMn z4Uw%gr40aQ=yGozGi+PSv0jJwWdLI#1In_(A^Vqf3T(BAqucbAsD8h9)~?r1!@I_c zCV72&YnaHnpm6%J?f262&ND8+Z>^rmVLc&=vCVho3Oivh^q4j$BE*Y#qincT*26ll z&c0}p+sS~dO|X$q)-jp@lJ}fWrk9L!C$W~v`@+jC>!MmWP4(6V&|P3n94%d1w5CsN zZw$hhOuwIgctsiYev%P%$#K2KHEVQR?{#9c)o!u9H+5onu^pEk+qWU#Qp@>5bg>)ZH-W9xITX{o=?pKyMxguM)OMd}baDTc=YTQkC% zUF@G2Z3_94G-0Djp5e+9`iKRs);K}NRxVbanD)Sj)I2~R1(6F!J#0V|JZ2qT1k%j{ z3-^NYOlx|gxvM_)Ts_)lJQRU84H5xLz6k*==o~d@@}&nqTg*}BZ#qSBjCAFB zHMC+2Rt6>(lq?(e8*J+e$u(9&X!q-oP(aYBWjc=s-(_a-@yFf%H0SZ25c<8y_&T!z zKBr2Y$8Ep1J2#V^HYJj>La$9vQOqK=z2go?fyeT@3tvO)56`VipM zpSz*_@WkQY=tl>E5bXf?D%vLg6faJv$8#MK94Y~IGJI!Adlqi|jq{MTVg(O^roYH7 z)AXr*u1s zl76qv{cCl$>$J1w->JE0JQpkLk=6@PW?v$CM`P&Up4e6}u`*J!L=f^aWvx%#%?Yrr z<9z&E{t-$lBf=7HDbI!PYCrI9-2XHJ0+^CFk{p9mn17!XZ+zlMJ86gP)Op&gN0L&R z4~@J!+{c#b`h&T5iUIT!4_1#ZgF=!x6M~HF64-`;`^@{PB^zpcHLw<7xA=tD^S4e% zyf86yp~{IGSMu)AhJ&_AW3*^pmj397_2MUu zghQnQ8~IP|tE*Om{*sh;_2g;NkXo8XQjh!0L2NF#Vf8e{Wa1HK*|41e)K=> zwur2K#?)lqeSS`eA^Lf#uM+Yk1CK6%Lrgt-S~ni1m2UmIe3g6dSnVKj{bT3k^*h7j z@#jmxHU^QsLtU=iX*sO)8-)ADQ|s&G{3^Mlqw>^Ct@BWUP50{&RWECPy}N9>&LPAr zW|L?VA`Q#Wxrz>K`PqqS1MSQqwA;a1>YjX1Y^sJ%AKzEDmB5le{lfNdgegZ9fO&Zi z=>eh0>F~p)dHnYm%2#NJ$Fl%NYe@L6d0OIiMCPw%jBx@MaZoj7vkZQx4k5?FfZLlv z_*AX#Zoc{Bx+V5|_Qg{wC(*!z=1NPHYpHSDrzFKqL$Xs$+d0PaS#qn@>fJLoKseNS z$?Bb)3x`cqY9Fw#l~SyQB!kJ2C>F)A#!s_TnE5xwb_m=eMrMrRjmp zxE33h38O4IJFoH^3`?;k8Zjw}9%&GN0JxxII=Oki4_B+6{>jITX|n+fXAXupLr{0o zHU%{WX8YR?9Y>V%VUu`J5K>(0iVagsv9>96pk~7%1KU@lVODoNg>{zi*f~yXb2ST0 zhp8UE1D5HNR3Wz6ZFhQ`Y^1R*9H%xsLmrX5O$NrE&Wy;S&3>l1SJs>6a|(lX+EgG@ zCAnNl-07rT0IP3EzE4xA14|wFJx;OoZGE#kr(^s2c59SdnzfbEw~_d7=0{<+yRpj) zh2H${)2xCM&b-b~bDz1@t)}O>Dlwm^k}dz0o+=*SzXAQUkfdpPeRdm6n+Kh8^xwyR zIvxVOguC7e`p$k9JcQ&bH<~>iKmD~>h5MUvdKcNgI<*1K*8{8`4~+gi%-@`cNDxxt z8<`2sog5F0aWz-M3F#HNT!T3t*HK}?z2!gYoVRTslZ6C7_``l*1C^OIj~QlbT{U|v z{WHxWow1w4+aufMQtMp!*<_ZRN>yQ{OE`F$YBYx1AXI_co3T_Cb4VsY^F$xW$GH7* zPb4k#{aOm8SJKC8)xL4}3y0j~>|FTkqNyV(;BHI1pXDo2%8RSIY()+Z#uau>be{c_ zm}?8GA0^@#oF@!gJbb41Ezi^Tv^fZ2ixin;0T$(&g}`UFA5iS^4St_5W;XD z@qakO?_e*V0o^;fa~ZOL?sc}HHUE+3nPi)WYS2wN6JK3Ouc4nm0h#f;@FpeMs+&J5# zYXSq}j-MxmIWf{s@&G9NPfze7U9{-XGGi8*K+Y=G%%{6XZ1A1os6=es={1X?p(0$T zRb*_V6o51(ANPtH;_w)d7xJSLW420|0s#TuS09l6$_CI=D0ddr8SPZ0d>ltRziN1=mujluP!NS#Er#D%@k(T8%&Wl<43A zYC>n1vqBBFe{j(Bn5{JZUf*G?N>RnaLykh6%1@xYQyO%wn3?;Wd7v#bIS9IP)&!G= zIUP1`BqJT(Q;rzRZaA|0CN`7FwS3pRlHx46djJVW&*>U}EgIi-w|fVQ#Ygii$MccV zQW&8#jR^TG53}bTu+S8|eEW_!qd%=}-U1tDbyLPQg7`0mBm=rpO{On-l1K2ibI_`7}Kfe6!%jjTW9TwEoWYy+S>fm-11VO_Tt&4 zW$^AC_%l`1HOlhPGd%dHw;;ap!snrrs?l(Hbh|z$=A*^&@k)TxoEowt*2_NG(C#i1 zAv?27cK6||r`Pdj9GC;_g~eD9BExK+pG^GO77qR*2ped$5qQ>~JFZ5T14%W9l!0oj zJEfvKAt>FgxVS@0GKwmXpc~$yb_#Ut%nckKE-K6Bx8*!iGXvUSWQ;ZGl zYX;5`&MLa9o~~%Q3I|v8&JIF=`bS z;W?;prPp^%CD02}o83qs{{xT(CS z=01c&q)4j5ZOb97wtRl>Mc7EEoBGRe%lPh=Fs-8gCYI*{XSAgM-C?~h%9NEO*3{}D zhQ4E7zoPe&p?98%LhcyX#5t$5UGDI`T(&H}Vpg(v6Mlj?*rzr#PwNCZl04K>DycQv z;t2|E_NZAqPd_A!22UrM3ggq@=iQ0Vhrr2u=l9Q5dq7`TT2Jefdqh;^2QUg@$0rt{ zarTk|{*Sd;L<|m78{dpp6yz*a#vy!l_k32KW5H!*MtSV{`SCPs=WXV}6upiXYj^tW zaYaTM==o&alk6&2StAd-TE1?Aj~bz7ybHtSc!=#Td*vmRIy=AS8h6cMo22rJJ;M}M z!ICZ(UqpS9Pd9uEVx&jAnCJeu?M0lnz+-KC^$Y`I51(> zjsur;D0khh1EI+69X*uYn8cu9+Qsk<`(}0IY7q0bc--powFY~APijUa!&6#a`|OPx@PUVJ(TNN z=FBc2Fo?3E@2|H1UxF>ZJQCDgLkntP_r#K{-G0ieN}#fB_ovblQs(Py1z~z_CXAykS>0Oil*4D?bK=R=}C7 z9-kD~MfvkoSB(h*Fdh*7Z{al{!bzDCt!bI!y)IaB)Q2mUCtz<9*_{u&Yo#iwC4;q0 z0<21tlu~lJT#-$?UYKaoTc(fBdA>x=m*zS%gU)qk!3}qen`^dyI%ne?K;pa-;Oh8E zz&4~oE$L=MTb!kVs$cqOP%Q!WSbC_QVMa_RGn*-?A4;O59wGXL0U9z+N0Z7!tA^u> zvX*{3;P6_zeJ$DyPH-GYA5g8(iL^G4Ys!i=JtS2RLoRR}|7bl<);2ChKmJ7ZA)!$f zy;0UgS0anD)mn#wz{=JdqZ$~N_(7?uX!BZR9^bT$8P@tzW4xmch1BY#x|*eS#WX!l zq&1}%RWxha#~H$7bvDoHd8IOB8Q-c)S!?Z+^rd*NcD1tMstAZ`%A^iAV$B+32ZidA zPSA5Z8i^OQmA*G^XtW1nn9G8#G&}s4=#QrEL1}sw8FDe%e>iqsnV5^E z5ZzG=qBS(oA~Uo=h5@>$K|RqWQTmt?gjB*g!^ChTtq^zC<&ILp0H7gb^jN37pR7yD zFbsvZ%aw&KMRLPiEHQ=Q#tX`3G(*-2KUBnGLkXA0F=96VD60XA%4%_x7%09>&mjqVb`PW>_LEh zrP7c=yQz&OvJHT*XJ}T+Wu~u8icLr+#MsU-M)Vye872ZB%am+CN*3a#%tB_}G71SS zJas`!{0!rxb|K+!ycP?Yg{>kM1SHxl(FPg23GonYG9poL!3KkfuoWXh1W_j;BEsQH zjKpd)h7g4iN2Hq%2 zbgD3NS_PBdC<+)BlR&I`3vb3ScUZwZk(64@+id78B_;KHNJa(|l60b|Q?LsGSh$eQ z3?PMJ==B~V7^x*%!C=4$!MI{1h&D3DhPzZ7wXZaTjkQ7$nPO}w~)1S z9bEM{IW=95S~y)hfqDt1gQ)yF$G2R^`+1I{{%W4*M!-cS3h~FX2Fc9y!{11*%=)4x zF#a%^htl5y(BC%-9FtXbNflFfROy&~D=Hz}DA%hBvv7BYQ&fe11WMqV_+K^FsY=ny zjN5UF7ySXfTh|yHwS~!Mj>=xPvhS5tjX}^^wmTJa2HAHA#$T~w`UL@wFMV5uUd7Xo zqYs{evOnb3_n|?JjfV#N)(c#|$f*I1r7}djHUvXJl~3}0>oud`>#Jo?=Th4&lvUsy z{W6fAoj_&gQ-&%AN#&0iX?C-$5ERqKgJxv00#P4D7vBe+E`KoSKJ`)c(fjBCl|BY^ zAG#O<6tBq?r*~;A4Z0XIu`g*AyisNajQnomeE!(DT+|2{%|%nNx>*WZx1eaUl^nBk zE_2hk>D&x%Ik%Q^^eKU2)3^y)YFK;XuUMBjbmgyEGxHHlW{C+ALtb1;ftNmc+3m}= z-X!+#?3~#r@MAxFZRlHa`<=Hh=`)l*dp)Ar<|8Xh60#(?b=mEgJ-Jlqo7uUuU%W{Z zfW!cWOBbPwnws5_y1R;&Nj{M+B$#}mT3`B7cJc8=OK%jm-&GfJH#ecpEV8VtcAvOa zc#jKmGr7x47E^!}_VbKv15#|%xJw3=jlYz`vSkq=;?8iIHomsc#7cGmN(y9@&*Ek- z;W^)HzIci#i6|b!r=SR6XlpY}UCU1>3-YzLda5u$$Kd$v2^x;2&!&iII7lTB#^|ExVeQ!>K3yvCTp=K572eGv4Sjms1{F{%TF2Htq z&o+#voO}$S&N+jd4>#WWEXqIrChVbmf0OZ9PogQ$-P3b;bAPY@CqQpp2W!sEbnJuF z>N|tFtR~%GlDKK6$3PIp(sD?43V&~(z4>&0^Xzu?_gvY$R@9qQ-%;Pg|Ej*{$ge(s z_wMsa4Z61^n0C!9bvgQCeFWXBUK7!_9aNIfl( z33A1dQ)0&a!JVbG5{-F=u0W@KMDXX$HrY~Kbd`<=oOr|Xz4za_a*a{iux#(a<+JqW zUAxTsS<4UZUA93I8k^7CcmLky8ze}ny9$5VBHPS)zd(Ga*R>>;uDfJGOnbE~O|--o zT(VAkAlY&k&r_Vn>+ zTHC_A(<>IOxN+c~^on}3e*S#Dxqe0Zo`KFQVvAR#?pfG24e@77 zgiF#dON_aTDV>mIjTNVyNlGZFM?r-iBBf7srZN?eI8?qBDh|^xLLmA{2x?nkR##sA zIchGl=XX(;%B&M$E>3=_Ir)lN0Td{Gdjc{;8S2;LKUaT_Kd=5={VeLDdPVfB6^M%u zj{JkqYd*%;=FjXEZW3-{mY^MF%Nm;Xj*^gmNpk}+W>c!l?;Mw2xaqO&cU&^^_iNsG z{ITos1%_^$*-(6P@uiy&4iH`MvfPT^;y1kwbf3x#bM zBjZQ)v}bGI_+WBwqhdN&G&P}m2`avL$xZT(H=uCn0$hl!l*j4w#k7K3)j7UQxMqbX~#*~>SF z<7($72|wGiG`l<0{)G3cZ`)4gCkU)|zs9nm`!plNLltAn#o7XOJ;nwL6no54#|y%-m%9Y-8lX zbTUP;O;L(vlkzzS;pQusZtj~tZF*hvyI_V?RF%E})yX-4!NpS$h$Pa!_Bz3*y+(IS{uSQ6>gyRMxzv#;;xvp01_-a(H@ zjqbL{ye0FO+<5KM1JkWKN;h6=^;?C|)aIVf`MLguQ(Kod;QZ*f_i~}B7p;9hzgsbd zqf2h=veyDl`C$9n&W_ddXU^<#wD>${xLEq?joE3TmNvW79k-cu7V{Nt{%B+hZdef2 zO^<|~u3B$b_pBB3>#F#o7t>oOCEBVP!)1L+WF@y#)CR=mbSqW8)q32b4Ve`IXt`Zk zcV)0>dY9rF9l4nH-8vZtX}oR2wup|HYr9f=8&)pc=5O~S+?DH6%m`V;siE%G=Wklo z-rOdKWv65Xnp;p^I;IDLEv@|nJC;0(7QR>$K6P7pZtNUqsK{}Q|E|Ej z+~bdiH9{2H6R=X*=%j6LRDi&9N z`J*VZMg0wKvY$F-&)8qK+Xa!nPyO)!GWRC%Z4`I^@XqX^dnN7avSiCTEXk)FTbAV8 zitQZE>D&oP9Fq&j3FIb_Q-p9N+yTN(%vGQepxiu!R&AlBDN8UyCk{;cJCoTt`m2mrFzBy5<+tJ<1X2RuV+_kjTpaCdxrg&$F^)JZQYc%ZBEd zEj$zS%T5vG7YShU!Vd{DtuzLOA`lsoT)?;VDoEaG(EMD($}aw3np)(&`Vfs5rFbQq zphJ2uFRIbP9WWZv@C&icH4t<%XeA@Z1VAJ#qU#OmN60Rd8lsGLUPA+b{Uz`p0JMg; z8!@h_I%cbO`Or2run%m=OUgqHzqcY=lr)FlCVvbLd5t_*Xm4 z*)e7Vw(fA)5_fF<+9pv`W$ACZ@W*}I{&e-4r}r$b=$`IYLp|iokz)_u^x*!rEmL@P zz#gk@onNrR%)BmT5JYDYJ*{WyB;Suh4g0@3wCUyDjlH`r?dZGHqxY!Badu0~SvS3R z@5Mj-VnK_4>!RY?_D%D;YNVctYZrr^e?2B!fpT@5mM8aTYA49#U`pl4;CtH2`G>_2 zrz_^!HI>#i%}@Ph;*O{L`<~i$R>jQe1}mdwIdknB_uqK`W&O>#a<*tq%RI+&hxwWO zIOFXLeUFCfLFi9&@3^q5p?Ak6?W=G1uv)&-Y!_P>9(w2QiyruFL9=h`g5sL-8|O@} zk(RH#H5-havu(MEyoS9>z19e?Knm2_rUCe*=%U3t8T8XtUZ*9Zb z&V!c>lWy_+caMf*mnwL`7MMqh?XjzfOSgseFgosydTjwK7Q_6}NHk()?|4M|@tZeF zU%j|x%ZtEtBXGa=%dL;@IJSNJu^n@+IIE+WL+h$1_4JBkZyh`K7F_?P^!zh8BPa)^ z7q_H-vT^4-L+|ViPgpp^Kh)NS^Bg;t)gfY>20c|sRg#q;p)OU~V>sBT1c`dSFsy5Z zwP;OYmcL*ezGL;)jT+H$1buST4b#gFSg%+MprC>`z@YUFWynO!5KIG9 z42BY=1V-#kh=eeSK8vJ9kP_=MSPy8~NYM%TTAAxxcJ{|0BtryuAcb)UQh@kMh_Yk8 zd~JeCLW~k%$TI6H@CJBgpL-CK$iI)6;Zsh+1d~^08BEX)V1krceijbH$rL`QJa>4E zO%X*!yu?2;fcYRt&#eQnH=PvObJI!KD^q7@=Q}2OV!$AJnBEgfk$Ekjiv;)26eHu$ zxkk3CFruA?w{dVpv;8iwCB|q&@*MQIGrqfFH&U*pDW!~Ocz5*3=jLLHofwfM_ubp< zjNJ{JAhCT1Vi-P*Qt?a$B*6tG#EPp>Mahct$_CJXS;M6BBLGCspVaU}Fu9>(d6#tg z67BekmY5w)&#{(@@!G}G4}GoY&6&=o#xJ8Ahdw5r_|BT(zgLu3*VI&(@AyLq%%6E} zL^_dBRTq^ALP=4zD)G6a{Q9;TeLduzKZeG$btL|;LczGO$?m$?qmXFyWr}*M*(;c; zf!FFMp_X8&^fXuo&Y25muRP}mE17GgXJ*ZBn`hNY&mgfMbU{n`q;uLHdXv6p$V>kb z)OIaj-Zkayvxh!NzYK*n+a^TZk@UOZ8t~P)ao2jr)ffMHIL3Y*nGxO-L$lSrHMyUBQ$RC52=G$MFKDzy3>DT9~fO@~yXi{~(y{+$s1G8owc%g6klN0yn zY3BE?1>*I$gTmM8Lg{7cqt~}zw@+K3KA?fxWqm07o9L=Z?FaHS_ZO{Nzx{Po#?q5k z?r-dGG47Oi7;r5PQgw4U=$BQFwK60mnzbukD9mB>09Mf*@eBzsVM7@IHiHNIx4>G$ zyL)4>;v}`3FXf??F)?bokap>ug40l1DD@R;G&Y@^b_ca4v)0U6AkTv(V`T+5kCAmZ zpenGIYHc7ISQiKYY#FNn=vh3pa43^W8$=iAY#I&Glo`;ibS`vLHM+SKqQ{_Tjn0Zn zHAdFmC#eclmrxGJL-r}g?5)_cF*O%oofYQ9SQy|)cH-}Wxr9qbHI@R`D*Uw3nUUJpDjv_w?pXyqx0|ve_!HeZ^-$`0STC z@Gh%)4D7B)K;20Voz)6bUiN-LmY=@N%5OI-}jT4GPJQ^kF01kTDD(KQ58HyOK+048o z^)qV0Ah5q;940VXbg~bDE7goh|Jvd>v7-R8g(kXm70?+SbOSFGnAKXTW;x8~|Cl#i zABq+|NIo4&jy&cuVz~7WC(x(>RLm53({11WjS{JeKCEs@8+BPun1E- zV@56P)CCQqHXNSPtS#ZpX0AlrJS9IJ4r@gN3!eez%e$}t^8pCoS`OiIER-@?yNVjE zh+TLE!g^&}ig%Q<#G8%fZW&IDLbUfZl5DZwT}onx#x&7p!W60l1uCR>AeA$=)R!_S zWi{ftAcsB>=*`NNgb&6XxN=oHu0;d0fkm^v_F{bdI( zTR)*wTc%AKJ~AZHwljH7RZ}xlT~JVEXbW4qd%7**HbYfGK{eCdRCUgx>z?`XGuJJm ziRLw2i|*!`RyTR)%&MxHJ14K2sjJl8a@}>epv}xxw{5JMwz;-27I3)&bwzeZxVEyc zuCg}luou6bjt__iyo%5j1nnAZw4@u zsFt&^kQtmn!cP<>vA`8M3sA zxGdvTWc_d>3Npkg%ZML?TH!8jUSUsD#sMDJ1m)N3c|js=40=WB^HUU(%I8Q|Q46Ww zoJEJt`fAW|^pz5@0vVhDM`C*7r~}}yH-l&vBE!+J{a~mL`(V16tYe34>Scnm+lDUC z*w<-moVa0N!=#3SePH6gg8oCE`tEwqw7zL%JD~{xMyu}ZYYgb5l;XzmJ7U7#b>V>n z7k2JGw0W_yuJaYk%9id88@gLoT3%@_?&~XVO&sc9R8)>X?((8V7&jxg*SXE79ba5m zE*ckaKD3+ut>Vy;jWL(oVtP)}i=*X_*}`~AFlmWGGfK=p(i4+?@rh1IetS4% z*eahPl0I*(}Y4hm?e#0@b=*tNg4>>~%Sur6;!O{4IA z%63(}nhnUlQEUz(9j%=rSyw0pM?I49h>`{fvLiDvL?vYxC`j#Fl0XNUBnFP#w}eLN z6G+~YJ)Z`LQcL!+)IQXvxj3=Nh$yk|9~nj`zGpDl_X_@!Wy6Fb+xy6yCY1$VxznQ# zTQP!jl}m2uP9(a&`$|O}>OVpCA5tYgJe=6K1S4KzCCp)Z+`tAYnNFeSGaA&VJh;8! zAZF;w;h|Si?XonW%0`*WU5a!Wn~cFSJk4fv`t!M0Cp8f8|AtBVa0)nzg(An%FmZGr zcC}+u=_L9rhQ7uh0j)zH3X~yYdxgf|1C(VO<{J1X0K<@gm5%?2_K?i|8u zU>#{>SDC$-7ZoToycrCGnF&VO5mvyFRzdbC_H$4y@5$2M!hPTZtzP=29;_hl4HO0* z&Op!b0vybw@{bBUv#+qX^h6Thg(Ft@PU-R@J!sG$7Z?hQ1IH=4H)Ay72XfZElTe{k5WIO-k|i5*w|M$O=|4lE=`eo$x z*8-5?9PmendmFWYh;=l^eZ-qx!TcZT-QTzOoy03)G!Ejl+zZL6yz(TK`(^qjNT5*? zbKxZZKkK7s=ut!0Gf58~ustV|q+ih~xuCthS;s0lU6uQM0J%aM3?iW;k>xVSw%2BA z#c=B@fpN`MR~@me=n(!te(cGVp^6KlSKMqQYTUa zIcd>@4uXNPYxBivg~$v>2f>ENmI}@QRDM|mub`t5vtQ*8VXI&?6pdp;W;7nLqodI# zDEs-W1*^!q5Z|NMQB})(K$3 zgZ@YBFka&U1B0HFN9{;D)Mz^h20R+P5=?j+{WO;I5{mx`hk7BgPGB+D>W#)pdxqlP zxEF~@7;}4SltB|iGI{vJga-_I=#(dc<1J27(Wz1*l}deh7$g$OWXdx%IE*(Hv!CQB zQ%Cqc$`Bz02XPb<5b@)as2q1K%&@2C+ip{`?F!RiWNcV?K#;H(0R3Mhd=p2M>-+Gz zj#VxxC6_HFKT9rEVr0o=Lf3>`y5SeV#^D8nNY0*4|C5OzDXt8!Xh-tlsx*KZ>mb~$ zt<^fUQdp}6Z=po3Rx51-`@w-R4<8{Zas>UzS++^rv|}HZxz$j){yS4HD(Bmh8AI9aHPF=-Bm^s7RYdA-QFxEjP za;91jJN)^mqT=U+^T#|)$>lnN%C$May+-g%2xA>YXB{v7I$_u1()v4DY(UCq&kY!5&foc6AXZH z)9NHj);`otTP9;CktUG!{q%H?$1_ASF!(or{?VcGP?W+}+X`gkWR~gqhAc7d!Goiy zX_H~|y*@P=-f!ma^i>O0hrgkL%P7{{qG%gw{QWe$?{$UL1-Rdo6cG&QPV8@fRf zm-`eam{dA3vc!Ot_!P$}f|r*#nIQT?4P_?CX!!eUQeq8cD4p7D#9$`6z#^+(bMXda z=a9YjAU`!)H*IP^Y>|!YSC9>pCUgP)Q-_*+_Vx7aW4=;M?=q;_-hE3j^W&0zKkuK4 zGfMv>OY5>BJ$*I4;nb=0-|?kA>3igpa!7)-NxpL5aGw#K>_?gDrQAqV62-SMuQLwg zumu(xLnrq~~xtr+fqWi>}UA{rg{&_=yVZ!(%$*5A5(<1M!>$HcV~CE_(C`rzTO z?v8?iA4q>z`J5WF#i;Rfo$*xzTj#}!^*CmiWWzrg%~d-0(k!MdMZUWlY9XEpc;E|z zI>NM*cPBi`UTxFIF)Py}*4kLw=ypSrP>Il;iF`)(t+z7#i zZUt^I64;M2g`tOsCO1SQzmQK`OCM_NAG+ z`k~LIq0b*$jkbXK{GpFWlC8gX;SD!jh;D#x)4gIvx6@&&25t-WRezLtEdtBhp)1k(7mE!+d-693mrcAZe=r*XTQ1id7 zn~wPIS70lD#t#v9vF~4{WYC!=>rI$+O2PlECbCfwJoO(HUXk7#iG@5AL7cw(^0VBOiZ#G=BDqc)YN(;er$A`iqFYtH_V~7Mt>GRlmDw z;l#qk#0`zBrLUJ61(V5B>|b!zyS4_78I-HfnE8vmt?Hw)lCkyKrHnMlA;5$9{{oq9xcG7dPlxlVHKIKbg9- zs0Wu*wbVpv6aEf4l{F@kUz83-(NL*D&0!^#vRhHT&`DHRtL^_)v(SmBUU}__hu?me z{_Edvw1{lIp;in#EB%!=yHi~K)LPL}UUR{b2lrQbZ#ePr|EjH^BV}6kTrYU+CH46) zte5Ja-BLBkY3M@Ep%OVA!_a?djB2=}W~h2$vHHbw@WubGA+c@=$t6U8P$DyOj?f?2 zEF5V$?H{fn9s@c8x)?=;p#P;MT2H^ zOq7NL=`oD;n8k!^#?rQF;RNXl#;$KQ7#OfsPQa_itib-UHBpTB_}A!SGh;WfIysT< z8@qBj-}vV#E5_6T)(kuit`NqpB!G38kV5v86tKJAh)h=W1SHB51RGi0E-DL2n?;c` z_$s1>oZ7W5ylL02dc7H_o#5L0 zCe1XQ7?DppUii}^vaAYE9^rPggOrvkMRlk`ZBLu+EFIDSkzlw62=@_YK8j)DBP4-~ ztQ#80PdmF|@E-hlqI&-4K==1lU$RhTlVOls&-#k2UkN#bKn<$(3QJ`DH< zWb6y}!gSJH%4%({bjs$}3Ko_!m|TKU#oTj(@M28LNK=sEvJ{Y9hs zh8T8G*59GO-aP9D-J56O_(r2ax&J+MM4%KNBPPeEGBu}15k~loW8Wj0E2an#1sGZG z#WUla6_0&LEM}w10f7CcGXLPSWOH*}B^>O$EIFsL4y{J(DwR!aWqka!@{pPAI>;r= zvt%=w{Pxx@Dv&d|Jg%TBSx$t9R4FtXVog%C#9LZbrq{*T+x&;V3fv>ZE71&KFe zn-Yn@D zN?!yTc%8H6K|9oct(6;v7lv!^>{7t(tr&d1tg-q9*nar&CyQN3Ya7kGY9CRiU z8A@!FNXoo4G8kDF`T`^s<5)TsWL6X7k{tXBspaU$o#h`H@eq-g*VG|8sKjyS-`-sa zLU=a>3PAu{X9K`9h)?1lhD(!-Gyz4!qZY+V>{`l)^<4q0A4mB6F>H`G8WCxK)Js4Q zBC$5;wfbohSiQudn901Mkj!R7Vs#=>`l4?SJJd9-(Hd`)q~uG_?FW`CpcNgV)dg1q zu&3u z32O8jefdWZNMB38h4;ViDijj^9c|%OZ?Gn$b1exJjo-GSzNe|NqS@Om_cs>%kI{Qk zohE*tI@4fD-0;6lxzNVwGGt^D$1JHVF z4=ZELQ333?Zo{e<(gT8I?!wyAB~)C*xDrsE>%j>5Ot4unj(uaNy1|nA>SXRvSwM* ziPL$I!e1lNwo@J@jb{N5nFTyHCMmu59)TWIbPRxcPkIll3<$6yN}QyQO5YyEKDTrt z`GNGDW1s9$xz7P6eIO4JGG-$|##t><`;H#n2k|fVs712OX5!=8foF4c!)$RhK=zzh zp+?Uu^e_EBmHcxmU)Y8 zrS0kKkM3K2ADp@Bob_@AqR=hfl-zez?2RZDaSp4hp;OYLE1mcjc#H0UYj}RvH(KUL z^2xpp=(`ln7M>+!ms$LACLtxZ_53Z>v10$0-BFXiP;ZLv-m-s1hwS766EJz=nzkv= z(vPL7`43*ab9R>#v$Z+9X79ZC!TIt)sK`iE78Amc$3wf<>qhB3W-*&Zj(}Ksg4&IJ{}NGi^MI(FT;y8pon#oua+yWPm`#K-rs|{()Yt zXJ{#*<4;oSuahUcT`N3I8z!|_7;~w~U^nYov3~rT`huQ)Jv<2WI*_6nbQLSV^Ij=s z(x^Z$6m+ZYk8K_zQxom!f6%?Yx@n46?N{k*9a_)S@e_pdN?a>%u}*-!K&8QTD>>=m zWLsoa9`mdPORO|z;3KF#XnB!M;qu30CD`CJK!j7^xasj(n=Fu*k}8c}moTvNr2mmV zqd8uaFzW}kCa|No`zV+TSl+_OQYuJ(C*Al&cdvAbNju1B@Jq9Rf_Xrb5G^3dL(8UF z&tENOd3}z_YYaepF-KAb-g?m=?IoDj+_8J5#~(Koy6PW%ReJnY=}-9g7G`MGkD8jx z;fXX$C+a=kp-J>}_zz5))z$Tr;l3|;z@Y;1SRGnbW$@`a5`mI$-l4BrEsD}>AR>yZ z@hYxS6u~dVI(X>_P3BejEQp|dbt1l^QO*qCJtd~P{CxE2kOD$)*C>GR`Ok;1p~uO$ zL$?JH=`~Uidg93E<5JG>cY%S5=yu=kn~&u6a6tBsheBpBHMKyHDN zg$3`9#%>>@4M_8AG7T~E9aN2~m;4e&s*^t_jWF_s!EIx-L4w4Km`M+dqn?FfX#64@ zi3UV(2zY5W!1SAjuB?VDZ7;oOc+>{^8E{T*dZ$sUXOqeFkJCS+A9^(X=||D%mC~mx z!3yYk3cPcC`Q3Mu{;NNk;QpoH#(6bR^r~2NU(p-)0+Ibt`uEWL>4}p-SrPaF__*`L z+iY?%mHOTQQFF+l6gAj<$bI2I8+Td)JmaI*t2e6&s!?z zEjq1{jAh&03gQ`nS~?|H; z-{adl5qm&R-0HiB97tbi*|m73Nwf&^_fO;o|0r%P?88Y|NEP$|!qm%na%5f}MKVxm zzH(+Tg8!Q!JYLV?lH;dKso^#(d0kJWl^nWl(8HN*9?C>1f2Xp8$gs7*ro=mevt^P} zqVj+E42BT+sSHzlHfa42Uk~SIFRe`PKBF~<=unWzo}@DvTBBBo?3w(hll7&fol@BA zbL=$j$)v{o$@;l~9G2Ipa+uGspI?r#en74a;J0HX^ZBM#l#7aDOKaBO1rux%+YsSJ z07Ui(!Z0Yo%njtYjS=J%qj?#j>?RC;Xpo-$gtwRtx4y3ff+1&#eeNQi|~UCh5a>=<9;cxQKjX_j70V|-P7RUOWaud2h>!)u1N z1kgnT8&JNr0s24yU4(Xa1=bF07kRBeGE8|4|5e#ZmQIf8u_~(+hI^>e!}v_A$IvL8 z!IujwC5MQXhnCUXa!y>ye7;jSnAOoswS*2;&Pnghr#?mFBq|YooZUkeV&CctkOL^k z9^n2Q^)G!~C{5u&E2~+ru^leImuy+Z%;^xA_ zCB3Km?hCL_t>SB`;)*jYL2)1}5XSV>_7F(;^rvz|K-;x~OK%8`==Qw;Eh0i?MK~X6 zIh0Ri&9FSbB)M_~aD22TGw2inAJ57vig+vpF?q4PHwu;PbI^-k%78mmy6tBdpIz_O z-mf*PI2&ErAAaDO5#!g0GReb*GDw`cOy<&bveYct(Jav}f`onRsmlcJ z@%#P7AmwsNiDKz@-@i=6H(9p%#_ZsXWlG@t`{if-KHvU1qI2Js*OX@5w&~AkG7^(3 z=-2bhMC4EUpQuc|XhgExI3wUyejgReiqye)HW{M`OE(g_iHVfOz#p;@jta`z~#4I3EgH~q9;$1(=d;X*G!{8YNTZ5eK$c1U;NLM`tAXAiDkqSJ761#L4hjL}ly zD&}{;TnpYdX|%M1bx97I2Co>Agy4XJPTDo@l|4d9aiP`3um*$vFNgJ3OwGcvEXzQ^ zejpk)8pMWi0>6nD-U5^zJ>PH`n`8ma&@@bL(Chh4&OoPLZ``0WZrx8a=t2Nll}cHU z(?h5|+H#(>!!`LbvI{o;;gBuNu_ZGvXF`R|8BGp7gqpmQ7evF^%WzGXee;v&4xuH& zIU0jO%a-?6&Fcd-BzWu%aHqiEjb7w6(selJA=Jh8h=z-K;g1jfVVAlxbnszj{{0#GZ?780^VDPKM>h`c^s=R%7E_R@a2N zxs_@t43Zd5h<@vrhXwvJgV?^KyR(2b8_!Xhj2gIcZy+#hhda<+7YkL*sBSL{7nonX zLo{5*3k_>Kng!0RpQSeP2HGBPT~NO40&{s_YPdRD-y5G0aDrvGeBgW(x5lHI%BqM1 zJ?k*x0(dMtFo-2X-e6FH{DNSXz0f{pSRq^36_IKKx=8iUu2)( z>8uR7{Gwp7R|i|iFI3*yUi8jdGcq_2R5pbnI7EfA4#V-R029o};hFI73ShHi>&#w( zf586s5AO#hyjE@fxk)3vj`2M5ty z>6h=4KKBRUleefUV2Z$>V-V*Fe4jyt?Ix2+kQM|NI2M}0y`qUXr(X~aeY`MFG@Qc= z($fY};k%dD9ra|bjypc)N69Z)wln5Fooq@T)fjPaKaS+;2kX->OAmwZh{94O8t%`S zr8Bl_=z5tx=jEMJ0^B9-{@3{~^S@gL9X%&iy8>mR-CaXSvSz1R68ufeN&IW-zPQ!^vbajh52VJ7@~O$7^vi2uACa|X%`#YMH0T}D&7jXA|LP4!=>a7JUff%WoAXi!T?iuT`5ktzp{ww-er5XP4eOb9-OQF?Z#p z=7qI0)#}DzXU+I5sn}Q_*oqT#);h`%gt(#bFV@{p`L)1y| zOavSRpt$p10EWJSUk|B@o6b((QBq%0py#0U2%uTL$>|G&Z@m$(UCRL=y@sX-HE%Bt z%UBo$PeO^2#CCl zl@{Yvr9IiT8Q{lCV)@gD>a>f)$mS(fJ2e~CD1zyL{3=?D>M33jh*6tT$7`(Lz9kJ#t^Q~ARO!QsAK(2k)Aze-6Jr5B{Rwvl z_{k(%SOT|kd_cJ5uV+ECpwZBP-u#zE=`YlR4nnw%zNo+d+H3p!;h}WDZ2QTtcO9;G zAXjhpl=TK9YDS;79ll4s?-*7)@szEQt@fYBs@RI?oZw40~QSD9SVlxvK$)sV=h7^(g}Y67_XFqbU%ayUGNuvnu;9z4qK4_qwHu`vFv`h1S`r9e-@= zpR#FMZ2nkvj<;?*cXo|Qt=gz!3|kl23$IzV=HLskdebKGn99ML^ai1E{&VR~)Tp}0 zi3fD9?x!E;MpREcU2}Yoy1$uUzn`C`AsD6dCw@3q?T1EIlZ}ko9vQ62grbLCl6mX0 z!^TLxAB&L%Z7Lh#593rAj~NiEUSc*TFoYO_70M{SRtqKqgDR|EqJmCWAmDNa2ZBzC z*m!}*8Ds|HMmlUZ8$+7L#3d!u%WbW=?X2PGu&0}HEMt; z3N)`~fOW0O`1Pjm@z13Y|r)VkEsWcj=;O(sG za}<;Wo&Fuu7u?=%o>p>6qEQnvn$2OF&a_1OFLE1@_IR{q;fzhZ#lZzirw1MG=F-|? zt7vJi43!6(1@D5yCI|xs@FHgbfC{Ip7*3n8A<%#tZkh)p&u4TQ8e&JPpjuFCtfcl( zS5kLUk5fM*Tqf8X9&5=W7)~vK1V;3Kltq7v5ig>s@6D{@BZRVG@eykotdpxL z<7*M{TP-MeU91lC7~#N-T2M!*=)4|+NU8u{dPqM*;=L;5Cjgk%2qrfrzFJ6Jk`;Ft ze8a4i!>^QMlmhRjBD2Y4E_$}TJ^fPmlo{Yh9if0%!?gpzTWp|Br7!b)J32fiWqQ>K zNb6nEx+1HkXtm3FiO<0S>7qmeT19Pp#pTjx(&v{~j@Mc&+VK_pVQ_y1N~aBHO^rln zs68sbZVK>Pi)tb+tJM{$DY8D*(Lo@rJ2)M>JNPDF!SmNUYE6TthkTL9CljSb;Qoob zrRz$o3Qa-alm6j=#$w=Df3VJ4URDA=zpJ#|`n0Bqw+W>|SJOpJu3)gRaoYHZ6X>lv zy8iY^?y~xRS396!uR7PZtIzbOZ|vgB=qBg<$65Xl>Y_UJPi#C$p5?E&kg3u_#KmY$coob|Ey(rd=WOcpKfXD=B!q(yJ^E0IIXf+R4C2x(njg;z&Pc=Idi4&CO$d~ zT^;Oxv>V@Kwq%I61{@J^K)TKgZ53db>_dsUa{o<#qW|T4@ z2Jk^RPy3B4_@&jNO#^V3UZ=5tS?Z*Jt<$By0^K^T*7jw&LpmZrP!RgNjb0^4Q^G#X zRe)Zh(O3mmnyf=-f%GjFv#|=E=b^8zqK0vbh*?e%tna}V1S`$iu@_bxkR!kb$X+Z2 zkQiGbB`0_g`lZz!Q>>HX;tl)Qelzy|LF_}`|>N8{8`GM+iXm!O85H$jO-Cd`!kGUoOG zx!#OHSltp;?DKj}Mhg!q=!Qn4sejTRhIap9(pnR5gvvg>SJ_`Y#S9V_K?tUkK|!qr zi9@M%_l@sbsV*o`uk0Fs-@4(ul#E}+rPu?+K8l%(i_xdeSb;U9ilTKt`WLrq^k~uj zh4e$o##Tx;w5GOS59R{^7Nlo^`H~<#!iK?Y$u2zz7J$D>k4OUDBE2E~8MH|st&@IF zc+>;ydO;y(Ig>tOek=W1dK2){Kcv4)KLthfZt17eKfpL7fa}oM@-^`j(V_N|%Y$*7 z{buwRh_fn8C5r!OpweLPHCA)t?g94BfuY%6+UQL$?11ldr2n-Vu3r5f_#i3y(~r}h zUND$W!er$g_uUSi2c;v|!KZhmPwt?1r1$i~i;mxQ_%M}kZ?P))aTFRYumdZm*G6NE zUzz)>vmE7~xQ+tx&SZUECMWy8D zku9@M9GJCb%Pi*nSzFG7m$!B9erG2zraIfw7dZWX@Wi)|KKkvW@cR1-%gPGxLl=FX z%f2P=n=lewjFG-3k!+-BCc1-A1IfJ<+`99zojV_ckC9D=_ebu%Ll59%%D?Kv>`;X*hrCx$+VF#cB1XMsKu5lLGmERry>(=n2?L=roITb9`o$kWeyFfszd`G*@ehWQ6rP9?Xsn?}bOEawZOgsSe@B^96|GN~!B!sj+#rZHD+_^tH!eLca7 z2&1-@a6ruohBZ$B`YA_oF*6R74zq;aS`oHc)(G}kOZ$2HB^@;jEyc4zqt(f=77M2; zu!s&763SUsL7G;D3Yh+WPJe6tELV7iIKChLGHQ!^+gy5|(K626dF8K5*gA_(*KH|W zY_J5aKnH3^jNyRl#4%H-S$)`+hKK7gjii_;>Q4lb&ujIXEpF6;^kd!j#}@S+*)YTV zz~oJx<18#tG5-S7rN<4Pj&U>I_}t$LVEvK{E@*_FcbyBCu3u2as-%TO>ErIYs2jk1 z8@bH58shw17)H(BD0YTWp{A&uVtJRWmSj#%kl`YgiQ()P8@n+y_o8IY;`!rSX3dJ+eB<>SH#|IfO`or7 z`RYmAdg|(C`o|xTJ}h###bSXDdg_$N0F7qh@w;}t=<#@cXovmBM+dKUyM4a#C5etm z&&HjW)|SyGn$c%{;R$xPJS$Vc95561BV`MJn4XXSxa81Q>=p%u z^wu6&1^*{~E{vwP4Slf--bkM}^fA1H@GTOYR(3b>Q!GSM+;p^lps3mynV%SC%gVEu z+_`1wM-qV8f|rV9VICs(H5{0TJ=3ulXfbvHz=72&@?|I=My(Be;IZ31HgMEqvw7@8 zC(4_f<~KJpGZR%)o98zlXs#%422;Wb_{iGi(2C@`Nh-ZTHF??F%O zG&4nZd>{GW8_ng??26{*3h+pIvzT5TPW&0~{aOA^gyF5=#`sHHx4sm=*r4L{`^wAr z={c1lePiaTil!zsk79Y}JHk<6q0ljJJb(~ZF`$!Jh9omxFs7&?@F0&y{Ww}$qr;rt;t!*4jEUSi%o&7N zRVorZWUsYxB-oQou{0k0X*?wWnG*!f5=+@?FDfOk4L^h?x5bqAsDR3im3DTs@FtyxVMTTcW7Im-v~(N8 zur#ewag3P(5CTZgi!&;khAN-|+9`gAcY#+IDmDV0#wr*LfcF*H7{;Ot8JjpYXDbL4 zYIOpVDa-{n(^>&&$_i-UD|8h>pfRho9HUd20kAmC765D-bqE+(EpOAhY}IjC?((o2 z9ZPHUmM%@Dvmk~h1yez}Iq37cYz7E9PNy=^g)?I|Yq^aE?jnO=pQ(m`Q(HX@}01e+-e!ki5utq%*pT;0SJ<9+eP5Uet z`5i0A+bb$)!J@rzTxXSzK?9%QR;dHFpyfPX&%nCw(D-P7Ny7vd$p|ari;PIr&}m(+ zm``vC8Xnq$g2^Ik>(44}YUzrO(}g@RXR);1y`>Z~Rola%=3+q)T4%dUY}WBUHSGqVwhqwk z1)@>KBv^N;RYR+H8#OeeYG?exUH~I z1nl@#dJkj2Ok)g}(#EEmu%lCLQbSgwsxuiU2i07-pu=7S#4R4{nng|_;L*|LW+#Li z78or*Q>$o()^aKUO>qVYgF3Ss01g1gMYEqlP7RH~VBi=7%h9OW0CW6heSzI(Gg}M- zBTjLdRD!0+hPp9&Nrj#Q0GbV`TkFj_`vRS5T%bgwXS9OP*X6aaw82=;IrKK2v6DAz zxB@lj;c2e2ZhXl6Nfo1tQ{3rP~<8<+_`Mq#x+fEE~uGQ z3ZXB68eJ{wi`W1^H$HLK_(`m{#$SM{RiM*NnWQg{xLrD9CYBt_VLatQGIW@#rCO=^ z*c&Ghr2W`fj`_IgV2JVJ8QLyW=c17W4HF(VsKO&0@Tp=fp4-t5BL+kGDl(R|f?79Y zj}7y@FJBI!DR#r|%l*b@Ki$`2^+>;x4uOT;wbvim5ezWGIT!3akn(^q{r+3OTu`?D zhM~Ws2_4RS?%QcIFWx+1`=n;$NAy9Uv2;w`HK9O+8oFfq#Lnhug^E=AHY-|Kp}Fn~T5vcGE$8g0d(miRz`~cu!Y)+Wua)Y-YmYEp4KUAeq}EN#K1-Oj7veb5 zVnBG-U<%03riq6uKN@sP$ zhKGAQlj}QzQ|31xJj>?k9v_)iQ(jwC8~N9RU6-zJ2Wvk(yti+9*EQ0K7uK7)l^ww1 z9q?Z5oLHqp=TNCkCZ~D2!|QV-s^W{n#ck`mS{644_!1j$DGfzDRaKtmswEc(CT_j< z@Q2-|^)CSSny%@6d*vPJ1l}R~s!FtOc!k7(v{9WTQYm9ch!ZUDT0-d?%(D*0;+z({ zVi3nzfXUyoP@{Cr3FuD(Y@sz>Z!hM6-|qH)X>-#K15<33euuTV;4H!Sv2l7U!*MoO ztylWHL8F#>Y+d^JwAu6p%M!LbnbzsdjGx(kKFf(G&;xp%#v8Njz42xJ{X?IcK?AsWxE@aNArFl5a6AJZD7NPkc^M2Umd@KjeanQ9LYgxgcjpyr#ZKNm$x>rH^_ItL`r=>n8V z>b>~CF24A`z+h>81(>%_T4fZRLFub-dwUp|f=zZF$+fwFrR|=Y*TuRok&_KEiLo`XL0Wo+tp)?5tV3d@iu!B^`kDV8ztms zXh5iK1pzdy;P|jmfW#)V#GN(}#IBE6#*7DuZ!H@q#Ows`h9wTHb{m^oeA_#pzH{4R zc>~rnCh2{Hk(b_oQtQz^DZS4d4buB2hSfazq=scopah)+B~NO6nkPXCItfaYlTeqt z4cbJFY_IgXNvq|0zBL%W?cuaq6R7QFjb{C~-x^HlEU1;w>h2-A0Wcc=5y|V86 zF}sHnP!FX7cwEE78b?OJNNq`gW0avzh?NjA8AD-Uhg%|rGhf8&pO$|8WZ$n&u72qA zz1N}%GuR_tGI%?tW8M4`5N@e73*PyQ4<5ha{PW6+dDUN0ZDLQS?rWAFd3W#U53Szu z^H=`4{dG`y`z^r!>MjnJl@-r;WAhEi4@QJyzEs8m<5G$(xI*##BZ^M%DF63SF(HXO z)Cssc{|iQEj*~MS=8XD*43$R>5kw4Py#znV;Z+d43(v^`u9rI_X`8&C)mnt(ZkzmH;qrlWxA051-}=X!(A!HzdYQHTk@U@eLE<>Qi( zRb5TI@fk~@LlkNAuN!4pj3Z*OPCP{k_I4J=&@W7&5kr0_w5!!7=e{O_y}5L5tJDuwcuG2|GMegcq>Ct7szr8_Z76J zu@K}Gtf2!~mxtCRNFIUq09wPScG-_O%4X=z#pVQ-8Lp~DixPEt@Fe9(SS;@DhVc$s z>ky4V#V~?@^Q1!?mpTfx{&jsr8XzZVv@GORTtTxz zFk7SlH9Kl?A^9H3^qiSj3%>H!Kyx*Nq;kkvw7?Up<>+q{AA6!Ji_1!_EvOI|pT!!3 z?gECj==Ik56ROpKb@(S#7z;R7q?xku9S(=K^y&e?U1hSdoQUL2hSphY*A^BvFRUqK zfx4uzudB4(p!aE@P1HFd(6i=ZZ)4q}psv+dU95qOvtn^;--TKuO#}1~vPO-}t@}gn z8+IzCC8J(7HIG_D?Ll8;c1?_DWRgS+Pi4u6dCSV;h_d(p^<<5C5* zix-4$?C^yR+UV0Ii%aMR3czLztuN(8Wq=$bheCL9D=*REJ=knI!)g;cXKhhy41AHw z?B?B1RsCuG+F8}r$NJYVL#xCA>EyvbO26kd0{|TSBM5-tlxu$~rKOLhf4#H!isXY} z(UkF3496Qe?uy@ptEwQ&YxNCFI=9R%5Y-iSR4~iJHb*(bIvvem-hxO-QyX)t3rkvC zA6`&6PG4NO;~zu5iALV(^-b`&ZZo)8R%a;YSzXWS-V)z)%a$&26+PA5d&5ND{`o<9 zb9Lu67x%SxYu0c>h%+ic)Q5crGxH`4P8HZsL-N3z;ltb3ucxXMu~f{=m6V;*Aj0YINu45wL~ zW{W{A8fMYTpW)Fm2MtkJH^SpjnZrqTyJulf--@1@%_j3k>F}GP(JWQj`D)qP&sAy zoN9}I#yKDxExSX-CQMvd%PDOmL>CB`WB&nB|Zy zvjxYWo+h{}h5eHBO30NyIP{C}5lf{)-+pl}hFv%X!oCu+UVb{9eI+s-cuotqulR>A zMRK{7is2|qB9dW=EN;iMD;2?lshx~Qv<$ixCuE%1(ja=RUK}YU(kE9pN^d@YyY$U% z$9`zueh{dh+x^Z~=xRJk8BC?-FQrmPfbNBAetxXIr>`>r?w8h>z%NV9AAzN>KJka! zfadn6KzZxMu|Hn&ob=t^51gBlDnIzZ>!5WeXQZvCeZtu)>5s{zUuqbG2PYN^(&+W6 zu-RHxYhvZ7U5;zQb_G!w<=Lm#KJ-7cDueTM%$5F%kip~L+qA~D&Q&)}*HCM0Hg@*j z@u&BX4||_`f6J+*e~P^g?>`v()eCynQb(_&qwb0L@8eH^AaH>_!z^eZ%Nv2$z!u2J zOR=nTP8*2kr!yf;NOUPevL9>BB+M~NImsknkdFRjfEV7SIjzQE|7&I|@aQ1eW^~%6 zZOY~-V8~IJ`iXS(1%Zbv+5x9ECGF}-OS7rtcxCz27S@9IE?k;PNCgI9`7!pA&Baao z6|`on5~3qlCOa5qtzzFZmRgcoAf*Aa0PdCJH+s()Sv@L0xzp()trZ^!HO9RR5f6uM z+4>fh7s6p6(*R@tbktkCM1oP=Q{rfHv*RdPFQ@V$0Tu9|0??6K+Am^ATi|9QtTzbP zop)yvebTDN>C+okq9KvI^E_rz`9-Eh+pDU!FEU+J&PAiMIy+CyqrZ9Y%Z3fELTS*s zsH%5q(H(abE$t02bOH~ddy08CUhaD&GiE6rA(6v#}5L3^>cZnW$*qi6Yss`2!;4JaVyW-r;rm8Mu zOnR|iEgfG2n%0ig*OU=1wh=xez^o9zHvonDJ*4#5Ob1r5Cb-&GHXdjN`A#JCV6oTt zQgnHH`||Kls`cgC`cgVkTL1sh_8x#yRoNf#yZ5~}Z+d&vXEKw?)bwN~Gn1Z4AwWn% z2tBmWJA__^p{b~#pcEA(Dx#uTv7qQiTwT|Ky0``Z7TiU5ZEG(;=JMV9-lTx+U-$ce zU&?#8zH;9!=iGD7@5C~@yMo0PzWgTwv_tLSEk=XU!s8GP6rQR}bxkgu0Y^Os(>m{f z0qLvKrG6=DB+dt>XOD)-xhLwG*U#RGkB?n z1fa%`mzyY+?v3KOpZLtcant%*u<-Z)W~Hn~YG)eJXL(t?n&;mbvRCgS%KOm2 zQfXYed^Q;V^36aoTOMm*7^Osydvg_%dGU@4IDfpSNi>LNv#(kyhR0XdKXrJh#< zDS8@7>3C0S=d*L#hsBf@-mY;fz3kjm$yE|IC!J}1=*73uff?}7{d2Qm(Iq!-6dvZ> zQ`deBDlU75Uf)Ti{q;mo3+PzCmy8i_%qU@u2F9!dyf5YtL>MzuiM~FIZurX|!GzPN z(WfBt8GXc;{O;xzcLL+<#HDA#a4@;^hMx}F9`v8NaqlNiwgpw8)r*JMr#bc7Sn}JM#&_XW*1AUN=uki zXNE+|w-I32T!T3I%*|0C))muh(c6euZ5;*pQoWH)k=BW+;lSur}hS57G*1ILB5&pZj;xu}oixdE*z;SZbAOE;wuMJ8sF*@^~%I~g4m2^P|bow!bFrV{el8I*<%ZNQvk=r`@HDTCq_VF`~lufJYoxo zpqQSbC0xo#!i*10IOL5KVQ$ddZj>F zA`L}2bfJElcjFUPuaHDv)b>6v8E|xirzlkKb4h^ZrI&$)b9%vyD~w05NUN!=)MzD= z!a~VA_+q#(wfV?3i&_ioy=@X;&-E2W8X}=W)`(u=+I;neo>GlHZTqXQZcn#rN}j#! zf;e<3hLlF|enjR|p`9{P?L?Z%*V9ZUwl@?L8pj`qnaQ{N4^1Unst10lw?sdnQboRq zs8p<$%{rOIY7xq-%*&1Ef>!bT*YfNv*P`2^4}e@3k-ZccpVKkrw=Hz$WS6Jg*st$D z{I$gD0^v)r8}{If;%iDISy__ZuDm>2U1!B@}DV)f{INmF`xmNTTX znpYn=vf64<6@s%@=1ZJ-_95uSu@rDuuUd-mf}+Yv8ek(SMU@J`1&pKvU7{vArEO{F zQitEZXG!a@C3XXE2U~ZOQ(O7cyOw}qm-8>j?3F`177j%p8|-$&%GIrl7qtMqm^%3A zhpX2a><)g7&9SCs@nUe~a;}EVQFn6*c7pKS0;Z7o(4u*Iud{dIp*hywlVgsFS&YAY zM0xk4k6i$Ra3J~cBi%288^NFpk3HJG=|!AE7cVF3G0A-o|9s&wAV=r3%gVChya&Gh z{=sWY??gX7cH!J3Kv_|WzRfBt%j(as5UdQ!N8ECY?nJLZAG2M_I7*+e33h=q6E?;B zf8S1U26k@7+ z*8%_fbU3Ylc+l&~FTkKR;MOlb?e@=xLI08#LgYf#?_*xQ6+pI};wmd5h4E zxXeI!3^-qZ9sRw#_3qY#Vq$Nw-}sUVxS|Eb7Y`+{-Nas^Ur3t*z2@LZEz}ZZ4f9Np8+O$-~(=>g|3S2f@#mwy&JZyeQ+|!1L)w>Nxc(b&`6I`Umw- z>Qm}VifArHoit`0%xcKxu^ysH>f~I&grk1Z_@XFQ3GwtmSX4pxh7pNvvLxbpU*M?C zJrp*Sq!2EMup~ex5W&9898=TgSRNP1gIUB?2_{ROunHK>n7ETxi8@O}VHI;}G`S#t zB7w4tnK>ZBIR`3X7!OU7$%k=j#HayPka>B?)~PeAv)$v$2NbN@=gld%2lA#4mP;6! zB!_dcdRhVi;G{a*vpGHBhBPdT;gRUwQ(>Ln;gA@S)1|fO)Zi1T!pPfM#w^j;xVvRK zt4{MI0QZ>kZ_1D5%j>e)*24(&dwF3!=>**^u2MP>FhvlXsdQxQk!3g!<6cha7c za52LfhgLh#fOd&ISIM7p$usFy0FvKHbbkGc$%BgL#44PzDy?tdk>k52Lxz>HJ}yn^ zwE9eLTUBNw?h|sYtHGoysW3uYWWu^z4UDbBq}7<|Ick$i&ae=u(se$QPGh2jTH8~d zh29L>VA1ONoWZtqEv;60U2%ss7=#MVUs$75Bf$hbq#2OybldXm!)3Bu2f!=Pq)A3^ zz?`cq;Ttuw$f$c>&ZcE@86V{o-6L$-u4rB{o2#I`%0~;(TN=P=6jBakLlp;?8gxLJ zTsvGTDFi^cvdH7=@fiCzWyUnw1cLp~`cu0hM1PiS%1p z2=WV2zatVEqW>jOB%lB&Po*;4oEZRP6=g> z&gPUkyulpFx1<%?)H0o!)=1Pct(sTZJqoFum777E+??xlCpLQRgNKgkh%Gq?VPjft zeaY_StJ7`G)dLNl{B%cJWbIq%bMzMaqlu?K|41+w~LDP)e&M7zNt2J_Ej>RD53{b_$83_$FYK>09C_%m{H`g(I1PGRv z1_8KzdPk8#SKSl`pki<(pfmC^SDrkG{`tFkOa1^Hon!A^yJ$!}O)m8rf)>ZvVYmC! zn(ZpffI-XGJ#dK~g%humZPZFUA84Q&1bS>?V}8t4n>mRAlM_`mZN`K`hQ#2axqO%h zVtFD44<7#}(Eu|*w$o!~LV)GdF&B}jI00>ta3;a(mS~G==s*>$BuX{7B9qs-$60-3 zq_$)5$dzLUnDVNXdlWvOZSwhC0d(1H~)JaQ#?vvaRA zo@cCYTQzb}hj!FM)ylmJ-z>k66oh(m$A;PDj`-JEdu+4@KiH}%4Tk&+yGE{>IM9(( zClr~Lx}h_EWTavVV{Tfi82MCf>UmRHwYjz-GggVZNh03F0BQ_1j+#Wxq~=gtsk_O3 zjz3>;?G_M~IRhyj#h9N=hZ2LR$ccXigI%J0iN^ww3kf=&qRu8QNGLs|R7{YD#X_t( z0DL+YnCSqXcFlm*;ZI0zA)u*<`yxVJV)l#&7tjgf>_AaKCuq3DbZjUGXBu^IJ1`pz zIoVttQ(HUC!nkNjqj7^;R|lmtqyZ;{fVG(|dN~6mK1FH%G$^l8$gB(lX{&>_7R8lU zv5e|Xnp66nPMcZH0NQOR@bWtNeAV?Aeuhsb8<^8Go|yKx8M&uW9;`s;?}!FB?kshW z82U|>R4!#4Zf5Y2fs<|;sd4$_U|08fbuy1ru|y$SGbbD7LColuF$VA|%}Hg3G&TZf zHc!$(1~OwTPuiVZWgr78q(t{l&T<^1ljxv?)@nV_!_aa7ltvgTVMD_lk|GES!5NLp ztWnZtjSUY&My-T9|B;ov^z z6{dMP9cH8x7ykI8oO%!Z(dvFVgJ={QQH0}v2sB5S_)Vmo_ENZSLO&2+NXE-;nRLGr|Npx@FM@Kpbs(MWXC}yjJyTl0dro&}&BWp$ z>GI7Ok!e9pEu&WGnNlXQge1stdUT`;vjyE_TYs? zZ#AI4QV^;CuLZz%Koti&5kg3 zfqYPPg&n_Mr-EX;>;B6){a=31-_k!W2f_KjUhn_Q=VJwhl?$S#N>?9b|NnkS{MLef z2T1kv{(p;V^OoNXD>y>*-aB9M#G5gOXPWo7kRQ^iau6AYWZYCjGkCi z;F-^pfisA+6<@#7#1_>TN|~ezp6F?%e@sQ=+H!nsT2qb=k7#P#R4*LBb<2VN>5QtH z?7FY2YLX34b=>~NPB9NvqHiQjSOtBs z)+am%3sUDmPnL=~Rz{m+zxF2;qqm7I56eOish~Ha=+ucv) zQPpIp*65}QBB-Cn)Lj_5Gce;ri9M2Y8%#cTC{pBcN8E%@_qct;Ll@2wIxOvRbHxaN zi`{J<60lc)sA{?H{b}gfUy^`5dEFb+VRFHe3sDe!;}7Uhz}h_SdDM+QhpnTpT~_tr z;-!Vd7bohI`0jRh{Iwr!)j1cg3f+73`N2&${nb&sZrl^C z>4#PgSu>*4mimT0dznr=`g8D`3>5t1T(%PO!p;-fS0I}Vv?qe8R72{-;xg`Nqz@H` zK>E-jvj-17+$jB}V5iVFux?rBjdKGHBbpw$d&T5q&#i^>xffiLnoeYn}{Agy=Yc?;{dr~^P>-LyyoEV zGJ;^i>f#z8Z|dQ*xE_4?0I^r^Mf(@_U(G$bX8}T$gMP?9F$3iR!W@#1$CaQuLjYhY zN#2dG-gx7y$!$Al+3mBMs$H(VjmB0(`tpIZ=(iqUxBl_R*ROkgH~Qf?8lpV0dDS!4 zPr#O;6ICW+*ROc?I8ZPyQvb#a&%d=(lI7ad*c5k3-O}>G^oQ#n$Mqk3Z2fcSNA$vm z$M!BA5030FfMCzFK#G2#F5w%c_Hp1ozUO$cN7?&8ixi#m~ZX>0LBYf)bLN~qe~zW6b3 z9WZ|74Kuq>?b?0n?OV|Ez_$XtgVRyxv~Am7*}jdSbYC1L`HHogFJ$75f?X=E9&Ip^rjRg()`H1oU;a#GLG8zhP2%0ga0@D}MOr?|s^FG&XS z-$gI-9~oMLmO@W~r2y`EN3Srcg5C;uy&~hEpk(d#_t1nr8Lb1#bvm%i6;&z%U?IB6 zlt!2M?8Ob<@thKtqAlYG?U+5nXav)3W%wkA)Ull9E{< zOAARzuWs+??C7TOpfsJAV zbU!OZF+Gru`I9rk`%zvpP@O#(d1M2KxE+g;H|sr$zITZNp?GA^_-!Zz})IY>$dr=9*@<(P3OnCH}@VAJdbb%KbkKb zF2VZ9rs@Pem=xHMILoI@u%j`Y>h71CE~N4})hp~J_LgP@w|1bvTG~wK3uw!2S#}ef zzIox_AK=xzquui*`s1y;3p`fNxq1UIzim-lJ@bO=&|{Ch-f4Dax)f^CllZLd$~mt@GY4QW#QOojc6pmAH4Ds1&g-D_1IpvyN89+J=boUSaXudYIwIqot+ z5D@*o;%~weN|^XF<7f`^*8v=g@i8|;p|>r-jM$v*PIL<7ThOQA0uF;*=I!J&E;QMR zzH)+mIM4|WIDyWI$DR)V-yoxyrIZ@4u*Ca&IW>qHK~15iQj0J*x()NA`>6*oKYEII zsUp2JgV>Cc85>7&Gm^IDXoI;2bU#9N1~c-BWpB((lyD+}SP`D>X)|Z=2vNh6uUeoMns$NLYm}~C6Ff)OmlAxldC44D->dok3>^;_yX*) zK-7^0N{~;`T1-Kz#dW_8mr82Ww zCIz=0 zY+XWD|K@8l`Kxcr@WA~1hc6Y1FMm+7-QTNJ-*>BApZ%znaX)@0ks%YDk2e3vDfB;r zwR*)+l=Hn*!G90l;T7pf@~zSMEjTYzsggSQ8G>KQHEP9I04daJCo+7Y&}tQ5fG?C< zEt39IrPr$#FN14ojf`WZ`s6Lk?tyw0y~!-kK7r6 zAMO_cS^XkR7Ct4!7(Vse%jGE><)J3xv9pXyP}kx)>6d$TW=`iOu7?FhYa+e{f~1UW z;7T~7xL?je!QUORW(UMJ#7OpEiM>G?3<<{f__gr?Qx<9fBxXFx#RR=Sf5aa!a5O0! zAeWJ_eh(RxMeK1$uorna5o~vC1}o)C^amxFN{r2t6h!WDS?SGAtr`MJb-~qD?>}(s zSdGd8SUDq`I8rTxMX@@sMWs@>jKHka%ZM$!GKTC$Bg2Ei28{|oj{r}h1Z%I^1x;*Y z*k0^}D=bSJ3)Bp=S=e9e!7mOv>d>`mN>HLauV*M?(RQAK!)#8j(1f`w0Q^C>r3{_t zlz@@jf-`ev8VE;rT)VFI_E1n`%$Go#b*>q35ZNtP2glH>v)VWx9b^~*q{@U_Bsn{3 z$7FHs{80;w6&42o{rj2tjfVZUZ^Ii25HN22NSJJ_pyZ+#T1V=-L1}vR8aIhY|(>4`zhd3^QH!Z#ivVdVQvpBWwH?$a?n46pnJ~r62 zQVX3SLw2}p?p)Mhuo;bPx(vFLAIe-3qtRvnPtN_t`w#zZ?@!eKJp=@kNPwXWcu1TU z8-Wwv9Cy-uAjEn4SKlAx0_%{OtenMPnSm@v&us*rx~>;%(WebF86}N76(dp1X+$5? zJ$K?aG{I+c=G@8gQbxjXGUm=XbAS%m=FUC9@eGZxqdb7y<7@PBk6ujw_b(Roe}8KW zU`|r>V~r^cf`kY>Ix=DjIN`6qb2=C}VQXVn?a+p*f>w0Xc)+e$S>!6Nbp5s$yjNpR zv<_Qo=jSH>3@kvYcejppX|D86SybpZ&Nw=EBxVMTs3K+f)mLB=-BcIZ^l0hqz_jRZ zcy7>zy1Gb}Lp26Nm zciXMQ=g%K*wO4_rM8bw_f^X&H5gglv}rolsDI9G7(H4a z^+Ud>h=;u4x6Dj=Qd9B_alLr2uvdJqCOOb@0PHg~j25tFx= zK;Xr)Bs1{qAHQ8{Q-l??^vNfsG!EFLe^=v|RjdDgc{*CI(!lGWNmZ3P|E3nfSMcL2 zefJ%{f*)TA$6S;ibEH;+3BUuLkBtRnz}K_UjCnR4>%)|Z z&X97#MR*aBb^aS1haN*uyzl}Y#-Z=fV@*Jd7q73c2hGWQm^WTPPXJZ&9y*-S{f05e z*!@OE1|7x$oB$T01z_ff-VGbN-vc|3et7khPd+)}LogF9KwoVD(0df@M7L%qKgcvE zKTxS)hB*^vWSU_HCgDFY_u`vMDRw39mu+I76n5)8?rbPXHhO_Oh_1aJX99s~CK?Jo z_}Wf3oZ7u32!kojFHeT(hf2C|>lgPj8v4RO0NKM|EEummxNK6>5D<9$5U|`0&cA-& z+O0FSRm$3?SW{CZXIORh;9-lZSKWKxnj5F6U4D5@V^K>(N%qj{n!&9Lt5zR|-Fbgl zeehEt|K~jmo{0vsm)uo)+wnWm7k5i6=u9 zIgxm2BoNzc!w80v%R!n#`D@#v2AYM+`uSu7jVgE`{AV8mTlb$H@Qv{zNy^?JC2O=g$FFCXI zpQsCUqON~#Jpo!yzK`Bd`GcK--hcljXgL8BkC4o*{{--rjPBl_Sxp4a}3+i)uG@lky&RES3-BPfyx=IekMxsy%J7%|<53YtKKa3q;R zKrPtBi>B^*4CZ>mrb4IGtWW8c^U}Y)!~$tBUhHNE4+_m{s?=%&4vk%sa3NA z%?2I>jD|Zq-2s|04RttX=Cty>E5nfQ9y@HH$yh$v!lY*vW~xGly5`bSgS6qbAhSFk{xnfhdWleR9js zpjD)QgubT4d~T3xp(arCs8!Tf>Q>^X!tW&>2k;+e>NtG#Yhz{!M^vtf1tS-U#sblp zIZAWHh)Y7$cFed7#{2=Iu}!)q$;HPIz5u=qo-k9z0#Pre#Ya)^5?6?kDnc#N6{voO zFpOvzbBPK(J?AZS$DGo%oa$TN(^V(`KHOw4nKGrs$+vn~Y3Uqv$6LkKy7z9W&RPAb zTKz9q?Xi-!f}-(71#KnAYF+ zHx2iCT6t%Qsl?+aHz}@u8?*z}HD}T9(INEvv)5d67LTHTdB%U6X zdm};3CkFyALf8*79SfXD09rt$zaYwoh1J7D=o~g8;;n~F;fRN%5jcJ_35SgyT$vVx zN1`Amdb#URSU+Lzlo{TJrY5idP;*JBeAM!?9DnAbU|nPOnf7LTVPR97+&6G5gj;EF z-ifDsnMXF8zJV$C0$Pi?IK8XbA4jhg3@QxO7s6@%MPg@bs^VbR$PsN}-&JX8i${fK zX=q(t#6tUK7KyahCW;l97@->$4=oQ@Mt;f#b|Z_2iQ4F|uM1WT)Gq1- z|K5kbyCYs}G_$PN7%rLoSfa5p@z@D`Dw3=GnezCAeScei2T(DF&PATup=cYjnB35A zSohuUp4eF4HpG+FvM3J^?CthOaCqOnfKF)*g6D}q7k;Rv>-Sww3}xndENY;kWB9kP)9bO9!Yh$_TJ zifDmaYEl86`q)+1AKS8}u(dpt;W8*eOiwdSqXS-y3b|Bfsf z7S~ACacSm}R!`mX5!D8lqRha^AuL#_Vi~D^a3)|F+6>?2-G)-FsZx18$S$vm8Kb4m z^;26)+2OV7A|+s1u=tPjvKMO%=|&d>%xwbxKL~>}z{R`- zQG_7N5$zST2s)<~C{`1!3uR{4)MRJU)^O0Cn`;k-zbF(_;Dbd0k`gFFKe___9E3i25j4H@2q-xP7j9h^`@`-!Qs8djxc^Szcz}_&hQh%>7)^5IzA18)#b2=-~QyUjwfDf#dGYpC+r8{dx2g^L^XC17II*Iy1=AU9vu`gp2G?m?KTUO*vY>mAG+6ahpFFaBiFn_?!0u$I0aR9>u*g zf&v=tK(7#Nt{t1@R_S#zD4#S7SAPp%Wnj&9&Ongp5fYEq8>TN@eR41A)#PjM(Ov7) zU$GOuLJhS79j?s-mspZ*MBO4~Es)?d9soNo6CAP>&g@?ZJ@pIOU?slS34E_Dn4U~& zp9!-hoh`(gw4WPH}hrO9XJc5!7MO<1Pu0FoB078s|oyi1yrMF5-&)iOJqf0osnkzK6u;EFc*tQA-E=!b=^R(#3q2eYkKPi`sB%+QwSdo2l$%e1rt0cLDLE&h+mHbW`8Qv0a&^Dy6#~sjB*a9Ic+%tzL4c&f8 zL=^8u8{uds!MZ>`ONg;aXs>mi)qA7IHqYj{dCIz)_?R)P7J?A?(CTGt2dBk>#Hxr~ zNLamID|6yPB{_qymHDNsmTf<@a(SlDEASDdPf`7ReGu*8T52Gsc8uy;=Z0X;(j_cj)ooo^hn892c|6W%O+! zgFNTZJZpiR4UX85p#VqnzN^C*jNkd>jXn1OPJ;V7HqP^PASYE3U)lbZaFhut&kEP> zOx;SaAJB7u{6r~C0@Ah&WguT3_*mKvFWUkFQDOqjoBaVZ>x)Ua7*7m>%`ukeOrcnS z_rb})1zhvde)gApK+ODIGrq36diPfm^bz_f^40EZD!-nw%L(eQU%KqaWlOII_3*8? z-a?Nsi7PO;7Y4m{fgXDX)GALlu03#IZR1HLdhX0v`oe3QgXk{<0)YV_D@X}G-%@^+ zd+Z4Y3m!wr4#Qp4W7KgnJM?&bPPst8EDnAp-`AtmB+`XjwmlA1pb{vLZfgna z`pWq2C}H=X>GQwY=amyJzEbK=zkS07yFd9~Q~}qi&LdO`zSv2!hOTbvd0Y^7ar>v3G3_<#^&J`vQ_3f|G@CziiVe0T^KR9 zX4$OfQ4El}Ilzn_I%`?=?BN$yS+fGPmY!J4d|Erv7|5a>!&j^rK4SUu5veo!8Qwm6 zaNYRiBy)yIgKGkZgtpqo5yX62qR^UMmR&Q^KaMW)r00hhfqDR?06nxgl%MWhd=%Jc z?(!Acp`3OUY^pjs)&ig8MEVA0xK+#u(56H%COUJe}A9 zT|0IpFN^~9r!m3YjGj4t8ZDmBG^1wl82L|15pBQl&(o)w!`%whjL%mCx7dHjUIgr6 zHi@~wY&>H%Q`5;T1xZs21eC}D3&5QLi3Tu&J)BF?IyPJ@flEMS#^=tYl;0W4F#2b5_Ftrq)kx^N}>Qs?27tW=-n zQ9W0mJHl+GOSt>PKAZY*zM9o}3c&K$nx&3p8(UUdjINg2GeJ{nP)7UV?R1(3yIc6*9U1Y)lgv12e3l#wY4vQ<^?Q zmW_@_|6))Z<-piv3>mX^AW&oHOmNr?gKi8Q<*{c^(8xXde6k=i|KM1Bj zP$S`W=J!hkyM9rYleon0!A^NF%}RXL;IAi8csc>zF>=X2p|CcjxZD= z()^@grNL4N6HI;on85QF`6Y?-l!AQ?({mjy=MpU)fFhMHV#~3f&(0vyg!{$UH0Gqq^CUo|BVq zSR2AWyY(u0)0i<$a+Q8J&`M`d&8e)+*{xT~H}BlJS+2y18rl8>2lmTI!Dn87{TWh_ zXut_JGr}Hbe~DBTHG~>YO{L~iYw+N_%oiN>U!Dmjq=;rG_`&N<>yL4#?Wcd;pS}f& zAw)Lx>O4itNyw3S!n;VZUr7j_-T+|_1iC#09*@8V z2nJAOQ?d*Qes6>cgeY2wuAB^>0A>Jbp^0KW+US@d{Yq~djWTkqewK+rHekJAw9qn- z-YaAMo3_k+xMN1dq5w3*481k4<%31nx3x{v!{I=IPMgx`f3dk~a8$p?b76ra<_^7U7Fv>j-?xbydBl7|5~Xx z&<6_}hdvr)PJQ$_$o8O$OhhrWrq`nPtiu>y3uYQU>=L@&hUwNB;20>DM*7EBdXioV-{CrYG; zF*8f!zR58@!66VI26UMBu!5Bc0d+8n>cN~TY$B@O;s$=y1$>x&qrFt&b08iH^` zavj{LwJ)DIW02Wvbf&u%H)Vj8)8^D!GmIuTuu5-_CXcq88t4-jgp094-_-WD4Try> zjq*~3)KF?3wUOFI-Ax^%{!E>vz5{81_#Y6Z8&O|463t^g8Ej9yNZ2qHa%fMC^8`2# zA2$0)2lm8zsULF@ktyLO6J3{ag0MuGRRbA;BEkX-x^F~2We#&5vJa0LPJuBbdmLf2 zf%6cM7a>Wcr!dXrC-=a)9R7@4pZyirciYP!BiipF`sy3V1<2#~6(l&pf=?C?QFHY~ zV|}n=F@GRTv_rxYPS_{DT-Fy~Hh~ZC0m4=Cn_WWqC5MSIIDAS&RwDFs(MfE_0Y%LA%vxmpe?kk%7gw zmlze32MhtTBb<-dcYHIcKW*?fHD}i8ifLY6#AwX>i?buNInCvZ`CO(oJ1*Sv#Leq- zLOF{UrJJ1PG{ed;@!f#Kq0FEwD|iH* z|KlHDc?C%BE|z$wD^0d^TOb?IECUR3CP%>((mJV><1+^V3Cx%BoJ?v63}T9O`A%93 z^SOLwj$z$wbDGJdj!GxR24)4!0a!Fcy>WossPmPmW7*CORhhJ+sDA7sy=7=d>iV2S zxH@g|!_X}CtVs$?N9UmPytyD4X-<2UzyU8}1sahm7d^To^NQN+;}&)lj3UDbyTl5p@-H9d(=F1&|=73eKbrLVzWP;<_Hk<7`UK zO8Qx>M-toP-6kM(DnZ_w>WYzGU$QziP(s$-x32mGFXwzLOf*Qve-IY5l*sKOzmTkf z5^q|$PFLaZO1_TshN^SJrwyGnsUf%ASzQg{nXxpZ-I!*{$Slbz_vZPeyu(yr&dM1W zjsue~v#_cvFWVmsHq4ySkj4B|eE|I)-H!|iN!&Jn_mMff=gip+;7tSD#tz*6*3&DN zELrh1xTa-xV`cH=Y8h}h#eSB?nwnzV&#@->Q`l{L&+bwcO<&wF0X^;yj|ENt3g#H( zdbQSQ&+)~Ao=mMuqBI%oIl*{EW|OZvR8Z@0GECn&J^2*W1jp>$a6^F~{+`@)juebK za|Ruj6}J^Pl%U6N&^G56p~tsC?*(OXb8|8CJw6h$Rp0yVAf{Z^m|t^Xy48=lwxQHG z>Lm4d>KtH!40u5mm_ku}H~?Y+kCDi@eddU{C>t2VA)j~x;)x9hh{JF^?-@M-51IRT zUDzB01~rr6_uw=R6U62it|oZ57cbUp=%m97h&dcFhhvyLj)lm6g%d`55_KM9fcz2P z=SH$d2{Eph7Zft^zuSmEH~HrTI~`mX_cS9p3OM31^3Vne=fpF)N9Y>lQ9^E z5HX>3A}hw`!s>?lySHx#6;q!Jju@T^+*z%|ve9Sc2woeT(`~AmSTb?5^%`sa()I;& zMmE8{3Z26euw=^CwG6*V0j8z(&H3p4)2H{|atr&8*tZs1W7c>1MFyBAmjkmoo;gxx zEw=t6lQ(2%zihg{S?q=@!_G%zX7qbk@!RIQ&!Qo8Hy9l&I%O<# zJtUPfP*>u*uRNJ+Fs0FKggW zGuExk$S4eD6a_b~@OlahJzrVkS6$_{`m%l2NN~e)Z|Trm#;@LNyV^Qr!)tU`0h~DOjC@e@ysi z^5mSH$H6tEWU|ea`YA0%SC^HIRn3^nNJm>N7tBGKEF&$N>o!gW8Yj5Vg5z#yMCQ?$ zuC;K2zg+oa&;G$+EuOSD5bb zh21N&oM5hkG2ZVD3GwY^5gyHw$oU0QISnWO9k3F)J2-D}S-r)elxcxcE|c%ut(CEG z@n)t&s*;0_;#3vY(qC2qT1*r@2-FJH4p|uwc#jF+&I~@hWGN#5ttbr>(G5u%*!i3+Q*utl3<3`wefKoD#M!oR?*lvEgbw^^U&C;?9{kc7hLzNo45 zru$24^tG)`c?H$A0armAFS6`M1?Oj|NA+hAsYhL>^^s|NTy zvNO(6Q$8)LwyI2Oo4X_3AE+;_wy4comsP(g)0YW63$HOQmd^a25niWaITw1#dOe-) zEJm3istKKAb8U;%1>|lLjwdW}=oZF;#qt zx$^k#cXk0lX|-h|(`PbaDUkpCh}3=ViK`7gW!`+R; zS1lV(KP}wmUSCm>?_PaBtlu0#8<5EB2`mpK!k*A+gmTKL=&w=KBYJ}WNl$}WH+ada zk~h$oK>J$8@R_Z}+U43!gKl{AsqJ+)$RsNy^6p>L;{Ye;hnlnTxOww6pq1G(2j$M! zYU{HLpW385!ctmf9lK3uug0qPI%3 z39p!>Ebi1=%AFy+E14q+rU`t z2gZQ=;JJCLE9M=V+_8GgA9M>JoDzm0;tth}`Q1bNf&BJ?alTlhRIrNVZ5B(w24sPX z<;|G-AK%kNH_4!)P^nbOhPRPRf@0t}xf+e>)ol{?zdU5`i!y16{ft2ah|HUK%wPjN z@f?{FY!iPFG7tbpN!{^@AI*}>|0K7`XD9FRMP9o|#S=a_Znl^<>%$4%FTr?MvP(i8 zM?X#Ya28JdlUyj9hy&`ih)`BYoAuGe^KqeUS4!6k39`D(ln)Dz;(8re3XTm-l!s`e z5`EoRB_kPHKRXv4-70$2m@bBS%qj##U{y}QxVmzLurWjx%ia4cvNNK(5fkYXy!|r5QRk@K z7Qe%pU7wkr=55K#ZSgvd=77bM?R5BC+Jr1mh7ig12t{)9TD)l{Q;-z-Wep)0SLtYp z6ORGnZ@i`B0yU^OGK6{Ev|Y5qmi77Q4x0x7r+ORx7Vnn{eEbO2i=$?-DW{ zHZk+EayF~o)YZ}fx=_65zk}8`4IdIo%dw=pO8vJq{>O+o)&+SEOXzR6k$6YI>^lCJ zQa@988UWO}1n7cs96X<3sO|*BeJocTFSpT$m1*9<9FL*=3vssvT6aN_ayEA&4 zf*Etr$NS$F=b5*krP-D94koF$@q7cXPJS?NWzX!Br1qna=fJyY3Qug8Je#ZM*~n5s zMi?1p0byhj12wW#2+zw=0qv^fHF$u0irTy2U=jdtt$G8rrHSwN$`9bQJ+>4AfAVN0X;0Z^Kp%m$mo+)!9g$0eS$OuI@x?wg%2 z_@a|q)(^efF>Lmj;KIk+JHMJ#71^8N1$*xRVCU>t_l);fPMLP~lAY04Cbwjjr@PF# zWwYzGx&;Rr+MK1Z=dx1^jlfuQ$r>&Pf7gr^g9^^{ zNa=WrCtA=LMe9~vfBg!uan^I!y-n7%B-OLJ(If;deHD66ZRmUSI{LnC*mdCE%jklB zHg}YOB2QU>cz2k38o>0byknNP_dYXv@69}R$sGYoUAl*M*m23j2=hKsfxstXp=iNW z5kaiN-?@q?QcJXCYy`rXya#U1WM%}gdZL#v_(>!5LOPy8(uwb`Sb!{_q~G8a!mA0c zTf=zt2T~ydMivgi^XTQE$8x-S(B|XEH!peQ?q~ERU=c`1=~HJLS@!tm@`{Hva+AjB z(LXfdIFN#JbPjDt=Z4l-qXT;POXlwTj-hjaJGOZGRzd9$B*5b%KM<7$-3Fi-H~kn$ z)Tdu?9Y;SO-|^MRs#`!}^UPhp2h!sf)NL+OE7AZnY2)VOK)5cx(&QsmQ&6_;;Cp}r zivbsV%3tJ95Ye>*b>#H7J?4a-lTEPZsLSN7d=F3)EfHj;@Dd-pp3AYHbVWomNKC2B ze2@H;5oMccgIJHbdyd(|4r2XI#_#n1(_u&^3=W3@CJf*~QaDNBL&7>!_9(D}QNaGF zY_=IF`pHM35+uxNX=apg=HayR2RD7^0nuxsjZZwUUQJ{+zOj~X>1g@7sc&n?{ePK&wN0D#MCK&e z6X)SqBRE550zW6A1;@?AYEJNIPc)|mN6xw;VyWR3Hz=G;EF@qHiBR2moEUMkKOpg> zT#{kp&Xihsgl&pGV_H#-nm3s%SwWAQCJNM0M7f9bvBk^o@t2?*oU|`PndL!m9MHQo z<*SAi@P?r?H)p8L=_-FoO`0Kmhqdh7{(s!Q7k{T>^v5MWr82v2^qAH(Eoaec7)M=2 zdVH*pX12&z%}@C*Za-s`ZLEP2-sa4m5vl~8^Xa_Y$7eZw-`apf$X zGUJ1>vFU4V4bIBd8gO!U%k<>4I*E4uf*sQbO&L57)oUszPKfVD-On$`DgmlKKX_#Q zvr$n2Kb->M{)?F>wfd2T&i5a4qCT?e1Ot9|IssP~z98{?VPf3r1O&Yj@R)q1b#JQg z-+0%tXKuLVKGkb%MYyC&Zi@yc!M~hT-`A7=I#U@U>5)KT49s`sN;D2QD!D&-<4D%3 zljJ&`xe~ouk^`;*Je)F`wdmM9XV=dZ)ZX#Lzg{`<`9q!Y`c=yc2Gx46zdWJw$v0oA zkSg`Cs*2I5q~(8j`>j7zNY!fAonFnT)w1%J>DSJaX{%>lVcT)Lq)}y}Hed=k+~3dB zp)k?~PrPc-v)K1|JdE~4=re-P#m)}&wGhCJ`dinW-2xI@&R&BGNSyd-)OK_V0s1DS z70P_w(Ro1tyk;>wzU3?!+fodD@~Xw*zy~`rRY$heIUIExBh|(jCfz4m9LA{0VVR7H z`Y}3R$a$0L6O#5x z?|J!ck?QIQnqf2^&8mj``)Xg?-=`nMOEb~3bK8NN{K|e|b9Xa(_vTMQ3>`;<&~Xq0 z>*1Wk%e&*t431l*aaD)U1 z;R<)S!yRr!gyBX3eZ|FK96~ld4YMEIm7&xIWOV>v(#FWjqQFqB;+U3HI^Eq zvLZr&p@c*kVzkW>AU_eB!9X!)@ex4Gs07qgn*vw@QpRdL$0i%ku#Ti;Eo#w~=+I)F)sn%TF($L;jmas-*FnZRT!zJ} z2RpO@Ex27z?*7hV7hW(VcY45P^vE6P5zws9>6`%I1;|U_i!Z3O@FBG3WtfA$*5<*- z0TY(0kmaTSFdvVI5I6YGcaaJ?y=L-)vJ zMtpi)Dz#+jjYgv*NvZ_HxpbpU24?W-Mw|vT0uE$qz&yD$$zj6(97z%-ItUzQl^VUs zrFWhK)6fwuo65=LJh}_A;B_$J6)6O*XU}RoMoIYU;d6i-oeQH~sUUzJ<}^6{DG3i& zRe^pFeEiZWDeDIiXjP|xN`c-u49dU#M2fBqc>^ljKFdX~qBFp!*@?dRI1g;=fVe44 zxW&LKz@Z}a9QgTD^i}7r=u43D$3G4PbL1TU)>+Ye8dy7_wXI$b1Pqa(|Oi&`2*$2>XP{vB*InZ>W0nC^* z2;Cfgb_l?I#^YJC;KdA$=)6s!-jgf=i!k%h#d-dX<6@sn?I zt2(4*6ZY+!P{v(ZH+OEw17-c#=&+qThjp^KdCvLsGuZ9iorkJANBW9q&ErLW`Z%7W zCv@2)O#GkAp|88{1|dyAC80FN2KdW1<0PYv9?%yy<4h992Xy(yVSd}U4|HTc@a@_; z@?R~UH7p+{#rs7roJZ2HIlv#->^*UxVb1Sox+0E?7)cQDc5swHW0&>x#-(eyaUY6d! zphZah5tluQKR__Fe&I*%`%J-qa@RuiSxmwWey%vDMS)^$FkmKIcpj%f?YRAzeU`XI zJbbgo7xYSq@LIxjUWrQid)m*!{qR`(*%7Yzze>#a5=E^f=Hnr8PObhxQ5~h6@dJHu5V~=!BLm%>4Z@hutU%GT(!rvVk z1rBwFH-r3C4sS+=*HJLpo8cwDNd*~R?w!nD|Io?dOMAvF9iG`EPyFY6W`kH-a7$*k zj0Xl&k*_jGZq7^h76?FLG$l#QmU5tB6|4lxE%|W_{-t>Q?WC9pIlb1hH!@(0xmhI) z$CP{9jvQ%Y(UG=$?`;EZmHAgLj}^=-!{FqGp1n$BCX4m_#_CnC5_A+~kO>e2WhR z_yd63_wI*BMju?gqAI%B%-5BHYOt0W$bfrzq;q}JHd&oHg8%rG5E~gho7&l z;L;2xb&|hv{<8PCoCDgi+aG*r``DXjPKmf|M*T43y%$`0E|bQP(!ZwTWmlRe#?uo2 z+(hR-ml;c2Jy-PEmzZ`qSOz6AoG#NI`cbTU@A*#%F%Es9UH$r=SG0Pd94&GyWN z1fq!w*la6el3eU+AuUO+EhKn$R<*C1V}m%T(x;nUg1a00ozz>@TOTR*HcedJoO%ee z0CRB={HJy18Fz_cFMjP_%xoF}L*S#C=-&Uh)`mU6MQ)&v_84%^*BArIFXMk+chT2` z$j1|Jl}c)lg>M;Ttixk)$e_dJU@2qo61U8$_X}dn?leue_@pkZI4e&F?$kmS@i#pnLZfA?5vs%5gbb&>9I7Q=)JL7IRQ) zfY2a?oL*a7* zY0N4u%L(nuafL#zoL!-uveK*(!#{JZJ90|yId@XjVH~)`kTR3p{I8`O zcir*kmG_oDVL`7sje6bQg1k*HzQ{*_^u?aCckt8f)7$C<#TQ2xy*_AO{TCZjJaGwm zO8!Dj>Qai+%#nPX#g;l}i2=XX>ONVSV*Mc6v3pUvJsq#;hyeb@-eUKd4k`IO)>Mi_I8(2UR(x_`kMh);Wqcz2Z3J>kRd?mLgoS7M}$-P2&ICzcWB77(2XM98|#0WZHyjOP#?7FaN zbzT6ecUDfHN%oBJkBguWK4|L(RuO{-{2HgOYG_UpB);wuih0Y+UjNac}3GTOp(O(`Ut-LAWQ5xKo1O|QlATSMX zI;Bl9&fTzKt}#V>s^fA(m1uvUb4?X9gzP=X6yD?2AOLIsqJE@{1Q(DN<<=T-qZd^g!iFAkF2Duh> z)j*_IcQhq_E!bs)IgcQ0{3mrI-!AA8y5MKm~4Yy|#aHv<01YfEOz ztnxxRkj+^{?_eTiCpS0G9TU4TzU&CtbL2m4CDIMvIO1O<2hu!gihOCy7TV|I<(fA+ zc4K z6EDyanVb$3<1n!VBW#HTDcAq)Kmx@;OfPby1DFk3CXD_8Q zE4+H^%9Xdm@N=XV&(Ry~Uk{=0AJg_AMb{Ig^B~_~TDsI^K);W^xe?6YxDo9`KbIZ< zyzRjTS-JJk`!(Vi3@4@0+q+fWkQ-xz}1a3a(E3vGz|%)dpLs7ns9DQVxMtX|NqCB3h! z&uMX&i}Y$jJNm~{pFY2Q`*maX(A8Tk$w2jd+w*%Kdm}a~nFukd$JJRr^Wedm%b#P* z#Lh=AdyZ4wcE3iQDH&^qX|5lvy5~T~eJ=n_TE?2GbTs}c)(ycT(*4RF1g#I2b#`?< z6n?O*hYnF6in5+KX9``)l0whfGuW*$`A_H3i#ud8FD61ehV`6Jhn*DTPhR}xdG-Ar zaw|?K+c~`F{5tHU7=QBOKbdFYHIB}+Wz^@PnK2n5N4IzNfuO(pBMTz%kywp*J-fRF zjMWE5J^-G_(EE>U{%pH~P!_rgdUT>#h&SyKBR)NkY$k{2==C9)o7j zS6dDN{bO43vmKu(KJ$jb@P?St#N+fvN2KRGgjaMzgj*Z03q=eUOPxS2B@EH$6S*z3 z#pjQ2hC1SaP4RCdEHD_*hq4q|zFhts`Y=Z0|4A8v`#HHhA1CezcUK86z!gRxiZ`AU zsUV(*9s@aD?IT7$C%&cgyX)pv`fZ4ONaP{Az|t79BET$f7aKs>MOqU4g4oB83JI-C z8N}#4R404}nWGmbcVYq?;fVb-0XmN{qfA$KCfZ&My4uA@Ztd=^_yiK>Oz7{9 z$0sHMt1L6YAEnM0B)YG@AXOc~zQSr>3->X3 zKG-dG7j?loDm10w-{S7Am#y7&^0nDVfc6o0!-|u$tGA@dGZi*-PO(cZ)8vj9?9KHR z)s5rB!O4|HDXNd2IE#KtPD{3#p~g2n*UX-nfBN?3lFjI7)3cAP9~v(8?9H8?+fY-? z%MYhd{1S|}^=lrvXGEx~Jybcecue#1IR%fNLDARq8VYk|spDBq!@LD?x%6t>c3bdz zB1Diq7!kpP>Ymeec2M-$Wu{t*fL4g&@!$wH5errbn)Pw0E`kYXph`&W+t!D9sM9Vi zDBC=3SKVO14oXUuBnbwMR9ZZM&!{e)qLgb|)_wEPj2RDogYaq9@E?z0vJNb7u3Ggb z`sVK6Jc6cdo4@K!SllS%<&IpBKa{_xW!_lng#Kn$WioCPOf_;rS`+pc3TSvN6MS0t z*70wKHuJMcCg?o+=FL@;w}Aam{{C*9GxdQI!{`!mbqrKS?7^*oS1dt?-=V|5E>oq1 zu)YhAgZgfvKcec(ke|d}T3=dP-=36kA^zQUl_BcXW! zM7%tINhKX(1d)`=bjXqPSDvVVrGvzZn(efjl=y+ zhRo#df$+Vb;c%oIZyS@{Sh<&l7vCw)<|n-D@#tGHHxc+r>kz?(@boxaT5B>5&DdI8v3a! zMc31rK7HK#CayO}`2LPxU({;N9c^Z<_TsNQFkkiqb$Enx#0-va&R9 z^3QHyBb#4nZ>9c?zy$(>)YB)E`0iX$8gb+I!-V%U|FSHfi+(-B(KZ%|Za>4s3gw2y z65XMKS4gp>t~a*|Gq z3QTE6gW3kJv0-SA{+XMXT4+IoU~=?Y9$F2mbxySsrg7Yaj(N#W={NEM3%AUes=3Cn zvpbIfIULyWd2+hyGW#Xld3q3B4K=9}^dsznL9XeILGIA?#vN~GdZCSTkBC}uNzABg z66yW?wV0i90aMKkWjcWb=s^l_VLIOz3<4v-WH2AB1W$r9;1c*6M4=LYK7uIbrg&mz zo=Cfiw_=Z55~N`Yf+7*q5Cw#Q8Tc}U7zm9gww+nx#!D?B1Z@DAG4E^^bL3pqku$+J zCyR^Nu|!$bibdq*JedTJDCi5Z z#JbBOid2DMBHF09#3Yd~1Z?yUMGAEqg@E`@6G6Ab1+)Z!ksL|Q$RbJfG>Df;86LBx z7}uT`JquDlQx@DXMZ~U*JQ2j4hhJi$?PMde+n}3?`55q*ux`OGF^lnT9{)UkiBoj- z;gV1<&^WzBzy;tefy^Kt6MhqYEd|!|sHIMcN6iWuk_;RWi zyW}~{BbX^FlM@%o!ci~o68enORO}+P5(0h^RgQQ`#98qH5kA!@mJ)m-b?cM;5HzIV zI+X}+L$V*hktt?#nQClC{*bMOSq1G&RAa=T7rp_qohcascS$PWGQ7T}rEU7()}$=D zWyJ{iqtqaP36Vfyqd7Vv`diD`qA@Q3$Qz`RWOa%lQ>3QZRF+hyRc}-X{zipNrWpn^ z+^M|Et7f4*TdvVqszGRRs@){j4zZN8EaU_}rKqqtYjr`ztlhU7b4nZ`B^(L-)B29i z1iZjO2-tEb|-IWoX$^HhAQI|B|^%cROizgz%Dz15j&Q9GEGg;N&rsCOBpJs?noue?BwYIA-+ZtpJLuyJ^TD2C*Uuoa}jZ zA46uo*P6_JAl0#~N|%)fl2F^%4?OVo1A)17fFMs>pDyEg^rMvJ;CqmhNE8`c&|TW> zGL4>P<@|tGSl1?CdEg{49dfX&u1aGq^`-NiAcqo}pp_b+CBZ;J zo>Holm8XFbtghMsMnJj0lYLVo@7xgZjZs;+-@H2Q_*97nrpuIhasz;@VKg+tndq^) zda1Nu_`(GMxT9Q>+5lLMCPytxhg#*^|MePd;u}}xxCiK1`50ed!*;DpkR=<;RXpc2 zC4?JO`pHyIhj#(bkIqO4b5$B?eu}d=*J2nlXU@JkA1=u6-?v7RwV?g7BHf}ZT|5xN zf}G^!>_W&M8fn(2E95eBTAEC*HmcL4%2fQ#G&N8@!0*ltIdm?0vYywo9N>XMlEq3m z=t$3ODP8N=TGD`3o1|vd(3{HXz2*KIl~kjWs@b*ZAER!Q8(4LcMy*aw(v_?&YjN5g zP!6+sB_M7jagIq+x6WRfmF*uWgGEUi+>26`vQ({JC6lMxOj7pov}F4X*Uf1LZbi=K za+O`J4$stT$heRhud=8Jl5mhY0wK& zOxX<XC!%(AA`z7bFmsB$~N&^p|Cl8kze z=cF%B?z1B>&#zRh9H>W4c*M;4{SJ@!Et@iHM15ah zx|W4nTZwN-pHaaPaeafB->P(qoLS4vCf-h%o}PRN>R}HUV?!}!Lom;d=Xf7S7m7lc zD1j*6Ks%?8+dCUfqQ0F70*yKT_?6o(>5Ui2WuwQ?+n;XQ^eHF-4WNXCq6@A^LSCZP z+O=A6^W0iz8eQI}IY)?A&2cm7cWLy-=Qq;xd35mg|-fS-}!rxzo?q_A<&w-;1KONgFp#5<`2=pYOaKQsh7iWgE9C zlZm+N7Ru9+b(l}*?9~*0%1N1et5p@7g~-*2fY)Jq^%bfJFHrmVTL0v#E3H+NCszsK zs>%LZjv;((v=u}|VScA*_kI*b{Iy3(GL|MjTFdk*Q%YBvVzP){MKC3U>xzn5dY*yQ zMkuiqy^4s7!@$;Bf3G4$n|hWJ*#9re!{TM_|4-$Cm>c~+D-Y}{j|Gof=6_NW=`WXp z{kPsvKj1GLXdn690-)Hyh@KIMn z!E+zFl8?#p@XKKD~ zlHw7IA{`7OPGBQE0|=fi5vNG-uR}Z|9NURgu@T}#G>UuhHJqOK%oU&F7!da(+fD@j zI70M^KtfT5_MiwPy@)&z!_C1J!*xpUk`MV}J|4#QtX0pt>74Nzg2Y-nO+J^SyQ;*? zt^@yYKl3|cS>ctqUq>apcmx8ldsn4c1Wpy&~R|DpX9H%(U;tm1qS*7eze6I;7%8C^t?(-;) zot1>YX+LHZGlN=Qc7YKFy256knWxS~@R&3aUF>bhs9<>gI#X5CD-W=vICxS@*G^Qa8`WyqAC@I)mgE*|cH{Nu$L99R#yHc*1z zF0bj+qR|52SX?4Vr#(MSD)?HI8VDs>^-ar~>a!%=?STP2EA8(MRlMdr=90F>Xy6D-zZA8C+0)6oKV<6`-kiY)#&n^OuiM0eC_*C{we|`!7 zWk-i(gLlv?=trEx2P^Ld>cfXo-S)pf&~zVq|M?T>qeo^w{4Fc#iGjuT;MFj1$@ik| z*I_K1oZUujW{TO@jY}0Vs5)ASWRnZ443WuI9hB5_csjsiCw}kf(RgGNNfwLdhIS{O z3_?eb#_vR8aWQ|WQbN0l9;=_JU`8_wh#ZDU=m^%ju1ogYCGo{;@2(399}-W(#pPMz zZVOc^3=~^z9N#-a(u!#(bCpm~20W#%%z~5)Yp1gtY|5%sBNLs${$iT8W||57g>D^I zRuvRf6>z&I-M)9z-rFY)Tr#7X)7R;_<{3){b}%=J<-)`}K{U)paF*?V?}jGg75Jqz zR5oZ(84YL)NcNpmYnD|x997F|6g%E|`gy_O5T1YfogIoB#wN-)^O>Qz*J`0)*2mQy zx?NOh^+7k(C2Zi++aSdH9e7MzY{cqL&6*szYkRyn2_Lz5^yo#gO=yvux~_TArt-F- zyOs{@WCkwXHPm3S7|0bDzv3gP11*|67cD{^3CK)5*o{ZTZonrXH1$ne_vDY8HvRbI zx-`L&3sA*t6?s17%dKBJ`FuiT)%%=t+q}^#(poWUc963tGXSFtN;C) zRD~+q`)~N`sdee;>rVZ3LrM@%h@PibfOPmydSnXnqXu`+h#gRQ+=&hm$CkS}l zR*09y^7(QaTkKKG@Tp%hFCEpdtg26QMv8sL4%GrlOMNslYCd|qZs&9bFWEkJ1~+i%J0Cxuns$ZFqE9z=>W0!6|d zGk*4!p}M4k`j+LRKvvDHw&^>;lntf<-TORE_!}271dNL`i&L}%Nd|EMMnGEzH;X@J zA>vFpceO=;ERl#ed(s*n5VQCbwnl;r5_E{_;$0}yd`wkI;3X{KKSc;5vKd3WjKEWTUJ?}otSb&l z&6{GlBSEq?$}KR$EzY)Pp8l=GV~`NoId-z6+|ObVUj+ z-*^|zZ>Rwya|3t@`u4U=((Yv?1H5kZW@KlPpSLX^;FceF?|?3KWBuF%y1yQn8=cX( z-89+)Umr9?9dvlB zWDKJf1M=WK{@S&UB6P_c8tA=nVPKwgggmI%nJDk z9x)7bCAe!*mW$xa5@1730b9lSYDit z22@SPW4TDH0u@PVM4{a3mN2D7oqxOcEILfQqMW*;rQW{s;mFqM!)M#;TduZ(>4(>` zsuH)=?(`bd-FCM%Pn}m@nx)aSrnx3p*{yEjh{~JtDivUfczA@j>&GmkGz(YH;AG<% zQD!TykgM0&3;{AeMc@+FnGnQ}0S7f=5|!0C3+om=))F$70%Cx1#3+~0GBSYK!oo`S zfOVOy!c!3D*ui0RE+e<3wiI+^DEnbxX@i8+r937Sp}RD z9WuHa@x^5a<|G$o6qdZMJ6H!EW2KRPc#X?XB{;P&0I@)df|B?&t&X5qII$ zh!3oBw}j^GQz&fOTmdr9q)E5Q$1a^c0*wL_N6el-TE1fj`@Uo&525 zPCyKbycwt~p@cBS1X`M=eURO^G^>Kl1>y0*;kEuISRNc6IW+Gw9AFwNY@PhUvIS^Y zc!Wp_=iKRp&bbHLV|HlbFJWKYMLoSvWj0WcB#Bk@>)4nIQ#uf_Rtcc5S;&xRC>SB_ zfR+q38$+-Zr;idho@xyyq8}fOPa$Hr2C)`rDf){?Tw4d|;z|R^@{5=DE!b%pZQ9-# zoiX>oUv&rO)^AMJVPchH8nFC%M^HUvP_Vcj)2FJ(%`THws@f#4^5W>DvT#Q~>6KZz zm9JsSR2x34uFCS)a;bR(6r&A0b%S&KBcyo)FI?~r40+L|BFEZVKYNp<^4O`#6Van% z<{!ZP5?q$=oqJ%yki5l&7^4opCYWhEcBrxlG#IVks;ydWu09ogLc*Cg(4;pOSAyB* zr09wPi@e`J3!%Ny2vocBYuo=4$OR*78YZAO-QEEuWn|{d+=kxv*LLB-2*2hSCYkb( zrWZ-IO+n*f8S^D)hcywN+(6e^43pYBpJA z;M7BbOs?9Z)C2EJQqwA z;1S(81T3+-cvxpo$Qx0aOfbV<8zoG_CJEUz;q-kSqi(*hYH-OpsZ46P%P4*2kX|k7 zLAxWN(bGoPNb=Ep=!aLAFMkziK_1Z3(1$nJiD3IRI`rsILq0&;b!x2+EI{{>d(x-61`TzaT;Ta&1I;Y)-=R5K&w?~v{JuH!)o*V4f*?i z`wFYXN#*%c-M>h>_tjTC*EeSL{_8i8KtZ!!-=N~4ish7QjZ&B~v~GH;TCD(3Im~F_ zwCTylGrRVjCaKiyze>dw-Jscl=?34BjHB?iHldZbQ=Jk<##sc93 zgwREs;L(Sg1|vIYJA*!jN8!F-qfUoP<0W!H-md*YKnNjk7zAv%?QIf~z;^ltf;AS;p|0xSR$i zHRg$O05cNz&`3|O0P&qwKBit4ppJH_uN0b!Q2oqU$S11Vs{sXK0|cV0*al4{AsE-> zH8|8%J)KAdiAo1vo>TZ@=%;Ek4(cErZV$RW!Jx+-xz`DGUY~ew4<kAqbqwV$IY(9jp99$?1<$(qJ!9Ab1f!kn;`1&9u zZx2i+?_9hX&@!~r7as%o_ti0!1=a%1nv3lh*KmqO3nv_WZ~4-9?wTAGNHqQo__ZA8 zTj#s;`FqfnyIZE0-fX_fHGT2jKzh&fcjEXNi(7D?nRSif4pO>kAo{`-v=JXn#%|>t zU<1T!w_u4WzvC5XOu0Nrw2r*2sE1_ZFfApDMK-|pMcdHNKn_*`IXdv{#*NQz1bHe> zm6h*VdbS2AY&K>3nDqW<(cja@;9xpX41Q~gCqD}(k!Kc$9lWt>a7)>Q2V8DPxG)ng z2l5wQ#5w)^;tSx=#z_-5Zk#wN`d~_aX0{`_#x$7bqO#el&!V4fI539fXR1kdWM}55 z7;S33l~X&dW?yo$Rj;-s;D`xKfC*7;)%ec67f1v(%y1Xb5Yarc5G^4irh9ls#h3UP zC@Fx1cZFKFU7|JHuM;8PJ89FTNt=LAp4lf|?q0KDMM_F~pG>(qtN+M5e76^w%`$U^ z`Sg;Z_$V`*PnYZ*)jw;{%jl<77fS*`yG5_Lci$MCs6BG zTep4%!cRaUJh9`Fg8(fS4RD}0LBKJf$d`fEIAS{LcVQYZoAfyz5K|ks-^~zA=n}Wz zVNyejnXwQhb%=YLpErpbTvWX-P~tDfD+U}Tux7mlcp*+eJ`*GG@1qZr(ck+4e*-!` z#x!AB9)N>9BTBSZa7%vrhi1e3Y3^eX^zCnQ%(pMBOsbv&!WZ`%LQ5PMRbL9=IrX4E zR`50e+e6VG9kbyxMbT@U0RU%M+|G`0Z33RQoJnGqV6Jvg0>vY%PcS^6kexN`-6D-RY%r z1y`mXz3zRy$a)@KdVk%z_dymI2(sS)^ac|Q+-P-^;y6aa0n!C)HcXI2UlbPJym3O` zHy(j{jY^);a@gJdH_dowAFl&_(gHqXY(1z3TRjLK0 zGF7x(La{`Z^WCz*Mj^S@H(IJuB=eT>rJC(} zldnG8H@U`DQ6|I7Cv@58qYIdydZyp&vN|NOBtQZ&171(>98aP)nb&^Ol@kbh+( z7zGA^+)3z9YF0O53C#apUnyq%06)ShSPJDY_0Jtznj*-29>|qvLP4*RvQtJVDst0n zX89+)^_bf|a?m4S{Gy>~9(r}%HRkfk>Ai6LgSZ9o$l<7pD^dT%^HY!-ez*z2Bk;3* z@OJ}7NTC!0dVdM@P;Y^H{^Idh4xw*n)sEx1akaC6@z5*BZ$jrDPE$XQe*481(l?%F z9|A?-{)5|^SKPYd;Onm)T)B1SysdZgsSEe4o7BEDXJ`AQb$b@hUj?N5z6aH(o+dpB ztn9qficYMp990UYeep*yt!!k!ThPha`b3Mr+Yd}G<7XHWeQoNPrFX7=#ybsMftUD8 zckKED99vqr=haE0?)_==$YnrSdbIDup!w(F=sP^&OaaTS!D&^?9(fu(F>>0#f`=Dv z?N~Er(#XM|Y&i#q-2U>*aamhL5dDl0T!0(yY?`jyGxR5JPBRA8Rk~{_5qC7Bc0e~H zI_YKvXo}j&rlllYH5u4hny{1XX|m@!MID&}!ZWCQZ<5A^u-}dUj(oCOww= zJlOtqVfDLU`pol`eM?>(A&gIyoMyL75j`vV)+)si6LcR&Bm^xlGIeQoeo4?qs4m;9y@;5zD0{e zIZCd?#{+$8@vLc)O}p;c9GNPSYm}x;WU8t(rRp?tS*VJaYqU@=t*X-6^eTzaubDUD}TjxcPwZ^+(^-b^BkI46?%M=Q$N+!&m8QHgaeTp8F zKGlYY@4xF-g=9%ZI9%D%vS;>~RH-x-u;T};nKdm?S{lS9=2(LZHqa8wE2?-c)Tjk{ zzbb8-p0Dbsv!x7Kv2f0a`iT?k8=CFX6rDD8dNmjcw>8Z^zi00St)kc`Wm(A`vu6$* zR6n>8P48c`<%ub;?cA}$p8*vzxs%HW+?KVnV`xF9uZRaRj_PHB<6 zAX%m5%EINO&!k;rB%etL_E?BnMkH*mfZ2$r180VpxX-1|i!Gch;38-gPz1OMmgHcL`C@{S3kc1)_tPL;uR{p@~db~OZ3`mUJY zP*hwqX?RBT$e4mWbMmzO()*yXU<#8c|8-(INVK%(CD??<(UrSxbGt&W7^bB^hH=UF zx)yazf5BQkW~@bBS;rh`V?s!XrFgoQ=zu99%thKGEOQ+oi>M93)RlDWurv|!+Y~#B zw&3Ae{iMRyR!2S>i{x^(xhsmoRQ?=VtJz+HFPRsY8s%M^UcGk^Ggo zwWG$q7s%l!d=^_{5%5RxK+xvk;U zj>}Zf-^#X%0AV;eNz>XY%G;$3-$8YY$yjE@{bT`1JT5-2H5~|I?u&N?cpa~E;r{@i zg)dUg`e-C6DSB7*F1gyE!P7O81UR~lmZgy9m8H@s#=?|d?^z{&7BxIQ5?(@0F@qr?NcNeDx+fGJsDQV6o_;_x zep)#5QPf_Np)|5w67NzwG*-2S-}B%P;2!WbxChoIz

*z>DrjADqxXS}JFOTA?xX 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 z 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äY>7uxS6S37IVP_>DW-kg%dn+sFHLnFhvXTU%&ox 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 literal 64464 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 o-IM%8o*ehr=#Iq=Q0BvwUBdJ3D Date: Fri, 29 Apr 2016 15:40:01 -0300 Subject: [PATCH 006/169] New theme northboard_cb For circleboard by kotiakrobaatti --- stylesheets/northboard_cb.css | 249 ++++++++++++++++++++++++++++++++++ 1 file changed, 249 insertions(+) create mode 100644 stylesheets/northboard_cb.css diff --git a/stylesheets/northboard_cb.css b/stylesheets/northboard_cb.css new file mode 100644 index 00000000..b665c569 --- /dev/null +++ b/stylesheets/northboard_cb.css @@ -0,0 +1,249 @@ +/** +* northboard.css +* for circleboard by kotiakrobaatti +*/ + +body { + background: #191919; + color: #d4d4d4; + font-size: 13px; + font: 12px/1.5em Verdana,"DejaVu Sans",Sans-serif; +} + +a:link, a:visited, .intro a.email { + color: #60a0dc !important; + text-decoration: none; +} + +a:link:hover { + outline: 0; + color: #82c2fe !important; +} + +a.post_no, a.watchThread { + color: #60a0dc; +} + +div.post.reply { + background: #343439; + border-color: #3070A9; + border-top: 1px solid #3070A9; + border-left: 1px solid #3070A9; + border-radius: 3px; + padding: 0px; +} + +div.post.reply.highlighted { + background: #44444f; + border: 3px dashed #3070a9; +} + +div.post.reply div.body a, .mentioned { + color: 60a0dc; + text-decoration: underline; +} + +div.post.reply div.body a:hover { + color: #82c2fe !important; + text-decoration: underline !important; +} + +div.body a:hover, a.watchThread:hover, a.email span.name:hover { + color: #82c2fe !important; +} + +.intro span.subject { + color: #60a0dc !important; + font-weight: 700; + font-size: 1.4em; + line-height: 35px; + height: 35px; + padding: 0 5px; +} + +form table tr th { + background: #333; + border: 1px solid #444; + color: #60a0dc; +} + +div.ban h2 { + background: #333; + color: inherit; +} + +div.ban { + border-color: #800; +} + +div.ban p { + color: black; +} + +div.pages { + background: #343439; + border: 1px solid #3070a9; + border-radius: 5px; +} + +div.pages a.selected { + color: #ccc; +} + +div.boardlist { + color: #aaa; +} + +div.boardlist a { + color: #ccc; +} + +table.modlog tr th { + background: #333; +} + +/* options.js */ + +#options_div, #alert_div { + background: #44444f; +} + +.desktop-style div.boardlist:nth-child(1) { + background-color: #bbb; +} + +span.name { + color: #93e3ff !important; +} + +span.trip { + color: #ffffff; +} + +span.quote { + color: green; +} + +[id^=thread] { + background: #1C1C1C; + margin-bottom: 1em ; + padding: 1em 1em 0 1em ; + border: 1px solid #333333; +} + +[id^=thread] hr { + display: none ; +} + +html body hr { + border-color: #9B9B9B; + border-width: 1px; +} + +p.intro { + background-color: #44444F; + padding-top: 5px; + padding-left: 5px; + padding-right: 5px; + margin-top: 0px!important; + display: box; + margin: intial; + border-bottom: 1px solid #1c1c1c; + box-shadow: 0 5px 5px -5px #1c1c1c; +} + +div.post.op p.intro { + background-color: #252525; + min-height: 30px; +} + +span.omitted { + color: #707070; + font-size: .9em; + margin: 5 5px 0px; +} + +h1 { + font-size: 3em; + font-weight: 300; + margin: .3em 0; + color: #60a0dc; +} + +div.subtitle { + font-style: oblique; + font-size: 1.25em!important; + font-weight: 400!important; + color: #ccc!important; +} + +tr td input, #body { + background-color: #AAA; + border-color: #888; + border-width: 1px; + padding-top: 3px; + padding-right: 2px; + padding-bottom: 3px; + padding-left: 2px; +} + +#upload_file { + color: #ccc; + background-color: transparent; +} + +div.blotter { + color: #ccc!important; +} + +div.banner, a.unimportant { + background-color: #60a0dc; + color: #000!important; + border-radius: 3px; + min-height: 25px; + padding-top: 5px; +} + +div.thread:hover { + background: #44444f; + border-color: #1c1c1c; +} + +span.heading { + color: red; + text-shadow: 0 0 3px #000, 0 0 3px #000; +} + +#expand-all-images, +#shrink-all-images, +#treeview{ + right: 1em !important; + position: absolute !important; +} + +#expand-all-images{ + margin-top: 4em !important; +} + +#treeview{ + margin-top: 5em !important; +} + +#shrink-all-images{ + margin-top: 6em !important; +} + +#expand-all-images + hr, +#shrink-all-images + hr{ + opacity: 0 !important; + margin: 0 !important; +} + +#treeview + hr{ + opacity: 0 !important; + clear: both !important; +} + +#options_handler{ + margin-top: 3em !important; +} From 199931dc1a609503932848be9a276e1d2275d881 Mon Sep 17 00:00:00 2001 From: 27chan <27chan@openmailbox.org> Date: Fri, 29 Apr 2016 18:00:33 -0300 Subject: [PATCH 007/169] Fix default theme and add Font Awesome Icons --- templates/themes/recent/recent.html | 2 ++ 1 file changed, 2 insertions(+) diff --git a/templates/themes/recent/recent.html b/templates/themes/recent/recent.html index 31c839e7..75880484 100644 --- a/templates/themes/recent/recent.html +++ b/templates/themes/recent/recent.html @@ -7,6 +7,8 @@ {% if config.url_favicon %}{% endif %} + {% if config.default_stylesheet.1 != '' %}{% endif %} + {% if config.font_awesome %}{% endif %} {{ boardlist.top }} From 7c3126866cd291d515ab5cc83d4635c3c95c6d85 Mon Sep 17 00:00:00 2001 From: czaks Date: Thu, 5 May 2016 06:43:22 +0200 Subject: [PATCH 008/169] ease the migration process for the previous security patch (by introducing another migration); restore php 5.4 compatibility (introducing a polyfill system) --- inc/functions.php | 2 ++ inc/mod/auth.php | 10 +++++----- inc/mod/pages.php | 18 +++++++++--------- inc/polyfill.php | 28 ++++++++++++++++++++++++++++ install.php | 4 +++- install.sql | 2 +- 6 files changed, 48 insertions(+), 16 deletions(-) create mode 100644 inc/polyfill.php diff --git a/inc/functions.php b/inc/functions.php index 515e3e55..3f5ed3b0 100755 --- a/inc/functions.php +++ b/inc/functions.php @@ -18,6 +18,8 @@ require_once 'inc/template.php'; require_once 'inc/database.php'; require_once 'inc/events.php'; require_once 'inc/api.php'; +require_once 'inc/polyfill.php'; + if (!extension_loaded('gettext')) { require_once 'inc/lib/gettext/gettext.inc'; } diff --git a/inc/mod/auth.php b/inc/mod/auth.php index fa1a0f4f..d877b89f 100644 --- a/inc/mod/auth.php +++ b/inc/mod/auth.php @@ -76,20 +76,20 @@ function generate_salt() { function login($username, $password) { global $mod, $config; - $query = prepare("SELECT `id`, `type`, `boards`, `password`, `salt` FROM ``mods`` WHERE `username` = :username"); + $query = prepare("SELECT `id`, `type`, `boards`, `password`, `version` FROM ``mods`` WHERE `username` = :username"); $query->bindValue(':username', $username); $query->execute() or error(db_error($query)); if ($user = $query->fetch(PDO::FETCH_ASSOC)) { - list($version, $ok) = test_password($user['password'], $user['salt'], $password); + list($version, $ok) = test_password($user['password'], $user['version'], $password); if ($ok) { if ($config['password_crypt_version'] > $version) { // It's time to upgrade the password hashing method! - list ($user['salt'], $user['password']) = crypt_password($password); - $query = prepare("UPDATE ``mods`` SET `password` = :password, `salt` = :salt WHERE `id` = :id"); + list ($user['version'], $user['password']) = crypt_password($password); + $query = prepare("UPDATE ``mods`` SET `password` = :password, `version` = :version WHERE `id` = :id"); $query->bindValue(':password', $user['password']); - $query->bindValue(':salt', $user['salt']); + $query->bindValue(':version', $user['version']); $query->bindValue(':id', $user['id']); $query->execute() or error(db_error($query)); } diff --git a/inc/mod/pages.php b/inc/mod/pages.php index a07de4c7..8b6f73c4 100644 --- a/inc/mod/pages.php +++ b/inc/mod/pages.php @@ -1734,12 +1734,12 @@ function mod_user($uid) { } if ($_POST['password'] != '') { - list($salt, $password) = crypt_password($_POST['password']); + list($version, $password) = crypt_password($_POST['password']); - $query = prepare('UPDATE ``mods`` SET `password` = :password, `salt` = :salt WHERE `id` = :id'); + $query = prepare('UPDATE ``mods`` SET `password` = :password, `version` = :version WHERE `id` = :id'); $query->bindValue(':id', $uid); $query->bindValue(':password', $password); - $query->bindValue(':salt', $salt); + $query->bindValue(':version', $version); $query->execute() or error(db_error($query)); modLog('Changed password for ' . utf8tohtml($_POST['username']) . ' (#' . $user['id'] . ')'); @@ -1760,12 +1760,12 @@ function mod_user($uid) { if (hasPermission($config['mod']['change_password']) && $uid == $mod['id'] && isset($_POST['password'])) { if ($_POST['password'] != '') { - list($salt, $password) = crypt_password($_POST['password']); + list($version, $password) = crypt_password($_POST['password']); - $query = prepare('UPDATE ``mods`` SET `password` = :password, `salt` = :salt WHERE `id` = :id'); + $query = prepare('UPDATE ``mods`` SET `password` = :password, `version` = :version WHERE `id` = :id'); $query->bindValue(':id', $uid); $query->bindValue(':password', $password); - $query->bindValue(':salt', $salt); + $query->bindValue(':version', $version); $query->execute() or error(db_error($query)); modLog('Changed own password'); @@ -1832,12 +1832,12 @@ function mod_user_new() { if (!isset($config['mod']['groups'][$type]) || $type == DISABLED) error(sprintf($config['error']['invalidfield'], 'type')); - list($salt, $password) = crypt_password($_POST['password']); + list($version, $password) = crypt_password($_POST['password']); - $query = prepare('INSERT INTO ``mods`` VALUES (NULL, :username, :password, :salt, :type, :boards)'); + $query = prepare('INSERT INTO ``mods`` VALUES (NULL, :username, :password, :version, :type, :boards)'); $query->bindValue(':username', $_POST['username']); $query->bindValue(':password', $password); - $query->bindValue(':salt', $salt); + $query->bindValue(':version', $version); $query->bindValue(':type', $type); $query->bindValue(':boards', implode(',', $boards)); $query->execute() or error(db_error($query)); diff --git a/inc/polyfill.php b/inc/polyfill.php new file mode 100644 index 00000000..ac40a00a --- /dev/null +++ b/inc/polyfill.php @@ -0,0 +1,28 @@ + $i ? $i : 0]) ^ ord($theirs[$i]); + } + + return $answer === 0 && $olen === $tlen; + } +} diff --git a/install.php b/install.php index 5a2d724a..968c41de 100644 --- a/install.php +++ b/install.php @@ -1,7 +1,7 @@ vichan upgrade path. query("CREATE TABLE IF NOT EXISTS ``search_queries`` ( `ip` varchar(39) NOT NULL, `time` int(11) NOT NULL, `query` text NOT NULL) ENGINE=MyISAM DEFAULT CHARSET=utf8;") or error(db_error()); diff --git a/install.sql b/install.sql index fbf220c1..7e661450 100644 --- a/install.sql +++ b/install.sql @@ -132,7 +132,7 @@ CREATE TABLE IF NOT EXISTS `mods` ( `id` smallint(6) unsigned NOT NULL AUTO_INCREMENT, `username` varchar(30) NOT NULL, `password` varchar(256) CHARACTER SET ascii NOT NULL COMMENT 'SHA256', - `salt` varchar(64) CHARACTER SET ascii NOT NULL, + `version` varchar(64) CHARACTER SET ascii NOT NULL, `type` smallint(2) NOT NULL, `boards` text CHARACTER SET utf8 NOT NULL, PRIMARY KEY (`id`), From 97681613274c35061bcbd8d14e03600d5fb18345 Mon Sep 17 00:00:00 2001 From: czaks Date: Thu, 5 May 2016 07:51:55 +0200 Subject: [PATCH 009/169] simplify the code a bit --- inc/display.php | 13 ++++--------- 1 file changed, 4 insertions(+), 9 deletions(-) diff --git a/inc/display.php b/inc/display.php index 90cf3434..58cb4805 100644 --- a/inc/display.php +++ b/inc/display.php @@ -94,21 +94,16 @@ function error($message, $priority = true, $debug_stuff = false) { $debug_stuff['backtrace'] = debug_backtrace(); } - // Return the bad request header, necessary for AJAX posts - // czaks: is it really so? the ajax errors only work when this is commented out - // better yet use it when ajax is disabled - if (!isset ($_POST['json_response'])) { - header($_SERVER['SERVER_PROTOCOL'] . ' 400 Bad Request'); - } - - // Is there a reason to disable this? if (isset($_POST['json_response'])) { header('Content-Type: text/json; charset=utf-8'); die(json_encode(array( 'error' => $message ))); } - + else { + header($_SERVER['SERVER_PROTOCOL'] . ' 400 Bad Request'); + } + $pw = $config['db']['password']; $debug_callback = function(&$item) use (&$debug_callback, $pw) { if (is_array($item)) { From dcf5d699bd6ce5770ebd515cc14219f3015dd63a Mon Sep 17 00:00:00 2001 From: czaks Date: Thu, 5 May 2016 08:21:21 +0200 Subject: [PATCH 010/169] simplify the md5 execution logic --- inc/api.php | 7 ++++++- inc/config.php | 4 ++-- post.php | 44 ++++++++++++++++++++++---------------------- 3 files changed, 30 insertions(+), 25 deletions(-) diff --git a/inc/api.php b/inc/api.php index 57e4d367..9483200e 100644 --- a/inc/api.php +++ b/inc/api.php @@ -92,7 +92,12 @@ class Api { $dotPos = strrpos($file->file, '.'); $apiPost['ext'] = substr($file->file, $dotPos); $apiPost['tim'] = substr($file->file, 0, $dotPos); - $apiPost['md5'] = base64_encode(hex2bin($post->filehash)); + if (isset ($file->hash) && $post->filehash) { + $apiPost['md5'] = base64_encode(hex2bin($file->hash)); + } + else if (isset ($post->filehash) && $post->filehash) { + $apiPost['md5'] = base64_encode(hex2bin($post->filehash)); + } } private function translatePost($post, $threadsPage = false) { diff --git a/inc/config.php b/inc/config.php index c0e967af..b92c4ac0 100644 --- a/inc/config.php +++ b/inc/config.php @@ -807,8 +807,8 @@ // Set this to true if you're using a BSD $config['bsd_md5'] = false; - // Set this to true if you're having problems with image duplicated error and bsd_md5 doesn't help. - $config['php_md5'] = false; + // Set this to true if you're using Linux and you can execute `md5sum` binary. + $config['gnu_md5'] = false; // Number of posts in a "View Last X Posts" page $config['noko50_count'] = 50; diff --git a/post.php b/post.php index 729170a7..5c755a3c 100644 --- a/post.php +++ b/post.php @@ -572,7 +572,12 @@ if (isset($_POST['delete'])) { if ($post['has_file']) { - $fnarray = array(); + $md5cmd = false; + if ($config['bsd_md5']) $md5cmd = 'md5 -r'; + if ($config['gnu_md5']) $md5cmd = 'md5sum'; + + $allhashes = ''; + foreach ($post['files'] as $key => &$file) { if ($post['op'] && $config['allowed_ext_op']) { if (!in_array($file['extension'], $config['allowed_ext_op'])) @@ -586,34 +591,29 @@ if (isset($_POST['delete'])) { // Truncate filename if it is too long $file['filename'] = mb_substr($file['filename'], 0, $config['max_filename_len']); - if (!isset($filenames)) { - $filenames = escapeshellarg($file['tmp_name']); - } else { - $filenames .= (' ' . escapeshellarg($file['tmp_name'])); - } - - $fnarray[] = $file['tmp_name']; - $upload = $file['tmp_name']; if (!is_readable($upload)) error($config['error']['nomove']); + + if ($md5cmd) { + $output = shell_exec_error($md5cmd . " < " . escapeshellarg($upload)); + $output = explode(' ', $output); + $hash = $output[0]; + } + else { + $hash = md5_file($upload); + } + + $file['hash'] = $hash; + $allhashes .= $hash; } - - $md5cmd = $config['bsd_md5'] ? 'md5 -r' : 'md5sum'; - if (!$config['php_md5'] && $output = shell_exec_error("cat $filenames | $md5cmd")) { - $explodedvar = explode(' ', $output); - $hash = $explodedvar[0]; + if (count ($post['files']) == 1) { $post['filehash'] = $hash; - } elseif ($config['max_images'] === 1) { - $post['filehash'] = md5_file($upload); - } else { - $str_to_hash = ''; - foreach ($fnarray as $i => $f) { - $str_to_hash .= file_get_contents($f); - } - $post['filehash'] = md5($str_to_hash); + } + else { + $post['filehash'] = md5($allhashes); } } From 36b78e5f98302cb8fb3d4a00d4be61d6775d74a3 Mon Sep 17 00:00:00 2001 From: czaks Date: Thu, 5 May 2016 08:40:13 +0200 Subject: [PATCH 011/169] fix for editor highlighting --- inc/functions.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/inc/functions.php b/inc/functions.php index 3f5ed3b0..fd4c910d 100755 --- a/inc/functions.php +++ b/inc/functions.php @@ -138,7 +138,7 @@ function loadConfig() { $configstr .= file_get_contents($board['dir'] . '/config.php'); } $matches = array(); - preg_match_all('/[^\/*#]\$config\s*\[\s*[\'"]locale[\'"]\s*\]\s*=\s*([\'"])(.*?)\1/', $configstr, $matches); + preg_match_all('/[^\/#*]\$config\s*\[\s*[\'"]locale[\'"]\s*\]\s*=\s*([\'"])(.*?)\1/', $configstr, $matches); if ($matches && isset ($matches[2]) && $matches[2]) { $matches = $matches[2]; $config['locale'] = $matches[count($matches)-1]; From a42256b296f14c5f82889f9e222d94a416aa1924 Mon Sep 17 00:00:00 2001 From: czaks Date: Thu, 5 May 2016 08:43:34 +0200 Subject: [PATCH 012/169] locale cache: fix a bug when perms are done wrong --- inc/functions.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/inc/functions.php b/inc/functions.php index fd4c910d..462bc173 100755 --- a/inc/functions.php +++ b/inc/functions.php @@ -127,7 +127,7 @@ function loadConfig() { // So, we may store the locale in a tmp/ filesystem. if (file_exists($fn = 'tmp/cache/locale_' . $boardsuffix ) ) { - $config['locale'] = file_get_contents($fn); + $config['locale'] = @file_get_contents($fn); } else { $config['locale'] = 'en'; @@ -144,7 +144,7 @@ function loadConfig() { $config['locale'] = $matches[count($matches)-1]; } - file_put_contents($fn, $config['locale']); + @file_put_contents($fn, $config['locale']); } if ($config['locale'] != $current_locale) { From 8dac72e924d658e66c5efe3334aa8ab41d00daca Mon Sep 17 00:00:00 2001 From: czaks Date: Thu, 5 May 2016 09:16:09 +0200 Subject: [PATCH 013/169] update installer --- install.php | 103 ++++++++++++++++++++++---------- templates/installer/config.html | 3 + 2 files changed, 73 insertions(+), 33 deletions(-) diff --git a/install.php b/install.php index 968c41de..7a146c8e 100644 --- a/install.php +++ b/install.php @@ -581,6 +581,25 @@ if (file_exists($config['has_installed'])) { die(Element('page.html', $page)); } +function create_config_from_array(&$instance_config, &$array, $prefix = '') { + foreach ($array as $name => $value) { + if (is_array($value)) { + $instance_config .= "\n"; + create_config_from_array($instance_config, $value, $prefix . '[\'' . addslashes($name) . '\']'); + $instance_config .= "\n"; + } else { + $instance_config .= ' $config' . $prefix . '[\'' . addslashes($name) . '\'] = '; + + if (is_numeric($value)) + $instance_config .= $value; + else + $instance_config .= "'" . addslashes($value) . "'"; + + $instance_config .= ";\n"; + } + } +} + if ($step == 0) { // Agreeement $page['body'] = ' @@ -614,7 +633,7 @@ if ($step == 0) { 'installed' => extension_loaded('pdo'), 'required' => true ), - 'PDO' => array( + 'GD' => array( 'installed' => extension_loaded('gd'), 'required' => true ), @@ -627,17 +646,17 @@ if ($step == 0) { $tests = array( array( 'category' => 'PHP', - 'name' => 'PHP ≥ 5.3', - 'result' => PHP_VERSION_ID >= 50300, + 'name' => 'PHP ≥ 5.4', + 'result' => PHP_VERSION_ID >= 50400, 'required' => true, - 'message' => 'vichan requires PHP 5.3 or better.', + 'message' => 'vichan requires PHP 5.4 or better.', ), array( 'category' => 'PHP', - 'name' => 'PHP ≥ 5.4', - 'result' => PHP_VERSION_ID >= 50400, + 'name' => 'PHP ≥ 5.6', + 'result' => PHP_VERSION_ID >= 50600, 'required' => false, - 'message' => 'vichan works best on PHP 5.4 or better.', + 'message' => 'vichan works best on PHP 5.6 or better.', ), array( 'category' => 'PHP', @@ -694,6 +713,7 @@ if ($step == 0) { 'result' => $can_exec && shell_exec('which convert'), 'required' => false, 'message' => '(Optional) `convert` was not found or executable; command-line ImageMagick image processing cannot be enabled.', + 'effect' => function (&$config) { $config['thumb_method'] = 'convert'; }, ), array( 'category' => 'Image processing', @@ -708,6 +728,7 @@ if ($step == 0) { 'result' => $can_exec && shell_exec('which gm'), 'required' => false, 'message' => '(Optional) `gm` was not found or executable; command-line GraphicsMagick (faster than ImageMagick) cannot be enabled.', + 'effect' => function (&$config) { $config['thumb_method'] = 'gm'; }, ), array( 'category' => 'Image processing', @@ -715,13 +736,25 @@ if ($step == 0) { 'result' => $can_exec && shell_exec('which gifsicle'), 'required' => false, 'message' => '(Optional) `gifsicle` was not found or executable; you may not use `convert+gifsicle` for better animated GIF thumbnailing.', + 'effect' => function (&$config) { if ($config['thumb_method'] == 'gm') $config['thumb_method'] = 'gm+gifsicle'; + if ($config['thumb_method'] == 'convert') $config['thumb_method'] = 'convert+gifsicle'; }, ), array( 'category' => 'Image processing', - 'name' => '`md5sum` (quick file hashing)', + 'name' => '`md5sum` (quick file hashing on GNU/Linux)', + 'prereq' => '', 'result' => $can_exec && shell_exec('echo "vichan" | md5sum') == "141225c362da02b5c359c45b665168de -\n", 'required' => false, - 'message' => '(Optional) `md5sum` was not found or executable; file hashing for multiple images will be slower.', + 'message' => '(Optional) `md5sum` was not found or executable; file hashing for multiple images will be slower. Ignore if not using Linux.', + 'effect' => function (&$config) { $config['gnu_md5'] = true; }, + ), + array( + 'category' => 'Image processing', + 'name' => '`/sbin/md5` (quick file hashing on BSDs)', + 'result' => $can_exec && shell_exec('echo "vichan" | /sbin/md5 -r') == "141225c362da02b5c359c45b665168de\n", + 'required' => false, + 'message' => '(Optional) `/sbin/md5` was not found or executable; file hashing for multiple images will be slower. Ignore if not using BSD.', + 'effect' => function (&$config) { $config['bsd_md5'] = true; }, ), array( 'category' => 'File permissions', @@ -737,6 +770,13 @@ if ($step == 0) { 'required' => true, 'message' => 'You must give vichan permission to create (and write to) the templates/cache directory or performance will be drastically reduced.' ), + array( + 'category' => 'File permissions', + 'name' => getcwd() . '/tmp/cache', + 'result' => is_dir('tmp/cache') && is_writable('tmp/cache'), + 'required' => true, + 'message' => 'You must give vichan permission to write to the tmp/cache directory.' + ), array( 'category' => 'File permissions', 'name' => getcwd() . '/inc/instance-config.php', @@ -760,17 +800,27 @@ if ($step == 0) { 'message' => 'vichan is still beta software and it\'s not going to come out of beta any time soon. As there are often many months between releases yet changes and bug fixes are very frequent, it\'s recommended to use the git repository to maintain your vichan installation. Using git makes upgrading much easier.' ) ); - + $config['font_awesome'] = true; + $additional_config = array(); + foreach ($tests as $test) { + if ($test['result'] && $test['effect']) { + $test['effect']($additional_config); + } + } + $more = ''; + create_config_from_array($more, $additional_config); + $_SESSION['more'] = $more; + echo Element('page.html', array( 'body' => Element('installer/check-requirements.html', array( 'extensions' => $extensions, 'tests' => $tests, - 'config' => $config + 'config' => $config, )), 'title' => 'Checking environment', - 'config' => $config + 'config' => $config, )); } elseif ($step == 2) { // Basic config @@ -781,14 +831,18 @@ if ($step == 0) { echo Element('page.html', array( 'body' => Element('installer/config.html', array( - 'config' => $config + 'config' => $config, + 'more' => $more, )), 'title' => 'Configuration', 'config' => $config )); } elseif ($step == 3) { + $more = $_POST['more']; + unset($_POST['more']); + $instance_config = -' $value) { - if (is_array($value)) { - $instance_config .= "\n"; - create_config_from_array($instance_config, $value, $prefix . '[\'' . addslashes($name) . '\']'); - $instance_config .= "\n"; - } else { - $instance_config .= ' $config' . $prefix . '[\'' . addslashes($name) . '\'] = '; - - if (is_numeric($value)) - $instance_config .= $value; - else - $instance_config .= "'" . addslashes($value) . "'"; - - $instance_config .= ";\n"; - } - } - } - create_config_from_array($instance_config, $_POST); + $instance_config .= "\n"; + $instance_config .= $more; $instance_config .= "\n"; if (@file_put_contents('inc/instance-config.php', $instance_config)) { diff --git a/templates/installer/config.html b/templates/installer/config.html index 193bb98b..973328f5 100644 --- a/templates/installer/config.html +++ b/templates/installer/config.html @@ -87,6 +87,9 @@ Miscellaneous + + +

From 985c113190f077ffe60abbf89642543851076eb9 Mon Sep 17 00:00:00 2001 From: czaks Date: Thu, 5 May 2016 09:18:36 +0200 Subject: [PATCH 014/169] ... --- install.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/install.php b/install.php index 7a146c8e..21c573d1 100644 --- a/install.php +++ b/install.php @@ -805,7 +805,7 @@ if ($step == 0) { $additional_config = array(); foreach ($tests as $test) { - if ($test['result'] && $test['effect']) { + if ($test['result'] && isset($test['effect'])) { $test['effect']($additional_config); } } From 89fe3db55608385cb4a7ba8d7ac693d6fe75ff0a Mon Sep 17 00:00:00 2001 From: czaks Date: Thu, 5 May 2016 09:25:47 +0200 Subject: [PATCH 015/169] ... --- install.php | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/install.php b/install.php index 21c573d1..3aa8f56f 100644 --- a/install.php +++ b/install.php @@ -600,6 +600,8 @@ function create_config_from_array(&$instance_config, &$array, $prefix = '') { } } +session_start(); + if ($step == 0) { // Agreeement $page['body'] = ' @@ -832,7 +834,7 @@ if ($step == 0) { echo Element('page.html', array( 'body' => Element('installer/config.html', array( 'config' => $config, - 'more' => $more, + 'more' => $_SESSION['more'], )), 'title' => 'Configuration', 'config' => $config From 38bf3276e4ffd4b82c4a7bc9eb8e1cf692147bb2 Mon Sep 17 00:00:00 2001 From: czaks Date: Thu, 5 May 2016 09:39:23 +0200 Subject: [PATCH 016/169] update copyright years; remove a link to tinyboard (website is dead) --- templates/generic_page.html | 8 ++++---- templates/index.html | 8 ++++---- templates/page.html | 8 ++++---- templates/themes/basic/index.html | 8 ++++---- templates/themes/catalog/catalog.html | 8 ++++---- templates/themes/categories/news.html | 8 ++++---- templates/themes/frameset/news.html | 8 ++++---- templates/themes/recent/recent.html | 8 ++++---- templates/thread.html | 8 ++++---- 9 files changed, 36 insertions(+), 36 deletions(-) diff --git a/templates/generic_page.html b/templates/generic_page.html index 965cbc2c..35b58df3 100644 --- a/templates/generic_page.html +++ b/templates/generic_page.html @@ -36,10 +36,10 @@ {% endfor %} {{ btn.next }} {{ boardlist.bottom }}

-

- Tinyboard + - vichan {{ config.version }} - -
Tinyboard Copyright © 2010-2014 Tinyboard Development Group -
vichan Copyright © 2012-2015 vichan-devel

+

- Tinyboard + + vichan {{ config.version }} - +
Tinyboard Copyright © 2010-2014 Tinyboard Development Group +
vichan Copyright © 2012-2016 vichan-devel

{% for footer in config.footer %}

{{ footer }}

{% endfor %}
diff --git a/templates/main.js b/templates/main.js index 7e3b2dc1..c2a6f6c0 100644 --- a/templates/main.js +++ b/templates/main.js @@ -115,7 +115,10 @@ var styles = { {% for stylesheet in stylesheets %}{% raw %}'{% endraw %}{{ stylesheet.name|addslashes }}{% raw %}' : '{% endraw %}{{ stylesheet.uri|addslashes }}{% raw %}', {% endraw %}{% endfor %}{% raw %} }; -var board_name = false; + +if (typeof board_name === 'undefined') { + var board_name = false; +} function changeStyle(styleName, link) { {% endraw %} @@ -159,13 +162,7 @@ function changeStyle(styleName, link) { {% endraw %} {% if config.stylesheets_board %} - {# This is such an unacceptable mess. There needs to be an easier way. #} - {# Needs fix for slugify #} - var matches = document.URL.match(/\/(\w+)\/($|{{ config.dir.res|replace({'/': '\\/'}) }}{{ config.file_page|replace({'%d': '\\d+', '.': '\\.'}) }}|{{ config.file_index|replace({'.': '\\.'}) }}|{{ config.file_page|replace({'%d': '\\d+', '.': '\\.'}) }})/); {% raw %} - if (matches) { - board_name = matches[1]; - } if (!localStorage.board_stylesheets) { localStorage.board_stylesheets = '{}'; diff --git a/templates/page.html b/templates/page.html index 3522702f..816bb72b 100644 --- a/templates/page.html +++ b/templates/page.html @@ -3,7 +3,7 @@ {% include 'header.html' %} {{ title }} diff --git a/templates/themes/catalog/catalog.html b/templates/themes/catalog/catalog.html index 1011fdaf..1f5e8b05 100644 --- a/templates/themes/catalog/catalog.html +++ b/templates/themes/catalog/catalog.html @@ -4,7 +4,8 @@ {% include 'header.html' %} {{ settings.title }} diff --git a/templates/thread.html b/templates/thread.html index b7bb5f6b..506b9cc2 100644 --- a/templates/thread.html +++ b/templates/thread.html @@ -4,7 +4,9 @@ {% include 'header.html' %} From d46bf4e2f2209a38e11dad436b0abb5d89ef4448 Mon Sep 17 00:00:00 2001 From: Bui Date: Fri, 3 Oct 2014 00:12:15 +0900 Subject: [PATCH 094/169] add id to thread links --- templates/thread.html | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/templates/thread.html b/templates/thread.html index 506b9cc2..0899c414 100644 --- a/templates/thread.html +++ b/templates/thread.html @@ -49,8 +49,12 @@ {{ body }} {% include 'report_delete.html' %} - [{% trans %}Return{% endtrans %}] - [{% trans %}Go to top{% endtrans %}] + + + [{% trans %}Return{% endtrans %}] + [{% trans %}Go to top{% endtrans %}] + [{% trans %}Catalog{% endtrans %}] + {{ boardlist.bottom }} From 6c334a3b4494a9b1b3e9f801dab45e6e027dceed Mon Sep 17 00:00:00 2001 From: Bui Date: Fri, 3 Oct 2014 00:16:41 +0900 Subject: [PATCH 095/169] lol spaces --- templates/thread.html | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/templates/thread.html b/templates/thread.html index 0899c414..c909f843 100644 --- a/templates/thread.html +++ b/templates/thread.html @@ -52,9 +52,9 @@ [{% trans %}Return{% endtrans %}] - [{% trans %}Go to top{% endtrans %}] - [{% trans %}Catalog{% endtrans %}] - + [{% trans %}Go to top{% endtrans %}] + [{% trans %}Catalog{% endtrans %}] + {{ boardlist.bottom }} From 293543878a10e1ef93990acb373f8f22ca655f64 Mon Sep 17 00:00:00 2001 From: czaks Date: Fri, 6 May 2016 12:10:50 +0200 Subject: [PATCH 096/169] backport parts of 2d6d449bd2d72, in particular html classes --- stylesheets/style.css | 2 +- templates/generic_page.html | 2 +- templates/index.html | 2 +- templates/page.html | 2 +- templates/post_thread.html | 2 +- templates/themes/basic/index.html | 2 +- templates/thread.html | 2 +- 7 files changed, 7 insertions(+), 7 deletions(-) diff --git a/stylesheets/style.css b/stylesheets/style.css index 6b4b19d9..2c5663bd 100644 --- a/stylesheets/style.css +++ b/stylesheets/style.css @@ -666,7 +666,7 @@ pre { margin-left: -20px; } -div.thread:hover { +.theme-catalog div.thread:hover { background: #D6DAF0; border-color: #B7C5D9; } diff --git a/templates/generic_page.html b/templates/generic_page.html index 35b58df3..fbfc3c50 100644 --- a/templates/generic_page.html +++ b/templates/generic_page.html @@ -6,7 +6,7 @@ {{ board.url }} - {{ board.name }} {% endblock %} - + {{ boardlist.top }} {% if pm %}
You have an unread PM{% if pm.waiting > 0 %}, plus {{ pm.waiting }} more waiting{% endif %}.

{% endif %} {% if config.url_banner %}{% endif %} diff --git a/templates/index.html b/templates/index.html index d4c56707..1eea6e6b 100644 --- a/templates/index.html +++ b/templates/index.html @@ -16,7 +16,7 @@ {% include 'header.html' %} {{ board.url }} - {{ board.title|e }} - + {{ boardlist.top }} {% if pm %}
You have an unread PM{% if pm.waiting > 0 %}, plus {{ pm.waiting }} more waiting{% endif %}.

{% endif %} diff --git a/templates/page.html b/templates/page.html index 816bb72b..296b517e 100644 --- a/templates/page.html +++ b/templates/page.html @@ -8,7 +8,7 @@ {% include 'header.html' %} {{ title }} - + {{ boardlist.top }} {% if pm %}
You have an unread PM{% if pm.waiting > 0 %}, plus {{ pm.waiting }} more waiting{% endif %}.

{% endif %} diff --git a/templates/post_thread.html b/templates/post_thread.html index 61146491..72ca2998 100644 --- a/templates/post_thread.html +++ b/templates/post_thread.html @@ -1,7 +1,7 @@ {% filter remove_whitespace %} {# tabs and new lines will be ignored #} -
+
{% if not index %}{% endif %} {% include 'post/fileinfo.html' %} diff --git a/templates/themes/basic/index.html b/templates/themes/basic/index.html index 8cdaf182..9d7a2c41 100644 --- a/templates/themes/basic/index.html +++ b/templates/themes/basic/index.html @@ -11,7 +11,7 @@ {% if config.default_stylesheet.1 != '' %}{% endif %} {% if config.font_awesome %}{% endif %} - + {{ boardlist.top }}

{{ settings.title }}

diff --git a/templates/thread.html b/templates/thread.html index c909f843..425394bb 100644 --- a/templates/thread.html +++ b/templates/thread.html @@ -12,7 +12,7 @@ {% include 'header.html' %} {{ board.url }} - {% if config.thread_subject_in_title and thread.subject %}{{ thread.subject }}{% else %}{{ board.title|e }}{% endif %} - + {{ boardlist.top }} {% if pm %}
You have an unread PM{% if pm.waiting > 0 %}, plus {{ pm.waiting }} more waiting{% endif %}.

{% endif %} {% if config.url_banner %}{% endif %} From b6f3d440809f87a803632cefe66a861c8e20bd9b Mon Sep 17 00:00:00 2001 From: 8chan Date: Sun, 9 Nov 2014 23:24:00 -0800 Subject: [PATCH 097/169] Go to bottom link --- templates/thread.html | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/templates/thread.html b/templates/thread.html index 425394bb..7f8668a3 100644 --- a/templates/thread.html +++ b/templates/thread.html @@ -32,7 +32,8 @@ {% include 'attention_bar.html' %} - + {{ config.ad.top }} From aa0d3395b181671907800cd7110c00e35d8a8a13 Mon Sep 17 00:00:00 2001 From: 8chan Date: Sat, 20 Dec 2014 07:02:42 -0800 Subject: [PATCH 098/169] Show first 256 chars of body in --- templates/thread.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/templates/thread.html b/templates/thread.html index 7f8668a3..335cd610 100644 --- a/templates/thread.html +++ b/templates/thread.html @@ -10,7 +10,7 @@ </script> {% include 'header.html' %} - <title>{{ board.url }} - {% if config.thread_subject_in_title and thread.subject %}{{ thread.subject }}{% else %}{{ board.title|e }}{% endif %} + {{ board.url }} - {% if config.thread_subject_in_title and thread.subject %}{{ thread.subject }}{% else %}{{ thread.body_nomarkup[:256]|e }}{% endif %} {{ boardlist.top }} From ce62673a2cf1dd4667b75756c80c44cc5746a63b Mon Sep 17 00:00:00 2001 From: 8chan Date: Mon, 16 Feb 2015 16:31:15 -0800 Subject: [PATCH 099/169] OpenGraph information in thread pages https://en.wikipedia.org/wiki/Facebook_Platform#Open_Graph_protocol --- templates/thread.html | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/templates/thread.html b/templates/thread.html index 335cd610..9051d8e0 100644 --- a/templates/thread.html +++ b/templates/thread.html @@ -10,7 +10,18 @@ {% include 'header.html' %} - {{ board.url }} - {% if config.thread_subject_in_title and thread.subject %}{{ thread.subject }}{% else %}{{ thread.body_nomarkup[:256]|e }}{% endif %} + + {% set meta_subject %}{% if config.thread_subject_in_title and thread.subject %}{{ thread.subject|e }}{% else %}{{ thread.body_nomarkup[:256]|e }}{% endif %}{% endset %} + + + + + + + {% if thread.files.0.thumb %}{% endif %} + + + {{ board.url }} - {{ meta_subject }} {{ boardlist.top }} From 3f29170f1bebba532c73e4188b15cdc7e4335c15 Mon Sep 17 00:00:00 2001 From: czaks Date: Fri, 6 May 2016 12:23:18 +0200 Subject: [PATCH 100/169] debrand 8chan; btw. the previous commit was [SECURITY] i think? --- templates/thread.html | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/templates/thread.html b/templates/thread.html index 9051d8e0..4314fa5e 100644 --- a/templates/thread.html +++ b/templates/thread.html @@ -13,12 +13,12 @@ {% set meta_subject %}{% if config.thread_subject_in_title and thread.subject %}{{ thread.subject|e }}{% else %}{{ thread.body_nomarkup[:256]|e }}{% endif %}{% endset %} - + - - {% if thread.files.0.thumb %}{% endif %} + + {% if thread.files.0.thumb %}{% endif %} {{ board.url }} - {{ meta_subject }} From cb97029d0d95e54d7e78e46b26b366060fb7e547 Mon Sep 17 00:00:00 2001 From: anonfagola Date: Sun, 28 Sep 2014 10:01:17 -0700 Subject: [PATCH 101/169] Update catalog.html Changed title from being - "Catalog /board/" to "/board/ - Catalog" --- templates/themes/catalog/catalog.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/templates/themes/catalog/catalog.html b/templates/themes/catalog/catalog.html index 1f5e8b05..226c00d3 100644 --- a/templates/themes/catalog/catalog.html +++ b/templates/themes/catalog/catalog.html @@ -8,7 +8,7 @@ , board_name = "{{ board }}"; {% include 'header.html' %} - {{ settings.title }} + {{ board }} - Catalog {{ boardlist.top }} From 632d0a76d0afc5bd7a8cc90e6625a74fe432065a Mon Sep 17 00:00:00 2001 From: 8chan Date: Wed, 31 Dec 2014 22:37:19 -0800 Subject: [PATCH 102/169] Display placeholder if no file in catalog/theme.php; czaks: fix the code a bit --- inc/config.php | 2 +- templates/themes/catalog/theme.php | 2 ++ 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/inc/config.php b/inc/config.php index ad659343..21f7b5cc 100644 --- a/inc/config.php +++ b/inc/config.php @@ -766,7 +766,7 @@ // Location of thumbnail to use for spoiler images. $config['spoiler_image'] = 'static/spoiler.png'; // Location of thumbnail to use for deleted images. - // $config['image_deleted'] = 'static/deleted.png'; + $config['image_deleted'] = 'static/deleted.png'; // When a thumbnailed image is going to be the same (in dimension), just copy the entire file and use // that as a thumbnail instead of resizing/redrawing. diff --git a/templates/themes/catalog/theme.php b/templates/themes/catalog/theme.php index 34b28e48..c7a8ee95 100644 --- a/templates/themes/catalog/theme.php +++ b/templates/themes/catalog/theme.php @@ -88,6 +88,8 @@ $post['file'] = $config['uri_thumb'] . $files[0]->thumb; } } + } else { + $post['file'] = $config['root'] . $config['image_deleted']; } if (empty($post['image_count'])) $post['image_count'] = 0; From ae4eb4d3d9c390d4c203a468313154aa59809e59 Mon Sep 17 00:00:00 2001 From: 8chan Date: Mon, 9 Mar 2015 02:31:08 -0700 Subject: [PATCH 103/169] RSS --- templates/themes/catalog/index.rss | 19 +++++++++++++++++++ templates/themes/catalog/theme.php | 7 +++++++ 2 files changed, 26 insertions(+) create mode 100644 templates/themes/catalog/index.rss diff --git a/templates/themes/catalog/index.rss b/templates/themes/catalog/index.rss new file mode 100644 index 00000000..c187e45a --- /dev/null +++ b/templates/themes/catalog/index.rss @@ -0,0 +1,19 @@ + + + + /{{ board.uri }}/ - {{ board.title|e }} + https://8ch.net/{{ board.uri }}/ + Live feed of new threads on the 8chan board /{{ board.uri }}/ - {{ board.title|e }}. + + {% for post in recent_posts %} + + {% if post.subject %}{{ post.subject|e }}{% else %}{{ post.body_nomarkup[:256]|e }}{% endif %} + https://8ch.net/{{ board.uri }}/res/{{ post.id }}.html + https://8ch.net/{{ board.uri }}/res/{{ post.id }}.html + https://8ch.net/{{ board.uri }}/res/{{ post.id }}.html + {{ post.pubdate }} + {{ post.body }} ]]> + + {% endfor %} + + diff --git a/templates/themes/catalog/theme.php b/templates/themes/catalog/theme.php index c7a8ee95..239d4dff 100644 --- a/templates/themes/catalog/theme.php +++ b/templates/themes/catalog/theme.php @@ -93,6 +93,7 @@ } if (empty($post['image_count'])) $post['image_count'] = 0; + $post['pubdate'] = date('r', $post['time']); $recent_posts[] = $post; } @@ -113,5 +114,11 @@ 'board' => $board_name, 'link' => $config['root'] . $board['dir'] ))); + + file_write($config['dir']['home'] . $board_name . '/index.rss', Element('themes/catalog/index.rss', Array( + 'config' => $config, + 'recent_posts' => $recent_posts, + 'board' => $board + ))); } }; From 6da7f4d25aed8daf14f705e2acabbac8f755fe01 Mon Sep 17 00:00:00 2001 From: 8chan Date: Sat, 14 Mar 2015 22:03:08 -0700 Subject: [PATCH 104/169] No more country flags in --- inc/lib/Twig/Extensions/Extension/Tinyboard.php | 1 + templates/themes/catalog/index.rss | 2 +- templates/thread.html | 2 +- 3 files changed, 3 insertions(+), 2 deletions(-) diff --git a/inc/lib/Twig/Extensions/Extension/Tinyboard.php b/inc/lib/Twig/Extensions/Extension/Tinyboard.php index 028db438..3d964c71 100644 --- a/inc/lib/Twig/Extensions/Extension/Tinyboard.php +++ b/inc/lib/Twig/Extensions/Extension/Tinyboard.php @@ -17,6 +17,7 @@ class Twig_Extensions_Extension_Tinyboard extends Twig_Extension new Twig_SimpleFilter('extension', 'twig_extension_filter'), new Twig_SimpleFilter('sprintf', 'sprintf'), new Twig_SimpleFilter('capcode', 'capcode'), + new Twig_SimpleFilter('remove_modifiers', 'remove_modifiers'), new Twig_SimpleFilter('hasPermission', 'twig_hasPermission_filter'), new Twig_SimpleFilter('date', 'twig_date_filter'), new Twig_SimpleFilter('poster_id', 'poster_id'), diff --git a/templates/themes/catalog/index.rss b/templates/themes/catalog/index.rss index c187e45a..248b494a 100644 --- a/templates/themes/catalog/index.rss +++ b/templates/themes/catalog/index.rss @@ -7,7 +7,7 @@ <atom:link href="https://8ch.net/{{ board.uri }}/index.rss" rel="self" type="application/rss+xml"/> {% for post in recent_posts %} <item> - <title>{% if post.subject %}{{ post.subject|e }}{% else %}{{ post.body_nomarkup[:256]|e }}{% endif %} + {% if post.subject %}{{ post.subject|e }}{% else %}{{ post.body_nomarkup[:256]|remove_modifiers|e }}{% endif %} https://8ch.net/{{ board.uri }}/res/{{ post.id }}.html https://8ch.net/{{ board.uri }}/res/{{ post.id }}.html https://8ch.net/{{ board.uri }}/res/{{ post.id }}.html diff --git a/templates/thread.html b/templates/thread.html index 4314fa5e..2ca81e2e 100644 --- a/templates/thread.html +++ b/templates/thread.html @@ -11,7 +11,7 @@ {% include 'header.html' %} - {% set meta_subject %}{% if config.thread_subject_in_title and thread.subject %}{{ thread.subject|e }}{% else %}{{ thread.body_nomarkup[:256]|e }}{% endif %}{% endset %} + {% set meta_subject %}{% if config.thread_subject_in_title and thread.subject %}{{ thread.subject|e }}{% else %}{{ thread.body_nomarkup[:256]|remove_modifiers|e }}{% endif %}{% endset %} From 7a7574bdcace8ca5526ed10fe675cbbabced6ecd Mon Sep 17 00:00:00 2001 From: 8chan Date: Wed, 24 Dec 2014 06:08:19 -0800 Subject: [PATCH 105/169] SECURITY / XSS : ?/edit allowed arbitrary HTML to be added by any user thru addition of 1 This allowed ANY user with ?/edit privilege to also have raw_html regardless of whether they had $config['mod']['rawhtml'] Now, any changes to markup modifiers via ?/edit are not allowed. They are removed at read time, and before write they are removed again and the ones in the database (which should be clean...) are inserted instead. Please immediately apply this patch to your instance if you are running any version of 8chan/infinity. --- inc/functions.php | 6 +++++- inc/mod/pages.php | 20 +++++++++++++++++--- 2 files changed, 22 insertions(+), 4 deletions(-) diff --git a/inc/functions.php b/inc/functions.php index c46807bb..85b61b2e 100755 --- a/inc/functions.php +++ b/inc/functions.php @@ -1849,7 +1849,11 @@ function extract_modifiers($body) { return $modifiers; } -function markup(&$body, $track_cites = false) { +function remove_modifiers($body) { + return preg_replace('@(.+?)@usm', '', $body); +} + +function markup(&$body, $track_cites = false, $op = false) { global $board, $config, $markup_urls; $modifiers = extract_modifiers($body); diff --git a/inc/mod/pages.php b/inc/mod/pages.php index 8380cfd3..a90fbbd6 100644 --- a/inc/mod/pages.php +++ b/inc/mod/pages.php @@ -1473,6 +1473,15 @@ function mod_edit_post($board, $edit_raw_html, $postID) { error($config['error']['404']); if (isset($_POST['name'], $_POST['email'], $_POST['subject'], $_POST['body'])) { + // Remove any modifiers they may have put in + $_POST['body'] = remove_modifiers($_POST['body']); + + // Add back modifiers in the original post + $modifiers = extract_modifiers($post['body_nomarkup']); + foreach ($modifiers as $key => $value) { + $_POST['body'] .= "$value"; + } + if ($edit_raw_html) $query = prepare(sprintf('UPDATE ``posts_%s`` SET `name` = :name, `email` = :email, `subject` = :subject, `body` = :body, `body_nomarkup` = :body_nomarkup WHERE `id` = :id', $board)); else @@ -1501,15 +1510,20 @@ function mod_edit_post($board, $edit_raw_html, $postID) { header('Location: ?/' . sprintf($config['board_path'], $board) . $config['dir']['res'] . link_for($post) . '#' . $postID, true, $config['redirect_http']); } else { + // Remove modifiers + $post['body_nomarkup'] = remove_modifiers($post['body_nomarkup']); + + $post['body_nomarkup'] = utf8tohtml($post['body_nomarkup']); + $post['body'] = utf8tohtml($post['body']); if ($config['minify_html']) { - $post['body_nomarkup'] = str_replace("\n", ' ', utf8tohtml($post['body_nomarkup'])); - $post['body'] = str_replace("\n", ' ', utf8tohtml($post['body'])); + $post['body_nomarkup'] = str_replace("\n", ' ', $post['body_nomarkup']); + $post['body'] = str_replace("\n", ' ', $post['body']); $post['body_nomarkup'] = str_replace("\r", '', $post['body_nomarkup']); $post['body'] = str_replace("\r", '', $post['body']); $post['body_nomarkup'] = str_replace("\t", ' ', $post['body_nomarkup']); $post['body'] = str_replace("\t", ' ', $post['body']); } - + mod_page(_('Edit post'), 'mod/edit_post_form.html', array('token' => $security_token, 'board' => $board, 'raw' => $edit_raw_html, 'post' => $post)); } } From 6644ff666a1c794c6536c895e322dbcb50710134 Mon Sep 17 00:00:00 2001 From: 8n-tech <8n-tech@users.noreply.github.com> Date: Sat, 18 Apr 2015 04:39:50 +1000 Subject: [PATCH 106/169] Also improved some CSS and HTML aspects of the thread layout. Signed-off-by: 8n-tech <8n-tech@users.noreply.github.com> --- stylesheets/style.css | 86 ++++++++++++++++++++++++++++++------ templates/report_delete.html | 21 +++++---- templates/thread.html | 31 ++++++++----- 3 files changed, 105 insertions(+), 33 deletions(-) diff --git a/stylesheets/style.css b/stylesheets/style.css index 2c5663bd..bb7c2634 100644 --- a/stylesheets/style.css +++ b/stylesheets/style.css @@ -468,20 +468,6 @@ hr { clear: left; } -div.boardlist { - color: #89A; - font-size: 9pt; - margin-top: 3px; -} - -div.boardlist.bottom { - margin-top: 20px; -} - -div.boardlist a { - text-decoration: none; -} - div.report { color: #333; } @@ -944,6 +930,78 @@ span.pln { } } +.clearfix { + display: block; + clear: both; + visibility: hidden; + overflow: hidden; + + font-size: 0px; + line-height: 0px; + + box-sizing: border-box; + border: none; + height: 0; + margin: 0; + padding: 0; + width: 100%; + zoom: 1; +} + +/* === SPECIFIC PAGES & FEATURES === */ + +/* Board List */ +div.boardlist { + margin-top: 3px; + + color: #89A; + font-size: 9pt; +} +div.boardlist.bottom { + margin-top: 12px; + clear: both; +} +div.boardlist a { + text-decoration: none; +} + +/* Threads */ +/* Thread Footer */ +#thread-interactions { + margin: 8px 0; + clear: both; +} +#thread-links { + float: left; +} +#thread-links > a { + padding-left: none; + padding-right: 10px; +} +#thread-quick-reply { + display: none; + position: absolute; + left: 50%; + right: 50%; + text-align: center; + width: 100px; + margin-left: -50px; +} +#thread_stats { + float: right; +} + +#post-moderation-fields { + float: right; + text-align: right; +} +#delete-fields { +} +#report-fields { +} + + + /* threadwatcher */ #watchlist { diff --git a/templates/report_delete.html b/templates/report_delete.html index 2fcb7259..e246da9e 100644 --- a/templates/report_delete.html +++ b/templates/report_delete.html @@ -1,13 +1,16 @@ -{% if config.allow_delete %} -
- {% trans %}Delete Post{% endtrans %} [ - ] +
+ {% if config.allow_delete %} +
+ {% trans %}Delete Post{% endtrans %} [ + ] -
-{% endif %} -
- +
+ {% endif %} + +
+ -
+
+
\ No newline at end of file diff --git a/templates/thread.html b/templates/thread.html index 2ca81e2e..1cbb6d20 100644 --- a/templates/thread.html +++ b/templates/thread.html @@ -24,6 +24,7 @@ {{ board.url }} - {{ meta_subject }} + {{ boardlist.top }} {% if pm %}
You have an unread PM{% if pm.waiting > 0 %}, plus {{ pm.waiting }} more waiting{% endif %}.

{% endif %} {% if config.url_banner %}{% endif %} @@ -56,18 +57,28 @@ [{% trans %}Go to bottom{% endtrans %}]
- - {% if mod %}{% endif %} - {{ body }} - {% include 'report_delete.html' %} + + {% if mod %}{% endif %} + + {{ body }} + + + +
- - [{% trans %}Return{% endtrans %}] - [{% trans %}Go to top{% endtrans %}] - [{% trans %}Catalog{% endtrans %}] - - {{ boardlist.bottom }} {{ config.ad.bottom }} From 33ef1d2123749db43bba372cbc0aa7ab3df4839a Mon Sep 17 00:00:00 2001 From: Bui Date: Sat, 26 Sep 2015 00:17:05 +0900 Subject: [PATCH 107/169] add active page classes to body; czaks: go to bottom @ thread: fixes --- templates/index.html | 2 +- templates/page.html | 2 +- templates/themes/catalog/catalog.html | 2 +- templates/thread.html | 8 ++------ 4 files changed, 5 insertions(+), 9 deletions(-) diff --git a/templates/index.html b/templates/index.html index 1eea6e6b..d1871fc8 100644 --- a/templates/index.html +++ b/templates/index.html @@ -16,7 +16,7 @@ {% include 'header.html' %} {{ board.url }} - {{ board.title|e }} - + {{ boardlist.top }} {% if pm %}
You have an unread PM{% if pm.waiting > 0 %}, plus {{ pm.waiting }} more waiting{% endif %}.

{% endif %} diff --git a/templates/page.html b/templates/page.html index 296b517e..027ed3b9 100644 --- a/templates/page.html +++ b/templates/page.html @@ -8,7 +8,7 @@ {% include 'header.html' %} {{ title }} - + {{ boardlist.top }} {% if pm %}
You have an unread PM{% if pm.waiting > 0 %}, plus {{ pm.waiting }} more waiting{% endif %}.

{% endif %} diff --git a/templates/themes/catalog/catalog.html b/templates/themes/catalog/catalog.html index 226c00d3..0626b376 100644 --- a/templates/themes/catalog/catalog.html +++ b/templates/themes/catalog/catalog.html @@ -10,7 +10,7 @@ {% include 'header.html' %} {{ board }} - Catalog - + {{ boardlist.top }}

{{ settings.title }} (/{{ board }}/)

diff --git a/templates/thread.html b/templates/thread.html index 1cbb6d20..2d4ae262 100644 --- a/templates/thread.html +++ b/templates/thread.html @@ -23,7 +23,7 @@ {{ board.url }} - {{ meta_subject }} - + {{ boardlist.top }} {% if pm %}
You have an unread PM{% if pm.waiting > 0 %}, plus {{ pm.waiting }} more waiting{% endif %}.

{% endif %} @@ -44,8 +44,7 @@ {% include 'attention_bar.html' %} - + {{ config.ad.top }} @@ -53,9 +52,6 @@ {% if config.global_message %}
{{ config.global_message }}
{% endif %}
- [{% trans %}Return{% endtrans %}] - [{% trans %}Go to bottom{% endtrans %}] -
{% if mod %}{% endif %} From 33ef3f9b013f9848a39df6aaa2ed092a3478fd11 Mon Sep 17 00:00:00 2001 From: czaks Date: Fri, 6 May 2016 14:14:22 +0200 Subject: [PATCH 108/169] synchronize catalog_link --- inc/config.php | 4 ++-- templates/thread.html | 4 +++- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/inc/config.php b/inc/config.php index 21f7b5cc..a3087162 100644 --- a/inc/config.php +++ b/inc/config.php @@ -931,8 +931,8 @@ // Show page navigation links at the top as well. $config['page_nav_top'] = false; - // Show "Catalog" link in page navigation. Use with the Catalog theme. - // $config['catalog_link'] = 'catalog.html'; + // Show "Catalog" link in page navigation. Use with the Catalog theme. Set to false to disable. + $config['catalog_link'] = 'catalog.html'; // Board categories. Only used in the "Categories" theme. // $config['categories'] = array( diff --git a/templates/thread.html b/templates/thread.html index 2d4ae262..3ddb5b1f 100644 --- a/templates/thread.html +++ b/templates/thread.html @@ -62,7 +62,9 @@ [{% trans %}Return{% endtrans %}] [{% trans %}Go to top{% endtrans %}] - [{% trans %}Catalog{% endtrans %}] + {% if config.catalog_link %} + [{% trans %}Catalog{% endtrans %}] + {% endif %} From d069a4c9fd9efb995fffa1d705dd201c09b7d13e Mon Sep 17 00:00:00 2001 From: Forkless Date: Mon, 3 Nov 2014 02:28:04 -0600 Subject: [PATCH 109/169] Added option for hiding IDs. --- js/forced-anon.js | 72 +++++++++++++++++++++++------------ stylesheets/style.css | 8 ++++ templates/post/poster_id.html | 4 +- 3 files changed, 57 insertions(+), 27 deletions(-) diff --git a/js/forced-anon.js b/js/forced-anon.js index 11327ec9..26d0cb4f 100644 --- a/js/forced-anon.js +++ b/js/forced-anon.js @@ -18,10 +18,10 @@ if (active_page == 'ukko' || active_page == 'thread' || active_page == 'index' || (window.Options && Options.get_tab('general'))) $(document).ready(function() { var force_anon = function() { - if($(this).children('a.capcode').length == 0) { + if ($(this).children('a.capcode').length == 0) { var id = $(this).parent().children('a.post_no:eq(1)').text(); - if($(this).children('a.email').length != 0) + if ($(this).children('a.email').length != 0) var p = $(this).children('a.email'); else var p = $(this); @@ -29,7 +29,7 @@ $(document).ready(function() { old_info[id] = {'name': p.children('span.name').text(), 'trip': p.children('span.trip').text()}; p.children('span.name').text('Anonymous'); - if(p.children('span.trip').length != 0) + if (p.children('span.trip').length != 0) p.children('span.trip').text(''); } }; @@ -40,44 +40,60 @@ $(document).ready(function() { var disable_fa = function() { $('p.intro label').each(function() { - if($(this).children('a.capcode').length == 0) { + if ($(this).children('a.capcode').length == 0) { var id = $(this).parent().children('a.post_no:eq(1)').text(); if(old_info[id]) { - if($(this).children('a.email').length != 0) + if ($(this).children('a.email').length != 0) var p = $(this).children('a.email'); else var p = $(this); p.children('span.name').text(old_info[id]['name']); - if(p.children('span.trip').length != 0) + if (p.children('span.trip').length != 0) p.children('span.trip').text(old_info[id]['trip']); } } }); }; + var toggle_id = function() { + if (localStorage.hideids == 'true'){ + $(this).addClass('hidden'); + } else { + $(this).removeClass('hidden'); + } + }; + old_info = {}; forced_anon = localStorage['forcedanon'] ? true : false; - var selector, event; - if (window.Options && Options.get_tab('general')) { - selector = '#forced-anon'; - event = 'change'; - Options.extend_tab("general", ""); - } - else { - selector = '#forced-anon'; - event = 'click'; + if (window.Options && Options.get_tab('general')) { + var s1 = '#hide-ids', s2 = '#forced-anon', e = 'change'; + Options.extend_tab("general", ""); + Options.extend_tab("general", ""); + } + else { + var s1 = '#hide-ids', s2 = '#forced-anon', e = 'click'; + $('hr:first').before(''); $('hr:first').before(''); $('div#forced-anon a').text(_('Forced anonymity')+' (' + (forced_anon ? _('enabled') : _('disabled')) + ')'); - } + } + $(s1).on(e, function(e) { + if (!localStorage.hideids || localStorage.hideids == 'false') { + localStorage.hideids = 'true'; + if (window.Options && Options.get_tab('general')) e.target.checked = true; + } else { + localStorage.hideids = 'false'; + if (window.Options && Options.get_tab('general')) e.target.checked = false; + } + $('.poster_id').each(toggle_id); + }); - $(selector).on(event, function() { + $(s2).on(e, function() { forced_anon = !forced_anon; - - if(forced_anon) { + if (forced_anon) { $('div#forced-anon a').text(_('Forced anonymity')+' ('+_('enabled')+')'); localStorage.forcedanon = true; enable_fa(); @@ -86,21 +102,27 @@ $(document).ready(function() { delete localStorage.forcedanon; disable_fa(); } - return false; }); + // initial option setup on script load + if (localStorage.hideids == 'true'){ + if (window.Options && Options.get_tab('general')) $('#hide-ids>input').prop('checked',true); + $('.poster_id').each(toggle_id); + } + if(forced_anon) { enable_fa(); - - if (window.Options && Options.get_tab('general')) { - $('#toggle-locked-threads>input').prop('checked', true); - } + if (window.Options && Options.get_tab('general')) { + $('#toggle-locked-threads>input').prop('checked', true); + } } $(document).on('new_post', function(e, post) { - if(forced_anon) + if (forced_anon) $(post).find('p.intro label').each(force_anon); + if (localStorage.hideids == 'true') + $(post).find('.poster_id').each(toggle_id); }); }); diff --git a/stylesheets/style.css b/stylesheets/style.css index bb7c2634..e54faf93 100644 --- a/stylesheets/style.css +++ b/stylesheets/style.css @@ -8,6 +8,10 @@ body { padding-right: 4px; } +.hidden { + display:none; +} + a,a:visited { text-decoration: underline; color: #34345C; @@ -905,6 +909,10 @@ pre { cursor: pointer; } +.poster_id::before { + content: " ID: "; +} + pre { /* Better code tags */ max-width:inherit; diff --git a/templates/post/poster_id.html b/templates/post/poster_id.html index 4efc56ff..51f0624f 100644 --- a/templates/post/poster_id.html +++ b/templates/post/poster_id.html @@ -1,7 +1,7 @@ {% if config.poster_ids %} {% if post.thread %} - ID: {{ post.ip|poster_id(post.thread) }} + {{ post.ip|poster_id(post.thread) }} {% else %} - ID: {{ post.ip|poster_id(post.id) }} + {{ post.ip|poster_id(post.id) }} {% endif %} {% endif %} From 126ee42b9dffe262457177c5dbb7ffa2db170763 Mon Sep 17 00:00:00 2001 From: czaks Date: Fri, 6 May 2016 14:34:42 +0200 Subject: [PATCH 110/169] better rules for stripping combined chars, based on 45c0d327619 by @ctrlcctrlv --- inc/functions.php | 11 +---------- 1 file changed, 1 insertion(+), 10 deletions(-) diff --git a/inc/functions.php b/inc/functions.php index 85b61b2e..d28d018d 100755 --- a/inc/functions.php +++ b/inc/functions.php @@ -2152,16 +2152,7 @@ function strip_combining_chars($str) { $o = 0; $ord = ordutf8($char, $o); - if ($ord >= 768 && $ord <= 879) - continue; - - if ($ord >= 7616 && $ord <= 7679) - continue; - - if ($ord >= 8400 && $ord <= 8447) - continue; - - if ($ord >= 65056 && $ord <= 65071) + if ( ($ord >= 768 && $ord <= 879) || ($ord >= 1536 && $ord <= 1791) || ($ord >= 3655 && $ord <= 3659) || ($ord >= 7616 && $ord <= 7679) || ($ord >= 8400 && $ord <= 8447) || ($ord >= 65056 && $ord <= 65071)) continue; $str .= $char; From aa98ca337e327fb1d8e77e124bf49922190246c4 Mon Sep 17 00:00:00 2001 From: czaks Date: Fri, 6 May 2016 14:36:14 +0200 Subject: [PATCH 111/169] i think this lump of code deserves a version bump; v5.1.0 here --- install.php | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/install.php b/install.php index 3aa8f56f..c5bbdf36 100644 --- a/install.php +++ b/install.php @@ -1,7 +1,7 @@ vichan upgrade path. query("CREATE TABLE IF NOT EXISTS ``search_queries`` ( `ip` varchar(39) NOT NULL, `time` int(11) NOT NULL, `query` text NOT NULL) ENGINE=MyISAM DEFAULT CHARSET=utf8;") or error(db_error()); From 3515fdabe713fc9143a833d0f6a889ce150142aa Mon Sep 17 00:00:00 2001 From: sourcerect Date: Thu, 4 Jun 2015 04:19:04 -0400 Subject: [PATCH 112/169] Fix tab freeze when inlining Fixes ctrlcctrlv/infinity#451 --- js/inline.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/js/inline.js b/js/inline.js index 686a540a..e581b79d 100644 --- a/js/inline.js +++ b/js/inline.js @@ -139,7 +139,7 @@ $(document).ready(function() { if (App.options.get('useInlining')) { var assign_inline = function() { - $('.body a[href*="'+location.pathname+'"]:not([rel]):not(.toolong a), .mentioned a') + $('.body a[href*="'+location.pathname+'"]').not('[rel]').not('.toolong > a').add('.mentioned a') .attr('onclick', null)// XXX disable highlightReply .off('click') .click(inline) From 65ea7b78c50ab3da60a541237f73b13cd2e7e6d8 Mon Sep 17 00:00:00 2001 From: Fredrick Brennan Date: Sun, 10 May 2015 12:51:35 +0800 Subject: [PATCH 113/169] Catalog: click to scroll thread --- js/catalog.js | 10 ++++++++++ stylesheets/style.css | 1 - 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/js/catalog.js b/js/catalog.js index 065fba7b..9adaeaef 100644 --- a/js/catalog.js +++ b/js/catalog.js @@ -35,4 +35,14 @@ if (active_page == 'catalog') $(function(){ if (catalog.image_size !== undefined) { $('#image_size').val(catalog.image_size).trigger('change'); } + + $('div.thread').on('click', function(e) { + if ($(this).css('overflow-y') === 'hidden') { + $(this).css('overflow-y', 'auto'); + $(this).css('width', '100%'); + } else { + $(this).css('overflow-y', 'hidden'); + $(this).css('width', 'auto'); + } + }); }); diff --git a/stylesheets/style.css b/stylesheets/style.css index e54faf93..b36a9de9 100644 --- a/stylesheets/style.css +++ b/stylesheets/style.css @@ -1033,7 +1033,6 @@ div.boardlist a { #watchlist-toggle, .watchThread, .watchlist-remove, #clearList, #clearGhosts { cursor: pointer; } -<<<<<<< HEAD #youtube-size input { width: 50px; From 8496b021a959af16682f8e846737020c53848bca Mon Sep 17 00:00:00 2001 From: czaks Date: Fri, 6 May 2016 14:57:07 +0200 Subject: [PATCH 114/169] comment out global reports --- js/fix-report-delete-submit.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/js/fix-report-delete-submit.js b/js/fix-report-delete-submit.js index 2bf7a70b..abed4d06 100644 --- a/js/fix-report-delete-submit.js +++ b/js/fix-report-delete-submit.js @@ -36,7 +36,7 @@ if ($('#delete-fields #password').length) { } Menu.add_item("report_menu", _("Report")); -Menu.add_item("global_report_menu", _("Global report")); +//Menu.add_item("global_report_menu", _("Global report")); Menu.onclick(function(e, $buf) { var ele = e.target.parentElement.parentElement; var $ele = $(ele); From 6e33de568d21e87f64bc7b890b9438b061aa15a9 Mon Sep 17 00:00:00 2001 From: czaks Date: Fri, 6 May 2016 15:03:53 +0200 Subject: [PATCH 115/169] hide-threads.js: add div.file to fields to hide; thanks fpdl --- js/hide-threads.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/js/hide-threads.js b/js/hide-threads.js index 175018ed..47417d39 100644 --- a/js/hide-threads.js +++ b/js/hide-threads.js @@ -36,7 +36,7 @@ $(document).ready(function(){ } } - var fields_to_hide = 'div.post,div.video-container,video,iframe,img:not(.unanimated),canvas,p.fileinfo,a.hide-thread-link,div.new-posts,br'; + var fields_to_hide = 'div.file,div.post,div.video-container,video,iframe,img:not(.unanimated),canvas,p.fileinfo,a.hide-thread-link,div.new-posts,br'; var do_hide_threads = function() { var id = $(this).children('p.intro').children('a.post_no:eq(1)').text(); From 2fa37278db9ad0e802a2b4c6a54c5d179ce6df35 Mon Sep 17 00:00:00 2001 From: czaks Date: Fri, 6 May 2016 15:09:25 +0200 Subject: [PATCH 116/169] boardlist goes before #top --- templates/thread.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/templates/thread.html b/templates/thread.html index 3ddb5b1f..88e6ec6d 100644 --- a/templates/thread.html +++ b/templates/thread.html @@ -24,8 +24,8 @@ {{ board.url }} - {{ meta_subject }} - {{ boardlist.top }} + {% if pm %}
You have an unread PM{% if pm.waiting > 0 %}, plus {{ pm.waiting }} more waiting{% endif %}.

{% endif %} {% if config.url_banner %}{% endif %}
From b476b660073adbe827836a7e7860b0fb3a061ff0 Mon Sep 17 00:00:00 2001 From: Fredrick Brennan Date: Sun, 23 Aug 2015 09:04:37 +0800 Subject: [PATCH 117/169] [BUG] Image reject repost board option now also affects YT embeds --- inc/functions.php | 47 +++++++++++++++++++++++++++++++++++++++++++++++ post.php | 28 +++++++++++++++++++++++++++- 2 files changed, 74 insertions(+), 1 deletion(-) diff --git a/inc/functions.php b/inc/functions.php index d28d018d..cbe0bc62 100755 --- a/inc/functions.php +++ b/inc/functions.php @@ -2438,6 +2438,53 @@ function getPostByHashInThread($hash, $thread) { return false; } +function getPostByEmbed($embed) { + global $board, $config; + $matches = array(); + foreach ($config['embedding'] as &$e) { + if (preg_match($e[0], $embed, $matches) && isset($matches[1]) && !empty($matches[1])) { + $embed = '%'.$matches[1].'%'; + break; + } + } + + if (!isset($embed)) return false; + + $query = prepare(sprintf("SELECT `id`,`thread` FROM ``posts_%s`` WHERE `embed` LIKE :embed", $board['uri'])); + $query->bindValue(':embed', $embed, PDO::PARAM_STR); + $query->execute() or error(db_error($query)); + + if ($post = $query->fetch(PDO::FETCH_ASSOC)) { + return $post; + } + + return false; +} + +function getPostByEmbedInThread($embed, $thread) { + global $board, $config; + $matches = array(); + foreach ($config['embedding'] as &$e) { + if (preg_match($e[0], $embed, $matches) && isset($matches[1]) && !empty($matches[1])) { + $embed = '%'.$matches[1].'%'; + break; + } + } + + if (!isset($embed)) return false; + + $query = prepare(sprintf("SELECT `id`,`thread` FROM ``posts_%s`` WHERE `embed` = :embed AND ( `thread` = :thread OR `id` = :thread )", $board['uri'])); + $query->bindValue(':embed', $embed, PDO::PARAM_STR); + $query->bindValue(':thread', $thread, PDO::PARAM_INT); + $query->execute() or error(db_error($query)); + + if ($post = $query->fetch(PDO::FETCH_ASSOC)) { + return $post; + } + + return false; +} + function undoImage(array $post) { if (!$post['has_file'] || !isset($post['files'])) return; diff --git a/post.php b/post.php index 3b4f3311..06a9dc74 100644 --- a/post.php +++ b/post.php @@ -294,6 +294,32 @@ if (isset($_POST['delete'])) { if (!isset($post['embed'])) { error($config['error']['invalid_embed']); } + + if ($config['image_reject_repost']) { + if ($p = getPostByEmbed($post['embed'])) { + error(sprintf($config['error']['fileexists'], + ($post['mod'] ? $config['root'] . $config['file_mod'] . '?/' : $config['root']) . + ($board['dir'] . $config['dir']['res'] . + ($p['thread'] ? + $p['thread'] . '.html#' . $p['id'] + : + $p['id'] . '.html' + )) + )); + } + } else if (!$post['op'] && $config['image_reject_repost_in_thread']) { + if ($p = getPostByEmbedInThread($post['embed'], $post['thread'])) { + error(sprintf($config['error']['fileexistsinthread'], + ($post['mod'] ? $config['root'] . $config['file_mod'] . '?/' : $config['root']) . + ($board['dir'] . $config['dir']['res'] . + ($p['thread'] ? + $p['thread'] . '.html#' . $p['id'] + : + $p['id'] . '.html' + )) + )); + } + } } if (!hasPermission($config['mod']['bypass_field_disable'], $board['uri'])) { @@ -798,7 +824,7 @@ if (isset($_POST['delete'])) { )); } } - } + } if (!hasPermission($config['mod']['postunoriginal'], $board['uri']) && $config['robot_enable'] && checkRobot($post['body_nomarkup'])) { undoImage($post); From 7831da83fc09ff90a0f99641bde5e2d8c08e84c5 Mon Sep 17 00:00:00 2001 From: 8chan Date: Mon, 16 Feb 2015 16:21:30 -0800 Subject: [PATCH 118/169] New event: rebuildpost, allows you to bind events to ?/edit --- inc/functions.php | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/inc/functions.php b/inc/functions.php index cbe0bc62..4746b034 100755 --- a/inc/functions.php +++ b/inc/functions.php @@ -1166,19 +1166,22 @@ function deleteFile($id, $remove_entirely_if_already=true, $file=null) { // rebuild post (markup) function rebuildPost($id) { - global $board; + global $board, $mod; - $query = prepare(sprintf("SELECT `body_nomarkup`, `thread` FROM ``posts_%s`` WHERE `id` = :id", $board['uri'])); + $query = prepare(sprintf("SELECT * FROM ``posts_%s`` WHERE `id` = :id", $board['uri'])); $query->bindValue(':id', $id, PDO::PARAM_INT); $query->execute() or error(db_error($query)); if ((!$post = $query->fetch(PDO::FETCH_ASSOC)) || !$post['body_nomarkup']) return false; - markup($body = &$post['body_nomarkup']); + markup($post['body'] = &$post['body_nomarkup']); + $post = (object)$post; + event('rebuildpost', $post); + $post = (array)$post; $query = prepare(sprintf("UPDATE ``posts_%s`` SET `body` = :body WHERE `id` = :id", $board['uri'])); - $query->bindValue(':body', $body); + $query->bindValue(':body', $post['body']); $query->bindValue(':id', $id, PDO::PARAM_INT); $query->execute() or error(db_error($query)); From ce3ce4f1b65198083c232897c169313640f23038 Mon Sep 17 00:00:00 2001 From: 8chan Date: Mon, 16 Feb 2015 16:24:54 -0800 Subject: [PATCH 119/169] Fix *0 secure tripcodes caused by accidentally feeding + signs to crypt() --- inc/functions.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/inc/functions.php b/inc/functions.php index 4746b034..6a34e7a8 100755 --- a/inc/functions.php +++ b/inc/functions.php @@ -2374,7 +2374,7 @@ function generate_tripcode($name) { if (isset($config['custom_tripcode']["##{$trip}"])) $trip = $config['custom_tripcode']["##{$trip}"]; else - $trip = '!!' . substr(crypt($trip, '_..A.' . substr(base64_encode(sha1($trip . $config['secure_trip_salt'], true)), 0, 4)), -10); + $trip = '!!' . substr(crypt($trip, str_replace('+', '.', '_..A.' . substr(base64_encode(sha1($trip . $config['secure_trip_salt'], true)), 0, 4))), -10); } else { if (isset($config['custom_tripcode']["#{$trip}"])) $trip = $config['custom_tripcode']["#{$trip}"]; From 6dd1420f91410531bb2dac506f821d959bf74d0a Mon Sep 17 00:00:00 2001 From: 8chan Date: Wed, 18 Feb 2015 16:55:03 -0800 Subject: [PATCH 120/169] Add event to quote backlinks --- inc/functions.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/inc/functions.php b/inc/functions.php index 6a34e7a8..8f650828 100755 --- a/inc/functions.php +++ b/inc/functions.php @@ -1952,7 +1952,7 @@ function markup(&$body, $track_cites = false, $op = false) { } if (isset($cited_posts[$cite])) { - $replacement = '' . '>>' . $cite . @@ -2051,7 +2051,7 @@ function markup(&$body, $track_cites = false, $op = false) { $replacement = '' . '>>>/' . $_board . '/' . $cite . ''; From 7911c374e86ef8fa69c4545867b9d9d3de12d5c6 Mon Sep 17 00:00:00 2001 From: 8chan Date: Wed, 25 Feb 2015 17:21:49 -0800 Subject: [PATCH 121/169] Public action logs commit (log.php) Note: In a previous commit, I began making inc/mod/auth.php more modular with the check_login() function. Including it does NOT check mod login by default anymore like it does on vichan. You have to call check_login(). I've finally included it in inc/functions.php. If you have any custom pages that use inc/mod/auth.php, just including functions.php is enough now. =================================== Also: backports 351375185e5 (early 404) --- inc/config.php | 22 +++++++++++++++++----- inc/functions.php | 22 ++++++++++++++++++++-- inc/mod/auth.php | 2 +- inc/mod/pages.php | 36 ++++++++++++++++++++++++++++++++++++ install.sql | 1 + log.php | 24 ++++++++++++++++++++++++ mod.php | 6 +++--- post.php | 5 +++-- templates/mod/log.html | 16 ++++++++++++++-- tools/inc/cli.php | 1 - 10 files changed, 119 insertions(+), 16 deletions(-) create mode 100644 log.php diff --git a/inc/config.php b/inc/config.php index a3087162..b6bc3b69 100644 --- a/inc/config.php +++ b/inc/config.php @@ -511,6 +511,13 @@ // The timeout for the above, in seconds. $config['upload_by_url_timeout'] = 15; + // Enable early 404? With default settings, a thread would 404 if it was to leave page 3, if it had less + // than 3 replies. + $config['early_404'] = false; + + $config['early_404_page'] = 3; + $config['early_404_replies'] = 5; + // A wordfilter (sometimes referred to as just a "filter" or "censor") automatically scans users’ posts // as they are submitted and changes or censors particular words or phrases. @@ -1537,25 +1544,30 @@ /* * ==================== - * Public post search + * Public pages * ==================== */ + + // Public post search settings $config['search'] = array(); // Enable the search form $config['search']['enable'] = false; // Maximal number of queries per IP address per minutes - $config['search']['queries_per_minutes'] = Array(15, 2); + $config['search']['queries_per_minutes'] = Array(15, 2); // Global maximal number of queries per minutes - $config['search']['queries_per_minutes_all'] = Array(50, 2); + $config['search']['queries_per_minutes_all'] = Array(50, 2); // Limit of search results - $config['search']['search_limit'] = 100; + $config['search']['search_limit'] = 100; // Boards for searching - //$config['search']['boards'] = array('a', 'b', 'c', 'd', 'e'); + //$config['search']['boards'] = array('a', 'b', 'c', 'd', 'e'); + + // Enable public logs? 0: NO, 1: YES, 2: YES, but drop names + $config['public_logs'] = 0; /* * ==================== diff --git a/inc/functions.php b/inc/functions.php index 8f650828..378e40b3 100755 --- a/inc/functions.php +++ b/inc/functions.php @@ -18,6 +18,7 @@ require_once 'inc/template.php'; require_once 'inc/database.php'; require_once 'inc/events.php'; require_once 'inc/api.php'; +require_once 'inc/mod/auth.php'; require_once 'inc/polyfill.php'; if (!extension_loaded('gettext')) { @@ -524,7 +525,8 @@ function setupBoard($array) { $board = array( 'uri' => $array['uri'], 'title' => $array['title'], - 'subtitle' => $array['subtitle'] + 'subtitle' => $array['subtitle'], + #'indexed' => $array['indexed'], ); // older versions @@ -1270,7 +1272,7 @@ function deletePost($id, $error_if_doesnt_exist=true, $rebuild_after=true) { return true; } -function clean() { +function clean($pid = false) { global $board, $config; $offset = round($config['max_pages']*$config['threads_per_page']); @@ -1281,6 +1283,22 @@ function clean() { $query->execute() or error(db_error($query)); while ($post = $query->fetch(PDO::FETCH_ASSOC)) { deletePost($post['id'], false, false); + if ($pid) modLog("Automatically deleting thread #{$post['id']} due to new thread #{$pid}"); + } + + // Bump off threads with X replies earlier, spam prevention method + if ($config['early_404']) { + $offset = round($config['early_404_page']*$config['threads_per_page']); + $query = prepare(sprintf("SELECT `id` AS `thread_id`, (SELECT COUNT(`id`) FROM ``posts_%s`` WHERE `thread` = `thread_id`) AS `reply_count` FROM ``posts_%s`` WHERE `thread` IS NULL ORDER BY `sticky` DESC, `bump` DESC LIMIT :offset, 9001", $board['uri'], $board['uri'])); + $query->bindValue(':offset', $offset, PDO::PARAM_INT); + $query->execute() or error(db_error($query)); + + while ($post = $query->fetch(PDO::FETCH_ASSOC)) { + if ($post['reply_count'] < $config['early_404_replies']) { + deletePost($post['thread_id'], false, false); + if ($pid) modLog("Automatically deleting thread #{$post['thread_id']} due to new thread #{$pid} (early 404 is set, #{$post['thread_id']} had {$post['reply_count']} replies)"); + } + } } } diff --git a/inc/mod/auth.php b/inc/mod/auth.php index 009e93ad..42f34196 100644 --- a/inc/mod/auth.php +++ b/inc/mod/auth.php @@ -130,7 +130,7 @@ function destroyCookies() { function modLog($action, $_board=null) { global $mod, $board, $config; $query = prepare("INSERT INTO ``modlogs`` VALUES (:id, :ip, :board, :time, :text)"); - $query->bindValue(':id', $mod['id'], PDO::PARAM_INT); + $query->bindValue(':id', (isset($mod['id']) ? $mod['id'] : -1), PDO::PARAM_INT); $query->bindValue(':ip', $_SERVER['REMOTE_ADDR']); $query->bindValue(':time', time(), PDO::PARAM_INT); $query->bindValue(':text', $action); diff --git a/inc/mod/pages.php b/inc/mod/pages.php index a90fbbd6..ca12eaf1 100644 --- a/inc/mod/pages.php +++ b/inc/mod/pages.php @@ -698,6 +698,42 @@ function mod_user_log($username, $page_no = 1) { mod_page(_('Moderation log'), 'mod/log.html', array('logs' => $logs, 'count' => $count, 'username' => $username)); } +function mod_board_log($board, $page_no = 1, $hide_names = false, $public = false) { + global $config; + + if ($page_no < 1) + error($config['error']['404']); + + if (!hasPermission($config['mod']['mod_board_log'], $board) && !$public) + error($config['error']['noaccess']); + + $query = prepare("SELECT `username`, `mod`, `ip`, `board`, `time`, `text` FROM ``modlogs`` LEFT JOIN ``mods`` ON `mod` = ``mods``.`id` WHERE `board` = :board ORDER BY `time` DESC LIMIT :offset, :limit"); + $query->bindValue(':board', $board); + $query->bindValue(':limit', $config['mod']['modlog_page'], PDO::PARAM_INT); + $query->bindValue(':offset', ($page_no - 1) * $config['mod']['modlog_page'], PDO::PARAM_INT); + $query->execute() or error(db_error($query)); + $logs = $query->fetchAll(PDO::FETCH_ASSOC); + + if (empty($logs) && $page_no > 1) + error($config['error']['404']); + + if (!hasPermission($config['mod']['show_ip'])) { + // Supports ipv4 only! + foreach ($logs as $i => &$log) { + $log['text'] = preg_replace_callback('/(?:)?(\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})(?:<\/a>)?/', function($matches) { + return "xxxx";//less_ip($matches[1]); + }, $log['text']); + } + } + + $query = prepare("SELECT COUNT(*) FROM ``modlogs`` LEFT JOIN ``mods`` ON `mod` = ``mods``.`id` WHERE `board` = :board"); + $query->bindValue(':board', $board); + $query->execute() or error(db_error($query)); + $count = $query->fetchColumn(); + + mod_page(_('Board log'), 'mod/log.html', array('logs' => $logs, 'count' => $count, 'board' => $board, 'hide_names' => $hide_names, 'public' => $public)); +} + function mod_view_board($boardName, $page_no = 1) { global $config, $mod; diff --git a/install.sql b/install.sql index 7e661450..024cb349 100644 --- a/install.sql +++ b/install.sql @@ -65,6 +65,7 @@ CREATE TABLE IF NOT EXISTS `boards` ( `uri` varchar(58) CHARACTER SET utf8 NOT NULL, `title` tinytext NOT NULL, `subtitle` tinytext, + -- `indexed` boolean default true, PRIMARY KEY (`uri`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8mb4; diff --git a/log.php b/log.php new file mode 100644 index 00000000..1a660c4c --- /dev/null +++ b/log.php @@ -0,0 +1,24 @@ + {% if log.username %} - {{ log.username|e }} + {% if hide_names %} + hidden + {% else %} + {% if not mod|hasPermission(config.mod.modlog) %} + {{ log.username|e }} + {% else %} + {{ log.username|e }} + {% endif %} + {% endif %} {% elseif log.mod == -1 %} system {% else %} @@ -44,7 +52,11 @@ {% if count > logs|count %}

{% for i in range(0, (count - 1) / config.mod.modlog_page) %} - [{{ i + 1 }}] + {% if public %} + [{{ i + 1 }}] + {% else %} + [{{ i + 1 }}] + {% endif %} {% endfor %}

{% endif %} diff --git a/tools/inc/cli.php b/tools/inc/cli.php index f3e8824f..95d51573 100644 --- a/tools/inc/cli.php +++ b/tools/inc/cli.php @@ -39,7 +39,6 @@ if(!getenv('TINYBOARD_PATH')) { putenv('TINYBOARD_PATH=' . getcwd()); require 'inc/functions.php'; -require 'inc/mod/auth.php'; $mod = Array( 'id' => -1, From 95b1e103cb9f349d7d82dca071636d5cde855ead Mon Sep 17 00:00:00 2001 From: Fredrick Brennan Date: Sun, 29 Mar 2015 09:18:14 +0800 Subject: [PATCH 122/169] Edit static pages commit --- .gitmodules | 6 ++ inc/config.php | 6 ++ inc/functions.php | 43 ++++++++++ inc/mod/pages.php | 162 +++++++++++++++++++++++++++++++++++ install.sql | 20 ++++- mod.php | 18 ++-- templates/mod/edit_page.html | 29 +++++++ templates/mod/pages.html | 34 ++++++++ tools/import_rules.php | 16 ++++ 9 files changed, 328 insertions(+), 6 deletions(-) create mode 100644 templates/mod/edit_page.html create mode 100644 templates/mod/pages.html create mode 100644 tools/import_rules.php diff --git a/.gitmodules b/.gitmodules index 73f90e0a..df07fdf3 100644 --- a/.gitmodules +++ b/.gitmodules @@ -1,3 +1,9 @@ [submodule "js/wPaint"] path = js/wPaint url = https://github.com/vichan-devel/wPaint.git + branch = master + +[submodule "inc/lib/parsedown"] + path = inc/lib/parsedown + url = https://github.com/vichan-devel/parsedown + branch = master diff --git a/inc/config.php b/inc/config.php index b6bc3b69..3fdb8d2f 100644 --- a/inc/config.php +++ b/inc/config.php @@ -1498,6 +1498,9 @@ $config['mod']['ban_appeals'] = MOD; // View the recent posts page $config['mod']['recent'] = MOD; + // Create pages + $config['mod']['edit_pages'] = MOD; + $config['pages_max'] = 10; // Config editor permissions $config['mod']['config'] = array(); @@ -1702,3 +1705,6 @@ // Use CAPTCHA for reports? $config['report_captcha'] = false; + + // Allowed HTML tags in ?/edit_pages. + $config['allowed_html'] = 'a[href|title],p,br,li,ol,ul,strong,em,u,h2,b,i,tt,div,img[src|alt|title],hr'; diff --git a/inc/functions.php b/inc/functions.php index 378e40b3..7970d05a 100755 --- a/inc/functions.php +++ b/inc/functions.php @@ -20,6 +20,7 @@ require_once 'inc/events.php'; require_once 'inc/api.php'; require_once 'inc/mod/auth.php'; require_once 'inc/polyfill.php'; +//require_once 'inc/lib/parsedown/Parsedown.php'; // we don't need that right now, do we? if (!extension_loaded('gettext')) { require_once 'inc/lib/gettext/gettext.inc'; @@ -2739,3 +2740,45 @@ function link_for($post, $page50 = false, $foreignlink = false, $thread = false) return sprintf($tpl, $id, $slug); } + +function prettify_textarea($s){ + return str_replace("\t", ' ', str_replace("\n", ' ', htmlentities($s))); +} + +class HTMLPurifier_URIFilter_NoExternalImages extends HTMLPurifier_URIFilter { + public $name = 'NoExternalImages'; + public function filter(&$uri, $c, $context) { + global $config; + $ct = $context->get('CurrentToken'); + + if (!$ct || $ct->name !== 'img') return true; + + if (!isset($uri->host) && !isset($uri->scheme)) return true; + + if (!in_array($uri->scheme . '://' . $uri->host . '/', $config['allowed_offsite_urls'])) { + error('No off-site links in board announcement images.'); + } + + return true; + } +} + +function purify_html($s) { + global $config; + + $c = HTMLPurifier_Config::createDefault(); + $c->set('HTML.Allowed', $config['allowed_html']); + $uri = $c->getDefinition('URI'); + $uri->addFilter(new HTMLPurifier_URIFilter_NoExternalImages(), $c); + $purifier = new HTMLPurifier($c); + $clean_html = $purifier->purify($s); + return $clean_html; +} + +function markdown($s) { + $pd = new Parsedown(); + $pd->setMarkupEscaped(true); + $pd->setimagesEnabled(false); + + return $pd->text($s); +} diff --git a/inc/mod/pages.php b/inc/mod/pages.php index ca12eaf1..328380d8 100644 --- a/inc/mod/pages.php +++ b/inc/mod/pages.php @@ -2628,6 +2628,167 @@ function mod_theme_rebuild($theme_name) { )); } +// This needs to be done for `secure` CSRF prevention compatibility, otherwise the $board will be read in as the token if editing global pages. +function delete_page_base($page = '', $board = false) { + global $config, $mod; + + if (empty($board)) + $board = false; + + if (!$board && $mod['boards'][0] !== '*') + error($config['error']['noaccess']); + + if (!hasPermission($config['mod']['edit_pages'], $board)) + error($config['error']['noaccess']); + + if ($board !== FALSE && !openBoard($board)) + error($config['error']['noboard']); + + if ($board) { + $query = prepare('DELETE FROM ``pages`` WHERE `board` = :board AND `name` = :name'); + $query->bindValue(':board', ($board ? $board : NULL)); + } else { + $query = prepare('DELETE FROM ``pages`` WHERE `board` IS NULL AND `name` = :name'); + } + $query->bindValue(':name', $page); + $query->execute() or error(db_error($query)); + + header('Location: ?/edit_pages' . ($board ? ('/' . $board) : ''), true, $config['redirect_http']); +} + +function mod_delete_page($page = '') { + delete_page_base($page); +} + +function mod_delete_page_board($page = '', $board = false) { + delete_page_base($page, $board); +} + +function mod_edit_page($id) { + global $config, $mod, $board; + + $query = prepare('SELECT * FROM ``pages`` WHERE `id` = :id'); + $query->bindValue(':id', $id); + $query->execute() or error(db_error($query)); + $page = $query->fetch(); + + if (!$page) + error(_('Could not find the page you are trying to edit.')); + + if (!$page['board'] && $mod['boards'][0] !== '*') + error($config['error']['noaccess']); + + if (!hasPermission($config['mod']['edit_pages'], $page['board'])) + error($config['error']['noaccess']); + + if ($page['board'] && !openBoard($page['board'])) + error($config['error']['noboard']); + + if (isset($_POST['method'], $_POST['content'])) { + $content = $_POST['content']; + $method = $_POST['method']; + $page['type'] = $method; + + if (!in_array($method, array('markdown', 'html', 'infinity'))) + error(_('Unrecognized page markup method.')); + + switch ($method) { + case 'markdown': + $write = markdown($content); + break; + case 'html': + if (hasPermission($config['mod']['rawhtml'])) { + $write = $content; + } else { + $write = purify_html($content); + } + break; + case 'infinity': + $c = $content; + markup($content); + $write = $content; + $content = $c; + } + + if (!isset($write) or !$write) + error(_('Failed to mark up your input for some reason...')); + + $query = prepare('UPDATE ``pages`` SET `type` = :method, `content` = :content WHERE `id` = :id'); + $query->bindValue(':method', $method); + $query->bindValue(':content', $content); + $query->bindValue(':id', $id); + $query->execute() or error(db_error($query)); + + $fn = ($board['uri'] ? ($board['uri'] . '/') : '') . $page['name'] . '.html'; + $body = "
$write
"; + $html = Element('page.html', array('config' => $config, 'body' => $body, 'title' => utf8tohtml($page['title']))); + file_write($fn, $html); + } + + if (!isset($content)) { + $query = prepare('SELECT `content` FROM ``pages`` WHERE `id` = :id'); + $query->bindValue(':id', $id); + $query->execute() or error(db_error($query)); + $content = $query->fetchColumn(); + } + + mod_page(sprintf(_('Editing static page: %s'), $page['name']), 'mod/edit_page.html', array('page' => $page, 'token' => make_secure_link_token("edit_page/$id"), 'content' => prettify_textarea($content), 'board' => $board)); +} + +function mod_pages($board = false) { + global $config, $mod, $pdo; + + if (empty($board)) + $board = false; + + if (!$board && $mod['boards'][0] !== '*') + error($config['error']['noaccess']); + + if (!hasPermission($config['mod']['edit_pages'], $board)) + error($config['error']['noaccess']); + + if ($board !== FALSE && !openBoard($board)) + error($config['error']['noboard']); + + if ($board) { + $query = prepare('SELECT * FROM ``pages`` WHERE `board` = :board'); + $query->bindValue(':board', $board); + } else { + $query = query('SELECT * FROM ``pages`` WHERE `board` IS NULL'); + } + $query->execute() or error(db_error($query)); + $pages = $query->fetchAll(PDO::FETCH_ASSOC); + + if (isset($_POST['page'])) { + if ($board and sizeof($pages) > $config['pages_max']) + error(sprintf(_('Sorry, this site only allows %d pages per board.'), $config['pages_max'])); + + if (!preg_match('/^[a-z0-9]{1,255}$/', $_POST['page'])) + error(_('Page names must be < 255 chars and may only contain lowercase letters A-Z and digits 1-9.')); + + foreach ($pages as $i => $p) { + if ($_POST['page'] === $p['name']) + error(_('Refusing to create a new page with the same name as an existing one.')); + } + + $title = ($_POST['title'] ? $_POST['title'] : NULL); + + $query = prepare('INSERT INTO ``pages``(board, title, name) VALUES(:board, :title, :name)'); + $query->bindValue(':board', ($board ? $board : NULL)); + $query->bindValue(':title', $title); + $query->bindValue(':name', $_POST['page']); + $query->execute() or error(db_error($query)); + + $pages[] = array('id' => $pdo->lastInsertId(), 'name' => $_POST['page'], 'board' => $board, 'title' => $title); + } + + foreach ($pages as $i => &$p) { + $p['delete_token'] = make_secure_link_token('edit_pages/delete/' . $p['name'] . ($board ? ('/' . $board) : '')); + } + + mod_page(_('Pages'), 'mod/pages.html', array('pages' => $pages, 'token' => make_secure_link_token('edit_pages' . ($board ? ('/' . $board) : '')), 'board' => $board)); +} + function mod_debug_antispam() { global $pdo, $config; @@ -2744,3 +2905,4 @@ function mod_debug_apc() { mod_page(_('Debug: APC'), 'mod/debug/apc.html', array('cached_vars' => $cached_vars)); } + diff --git a/install.sql b/install.sql index 024cb349..720e4ed5 100644 --- a/install.sql +++ b/install.sql @@ -245,7 +245,7 @@ CREATE TABLE IF NOT EXISTS `search_queries` ( `ip` varchar(39) NOT NULL, `time` int(11) NOT NULL, `query` text NOT NULL -) ENGINE=MyISAM DEFAULT CHARSET=utf8; +) ENGINE=MyISAM DEFAULT CHARSET=utf8mb4; -- -------------------------------------------------------- @@ -297,6 +297,24 @@ CREATE TABLE IF NOT EXISTS `ban_appeals` ( KEY `ban_id` (`ban_id`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8mb4 AUTO_INCREMENT=1 ; +-- -------------------------------------------------------- + +-- +-- Table structure for table `pages` +-- + +CREATE TABLE `pages` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `board` varchar(255) DEFAULT NULL, + `name` varchar(255) NOT NULL, + `title` varchar(255) DEFAULT NULL, + `type` varchar(255) DEFAULT NULL, + `content` text, + PRIMARY KEY (`id`), + UNIQUE KEY `u_pages` (`name`,`board`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8mb4; + +>>>>>>> 12fa8ec... Edit static pages commit /*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */; /*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */; /*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */; diff --git a/mod.php b/mod.php index a6ff00cf..fbe679ac 100644 --- a/mod.php +++ b/mod.php @@ -33,11 +33,19 @@ $pages = array( '/log' => 'log', // modlog '/log/(\d+)' => 'log', // modlog - '/log:([^/]+)' => 'user_log', // modlog - '/log:([^/]+)/(\d+)' => 'user_log', // modlog - '/news' => 'secure_POST news', // view news - '/news/(\d+)' => 'secure_POST news', // view news - '/news/delete/(\d+)' => 'secure news_delete', // delete from news + '/log:([^/:]+)' => 'user_log', // modlog + '/log:([^/:]+)/(\d+)' => 'user_log', // modlog + '/log:b:([^/]+)' => 'board_log', // modlog + '/log:b:([^/]+)/(\d+)' => 'board_log', // modlog + + '/edit_news' => 'secure_POST news', // view news + '/edit_news/(\d+)' => 'secure_POST news', // view news + '/edit_news/delete/(\d+)' => 'secure news_delete', // delete from news + + '/edit_pages(?:/?(\%b)?)' => 'secure_POST pages', + '/edit_page/(\d+)' => 'secure_POST edit_page', + '/edit_pages/delete/([a-z0-9]+)' => 'secure delete_page', + '/edit_pages/delete/([a-z0-9]+)/(\%b)' => 'secure delete_page_board', '/noticeboard' => 'secure_POST noticeboard', // view noticeboard '/noticeboard/(\d+)' => 'secure_POST noticeboard', // view noticeboard diff --git a/templates/mod/edit_page.html b/templates/mod/edit_page.html new file mode 100644 index 00000000..3d132767 --- /dev/null +++ b/templates/mod/edit_page.html @@ -0,0 +1,29 @@ +
+ + + + + + + +
{% trans %}Markup method{% endtrans %} + {% set allowed_html = config.allowed_html %} + {% trans %}

"markdown" is provided by parsedown. Note: images disabled.

+

"html" allows the following tags:
{{ allowed_html }}

+

"infinity" is the same as what is used in posts.

+

This page will not convert between formats,
choose it once or do the conversion yourself!

{% endtrans %} +
+ +
{% trans %}Page content{% endtrans %} +
+ {% trans %}Page will appear at:{% endtrans %} + {% if board %} {{ config.domain }}/{{ board.uri }}/{{ page.name }}.html + {% else %} {{ config.site }}/{{ page.name }}.html + {% endif %}
+ + +
diff --git a/templates/mod/pages.html b/templates/mod/pages.html new file mode 100644 index 00000000..c2395c02 --- /dev/null +++ b/templates/mod/pages.html @@ -0,0 +1,34 @@ + +
+

+{% if board %} +{% set page_max = config.pages_max %} +{% trans %}This page allows you to create static pages for your board. The limit is {{ page_max }} pages per board. You will still have to link to your pages somewhere in your board, for example in a sticky or in the board's announcement. To make links in the board's announcement, use <a> HTML tags.{% endtrans %} +{% else %} +{% trans %}This page allows you to create static pages for your imageboard.{% endtrans %} +{% endif %} +

{% trans %}Existing pages{% endtrans %}

+{% if pages %} +
+ + +{% for page in pages %} + +{% endfor %} +{% else %} +No pages yet! +{% endif %} +
{% trans %}URL{% endtrans %}{% trans %}Title{% endtrans %}{% trans %}Edit{% endtrans %}{% trans %}Delete{% endtrans %}
{{ page.name }}{{ page.title }}{% trans %}Edit{% endtrans %}{% trans %}Delete{% endtrans %}
+
+
+

{% trans %}Create a new page{% endtrans %}

+
+ + + + +
{% trans %}URL{% endtrans %}{% trans %}Title{% endtrans %}
+ +
+ +
diff --git a/tools/import_rules.php b/tools/import_rules.php new file mode 100644 index 00000000..f583f035 --- /dev/null +++ b/tools/import_rules.php @@ -0,0 +1,16 @@ + $b) { + $rules = @file_get_contents($b.'/rules.txt'); + if ($rules && !empty(trim($rules))) { + $query = prepare('INSERT INTO ``pages``(name, title, type, board, content) VALUES("rules", "Rules", "html", :board, :content)'); + $query->bindValue(':board', $b); + $query->bindValue(':content', $rules); + $query->execute() or error(db_error($query)); + } +} From d726eaf195a18a35c44fe0b08aa0960e4a79e272 Mon Sep 17 00:00:00 2001 From: czaks Date: Fri, 6 May 2016 16:07:21 +0200 Subject: [PATCH 123/169] we don't have a htmlpurifier yet ;_; --- inc/functions.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/inc/functions.php b/inc/functions.php index 7970d05a..845c4cb3 100755 --- a/inc/functions.php +++ b/inc/functions.php @@ -2745,7 +2745,7 @@ function prettify_textarea($s){ return str_replace("\t", ' ', str_replace("\n", ' ', htmlentities($s))); } -class HTMLPurifier_URIFilter_NoExternalImages extends HTMLPurifier_URIFilter { +/*class HTMLPurifier_URIFilter_NoExternalImages extends HTMLPurifier_URIFilter { public $name = 'NoExternalImages'; public function filter(&$uri, $c, $context) { global $config; @@ -2761,7 +2761,7 @@ class HTMLPurifier_URIFilter_NoExternalImages extends HTMLPurifier_URIFilter { return true; } -} +}*/ function purify_html($s) { global $config; From 91c02c3ec41e5c7fa28e70ec4c9b4194ec941620 Mon Sep 17 00:00:00 2001 From: czaks Date: Fri, 6 May 2016 16:21:30 +0200 Subject: [PATCH 124/169] board pages: add a migration --- install.php | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/install.php b/install.php index c5bbdf36..5a6512ba 100644 --- a/install.php +++ b/install.php @@ -1,7 +1,7 @@ vichan upgrade path. query("CREATE TABLE IF NOT EXISTS ``search_queries`` ( `ip` varchar(39) NOT NULL, `time` int(11) NOT NULL, `query` text NOT NULL) ENGINE=MyISAM DEFAULT CHARSET=utf8;") or error(db_error()); From d788131202604a32986c4ba2bfca841c844ff010 Mon Sep 17 00:00:00 2001 From: 8chan Date: Sun, 14 Dec 2014 03:27:26 -0800 Subject: [PATCH 125/169] Allow a board called news to exist --- inc/mod/pages.php | 8 ++++---- templates/mod/dashboard.html | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/inc/mod/pages.php b/inc/mod/pages.php index 328380d8..6d1e20b4 100644 --- a/inc/mod/pages.php +++ b/inc/mod/pages.php @@ -608,7 +608,7 @@ function mod_news($page_no = 1) { rebuildThemes('news'); - header('Location: ?/news#' . $pdo->lastInsertId(), true, $config['redirect_http']); + header('Location: ?/edit_news#' . $pdo->lastInsertId(), true, $config['redirect_http']); } $query = prepare("SELECT * FROM ``news`` ORDER BY `id` DESC LIMIT :offset, :limit"); @@ -621,14 +621,14 @@ function mod_news($page_no = 1) { error($config['error']['404']); foreach ($news as &$entry) { - $entry['delete_token'] = make_secure_link_token('news/delete/' . $entry['id']); + $entry['delete_token'] = make_secure_link_token('edit_news/delete/' . $entry['id']); } $query = prepare("SELECT COUNT(*) FROM ``news``"); $query->execute() or error(db_error($query)); $count = $query->fetchColumn(); - mod_page(_('News'), 'mod/news.html', array('news' => $news, 'count' => $count, 'token' => make_secure_link_token('news'))); + mod_page(_('News'), 'mod/news.html', array('news' => $news, 'count' => $count, 'token' => make_secure_link_token('edit_news'))); } function mod_news_delete($id) { @@ -643,7 +643,7 @@ function mod_news_delete($id) { modLog('Deleted a news entry'); - header('Location: ?/news', true, $config['redirect_http']); + header('Location: ?/edit_news', true, $config['redirect_http']); } function mod_log($page_no = 1) { diff --git a/templates/mod/dashboard.html b/templates/mod/dashboard.html index 7e25555b..5c44a522 100644 --- a/templates/mod/dashboard.html +++ b/templates/mod/dashboard.html @@ -62,7 +62,7 @@ {% endif %}
  • {% trans 'View all noticeboard entries' %}
  • {% endif %} -
  • {% trans 'News' %}
  • +
  • {% trans 'News' %}
  • {% trans 'PM inbox' %} From ab02a4272514410fc053ced9c17a26bc0c8f1cf4 Mon Sep 17 00:00:00 2001 From: czaks Date: Fri, 6 May 2016 16:27:43 +0200 Subject: [PATCH 126/169] maybe we can try to load Parsedown, after all we can silence the error --- inc/functions.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/inc/functions.php b/inc/functions.php index 845c4cb3..e9692d56 100755 --- a/inc/functions.php +++ b/inc/functions.php @@ -20,7 +20,7 @@ require_once 'inc/events.php'; require_once 'inc/api.php'; require_once 'inc/mod/auth.php'; require_once 'inc/polyfill.php'; -//require_once 'inc/lib/parsedown/Parsedown.php'; // we don't need that right now, do we? +@include_once 'inc/lib/parsedown/Parsedown.php'; // fail silently, this isn't a critical piece of code if (!extension_loaded('gettext')) { require_once 'inc/lib/gettext/gettext.inc'; From 505adffcdca1c1141b7b46f862b7939f2f4acf45 Mon Sep 17 00:00:00 2001 From: Fredrick Brennan Date: Fri, 3 Apr 2015 14:56:28 +0800 Subject: [PATCH 127/169] =?UTF-8?q?Cyclical=20threads=20=E2=99=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- inc/api.php | 1 + inc/config.php | 5 +++++ inc/functions.php | 8 +++++++- inc/mod/pages.php | 22 ++++++++++++++++++++++ install.php | 7 ++++++- mod.php | 1 + post.php | 11 ++++++++++- templates/post/post_controls.html | 8 +++++++- templates/post_thread.html | 13 ++++++++++--- templates/posts.sql | 1 + 10 files changed, 70 insertions(+), 7 deletions(-) diff --git a/inc/api.php b/inc/api.php index b2d8adec..b280c25b 100644 --- a/inc/api.php +++ b/inc/api.php @@ -32,6 +32,7 @@ class Api { 'images' => 'images', 'sticky' => 'sticky', 'locked' => 'locked', + 'cycle' => 'cyclical', 'bump' => 'last_modified', 'embed' => 'embed', ); diff --git a/inc/config.php b/inc/config.php index 3fdb8d2f..82fdc882 100644 --- a/inc/config.php +++ b/inc/config.php @@ -1245,6 +1245,8 @@ $config['mod']['link_bumpunlock'] = '[-Sage]'; $config['mod']['link_editpost'] = '[Edit]'; $config['mod']['link_move'] = '[Move]'; + $config['mod']['link_cycle'] = '[Cycle]'; + $config['mod']['link_uncycle'] = '[-Cycle]'; // Moderator capcodes. $config['capcode'] = ' ## %s'; @@ -1388,6 +1390,9 @@ $config['mod']['deletebyip_global'] = ADMIN; // Sticky a thread $config['mod']['sticky'] = MOD; + // Cycle a thread + $config['mod']['cycle'] = MOD; + $config['cycle_limit'] = &$config['reply_limit']; // Lock a thread $config['mod']['lock'] = MOD; // Post in a locked thread diff --git a/inc/functions.php b/inc/functions.php index e9692d56..1bd1f32f 100755 --- a/inc/functions.php +++ b/inc/functions.php @@ -1021,7 +1021,7 @@ function insertFloodPost(array $post) { function post(array $post) { global $pdo, $board; - $query = prepare(sprintf("INSERT INTO ``posts_%s`` VALUES ( NULL, :thread, :subject, :email, :name, :trip, :capcode, :body, :body_nomarkup, :time, :time, :files, :num_files, :filehash, :password, :ip, :sticky, :locked, 0, :embed, :slug)", $board['uri'])); + $query = prepare(sprintf("INSERT INTO ``posts_%s`` VALUES ( NULL, :thread, :subject, :email, :name, :trip, :capcode, :body, :body_nomarkup, :time, :time, :files, :num_files, :filehash, :password, :ip, :sticky, :locked, :cycle, 0, :embed, :slug)", $board['uri'])); // Basic stuff if (!empty($post['subject'])) { @@ -1061,6 +1061,12 @@ function post(array $post) { $query->bindValue(':locked', false, PDO::PARAM_INT); } + if ($post['op'] && $post['mod'] && isset($post['cycle']) && $post['cycle']) { + $query->bindValue(':cycle', true, PDO::PARAM_INT); + } else { + $query->bindValue(':cycle', false, PDO::PARAM_INT); + } + if ($post['mod'] && isset($post['capcode']) && $post['capcode']) { $query->bindValue(':capcode', $post['capcode'], PDO::PARAM_INT); } else { diff --git a/inc/mod/pages.php b/inc/mod/pages.php index 6d1e20b4..303fa3dd 100644 --- a/inc/mod/pages.php +++ b/inc/mod/pages.php @@ -1089,6 +1089,28 @@ function mod_sticky($board, $unsticky, $post) { header('Location: ?/' . sprintf($config['board_path'], $board) . $config['file_index'], true, $config['redirect_http']); } +function mod_cycle($board, $uncycle, $post) { + global $config; + + if (!openBoard($board)) + error($config['error']['noboard']); + + if (!hasPermission($config['mod']['cycle'], $board)) + error($config['error']['noaccess']); + + $query = prepare(sprintf('UPDATE ``posts_%s`` SET `cycle` = :cycle WHERE `id` = :id AND `thread` IS NULL', $board)); + $query->bindValue(':id', $post); + $query->bindValue(':cycle', $uncycle ? 0 : 1); + $query->execute() or error(db_error($query)); + if ($query->rowCount()) { + modLog(($uncycle ? 'Made not cyclical' : 'Made cyclical') . " thread #{$post}"); + buildThread($post); + buildIndex(); + } + + header('Location: ?/' . sprintf($config['board_path'], $board) . $config['file_index'], true, $config['redirect_http']); +} + function mod_bumplock($board, $unbumplock, $post) { global $config; diff --git a/install.php b/install.php index 5a6512ba..de4d3dd0 100644 --- a/install.php +++ b/install.php @@ -1,7 +1,7 @@ vichan upgrade path. query("CREATE TABLE IF NOT EXISTS ``search_queries`` ( `ip` varchar(39) NOT NULL, `time` int(11) NOT NULL, `query` text NOT NULL) ENGINE=MyISAM DEFAULT CHARSET=utf8;") or error(db_error()); diff --git a/mod.php b/mod.php index fbe679ac..0378d55c 100644 --- a/mod.php +++ b/mod.php @@ -82,6 +82,7 @@ $pages = array( '/(\%b)/deletebyip/(\d+)(/global)?' => 'secure deletebyip', // delete all posts by IP address '/(\%b)/(un)?lock/(\d+)' => 'secure lock', // lock thread '/(\%b)/(un)?sticky/(\d+)' => 'secure sticky', // sticky thread + '/(\%b)/(un)?cycle/(\d+)' => 'secure cycle', // cycle thread '/(\%b)/bump(un)?lock/(\d+)' => 'secure bumplock', // "bumplock" thread '/themes' => 'themes_list', // manage themes diff --git a/post.php b/post.php index 0d3292bb..98aefe05 100644 --- a/post.php +++ b/post.php @@ -265,7 +265,7 @@ if (isset($_POST['delete'])) { //Check if thread exists if (!$post['op']) { - $query = prepare(sprintf("SELECT `sticky`,`locked`,`sage`,`slug` FROM ``posts_%s`` WHERE `id` = :id AND `thread` IS NULL LIMIT 1", $board['uri'])); + $query = prepare(sprintf("SELECT `sticky`,`locked`,`cycle`,`sage`,`slug` FROM ``posts_%s`` WHERE `id` = :id AND `thread` IS NULL LIMIT 1", $board['uri'])); $query->bindValue(':id', $post['thread'], PDO::PARAM_INT); $query->execute() or error(db_error()); @@ -867,6 +867,15 @@ if (isset($_POST['delete'])) { $post['slug'] = slugify($post); insertFloodPost($post); + + // Handle cyclical threads + if (!$post['op'] && isset($thread['cycle']) && $thread['cycle']) { + // Query is a bit weird due to "This version of MariaDB doesn't yet support 'LIMIT & IN/ALL/ANY/SOME subquery'" (MariaDB Ver 15.1 Distrib 10.0.17-MariaDB, for Linux (x86_64)) + $query = prepare(sprintf('DELETE FROM ``posts_%s`` WHERE `thread` = :thread AND `id` NOT IN (SELECT `id` FROM (SELECT `id` FROM ``posts_%s`` WHERE `thread` = :thread ORDER BY `id` DESC LIMIT :limit) i)', $board['uri'], $board['uri'])); + $query->bindValue(':thread', $post['thread']); + $query->bindValue(':limit', $config['cycle_limit'], PDO::PARAM_INT); + $query->execute() or error(db_error($query)); + } if (isset($post['antispam_hash'])) { incrementSpamHash($post['antispam_hash']); diff --git a/templates/post/post_controls.html b/templates/post/post_controls.html index 99a8484c..60dc6fc4 100644 --- a/templates/post/post_controls.html +++ b/templates/post/post_controls.html @@ -41,7 +41,6 @@ {% endif %} {% endif %} - {% if mod|hasPermission(config.mod.move, board.uri) %} {% if not post.thread %} {{ config.mod.link_move }}  @@ -49,6 +48,13 @@ {{ config.mod.link_move }}  {% endif %} {% endif %} +{% if mod|hasPermission(config.mod.cycle, board.uri) %} + {% if post.cycle %} + {{ config.mod.link_uncycle }}  + {% else %} + {{ config.mod.link_cycle }}  + {% endif %} +{% endif %} {% if mod|hasPermission(config.mod.editpost, board.uri) %} {{ config.mod.link_editpost }}  {% endif %} diff --git a/templates/post_thread.html b/templates/post_thread.html index 72ca2998..125d5f78 100644 --- a/templates/post_thread.html +++ b/templates/post_thread.html @@ -19,25 +19,32 @@ {{ post.id }} {% if post.sticky %} {% if config.font_awesome %} - + {% else %} Sticky {% endif %} {% endif %} {% if post.locked %} {% if config.font_awesome %} - + {% else %} Locked {% endif %} {% endif %} {% if post.bumplocked and (config.mod.view_bumplock < 0 or (post.mod and post.mod|hasPermission(config.mod.view_bumplock, board.uri))) %} {% if config.font_awesome %} - + {% else %} Bumplocked {% endif %} {% endif %} + {% if post.cycle %} + {% if config.font_awesome %} + + {% else %} + Cyclical + {% endif %} + {% endif %} {% if index %} [{% trans %}Reply{% endtrans %}] {% endif %} diff --git a/templates/posts.sql b/templates/posts.sql index 6b2249ef..070e687b 100644 --- a/templates/posts.sql +++ b/templates/posts.sql @@ -17,6 +17,7 @@ CREATE TABLE IF NOT EXISTS ``posts_{{ board }}`` ( `ip` varchar(39) CHARACTER SET ascii NOT NULL, `sticky` int(1) NOT NULL, `locked` int(1) NOT NULL, + `cycle` int(1) NOT NULL, `sage` int(1) NOT NULL, `embed` text, `slug` varchar(256) DEFAULT NULL, From a5bd39dc4ab2394db7f87d80a01480b22e4a74e1 Mon Sep 17 00:00:00 2001 From: czaks Date: Fri, 6 May 2016 16:49:35 +0200 Subject: [PATCH 128/169] mod dashboard html: link to page editor --- templates/mod/dashboard.html | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/templates/mod/dashboard.html b/templates/mod/dashboard.html index 5c44a522..d13bf7f2 100644 --- a/templates/mod/dashboard.html +++ b/templates/mod/dashboard.html @@ -19,6 +19,9 @@ {% if mod|hasPermission(config.mod.manageboards) %} [{% trans 'edit' %}] {% endif %} + {% if mod|hasPermission(config.mod.edit_pages) %} + [{% trans 'pages' %}] + {% endif %}
  • {% endfor %} @@ -100,6 +103,9 @@ {% if mod|hasPermission(config.mod.modlog) %}
  • {% trans 'Moderation log' %}
  • {% endif %} + {% if mod|hasPermission(config.mod.edit_pages) %} +
  • {% trans 'Global static pages' %}
  • + {% endif %} {% if mod|hasPermission(config.mod.recent) %}
  • {% trans 'Recent posts' %}
  • {% endif %} From 3571670b98b2e6293e429f3e629510ab9f38e70a Mon Sep 17 00:00:00 2001 From: czaks Date: Fri, 6 May 2016 16:51:34 +0200 Subject: [PATCH 129/169] fix catalog link someone? --- templates/index.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/templates/index.html b/templates/index.html index d1871fc8..1be614e3 100644 --- a/templates/index.html +++ b/templates/index.html @@ -69,7 +69,7 @@ [{{ page.num }}]{% if loop.last %} {% endif %} {% endfor %} {{ btn.next }} {% if config.catalog_link %} - | Catalog + | {% trans %}Catalog{% endtrans %} {% endif %}
    From 3f405b3484ae6b621ca1fdacbf20e1ef9f3b553a Mon Sep 17 00:00:00 2001 From: czaks Date: Fri, 6 May 2016 16:53:28 +0200 Subject: [PATCH 130/169] what if IP address contained bad characters? (highly local) --- templates/mod/ban_form.html | 2 +- templates/mod/view_ip.html | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/templates/mod/ban_form.html b/templates/mod/ban_form.html index 6c7560ad..98cc34b2 100644 --- a/templates/mod/ban_form.html +++ b/templates/mod/ban_form.html @@ -21,7 +21,7 @@ {% if not hide_ip %} - + {% else %} {% trans 'hidden' %} {% endif %} diff --git a/templates/mod/view_ip.html b/templates/mod/view_ip.html index 1c1c7fa6..4bacc7f6 100644 --- a/templates/mod/view_ip.html +++ b/templates/mod/view_ip.html @@ -45,7 +45,7 @@ {% if mod|hasPermission(config.mod.remove_notes) %} - + [{% trans 'remove' %}] From ce9f9eec252c435bfc1a9d637ae23c5178f9c1e4 Mon Sep 17 00:00:00 2001 From: czaks Date: Fri, 6 May 2016 17:11:12 +0200 Subject: [PATCH 131/169] settings dialog refinements: now you can resize it --- stylesheets/style.css | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/stylesheets/style.css b/stylesheets/style.css index b36a9de9..39d1fd04 100644 --- a/stylesheets/style.css +++ b/stylesheets/style.css @@ -819,10 +819,14 @@ pre { } #options_div { - width: 600px; - height: 320px; + width: 620px; + height: 400px; + resize: both; + overflow: auto; } + + #alert_div { width: 500px; } @@ -853,7 +857,7 @@ pre { #options_tablist { padding: 0px 5px; left: 0px; - width: 70px; + width: 90px; top: 0px; bottom: 0px; height: 100%; @@ -882,11 +886,12 @@ pre { padding: 10px; position: absolute; top: 0px; - bottom: 0px; - left: 81px; + bottom: 10px; + left: 101px; right: 0px; text-align: left; font-size: 12px; + overflow-y: auto; } .options_tab h2 { From deef54fe13c181181b62f8e7e5ec8953e62a6f72 Mon Sep 17 00:00:00 2001 From: czaks Date: Fri, 6 May 2016 18:42:33 +0200 Subject: [PATCH 132/169] introduce smart_build_helper --- smart_build.php | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/smart_build.php b/smart_build.php index 31d8110a..e287a31a 100644 --- a/smart_build.php +++ b/smart_build.php @@ -1,8 +1,8 @@ bindValue(':id', $thread); if (!$query->execute() || !$query->fetch(PDO::FETCH_ASSOC) ) { - Cache::set("thread_exists_".$b."_".$thread, "no"); + Cache::set("thread_exists_".$b."_".$thread, "no", 3600); return false; } From a5e22f6d637365042c53f5e9552e8e8444549d6f Mon Sep 17 00:00:00 2001 From: czaks Date: Sun, 8 May 2016 02:50:44 +0200 Subject: [PATCH 133/169] split route and controller parts from smart build --- inc/controller.php | 108 ++++++++++++++++++++++++++++++++ inc/route.php | 62 ++++++++++++++++++ smart_build.php | 153 +++------------------------------------------ 3 files changed, 179 insertions(+), 144 deletions(-) create mode 100644 inc/controller.php create mode 100644 inc/route.php diff --git a/inc/controller.php b/inc/controller.php new file mode 100644 index 00000000..02e33443 --- /dev/null +++ b/inc/controller.php @@ -0,0 +1,108 @@ + $config['max_pages']) return false; + $config['try_smarter'] = true; + $build_pages = array($page); + buildIndex("skip"); + return true; +} + +function sb_api_board($b, $page = 0) { $page = (int)$page; + return sb_board($b, $page + 1); +} + +function sb_thread($b, $thread, $slugcheck = false) { global $config; $thread = (int)$thread; + if ($thread < 1) return false; + + if (!preg_match('/^'.$config['board_regex'].'$/u', $b)) return false; + + if (Cache::get("thread_exists_".$b."_".$thread) == "no") return false; + + $query = prepare(sprintf("SELECT MAX(`id`) AS `max` FROM ``posts_%s``", $b)); + if (!$query->execute()) return false; + + $s = $query->fetch(PDO::FETCH_ASSOC); + $max = $s['max']; + + if ($thread > $max) return false; + + $query = prepare(sprintf("SELECT `id` FROM ``posts_%s`` WHERE `id` = :id AND `thread` IS NULL", $b)); + $query->bindValue(':id', $thread); + + if (!$query->execute() || !$query->fetch(PDO::FETCH_ASSOC) ) { + Cache::set("thread_exists_".$b."_".$thread, "no", 3600); + return false; + } + + if ($slugcheck && $config['slugify']) { + global $request; + + $link = link_for(array("id" => $thread), $slugcheck === 50, array("uri" => $b)); + $link = "/".$b."/".$config['dir']['res'].$link; + + if ($link != $request) { + header("Location: $link", true, 301); + die(); + } + } + + if ($slugcheck == 50) { // Should we really generate +50 page? Maybe there are not enough posts anyway + global $request; + $r = str_replace("+50", "", $request); + $r = substr($r, 1); // Cut the slash + + if (file_exists($r)) return false; + } + + if (!openBoard($b)) return false; + buildThread($thread); + return true; +} + +function sb_thread_slugcheck($b, $thread) { + return sb_thread($b, $thread, true); +} +function sb_thread_slugcheck50($b, $thread) { + return sb_thread($b, $thread, 50); +} + +function sb_api($b) { global $config, $build_pages; + if (!openBoard($b)) return false; + $config['try_smarter'] = true; + $build_pages = array(-1); + buildIndex(); + return true; +} + +function sb_ukko() { + rebuildTheme("ukko", "post-thread"); + return true; +} + +function sb_catalog($b) { + if (!openBoard($b)) return false; + + rebuildTheme("catalog", "post-thread", $b); + return true; +} + +function sb_recent() { + rebuildTheme("recent", "post-thread"); + return true; +} + +function sb_sitemap() { + rebuildTheme("sitemap", "all"); + return true; +} + diff --git a/inc/route.php b/inc/route.php new file mode 100644 index 00000000..66602d77 --- /dev/null +++ b/inc/route.php @@ -0,0 +1,62 @@ + $fun) { + $id = '@^' . preg_quote($id, '@') . '$@u'; + + $id = str_replace('%b', '('.$config['board_regex'].')', $id); + $id = str_replace('%d', '([0-9]+)', $id); + $id = str_replace('%s', '[a-zA-Z0-9-]+', $id); + + $matches = null; + + if (preg_match ($id, $request, $matches)) { + array_shift($matches); + + $reached = array($fun, $matches); + + break; + } + } + + return $reached; +} + diff --git a/smart_build.php b/smart_build.php index e287a31a..58596055 100644 --- a/smart_build.php +++ b/smart_build.php @@ -1,5 +1,7 @@ $config['max_pages']) return false; - $config['try_smarter'] = true; - $build_pages = array($page); - buildIndex("skip"); - return true; -} - -function sb_api_board($b, $page = 0) { $page = (int)$page; - return sb_board($b, $page + 1); -} - -function sb_thread($b, $thread, $slugcheck = false) { global $config; $thread = (int)$thread; - if ($thread < 1) return false; - - if (!preg_match('/^'.$config['board_regex'].'$/u', $b)) return false; - - if (Cache::get("thread_exists_".$b."_".$thread) == "no") return false; - - $query = prepare(sprintf("SELECT MAX(`id`) AS `max` FROM ``posts_%s``", $b)); - if (!$query->execute()) return false; - - $s = $query->fetch(PDO::FETCH_ASSOC); - $max = $s['max']; - - if ($thread > $max) return false; - - $query = prepare(sprintf("SELECT `id` FROM ``posts_%s`` WHERE `id` = :id AND `thread` IS NULL", $b)); - $query->bindValue(':id', $thread); - - if (!$query->execute() || !$query->fetch(PDO::FETCH_ASSOC) ) { - Cache::set("thread_exists_".$b."_".$thread, "no", 3600); - return false; - } - - if ($slugcheck && $config['slugify']) { - global $request; - - $link = link_for(array("id" => $thread), $slugcheck === 50, array("uri" => $b)); - $link = "/".$b."/".$config['dir']['res'].$link; - - if ($link != $request) { - header("Location: $link", true, 301); - die(); - } - } - - if ($slugcheck == 50) { // Should we really generate +50 page? Maybe there are not enough posts anyway - global $request; - $r = str_replace("+50", "", $request); - $r = substr($r, 1); // Cut the slash - - if (file_exists($r)) return false; - } - - if (!openBoard($b)) return false; - buildThread($thread); - return true; -} - -function sb_thread_slugcheck($b, $thread) { - return sb_thread($b, $thread, true); -} -function sb_thread_slugcheck50($b, $thread) { - return sb_thread($b, $thread, 50); -} - -function sb_api($b) { global $config, $build_pages; - if (!openBoard($b)) return false; - $config['try_smarter'] = true; - $build_pages = array(-1); - buildIndex(); - return true; -} - -function sb_ukko() { - rebuildTheme("ukko", "post-thread"); - return true; -} - -function sb_catalog($b) { - if (!openBoard($b)) return false; - - rebuildTheme("catalog", "post-thread", $b); - return true; -} - -function sb_recent() { - rebuildTheme("recent", "post-thread"); - return true; -} - -function sb_sitemap() { - rebuildTheme("sitemap", "all"); - return true; -} - -$entrypoints = array(); - -$entrypoints['/%b/'] = 'sb_board'; -$entrypoints['/%b/'.$config['file_index']] = 'sb_board'; -$entrypoints['/%b/'.$config['file_page']] = 'sb_board'; -$entrypoints['/%b/%d.json'] = 'sb_api_board'; -if ($config['api']['enabled']) { - $entrypoints['/%b/threads.json'] = 'sb_api'; - $entrypoints['/%b/catalog.json'] = 'sb_api'; -} - -$entrypoints['/%b/'.$config['dir']['res'].$config['file_page']] = 'sb_thread_slugcheck'; -$entrypoints['/%b/'.$config['dir']['res'].$config['file_page50']] = 'sb_thread_slugcheck50'; -if ($config['slugify']) { - $entrypoints['/%b/'.$config['dir']['res'].$config['file_page_slug']] = 'sb_thread_slugcheck'; - $entrypoints['/%b/'.$config['dir']['res'].$config['file_page50_slug']] = 'sb_thread_slugcheck50'; -} -if ($config['api']['enabled']) { - $entrypoints['/%b/'.$config['dir']['res'].'%d.json'] = 'sb_thread'; -} - -$entrypoints['/*/'] = 'sb_ukko'; -$entrypoints['/*/index.html'] = 'sb_ukko'; -$entrypoints['/recent.html'] = 'sb_recent'; -$entrypoints['/%b/catalog.html'] = 'sb_catalog'; -$entrypoints['/sitemap.xml'] = 'sb_sitemap'; - -$reached = false; - $request = $_SERVER['REQUEST_URI']; -list($request) = explode('?', $request); - -foreach ($entrypoints as $id => $fun) { - $id = '@^' . preg_quote($id, '@') . '$@u'; - $id = str_replace('%b', '('.$config['board_regex'].')', $id); - $id = str_replace('%d', '([0-9]+)', $id); - $id = str_replace('%s', '[a-zA-Z0-9-]+', $id); +$route = route($request); - $matches = null; - - if (preg_match ($id, $request, $matches)) { - array_shift($matches); - - $reached = call_user_func_array($fun, $matches); - - break; - } +if (!$route) { + $reached = false; +} +else { + list ($fun, $args) = $route; + $reached = call_user_func_array($route); } function die_404() { global $config; From 644f227ab33f247dc82e0208fe2125d5d002f4f4 Mon Sep 17 00:00:00 2001 From: czaks Date: Sun, 8 May 2016 03:09:20 +0200 Subject: [PATCH 134/169] fix "Undefined variable: pid"; thanks fpdl and MrFreeman --- post.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/post.php b/post.php index 98aefe05..4ea08ce3 100644 --- a/post.php +++ b/post.php @@ -955,7 +955,7 @@ if (isset($_POST['delete'])) { $build_pages = range(1, $config['max_pages']); if ($post['op']) - clean($pid); + clean($id); event('post-after', $post); From b6f0317bde1b6d9a9ac5d81a660865a7aa9ad13d Mon Sep 17 00:00:00 2001 From: czaks Date: Sun, 8 May 2016 10:54:30 +0200 Subject: [PATCH 135/169] advanced build (1/2): a small refactor of index generating procedure; generation strategies --- inc/config.php | 70 ++++++++++++++++++-- inc/functions.php | 102 +++++++++++++++++++++-------- inc/route.php | 5 +- smart_build.php | 9 ++- templates/themes/catalog/theme.php | 13 ++-- templates/themes/recent/theme.php | 5 +- templates/themes/sitemap/theme.php | 6 +- templates/themes/ukko/theme.php | 6 +- 8 files changed, 169 insertions(+), 47 deletions(-) diff --git a/inc/config.php b/inc/config.php index 82fdc882..91804429 100644 --- a/inc/config.php +++ b/inc/config.php @@ -1203,16 +1203,74 @@ // Try not to build pages when we shouldn't have to. $config['try_smarter'] = true; - // EXPERIMENTAL: Defer static HTML building to a moment, when a given file is actually accessed. - // Warning: This option won't run out of the box. You need to tell your webserver, that a file - // for serving 403 and 404 pages is /smart_build.php. Also, you need to turn off indexes. +/* + * ==================== + * Advanced build + * ==================== + */ + + // Strategies for file generation. Also known as an "advanced build". If you don't have performance + // issues, you can safely ignore that part, because it's hard to configure and won't even work on + // your free webhosting. + // + // A strategy is a function, that given the PHP environment and ($fun, $array) variable pair, returns + // an $action array or false. + // + // $fun - a controller function name, see inc/controller.php. This is named after functions, so that + // we can generate the files in daemon. + // + // $array - arguments to be passed + // + // $action - action to be taken. It's an array, and the first element of it is one of the following: + // * "immediate" - generate the page immediately + // * "defer" - defer page generation to a moment a worker daemon gets to build it (serving a stale + // page in the meantime). The remaining arguments are daemon-specific. Daemon isn't + // implemented yet :DDDD inb4 while(true) { generate(Queue::Get()) }; (which is probably it). + // * "build_on_load" - defer page generation to a moment, when the user actually accesses the page. + // This is a smart_build behaviour. You shouldn't use this one too much, if you + // use it for active boards, the server may choke due to a possible race condition. + // See my blog post: https://engine.vichan.net/blog/res/2.html + // + // So, let's assume we want to build a thread 1324 on board /b/, because a new post appeared there. + // We try the first strategy, giving it arguments: 'sb_thread', array('b', 1324). The strategy will + // now return a value $action, denoting an action to do. If $action is false, we try another strategy. + // + // As I said, configuration isn't easy. + // + // 1. chmod 0777 directories: tmp/locks/ and tmp/queue/. + // 2. serve 403 and 404 requests to go thru smart_build.php + // for nginx, this blog post contains config snippets: https://engine.vichan.net/blog/res/2.html + // 3. disable indexes in your webserver + // 4. launch any number of daemons (eg. twice your number of threads?) using the command: + // $ tools/worker.php + // You don't need to do that step if you are not going to use the "defer" option. + // 5. enable smart_build_helper (see below) + // 6. edit the strategies (see inc/functions.php for the builtin ones). You can use lambdas. I will test + // various ones and include one that works best for me. + $config['generation_strategies'] = array(); + // Add a sane strategy. It forces to immediately generate a page user is about to land on. Otherwise, + // it has no opinion, so it needs a fallback strategy. + $config['generation_strategies'][] = 'strategy_sane'; + // Add an immediate catch-all strategy. This is the default function of imageboards: generate all pages + // on post time. + $config['generation_strategies'][] = 'strategy_immediate'; + // NOT RECOMMENDED: Instead of an all-"immediate" strategy, you can use an all-"build_on_load" one (used + // to be initialized using $config['smart_build']; ) for all pages instead of those to be build + // immediately. A rebuild done in this mode should remove all your static files + // $config['generation_strategies'][1] = 'strategy_smart_build'; + + // Deprecated. Leave it false. See above. $config['smart_build'] = false; - // Smart build related: when a file doesn't exist, where should we redirect? + // Use smart_build.php for dispatching missing requests. It may be useful without smart_build or advanced + // build, for example it will regenerate the missing files. + $config['smart_build_helper'] = true; + + // smart_build.php: when a file doesn't exist, where should we redirect? $config['page_404'] = '/404.html'; - // Smart build related: extra entrypoints. - $config['smart_build_entrypoints'] = array(); + // Extra controller entrypoints. Controller is used only by smart_build and advanced build. + $config['controller_entrypoints'] = array(); /* * ==================== diff --git a/inc/functions.php b/inc/functions.php index 1bd1f32f..2957c680 100755 --- a/inc/functions.php +++ b/inc/functions.php @@ -1319,7 +1319,8 @@ function thread_find_page($thread) { return floor(($config['threads_per_page'] + $index) / $config['threads_per_page']); } -function index($page, $mod=false) { +// $brief means that we won't need to generate anything yet +function index($page, $mod=false, $brief = false) { global $board, $config, $debug; $body = ''; @@ -1350,6 +1351,7 @@ function index($page, $mod=false) { unset($cached); } } + if (!isset($cached)) { $posts = prepare(sprintf("SELECT * FROM ``posts_%s`` WHERE `thread` = :id ORDER BY `id` DESC LIMIT :limit", $board['uri'])); $posts->bindValue(':id', $th['id']); @@ -1389,7 +1391,10 @@ function index($page, $mod=false) { } $threads[] = $thread; - $body .= $thread->build(true); + + if (!$brief) { + $body .= $thread->build(true); + } } if ($config['file_board']) { @@ -1610,27 +1615,28 @@ function checkMute() { function buildIndex($global_api = "yes") { global $board, $config, $build_pages; - if (!$config['smart_build']) { - $pages = getPages(); - if (!$config['try_smarter']) - $antibot = create_antibot($board['uri']); + $catalog_api_action = generation_strategy('sb_api', array($board['uri'])); - if ($config['api']['enabled']) { - $api = new Api(); - $catalog = array(); - } + $pages = null; + $antibot = null; + + if ($config['api']['enabled']) { + $api = new Api(); + $catalog = array(); } for ($page = 1; $page <= $config['max_pages']; $page++) { $filename = $board['dir'] . ($page == 1 ? $config['file_index'] : sprintf($config['file_page'], $page)); $jsonFilename = $board['dir'] . ($page - 1) . '.json'; // pages should start from 0 - if ((!$config['api']['enabled'] || $global_api == "skip" || $config['smart_build']) && $config['try_smarter'] - && isset($build_pages) && !empty($build_pages) && !in_array($page, $build_pages) ) + $wont_build_this_page = $config['try_smarter'] && isset($build_pages) && !empty($build_pages) && !in_array($page, $build_pages); + + if ((!$config['api']['enabled'] || $global_api == "skip") && $wont_build_this_page) continue; - if (!$config['smart_build']) { - $content = index($page); + $action = generation_strategy('sb_board', array($board['uri'], $page)); + if ($action == 'rebuild' || $catalog_api_action == 'rebuild') { + $content = index($page, false, $wont_build_this_page); if (!$content) break; @@ -1641,17 +1647,21 @@ function buildIndex($global_api = "yes") { file_write($jsonFilename, $json); $catalog[$page-1] = $threads; - } - if ($config['api']['enabled'] && $global_api != "skip" && $config['try_smarter'] && isset($build_pages) - && !empty($build_pages) && !in_array($page, $build_pages) ) - continue; + if ($wont_build_this_page) continue; + } if ($config['try_smarter']) { $antibot = create_antibot($board['uri'], 0 - $page); $content['current_page'] = $page; } + elseif (!$antibot) { + create_antibot($board['uri']); + } $antibot->reset(); + if (!$pages) { + $pages = getPages(); + } $content['pages'] = $pages; $content['pages'][$page-1]['selected'] = true; $content['btn'] = getPageButtons($content['pages']); @@ -1659,13 +1669,14 @@ function buildIndex($global_api = "yes") { file_write($filename, Element('index.html', $content)); } - else { + elseif ($action == 'delete' || $catalog_api_action == 'delete') { file_unlink($filename); file_unlink($jsonFilename); } } - if (!$config['smart_build'] && $page < $config['max_pages']) { + // $action is an action for our last page + if (($catalog_api_action == 'rebuild' || $action == 'rebuild' || $action == 'delete') && $page < $config['max_pages']) { for (;$page<=$config['max_pages'];$page++) { $filename = $board['dir'] . ($page==1 ? $config['file_index'] : sprintf($config['file_page'], $page)); file_unlink($filename); @@ -1679,13 +1690,13 @@ function buildIndex($global_api = "yes") { // json api catalog if ($config['api']['enabled'] && $global_api != "skip") { - if ($config['smart_build']) { + if ($catalog_api_action == 'delete') { $jsonFilename = $board['dir'] . 'catalog.json'; file_unlink($jsonFilename); $jsonFilename = $board['dir'] . 'threads.json'; file_unlink($jsonFilename); } - else { + elseif ($catalog_api_action == 'rebuild') { $json = json_encode($api->translateCatalog($catalog)); $jsonFilename = $board['dir'] . 'catalog.json'; file_write($jsonFilename, $json); @@ -2204,7 +2215,9 @@ function buildThread($id, $return = false, $mod = false) { if ($config['try_smarter'] && !$mod) $build_pages[] = thread_find_page($id); - if (!$config['smart_build'] || $return || $mod) { + $action = generation_strategy('sb_thread', array($board['uri'], $id)); + + if ($action == 'rebuild' || $return || $mod) { $query = prepare(sprintf("SELECT * FROM ``posts_%s`` WHERE (`thread` IS NULL AND `id` = :id) OR `thread` = :id ORDER BY `thread`,`id`", $board['uri'])); $query->bindValue(':id', $id, PDO::PARAM_INT); $query->execute() or error(db_error($query)); @@ -2239,26 +2252,26 @@ function buildThread($id, $return = false, $mod = false) { )); // json api - if ($config['api']['enabled']) { + if ($config['api']['enabled'] && !$mod) { $api = new Api(); $json = json_encode($api->translateThread($thread)); $jsonFilename = $board['dir'] . $config['dir']['res'] . $id . '.json'; file_write($jsonFilename, $json); } } - else { + elseif($action == 'delete') { $jsonFilename = $board['dir'] . $config['dir']['res'] . $id . '.json'; file_unlink($jsonFilename); } - if ($config['smart_build'] && !$return && !$mod) { + if ($action == 'delete' && !$return && !$mod) { $noko50fn = $board['dir'] . $config['dir']['res'] . link_for(array('id' => $id), true); file_unlink($noko50fn); file_unlink($board['dir'] . $config['dir']['res'] . link_for(array('id' => $id))); - } else if ($return) { + } elseif ($return) { return $body; - } else { + } elseif ($action == 'rebuild') { $noko50fn = $board['dir'] . $config['dir']['res'] . link_for($thread, true); if ($hasnoko50 || file_exists($noko50fn)) { buildThread50($id, $return, $mod, $thread, $antibot); @@ -2788,3 +2801,36 @@ function markdown($s) { return $pd->text($s); } + +function generation_strategy($fun, $array=array()) { global $config; + $action = false; + + foreach ($config['generation_strategies'] as $s) { + if ($strategy = $s($fun, $array)) { + break; + } + } + + switch ($strategy[0]) { + case 'immediate': + return 'rebuild'; + case 'defer': + // Ok, it gets interesting here :) + Queue::add(serialize(array('build', $fun, $array))); + return 'ignore'; + case 'build_on_load': + return 'delete'; + } +} + +function strategy_immediate($fun, $array) { + return array('immediate'); +} + +function strategy_smart_build($fun, $array) { + return array('build_on_load'); +} + +function strategy_sane($fun, $array) { global $config; + return false; +} diff --git a/inc/route.php b/inc/route.php index 66602d77..2a5c1732 100644 --- a/inc/route.php +++ b/inc/route.php @@ -7,7 +7,7 @@ defined('TINYBOARD') or exit; -function route($path) { +function route($path) { global $config; $entrypoints = array(); $entrypoints['/%b/'] = 'sb_board'; @@ -33,8 +33,11 @@ function route($path) { $entrypoints['/*/index.html'] = 'sb_ukko'; $entrypoints['/recent.html'] = 'sb_recent'; $entrypoints['/%b/catalog.html'] = 'sb_catalog'; + $entrypoints['/%b/index.rss'] = 'sb_catalog'; $entrypoints['/sitemap.xml'] = 'sb_sitemap'; + $entrypoints = array_merge($entrypoints, $config['controller_entrypoints']); + $reached = false; list($request) = explode('?', $path); diff --git a/smart_build.php b/smart_build.php index 58596055..7ca5fcbf 100644 --- a/smart_build.php +++ b/smart_build.php @@ -3,14 +3,16 @@ require_once("inc/functions.php"); require_once("inc/route.php"); require_once("inc/controller.php"); -if (!$config['smart_build'] && !$config["smart_build_helper"]) { - die('You need to enable $config["smart_build"] or $config["smart_build_helper"]'); +if (!$config["smart_build_helper"]) { + die('You need to enable $config["smart_build_helper"]'); } $config['smart_build'] = false; // Let's disable it, so we can build the page for real +$config['generation_strategies'] = array('strategy_immediate'); function after_open_board() { global $config; $config['smart_build'] = false; + $config['generation_strategies'] = array('strategy_immediate'); }; $request = $_SERVER['REQUEST_URI']; @@ -59,6 +61,9 @@ if ($reached) { elseif (preg_match('/\.xml$/', $request)) { header("Content-Type", "application/xml"); } + elseif (preg_match('/\.rss$/', $request)) { + header("Content-Type", "application/rss+xml"); + } else { header("Content-Type", "text/html; charset=utf-8"); } diff --git a/templates/themes/catalog/theme.php b/templates/themes/catalog/theme.php index 239d4dff..4f512c03 100644 --- a/templates/themes/catalog/theme.php +++ b/templates/themes/catalog/theme.php @@ -16,20 +16,25 @@ if ($action == 'all') { foreach ($boards as $board) { $b = new Catalog(); - if ($config['smart_build']) { + + $action = generation_strategy("sb_catalog", array($board)); + if ($action == 'delete') { file_unlink($config['dir']['home'] . $board . '/catalog.html'); + file_unlink($config['dir']['home'] . $board . '/index.rss'); } - else { + elseif ($action == 'rebuild') { $b->build($settings, $board); } } } elseif ($action == 'post-thread' || ($settings['update_on_posts'] && $action == 'post') || ($settings['update_on_posts'] && $action == 'post-delete') && in_array($board, $boards)) { $b = new Catalog(); - if ($config['smart_build']) { + $action = generation_strategy("sb_catalog", array($board)); + if ($action == 'delete') { file_unlink($config['dir']['home'] . $board . '/catalog.html'); + file_unlink($config['dir']['home'] . $board . '/index.rss'); } - else { + elseif ($action == 'rebuild') { $b->build($settings, $board); } } diff --git a/templates/themes/recent/theme.php b/templates/themes/recent/theme.php index f44e2529..95921c35 100644 --- a/templates/themes/recent/theme.php +++ b/templates/themes/recent/theme.php @@ -25,10 +25,11 @@ $this->excluded = explode(' ', $settings['exclude']); if ($action == 'all' || $action == 'post' || $action == 'post-thread' || $action == 'post-delete') { - if ($config['smart_build']) { + $action = generation_strategy('sb_recent', array()); + if ($action == 'delete') { file_unlink($config['dir']['home'] . $settings['html']); } - else { + elseif ($action == 'rebuild') { file_write($config['dir']['home'] . $settings['html'], $this->homepage($settings)); } } diff --git a/templates/themes/sitemap/theme.php b/templates/themes/sitemap/theme.php index 52779d53..6bc035bb 100644 --- a/templates/themes/sitemap/theme.php +++ b/templates/themes/sitemap/theme.php @@ -23,10 +23,12 @@ } } - if ($config['smart_build']) { + $action = generation_strategy('sb_sitemap', array()); + + if ($action == 'delete') { file_unlink($settings['path']); } - else { + elseif ($action == 'rebuild') { $boards = explode(' ', $settings['boards']); $threads = array(); diff --git a/templates/themes/ukko/theme.php b/templates/themes/ukko/theme.php index d6fc303c..e572c467 100644 --- a/templates/themes/ukko/theme.php +++ b/templates/themes/ukko/theme.php @@ -11,10 +11,12 @@ return; } - if ($config['smart_build']) { + $action = generation_strategy('sb_ukko', array()); + + if ($action == 'delete') { file_unlink($settings['uri'] . '/index.html'); } - else { + elseif ($action == 'rebuild') { file_write($settings['uri'] . '/index.html', $ukko->build()); } } From e2653754750917035b79e62b07d286b3a56cf9ca Mon Sep 17 00:00:00 2001 From: czaks Date: Sun, 8 May 2016 10:59:36 +0200 Subject: [PATCH 136/169] fixup --- inc/functions.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/inc/functions.php b/inc/functions.php index 2957c680..8329e774 100755 --- a/inc/functions.php +++ b/inc/functions.php @@ -1656,7 +1656,7 @@ function buildIndex($global_api = "yes") { $content['current_page'] = $page; } elseif (!$antibot) { - create_antibot($board['uri']); + $antibot = create_antibot($board['uri']); } $antibot->reset(); if (!$pages) { From 12e6aba5d4a2965591b3df76e4f6c19e35475700 Mon Sep 17 00:00:00 2001 From: czaks Date: Sun, 8 May 2016 13:20:00 +0200 Subject: [PATCH 137/169] (2/2) advanced build. implement a daemon that will build static pages. implement a queue and a lock. fix notice in bans. and it even works! the daemon is basic right now, it could work in a mode that it will defer building certain pages until a certain time. --- inc/bans.php | 2 +- inc/config.php | 9 ++++++++- inc/functions.php | 40 ++++++++++++++++++++++++++++++++----- smart_build.php | 2 +- tmp/queue/generate/.gitkeep | 0 tools/worker.php | 31 ++++++++++++++++++++++++++++ 6 files changed, 76 insertions(+), 8 deletions(-) create mode 100644 tmp/queue/generate/.gitkeep create mode 100755 tools/worker.php diff --git a/inc/bans.php b/inc/bans.php index 87e06e28..c468eb64 100644 --- a/inc/bans.php +++ b/inc/bans.php @@ -166,7 +166,7 @@ class Bans { if ($ban['post']) { $post = json_decode($ban['post']); - $ban['message'] = $post->body; + $ban['message'] = isset($post->body) ? $post->body : 0; } unset($ban['ipstart'], $ban['ipend'], $ban['post'], $ban['creator']); diff --git a/inc/config.php b/inc/config.php index 91804429..5926eb1d 100644 --- a/inc/config.php +++ b/inc/config.php @@ -103,7 +103,7 @@ /* * ==================== - * Cache settings + * Cache, lock and queue settings * ==================== */ @@ -120,6 +120,7 @@ // $config['cache']['enabled'] = 'apc'; // $config['cache']['enabled'] = 'memcached'; // $config['cache']['enabled'] = 'redis'; + // $config['cache']['enabled'] = 'fs'; // Timeout for cached objects such as posts and HTML. $config['cache']['timeout'] = 60 * 60 * 48; // 48 hours @@ -142,6 +143,12 @@ // (this file will be explicitly loaded during cache hit, but not during cache miss). $config['cache_config'] = false; + // Define a lock driver. + $config['lock']['enabled'] = 'fs'; + + // Define a queue driver. + $config['queue']['enabled'] = 'fs'; // xD + /* * ==================== * Cookie settings diff --git a/inc/functions.php b/inc/functions.php index 8329e774..0cfdb72f 100755 --- a/inc/functions.php +++ b/inc/functions.php @@ -19,6 +19,8 @@ require_once 'inc/database.php'; require_once 'inc/events.php'; require_once 'inc/api.php'; require_once 'inc/mod/auth.php'; +require_once 'inc/lock.php'; +require_once 'inc/queue.php'; require_once 'inc/polyfill.php'; @include_once 'inc/lib/parsedown/Parsedown.php'; // fail silently, this isn't a critical piece of code @@ -93,6 +95,8 @@ function loadConfig() { 'db', 'api', 'cache', + 'lock', + 'queue', 'cookies', 'error', 'dir', @@ -1749,7 +1753,6 @@ function buildJavascript() { function checkDNSBL() { global $config; - if (isIPv6()) return; // No IPv6 support yet. @@ -2806,17 +2809,17 @@ function generation_strategy($fun, $array=array()) { global $config; $action = false; foreach ($config['generation_strategies'] as $s) { - if ($strategy = $s($fun, $array)) { + if ($action = $s($fun, $array)) { break; } } - switch ($strategy[0]) { + switch ($action[0]) { case 'immediate': return 'rebuild'; case 'defer': // Ok, it gets interesting here :) - Queue::add(serialize(array('build', $fun, $array))); + get_queue('generate')->push(serialize(array('build', $fun, $array, $action))); return 'ignore'; case 'build_on_load': return 'delete'; @@ -2832,5 +2835,32 @@ function strategy_smart_build($fun, $array) { } function strategy_sane($fun, $array) { global $config; - return false; + // Well, ideally a sane strategy would involve a more stringent checking, + // but let's at least have something to get the ball rolling :^) + + if (php_sapi_name() == 'cli') return false; + else if (isset($_POST['mod']) || isset($_POST['json_response'])) return false; + else if ($fun == 'sb_thread' || ($fun == 'sb_board' && $array[1] == 1)) return array('immediate'); + else return false; +} + +// My first, test strategy. +function strategy_first($fun, $array) { + switch ($fun) { + case 'sb_thread': + return array('defer'); + case 'sb_board': + if ($array[1] > 8) return array('build_on_load'); + else return array('defer'); + case 'sb_api': + return array('defer'); + case 'sb_catalog': + return array('defer'); + case 'sb_recent': + return array('build_on_load'); + case 'sb_sitemap': + return array('build_on_load'); + case 'sb_ukko': + return array('defer'); + } } diff --git a/smart_build.php b/smart_build.php index 7ca5fcbf..cfac446a 100644 --- a/smart_build.php +++ b/smart_build.php @@ -24,7 +24,7 @@ if (!$route) { } else { list ($fun, $args) = $route; - $reached = call_user_func_array($route); + $reached = call_user_func_array($fun, $args); } function die_404() { global $config; diff --git a/tmp/queue/generate/.gitkeep b/tmp/queue/generate/.gitkeep new file mode 100644 index 00000000..e69de29b diff --git a/tools/worker.php b/tools/worker.php new file mode 100755 index 00000000..e19fe1c6 --- /dev/null +++ b/tools/worker.php @@ -0,0 +1,31 @@ +#!/usr/bin/php +pop(2); + foreach ($q as $v) { + list($__, $func, $ary, $action) = unserialize($v); + echo "Starting to generate $func ".implode(" ", $ary)."... "; + + call_user_func_array($func, $ary); + + echo "done!\n"; + } + if (!$q) usleep(20000); // 0.02s +} From f24e0f98143528c7b2cd5c504899c5492f5d75fd Mon Sep 17 00:00:00 2001 From: czaks Date: Sun, 8 May 2016 14:01:55 +0200 Subject: [PATCH 138/169] =?UTF-8?q?optimize=20out=20openboard=20when=20we?= =?UTF-8?q?=20don`t=20need=20it.=20a=20big=20performance=20improvement=20t?= =?UTF-8?q?oo=20=F0=9F=8F=8E?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit also, don't call dnsbl for local ip addresses --- inc/functions.php | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/inc/functions.php b/inc/functions.php index 0cfdb72f..35be56b9 100755 --- a/inc/functions.php +++ b/inc/functions.php @@ -556,14 +556,19 @@ function setupBoard($array) { } function openBoard($uri) { - global $config, $build_pages; + global $config, $build_pages, $board; if ($config['try_smarter']) $build_pages = array(); - $board = getBoardInfo($uri); - if ($board) { - setupBoard($board); + // And what if we don't really need to change a board we have opened? + if (isset ($board) && isset ($board['uri']) && $board['uri'] == $uri) { + return true; + } + + $b = getBoardInfo($uri); + if ($b) { + setupBoard($b); if (function_exists('after_open_board')) { after_open_board(); @@ -1759,6 +1764,9 @@ function checkDNSBL() { if (!isset($_SERVER['REMOTE_ADDR'])) return; // Fix your web server configuration + if (preg_match("/^(::(ffff:)?)?(127\.|192\.168\.|10\.|172\.(1[6-9]|2[0-9]|3[0-1])\.|0\.|255\.)/", $_SERVER['REMOTE_ADDR'])) + return; // It's pointless to check for local IP addresses in dnsbls, isn't it? + if (in_array($_SERVER['REMOTE_ADDR'], $config['dnsbl_exceptions'])) return; From bb9aaad899c47e4eec49cbd444573e78d48a146a Mon Sep 17 00:00:00 2001 From: czaks Date: Sun, 8 May 2016 15:37:49 +0200 Subject: [PATCH 139/169] i forgot about a queue and a lock implementation --- inc/lock.php | 39 +++++++++++++++++++++++++++++++++++++++ inc/queue.php | 49 +++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 88 insertions(+) create mode 100644 inc/lock.php create mode 100644 inc/queue.php diff --git a/inc/lock.php b/inc/lock.php new file mode 100644 index 00000000..4fb2f5df --- /dev/null +++ b/inc/lock.php @@ -0,0 +1,39 @@ +f = fopen("tmp/locks/$key", "w"); + } + } + + // Get a shared lock + function get($nonblock = false) { global $config; + if ($config['lock']['enabled'] == 'fs') { + $wouldblock = false; + flock($this->f, LOCK_SH | ($nonblock ? LOCK_NB : 0), $wouldblock); + if ($nonblock && $wouldblock) return false; + } + return $this; + } + + // Get an exclusive lock + function get_ex($nonblock = false) { global $config; + if ($config['lock']['enabled'] == 'fs') { + $wouldblock = false; + flock($this->f, LOCK_EX | ($nonblock ? LOCK_NB : 0), $wouldblock); + if ($nonblock && $wouldblock) return false; + } + return $this; + } + + // Free a lock + function free() { global $config; + if ($config['lock']['enabled'] == 'fs') { + flock($this->f, LOCK_UN); + } + return $this; + } +} diff --git a/inc/queue.php b/inc/queue.php new file mode 100644 index 00000000..66305b3b --- /dev/null +++ b/inc/queue.php @@ -0,0 +1,49 @@ +lock = new Lock($key); + $key = str_replace('/', '::', $key); + $key = str_replace("\0", '', $key); + $this->key = "tmp/queue/$key/"; + } + } + + function push($str) { global $config; + if ($config['queue']['enabled'] == 'fs') { + $this->lock->get_ex(); + file_put_contents($this->key.microtime(true), $str); + $this->lock->free(); + } + return $this; + } + + function pop($n = 1) { global $config; + if ($config['queue']['enabled'] == 'fs') { + $this->lock->get_ex(); + $dir = opendir($this->key); + $paths = array(); + while ($n > 0) { + $path = readdir($dir); + if ($path === FALSE) break; + elseif ($path == '.' || $path == '..') continue; + else { $paths[] = $path; $n--; } + } + $out = array(); + foreach ($paths as $v) { + $out []= file_get_contents($this->key.$v); + unlink($this->key.$v); + } + $this->lock->free(); + return $out; + } + } +} + +// Don't use the constructor. Use the get_queue function. +$queues = array(); + +function get_queue($name) { global $queues; + return $queues[$name] = isset ($queues[$name]) ? $queues[$name] : new Queue($name); +} From ccc9cff23dfdcfb758d635438b0ff8f9fd476496 Mon Sep 17 00:00:00 2001 From: czaks Date: Mon, 9 May 2016 10:59:50 +0200 Subject: [PATCH 140/169] ukko: post filters and reporting --- js/fix-report-delete-submit.js | 2 +- js/post-filter.js | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/js/fix-report-delete-submit.js b/js/fix-report-delete-submit.js index abed4d06..61c127ab 100644 --- a/js/fix-report-delete-submit.js +++ b/js/fix-report-delete-submit.js @@ -8,7 +8,7 @@ * */ -if (active_page == 'thread' || active_page == 'index') { +if (active_page == 'thread' || active_page == 'index' || active_page == 'ukko') { $(document).on('menu_ready', function(){ var Menu = window.Menu; diff --git a/js/post-filter.js b/js/post-filter.js index 950f43ab..0b2589f0 100644 --- a/js/post-filter.js +++ b/js/post-filter.js @@ -1,4 +1,4 @@ -if (active_page === 'thread' || active_page === 'index' || active_page === 'catalog') { +if (active_page === 'thread' || active_page === 'index' || active_page === 'catalog' || active_page === 'ukko') { $(document).on('menu_ready', function () { 'use strict'; From 1cff10fd953373abb546dd93f53acaee2eec19cd Mon Sep 17 00:00:00 2001 From: czaks Date: Mon, 9 May 2016 11:08:24 +0200 Subject: [PATCH 141/169] ukko & fix-re-de-su: fix reporting and deleting from ukko actually --- js/fix-report-delete-submit.js | 3 +++ 1 file changed, 3 insertions(+) diff --git a/js/fix-report-delete-submit.js b/js/fix-report-delete-submit.js index 61c127ab..f5cda9ad 100644 --- a/js/fix-report-delete-submit.js +++ b/js/fix-report-delete-submit.js @@ -20,6 +20,7 @@ if ($('#delete-fields #password').length) { var $ele = $(ele); var threadId = $ele.parent().attr('id').replace('thread_', ''); var postId = $ele.find('.post_no').not('[id]').text(); + var board_name = $ele.parent().data('board'); $buf.find('#delete_post_menu,#delete_file_menu').click(function(e) { e.preventDefault(); @@ -30,6 +31,7 @@ if ($('#delete-fields #password').length) { } else { $('#delete_file').prop('checked', ''); } + $('input[type="hidden"][name="board"]').val(board_name); $('input[name=delete][type=submit]').click(); }); }); @@ -42,6 +44,7 @@ Menu.onclick(function(e, $buf) { var $ele = $(ele); var threadId = $ele.parent().attr('id').replace('thread_', ''); var postId = $ele.find('.post_no').not('[id]').text(); + var board_name = $ele.parent().data('board'); $buf.find('#report_menu,#global_report_menu').click(function(e) { if ($(this).attr('id') === "global_report_menu") { From 4479fc7681d55afeeed90f9ddc4d892741bd6e53 Mon Sep 17 00:00:00 2001 From: czaks Date: Mon, 9 May 2016 11:18:27 +0200 Subject: [PATCH 142/169] thread-watcher and favorites in catalog and ukko --- js/favorites.js | 2 +- js/thread-watcher.js | 8 +++++--- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/js/favorites.js b/js/favorites.js index daf7b732..027dc243 100644 --- a/js/favorites.js +++ b/js/favorites.js @@ -50,7 +50,7 @@ function add_favorites() { $('.boardlist').append(boards); }; -if (active_page == 'thread' || active_page == 'index') { +if (active_page == 'thread' || active_page == 'index' || active_page == 'catalog' || active_page == 'ukko') { $(document).ready(function(){ var favorites = JSON.parse(localStorage.favorites); var is_board_favorite = ~$.inArray(board_name, favorites); diff --git a/js/thread-watcher.js b/js/thread-watcher.js index c31a6e74..0796193b 100644 --- a/js/thread-watcher.js +++ b/js/thread-watcher.js @@ -41,7 +41,7 @@ watchlist.render = function(reset) { } else { //If the watchlist has not yet been rendered, create it. var menuStyle = getComputedStyle($('.boardlist')[0]); - $('form[name="post"]').before( + $((active_page == 'ukko') ? 'hr:first' : (active_page == 'catalog') ? 'body>span:first' : 'form[name="post"]').before( $('
    '+ '
    '+ '['+_('Clear List')+'] '+ @@ -60,6 +60,8 @@ watchlist.render = function(reset) { watchlist.add = function(sel) { var threadName, threadInfo; + var board_name = $(sel).parents('.thread').data('board'); + if (active_page === 'thread') { if ($('.subject').length){ //If a subject is given, use the first 20 characters as the thread name. @@ -70,7 +72,7 @@ watchlist.add = function(sel) { //board name, thread name as defined above, current amount of posts, thread url threadInfo = [board_name, threadName, $('.post').length, location.href]; - } else if (active_page === 'index') { + } else if (active_page === 'index' || active_page === 'ukko') { var postCount; //Figure out the post count. @@ -142,7 +144,7 @@ watchlist.exists = function(sel) { }; $(document).ready(function(){ - if (!(active_page == 'thread' || active_page == 'index')) { + if (!(active_page == 'thread' || active_page == 'index' || active_page == 'catalog' || active_page == 'ukko')) { return; } From 018dd48a66ec7734bad48105a32a2ae9a5f51017 Mon Sep 17 00:00:00 2001 From: czaks Date: Mon, 9 May 2016 11:58:46 +0200 Subject: [PATCH 143/169] post-filter + ukko fixes --- js/post-filter.js | 27 ++++++++++++++++----------- 1 file changed, 16 insertions(+), 11 deletions(-) diff --git a/js/post-filter.js b/js/post-filter.js index 0b2589f0..3f2358e4 100644 --- a/js/post-filter.js +++ b/js/post-filter.js @@ -224,6 +224,7 @@ if (active_page === 'thread' || active_page === 'index' || active_page === 'cata var $ele = $(ele); var threadId = $ele.parent().attr('id').replace('thread_', ''); + var boardId = $ele.parent().data('board'); var postId = $ele.find('.post_no').not('[id]').text(); if (pageData.hasUID) { var postUid = $ele.find('.poster_id').text(); @@ -244,21 +245,21 @@ if (active_page === 'thread' || active_page === 'index' || active_page === 'cata $buffer.find('#filter-menu-unhide').click(function () { // if hidden due to post id, remove it from blacklist // otherwise just show this post - blacklist.remove.post(pageData.boardId, threadId, postId); + blacklist.remove.post(boardId, threadId, postId); show(ele); }); $buffer.find('#filter-menu-hide').addClass('hidden'); } else { $buffer.find('#filter-menu-unhide').addClass('hidden'); $buffer.find('#filter-menu-hide').click(function () { - blacklist.add.post(pageData.boardId, threadId, postId, false); + blacklist.add.post(boardId, threadId, postId, false); }); } // post id if (!$ele.data('hiddenByPost')) { $buffer.find('#filter-add-post-plus').click(function () { - blacklist.add.post(pageData.boardId, threadId, postId, true); + blacklist.add.post(boardId, threadId, postId, true); }); } else { $buffer.find('#filter-add-post-plus').addClass('hidden'); @@ -267,16 +268,16 @@ if (active_page === 'thread' || active_page === 'index' || active_page === 'cata // UID if (pageData.hasUID && !$ele.data('hiddenByUid')) { $buffer.find('#filter-add-id').click(function () { - blacklist.add.uid(pageData.boardId, threadId, postUid, false); + blacklist.add.uid(boardId, threadId, postUid, false); }); $buffer.find('#filter-add-id-plus').click(function () { - blacklist.add.uid(pageData.boardId, threadId, postUid, true); + blacklist.add.uid(boardId, threadId, postUid, true); }); $buffer.find('#filter-remove-id').addClass('hidden'); } else if (pageData.hasUID) { $buffer.find('#filter-remove-id').click(function () { - blacklist.remove.uid(pageData.boardId, threadId, postUid); + blacklist.remove.uid(boardId, threadId, postUid); }); $buffer.find('#filter-add-id').addClass('hidden'); @@ -350,12 +351,13 @@ if (active_page === 'thread' || active_page === 'index' || active_page === 'cata .click(function() { var postId = $(ele).find('.post_no').not('[id]').text(); var hidden = $(ele).data('hidden'); + var boardId = $(ele).parents('.thread').data('board'); if (hidden) { - blacklist.remove.post(pageData.boardId, threadId, postId, false); + blacklist.remove.post(boardId, threadId, postId, false); $(this).html('[–]'); } else { - blacklist.add.post(pageData.boardId, threadId, postId, false); + blacklist.add.post(boardId, threadId, postId, false); $(this).text('[+]'); } }); @@ -375,7 +377,9 @@ if (active_page === 'thread' || active_page === 'index' || active_page === 'cata var name, trip, uid, subject, comment; var i, length, array, rule, pattern; // temp variables - var boardId = pageData.boardId; + var boardId = $post.data('board'); + if (!boardId) boardId = $post.parents('.thread').data('board'); + var localList = pageData.localList; var noReplyList = pageData.noReplyList; var hasUID = pageData.hasUID; @@ -532,12 +536,13 @@ if (active_page === 'thread' || active_page === 'index' || active_page === 'cata return; var threadId = $thread.attr('id').replace('thread_', ''); + var boardId = $thread.data('board'); var op = $thread.children('.op')[0]; var i, array; // temp variables // add posts to localList and noReplyList - if (typeof list.postFilter[pageData.boardId] != 'undefined' && typeof list.postFilter[pageData.boardId][threadId] != 'undefined') { - array = list.postFilter[pageData.boardId][threadId]; + if (typeof list.postFilter[boardId] != 'undefined' && typeof list.postFilter[boardId][threadId] != 'undefined') { + array = list.postFilter[boardId][threadId]; for (i=0; i Date: Mon, 9 May 2016 13:02:21 +0200 Subject: [PATCH 144/169] post-filter & ukko: final solution i think --- js/post-filter.js | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/js/post-filter.js b/js/post-filter.js index 3f2358e4..3bf55a51 100644 --- a/js/post-filter.js +++ b/js/post-filter.js @@ -179,7 +179,7 @@ if (active_page === 'thread' || active_page === 'index' || active_page === 'cata $ele.parent().find('.body, .files, .video-container').not($ele.children('.reply').children()).hide(); // hide thread replies on index view - if (active_page == 'index') $ele.parent().find('.omitted, .reply:not(.hidden), post_no, .mentioned, br').hide(); + if (active_page == 'index' || active_page == 'ukko') $ele.parent().find('.omitted, .reply:not(.hidden), post_no, .mentioned, br').hide(); } else { // normal posts $ele.children('.body, .files, .video-container').hide(); @@ -372,6 +372,7 @@ if (active_page === 'thread' || active_page === 'index' || active_page === 'cata */ function filter(post, threadId, pageData) { var $post = $(post); + var list = getList(); var postId = $post.find('.post_no').not('[id]').text(); var name, trip, uid, subject, comment; @@ -814,9 +815,10 @@ if (active_page === 'thread' || active_page === 'index' || active_page === 'cata var threadId; if ($(post).hasClass('reply')) { - threadId = $(post).parent().attr('id').replace('thread_', ''); + threadId = $(post).parents('.thread').attr('id').replace('thread_', ''); } else { threadId = $(post).attr('id').replace('thread_', ''); + post = $(post).children('.op')[0]; } filter(post, threadId, pageData); From 52fe9bc873e2950606afefad82cd102ad0a4db5c Mon Sep 17 00:00:00 2001 From: czaks Date: Sun, 15 May 2016 15:52:41 +0200 Subject: [PATCH 145/169] fix sane_strategy for advanced build. should fix the ajax.js problem. --- inc/functions.php | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/inc/functions.php b/inc/functions.php index 35be56b9..154386b0 100755 --- a/inc/functions.php +++ b/inc/functions.php @@ -2843,12 +2843,10 @@ function strategy_smart_build($fun, $array) { } function strategy_sane($fun, $array) { global $config; - // Well, ideally a sane strategy would involve a more stringent checking, - // but let's at least have something to get the ball rolling :^) - if (php_sapi_name() == 'cli') return false; - else if (isset($_POST['mod']) || isset($_POST['json_response'])) return false; - else if ($fun == 'sb_thread' || ($fun == 'sb_board' && $array[1] == 1)) return array('immediate'); + else if (isset($_POST['mod'])) return false; + // Thread needs to be done instantly. Same with a board page, but only if posting a new thread. + else if ($fun == 'sb_thread' || ($fun == 'sb_board' && $array[1] == 1 && isset ($_POST['page']))) return array('immediate'); else return false; } From d285a796674f170b0e7a71ffa0cc7bbee2d5421a Mon Sep 17 00:00:00 2001 From: fatchan Date: Tue, 31 May 2016 23:28:55 +1000 Subject: [PATCH 146/169] Move the 'Go back and rebuild again' to the top of the rebuilt page so you dont have to scroll --- templates/mod/rebuilt.html | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/templates/mod/rebuilt.html b/templates/mod/rebuilt.html index 57d16fff..f27cdf56 100644 --- a/templates/mod/rebuilt.html +++ b/templates/mod/rebuilt.html @@ -1,12 +1,12 @@

    {% trans 'Rebuilt' %}

    +

    + {% trans 'Go back and rebuild again' %}. +

      {% for log in logs %}
    • {{ log }}
    • {% endfor %}
    -

    - {% trans 'Go back and rebuild again' %}. -

    From 94c91db097c034c46f66b27d16eb84a4ea814bb6 Mon Sep 17 00:00:00 2001 From: czaks Date: Thu, 9 Jun 2016 04:51:05 +0200 Subject: [PATCH 147/169] fix news deletion; thanks MrFreeman --- templates/mod/news.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/templates/mod/news.html b/templates/mod/news.html index 510d60ce..57058291 100644 --- a/templates/mod/news.html +++ b/templates/mod/news.html @@ -40,7 +40,7 @@
    {% if mod|hasPermission(config.mod.news_delete) %} - [{% trans 'delete' %}] + [{% trans 'delete' %}] {% endif %}

    From 8a46c7a0d54864d7f640e1972a23e78018368cc2 Mon Sep 17 00:00:00 2001 From: czaks Date: Thu, 9 Jun 2016 11:08:29 +0200 Subject: [PATCH 148/169] tesseract OCR support for spamfilters --- inc/config.php | 13 +++++++++++++ inc/functions.php | 2 +- post.php | 43 +++++++++++++++++++++++++++++++++++++----- tmp/tesseract/.gitkeep | 0 4 files changed, 52 insertions(+), 6 deletions(-) create mode 100644 tmp/tesseract/.gitkeep diff --git a/inc/config.php b/inc/config.php index 5926eb1d..ebe17572 100644 --- a/inc/config.php +++ b/inc/config.php @@ -824,6 +824,15 @@ // Set this to true if you're using Linux and you can execute `md5sum` binary. $config['gnu_md5'] = false; + // Use Tesseract OCR to retrieve text from images, so you can use it as a spamfilter. + $config['tesseract_ocr'] = false; + + // Tesseract parameters + $config['tesseract_params'] = ''; + + // Tesseract preprocess command + $config['tesseract_preprocess_command'] = 'convert -monochrome %s -'; + // Number of posts in a "View Last X Posts" page $config['noko50_count'] = 50; // Number of posts a thread needs before it gets a "View Last X Posts" page. @@ -1015,6 +1024,10 @@ // Minify Javascript using http://code.google.com/p/minify/. $config['minify_js'] = false; + // Dispatch thumbnail loading and image configuration with JavaScript. It will need a certain javascript + // code to work. + $config['javascript_image_dispatch'] = false; + /* * ==================== * Video embedding diff --git a/inc/functions.php b/inc/functions.php index 154386b0..5a8f6000 100755 --- a/inc/functions.php +++ b/inc/functions.php @@ -2695,7 +2695,7 @@ function slugify($post) { elseif (isset ($post['body_nomarkup']) && $post['body_nomarkup']) $slug = $post['body_nomarkup']; elseif (isset ($post['body']) && $post['body']) - $slug = strip_html($post['body']); + $slug = strip_tags($post['body']); // Fix UTF-8 first $slug = mb_convert_encoding($slug, "UTF-8", "UTF-8"); diff --git a/post.php b/post.php index 4ea08ce3..bf723e01 100644 --- a/post.php +++ b/post.php @@ -652,14 +652,14 @@ if (isset($_POST['delete'])) { $post['filehash'] = md5($allhashes); } } - + if (!hasPermission($config['mod']['bypass_filters'], $board['uri'])) { - require_once 'inc/filters.php'; - + require_once 'inc/filters.php'; + do_filters($post); } - - if ($post['has_file']) { + + if ($post['has_file']) { foreach ($post['files'] as $key => &$file) { if ($file['is_an_image']) { if ($config['ie_mime_type_detection'] !== false) { @@ -787,6 +787,34 @@ if (isset($_POST['delete'])) { $file['thumbwidth'] = $size[0]; $file['thumbheight'] = $size[1]; } + + if ($config['tesseract_ocr']) { // Let's OCR it! + $fname = $file['tmp_name']; + + if ($file['height'] > 500 || $file['width'] > 500) { + $fname = $file['thumb']; + } + + if ($fname == 'spoiler') { // We don't have that much CPU time, do we? + } + else { + $tmpname = "tmp/tesseract/".rand(0,10000000); + + // Preprocess command is an ImageMagick b/w quantization + $error = shell_exec_error(sprintf($config['tesseract_preprocess_command'], escapeshellarg($fname)) . " | " . + 'tesseract stdin '.escapeshellarg($tmpname).' '.$config['tesseract_params']); + $tmpname .= ".txt"; + + $value = @file_get_contents($tmpname); + @unlink($tmpname); + + if ($value && trim($value)) { + // This one has an effect, that the body is appended to a post body. So you can write a correct + // spamfilter. + $post['body_nomarkup'] .= "".htmlspecialchars($value).""; + } + } + } if (!isset($dont_copy_file) || !$dont_copy_file) { if (isset($file['file_tmp'])) { @@ -827,6 +855,11 @@ if (isset($_POST['delete'])) { } } + // Do filters again if OCRing + if ($config['tesseract_ocr'] && !hasPermission($config['mod']['bypass_filters'], $board['uri'])) { + do_filters($post); + } + if (!hasPermission($config['mod']['postunoriginal'], $board['uri']) && $config['robot_enable'] && checkRobot($post['body_nomarkup'])) { undoImage($post); if ($config['robot_mute']) { diff --git a/tmp/tesseract/.gitkeep b/tmp/tesseract/.gitkeep new file mode 100644 index 00000000..e69de29b From d2bb4a776f681ad47a8b44bc271c8f0b502ef1f1 Mon Sep 17 00:00:00 2001 From: czaks Date: Tue, 17 May 2016 09:53:09 +0200 Subject: [PATCH 149/169] fail gracefully on no thumbnail --- inc/functions.php | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/inc/functions.php b/inc/functions.php index 5a8f6000..e576cf99 100755 --- a/inc/functions.php +++ b/inc/functions.php @@ -1161,8 +1161,10 @@ function deleteFile($id, $remove_entirely_if_already=true, $file=null) { foreach ($files as $i => $f) { if (($file !== false && $i == $file) || $file === null) { // Delete thumbnail - file_unlink($board['dir'] . $config['dir']['thumb'] . $f->thumb); - unset($files[$i]->thumb); + if (isset ($f->thumb) && $f->thumb) { + file_unlink($board['dir'] . $config['dir']['thumb'] . $f->thumb); + unset($files[$i]->thumb); + } // Delete file file_unlink($board['dir'] . $config['dir']['img'] . $f->file); From cdd963e79e0ffc5a7bcd69c9cd79d41c8ad74f52 Mon Sep 17 00:00:00 2001 From: fatchan Date: Wed, 1 Jun 2016 00:20:20 +1000 Subject: [PATCH 150/169] fix flag spacing --- templates/post/flag.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/templates/post/flag.html b/templates/post/flag.html index 61622368..481e40ae 100644 --- a/templates/post/flag.html +++ b/templates/post/flag.html @@ -1,5 +1,5 @@ {% if config.display_flags and post.modifiers.flag %} - Date: Wed, 1 Jun 2016 19:51:21 +1000 Subject: [PATCH 151/169] CSS hover instead of javascript mouseover. Need to use important because the dark/light text determined by IDToRGB is added inline and takes priority over stylesheets. --- js/id_colors.js | 6 ------ stylesheets/style.css | 4 +++- 2 files changed, 3 insertions(+), 7 deletions(-) diff --git a/js/id_colors.js b/js/id_colors.js index 6335f960..55454476 100644 --- a/js/id_colors.js +++ b/js/id_colors.js @@ -50,12 +50,6 @@ if (active_page == 'thread' || active_page == 'index') { "border-radius": "8px", "color": ft }); - - $(el).mouseover(function() { - $(this).css('color', '#800000'); // how about a CSS :hover rule instead? - }).mouseout(function() { - $(this).css('color', ft); - }); } $(".poster_id").each(function(k, v){ diff --git a/stylesheets/style.css b/stylesheets/style.css index 39d1fd04..7bedfe14 100644 --- a/stylesheets/style.css +++ b/stylesheets/style.css @@ -913,7 +913,9 @@ pre { .poster_id { cursor: pointer; } - +.poster_id:hover { + color: #800000!important; +} .poster_id::before { content: " ID: "; } From aa0d92a2b413e268ecf60211cf2132248c3c72ad Mon Sep 17 00:00:00 2001 From: fatchan Date: Wed, 1 Jun 2016 20:35:17 +1000 Subject: [PATCH 152/169] Force post-hover.js to show OP's on hover. --- js/post-hover.js | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/js/post-hover.js b/js/post-hover.js index 0becfb70..780f8cff 100644 --- a/js/post-hover.js +++ b/js/post-hover.js @@ -54,10 +54,7 @@ onready(function(){ hovered_at = {'x': e.pageX, 'y': e.pageY}; var start_hover = function($link) { - if($.contains($post[0], $link[0])) { - // link links to itself or to op; ignore - } - else if($post.is(':visible') && + if ($post.is(':visible') && $post.offset().top >= $(window).scrollTop() && $post.offset().top + $post.height() <= $(window).scrollTop() + $(window).height()) { // post is in view From f27c26907d37c9d04f848f5594022a79a34624ee Mon Sep 17 00:00:00 2001 From: fatchan Date: Tue, 7 Jun 2016 23:20:38 +1000 Subject: [PATCH 153/169] Remove hardcoded 8chan links in catalog RSS --- templates/themes/catalog/index.rss | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/templates/themes/catalog/index.rss b/templates/themes/catalog/index.rss index 248b494a..7add8869 100644 --- a/templates/themes/catalog/index.rss +++ b/templates/themes/catalog/index.rss @@ -2,17 +2,17 @@ /{{ board.uri }}/ - {{ board.title|e }} - https://8ch.net/{{ board.uri }}/ + {{ config.root }}{{ board.uri }}/ Live feed of new threads on the 8chan board /{{ board.uri }}/ - {{ board.title|e }}. - + {% for post in recent_posts %} {% if post.subject %}{{ post.subject|e }}{% else %}{{ post.body_nomarkup[:256]|remove_modifiers|e }}{% endif %} - https://8ch.net/{{ board.uri }}/res/{{ post.id }}.html - https://8ch.net/{{ board.uri }}/res/{{ post.id }}.html - https://8ch.net/{{ board.uri }}/res/{{ post.id }}.html + {{ config.root }}{{ board.uri }}/res/{{ post.id }}.html + {{ config.root }}{{ board.uri }}/res/{{ post.id }}.html + {{ config.root }}{{ board.uri }}/res/{{ post.id }}.html {{ post.pubdate }} - {{ post.body }} ]]> + {{ post.body }} ]]> {% endfor %} From 4f3cc7f316d18b159ed5aef3878a9d30d1717d4e Mon Sep 17 00:00:00 2001 From: fatchan Date: Tue, 7 Jun 2016 23:29:19 +1000 Subject: [PATCH 154/169] Whoops --- templates/themes/catalog/index.rss | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/templates/themes/catalog/index.rss b/templates/themes/catalog/index.rss index 7add8869..e6576ffc 100644 --- a/templates/themes/catalog/index.rss +++ b/templates/themes/catalog/index.rss @@ -3,7 +3,7 @@ /{{ board.uri }}/ - {{ board.title|e }} {{ config.root }}{{ board.uri }}/ - Live feed of new threads on the 8chan board /{{ board.uri }}/ - {{ board.title|e }}. + Live feed of new threads on the board /{{ board.uri }}/ - {{ board.title|e }}. {% for post in recent_posts %} From f23d11be60dd03039b04320dc0ea83f563332c9c Mon Sep 17 00:00:00 2001 From: Duane Moody Date: Thu, 22 Oct 2015 10:50:59 -0700 Subject: [PATCH 155/169] Prevent poster IDs from wordwrapping Poster IDs still linebreak between "ID:" and the ID, this corrects that without having to replace the space inbetween with an   nonbreaking space. --- stylesheets/style.css | 1 + 1 file changed, 1 insertion(+) diff --git a/stylesheets/style.css b/stylesheets/style.css index 7bedfe14..abd94973 100644 --- a/stylesheets/style.css +++ b/stylesheets/style.css @@ -912,6 +912,7 @@ pre { .poster_id { cursor: pointer; + white-space:nowrap; } .poster_id:hover { color: #800000!important; From c9ef21bff98698902cf5c89b3baf29a17864fd7a Mon Sep 17 00:00:00 2001 From: fatchan Date: Wed, 8 Jun 2016 00:03:50 +1000 Subject: [PATCH 156/169] Better solution to prevent ID wrapping. Also no longer text-selectable. Much cleaner. --- stylesheets/style.css | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/stylesheets/style.css b/stylesheets/style.css index abd94973..23d3ad7d 100644 --- a/stylesheets/style.css +++ b/stylesheets/style.css @@ -912,7 +912,12 @@ pre { .poster_id { cursor: pointer; - white-space:nowrap; + display: inline-block; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + -o-user-select: none; + user-select: none; } .poster_id:hover { color: #800000!important; From e230f1472cdd9fe5d416196d51e905eac22ce70e Mon Sep 17 00:00:00 2001 From: czaks Date: Fri, 10 Jun 2016 12:41:53 +0200 Subject: [PATCH 157/169] don`t ocr non-images --- post.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/post.php b/post.php index bf723e01..383154fb 100644 --- a/post.php +++ b/post.php @@ -788,7 +788,7 @@ if (isset($_POST['delete'])) { $file['thumbheight'] = $size[1]; } - if ($config['tesseract_ocr']) { // Let's OCR it! + if ($config['tesseract_ocr'] && $file['thumb'] != 'file') { // Let's OCR it! $fname = $file['tmp_name']; if ($file['height'] > 500 || $file['width'] > 500) { From 356f46237c3281b09d1fcc1df4e19cb12947063e Mon Sep 17 00:00:00 2001 From: czaks Date: Sun, 19 Jun 2016 02:15:49 +0200 Subject: [PATCH 158/169] fix install.sql after a bad merge --- install.sql | 1 - 1 file changed, 1 deletion(-) diff --git a/install.sql b/install.sql index 720e4ed5..bf9b92bf 100644 --- a/install.sql +++ b/install.sql @@ -314,7 +314,6 @@ CREATE TABLE `pages` ( UNIQUE KEY `u_pages` (`name`,`board`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8mb4; ->>>>>>> 12fa8ec... Edit static pages commit /*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */; /*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */; /*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */; From fed9065cf1fe759e20ec10baf0aba1309ee6f8ab Mon Sep 17 00:00:00 2001 From: czaks Date: Sun, 19 Jun 2016 02:23:24 +0200 Subject: [PATCH 159/169] skip non-image files in recent themes; fixes vichan-devel/vichan#185 --- templates/themes/recent/theme.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/templates/themes/recent/theme.php b/templates/themes/recent/theme.php index 95921c35..a826048f 100644 --- a/templates/themes/recent/theme.php +++ b/templates/themes/recent/theme.php @@ -65,7 +65,7 @@ if (isset($post['files'])) $files = json_decode($post['files']); - if ($files[0]->file == 'deleted') continue; + if ($files[0]->file == 'deleted' || $files[0]->thumb == 'file') continue; // board settings won't be available in the template file, so generate links now $post['link'] = $config['root'] . $board['dir'] . $config['dir']['res'] From 8f4aa2732900afc837d5154f518dc3a683f58bd1 Mon Sep 17 00:00:00 2001 From: czaks Date: Sun, 19 Jun 2016 02:40:24 +0200 Subject: [PATCH 160/169] fix file-selector.js dependencies --- js/file-selector.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/js/file-selector.js b/js/file-selector.js index 207a5ae9..c2b5381b 100644 --- a/js/file-selector.js +++ b/js/file-selector.js @@ -1,8 +1,9 @@ /* - * file-selector.js - Add support for drag and drop file selection, and paste from clipbboard on supported browsers. + * file-selector.js - Add support for drag and drop file selection, and paste from clipboard on supported browsers. * * Usage: * $config['additional_javascript'][] = 'js/jquery.min.js'; + * $config['additional_javascript'][] = 'js/ajax.js'; * $config['additional_javascript'][] = 'js/file-selector.js'; */ function init_file_selector(max_images) { From 11cecf8452d724b1a61e82292cff1cc16a5403e7 Mon Sep 17 00:00:00 2001 From: czaks Date: Tue, 21 Jun 2016 05:03:44 +0200 Subject: [PATCH 161/169] Revert "[BUG] Image reject repost board option now also affects YT embeds" This reverts commit b476b660073adbe827836a7e7860b0fb3a061ff0. --- inc/functions.php | 47 ----------------------------------------------- post.php | 28 +--------------------------- 2 files changed, 1 insertion(+), 74 deletions(-) diff --git a/inc/functions.php b/inc/functions.php index e576cf99..043d4de7 100755 --- a/inc/functions.php +++ b/inc/functions.php @@ -2492,53 +2492,6 @@ function getPostByHashInThread($hash, $thread) { return false; } -function getPostByEmbed($embed) { - global $board, $config; - $matches = array(); - foreach ($config['embedding'] as &$e) { - if (preg_match($e[0], $embed, $matches) && isset($matches[1]) && !empty($matches[1])) { - $embed = '%'.$matches[1].'%'; - break; - } - } - - if (!isset($embed)) return false; - - $query = prepare(sprintf("SELECT `id`,`thread` FROM ``posts_%s`` WHERE `embed` LIKE :embed", $board['uri'])); - $query->bindValue(':embed', $embed, PDO::PARAM_STR); - $query->execute() or error(db_error($query)); - - if ($post = $query->fetch(PDO::FETCH_ASSOC)) { - return $post; - } - - return false; -} - -function getPostByEmbedInThread($embed, $thread) { - global $board, $config; - $matches = array(); - foreach ($config['embedding'] as &$e) { - if (preg_match($e[0], $embed, $matches) && isset($matches[1]) && !empty($matches[1])) { - $embed = '%'.$matches[1].'%'; - break; - } - } - - if (!isset($embed)) return false; - - $query = prepare(sprintf("SELECT `id`,`thread` FROM ``posts_%s`` WHERE `embed` = :embed AND ( `thread` = :thread OR `id` = :thread )", $board['uri'])); - $query->bindValue(':embed', $embed, PDO::PARAM_STR); - $query->bindValue(':thread', $thread, PDO::PARAM_INT); - $query->execute() or error(db_error($query)); - - if ($post = $query->fetch(PDO::FETCH_ASSOC)) { - return $post; - } - - return false; -} - function undoImage(array $post) { if (!$post['has_file'] || !isset($post['files'])) return; diff --git a/post.php b/post.php index 383154fb..aa1b8235 100644 --- a/post.php +++ b/post.php @@ -295,32 +295,6 @@ if (isset($_POST['delete'])) { if (!isset($post['embed'])) { error($config['error']['invalid_embed']); } - - if ($config['image_reject_repost']) { - if ($p = getPostByEmbed($post['embed'])) { - error(sprintf($config['error']['fileexists'], - ($post['mod'] ? $config['root'] . $config['file_mod'] . '?/' : $config['root']) . - ($board['dir'] . $config['dir']['res'] . - ($p['thread'] ? - $p['thread'] . '.html#' . $p['id'] - : - $p['id'] . '.html' - )) - )); - } - } else if (!$post['op'] && $config['image_reject_repost_in_thread']) { - if ($p = getPostByEmbedInThread($post['embed'], $post['thread'])) { - error(sprintf($config['error']['fileexistsinthread'], - ($post['mod'] ? $config['root'] . $config['file_mod'] . '?/' : $config['root']) . - ($board['dir'] . $config['dir']['res'] . - ($p['thread'] ? - $p['thread'] . '.html#' . $p['id'] - : - $p['id'] . '.html' - )) - )); - } - } } if (!hasPermission($config['mod']['bypass_field_disable'], $board['uri'])) { @@ -853,7 +827,7 @@ if (isset($_POST['delete'])) { )); } } - } + } // Do filters again if OCRing if ($config['tesseract_ocr'] && !hasPermission($config['mod']['bypass_filters'], $board['uri'])) { From a55760299c6777fc841a9990fa9b590b17663bb8 Mon Sep 17 00:00:00 2001 From: nekomiko482 Date: Thu, 7 Jul 2016 12:53:40 +0300 Subject: [PATCH 162/169] Fixes incompatibility with BSD's md5 output format. fixes #190 --- post.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/post.php b/post.php index aa1b8235..753d2006 100644 --- a/post.php +++ b/post.php @@ -607,7 +607,7 @@ if (isset($_POST['delete'])) { error($config['error']['nomove']); if ($md5cmd) { - $output = shell_exec_error($md5cmd . " < " . escapeshellarg($upload)); + $output = shell_exec_error($md5cmd . " " . escapeshellarg($upload)); $output = explode(' ', $output); $hash = $output[0]; } From 8548a4ff703acd5a77e4ce678eeb88e4261a1aa6 Mon Sep 17 00:00:00 2001 From: ptchan-foss Date: Fri, 12 Aug 2016 18:18:54 +0100 Subject: [PATCH 163/169] Fixed report syslog message --- post.php | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/post.php b/post.php index 753d2006..0f58dd4c 100644 --- a/post.php +++ b/post.php @@ -148,15 +148,15 @@ if (isset($_POST['delete'])) { markup($reason); foreach ($report as &$id) { - $query = prepare(sprintf("SELECT `thread` FROM ``posts_%s`` WHERE `id` = :id", $board['uri'])); + $query = prepare(sprintf("SELECT `id`, `thread` FROM ``posts_%s`` WHERE `id` = :id", $board['uri'])); $query->bindValue(':id', $id, PDO::PARAM_INT); $query->execute() or error(db_error($query)); - $thread = $query->fetchColumn(); + $post = $query->fetch(PDO::FETCH_ASSOC); if ($config['syslog']) _syslog(LOG_INFO, 'Reported post: ' . - '/' . $board['dir'] . $config['dir']['res'] . link_for($post) . ($thread ? '#' . $id : '') . + '/' . $board['dir'] . $config['dir']['res'] . link_for($post) . ($post['thread'] ? '#' . $id : '') . ' for "' . $reason . '"' ); $query = prepare("INSERT INTO ``reports`` VALUES (NULL, :time, :ip, :board, :post, :reason)"); From 5e335a8564a76f0449d47f0767b4baa8d2cb9e91 Mon Sep 17 00:00:00 2001 From: czaks Date: Sun, 14 Aug 2016 16:24:17 +0200 Subject: [PATCH 164/169] preliminary inbound nntpchan support --- inc/config.php | 17 +++ install.php | 15 ++- install.sql | 19 +++ post.php | 359 +++++++++++++++++++++++++++++++++++++------------ 4 files changed, 322 insertions(+), 88 deletions(-) diff --git a/inc/config.php b/inc/config.php index ebe17572..a8afdf7a 100644 --- a/inc/config.php +++ b/inc/config.php @@ -1689,6 +1689,23 @@ // Example: Adding the pre-markup post body to the API as "com_nomarkup". // $config['api']['extra_fields'] = array('body_nomarkup' => 'com_nomarkup'); +/* + * ================== + * NNTPChan settings + * ================== + */ + + $config['nntpchan'] = array(); + + // Enable NNTPChan integration + $config['nntpchan']['enabled'] = false; + + // NNTP server + $config['nntpchan']['server'] = "localhost:1119"; + + // Global dispatch array. Add your boards to it to enable them. + $config['nntpchan']['dispatch'] = array(); // 'overchan.test' => 'test' + /* * ==================== * Other/uncategorized diff --git a/install.php b/install.php index de4d3dd0..6f1617a8 100644 --- a/install.php +++ b/install.php @@ -1,7 +1,7 @@ vichan upgrade path. diff --git a/install.sql b/install.sql index bf9b92bf..3b390645 100644 --- a/install.sql +++ b/install.sql @@ -314,6 +314,25 @@ CREATE TABLE `pages` ( UNIQUE KEY `u_pages` (`name`,`board`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8mb4; +-- -------------------------------------------------------- + +-- +-- Table structure for table `nntp_references` +-- + +CREATE TABLE `nntp_references` ( + `board` varchar(60) NOT NULL, + `id` int(11) unsigned NOT NULL, + `message_id` varchar(255) CHARACTER SET ascii NOT NULL, + `message_id_digest` varchar(40) CHARACTER SET ascii NOT NULL, + `own` tinyint(1) NOT NULL, + `headers` text, + PRIMARY KEY (`message_id_digest`), + UNIQUE KEY `message_id` (`message_id`), + UNIQUE KEY `u_board_id` (`board`, `id`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8mb4; + + /*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */; /*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */; /*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */; diff --git a/post.php b/post.php index aa1b8235..4af09928 100644 --- a/post.php +++ b/post.php @@ -11,6 +11,160 @@ if ((!isset($_POST['mod']) || !$_POST['mod']) && $config['board_locked']) { error("Board is locked"); } +$dropped_post = false; + +if (isset($_GET['Newsgroups']) && $config['nntpchan']['enabled']) { + $_POST = array(); + $_POST['json_response'] = true; + + $headers = json_encode($_GET); + + if (!isset ($_GET['Message-Id'])) { + if (!isset ($_GET['Message-ID'])) { + error("NNTPChan: No message ID"); + } + else $msgid = $_GET['Message-ID']; + } + else $msgid = $_GET['Message-Id']; + + $groups = preg_split("/,\s*/", $_GET['Newsgroups']); + if (count($groups) != 1) { + error("NNTPChan: Messages can go to only one newsgroup"); + } + $group = $groups[0]; + + if (!isset($config['nntpchan']['dispatch'][$group])) { + error("NNTPChan: We don't synchronize $group"); + } + $xboard = $config['nntpchan']['dispatch'][$group]; + + $ref = null; + if (isset ($_GET['References'])) { + $refs = preg_split("/,\s*/", $_GET['References']); + + if (count($refs) > 1) { + error("NNTPChan: We don't support multiple references"); + } + + $ref = $refs[0]; + + $query = prepare("SELECT `board`,`id` FROM ``nntp_references`` WHERE `message_id` = :ref"); + $query->bindValue(':ref', $ref); + $query->execute() or error(db_error($query)); + + $ary = $query->fetchAll(PDO::FETCH_ASSOC); + + if (count($ary) == 0) { + error("NNTPChan: We don't have $ref that $msgid references"); + } + + $p_id = $ary[0]['id']; + $p_board = $ary[0]['board']; + + if ($p_board != $xboard) { + error("NNTPChan: Cross board references not allowed. Tried to reference $p_board on $xboard"); + } + + $_POST['thread'] = $p_id; + } + + $date = isset($_GET['Date']) ? strtotime($_GET['Date']) : time(); + + list($ct) = explode('; ', $_GET['Content-Type']); + + $query = prepare("SELECT COUNT(*) AS `c` FROM ``nntp_references`` WHERE `message_id` = :msgid"); + $query->bindValue(":msgid", $msgid); + $query->execute() or error(db_error($query)); + + $a = $query->fetch(PDO::FETCH_ASSOC); + if ($a['c'] > 0) { + error("NNTPChan: We already have this post. Post discarded."); + } + + if ($ct == 'text/plain') { + $content = file_get_contents("php://input"); + } + elseif ($ct == 'multipart/mixed' || $ct == 'multipart/form-data') { + _syslog(LOG_INFO, "MM: Files: ".print_r($GLOBALS, true)); + $content = ''; + + $tmpfiles = $_FILES['attachment']; + foreach ($tmpfiles as $id => $file) { + if ($file['type'] == 'text/plain') { + $content .= file_get_contents($file['tmp_name']); + unset($_FILES['attachment'][$id]); + } + elseif ($file['type'] == 'message/rfc822') { // Signed message, ignore for now + unset($_FILES['attachment'][$id]); + } + else { // A real attachment :^) + } + } + + $_FILES = $_FILES['attachment']; + + + } + else { + error("NNTPChan: Wrong mime type: $ct"); + } + + $_POST['subject'] = isset($_GET['Subject']) ? $_GET['Subject'] : ''; + $_POST['board'] = $xboard; + + if (isset ($_GET['From'])) { + list($name, $mail) = explode(" <", $_GET['From'], 2); + $mail = preg_replace('/>\s+$/', '', $mail); + + $_POST['name'] = $name; + //$_POST['email'] = $mail; + $_POST['email'] = ''; + } + + if (isset ($_GET['X_Sage'])) { + $_POST['email'] = 'sage'; + } + + $content = preg_replace_callback('/>>([0-9a-fA-F]{6,})/', function($id) use ($xboard) { + $id = $id[1]; + + $query = prepare("SELECT `board`,`id` FROM ``nntp_references`` WHERE `message_id_digest` LIKE :rule"); + $idx = $id . "%"; + $query->bindValue(':rule', $idx); + $query->execute() or error(db_error($query)); + + $ary = $query->fetchAll(PDO::FETCH_ASSOC); + if (count($ary) == 0) { + return ">>>>$id"; + } + else { + $ret = array(); + foreach ($ary as $v) { + if ($v['board'] != $xboard) { + $ret[] = ">>>/".$v['board']."/".$v['id']; + } + else { + $ret[] = ">>".$v['id']; + } + } + return implode($ret, ", "); + } + }, $content); + + $_POST['body'] = $content; + + $dropped_post = array( + 'date' => $date, + 'board' => $xboard, + 'msgid' => $msgid, + 'headers' => $headers, + 'from_nntp' => true, + ); +} +elseif (isset($_GET['Newsgroups'])) { + error("NNTPChan: NNTPChan support is disabled"); +} + if (isset($_POST['delete'])) { // Delete @@ -178,8 +332,8 @@ if (isset($_POST['delete'])) { header('Content-Type: text/json'); echo json_encode(array('success' => true)); } -} elseif (isset($_POST['post'])) { - if (!isset($_POST['body'], $_POST['board'])) +} elseif (isset($_POST['post']) || $dropped_post) { + if (!isset($_POST['body'], $_POST['board']) && !$dropped_post) error($config['error']['bot']); $post = array('board' => $_POST['board'], 'files' => array()); @@ -206,61 +360,67 @@ if (isset($_POST['delete'])) { } else $post['op'] = true; - // Check for CAPTCHA right after opening the board so the "return" link is in there - if ($config['recaptcha']) { - if (!isset($_POST['recaptcha_challenge_field']) || !isset($_POST['recaptcha_response_field'])) - error($config['error']['bot']); - // Check what reCAPTCHA has to say... - $resp = recaptcha_check_answer($config['recaptcha_private'], - $_SERVER['REMOTE_ADDR'], - $_POST['recaptcha_challenge_field'], - $_POST['recaptcha_response_field']); - if (!$resp->is_valid) { - error($config['error']['captcha']); + + if (!$dropped_post) { + // Check for CAPTCHA right after opening the board so the "return" link is in there + if ($config['recaptcha']) { + if (!isset($_POST['recaptcha_challenge_field']) || !isset($_POST['recaptcha_response_field'])) + error($config['error']['bot']); + // Check what reCAPTCHA has to say... + $resp = recaptcha_check_answer($config['recaptcha_private'], + $_SERVER['REMOTE_ADDR'], + $_POST['recaptcha_challenge_field'], + $_POST['recaptcha_response_field']); + if (!$resp->is_valid) { + error($config['error']['captcha']); + } } - } - if (!(($post['op'] && $_POST['post'] == $config['button_newtopic']) || - (!$post['op'] && $_POST['post'] == $config['button_reply']))) - error($config['error']['bot']); + if (!(($post['op'] && $_POST['post'] == $config['button_newtopic']) || + (!$post['op'] && $_POST['post'] == $config['button_reply']))) + error($config['error']['bot']); - // Check the referrer - if ($config['referer_match'] !== false && - (!isset($_SERVER['HTTP_REFERER']) || !preg_match($config['referer_match'], rawurldecode($_SERVER['HTTP_REFERER'])))) - error($config['error']['referer']); + // Check the referrer + if ($config['referer_match'] !== false && + (!isset($_SERVER['HTTP_REFERER']) || !preg_match($config['referer_match'], rawurldecode($_SERVER['HTTP_REFERER'])))) + error($config['error']['referer']); - checkDNSBL(); + checkDNSBL(); - // Check if banned - checkBan($board['uri']); + // Check if banned + checkBan($board['uri']); - if ($post['mod'] = isset($_POST['mod']) && $_POST['mod']) { - check_login(false); - if (!$mod) { - // Liar. You're not a mod. - error($config['error']['notamod']); - } + if ($post['mod'] = isset($_POST['mod']) && $_POST['mod']) { + check_login(false); + if (!$mod) { + // Liar. You're not a mod. + error($config['error']['notamod']); + } - $post['sticky'] = $post['op'] && isset($_POST['sticky']); - $post['locked'] = $post['op'] && isset($_POST['lock']); - $post['raw'] = isset($_POST['raw']); + $post['sticky'] = $post['op'] && isset($_POST['sticky']); + $post['locked'] = $post['op'] && isset($_POST['lock']); + $post['raw'] = isset($_POST['raw']); - if ($post['sticky'] && !hasPermission($config['mod']['sticky'], $board['uri'])) - error($config['error']['noaccess']); - if ($post['locked'] && !hasPermission($config['mod']['lock'], $board['uri'])) - error($config['error']['noaccess']); - if ($post['raw'] && !hasPermission($config['mod']['rawhtml'], $board['uri'])) - error($config['error']['noaccess']); - } + if ($post['sticky'] && !hasPermission($config['mod']['sticky'], $board['uri'])) + error($config['error']['noaccess']); + if ($post['locked'] && !hasPermission($config['mod']['lock'], $board['uri'])) + error($config['error']['noaccess']); + if ($post['raw'] && !hasPermission($config['mod']['rawhtml'], $board['uri'])) + error($config['error']['noaccess']); + } + + if (!$post['mod']) { + $post['antispam_hash'] = checkSpam(array($board['uri'], isset($post['thread']) ? $post['thread'] : ($config['try_smarter'] && isset($_POST['page']) ? 0 - (int)$_POST['page'] : null))); + if ($post['antispam_hash'] === true) + error($config['error']['spam']); + } - if (!$post['mod']) { - $post['antispam_hash'] = checkSpam(array($board['uri'], isset($post['thread']) ? $post['thread'] : ($config['try_smarter'] && isset($_POST['page']) ? 0 - (int)$_POST['page'] : null))); - if ($post['antispam_hash'] === true) - error($config['error']['spam']); + if ($config['robot_enable'] && $config['robot_mute']) { + checkMute(); + } } - - if ($config['robot_enable'] && $config['robot_mute']) { - checkMute(); + else { + $mod = $post['mod'] = false; } //Check if thread exists @@ -371,28 +531,36 @@ if (isset($_POST['delete'])) { $post['email'] = str_replace(' ', '%20', htmlspecialchars($_POST['email'])); $post['body'] = $_POST['body']; $post['password'] = $_POST['password']; - $post['has_file'] = (!isset($post['embed']) && (($post['op'] && !isset($post['no_longer_require_an_image_for_op']) && $config['force_image_op']) || !empty($_FILES['file']['name']))); + $post['has_file'] = (!isset($post['embed']) && (($post['op'] && !isset($post['no_longer_require_an_image_for_op']) && $config['force_image_op']) || count($_FILES) > 0)); - if (!($post['has_file'] || isset($post['embed'])) || (($post['op'] && $config['force_body_op']) || (!$post['op'] && $config['force_body']))) { - $stripped_whitespace = preg_replace('/[\s]/u', '', $post['body']); - if ($stripped_whitespace == '') { - error($config['error']['tooshort_body']); + if (!$dropped_post) { + + if (!($post['has_file'] || isset($post['embed'])) || (($post['op'] && $config['force_body_op']) || (!$post['op'] && $config['force_body']))) { + $stripped_whitespace = preg_replace('/[\s]/u', '', $post['body']); + if ($stripped_whitespace == '') { + error($config['error']['tooshort_body']); + } } - } - if (!$post['op']) { - // Check if thread is locked - // but allow mods to post - if ($thread['locked'] && !hasPermission($config['mod']['postinlocked'], $board['uri'])) - error($config['error']['locked']); + if (!$post['op']) { + // Check if thread is locked + // but allow mods to post + if ($thread['locked'] && !hasPermission($config['mod']['postinlocked'], $board['uri'])) + error($config['error']['locked']); - $numposts = numPosts($post['thread']); + $numposts = numPosts($post['thread']); - if ($config['reply_hard_limit'] != 0 && $config['reply_hard_limit'] <= $numposts['replies']) - error($config['error']['reply_hard_limit']); + if ($config['reply_hard_limit'] != 0 && $config['reply_hard_limit'] <= $numposts['replies']) + error($config['error']['reply_hard_limit']); - if ($post['has_file'] && $config['image_hard_limit'] != 0 && $config['image_hard_limit'] <= $numposts['images']) - error($config['error']['image_hard_limit']); + if ($post['has_file'] && $config['image_hard_limit'] != 0 && $config['image_hard_limit'] <= $numposts['images']) + error($config['error']['image_hard_limit']); + } + } + else { + if (!$post['op']) { + $numposts = numPosts($post['thread']); + } } if ($post['has_file']) { @@ -442,7 +610,7 @@ if (isset($_POST['delete'])) { $trip = generate_tripcode($post['name']); $post['name'] = $trip[0]; - $post['trip'] = isset($trip[1]) ? $trip[1] : ''; + $post['trip'] = isset($trip[1]) ? $trip[1] : ''; // XX: Dropped posts and tripcodes $noko = false; if (strtolower($post['email']) == 'noko') { @@ -477,15 +645,17 @@ if (isset($_POST['delete'])) { if (empty($post['files'])) $post['has_file'] = false; - // Check for a file - if ($post['op'] && !isset($post['no_longer_require_an_image_for_op'])) { - if (!$post['has_file'] && $config['force_image_op']) - error($config['error']['noimage']); - } + if (!$dropped_post) { + // Check for a file + if ($post['op'] && !isset($post['no_longer_require_an_image_for_op'])) { + if (!$post['has_file'] && $config['force_image_op']) + error($config['error']['noimage']); + } - // Check for too many files - if (sizeof($post['files']) > $config['max_images']) - error($config['error']['toomanyimages']); + // Check for too many files + if (sizeof($post['files']) > $config['max_images']) + error($config['error']['toomanyimages']); + } if ($config['strip_combining_chars']) { $post['name'] = strip_combining_chars($post['name']); @@ -494,18 +664,19 @@ if (isset($_POST['delete'])) { $post['body'] = strip_combining_chars($post['body']); } - // Check string lengths - if (mb_strlen($post['name']) > 35) - error(sprintf($config['error']['toolong'], 'name')); - if (mb_strlen($post['email']) > 40) - error(sprintf($config['error']['toolong'], 'email')); - if (mb_strlen($post['subject']) > 100) - error(sprintf($config['error']['toolong'], 'subject')); - if (!$mod && mb_strlen($post['body']) > $config['max_body']) - error($config['error']['toolong_body']); - if (mb_strlen($post['password']) > 20) - error(sprintf($config['error']['toolong'], 'password')); - + if (!$dropped_post) { + // Check string lengths + if (mb_strlen($post['name']) > 35) + error(sprintf($config['error']['toolong'], 'name')); + if (mb_strlen($post['email']) > 40) + error(sprintf($config['error']['toolong'], 'email')); + if (mb_strlen($post['subject']) > 100) + error(sprintf($config['error']['toolong'], 'subject')); + if (!$mod && mb_strlen($post['body']) > $config['max_body']) + error($config['error']['toolong_body']); + if (mb_strlen($post['password']) > 20) + error(sprintf($config['error']['toolong'], 'password')); + } wordfilters($post['body']); $post['body'] = escape_markup_modifiers($post['body']); @@ -514,6 +685,7 @@ if (isset($_POST['delete'])) { $post['body'] .= "\n1"; } + if (!$dropped_post) if (($config['country_flags'] && !$config['allow_no_country']) || ($config['country_flags'] && $config['allow_no_country'] && !isset($_POST['no_country']))) { require 'inc/lib/geoip/geoip.inc'; $gi=geoip\geoip_open('inc/lib/geoip/GeoIPv6.dat', GEOIP_STANDARD); @@ -555,6 +727,7 @@ if (isset($_POST['delete'])) { $post['body'] .= "\n" . $_POST['tag'] . ""; } + if (!$dropped_post) if ($config['proxy_save'] && isset($_SERVER['HTTP_X_FORWARDED_FOR'])) { $proxy = preg_replace("/[^0-9a-fA-F.,: ]/", '', $_SERVER['HTTP_X_FORWARDED_FOR']); $post['body'] .= "\n".$proxy.""; @@ -627,7 +800,7 @@ if (isset($_POST['delete'])) { } } - if (!hasPermission($config['mod']['bypass_filters'], $board['uri'])) { + if (!hasPermission($config['mod']['bypass_filters'], $board['uri']) && !$dropped_post) { require_once 'inc/filters.php'; do_filters($post); @@ -830,11 +1003,11 @@ if (isset($_POST['delete'])) { } // Do filters again if OCRing - if ($config['tesseract_ocr'] && !hasPermission($config['mod']['bypass_filters'], $board['uri'])) { + if ($config['tesseract_ocr'] && !hasPermission($config['mod']['bypass_filters'], $board['uri']) && !$dropped_post) { do_filters($post); } - if (!hasPermission($config['mod']['postunoriginal'], $board['uri']) && $config['robot_enable'] && checkRobot($post['body_nomarkup'])) { + if (!hasPermission($config['mod']['postunoriginal'], $board['uri']) && $config['robot_enable'] && checkRobot($post['body_nomarkup']) && !$dropped_post) { undoImage($post); if ($config['robot_mute']) { error(sprintf($config['error']['muted'], mute())); @@ -873,6 +1046,18 @@ if (isset($_POST['delete'])) { $post['id'] = $id = post($post); $post['slug'] = slugify($post); + + if ($dropped_post && $dropped_post['from_nntp']) { + $query = prepare("INSERT INTO ``nntp_references`` (`board`, `id`, `message_id`, `message_id_digest`, `own`, `headers`) VALUES ". + "(:board , :id , :message_id , :message_id_digest , false, :headers)"); + + $query->bindValue(':board', $dropped_post['board']); + $query->bindValue(':id', $id); + $query->bindValue(':message_id', $dropped_post['msgid']); + $query->bindValue(':message_id_digest', sha1($dropped_post['msgid'])); + $query->bindValue(':headers', $dropped_post['headers']); + $query->execute() or error(db_error($query)); + } insertFloodPost($post); // Handle cyclical threads From a779b96370d3353c8409d64b70c724fa783ad219 Mon Sep 17 00:00:00 2001 From: czaks Date: Mon, 15 Aug 2016 00:56:06 +0200 Subject: [PATCH 165/169] second iteration of nntpchan implementation --- inc/config.php | 24 +++++- inc/nntpchan/nntpchan.php | 149 ++++++++++++++++++++++++++++++++++++++ inc/nntpchan/tests.php | 30 ++++++++ post.php | 29 ++++++++ 4 files changed, 231 insertions(+), 1 deletion(-) create mode 100644 inc/nntpchan/nntpchan.php create mode 100644 inc/nntpchan/tests.php diff --git a/inc/config.php b/inc/config.php index a8afdf7a..bfb774a8 100644 --- a/inc/config.php +++ b/inc/config.php @@ -1693,6 +1693,11 @@ * ================== * NNTPChan settings * ================== + */ + +/* + * Please keep in mind that NNTPChan support in vichan isn't finished yet / is in an experimental + * state. Please join #nntpchan on Rizon in order to peer with someone. */ $config['nntpchan'] = array(); @@ -1703,9 +1708,26 @@ // NNTP server $config['nntpchan']['server'] = "localhost:1119"; - // Global dispatch array. Add your boards to it to enable them. + // Global dispatch array. Add your boards to it to enable them. Please make + // sure that this setting is set in a global context. $config['nntpchan']['dispatch'] = array(); // 'overchan.test' => 'test' + // Trusted peer - an IP address of your NNTPChan instance. This peer will have + // increased capabilities, eg.: will evade spamfilter. + $config['nntpchan']['trusted_peer'] = '127.0.0.1'; + + // Salt for message ID generation. Keep it long and secure. + $config['nntpchan']['salt'] = 'change_me+please'; + + // A local message ID domain. Make sure to change it. + $config['nntpchan']['domain'] = 'example.vichan.net'; + + // An NNTPChan group name. + // Please set this setting in your board/config.php, not globally. + $config['nntpchan']['group'] = false; // eg. 'overchan.test' + + + /* * ==================== * Other/uncategorized diff --git a/inc/nntpchan/nntpchan.php b/inc/nntpchan/nntpchan.php new file mode 100644 index 00000000..25215e94 --- /dev/null +++ b/inc/nntpchan/nntpchan.php @@ -0,0 +1,149 @@ +"; +} + + +function gen_nntp($headers, $files) { + if (count($files) == 0) { + } + else if (count($files) == 1 && $files[0]['type'] == 'text/plain') { + $content = $files[0]['text'] . "\r\n"; + $headers['Content-Type'] = "text/plain; charset=UTF-8"; + } + else { + $boundary = sha1($headers['Message-Id']); + $content = ""; + $headers['Content-Type'] = "multipart/mixed; boundary=$boundary"; + foreach ($files as $file) { + $content .= "--$boundary\r\n"; + if (isset($file['name'])) { + $file['name'] = preg_replace('/[\r\n\0"]/', '', $file['name']); + $content .= "Content-Disposition: form-data; filename=\"$file[name]\"; name=\"attachment\"\r\n"; + } + $type = explode('/', $file['type'])[0]; + if ($type == 'text') { + $file['type'] .= '; charset=UTF-8'; + } + $content .= "Content-Type: $file[type]\r\n"; + if ($type != 'text' && $type != 'message') { + $file['text'] = base64_encode($file['text']); + $content .= "Content-Transfer-Encoding: base64\r\n"; + } + $content .= "\r\n"; + $content .= $file['text']; + $content .= "\r\n"; + } + $content .= "--$boundary--\r\n"; + + $headers['Mime-Version'] = '1.0'; + } + //$headers['Content-Length'] = strlen($content); + $headers['Date'] = date('r', $headers['Date']); + $out = ""; + foreach ($headers as $id => $val) { + $val = str_replace("\n", "\n\t", $val); + $out .= "$id: $val\r\n"; + } + $out .= "\r\n"; + $out .= $content; + return $out; +} + +function nntp_publish($msg, $id) { + $s = fsockopen("tcp://localhost:1119"); + fgets($s); + fputs($s, "MODE STREAM\r\n"); + fgets($s); + fputs($s, "TAKETHIS $id\r\n"); + fputs($s, $msg); + fputs($s, "\r\n.\r\n"); + fgets($s); + fclose($s); +} + +function post2nntp($post, $msgid) { + global $config; + + $headers = array(); + $files = array(); + + $headers['Message-Id'] = $msgid; + $headers['Newsgroups'] = $config['nntpchan']['group']; + $headers['Date'] = time(); + $headers['Subject'] = $post['subject'] ? $post['subject'] : "None"; + $headers['From'] = $post['name'] . " "; + + if ($post['email'] == 'sage') { + $headers['X-Sage'] = true; + } + + if (!$post['op']) { + // Get muh parent + $query = prepare("SELECT `message_id` FROM ``nntp_references`` WHERE `board` = :board AND `id` = :id"); + $query->bindValue(':board', $post['board']); + $query->bindValue(':id', $post['thread']); + $query->execute() or error(db_error($query)); + + if ($result = $query->fetch(PDO::FETCH_ASSOC)) { + $headers['References'] = $result['message_id']; + } + else { + return false; // We don't have OP. Discarding. + } + } + + // Let's parse the body a bit. + $body = trim($post['body_nomarkup']); + $body = preg_replace('/\r?\n/', "\r\n", $body); + $body = preg_replace_callback('@>>(>/([a-zA-Z0-9_+-]+)/)?([0-9]+)@', function($o) use ($post) { + if ($o[1]) { + $board = $o[2]; + } + else { + $board = $post['board']; + } + $id = $o[3]; + + $query = prepare("SELECT `message_id_digest` FROM ``nntp_references`` WHERE `board` = :board AND `id` = :id"); + $query->bindValue(':board', $board); + $query->bindValue(':id', $id); + $query->execute() or error(db_error($query)); + + if ($result = $query->fetch(PDO::FETCH_ASSOC)) { + return ">>".substr($result['message_id_digest'], 0, 16); + } + else { + return $o[0]; // Should send URL imo + } + }, $body); + $body = preg_replace('/>>>>([0-9a-fA-F])+/', '>>\1', $body); + + + $files[] = array('type' => 'text/plain', 'text' => $body); + + foreach ($post['files'] as $id => $file) { + $fc = array(); + + $fc['type'] = $file['type']; + $fc['text'] = file_get_contents($file['file_path']); + $fc['name'] = $file['name']; + + $files[] = $fc; + } + + return array($headers, $files); +} diff --git a/inc/nntpchan/tests.php b/inc/nntpchan/tests.php new file mode 100644 index 00000000..a63789d7 --- /dev/null +++ b/inc/nntpchan/tests.php @@ -0,0 +1,30 @@ + "czaks ", "Message-Id" => "<1234.0000.".$time."@example.vichan.net>", "Newsgroups" => "overchan.test", "Date" => time(), "Subject" => "None"], +[['type' => 'text/plain', 'text' => "THIS IS A NEW TEST THREAD"]]); +echo "\n@@@@ Single msg:\n"; +echo $m1 = gennntp(["From" => "czaks ", "Message-Id" => "<1234.1234.".$time."@example.vichan.net>", "Newsgroups" => "overchan.test", "Date" => time(), "Subject" => "None", "References" => "<1234.0000.".$time."@example.vichan.net>"], +[['type' => 'text/plain', 'text' => "hello world, with no image :("]]); +echo "\n@@@@ Single msg and pseudoimage:\n"; +echo $m2 = gennntp(["From" => "czaks ", "Message-Id" => "<1234.2137.".$time."@example.vichan.net>", "Newsgroups" => "overchan.test", "Date" => time(), "Subject" => "None", "References" => "<1234.0000.".$time."@example.vichan.net>"], +[['type' => 'text/plain', 'text' => "hello world, now with an image!"], + ['type' => 'image/gif', 'text' => base64_decode("R0lGODlhAQABAIAAAAUEBAAAACwAAAAAAQABAAACAkQBADs="), 'name' => "urgif.gif"]]); +echo "\n@@@@ Single msg and two pseudoimages:\n"; +echo $m3 = gennntp(["From" => "czaks ", "Message-Id" => "<1234.1488.".$time."@example.vichan.net>", "Newsgroups" => "overchan.test", "Date" => time(), "Subject" => "None", "References" => "<1234.0000.".$time."@example.vichan.net>"], +[['type' => 'text/plain', 'text' => "hello world, now WITH TWO IMAGES!!!"], + ['type' => 'image/gif', 'text' => base64_decode("R0lGODlhAQABAIAAAAUEBAAAACwAAAAAAQABAAACAkQBADs="), 'name' => "urgif.gif"], + ['type' => 'image/gif', 'text' => base64_decode("R0lGODlhAQABAIAAAAUEBAAAACwAAAAAAQABAAACAkQBADs="), 'name' => "urgif2.gif"]]); +shoveitup($m0, "<1234.0000.".$time."@example.vichan.net>"); +sleep(1); +shoveitup($m1, "<1234.1234.".$time."@example.vichan.net>"); +sleep(1); +shoveitup($m2, "<1234.2137.".$time."@example.vichan.net>"); +shoveitup($m3, "<1234.1488.".$time."@example.vichan.net>"); + diff --git a/post.php b/post.php index 4590a534..1e4edcee 100644 --- a/post.php +++ b/post.php @@ -13,7 +13,12 @@ if ((!isset($_POST['mod']) || !$_POST['mod']) && $config['board_locked']) { $dropped_post = false; +// Is it a post coming from NNTP? Let's extract it and pretend it's a normal post. if (isset($_GET['Newsgroups']) && $config['nntpchan']['enabled']) { + if ($_SERVER['REMOTE_ADDR'] != $config['nntpchan']['trusted_peer']) { + error("NNTPChan: Forbidden. $_SERVER[REMOTE_ADDR] is not a trusted peer"); + } + $_POST = array(); $_POST['json_response'] = true; @@ -1057,7 +1062,31 @@ if (isset($_POST['delete'])) { $query->bindValue(':message_id_digest', sha1($dropped_post['msgid'])); $query->bindValue(':headers', $dropped_post['headers']); $query->execute() or error(db_error($query)); + } // ^^^^^ For inbound posts ^^^^^ + elseif ($config['nntpchan']['enabled'] && $config['nntpchan']['group']) { + // vvvvv For outbound posts vvvvv + + require_once('inc/nntpchan/nntpchan.php'); + $msgid = gen_msgid($post['board'], $post['id']); + + list($headers, $files) = post2nntp($post, $msgid); + + $message = gen_nntp($headers, $files); + + $query = prepare("INSERT INTO ``nntp_references`` (`board`, `id`, `message_id`, `message_id_digest`, `own`, `headers`) VALUES ". + "(:board , :id , :message_id , :message_id_digest , true , :headers)"); + + $query->bindValue(':board', $post['board']); + $query->bindValue(':id', $post['id']); + $query->bindValue(':message_id', $msgid); + $query->bindValue(':message_id_digest', sha1($msgid)); + $query->bindValue(':headers', json_encode($headers)); + $query->execute() or error(db_error($query)); + + // Let's broadcast it! + nntp_publish($message, $msgid); } + insertFloodPost($post); // Handle cyclical threads From 0b19051891e3a45a913cef38f0921cf781a0817b Mon Sep 17 00:00:00 2001 From: czaks Date: Mon, 15 Aug 2016 04:13:26 +0200 Subject: [PATCH 166/169] fix a notice; increase waiting time for dns --- inc/functions.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/inc/functions.php b/inc/functions.php index 043d4de7..1b336e12 100755 --- a/inc/functions.php +++ b/inc/functions.php @@ -892,7 +892,7 @@ function displayBan($ban) { Element('page.html', array( 'title' => _('Banned!'), 'config' => $config, - 'boardlist' => createBoardlist($mod), + 'boardlist' => createBoardlist(isset($mod) ? $mod : false), 'body' => Element('banned.html', array( 'config' => $config, 'ban' => $ban, @@ -2514,7 +2514,7 @@ function rDNS($ip_addr) { if (!$config['dns_system']) { $host = gethostbyaddr($ip_addr); } else { - $resp = shell_exec_error('host -W 1 ' . $ip_addr); + $resp = shell_exec_error('host -W 3 ' . $ip_addr); if (preg_match('/domain name pointer ([^\s]+)$/', $resp, $m)) $host = $m[1]; else From 1c3e6e590aca050802f271d157f0d274c8217d4d Mon Sep 17 00:00:00 2001 From: Jeff Becker Date: Fri, 19 Aug 2016 16:05:50 -0400 Subject: [PATCH 167/169] patch for nntpchan stream --- inc/nntpchan/nntpchan.php | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/inc/nntpchan/nntpchan.php b/inc/nntpchan/nntpchan.php index 25215e94..f21fdd2d 100644 --- a/inc/nntpchan/nntpchan.php +++ b/inc/nntpchan/nntpchan.php @@ -64,7 +64,9 @@ function gen_nntp($headers, $files) { } function nntp_publish($msg, $id) { - $s = fsockopen("tcp://localhost:1119"); + global $config; + $server = $config["nntpchan"]["server"]; + $s = fsockopen("tcp://$server"); fgets($s); fputs($s, "MODE STREAM\r\n"); fgets($s); @@ -72,6 +74,7 @@ function nntp_publish($msg, $id) { fputs($s, $msg); fputs($s, "\r\n.\r\n"); fgets($s); + fputs($s, "QUIT\r\n"); fclose($s); } From a5e7b3da6f8ee764ab831d3c1b2df6c17a5e78ca Mon Sep 17 00:00:00 2001 From: czaks Date: Fri, 19 Aug 2016 23:15:08 +0200 Subject: [PATCH 168/169] nntpchan: work around php nonsense --- inc/nntpchan/nntpchan.php | 2 +- post.php | 29 +++++++++++++++++------------ 2 files changed, 18 insertions(+), 13 deletions(-) diff --git a/inc/nntpchan/nntpchan.php b/inc/nntpchan/nntpchan.php index 25215e94..8a2fba44 100644 --- a/inc/nntpchan/nntpchan.php +++ b/inc/nntpchan/nntpchan.php @@ -124,7 +124,7 @@ function post2nntp($post, $msgid) { $query->execute() or error(db_error($query)); if ($result = $query->fetch(PDO::FETCH_ASSOC)) { - return ">>".substr($result['message_id_digest'], 0, 16); + return ">>".substr($result['message_id_digest'], 0, 18); } else { return $o[0]; // Should send URL imo diff --git a/post.php b/post.php index 1e4edcee..47c5f0ef 100644 --- a/post.php +++ b/post.php @@ -90,31 +90,36 @@ if (isset($_GET['Newsgroups']) && $config['nntpchan']['enabled']) { $content = file_get_contents("php://input"); } elseif ($ct == 'multipart/mixed' || $ct == 'multipart/form-data') { - _syslog(LOG_INFO, "MM: Files: ".print_r($GLOBALS, true)); + _syslog(LOG_INFO, "MM: Files: ".print_r($GLOBALS, true)); // Debug + $content = ''; - $tmpfiles = $_FILES['attachment']; - foreach ($tmpfiles as $id => $file) { - if ($file['type'] == 'text/plain') { - $content .= file_get_contents($file['tmp_name']); - unset($_FILES['attachment'][$id]); + $newfiles = array(); + foreach ($_FILES['attachment']['error'] as $id => $error) { + if ($_FILES['attachment']['type'][$id] == 'text/plain') { + $content .= file_get_contents($_FILES['attachment']['tmp_name'][$id]); } - elseif ($file['type'] == 'message/rfc822') { // Signed message, ignore for now - unset($_FILES['attachment'][$id]); + elseif ($_FILES['attachment']['type'][$id] == 'message/rfc822') { // Signed message, ignore for now } else { // A real attachment :^) + $file = array(); + $file['name'] = $_FILES['attachment']['name'][$id]; + $file['type'] = $_FILES['attachment']['type'][$id]; + $file['size'] = $_FILES['attachment']['size'][$id]; + $file['tmp_name'] = $_FILES['attachment']['tmp_name'][$id]; + $file['error'] = $_FILES['attachment']['error'][$id]; + + $newfiles["file$id"] = $file; } } - $_FILES = $_FILES['attachment']; - - + $_FILES = $newfiles; } else { error("NNTPChan: Wrong mime type: $ct"); } - $_POST['subject'] = isset($_GET['Subject']) ? $_GET['Subject'] : ''; + $_POST['subject'] = isset($_GET['Subject']) ? ($_GET['Subject'] == 'None' ? '' : $_GET['Subject']) : ''; $_POST['board'] = $xboard; if (isset ($_GET['From'])) { From 8951cb74c8fbface07e38308994bc2fe480e3c82 Mon Sep 17 00:00:00 2001 From: "Michael D. Reiley" Date: Thu, 22 Sep 2016 23:03:11 -0700 Subject: [PATCH 169/169] Rebuild index when mod deletes a thread. The index does not properly rebuild when a mod deletes a thread, resulting in a ghost thread remaining in the index until the next rebuild. This fix was originally contributed to Uboachan's codebase by Mannosuke. --- inc/mod/pages.php | 2 ++ 1 file changed, 2 insertions(+) diff --git a/inc/mod/pages.php b/inc/mod/pages.php index 303fa3dd..c3e98af5 100644 --- a/inc/mod/pages.php +++ b/inc/mod/pages.php @@ -1721,6 +1721,8 @@ function mod_deletebyip($boardName, $post, $global = false) { deletePost($post['id'], false, false); rebuildThemes('post-delete', $board['uri']); + + buildIndex(); if ($post['thread']) $threads_to_rebuild[$post['board']][$post['thread']] = true;