From 8f0dd3ab0b2af541e891e92b6a986c98dda32a26 Mon Sep 17 00:00:00 2001 From: Jiang Date: Wed, 19 Nov 2014 16:31:21 +0800 Subject: [PATCH] embrj --- .htaccess | 18 +- README.md | 26 + ajax/addMembersToList.php | 18 + ajax/apiQuota.php | 19 +- ajax/delete.php | 7 +- ajax/expand.php | 29 + ajax/getRelationship.php | 49 -- ajax/modifyList.php | 26 + ajax/retweet.php | 2 +- ajax/savedSearches.php | 42 ++ ajax/status.php | 2 +- ajax/timeline_format.php | 172 ----- ajax/updateFollowing.php | 4 +- ajax/updateList.php | 6 +- ajax/updateMessage.php | 2 +- ajax/updateReplies.php | 2 +- ajax/updateTimeline.php | 2 +- ajax/uploadImage.php | 77 +- ajax/uploadPhoto.php | 17 - all.php | 176 ++--- authorize.php | 10 +- basic_auth.php | 43 -- block.php | 24 +- browse.php | 58 -- css/main.css | 10 +- error.php | 54 +- favicon.gif | 0 favicon.ico | Bin 1406 -> 0 bytes favor.php | 116 +-- followers.php | 22 +- friends.php | 20 +- img/3.gif | Bin 1655 -> 0 bytes img/bg-front.gif | Bin 456 -> 0 bytes img/bg_faux.png | Bin 368 -> 0 bytes img/bird.png | Bin 10284 -> 0 bytes img/faved.png | Bin 3125 -> 0 bytes img/nexus_intro.png | Bin 74823 -> 0 bytes img/nexus_logo.png | Bin 8594 -> 0 bytes img/rabr_cry.gif | Bin 12637 -> 0 bytes img/rabr_login.jpg | Bin 34978 -> 0 bytes img/rabr_logo.png | Bin 5730 -> 0 bytes inc/followingWall.php | 18 - inc/footer.php | 36 +- inc/header.php | 141 ++-- inc/onlineUsers.php | 25 - inc/sidebar.php | 3 +- inc/sidepost.php | 8 +- inc/symbols.inc | 978 +++++++++++++------------- inc/symbols.php | 489 ------------- inc/trends.php | 58 +- inc/userlist.php | 29 +- index.php | 29 +- js/ajaxfileupload.js | 152 ---- js/btns.js | 100 +-- js/colorpicker3.js | 484 ------------- js/favor.js | 19 - js/formfunc.js | 2 + js/jquery.js | 715 ++++++++++++++++++- js/jquery.plugins.js | 47 -- js/jquery.tools.min.js | 18 - js/list.js | 256 +++---- js/list_members.js | 82 +-- js/lists.js | 319 ++++++--- js/main.js | 41 -- js/message.js | 100 +-- js/nexus.js | 40 -- js/profile.js | 24 - js/public.js | 59 +- js/search.js | 97 +++ js/setting.js | 85 ++- js/user.js | 519 +++++++------- lib/config.php | 12 - lib/config.sample.php | 37 +- lib/image_uploader.php | 49 -- lib/mobile_device_detect.php | 2 +- lib/oauth_lib.php | 1142 +++++++++++++++--------------- lib/timeline_format.php | 18 +- lib/twitese.php | 586 ++++++++-------- lib/twitter.php | 1169 ------------------------------- lib/twitteroauth.php | 1595 ++++++++++++++++++++---------------------- lib/utility.php | 250 +++---- list.php | 156 ++--- list_followers.php | 22 +- list_members.php | 24 +- lists.php | 321 ++++----- login.php | 5 +- login_action.php | 30 - logout.php | 56 +- message.php | 41 +- nexus.php | 150 ---- oauth.php | 215 +++--- profile.php | 121 ++-- rank.php | 68 -- replies.php | 112 +-- retweets.php | 85 +-- search.php | 44 +- setting.php | 47 +- share.php | 269 +++---- signup/available.php | 4 - signup/check.gif | Bin 287 -> 0 bytes signup/common.php | 33 - signup/image.php | 5 - signup/index.php | 93 --- signup/main.js | 79 --- signup/style.css | 7 - status.php | 15 +- themes/1.css | 2 +- themes/10.css | 2 +- themes/11.css | 2 +- themes/12.css | 2 +- themes/13.css | 2 +- themes/14.css | 4 +- themes/15.css | 8 +- themes/16.css | 2 +- themes/2.css | 2 +- themes/3.css | 4 +- themes/4.css | 2 +- themes/5.css | 2 +- themes/6.css | 2 +- themes/7.css | 2 +- themes/8.css | 2 +- themes/9.css | 2 +- themes/minimal.css | 2 +- user.php | 39 +- 124 files changed, 5352 insertions(+), 7619 deletions(-) create mode 100644 README.md create mode 100644 ajax/addMembersToList.php create mode 100644 ajax/expand.php delete mode 100644 ajax/getRelationship.php create mode 100644 ajax/modifyList.php create mode 100644 ajax/savedSearches.php delete mode 100644 ajax/timeline_format.php delete mode 100644 ajax/uploadPhoto.php delete mode 100644 basic_auth.php delete mode 100644 browse.php delete mode 100644 favicon.gif delete mode 100644 favicon.ico delete mode 100644 img/3.gif delete mode 100644 img/bg-front.gif delete mode 100644 img/bg_faux.png delete mode 100644 img/bird.png delete mode 100644 img/faved.png delete mode 100644 img/nexus_intro.png delete mode 100644 img/nexus_logo.png delete mode 100644 img/rabr_cry.gif delete mode 100644 img/rabr_login.jpg delete mode 100644 img/rabr_logo.png delete mode 100644 inc/followingWall.php delete mode 100644 inc/onlineUsers.php delete mode 100644 inc/symbols.php delete mode 100644 js/ajaxfileupload.js delete mode 100644 js/colorpicker3.js delete mode 100644 js/favor.js delete mode 100644 js/jquery.plugins.js delete mode 100644 js/jquery.tools.min.js delete mode 100644 js/main.js delete mode 100644 js/nexus.js delete mode 100644 js/profile.js delete mode 100644 lib/config.php delete mode 100644 lib/image_uploader.php delete mode 100644 lib/twitter.php delete mode 100644 login_action.php delete mode 100644 nexus.php delete mode 100644 rank.php delete mode 100644 signup/available.php delete mode 100644 signup/check.gif delete mode 100644 signup/common.php delete mode 100644 signup/image.php delete mode 100644 signup/index.php delete mode 100644 signup/main.js delete mode 100644 signup/style.css diff --git a/.htaccess b/.htaccess index bf2a7a6..d05ed1e 100644 --- a/.htaccess +++ b/.htaccess @@ -1,10 +1,10 @@ -RewriteEngine On -RewriteRule ^([a-zA-Z0-9_]+)$ user.php?id=$1 [L,QSA] -RewriteRule ^(\d+)$ status.php?id=$1 [L,QSA] - -ExpiresActive On -ExpiresByType image/gif A2592000 -ExpiresByType image/png A2592000 -ExpiresByType text/css A2592000 -ExpiresByType application/x-javascript A2592000 +RewriteEngine On +RewriteRule ^([a-zA-Z0-9_]+)$ user.php?id=$1 [L,QSA] +RewriteRule ^(\d+)$ status.php?id=$1 [L,QSA] + +ExpiresActive On +ExpiresByType image/gif A2592000 +ExpiresByType image/png A2592000 +ExpiresByType text/css A2592000 +ExpiresByType application/x-javascript A2592000 \ No newline at end of file diff --git a/README.md b/README.md new file mode 100644 index 0000000..7df6ef1 --- /dev/null +++ b/README.md @@ -0,0 +1,26 @@ +How to Install +-------- +The installation of embrj is pretty much the same with embr's, you just need to get the source, rename `config.sample.php` in `/lib` to `config.php`, edit it with your own app information and upload it to your hosting directory. + +And here are some tips you may want to know: + + * embrj requires `php-curl` and `php-bcmath` + * while not necessarily required, `php-mcrypt` is recommended + * embrj is compatible with PHP from version 5.2 to 5.5, we didn't test it on 5.1 or older versions + +Installing in sub-directory +-------- +If you need to install embrj in a sub-directory of your website, say, in `/embrj`, you'll need to adjust the `.htaccess` file with `/embrj/user.php` and `/embrj/status.php` instead of `/user.php` and `/status.php`. + +nginx +-------- +For nginx users, you'll need to add these lines to your nginx config file: + + location / { + if (!-f $request_filename) { + rewrite ^/(\d+)$ /status.php?id=$1 last; + rewrite ^/(\w+)$ /user.php?id=$1 last; + break; + } + } +And of course, adjust it if you are in a sub-directory. diff --git a/ajax/addMembersToList.php b/ajax/addMembersToList.php new file mode 100644 index 0000000..aa71ce9 --- /dev/null +++ b/ajax/addMembersToList.php @@ -0,0 +1,18 @@ +addListMember($listId, $id, $members); + if ($result) { + $ret = 'Followers: '.$result->subsriber_count.'  '; + $ret .= 'Members: '.$result->member_count.'  '; + $ret .= $result->mode == "private" ? "Private" : "Public"; + echo $ret; + } else + echo 'error'; +?> diff --git a/ajax/apiQuota.php b/ajax/apiQuota.php index 0b9a962..bb1ff75 100644 --- a/ajax/apiQuota.php +++ b/ajax/apiQuota.php @@ -4,11 +4,18 @@ session_start(); } $t = getTwitter(); - $limit = $t->ratelimit(); - $reset = intval((format_time($limit->reset_time) - time())/60); - $remaining = $limit->remaining_hits < 0 ? 0 : $limit->remaining_hits; - $hourly = $limit->hourly_limit; + $limit = get_object_vars($t->ratelimit()->resources->statuses); + $timeline_limit = $limit["/statuses/home_timeline"]; + $mentions_limit = $limit['/statuses/mentions_timeline']; + $timeline_reset = intval($timeline_limit->reset - $_SERVER['REQUEST_TIME']); + $mentions_reset = intval($mentions_limit->reset - $_SERVER['REQUEST_TIME']); + $timeline_remaining = $timeline_limit->remaining < 0 ? 0 : $timeline_limit->remaining; + $mentions_remaining = $mentions_limit->remaining < 0 ? 0 : $mentions_limit->remaining; + $timeline_qlimit = $timeline_limit->limit; + $mentions_qlimit = $mentions_limit->limit; header('Content-Type: text/html'); - echo "
  • API: $remaining/$hourly
  • -
  • Reset in $reset min(s)
  • "; + echo "
  • Timeline API remains: $timeline_remaining/$timeline_qlimit
  • +
  • Reset in $timeline_reset sec(s)
  • +
  • Mentions API remains: $mentions_remaining/$mentions_qlimit
  • +
  • Reset in $mentions_reset sec(s)
  • "; ?> diff --git a/ajax/delete.php b/ajax/delete.php index f9e21ae..8a5abe9 100644 --- a/ajax/delete.php +++ b/ajax/delete.php @@ -19,14 +19,13 @@ if ($result) echo 'success'; else echo 'error'; } - elseif ( isset($_POST['list_id']) ) { - $result = $t->deleteList($_POST['list_id']); + elseif ( isset($_POST['list_slug']) ) { + $result = $t->deleteList($_POST['list_slug']); if ($result) echo 'success'; else echo 'error'; } elseif ( isset($_POST['list_member']) ) { - //$user = $t->showUser($_POST['list_member']); - $result = $t->deleteListMember($_POST['id'], $_POST['list_member']); + $result = $t->deleteListMember($_POST['slug'], $_POST['owner'], $_POST['list_member']); if ($result) echo 'success'; else echo 'error'; } diff --git a/ajax/expand.php b/ajax/expand.php new file mode 100644 index 0000000..502d17a --- /dev/null +++ b/ajax/expand.php @@ -0,0 +1,29 @@ + diff --git a/ajax/getRelationship.php b/ajax/getRelationship.php deleted file mode 100644 index b10ee35..0000000 --- a/ajax/getRelationship.php +++ /dev/null @@ -1,49 +0,0 @@ -username; - if($target == '' || $source == ''){ - echo "error"; - exit; - } - $analysis = getRelationship($target, $source); - switch($analysis){ - case 1: - $result = '

    They\'re following each other. How sweet!

    '; - break; - case 2: - $result = '

    - @'.$source.' is following @'.$target.' -

    -

    - @'.$target.' is NOT following @'.$source.' -

    '; - break; - case 3: - $result = '

    - @'.$target.' is following @'.$source.' -

    -

    - @'.$source.' is NOT following @'.$target.' -

    '; - break; - case 4: - $result = '

    - @'.$source.' is blocking @'.$target.' -

    '; - break; - case 9: - $result = '

    It seems that they don\'t know each other!

    '; - break; - } - $html = $result; - echo $html; -?> \ No newline at end of file diff --git a/ajax/modifyList.php b/ajax/modifyList.php new file mode 100644 index 0000000..8fa8e41 --- /dev/null +++ b/ajax/modifyList.php @@ -0,0 +1,26 @@ +editList($_POST['slug'], $name, $description, $mode); + } + else { + $result = $t->createList($name, $description, $mode); + } + if ($result) { + $ret = '{"result": "success"'; + $ret .= ',"username":"'.$t->username.'"'; + $ret .= ',"imgurl":"'.getAvatar($result->user->profile_image_url).'"'; + $ret .= ',"contentid":"list'.$result->id_str.'"'; + $ret .= ',"listuri":"'.substr($result->uri,1).'"'; + $ret .= '}'; + echo $ret; + } + else echo '{"result": "error"}'; +?> diff --git a/ajax/retweet.php b/ajax/retweet.php index 6099d33..4f50de6 100644 --- a/ajax/retweet.php +++ b/ajax/retweet.php @@ -3,7 +3,7 @@ session_start(); } include('../lib/twitese.php'); - include('timeline_format.php'); + include('../lib/timeline_format.php'); $t = getTwitter(); if(isset($_POST['status_id'])){ $id = trim($_POST['status_id']); diff --git a/ajax/savedSearches.php b/ajax/savedSearches.php new file mode 100644 index 0000000..65b95a8 --- /dev/null +++ b/ajax/savedSearches.php @@ -0,0 +1,42 @@ +savedSearches(); + $answer = '['; + $firsts = true; + + foreach($ss as $onesearch){ + if (!$firsts){ + $answer .= ','; + } + else{ + $firsts = false; + } + $answer .= '["'.$onesearch->id_str.'", "'.$onesearch->query.'"]'; + } + + $answer .=']'; + echo $answer; + } + else if ($_GET['method'] == "delete") { + $ssid = $_GET['ssid']; + $dss = $t->deleteSavedSearch($ssid); + if (isset($dss->query)) + echo "success"; + else + echo "error"; + } + else if ($_GET['method'] == "save") { + $query = $_GET['query']; + $ss = $t->saveSearch($query); + if (isset($ss->query)) + echo '["'.$ss->id_str.'", "'.$ss->query.'"]'; + else + echo "error"; + } +?> + diff --git a/ajax/status.php b/ajax/status.php index 5b8a1d0..5ca32f6 100644 --- a/ajax/status.php +++ b/ajax/status.php @@ -40,7 +40,7 @@ '.$status_id.' - '.$user->screen_name.' '.$text.' + '.($_COOKIE['shownick']=='true' ? $user->name : $user->screen_name).' '.$text.' '; if($end && isset($status->in_reply_to_user_id)){ $html .= ' in reply to '.$status->in_reply_to_screen_name.''; diff --git a/ajax/timeline_format.php b/ajax/timeline_format.php deleted file mode 100644 index dd0d97d..0000000 --- a/ajax/timeline_format.php +++ /dev/null @@ -1,172 +0,0 @@ -user; - $rt_status = $status->retweeted_status; - $status_owner = $rt_status->user; - $date = formatDate($status->created_at); - $text = formatText($rt_status->text); - $html = '
  • - '.initShortcutMenu($status_owner).' - - - - - '.$status->id.' - - '.$status_owner->screen_name.' '.$text.''; - $html .= recoverShortens($text); - $html .= ' - Reply - Retweet'; - if($retweetByMe != true){ - $html .= 'New Retweet'; - } - $html .= 'Favorite - Translate'; - if($retweetByMe == true){ - $html .= ''; - } - $html .=' - Retweeted by '.$retweeter->screen_name.' from '.$status->source.' - '.$date.' - - -
  • '; - return $html; - } - - function format_retweet_of_me($status){ - $status_owner = $status->user; - $date = formatDate($status->created_at); - $text = formatText($status->text); - $html = '
  • - - - - - - '.$status->id.' - - '.$status_owner->screen_name.' '.$text.''; - $html .= recoverShortens($text); - $html .= ' - Reply - Retweet - Favorite - Translate - Delete - - from '.$status->source.' - '.$date.' - - -
  • '; - return $html; - } - - function getRetweeters($id, $count = 20){ - $t = getTwitter(); - $retweeters = $t->getRetweeters($id); - $html = ''; - foreach($retweeters as $retweeter){ - $user = $retweeter->user; - $html .= ' - '.$user->name.' - '; - } - $html .= ""; - return $html; - } - - // $updateStatus 标识是否为发推, 是则应用指定 css - function format_timeline($status, $screen_name, $updateStatus = false){ - $user = $status->user; - $date = formatDate($status->created_at); - $text = formatText($status->text); - - if(preg_match('/^\@'.getTwitter()->username.'/i', $text) == 1){ - $output = "
  • "; - }elseif($updateStatus == true){ - $output = "
  • "; - }else{ - $output = "
  • "; - } - - $output .= "".initShortcutMenu($user)." - screen_name\" target=\"_blank\">profile_image_url)."\" title=\"$user->screen_name\" /> - - - $status->id - screen_name\">$user->screen_name $text "; - $output .= recoverShortens($text); - $output .= " - id\">回复 - id\">回推"; - if($user->screen_name != $screen_name){ - $output .= "New Retweet"; - } - $output .= "id\">Favorite - Translate"; - if ($user->screen_name == $screen_name) $output .= "id&t=s\">Delete"; - $output .= ""; - if ($status->in_reply_to_status_id) $output .= " in_reply_to_status_id&uid=$user->id \">in reply to $status->in_reply_to_screen_name "; - $output .= "from $status->source - id\" title=\"".date('Y-m-d H:i:s', strtotime($status->created_at))."\" target=\"_blank\">$date - - -
  • "; - return $output; - } - - /* ---------- Sorting timeline ---------- */ - function cmp($a, $b) - { - $a_date = strtotime($a->created_at); - $b_date = strtotime($b->created_at); - if ($a_date == $b_date) { - return 0; - } - return ($a_date > $b_date) ? -1 : 1; - } - - function sort_timeline($timeline, $retweet){ - $status = array_merge($timeline, $retweet); - usort($status, "cmp"); - return $status; - } - - /* ---------- Restore shortened urls ---------- */ - function initShortcutMenu($user = false){ - return ''; - if(!$user && !isset($user->screen_name)){ - return ''; - } - - $username = getEncryptCookie('twitese_name'); - if($user->screen_name == $username){ - return ''; - } - $relationship = getRelationship($user->screen_name, $username); - - $mention = $dm = $unfollow = $follow = $block = $spam = ''; - $mention = '
  • Mention '.$user->screen_name.'
  • '; - if($relationship == 1){ - $dm = '
  • Direct message '.$user->screen_name.'
  • '; - } - if($relationship == 1 || $relationship == 2){ - $unfollow = '
  • Unfollow '.$user->screen_name.'
  • '; - } - if($relationship == 3 || $relationship == 4 || $relationship == 9){ - $follow = '
  • Follow '.$user->screen_name.'
  • '; - } - if($relationship == 4){ - $block = '
  • Unblock '.$user->screen_name.'
  • '; - }else{ - $block = '
  • Block '.$user->screen_name.'
  • '; - } - $spam = '
  • Report '.$user->screen_name.' for spam
  • '; - $html = '
      '.$mention.$dm.$unfollow.$follow.$block.$spam.'
    '; - return $html; - } - -?> \ No newline at end of file diff --git a/ajax/updateFollowing.php b/ajax/updateFollowing.php index 4c2eb74..b8b7060 100644 --- a/ajax/updateFollowing.php +++ b/ajax/updateFollowing.php @@ -5,8 +5,8 @@ include('../lib/twitese.php'); $t = getTwitter(); - $MAX_COUNT = 36; - $friends = $t->friends(false, false, $MAX_COUNT)->users; + $skip_status = false; + $friends = $t->friends(false, false, $skip_status)->users; $html = ''; foreach($friends as $friend){ $html .= ' diff --git a/ajax/updateList.php b/ajax/updateList.php index bfa7941..1d135f8 100644 --- a/ajax/updateList.php +++ b/ajax/updateList.php @@ -6,7 +6,7 @@ $t = getTwitter(); if ( isset($_GET['since_id']) && isset($_GET['id'])) { - $statuses = $t->listStatus($_GET['id'], false, $_GET['since_id']); + $statuses = $t->listStatus($_GET['id'], $_GET['since_id']); $empty = count($statuses) == 0? true: false; @@ -33,12 +33,12 @@ $status->id_str - screen_name\">$user->screen_name $text + screen_name\" id=\"$user->screen_name\">".($_COOKIE['shownick']=='true' ? $user->name : $user->screen_name)." $text id_str\">Reply id_str\">RT id_str\">Favor"; - if ($user->screen_name == $t->username) $output .= "id_str&t=s\">删除"; + if ($user->screen_name == $t->username) $output .= "id_str&t=s\">Delete"; $output .= ""; if ($status->in_reply_to_status_id_str) $output .= " in_reply_to_status_id_str&uid=$user->id \">in reply to $status->in_reply_to_screen_name"; $output .= "via $status->source diff --git a/ajax/updateMessage.php b/ajax/updateMessage.php index 632720d..cf05d61 100644 --- a/ajax/updateMessage.php +++ b/ajax/updateMessage.php @@ -7,7 +7,7 @@ $t = getTwitter(); if ( isset($_GET['since_id']) ) { - $messages = $t->directMessages(false, $_GET['since_id']); + $messages = $t->directMessages($_GET['since_id']); $count = count($messages); if ($count == 0) { echo "empty"; diff --git a/ajax/updateReplies.php b/ajax/updateReplies.php index 9083748..bf553bf 100644 --- a/ajax/updateReplies.php +++ b/ajax/updateReplies.php @@ -7,7 +7,7 @@ $t = getTwitter(); if ( isset($_GET['since_id']) ) { - $statuses = $t->replies(false, $_GET['since_id']); + $statuses = $t->replies($_GET['since_id']); $count = count($statuses); if ($count == 0) { echo "empty"; diff --git a/ajax/updateTimeline.php b/ajax/updateTimeline.php index 397a200..cf4ac20 100644 --- a/ajax/updateTimeline.php +++ b/ajax/updateTimeline.php @@ -6,7 +6,7 @@ include('../lib/timeline_format.php'); $t = getTwitter(); if ( isset($_GET['since_id']) ) { - $statuses = $t->homeTimeline(false, $_GET['since_id']); + $statuses = $t->homeTimeline($_GET['since_id']); $count = count($statuses); $html = ""; if ($count <= 0) { diff --git a/ajax/uploadImage.php b/ajax/uploadImage.php index 002b4a2..655a845 100644 --- a/ajax/uploadImage.php +++ b/ajax/uploadImage.php @@ -1,29 +1,48 @@ -url)) { - echo '{"result": "success" , "url" : "' . $result->url . '"}'; - } else { - echo '{"result": "error"}'; - } - break; - case 'profile': - $t = getTwitter(); - $skip_status = $_POST['skip_status']; - $result = $t->updateProfileImage($image,$skip_status); - if ($t->http_code == 200) { - echo '{"result": "success"}'; - } else { - echo '{"result": "error"}'; - } - break; - } - } -?> +url)) { + echo '{"result": "success" , "url" : "' . $result->url . '"}'; + } else { + echo '{"result": "error"}'; + } + break; + case 'profile': + if (!isset($_FILES['image'])) break; + $image = file_get_contents($_FILES['image']['tmp_name']); + $image = base64_encode($image); + $t = getTwitter(); + $skip_status = $_POST['skip_status']; + $result = $t->updateProfileImage($image,$skip_status); + if ($t->http_code == 200) { + echo '{"result": "success"}'; + } else { + echo '{"result": "error"}'; + } + break; + case 'background': + $t = getTwitter(); + if (isset($_POST['tile'])) { + $tile = $_POST['tile']; + $result = $t->updateProfileBackground(false, $tile); + } + else { + $image = file_get_contents($_FILES['image']['tmp_name']); + $image = base64_encode($image); + $result = $t->updateProfileBackground($image); + } + if ($t->http_code == 200) { + echo '{"result": "success", "url": "'. getAvatar($result->profile_background_image_url) .'", "tile": "'. ($result->profile_background_tile ? "true" : "false") .'"}'; + } else { + echo '{"result": "error"}'; + } + break; + } +?> diff --git a/ajax/uploadPhoto.php b/ajax/uploadPhoto.php deleted file mode 100644 index f7c0bf7..0000000 --- a/ajax/uploadPhoto.php +++ /dev/null @@ -1,17 +0,0 @@ -imglyUpload($image); - if (isset($result->mediaurl)) { - echo '{"result": "success" , "url" : "' . $result->mediaurl . '"}'; - } else { - echo '{"result": "error"}'; - } - } - -?> diff --git a/all.php b/all.php index ce21752..0b21f86 100644 --- a/all.php +++ b/all.php @@ -1,85 +1,91 @@ - -
    - - - - -homeTimeline(); - if ($statuses === false) { - header('location: error.php');exit(); - } - $empty = count($statuses) == 0? true: false; - if ($empty) { - echo "
    No tweet to display
    "; - } else { - $output = '
      '; - foreach ($statuses as $status) { - if(isset($status->retweeted_status)){ - $output .= format_retweet($status); - }else{ - $output .= format_timeline($status, $t->username); - } - } - - $output .= "
    "; - - echo $output; - } - - $statuses = $t->replies(); - if ($statuses === false) { - header('location: error.php');exit(); - } - $empty = count($statuses) == 0? true: false; - if ($empty) { - echo "
    No tweet to display
    "; - } else { - $output = '
      '; - - foreach ($statuses as $status) { - $output .= format_timeline($status, $t->username); - } - - $output .= "
    "; - - echo $output; - } - - - $messages = $t->directMessages(); - if ($messages === false) { - header('location: error.php');exit(); - } - $empty = count($messages) == 0? true: false; - if ($empty) { - echo "
    No tweet to display
    "; - } else { - $output = '
      '; - - foreach ($messages as $message) { - $output .= format_message($message); - } - - $output .= "
    "; - echo $output; - } -?> -
    - - + +
    + + + + +homeTimeline(); + if ($statuses === false) { + header('location: error.php');exit(); + } + $empty = count($statuses) == 0? true: false; + if ($empty) { + echo "
    No tweet to display
    "; + } else if ($t->http_code == 429) { + echo "
    API quota is used out, please wait for a moment before next refresh.
    "; + } else { + $output = '
      '; + foreach ($statuses as $status) { + if(isset($status->retweeted_status)){ + $output .= format_retweet($status); + }else{ + $output .= format_timeline($status, $t->username); + } + } + + $output .= "
    "; + + echo $output; + } + + $statuses = $t->replies(); + if ($statuses === false) { + header('location: error.php');exit(); + } + $empty = count($statuses) == 0? true: false; + if ($empty) { + echo "
    No tweet to display
    "; + } else if ($t->http_code == 429) { + echo "
    API quota is used out, please wait for a moment before next refresh.
    "; + } else { + $output = '
      '; + + foreach ($statuses as $status) { + $output .= format_timeline($status, $t->username); + } + + $output .= "
    "; + + echo $output; + } + + + $messages = $t->directMessages(); + if ($messages === false) { + header('location: error.php');exit(); + } + $empty = count($messages) == 0? true: false; + if ($empty) { + echo "
    No tweet to display
    "; + } else if ($t->http_code == 429) { + echo "
    API quota is used out, please wait for a moment before next refresh.
    "; + } else { + $output = '
      '; + + foreach ($messages as $message) { + $output .= format_message($message); + } + + $output .= "
    "; + echo $output; + } +?> +
    + + diff --git a/authorize.php b/authorize.php index 65dbcdf..d39c8d5 100644 --- a/authorize.php +++ b/authorize.php @@ -1,6 +1,6 @@ - \ No newline at end of file diff --git a/basic_auth.php b/basic_auth.php deleted file mode 100644 index 822bfd9..0000000 --- a/basic_auth.php +++ /dev/null @@ -1,43 +0,0 @@ -1, 'nc'=>1, 'cnonce'=>1, 'qop'=>1, 'username'=>1, 'uri'=>1, 'response'=>1); - $data = array(); - preg_match_all('@(\w+)=(?:(?:")([^"]+)"|([^\s,$]+))@', $digest, $matches, PREG_SET_ORDER); - foreach ($matches as $m) { - $data[$m[1]] = $m[2] ? $m[2] : $m[3]; - unset($needed_parts[$m[1]]); - } - return $needed_parts ? false : $data; -} -?> \ No newline at end of file diff --git a/block.php b/block.php index d92d1c8..655e488 100644 --- a/block.php +++ b/block.php @@ -1,12 +1,12 @@ - + diff --git a/browse.php b/browse.php deleted file mode 100644 index d91bbbf..0000000 --- a/browse.php +++ /dev/null @@ -1,58 +0,0 @@ - - - - -
    -

    See what people are saying about…

    -
    - - search($browse_seed, $p, 50); - $resultCount = count($statuses->results); - if ($resultCount <= 0) { - echo "
    No tweet to display.
    "; - } else { - include_once('lib/timeline_format.php'); - $output = '
      '; - foreach ($statuses->results as $status) { - if(!preg_match('/[\p{Hiragana}\p{Katakana}\p{Hangul}]+/u', $status->text) ) { // filter the Japanese and Korean tweets since some of Han Character included. - $output .= format_search($status); - } - } - $output .= "
    "; - - if ($p >1) $output .= "Back"; - if (!$empty) $output .= "Next"; - - $output .= "
    "; - echo $output; - } - ?> -
    - - diff --git a/css/main.css b/css/main.css index 5d2d3c8..f79369a 100644 --- a/css/main.css +++ b/css/main.css @@ -239,7 +239,8 @@ td.column,#side .stats td{padding:0;vertical-align:top} #side hr{float:left;width:177px;display:block;border:0;height:1px;margin:7px 0 6px 11px;opacity:.7;background:#C0DEED;color:#C0DEED} .notify{text-align:center;line-height:1;padding:5px 0;background-repeat:no-repeat;background-position:left center;margin-bottom:8px} .notify div{background-color:#edffe5;font-size:.9em;margin:0 12px 0 24px;padding:10px 5px;border-radius:5px} -#trend_entries, #apiquota_list{display:none;width:198px;float:left;margin-top:5px!important} +#trend_entries, #apiquota_list{display:none;width:177px;float:left;margin-top:5px!important} +#trend_entries li{word-break:break-all} #trends, #following, #apiquota, #version{margin-left:-2px} #trends_title, #following_title, #apiquota_title,#version_title{background:transparent url(../img/toggle_down_dark.png) no-repeat scroll right center;font-weight:400;font-size:110%;padding-left:3px;margin-bottom:0;margin-top:0;width:177px;cursor:pointer} #version_title{background:none!important} @@ -315,14 +316,15 @@ footer li img{border:0 none;margin:-3px;padding:0} /*actions button*/ .actions{border-width:0;bottom:8px;line-height:1.25em;position:absolute;right:0;display:none;z-index:9} .rt_btn,.replie_btn,.favor_btn,.delete_btn,.msg_replie_btn,.msg_delete_btn,.retw_btn,.trans_btn,.unfav_btn,.unrt_btn{display:inline-block;height:16px;width:21px;margin:-7px 0;overflow:hidden;text-indent:-9999em} +.ss_delete_btn{display:inline-block;height:16px;width:21px;overflow:hidden;text-indent:-9999em;float:right} .replie_btn,.msg_replie_btn{background:url("../img/sprite_icons.png") no-repeat scroll 4px 1px transparent} .replie_btn:hover,.msg_replie_btn:hover{background:url("../img/sprite_icons.png") no-repeat scroll -17px 1px transparent} .retw_btn,.unrt_btn:hover{background:url("../img/sprite_icons.png") no-repeat scroll 0 -15px transparent} .retw_btn:hover,.unrt_btn{background:url("../img/sprite_icons.png") no-repeat scroll -21px -15px transparent} .favor_btn,.unfav_btn:hover{background:url("../img/sprite_icons.png") no-repeat scroll 2px -32px transparent} .favor_btn:hover,.unfav_btn{background:url("../img/sprite_icons.png") no-repeat scroll -19px -32px transparent} -.delete_btn,.msg_delete_btn{background:url("../img/sprite_icons.png") no-repeat scroll 0 -47px transparent} -.delete_btn:hover,.msg_delete_btn:hover{background:transparent url(../img/sprite_icons.png) no-repeat scroll -21px -47px} +.ss_delete_btn,.delete_btn,.msg_delete_btn{background:url("../img/sprite_icons.png") no-repeat scroll 0 -47px transparent} +.ss_delete_btn:hover,.delete_btn:hover,.msg_delete_btn:hover{background:transparent url(../img/sprite_icons.png) no-repeat scroll -21px -47px} .rt_btn{background:url("../img/sprite_icons.png") no-repeat scroll 0 -63px transparent} .rt_btn:hover{background:url("../img/sprite_icons.png") no-repeat scroll -21px -63px transparent} .trans_btn{background:url("../img/sprite_icons.png") no-repeat scroll -2px -79px transparent} @@ -463,4 +465,4 @@ fieldset.common-form td[colspan=2]{text-align:right} .right_menu .rm_spam:hover i, .right_menu .ul_spam:hover i{background-position:-256px -32px} /*Twitter Buttons*/ -.btn-m,input[type=submit].btn-m,input[type=button].btn-m{background-position:0 -200px;font-size:15px;line-height:20px;padding:5px 15px 6px;border-radius:5px}.btn-l,input[type=submit].btn-l,input[type=button].btn-l{background-position:0 -400px;font-size:20px;line-height:26px;padding:7px 20px 9px;border-radius:6px}.btn-light{background-color:#add!important;background-image:url("https://s3.amazonaws.com/twitter_production/a/1261078355/images/buttons/bg-btn-light.gif")!important;border-color:#add #add #9cc!important;text-shadow:1px 1px 0 #dff!important}.btn-dark{background-color:#59a!important;background-image:url("https://s3.amazonaws.com/twitter_production/a/1261078355/images/buttons/bg-btn-dark.gif")!important;border-color:#59a #59a #489!important;color:#fff!important;text-shadow:-1px -1px 0 #59a!important}.btn-blue{background-color:#39d!important;background-image:url("https://s3.amazonaws.com/twitter_production/a/1261078355/images/buttons/bg-btn-blue.gif")!important;border-color:#39d #39d #28c!important;color:#fff!important;text-shadow:-1px -1px 0 #39d!important}.btn-chart{background-color:#9c2!important;background-image:url("https://s3.amazonaws.com/twitter_production/a/1261078355/images/buttons/bg-btn-chart.gif")!important;border-color:#9c2 #9c2 #8b1!important;text-shadow:1px 1px 0 #df6!important}.btn-mint{background-color:#a22!important;background-image:url("https://s3.amazonaws.com/twitter_production/a/1261078355/images/buttons/bg-btn-mint.gif")!important;border-color:#bdb #bdb #aca!important;text-shadow:1px 1px 0 #efe!important}.btn-green{background-color:#272!important;background-image:url("../img/bg-btn-green.gif")!important;border-color:#272 #272 #161!important;color:#fff!important;text-shadow:-1px -1px 0 #272!important}.btn-pink{background-color:#daa!important;background-image:url("https://s3.amazonaws.com/twitter_production/a/1261078355/images/buttons/bg-btn-pink.gif")!important;border-color:#daa #daa #c99!important;text-shadow:1px 1px 0 #fdd!important}.btn-red{background-color:#a22!important;background-image:url("../img/bg-btn-red.gif")!important;background-position:0 0;border-color:#a22 #a22 #911!important;text-shadow:-1px -1px 0 #a22!important;color:#fff!important}.btn:hover,.btn:focus,input[type=submit].btn:hover,input[type=submit].btn:focus,button.btn:hover,button.btn:focus{border-color:#999 #999 #888;background-position:0 -6px;color:#000}.btn-light:hover,.btn-light:focus{border-color:#7aa #7aa #699}.btn-dark:hover,.btn-dark:focus{border-color:#267 #267 #156;color:#fff}.btn-blue:hover,.btn-blue:focus{border-color:#17b #17b #06a;color:#fff}.btn-chart:hover,.btn-chart:focus{border-color:#7a1 #7a1 #690}.btn-mint:hover,.btn-mint:focus,input[type=submit].btn-mint:hover,input[type=submit].btn-mint:focus,button.btn-mint:hover,button.btn-mint:focus{border-color:#8a8 #8a8 #797!important}.btn-green:hover,.btn-green:focus,input[type=submit].btn-green:hover,input[type=submit].btn-green:focus,button.btn-green:hover,button.btn-green:focus{background-color:#272!important;border-color:#050 #050 #040!important;color:#fff}.btn-pink:hover,.btn-pink:focus,input[type=submit].btn-pink:hover,input[type=submit].btn-pink:focus,button.btn-pink:hover,button.btn-pink:focus{border-color:#a88 #a88 #977!important}.btn-red:hover,.btn-red:focus,input[type=submit].btn-red:hover,input[type=submit].btn-red:focus,button.btn-red:hover,button.btn-red:focus{background-color:#a22!important;border-color:#611 #611 #500!important;color:#fff}.btn-m:hover,.btn-m:focus,input[type=submit].btn-m:hover,input[type=submit].btn-m:focus,button.btn-m:hover,button.btn-m:focus{background-position:0 -206px}.btn-l:hover,.btn-l:focus,input[type=submit].btn-l:hover,input[type=submit].btn-l:focus,button.btn-l:hover,button.btn-l:focus{background-position:0 -406px}.dbtn,.dbtn:hover,.dbtn:focus,.dbtn:active,button.dbtn:hover,button.dbtn:focus{background:#eee;border-color:#ddd;color:#aaa;text-shadow:none}.btn-light.dbtn,.btn-light.dbtn:hover,.btn-light.dbtn:focus,.btn-light.dbtn:active{background:#dee;border-color:#cdd;color:#9aa}.btn-dark.dbtn,.btn-dark.dbtn:hover,.btn-dark.dbtn:focus,.btn-dark.dbtn:active{background:#aad5dd;border-color:#99c5cc;color:#ddf6f6}.btn-blue.dbtn,.btn-blue.dbtn:hover,.btn-blue.dbtn:focus,.btn-blue.dbtn:active{background:#bde;border-color:#acd;color:#def}.btn-chart.dbtn,.btn-chart.dbtn:hover,.btn-chart.dbtn:focus,.btn-chart.dbtn:active{background:#deb;border-color:#cda;color:#ab9}.btn-mint.dbtn,.btn-mint.dbtn:hover,.btn-mint.dbtn:focus,.btn-mint.dbtn:active{background:#ded;border-color:#cdc;color:#9a9}.btn-green.dbtn,.btn-green.dbtn:hover,.btn-green.dbtn:focus,.btn-green.dbtn:active{background:#aca;border-color:#9b9;color:#ded}.btn-pink.dbtn,.btn-pink.dbtn:hover,.btn-pink.dbtn:focus,.btn-pink.dbtn:active{background:#edd;border-color:#dcc;color:#a99}.btn-red.dbtn,.btn-red.dbtn:hover,.btn-red.dbtn:focus,.btn-red.dbtn:active{background:#caa;border-color:#b99;color:#edd} \ No newline at end of file +.btn-m,input[type=submit].btn-m,input[type=button].btn-m{background-position:0 -200px;font-size:15px;line-height:20px;padding:5px 15px 6px;border-radius:5px}.btn-l,input[type=submit].btn-l,input[type=button].btn-l{background-position:0 -400px;font-size:20px;line-height:26px;padding:7px 20px 9px;border-radius:6px}.btn-light{background-color:#add!important;background-image:url("https://s3.amazonaws.com/twitter_production/a/1261078355/images/buttons/bg-btn-light.gif")!important;border-color:#add #add #9cc!important;text-shadow:1px 1px 0 #dff!important}.btn-dark{background-color:#59a!important;background-image:url("https://s3.amazonaws.com/twitter_production/a/1261078355/images/buttons/bg-btn-dark.gif")!important;border-color:#59a #59a #489!important;color:#fff!important;text-shadow:-1px -1px 0 #59a!important}.btn-blue{background-color:#39d!important;background-image:url("https://s3.amazonaws.com/twitter_production/a/1261078355/images/buttons/bg-btn-blue.gif")!important;border-color:#39d #39d #28c!important;color:#fff!important;text-shadow:-1px -1px 0 #39d!important}.btn-chart{background-color:#9c2!important;background-image:url("https://s3.amazonaws.com/twitter_production/a/1261078355/images/buttons/bg-btn-chart.gif")!important;border-color:#9c2 #9c2 #8b1!important;text-shadow:1px 1px 0 #df6!important}.btn-mint{background-color:#a22!important;background-image:url("https://s3.amazonaws.com/twitter_production/a/1261078355/images/buttons/bg-btn-mint.gif")!important;border-color:#bdb #bdb #aca!important;text-shadow:1px 1px 0 #efe!important}.btn-green{background-color:#272!important;background-image:url("../img/bg-btn-green.gif")!important;border-color:#272 #272 #161!important;color:#fff!important;text-shadow:-1px -1px 0 #272!important}.btn-pink{background-color:#daa!important;background-image:url("https://s3.amazonaws.com/twitter_production/a/1261078355/images/buttons/bg-btn-pink.gif")!important;border-color:#daa #daa #c99!important;text-shadow:1px 1px 0 #fdd!important}.btn-red{background-color:#a22!important;background-image:url("../img/bg-btn-red.gif")!important;background-position:0 0;border-color:#a22 #a22 #911!important;text-shadow:-1px -1px 0 #a22!important;color:#fff!important}.btn:hover,.btn:focus,input[type=submit].btn:hover,input[type=submit].btn:focus,button.btn:hover,button.btn:focus{border-color:#999 #999 #888;background-position:0 -6px;color:#000}.btn-light:hover,.btn-light:focus{border-color:#7aa #7aa #699}.btn-dark:hover,.btn-dark:focus{border-color:#267 #267 #156;color:#fff}.btn-blue:hover,.btn-blue:focus{border-color:#17b #17b #06a;color:#fff}.btn-chart:hover,.btn-chart:focus{border-color:#7a1 #7a1 #690}.btn-mint:hover,.btn-mint:focus,input[type=submit].btn-mint:hover,input[type=submit].btn-mint:focus,button.btn-mint:hover,button.btn-mint:focus{border-color:#8a8 #8a8 #797!important}.btn-green:hover,.btn-green:focus,input[type=submit].btn-green:hover,input[type=submit].btn-green:focus,button.btn-green:hover,button.btn-green:focus{background-color:#272!important;border-color:#050 #050 #040!important;color:#fff}.btn-pink:hover,.btn-pink:focus,input[type=submit].btn-pink:hover,input[type=submit].btn-pink:focus,button.btn-pink:hover,button.btn-pink:focus{border-color:#a88 #a88 #977!important}.btn-red:hover,.btn-red:focus,input[type=submit].btn-red:hover,input[type=submit].btn-red:focus,button.btn-red:hover,button.btn-red:focus{background-color:#a22!important;border-color:#611 #611 #500!important;color:#fff}.btn-m:hover,.btn-m:focus,input[type=submit].btn-m:hover,input[type=submit].btn-m:focus,button.btn-m:hover,button.btn-m:focus{background-position:0 -206px}.btn-l:hover,.btn-l:focus,input[type=submit].btn-l:hover,input[type=submit].btn-l:focus,button.btn-l:hover,button.btn-l:focus{background-position:0 -406px}.dbtn,.dbtn:hover,.dbtn:focus,.dbtn:active,button.dbtn:hover,button.dbtn:focus{background:#eee;border-color:#ddd;color:#aaa;text-shadow:none}.btn-light.dbtn,.btn-light.dbtn:hover,.btn-light.dbtn:focus,.btn-light.dbtn:active{background:#dee;border-color:#cdd;color:#9aa}.btn-dark.dbtn,.btn-dark.dbtn:hover,.btn-dark.dbtn:focus,.btn-dark.dbtn:active{background:#aad5dd;border-color:#99c5cc;color:#ddf6f6}.btn-blue.dbtn,.btn-blue.dbtn:hover,.btn-blue.dbtn:focus,.btn-blue.dbtn:active{background:#bde;border-color:#acd;color:#def}.btn-chart.dbtn,.btn-chart.dbtn:hover,.btn-chart.dbtn:focus,.btn-chart.dbtn:active{background:#deb;border-color:#cda;color:#ab9}.btn-mint.dbtn,.btn-mint.dbtn:hover,.btn-mint.dbtn:focus,.btn-mint.dbtn:active{background:#ded;border-color:#cdc;color:#9a9}.btn-green.dbtn,.btn-green.dbtn:hover,.btn-green.dbtn:focus,.btn-green.dbtn:active{background:#aca;border-color:#9b9;color:#ded}.btn-pink.dbtn,.btn-pink.dbtn:hover,.btn-pink.dbtn:focus,.btn-pink.dbtn:active{background:#edd;border-color:#dcc;color:#a99}.btn-red.dbtn,.btn-red.dbtn:hover,.btn-red.dbtn:focus,.btn-red.dbtn:active{background:#caa;border-color:#b99;color:#edd} diff --git a/error.php b/error.php index c4f9779..f6d2621 100644 --- a/error.php +++ b/error.php @@ -1,29 +1,25 @@ - - -
    -
    - Fail to connect Twitter right now. Please go back or sign in minutes later.

    '; - if(loginStatus()) - { - echo '

    The API will reset in '.intval((format_time(getTwitter()->ratelimit()->reset_time) - time())/60).' min(s).'; - break; - } - default: - echo '

    Ooops, an unknown error occured. Please go back or sign in again.

    '; - } - } else{ - echo '

    Ooops, an unknown error occured. Please go back or sign in again.

    '; - } - ?> -
    -
    - - + + +
    +
    + Fail to connect Twitter right now. Please go back or sign in minutes later.

    '; + break; + default: + echo '

    Ooops, an unknown error occured. Please go back or sign in again.

    '; + } + } else{ + echo '

    Ooops, an unknown error occured. Please go back or sign in again.

    '; + } + ?> +
    +
    + + diff --git a/favicon.gif b/favicon.gif deleted file mode 100644 index e69de29..0000000 diff --git a/favicon.ico b/favicon.ico deleted file mode 100644 index 379f3cd325029368bc6a16470ae91fe493f2d70e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1406 zcmeHDIS#@=5c5uUCCXIPl=M7+@6hlD@~|zS=K+*_0*NBh;Mp?;6(x!zXJ@<<*%`p` z8Al|X0_Z#)xi1d&dtYK?KXc46M9jayVu&AVn__UFPgtylkYk%rP)(Cr`t6$n6N$?g S9;pqaBZ;Z-%JWI>&ASh9?itzu diff --git a/favor.php b/favor.php index a0d16ed..08ae8b9 100644 --- a/favor.php +++ b/favor.php @@ -1,55 +1,61 @@ - - - - -
    - - - -getFavorites($p); - if ($statuses === false) { - header('location: error.php');exit(); - } - $empty = count($statuses) == 0? true: false; - if ($empty) { - echo "
    No tweet to display.
    "; - } else { - $output = '
      '; - include('lib/timeline_format.php'); - foreach ($statuses as $status) { - if (isset($status->retweeted_status)) { - $output .= format_retweet($status); - } else { - $output .= format_timeline($status,$t->username); - } - } - - $output .= "
    "; - - if ($p >1) $output .= "Back"; - if (!$empty) $output .= "Next"; - - $output .= "
    "; - - echo $output; - } -?> -
    - - + + + + +
    + + + +getFavorites($user_id, $since_id, $max_id); + if ($statuses === false) { + header('location: error.php');exit(); + } + $empty = count($statuses) == 0 ? true : false; + if ($empty) { + echo "
    No tweet to display.
    "; + } else if ($t->http_code == 429) { + echo "
    API quota is used out, please wait for a moment before next refresh.
    "; + } else { + $output = '
      '; + include('lib/timeline_format.php'); + $firstid = false; + $lastid = false; + foreach ($statuses as $status) { + if (isset($status->retweeted_status)) { + $output .= format_retweet($status); + } else { + $output .= format_timeline($status,$t->username); + } + if(!$firstid) + $firstid = $status->id_str; + $lastid = $status->id_str; + } + $lastid = bcsub($lastid, "1"); + + $output .= "
    "; + + $output .= "Back"; + $output .= "Next"; + + $output .= "
    "; + + echo $output; + } +?> +
    + + diff --git a/followers.php b/followers.php index a4a866a..0c9f6c2 100644 --- a/followers.php +++ b/followers.php @@ -1,11 +1,11 @@ - + diff --git a/friends.php b/friends.php index 1e5094c..344dab1 100644 --- a/friends.php +++ b/friends.php @@ -1,10 +1,10 @@ - + diff --git a/img/3.gif b/img/3.gif deleted file mode 100644 index 03cf89567400b1afbc0e3b732fe6407690fd9513..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1655 zcmb`{T})eL7zgmT(3ZB;+S2Z{lu~6S8U{1R2Q|oFBnmOf<$Urg5knA(|}c1tDfbVxl37G0URn$@KryP8W?APS4f3 zIUmpO`TyVDk?_v)Rs%DzHy9&bF%6E>*Q-<+rCS?RSViaO=)f@9E9koo`jzOJZptd7 zsX6*)o$lPGT}|}C0-c_wl~tVMwe!5NDtLVZ!IfL}W2HhoU z>m#9p?hu8ew6abEr{o)n%je+uhhsW37n9vjotphg|FPEf?ws|(bZnFn; zlE};ftKJ~Rv>HuLHS<*EGF4qrXJ>lTYfSS<$X(!6pJU>oqd7UU{O%J$f9e;^fBr%| zsnO97{ zE38F6k#$Ki65R3XmujQ0myKR?m5GlUKacp`Jq0%;kKJ*Y6$ZBGb!JmWucjejVQOJp znra&}$oa->@3Y0M=xJFHit39E7iv5%<~AQ}+~;l!+;cSk#SuCCY>9^nb7ESI4FX_c zP6QN5g=uw^+aa>xgX#5EZUos+mbeAPp$UDUfD*oo%e(;C%Eimn(4FGT3-UlC@o-#O ze_*@&A5?ewhGO0g+mL+qc%r;&Z1U6AfJ!-LO(2!brfgHTNInm%3kIjBMD^nCx|Slv zj2NB_X|*}|(xE=qWfarQ4vS>g>kk-ht_G6k_v+5X5b7*wZEK;oe{N^-Q(h)cv8k^TidaM3 z>pSXhs%QOO3lYKo;R`q8%DloIM-q~Ju;Z>JU{2d(Qr0jbuGDJtBxRF3e1V-J= zpfAv}>?0#tPT_T?&2Wa|R)^zE_`T3S5u$+bLlVIN!WWOF{9p+T000k)7#im)(wZzX zdX3J45Z)k!2SN%?R2xZ59-#;$l88`u;+>m{NG0sieL!LZ|Dni9Y;{+X(69XV$F;X& zJ5|@NwzHTk&5(F3_jGAy94Be};F;R3Ay0|%Y&fc5mP%<@eyYZ6Yw-4%ENT0V)~%Ty uM|RMfFQx}_nK5E=3F*&CRwvUx+SCG@$vlp z{Kebo!`kS_-00=%?dIz3$lU1Z?Ctsa`SSAe+Smb`u6tr_xJbU=eJ%t&*16Y=IhGc=;P_^&fn?J z-|5xj>c-sY+U4ue;OW@p>)+?>`1ttU=Ig`S=hWir-skM$=eu7y#M|fS>+SCD z?*IS)A^8LV00000EC2ui0096@0ssc(z@KnPEE;?~}Yf!S5#wfPsJngoTAZh>41ejE#U!5v8U*sHv)|6|Jrhu(1xav=p|tE4jHMyuCTUzZt^AGsVR?$jCLz z%PG#z0MXLZFxAx{*x54M+dJOgCgI^O0c diff --git a/img/bg_faux.png b/img/bg_faux.png deleted file mode 100644 index 51c15d9a08453f454c84fb1a8c51fe7a8aab9480..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 368 zcmV-$0gwKPP)000390ssI2?~^`90000PbVXQnQ*UN; zcVTj606}DLVr3vnZDD6+Qe|Oed2z{QJOBUz5=lfsRCwClR?!XvAqboQ|IxQ4OAJA% zE$Ws#9~O6q&=wACuZOPI+I3xhV}Gs9U69+qpS^p20>DPCTnak=?_0aaf^--)KaLAy zZ=Fv?kQilVjFVB%&;u?l;1*XS$O}m`gCQ}(G;1D4U_h~T01`FcgDTfLJHCYYQ{`|f z_nKwx2;X_g0kPidU2|K+wq@dsqen&f7Z&$jpb2Dms;92E00RK5RkjgOHBJ8j O0000Q#d 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 diff --git a/img/faved.png b/img/faved.png deleted file mode 100644 index e6ff4c4f65caa63029b068b4ca84c40fd049c8da..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3125 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

    Tp?@z6zqtB4fJzeB^mj|NDu2y2 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

    InB!(F#j5m6U2AV^m zRuoKW@F6f>#FhbP2Uw4MkM?~~wilDL3&w;knrt`7Mei0-zh6SiU~;J=Tfxrda7co6 zLx#X$yU>_)-r#9&Ij-yHwj>>5D|?vSPo2ut&0O*A6IZ*J9;4NI9I~Z4*tN&|DxPmV zGWXL{(;H^=7KEw}S;AAph)`9=yT-p1&trDr?Ny=PqIZEtKTz8IkIN+eX{jEfqizKxMqgeNEj#J!MI(z6089CE02#F_@J~nO4WawWH}E2!R{CG5=33w`W<138PAe*sq)To!LP zq&>X640guzOw2!8q5wVsZs6sJ#h+?YCe3MurCnhy$yYdCuVipw@U2m)w9Q8*Syou- zd5iD41a4UV=1FJTXJd>s*a$zgr8G%b1hdr6<4|{vGVVJ&4{LKefb!rRe-vOZ*!)mlcxl@f@+<@c;l7TQs3t9AW-7?pJ!v_@L4Ot;cJ_h zo!=4pbq>A`_rYkS>NCB@H3P)hl6Laq-Ups63Fs#2UvT^0SL(qVolU^k6Wq{!#JGo< zT^!%=^P}&TL-M)qgiw^-+y@hT zw)3@627-Cxd~MSc9(8OtCSKod?$oVa-#a@vRE}oy_3iKN{YHKQ=Hg^z0??fmsd4b(w^dWRI6cGw@7Wt3u&F!BY zE{1GG^G!cqR)55Ev(msRy^#HQu|;ylUN9mI);xlnSw*}EwM11`VHXHF1>(N;>5Ddt zn)#Lb=}d86-bo!c5-K2X(U>TZ?y^0~6|GDd*AU1Va*VKosV}hU)>r77KSae=5ge!h zr?=F4x>1{@?Aq*^sZ@dV+WeaSa^qXgXYl>YP9Dh#)nvQe8Hq0veN1^8ji%h?tORX+H|Vt9Kk=+F4Th^L2IGay}c!n54^aia#4q^xBnIr<8krUD4-~Jn-iVU zj-?T;0iP+EY6gdY5h?6%bJ*s(pu#uBcmRDM3}cw7BF=me|LEGW zv--MmE$0F|!F4%&Ti2`zs6*XTRlHs2t9 zc#smClwD)*zkj9ioB}0SqEi%UZ^y+cYaHk4qd^(MsN25O=YvMF&U=nbe=j^Dd8B;FRQJWEbPJyA`WX4p!hodMM zU$4iJceM9@^$o`}r-CVSL}$5OQ+4CWYQ6PSc6D~D~>~ctPrwspWSz$>sact(fDl6k>=d**JJNLZxdyLEZ0^< zFUl=C!%t3drXAiExyLwA(Lp38BAv4>snF<2^srnMVpEc!OdNse70`DQZi_6YM<<=N)XT#qCtG$zU}%bE>?z;0+16(tM=JkT|jdu0AY>@s`DYGh(Ufx zIVHe10-5l|SAhMg0i+$<>HQ|4J(k4whL;lgt+VF37p;6c^UXsE^1WC5Fe>2Mkblrf zBmRa$W;TL5XDkK?xmG>RzJvI6h(#`NmBYx+xA%)IINgT9Y&_8Nv5>wGRt z7R{^JwR0OBdydu*!9z>0SOeNa+(Dmr@ccGHe~y3KtzAk&;wQCqz$ZRI!5`da2*G8^ z>gDlm<9Nzn0)Nvzj2m@@b=85i;JxeCO7zll#YPnW@LxT#v;`qy9$O>xS|N)9fwylw zhmyZ+uixz44s2{#UI3wTn&$q9j?Vw&!nloyXB52AwWe?Vg^@ zM_&KV$?Nc67IYG@dqd*8J9g`G`KR=e7CaGMRz_lCEBAEr{MKbKfhMB~_sGpCvt-KN zFf2)*zW>8S;Qju>+W}1AwYqn`+WiUpq-O;s8P=d#RF zi_1OQ`Nr3G#TS0-0Hw{dLmH43lb6eiqtp-0zKG~N9yZ%rO<(0MnJ9udp_~0cRkzY_<(x#Rns_lH-KE~ z1c;+wx~;d%UAN0Ust3=$({qj_iOt;TiO~QW(=*zgyce>PDUY{JcQbP_MA%tW=aYF1 z2Jm!6cJbI18FBmKj;}Rp^he?{MvkV6pXPy$vl{5zkMb6B4zeW0g{+l2rqC1nocV^oxsW;bAuzB>W4j;@~w+3^!Uj~2U=yvWWt zPcN=7qb;~{+^{gzLReC=oE!vnvfh7xx*E9TPATy>P4VL3Py5B$JlX)y+Va%D>(7`= z_%srqUhXECopYMKnOXK)^BEM^8AjdBJwQlF0hrRc-^x%1HE(I^ZfdlkVrH2``th}M zC|cwz(KmaO3?qWSUkCj4A3eyAHvWt%_nF{B&(8YYgMij;VqARM z!NO3qi|X=%{+`gtkAV|Xe**(xgBXd$rnTLtXkn&7?kMB(Q2NM6VcO!ns1%3@^i=^A zte-2Vq7jL-om{{5I~707zOOypf~?$czr!3qP{f{Q2`!#g_r#UP0-uT&dSB1vcTI|I5XEAQS<7Tm48S>VH7DiGY8Nl&Trr zo&bwM3IWPiOioYG+|>VI`29cK{>&v3#~4>1eGWVV--rCIc^V?b<74&HrjbOAMc`5T zzy2_=vBoM|c^#ZZ1qZp9Ey&73>1{%w-$Ud5d&?OZ=2;-5xE5ya3zS?bn$nkgAs*o6OOOBfS+>EliIG$ z@B6u8qew67?C-mC<^~mOzSb+tLCnMQ>#jExXLym|_pe?CLqGBr)JP0c}fU`3y zd_&ZFX%CbP7}`^bO>?mTxYBj&{lE2uXSs-uz=`AS!0XpMTZNIG^y3>Zgi)HX>34p9 zt9Ke3h(EqpY&YGf59{6qjYz{N)_ZT#SGnTEwU3IvV?PUi02d0X($FSKRysS?!Gg;5 zK9ILZL`a+a6YF#S9B}Vi2|1S*RmMyt-+lCmD%*W;vbzBoKM(IkQyjD>Ub5>;^ggEI z?fTjXCM}){A82T{x57IH2L}Pt*5V!q%#oRAtIyin#13}0FzMy!`ChM4j~?blV$!ye zKXP7-Aqcoe0m}aeoeev$Rwl*CHTq;7UgCxhCRn@JV_6q7&pLWSWg!C;(+&@vYmAz< zL8jH%dnYAY)3A%c8|lE9n&tD+Pd*ple%b8g`iCXG1GAo1wLA-FvNEjpzisjqrI6Ts z3x;4VEb5w6ZE~r9GbSZk0ik*Bjh`c3Zm=2yF*J3BZ5KWKjO1{hH2oX zDbYA}wnSJqtPA$psH&r9oA;`lr0C3x>>7>xD8Uz9sLMYToAD=Y=OHX>u{@YO6`PCD8@Jt97s(x)FeLibvF>tnFldK-0aO+a75tUynarZB<4O7yrt1q_e ziU#Z5RlelgAU-;=52JKeWMsm4Om+svBaTQW4BG08JF;_xF3k@yc4?F zXAFeaeecin-RqAXxMh(9s$CKRG4bC|18;cs>pCA;TU-AgZjL%rn3-Ih3(s0LGep7e zQJno?pG~n5VI{Dma-f+;MYk#JA zdHiC-LM6b2@cMaFY7~EbaTy*8*1#cm!=*%eonc&FPOIff1G;i^i8gJWn$}M&_U^5L zMM9dXaP{w>NL*_GCwXE32R*2#N7f(sQvV?Z{Ny;iY0EzMcegAMP`4feUyLy@(FS(9 zt^oX^=J}l)I}HTTjaPwHRuy1#>&DOP2WcOEZko5%8z0e^>=Tlf|rTG~h7F85ww%@v@5LNu_ z-kv=|r&a`51=l+4G;6pDo`{Qy$LFN4r8#>mAJ7mD~bK~UrHXwCBu1oDZg&ay5{ZN=dtqI7Y3yqFkA>mD+s&K;uu@d9^g+~F>{6p=KQf*X%uQp@vucT#QF8CtUmFc+ri<~5kVG8|6bf~nS$rLsKb z=x;uiywwXHLh|o{0lF*z;1H3nYcn z_-eD6dMkCndl;4YR38wpI*=w%qz4P>mPayhhp$$UHYJB_exFgKtr;k=joti)to=`O z);U21Jr78RUS=5p0s$@`w>>>Qx(NR{DfO9D@WyY-L%f`v4)wYvdTs^(*DbF$e(A9* zu$l|b+i)c8D(%p3B409n*T?3dS^FAL2HR>?Q=Jw8SkmRY+W#SSyglX2bu3>x zxS+bP2L_&6$NPSkjC#0mf5Efxefhjrq4c|=d-1*ut{>sK^2&e#2coIsQ=&443IiFH zN>Nf46AAw-Dw5x@LZ08`hn-<3*`a|Kb7UoIG?4`4>0Q@H15f8`-dd``jb;RYg(+by z;98dHumd8GBGym|Z1nz#rgWi~M@yl;7crH}=mTXe8Nlml;7M<7H`2*Wc~h^HM_%m-BT zf516a15hTNNH`@DQjFZmo@_7NC z)w2I#gKL%YfR%j(3d0Y`RS(!!T}XbH5P$}BjskntEh})tL!E|OoZmrk@fAur#l4Q2 z(x!hS9Z|qT{{MYWoMg?&_Xj1WK9WYdl_)JW4~+7-czAg(8iR?Cr1za!6TergP3OZTNKUVcF2P zOozpE&mUh21@bfw8xb8fVDm6&Sj4S=X;P-U{~K{w+qcOas|ykk`13T})fXiCc&Xvd zIHh!{(}$F$OMBmxFA@3e@tDV57HaGZlY;8159pV?eqP*~p`nE{n_>x?5@_Bp-d?0! zzkWJ)!Yb#WO{CL{(EH_6df-DnXjrN-T!Gw0{1&6b>QVwi-EgfhCAC` zdK(><#g6mFI?!;iIsIU?%9wi^9{XJ=EHb(PW?acKlpluI0 z-0kC%!vg)ge|fKKMXl*BYbNTb^KB_R%K!N_;SC0KkvlurP|$K&ofy388?(5^soEmN zee{?iMa9}>18Ya$DG7n`u-o88Yw&FKH@8nA!E|mJxeqM=0Yf*^iVyM(%(&hojeb9b zL4)oEz`cTpi*&*k_S3IKCTt~6X~!Ak5^%kO7J>hajyTD3{Zw}dB(2h zHjboASL@eQ)dCVjS!xt`es7V<6utmtBnI99dBUa6A%K5U74TD}kquM*Uv|JsY2Y3R zvN)_khv7}bD^G;zr(7Zvo-iFbT=jB9*}IbP#nm}H7i`g{C0aK$#_IO z%qP33kas8N#2@0j7343mhxgf(I7F3ywqy6f7;rb{B`=a0E3PY`cz!qEpH6$4`gx8y zmKwfeuOF+Ne*q6>2}(_6=o2*-*=2{kfkE|2pH+j-4yYe}#qxylX6RD2G9xI*_cH0F z7Vof+4-Wn`E~YD)bbhuf*V*&_seS$Xs*Ucz+1y2%GfrHf>@I31&Em#x_!Qxj}T5@ZP`8SPxTdT?w1? zl)*(qg<7#`aU=w(Lc?$fcLr>3Gw3|2fgSvu%f>KK&y~hXfWuK zTZ@r@h)LmqSRgzqi%nw-0X8i`L*hkvK(* zAHM7x+GI#E^C#q%jJh9<-UXmzZVB`dKY+B@xA~(EitpFiWxpj7k&hqp@`i*lN`b%} z!0lbt;#<+F?AP1*1CmRq9Hl`}#DA^-15oCqr>aCg?^lOgT8C8fK7si;!=4&b$IMzE<%Y{SF z6uuX8jzTm+O6;YGvaN3$d`SOAcLV1FZyeQ3Q_O(jkl>h`*s9K}v1WZBMK&IOA&_6@ zt9!&}84DZGTJ;j_11v)*axp7)yaa`87 z-VBB!GtzfD46-aM^}|MNi#7?$f~7=4tljEQJhnQ{*Fw79o>^EPP+?#saGpujp>=Eb z@hSz!s%m-f z$AP`GL|;8%(DW^lB>)E`a9$RB_XnEsvmHa8C#o)z2u65XK!l;**yD}$Lfbw$_#FgM zC~wX3mo7dr;5^u4(9zI;{Z@A?M`c5h=+zPl!;$6L6TI$Zoh2)Zr6{M6P$| zQ$WKkPsIo$Du|Q-`ekKy(b81l-33!&Kvbi`%gT-JizJxQ;{aEvMsQ|-iH}HmBk@T3 z<`mOq=7v^p(}gPfR1?cO`i8jFzW{XDQIjCFq;H0WN$hi>v933n8@3ImfiDvP!4yvIp#C z94|Aqj#HVH%TYQgWEkHwu|6-!^~lIQ4DD$TI=;@{67j9k?|`dvF!d%e28Bi8Izw~i z`QHl*C-~OjcQAu;JfZ%(_UI-mHMFY^>nFt{bgcKfzUCZDNUjNxs=fVxQA1XJ5%T~b zs%69kz=Q?L_9_U0w6{W(jk+g@HhKKyqi;wm1xLag4yUKTRD(wV+a^;i#a0mMY(^PG zMo%mObP%!)`CoKQLwD-jjiO?nyBn<@wJ>&3Iq`N84IojFej|%j91~PWV#1k%n+-V+ zs&+h(EC6K9iUh2)_FN$S+sU=Yo_Knr21dUO4&pUsl{X@b1f{rt*xGuk_e-mgEWKBg zgJF~rQ7UHH<12OtF$nRL;Hrqi2h^Uer9w(Kb1Sz|tzs{0&> z8ha_ea^9dMpS2^`Bbkls&eV7MABfuZ5)G<0k3rlN$>m96;3(u=eEe9YkZFU* z_m_Ux!QvYj5*Wi5rQOLK$CkZZ4kYTn_mc-F0@8Q#DG$4ILyl4hCeIT__b%HZ1C)%=O%(1J0z$rKy6TxGAP!` zeKV10KuC6Uz07;%M{0f#D>F#}N1sUjEs2A-?8dcJ<-(zYr%^lA7d$z=T*$L0zLzLZ zDIzl4?NL6w#E6HJa?uD(`fvGNbQ1IwYdoYXo}6g>>xRt7I-QVSmjWjb5*O71fKra1 zGM#WfkzA;wi=pd*1IUFs5>;E$`Xx&H&=xXk1W6>S`17tZny*SptNq0}K(K-jf9&Xg z@*Dm(v4C3)Kpy-75G*8N;&&fGMhf@j?e%#M&g>gNnPDHfFjX)@o+z@@{y31~WV24c zc7Zu6NqQ`p*Nt{}RX{msFOpF*d;p@n*tR!2uaBxB+Gye6&S7D6&*5}|Oi5vL^4l7S z=fZITtl>DYDQu+~m=6^=;PaGwF~?1>!6FJh%+8??{w8;k;L#UOQii^==j9@9aVTcC zWlR~OTb_?N6tjCizp|LwWhs@;X%Pp=yBq!Cze=*z=XB~~q8>FsElFeuyJ11HkU+X@o`Gkd{_Q=nB6m~;FbuM;C};>9Yq)PN;NXp|AB_%}9A z5l@!_tym0eraKd3xaphiNOuK>(v~x2>~(M>o8VI;g;k1&N?Jc25+9kNE)bl|@vH_t zd@DBT;y-OK_^0!D`OJ5qyUVHi}0jB;@8Dq*VH!(LZv&`-1A#T?s)5l%!#%@8S26cu~nr`NUk^ z$QW5jBmIxFp@Hem!GZv5uBu@vozrNu>f|#r=HowL2{Ot}I^$BCE+Z9*G)LJ$e!yLq zJ2^(^2UVl;LnAz0xq(PN-rO}ZCB@u#zw`!)5vPOK`U1dmW8J4e@J`V5F$4z(*M1Rt z5a6q|7MZpJ@G_{=0~zkBf;^A_9nHY28A@a%L>#huLWV<;Zqx!0k|bEdn6%#Si%bVV zD2t{Y)1ar3JRy@~8AnMHxVU~_0_2+^*XNC)R6#gJHZk=M-MT0hzBGwlk75IL`I zqlg8(n2UtVMm^00uu!YlTy$dJ+I`O#&*(epjrR4C+h_8BkE+gvsz8Kh{ns2VUYb$x zQpfXrO3LPC^Yk~jJj;9rT-ola#q5F4tvsmYsNiI(J)}z5`Un~|u`v!AOU$ZOb5$>$ zoKk8JBfiwbjd19T-K<4j-zxXVV{B%#!oJ{h%MfLKc35BlSJX6r3L|MYM2^dfA|3^*~oA*0$J*|I6rvSP~^z) z?32zMKk%J}SG~|N(nT^YK=e%+;!)ZP2mzbh8caOYC5}hZ_@;hb&;su5iMzv__W|WZ z9uP}F&1)8Q-??xcFZr8RR?lS zrhyJKMJOHF2|>cI^sZIL7m&@07Ov!AAQ)bxE zH?PMKXkq_?{`g>E;A`==B&HXFR-l9Vx3WB+fjqY7NAe)=$acdA{pw&_qq{Zv!G!hm z?T77OGRsVB6wo8+H-G9g>68`;9z{36`aR6~kBBSnQ%gj8Q1dRN%RXsl=B7pLQcDO+ z0F~4Y5I)Qwo>edPN|ds22OriR$^^P9q}7`9YJ0}dd=V}WKnA{g4J9+%t!StK^c`>W z)1R|j>getJ39c;gI^Dd!tN|~w^Uq`jPrX|Pb9~2JoMS8bX8oiBm)Z{WoX+%i1FLS; zo*d7N9onLgw6W#G;7sJxuDMQG3(r_Qp7VV%sp!_#j?vEjI;29(v(Z0*J^V|YlsEbi zF)OJ4f+AvVF~5-DgK+}lkhO}OWY-0iP37e?9V*Y&XGZ6Iu_VBO5gN7Z79%pmYJ9I) zWXup_`v>|CBY5j_Z-3bOY#9ByseSDs0{p3_+%7j8#?1bR`ISG`}*|)B8yR^z#dz*|b-8utxm5@r)I_<+!1yg|*n>1<(DJlKR`2+A{HF_LY zx$JM6B~^c@=>tc{)|`^ZRz3>nWqZkx@OBeF2%tk|-RTOL=eQNh!DMECMiQAl`62Ye zEPv?PgWPX?Y(|6ooBbGA!{OC?69*^fuW(zQb6A4Fhyx$m2YpGkpSN}fMk#BsScg$a zk3XWeQb-t)BRHm1nRAWo~TpDG!pkj6S0bb58-`@&Pt zZ#{BL#KyzpZ&9sL#!ByB3C+|ITj?~oXp6If7qy7nr}D?^RF|5hU$NC@F&K+N=oOT{ z)UX<_;e~NK%=3ApvDLA~{U{O5><$k1l?V~b2 zi{^tdSrW!z$LrFgam|E7|4vwN%`|306PX3#0b;`}KvLo|XrlZthtSde1$VZpuwyF* z@Lb=>i~IYK6)+$EEZe%1U|0RKXjhPiET#zMl6Y|eeC5Z^m(LZ#MM?rupZ%3>dXp6v z&1b0+L$tX5k>SWBwYAanN2xrwFRy~dHP~pH&xa&2t|v24)exGzS>!W$@C5{RwMu$mB=KEIECHz=61I2M~TUs&Bkx)Jli&WKcQby zVLHR>M|(VRX#=W2iw`Okq}FYanTgqXxS91o%&VhK01^^3o?hI@zH4PRK%)WO<;U`y zvKO?>W=SToP|q?Q0rJ2_cYS4%-HqJXpxEED%Zj4ex&~v>{4&k|26#ejsD>`NnoZ>{ z3b6pKC6~aYe-4sqMFF0(n%cuFkiusD`sSZk!TRj7q_w_Xwfd%EF%$9UUq#jLUwS6* zP0F)uB@+i>Lt^rnd<7^wm|T;SHi!)l&Ld;Cx^7qV@7&rYj4Snq!K-~o)c)Dlq-cEE zJ2nZ>lt#!bCEXBhU2YLKROqB&ykVJQc94%1;Al}oQ3(2y7HHPBAGaHaq>$ne{jsSl z=vH7TBZ(f4@b*u46+q()&SBkYV5+7rV|Wf5?mj~`z#>#;_h~onZ21OSRWMla(Oi%t>sL-GrR9-o@f5G%sOR<8P82%223 zR)|iO*xglY>(N6>n#cMaX~+pYe&1xD%{+yif~oiQ7m9(B2XA!p^{Orvkc@^Ij~Frw z6-X~zu?{@-@phTl9;!->J~24QJCCnRt8|lDgGwQ!3<)X&{-5@3#w0{GYbA&2Dg3!L zDjc=ey7sSF`_tKohH|hguX|5Iy3hQj!6Cjt``G|j;s0=Sm0?kJTX^W9Qy5CR5r&ZZ zkVatW5CQ3KX#r`J?(POfq(kZM6oe6wjsa0=DUrLm&!aya&k(cES$pmERwzlIgD{QF z&^KU&(|>q&TNA9W4VV&kLjwewhB<90c#fr=l*W> zXs0O|=>xJhXpCopYlLA%3--cKdD6#bE-x>S#$N``+^r73R^mu~a=!s```4n-%|g2-`ynWSIvJhsunS>MGlLhycH_HF_o0c zb#g*soUjqx+KT^s$YoohtT|L6nj)g>bVU?OL!Cn$g$xX_D}D2N+|Mx90moZ~t3M-y z(tU5HcsCV&okRLcg$lx{vm@=Ly$!1O)%HlM*R{i#qOlfpBk(qao3Lcqe9@h^_?L+) zOhmqUPZ2iuzE!j=?mdL-Eh`;s96k#)95ZqoQ!dqgURqIEj*-7gFfY3Q zbRd~bj3F`znytj@yv}Fu^0NME zsW#YCYPQ5I`rz&CkktEJXZ3VFB7U3m&nQ{wibGBJ-f-Vvfp`Y zxs+)`l_QSCKMKFSs}>AN3#P+N`a4imzYd{dY{OmAu$uDDSX|1GBWY6UhmXWj3&G02 z!U_5(tObWY8a8&Uu9^z8;gkfr?-MUYdX~F0n7V4mPvn~W*|b`-K{>77L>3eDYXRFj zATYcdd;XjC?o6{54f0_J57$p-wz6qGEHwn*O**ZZz#%rD%vd>UMu`!tUbki2xKD)F zs8YWyTSNBR7(v>D&!$rD%xuHSJ03;_{ea7aF-m%(wbZ6wNzDLKpp*=Va~I>MZL9FM<2`Vg;@mWx@Afr%|iR+*FSv(0h! z1l*g+p3`Kw^zMg}bQ(l%`n1EST7SiJ@3N=*w0##P_?3b}CeKQatw=k z_)qoCvE5n#gvH9H<9fP#DERs&v;LrQdgCS)7dUTN9EY{~o+Nww+E4!4vwu1G$K>Yd zqT84J?&9uB^GktK=)pBEzRyV;ahzCxzts+?2>Mm}Rj$oOoqIbWnE)uTA-K<-GVA-Z`Tb~=X6@ebJIA#h7=<%-0&cVuaAl9@H^Qm( zZ#6|M-rKZ}w7mOo8jM~|L28md@Bt&wM|&KE*X@IlSR*7PD`s#Jc|zPjm3UC&=j(?P2neoqt$2ABdX zInS>ALvd=N+?knL*BQ%;!u@7hp5_JZJeTIyucjf`xu%-Vk^7#HN&fhzjQ0%Z9O2mac=5RB6A|3>kSsB20r&GVGm9#%#IoDcT zj$R(aB6+Taq@>+|myeVyxbfN1n$^xcVNR&VR5mtc&T}E-$gnUx3K;2UlIZ8w*u1HJ zl8t&nGV8{X83@^|eG)Gl<^9LSrJsZ{Qw{k!lnF2&wzNMEnyG|IvmqrzwDyC^igSW7 zLPWhk%lo+Sc9z;qc7dR(R~S9OBIeFt7&ps(Ft)04ka-uRyp5t+v{w79e1*bK6SnRR zTqRbEjQTGx#bOiGA=j&M2gWVV)Ne@spDIQ`7U&X}86Ou{XIUSmD8|vZ`Rt>ajP{Zr zGTTXfQWH)crR=VLaF3$>y8zUNHj@<-!NT!m*Q^i5+?8&0F@)voyxg;NDi5JDTyQ7} zJ_$#YfITMVl^+a8c?#llAW{iWNp;V$5Y=wBri@HEQU3B&JI`3E(bf1|l#fJRyIDB_ zp27UlTQjaNrI7Jy5+;;#Z0&eYudg>gl)QI1&W9I`Bu|bRHtOlA)u8+s-{2$X%+f2p z>=dVf@r6f2W1;Dm&dw8(uYMc*TUs(dUhtaSZ~NtAJ7>$e+213!-bR$czdv;NZ!U35 zI{50~@?D`Xx$h|*_QX@GG}ZtF91FN`tue8#SDAZf#`$=whk-E!ta4U3p!yA28Vmpok2 zxv*{fP9Fry9M6zuN6xY5#Mh)MNZmW4SC=NVs)x$D-*+hagQ{LkgkAhx#9;jRdXXsW ze(d+-R}I$^5*gXmC53?O=2dHP@?wwFD_W;Hqd`Vc5J!>emeYJ)JNn?zcY{)Y;K>H-4_a0*s{3Hw)FiSIt&g+|QZH<;Dc-9k0l~cLfURKRWCm zUJa%y2(*yah|iNR-3Y-i${II6XhZw{+2VoZbT|WMF_%7q^8rz(-MjoHO*1L)COvMD zz@47rvJB{g9ee(38SIPSFr7f|*dBUa+JT3B8}jON^6^W{uoF)-n>^1gMu;69_X53| zGVfa(YlW(!y`K$&M(>M=7x2(y9vnvN?bSV(GCm<2CQ_Y-Yf!VG)+*kG$D6Lce&yMB z9dXjs4?P%BM}MzL|J!XXn%!u*Wh*H_e7GoZzUnKTq%ZvZ-$i$K4uxp&##<`EW4rMN z%3lT`;2OC^E3)5!g??V%lPf?;>13yvZrxZ0>D|B^3+!cVVAx#ce^>Y!r00>zqbnV* z4x$*48VKLIAD)iN_a+BI*Tn`AN#W8XMoiy=*yvG*?OArIlhx&ZUHy+FGL@u#`NjJ{;4d(JiX)6MfvXncf!IfjWshjoQ8_uhWFz@Z}P}WoQE$Ahb5xIv4~V`X7}eI zCOhZL-P>0OT&+_DBHd1!+3heZTk8+ijAt%mugL5Rq=QWpd)CoUoqqPm9mu+VtLt^i z^#9LmFX;iYATIW4p@jDsXXf~3MXqZD{jdc9-dlLbb?W&AR@VZWx%lVlhBssk;@XU= zV*oIid)%d2AnBl?rncuUWoowO?6d=f8H?WxV3+OQ2m0KUu`pWN{+SsP9tu2z?w}{l zwX}yUg29&d_EEs=w^)nw9*<2EK)lN25;ENt)KG8*cmZTdq|*)e0s$My z390rB011pQx<8qX1BT3K1MmI2T5FcCAKpp9;Uu|bwI3)mZnp$>Iz$u=2ULhqbaGHw zglwf=3{XbRdOyi3DBuge*}vrw%&>4Z_>zv{&WVm`1r2zc!=SKT?&4q6CrnCB;{2bU zDgJG$pmoY9pbBNPaYa{fgugSTmG=C3wzr5V7X-!+9L~#p|0R%9^>l6WHS(ZkNurOJ z=s0q1{cQU=yZh1*>(CUwho3F&0axpnB}bcu7n8|#j>f~bsvGzTMz0;{;-=Fgq7Ocj zazWYMR`Vm?q3;=o?0$+1IrzXo=X6&A4}TVax_?*6dd4Z<7FS0%^uds+r!J)KT*Yj9 zPh&0xHBu}g9LNZ0CmML~r{L8OPXN`f&aS}ER{wCN#f28!1oij-?+g+w^gwEZ(6nSY z@Kk@j&{Df4ku2%Dtnlu<)tGM!q;c}m($ZQbZ1o7M|J_rPwp3|619zG`_~Ec2z{20I z@a8+}E3*5aw}_O~)Y#4mR%$fBajn3t7fjqajD~N&qok1NOI1*T{!zYIPE>P?@5m@j zSRJU)mEX;QnIc!}XwsJ0xlXy!)#`LY0%x<&V8sIy!`YIt^kkC%SRRXpR%9;?A||)J zKIqp3LURx*%KPC0@df`$Jr4To>;UY)5G0sv5SuB#6=8Lxw+TZ?TM8Fj&n7oQDzz6w%xPeV#K&{)V6TU=XK)n4$or_Z9Fh!-lL~O}&Z% zzIXvAsfBr~K;nr3F-F<|4cnd`9q$Z5<3XC-3i-d$Q((ER}iRP5_Dm zG6g_Pjapnzbt+jwrpqLdRb7R>{|0V?25=hzX-YVt{-_AxH}c{qN}fPnR@#~e`z*Dh zf2&pvZGys3;I~WN0wS1}>aB1T51MLFkM-Z4$#93H z$etmIrN`Z}Q>2uyw7CDO3PQAJEHhP(smswvdLk=cj8MMLo_Vy^@DXIj`T`7Q6-4!d z-GChMP7vTzVz`^IlWHV6y?NFTH*D(usPiFF*`(0S;Z8`1>SvbcGZE=|0>XVdmJcx+ z>5BZ*{e{Q1pNxM$`mCB`|KfacKy9o-XFV=ld87HnUAUYu|Deb(@Q7+worUUqirJUH zD<}J33pue0J%3vbjs9&3mIb4tj-tncf|dh2m6q%|h;n-`FFgioYJq!w6g@C~5BRfa z=UL(K0f2+uOCs-20foUA4;mN`R^NHGW3lTV%(|bL93&XWQ#*ku9)?^Sv!JUTy>cDW z3Wr%hwfzoCzFq2aQ?AmotUXwKz}yO+5Ox6J86ORJEx`*EjqQNx(qc7CbibbWPxpN_ zz(#)idvpKb`z`|<)lU0b$;^zQS!f>Afe3KTq*Fm4$mK8!G3Cpw2fN1oTiK|sZbU!` zyXXoi8%+Ss(&x+6=A}Ho&q#d^$_|edV<#yk1p=E6You4!R&H6bAu)KecCPY}XZ!Rn^rAPO3IVKxVk=h__rHI+WM?t2tj5vfT z{V*b(t7o0SNwjt^M}zjf&$r(Gd9ERoLa*>-f-xVeOowaCwowM=5-=DROi2#Mf~X=E z6%}|+$Mcm?=&C-Iht5O1RWf39ak3~0314hk9@^AqZt@v5i{IIhf)TxOOdL{Kh30QW zY7hGscVWU6W^R>e>$g>9PCLx%<`U)Oq$h zb-2dBAHDX&vq@(_Pldr?MOlxOE;_wePqUxB`uR;(;3lq{BiO7g>bv5n(GS#%O-=-! zq`iW1a@a`WcwiGinna;zzMDbp(ydz7l$SC4XcXpO_3XVP78;j*1Qy?!Va7n2x(Ht< zjGJ2Jy@9@_3Vh1KHb!};y@=WtM$f~R;e~3vrQdz}xffwGPN4S(*-^ z3DRW3UZk_sXkxtv=v+C7#;6$>x{IbM@UZ;ut1W7I8ek?rS!01r`8ZWp-cxaxFYUpw z?OHsosKoupA7p7MmzcGg*PIWaU)+0KmNMIFo~rBUE&g{hKrSl@q{BxIyAz!sU!&Tgv<5ld~dPI12*Aha2iY%dub6NF|`d zaNt-)cs&Ut6D5Xd&5CXH-`(>lLNta1l79b@?%TyXGE9=SYtht}>EVbD|81yNiH$vB zy6sDe&Me$6NU2g9d51}Eu7&}NJk5zgKTM)3Wf-XAeMKwWD2EdVvrC3rRM_wHh=J31n4TM;QxTT~jKaGM;@IWIO`w>blkwVZghw&4w@c3gAir`(&F88;g}TZ#}-uMX+uC z`Moj@q|=(<#rx`4TTA>_E)+Q9PH#pnS(iCFPq`$vbmoa<7B=Ot41K8{Wqkh!V9zP| ze@M-OZ+w1zX{jH*28nzXqCy`s2E&EFJ-*x7tVcW~Wm-MTxsI;X-L0IhTRn3b;zy+ywEck+qk2<0`j@{h35)UM&qB#jKA~l&RO@FZuSs zP0+qoxX##SzFi^p)|jX9&~s1&B1UXZQ*60hQa?F}u9hF=f%#+HXQcf+&8QRpvEy^7 zNQ4F&k>#7lf5Plx+-+x)ZSm+HMwAs9VSG(9A*uwj>qW(MX)A(LqQlzmW9D)FBu}lY zit)AF*)@Gd#`B1E&eLd=y{}&(IR-dc^b^z|nL@FKQFvpyOA9q72XS$6Fp!&gfe*N| zQ*AZlR&WHm=}(?}T5dZ~OYGMG;v6m5tNvZr-nBJ;`XmYi{{WG(p&lvPEx8U>0J8lM^03 z!5elz0x5KfAhG#(*Ny8^cd+z*oy_byV{^@62Vr;*{kBP)!GQ9f>jNKer~@6*!oRJi z%YEQw5m{EzeQnL8{T)MsRFTgdIo?Hnl;2W{ z&v}8OT80wX|6tO#(5AqPg{tR`k2aH#U?Jrg9~fm(j>tC%ZJFXf_}3$sE;FfRSOdUYIaRO;t-8-cq zvvKVOJuU4VSmrQg!*>r+y68P1tIHr^@)L*%a~N_agSdiZrq>`+RQ31aJ#`M;Pn+MT zU}`rvH@BAcoT+Lei{Qu#RP}bhfD4f`+CGpl&_kTTSgt@P2ID^2l*?BA09ng1C(M-) z5Wi?ew?RYvGsC9XfVV`8a{^HaEXr{}r<#7>S#F-+>z1l~>Bk$6TBidw279G5Y?>2D zF*FI>8162I9h{w=Gg>{Rg6)d6iom>XYV_-UVF1b^=bfCP2@zZ!uzcm9e;xSJcpT_X zhXcNG;+&nqnYfguKWKYw(STP9u_XeNPMgZ39ij-xr_+ z)-I??Lp_Q5;b|2P__ROPHhwvo-53q8uNR%)+bN{}YMqHi%OKVASblZ(e2QKU1UZEj2`|^iK#v#(N)p{jK~bo$A%TE^42?aF z_@M)h_NKAr6*Gj99wUe<&?vh}rEoWxPz7L!=rUY_U%HrPtX~d<9hdV5;(|K-lrQsu zAk5t4g8T2wMc3<)8SN}8_@eVSYiCzoUMHOABEuiig;iy_Ti+Sh5aba03nyC7e|OaL zL}xEcM7W@@6^bba_rm`BEjFbGDmo6N@cQdJql%LE)KFdRwz>VYm{bnUe~C_A89Y1F z%uf~6xCYD9`h+JpcYc?GlOev@CHmb_q_o=eaQ+jj%GR3kfHgbd6eTb;<18X>MUbtw zTOxpd4?;iiI~l+Qj?UMB;Vmmw2o^v3^p!?$K8OSDaJsK8fYbGE7q9L$M!e9F7-@8a zuE3v!jM zM+S#T8`QN}Eg6e>`l4P87wl3D#EFyqVhR2)!yO0bOy$p7R^)SW6iagSAM^_9MC41n zeqn;}<(7Q(B&3=PA(isgg#_0yU<2&su_VIR-Hyut+v9 zqm7%O0s+7%sxSJa1MRJOn)etlEi{5OEt_QJ%je+ zd`!q_MOxV54e`)Gl?UNkpKh+@0zHrldxkmBTzg&-@FUD}`;1|mhbH_-> z7kgNQMOm8gm2>ABR`|5s2-~iztSqgpCid~fIHj3c($9}pTq+>7*#YStZxC;T7WbFN z-1IF-D(HMv*=||yEBkxnV3s`m!M6QCB_B;2&!@)3KEp=J?$~(^w#-4ld&_l{g!3-Gg6vaK~l#FnckJNaZPr@t;~G zuwksLGNhVfy!$1nAv*464GE7Gk30ZMoi~QijIl=IqK~FUAr%2@wcyNor;amW+sGw3 zP2P2Q;LdqRi#3u>^|W_p4z{;~*ZVjxS0Wb^zWmioh4Y2; zy?-03Bfq7wl*1Z3XvrD6uqNjN&3|uZc*WsWcyN{fzL82KyXKD$0UFA-7@lHNrkz~EzWXfq_>C3r)K^km|p?% zq<82`Ri+U~g8g}5@YGgTg}77FNgzW3>iF`nm0MzBGNL?>8--spLWCDr}>8zTX+(Xq^|<2Ap85axi+xc z3had68f;=a?WPOvWl|09&kDA$q|U$UF5Y+9_lID+`%4<_G=GQUJmgGFOgsQfJ2Wux zrps~=@9>KfLq58knKj*_gs`yn#4~D6!=LLj#qtYaMhvDW+ozXXiLcOlz(Du6{`NR9 zyh{T)8+J9fA*M(4SMn?dS4wMd-Y;rZ5K$^;DNU7}GMI*V z+j8?3Ou+>C3&Xs(2{it#6^0=5abATFN{T*J;Dw@tV5=zX{#euQ!y9WF_E%4)6Ul$n zHh=nb<;J9sZh|a6keEO4_7Na2L;1yd63q##AXHjhJg3Bk)k|#~N5xRW&mn5u>C9^v zquwUK^>1m>vV9s9lqp!aLrz&*3Ao0JJrhwr(&D1bWk|panwrIy$*qnN)oRbmtqIRy zy-w4_3&rGpvSU`3B{O^(s|s37G$HkHF_c9X2i1tRV8bn)goMQQ{TTScI~(A@z_AR3 z=-oFfhc%hwHpllfB^(@_YB3Wlpg^KVdIO>$rAm=FI6&8f)&G941qOP**9RP$1;Sm| z^R+(zhYjw=gRl69HxEY-REI>r-ygCOV9FX z#nCcBa0qOVxgR7y8rK16!Z?u9Qv#(tYXkatL&)F{bO9KtY2WXET zq{23i-rQ0Br$URu8(!;ke&G1m@7BR0^INQH+U^ z|A4-F2pFh=_7;`m-{g`zd_7cecxDN9ai7W`vR477_nFp@h6iyh7rK%Tq8?G|Aa?y8 z*0w$Ff`psl6D*=nHvPJph3r9Z)3p5v-0G6lJ-gt+9dFWAsM6%j?F*0FHnicfT`xB4O^8MkY;w1KamReG^TB2z9*xn~L6)SB z5t>zVK$XRhD*QTqiLg3#A`k=v7#+cWIHwfO^r-&u|75B!8sDjY z_nQK(rWh1+NdC*=X8=V^ISobg>%y@R8jH3TjtRWmF@%^%Cg z#IidHF$Vw>AB0XS;IlW;>6N^hX8S=+yDb|#A8=*p&O3;$DBd$X-D4Sjl-~e)9}OBae+T{3yqG-UI{o* zy+|u2RCy5DQlB6I7nPaG9p1aU;<5i|Mx^$bDKHF=>@EN+$FU^fjxz4wDUM78Hv7(7 zoY$%11*q2p;wYWUbtA`7e*ILJTmC`9tn*z;9wA=miPTsk`faQ^aWlkQ3e&z zXVxX&2@KLw{P!Z+scffv1D+RaO%AC-R3og1E_7++q3?mS>kq&{1TtaU`g_}Akxc8{ zm)qA{eNYvbozF6TJH|?q`_M2*!d8cC^C#8PpLFKgBmH?-pWsIZafbY%UTYV+30pAW z^xA;CRRUo*Nil2*pX*~FVKLU4h<*ITm!}XAWdS()K zgJgI+mKFQ(Na)@E=SO`nYg7e<^DWpV{j~)=>;HHY4pV(Q?AOX($zhqulUhq1!fuoeA2&jUw7nyOkY|O?4NmS?_r`4X~!`ZQ+)AJl}N$L%= zE!XRKW1}`xfEgNvV>8XY2||`;!>Lal!jW!xX$Zg}1CL)QDJh*>cOpLzwx+tjah~|G zN#>)HdZ?@UBptBlm^BDh@JLwEjw~M;(%U;btEm>q-yGt1Ccxk<5#p%-q|It}Z0g5b zo?+zoBeBr)<#DkGss9c%#0t!*hM~|O!4!aIScraD0Q4!DvHeTAPeLYK7*u&XL-d~Z zzT=feq8;TBF6Q@syF0DgyYBvnw*M|c#`aNNMC=&Lr_!_bViMt3f1?^cp*=RSd?-kK z5GaqFg7nX{rj%_$Vp<|qjyWa9w@Fr$KI>gM=fb~X$w8C-l}=oTqy$Ag8S6N^)B2Vt zWMX6#lJB0Ba8x@NXiXuKOALq2<6xTs7MA$?KVva}P?!W|HB9x5>u`^Kh|(c@Kbe*q zu+^t(p>2#dDR^#dey!r1`w@k_rmIvLJm6q?(Qo%i26Kc_h6VbW9dkcIR^SC_Pq_7n z979=2f!RF*^K;P`dp8pEtO&B4tS8ylacMfddd#z&34-(9o#_{}SE`02n7kRq_+cSj ziq!+%3R>s*4UDLD5j$Od$1&-bp72zU{q-H?d_L08U#I_ z(@!#y-t_kqneqEn?CXhap&@_=pC=GydHR-dsC`g{Kv;tElC-uG$@$s zAo{&csu!J2^FzcLl*uMXw%Cx_)H}Fw`1XBJrw`4Jky=n@LSpXRzU}UtXI}q$KPCU` z<>8d}Vc;%oC;pzvXx1W(13iWQVZW0m7UM%Vj<88mQw0*-LV>WDr%}FIs5~LA^i4_3 z5~yTpJT-n9Yn?qrAA%x4AQ)@VMws)BC~w?LNSvQCK47cnV&;SCDy+vvk|%P`yg5Fq zT}Ka1TmK@%FHDNz;LD%JYMJLg#iD(q+#C*3pA*}XjH_*vdry6}#feE$`7Q2}JXD}U zZeUvws!S?Cnob;J#y6jXF;S4-(vxf}7@f}SHYHQWywCSg|4rg=Y8cCu_*GYM?~X)E zzvP;WH&3tloAt2^YhfH~3T0gEiZZ=8d=0s|5m4)P#F+8eqi<8kE&`t-z%2*vzpg{2 zX*=7$=3m793W&Mb-pVj@Lc>O^xk0ckb9vT`@T?a-^WP^LbFFbDHwLJ_Q zOBT{Aj;k)eeglw5Fk?7qi;Em)lSfA5%SPC|2h#4V7MF2=3i$(>sM|eA|7)#V8tcux z2N+y~8L(-4@@ZEiL{+#=PMGpIuvl;n60PF{_w1gcP zf>xil0Tm(5TRA393Oo-$x^?AF*U4;45L+L<2&BZ6{pwCROvm%ao;36_ABs8ic-Q>2 z>Oqz%0B_l!gkaFKF)*6%M1|kJIL$Ij39IRIFQ91tpfz|n5P*`yFLZ8Xgf@XcoO>uo zo2*Q76xrn8UQ%T$R7GNhwwtVH1=PWKW%-W`HFCCS=pgLFl$e&e)ACB-pB~c~FqN|o!N}zpq3D}=k@JCaNrZz*(M(BF4suqZ z1e_w|9#aD3n<~~h?EKq!{`IBr%V)Xjv+Swa>QZ%LB&T&JZFMy=5nU_JPxneoWJux_ ze;Cj)k}5lFpJENlbg=!P3za)~%O1x30Qc&2&wxp5Ds3>D9s5{H4`wciq{~#6&q<*SB`TM*a2twJDUYIHuG0-+X3VL3L!O=0TH^hX0(Wr$Qo)(`eMFhmiWRevbf6-;tS+OHv8&?9zta1VdA!d!F~*bVS>?o4 zgCc4*1z!&#J10EwZ^^baT1`YAbfkR)N&+k(v?NRjd#<4@g)HIV#I~_F4SjsaGc*MO zy7P%gl(9j;$+xP`H!p(}V=Lg+8K_ZL<*fIXE*4jR0~+enlh@$>_%*)NJw3k^>Q&D`lT^D-I@l6l)|`s-cd@)_jIjo<3vRjT2cj9=H)J2IDI=2W_U9}$&L z`tyhov*!e=>eQ3n5nr6FtvCKanc8&?xfVH9qrr)*+}hJLdNr#pml*{O3*qmH|Fe*5 z&2OHH>rjMmz;1PfL4{&Ze8VyBT^B{&TojJ>aYL@0@Y{t8X5%fs58_nDrrrH?^79#a zI0sGl>3@Y+ujk;III=UNuyL+(f_`D~SU$D6CjH9}k}yRK{4HY=6jN+W36l!adq~{w z*qmNjB@Uv`+x0c2gn+AkjYA)U*QTZc8Wz$6R0{1)CB#HxxfF?f1bN>jlja^2jE?y+6vI+ zJlQZ9(=CBun5%p$K3ZAY zqn!e7(5ZF?_3gZz_LJPAGzi(2s<%S`{V8d~W9bZff}yCEjX0X_R68QN>SN2alYb z9H;{N0e_|NyVCcmf+tSOT=$b4(ICp4iemk02laNYg^z}%_s9R*s;Yw=@}SVeXWw7i zlMZ>xBL)0@C~!=lL?K$~)PF#`4*SRK)?Zck_3uK|rZ$o>qqCDuS+EPf)OAb7a1b-d z+XSE+zu7!cz#ArF=>Ku>d@F)hq?z65<rI&lrmeAsr>CY7Z_uJnGcfn<09M(){PA(?~>+SMa3JG-^cE5X*ZL5c6ij(l!h5pc2sh_OjCG2)#(&t%5caj zBQbrlOzTa^%7+Dkt>-SMtu5_OQ-T&?aPnKXsp-+ERiEycH!nQ}u6=JEo5#W!*9R@N z$w(t2BmG2j34u})0MoxBquhRf7axMj^JV6;9lqL~psqQPs5Y*jeJPULP+BTKiS-$| z^tNbmRnt_o@vCqi1O4FX>mZ`F3kw?djvo0TWsAX_9hi79r8G9?1?H*wEFx zCZeOZSXV*u{`>u{N=r5bObF%6wFehZ?Z75fmL?W(1V;x?_NVW@vLAZ~v6EsA(iWdh z!}-r_X5(rJDR4QJgxv5Z^}?JQ(P=sVe1D3pRt{61`~fZgQx>8lC~Si3B1Lti*xkKa zb9N6sL5>FbgGhmMxq%ZiF=LWW8^jq1=^$#57y(@@1q{q^g$l>N%-X0nfYEVV zIwD&1DKeUZG>!GL>mASz!v&;vi3o|8r+)|eT+iR$@Yqe|If&${cLQxg@|~(;5%Cn( za|DfoH6GIloZx{_%D9i@^cb#HBhSZ{&Ze3JAe=M-872x{V)M((w5+94%Qz>k=qV+* zDx0rorNyORC>Q9`z43ailJtq#4RCp$R_lWZga|DJh-FX&R%<6H@T3D7d$6M;Li*M3 zyf4ek2WUNKXH6OkpZ{GSWyt1~sU3BX4vl;f_!!(}m?|n`Tj*+kkH2$NR z?8Bb!fbGIkj^+61Yl?qo!GUON(yu5&54S}9MP!j)%8(rNARURf-FcFr=t*51Yi?y6 zybQCozhqdu8A#V-Pf|D z*~UE{q9$ge@)NDbciK)GVFK=<=nBeFSTz1W zzd#+w7HJWsX6DDUqNZw zNy$3b11u0agupO|D0@y-R#mCC;0I09O1edRc4g6-N)^81;NW;hf(dA)4ejkWA7=4` zo~T)N9hea4r%a<(bSf!)3x;(o(|!P#bG{8xuiVKBGw$>z-`N(QUq+wW+h2gxsb`!N zdhDr8;|(M5IKy5J;qu(<#{2KoyI>rK_6ym+ z-D{VJV&)Q;xD`hs2H2^vgd>R{OFi=nUgw7fiSf4wM@Q0Ej|2X0F$_!l?QQw~TgOk* zHqSa^n*#j*yV-wOlQ>j(1e z8ub@nB1*1Z?rovKy+<`+dO>1a8#EG)<8ZMys!n<*t&y{0_qH&9PrSIu<^{d&$W1kw z;YVcVg1_)g($Ca$3y0WiZnyZZ<&B)cI2r@fLD5b@eN|>AdC($xn7a z0OX%O_f8WDdZm??Uu|i#`iMnHhdo&dneEF*ZSM@#=ib-W@+%9rTw&k7h5QY$-Sssa z&*UdwC5qdvo@!QKtsVa^T;SEB)~!9oZ6ip{O@Ws-YCR&X9;3E_B>5G8l=J4sX-Y2k z%gv0lu-(-pbjb0a?-Fo`W`z{ z5o6G~&CYwU8iEKUAgqm;`s-ofPow?`eMs!bluI^F$x%tP#bVSoQGEDAF?N286gbRUDY!KY7D3wJ zkhaIMRntKzA@a~-pp(!Bj(;FVL=RYNv@|yA0+QT{wMXUiLZd@Hj*PZ)qc7ejs$(*` zF$T)?em##@zUVF@?20|T_IplB5kisN=`l|pKc3Ia$#GQE)Lc$S41zk@B|D?Qoj!|q z)ge{q_{;||ek^bPJD!uBmwdntxuiuJ5fm*j<i3$V+{q~`@BDv3!BV1HV zFMiDc%6*jXvt8B4tvc!|qdok=JzH`;7XfM-YAppyj2L@z!!>sQNL8hlBKhym&A=+D z1e{hSZdE*5E*g;!Z})X!^lE-K3E^r-A4hCl&bSA>JS0Af3_dy3a?n3s>pr*f?ZQ#F zcZaajG-D&?*v`)W^rWul{>y9nRPow4%Tf-ZsGWc&*&U5r8y3)pqxv6`Ih~t1^Vi^q zu4)U`_jrtNB6LgnnV^zz?9Z~~>DREI2_%V_b4k-aOu0W~TKyhkbiT0Iqby5YZjt<6!IK#I9HPPyTITaHFe<3h1_=*)KXTfV+Ju zg-vx9PzPFpm4q6Yp6M@ee0r{g^Rkdnvl?n$#Pfh{lLsO3le)488rI|X)3!@QyaheZ zW!n2s!WohA-QN$-L=STd3S2?3i#TvkuS!Tv{I6VR^pnet_uFiToT1lk?eU=7o^)Lc zYHamB*!>Rd)g}J>PeMq4Oz;iKQn^Q@cKYV6c4^4}wiLQ~28kxncu zER!I%eChJiw-jjNbJW{^w7Et{IVN+pi{O|K5$NJ1&3msj^3EBxIXjpeE<89yacJa? zXsE02e_HW*vE@jY1b~uw(VM?uL`1byVC>vSMpy>WJ+-;A%eCcE*4HQ7DqFd0e{F~F zK@;GlJ!sRu$~&Wn2$kpEmYtX~*(Ip$yr!AT7pKZmOIKie5n@vY*QOb!>iUD?+>Lqv zmB)>aN-7}lQ6bJ1+1w(0Syor3)ljk1Fw(~0+xbu8<3cQ@S<3Q>g78z=mR*6; z%V8Sc{m&0&*X4!OILl{p8DyB|!!2!b%kZ>5sg4*Zy4Ca&8!PY2<6^v5<011XdZ zh_tF9@{NDA6%K-9ynp=luPlKF^?lr1Z7uO%RPzthFMyet&`5u3^Bir+U0C(H`2;xX z^}!w<4MF!0?m#s8If$YJ9nO!20Ov(x4dYL{5`jBo4|W4DRx_7BJ6M@%YEJ)f7HR*A zcn9X>y?r8gA;WzX$ufu?v6=>2^=Fl7of{h)yBjP@Ki+8;IOowwm@v@OSBvIO+5*!J zY*{V*up;y#IfWf4{2*C;IlrIP3F4Nn1JWJ_LEFurs&VlA+GbWb9;D8RtnK8{k9eEt zSL@rQQ%b!4^AQ-k{o>bi4(zQpT)rB-iv9&A!njE9#hr}*+6-b(xlsS@22>kW<3Xa> zcK8O1tp1Qz;V7D`yv!^rJOu2v!Dc69+pF*HN-P;ov9SunlPxY%5)vOCv1*=q7?EH) zOMT3nqo8Fc?}vNkNx0)F5i=-Cq(8MQCRdfn42jZeP~DqtgNsW=dsGul!4|4JAC5n- zwpR=hdQ4k4wtd}$S^)pLq64>;6t0JTd>VK*zfT63Ywe!`9O~C%F&0jzT zRA2EwNSLx2&#dL$J?$Rzuw>mtNOuYMdc=zvWu#H0w$_s`uKqi;@IOxg0%dLFSTwF-~sZUI& za?DXz7@Rfc5`XSQ3-}jR^B;m9g(zr|BMw=DLTo2mx0dC zrl*57*8@}HTZyl(I{Y6^XBigd)`j627(zOw1yQ;?C6#Uv>2B!;>5`W2P7wi-ZjhF4 zkr2aQ+i#m6DH*HN_INF-ttc#0D(yG6Nk;%Ecd)B*WzL=0!!U_|KYDD2tD7pni znbbzmvZPAX4<4aGuwJV9QH0JrfM;~c0?7np^P1GY28ZmDac&~`NG-MWX9ldmaI%AN_CZce^f@JVTMA?hNro$>8&l6AdLWTjdhL34uv_k9OSIMnYxXcY=a6zK+h ze|*`0C&7d==z$L_{1$DxlW4KH9Dqi9Sj^FN_>^|7@gm@Gq|DZL*Zt?g{yq*UCvV5S zI(eLMZ%!W0jjtN3mg@c37Z`ZWi!Cz`rg&@RomWQ$6?vTF)eK??!fjKxeTn4c<77aa zwHUy}1c37jBx&#i%yJgtI-z5Qft`w~ssQ-ii~$JFUMnAyW!2c5Op8>{Z&=wDY4U_0 zkqWSSX?i)KL1B~Cmk`j)M=-|nE%;ALEtP`6t-BNxj2D^t#14T1U&IFVuM{|($FPAMOm zRHpK1Tm9oyW?SUm88)uOFrZ*wW%yaAfi@*K_BQTh?i*GJ#Q&}XOawk^F@NM``8dlg zL3QX)4LZA+QgHeY13RHLPhRq8zw%NQ5QXO(f7!A_8fEPGbvA)2Bs)`Kb~uV@+UyL& zp~NykN2g!A;a7?8O=<-T^Wlry&kSP)I?RDE9h~@(RLne^@8Fd1d0cl*7*K}7Toz#SMn*Tg|D9! zsga6e{gMBoKpcpZF5rMxX1i9sGeT!Jb!S2>> zooJ#0JiKm;=MgI0hrhh@J}vx_Y%#z<(Bs%s+j|HZD6GfxY9~OBGr09TGGSDg8mDXKeMLQL_%diZBKk(OEzno`!q@ z%*!nxjbBMO4iMr422rr-Uje<3(;YxFe#ZfyRXZ@z1l*tGTMrBjxXZ02SlU`XjmdXC3*hMLg#q{V&EG1e`m(8U#2JX`c4k^KkJ8W#p4~8Zb4Fk z3YB=ka`c2#CnQy>5bp;NHNDF)5b*hcFoLXlug9HVoot_>3wqG72J?X@umb+b)2{}M z`GNfK81bB5fRyDHT>l;EO~iZ*xOznIPG?#aN@;(;0}TMJo8u+NwyMPTfw{^z?-1(! zlT?LQ&ky8}b)SfMj*^bw%TDV_8=a?Ym8F~mU zJ{yII|E2$S{J{g=s}#tqkRr81J-Q#IDPb}*1C3)8hr{p1qOsq;Y1%jtJH5YH!!*8U z#%cG&sz{m3B5j1@(|!qk=k=hlkYveljW$2)5BCE6;$#R>)6BE-zK)9(xMazE8BYrw zse%r6%ESJ(y(G)sQV22B|Yt2su}zB;(yfvc---*U9smPwuYOj-(+ zP!0b2k2Nc~w_Bc{1}6TIZ!zr|Gyx5znZcYH zNIGf(0INXYEx!lZt20Nw>aQL-0Tl?sz-0F2wg)#LLEQ6i#u>t`*$%8@%LwgT{JIv9 zz5&&G>t5?En)oI3!vy$whW*|Wx8L7%PB*x2DjXn|QXsGf?fwK)1V=E3)8rbtt?at4 z9M9Mk1513-8}fvbvi|p1bzsQs0qRUwK>BvSIDo_Psggkuab+`@*&KjxGaeTgXN&vd zRBiXY_^qj!&uz=k|FjU`6-l}w1w~}nS(THA=-_4lg#lEO%1WV1O!P2Cro9AbBU41v1~)FP#}dZ6C{9F~#< zoC1zN3cM~(J@IFcQ!MWkIUBM1uuCHolcq0_T`8A1Qp;BKs#L1iG2j>dvl|x9e@<<; zZ+~PMGo>#dMLlZLsJI09O&7yKN8YT)y;kK?EwEL9YZH`)zh{2SG)3OH6c!|Y*(+XB z?T6nI&+6KL_3W{`;WjhIi&n}sFgW$%1xpS@mCb_)25#VE>UyyVhaYsEPAgVKMLoJJ zeE$Tryy@`k23sHk_kIY=ZSl`2Rx4jL+$Ty1m;hPe2Su)aEEk0I1_85f2d?NEU?e-G zepnCuO92i{v7;!}l;7mEl>Gks)pow>0npdJ zVNUHsTmo;m#>dv7yld2n{X1NA&|JmMQ#yd(SSEj7Q23-+Y9;BQ{()OxrC5Q#VK;QEoX_;eF|-Gm80mE(1jCtZE8#4CAkXHltLpZt)b1H7m_;+_Ee@9G5&5(5Ij# zEpGQaHE%{r*$o%0=j>vkJgACGjfwKshna!bZ=1K{slGS>cw$3QG_>2(kTfDV@a$c_ z410FJK<6EDiN-wZ)kkk`DOd{qc#YWMEl*ed+4;KxUS$?p2p#kzLi2fdx|{zeeEeH} z5=VGSU&(PflCi>I?XagkaBw=vc z-@%*}#KeOClxgiQJK;1%sQ7$8CAc4@{0o7xXJ4lSV z(Yfzq!29tA;tY@{m=KVhc|ZgfCn6Hw2P_It;M+Rtrb6ETGgsLmh<~TS#$O2nbv4Ul zE%4-kd;^R!0|=IZunp0LV6!UuxBU(T$jpK@;DXp2`5k_4h&a!TFTauaI<{=44YaMERa@Qo^j(wyC=mSq zADq44gB(z^LIG!B52z^tsJ{tAB=Ed0pDKUP7h=*MO}q+hi>aqqaq;nXo36SWCq69* z5%dlGApi71FHROy}QjFkH2yF&u0ncqY?QH`1f-=7(|lUbipySwL}Gn-5M7 zKl{#=cAvTz@UyW^+%6!}tCar&l0~=>T7_-1yF-n;^^M_V8F26*>Ski}vl765t-n7* zCV4?!N)(3IY`V0iyN=^z9xFx2Sd%NW`Op)4!u$f8k7h+(+E}v)s!q%SEA@dwMc+ ze*D)ZDcd15q^F`a^Y;9POO5)fcD8|V`{db?8LXf(TRma)kk!u5&1df>_E(>vrfcZK z?1wOjnPw^YwW|!`;WwjBW-A_*Q}x+2S#8m;Xy{-;@Viq6(@fO+KY`#wS&q*-+wYZz zq8W7tt~BZg+Ud+Ur+ft?wTmC-AEw$?J=!ko#BX@c3elci`fDz<(U+Ci^-V5)n;4@n4SRt&)o@x3bVSGC1SF$^x zY{c1--_mA=Tn0XjKIWwAk@f+3hXyH&z~4e0{{kfXg_eB1OQ3rxS1#y;{c@9tUp@Yu>VK-kEyAr z3!in@iDO>1AnGqfrG%(+#6Zk}>bQq$5@CGCuYrr*>b8B*cNOXaRX;VTs{#%~sW*zF z!b!==xp6236FPxL-0rAu5v;B|MDekVBj(2Tp@z#x6!}? z4OOxKRUYUh?b?r`ZtH=9&|W322{b*et8biZ1H3El@r|WLxuTUDG0!BKn1U^IoB6xJ zt-EC(Npw)U*x-F?gB7bm`m={QBxT%StsT8NO!!%0$+sMZHK(H4bqZ9a1&`EiAIA=( z8oMn1e$tVXNuM32QjG)N?u{IQsE;rc113JQ;f66JrPj%a@vO13iWFv~9gcjVtDdM` zTee&UNqPnD{-+B-pyOh&>~X_(IqD=9YsU2*jLyFOKPbl6T@H*v~S`Ka^qt$L=Yl9*UN>ij?svzN+2ieyLTeR)IZoJWY z*nUG@F4Y=o))^`Fh9Q~^S%?SwSt=^ec7R%@QiMy74^~Ref;>b%jymw@1ChTm=ph#;x}{aUkd5~uu$?aib0!7=YPF!cafEPnWLnn>}#yyp{M)$^SJ zer#@;ji5@V1WOdb@);Wh=h`M>NB>HF3N*@YRn(z-es`RmBqwJdNEt!w9yJ9;9hiES z));mCOfM9k|AysJ%fYQ~mN@2m1!H92MPH;DTirj?L5)!q?tTTEcjKC6p(JkG2@>Mt zBL=Pmpk$zjm@qWx9U-W(#!Riyx0ZoVHuW5*zBJ%##1$z zO0}%LwBeVdAM%VVA7K+gbGC0x`5q6f-9Uv!qPSS~zuhJAuPn{o)U29iJC zB8n#PJL+1j1)7YD%cJ!zkjP^k=e7=RKj~zksQe8{MDQ9`!2Ro#9@KDv;9`w9R#wite=ReOeDRu$I|sFHkw zf;Rp1gFr04z68JbGzE5*)uExtL<nYd_p6 zZ?FO14{^knuS?$T89(^G|IZu#X<^TR31xuV41v zt0GZel)uh=*3~SKuImdv=q2KfLvWwoRUy@C+{^DwoIl_xR z23qk}Tt_6{75=qTf(Nq#t$z|%)`8ayvnx}<Hd|C{Vj{zrq3q?*S$sKyUQBkVMvN9@J}U!9lQ}-0}&7qbM`tr z0P8_OAm~+dg)KqeMlGT>@{IaQj&4=fUN~O!#c%(<;1?i;S6~8{if8m1o%?H;*k!`x zV(`(OE<*)7Ym0RjcIVFoM`Z?es>I-GhZ~=)B8c+GuQJ=`_TZ! zzvs=3fgc#8z>CJl;|T&Hsc&?)_pCu{Xd~cfzSA7dlcBe`>U?`X#B!&``V!?K%U8C4J4*#BM_0*c-rd2kRh1|S9C?I zO#Gk$Bq$e8tnw#$38k{o=BZY-=n7kQ(zSk=EE-+L%O#naCyJ| zlP(dE5;>bH+B8$H@;3i2cfvF83HjrfFvA5J(zjzh&+%_1q@3fc$8pXM9xmbOs~$IP zt0~8Lhyjw40Nh|#)aM*l zuS=T6r$<|>w}YWS8hwxjaW~686Qkab9R#B0-#y$uEgO)j(Py(1Lk|H~Vdhs#oVtI7 zQDw{HY&AmYt{-vQKTsf-^o6(9xc9TN^hwPYsV1w4q=KIZm4qZcfkaSIq!s?U{L$v+v~_=TP-Do&6P0p_8+c3YD&5;# zlra&+6LCT~lMvl4gvJyyDR|wA;oJe4nW4MSe>fH27I6G2Xvj!Z&6tp`Kv%n6!Qi?Y zWnJreqUX0WrTV-3!vlV~QNR-=%x7KU^@VW3r>2Hd!j=gbw*ZDf!|Ab_n@sZ1*&xZD4q%}fS!I@(+Ma8FTTUKZQ+~Mr z$x&RKAv@zqQ25gx^?7ojzQnMeaLm8*SGB2+d0ayi1)h$kp7{kyCH~HW_ccz^Cs<*qV5^zaJUIp4V*$Sl$0^ z$KFXo}`ejB{^8!W27ho*|JKLlJp z+j~QOJ-3zGZjIPL>$iNCUE%+{cX;w8KRL0b8Fyj7^SYxt7e67?VqkchiquZ;eMf2Z z?jIkx*6g?1DSV<5b{|4aL%=}CYAjXZm?ZFsWCd)4s{lNx2?s6c^Kp@b&ts`?ugWq; zQi^EMBe8sYoyZk4Ot*bojML>kaSHs4kt1m70Ghpc%Emi>-Qe8cn6(@0=MQ?-3^TZV zNJ2`pRVoCC+;ca-V+kFKs@h~(A<1d3ovJFO{#a>($5IJ6JnG?wM!E%CjyAqey_fb0^Rvob4={2A(oF%AalJ4xm2!)#+gWjS_!210p)X{Sc zXdK8$ch~@Gc<2YnbtUGSxdXojvNNkt|J%E!^?Q+~&^>zol`oH!mqJ(UB_yP*3Gxj4 zld4$*ZcmE6k0v<*S*w__Ys{GA8JU$5V5M33hP@f4;UlbREleqWi>`I1d)o~QANxs>w6|Dj}E z&~mBqpGCn|wr!GS6qKi%BIb8sTkv+yeG_5%dwonWxC91vU*^=WpEh097u;{Zzh4!v zQ;!iEM;%x+87{Wuky|9cHE)U0BdF+{6r@r+iBTmwlcLS?>i|_ zKb&4%jMQ0A&@)JNhbNBne$YKLvziz9XUUEAtkt8>9CKX1hx1L9-sauLFtzDsR_c(I z2IuJ)THJM7m=d1c@Xli0$3uwp&)F$^{+b_;K7d|OYuT@AeJ4m*e8hywF6#6Z)@Lnp zmAYuFDvTv{xm{F8cq{ok+`NIE9iJ+rnz}{;tC)FEHVl4fw_>aL@ay2-QDDf+nWtak+Ea?1>M49TX2*2#Agx2>`d#-+93oR+N}T=oKReQ{ zB0)6p%=xmFf!0g6Zc(dxj~&K2cX;T$a^auNwIy3nQQat+#Z^XXj)VU?(gs|&0fyF*yy57oHSZ^3( zIN&@$Fd2afsb9$_3$-A?NdA%u8~X8b327W%e!s&U?V&B7s!49Ab=#*MeAh@i+N1Oi z9G36;^CTc{xEmL*zd<%t>v5h)M@Ep4uOpUq#CTD0Wu)EAt6I&FlrRj@phxx0nKDUD z!CH)SR9FT@%QF;|FXaf4!lh87NyDna($1K~YZfa30&F}=4gBa9Ucq$}h@rfv&+ooR zGpA*RN07k}Pr6UtQ9O%r;BL+cunLr?tzd#Zx=p3ly1}5*Z5oGs`%=0 zTwAD;&WqbO5s>5^5?tyo;OrQ??wqA)on0HF9K>&}jxlq>IcRyu@_UptBeQtc}J7&>H@DX%-b95FHUv01J! zWw_#(KQBzMuz&TF7%SE2)E2p7V~~iM{?6e60Xn?O3Z)v{$-~_j{${a>+dk=(7cVAG z3>R{%=j=3J5^ZZ6#|6own{)nw&_k7;rfkGcTqs*-bWJ)8o>!6F`MbI%mCx8(={}~` zX_=?i=_JZKXnMZ)v*+NO6VGQiPa3?oZc33}KI=8^M`=8B`n?m9G^S;&6K8(#6H(Bz zbh$p=^{KJMq3N*8b|fu%EBwrihfK&xa%B7Dm?!@#xAx&Q|6bF$VfKBF?b`L;LXfTS zM*~z8)Rggpq4z8GN1<;}T_!p%USsz*n_XNtE_r%?c=%8=c~V1ZiM#AY!I*HE1zBf> zsleYK`*YIae}vrNU`skjWIO)cH)M*q0wcQ8agYf0DUx8EIzLFWYV90tA5|1(7wzzm zrcUE0YL$lB9%5|S#BeCM#Wl}MSPy|IyvD!Ea zc5eIR+4EjqILz?O9T9)5H4+lmj%3igqY^6%9k_0u`cm)2q= zc9GoO4hrZ{rPS{~E;ig445laqWR=C z6&&k~mHpc~xvB*Tb{jVVnUPueoQ849e+2(@MP(9%;8-E?*Fd-CrvID?17;LRUzI6m zp3z90zU-HXGCVwzV$3zos>S_`@?o~KCguWOVOO^=r~)zo>K)oFef>phhlPx7+A6+% z-TK4k9}ec)`PU%gL9^Xd^GVn32uq@3CVCc~jSRU`SpRojX55t_6ZysnG;!Xbx@~$* zQ0E6G|E%AgzfK(*+{jr6h5y4xzb&5pgUb)b_YwE9D9DQGr#)xL2`Ps!&_d+39H`-b z$HeYl7sG)kfp-U~d3pOR1hW97qy?cGbQLf)U%*SN)`xaAVG??ht>{uIgio!SVC9sq zQP`I3w-Ihdc-Z7T89Z{uUG*Aa8+%(k_AS2)FXXeFXed_%K;#=PSSm2VB%Re`Vl|@e zmvAtyz7d)KHF%CszFlk_w=R=2wq`2hGuq3S{8yjbux+QN(Lu984;zRY#ku(nKP^_z zBr2A3#Pt0(lkava2qgG*dbJCTPGEj;w?Jq`wI8wiTbA>J=g{BSMVV7R8dfXtLgRd` zCv;v@^&j*7G+J75mpGNoV2JcJWg2JC7*SYe$fV|)k_3NQ;ux7uS0^$uOC7*C1)dKx zkgWjJc1)fx9*nQk|7~9U6S3H+Bm7ejqTX8>NLHp4|3WYkI>o$g!qE55P8AQjd}=5o z`^eLde=jDvAA7sO{F$Jrgp=;hrqE?bb3~^fMlKa0Bk{Wg!v>uGH)YPiVR%R0Yv3JI z6wPFoy>TO^sQ}c%9A_$TD(4Eyo0_VrXUf4|7OAr|hn|rF8N1AX@cpsL*KH7+emA{E z4=g!=*XX5?s`qbMtLkT>VyX4lXG`J@Z~N$RA8+aiq5l?ZGu66}C26%c*Okt+GIrTwYymxOaCufu8mtC5<7(%FT>s+2_au70@-7Fwjrw*9eY%Yw`^i3Z>UD8AT!yMnWn%?J2>Xnf-FVMVoiumd-L@>GqS7`+QFuUVK%Oe zTwzpG>D#dnFjNe=Dgrop!hxPM5(flnekv!Cq?+GIgrpf?KezjAMQc=?<;FW=O-AMkO=U81zoqQFUm4^w%!{xsQL9btF}kJpa#%@RAe>PdS^N{~F3E9riPqolgN-11auzC3ZnBSAlu-t3) z>v=@H!B4y3XLPT930g(5>goxT@xSndz@~oAN@>;Kdd^le1?eVSpY%#U11)Ji@GAgr zr3x)(vFdLd>mv@;dm3-7NdTYmQMC&#p0)RkrJU8YE@_hQlN=XL`ZaRc4grxI=QMuw z{isbKp6S$UkAU0WuJJG-Z>(5kVG^5WY`^tEc=yTs^WUw(XEv?uMq-C`EIn(XGmQ?_6!gE3u(rMiI^J%~*NP3f&6KhE_zStHZI?P)k`GfZ>{kn;rqa_>m%vZZBumYyi=2R zIIMMq;eTB(r!y@#TIN?-Ju%9P7_@8VHaVsnjFCqLe#j^$lZpz&7F(;Bo+WMmXg0$Z zc0(a8qH_WG{49pBFParvi@amg7Z-oUeMee1?{cr|$+QI>(~0Dw%bR@Y^pOLzkqk#) zGM(Fh%2e1+F)2vwI*B5Q$5BoHo{VoYA4+q`Rg8VpXbrj&k~8k(q>}jIrIpnLnmPcQ zkoY}_mulbm9?$-a`|$nhUD@o#xXRijnwZqt9Uwo&mWBkhr(qW9k`WtkT6YLf7vD${=Z_3P;S zhdj8r4s$9!h&64&=O=N)EbU^`7f!W`bzwv?b5d_e(tS3nbVfwkOYKda*a0XTC?suB6iB4V-iL^QI zkD^}^KVb)%NyJ1%f-oX{);dlewd9vH{&-rmP4Fb)Z(Wnh%%!Br8Wr_2u#7U$sSbQv zoooE=Hf9F4&B;skGOTv`dEU=1lE7OhYR6RMWDQ}E#sr36WgrHj5BI!XwE1Fa$UW(7 z3}O(e|8Io-tf_(BhF{0bO1JdaW#Cn=^#^6}4`>ud*)<5WmDb}&=yipTvcLv<*FHA+ zipJ#!Yd{SaWSpEBcyVUS%L<>gV%x0~{8-mK^vBKH?r~XW8PC(QK;D!Joy3}Dka@ai zdDsa(48}$um?+X^3&q5au#)H?+x<+GHBOBFl0X9`VfsCXA#6Id24T}m45KAJ^Y>Bi zz8>2jDTzcUVw7K5SqZ5%rYyeXi||2Fa?C<^swBDO>OdEra1-1HTa{R;?N7n&_LHuM zJJk=Tw_9jV1|9V*V@2J$WRCccljyS&2a3b4_{c7W6er3pvy_7@VeO819|yf&1YYk% z%~&gxPU|%2<=XL*zh3Y#@AexEBfplENVB!gsnv!Z>6a&vpgt%mrErNEK|e%?^Ps{s zdbqK9$@xi<-3_~W`B?SmQN|ZjMW{I$2ER{VEz7>iHWyTYfHK7Zd+AZ3w;|}gMoMRJPcwFNADJ@cUbgd8$zwV`K95h zq5%_gxUPC_iV~kXhGfBxQ{d@zi}g7bWwjPFA=tUv7wuJ;OUoF=U*KRq-vfM1xyzoa9B-^L={e=x(6Z!qUe1 zEF(SR@}RuL)%@_vrYv|)zp1xcrC5vE+}BsQkl6!;UZ8U#?D4Dj$srn&m2U_?(mj=* zIv|3UJ@*;=aAie^G!8+*2%&)x32u+N#wcKd=~l1^MU&^(_}(SCto*D?|JC$I9cXnzVueq7n^&OU!}dkb@3A5Tg`5)GZnlGxY9&(ZYKecfbqv5+e7+K)|rf3UD3HFJ{4h;AsR4t*q=Fa z9BR=>4+{QY%ZGTrH|f&y;b2}wWBj+fP#W!5>k}C6$(hBPvGc@M>l?SpL7!eJFqjGT z9p)NMu{kpx_v0Mz>DCXpBSXh#2#%JD(;X*^?lp{ZN;-TmSbNWaN80N-< zi@7~7In%^Ry-x2``t;3wUON2?tp*3=w_}*RX3y5z)l@nhB#^AGILLw$E0QkG7>u(7 zMW#NNX;c&ddA=1l+3%bfu!8^#Z8%U)xO;g4MUN1Aa)SS8h7G*YN)My>N()b}-{^c4rB+eJP_u2NEFhRJK*ITtQs~81^ilROHS9$mnS(7^MN@XRq1J63v zhoB1Ti^8v9PsC7AQJ4Kr#^MkY5#Z8qUT&ZH81bwT-rkXEAoH>$1uHcLU5#y9#`|Zi z+aU|O$&nCDgWwrnB5XZG-TPmx8+2SKhKj-7^X$cA)xag_=QE{8YavZrlNt)>PxT%@ z()eW*hR6EJX)%kFxipez-0Zx%q~wdYkhO;VZ_)ZVeDjwj5>tO!RAgN#7rYE7l7pWw zxd4bNX+#hE>&JfqEc>l|!3KKhM_vdj1XF@sLT0Ak4|o!v=Bjv|bL{FdH+Kw7E_^hu`k~jfB#{9(m;69lF2ygO|eq1rmkG;!*gbz zvM5#DgMr;PV)r9fq?(=YMVz~Eu5zgcaW7|9&Izj2s|T4=4%A72KzHDIXV35OIxEkU zp`3oCdYinHdPnU!dS9`m5RPy>9)XfG6a_^CRvIa2UFbuErJ(@KsEJwXY3d3Zqx6;= zUYaG0-qg$hE?%82mMFyB27pMlYa!>_iDg(dNC9!p6uhpe$?8Q{Ti@iQawFO_g( zKJt=o|2^HEA>sfZK%OZon5!`AB}yJ=XvX{OM7;LR$k@@bBN&Qe8mo)=Z6WS!GLlFV z%%|Pmr0S$wqgJ}QRyz8aIVn;t2B;92Mp9Bz2#p%^XiS-e0unyy`Y5M++QfE)7BgKK z{WosZm=C!YOO32=m;*Yru}d`iAf&BNNzL)H2HXv;S(!zMqUF(_z&f*P_3-2?l2U5< zrT}r7R~Z>^YuYXgQZboSRM4$Ov@c`ItZuJsGNn_*_*XU>f>Fhx{^e;58y*Z*u9OBj zpHvXNgjYGa^FV+(_4@{xTN+krS+*Ex=WX9fWmtmd1qJUeiSPa|{OnmmnoN`gG&R_y zZKkWTtmn0u%6ZUa2>XCVJTfh1{7bWQMm5*6sg(wT6+QC2gK(-`EiD>yp6@7ZtDO1; zK`uCjyLeeRs5sU3>O*89Jf`kmG?*q#K@PzsdNeCcOt!pg?sl%eT0c8I`IGgJFurBE z(1o3?|G|%Jb>f(p7j)lI`}g4?Fz`0Tl$1qug2gv4{Z|f!h5|r(;-f1NJnA81LZN>N zBMrjSV{Lnk^ey(D9-tEiL2M;wp>3>|U>ZI?aLt1k#pg+^n*=_1o%l} zIbJgzQ|a%J0X(Vt^Gsd}*C)m?v`=9%pPV^ocrzbElgezrXfTbF0q!l=46l!uSNbKx z!v>*Z8i%o?hr6c@s4RdpmflW*sbb3h6GPzf28jK8PXP>eow3zX63$d_d^%;h6Nro{ zAcFDIS!GWb--n@R+G>omH`?^MiE|FPD_fTo9S5spD&NDHh}{j%k2(~@WQlh%$Rozd z))O?6s`o^JtVG8~jiz)jt7b2v%2rS4@Q%lNJhv)kgigNB@)3N>YVmE*m2fb354|!Z zlRx3_@$zoN*!7}F!Jlk?C%vWg#@m!_UkItYaws*P_h-x{UsaT$3pJ1LJKwiVZS(|b zzSB^eq}tKt7H@Kz2dzaaiJBzVMDY}?)|;ZuG1{d!sii`!c7`bQ63~(>$+EnNzCIq0 z*S2xJ9mQLS=CC?u$)BqqwGAWwp1hVB`>{jM80(W3vx0&x7@4U2Y^>UC-DfE^pq(Z& zr$vni%w!t`fGC8R={T$c| z61kz1Q~WPs@QZbGe8^+$FO$4+{jnihg8Fi1fmn@4M=2P@@mrWC(Gz?*2S>URxj9Os znXmL%S2tFft_viIE)j3(;`C$Vz#?`^6J zWMbVHTfo_Z)Q!)rH&ArO)B*s-ACep0zfOy#orep3MHjx?vh+-Cym4rXrxI z!DVls@p|=@s29z%_9$~mM(@%L(6}R;r3o!VrnhCDmz&N*yVE4df(-9_PzF7q4IZi%c~-wij-*=Lk}VnBxb{yPVB; z#<&@W`gS-zV--p9pd4JwN!C!Xjy-BAVj(j>yyN`Xe{nZ2QIdjDjBIO_>rKXFccI)! zD*3ljQK_8?ie8oJ?U&Q%!x{bc_*oaD;@1k#?zPy#vdzU2A?xaO0#co6zs1(FMkv2n zlkSo%REy2+iTRg*Eu|L4a9vmUQRzz^ANl7BLCkM29yJE$wLH&qqps@8i=Bu=UTbuS zsi>&f>g&s}6v*z8#(hz5(SN+TJ6_HHEL8bR#hw77JXB~(Vz-R`hD!CO!PCOsP#c}%N>N0UBcda_0F#q;0U)zQ%rRd4UJCY3l` zT%N=S+fMV9hu;PtW-LM~PhUkrXFm9Si5u#}DosI_U?}qW9-~2DdaZaYSUv$x)*J2528rXACs|fDfM9m-JCi8IUs>2z zzSImNlA^&yMvuuZJ{Al3kw0;imV|5TWbO%#dO1b0e>_^~TxCt(H6TnB9OQFBnljsz zJ>Br?~3ZaF`>7V9KFf zvc7L!r>#Q!m>d~fYHC1f4N(t@)|5<7ljg>9+5h2ZhdjagP`4{=Gq9zD!J_F5DWzZ2 z^Rd99#-@APj7s~c$J;_oGl3hjO*xXr*88Z*wr2 z44Iv#Bn`9bNjut?wpf%Qq*`mm@<9U)xUXtG%SA1kr?j_^e;>#U$q0S& z#EwS6rx~a-g5*diNsM`#?oxW<$&3X@X=`}flgB^X``UulXx|BquXOZvG_Jzz_6A5e z*OuiuMj8OpBFr?$_ix0z&b~rI`}_74=i|g*9X)5Oj6s7YnONf^a!hp^-zm*UMZ|^w z+~iTj#^qk{JGMT3H?eZz4w~Av0HFhlRJwZ3AjWBHJ-l9+d2D9uQ}05PYNHPNz$J$R zg6i$L)FNPRJps@yY+5+5ijV)GgjZnmuI%`KYJzToPD7R94}|pQTsH7jmKA99&x z-tL|u_w{!c4pm_C{|P`LM(-d$U+wp2Pf>GNF{w@6q_C3aT4aEpnqGFcsa~38Mp-6( zsufK@)FOR?!sag@6?AQ)AeU(7Q65H&P$r!sH5?|XvC2Y4j{3d;bQ0*+ki`gT=w6G> zcVWSWZrV_%l=67aOwsubti{sma+>CNMP>J>NTK*-peArOd}Gi*D)WlN<2FQO%4FCj zPN>rm2wcd57Ljzyp6HTK<4fBCJ;=lfCHw-@aTYXs|0O0SZq*hKlJD_<9$EH!@L#D! z)h<72$+6O-M+@dvZYw#LwBaKV%~jbXJ23PeVXJUZOlPmE(SPTEb=C2XA^(0?buZq$ z(zS)Qrl{{BJjg0&u@-BAbgO~i%Q`D3XBN;Cm`atHUYnfsC5+moS$_MfG{ngV?K}Yd z4#r*Sby#&RzpLz*J9^69r($(WgwN%;t2{am}byp z^#%>RQY_svQ&s?z+D0(K(PdBPGw2X{41|ySiWJ=^Im>I(8zI$4iFp z7W2=B+Y;G^An{qLJ9sNsYJZC$_%o)lL>Z zQa)siW6Yswg4&$sy0H&&kKsJM%u2E4YikwWV|nxWqy6gF(%ah;@wZQw10__HRMc9u z0xI)`^w+{te%^NyUhnaBw1(zbl5udS)*HCE^PHgNjUb{JA(j4ux z=tan8)96=u-qM&;>r(XBH8@YbGaM6cQwbr2i|*ulCEt-~8CgGj0`jm(yg45^cClWS zQI$QL58W{{w{3@J@X0@JIeG@=0E^&AE388x3l+A`8eBy^^Z^hi+{*~MI zzv_K_L_thDY?^*S|VtxDFe z`yfwulTBd7{d{yW@sCamt!#P3Vfh1G{I!#*vHnoNHpYI7RZ_?N76@jKw5qGvYjtEU z{jqudSO3Q#DY_)f;@!71BD(;pT)luEb!MZr9&JyHcuR+rlmc)Ga$!tLU+E{7-}1@Z zZLJ0xem;YhEoHr(wE*u!kiY#t0YZY6fMpu1%@|kCg~~*lfyFS>2cZ`tVsLhr+eIcv zCi-6hBMsd0$C}lvuh=~~cH#tq6hx@p3StV37z9@cBm)8h3jJ&=epUm;f}UfwWL0T`&RS z0Z0jOPT&ZA^+Xa%aByM(MUszL8bX*{zjm!Yx^c9aOvcsj&TjSgzrVeB;e{8*AOHEE+rDz;$EvOEX*QisU7qJE z0xCKvKAqhUDx%K0!V-u0%q9~TYwwwiCtQB^SuaTzSC8Iaf9jV$760&+KjQ5l{0BSJ zZMOGz*gf3gslBIo`rtCV``heX-eq^RW24C!uO*{Oi77*zk%GhdmS{>M;gg+FK_No) zAc>f?M0>%=d7@)Pnw!S5fw@sGAQ-p4}XlfU?hCuZ!w0L+JozCs8ZLde>-%{#z+ z@Zd^-5IVUt=iEJA<5h$@uBl^9rNw>il|+O^yCiBv)!ntNdvDuF4Dq3QvQtdbwr$ol zO%_6UY~};YtUyKaPP)DxpGX28kD-JFxdT*4B8b_!Mr)SH>Jg?9Q{e~iTr)A~$cA7< zNCFZtJS~YlDk(Eun=n;cCuFI^jbsgygy*wUH7p)Zor)N$*q8qBT*6~9bbn!cJ z-EKa)_HsvAwh7#?x^&Do3s; zOYJi~qN>C`vKG}!;lLt4nHRZFF^$G9`+n5;-#`A`Pu!SpO?mY%zZAdzjj!8ZeCe;v znUFij|2j`q<&35itWm;5(cCl6Ge&tu@)?#zq!C0aQ0sJLgLT#M7+Fe0a}aAR^PmkD z1*zbB|MrFji+F@Ju2Y2yp5$ssieR*LB;)~!j)VO@^a-<9y8z6G1k4ztnwe9vPWAYK z6T3o;;VgA}_cZ9a6pS$o3#zQ>29)>VQU)x-61_({w)dSvG?G%l_f7{7#@Ujjlw2P$ zJT`!tivuU9c1&OT>lyojJXZz>61)he0^Sfa5)M}x(Q>eWM@ZTY$KnhzPtu6F0+%{Q zst%kAxX`s40Z9_5;9^OqKP#y3^o3g@o{klWbt*5;J7@*-f}<-O(*iK*#MEQ=Ii?Jk zI<_pL9TD!?oQRPnA!QCMk`TNYw2CVdmb##=avdaz2+0q~)sw&E$X)NCqTmLxsUa(A z{cn{%Bie7*!BGXyR2w&4O9$0=8U8Bg*%H~fpF#SfI6=)LW<=L9(#nIIjIqoJX`cYR z`sG*c=8a>%`1`*H=hdC*F19&<=7O#;XgkI@PbqDi+4yvJI&up)TCG-#qobqI)vH&l zx88bdw!gn$9v&X#AN$x(O)niB=F{=mZEf$k@nqsN?@-Z%h&ks>RC0B4SeQH!)Lq0S@L&?ZMxV;mx#!;eGb7}JErNGK!b1qs5| z_BN9A0x&O@_g`X+l2TGY&5(zRv3ijJ?|m03zsDqkVJzdC=;M9SsSS}e4NkLrblyuZ zfDJLGj@3S3PPQ)$Qu`oPPLEOq&~b3W*{WRsR6z> z)9B>q25~$`FM=+L$IhD^qU%{JxY%ofs$r^VGJ3^33iEwxwJXRTSe9mTX2Llr>q&n+ z_->nb))jI0|2SZm(5H1Z;RK>NoF!BoFV4B0+=D;@RX0`w(DW-`fn=F^h(Q3I|E*A6A_3PKm(P&g`Z*3Rf{qCEy-QC^n z*=L{0UwrYWr+a&Q&igD?Rgp&HFfi}3bP3|*F51N(y*`NQZefBf22fa_wQG4^0FmGMIHaU4!@`Tj-Tma@rwwwu`KlsBPVkB8_sq{X(hz9exVkBiZ@ZOn;Jv)pg z4dNZ|rGGi}fT*?)2l9{U!|~L?VUHM(5^;VQoq-SkH9w?p{g8*;9i@dtG$XWYLaJG} zf#vCn<>3L(&KKM~KH;l>`!zc~y2)?;)@KH`IXos|BSpK(Hs`=;51bQV5@Vc%5Jnnm1U)f#={VXqXSC%EJ+V1b~$2Y$7of}U-^K^T7aM(;H-+uXX+y$JQ zY1)BpmOXHefw7sLy_;FtG)-k@Mbk7T;8itu&PkSK9335n|G9Q8j7Q_Os?5r&JSp=0 z_V&)s>EY#r#s1!<(`0s1*Xufk$ZM~?4nT+v^*XRzG|c8}P8JJJPF5_p=B%5BRS5XF zCeJb?cqr&Y>mi@OMrxwV7@P-)cUIG@b`khy<-Trg_nq-BPguRr1z>&@L&$sB^L(Jd z-8sc+V6j{=olNd@2#`AmfS{38tQl*yA*pdLnO9pRx=!T%y#|pG8)9hA3MwubCL59U zg#ggw^^{8A^W0SnkF!JzWKmf$Vp0^i9I{ctNmWx;Q+CF?{MBoJW2dJ#dFADo2jCpi zwFBea1kO2~Vo=q;kATX|MnIKPDu5!Tl!p*pUDxWIle(@W&^Yf~f#|$XDaQ8T;GikW zylv_x93S6~RaKouaYr|fWIP_5g_`whO}$vr%$A(iYxdSF>SjsRj)++#Qu`(5tRevrGO{hp0JX-~}sV1Af!)=WN(DwG)%g=4W=QM46#KFHI(`!*Dpv20h2 zwc>8L6QGuWIDL0Iw(q}-G0@b@em3o4e{j0E=oiZ)mH$C|r=E~eIwe+6<~gO+RB9|n zW2$n+R+%xIjB`j=m~<41D00000W6{+m>3jqZSHH0iXT8<|WEmZBj)bwf4uc~2;p z3Tl15V8_P~vkxu1sk@IO&`~V^H#iK@JJ~kCC)FSUzB$TBCF$;gR)2VW=`}a&CQ)Pwk z=mIiJL}=b2c9g;S>(p^b!TYx&0qzmnQCK3zfPa!0>kvT23lE4>;0_~D$s=UGpJ-nz zGI9)RkcI;~2IGelVs9udG+9EB|yZEw#YIQGF+xV76B z=>ZFxfYs`q!N*0^OkK1wue(qv@1qDsdX{p(067^NI{GoaX;$m|%}}A2kLwO=p?=rk zzt4+ar+`zkNK$D>PT-T1iM@N7YQ*j!qSy!fn_b%HzM!v95pTygI4kv8@k7qEe>Eu6 zDD*)aRih=S2jVwy_P=tRQ6@a0#(H1?B|nrp6zh;{2O%APCvfngnA#KWfQa7(TNnv? zG=Oc%$pO6qfY|oCND&q|U^p>%698KFi1Z8N2<3ZG06-%18*_yy^6O5#k`Bz&PV$xx zLU@x`5+bkZIs~xAUTyi4p=A*zh!U%J@XaCCRv?gMzDZukuIc>1i?O?gqyO#Dk?@r< zQF<3q%MVmU(S8(M6KcMnZ%iZRXhu*7lOhmlOr$wu{Bx=Hf8wdo^z=LD!WW6zL>oxc zp0hdQeG1nXxsO`xr{V~C3~7=25cjQ01z`%_O{B4qk|d-z(`DS16U)FqA=`GGq=rJ! zzb?CATyD?J74Qv-F!LY(fN2pnZ=xR-{Mq=IHVH!?f!Ve;mu4iF8M!u(J3eVgx(N)0 z4nEW$_Xx%CJ9ZZ&ASy~qTV7kdkp76a2B!%{3pMcjhb~5%*g~ZmdM}*2ZckIb$|!Bg z5{46M3hH!vLq<$oqgZJ=%z>CKMKo&qC=MBP8C&T^X|`OoT%ieU>r{D$!zjCfl`WJi z{}QUi==vzED5aQ(fxlbzcziuSH{?;X=~Q#$aAdj6g|`v&GC0JNGXJOy7o|_3{Q1e3 zp(|sT>8{MK7F>kO>6T1CoI)Tzn9G(kJ(g^3X?zp;KhXlOHEGyC92|HFyr zi`R_zi{JgDuHm8~JPrMWu3oHxRcxr~n=h$Rt-M);Iz>=CT|}LI7SR@IJ5IxJn7x&2r=R9iWk;w-Fh;!D5ZHv-Dram;ElT}Lc^14D+7?WY zosS8Q4;Nr=j%gxktZ7$#c6>K(s7>5WDosI6i*BO_LX&2P(0$aae^;3M%i~g4c9%I< zga@!0*f=H6drlPYC}PM5UbEAoD6>7=-_{M|r{C8L-wawcMR!}}jLYOOHZYt7TW)fB z5(-(AIFOl^aITmy*$SALT5~MscIWnNwY?pVvrV>W8n2mj9UAIqT`HL?890jgG@WXj zZqhd2viKMtl=nHcM>do@v@c;H!DkRDK_TI$QZf z@VoN+IJ>$HxkDUV4s+Kz{}y!@{oU8HB(=E%McmGE{Tm6$R+k8H#+U*vaL3v(_=qQF-l3#!na9{>||G5v%GAs zB8F>*{|zH>nQ$HJ4b_z_o@a6ATzjQ`H5k-=iV|IydcQUT#`*?3E?`4hrUHUt`n)J2)3gu85$}+*%?pDH< zW0xtI)e74S%Sj_QB$sNdfANET*fewNyrj7?U8Jv6mtzy`6n$kO6Il^&XMd+cPYaHPAO*-MU{N6MCSX$S)aq zMS7M$wk1;a!QPJfPjnG9Z^kQ$Pjrj?`(k4&Sa zB*h?UJ^wNiyIxRLfIIrnPxA$O=u*79`n2&NH>&+OcZz-&I@(?aExK@q6&IEB_0jfG zwv0dp&+;EjM;3iy4X~!wzE;X4rbm%y<%{uqv%Z2cr5mALpXW#Ro9`D7^b;8$LE5A; zlU7v#055s~@CWJh?gec3K`MO@00+hZ!1o&f2pwXKdL#jWpj}2nRNZsoNZ(g|N@L|^ z2>pE^Ji-P`QQ=m8QV~;=&aVag`9WH1LHp#q_|a?D120pj>1<`(u!#J3bV3EgZVD_& zJ+6~L5Bx>YHW%Hubvq)F@5Dd8CEX1V!Jhp_DOV^B`jX&oj!sg}6w>)4s-m7h} zRd1;zrVt_~;c^;E-T=64%(xfi&!_-L((AmuymcTOPT;jM$&(&4A)J7)-2!LqApkzV z;aFt`DB;GW_ket?sC7#A$$SL_pu$2O73k^dxeB2A?%f&g&X?N}26H@?-}Bw>FJS5j zI58HSvQok0f-Lrild=@$zFPjvix6K#F%2uxsWyavkKDly+zQ_;x!klroHP&Wf9s1N zZ+3rvyffO_-i}9DgMC&-rT&PA_8H~@g+kSwoX(8@(QOFIK8oxQ=EGwH*Z?;$Gg+WS zy6X3E-29U{aqvm2-0;cJ&~W7tcnwI1Nw+g>@V=ACQ>~O}mFcsBA6s5^dL{ev%LZN< zWsR>kQ7C}w$UPYQ&6_hy_O@Hosk6<#QG|-sz}z1d6}uy8#jnQTGw}f)s-hR4Z0Ae= zyzEnkPlJiO>n@T`~49dRNwHQOJLVWKQ?}&?W~ z9oM^pNHvS6seRD{{G+0x2K4IfeUbc=?QS$tsX6u?S`AlGJK!_P{cGFJUQaa_^T@ar zyn_RlmzS5cjC?g}T=yr8s-B{wqrd(Z{`%Yqz1Y#vZ*a^~`mhN#WcVbDfr0S~5Cnz* zG6dE8a+P+9U(B%ssn*uk^N~XLd$(g_W9zEz85u@xbHNJn zGG@A^nxyoFY>bSSB3I9p*ztgs5cGU2Yu3=)jusu4g5tRgoxSB$M^du)v)IoZtnBLu z9aYr{luS~8U;oS($?S81QJnh2xk@vm;WYl6N>p5i#~3HSsZav8g@own%G;uX^d`5R zA>#2xPx(~Y!h1K_i`Q{qb8=P9ju6L^!7DB<&UI;aww`D0H3mjntNn7*?#pF?@KZdt z=@oCZ>L)3Z>YAFGBtF@v+JZ?(enRr@nzXLtrOJ973}XuacYqE+a_^6Yj4i&q4}VHX za#BhEs{UdVa4e)WtMVRGzI|T%K6w@CX8l4??{an{IfcupXr=!X4M+gTuFB5N-c(Uh zVbQt$4EBi8GwyrG$lx=;0=;v_Spyvx0@yg zYRh9~C|EL(g!dYi>s05TcK^c74sJZ@R|w7it*xoa?X*~DcZ|nK(jil{y6-xoTL+m( z2aYIu5e>f51YSH>nGe>%tqHEl=kR_=$NY@fBPrIeC!2RJ(JoHXyeyQq3q1v03$Dj% zqsy)oIXO9-s_^K=>Dd{oL5-CPnSZBT0&8@o?+LTQhXs3E^ZNHB>AM%6>B9XNKD?tB zdnYGlm5av&1QFOA8t)Q!pHBZ`#U`@q(Ck9n(l@#rB4kid&#$f&kgz38=ASk2lr}?f ziHL3q{6+u&?ELZd9i&~em`hbs)q8=Z&k5~XuY48@;XRsv2I=jMXF7ZI49tk&+nu!oVk54z=TdCU1fio}-F;!&Z8qw$ZH zBl=s=m7K|`m6a74;%-d;hRPxm02*gDJ~#Kf)^apGpsub?6i`1qJ8MrD^7W!apd=zA zONC!EPZ@U4EiRTTEG|9--kWZ8|GMBL8D>Hq>+7?e0UetDbUw&l?U@cUnc5d+KTJb3 zehsjVUQEu@d6}D=1O6xgxxi>Mmmp@a8T>=(v`sL=Z=hr7LSR=h8%#O4Uc4w#sjC>c)SNvyA} z#mKwckH8Xse19=hs&~w4C?e7U4{RFxUQL%C&Xx;TgRZC(^uAVay%^zVlxI-mLFaec z=+**W>$LearjB?hA8hhQOzyjuGQ<{1*$j@1a03mIvSuj!35o@qaJTTM4Mw8aUGuPz z5Hw_ek+-%|w!GAID)%e(4y#6(WW2`tjuyc1tH3Oww{Q2sPGVU^aK;?|oxZZn)O6Z0 zRMqoCDsFEpnXodqFGht|ulj_aoysC3mC7eMJx|w=XUhy8WNmD0{xFW@S@#%DAND@W zBLIP&%4sn%*?D1Fn3+HL*aMSOQY>E~A+ed9P5}(?4WjI*h=6;}_}ec?02{sO2fD=S@G`3$sVWPW{1k0tBScOS;b#~%ht z05Zdt+qaMmrVw}lxj0Wk#mA5#77pO!=U)Vm6U^1`nG4mX5k%gQkqM;l-YHCIzY6RW zxiOF$?fs~NkJh6ud3+wD_7}~?&dzSWCzMc)kX8FMnBV=q`9JS!i{X2VtAlC$44?A> z1H&jP6q;o`SoXqSI7pOGRdsc7q3l}(WeJx_OhAZMDk84Bp|-Y`51@s66cIEhc+8aqJ9EM$m1{@q7qI(?8sYobvu>s4VmD50gHS+}lFfv_q zcyx3WE%p%$GvkLWX$nH(<1a(9f=S|y%}v@;c3wKV?;lCRKLfIWtKazm<0Gj<3-!Y? z%#SB_;PT4ne!pN90R>o_Ey(3dQzXV!yLKj!BL#lsNJaW_gZcb7SO!q?M_<5f>{VV- zaeBqG;`ui&J^fu1YPsl#~hI5ee`W$&xCH zvoE*#J}^|exVyT#PPkNh#;A*ehhy6wy1dCZJ8&pCn0-#NGOF9ojj&`c+a2H2PUH;u z_xS|{xaqsm;QZR|c2bf6iwH{L=k2DZCTevqQl?nX8xTA?!xXUJzA;#KKn9ivVj1h3 z7oy+LN(!|9UoPQJ-OSX;%XAoQ7BxS(w}k(R)dfmHZ!6k(U{-NQVF#3ylne$11-Ypk z=*+j()NsD>*D0T+G+UI4q#)nk-251d9T3Z?WSAMOkGaM{46<(pRDuygIVv;QmgmP06D+AMAdPeVFWni!>Oq_)qL2I z()l{IS?X*ti7y)!gAMlte70v;2aPn zITH%O?4OEx|1YXm!@apRAB>!L?Cj-5+1X;bDG+$&*COa0J6;XV?#DQr8yoVarKOfq zVMLX2$NYYep7a_f!thoLwYG^;!BW`Yi6KU|wzkOe>MIC}ycj|EbT;<(_74>%e^qH{ zY3rLBgALa=H>nWet0sw@!&-(gC&CbH<&3TjXR}uV&C;z9i+YZxVYaK zuL6_#UO9VFXCf$nMzxWbk)fs_BPiA^7UXl?8_To*T@@kQIIZU{hy9(ZF2k!bl{8rC zz=(cchKEE^T1Ljip`ZZ_A&UdorYw+|?%63RDUEnMS!W#Z7Z(@8rd)C; z5HQty@kn0xbXeZrrm3sTEb~U`S7APdC&HDa9>A$4)tQ`{%IZlY>+H-i-vYhJ>+hFF zFWvyTNOJ$miyROKpPxyp2mj47CRW1hY5rZEA>o!dwGLN7^fQrcu-vCKrY%aLG3J|*|B21dr)<={B&R@+)F!JcA9MFZiaJc_uVov;_L zI}osjvL_Z8+a~v0XrBf+3P^8>#QL?Hm+dR(A?}G6EoQLGM~S9YwAcaH_0g}-7td2u zQ-M78OJhxX=+tz|rJB2C`i;&Z{3OiFj$^KbyV95We#8;goIE^d-jCp5sb;+#TRl@#8X0+cPGyT@h`oIqbZ;zc zK_y3WxgG4=h|3`V(~+3QxIc=TAFd=bI$%#l6`G#$&Mp&-l+yCQF~+z!I4J&lMt*nO zCm^8e5^61Fphll`Z9|_U)K|u`#HG|m%h;%?*Db`v0;s8}J7c1vIvDBbex|EB8y-jn zP=(Qd@A$$|+n9^-g4+?*-7OJR|6z}x#d9$juNNiYeI$0k($W>W!WhfV#co+{dGA zzb+5JSx;BD3X4+cG4X$dLl5jU{<8k`^t6jWge@uH?xj%FaKpt*sTQ<;y3* zi5%OJH7~Dp`~5$X5Z2kXs2B=Z(Tgv=d?OEeLEjJ|iPZT%xF^X8ct>G7I}RqWZ6vVi z@hp$+Ytg+em-h|GCPV`Sn#uzC^jZq z01&acpp?d^VW_RGZC$I|tla>@c`pKrqO5ETGTJs<#F3ttaU6JDaOY>++AQSTOBvLq(@%#`#wS^i`A&dQ8gYca`QAS+cRB6+!@n{SBZI*NAAsm`BKQ-VlP5=ZI0yVz|%IXS6AD73P+ZruFw_WgUu-cV2$>p4t-#4Bg8m=4`Z;$cuo=3KI` zkIZrD!4?}^TJos{iyWy)=(Npr6|aejNi5TwT*%_9I$;_bnl~apYj$sMJwFHu8PeGQ zlFW&2{w)<>>_F#1t<3qq8S|{r;HPNy9kxHU;K4*oVWE}MSGxGNKXWiNQc#U-g%N*z zS8mYkjsY@!5uS8v8Y4=;kIe>>&>jxOBK7Bbd4@qe#H?6ZhipzoU*D&^swxiL;a)tW zR=(ggtz#!-2Tp85S z9!>oeE5j8)AkwN?{3M?<{y0M)bpQMp)Es2g5=d(%v$erLe)NJQVIMuYKNK~%oi=45 z8F)8*8qcEj4$Or)GX}{OTB@_f!CiteL@ByhvVUb!=QY2_hhyGrEngCS)t9Ec4BP5(xQ_RAMX}!k--e8 ztCcVKJl>wA2?`3bt?ax{8MbV@-3Vm^PLMPCoVWV@LVL13kPlt?{`b?-{rx=!5DqZI z5uu@>`Ar>O88vjV;DyWwPzek<=_|;{4D1qwZe#w6ANUdr*TRC*C8d5SfgS*)@3Mig z_qEx1Tb4_qZAzu|baL7n%))i{%OU;!{ltm|E~!1Hm2U3t?na=nDy*&5Xeu3p(m>SJ zw(2dVv5j2&Bl|YUQFi=-lXAcH%Cg$d}NpWz_L%|Q4Opt+II_BcyLi+!_tLX9ZkuS6dN2FGR z6wp&sQ&Z5^o`b~8P9HjfFtGq?M?;WPjxVFi$K7<`P~zj`bwMb@{`&Rhjh~;NO){EY zNmNf7HmtyN)U^ICYC}oTkmzExP94_l5-t9Obfl7{{e_o)t7H(_96#+SDFZdv5r9GxMeoUj@XL4Np9dtSa>)-D5k%-DpdnRxhsD{ z%I4*V#Ym?aIxkg{e|YsnxRrXBC~C()F(=^x#OdymvQPb@PW@~f;pX2jg18u=^V zDBeF2W-osOPDM!m3kk8$*Lz0@^KvAX-~F^PSL+;4^DVW|W!Dp&S1$=)Li7p;mvZ(i zI3k5UjI6`xpZmG5$7FAo#byVZ4Wp|hG{zEbW4`b*nb@t6<@phO+7`g4Ma5(fqsgfd zHKdyk%Xof4{bcZ<{O_1!!6BE_!z-yTlET@aROZ;JTG86B)735}*L|{)7wbV)^_D7x zy>*&HO>+Bfm;?e>wZp#Tubd0*y>yA*EEl<{4DslX6oN1|yobj4=AV4Zeun02!hQF| c2`}UTItre6w}<;Uccp5aE}1M+dJ&_?fvoJYgo??v~T0oH% zWP0ynYWIBZ;Bw*cYWetj_2g#b>~{0)cI*6Z_ws({;_mSJ;rj94)x-1s^UKTI`@h$> z*si(w?)mRM^NGC+2|e@4eT!)WOX&kk8NZja2A8vkR&s_`^8T#m4z1+=S;-$>EgV_P z8JI5~T`wA4D;wV^9a}G-*!(fRQ8Bq$J+)OewOKR0)$n(xerCJ=?{?GNZsY7u^W1Lh z!e0C0e%r!c_sU`K>QT?i;lTQF|Ju>u#_`D3>G0;s_|DnH&e_cV#q{3!-~Ef(gUiLE ztAp!@)4QjW+sCxui=|_$jkDX$^Sh(lr%T6ItEV?BC)ev|H=F0Tdsp|nmv`4Mu;bgu zyXTkNr+?u+bMe2%`z~SqYX{5su&qbf%--qQKiI+D^ZEVL>FopOIE;G&#y0^In1l&W z!o;Rv;?ppxX_(9mOnwHY_!p-9U(CXE7hnbpFr!77=_1T(8RobOb6tbEt-(CjVczSo zpiNlhHY{!jmbeQ`-h-v?!!q_^nFp|}16b|>EdLNzdJHQ&hE*KHYEEH|XRzioSnD~g z{Q}l`0qePh4P3#-Z(s}eu+<0H`Xg-T33m7l+q%5lI={Ynfjz&zJ-xi{Kf{`P2X0=Z{_zaROe}^Y^c6y&YpeLQ+6uK_~wWIvAfWQzw%a$>6Qu2h8f+41;efy z-litWrVQSO5bl~75$yi}_?hLO#o0}0Dcrwx%z^>P!wDSgW>wZ zfk-g5LXKQR(O?V_r|sHsL-C*Ql#qdD?TWfR$at|x0F zO+Tjc#X?cZ6n>V^6w4(u7>@p|nEjzrtdOhFTsdE*(`36o+FZ3*XEG2?rr1)w+yt4e zG#qQGS#5RN9nDp2tzG}+b$hZt)>^mO69kV&uGCh)JrISWjm zgVSzfyuImgsz5S^T)E@t@oc$zmC-~;^XX!}`Bh5}ZyxJYh z|Ju|2_VRRlx;fR;1A_sO=(mCp2q0U*D758UA?Q3uTcKbX`t2}0Ey#8_kyZJ21gXc- zb|hs4{Z1538e|7bUsk>o&D3&a=GrNAi_Xfr@U+AZ0b0k z%|VX+r`dgW`vV)aWS76k*18sKHi~)PE&WQVBd--lItHl3sD(Z!Pv|V1gTuQ;8Ci1> z4m+`|!)*SCW1RRTv&`cPN{5w-ALUC_$H{EUu+Mv(7DcwFGI1=o^i_p!HnxiLYPzM# ztpp^AY$=#{ko3^Tj-kQ{6jv~DQ9O-Zy4JhxS<5WXEqXN&R9u{1-LhQz6X7}uopYQf zRI!l3DwE$4^}*gkba!Zs!;8I>!BjYI7jy@#r>eJ{%)WQC^lnc&5d z^CE)8g0rQ1)QWzza}9rv=9j zDq{)z&^RiK>=^K@qA+SG_HtYz+um|Sqin>Yv3D;6(rI(SP+#&U;BeZbn(ojt@&jeA zzi`U0#I_x0faxK>JqkvfX))hTkIgy?t@`d zrz!HKtw@}%mcONc^c>uX@M*%ieM$@ZO?=Ksgl;*zRisSX!pqlfdhf>PoA^oNY3*TU zkC)eJmN7`_1pj>XauBXn$*B>UPRVtnivo%^*SmVocZp?~!;YNkdgh!h5-7+quXGUQ zawlS>@4q~4C*?oEtDSi}Df|QUb6ye0f$N{lLRWYF&l{BcaUSj)cX^2S*oUE~MG8gT z_)oJh#&bJ!*bDMt2U~Lz_(#b~GGV7r>>ZR7NXY!J(0WB3_*JA^S7traDVmR+CVfI? zZMbO;&T%hWsO#o^w229y*bO$(VWLU=Bw84OtZN^A=6JcuiYy4sDmTFEJYv-3?0O10 z-#feU%Gf_S(^!DhK@$(?W^sF-T1*tI5s!mR@qbJuLNcd)# zwEf(6y)?80g|BUBEmXAOezXXtlut#R<68Jhr3>+}I|Oro9AI+li}|u+MiBfv3MNG) zCjXbtB}m;=?-e46nxz&azJs?`ji*qBpc*0SXX*QXP|*wh%G`=)w(0gvuCY?C zG`l!1vpBX-jBa`vQ=)y50h>5Hzs~)YbNJA)$Sx7AWI;2qIg*o+Dh0Gj)RUwWTfgnL zUaGde-OZc|a}yoJS9Y?Rp`jB7jY5ZhM0+t7jDRyFl(O8y3BoK^`0888y4)g*g-n5( z-s}lHX-``_bA+l}-5)cGkwmBVT_V zvsZ-1WlDbhp!%EE;~UjE4XeoUQVic!gVg!fGaK48!A4Be#91M+xS|rRRm{(hHL9-8 zC_VXpRb`4~B0c?Ik`l1S@dVc5bIi}}To4E4)}wZN{n%&jZn#IGEK7)v7pS6*tW_wl z#$F?1l_ODDTd2r^Q71~Uy>LSVQA{O-kOhDNN$E$^1xujsn6EI#?PmhFYnsaVnU6Or z5yZX3h(^aY-*2=D@YzDpmx@r!et`E+J+*dEMFg*|K_fWl6;9z=B{riT9I0^}Q zi=(P7CZ7(7!7jW#Aj_k<$&Wm98s1puOW_K5HGzXd^O35GL9jVS-RLPNL;)o#;V zS`kB#hM$HBBY;?=)W#BqH?0O0N79)oGymSk%b#D4cn@XZ;VGZT2)+Ql+ej+#WQm<) z3@S$SP%VF8!@`CT$Q&Q<-gJcAUC%9r+sA90Oa;Mx#7cH{85 zzKRe~B-FJnmuBEE=++S7Bq%}o=U%p#Fr`{84T4YQ_yZ=&Z)DPER11%>O1^G0aMQ}GW? zNQEv=ph+HMGCqz^A>?<3fA~;jkWyB zaVz6U9HJxo;mVo#W>~DQSgy7t4pa^L%k=OY6Y&qyOYy1D*ai`@l7SB^YBP*i9r1O< z!%N#ySOTBSUV~1mSEKt~JvH7d`TLA&QP}f*4np4}i6RRHloxIK>(q2SjOsk~qZ*pE zDcsb5>mbf!w-4`C$=-RBNnHuVFC`|)Mq3g{RK5rv4L zV2HJmE%NGqLi~s#2CtzLuH_Z36BSNN`9T&1LtZXeaVgA|JzQ5O!b&b&|B0wSm6ZMp z9)l9GD8hnp3lXCLz?TqVVhZFb0LX128cib-&>{wuBX~Rksb|8Cy@C{p%n!qjP+@Ec zTtNUc_Hao`BPXIr4iC8FW+P~#!BDWVUN35foQ+vMRQDQ=dpdGd)<&%tASebT4~}Bh z2`<(#$|^U~n~A^xBR0!H09FWo+C(#-Na?0syZEAeh+;7WeMn?vF{<@W4vOkwh&mH z@c6G1z`8M;3xtSTtTRdenW`2P&#_er2y~QqtZ7NILjY!CY<%xH!pt~)SiOb#44gy| z9NTgXo)g4(+q6MiwzUCh^pHG7pDc2nq(Gd^c?{;}kKrYbN4$a;4MwQCO6ej3@b(h6 zxSO|2lkl=R7=-TkttJ;t-mj7rJiIY3-+Zs@JCA(5SClXcWdI?Md3H4 zrB8XK@;U>*ie(rRAW2Mv)t5uPM-Wuyaic0S{}|QM%IEA}-K=VUh;jQT4<5xr zD*OQmJ^{e0SqsINGW}Zua-a%IYyxP2-v+55nY96k7X&S<2gSmAQ36%+?pl!dy-^lH z_8D#2D9+h`L2jK3cCi3Z_LfTu5*#%ccY`>x1O#d&$aTp??oP|)AOJ|n6GB@uDHrW& zlS5P!5sV{HV|)FsZ5$C5Y|IXDL`~AdX!8P13Zq()BNISR#Mb|w^PIg4k>v_{cx=~3 zaD*tciZemeBSrUGC}-Xl{Z@oo&+PdNc<}rd(tYs8NFb`{;zJM!>7S)*3l6jg9w+ekmc>Ig7PE-A?d)u5r8ze_!|Cm3U?|ZBuH{Fwe`=WtJL!UVU?8C z$ZjB&ls}KB;$%_I=4dk-FokTbn}s9C53yE3(O3x$g`rw!$b$_<-l_M^2Z>K9tZm z04Ip8v#(r}DqXzmi`ix3?ZxfkP3(rMr+EyVGq4>y_vpM0gi4~j3fPm4}U|!@nA5*<8g6#;Qy)?6l z}F@IQEaP3wRQg=H+ZPNNAO&|14$La2%1W ztO3=-0>}ws<&kA|WF&6ECKW^r@YEmc<+K`^VZU5lDJu!mY8;%MiAp&?Sc(QbI>)r& zik>KLkK&3{`0|eVu-Ta!fN`i}Ebx4qd<&Y`t!$W9e=;1_njqDYi8p=l^)f(n_BN^8 zmyWZ$4#ZV-)f`X*7K%Ao{roe+;2nX-L}{L>(sBc>Cu%{UVE@nf>MeayOspXKW35=8 z&Bia-X4$o*Rc&_>9@>8h;#=Jntkp#u3Tn&@<=8#gwd#}f9dRBlO=7S^?7Wi3+T_yU zpn@HDX^qB6^~Be0L`b0eDwnTgO=wl_rvvWtf(#iRN(h;FSP4GuRW8-O7C-c{Zxoto z$66QuSxz$qkNol}jj{M?huvalS{_uk2+MXz@inbhsm!;Q{HEQ>3-@D&%eZpXR@^y( zkf43r*TMCwfup4hcc$yz9jS=1J%Z5|s?&4dg8X&WIL8aS5Nc5-)`M_{1c?FKZ+i+L zdhwW6ZfVG2w%7s_1*=zZ8G8M(UY!E$OhHQ6j9Z1rt+jsHT@(WSR_RSO*#)?8KzVr& zCerRt=omWf1nK&Hq(Zo>0^jcUY8W4c`l@imf;!oh90d&^FS^*-4Ca-xy;{5w__f~; zr*-TL#rUQcvSqb;u@1X-rWn%%hcBMz3zc|%^=rG1STQPIKUD=|%6@}RX@lNpNM8+%zJ0(Jg{d_08}ukHAv&-J#Pj&_Z8vEk{nQ##m8`P7UBod0 zo6ltb+48iw0Ab58xSKN#&uI;3MOvV~fZ2P8tNk1}4hZ_`#E-3T?PHkL)m^o5TlI=@ z^J7g5bN)oe7GSdj=Y35zs|PEE+M3YabWV+tuClPOxd*_Xi{v8G?iCcgX80+eNBg&8d4#uBV?`M~DB zBy+{2<|J`oGG_C(>{+5X3j*P(NTyjNXTXt9puY0VtNWC5VQ{vjw_xHBe&-OMGk`q; zRsS4G_uSa_2bjEKD%n5Tmu$k-saL%Q{Cw86vi4h0Xwk_zga)Hf?BhtA(gEU-L%nn@q7M!fSw6EFi^)W0)Dok2@dJ`Q_gwmXcYyvq49$9sf$O^SI z_s?Ej*xH-ZN}TB}A6ON6Gr8-R-*s5ZJYMa(05BK#Q$cGsv-zelIMd%WZ)G#JEA;Kn z$=Tl&-3g5C|0|iSmuSdqMs+S?euQf~mdIoNHD~)3e+!GHpX35bacP;wzgL(Utmtc6 zp0G)6u*zQ6LYKE-C5%@PV@mRCKBhbk9^01LaF;E9_qB6#+GGd#5x$aSj)T-3*Juwz z4)3tCLF~Pk4HKhE1uXo{bX|M*Q77n|k>gi=XM}Bp^w#+&U(EI~AtP}i40*Wzl?`aQf4&Nqsa)(j2RMXH z93e*`M>&CV0Dyf&Ku!=SDhN4P06B&itXI3rPgW_XmA$MQYU!#YpSbE_c(Ay-N)Q1D z-?u~Hu~>}Rw~$@tHjR=SWRW|K;x=6>sB}nba+r1gHxe*AeKkE$Cimx$z5MkbbCONv zYA?x2IL>&}U;c&VwI|h>7`2$EjkP5xb|+PI$k7R?&S|L8l*oJ^P~JNa-rZ3&1A1Tg z2RDPaRFCk~s~7j=&!ShSUm%EFnCE}LoG(lksji182%y-C+1Rq7@I|-4KU@%6UHj?h zt|3_s!whKA*3zsKK#>I(*T+Y1^9ZCW^Hdw9@0eFkv{wie`E;X~R*y)DY|)8VNQ4~& zAFHm{MNY%TK-PIl|Ij`)*k@XA?GS#rAs9j;?Tz`pR!ZY|L(iJKSa~N-h-^6>V+lsS zwz(qWffJ=LN6jx=rOoa6aBcI>U}rGjU4OGLHl)%!5!Cm{6am_?{m!a^ta_!^CWgDN*ieQHlW=VU)Q! zuuWqztV6zkG&*GH&hmjrRnWniD{ZIIrQN>(lS`w-|X9v=cN-qO2^Z9U!x$WeAcYBSpK`O zn89v2S)x08pq#_+ezCVad-ydKnJ9%uZ|;aZUY>W7nApyOyi}DKhXd6mr63|iMx2^P z^D}jHcBf3LMk*CRgalDMnM><9KM^Q{d1yazi2Wv&ih5Xz7jmYNMaF%RHX&o>ZYndmFP=*Yma>fQI*c=ijv8_doFJo{R# zm6Q<4A`u3IT4~-JdK-Ki0X}DW+HAL*k>@tb&$v{^)eJ*dL~dXS&}S)3Rwz;|GxiGk z9=!wv=kt_8@o)4?a1w_OoPxmV&)Y9Tj!7;h47dGB0^}sO*uw{0ZmvHSAyqJE>dS(5 zi;0i=b6^_&+n;x8N}Sx+2uUU{mqP!kHesB3Dn(9t4;^C)cZES-nd&PgHyRFAANnz} zvg^FNwh`K`S&66~LUXwZOwsMvfAc)o{AvF{H9J7a9l{LlPPkW~l0R|R|Mu&ipv+jB z;bFFO$gp`{yAYbX%r?Lo$1_1L0HM;XT_)RxiboEdc!LH5SeJYG-)+av+~Tl`ki(Lb!6aUMH}5%k28FiTQYvW-Ux z;9ZX?#s)XCa<$aSrynOw-~%c0g@2|>Or*}Fi8YtZWQP*}jiyRBSBIqvXz?=H7@qji zR@&^{G5gpzjy)VhqLbnsjuU&y9jsPtyZH}uNxr2Efl!+!~$uaP>Od-H-HxXTpMTdZf_no%#U*U^LeyUeEU-tn}*DtT|=_1+5Cg>se@`ijWac21*8;tCleQlMa{zeY0rI2{cH(g+^H)kY{<6n*;! z5$}RvNiqr*hpMVP+VWYLKc^Qgv}BaGrAFQg#Fn=_@H$!$;-ch0?6(@^}v!QY&z3 z$=R_`N?D#HwAipjnD+o_v(_J2r?dNgHi8eWsVsFo4KN*{7>D0m(ZHoQS%Cy9E!8+m zz>kxZr1VKnDWXukypY|N2qAF|AeP7!l*azklBMSPk0Gqqfo3kWm~(S_bf;5Ijgojj zaIZc}BjXc(OhPE$>)-CA0GEU_ zwRkA?_}*m5m*1dUJb46B^RIqZDWU)N)_Fq3aIX1pbB?P=1y+y8qsaee`p6;BPKqUR znowc;I9ZEd(c@64aM2Ldpv!RoQ-5^6^I2trlXugZ4P()u!SJV7ki_|&CBw~-GM)BC zynlB139no~JWpl6RT=Z{Hr+OsLD3LZJ@c3A zEV#&nq1CyInMg>OX6PpkvoI@(AZ{!iW&`_$)%$!-tseThVlLVs6Rh=!#Izy zcOQQwfX*OOD3*Zcl)2vhdPNp7vdtJhEjknnjFcpI-H*3$2Gl-FO^-)_pS!P#w9Ayo zK5WyciH{EDrwmIzh^KfT~eOwy2>A zt*>COcqt&0GY8j(VA|6c-3hl!7d5|eI70B?pfS0k>!reBq*n=zzfEKCK*Sa|a>o~k zgW+s`r?8{~vq>+l=v>w!H5n|LflvIP%s0|(E;PN_Pow?Tri@9KjbT7&no~*g&XH_( z7Nu*{wH*Cc(#P1n^10vFWe(>h9QnEoF{yHn`i&ugl;6XZ@d{N{z+={?4jQ-&bwvo} z20}y$T5Fj{vKe!dZlvtUN8*0PZz_9gxW7Kei9aNy8sd<3?jcgEI(th{CoyU0Z_q|J z$*qu)n;VBsv9JSG@tD8G$)&G(iSWYYYr)AFCD@Xk5fQ+Hw<~NLvF-iLQ)w>BWZ}fU zO@L!m(7o9<;bmV8mAAW6qrDvZel}HGu-Di=XK-SQFPACO2!aJi2s)nh!Edc+sWcTl z*4sy{518_$W)cX2?}ud{uY<;N-}3@u5GuEc`K4polJWO)=*6|0kK_`r@ghk&$O%DB z)>QBbY1XTh4ZXAL?<7C}2nlf^L(w6?v!WdFv&3#@Bo*L8V!=+$bnXDQqDyF&8^2I8 zfjrK}yVnNa!Ek=NVwvjAc~JpyuPmTdE++w}cg*J|m#jk-Y>e9w9U~A?C%9)Am@yX_ zcKU6(M((FmG6}*j`s^jaBx#r;&aco7`Z6LvGc@DW*+r>(YHxHG0g9x*-A4aH8-mmH zB_Cqy*JyR?P-$eo@8x|h0Wg8Oya<`+CBgnQBdzjQk~dQ`N13g&KLSn6D3Wp+!!Ib? z{lBz1;%S(KUH+<$L}Q8#1>>V2E{Z9r6duHZxc%_|B3M`o@W9q z8s;gL6HhV$=0^!2GKt)*gkBY+kOx86#$q_>5y)ai6;wo%dV%00Cd4iX9D-$w7;3z?1 zD~Hk)#Bm0NiT|vY91hc<0l`PX^#I`DhyQyHh!Uk2OL7uYARWq5=`R{akUC2MJ9I(E}TZb>u8`4B7QR?7auEsL!BQg zgkGp3AE5-u2LsW2M~b#$)|}+GgXJ@sMpN2C_Edkb^TDCqjtq_fB9$Z)-4s@*yVu&_ zY6Qtp%f*Y&6jG*x-R4L>Cx~sz#U_?0tONyN17a~zfIDJit50#*K|!gRlgNGUxQn#py0iZ_desT)_=oF-4 z7R#anBnJo69ZzgBLD{^5DEX8RV!x*I0Z3JXn67}YcOghB01`-tkT~E20Enm(^2($F zFRX%~tb(8!@^Oh5=NRyz{OgO7$|seej|FhJZFpBS(?Dq;r3&0Lx+*rADh{(MuCOYe zvMRozDuIJ4p}#6ooGNjy>W3Otk}g%!301OnRq}IHiZ@kC47HDBYE;Z>)WT{s%4(ks z)o2~m=={~_663 z)Or2Y`Qp_1bJYcE)CIfLg(lR6*VRSN)kWXb#V|C)$uuOGH6(>Kq?9$J4K-vOG-UlX zIeP)KJ#cG}P2`(A4(V)QQv7 z&DGSa(bVtKG?>sdT-P)@*ED|96e5N<;hz6Y1aD5JrJ4)GWLq$o*7|CxW#z7AldEN0 zqh&X!YFvN_q>SY%0Gi&T0Sgd~b+r13;2GpXdx?VdC>ML#7P(XwdQ=wmh=TsBbFzgx zzQx#=F7_QQ_`N}$$QA?d(L9wG^)eQHx)y`qp!Vwv0rv|%C^{Y(=z(!MFm3RXi?FuW zJ(~CaqKBqVuZp(yQg~Q6lB&*9-V&m3dxe|rFX<62C*g96Q>AEuZ@{=Xr)6alyW04LEj1zVHsth?X=WT6EexI+qMr%T;DJ`G71@7g+fBF z*P%CtNY+>3R%H4^sZm^FM(Iln2mTwDQ5zGvz?0M{?I7Lh((p5GR=e!6UcH`M%L*su7^p2-s}|A7F&@W%J6xWSV*9 zFmCfXcl}>@1e%o&Mu3rp6C!2{bkuP3VM0$E1?fC@yQXXPs(F)0#Oz6VXIa=Z+R5;y z29a*VXnB2|0RY8202wcBTOMsw)Iw3qqN+Y^QhAucic9qhx=`G@j2I7$naFoDi9(sX zqgXbetZC-#Wot1(rjN?z?}p|D^t)IdCaIJFahaWbj4fz^*<+mf`-DMdmwEK??vGSc zevgP-=IwRvz0c%3St@&P>lVh8fUiR!EF|dEgdR4}{)ar1&mQJdGN7}r9gIA~D?}(< zttF<{rnrc)Km-UC6C^eSMNcz-N;Ni?fohiRgGEgEF^!Jb_hXLs<&eyu&i9rP_hktz zvnVYc;*B-Zj2x{@obsR+5&Kp~3%V^P#@&{d7n`O5AVDKDxFL(|qgC$!GfX+lY@)RU zaJX9p)IoDOplmO0^97;kj+z55`c>^O15BFWz-3k*q+v#~e;gryxZ zMI0w%TBh>YrfnES8y$VFheT%_uZA0DKWqj~+HgkbyzU9$;$w9tn_L?GRjxt7rUm)p7wq_6ZP|6ck58LK4yT2`mztU`m zvP&W*!i zExQ#=TRU2iz1AW7^m!k_LC(|ptcYD|#`3n&*+Gk4B__zPd42!DZj|=mlpK0i2D;d= zxEumq5g0!ZT>QwhvKqQ95vhVH2cK;9Koo<%%XsHf$%p3^mOYKtYca2T~SjAt!B!psFUsGLN_R%gA$zE6LTyJ(=kIS6EEjjyLIPV%kQLSBG z7OqmuSEzZdz=t=Vdahu^r#n+V~}$^8#+&cToU$NX0#o4f}PTqw2ZIxx&An@d0LUPg5-^%4$V6Z*57ag z-7tx66BAt0DIHnqY^2rP`Q1=*^?uF?X8;pDxdHF4@^-$9IDO}n!lK1H_&dbKr zvn$AxCH+wa%Py|RGd1JMffZHoyLYVUgZQSG4VG8e)6+G}Q!K?z7_0Y+7h(o%KPJ~R z^w7dV*^-?V)74SSEz&hKA3{N{V;+99vgD0h7oMW+U4HTJP|Ifp{1U_Jn+jWX$JaOI z4$V2dEz4h4$bXi}_wj4>aeP~-#_~RpdCAs(s;Ag&A@tMw{&IK#=%~Xe%h&0Q{8xPV z!gl$z(&p2PrCoFBS<8Bt{l{-*+Al@yQS8yrnDRAS`(?<)*U0mw#?jsRE401Nx2f%4 z%;jqh%nue&^Y-Qy{(&O&$D%LS;*)WN)(mSrPkD$X*?+fngC>f-Ea3pFeWz7NS2NFm zqwfJqvilBiK33n|94Gt-zd|-Vt^WMDU0~JPp7OoO-#(_hIhpb-hJ>C423XU>);Gc{ zkWql7L$QTas2}>nPzgB<=%Yt7;7Dx|U0cqmhGIYP8rd(5r&qz@AiJ>LR(>2!nKmlT zl$cIs{Z48<=@wB<5DA9>%CafGIqXkk^=G$}xrNAN^SNK-BpuMG6gZ5dlSQQ4Z9TuYXql0W%;Q;N>aXM~ z?e3%FHkNc<%RF4)B1+D04$8If0b70enBNWkh!+Q{)9L)qb9fy_(<$UGlpGYg7< ztMk?k*GV?`f}lBUBBMai0WwDDq)Jq-QL`V>PE@1#({>mpRU3N5L03OzB#YkB7%O(m zfuZ^5#zl0F-+M%BvA^-)b7MYuh%BL}YT?Ki2iyAC99Wu0ms`o&2ecRaVeGV*B)GkYA7pewmkv@bysc^6 z!lPSDST$+0)DpWX)v5CcRNJjJVhE^d^WK@8Dhe39QEkhcxChWH0=-utm6cSu714Gt@bE`B>NY1LaRk=+~n^rza?USd8_T7~8MS0lG6Z_F=A8 zHVpS>RRuIe4f|p${?}Ar-Xre;bgCv1MHzSNaLbnrwFrm8{MN#4VdHq1) zhh@7S;m37fnDEnfjHt--es-Y9zvHSNk(cvdFp<~mF;UUC`&DBR&d1Xp0a4i73k6fv zJ6$gvPJIv(LINCac`qUdn}2JR4D$#2K9E{{$Yhl?7l#*`qHcXC`70#~JZ}}U3^gS{ G@P7cAYh2*~ diff --git a/img/rabr_login.jpg b/img/rabr_login.jpg deleted file mode 100644 index 2ae53cb884d4c1652461f7bcae99ed7257626ad3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 34978 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 U!W1kg&j0`b07*qoM6N<$f-O4M3;+NC diff --git a/inc/followingWall.php b/inc/followingWall.php deleted file mode 100644 index 67b8730..0000000 --- a/inc/followingWall.php +++ /dev/null @@ -1,18 +0,0 @@ -friends()->users; - $html = '

    '; - foreach($friends as $friend){ - $html .= ' - - '.$friend->name.' - - '; - } - echo $html.'
    '; -?> diff --git a/inc/footer.php b/inc/footer.php index 7958d65..ccafcd8 100644 --- a/inc/footer.php +++ b/inc/footer.php @@ -1,19 +1,19 @@ - - - -
    - - - - - - + + + +
    + + + + + + \ No newline at end of file diff --git a/inc/header.php b/inc/header.php index 1be5161..636809e 100644 --- a/inc/header.php +++ b/inc/header.php @@ -1,72 +1,71 @@ - - - - - - - - - - -Embr / <?php echo $title ?> - - - - - - - - - -
    - -
    -
    -
    -
    - - - + + + + + + + + + + +Embr / <?php echo $title ?> + + + + + + + + + +
    + +
    +
    +
    +
    +
    + +
    \ No newline at end of file diff --git a/inc/onlineUsers.php b/inc/onlineUsers.php deleted file mode 100644 index b6dfbd3..0000000 --- a/inc/onlineUsers.php +++ /dev/null @@ -1,25 +0,0 @@ -time())){ -array_push($temp,$entry[0].",".$entry[1]."\n"); -} -} -array_push($temp,getenv('REMOTE_ADDR').",".(time()+($timeout))."\n"); -$users_online=count($temp); -$entries=implode("",$temp); -$fp=fopen($online_log,"w"); -flock($fp,LOCK_EX); -fputs($fp,$entries); -flock($fp,LOCK_UN); -fclose($fp); -if($users_online==1){ -echo "Just you online!"; -}else{ -echo $users_online." Users Online"; -} -?> \ No newline at end of file diff --git a/inc/sidebar.php b/inc/sidebar.php index 7f8b2c9..ecc90e2 100644 --- a/inc/sidebar.php +++ b/inc/sidebar.php @@ -11,11 +11,12 @@ showUser(); + $expanded_url = $user->entities->url->urls[0]->expanded_url ? $user->entities->url->urls[0]->expanded_url : $user->url; ?> diff --git a/inc/sidepost.php b/inc/sidepost.php index 6604a96..e706631 100644 --- a/inc/sidepost.php +++ b/inc/sidepost.php @@ -26,7 +26,6 @@
    - +
    +
    +

    Version: 0.6.2 (f-99)

    +
    @@ -46,4 +48,4 @@
    - \ No newline at end of file + diff --git a/inc/symbols.inc b/inc/symbols.inc index 5776966..2211138 100644 --- a/inc/symbols.inc +++ b/inc/symbols.inc @@ -1,490 +1,490 @@ -╮(╯_╰)╭ -┗|`O′|┛ -o(°▽、°o)....+(( ̄﹏ ̄m ) -槑槑槑槑呆槑槑槑槑槑槑槑槑…… -~o(▽` o) =3 =3 =3 -<铃铃铃~ヾ( ̄  ̄*)==3=3=3 -ヽ( ̄︿ ̄ )—C<(/;◇;)/ -ヾ( ┬o┬)┌θθθθ(;;_ _).o○ -o((>ω< ))o -o(≧口≦)o -╮( ̄▽ ̄")╭ -m(_ _)m -ヾ( ̄▽ ̄)Bye~Bye~ -▄︻┻┳═一…… ☆(>○<) -o(*≧▽≦)ツ -ヾ(≧▽≦*)o -o(≧口≦)o -(o゜▽゜)o☆ -( ̄ ‘i  ̄;) -( ̄ ii  ̄;) ( ̄" ̄;) -(⊙x⊙;) -(*^ ^*)(^ *) -(◎_x) -o( ̄┰ ̄*)ゞ -°.°·(((p(≧□≦)q)))·°.°。 -X﹏X 惨了! -q(≧▽≦q) -( ̄ c ̄)y▂ξ。。。 -<(  ̄^ ̄)(θ(θ☆( >_< -( ̄△ ̄;) -( ̄旦 ̄;) -━┳━ ━┳━ -Σ(`д′*ノ)ノ -Σ(っ °Д °;)っ -~( ̄▽ ̄~)(~ ̄▽ ̄)~ -<( ̄ˇ ̄)/ -┬┴┤_·) -("▔□▔) -(⊙﹏⊙) --________-'' -o(` · ~ · ′。)o -______λ......_____ -λ…λλ…λ…λλλ… -○| ̄|_ =3 -(╯′□`)╯ ┫:·'∵:.┻┻:·'.:┣∵·:. ┳┳☆ -(╯‵□′)╯""┻━┻☆))>○<) -┻━┻︵╰(‵□′)╯︵┻━┻ -︿( ̄︶ ̄)︿ -ヾ(≧奋≦)〃 -French (* ̄( ̄ *) Kiss! -( ̄ˇ ̄)v -fufu~ ^u^ -( σ'ω')σ -o(>O<;; )σ -┳G┻┳F┳┻W┫ -(┘ ̄︶ ̄)┘└( ̄︶ ̄└) -<( ̄︶ ̄)↗ -<( ̄OO, ̄)/ -Good! o( ̄▽ ̄)d -______λ......_____ -( ̄┰ ̄*) -(#°Д°) -O口O! -Σ(⊙▽⊙"a... -o(*≧▽≦)ツ -( ̄_ ̄|||) -( ̄▽ ̄") -(寒 ̄ii ̄)彡…彡…彡 -o(* ̄▽ ̄*)o -【】\(·ω·`)o -o(* ̄▽ ̄*)ゞ -( -з) -(;′⌒`) -(ε- ) -o( ̄ヘ ̄o#) -( ̄▽ ̄") -o(* ̄▽ ̄*)o -^-^ -^O^ -Hi~ o(* ̄▽ ̄*)ブ -( ·_·)ノ_·)ノ_·)ノ_·)ノ_·)ノ -○( ^皿^)っHiahiahia.... -( ̄y▽ ̄)╭ Ohohoho..... -hoho ^O^ -(_ _)。゜zzZ -Σ( ° △ °|||)︴ -Σ(`д′*ノ)ノ -Σ(っ °Д °;)っ -┗|*`0′*|┛ -( -'`-; ) -o(′益`)o -(  ̄ー ̄)人(^▽^ ) -n(*≧▽≦*)n -(°°)~ (°°)~ (°°)~ (°°)~ - (* ̄( ̄ *) -ˋ( ° ▽、° ) 口水ing... - ...φ(0 ̄*)啦啦啦_φ(* ̄0 ̄)> -m( =∩王∩= )m -(┳_┳)... -/(ㄒoㄒ)/~~ -卐~%?…,# *'☆&℃$︿★? -o(* ̄︶ ̄*)o -o( ̄ˇ ̄)o -o( =·ω·= )m -o(=·ェ·=)m -MIN■■■■■□□MAX -(/ ̄ˇ ̄)/ -(。人。) -mmm...f('︶︿︶)o -mmm..... -Capricorn -mua! (*╯3╰) ---\(˙<>˙)/-- -~( ̄▽ ̄)~* -(#‵′) -(o#゜ 曲゜)o -MIN■■■■■□□MAX(╯‵□′)╯︵┻━┻ -ε=怒ε=怒ε=怒ε=怒ε=( o`ω′)ノ -(⊙o⊙)? -Oh~ no!!!! -Oh yeah!\(^&^)/ -OK -λ…λλ…λ…入λλ… -ε = = (づ′▽`)づ -ε=ε=ε=(~ ̄▽ ̄)~ -ヾ(*′▽`*)ノ彡☆ノヽノヽノヽ -ヾ(′▽`* )ノ~ -( ̄ε(# ̄)☆╰╮o( ̄▽ ̄///) -Pia!(o ‵-′)ノ”(ノ﹏<。) -(~ ̄▽ ̄)~ -(~o ̄3 ̄)~ -.....((/- -)/ -▄︻┻┳═一…… -(ˉ▽ ̄~) 切~~ -( ^ ^) _U~~ -(╬ ̄皿 ̄)=○#( ̄#)3 ̄) -(Д゜(○=(゜ 皿゜)=○)゜Д゜) -<(-︿-)> -shy~ o(*////▽////*)q -( ′ 3`) sigh~ -三三三三三三三三三4(o|o ) - (o ‵-′)ノ”(ノ_<。) -<(  ̄^ ̄)(θ(θ☆( >_< -╮( ╯ 3 ╰ )╭ -╮( ̄▽ ̄")╭ -╮(╯-╰)╭ -ㄟ( ▔, ▔ )ㄏ -ε=ε=┏( >_<)┛ -ε=ε=ε=┏(゜ロ゜;)┛ -ε=ε=ε=ε=ヽ(* ̄o ̄)ノ -o(≧∩≦)o -o(TヘTo) -☆⌒(*^-゜)v THX!! -|壁|_☆) -┬┴┤_·) -n(→_←)┛ -o( >﹏<。)┛ -0^)吞! -( ̄┰ ̄*) -(PД`q。)·。'゜ -<( ̄▽ ̄)/ -∥wc∥ o(- -o) =з =з =з -(﹁"﹁) -╥﹏╥... -σ(⌒ー⌒) -@/" -wow~⊙o⊙ -ㄟ( ▔, ▔ )ㄏ -( ﹁ ﹁ ) ~→ -( ̄. ̄)+ -(﹁"﹁) -...ψ(。。 ) -o(* ̄▽ ̄*)o -(* ̄(エ) ̄) -(+(工)+╬) -o(*////▽////*)q -p(# ̄▽ ̄#)o -卐~%?…,# *'☆&℃$︿★?…… -╳╳○○ -(* ̄︶ ̄)y -(* ̄▽ ̄)y -^_^)y -━┳━ ━┳━ -ag108lau -Yes,sir! <( ̄O ̄)/ -╭(′▽`)╭(′▽`)╯ -ヽ( ̄ω ̄( ̄ω ̄〃)ゝ -(^U^)ノ~YO ->°)))>彡 -(((φ(◎ロ◎;)φ))) -Σ[ ◎ ]} -<( ̄ ﹌  ̄)@m -^(* ̄(oo) ̄)^ -W( ̄_ ̄)W -┳G┻F┳W┫☆(ノ﹏<。) ---==≡≡〈〈《( / ̄皿 ̄)=O));>o<)/ -ZZzz…(。-ω-)..ooO((【·:*:~夢~:*:·】)) -( ̄y▽, ̄)╭ - o(* ̄▽ ̄*)ブ -(o|o) -ヾ(≧O≦)〃 -(o|o) -(-人-) -(^人^) -ヾ(′▽`*)ゝ -ヾ(′▽`*)ゝ -━((*′ ▽`)爻(′▽`*))━!!! -━((*′д`)爻(′д`*))━!!!! -\( ̄︶ ̄)/ -\( ̄︶ ̄*\)) -(′゜c_,゜` ) -╭∩╮(︶︿︶)╭∩╮ -(  ̄  ̄)σ…( _ _)ノ| -(  ̄  ̄)σ…( _ _)ノ| -ノ ̄ー ̄)ノ ⌒ >┼○"☆|| -o(′益`)o -§(* ̄▽ ̄*)§ -<( ̄3 ̄)> -______λ......___丬 -(* ̄︿ ̄) -(PД`q。)·。'゜ -(*  ̄3)(ε ̄ *) -( *^-^)ρ(*╯^╰) -(@_@;)? -(* ̄︿ ̄) -ㄟ( ▔, ▔ )ㄏ -( ̄_, ̄ ) -(ノへ ̄、) -(o′┏▽┓`o) -( ·ェ·)(·ェ· ) -(*≧︶≦))( ̄▽ ̄* )ゞ -( * ̄▽ ̄)((≧︶≦*) -<)。(> -ε~( ~( ~ ( 卍 )\( ̄▽ ̄ \) -(# ̄□ ̄)o―∈‥oo━━━━━━━☆ -●┻┓⌒ Σ┌┘車└┐=3 =3 =3 -.....(((((ヾ( o=^·ェ·)o ┏━┓ -( `0‘)ノ~~~~~~~~~ν -(。>︿<)_θ -___*\(  ̄皿 ̄)/#____ -( ̄ε(# ̄)☆╰╮( ̄▽ ̄///) -(ノへ ̄、) -(ノへ ̄、) -Pia!(o ‵-′)ノ” -ε=ε┣G┻F┳ε=ヽ(* ̄▽ ̄)ノ┻W┫ -→)╥﹏╥) -( * ̄▽ ̄)o ─═≡※:☆▆▅▄▃▂_ -(_ _)( - . - )(~O~) ……( - . - ) -(′台` ) - ━┳━ ━┳━ -━━( ̄ー ̄*|||━━ -<(ˉ^ˉ)> -(-_-メ) -...(* ̄0 ̄)ノ - (#`-_ゝ-) -(。﹏。) -(。_。) -( ̄ー ̄(_ _( ̄ー ̄(_ _ -(┬_┬)↘ -d=====( ̄▽ ̄*)b -!!!(  ̄O ̄)ノノ……∞∞OOO))) -!!!(  ̄O ̄)ノノ……∞∞OOO))) -o((⊙﹏⊙))o. -o( ̄ε ̄*) -(○` 3′○) - <(_ _)> -(ˉ▽ˉ;) -σ(-_-メ) -(╯‵□′)╯︵┻━┻ -(((\( ̄一 ̄)/))) - ||Φ|(|T|Д|T|)|Φ|| - (* ̄3 ̄)╭ ->( ̄▽ ̄ =  ̄︿ ̄)< - (/-_-)/ξ ξ ξ ξ ξ ξ (+_+ /)/~~~ -乀ˉεˉ乀... -(-@y@) -(-@y@) -...:.;::..;::: .:.;::….;: ̄)…:.;:□ ̄)( ̄□ ̄*) -.<{=.... -( ̄▽ ̄)~■□~( ̄▽ ̄) -~( ̄▽ ̄)~* -o(*≧▽≦*)m -(* ̄▽)u┌┐ d(▽ ̄*) -(′д`σ)σ -╰( ̄▽ ̄)╭ -U·ェ·*U -U·ェ·U -””\\( ̄ー ̄) ( ̄ー ̄)//”” -└( ̄  ̄└)(┘ ̄  ̄)┘ -o(*^@^*)o -……~(~o ̄▽ ̄)~o 。。。……o~(_△_o~) ~。。。 -(ToT)/~~~ -o(*^▽^*)o -╮╯-╰╭" -( >﹏<) -(╯▽╰ ) -(o゜▽゜)o☆ -( ′Д`)彡 -( ̄。。 ̄) - ┌(_Д_┌ )┐ - ┌(_Д_┌ )┐ -ε=( ̄。 ̄;A -(/0 ̄)o - ~( TロT)σ -((( ̄( ̄( ̄( ̄ー ̄) ̄) ̄) ̄))) -(@^^)/~~~ -(* ̄皿 ̄)=Σ口>=Σ口>=Σ口> -ヾ( ̄ー ̄)X(^▽^)ゞ -(〃 ̄︶ ̄)人( ̄︶ ̄〃) -o^^oo^^o - (o^~^)尸" -||┣(—_\) -<( ̄ ﹌  ̄)@m - (@゜▽゜) - (@`д′) -o(*^▽^*)┛ -┗( T﹏T )┛ -( ̄~ ̄) - ...φ(0 ̄*)啦啦啦_φ(* ̄0 ̄)′ -(°ー°〃) -(@^0^) -( ‵▽′)ノ'卍卍卍卍卍卍 Σ(゜д゜;) - ( `д′) ->< - ( -'`-; ) -┗(`o′)┓哼┏(`○′)┛哼┏(`o′)┓哈┗(`O′)┛兮!! -(o-ωq)).oO -...φ(0 ̄*)_φ(* ̄0 ̄)> -(~o ̄▽ ̄)~o ~。。。 -(o ;′Д`)ノ゛ -(  ̄ー ̄) -(*/ω\*) -(*/ω\*) -(*ˉ﹃ˉ)_☆☆ -(* ̄^ ̄(* ̄^ ̄(* ̄^ ̄) -☆{{{Д}}} ☆!! -(· ·)nnn -╮( ̄▽ ̄")╭ -||o(*°ω°*)o|Ю -ο(=·ω<=)ρ⌒☆ -(一-一) -o( =∩ω∩= )m ->▽< -<(* ̄▽ ̄*)/ -( ̄_, ̄ ) -ε(┬┬﹏┬┬)3 -(~ ̄▽ ̄)ノ -╰( ̄ω ̄o) -_| ̄|○ → _|\○_ → _/\○_ → ____○_ -┏┛墓┗┓...(((m -__-)m -(/// ̄皿 ̄)○~ -(﹁ ﹁ )σ -ヾ(≧へ≦)〃 -o( ̄︶ ̄)n -o(* ̄▽ ̄*)o -Σ(  ̄д ̄;) -ヾ(^▽^*))) - ~( TロT)σ - ~( TロT)σ -゜゜┌┴o゜゜゜゜° - ( -人-)···-~=~≡~≡ ((+o+))) -((( (-h-) ))) -……(((\( ̄一 ̄)/))) -<( ‵□′)>───Cε(┬﹏┬)3 -ε=怒ε=怒ε=怒ε=怒ε=( o`ω′)/ -_( ̄0 ̄)_ -((o_ _)'彡☆ -━((*′д`)爻(′д`*))━!!!! -└( ̄  ̄└)(┘ ̄  ̄)┘ -””\\( ̄ー ̄) ( ̄ー ̄)//”” -o(*≧▽≦)ツ┏━┓ -︿( ̄︶ ̄)︿ -( ^o)ρ┳┻┳°σ(o^ ) - (☆▽☆) -(o ̄Д ̄)<起床! ※=○☆(__*)Zzz -( *′д)/o(_ _)ozzZZ… -( ﹁ ﹁ ) ~~~ -o(* ̄3 ̄)o -(*  ̄)( ̄▽ ̄*)ゞ -(づ ̄ 3 ̄)づ... -∥WC||_·)╯ - ( ̄人 ̄)( ̄人:.;:…( ̄...:.;::..;::: .:;.…::;.:..:;.:... -( ̄▽ ̄)o∠※PAN!=.:*:'☆.:*:'★':* -*★,°*:.☆\( ̄▽ ̄)/$:*.°★* 。 -▄︻┻┳═一∵∴∷∶∵ (∵_,∵)>>>> -( ▼▼)/鹵〈 巛巛巛 ( ◎_x)/ -(* ̄▽ ̄)( ̄▽:;.…::;.:.:::;..::;.:... -(;′⌒`) -z(-_-z)).....((s-_-)s -(  ̄ー ̄)——)-=======>-->> -\( ̄0 ̄)/ -(。_。) -━━∑( ̄□ ̄*|||━━化 -(ˉ▽ˉ;)... -┫♀旦 ̄)σ(呃……) -(σ`д′)σ -(σ`д′)σ -σ~ (`′メ  -(~ ̄▽ ̄)→))* ̄▽ ̄*)o -o( ̄▽ ̄*)ゞ)) ̄▽ ̄*)o -(′д` )…彡…彡 -(:D)┼─┤ -……o((≧▽≦o) -ヽ(*。>Д<)o゜ -\("▔□▔)/\("▔□▔)/ -( *︾▽︾) -(ノω<。)ノ))☆.。 -ヾ(   )ノ゛ヾ( °д)ノ゛ヾ(°д°)ノ゛ヾ(д° )ノ゛ヾ(  )ノ゛ - ヾ(*′▽`*)彡 -<(* ̄ー ̄)ゞ来呀~ -<(* ̄ー ̄)ゞ来啊~ -(/ω\*)……… (/ω·\*) -(/ω·\*) -Σ[ ◎ ]}ー′) -凸艹皿艹 -凸゜皿゜メ -( >ρ < ”) -(o ̄ω ̄)○))o(__*)Zzz -ヽ(゜▽゜ )-C<(/;◇;)/~ -o((≧▽≦o) 太好笑了!! -Σ(⊙▽⊙"a... - (* ̄rǒ ̄) -*★,°*:.☆\( ̄▽ ̄)/$:*.°★* 。 -(← ← ) -( → →) -…〒_〒…‵o′-一┳═┻︻▄ -(#`O′) -( *^-^)ρ(^0^* ) -(* ̄;( ̄ *) -σ(· ·?) -(/▽\) -(。﹏。*) -||ヽ(* ̄▽ ̄*)ノミ|Ю -(~ ̄▽ ̄)~ -o(-"-;) -|(·_·) |·_·) |_·) |·) | ) -o( ̄ヘ ̄o* ) -o( ̄ヘ ̄o#) -( >﹏<。)~ -↑↑↓↓←→←→BA...┗( -o-)┛ -( ‵Д′)=○))~~~~~~Ю))>o<)/ -ヽ(ヽ `д′)ヽ`д′)ヽ`д′)┌┛┌┛┌┛★)`з゜)y -<( ‵□′)───C<─___-)|| -(o  ̄3)==@))゜ロ゜((@==(′ε′ )o  -(o  ̄3)==@))゜ロ゜((@==(′ε′ )o -((≧(≧▽(≧▽≦(≧▽≦)≧▽≦)▽≦)≦))) - ( _ _)ノ|壁 -╮(╯-╰)╭ -<(  ̄︿ ̄)︵θ︵θ︵θ︵θ︵☆(>口<-) -<(  ̄︿ ̄)︵θ︵θ︵θ︵θ︵☆(>口<-) -(╯▽╰ ) -(* ̄□ ̄)( ̄□:;.…::;.:.:::;..::;.:... -<( ̄︶ ̄)↗ -( ‵▽′)ψ -☆⌒(*^-゜)v -(゜゜ )(。。)(゜゜ )(。。) -( ╯▽╰) -不>( ̄ε ̄ =  ̄3 ̄)< -( *⊙~⊙) -( *⊙~⊙) -(* ̄□ ̄)( ̄□:;.…::;.:.:::;..::;.:... -( ̄ム ̄) -(9 ̄^ ̄)9 -(o゜▽゜)o☆ -||o(*°▽°*)o|Ю - -o(一︿一+)o -╔囧╗╔囧╝╚囧╝╚囧╗ -@o@" -X﹏X - o(* ̄▽ ̄*)ブ -(~ ̄(OO) ̄)ブ -(╯‵□′)╯···*~● -ˋ( ° ▽、° ) (o( ̄▽ ̄/// -( ̄︶ ̄)↗ --______-" - o(〃'▽'〃)o -( `o′){ ···-=≡)) -( `o′){ ···-=≡)) -(o>ε(o>u(≧∩≦) -━━(o_ _)o━━(o―_―)o━━(9 ̄ー ̄)9 -( ゜,_ゝ゜) -(-"-) -o((>ω< ))o -o(>@<)o -( · ·)L☆ .....○ 冂 -ヨロ (*~▽~)ノ ヨロ ヽ(~▽~*)ヨロ (*~▽~)―〇 ☆ バシ ))>口<) -

    © 2010 @ag108lau
    Thanks @OnlyTiny
    -Last Update: 2010-11-13 +╮(╯_╰)╭ +┗|`O′|┛ +o(°▽、°o)....+(( ̄﹏ ̄m ) +槑槑槑槑呆槑槑槑槑槑槑槑槑…… +~o(▽` o) =3 =3 =3 +<铃铃铃~ヾ( ̄  ̄*)==3=3=3 +ヽ( ̄︿ ̄ )—C<(/;◇;)/ +ヾ( ┬o┬)┌θθθθ(;;_ _).o○ +o((>ω< ))o +o(≧口≦)o +╮( ̄▽ ̄")╭ +m(_ _)m +ヾ( ̄▽ ̄)Bye~Bye~ +▄︻┻┳═一…… ☆(>○<) +o(*≧▽≦)ツ +ヾ(≧▽≦*)o +o(≧口≦)o +(o゜▽゜)o☆ +( ̄ ‘i  ̄;) +( ̄ ii  ̄;) ( ̄" ̄;) +(⊙x⊙;) +(*^ ^*)(^ *) +(◎_x) +o( ̄┰ ̄*)ゞ +°.°·(((p(≧□≦)q)))·°.°。 +X﹏X 惨了! +q(≧▽≦q) +( ̄ c ̄)y▂ξ。。。 +<(  ̄^ ̄)(θ(θ☆( >_< +( ̄△ ̄;) +( ̄旦 ̄;) +━┳━ ━┳━ +Σ(`д′*ノ)ノ +Σ(っ °Д °;)っ +~( ̄▽ ̄~)(~ ̄▽ ̄)~ +<( ̄ˇ ̄)/ +┬┴┤_·) +("▔□▔) +(⊙﹏⊙) +-________-'' +o(` · ~ · ′。)o +______λ......_____ +λ…λλ…λ…λλλ… +○| ̄|_ =3 +(╯′□`)╯ ┫:·'∵:.┻┻:·'.:┣∵·:. ┳┳☆ +(╯‵□′)╯""┻━┻☆))>○<) +┻━┻︵╰(‵□′)╯︵┻━┻ +︿( ̄︶ ̄)︿ +ヾ(≧奋≦)〃 +French (* ̄( ̄ *) Kiss! +( ̄ˇ ̄)v +fufu~ ^u^ +( σ'ω')σ +o(>O<;; )σ +┳G┻┳F┳┻W┫ +(┘ ̄︶ ̄)┘└( ̄︶ ̄└) +<( ̄︶ ̄)↗ +<( ̄OO, ̄)/ +Good! o( ̄▽ ̄)d +______λ......_____ +( ̄┰ ̄*) +(#°Д°) +O口O! +Σ(⊙▽⊙"a... +o(*≧▽≦)ツ +( ̄_ ̄|||) +( ̄▽ ̄") +(寒 ̄ii ̄)彡…彡…彡 +o(* ̄▽ ̄*)o +【】\(·ω·`)o +o(* ̄▽ ̄*)ゞ +( -з) +(;′⌒`) +(ε- ) +o( ̄ヘ ̄o#) +( ̄▽ ̄") +o(* ̄▽ ̄*)o +^-^ +^O^ +Hi~ o(* ̄▽ ̄*)ブ +( ·_·)ノ_·)ノ_·)ノ_·)ノ_·)ノ +○( ^皿^)っHiahiahia.... +( ̄y▽ ̄)╭ Ohohoho..... +hoho ^O^ +(_ _)。゜zzZ +Σ( ° △ °|||)︴ +Σ(`д′*ノ)ノ +Σ(っ °Д °;)っ +┗|*`0′*|┛ +( -'`-; ) +o(′益`)o +(  ̄ー ̄)人(^▽^ ) +n(*≧▽≦*)n +(°°)~ (°°)~ (°°)~ (°°)~ + (* ̄( ̄ *) +ˋ( ° ▽、° ) 口水ing... + ...φ(0 ̄*)啦啦啦_φ(* ̄0 ̄)> +m( =∩王∩= )m +(┳_┳)... +/(ㄒoㄒ)/~~ +卐~%?…,# *'☆&℃$︿★? +o(* ̄︶ ̄*)o +o( ̄ˇ ̄)o +o( =·ω·= )m +o(=·ェ·=)m +MIN■■■■■□□MAX +(/ ̄ˇ ̄)/ +(。人。) +mmm...f('︶︿︶)o +mmm..... +Capricorn +mua! (*╯3╰) +--\(˙<>˙)/-- +~( ̄▽ ̄)~* +(#‵′) +(o#゜ 曲゜)o +MIN■■■■■□□MAX(╯‵□′)╯︵┻━┻ +ε=怒ε=怒ε=怒ε=怒ε=( o`ω′)ノ +(⊙o⊙)? +Oh~ no!!!! +Oh yeah!\(^&^)/ +OK +λ…λλ…λ…入λλ… +ε = = (づ′▽`)づ +ε=ε=ε=(~ ̄▽ ̄)~ +ヾ(*′▽`*)ノ彡☆ノヽノヽノヽ +ヾ(′▽`* )ノ~ +( ̄ε(# ̄)☆╰╮o( ̄▽ ̄///) +Pia!(o ‵-′)ノ”(ノ﹏<。) +(~ ̄▽ ̄)~ +(~o ̄3 ̄)~ +.....((/- -)/ +▄︻┻┳═一…… +(ˉ▽ ̄~) 切~~ +( ^ ^) _U~~ +(╬ ̄皿 ̄)=○#( ̄#)3 ̄) +(Д゜(○=(゜ 皿゜)=○)゜Д゜) +<(-︿-)> +shy~ o(*////▽////*)q +( ′ 3`) sigh~ +三三三三三三三三三4(o|o ) + (o ‵-′)ノ”(ノ_<。) +<(  ̄^ ̄)(θ(θ☆( >_< +╮( ╯ 3 ╰ )╭ +╮( ̄▽ ̄")╭ +╮(╯-╰)╭ +ㄟ( ▔, ▔ )ㄏ +ε=ε=┏( >_<)┛ +ε=ε=ε=┏(゜ロ゜;)┛ +ε=ε=ε=ε=ヽ(* ̄o ̄)ノ +o(≧∩≦)o +o(TヘTo) +☆⌒(*^-゜)v THX!! +|壁|_☆) +┬┴┤_·) +n(→_←)┛ +o( >﹏<。)┛ +0^)吞! +( ̄┰ ̄*) +(PД`q。)·。'゜ +<( ̄▽ ̄)/ +∥wc∥ o(- -o) =з =з =з +(﹁"﹁) +╥﹏╥... +σ(⌒ー⌒) +@/" +wow~⊙o⊙ +ㄟ( ▔, ▔ )ㄏ +( ﹁ ﹁ ) ~→ +( ̄. ̄)+ +(﹁"﹁) +...ψ(。。 ) +o(* ̄▽ ̄*)o +(* ̄(エ) ̄) +(+(工)+╬) +o(*////▽////*)q +p(# ̄▽ ̄#)o +卐~%?…,# *'☆&℃$︿★?…… +╳╳○○ +(* ̄︶ ̄)y +(* ̄▽ ̄)y +^_^)y +━┳━ ━┳━ +ag108lau +Yes,sir! <( ̄O ̄)/ +╭(′▽`)╭(′▽`)╯ +ヽ( ̄ω ̄( ̄ω ̄〃)ゝ +(^U^)ノ~YO +>°)))>彡 +(((φ(◎ロ◎;)φ))) +Σ[ ◎ ]} +<( ̄ ﹌  ̄)@m +^(* ̄(oo) ̄)^ +W( ̄_ ̄)W +┳G┻F┳W┫☆(ノ﹏<。) +--==≡≡〈〈《( / ̄皿 ̄)=O));>o<)/ +ZZzz…(。-ω-)..ooO((【·:*:~夢~:*:·】)) +( ̄y▽, ̄)╭ + o(* ̄▽ ̄*)ブ +(o|o) +ヾ(≧O≦)〃 +(o|o) +(-人-) +(^人^) +ヾ(′▽`*)ゝ +ヾ(′▽`*)ゝ +━((*′ ▽`)爻(′▽`*))━!!! +━((*′д`)爻(′д`*))━!!!! +\( ̄︶ ̄)/ +\( ̄︶ ̄*\)) +(′゜c_,゜` ) +╭∩╮(︶︿︶)╭∩╮ +(  ̄  ̄)σ…( _ _)ノ| +(  ̄  ̄)σ…( _ _)ノ| +ノ ̄ー ̄)ノ ⌒ >┼○"☆|| +o(′益`)o +§(* ̄▽ ̄*)§ +<( ̄3 ̄)> +______λ......___丬 +(* ̄︿ ̄) +(PД`q。)·。'゜ +(*  ̄3)(ε ̄ *) +( *^-^)ρ(*╯^╰) +(@_@;)? +(* ̄︿ ̄) +ㄟ( ▔, ▔ )ㄏ +( ̄_, ̄ ) +(ノへ ̄、) +(o′┏▽┓`o) +( ·ェ·)(·ェ· ) +(*≧︶≦))( ̄▽ ̄* )ゞ +( * ̄▽ ̄)((≧︶≦*) +<)。(> +ε~( ~( ~ ( 卍 )\( ̄▽ ̄ \) +(# ̄□ ̄)o―∈‥oo━━━━━━━☆ +●┻┓⌒ Σ┌┘車└┐=3 =3 =3 +.....(((((ヾ( o=^·ェ·)o ┏━┓ +( `0‘)ノ~~~~~~~~~ν +(。>︿<)_θ +___*\(  ̄皿 ̄)/#____ +( ̄ε(# ̄)☆╰╮( ̄▽ ̄///) +(ノへ ̄、) +(ノへ ̄、) +Pia!(o ‵-′)ノ” +ε=ε┣G┻F┳ε=ヽ(* ̄▽ ̄)ノ┻W┫ +→)╥﹏╥) +( * ̄▽ ̄)o ─═≡※:☆▆▅▄▃▂_ +(_ _)( - . - )(~O~) ……( - . - ) +(′台` ) + ━┳━ ━┳━ +━━( ̄ー ̄*|||━━ +<(ˉ^ˉ)> +(-_-メ) +...(* ̄0 ̄)ノ + (#`-_ゝ-) +(。﹏。) +(。_。) +( ̄ー ̄(_ _( ̄ー ̄(_ _ +(┬_┬)↘ +d=====( ̄▽ ̄*)b +!!!(  ̄O ̄)ノノ……∞∞OOO))) +!!!(  ̄O ̄)ノノ……∞∞OOO))) +o((⊙﹏⊙))o. +o( ̄ε ̄*) +(○` 3′○) + <(_ _)> +(ˉ▽ˉ;) +σ(-_-メ) +(╯‵□′)╯︵┻━┻ +(((\( ̄一 ̄)/))) + ||Φ|(|T|Д|T|)|Φ|| + (* ̄3 ̄)╭ +>( ̄▽ ̄ =  ̄︿ ̄)< + (/-_-)/ξ ξ ξ ξ ξ ξ (+_+ /)/~~~ +乀ˉεˉ乀... +(-@y@) +(-@y@) +...:.;::..;::: .:.;::….;: ̄)…:.;:□ ̄)( ̄□ ̄*) +.<{=.... +( ̄▽ ̄)~■□~( ̄▽ ̄) +~( ̄▽ ̄)~* +o(*≧▽≦*)m +(* ̄▽)u┌┐ d(▽ ̄*) +(′д`σ)σ +╰( ̄▽ ̄)╭ +U·ェ·*U +U·ェ·U +””\\( ̄ー ̄) ( ̄ー ̄)//”” +└( ̄  ̄└)(┘ ̄  ̄)┘ +o(*^@^*)o +……~(~o ̄▽ ̄)~o 。。。……o~(_△_o~) ~。。。 +(ToT)/~~~ +o(*^▽^*)o +╮╯-╰╭" +( >﹏<) +(╯▽╰ ) +(o゜▽゜)o☆ +( ′Д`)彡 +( ̄。。 ̄) + ┌(_Д_┌ )┐ + ┌(_Д_┌ )┐ +ε=( ̄。 ̄;A +(/0 ̄)o + ~( TロT)σ +((( ̄( ̄( ̄( ̄ー ̄) ̄) ̄) ̄))) +(@^^)/~~~ +(* ̄皿 ̄)=Σ口>=Σ口>=Σ口> +ヾ( ̄ー ̄)X(^▽^)ゞ +(〃 ̄︶ ̄)人( ̄︶ ̄〃) +o^^oo^^o + (o^~^)尸" +||┣(—_\) +<( ̄ ﹌  ̄)@m + (@゜▽゜) + (@`д′) +o(*^▽^*)┛ +┗( T﹏T )┛ +( ̄~ ̄) + ...φ(0 ̄*)啦啦啦_φ(* ̄0 ̄)′ +(°ー°〃) +(@^0^) +( ‵▽′)ノ'卍卍卍卍卍卍 Σ(゜д゜;) + ( `д′) +>< + ( -'`-; ) +┗(`o′)┓哼┏(`○′)┛哼┏(`o′)┓哈┗(`O′)┛兮!! +(o-ωq)).oO +...φ(0 ̄*)_φ(* ̄0 ̄)> +(~o ̄▽ ̄)~o ~。。。 +(o ;′Д`)ノ゛ +(  ̄ー ̄) +(*/ω\*) +(*/ω\*) +(*ˉ﹃ˉ)_☆☆ +(* ̄^ ̄(* ̄^ ̄(* ̄^ ̄) +☆{{{Д}}} ☆!! +(· ·)nnn +╮( ̄▽ ̄")╭ +||o(*°ω°*)o|Ю +ο(=·ω<=)ρ⌒☆ +(一-一) +o( =∩ω∩= )m +>▽< +<(* ̄▽ ̄*)/ +( ̄_, ̄ ) +ε(┬┬﹏┬┬)3 +(~ ̄▽ ̄)ノ +╰( ̄ω ̄o) +_| ̄|○ → _|\○_ → _/\○_ → ____○_ +┏┛墓┗┓...(((m -__-)m +(/// ̄皿 ̄)○~ +(﹁ ﹁ )σ +ヾ(≧へ≦)〃 +o( ̄︶ ̄)n +o(* ̄▽ ̄*)o +Σ(  ̄д ̄;) +ヾ(^▽^*))) + ~( TロT)σ + ~( TロT)σ +゜゜┌┴o゜゜゜゜° + ( -人-)···-~=~≡~≡ ((+o+))) +((( (-h-) ))) +……(((\( ̄一 ̄)/))) +<( ‵□′)>───Cε(┬﹏┬)3 +ε=怒ε=怒ε=怒ε=怒ε=( o`ω′)/ +_( ̄0 ̄)_ +((o_ _)'彡☆ +━((*′д`)爻(′д`*))━!!!! +└( ̄  ̄└)(┘ ̄  ̄)┘ +””\\( ̄ー ̄) ( ̄ー ̄)//”” +o(*≧▽≦)ツ┏━┓ +︿( ̄︶ ̄)︿ +( ^o)ρ┳┻┳°σ(o^ ) + (☆▽☆) +(o ̄Д ̄)<起床! ※=○☆(__*)Zzz +( *′д)/o(_ _)ozzZZ… +( ﹁ ﹁ ) ~~~ +o(* ̄3 ̄)o +(*  ̄)( ̄▽ ̄*)ゞ +(づ ̄ 3 ̄)づ... +∥WC||_·)╯ + ( ̄人 ̄)( ̄人:.;:…( ̄...:.;::..;::: .:;.…::;.:..:;.:... +( ̄▽ ̄)o∠※PAN!=.:*:'☆.:*:'★':* +*★,°*:.☆\( ̄▽ ̄)/$:*.°★* 。 +▄︻┻┳═一∵∴∷∶∵ (∵_,∵)>>>> +( ▼▼)/鹵〈 巛巛巛 ( ◎_x)/ +(* ̄▽ ̄)( ̄▽:;.…::;.:.:::;..::;.:... +(;′⌒`) +z(-_-z)).....((s-_-)s +(  ̄ー ̄)——)-=======>-->> +\( ̄0 ̄)/ +(。_。) +━━∑( ̄□ ̄*|||━━化 +(ˉ▽ˉ;)... +┫♀旦 ̄)σ(呃……) +(σ`д′)σ +(σ`д′)σ +σ~ (`′メ  +(~ ̄▽ ̄)→))* ̄▽ ̄*)o +o( ̄▽ ̄*)ゞ)) ̄▽ ̄*)o +(′д` )…彡…彡 +(:D)┼─┤ +……o((≧▽≦o) +ヽ(*。>Д<)o゜ +\("▔□▔)/\("▔□▔)/ +( *︾▽︾) +(ノω<。)ノ))☆.。 +ヾ(   )ノ゛ヾ( °д)ノ゛ヾ(°д°)ノ゛ヾ(д° )ノ゛ヾ(  )ノ゛ + ヾ(*′▽`*)彡 +<(* ̄ー ̄)ゞ来呀~ +<(* ̄ー ̄)ゞ来啊~ +(/ω\*)……… (/ω·\*) +(/ω·\*) +Σ[ ◎ ]}ー′) +凸艹皿艹 +凸゜皿゜メ +( >ρ < ”) +(o ̄ω ̄)○))o(__*)Zzz +ヽ(゜▽゜ )-C<(/;◇;)/~ +o((≧▽≦o) 太好笑了!! +Σ(⊙▽⊙"a... + (* ̄rǒ ̄) +*★,°*:.☆\( ̄▽ ̄)/$:*.°★* 。 +(← ← ) +( → →) +…〒_〒…‵o′-一┳═┻︻▄ +(#`O′) +( *^-^)ρ(^0^* ) +(* ̄;( ̄ *) +σ(· ·?) +(/▽\) +(。﹏。*) +||ヽ(* ̄▽ ̄*)ノミ|Ю +(~ ̄▽ ̄)~ +o(-"-;) +|(·_·) |·_·) |_·) |·) | ) +o( ̄ヘ ̄o* ) +o( ̄ヘ ̄o#) +( >﹏<。)~ +↑↑↓↓←→←→BA...┗( -o-)┛ +( ‵Д′)=○))~~~~~~Ю))>o<)/ +ヽ(ヽ `д′)ヽ`д′)ヽ`д′)┌┛┌┛┌┛★)`з゜)y +<( ‵□′)───C<─___-)|| +(o  ̄3)==@))゜ロ゜((@==(′ε′ )o  +(o  ̄3)==@))゜ロ゜((@==(′ε′ )o +((≧(≧▽(≧▽≦(≧▽≦)≧▽≦)▽≦)≦))) + ( _ _)ノ|壁 +╮(╯-╰)╭ +<(  ̄︿ ̄)︵θ︵θ︵θ︵θ︵☆(>口<-) +<(  ̄︿ ̄)︵θ︵θ︵θ︵θ︵☆(>口<-) +(╯▽╰ ) +(* ̄□ ̄)( ̄□:;.…::;.:.:::;..::;.:... +<( ̄︶ ̄)↗ +( ‵▽′)ψ +☆⌒(*^-゜)v +(゜゜ )(。。)(゜゜ )(。。) +( ╯▽╰) +不>( ̄ε ̄ =  ̄3 ̄)< +( *⊙~⊙) +( *⊙~⊙) +(* ̄□ ̄)( ̄□:;.…::;.:.:::;..::;.:... +( ̄ム ̄) +(9 ̄^ ̄)9 +(o゜▽゜)o☆ +||o(*°▽°*)o|Ю + +o(一︿一+)o +╔囧╗╔囧╝╚囧╝╚囧╗ +@o@" +X﹏X + o(* ̄▽ ̄*)ブ +(~ ̄(OO) ̄)ブ +(╯‵□′)╯···*~● +ˋ( ° ▽、° ) (o( ̄▽ ̄/// +( ̄︶ ̄)↗ +-______-" + o(〃'▽'〃)o +( `o′){ ···-=≡)) +( `o′){ ···-=≡)) +(o>ε(o>u(≧∩≦) +━━(o_ _)o━━(o―_―)o━━(9 ̄ー ̄)9 +( ゜,_ゝ゜) +(-"-) +o((>ω< ))o +o(>@<)o +( · ·)L☆ .....○ 冂 +ヨロ (*~▽~)ノ ヨロ ヽ(~▽~*)ヨロ (*~▽~)―〇 ☆ バシ ))>口<) +

    © 2010 @ag108lau
    Thanks @OnlyTiny
    +Last Update: 2010-11-13

    \ No newline at end of file diff --git a/inc/symbols.php b/inc/symbols.php deleted file mode 100644 index 60959dd..0000000 --- a/inc/symbols.php +++ /dev/null @@ -1,489 +0,0 @@ -┗|`O′|┛ -o(°▽、°o)....+(( ̄﹏ ̄m ) -槑槑槑槑呆槑槑槑槑槑槑槑槑…… -~o(▽` o) =3 =3 =3 -<铃铃铃~ヾ( ̄  ̄*)==3=3=3 -ヽ( ̄︿ ̄ )—C<(/;◇;)/ -ヾ( ┬o┬)┌θθθθ(;;_ _).o○ -o((>ω< ))o -o(≧口≦)o -╮( ̄▽ ̄")╭ -m(_ _)m -ヾ( ̄▽ ̄)Bye~Bye~ -▄︻┻┳═一…… ☆(>○<) -o(*≧▽≦)ツ -ヾ(≧▽≦*)o -o(≧口≦)o -(o゜▽゜)o☆ -( ̄ ‘i  ̄;) -( ̄ ii  ̄;) ( ̄" ̄;) -(⊙x⊙;) -(*^ ^*)(^ *) -(◎_x) -o( ̄┰ ̄*)ゞ -°.°·(((p(≧□≦)q)))·°.°。 -X﹏X 惨了! -q(≧▽≦q) -( ̄ c ̄)y▂ξ。。。 -<(  ̄^ ̄)(θ(θ☆( >_< -( ̄△ ̄;) -( ̄旦 ̄;) -━┳━ ━┳━ -Σ(`д′*ノ)ノ -Σ(っ °Д °;)っ -~( ̄▽ ̄~)(~ ̄▽ ̄)~ -<( ̄ˇ ̄)/ -┬┴┤_·) -("▔□▔) -(⊙﹏⊙) --________-'' -o(` · ~ · ′。)o -______λ......_____ -λ…λλ…λ…λλλ… -○| ̄|_ =3 -(╯′□`)╯ ┫:·'∵:.┻┻:·'.:┣∵·:. ┳┳☆ -(╯‵□′)╯""┻━┻☆))>○<) -┻━┻︵╰(‵□′)╯︵┻━┻ -︿( ̄︶ ̄)︿ -ヾ(≧奋≦)〃 -French (* ̄( ̄ *) Kiss! -( ̄ˇ ̄)v -fufu~ ^u^ -( σ'ω')σ -o(>O<;; )σ -┳G┻┳F┳┻W┫ -(┘ ̄︶ ̄)┘└( ̄︶ ̄└) -<( ̄︶ ̄)↗ -<( ̄OO, ̄)/ -Good! o( ̄▽ ̄)d -______λ......_____ -( ̄┰ ̄*) -(#°Д°) -O口O! -Σ(⊙▽⊙"a... -o(*≧▽≦)ツ -( ̄_ ̄|||) -( ̄▽ ̄") -(寒 ̄ii ̄)彡…彡…彡 -o(* ̄▽ ̄*)o -【】\(·ω·`)o -o(* ̄▽ ̄*)ゞ -( -з) -(;′⌒`) -(ε- ) -o( ̄ヘ ̄o#) -( ̄▽ ̄") -o(* ̄▽ ̄*)o -^-^ -^O^ -Hi~ o(* ̄▽ ̄*)ブ -( ·_·)ノ_·)ノ_·)ノ_·)ノ_·)ノ -○( ^皿^)っHiahiahia.... -( ̄y▽ ̄)╭ Ohohoho..... -hoho ^O^ -(_ _)。゜zzZ -Σ( ° △ °|||)︴ -Σ(`д′*ノ)ノ -Σ(っ °Д °;)っ -┗|*`0′*|┛ -( -'`-; ) -o(′益`)o -(  ̄ー ̄)人(^▽^ ) -n(*≧▽≦*)n -(°°)~ (°°)~ (°°)~ (°°)~ - (* ̄( ̄ *) -ˋ( ° ▽、° ) 口水ing... - ...φ(0 ̄*)啦啦啦_φ(* ̄0 ̄)> -m( =∩王∩= )m -(┳_┳)... -/(ㄒoㄒ)/~~ -卐~%?…,# *'☆&℃$︿★? -o(* ̄︶ ̄*)o -o( ̄ˇ ̄)o -o( =·ω·= )m -o(=·ェ·=)m -MIN■■■■■□□MAX -(/ ̄ˇ ̄)/ -(。人。) -mmm...f('︶︿︶)o -mmm..... -Capricorn -mua! (*╯3╰) ---\(˙<>˙)/-- -~( ̄▽ ̄)~* -(#‵′) -(o#゜ 曲゜)o -MIN■■■■■□□MAX(╯‵□′)╯︵┻━┻ -ε=怒ε=怒ε=怒ε=怒ε=( o`ω′)ノ -(⊙o⊙)? -Oh~ no!!!! -Oh yeah!\(^&^)/ -OK -λ…λλ…λ…入λλ… -ε = = (づ′▽`)づ -ε=ε=ε=(~ ̄▽ ̄)~ -ヾ(*′▽`*)ノ彡☆ノヽノヽノヽ -ヾ(′▽`* )ノ~ -( ̄ε(# ̄)☆╰╮o( ̄▽ ̄///) -Pia!(o ‵-′)ノ”(ノ﹏<。) -(~ ̄▽ ̄)~ -(~o ̄3 ̄)~ -.....((/- -)/ -▄︻┻┳═一…… -(ˉ▽ ̄~) 切~~ -( ^ ^) _U~~ -(╬ ̄皿 ̄)=○#( ̄#)3 ̄) -(Д゜(○=(゜ 皿゜)=○)゜Д゜) -<(-︿-)> -shy~ o(*////▽////*)q -( ′ 3`) sigh~ -三三三三三三三三三4(o|o ) - (o ‵-′)ノ”(ノ_<。) -<(  ̄^ ̄)(θ(θ☆( >_< -╮( ╯ 3 ╰ )╭ -╮( ̄▽ ̄")╭ -╮(╯-╰)╭ -ㄟ( ▔, ▔ )ㄏ -ε=ε=┏( >_<)┛ -ε=ε=ε=┏(゜ロ゜;)┛ -ε=ε=ε=ε=ヽ(* ̄o ̄)ノ -o(≧∩≦)o -o(TヘTo) -☆⌒(*^-゜)v THX!! -|壁|_☆) -┬┴┤_·) -n(→_←)┛ -o( >﹏<。)┛ -0^)吞! -( ̄┰ ̄*) -(PД`q。)·。'゜ -<( ̄▽ ̄)/ -∥wc∥ o(- -o) =з =з =з -(﹁"﹁) -╥﹏╥... -σ(⌒ー⌒) -@/" -wow~⊙o⊙ -ㄟ( ▔, ▔ )ㄏ -( ﹁ ﹁ ) ~→ -( ̄. ̄)+ -(﹁"﹁) -...ψ(。。 ) -o(* ̄▽ ̄*)o -(* ̄(エ) ̄) -(+(工)+╬) -o(*////▽////*)q -p(# ̄▽ ̄#)o -卐~%?…,# *'☆&℃$︿★?…… -╳╳○○ -(* ̄︶ ̄)y -(* ̄▽ ̄)y -^_^)y -━┳━ ━┳━ -ag108lau -Yes,sir! <( ̄O ̄)/ -╭(′▽`)╭(′▽`)╯ -ヽ( ̄ω ̄( ̄ω ̄〃)ゝ -(^U^)ノ~YO ->°)))>彡 -(((φ(◎ロ◎;)φ))) -Σ[ ◎ ]} -<( ̄ ﹌  ̄)@m -^(* ̄(oo) ̄)^ -W( ̄_ ̄)W -┳G┻F┳W┫☆(ノ﹏<。) ---==≡≡〈〈《( / ̄皿 ̄)=O));>o<)/ -ZZzz…(。-ω-)..ooO((【·:*:~夢~:*:·】)) -( ̄y▽, ̄)╭ - o(* ̄▽ ̄*)ブ -(o|o) -ヾ(≧O≦)〃 -(o|o) -(-人-) -(^人^) -ヾ(′▽`*)ゝ -ヾ(′▽`*)ゝ -━((*′ ▽`)爻(′▽`*))━!!! -━((*′д`)爻(′д`*))━!!!! -\( ̄︶ ̄)/ -\( ̄︶ ̄*\)) -(′゜c_,゜` ) -╭∩╮(︶︿︶)╭∩╮ -(  ̄  ̄)σ…( _ _)ノ| -(  ̄  ̄)σ…( _ _)ノ| -ノ ̄ー ̄)ノ ⌒ >┼○"☆|| -o(′益`)o -§(* ̄▽ ̄*)§ -<( ̄3 ̄)> -______λ......___丬 -(* ̄︿ ̄) -(PД`q。)·。'゜ -(*  ̄3)(ε ̄ *) -( *^-^)ρ(*╯^╰) -(@_@;)? -(* ̄︿ ̄) -ㄟ( ▔, ▔ )ㄏ -( ̄_, ̄ ) -(ノへ ̄、) -(o′┏▽┓`o) -( ·ェ·)(·ェ· ) -(*≧︶≦))( ̄▽ ̄* )ゞ -( * ̄▽ ̄)((≧︶≦*) -<)。(> -ε~( ~( ~ ( 卍 )\( ̄▽ ̄ \) -(# ̄□ ̄)o―∈‥oo━━━━━━━☆ -●┻┓⌒ Σ┌┘車└┐=3 =3 =3 -.....(((((ヾ( o=^·ェ·)o ┏━┓ -( `0‘)ノ~~~~~~~~~ν -(。>︿<)_θ -___*\(  ̄皿 ̄)/#____ -( ̄ε(# ̄)☆╰╮( ̄▽ ̄///) -(ノへ ̄、) -(ノへ ̄、) -Pia!(o ‵-′)ノ” -ε=ε┣G┻F┳ε=ヽ(* ̄▽ ̄)ノ┻W┫ -→)╥﹏╥) -( * ̄▽ ̄)o ─═≡※:☆▆▅▄▃▂_ -(_ _)( - . - )(~O~) ……( - . - ) -(′台` ) - ━┳━ ━┳━ -━━( ̄ー ̄*|||━━ -<(ˉ^ˉ)> -(-_-メ) -...(* ̄0 ̄)ノ - (#`-_ゝ-) -(。﹏。) -(。_。) -( ̄ー ̄(_ _( ̄ー ̄(_ _ -(┬_┬)↘ -d=====( ̄▽ ̄*)b -!!!(  ̄O ̄)ノノ……∞∞OOO))) -!!!(  ̄O ̄)ノノ……∞∞OOO))) -o((⊙﹏⊙))o. -o( ̄ε ̄*) -(○` 3′○) - <(_ _)> -(ˉ▽ˉ;) -σ(-_-メ) -(╯‵□′)╯︵┻━┻ -(((\( ̄一 ̄)/))) - ||Φ|(|T|Д|T|)|Φ|| - (* ̄3 ̄)╭ ->( ̄▽ ̄ =  ̄︿ ̄)< - (/-_-)/ξ ξ ξ ξ ξ ξ (+_+ /)/~~~ -乀ˉεˉ乀... -(-@y@) -(-@y@) -...:.;::..;::: .:.;::….;: ̄)…:.;:□ ̄)( ̄□ ̄*) -.<{=.... -( ̄▽ ̄)~■□~( ̄▽ ̄) -~( ̄▽ ̄)~* -o(*≧▽≦*)m -(* ̄▽)u┌┐ d(▽ ̄*) -(′д`σ)σ -╰( ̄▽ ̄)╭ -U·ェ·*U -U·ェ·U -””\\( ̄ー ̄) ( ̄ー ̄)//”” -└( ̄  ̄└)(┘ ̄  ̄)┘ -o(*^@^*)o -……~(~o ̄▽ ̄)~o 。。。……o~(_△_o~) ~。。。 -(ToT)/~~~ -o(*^▽^*)o -╮╯-╰╭" -( >﹏<) -(╯▽╰ ) -(o゜▽゜)o☆ -( ′Д`)彡 -( ̄。。 ̄) - ┌(_Д_┌ )┐ - ┌(_Д_┌ )┐ -ε=( ̄。 ̄;A -(/0 ̄)o - ~( TロT)σ -((( ̄( ̄( ̄( ̄ー ̄) ̄) ̄) ̄))) -(@^^)/~~~ -(* ̄皿 ̄)=Σ口>=Σ口>=Σ口> -ヾ( ̄ー ̄)X(^▽^)ゞ -(〃 ̄︶ ̄)人( ̄︶ ̄〃) -o^^oo^^o - (o^~^)尸" -||┣(—_\) -<( ̄ ﹌  ̄)@m - (@゜▽゜) - (@`д′) -o(*^▽^*)┛ -┗( T﹏T )┛ -( ̄~ ̄) - ...φ(0 ̄*)啦啦啦_φ(* ̄0 ̄)′ -(°ー°〃) -(@^0^) -( ‵▽′)ノ'卍卍卍卍卍卍 Σ(゜д゜;) - ( `д′) ->< - ( -'`-; ) -┗(`o′)┓哼┏(`○′)┛哼┏(`o′)┓哈┗(`O′)┛兮!! -(o-ωq)).oO -...φ(0 ̄*)_φ(* ̄0 ̄)> -(~o ̄▽ ̄)~o ~。。。 -(o ;′Д`)ノ゛ -(  ̄ー ̄) -(*/ω\*) -(*/ω\*) -(*ˉ﹃ˉ)_☆☆ -(* ̄^ ̄(* ̄^ ̄(* ̄^ ̄) -☆{{{Д}}} ☆!! -(· ·)nnn -╮( ̄▽ ̄")╭ -||o(*°ω°*)o|Ю -ο(=·ω<=)ρ⌒☆ -(一-一) -o( =∩ω∩= )m ->▽< -<(* ̄▽ ̄*)/ -( ̄_, ̄ ) -ε(┬┬﹏┬┬)3 -(~ ̄▽ ̄)ノ -╰( ̄ω ̄o) -_| ̄|○ → _|\○_ → _/\○_ → ____○_ -┏┛墓┗┓...(((m -__-)m -(/// ̄皿 ̄)○~ -(﹁ ﹁ )σ -ヾ(≧へ≦)〃 -o( ̄︶ ̄)n -o(* ̄▽ ̄*)o -Σ(  ̄д ̄;) -ヾ(^▽^*))) - ~( TロT)σ - ~( TロT)σ -゜゜┌┴o゜゜゜゜° - ( -人-)···-~=~≡~≡ ((+o+))) -((( (-h-) ))) -……(((\( ̄一 ̄)/))) -<( ‵□′)>───Cε(┬﹏┬)3 -ε=怒ε=怒ε=怒ε=怒ε=( o`ω′)/ -_( ̄0 ̄)_ -((o_ _)'彡☆ -━((*′д`)爻(′д`*))━!!!! -└( ̄  ̄└)(┘ ̄  ̄)┘ -””\\( ̄ー ̄) ( ̄ー ̄)//”” -o(*≧▽≦)ツ┏━┓ -︿( ̄︶ ̄)︿ -( ^o)ρ┳┻┳°σ(o^ ) - (☆▽☆) -(o ̄Д ̄)<起床! ※=○☆(__*)Zzz -( *′д)/o(_ _)ozzZZ… -( ﹁ ﹁ ) ~~~ -o(* ̄3 ̄)o -(*  ̄)( ̄▽ ̄*)ゞ -(づ ̄ 3 ̄)づ... -∥WC||_·)╯ - ( ̄人 ̄)( ̄人:.;:…( ̄...:.;::..;::: .:;.…::;.:..:;.:... -( ̄▽ ̄)o∠※PAN!=.:*:'☆.:*:'★':* -*★,°*:.☆\( ̄▽ ̄)/$:*.°★* 。 -▄︻┻┳═一∵∴∷∶∵ (∵_,∵)>>>> -( ▼▼)/鹵〈 巛巛巛 ( ◎_x)/ -(* ̄▽ ̄)( ̄▽:;.…::;.:.:::;..::;.:... -(;′⌒`) -z(-_-z)).....((s-_-)s -(  ̄ー ̄)——)-=======>-->> -\( ̄0 ̄)/ -(。_。) -━━∑( ̄□ ̄*|||━━化 -(ˉ▽ˉ;)... -┫♀旦 ̄)σ(呃……) -(σ`д′)σ -(σ`д′)σ -σ~ (`′メ  -(~ ̄▽ ̄)→))* ̄▽ ̄*)o -o( ̄▽ ̄*)ゞ)) ̄▽ ̄*)o -(′д` )…彡…彡 -(:D)┼─┤ -……o((≧▽≦o) -ヽ(*。>Д<)o゜ -\("▔□▔)/\("▔□▔)/ -( *︾▽︾) -(ノω<。)ノ))☆.。 -ヾ(   )ノ゛ヾ( °д)ノ゛ヾ(°д°)ノ゛ヾ(д° )ノ゛ヾ(  )ノ゛ - ヾ(*′▽`*)彡 -<(* ̄ー ̄)ゞ来呀~ -<(* ̄ー ̄)ゞ来啊~ -(/ω\*)……… (/ω·\*) -(/ω·\*) -Σ[ ◎ ]}ー′) -凸艹皿艹 -凸゜皿゜メ -( >ρ < ”) -(o ̄ω ̄)○))o(__*)Zzz -ヽ(゜▽゜ )-C<(/;◇;)/~ -o((≧▽≦o) 太好笑了!! -Σ(⊙▽⊙"a... - (* ̄rǒ ̄) -*★,°*:.☆\( ̄▽ ̄)/$:*.°★* 。 -(← ← ) -( → →) -…〒_〒…‵o′-一┳═┻︻▄ -(#`O′) -( *^-^)ρ(^0^* ) -(* ̄;( ̄ *) -σ(· ·?) -(/▽\) -(。﹏。*) -||ヽ(* ̄▽ ̄*)ノミ|Ю -(~ ̄▽ ̄)~ -o(-"-;) -|(·_·) |·_·) |_·) |·) | ) -o( ̄ヘ ̄o* ) -o( ̄ヘ ̄o#) -( >﹏<。)~ -↑↑↓↓←→←→BA...┗( -o-)┛ -( ‵Д′)=○))~~~~~~Ю))>o<)/ -ヽ(ヽ `д′)ヽ`д′)ヽ`д′)┌┛┌┛┌┛★)`з゜)y -<( ‵□′)───C<─___-)|| -(o  ̄3)==@))゜ロ゜((@==(′ε′ )o  -(o  ̄3)==@))゜ロ゜((@==(′ε′ )o -((≧(≧▽(≧▽≦(≧▽≦)≧▽≦)▽≦)≦))) - ( _ _)ノ|壁 -╮(╯-╰)╭ -<(  ̄︿ ̄)︵θ︵θ︵θ︵θ︵☆(>口<-) -<(  ̄︿ ̄)︵θ︵θ︵θ︵θ︵☆(>口<-) -(╯▽╰ ) -(* ̄□ ̄)( ̄□:;.…::;.:.:::;..::;.:... -<( ̄︶ ̄)↗ -( ‵▽′)ψ -☆⌒(*^-゜)v -(゜゜ )(。。)(゜゜ )(。。) -( ╯▽╰) -不>( ̄ε ̄ =  ̄3 ̄)< -( *⊙~⊙) -( *⊙~⊙) -(* ̄□ ̄)( ̄□:;.…::;.:.:::;..::;.:... -( ̄ム ̄) -(9 ̄^ ̄)9 -(o゜▽゜)o☆ -||o(*°▽°*)o|Ю - -o(一︿一+)o -╔囧╗╔囧╝╚囧╝╚囧╗ -@o@" -X﹏X - o(* ̄▽ ̄*)ブ -(~ ̄(OO) ̄)ブ -(╯‵□′)╯···*~● -ˋ( ° ▽、° ) (o( ̄▽ ̄/// -( ̄︶ ̄)↗ --______-" - o(〃'▽'〃)o -( `o′){ ···-=≡)) -( `o′){ ···-=≡)) -(o>ε(o>u(≧∩≦) -━━(o_ _)o━━(o―_―)o━━(9 ̄ー ̄)9 -( ゜,_ゝ゜) -(-"-) -o((>ω< ))o -o(>@<)o -( · ·)L☆ .....○ 冂 -ヨロ (*~▽~)ノ ヨロ ヽ(~▽~*)ヨロ (*~▽~)―〇 ☆ バシ ))>口<) -

    © 2010 @ag108lau
    Thanks @OnlyTiny
    -Last Update: 2010-03-12 -

    \ No newline at end of file diff --git a/inc/trends.php b/inc/trends.php index 8e767db..8a9b6cf 100644 --- a/inc/trends.php +++ b/inc/trends.php @@ -1,29 +1,29 @@ -trends)){ - return false; - } - $html = ''; - foreach ($trends->trends as $trend) { - $li = ' -
  • - '.$trend->name.' -
  • - '; - $html .= $li; - } - - return $html; - } -?> +trends)){ + return false; + } + $html = ''; + foreach ($trends->trends as $trend) { + $li = ' +
  • + '.$trend->name.' +
  • + '; + $html .= $li; + } + + return $html; + } +?> diff --git a/inc/userlist.php b/inc/userlist.php index 34b9af8..c75edb6 100644 --- a/inc/userlist.php +++ b/inc/userlist.php @@ -93,24 +93,23 @@ } echo '
    '; - $p = -1; switch ($type) { case 'blocks': $userlist = $t->blockingList($id, $p); - $next_page = $userlist->next_cursor; - $previous_page = $userlist->previous_cursor; + $next_page = $userlist->next_cursor_str; + $previous_page = $userlist->previous_cursor_str; $userlist = $userlist->users; break; case 'friends': $userlist = $t->friends($id, $p); - $next_page = $userlist->next_cursor; - $previous_page = $userlist->previous_cursor; + $next_page = $userlist->next_cursor_str; + $previous_page = $userlist->previous_cursor_str; $userlist = $userlist->users; break; case 'followers': $userlist = $t->followers($id, $p); - $next_page = $userlist->next_cursor; - $previous_page = $userlist->previous_cursor; + $next_page = $userlist->next_cursor_str; + $previous_page = $userlist->previous_cursor_str; $userlist = $userlist->users; break; case 'list_members': @@ -129,7 +128,7 @@ $userlist = $t->followers($id, $p); break; } - $empty = count($userlist) == 0? true: false; + $empty = count($userlist) == 0 ? true : false; if ($empty) { echo "
    No user to display.
    "; } else { @@ -154,18 +153,18 @@ } $output .= "
    "; if ($type == 'list_members' || $type == 'list_followers' || $type == 'blocks') { - if ($prelist != 0) $output .= "Back"; + if ($prelist != 0) $output .= "Back"; if ($nextlist != 0) $output .= "Next"; } else { if ($id) { - if ($p >0) - $output .= "Back"; - if ($next_page != 0) + if ($previous_page !== "0") + $output .= "Back"; + if ($next_page !== "0") $output .= "Next"; } else { - if ($p >0) - $output .= "Back"; - if ($next_page != 0) + if ($previous_page !== "0") + $output .= "Back"; + if ($next_page !== "0") $output .= "Next"; } } diff --git a/index.php b/index.php index ed9dc2c..1b5efad 100644 --- a/index.php +++ b/index.php @@ -31,31 +31,31 @@ homeTimeline($p); + $statuses = $t->homeTimeline($since_id, $max_id); if ($statuses == false) { header('location: error.php');exit(); } $count = count($statuses); - $empty = $count == 0 ? true: false; + $empty = $count == 0 ? true : false; if ($empty) { echo "
    No tweet to display.
    "; - } - else - { + } else if ($t->http_code == 429) { + echo "
    API quota is used out, please wait for a moment before next refresh.
    "; + } else { $output = '
      '; include('lib/timeline_format.php'); $maxid = isset($_COOKIE['maxid']) ? $_COOKIE['maxid'] : ''; + $firstid = false; + $lastid = false; foreach ($statuses as $status) { + if (!$firstid) $firstid = $status->id_str; + $lastid = $status->id_str; if($maxid == '' || $p == 1 || strcmp($status->id_str,$maxid) < 0) { if (isset($status->retweeted_status)) { $output .= format_retweet($status); @@ -64,18 +64,19 @@ } } } + $lastid = bcsub($lastid, "1"); $output .= "
    "; $time = $_SERVER['REQUEST_TIME']+3600; setcookie('maxid',$statuses[$count-1]->id_str,$time,'/'); - if ($p >1) $output .= "Back"; - if (!$empty) $output .= "Next"; + $output .= "Back"; + $output .= "Next"; + $output .= "
    "; echo $output; } ?>
    -
    '); - if (typeof uri == 'boolean') { - io.src = 'javascript:false'; - } - else if (typeof uri == 'string') { - io.src = uri; - } - } - else { - var io = document.createElement('iframe'); - io.id = frameId; - io.name = frameId; - } - io.style.position = 'absolute'; - io.style.top = '-1000px'; - io.style.left = '-1000px'; - document.body.appendChild(io); - return io - }, - createUploadForm: function (id, fileElementId) { - //create form - var formId = 'jUploadForm' + id; - var fileId = 'jUploadFile' + id; - var form = $('
    '); - var oldElement = $('#' + fileElementId); - var newElement = $(oldElement).clone(); - $(oldElement).attr('id', fileId); - $(oldElement).before(newElement); - $(oldElement).appendTo(form); - //set attributes - $(form).css('position', 'absolute'); - $(form).css('top', '-1200px'); - $(form).css('left', '-1200px'); - $(form).appendTo('body'); - return form; - }, - ajaxFileUpload: function (s) { - // TODO introduce global settings, allowing the client to modify them for all requests, not only timeout - s = jQuery.extend({}, jQuery.ajaxSettings, s); - var id = new Date().getTime() - var form = jQuery.createUploadForm(id, s.fileElementId); - var io = jQuery.createUploadIframe(id, s.secureuri); - var frameId = 'jUploadFrame' + id; - var formId = 'jUploadForm' + id; - // Watch for a new set of requests - if (s.global && !jQuery.active++) { - jQuery.event.trigger("ajaxStart"); - } - var requestDone = false; - // Create the request object - var xml = {} - if (s.global) jQuery.event.trigger("ajaxSend", [xml, s]); - // Wait for a response to come back - var uploadCallback = function (isTimeout) { - var io = document.getElementById(frameId); - try { - if (io.contentWindow) { - xml.responseText = io.contentWindow.document.body ? io.contentWindow.document.body.innerHTML : null; - xml.responseXML = io.contentWindow.document.XMLDocument ? io.contentWindow.document.XMLDocument : io.contentWindow.document; - } else if (io.contentDocument) { - xml.responseText = io.contentDocument.document.body ? io.contentDocument.document.body.innerHTML : null; - xml.responseXML = io.contentDocument.document.XMLDocument ? io.contentDocument.document.XMLDocument : io.contentDocument.document; - } - } catch (e) { - jQuery.handleError(s, xml, null, e); - } - if (xml || isTimeout == "timeout") { - requestDone = true; - var status; - try { - status = isTimeout != "timeout" ? "success" : "error"; - // Make sure that the request was successful or notmodified - if (status != "error") { - // process the data (runs the xml through httpData regardless of callback) - var data = jQuery.uploadHttpData(xml, s.dataType); - // If a local callback was specified, fire it and pass it the data - if (s.success) s.success(data, status); - // Fire the global callback - if (s.global) jQuery.event.trigger("ajaxSuccess", [xml, s]); - } else jQuery.handleError(s, xml, status); - } catch (e) { - status = "error"; - jQuery.handleError(s, xml, status, e); - } - // The request was completed - if (s.global) jQuery.event.trigger("ajaxComplete", [xml, s]); - // Handle the global AJAX counter - if (s.global && !--jQuery.active) jQuery.event.trigger("ajaxStop"); - // Process result - if (s.complete) s.complete(xml, status); - jQuery(io).unbind() - setTimeout(function () { - try { - $(io).remove(); - $(form).remove(); - } catch (e) { - jQuery.handleError(s, xml, null, e); - } - }, 100) - xml = null - } - } - // Timeout checker - if (s.timeout > 0) { - setTimeout(function () { - // Check to see if the request is still happening - if (!requestDone) uploadCallback("timeout"); - }, s.timeout); - } - try { - // var io = $('#' + frameId); - var form = $('#' + formId); - $(form).attr('action', s.url); - $(form).attr('method', 'POST'); - $(form).attr('target', frameId); - if (form.encoding) { - form.encoding = 'multipart/form-data'; - } - else { - form.enctype = 'multipart/form-data'; - } - $(form).submit(); - } catch (e) { - jQuery.handleError(s, xml, null, e); - } - if (window.attachEvent) { - document.getElementById(frameId).attachEvent('onload', uploadCallback); - } - else { - document.getElementById(frameId).addEventListener('load', uploadCallback, false); - } - return { - abort: function () {} - }; - }, - uploadHttpData: function (r, type) { - var data = !type; - data = type == "xml" || data ? r.responseXML : r.responseText; - // If the type is "script", eval it in global context - if (type == "script") jQuery.globalEval(data); - // Get the JavaScript object, if JSON is used. - if (type == "json") eval("data = " + data); - // evaluate scripts within html - if (type == "html") jQuery("
    ").html(data).evalScripts(); - return data; - } -}) \ No newline at end of file diff --git a/js/btns.js b/js/btns.js index 663fdc7..004d12b 100644 --- a/js/btns.js +++ b/js/btns.js @@ -1,50 +1,50 @@ -$(function(){ - formFunc(); - $("ol.timeline").live("click", function(e) { - var $this = $(e.target); - var type = $this.attr('class'); - switch(type) { - case 'rt_btn': - e.preventDefault(); - onRT($this); - break; - case 'retw_btn': - e.preventDefault(); - onNwRT($this); - break; - case 'replie_btn': - e.preventDefault(); - onReplie($this,e); - break; - case 'favor_btn': - e.preventDefault(); - onFavor($this); - break; - case 'unfav_btn': - e.preventDefault(); - UnFavor($this); - break; - case 'delete_btn': - e.preventDefault(); - onDelete($this); - break; - case 'rt_undo': - case 'unrt_btn': - e.preventDefault(); - onUndoRt($this); - break; - case 'msg_replie_btn': - e.preventDefault(); - onReplieDM($this); - break; - case 'msg_delete_btn': - e.preventDefault(); - onDeleteMsg($this); - break; - } - }); - $("#submit_btn").click(function(e){ - updateStatus(); - e.preventDefault(); - }); - }); +$(function(){ + formFunc(); + $("ol.timeline").live("click", function(e) { + var $this = $(e.target); + var type = $this.attr('class'); + switch(type) { + case 'rt_btn': + e.preventDefault(); + onRT($this); + break; + case 'retw_btn': + e.preventDefault(); + onNwRT($this); + break; + case 'replie_btn': + e.preventDefault(); + onReplie($this,e); + break; + case 'favor_btn': + e.preventDefault(); + onFavor($this); + break; + case 'unfav_btn': + e.preventDefault(); + UnFavor($this); + break; + case 'delete_btn': + e.preventDefault(); + onDelete($this); + break; + case 'rt_undo': + case 'unrt_btn': + e.preventDefault(); + onUndoRt($this); + break; + case 'msg_replie_btn': + e.preventDefault(); + onReplieDM($this); + break; + case 'msg_delete_btn': + e.preventDefault(); + onDeleteMsg($this); + break; + } + }); + $("#submit_btn").click(function(e){ + updateStatus(); + e.preventDefault(); + }); + }); diff --git a/js/colorpicker3.js b/js/colorpicker3.js deleted file mode 100644 index 99b48ec..0000000 --- a/js/colorpicker3.js +++ /dev/null @@ -1,484 +0,0 @@ -/** - * - * Color picker - * Author: Stefan Petre www.eyecon.ro - * - * Dual licensed under the MIT and GPL licenses - * - */ -(function ($) { - var ColorPicker = function () { - var - ids = {}, - inAction, - charMin = 65, - visible, - tpl = '
    ', - defaults = { - eventName: 'click', - onShow: function () {}, - onBeforeShow: function(){}, - onHide: function () {}, - onChange: function () {}, - onSubmit: function () {}, - color: 'ff0000', - livePreview: true, - flat: false - }, - fillRGBFields = function (hsb, cal) { - var rgb = HSBToRGB(hsb); - $(cal).data('colorpicker').fields - .eq(1).val(rgb.r).end() - .eq(2).val(rgb.g).end() - .eq(3).val(rgb.b).end(); - }, - fillHSBFields = function (hsb, cal) { - $(cal).data('colorpicker').fields - .eq(4).val(hsb.h).end() - .eq(5).val(hsb.s).end() - .eq(6).val(hsb.b).end(); - }, - fillHexFields = function (hsb, cal) { - $(cal).data('colorpicker').fields - .eq(0).val(HSBToHex(hsb)).end(); - }, - setSelector = function (hsb, cal) { - $(cal).data('colorpicker').selector.css('backgroundColor', '#' + HSBToHex({h: hsb.h, s: 100, b: 100})); - $(cal).data('colorpicker').selectorIndic.css({ - left: parseInt(150 * hsb.s/100, 10), - top: parseInt(150 * (100-hsb.b)/100, 10) - }); - }, - setHue = function (hsb, cal) { - $(cal).data('colorpicker').hue.css('top', parseInt(150 - 150 * hsb.h/360, 10)); - }, - setCurrentColor = function (hsb, cal) { - $(cal).data('colorpicker').currentColor.css('backgroundColor', '#' + HSBToHex(hsb)); - }, - setNewColor = function (hsb, cal) { - $(cal).data('colorpicker').newColor.css('backgroundColor', '#' + HSBToHex(hsb)); - }, - keyDown = function (ev) { - var pressedKey = ev.charCode || ev.keyCode || -1; - if ((pressedKey > charMin && pressedKey <= 90) || pressedKey == 32) { - return false; - } - var cal = $(this).parent().parent(); - if (cal.data('colorpicker').livePreview === true) { - change.apply(this); - } - }, - change = function (ev) { - var cal = $(this).parent().parent(), col; - if (this.parentNode.className.indexOf('_hex') > 0) { - cal.data('colorpicker').color = col = HexToHSB(fixHex(this.value)); - } else if (this.parentNode.className.indexOf('_hsb') > 0) { - cal.data('colorpicker').color = col = fixHSB({ - h: parseInt(cal.data('colorpicker').fields.eq(4).val(), 10), - s: parseInt(cal.data('colorpicker').fields.eq(5).val(), 10), - b: parseInt(cal.data('colorpicker').fields.eq(6).val(), 10) - }); - } else { - cal.data('colorpicker').color = col = RGBToHSB(fixRGB({ - r: parseInt(cal.data('colorpicker').fields.eq(1).val(), 10), - g: parseInt(cal.data('colorpicker').fields.eq(2).val(), 10), - b: parseInt(cal.data('colorpicker').fields.eq(3).val(), 10) - })); - } - if (ev) { - fillRGBFields(col, cal.get(0)); - fillHexFields(col, cal.get(0)); - fillHSBFields(col, cal.get(0)); - } - setSelector(col, cal.get(0)); - setHue(col, cal.get(0)); - setNewColor(col, cal.get(0)); - cal.data('colorpicker').onChange.apply(cal, [col, HSBToHex(col), HSBToRGB(col)]); - }, - blur = function (ev) { - var cal = $(this).parent().parent(); - cal.data('colorpicker').fields.parent().removeClass('colorpicker_focus'); - }, - focus = function () { - charMin = this.parentNode.className.indexOf('_hex') > 0 ? 70 : 65; - $(this).parent().parent().data('colorpicker').fields.parent().removeClass('colorpicker_focus'); - $(this).parent().addClass('colorpicker_focus'); - }, - downIncrement = function (ev) { - var field = $(this).parent().find('input').focus(); - var current = { - el: $(this).parent().addClass('colorpicker_slider'), - max: this.parentNode.className.indexOf('_hsb_h') > 0 ? 360 : (this.parentNode.className.indexOf('_hsb') > 0 ? 100 : 255), - y: ev.pageY, - field: field, - val: parseInt(field.val(), 10), - preview: $(this).parent().parent().data('colorpicker').livePreview - }; - $(document).bind('mouseup', current, upIncrement); - $(document).bind('mousemove', current, moveIncrement); - }, - moveIncrement = function (ev) { - ev.data.field.val(Math.max(0, Math.min(ev.data.max, parseInt(ev.data.val + ev.pageY - ev.data.y, 10)))); - if (ev.data.preview) { - change.apply(ev.data.field.get(0), [true]); - } - return false; - }, - upIncrement = function (ev) { - change.apply(ev.data.field.get(0), [true]); - ev.data.el.removeClass('colorpicker_slider').find('input').focus(); - $(document).unbind('mouseup', upIncrement); - $(document).unbind('mousemove', moveIncrement); - return false; - }, - downHue = function (ev) { - var current = { - cal: $(this).parent(), - y: $(this).offset().top - }; - current.preview = current.cal.data('colorpicker').livePreview; - $(document).bind('mouseup', current, upHue); - $(document).bind('mousemove', current, moveHue); - }, - moveHue = function (ev) { - change.apply( - ev.data.cal.data('colorpicker') - .fields - .eq(4) - .val(parseInt(360*(150 - Math.max(0,Math.min(150,(ev.pageY - ev.data.y))))/150, 10)) - .get(0), - [ev.data.preview] - ); - return false; - }, - upHue = function (ev) { - fillRGBFields(ev.data.cal.data('colorpicker').color, ev.data.cal.get(0)); - fillHexFields(ev.data.cal.data('colorpicker').color, ev.data.cal.get(0)); - $(document).unbind('mouseup', upHue); - $(document).unbind('mousemove', moveHue); - return false; - }, - downSelector = function (ev) { - var current = { - cal: $(this).parent(), - pos: $(this).offset() - }; - current.preview = current.cal.data('colorpicker').livePreview; - $(document).bind('mouseup', current, upSelector); - $(document).bind('mousemove', current, moveSelector); - }, - moveSelector = function (ev) { - change.apply( - ev.data.cal.data('colorpicker') - .fields - .eq(6) - .val(parseInt(100*(150 - Math.max(0,Math.min(150,(ev.pageY - ev.data.pos.top))))/150, 10)) - .end() - .eq(5) - .val(parseInt(100*(Math.max(0,Math.min(150,(ev.pageX - ev.data.pos.left))))/150, 10)) - .get(0), - [ev.data.preview] - ); - return false; - }, - upSelector = function (ev) { - fillRGBFields(ev.data.cal.data('colorpicker').color, ev.data.cal.get(0)); - fillHexFields(ev.data.cal.data('colorpicker').color, ev.data.cal.get(0)); - $(document).unbind('mouseup', upSelector); - $(document).unbind('mousemove', moveSelector); - return false; - }, - enterSubmit = function (ev) { - $(this).addClass('colorpicker_focus'); - }, - leaveSubmit = function (ev) { - $(this).removeClass('colorpicker_focus'); - }, - clickSubmit = function (ev) { - var cal = $(this).parent(); - var col = cal.data('colorpicker').color; - cal.data('colorpicker').origColor = col; - setCurrentColor(col, cal.get(0)); - cal.data('colorpicker').onSubmit(col, HSBToHex(col), HSBToRGB(col), cal.data('colorpicker').el); - }, - show = function (ev) { - var cal = $('#' + $(this).data('colorpickerId')); - cal.data('colorpicker').onBeforeShow.apply(this, [cal.get(0)]); - var pos = $(this).offset(); - var viewPort = getViewport(); - var top = pos.top + this.offsetHeight; - var left = pos.left; - if (top + 176 > viewPort.t + viewPort.h) { - top -= this.offsetHeight + 176; - } - if (left + 356 > viewPort.l + viewPort.w) { - left -= 356; - } - cal.css({left: left + 'px', top: top + 'px'}); - if (cal.data('colorpicker').onShow.apply(this, [cal.get(0)]) != false) { - cal.show(); - } - $(document).bind('mousedown', {cal: cal}, hide); - return false; - }, - hide = function (ev) { - if (!isChildOf(ev.data.cal.get(0), ev.target, ev.data.cal.get(0))) { - if (ev.data.cal.data('colorpicker').onHide.apply(this, [ev.data.cal.get(0)]) != false) { - ev.data.cal.hide(); - } - $(document).unbind('mousedown', hide); - } - }, - isChildOf = function(parentEl, el, container) { - if (parentEl == el) { - return true; - } - if (parentEl.contains) { - return parentEl.contains(el); - } - if ( parentEl.compareDocumentPosition ) { - return !!(parentEl.compareDocumentPosition(el) & 16); - } - var prEl = el.parentNode; - while(prEl && prEl != container) { - if (prEl == parentEl) - return true; - prEl = prEl.parentNode; - } - return false; - }, - getViewport = function () { - var m = document.compatMode == 'CSS1Compat'; - return { - l : window.pageXOffset || (m ? document.documentElement.scrollLeft : document.body.scrollLeft), - t : window.pageYOffset || (m ? document.documentElement.scrollTop : document.body.scrollTop), - w : window.innerWidth || (m ? document.documentElement.clientWidth : document.body.clientWidth), - h : window.innerHeight || (m ? document.documentElement.clientHeight : document.body.clientHeight) - }; - }, - fixHSB = function (hsb) { - return { - h: Math.min(360, Math.max(0, hsb.h)), - s: Math.min(100, Math.max(0, hsb.s)), - b: Math.min(100, Math.max(0, hsb.b)) - }; - }, - fixRGB = function (rgb) { - return { - r: Math.min(255, Math.max(0, rgb.r)), - g: Math.min(255, Math.max(0, rgb.g)), - b: Math.min(255, Math.max(0, rgb.b)) - }; - }, - fixHex = function (hex) { - var len = 6 - hex.length; - if (len > 0) { - var o = []; - for (var i=0; i -1) ? hex.substring(1) : hex), 16); - return {r: hex >> 16, g: (hex & 0x00FF00) >> 8, b: (hex & 0x0000FF)}; - }, - HexToHSB = function (hex) { - return RGBToHSB(HexToRGB(hex)); - }, - RGBToHSB = function (rgb) { - var hsb = { - h: 0, - s: 0, - b: 0 - }; - var min = Math.min(rgb.r, rgb.g, rgb.b); - var max = Math.max(rgb.r, rgb.g, rgb.b); - var delta = max - min; - hsb.b = max; - if (max != 0) { - - } - hsb.s = max != 0 ? 255 * delta / max : 0; - if (hsb.s != 0) { - if (rgb.r == max) { - hsb.h = (rgb.g - rgb.b) / delta; - } else if (rgb.g == max) { - hsb.h = 2 + (rgb.b - rgb.r) / delta; - } else { - hsb.h = 4 + (rgb.r - rgb.g) / delta; - } - } else { - hsb.h = -1; - } - hsb.h *= 60; - if (hsb.h < 0) { - hsb.h += 360; - } - hsb.s *= 100/255; - hsb.b *= 100/255; - return hsb; - }, - HSBToRGB = function (hsb) { - var rgb = {}; - var h = Math.round(hsb.h); - var s = Math.round(hsb.s*255/100); - var v = Math.round(hsb.b*255/100); - if(s == 0) { - rgb.r = rgb.g = rgb.b = v; - } else { - var t1 = v; - var t2 = (255-s)*v/255; - var t3 = (t1-t2)*(h%60)/60; - if(h==360) h = 0; - if(h<60) {rgb.r=t1; rgb.b=t2; rgb.g=t2+t3} - else if(h<120) {rgb.g=t1; rgb.b=t2; rgb.r=t1-t3} - else if(h<180) {rgb.g=t1; rgb.r=t2; rgb.b=t2+t3} - else if(h<240) {rgb.b=t1; rgb.r=t2; rgb.g=t1-t3} - else if(h<300) {rgb.b=t1; rgb.g=t2; rgb.r=t2+t3} - else if(h<360) {rgb.r=t1; rgb.g=t2; rgb.b=t1-t3} - else {rgb.r=0; rgb.g=0; rgb.b=0} - } - return {r:Math.round(rgb.r), g:Math.round(rgb.g), b:Math.round(rgb.b)}; - }, - RGBToHex = function (rgb) { - var hex = [ - rgb.r.toString(16), - rgb.g.toString(16), - rgb.b.toString(16) - ]; - $.each(hex, function (nr, val) { - if (val.length == 1) { - hex[nr] = '0' + val; - } - }); - return hex.join(''); - }, - HSBToHex = function (hsb) { - return RGBToHex(HSBToRGB(hsb)); - }, - restoreOriginal = function () { - var cal = $(this).parent(); - var col = cal.data('colorpicker').origColor; - cal.data('colorpicker').color = col; - fillRGBFields(col, cal.get(0)); - fillHexFields(col, cal.get(0)); - fillHSBFields(col, cal.get(0)); - setSelector(col, cal.get(0)); - setHue(col, cal.get(0)); - setNewColor(col, cal.get(0)); - }; - return { - init: function (opt) { - opt = $.extend({}, defaults, opt||{}); - if (typeof opt.color == 'string') { - opt.color = HexToHSB(opt.color); - } else if (opt.color.r != undefined && opt.color.g != undefined && opt.color.b != undefined) { - opt.color = RGBToHSB(opt.color); - } else if (opt.color.h != undefined && opt.color.s != undefined && opt.color.b != undefined) { - opt.color = fixHSB(opt.color); - } else { - return this; - } - return this.each(function () { - if (!$(this).data('colorpickerId')) { - var options = $.extend({}, opt); - options.origColor = opt.color; - var id = 'collorpicker_' + parseInt(Math.random() * 1000); - $(this).data('colorpickerId', id); - var cal = $(tpl).attr('id', id); - if (options.flat) { - cal.appendTo(this).show(); - } else { - cal.appendTo(document.body); - } - options.fields = cal - .find('input') - .bind('keyup', keyDown) - .bind('change', change) - .bind('blur', blur) - .bind('focus', focus); - cal - .find('span').bind('mousedown', downIncrement).end() - .find('>div.colorpicker_current_color').bind('click', restoreOriginal); - options.selector = cal.find('div.colorpicker_color').bind('mousedown', downSelector); - options.selectorIndic = options.selector.find('div div'); - options.el = this; - options.hue = cal.find('div.colorpicker_hue div'); - cal.find('div.colorpicker_hue').bind('mousedown', downHue); - options.newColor = cal.find('div.colorpicker_new_color'); - options.currentColor = cal.find('div.colorpicker_current_color'); - cal.data('colorpicker', options); - cal.find('div.colorpicker_submit') - .bind('mouseenter', enterSubmit) - .bind('mouseleave', leaveSubmit) - .bind('click', clickSubmit); - fillRGBFields(options.color, cal.get(0)); - fillHSBFields(options.color, cal.get(0)); - fillHexFields(options.color, cal.get(0)); - setHue(options.color, cal.get(0)); - setSelector(options.color, cal.get(0)); - setCurrentColor(options.color, cal.get(0)); - setNewColor(options.color, cal.get(0)); - if (options.flat) { - cal.css({ - position: 'relative', - display: 'block' - }); - } else { - $(this).bind(options.eventName, show); - } - } - }); - }, - showPicker: function() { - return this.each( function () { - if ($(this).data('colorpickerId')) { - show.apply(this); - } - }); - }, - hidePicker: function() { - return this.each( function () { - if ($(this).data('colorpickerId')) { - $('#' + $(this).data('colorpickerId')).hide(); - } - }); - }, - setColor: function(col) { - if (typeof col == 'string') { - col = HexToHSB(col); - } else if (col.r != undefined && col.g != undefined && col.b != undefined) { - col = RGBToHSB(col); - } else if (col.h != undefined && col.s != undefined && col.b != undefined) { - col = fixHSB(col); - } else { - return this; - } - return this.each(function(){ - if ($(this).data('colorpickerId')) { - var cal = $('#' + $(this).data('colorpickerId')); - cal.data('colorpicker').color = col; - cal.data('colorpicker').origColor = col; - fillRGBFields(col, cal.get(0)); - fillHSBFields(col, cal.get(0)); - fillHexFields(col, cal.get(0)); - setHue(col, cal.get(0)); - setSelector(col, cal.get(0)); - setCurrentColor(col, cal.get(0)); - setNewColor(col, cal.get(0)); - } - }); - } - }; - }(); - $.fn.extend({ - ColorPicker: ColorPicker.init, - ColorPickerHide: ColorPicker.hidePicker, - ColorPickerShow: ColorPicker.showPicker, - ColorPickerSetColor: ColorPicker.setColor - }); -})(jQuery) \ No newline at end of file diff --git a/js/favor.js b/js/favor.js deleted file mode 100644 index e8930ba..0000000 --- a/js/favor.js +++ /dev/null @@ -1,19 +0,0 @@ -$(function(){ - formFunc(); - $(".rt_btn").live("click", function(e){ - e.preventDefault(); - onRT($(this)); - }); - $(".replie_btn").live("click", function(e){ - e.preventDefault(); - onReplie($(this)); - }); - $(".delete_btn").click(function(e){ - e.preventDefault(); - onDelete($(this), "收藏"); - }); - $(".retw_btn").live("click", function(e){ - e.preventDefault(); - onNwRT($(this)); - }); -}); diff --git a/js/formfunc.js b/js/formfunc.js index 501e549..ac1e6ef 100644 --- a/js/formfunc.js +++ b/js/formfunc.js @@ -114,6 +114,7 @@ $(function (){ updateSentTip("Your image has been uploaded!", 3e3, "success"); $("#photoArea").slideToggle(100); }else{ + console.log(data); updateSentTip("Failed to upload, please try again.", 3e3, "failure"); $("#photoArea").slideToggle(100); } @@ -121,6 +122,7 @@ $(function (){ error: function (data, status, e){ updateSentTip("Failed to upload, please try again.", 3e3, "failure"); $("#photoArea").slideToggle(100); + console.log(data); } }) return false; diff --git a/js/jquery.js b/js/jquery.js index bb67c85..2f8f845 100644 --- a/js/jquery.js +++ b/js/jquery.js @@ -29,11 +29,718 @@ jQuery.cookie=function(name,value,options){if(typeof value!='undefined'){options //Lazy Load (function(a){a.fn.lazyload=function(b){var c={threshold:0,failurelimit:0,event:"scroll",effect:"show",container:window};if(b){a.extend(c,b)}var d=this;if("scroll"==c.event){a(c.container).bind("scroll",function(b){var e=0;d.each(function(){if(a.abovethetop(this,c)||a.leftofbegin(this,c)){}else if(!a.belowthefold(this,c)&&!a.rightoffold(this,c)){a(this).trigger("appear")}else{if(e++>c.failurelimit){return false}}});var f=a.grep(d,function(a){return!a.loaded});d=a(f)})}this.each(function(){var b=this;if(undefined==a(b).attr("original")){a(b).attr("original",a(b).attr("src"))}if("scroll"!=c.event||undefined==a(b).attr("src")||c.placeholder==a(b).attr("src")||a.abovethetop(b,c)||a.leftofbegin(b,c)||a.belowthefold(b,c)||a.rightoffold(b,c)){if(c.placeholder){a(b).attr("src",c.placeholder)}else{a(b).removeAttr("src")}b.loaded=false}else{b.loaded=true}a(b).one("appear",function(){if(!this.loaded){a("").bind("load",function(){a(b).hide().attr("src",a(b).attr("original"))[c.effect](c.effectspeed);b.loaded=true}).attr("src",a(b).attr("original"))}});if("scroll"!=c.event){a(b).bind(c.event,function(c){if(!b.loaded){a(b).trigger("appear")}})}});a(c.container).trigger(c.event);return this};a.belowthefold=function(b,c){if(c.container===undefined||c.container===window){var d=a(window).height()+a(window).scrollTop()}else{var d=a(c.container).offset().top+a(c.container).height()}return d<=a(b).offset().top-c.threshold};a.rightoffold=function(b,c){if(c.container===undefined||c.container===window){var d=a(window).width()+a(window).scrollLeft()}else{var d=a(c.container).offset().left+a(c.container).width()}return d<=a(b).offset().left-c.threshold};a.abovethetop=function(b,c){if(c.container===undefined||c.container===window){var d=a(window).scrollTop()}else{var d=a(c.container).offset().top}return d>=a(b).offset().top+c.threshold+a(b).height()};a.leftofbegin=function(b,c){if(c.container===undefined||c.container===window){var d=a(window).scrollLeft()}else{var d=a(c.container).offset().left}return d>=a(b).offset().left+c.threshold+a(b).width()};a.extend(a.expr[":"],{"below-the-fold":"$.belowthefold(a, {threshold : 0, container: window})","above-the-fold":"!$.belowthefold(a, {threshold : 0, container: window})","right-of-fold":"$.rightoffold(a, {threshold : 0, container: window})","left-of-fold":"!$.rightoffold(a, {threshold : 0, container: window})"})})(jQuery); -//Infinite Scroll -(function(a){a.fn.infinitescroll=function(b,c){function l(){if(n.isDone){i();return false}else{var b=o.children().get();if(b.length==0){return a.event.trigger("ajaxError",[{status:404}])}else{m.callback(o)}while(o[0].firstChild){p.appendChild(o[0].firstChild)}a(m.contentSelector)[0].appendChild(p);n.loadingMsg.fadeOut("normal");if(m.animate){var d=a(window).scrollTop()+a("#infscr-loading").height()+m.extraScrollPx+"px";a("html,body").animate({scrollTop:d},800,function(){n.isDuringAjax=false})}c.call(a(m.contentSelector)[0],b);if(!m.animate)n.isDuringAjax=false}}function k(){n.isDuringAjax=true;n.loadingMsg.appendTo(m.contentSelector).show();a(m.navSelector).hide();n.currPage++;d("heading into ajax",r);o=a(m.contentSelector).is("table")?a(""):a("
    ");p=document.createDocumentFragment();o.load(r.join(n.currPage)+" "+m.itemSelector,null,l)}function j(){if(n.isDuringAjax||n.isInvalidPage||n.isDone)return;if(!h(m,n))return;a(document).trigger("retrieve.infscr")}function i(){n.loadingMsg.find("img").hide().parent().find("div").html(m.donetext).animate({opacity:1},2e3).fadeOut("normal");m.errorCallback()}function h(){var b=0+g()-(m.localMode?a(n.container).scrollTop():a(n.container).scrollTop()||a(n.container.ownerDocument.body).scrollTop())-a(m.localMode?n.container:window).height();d("math:",b,n.pixelsFromNavToBottom);var c=b;var e=n.pixelsFromNavToBottom;return b-m.bufferPx-1&&a(b[c]).length===0){d("Your "+c+" found no elements.");return false}return true}}function d(){if(m.debug){window.console&&console.log.call(console,arguments)}}a.browser.ie6=a.browser.msie&&a.browser.version<7;var m=a.extend({},a.infinitescroll.defaults,b),n=a.infinitescroll,o,p;c=c||function(){};if(!e(m)){return false}n.container=m.localMode?this:document.documentElement;m.contentSelector=m.contentSelector||this;var q=/(.*?\/\/).*?(\/.*)/,r=a(m.nextSelector).attr("href");if(!r){d("Navigation selector not found");return}r=f(r);if(m.localMode)a(n.container)[0].scrollTop=0;n.pixelsFromNavToBottom=n.container==document.documentElement?300:g()+a(n.container).offset().top-a(m.navSelector).offset().top;n.loadingMsg=a('
  • Loading... '+m.loadingText+"
  • ");(new Image).src=m.loadingImg;a(document).ajaxError(function(b,c,e){d("Page not found. Self-destructing...");if(c.status==404){i();n.isDone=true;a(m.localMode?this:window).unbind("scroll.infscr")}});a(m.localMode?this:window).bind("scroll.infscr",j).trigger("scroll.infscr");a(document).bind("retrieve.infscr",k);return this};a.infinitescroll={defaults:{debug:false,preload:false,nextSelector:"a#more:last",loadingImg:"img/square.gif",loadingText:" Please wait...",donetext:"Sorry, but we have no more loading for you!",navSelector:"div.navigation",contentSelector:null,extraScrollPx:150,itemSelector:"#allTimeline li",animate:false,localMode:false,bufferPx:400,errorCallback:function(){},callback:undefined},loadingImg:undefined,loadingMsg:undefined,container:undefined,currPage:1,currDOMChunk:null,isDuringAjax:false,isInvalidPage:false,isDone:false}})(jQuery); +/* + -------------------------------- + Infinite Scroll + -------------------------------- + + https://github.com/paulirish/infinite-scroll + + version 2.0b2.111027 + + Copyright 2011 Paul Irish & Luke Shumard + + Licensed under the MIT license + + + Documentation: http://infinite-scroll.com/ + +*/ + +(function (window, $, undefined) { + + $.infinitescroll = function infscr(options, callback, element) { + + this.element = $(element); + this._create(options, callback); + + }; + + $.infinitescroll.defaults = { + loading: { + finished: undefined, + finishedMsg: "Congratulations, you've reached the edge of the timeline.", + img: "img/square.gif", + msg: null, + msgText: "Loading more tweets...", + selector: null, + speed: 'fast', + start: undefined + }, + state: { + isDuringAjax: false, + isInvalidPage: false, + isDestroyed: false, + isDone: false, // For when it goes all the way through the archive. + isPaused: false, + currPage: 1 + }, + callback: undefined, + debug: false, + behavior: undefined, + binder: $(window), // used to cache the selector + nextSelector: "div.navigation a:first", + navSelector: "div.navigation", + contentSelector: null, // rename to pageFragment + extraScrollPx: 150, + itemSelector: "div.post", + animate: false, + pathParse: undefined, + dataType: 'html', + appendCallback: true, + bufferPx: 40, + errorCallback: function () { }, + infid: 0, //Instance ID + pixelsFromNavToBottom: undefined, + path: undefined + }; + + + $.infinitescroll.prototype = { + + /* + ---------------------------- + Private methods + ---------------------------- + */ + + // Bind or unbind from scroll + _binding: function infscr_binding(binding) { + + var instance = this, + opts = instance.options; + + opts.v = '2.0b2.111027'; + + // if behavior is defined and this function is extended, call that instead of default + if (!!opts.behavior && this['_binding_'+opts.behavior] !== undefined) { + this['_binding_'+opts.behavior].call(this); + return; + } + + if (binding !== 'bind' && binding !== 'unbind') { + this._debug('Binding value ' + binding + ' not valid') + return false; + } + + if (binding == 'unbind') { + + (this.options.binder).unbind('smartscroll.infscr.' + instance.options.infid); + + } else { + + (this.options.binder)[binding]('smartscroll.infscr.' + instance.options.infid, function () { + instance.scroll(); + }); + + }; + + this._debug('Binding', binding); + + }, + + // Fundamental aspects of the plugin are initialized + _create: function infscr_create(options, callback) { + + // If selectors from options aren't valid, return false + if (!this._validate(options)) { return false; } + // Define options and shorthand + var opts = this.options = $.extend(true, {}, $.infinitescroll.defaults, options), + // get the relative URL - everything past the domain name. + relurl = /(.*?\/\/).*?(\/.*)/, + path = $(opts.nextSelector).attr('href'); + + // contentSelector is 'page fragment' option for .load() / .ajax() calls + opts.contentSelector = opts.contentSelector || this.element; + + // loading.selector - if we want to place the load message in a specific selector, defaulted to the contentSelector + opts.loading.selector = opts.loading.selector || opts.contentSelector; + + // if there's not path, return + if (!path) { this._debug('Navigation selector not found'); return; } + + // Set the path to be a relative URL from root. + opts.path = this._determinepath(path); + + // Define loading.msg + opts.loading.msg = $('
    Loading...
    ' + opts.loading.msgText + '
    '); + + // Preload loading.img + (new Image()).src = opts.loading.img; + + // distance from nav links to bottom + // computed as: height of the document + top offset of container - top offset of nav link + opts.pixelsFromNavToBottom = $(document).height() - $(opts.navSelector).offset().top; + + // determine loading.start actions + opts.loading.start = opts.loading.start || function() { + + $(opts.navSelector).hide(); + opts.loading.msg + .appendTo(opts.loading.selector) + .show(opts.loading.speed, function () { + beginAjax(opts); + }); + }; + + // determine loading.finished actions + opts.loading.finished = opts.loading.finished || function() { + opts.loading.msg.fadeOut('normal'); + }; + + // callback loading + opts.callback = function(instance,data) { + if (!!opts.behavior && instance['_callback_'+opts.behavior] !== undefined) { + instance['_callback_'+opts.behavior].call($(opts.contentSelector)[0], data); + } + if (callback) { + callback.call($(opts.contentSelector)[0], data, opts); + } + }; + + this._setup(); + + }, + + // Console log wrapper + _debug: function infscr_debug() { + + if (this.options && this.options.debug) { + return window.console && console.log.call(console, arguments); + } + + }, + + // find the number to increment in the path. + _determinepath: function infscr_determinepath(path) { + + var opts = this.options; + + // if behavior is defined and this function is extended, call that instead of default + if (!!opts.behavior && this['_determinepath_'+opts.behavior] !== undefined) { + this['_determinepath_'+opts.behavior].call(this,path); + return; + } + + if (!!opts.pathParse) { + + this._debug('pathParse manual'); + return opts.pathParse(path, this.options.state.currPage+1); + + } else if (path.match(/^(.*?)\b2\b(.*?$)/)) { + path = path.match(/^(.*?)\b2\b(.*?$)/).slice(1); + + // if there is any 2 in the url at all. + } else if (path.match(/^(.*?)2(.*?$)/)) { + + // page= is used in django: + // http://www.infinite-scroll.com/changelog/comment-page-1/#comment-127 + if (path.match(/^(.*?page=)2(\/.*|$)/)) { + path = path.match(/^(.*?page=)2(\/.*|$)/).slice(1); + return path; + } + + path = path.match(/^(.*?)2(.*?$)/).slice(1); + + } else { + + // page= is used in drupal too but second page is page=1 not page=2: + // thx Jerod Fritz, vladikoff + if (path.match(/^(.*?page=)1(\/.*|$)/)) { + path = path.match(/^(.*?page=)1(\/.*|$)/).slice(1); + return path; + } else { + this._debug('Sorry, we couldn\'t parse your Next (Previous Posts) URL. Verify your the css selector points to the correct A tag. If you still get this error: yell, scream, and kindly ask for help at infinite-scroll.com.'); + // Get rid of isInvalidPage to allow permalink to state + opts.state.isInvalidPage = true; //prevent it from running on this page. + } + } + this._debug('determinePath', path); + return path; + + }, + + // Custom error + _error: function infscr_error(xhr) { + + var opts = this.options; + + // if behavior is defined and this function is extended, call that instead of default + if (!!opts.behavior && this['_error_'+opts.behavior] !== undefined) { + this['_error_'+opts.behavior].call(this,xhr); + return; + } + + if (xhr !== 'destroy' && xhr !== 'end') { + xhr = 'unknown'; + } + + this._debug('Error', xhr); + + if (xhr == 'end') { + this._showdonemsg(); + } + + opts.state.isDone = true; + opts.state.currPage = 1; // if you need to go back to this instance + opts.state.isPaused = false; + this._binding('unbind'); + + }, + + // Load Callback + _loadcallback: function infscr_loadcallback(box, data) { + + var opts = this.options, + callback = this.options.callback, // GLOBAL OBJECT FOR CALLBACK + result = (opts.state.isDone) ? 'done' : (!opts.appendCallback) ? 'no-append' : 'append', + frag; + + // if behavior is defined and this function is extended, call that instead of default + if (!!opts.behavior && this['_loadcallback_'+opts.behavior] !== undefined) { + this['_loadcallback_'+opts.behavior].call(this,box,data); + return; + } + + switch (result) { + + case 'done': + + this._showdonemsg(); + return false; + + break; + + case 'no-append': + + if (opts.dataType == 'html') { + data = '
    ' + data + '
    '; + data = $(data).find(opts.itemSelector); + }; + + break; + + case 'append': + + var children = box.children(); + + // if it didn't return anything + if (children.length == 0) { + return this._error('end'); + } + + // added by esmizzle 2012-01-26 - update the path to the link for the next set of elements + var nexturl = $(data).find(opts.nextSelector).attr('href'); + this._debug('nexturl: '+ nexturl) + this.options.path[0] = nexturl; + this.options.path[1] = '#pathcomplete'; + + // use a documentFragment because it works when content is going into a table or UL + frag = document.createDocumentFragment(); + while (box[0].firstChild) { + frag.appendChild(box[0].firstChild); + } + + this._debug('contentSelector', $(opts.contentSelector)[0]) + $(opts.contentSelector)[0].appendChild(frag); + // previously, we would pass in the new DOM element as context for the callback + // however we're now using a documentfragment, which doesnt havent parents or children, + // so the context is the contentContainer guy, and we pass in an array + // of the elements collected as the first argument. + + data = children.get(); + + + break; + + } + + // loadingEnd function + opts.loading.finished.call($(opts.contentSelector)[0],opts) + + + // smooth scroll to ease in the new content + if (opts.animate) { + var scrollTo = $(window).scrollTop() + $('#infscr-loading').height() + opts.extraScrollPx + 'px'; + $('html,body').animate({ scrollTop: scrollTo }, 800, function () { opts.state.isDuringAjax = false; }); + } + + if (!opts.animate) opts.state.isDuringAjax = false; // once the call is done, we can allow it again. + + callback(this,data); + + }, + + _nearbottom: function infscr_nearbottom() { + + var opts = this.options, + pixelsFromWindowBottomToBottom = 0 + $(document).height() - (opts.binder.scrollTop()) - $(window).height(); + + // if behavior is defined and this function is extended, call that instead of default + if (!!opts.behavior && this['_nearbottom_'+opts.behavior] !== undefined) { + return this['_nearbottom_'+opts.behavior].call(this); + } + + this._debug('math:', pixelsFromWindowBottomToBottom, opts.pixelsFromNavToBottom); + + // if distance remaining in the scroll (including buffer) is less than the orignal nav to bottom.... + return (pixelsFromWindowBottomToBottom - opts.bufferPx < opts.pixelsFromNavToBottom); + + }, + + // Pause / temporarily disable plugin from firing + _pausing: function infscr_pausing(pause) { + + var opts = this.options; + + // if behavior is defined and this function is extended, call that instead of default + if (!!opts.behavior && this['_pausing_'+opts.behavior] !== undefined) { + this['_pausing_'+opts.behavior].call(this,pause); + return; + } + + // If pause is not 'pause' or 'resume', toggle it's value + if (pause !== 'pause' && pause !== 'resume' && pause !== null) { + this._debug('Invalid argument. Toggling pause value instead'); + }; + + pause = (pause && (pause == 'pause' || pause == 'resume')) ? pause : 'toggle'; + + switch (pause) { + case 'pause': + opts.state.isPaused = true; + break; + + case 'resume': + opts.state.isPaused = false; + break; + + case 'toggle': + opts.state.isPaused = !opts.state.isPaused; + break; + } + + this._debug('Paused', opts.state.isPaused); + return false; + + }, + + // Behavior is determined + // If the behavior option is undefined, it will set to default and bind to scroll + _setup: function infscr_setup() { + + var opts = this.options; + + // if behavior is defined and this function is extended, call that instead of default + if (!!opts.behavior && this['_setup_'+opts.behavior] !== undefined) { + this['_setup_'+opts.behavior].call(this); + return; + } + + this._binding('bind'); + + return false; + + }, + + // Show done message + _showdonemsg: function infscr_showdonemsg() { + + var opts = this.options; + + // if behavior is defined and this function is extended, call that instead of default + if (!!opts.behavior && this['_showdonemsg_'+opts.behavior] !== undefined) { + this['_showdonemsg_'+opts.behavior].call(this); + return; + } + + opts.loading.msg + .find('img') + .hide() + .parent() + .find('div').html(opts.loading.finishedMsg).animate({ opacity: 1 }, 2000, function () { + $(this).parent().fadeOut('normal'); + }); + + // user provided callback when done + opts.errorCallback.call($(opts.contentSelector)[0],'done'); + + }, + + // grab each selector option and see if any fail + _validate: function infscr_validate(opts) { + + for (var key in opts) { + if (key.indexOf && key.indexOf('Selector') > -1 && $(opts[key]).length === 0) { + this._debug('Your ' + key + ' found no elements.'); + return false; + } + return true; + } + + }, + + /* + ---------------------------- + Public methods + ---------------------------- + */ + + // Bind to scroll + bind: function infscr_bind() { + this._binding('bind'); + }, + + // Destroy current instance of plugin + destroy: function infscr_destroy() { + + this.options.state.isDestroyed = true; + return this._error('destroy'); + + }, + + // Set pause value to false + pause: function infscr_pause() { + this._pausing('pause'); + }, + + // Set pause value to false + resume: function infscr_resume() { + this._pausing('resume'); + }, + + // Retrieve next set of content items + retrieve: function infscr_retrieve(pageNum) { + + var instance = this, + opts = instance.options, + path = opts.path, + box, frag, desturl, method, condition, + pageNum = pageNum || null, + getPage = (!!pageNum) ? pageNum : opts.state.currPage; + beginAjax = function infscr_ajax(opts) { + + // increment the URL bit. e.g. /page/3/ + opts.state.currPage++; + + instance._debug('heading into ajax', path); + + // if we're dealing with a table we can't use DIVs + box = $(opts.contentSelector).is('table') ? $('') : $('
    '); + + desturl = (path[1] == '#pathcomplete') ? path[0] : path.join(opts.state.currPage); // only throw the currPage in there if we need it + instance._debug('desturl: '+desturl); + + method = (opts.dataType == 'html' || opts.dataType == 'json') ? opts.dataType : 'html+callback'; + if (opts.appendCallback && opts.dataType == 'html') method += '+callback' + + switch (method) { + + case 'html+callback': + instance._debug('Using HTML via .load() method'); + box.load(desturl + ' ' + opts.itemSelector, null, function infscr_ajax_callback(responseText) { + instance._loadcallback(box, responseText); + }); + + break; + + case 'html': + case 'json': + + instance._debug('Using ' + (method.toUpperCase()) + ' via $.ajax() method'); + $.ajax({ + // params + url: desturl, + dataType: opts.dataType, + complete: function infscr_ajax_callback(jqXHR, textStatus) { + condition = (typeof (jqXHR.isResolved) !== 'undefined') ? (jqXHR.isResolved()) : (textStatus === "success" || textStatus === "notmodified"); + (condition) ? instance._loadcallback(box, jqXHR.responseText) : instance._error('end'); + } + }); + + break; + } + }; + + // if behavior is defined and this function is extended, call that instead of default + if (!!opts.behavior && this['retrieve_'+opts.behavior] !== undefined) { + this['retrieve_'+opts.behavior].call(this,pageNum); + return; + } + + + // for manual triggers, if destroyed, get out of here + if (opts.state.isDestroyed) { + this._debug('Instance is destroyed'); + return false; + }; + + // we dont want to fire the ajax multiple times + opts.state.isDuringAjax = true; + + opts.loading.start.call($(opts.contentSelector)[0],opts); + + }, + + // Check to see next page is needed + scroll: function infscr_scroll() { + + var opts = this.options, + state = opts.state; + + // if behavior is defined and this function is extended, call that instead of default + if (!!opts.behavior && this['scroll_'+opts.behavior] !== undefined) { + this['scroll_'+opts.behavior].call(this); + return; + } + + if (state.isDuringAjax || state.isInvalidPage || state.isDone || state.isDestroyed || state.isPaused) return; + + if (!this._nearbottom()) return; + + this.retrieve(); + + }, + + // Toggle pause value + toggle: function infscr_toggle() { + this._pausing(); + }, + + // Unbind from scroll + unbind: function infscr_unbind() { + this._binding('unbind'); + }, + + // update options + update: function infscr_options(key) { + if ($.isPlainObject(key)) { + this.options = $.extend(true,this.options,key); + } + } + + } + + + /* + ---------------------------- + Infinite Scroll function + ---------------------------- + + Borrowed logic from the following... + + jQuery UI + - https://github.com/jquery/jquery-ui/blob/master/ui/jquery.ui.widget.js + + jCarousel + - https://github.com/jsor/jcarousel/blob/master/lib/jquery.jcarousel.js + + Masonry + - https://github.com/desandro/masonry/blob/master/jquery.masonry.js + + */ + + $.fn.infinitescroll = function infscr_init(options, callback) { + + + var thisCall = typeof options; + + switch (thisCall) { + + // method + case 'string': + + var args = Array.prototype.slice.call(arguments, 1); + + this.each(function () { + + var instance = $.data(this, 'infinitescroll'); + + if (!instance) { + // not setup yet + // return $.error('Method ' + options + ' cannot be called until Infinite Scroll is setup'); + return false; + } + if (!$.isFunction(instance[options]) || options.charAt(0) === "_") { + // return $.error('No such method ' + options + ' for Infinite Scroll'); + return false; + } + + // no errors! + instance[options].apply(instance, args); + + }); + + break; + + // creation + case 'object': + + this.each(function () { + + var instance = $.data(this, 'infinitescroll'); + + if (instance) { + + // update options of current instance + instance.update(options); + + } else { + + // initialize new instance + $.data(this, 'infinitescroll', new $.infinitescroll(options, callback, this)); + + } + + }); + + break; + + } + + return this; + + }; + + + + /* + * smartscroll: debounced scroll event for jQuery * + * https://github.com/lukeshumard/smartscroll + * Based on smartresize by @louis_remi: https://github.com/lrbabe/jquery.smartresize.js * + * Copyright 2011 Louis-Remi & Luke Shumard * Licensed under the MIT license. * + */ + + var event = $.event, + scrollTimeout; + + event.special.smartscroll = { + setup: function () { + $(this).bind("scroll", event.special.smartscroll.handler); + }, + teardown: function () { + $(this).unbind("scroll", event.special.smartscroll.handler); + }, + handler: function (event, execAsap) { + // Save the context + var context = this, + args = arguments; + + // set correct event type + event.type = "smartscroll"; + + if (scrollTimeout) { clearTimeout(scrollTimeout); } + scrollTimeout = setTimeout(function () { + $.event.handle.apply(context, args); + }, execAsap === "execAsap" ? 0 : 100); + } + }; + + $.fn.smartscroll = function (fn) { + return fn ? this.bind("smartscroll", fn) : this.trigger("smartscroll", ["execAsap"]); + }; + + +})(window, jQuery); + //Autocomplete -(function(a){a.fn.extend({autocomplete:function(b,c){var d=typeof b=="string";c=a.extend({},a.Autocompleter.defaults,{url:d?b:null,data:d?null:b,delay:d?a.Autocompleter.defaults.delay:10,max:c&&!c.scroll?10:150},c);c.highlight=c.highlight||function(a){return a};c.formatMatch=c.formatMatch||c.formatItem;return this.each(function(){new a.Autocompleter(this,c)})},result:function(a){return this.bind("result",a)},search:function(a){return this.trigger("search",[a])},flushCache:function(){return this.trigger("flushCache")},setOptions:function(a){return this.trigger("setOptions",[a])},unautocomplete:function(){return this.trigger("unautocomplete")}});a.Autocompleter=function(b,c){function x(){e.removeClass(c.loadingClass)}function w(b){var d=[];var e=b.split("\n");for(var f=0;f0){var i={timestamp:+(new Date)};a.each(c.extraParams,function(a,b){i[a]=typeof b=="function"?b():b});a.ajax({mode:"abort",port:"autocomplete"+b.name,dataType:c.dataType,url:c.url,data:a.extend({q:q(d),limit:c.max},i),success:function(a){var b=c.parse&&c.parse(a)||w(a);h.add(d,b);e(d,b)}})}else{l.emptyList();f(d)}}function u(a,b){if(b&&b.length&&i){x();l.display(b,a);r(a,b[0].value);l.show()}else{t()}}function t(){var d=l.visible();l.hide();clearTimeout(f);x();if(c.mustMatch){e.search(function(a){if(!a){if(c.multiple){var b=p(e.val()).slice(0,-1);e.val(b.join(c.multipleSeparator)+(b.length?c.multipleSeparator:""))}else e.val("")}})}if(d)a.Autocompleter.Selection(b,b.value.length,b.value.length)}function s(){clearTimeout(f);f=setTimeout(t,200)}function r(f,h){if(c.autoFill&&q(e.val()).toLowerCase()==f.toLowerCase()&&j!=d.BACKSPACE){e.val(e.val()+h.substring(q(g).length));a.Autocompleter.Selection(b,g.length,g.length+h.length)}}function q(a){if(!c.multiple)return a;var b=p(a);return b[b.length-1]}function p(b){if(!b){return[""]}var d=b.split(c.multipleSeparator);var e=[];a.each(d,function(b,c){if(a.trim(c))e[b]=a.trim(c)});return e}function o(a,b){if(j==d.DEL){l.hide();return}var f=e.val();if(!b&&f==g)return;g=f;f=q(f);if(f.length>=c.minChars){e.addClass(c.loadingClass);if(!c.matchCase)f=f.toLowerCase();v(f,u,t)}else{x();l.hide()}}function n(){var a=l.selected();if(!a)return false;var b=a.result;g=b;if(c.multiple){var d=p(e.val());if(d.length>1){b=d.slice(0,d.length-1).join(c.multipleSeparator)+c.multipleSeparator+b}b+=c.multipleSeparator}e.val(b);t();e.trigger("result",[a.data,a.value]);return true}var d={UP:38,DOWN:40,DEL:46,TAB:9,RETURN:13,ESC:27,COMMA:188,PAGEUP:33,PAGEDOWN:34,BACKSPACE:8};var e=a(b).attr("autocomplete","off").addClass(c.inputClass);var f;var g="";var h=a.Autocompleter.Cache(c);var i=0;var j;var k={mouseDownOnSelect:false};var l=a.Autocompleter.Select(c,b,n,k);var m;a.browser.opera&&a(b.form).bind("submit.autocomplete",function(){if(m){m=false;return false}});e.bind((a.browser.opera?"keypress":"keydown")+".autocomplete",function(b){j=b.keyCode;switch(b.keyCode){case d.UP:b.preventDefault();if(l.visible()){l.prev()}else{o(0,true)}break;case d.DOWN:b.preventDefault();if(l.visible()){l.next()}else{o(0,true)}break;case d.PAGEUP:b.preventDefault();if(l.visible()){l.pageUp()}else{o(0,true)}break;case d.PAGEDOWN:b.preventDefault();if(l.visible()){l.pageDown()}else{o(0,true)}break;case c.multiple&&a.trim(c.multipleSeparator)==","&&d.COMMA:case d.TAB:case d.RETURN:if(n()){b.preventDefault();m=true;return false}break;case d.ESC:l.hide();break;default:clearTimeout(f);f=setTimeout(o,c.delay);break}}).focus(function(){i++}).blur(function(){i=0;if(!k.mouseDownOnSelect){s()}}).click(function(){if(i++>1&&!l.visible()){o(0,true)}}).bind("search",function(){function c(a,c){var d;if(c&&c.length){for(var f=0;f1?arguments[1]:null;a.each(p(e.val()),function(a,b){v(b,c,c)})}).bind("flushCache",function(){h.flush()}).bind("setOptions",function(){a.extend(c,arguments[1]);if("data"in arguments[1])h.populate()}).bind("unautocomplete",function(){l.unbind();e.unbind();a(b.form).unbind(".autocomplete")});};a.Autocompleter.defaults={inputClass:"ac_input",resultsClass:"ac_results",loadingClass:"ac_loading",minChars:1,delay:400,matchCase:false,matchSubset:true,matchContains:false,cacheLength:10,max:100,mustMatch:false,extraParams:{},selectFirst:true,formatItem:function(a){return a[0]},formatMatch:null,autoFill:false,width:0,multiple:false,multipleSeparator:", ",highlight:function(a,b){return a.replace(new RegExp("(?![^&;]+;)(?!<[^<>]*)("+b.replace(/([\^\$\(\)\[\]\{\}\*\.\+\?\|\\])/gi,"\\$1")+")(?![^<>]*>)(?![^&;]+;)","gi"),"$1")},scroll:true,scrollHeight:180};a.Autocompleter.Cache=function(b){function h(){c={};d=0}function g(){if(!b.data)return false;var c={},d=0;if(!b.url)b.cacheLength=1;c[""]=[];for(var e=0,g=b.data.length;eb.cacheLength){h()}if(!c[a]){d++}c[a]=e}function e(a,c){if(!b.matchCase)a=a.toLowerCase();var d=a.indexOf(c);if(b.matchContains=="word"){d=a.toLowerCase().search("\\b"+c.toLowerCase())}if(d==-1)return false;return d==0||b.matchContains}var c={};var d=0;setTimeout(g,25);return{flush:h,add:f,populate:g,load:function(f){if(!b.cacheLength||!d)return null;if(!b.url&&b.matchContains){var g=[];for(var h in c){if(h.length>0){var i=c[h];a.each(i,function(a,b){if(e(b.value,f)){g.push(b)}})}}return g}else if(c[f]){return c[f]}else if(b.matchSubset){for(var j=f.length-1;j>=b.minChars;j--){var i=c[f.substr(0,j)];if(i){var g=[];a.each(i,function(a,b){if(e(b.value,f)){g[g.length]=b}});return g}}}return null}}};a.Autocompleter.Select=function(b,c,d,e){function s(){m.empty();var c=r(i.length);for(var d=0;d").html(b.highlight(e,j)).addClass(d%2==0?"ac_even":"ac_odd").appendTo(m)[0];a.data(k,"ac_data",i[d])}g=m.find("li");if(b.selectFirst){g.slice(0,1).addClass(f.ACTIVE);h=0}if(a.fn.bgiframe)m.bgiframe()}function r(a){return b.max&&b.max=g.size()){h=0}}function p(a){g.slice(h,h+1).removeClass(f.ACTIVE);q(a);var c=g.slice(h,h+1).addClass(f.ACTIVE);if(b.scroll){var d=0;g.slice(0,h).each(function(){d+=this.offsetHeight});if(d+c[0].offsetHeight-m.scrollTop()>m[0].clientHeight){m.scrollTop(d+c[0].offsetHeight-m.innerHeight())}else if(d").hide().addClass(b.resultsClass).css("position","absolute").appendTo(document.body);m=a("
      ").appendTo(l).mouseover(function(b){if(o(b).nodeName&&o(b).nodeName.toUpperCase()=="LI"){h=a("li",m).removeClass(f.ACTIVE).index(o(b));a(o(b)).addClass(f.ACTIVE)}}).click(function(b){a(o(b)).addClass(f.ACTIVE);d();c.focus();return false}).mousedown(function(){e.mouseDownOnSelect=true}).mouseup(function(){e.mouseDownOnSelect=false});if(b.width>0)l.css("width",b.width);k=false}var f={ACTIVE:"ac_over"};var g,h=-1,i,j="",k=true,l,m;return{display:function(a,b){n();i=a;j=b;s()},next:function(){p(1)},prev:function(){p(-1)},pageUp:function(){if(h!=0&&h-8<0){p(-h)}else{p(-8)}},pageDown:function(){if(h!=g.size()-1&&h+8>g.size()){p(g.size()-1-h)}else{p(8)}},hide:function(){l&&l.hide();g&&g.removeClass(f.ACTIVE);h=-1},visible:function(){return l&&l.is(":visible")},current:function(){return this.visible()&&(g.filter("."+f.ACTIVE)[0]||b.selectFirst&&g[0])},show:function(){var d=a(c).offset();l.css({width:typeof b.width=="string"||b.width>0?b.width:a(c).width(),top:d.top+c.offsetHeight,left:d.left}).show();if(b.scroll){m.scrollTop(0);m.css({maxHeight:b.scrollHeight,overflow:"auto"});if(a.browser.msie&&typeof document.body.style.maxHeight==="undefined"){var e=0;g.each(function(){e+=this.offsetHeight});var f=e>b.scrollHeight;m.css("height",f?b.scrollHeight:e);if(!f){g.width(m.width()-parseInt(g.css("padding-left"))-parseInt(g.css("padding-right")))}}}},selected:function(){var b=g&&g.filter("."+f.ACTIVE).removeClass(f.ACTIVE);return b&&b.length&&a.data(b[0],"ac_data")},emptyList:function(){m&&m.empty()},unbind:function(){l&&l.remove()}}};a.Autocompleter.Selection=function(a,b,c){if(a.createTextRange){var d=a.createTextRange();d.collapse(true);d.moveStart("character",b);d.moveEnd("character",c);d.select()}else if(a.setSelectionRange){a.setSelectionRange(b,c)}else{if(a.selectionStart){a.selectionStart=b;a.selectionEnd=c}}a.focus()}})(jQuery); +(function(a){a.fn.extend({autocomplete:function(b,c){var d=typeof b=="string";c=a.extend({},a.Autocompleter.defaults,{url:d?b:null,data:d?null:b,delay:d?a.Autocompleter.defaults.delay:10,max:c&&!c.scroll?10:150},c);c.highlight=c.highlight||function(a){return a};c.formatMatch=c.formatMatch||c.formatItem;return this.each(function(){new a.Autocompleter(this,c)})},result:function(a){return this.bind("result",a)},search:function(a){return this.trigger("search",[a])},flushCache:function(){return this.trigger("flushCache")},setOptions:function(a){return this.trigger("setOptions",[a])},unautocomplete:function(){return this.trigger("unautocomplete")}});a.Autocompleter=function(b,c){function x(){e.removeClass(c.loadingClass)}function w(b){var d=[];var e=b.split("\n");for(var f=0;f0){var i={timestamp:+(new Date)};a.each(c.extraParams,function(a,b){i[a]=typeof b=="function"?b():b});a.ajax({mode:"abort",port:"autocomplete"+b.name,dataType:c.dataType,url:c.url,data:a.extend({q:q(d),limit:c.max},i),success:function(a){var b=c.parse&&c.parse(a)||w(a);h.add(d,b);e(d,b)}})}else{l.emptyList();f(d)}}function u(a,b){if(b&&b.length&&i){x();l.display(b,a);r(a,b[0].value);l.show()}else{t()}}function t(){var d=l.visible();l.hide();clearTimeout(f);x();if(c.mustMatch){e.search(function(a){if(!a){if(c.multiple){var b=p(e.val()).slice(0,-1);e.val(b.join(c.multipleSeparator)+(b.length?c.multipleSeparator:""))}else e.val("")}})}if(d)a.Autocompleter.Selection(b,b.value.length,b.value.length)}function s(){clearTimeout(f);f=setTimeout(t,200)}function r(f,h){if(c.autoFill&&q(e.val()).toLowerCase()==f.toLowerCase()&&j!=d.BACKSPACE){e.val(e.val()+h.substring(q(g).length));a.Autocompleter.Selection(b,g.length,g.length+h.length)}}function q(a){if(!c.multiple)return a;var b=p(a);return b[b.length-1]}function p(b){if(!b){return[""]}var d=b.split(c.multipleSeparator);var e=[];a.each(d,function(b,c){if(a.trim(c))e[b]=a.trim(c)});return e}function o(a,b){if(j==d.DEL){l.hide();return}var f=e.val();if(!b&&f==g)return;g=f;f=q(f);if(f.length>=c.minChars){e.addClass(c.loadingClass);if(!c.matchCase)f=f.toLowerCase();v(f,u,t)}else{x();l.hide()}}function n(){var a=l.selected();if(!a)return false;var b=a.result;g=b;if(c.multiple){var d=p(e.val());if(d.length>1){b=d.slice(0,d.length-1).join(c.multipleSeparator)+c.multipleSeparator+b}b+=c.multipleSeparator}e.val(b);t();e.trigger("result",[a.data,a.value]);return true}var d={UP:38,DOWN:40,DEL:46,TAB:9,RETURN:13,ESC:27,COMMA:188,PAGEUP:33,PAGEDOWN:34,BACKSPACE:8};var e=a(b).attr("autocomplete","off").addClass(c.inputClass);var f;var g="";var h=a.Autocompleter.Cache(c);var i=0;var j;var k={mouseDownOnSelect:false};var l=a.Autocompleter.Select(c,b,n,k);var m;a.browser.opera&&a(b.form).bind("submit.autocomplete",function(){if(m){m=false;return false}});e.bind((a.browser.opera?"keypress":"keydown")+".autocomplete",function(b){j=b.keyCode;switch(b.keyCode){case d.UP:b.preventDefault();if(l.visible()){l.prev()}else{o(0,true)}break;case d.DOWN:b.preventDefault();if(l.visible()){l.next()}else{o(0,true)}break;case d.PAGEUP:b.preventDefault();if(l.visible()){l.pageUp()}else{o(0,true)}break;case d.PAGEDOWN:b.preventDefault();if(l.visible()){l.pageDown()}else{o(0,true)}break;case c.multiple&&a.trim(c.multipleSeparator)==","&&d.COMMA:case d.TAB:case d.RETURN:if(n()){b.preventDefault();m=true;return false}break;case d.ESC:l.hide();break;default:clearTimeout(f);f=setTimeout(o,c.delay);break}}).focus(function(){i++}).blur(function(){i=0;if(!k.mouseDownOnSelect){s()}}).click(function(){if(i++>1&&!l.visible()){o(0,true)}}).bind("search",function(){function c(a,c){var d;if(c&&c.length){for(var f=0;f1?arguments[1]:null;a.each(p(e.val()),function(a,b){v(b,c,c)})}).bind("flushCache",function(){h.flush()}).bind("setOptions",function(){a.extend(c,arguments[1]);if("data"in arguments[1])h.populate()}).bind("unautocomplete",function(){l.unbind();e.unbind();a(b.form).unbind(".autocomplete")});};a.Autocompleter.defaults={inputClass:"ac_input",resultsClass:"ac_results",loadingClass:"ac_loading",minChars:1,delay:400,matchCase:false,matchSubset:true,matchContains:false,cacheLength:10,max:100,mustMatch:false,extraParams:{},selectFirst:true,formatItem:function(a){return a[0]},formatMatch:null,autoFill:false,width:0,multiple:false,multipleSeparator:", ",highlight:function(a,b){return a.replace(new RegExp("(?![^&;]+;)(?!<[^<>]*)("+b.replace(/([\^\$\(\)\[\]\{\}\*\.\+\?\|\\])/gi,"\\$1")+")(?![^<>]*>)(?![^&;]+;)","gi"),"$1")},scroll:true,scrollHeight:180};a.Autocompleter.Cache=function(b){function h(){c={};d=0}function g(){if(!b.data)return false;var c={},d=0;if(!b.url)b.cacheLength=1;c[""]=[];for(var e=0,g=b.data.length;eb.cacheLength){h()}if(!c[a]){d++}c[a]=e}function e(a,c){if(!b.matchCase)a=a.toLowerCase();var d=a.indexOf(c);if(b.matchContains=="word"){d=a.toLowerCase().search("\\b"+c.toLowerCase())}if(d==-1)return false;return d==0||b.matchContains}var c={};var d=0;setTimeout(g,25);return{flush:h,add:f,populate:g,load:function(f){if(!b.cacheLength||!d)return null;if(!b.url&&b.matchContains){var g=[];for(var h in c){if(h.length>0){var i=c[h];a.each(i,function(a,b){if(e(b.value,f)){g.push(b)}})}}return g}else if(c[f]){return c[f]}else if(b.matchSubset){for(var j=f.length-1;j>=b.minChars;j--){var i=c[f.substr(0,j)];if(i){var g=[];a.each(i,function(a,b){if(e(b.value,f)){g[g.length]=b}});return g}}}return null}}};a.Autocompleter.Select=function(b,c,d,e){function s(){m.empty();var c=r(i.length);for(var d=0;d").html(b.highlight(e,j)).addClass(d%2==0?"ac_even":"ac_odd").appendTo(m)[0];a.data(k,"ac_data",i[d])}g=m.find("li");if(b.selectFirst){g.slice(0,1).addClass(f.ACTIVE);h=0}if(a.fn.bgiframe)m.bgiframe()}function r(a){return b.max&&b.max=g.size()){h=0}}function p(a){g.slice(h,h+1).removeClass(f.ACTIVE);q(a);var c=g.slice(h,h+1).addClass(f.ACTIVE);if(b.scroll){var d=0;g.slice(0,h).each(function(){d+=this.offsetHeight});if(d+c[0].offsetHeight-m.scrollTop()>m[0].clientHeight){m.scrollTop(d+c[0].offsetHeight-m.innerHeight())}else if(d").hide().addClass(b.resultsClass).css("position","absolute").appendTo(document.body);m=a("
        ").appendTo(l).mouseover(function(b){if(o(b).nodeName&&o(b).nodeName.toUpperCase()=="LI"){h=a("li",m).removeClass(f.ACTIVE).index(o(b));a(o(b)).addClass(f.ACTIVE)}}).click(function(b){b.preventDefault();a(o(b)).addClass(f.ACTIVE);d();c.focus()}).mousedown(function(){e.mouseDownOnSelect=true}).mouseup(function(){e.mouseDownOnSelect=false});if(b.width>0)l.css("width",b.width);k=false}var f={ACTIVE:"ac_over"};var g,h=-1,i,j="",k=true,l,m;return{display:function(a,b){n();i=a;j=b;s()},next:function(){p(1)},prev:function(){p(-1)},pageUp:function(){if(h!=0&&h-8<0){p(-h)}else{p(-8)}},pageDown:function(){if(h!=g.size()-1&&h+8>g.size()){p(g.size()-1-h)}else{p(8)}},hide:function(){l&&l.hide();g&&g.removeClass(f.ACTIVE);h=-1},visible:function(){return l&&l.is(":visible")},current:function(){return this.visible()&&(g.filter("."+f.ACTIVE)[0]||b.selectFirst&&g[0])},show:function(){var d=a(c).offset();l.css({width:typeof b.width=="string"||b.width>0?b.width:a(c).width(),top:d.top+c.offsetHeight,left:d.left}).show();if(b.scroll){m.scrollTop(0);m.css({maxHeight:b.scrollHeight,overflow:"auto"});if(a.browser.msie&&typeof document.body.style.maxHeight==="undefined"){var e=0;g.each(function(){e+=this.offsetHeight});var f=e>b.scrollHeight;m.css("height",f?b.scrollHeight:e);if(!f){g.width(m.width()-parseInt(g.css("padding-left"))-parseInt(g.css("padding-right")))}}}},selected:function(){var b=g&&g.filter("."+f.ACTIVE).removeClass(f.ACTIVE);return b&&b.length&&a.data(b[0],"ac_data")},emptyList:function(){m&&m.empty()},unbind:function(){l&&l.remove()}}};a.Autocompleter.Selection=function(a,b,c){if(a.createTextRange){var d=a.createTextRange();d.collapse(true);d.moveStart("character",b);d.moveEnd("character",c);d.select()}else if(a.setSelectionRange){a.setSelectionRange(b,c)}else{if(a.selectionStart){a.selectionStart=b;a.selectionEnd=c}}a.focus()}})(jQuery); //Timeago (function(a){function f(a){return(new Date).getTime()-a.getTime()}function e(a){return b.inWords(f(a))}function d(b){b=a(b);var c=a.trim(b.attr("id"));if(!b.data("timeago")){b.data("timeago",{datetime:new Date(c*1e3)})}return b.data("timeago")}function c(){var b=d(this);if(!isNaN(b.datetime)){a(this).text(e(b.datetime))}return this}a.timeago=function(a){if(a instanceof Date){return e(a)}};var b=a.timeago;a.extend(a.timeago,{settings:{refreshMillis:6e4,allowFuture:false,strings:{prefixAgo:null,prefixFromNow:null,suffixAgo:"ago",suffixFromNow:"from now",seconds:"%d seconds",minute:"about a minute",minutes:"%d minutes",hour:"about an hour",hours:"about %d hours",day:"a day",days:"%d days",month:"about a month",months:"%d months",year:"about a year",years:"%d years",numbers:[]}},inWords:function(b){function k(d,e){var f=a.isFunction(d)?d(e,b):d;var g=c.numbers&&c.numbers[e]||e;return f.replace(/%d/i,g)}var c=this.settings.strings;var d=c.prefixAgo;var e=c.suffixAgo;if(this.settings.allowFuture){if(b<0){d=c.prefixFromNow;e=c.suffixFromNow}b=Math.abs(b)}var f=b/1e3;var g=f/60;var h=g/60;var i=h/24;var j=i/365;var l=f<45&&k(c.seconds,Math.round(f))||f<90&&k(c.minute,1)||g<45&&k(c.minutes,Math.round(g))||g<90&&k(c.hour,1)||h<24&&k(c.hours,Math.round(h))||h<48&&k(c.day,1)||i<30&&k(c.days,Math.floor(i))||i<60&&k(c.month,1)||i<365&&k(c.months,Math.floor(i/30))||j<2&&k(c.year,1)||k(c.years,Math.floor(j));return a.trim([d,l,e].join(" "))}});a.fn.timeago=function(){var a=this;a.each(c);var d=b.settings;if(d.refreshMillis>0){setInterval(function(){a.each(c)},d.refreshMillis)}return a}})(jQuery); @@ -42,4 +749,4 @@ jQuery.cookie=function(name,value,options){if(typeof value!='undefined'){options (function(a){a.extend(a.fn,{caret:function(a,b){var c=this[0];if(c){if(typeof a=="undefined"){if(c.selectionStart){a=c.selectionStart;b=c.selectionEnd}else if(document.selection){var d=this.val();var e=document.selection.createRange().duplicate();e.moveEnd("character",d.length);a=e.text==""?d.length:d.lastIndexOf(e.text);e=document.selection.createRange().duplicate();e.moveStart("character",-d.length);b=e.text.length}}else{var d=this.val();if(typeof a!="number")a=-1;if(typeof b!="number")b=-1;if(a<0)a=0;if(b>d.length)b=d.length;if(bb)a=b;c.focus();if(c.selectionStart){c.selectionStart=a;c.selectionEnd=b}else if(document.selection){var e=c.createTextRange();e.collapse(true);e.moveStart("character",a);e.moveEnd("character",b-a);e.select()}}return{start:a,end:b}}}})})(jQuery); //ajaxFileupload -jQuery.extend({createUploadIframe:function(a,b){var c="jUploadFrame"+a;var d='