New plugin loader, page features, API0.2b, Bugfixes

This commit is contained in:
2016-11-19 16:13:37 +01:00
parent 6d1eef25ca
commit b97faf21fd
230 changed files with 36532 additions and 36346 deletions

13
.htaccess Normal file
View File

@ -0,0 +1,13 @@
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-l
RewriteRule ^(.*) index.php?pathsec=$1 [QSA]
php_value display_errors On
Options -Indexes
Redirect 301 /sitemap.xml /plugins/sitemap-xml/sitemap.php

48
api.php
View File

@ -1,25 +1,25 @@
<?php
require_once 'core.php';
header('Content-type: application/json');
$blog = new blog();
$entries = array();
if ($blog->entries)
{
while ($data = $blog->entries())
array_push($entries, array('entryTitle'=>$data['entryTitle'], 'entrySlug'=>$data['entrySlug'], 'entryPublished'=>show_date($data['entryPublished']), 'entryContent'=>entry_show_init($data['entryContent'], $data['entrySlug'], true)));
/*echo "<article>
<header>
<h2><a href='".get_entry_link($data['entrySlug'])."'>$data[entryTitle]</a></h2>
<p class='meta'><time class='date' title='{locale:published_on}'>".show_date($data['entryPublished'])."</time><a href='".get_profile_link($data['userName'])."' class='by' title='{locale:entry_by}'>$data[publicName]</a>".get_entry_admin($data)."</p>
</header>
<div class='content'>".entry_show_init($data['entryContent'], $data['entrySlug'])."</div>
</article>\n";*/
}
echo json_encode($entries);
<?php
require_once 'core.php';
header('Content-type: application/json');
$blog = new blog(false, 0, true, (isset($_GET['no']) ? $_GET['no'] : fasle));
$entries = array();
if ($blog->entries)
{
while ($data = $blog->entries())
array_push($entries, array('entryTitle'=>$data['entryTitle'], 'entrySlug'=>$data['entrySlug'], 'entryPublished'=>show_date($data['entryPublished']), 'entryContent'=>entry_show_init($data['entryContent'], $data['entrySlug'], true)));
/*echo "<article>
<header>
<h2><a href='".get_entry_link($data['entrySlug'])."'>$data[entryTitle]</a></h2>
<p class='meta'><time class='date' title='{locale:published_on}'>".show_date($data['entryPublished'])."</time><a href='".get_profile_link($data['userName'])."' class='by' title='{locale:entry_by}'>$data[publicName]</a>".get_entry_admin($data)."</p>
</header>
<div class='content'>".entry_show_init($data['entryContent'], $data['entrySlug'])."</div>
</article>\n";*/
}
echo json_encode($entries);
?>

618
core.php
View File

@ -1,305 +1,313 @@
<?php
// Start session
session_start();
// REALLY NICE ERROR PAGE KINDA THING
function nice_error($err, $errstr = false)
{
if ($errstr) { $errno = $err; $err = $errstr; }
if (($errstr && $errno != 2048) || !$errstr)
die('<!doctype html><html><head><title>Insanely</title><meta charset="utf-8" /></head><body><h1>So bad...</h1><p><img style="width: 260px" src="/data/imgs/coding_in_progress.jpg" alt=""/></p><p>'.$err.(isset($errno) ? ' ('.$errno.')' : '').'</p></body></html>');
}
set_error_handler('nice_error');
// LOAD CONFIG
require_once 'config.php';
// FEEDBACK
$info = array();
$error = array();
// SEO
if (isset($_GET['pathsec']))
{
$seo = explode('/', $_GET['pathsec']);
foreach ($seo AS $a=>$b)
$seo[$a] = htmlspecialchars($b);
} else
$seo = array('');
// DATABASE
$_sql = new mysqli(DBHOST, DBUSER, DBPASS, DBNAME) or nice_error('Sorry, but we cant connect to the database server right now.');
$_sql->query("SET NAMES ".DBCHAR);
$_sql->query("SET CHARACTER SET ".DBCHAR);
// LANGUAGE
$_locale = (array)json_decode(file_get_contents('includes/locale/hu_HU.lng'));
// OTHER CLEVER STUFFS
function clear_cache() { header("Cache-Control: no-cache, must-revalidate"); header("Expires: Mon, 26 Jul 1997 05:00:00 GMT"); }
function redirect($url = '/', $status = false) { header('Location: '.$url.($status ? '?status='.$status : '')); exit; }
function isnum($in) { return is_numeric($in); }
function sqlprot($in) { global $_sql; return $_sql->real_escape_string($in); }
function trimlink($in, $length = 140) { $in = html_entity_decode(strip_tags($in)); if (strlen($in) > $length) return substr($in, 0, $length-3).'...'; return $in; }
$set = $_sql->query("SELECT * FROM settings");
while ($data = $set->fetch_assoc())
$_set[$data['variable']] = $data['value'];
// CLASSES
require_once 'includes/user.class.php';
require_once 'includes/blog.class.php';
require_once 'includes/page.class.php';
require_once 'includes/check.class.php';
require_once 'includes/comment.class.php';
// FUNCTIONS
function get_page_link($slug, $p = false) { global $_set; $prefix = ($p ? $_set['url'] : ''); if ($_set['seo']) return $prefix."/$_set[subPage]/$slug"; return $prefix."/?pathsec=$_set[subPage]/$slug"; }
function get_entry_link($slug, $p = false, $admin = false) { global $_set; $prefix = ($p ? $_set['url'] : '').($admin ? '/admin' : null); if ($_set['seo']) return $prefix."/$_set[subEntry]/$slug"; return $prefix."/?pathsec=$_set[subEntry]/$slug"; }
function get_profile_link($slug = false, $p = false) { global $_set; $prefix = ($p ? $_set['url'] : ''); if (!$slug) { global $user; if (LOGGEDIN) $slug = $user['userName']; else $slug = ''; } if ($_set['seo']) return $prefix."/$_set[subProfile]/$slug"; return $prefix."/?pathsec=$_set[subProfile]/$slug"; }
function get_profile_picture($userData = false, $p = false) { global $_set; $prefix = ($p ? $_set['url'] : ''); if (!$userData) if (LOGGEDIN) { global $user; $userData = $user;} else $userData = array('userPic'=>0); return $prefix.($userData['userPic'] ? "/data/profile_pics/$userData[userId].jpg" : '/data/imgs/'.$_set['defaultProfilePic']); }
function get_current_link($p = false) { global $_set, $seo; $prefix = ($p ? $_set['url'] : ''); $link = ''; for ($i = 0; $i < sizeof($seo); $i++) $link .= '/'.$seo[$i]; return $prefix.($_set['seo'] ? $link : '/?pathsec='.$link); }
function get_theme_lib() { global $_set; if (file_exists('themes/'.$_set['mainTheme'])) return 'themes/'.$_set['mainTheme']; return false; }
function get_theme()
{
global $_set;
if (file_exists('themes/'.$_set['mainTheme'].'/template.php'))
return 'themes/'.$_set['mainTheme'].'/template.php';
return false;
}
function get_site_link() { global $_set; return $_set['url']; }
function get_site_body() { global $output; return output_replacer($output); }
function get_navigation($append = '')
{
global $_locale, $_sql, $seo, $_title;
$navLinks = array();
if ($seo[0] && isset($_title[0])) array_push($navLinks, array('link' => '/', 'title' => $_locale['home']));
$navQuery = $_sql->query("SELECT pageSlug, pageTitle FROM pages ORDER BY pageTitle ASC");
while ($navData = $navQuery->fetch_assoc())
array_push($navLinks, array('link' => get_page_link($navData['pageSlug']), 'title' => $navData['pageTitle']));
for ($i = 0; $i < sizeof($navLinks); $i++)
{
$link = explode('/', $navLinks[$i]['link']);
for ($b = 1; $b < sizeof($link); $b++)
{
$active = true;
if (isset($seo[$b-1]) && $seo[$b-1] == $link[$b] && $active)
$active = true; else $active = false;
}
echo "<li><a href='".$navLinks[$i]['link'].$append."'".($active ? " class='active'":'').">".$navLinks[$i]['title']."</a></li>";
}
}
function get_tags($append = '')
{
global $_sql;
$tags = $_sql->query("SELECT tagId, tagName, COUNT(taggedId) AS taggedposts FROM tagged INNER JOIN tags ON tagId = taggedTag GROUP BY tagId ORDER BY tagName ASC");
if ($tags->num_rows)
{
while ($data = $tags->fetch_assoc())
echo "<li><a href='/tag/$data[tagId]$append'>$data[tagName]</a> <span>$data[taggedposts]</span></li>";
}
}
function get_entry_admin($d)
{
global $user;
if (!LOGGEDIN) return '';
if ($user['userLevel'] > 3) return "<span class='admin'>".($d['entryPinned'] ? "<a href='/admin/entry/$d[entrySlug]/unpin' class='pin unpin'>{locale:unpin}</a>":"<a href='/admin/entry/$d[entrySlug]/pin' class='pin'>{locale:pin}</a>")."<a href='/admin/entry/$d[entrySlug]' class='edit'>{locale:edit}</a><a href='/admin/entry/$d[entrySlug]/delete' class='delete' onclick='return confirm(\"{locale:delete_confirm}\")'>{locale:delete}</a></span>";
if ($user['userLevel'] > 2 && $d['entryBy'] == $user['userId']) return "<span class='admin'><a href='/admin/entry/$d[entrySlug]' class='edit'>{locale:edit}</a></span>";
}
function get_page_title()
{
global $_title, $_set;
if (!empty($_title))
{
$title2 = '';
for ($i=sizeof($_title)-1; $i>=0; $i--)
$title2 .= $_title[$i].', ';
$trepf = array('{title}', '{page}');
$trept = array($_set['title'], rtrim($title2, ', '));
echo str_replace($trepf, $trept, ($_set['titleFormat'] ? $_set['titleFormat'] : '{page} | {title}'));
} else
echo $_set['title'];
}
function get_page_extra_head()
{
global $_head, $metaimage, $_set;
if (!empty($_head))
{
for ($i=0; $i<sizeof($_head); $i++)
echo $_head[$i]."\n";
}
echo '<link rel="alternate" type="application/rss+xml" title="RSS 2.0" href="'.$_set['url'].'/rss" />'."\n";
if ($metaimage)
{
if (!strpos($metaimage, 'http')) $metaimage = $_set['url'].$metaimage;
echo '<link rel="image_src" href="'.$metaimage.'" />'."\n";
echo '<meta property="og:image" content="'.$metaimage.'" />';
}
}
function get_page_extra_body()
{
global $_body, $_set;
if (!empty($_body))
for ($i=0; $i<sizeof($_body); $i++)
echo $_body[$i]."\n";
}
function get_errors()
{
global $error;
if (!empty($error))
{
echo "<div id='errors'>";
for($i=0; $i<sizeof($error); $i++)
echo "<li>$error[$i]</li>";
echo "</ul></div>";
}
}
function get_infos()
{
global $info;
if (!empty($info))
{
echo "<div id='infos'>";
for($i=0; $i<sizeof($info); $i++)
echo "<li>$info[$i]</li>";
echo "</ul></div>";
}
}
function set_pin($pin) { global $_SESSION; $_SESSION['entry_pin'] = $pin; }
function get_pin() { global $_SESSION; return isset($_SESSION['entry_pin']) ? $_SESSION['entry_pin'] : false; }
function theme_component($comp) {
$cf = get_theme_lib().'/components/'.$comp.'.php';
if (file_exists($cf))
return $cf;
return false;
}
function show_date($ts) { global $_set; return (!(int)date('Hi', $ts) ? date($_set['dateformatShort'], $ts) : date($_set['dateformat'], $ts)); }
$_title = array();
function addTitle($add) { global $_title; array_push($_title, htmlentities($add)); }
$_head = array();
$head_registered = array();
function addHead($add, $register = false) { global $_head, $head_registered; if (($register && !in_array($register, $head_registered)) || !$register) array_push($_head, $add); }
$_body = array();
$body_registered = array();
function addBody($add, $register = false) { global $_body, $body_registered; if (($register && !in_array($register, $body_registered)) || !$register) array_push($_body, $add); }
$description = false;
function addDescription($add) { global $description; if (!$description) $description = ''; $description .= str_replace(array('"', '\'', "\n", "\r\n", '&lt;', '&gt;'), '', strip_tags($add)).' '; }
function keywords() { global $description, $_set; $keywords = explode(' ', str_replace(array(',','?','.','!'), ' ', ($description ? $description : $_set['description']))); foreach($keywords AS $a => $b) { $val = trim($b); if (strlen($val) > 3) $keywords[$a] = $val; else unset($keywords[$a]); } return implode(',', array_unique($keywords)); }
$metaimage = false;
function addImage($add) { global $metaimage; $metaimage = $add; }
$headerimg = false;
function headerImage($url) { global $headerimg; if (strlen($url) > 3) $headerimg = $url; }
/* POST FUCKER */
function entry_replacer($in)
{
global $_locale;
$pattern[] = '#\[music=(.*?)\]#';
$replace[] = '<iframe style="width: 100%; height: 10em; border: 0; padding: 0; margin: 0;" class="music" src="http://music.sandros.hu/shared/$1?volume=50"></iframe>';
$pattern[] = '#\[youtube=(.*?)\]#';
$replace[] = '<iframe style="width: 100%; height: 600px; border: 0; padding: 0; margin: 0;" class="youtube" src="http://www.youtube-nocookie.com/embed/$1"></iframe>';
$pattern[] = '#\[spoiler\](.*?)\[/spoiler\]#';
$replace[] = '<div class="spoiler"><div class="spoiler_b"><button onclick="spoilerToggle($(this))">'.$_locale['show_hidden_content'].'</button><div style="display:none" class="spoiler_c">$1</div></div>';
$pattern[] = '#\[spoiler=(.*?)\](.*?)\[/spoiler\]#';
$replace[] = '<div class="spoiler"><div class="spoiler_b"><button onclick="spoilerToggle($(this))">$1</button><div style="display:none" class="spoiler_c">$2</div></div>';
return preg_replace($pattern, $replace, $in);
}
function entry_show_init($in, $slug, $flink = false)
{
global $_locale;
$in = entry_replacer($in);
$search = array('@<script[^>]*?>.*?</script>@si', // Strip out javascript
'@<style[^>]*?>.*?</style>@siU', // Strip style tags properly
'@<![\s\S]*?--[ \t\n\r]*>@' // Strip multi-line comments including CDATA
);
$in = preg_replace($search, '', $in);
$in2 = explode('[[MORE]]', $in);
if (isset($in2[1]) && strlen(trim($in2[1])))
return $in2[0]."\n<p class='readmore'><a href='".get_entry_link($slug, $flink)."#readmore'>$_locale[entry_read_more]</a></p>\n";
return $in;
}
function entry_show_all($in) { return str_replace('[[MORE]]', '<a name="readmore"></a>', entry_replacer($in)); }
/* OUTPUT FUCKER */
function regexp_locale($a)
{
global $_locale;
if (isset($_locale[$a[1]]))
return $_locale[$a[1]];
return $a[0];
}
function output_replacer($in)
{
return preg_replace_callback('#\{locale:([a-zA-Z\-\_]+?)\}#', 'regexp_locale', $in);
}
/* LOGIN SYSTEM */
if (isset($_COOKIE['filtr_token']))
{
require_once 'includes/filtr.class.php';
$filtr = new filtrLogin();
$filtr->cache = '/tmp/';
$filtr->setAppid($_set['filtr_appid']);
$filtr->setApptoken($_set['filtr_apptoken']);
$filtr->setToken($_COOKIE['filtr_token']);
$filtr->Login();
if ($filtr->status())
{
$filtr = $filtr->getData();
$user = new user($filtr['link'], $filtr);
if ($user)
{
$user = $user->data;
define('LOGGEDIN', true);
}
unset($filtr);
}
}
if (isset($_GET['logout']))
{
setcookie('filtr_token', '', null, '/');
redirect();
}
if (!defined('LOGGEDIN'))
define('LOGGEDIN', false);
<?php
// Start session
session_start();
// REALLY NICE ERROR PAGE KINDA THING
function nice_error($err, $errstr = false, $file, $line)
{
if ($errstr) { $errno = $err; $err = $errstr; }
if (($errstr && $errno != 2048) || !$errstr)
{
ob_end_clean();
header('Content-type: text/plain');
die($err.(isset($errno) ? ' ('.$errno.')' : '')." [$file] <$line>");
}
}
set_error_handler('nice_error');
// LOAD CONFIG
define('_FS_PATH', dirname(__FILE__).'/');
require_once _FS_PATH.'config.php';
// FEEDBACK
$info = array();
$error = array();
// SEO
if (isset($_GET['pathsec']))
{
$seo = explode('/', $_GET['pathsec']);
foreach ($seo AS $a=>$b)
$seo[$a] = htmlspecialchars($b);
} else
$seo = array('');
// DATABASE
$_sql = new mysqli(DBHOST, DBUSER, DBPASS, DBNAME) or nice_error('Sorry, but we cant connect to the database server right now.');
$_sql->query("SET NAMES ".DBCHAR);
$_sql->query("SET CHARACTER SET ".DBCHAR);
// LANGUAGE
$_locale = (array)json_decode(file_get_contents(_FS_PATH.'includes/locale/hu_HU.lng'));
// OTHER CLEVER STUFFS
function clear_cache() { header("Cache-Control: no-cache, must-revalidate"); header("Expires: Mon, 26 Jul 1997 05:00:00 GMT"); }
function redirect($url = '/', $status = false) { header('Location: '.$url.($status ? '?status='.$status : '')); exit; }
function isnum($in) { return is_numeric($in); }
function sqlprot($in) { global $_sql; return $_sql->real_escape_string($in); }
function trimlink($in, $length = 140) { $in = html_entity_decode(strip_tags($in)); if (strlen($in) > $length) return substr($in, 0, $length-3).'...'; return $in; }
// SETTINGS
require_once _FS_PATH.'includes/settings.class.php';
$_set = settings::getdata();
// CLASSES
require_once _FS_PATH.'includes/user.class.php';
require_once _FS_PATH.'includes/blog.class.php';
require_once _FS_PATH.'includes/page.class.php';
require_once _FS_PATH.'includes/check.class.php';
require_once _FS_PATH.'includes/comment.class.php';
// FUNCTIONS
function get_page_link($slug, $p = false) { global $_set; $prefix = ($p ? $_set['url'] : ''); if ($_set['seo']) return $prefix."/$_set[subPage]/$slug"; return $prefix."/?pathsec=$_set[subPage]/$slug"; }
function get_entry_link($slug, $p = false, $admin = false) { global $_set; $prefix = ($p ? $_set['url'] : '').($admin ? '/admin' : null); if ($_set['seo']) return $prefix."/$_set[subEntry]/$slug"; return $prefix."/?pathsec=$_set[subEntry]/$slug"; }
function get_profile_link($slug = false, $p = false) { global $_set; $prefix = ($p ? $_set['url'] : ''); if (!$slug) { global $user; if (LOGGEDIN) $slug = $user['userName']; else $slug = ''; } if ($_set['seo']) return $prefix."/$_set[subProfile]/$slug"; return $prefix."/?pathsec=$_set[subProfile]/$slug"; }
function get_profile_picture($userData = false, $p = false) { global $_set; $prefix = ($p ? $_set['url'] : ''); if (!$userData) if (LOGGEDIN) { global $user; $userData = $user;} else $userData = array('userPic'=>0); return $prefix.($userData['userPic'] ? "/data/profile_pics/$userData[userId].jpg" : '/data/imgs/'.$_set['defaultProfilePic']); }
function get_current_link($p = false) { global $_set, $seo; $prefix = ($p ? $_set['url'] : ''); $link = ''; for ($i = 0; $i < sizeof($seo); $i++) $link .= '/'.$seo[$i]; return $prefix.($_set['seo'] ? $link : '/?pathsec='.$link); }
function get_theme_lib() { global $_set; if (file_exists(_FS_PATH.'themes/'.$_set['mainTheme'])) return 'themes/'.$_set['mainTheme']; return false; }
function get_theme()
{
global $_set;
if (file_exists(_FS_PATH.'themes/'.$_set['mainTheme'].'/template.php'))
return _FS_PATH.'themes/'.$_set['mainTheme'].'/template.php';
return false;
}
function get_site_link() { global $_set; return $_set['url']; }
function get_site_body() { global $output; return output_replacer($output); }
function get_navigation($append = '', $returnarray = false)
{
global $_locale, $_sql, $seo, $_title;
$navLinks = array();
if ($seo[0] && isset($_title[0])) array_push($navLinks, array('link' => '/', 'title' => $_locale['home']));
$navQuery = $_sql->query("SELECT pageSlug, pageTitle FROM pages WHERE pageDeleted IS NULL ORDER BY pageTitle ASC");
while ($navData = $navQuery->fetch_assoc())
array_push($navLinks, array('link' => get_page_link($navData['pageSlug']), 'title' => $navData['pageTitle']));
if ($returnarray)
return $navLinks;
for ($i = 0; $i < sizeof($navLinks); $i++)
{
$link = explode('/', $navLinks[$i]['link']);
for ($b = 1; $b < sizeof($link); $b++)
{
$active = true;
if (isset($seo[$b-1]) && $seo[$b-1] == $link[$b] && $active)
$active = true; else $active = false;
}
echo "<li><a href='".$navLinks[$i]['link'].$append."'".($active ? " class='active'":'').">".$navLinks[$i]['title']."</a></li>";
}
}
function get_tags($append = '')
{
global $_sql;
$tags = $_sql->query("SELECT tagId, tagName, COUNT(taggedId) AS taggedposts FROM tagged INNER JOIN tags ON tagId = taggedTag GROUP BY tagId ORDER BY tagName ASC");
if ($tags->num_rows)
{
while ($data = $tags->fetch_assoc())
echo "<li><a href='/tag/$data[tagId]$append'>$data[tagName]</a> <span>$data[taggedposts]</span></li>";
}
}
function get_entry_admin($d)
{
global $user;
if (!LOGGEDIN) return '';
if ($user['userLevel'] > 3) return "<span class='admin'>".($d['entryPinned'] ? "<a href='/admin/entry/$d[entrySlug]/unpin' class='pin unpin'>{locale:unpin}</a>":"<a href='/admin/entry/$d[entrySlug]/pin' class='pin'>{locale:pin}</a>")."<a href='/admin/entry/$d[entrySlug]' class='edit'>{locale:edit}</a><a href='/admin/entry/$d[entrySlug]/delete' class='delete' onclick='return confirm(\"{locale:delete_confirm}\")'>{locale:delete}</a></span>";
if ($user['userLevel'] > 2 && $d['entryBy'] == $user['userId']) return "<span class='admin'><a href='/admin/entry/$d[entrySlug]' class='edit'>{locale:edit}</a></span>";
}
function get_page_title()
{
global $_title, $_set;
if (!empty($_title))
{
$title2 = '';
for ($i=sizeof($_title)-1; $i>=0; $i--)
$title2 .= $_title[$i].', ';
$trepf = array('{title}', '{page}');
$trept = array($_set['title'], rtrim($title2, ', '));
echo str_replace($trepf, $trept, ($_set['titleFormat'] ? $_set['titleFormat'] : '{page} | {title}'));
} else
echo $_set['title'];
}
function get_page_extra_head()
{
global $_head, $metaimage, $_set;
if (!empty($_head))
{
for ($i=0; $i<sizeof($_head); $i++)
echo $_head[$i]."\n";
}
echo '<link rel="alternate" type="application/rss+xml" title="RSS 2.0" href="'.$_set['url'].'/rss" />'."\n";
if ($metaimage)
{
if (!strpos($metaimage, 'http')) $metaimage = $_set['url'].$metaimage;
echo '<link rel="image_src" href="'.$metaimage.'" />'."\n";
echo '<meta property="og:image" content="'.$metaimage.'" />';
}
}
function get_page_extra_body()
{
global $_body, $_set;
if (!empty($_body))
for ($i=0; $i<sizeof($_body); $i++)
echo $_body[$i]."\n";
}
function get_errors()
{
global $error;
if (!empty($error))
{
echo "<div id='errors'>";
for($i=0; $i<sizeof($error); $i++)
echo "<li>$error[$i]</li>";
echo "</ul></div>";
}
}
function get_infos()
{
global $info;
if (!empty($info))
{
echo "<div id='infos'>";
for($i=0; $i<sizeof($info); $i++)
echo "<li>$info[$i]</li>";
echo "</ul></div>";
}
}
function set_pin($pin) { global $_SESSION; $_SESSION['entry_pin'] = $pin; }
function get_pin() { global $_SESSION; return isset($_SESSION['entry_pin']) ? $_SESSION['entry_pin'] : false; }
function theme_component($comp) {
$cf = get_theme_lib().'/components/'.$comp.'.php';
if (file_exists($cf))
return $cf;
return false;
}
function show_date($ts) { global $_set; return (!(int)date('Hi', $ts) ? date($_set['dateformatShort'], $ts) : date($_set['dateformat'], $ts)); }
$_title = array();
function addTitle($add) { global $_title; array_push($_title, htmlentities($add)); }
$_head = array();
$head_registered = array();
function addHead($add, $register = false) { global $_head, $head_registered; if (($register && !in_array($register, $head_registered)) || !$register) array_push($_head, $add); }
$_body = array();
$body_registered = array();
function addBody($add, $register = false) { global $_body, $body_registered; if (($register && !in_array($register, $body_registered)) || !$register) array_push($_body, $add); }
$description = false;
function addDescription($add) { global $description; if (!$description) $description = ''; $description .= str_replace(array('"', '\'', "\n", "\r\n", '&lt;', '&gt;'), '', strip_tags($add)).' '; }
function keywords() { global $description, $_set; $keywords = explode(' ', str_replace(array(',','?','.','!'), ' ', ($description ? $description : $_set['description']))); foreach($keywords AS $a => $b) { $val = trim($b); if (strlen($val) > 3) $keywords[$a] = $val; else unset($keywords[$a]); } return implode(',', array_unique($keywords)); }
$metaimage = false;
function addImage($add) { global $metaimage; $metaimage = $add; }
$headerimg = false;
function headerImage($url) { global $headerimg; if (strlen($url) > 3) $headerimg = $url; }
/* POST FUCKER */
function entry_replacer($in)
{
global $_locale;
$pattern[] = '#\[music=(.*?)\]#';
$replace[] = '<iframe style="width: 100%; height: 10em; border: 0; padding: 0; margin: 0;" class="music" src="http://music.sandros.hu/shared/$1?volume=50"></iframe>';
$pattern[] = '#\[youtube=(.*?)\]#';
$replace[] = '<iframe style="width: 100%; height: 600px; border: 0; padding: 0; margin: 0;" class="youtube" src="http://www.youtube.com/embed/$1"></iframe>';
$pattern[] = '#\[spoiler\](.*?)\[/spoiler\]#';
$replace[] = '<div class="spoiler"><div class="spoiler_b"><button onclick="spoilerToggle($(this))">'.$_locale['show_hidden_content'].'</button><div style="display:none" class="spoiler_c">$1</div></div>';
$pattern[] = '#\[spoiler=(.*?)\](.*?)\[/spoiler\]#';
$replace[] = '<div class="spoiler"><div class="spoiler_b"><button onclick="spoilerToggle($(this))">$1</button><div style="display:none" class="spoiler_c">$2</div></div>';
return preg_replace($pattern, $replace, $in);
}
function entry_show_init($in, $slug, $flink = false)
{
global $_locale;
$in = entry_replacer($in);
$search = array('@<script[^>]*?>.*?</script>@si', // Strip out javascript
'@<style[^>]*?>.*?</style>@siU', // Strip style tags properly
'@<![\s\S]*?--[ \t\n\r]*>@' // Strip multi-line comments including CDATA
);
$in = preg_replace($search, '', $in);
$in2 = explode('[[MORE]]', $in);
if (isset($in2[1]) && strlen(trim($in2[1])))
return $in2[0]."\n<p class='readmore'><a href='".get_entry_link($slug, $flink)."#readmore'>$_locale[entry_read_more]</a></p>\n";
return $in;
}
function entry_show_all($in) { return str_replace('[[MORE]]', '<a name="readmore"></a>', entry_replacer($in)); }
/* OUTPUT FUCKER */
function regexp_locale($a)
{
global $_locale;
if (isset($_locale[$a[1]]))
return $_locale[$a[1]];
return $a[0];
}
function output_replacer($in)
{
return preg_replace_callback('#\{locale:([a-zA-Z\-\_]+?)\}#', 'regexp_locale', $in);
}
/* LOGIN SYSTEM */
if (isset($_COOKIE['filtr_token']))
{
require_once _FS_PATH.'includes/filtr.class.php';
$filtr = new filtrLogin();
$filtr->cache = '/tmp/';
$filtr->setAppid($_set['filtr_appid']);
$filtr->setApptoken($_set['filtr_apptoken']);
$filtr->setToken($_COOKIE['filtr_token']);
$filtr->Login();
if ($filtr->status())
{
$filtr = $filtr->getData();
$user = new user($filtr['link'], $filtr);
if ($user)
{
$user = $user->data;
define('LOGGEDIN', true);
}
unset($filtr);
}
}
if (isset($_GET['logout']))
{
setcookie('filtr_token', '', null, '/');
redirect();
}
if (!defined('LOGGEDIN'))
define('LOGGEDIN', false);

View File

@ -1,7 +1,8 @@
<h1>{locale:dashboard}</h1>
<ul>
<li><a href='/admin/entry'>{locale:entry_editor}</a></li>
<li><a href='/admin/plugins'>{locale:plugin_manager}</a></li>
<li><a href='/admin/page'>{locale:page_editor}</a></li>
<h1>{locale:dashboard}</h1>
<ul>
<li><a href='/admin/entry'>{locale:entry_editor}</a></li>
<li><a href='/admin/plugins'>{locale:plugin_manager}</a></li>
<li><a href='/admin/page'>{locale:page_editor}</a></li>
<li><a href='/admin/settings'>{locale:site_settings}</a></li>
</ul>

View File

@ -1,149 +1,149 @@
<?php
if (isset($_GET['status']))
switch ($_GET['status'])
{
case 'added':
array_push($info, $_locale['entry_added']);
break;
case 'updated':
array_push($info, $_locale['entry_updated']);
break;
}
if (isset($_POST['entryContent']) && $user['userLevel'] > 2)
{
if (isset($_POST['entryAdd']))
{
if (blog::add($_POST['entryHeader'], $_POST['entryTitle'], $_POST['entrySlug'], $_POST['entryContent'], $_POST['entryPublished'], (isset($_POST['entryHidden']) ? true : false), $_POST['entryPIN']))
redirect(get_entry_link($_POST['entrySlug']), 'added');
else
array_push($error, $_locale['entry_not_added']);
} elseif (isset($_POST['entryUpdate']))
{
if (blog::update($_POST['entryUpdate'], $_POST['entryHeader'], $_POST['entryTitle'], $_POST['entryContent'], $_POST['entryPublished'], (isset($_POST['entryHidden']) ? true : false), $_POST['entryPIN']))
redirect(get_current_link(), 'updated');
else
array_push($error, $_locale['entry_not_updated']);
}
}
if (isset($_POST['entryTag']) && $user['userLevel'] > 2)
{
if (isset($_POST['tagIdRemove']))
{
if (blog::tagRemove($_POST['tagIdRemove'], $_POST['entryId']))
array_push($info, $_locale['entry_tag_removed']);
else
array_push($error, $_locale['entry_tag_not_removed']);
} elseif (blog::tag($_POST['tagId'], $_POST['entryId']))
array_push($info, $_locale['entry_tag_added']);
else
array_push($error, $_locale['entry_tag_not_added']);
}
if (isset($seo[2]) && $user['userLevel'] > 2)
{
$entry = new blog($seo[2]);
if ($entry->entries)
{
$entryData = $entry->entry();
if (isset($seo[3]) && $user['userLevel'] > 3)
switch ($seo[3])
{
case 'delete':
if ($entry->delete($entryData['entryId']))
redirect('/admin/entry');
else
array_push($error, $_locale['entry_not_deleted']);
break;
case 'pin':
if ($entry->pin($entryData['entryId']))
redirect();
else
array_push($error, $_locale['entry_not_pinned']);
break;
case 'unpin':
if ($entry->unpin($entryData['entryId']))
redirect();
else
array_push($error, $_locale['entry_not_unpinned']);
break;
}
}
} else
{
$timedQuery = $_sql->query("SELECT entrySlug, entryTitle, entryCreated, entryPublished FROM entries WHERE entryPublished > ".time()."");
if ($timedQuery->num_rows)
{
echo "<h1>{locale:timed_entries}</h1>";
echo "<table class='designed timed'><tr><td>{locale:entry_title}</td><td>{locale:created_on}</td><td>{locale:timed_pub_date}</td></tr>";
while ($data = $timedQuery->fetch_assoc())
echo "<tr><td><a href='".get_entry_link($data['entrySlug'])."'>$data[entryTitle]</a></td><td>".show_date($data['entryCreated'])."</td><td>".show_date($data['entryPublished'])."</td></tr>";
echo "</table>";
}
$hiddenQuery = $_sql->query("SELECT entrySlug, entryTitle, entryCreated, entryPublished FROM entries WHERE entryHidden IS NOT NULL");
if ($hiddenQuery->num_rows)
{
echo "<h1>{locale:hidden_entries}</h1>";
echo "<table class='designed timed'><tr><td>{locale:entry_title}</td><td>{locale:created_on}</td><td>{locale:timed_pub_date}</td></tr>";
while ($data = $hiddenQuery->fetch_assoc())
echo "<tr><td><a href='".get_entry_link($data['entrySlug'], null, true)."'>$data[entryTitle]</a></td><td>".show_date($data['entryCreated'])."</td><td>".show_date($data['entryPublished'])."</td></tr>";
echo "</table>";
}
}
?>
<h1>{locale:entry_editor}</h1>
<form action="<?=get_current_link()?>" method="post" name="entry-edit">
<?php if (isset($entryData)) : addTitle($entryData['entryTitle']); headerImage($entryData['entryHeader']); ?>
<input type="text" name="entryHeader" value="<?=htmlentities($entryData['entryHeader'])?>" placeholder="{locale:entry_header}" maxlength="255" />
<input type="text" name="entryTitle" value="<?=htmlentities($entryData['entryTitle'])?>" placeholder="{locale:entry_title}" maxlength="250" />
<textarea id="entry-textarea" name="entryContent" rows="30"><?=htmlspecialchars($entryData['entryContent'])?></textarea>
<input id="entry-date" type="text" name="entryPublished" value="<?=date(DATE_FORMAT_DEFAULT, $entryData['entryPublished'])?>" placeholder="{locale:entry_pub_date}" maxlength="50" />
<label><input type="checkbox" name="entryHidden" value="1" <?=($entryData['entryHidden'] ? 'checked ' : '')?> /> {locale:entry_hide}</label>
<input type="text" name="entryPIN" value="<?=htmlentities($entryData['entryPIN'])?>" placeholder="{locale:entry_pin}" maxlength="6" />
<input type="hidden" name="entryUpdate" value="<?=$entryData['entryId']?>" />
<?php else: ?>
<input type="text" name="entryHeader" id="entryHeader" placeholder="{locale:entry_header}" maxlength="255" />
<input type="text" name="entryTitle" id="entryTitle" placeholder="{locale:entry_title}" maxlength="250" />
<textarea id="entry-textarea" name="entryContent" rows="30"></textarea>
<input id="entry-date" type="text" name="entryPublished" placeholder="{locale:entry_pub_date}" maxlength="50" />
<input type="text" name="entrySlug" id="entrySlug" placeholder="{locale:entry_slug}" maxlength="100" />
<label><input type="checkbox" name="entryHidden" value="1" /> {locale:entry_hide}</label>
<input type="text" name="entryPIN" placeholder="{locale:entry_pin}" maxlength="6" />
<input type="hidden" name="entryAdd" value="true" />
<?php endif ?>
<button type="submit">{locale:save}</button>
</form>
<?php
if (isset($entryData))
{
$tags = $_sql->query("SELECT * FROM tags");
if ($tags->num_rows)
{
echo "<h3>{locale:tags}</h3>";
echo "<table class='designed'><tr><td>{locale:tag_name}</td><td>{locale:add}</td></tr>"
."<form action='".get_current_link()."' method='post' name='tagentry'>"
."<input type='hidden' name='entryId' value='$entryData[entryId]' />"
."<input type='hidden' name='entryTag' value='true' />";
while ($tag = $tags->fetch_assoc())
echo "<tr><td>$tag[tagName]</td><td>".($_sql->query("SELECT taggedId FROM tagged WHERE taggedEntry = $entryData[entryId] AND taggedTag = $tag[tagId]")->num_rows ? "<button type='submit' name='tagIdRemove' value='$tag[tagId]'>{locale:remove}</button>":"<button type='submit' name='tagId' value='$tag[tagId]'>{locale:add}</button>")."</td></tr>";
echo "</form>"
."</table>";
}
}
?>
<script>$("#entry-date").datepicker({ minDate: 0, maxDate: "+48M" });</script>
<?php
if (isset($_GET['status']))
switch ($_GET['status'])
{
case 'added':
array_push($info, $_locale['entry_added']);
break;
case 'updated':
array_push($info, $_locale['entry_updated']);
break;
}
if (isset($_POST['entryContent']) && $user['userLevel'] > 2)
{
if (isset($_POST['entryAdd']))
{
if (blog::add($_POST['entryHeader'], $_POST['entryTitle'], $_POST['entrySlug'], $_POST['entryContent'], $_POST['entryPublished'], (isset($_POST['entryHidden']) ? true : false), $_POST['entryPIN']))
redirect(get_entry_link($_POST['entrySlug']), 'added');
else
array_push($error, $_locale['entry_not_added']);
} elseif (isset($_POST['entryUpdate']))
{
if (blog::update($_POST['entryUpdate'], $_POST['entryHeader'], $_POST['entryTitle'], $_POST['entryContent'], $_POST['entryPublished'], (isset($_POST['entryHidden']) ? true : false), $_POST['entryPIN']))
redirect(get_current_link(), 'updated');
else
array_push($error, $_locale['entry_not_updated']);
}
}
if (isset($_POST['entryTag']) && $user['userLevel'] > 2)
{
if (isset($_POST['tagIdRemove']))
{
if (blog::tagRemove($_POST['tagIdRemove'], $_POST['entryId']))
array_push($info, $_locale['entry_tag_removed']);
else
array_push($error, $_locale['entry_tag_not_removed']);
} elseif (blog::tag($_POST['tagId'], $_POST['entryId']))
array_push($info, $_locale['entry_tag_added']);
else
array_push($error, $_locale['entry_tag_not_added']);
}
if (isset($seo[2]) && $user['userLevel'] > 2)
{
$entry = new blog($seo[2]);
if ($entry->entries)
{
$entryData = $entry->entry();
if (isset($seo[3]) && $user['userLevel'] > 3)
switch ($seo[3])
{
case 'delete':
if ($entry->delete($entryData['entryId']))
redirect('/admin/entry');
else
array_push($error, $_locale['entry_not_deleted']);
break;
case 'pin':
if ($entry->pin($entryData['entryId']))
redirect();
else
array_push($error, $_locale['entry_not_pinned']);
break;
case 'unpin':
if ($entry->unpin($entryData['entryId']))
redirect();
else
array_push($error, $_locale['entry_not_unpinned']);
break;
}
}
} else
{
$timedQuery = $_sql->query("SELECT entrySlug, entryTitle, entryCreated, entryPublished FROM entries WHERE entryPublished > ".time()."");
if ($timedQuery->num_rows)
{
echo "<h1>{locale:timed_entries}</h1>";
echo "<table class='designed timed'><thead><tr><th>{locale:entry_title}</th><th>{locale:created_on}</th><th>{locale:timed_pub_date}</th></tr></thead><tbody>";
while ($data = $timedQuery->fetch_assoc())
echo "<tr><td><a href='".get_entry_link($data['entrySlug'])."'>$data[entryTitle]</a></td><td>".show_date($data['entryCreated'])."</td><td>".show_date($data['entryPublished'])."</td></tr>";
echo "</tbody></table>";
}
$hiddenQuery = $_sql->query("SELECT entrySlug, entryTitle, entryCreated, entryPublished FROM entries WHERE entryHidden IS NOT NULL");
if ($hiddenQuery->num_rows)
{
echo "<h1>{locale:hidden_entries}</h1>";
echo "<table class='designed timed'><thead><tr><th>{locale:entry_title}</th><th>{locale:created_on}</th><th>{locale:timed_pub_date}</th></tr></thead><tbody>";
while ($data = $hiddenQuery->fetch_assoc())
echo "<tr><td><a href='".get_entry_link($data['entrySlug'], null, true)."'>$data[entryTitle]</a></td><td>".show_date($data['entryCreated'])."</td><td>".show_date($data['entryPublished'])."</td></tr>";
echo "</tbody></table>";
}
}
?>
<h1>{locale:entry_editor}</h1>
<form action="<?=get_current_link()?>" method="post" name="entry-edit">
<?php if (isset($entryData)) : addTitle($entryData['entryTitle']); headerImage($entryData['entryHeader']); ?>
<input type="text" name="entryHeader" value="<?=htmlentities($entryData['entryHeader'])?>" placeholder="{locale:entry_header}" maxlength="255" />
<input type="text" name="entryTitle" value="<?=htmlentities($entryData['entryTitle'])?>" placeholder="{locale:entry_title}" maxlength="250" />
<textarea id="entry-textarea" name="entryContent" rows="30"><?=htmlspecialchars($entryData['entryContent'])?></textarea>
<input id="entry-date" type="text" name="entryPublished" value="<?=date(DATE_FORMAT_DEFAULT, $entryData['entryPublished'])?>" placeholder="{locale:entry_pub_date}" maxlength="50" />
<label><input type="checkbox" name="entryHidden" value="1" <?=($entryData['entryHidden'] ? 'checked ' : '')?> /> {locale:entry_hide}</label>
<input type="text" name="entryPIN" value="<?=htmlentities($entryData['entryPIN'])?>" placeholder="{locale:entry_pin}" maxlength="6" />
<input type="hidden" name="entryUpdate" value="<?=$entryData['entryId']?>" />
<?php else: ?>
<input type="text" name="entryHeader" id="entryHeader" placeholder="{locale:entry_header}" maxlength="255" />
<input type="text" name="entryTitle" id="entryTitle" placeholder="{locale:entry_title}" maxlength="250" />
<textarea id="entry-textarea" name="entryContent" rows="30"></textarea>
<input id="entry-date" type="text" name="entryPublished" placeholder="{locale:entry_pub_date}" maxlength="50" />
<input type="text" name="entrySlug" id="entrySlug" placeholder="{locale:entry_slug}" maxlength="100" />
<label><input type="checkbox" name="entryHidden" value="1" /> {locale:entry_hide}</label>
<input type="text" name="entryPIN" placeholder="{locale:entry_pin}" maxlength="6" />
<input type="hidden" name="entryAdd" value="true" />
<?php endif ?>
<button type="submit">{locale:save}</button>
</form>
<?php
if (isset($entryData))
{
$tags = $_sql->query("SELECT * FROM tags");
if ($tags->num_rows)
{
echo "<h3>{locale:tags}</h3>";
echo "<table class='designed'><thead><tr><th>{locale:tag_name}</th><th>{locale:add}</th></tr></thead><tbody>"
."<form action='".get_current_link()."' method='post' name='tagentry'>"
."<input type='hidden' name='entryId' value='$entryData[entryId]' />"
."<input type='hidden' name='entryTag' value='true' />";
while ($tag = $tags->fetch_assoc())
echo "<tr><td>$tag[tagName]</td><td>".($_sql->query("SELECT taggedId FROM tagged WHERE taggedEntry = $entryData[entryId] AND taggedTag = $tag[tagId]")->num_rows ? "<button type='submit' name='tagIdRemove' value='$tag[tagId]'>{locale:remove}</button>":"<button type='submit' name='tagId' value='$tag[tagId]'>{locale:add}</button>")."</td></tr>";
echo "</form>"
."</tbody></table>";
}
}
?>
<script>$("#entry-date").datepicker({ minDate: 0, maxDate: "+48M" });</script>

View File

@ -1,36 +1,42 @@
<?php
addTitle($_locale['admin']);
if (!isset($seo[1])) $seo[1] = '';
switch ($seo[1])
{
case 'upload':
include 'data/upload.php';
exit;
break;
case 'plugins':
if ($user['userLevel'] < 3) redirect();
addTitle($_locale['plugin_manager']);
include 'includes/admin/plugins.php';
break;
case $_set['subEntry']:
if ($user['userLevel'] < 2) redirect();
addTitle($_locale['entry_editor']);
include 'includes/admin/entry.php';
break;
case $_set['subPage']:
if ($user['userLevel'] < 3) redirect();
addTitle($_locale['page_editor']);
include 'includes/admin/page.php';
break;
default:
include 'includes/admin/dashboard.php';
break;
<?php
addTitle($_locale['admin']);
if (!isset($seo[1])) $seo[1] = '';
switch ($seo[1])
{
case 'upload':
include 'data/upload.php';
exit;
break;
case 'settings':
if ($user['userLevel'] < 3) redirect();
addTitle($_locale['site_settings']);
include 'includes/admin/settings.php';
break;
case 'plugins':
if ($user['userLevel'] < 3) redirect();
addTitle($_locale['plugin_manager']);
include 'includes/admin/plugins.php';
break;
case $_set['subEntry']:
if ($user['userLevel'] < 2) redirect();
addTitle($_locale['entry_editor']);
include 'includes/admin/entry.php';
break;
case $_set['subPage']:
if ($user['userLevel'] < 3) redirect();
addTitle($_locale['page_editor']);
include 'includes/admin/page.php';
break;
default:
include 'includes/admin/dashboard.php';
break;
}

View File

@ -1,55 +1,64 @@
<?php
if (isset($_POST['pageContent']) && isset($_POST['pageSlug']) && $user['userLevel'] > 3)
{
$page = new page($_POST['pageSlug']);
if (isset($_POST['pageAdd']))
{
if ($page->create($_POST['pageTitle'], $_POST['pageContent']))
array_push($info, $_locale['page_added']);
else
array_push($error, $_locale['page_not_added']);
} elseif (isset($_POST['pageUpdate']))
{
if ($page->update($_POST['pageTitle'], $_POST['pageContent']))
array_push($info, $_locale['page_updated']);
else
array_push($error, $_locale['page_not_updated']);
}
}
if (isset($seo[2]))
$page = new page($seo[2]);
else
{
$pagesQuery = $_sql->query("SELECT pageSlug, pageTitle FROM pages");
if ($pagesQuery->num_rows)
{
echo "<h1>{locale:pages}</h1>";
echo "<table class='designed pages'><tr><td>{locale:page_title}</td></tr>";
while ($data = $pagesQuery->fetch_assoc())
echo "<tr><td><a href='/admin/page/$data[pageSlug]'>$data[pageTitle]</a></td></tr>";
echo "</table>";
}
}
?>
<h1>{locale:page_editor}</h1>
<form action="<?=get_current_link()?>" method="post" name="entry-edit">
<?php if (isset($page->data)) : addTitle($page->data['pageTitle']); ?>
<input type="text" name="pageTitle" value="<?=$page->data['pageTitle']?>" placeholder="{locale:page_title}" maxlength="250" />
<textarea name="pageContent"><?=htmlspecialchars($page->data['pageContent'])?></textarea>
<input type="hidden" name="pageSlug" value="<?=$page->data['pageSlug']?>" />
<input type="hidden" name="pageUpdate" value="true" />
<button type="button" onclick="window.location.href='/admin/page'">{locale:cancel}</button>
<?php else: ?>
<input type="text" id="pageTitle" name="pageTitle" value="" placeholder="{locale:page_title}" maxlength="250" />
<textarea name="pageContent"></textarea>
<input type="text" id="pageSlug" name="pageSlug" value="" placeholder="{locale:page_slug}" />
<input type="hidden" name="pageAdd" value="true" />
<?php endif ?>
<button type="submit">{locale:save}</button>
<?php
if (isset($_POST['pageContent']) && isset($_POST['pageSlug']) && $user['userLevel'] > 3)
{
$page = new page($_POST['pageSlug']);
if (isset($_POST['pageAdd']))
{
if ($page->create($_POST['pageTitle'], $_POST['pageContent']))
array_push($info, $_locale['page_added']);
else
array_push($error, $_locale['page_not_added']);
} elseif (isset($_POST['pageUpdate']))
{
if ($page->update($_POST['pageTitle'], $_POST['pageContent']))
array_push($info, $_locale['page_updated']);
else
array_push($error, $_locale['page_not_updated']);
}
}
if (isset($_POST['page_delete']))
{
$page = new page($_POST['page_delete']);
if ($page -> delete()) array_push($info, $_locale['page_deleted']);
else array_push($error, $_locale['page_delete_failed']);
}
if (isset($seo[2]))
$page = new page($seo[2]);
else
{
$pagesQuery = $_sql->query("SELECT pageSlug, pageTitle, pageCreated, pageModified, pageDeleted FROM pages ORDER BY pageDeleted ASC, pageTitle ASC");
if ($pagesQuery->num_rows)
{
echo "<h1>{locale:pages}</h1>";
echo "<form action='".get_current_link()."' method='post' name='page-delete'>";
echo "<table class='designed pages'><thead><tr><th>{locale:page_title}</th><th>{locale:page_modified}</th><th>{locale:page_delete}</th></tr></thead><tbody>";
while ($data = $pagesQuery->fetch_assoc())
echo "<tr><td><a href='/admin/page/$data[pageSlug]'>$data[pageTitle]</a></td><td>".date($_set['dateformat'], $data['pageModified'] > $data['pageCreated'] ? $data['pageModified'] : $data['pageCreated'])."</td><td>".($data['pageDeleted'] ? date($_set['dateformat'], $data['pageDeleted']) : "<button type='submit' name='page_delete' value='$data[pageSlug]'>{locale:delete}</button>")."</td></tr>";
echo "</tbody></table>";
echo "</form>";
}
}
?>
<h1>{locale:page_editor}</h1>
<form action="<?=get_current_link()?>" method="post" name="entry-edit">
<?php if (isset($page->data)) : addTitle($page->data['pageTitle']); ?>
<input type="text" name="pageTitle" value="<?=$page->data['pageTitle']?>" placeholder="{locale:page_title}" maxlength="250" />
<textarea name="pageContent"><?=htmlspecialchars($page->data['pageContent'])?></textarea>
<input type="hidden" name="pageSlug" value="<?=$page->data['pageSlug']?>" />
<input type="hidden" name="pageUpdate" value="true" />
<button type="button" onclick="window.location.href='/admin/page'">{locale:cancel}</button>
<?php else: ?>
<input type="text" id="pageTitle" name="pageTitle" value="" placeholder="{locale:page_title}" maxlength="250" />
<textarea name="pageContent"></textarea>
<input type="text" id="pageSlug" name="pageSlug" value="" placeholder="{locale:page_slug}" />
<input type="hidden" name="pageAdd" value="true" />
<?php endif ?>
<button type="submit">{locale:save}</button>
</form>

View File

@ -1,51 +1,52 @@
<?php
if (isset($_POST['pluginId']) && isnum($_POST['pluginId']))
{
if ($_sql->query("UPDATE plugins SET pluginStatus = ".(isset($_POST['pluginEnable']) ? 1 : 0)." WHERE pluginId = $_POST[pluginId]"))
redirect(get_current_link());
else
array_push($error, $_locale['plugin_not_updated']);
}
echo "<h1>$_locale[plugins]</h1>";
$pluginsQuery = $_sql->query("SELECT * FROM plugins ORDER BY pluginStatus DESC");
$plugins = array();
if ($pluginsQuery->num_rows)
{
echo "<table class='designed plugins'>";
echo "<tr><td>{locale:plugin_name}</td><td>{locale:description}</td><td>{locale:scope}</td><td>{locale:status}</td></tr>";
while ($data = $pluginsQuery->fetch_assoc())
{
$pinfo = './plugins/'.$data['pluginLib'].'/info.json';
if (file_exists($pinfo))
{
$pinfo = (array)json_decode(file_get_contents($pinfo));
if ($data['pluginStatus'])
$button = "<button name='pluginDisable' class='orange'>{locale:disable}</button>";
else $button = "<button name='pluginEnable'>{locale:enable}</button>";
echo "<tr><td>$pinfo[name]</td><td>$pinfo[description]<td>$pinfo[paths]</td><td><form action='".get_current_link()."' method='post'><input type='hidden' name='pluginId' value='$data[pluginId]'/>$button</form></td></tr>";
}
array_push($plugins, $data['pluginLib']);
}
echo "</table>";
} else
echo "<p>$_locale[plugins_empty]</p>";
if ($handle = opendir('./plugins')) {
while (false !== ($entry = readdir($handle)))
{
if (!in_array($entry, $plugins) && file_exists('./plugins/'.$entry.'/info.json'))
if ($_sql->query("INSERT INTO plugins (pluginLib, pluginStatus) VALUES ('$entry', 0)"))
array_push($info, $_locale['plugin_added'].$entry);
else
array_push($error, $_locale['plugin_not_added'].$entry);
}
closedir($handle);
<?php
if (isset($_POST['pluginId']) && is_numeric($_POST['pluginId']))
{
if ($_sql->query("UPDATE plugins SET pluginStatus = ".(isset($_POST['pluginEnable']) ? 1 : 0)." WHERE pluginId = $_POST[pluginId]"))
redirect(get_current_link());
else
array_push($error, $_locale['plugin_not_updated']);
}
echo "<h1>$_locale[plugins]</h1>";
$pluginsQuery = $_sql->query("SELECT * FROM plugins ORDER BY pluginStatus DESC");
$plugins = array();
if ($pluginsQuery->num_rows)
{
echo "<table class='designed plugins'>";
echo "<thead><tr><th>{locale:plugin_name}</th><th>{locale:description}</th><th>{locale:scope}</th><th>{locale:status}</th></tr></thead><tbody>";
while ($data = $pluginsQuery->fetch_assoc())
{
$pinfo = './plugins/'.$data['pluginLib'].'/info.json';
if (file_exists($pinfo))
{
$pinfo = (array)json_decode(file_get_contents($pinfo));
if (!isset($pinfo['enabler']) || (isset($pinfo['enabler']) && in_array($pinfo['enabler'], ['true', '1', 'yes', 'y'])))
if ($data['pluginStatus']) $button = "<button name='pluginDisable' class='orange'>{locale:disable}</button>";
else $button = "<button name='pluginEnable'>{locale:enable}</button>";
else $button = "{locale:plugin_noenable}";
echo "<tr><td>$pinfo[name]</td><td>$pinfo[description]<td>$pinfo[paths]</td><td><form action='".get_current_link()."' method='post'><input type='hidden' name='pluginId' value='$data[pluginId]'/>$button</form></td></tr>";
}
array_push($plugins, $data['pluginLib']);
}
echo "</tbody></table>";
} else
echo "<p>$_locale[plugins_empty]</p>";
if ($handle = opendir('./plugins')) {
while (false !== ($entry = readdir($handle)))
{
if (!in_array($entry, $plugins) && file_exists('./plugins/'.$entry.'/info.json'))
if ($_sql->query("INSERT INTO plugins (pluginLib, pluginStatus) VALUES ('$entry', 0)"))
array_push($info, $_locale['plugin_added'].$entry);
else
array_push($error, $_locale['plugin_not_added'].$entry);
}
closedir($handle);
}

View File

@ -0,0 +1,47 @@
<?php
if (isset($_POST['save_settings']))
{
$fail = false;
$settings = new settings();
foreach ($_POST AS $var => $val)
if (substr($var, 0, 13) == 'settings_var_')
{
$var = substr($var, 13, strlen($var) - 13);
if (isset($_set[$var]) && $_set[$var] != $val)
if (!$settings -> update($var, $val))
$fail = true;
}
if ($fail) array_push($error, $_locale['settings_update_failed']);
else array_push($info, $_locale['settings_updated']);
unset($fail);
unset($var);
unset($settings);
}
$_set_settings = settings::getdata();
?>
<h1>{locale:site_settings}</h1>
<form action="<?=get_current_link()?>" method="post" name="entry-edit">
<table class="designed settings">
<thead>
<tr>
<th>{locale:settings_variable}</th>
<th>{locale:settings_value}</th>
</tr>
</thead>
<tbody>
<?php foreach ($_set_settings AS $var => $val): ?>
<tr>
<td>{locale:settings_var_<?=$var?>}</td>
<td><input type="text" name="settings_var_<?=$var?>" value="<?=htmlentities($val)?>" /></td>
</tr>
<?php endforeach; unset($_set_settings); ?>
</tbody>
</table>
<button type="submit" name="save_settings" value="1">{locale:settings_save}</button>
</form>

View File

@ -1,124 +1,131 @@
<?php
class blog
{
private $entry;
private $query;
public $perpage = 10;
public $entries = 0;
public function __construct($entry = false, $page = 1)
{
global $_set, $_sql;
$this->perpage = $_set['entriesPerPage'];
if ($entry)
{
$this->query = $_sql->query("SELECT entries.*, users.userName AS userName, users.userPublicName AS publicName FROM entries INNER JOIN users ON userId = entryBy WHERE entrySlug = '".sqlprot($entry)."' LIMIT 1");
if ($this->query->num_rows)
{
$this->entries = 1;
}
} else
{
$this->query = $_sql->query("SELECT entries.*, users.userName AS userName, users.userPublicName AS publicName FROM entries INNER JOIN users ON userId = entryBy WHERE entryHidden IS NULL AND entryPublished <= ".time()." ORDER BY entryPinned DESC, entryPublished DESC, entryId DESC LIMIT ".$this->perpage." OFFSET ".(($page-1) * $this->perpage)."");
$this->entries = $this->query->num_rows;
}
}
public function entries()
{
if ($this->entries)
return $this->query->fetch_assoc();
return false;
}
public function entry()
{
if ($this->entries == 1)
return $this->query->fetch_assoc();
return false;
}
public static function update($id, $header, $title, $text, $pub, $hidden = false, $pin = false)
{
global $_sql;
$header = sqlprot($header);
$title = sqlprot($title);
$text = sqlprot($text);
$published = strtotime($pub); if (!$published) $published = time();
if (is_numeric($id) && Check::url($header, true) && Check::title($title) && $_sql->query("UPDATE entries SET entryHeader = '$header', entryTitle = '$title', entryContent = '$text', entryPublished = $published, entryUpdated = ".time().", entryHidden = ".($hidden ? '1' : 'NULL').", entryPIN = ".($pin && is_numeric($pin) ? $pin : 'NULL')." WHERE entryId = $id"))
return true;
return false;
}
public static function add($header, $title, $slug, $text, $pub, $hidden = false, $pin = false)
{
global $_sql, $user;
$header = sqlprot($header);
$title = sqlprot($title);
$text = sqlprot($text);
$slug = sqlprot($slug);
$published = strtotime($pub); if (!$published) $published = time();
if (Check::url($header, true) && Check::title($title) && Check::slug($slug) && $_sql->query("INSERT INTO entries (entryHeader, entryTitle, entrySlug, entryContent, entryBy, entryCreated, entryPublished, entryHidden, entryPIN) VALUES ('$header', '$title', '$slug', '$text', $user[userId], ".time().", $published, ".($hidden ? '1' : 'NULL').", ".($pin && is_numeric($pin) ? $pin : 'NULL').")"))
return true;
//die($text);
return false;
}
public static function delete($id)
{
global $_sql;
if (is_numeric($id) && $_sql->query("DELETE FROM entries WHERE entryId = $id"))
return true;
return false;
}
public static function pin($id)
{
global $_sql;
if (is_numeric($id) && $_sql->query("UPDATE entries SET entryPinned = 1 WHERE entryId = $id"))
return true;
return false;
}
public static function unpin($id)
{
global $_sql;
if (is_numeric($id) && $_sql->query("UPDATE entries SET entryPinned = NULL WHERE entryId = $id"))
return true;
return false;
}
public static function tag($cid, $id)
{
if (!is_numeric($cid) || !is_numeric($id)) return false;
global $_sql;
if (!$_sql->query("SELECT * FROM tags WHERE tagId = $cid")->num_rows) return false;
if ($_sql->query("SELECT * FROM tagged WHERE taggedTag = $cid AND taggedEntry = $id")->num_rows) return false;
if ($_sql->query("INSERT INTO tagged (taggedTag, taggedEntry) VALUES ($cid, $id)")) return true;
return false;
}
public static function tagRemove($cid, $id)
{
if (!is_numeric($cid) || !is_numeric($id)) return false;
global $_sql;
if ($_sql->query("DELETE FROM tagged WHERE taggedTag = $cid AND taggedEntry = $id")) return true;
return false;
}
}
<?php
class blog
{
private $entry;
private $query;
public $perpage = 10;
public $entries = 0;
public function __construct($entry = false, $page = 1, $getall = false, $limit = false)
{
global $_set, $_sql;
if (!$getall)
{
$this->perpage = $_set['entriesPerPage'];
if ($entry)
{
$this->query = $_sql->query("SELECT entries.*, users.userId AS userId, users.userName AS userName, users.userPublicName AS publicName FROM entries INNER JOIN users ON userId = entryBy WHERE entrySlug = '".sqlprot($entry)."' LIMIT 1");
if ($this->query->num_rows)
{
$this->entries = 1;
}
} else
{
$this->query = $_sql->query("SELECT entries.*, users.userId AS userId, users.userName AS userName, users.userPublicName AS publicName FROM entries INNER JOIN users ON userId = entryBy WHERE entryHidden IS NULL AND entryPublished <= ".time()." ORDER BY entryPinned DESC, entryPublished DESC, entryId DESC LIMIT ".$this->perpage." OFFSET ".(($page-1) * $this->perpage)."");
$this->entries = $this->query->num_rows;
}
} else
{
$this->query = $_sql->query("SELECT * FROM entries ORDER BY entryPublished DESC".($limit && is_numeric($limit) ? ' LIMIT '.$limit : null));
$this->entries = $this->query->num_rows;
}
}
public function entries()
{
if ($this->entries)
return $this->query->fetch_assoc();
return false;
}
public function entry()
{
if ($this->entries == 1)
return $this->query->fetch_assoc();
return false;
}
public static function update($id, $header, $title, $text, $pub, $hidden = false, $pin = false)
{
global $_sql;
$header = sqlprot($header);
$title = sqlprot($title);
$text = sqlprot($text);
$published = strtotime($pub); if (!$published) $published = time();
if (is_numeric($id) && Check::url($header, true) && Check::title($title) && $_sql->query("UPDATE entries SET entryHeader = '$header', entryTitle = '$title', entryContent = '$text', entryPublished = $published, entryUpdated = ".time().", entryHidden = ".($hidden ? '1' : 'NULL').", entryPIN = ".($pin && is_numeric($pin) ? $pin : 'NULL')." WHERE entryId = $id"))
return true;
return false;
}
public static function add($header, $title, $slug, $text, $pub, $hidden = false, $pin = false)
{
global $_sql, $user;
$header = sqlprot($header);
$title = sqlprot($title);
$text = sqlprot($text);
$slug = sqlprot($slug);
$published = strtotime($pub); if (!$published) $published = time();
if (Check::url($header, true) && Check::title($title) && Check::slug($slug) && $_sql->query("INSERT INTO entries (entryHeader, entryTitle, entrySlug, entryContent, entryBy, entryCreated, entryPublished, entryHidden, entryPIN) VALUES ('$header', '$title', '$slug', '$text', $user[userId], ".time().", $published, ".($hidden ? '1' : 'NULL').", ".($pin && is_numeric($pin) ? $pin : 'NULL').")"))
return true;
//die($text);
return false;
}
public static function delete($id)
{
global $_sql;
if (is_numeric($id) && $_sql->query("DELETE FROM entries WHERE entryId = $id"))
return true;
return false;
}
public static function pin($id)
{
global $_sql;
if (is_numeric($id) && $_sql->query("UPDATE entries SET entryPinned = 1 WHERE entryId = $id"))
return true;
return false;
}
public static function unpin($id)
{
global $_sql;
if (is_numeric($id) && $_sql->query("UPDATE entries SET entryPinned = NULL WHERE entryId = $id"))
return true;
return false;
}
public static function tag($cid, $id)
{
if (!is_numeric($cid) || !is_numeric($id)) return false;
global $_sql;
if (!$_sql->query("SELECT * FROM tags WHERE tagId = $cid")->num_rows) return false;
if ($_sql->query("SELECT * FROM tagged WHERE taggedTag = $cid AND taggedEntry = $id")->num_rows) return false;
if ($_sql->query("INSERT INTO tagged (taggedTag, taggedEntry) VALUES ($cid, $id)")) return true;
return false;
}
public static function tagRemove($cid, $id)
{
if (!is_numeric($cid) || !is_numeric($id)) return false;
global $_sql;
if ($_sql->query("DELETE FROM tagged WHERE taggedTag = $cid AND taggedEntry = $id")) return true;
return false;
}
}

View File

@ -1,65 +1,65 @@
<?php
Class Check
{
public static function name($str) {
if(preg_match('/^[a-zA-ZÖÜÓŐÚÉÁŰÍöüóőúéáűí\.\d_\- ]{3,20}$/i', $str))
return true;
return false;
}
public static function link($str) {
if(!preg_match('/^[a-z0-9\d_\-]{3,20}$/i', $str))
return true;
return false;
}
public static function email($str) {
if(preg_match('/^[^0-9][a-zA-Z0-9_]+([.][a-zA-Z0-9_]+)*[@][a-zA-Z0-9_]+([.][a-zA-Z0-9_]+)*[.][a-zA-Z]{2,4}$/',$str) && strlen($str)<51)
return true;
return false;
}
public static function password($str) {
if(strlen($str)<6 || strlen($str)>20)
return true;
return false;
}
public static function domain($str) {
if (filter_var(gethostbyname($str), FILTER_VALIDATE_IP))
return true;
return false;
}
public static function title($title) {
if (strlen($title) > 0 && strlen($title) < 250)
return true;
return false;
}
public static function slug($str) {
if(preg_match('/^[a-zA-Z\d_\- ]{1,100}$/i', $str))
return true;
return false;
}
public static function url($url, $lazy = false) {
if (($lazy && !$url) || !filter_var($url, FILTER_VALIDATE_URL) === false) return true;
return false;
}
<?php
Class Check
{
public static function name($str) {
if(preg_match('/^[a-zA-ZÖÜÓŐÚÉÁŰÍöüóőúéáűí\.\d_\- ]{3,20}$/i', $str))
return true;
return false;
}
public static function link($str) {
if(!preg_match('/^[a-z0-9\d_\-]{3,20}$/i', $str))
return true;
return false;
}
public static function email($str) {
if(preg_match('/^[^0-9][a-zA-Z0-9_]+([.][a-zA-Z0-9_]+)*[@][a-zA-Z0-9_]+([.][a-zA-Z0-9_]+)*[.][a-zA-Z]{2,4}$/',$str) && strlen($str)<51)
return true;
return false;
}
public static function password($str) {
if(strlen($str)<6 || strlen($str)>20)
return true;
return false;
}
public static function domain($str) {
if (filter_var(gethostbyname($str), FILTER_VALIDATE_IP))
return true;
return false;
}
public static function title($title) {
if (strlen($title) > 0 && strlen($title) < 250)
return true;
return false;
}
public static function slug($str) {
if(preg_match('/^[a-zA-Z\d_\- ]{1,100}$/i', $str))
return true;
return false;
}
public static function url($url, $lazy = false) {
if (($lazy && !$url) || !filter_var($url, FILTER_VALIDATE_URL) === false) return true;
return false;
}
}

View File

@ -1,45 +1,45 @@
<?php
class comments
{
private $id;
private $comments;
private $replies;
public function __construct($id)
{
if (!isnum($id)) return false;
$this->id = $id;
}
public function get_comments($check = false)
{
if (!$this->comments)
{
global $_sql;
$query = $_sql->query("SELECT `comments`.*, users.userName AS bySlug, users.userPublicName AS byName, users.userPic FROM `comments` INNER JOIN users ON commentBy = userId WHERE commentEntry = ".$this->id." AND commentReply = 0 ORDER BY commentTime DESC");
if ($check)
return $query->num_rows;
else
$this->comments = $query;
}
return $this->comments->fetch_assoc();
}
public function get_replies($check = false)
{
if (!$this->replies)
{
global $_sql;
$query = $_sql->query("SELECT `comments`.*, users.userName AS bySlug, users.userPublicName AS byName, users.userPic FROM `comments` INNER JOIN users ON commentBy = userId WHERE commentReply = ".$this->id." ORDER BY commentTime DESC");
if ($check)
return $query->num_rows;
$this->replies = $query;
}
return $this->replies->fetch_assoc();
}
<?php
class comments
{
private $id;
private $comments;
private $replies;
public function __construct($id)
{
if (!isnum($id)) return false;
$this->id = $id;
}
public function get_comments($check = false)
{
if (!$this->comments)
{
global $_sql;
$query = $_sql->query("SELECT `comments`.*, users.userName AS bySlug, users.userPublicName AS byName, users.userPic FROM `comments` INNER JOIN users ON commentBy = userId WHERE commentEntry = ".$this->id." AND commentReply = 0 ORDER BY commentTime DESC");
if ($check)
return $query->num_rows;
else
$this->comments = $query;
}
return $this->comments->fetch_assoc();
}
public function get_replies($check = false)
{
if (!$this->replies)
{
global $_sql;
$query = $_sql->query("SELECT `comments`.*, users.userName AS bySlug, users.userPublicName AS byName, users.userPic FROM `comments` INNER JOIN users ON commentBy = userId WHERE commentReply = ".$this->id." ORDER BY commentTime DESC");
if ($check)
return $query->num_rows;
$this->replies = $query;
}
return $this->replies->fetch_assoc();
}
}

File diff suppressed because one or more lines are too long

View File

@ -1,173 +1,173 @@
<?php
/* ---------
Filtr. Class 4 your Entertainment
filtr.sandros.hu
Sandros Industries
2015. June 28.
Version: 2.2.1.00b <== If the last 2 numbers are equal, this version is untested!
Usage:
- Basic
$filtr = new filtrLogin( [ CUSTOM API URL / NULL ] );
$filtr->setAppid( [ APPLICATION IDENTIFIER ] );
$filtr->setApptoken( [ APPLICATION TOKEN HASH ] );
$filtr->setToken( [ USER'S TOKEN GENERATED BY FILTR. APL.REDIRECT ] );
- Advanced
$filtr->DataStorage( [ WAT TO DO (read, write, erase) ], [ KEY (only for writing) ], [ VALUE (only for writing) ]);
$filtr->cache = '/tmp/[ YOUR PROJECTS CODENAME ]/filtrd/';
Comments:
The Filtr. API has a geniune and valid SSL certificate, but it slows down the process.
Use it only if your connection is not trusted!
We're logging EVERY requests, so you will be able to monitor every access and you will be able to limit the APP's access by IP.
Public UNAME/PASSWD authentication NEVER GONNA HAPPEN!
The specified cache must end with '/'. Automatic detection just slows down the process and generates unnecessary load.
That's it! Have fun!
Don't forget to go out and become black. This is important! And cool! You'll be less awesome, but eh.
Just do it! Tomorrow.
--------- */
class filtrLogin
{
/* User authentication */
private $token;
/* Filtr. authentication */
private $appid;
private $apptoken;
private $apiurl = 'http://filtr.sandros.hu/api.php';
/* This holds the response from Filtr. */
private $apiResponse;
// Cache
public $cache;
public $cachetimeout = 60;
/* Hey! :) */
public function __construct($apiurl = false, $cache = false) {
if ($apiurl)
$this->apiurl = $apiurl; // Override the class-default API url with the given one
}
/* Data collectors */
public function setToken($token = 0) { $this->token = $token; }
public function setAppid($user = 0) { $this->appid = $user; }
public function setApptoken($key = 0) { $this->apptoken = $key; }
/* Data storage */
private $datastorage = array();
public function DataStorage($todo, $key = false, $value = false) {
switch($todo)
{
case 'read':
$this->datastorage = array('data_storage'=>'read');
break;
case 'write':
$this->datastorage = array('data_storage'=>'write', 'data_storage_key'=>$key, 'data_storage_value'=>$value);
break;
case 'erase':
$this->datastorage = array('data_storage'=>'erase');
break;
}
if ($this->status())
{
$this->Login();
return (isset($this->apiResponse->data_storage) ? true : false);
}
return true;
}
/* Nasty things */
public function Login($timeout = 6) {
// Caching
if ($this->cache && file_exists($this->cache.$this->token) && filemtime($this->cache.$this->token) > time()-$this->cachetimeout)
{
$this->apiResponse = json_decode(file_get_contents($this->cache.$this->token));
return true;
}
// Collect the auth infos
// ! This looks pretty bad. In the next release, there will be a JSON encoder.
$array = array_merge(array(
'appid' => $this->appid,
'apptoken' => $this->apptoken,
'token' => $this->token,
), $this->datastorage);
// Convert to GET like string
$fields = '';
foreach($array as $key=>$value)
$fields .= $key.'='.$value.'&';
$fields = rtrim($fields, '&');
// Connect options and set data
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $this->apiurl);
curl_setopt($ch, CURLOPT_POST, count($array));
curl_setopt($ch, CURLOPT_POSTFIELDS, $fields);
curl_setopt($ch, CURLOPT_TIMEOUT, $timeout);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
// Free up some memory
unset($fields);
unset($array);
$this->datastorage = false;
// Do what we need to
$rawResponse = curl_exec($ch);
$this->apiResponse = json_decode($rawResponse);
// Basic cache
if ($this->cache)
{
$cache = fopen($this->cache.$this->token, 'w');
fwrite($cache, $rawResponse);
fclose($cache);
unset($cache);
}
unset($rawResponse);
// Close the connection to the login server
curl_close($ch);
unset($ch);
// '1' means the response has came from the remote server
// Not relevant for this script, but you can build an advanced cache control for better performance.
return 1;
}
// Logged in?
public function status() {
if (isset($this->apiResponse->status) && $this->apiResponse->status == 'ok')
return true;
return false;
}
// Return user's data
// Array mode is the default, because this could cause serious problems if someone auto-updating this script.
public function getData($array = true) {
if ($array)
return (array)$this->apiResponse;
return $this->apiResponse;
}
}
<?php
/* ---------
Filtr. Class 4 your Entertainment
filtr.sandros.hu
Sandros Industries
2015. June 28.
Version: 2.2.1.00b <== If the last 2 numbers are equal, this version is untested!
Usage:
- Basic
$filtr = new filtrLogin( [ CUSTOM API URL / NULL ] );
$filtr->setAppid( [ APPLICATION IDENTIFIER ] );
$filtr->setApptoken( [ APPLICATION TOKEN HASH ] );
$filtr->setToken( [ USER'S TOKEN GENERATED BY FILTR. APL.REDIRECT ] );
- Advanced
$filtr->DataStorage( [ WAT TO DO (read, write, erase) ], [ KEY (only for writing) ], [ VALUE (only for writing) ]);
$filtr->cache = '/tmp/[ YOUR PROJECTS CODENAME ]/filtrd/';
Comments:
The Filtr. API has a geniune and valid SSL certificate, but it slows down the process.
Use it only if your connection is not trusted!
We're logging EVERY requests, so you will be able to monitor every access and you will be able to limit the APP's access by IP.
Public UNAME/PASSWD authentication NEVER GONNA HAPPEN!
The specified cache must end with '/'. Automatic detection just slows down the process and generates unnecessary load.
That's it! Have fun!
Don't forget to go out and become black. This is important! And cool! You'll be less awesome, but eh.
Just do it! Tomorrow.
--------- */
class filtrLogin
{
/* User authentication */
private $token;
/* Filtr. authentication */
private $appid;
private $apptoken;
private $apiurl = 'http://filtr.sandros.hu/api.php';
/* This holds the response from Filtr. */
private $apiResponse;
// Cache
public $cache;
public $cachetimeout = 60;
/* Hey! :) */
public function __construct($apiurl = false, $cache = false) {
if ($apiurl)
$this->apiurl = $apiurl; // Override the class-default API url with the given one
}
/* Data collectors */
public function setToken($token = 0) { $this->token = $token; }
public function setAppid($user = 0) { $this->appid = $user; }
public function setApptoken($key = 0) { $this->apptoken = $key; }
/* Data storage */
private $datastorage = array();
public function DataStorage($todo, $key = false, $value = false) {
switch($todo)
{
case 'read':
$this->datastorage = array('data_storage'=>'read');
break;
case 'write':
$this->datastorage = array('data_storage'=>'write', 'data_storage_key'=>$key, 'data_storage_value'=>$value);
break;
case 'erase':
$this->datastorage = array('data_storage'=>'erase');
break;
}
if ($this->status())
{
$this->Login();
return (isset($this->apiResponse->data_storage) ? true : false);
}
return true;
}
/* Nasty things */
public function Login($timeout = 6) {
// Caching
if ($this->cache && file_exists($this->cache.$this->token) && filemtime($this->cache.$this->token) > time()-$this->cachetimeout)
{
$this->apiResponse = json_decode(file_get_contents($this->cache.$this->token));
return true;
}
// Collect the auth infos
// ! This looks pretty bad. In the next release, there will be a JSON encoder.
$array = array_merge(array(
'appid' => $this->appid,
'apptoken' => $this->apptoken,
'token' => $this->token,
), $this->datastorage);
// Convert to GET like string
$fields = '';
foreach($array as $key=>$value)
$fields .= $key.'='.$value.'&';
$fields = rtrim($fields, '&');
// Connect options and set data
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $this->apiurl);
curl_setopt($ch, CURLOPT_POST, count($array));
curl_setopt($ch, CURLOPT_POSTFIELDS, $fields);
curl_setopt($ch, CURLOPT_TIMEOUT, $timeout);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
// Free up some memory
unset($fields);
unset($array);
$this->datastorage = false;
// Do what we need to
$rawResponse = curl_exec($ch);
$this->apiResponse = json_decode($rawResponse);
// Basic cache
if ($this->cache)
{
$cache = fopen($this->cache.$this->token, 'w');
fwrite($cache, $rawResponse);
fclose($cache);
unset($cache);
}
unset($rawResponse);
// Close the connection to the login server
curl_close($ch);
unset($ch);
// '1' means the response has came from the remote server
// Not relevant for this script, but you can build an advanced cache control for better performance.
return 1;
}
// Logged in?
public function status() {
if (isset($this->apiResponse->status) && $this->apiResponse->status == 'ok')
return true;
return false;
}
// Return user's data
// Array mode is the default, because this could cause serious problems if someone auto-updating this script.
public function getData($array = true) {
if ($array)
return (array)$this->apiResponse;
return $this->apiResponse;
}
}
?>

View File

@ -1,10 +1,10 @@
function set_comment_reply(cid)
{
$("form[name='new-comment'] input[name='entryReply']").val(cid);
$("#new-comment-reply span").html('Reply');
}
function spoilerToggle(selem)
{
selem.parent().children(".spoiler_c").stop().slideToggle();
function set_comment_reply(cid)
{
$("form[name='new-comment'] input[name='entryReply']").val(cid);
$("#new-comment-reply span").html('Reply');
}
function spoilerToggle(selem)
{
selem.parent().children(".spoiler_c").stop().slideToggle();
}

File diff suppressed because one or more lines are too long

19578
includes/js/jquery.js vendored

File diff suppressed because it is too large Load Diff

View File

@ -84,6 +84,10 @@
"pages": "Oldalak",
"page_editor": "Oldal szerkesztése",
"page_delete": "Oldal törlése",
"page_delete_failed": "Az oldal törlése sikertelen.",
"page_deleted": "Az oldal sikeresen törölve.",
"page_modified": "Módosítva",
"page_title": "Az oldal címe",
"page_slug": "Az oldal linkje (example.org/page/ez-itt)",
"page_added": "Az oldal mentése sikeresen megtörtént.",
@ -116,11 +120,39 @@
"plugins": "Bővítmények",
"plugin_name": "Név",
"scope": "Hatáskör",
"plugin_noenable": "Static",
"plugins_empty": "Nincsenek elérhető bővítmények.",
"plugin_added": "Bővítmény sikeresen hozzáadva.",
"plugin_not_added": "A bővítmény nem lett hozzáadva.",
"plugin_not_updated": "A beállítást nem lehet elvégezni.",
"site_settings": "Oldal beállításai",
"settings": "Beállítások",
"settings_save": "Beállítások mentése",
"settings_update_failed": "Nem sikerült minden beállítást frissíteni.",
"settings_updated": "A beállítások frissítése sikeresen megtörtént.",
"settings_variable": "Beállítás",
"settings_value": "Érték",
"settings_var_allowedPicTypes": "Engedélyezett képek (mime)",
"settings_var_dateformat": "Dátum formátum",
"settings_var_dateformatShort": "Rövid dátum formátum",
"settings_var_defaultProfilePic": "Alap profilkép",
"settings_var_description": "Oldal leírása (meta)",
"settings_var_entriesPerPage": "Bejegyzések oldalanként",
"settings_var_filtr_appid": "Filtr. App ID",
"settings_var_filtr_apptoken": "Filtr. App Token",
"settings_var_keywords": "Oldal kulcsszavai (meta)",
"settings_var_mainTheme": "Megjelenés könyvtára",
"settings_var_seo": "SEO linkek",
"settings_var_subEntry": "Bejegyzések aloldala",
"settings_var_subPage": "Oldalak aloldala",
"settings_var_subProfile": "Porfilok aloldala",
"settings_var_tagline": "Megjelenítendő leírás",
"settings_var_title": "Oldal címe",
"settings_var_titleFormat": "Oldal címének formátuma",
"settings_var_twitter_site": "Twitter felhasználó",
"settings_var_url": "Oldal URL-je",
"comments": "Hozzászólások",
"post_reply": "Válasz",
"share_impressions": "Oszd meg a véleményed...",

View File

@ -1,29 +1,29 @@
<?php
addTitle($_locale['entries']);
if (isset($seo[1]) && isnum($seo[1]))
$blog = new blog(null, $seo[1]);
else
$blog = new blog();
if (theme_component('entries'))
include theme_component('entries');
else
{
if (LOGGEDIN && $user['userLevel'] > 2) echo "<a href='/admin/entry'><p class='phantom'>{locale:new_entry}</p></a>";
if ($blog->entries)
{
while ($data = $blog->entries())
echo "<article>
<header>
<h2><a href='".get_entry_link($data['entrySlug'])."'>".htmlspecialchars($data['entryTitle'])."</a></h2>
<p class='meta'><time class='date' title='{locale:published_on}'>".show_date($data['entryPublished'])."</time><a href='".get_profile_link($data['userName'])."' class='by' title='{locale:entry_by}'>$data[publicName]</a>".get_entry_admin($data)."</p>
</header>
<div class='content'>".entry_show_init($data['entryContent'], $data['entrySlug'])."</div>
</article>\n";
echo "<p class='paginator'>".(isset($seo[1]) && isnum($seo[1]) ? "<a href='/p/".($seo[1]+1)."'>{locale:next_page}</a><a href='/p/".($seo[1]-1)."'>{locale:prev_page}</a>" : "<a href='/p/2'>{locale:next_page}</a>")."</p>";
} else
echo "<h1>{locale:entry_not_found_title}</h1>"
."<p>{locale:entry_not_found}</p>\n";
<?php
addTitle($_locale['entries']);
if (isset($seo[1]) && isnum($seo[1]))
$blog = new blog(null, $seo[1]);
else
$blog = new blog();
if (theme_component('entries'))
include theme_component('entries');
else
{
if (LOGGEDIN && $user['userLevel'] > 2) echo "<a href='/admin/entry'><p class='phantom'>{locale:new_entry}</p></a>";
if ($blog->entries)
{
while ($data = $blog->entries())
echo "<article>
<header itemscope itemtype='http://schema.org/Article'>
<h2><a href='".get_entry_link($data['entrySlug'])."' itemprop='name'>".htmlspecialchars($data['entryTitle'])."</a></h2>
<p class='meta'><time class='date' title='{locale:published_on}' itemprop='datePublished' content='".date('Y-m-d', $data['entryPublished'])."'>".show_date($data['entryPublished'])."</time><span itemprop='author' itemscope itemtype='http://schema.org/Person'><a href='".get_profile_link($data['userName'])."' class='by' title='{locale:entry_by}' itemprop='url'><span itemprop='name'>$data[publicName]</span></a></span>".get_entry_admin($data)."</p>
</header>
<div class='content' itemprop='articleBody'>".entry_show_init($data['entryContent'], $data['entrySlug'])."</div>
</article>\n";
echo "<p class='paginator'>".(isset($seo[1]) && isnum($seo[1]) ? "<a href='/p/".($seo[1]+1)."'>{locale:next_page}</a><a href='/p/".($seo[1]-1)."'>{locale:prev_page}</a>" : "<a href='/p/2'>{locale:next_page}</a>")."</p>";
} else
echo "<h1>{locale:entry_not_found_title}</h1>"
."<p>{locale:entry_not_found}</p>\n";
}

View File

@ -1,37 +1,39 @@
<?php
if (!isset($seo[1])) redirect();
$blog = new blog($seo[1]);
if (theme_component('entry'))
include theme_component('entry');
else
if ($blog->entries)
while ($data = $blog->entry())
{
addTitle($data['entryTitle']);
if ($data['entryHidden']) echo "<p>{locale:hidden_content}</p>";
if ($data['entryPIN'] && get_pin() != $data['entryPIN'])
echo "<p>{locale:pin_protected_content}</p>
<form action='".get_entry_link($data['entrySlug'])."' method='post' name='entry-pin-input'>
<input type='text' name='read_entry_pin' placeholder='{locale:entry_pin}' />
<button type='submit'>{locale:unlock}</button>
</form>";
else
{
addDescription(entry_show_init($data['entryContent'], $data['entrySlug']));
addImage((preg_match('/< *img[^>]*src *= *["\']?([^"\']*)/i', $data['entryContent'], $images) ? $images[1] : 0));
headerImage($data['entryHeader']);
echo "<article class='full'>
<h2>".htmlspecialchars($data['entryTitle'])."</h2>
<div class='content'>".entry_show_all($data['entryContent'])."</div>
<p class='meta'><time class='date' title='{locale:published_on}'>".show_date($data['entryPublished'])."</time><a href='".get_profile_link($data['userName'])."' class='by' title='{locale:entry_by}'>$data[publicName]</a>".get_entry_admin($data)."</p>
</article>\n";
}
}
else
echo "<h1>{locale:entry_not_found_title}</h1>"
<?php
if (!isset($seo[1])) redirect();
$blog = new blog($seo[1]);
if (theme_component('entry'))
include theme_component('entry');
else
if ($blog->entries)
while ($data = $blog->entry())
{
addTitle($data['entryTitle']);
if ($data['entryHidden']) echo "<p>{locale:hidden_content}</p>";
if ($data['entryPIN'] && get_pin() != $data['entryPIN'])
echo "<p>{locale:pin_protected_content}</p>
<form action='".get_entry_link($data['entrySlug'])."' method='post' name='entry-pin-input'>
<input type='text' name='read_entry_pin' placeholder='{locale:entry_pin}' />
<button type='submit'>{locale:unlock}</button>
</form>";
else
{
addDescription(entry_show_init($data['entryContent'], $data['entrySlug']));
addImage($data['entryHeader']);
headerImage($data['entryHeader']);
echo "<article class='full' itemscope itemtype='http://schema.org/Article'>
<h2 itemprop='name'>".htmlspecialchars($data['entryTitle'])."</h2>
<div class='hidden' itemprop='headline'>".htmlspecialchars($data['entryTitle'])."</div>
".($data['entryHeader'] ? "<img class='hidden' itemprop='image' src='$data[entryHeader]' alt='Header image'/>" : null)."
<div class='content' itemprop='articleBody'>".entry_show_all($data['entryContent'])."</div>
<p class='meta'><time class='date' title='{locale:published_on}' itemprop='datePublished' content='".date('Y-m-d', $data['entryPublished'])."'>".show_date($data['entryPublished'])."</time><span itemprop='author' itemscope itemtype='http://schema.org/Person'><a href='".get_profile_link($data['userName'])."' class='by' title='{locale:entry_by}' itemprop='url'><span itemprop='name'>$data[publicName]</span></a></span>".get_entry_admin($data)."</p>
</article>\n";
}
}
else
echo "<h1>{locale:entry_not_found_title}</h1>"
."<p>{locale:entry_not_found}</p>\n";

View File

@ -1,38 +1,38 @@
<?php
if (LOGGEDIN) redirect(get_profile_link());
addTitle($_locale['login']);
if (theme_component('login')) :
include theme_component('login');
else :
?>
<div style="float: left; width: 48%;">
<h1>{locale:login}</h1>
<form action="<?=get_current_link()?>" method="post" name="login-form">
<input type="text" name="login_name" value="" />
<input type="password" name="login_pass" value="" />
<button type="submit">{locale:login}</button>
</form>
</div>
<div style="float: right; width: 48%;">
<h1>{locale:registration}</h1>
<form action="<?=get_current_link()?>" method="post" name="registration-form">
<input type="text" name="reg_name" value="" placeholder="{locale:username}" autocomplete="off" />
<input type="password" name="reg_pass" value="" placeholder="{locale:password}" autocomplete="off" />
<input type="password" name="reg_pass2" value="" placeholder="{locale:password_again}" autocomplete="off" />
<input type="text" name="reg_email" value="" placeholder="{locale:email}" autocomplete="off" />
<button type="submit">{locale:registration}</button>
</form>
</div>
<div class="clear"></div>
<?php
if (LOGGEDIN) redirect(get_profile_link());
addTitle($_locale['login']);
if (theme_component('login')) :
include theme_component('login');
else :
?>
<div style="float: left; width: 48%;">
<h1>{locale:login}</h1>
<form action="<?=get_current_link()?>" method="post" name="login-form">
<input type="text" name="login_name" value="" />
<input type="password" name="login_pass" value="" />
<button type="submit">{locale:login}</button>
</form>
</div>
<div style="float: right; width: 48%;">
<h1>{locale:registration}</h1>
<form action="<?=get_current_link()?>" method="post" name="registration-form">
<input type="text" name="reg_name" value="" placeholder="{locale:username}" autocomplete="off" />
<input type="password" name="reg_pass" value="" placeholder="{locale:password}" autocomplete="off" />
<input type="password" name="reg_pass2" value="" placeholder="{locale:password_again}" autocomplete="off" />
<input type="text" name="reg_email" value="" placeholder="{locale:email}" autocomplete="off" />
<button type="submit">{locale:registration}</button>
</form>
</div>
<div class="clear"></div>
<?php endif ?>

View File

@ -1,16 +1,16 @@
<?php
if (!isset($seo[1])) redirect();
$page = new page($seo[1]);
if (theme_component('page'))
include theme_component('page');
else
if ($page->readable())
{
addTitle($page->data['pageTitle']);
echo "<h1>".htmlspecialchars($page->data['pageTitle'])."</h1>";
echo entry_show_all($page->data['pageContent']);
<?php
if (!isset($seo[1])) redirect();
$page = new page($seo[1]);
if (theme_component('page'))
include theme_component('page');
else
if ($page->readable())
{
addTitle($page->data['pageTitle']);
echo "<h1>".htmlspecialchars($page->data['pageTitle'])."</h1>";
echo entry_show_all($page->data['pageContent']);
}

View File

@ -1,126 +1,126 @@
<?php
$profile = new user($seo[1], null, null, true);
if ($profile) :
$userData = $profile->get_data();
$me = (LOGGEDIN && $user['userId'] == $userData['userId'] ? true : false);
endif;
if ($me)
{
if (isset($_POST["userEdit"]))
{
$name = $_POST['userPublicName']; if (!Check::name($name)) array_push($error, $_locale['edit_wrong_public_name']);
$rname = $_POST['userRealName']; if (!Check::name($rname)) array_push($error, $_locale['edit_wrong_real_name']);
$email = $_POST['userEmail']; if (strlen($email) && !Check::email($email)) array_push($error, $_locale['edit_wrong_email']);
$web = $_POST['userWeb']; if (!Check::domain($web)) array_push($error, $_locale['edit_wrong_web']);
$bio = htmlspecialchars($_POST['userIntroduction']); if (strlen($bio) > 200) array_push($error, $_locale['edit_wrong_introduction']);
$bio = sqlprot($bio);
if (empty($error))
if ($_sql->query("UPDATE users SET userPublicName = '$name',userRealName = '$rname',userEmail = '$email',userWeb = '$web',userIntroduction = '$bio' WHERE userId = $user[userId]"))
redirect(get_profile_link());
else
array_push($error, $_locale['profile_not_updated']);
}
if (isset($_FILES["userPic"]))
{
$file = 'data/profile_pics/'.$user['userId'].'.jpg';
if (file_exists($file)) unlink($file);
if ($_FILES["userPic"]["error"] < 1 && in_array($_FILES["userPic"]["type"], explode(',', $_set['allowedPicTypes'])))
{
clear_cache();
$thumb = new Imagick($_FILES["userPic"]["tmp_name"]);
//$thumb->resizeImage(500, 500, Imagick::FILTER_POINT, 1, true);
$thumb->cropThumbnailImage(500, 500);
$thumb->setImageFormat('jpg');
$thumb->writeImage($file);
$thumb->destroy();
$profile->setPic(true);
redirect(get_current_link());
} else
{
$profile->setPic(false);
}
} else
{
//$profile->setPic(false);
//redirect(get_current_link());
}
}
if (isset($seo[2]) && $seo[2] == 'edit')
{
addTitle($_locale['profile_edit']);
if (theme_component('profile_edit'))
include theme_component('profile_edit');
else
include 'includes/main/profile_edit.php';
}
else
{
addTitle($userData['userPublicName'].$_locale['s_profile']);
if (theme_component('profile')) :
include theme_component('profile');
else :
if ($profile) :
?>
<div class="profile pic">
<div id="profile_pic" style="background-image: url('<?=get_profile_picture($userData)?>')">
<?php if ($me) : ?>
<form action="<?=get_current_link()?>" method="post" name="userpic-upload" enctype="multipart/form-data">
<input type="file" name="userPic" id="userPicInput" style="display: none" />
<button type="button" onclick="$('#userPicInput').focus().click()">{locale:browse}</button><button type="submit" id="userPicSaveBtn" class="orange">{locale:delete}</button>
</form>
<script>
$("#userPicInput").change(function() {
$("#userPicSaveBtn").html('{locale:save}').removeClass('orange');
});
</script>
<?php endif ?>
</div>
</div>
<div class="profile details">
<h1><?=$userData['userPublicName'].$_locale['s_profile']?></h1>
<h3><?=$userData['userName'].($me ? ' <a href="'.get_current_link().'/edit" class="edit">{locale:profile_edit}</a>' : '')?></h3>
<?php if (LOGGEDIN) : ?>
<div class='box contact'>
<p><strong>{locale:name}:</strong> <?=$userData['userRealName']?></p>
<p><strong>{locale:email}:</strong> <?=$userData['userEmail']?></p>
<p><strong>{locale:web}:</strong> <?=$userData['userWeb']?></p>
</div>
<div class='spacer'></div>
<?php endif ?>
<?php
$recent = $_sql->query("SELECT entrySlug, entryTitle FROM entries WHERE entryBy = $userData[userId] AND entryPublished <= ".time()." ORDER BY entryPublished DESC LIMIT 5");
if ($recent->num_rows) : ?>
<div class='box recent'>
<?php
while ($data = $recent->fetch_assoc())
echo "<p><a href='".get_entry_link($data['entrySlug'])."'>".trimlink($data['entryTitle'], 42)."</a></p>\n";
?>
</div>
<?php endif; unset($recent); ?>
<?php if ($userData['userIntroduction']) : ?>
<div class='box introduction'>
<p><?=$userData['userIntroduction']?></p>
</div>
<?php endif ?>
<div class="clear"></div>
</div>
<div class="clear"></div>
<?php else : ?>
<h1>{locale:profile}</h1>
<p>{locale:profile_not_found}</p>
<?php
$profile = new user($seo[1], null, null, true);
if ($profile) :
$userData = $profile->get_data();
$me = (LOGGEDIN && $user['userId'] == $userData['userId'] ? true : false);
endif;
if ($me)
{
if (isset($_POST["userEdit"]))
{
$name = $_POST['userPublicName']; if (!Check::name($name)) array_push($error, $_locale['edit_wrong_public_name']);
$rname = $_POST['userRealName']; if (!Check::name($rname)) array_push($error, $_locale['edit_wrong_real_name']);
$email = $_POST['userEmail']; if (strlen($email) && !Check::email($email)) array_push($error, $_locale['edit_wrong_email']);
$web = $_POST['userWeb']; if (!Check::domain($web)) array_push($error, $_locale['edit_wrong_web']);
$bio = htmlspecialchars($_POST['userIntroduction']); if (strlen($bio) > 200) array_push($error, $_locale['edit_wrong_introduction']);
$bio = sqlprot($bio);
if (empty($error))
if ($_sql->query("UPDATE users SET userPublicName = '$name',userRealName = '$rname',userEmail = '$email',userWeb = '$web',userIntroduction = '$bio' WHERE userId = $user[userId]"))
redirect(get_profile_link());
else
array_push($error, $_locale['profile_not_updated']);
}
if (isset($_FILES["userPic"]))
{
$file = 'data/profile_pics/'.$user['userId'].'.jpg';
if (file_exists($file)) unlink($file);
if ($_FILES["userPic"]["error"] < 1 && in_array($_FILES["userPic"]["type"], explode(',', $_set['allowedPicTypes'])))
{
clear_cache();
$thumb = new Imagick($_FILES["userPic"]["tmp_name"]);
//$thumb->resizeImage(500, 500, Imagick::FILTER_POINT, 1, true);
$thumb->cropThumbnailImage(500, 500);
$thumb->setImageFormat('jpg');
$thumb->writeImage($file);
$thumb->destroy();
$profile->setPic(true);
redirect(get_current_link());
} else
{
$profile->setPic(false);
}
} else
{
//$profile->setPic(false);
//redirect(get_current_link());
}
}
if (isset($seo[2]) && $seo[2] == 'edit')
{
addTitle($_locale['profile_edit']);
if (theme_component('profile_edit'))
include theme_component('profile_edit');
else
include 'includes/main/profile_edit.php';
}
else
{
addTitle($userData['userPublicName'].$_locale['s_profile']);
if (theme_component('profile')) :
include theme_component('profile');
else :
if ($profile) :
?>
<div class="profile pic">
<div id="profile_pic" style="background-image: url('<?=get_profile_picture($userData)?>')">
<?php if ($me) : ?>
<form action="<?=get_current_link()?>" method="post" name="userpic-upload" enctype="multipart/form-data">
<input type="file" name="userPic" id="userPicInput" style="display: none" />
<button type="button" onclick="$('#userPicInput').focus().click()">{locale:browse}</button><button type="submit" id="userPicSaveBtn" class="orange">{locale:delete}</button>
</form>
<script>
$("#userPicInput").change(function() {
$("#userPicSaveBtn").html('{locale:save}').removeClass('orange');
});
</script>
<?php endif ?>
</div>
</div>
<div class="profile details">
<h1><?=$userData['userPublicName'].$_locale['s_profile']?></h1>
<h3><?=$userData['userName'].($me ? ' <a href="'.get_current_link().'/edit" class="edit">{locale:profile_edit}</a>' : '')?></h3>
<?php if (LOGGEDIN) : ?>
<div class='box contact'>
<p><strong>{locale:name}:</strong> <?=$userData['userRealName']?></p>
<p><strong>{locale:email}:</strong> <?=$userData['userEmail']?></p>
<p><strong>{locale:web}:</strong> <?=$userData['userWeb']?></p>
</div>
<div class='spacer'></div>
<?php endif ?>
<?php
$recent = $_sql->query("SELECT entrySlug, entryTitle FROM entries WHERE entryBy = $userData[userId] AND entryPublished <= ".time()." ORDER BY entryPublished DESC LIMIT 5");
if ($recent->num_rows) : ?>
<div class='box recent'>
<?php
while ($data = $recent->fetch_assoc())
echo "<p><a href='".get_entry_link($data['entrySlug'])."'>".trimlink($data['entryTitle'], 42)."</a></p>\n";
?>
</div>
<?php endif; unset($recent); ?>
<?php if ($userData['userIntroduction']) : ?>
<div class='box introduction'>
<p><?=$userData['userIntroduction']?></p>
</div>
<?php endif ?>
<div class="clear"></div>
</div>
<div class="clear"></div>
<?php else : ?>
<h1>{locale:profile}</h1>
<p>{locale:profile_not_found}</p>
<?php endif; endif; } ?>

View File

@ -1,17 +1,17 @@
<h1>{locale:profile_edit}: <?=$userData['userPublicName']?></h1>
<form action="<?=get_current_link()?>" method="post" name="edit-profile">
<h3>{locale:contact}</h3>
<input type="text" name="userPublicName" value="<?=$userData['userPublicName']?>" placeholder="{locale:public_name}" maxlength="50" />
<input type="text" name="userRealName" value="<?=$userData['userRealName']?>" placeholder="{locale:name}" maxlength="50" />
<input type="text" name="userEmail" value="<?=$userData['userEmail']?>" placeholder="{locale:email}" maxlength="50" />
<input type="text" name="userWeb" value="<?=$userData['userWeb']?>" placeholder="{locale:web}" maxlength="50" />
<h3>{locale:introduction}</h3>
<textarea name="userIntroduction" maxlength="320"><?=htmlentities($userData['userIntroduction'])?></textarea>
<button type="submit" name="userEdit">{locale:save}</button>
<h1>{locale:profile_edit}: <?=$userData['userPublicName']?></h1>
<form action="<?=get_current_link()?>" method="post" name="edit-profile">
<h3>{locale:contact}</h3>
<input type="text" name="userPublicName" value="<?=$userData['userPublicName']?>" placeholder="{locale:public_name}" maxlength="50" />
<input type="text" name="userRealName" value="<?=$userData['userRealName']?>" placeholder="{locale:name}" maxlength="50" />
<input type="text" name="userEmail" value="<?=$userData['userEmail']?>" placeholder="{locale:email}" maxlength="50" />
<input type="text" name="userWeb" value="<?=$userData['userWeb']?>" placeholder="{locale:web}" maxlength="50" />
<h3>{locale:introduction}</h3>
<textarea name="userIntroduction" maxlength="320"><?=htmlentities($userData['userIntroduction'])?></textarea>
<button type="submit" name="userEdit">{locale:save}</button>
</form>

View File

@ -1,29 +1,29 @@
<?php
if (!isset($seo[1]) || !is_numeric($seo[1])) redirect();
$tagged = $_sql->query("SELECT tagName FROM tags WHERE tagId = $seo[1]");
$entries = $_sql->query("SELECT entrySlug, entryTitle, entryPublished, entryBy FROM entries INNER JOIN tagged ON taggedEntry = entryId WHERE taggedTag = $seo[1] AND entryHidden IS NULL ORDER BY entryPublished DESC");
if (theme_component('tag'))
include theme_component('tag');
else
{
if ($tagged->num_rows)
{
$tag = $tagged->fetch_assoc();
addTitle($tag['tagName']);
echo "<h1>$tag[tagName]</h1>";
if ($entries->num_rows)
{
echo "<ul>";
while ($data = $entries->fetch_assoc())
echo "<li><a href='".get_entry_link($data['entrySlug'])."'>$data[entryTitle]</a></li>";
echo "</ul>";
}
}
}
unset($tag);
unset($tagged);
unset($entries);
<?php
if (!isset($seo[1]) || !is_numeric($seo[1])) redirect();
$tagged = $_sql->query("SELECT tagName FROM tags WHERE tagId = $seo[1]");
$entries = $_sql->query("SELECT entrySlug, entryTitle, entryPublished, entryBy FROM entries INNER JOIN tagged ON taggedEntry = entryId WHERE taggedTag = $seo[1] AND entryHidden IS NULL ORDER BY entryPublished DESC");
if (theme_component('tag'))
include theme_component('tag');
else
{
if ($tagged->num_rows)
{
$tag = $tagged->fetch_assoc();
addTitle($tag['tagName']);
echo "<h1>$tag[tagName]</h1>";
if ($entries->num_rows)
{
echo "<ul>";
while ($data = $entries->fetch_assoc())
echo "<li><a href='".get_entry_link($data['entrySlug'])."'>$data[entryTitle]</a></li>";
echo "</ul>";
}
}
}
unset($tag);
unset($tagged);
unset($entries);

View File

@ -1,92 +1,92 @@
<?php
class page
{
private $query;
public $exists;
public $data;
public $slug;
public function __construct($slug = false)
{
global $_sql;
if ($slug)
{
$slug = sqlprot($slug);
$this->slug = $slug;
$this->query = $_sql->query("SELECT * FROM pages WHERE pageSlug = '$slug'");
$this->exists = ($this->query->num_rows ? true : false);
if ($this->exists)
$this->data = $this->query->fetch_assoc();
} else
{
$this->query = $_sql->query("SELECT * FROM pages".($trash ? ' WHERE pageDeleted = 1' : ''));
$this->exists = ($this->query->num_rows ? true : false);
}
}
public function status()
{
if ($this->exists)
return true;
return false;
}
public function readable()
{
if ($this->exists && !$this->data['pageDeleted'])
return true;
return false;
}
public function get_list()
{
$pages = array();
while ($data = $this->query->fetch_assoc())
array_push($pages, $data);
}
public function update($title, $content)
{
global $_sql;
$title = sqlprot($title);
$content = sqlprot($content);
if (Check::title($title) && $this->data)
if ($_sql->query("UPDATE pages SET pageTitle = '$title', pageContent = '$content' WHERE pageSlug = '".$this->data['pageSlug']."'"))
return true;
return false;
}
public function create($title, $content)
{
global $_sql;
$slug = sqlprot($this->slug);
$title = sqlprot($title);
$content = sqlprot($content);
if (Check::title($title) && Check::slug($slug) && !$this->data)
if ($_sql->query("INSERT INTO pages (pageSlug, pageTitle, pageContent) VALUES ('$slug', '$title', '$content')"))
return true;
return false;
}
public function delete()
{
global $_sql;
if ($this->data)
if ($_sql->query("UPDATE pages SET pageDeleted = 1 WHERE pageSlug = '".$this->data['pageSlug']."'"))
return true;
return false;
}
<?php
class page
{
private $query;
public $exists;
public $data;
public $slug;
public function __construct($slug = false)
{
global $_sql;
if ($slug)
{
$slug = sqlprot($slug);
$this->slug = $slug;
$this->query = $_sql->query("SELECT * FROM pages WHERE pageSlug = '$slug'");
$this->exists = ($this->query->num_rows ? true : false);
if ($this->exists)
$this->data = $this->query->fetch_assoc();
} else
{
$this->query = $_sql->query("SELECT * FROM pages".($trash ? ' WHERE pageDeleted = 1' : ''));
$this->exists = ($this->query->num_rows ? true : false);
}
}
public function status()
{
if ($this->exists)
return true;
return false;
}
public function readable()
{
if ($this->exists && !$this->data['pageDeleted'])
return true;
return false;
}
public function get_list()
{
$pages = array();
while ($data = $this->query->fetch_assoc())
array_push($pages, $data);
}
public function update($title, $content)
{
global $_sql;
$title = sqlprot($title);
$content = sqlprot($content);
if (Check::title($title) && $this->data)
if ($_sql->query("UPDATE pages SET pageTitle = '$title', pageContent = '$content', pageModified = ".time()." WHERE pageSlug = '".$this->data['pageSlug']."' AND pageDeleted IS NULL"))
return true;
return false;
}
public function create($title, $content)
{
global $_sql;
$slug = sqlprot($this->slug);
$title = sqlprot($title);
$content = sqlprot($content);
if (Check::title($title) && Check::slug($slug) && !$this->data)
if ($_sql->query("INSERT INTO pages (pageSlug, pageTitle, pageContent, pageCreated) VALUES ('$slug', '$title', '$content', ".time().")"))
return true;
return false;
}
public function delete()
{
global $_sql;
if ($this->data)
if ($_sql->query("UPDATE pages SET pageDeleted = ".time()." WHERE pageSlug = '".$this->data['pageSlug']."'"))
return true;
return false;
}
}

View File

@ -1,28 +1,28 @@
<?php
header("Content-Type: application/xml");
echo '<?xml version="1.0" encoding="UTF-8" ?>'."\n";
?>
<rss version="2.0">
<channel>
<title><?=$_set['title']?></title>
<link><?=$_set['url']?></link>
<description><?=$_set['description']?></description>
<language>hu-hu</language>
<?php
$blog = new blog();
while ($data = $blog->entries())
{
$image = preg_match('/< *img[^>]*src *= *["\']?([^"\']*)/i', $data['entryContent'], $images);
echo " <item>\n"
." <title>".htmlspecialchars($data['entryTitle'])."</title>\n"
." <pubDate>".show_date($data['entryPublished'])."</pubDate>\n"
." <link>".$_set['url'].get_entry_link($data['entrySlug'])."</link>\n"
." <description>".strip_tags(nl2br(explode('[[MORE]]', $data['entryContent'])[0]))."</description>\n"
.($image ? " <media:thumbnail url='".$_set['url'].$images[1]."' />\n" : null)
." </item>\n";
}
?>
</channel>
<?php
header("Content-Type: application/xml");
echo '<?xml version="1.0" encoding="UTF-8" ?>'."\n";
?>
<rss version="2.0">
<channel>
<title><?=$_set['title']?></title>
<link><?=$_set['url']?></link>
<description><?=$_set['description']?></description>
<language>hu-hu</language>
<?php
$blog = new blog();
while ($data = $blog->entries())
{
$image = preg_match('/< *img[^>]*src *= *["\']?([^"\']*)/i', $data['entryContent'], $images);
echo " <item>\n"
." <title>".htmlspecialchars($data['entryTitle'])."</title>\n"
." <pubDate>".show_date($data['entryPublished'])."</pubDate>\n"
." <link>".$_set['url'].get_entry_link($data['entrySlug'])."</link>\n"
." <description>".strip_tags(nl2br(explode('[[MORE]]', $data['entryContent'])[0]))."</description>\n"
.($image ? " <media:thumbnail url='".$_set['url'].$images[1]."' />\n" : null)
." </item>\n";
}
?>
</channel>
</rss>

View File

@ -0,0 +1,32 @@
<?php
class settings
{
public function __construct() {}
public static function getdata()
{
global $_sql;
$_set = array();
$set = $_sql->query("SELECT * FROM settings");
while ($data = $set->fetch_assoc())
$_set[$data['variable']] = $data['value'];
return $_set;
}
public function update($var, $val)
{
global $_sql, $_set;
if (isset($_set[$var]) && $_sql->query("UPDATE `settings` SET `value` = '".sqlprot($val)."' WHERE `variable` = '".$var."'"))
return true;
return false;
}
}

View File

@ -1,9 +1,9 @@
<?php
echo "<ul>";
echo "<li><a href='".get_profile_link()."'>$user[userName]$_locale[s_profile]</a></li>";
if ($user['userLevel'] > 1) echo "<li><a href='".get_site_link()."/admin'>$_locale[admin]</a></li>";
if ($user['userLevel'] > 2) echo "<li><a href='".get_site_link()."/admin/entry'>$_locale[new_entry]</a></li>";
echo "<li><a href='?logout'>$_locale[logout]</a></li>";
<?php
echo "<ul>";
echo "<li><a href='".get_profile_link()."'>$user[userName]$_locale[s_profile]</a></li>";
if ($user['userLevel'] > 1) echo "<li><a href='".get_site_link()."/admin'>$_locale[admin]</a></li>";
if ($user['userLevel'] > 2) echo "<li><a href='".get_site_link()."/admin/entry'>$_locale[new_entry]</a></li>";
echo "<li><a href='?logout'>$_locale[logout]</a></li>";
echo "</ul>";

View File

@ -1,29 +1,24 @@
<?php
if (LOGGEDIN) :
echo "<li>";
echo "<h2>$user[userName]</h2>";
echo "<a href='".get_profile_link()."'><img src='".get_profile_picture()."' alt='' style='width: 120px' /></a>";
include 'includes/sidebar/account.php';
echo "</li>";
else :
?>
<li>
<h2><?=$_locale['login']?></h2>
<form action="<?=get_current_link()?>" method="post" name="login-form">
<input type="text" name="login_name" value="" placeholder="<?=$_locale['username']?>" />
<input type="password" name="login_pass" value="" placeholder="<?=$_locale['password']?>" />
<button type="submit"><?=$_locale['login']?></button>
</form>
</li>
<?php endif;
echo "<li><h2>$_locale[tags]</h2><ul class='tags'>";
get_tags();
echo "</ul></li>";
<?php
if (LOGGEDIN) :
echo "<li>";
echo "<h2>$user[userName]</h2>";
echo "<a href='".get_profile_link()."'><img src='".get_profile_picture()."' alt='' style='width: 120px' /></a>";
include 'includes/sidebar/account.php';
echo "</li>";
else :
?>
<li>
<h2><?=$_locale['login']?></h2>
<form action="//filtr.sandros.hu/app_login/<?=$_set['filtr_appid']?>&amp;ret" method="get" name="login-form" id="footer-account">
<input type="submit" name="login" value="<?=$_locale['login']?>" />
</form>
</li>
<?php endif;
echo "<li><h2>$_locale[tags]</h2><ul class='tags'>";
get_tags();
echo "</ul></li>";
?>

View File

@ -1,68 +1,68 @@
<?php
class user
{
private $id = 0;
private $name;
public $data;
private $udata = array();
private $counter = 0;
public function __construct($name = false, $data = false)
{
if ($this->counter > 2) return false;
$this->counter++;
global $_sql;
$query = $_sql->query("SELECT * FROM users WHERE userName = '$name'");
if ($query->num_rows)
{
$this->data = $query->fetch_assoc();
$this->id = $this->data['userId'];
return true;
} else
{
if ($data && $_sql->query("INSERT INTO users (userFiltrId, userName, userPublicName, userEmail, userRegistered, userRealName) VALUES ('$data[id]', '".$_sql->real_escape_string($name)."', '".$_sql->real_escape_string($data['name'])."', '".$_sql->real_escape_string($data['email'])."', '".time()."', '".$_sql->real_escape_string($data['name'])."')"))
return $this->__construct($name, $data);
}
return false;
}
public function get_data()
{
if ($this->data)
return $this->data;
global $_sql;
$query = $_sql->query("SELECT * FROM users WHERE ".($this->name ? "userName = '".$this->name."'" : "userId = ".$this->id));
if ($query->num_rows)
return $query->fetch_assoc();
return false;
}
public function setPic($status = false)
{
global $_sql;
$this->get_data();
if ($_sql->query("UPDATE users SET userPic = ".($status ? 1 : 0)." WHERE userId = ".$this->data['userId']))
return true;
return false;
}
public function setData($field, $value)
{
global $_sql;
$this->get_data();
if ($_sql->query("UPDATE users SET `$field` = '".sqlprot($value)."' WHERE userId = ".$this->data['userId']))
return true;
return false;
}
<?php
class user
{
private $id = 0;
private $name;
public $data;
private $udata = array();
private $counter = 0;
public function __construct($name = false, $data = false)
{
if ($this->counter > 2) return false;
$this->counter++;
global $_sql;
$query = $_sql->query("SELECT * FROM users WHERE userName = '$name'");
if ($query->num_rows)
{
$this->data = $query->fetch_assoc();
$this->id = $this->data['userId'];
return true;
} else
{
if ($data && $_sql->query("INSERT INTO users (userFiltrId, userName, userPublicName, userEmail, userRegistered, userRealName) VALUES ('$data[id]', '".$_sql->real_escape_string($name)."', '".$_sql->real_escape_string($data['name'])."', '".$_sql->real_escape_string($data['email'])."', '".time()."', '".$_sql->real_escape_string($data['name'])."')"))
return $this->__construct($name, $data);
}
return false;
}
public function get_data()
{
if ($this->data)
return $this->data;
global $_sql;
$query = $_sql->query("SELECT * FROM users WHERE ".($this->name ? "userName = '".$this->name."'" : "userId = ".$this->id));
if ($query->num_rows)
return $query->fetch_assoc();
return false;
}
public function setPic($status = false)
{
global $_sql;
$this->get_data();
if ($_sql->query("UPDATE users SET userPic = ".($status ? 1 : 0)." WHERE userId = ".$this->data['userId']))
return true;
return false;
}
public function setData($field, $value)
{
global $_sql;
$this->get_data();
if ($_sql->query("UPDATE users SET `$field` = '".sqlprot($value)."' WHERE userId = ".$this->data['userId']))
return true;
return false;
}
}

193
index.php
View File

@ -1,101 +1,92 @@
<?php
require_once 'core.php';
ob_start();
switch ($seo[0])
{
case 'rss':
include 'includes/rss.php';
exit;
break;
case $_set['subEntry']:
if (isset($_POST['read_entry_pin']) && is_numeric($_POST['read_entry_pin'])) set_pin($_POST['read_entry_pin']);
include 'includes/main/entry.php';
break;
case $_set['subPage']:
include 'includes/main/page.php';
break;
case $_set['subProfile']:
if (!isset($seo[1])) redirect();
include 'includes/main/profile.php';
break;
case 'tag':
include 'includes/main/tag.php';
break;
case 'login':
include 'includes/main/login.php';
break;
case 'admin':
if (LOGGEDIN && $user['userLevel'] > 1)
include 'includes/admin/main.php';
else
redirect();
break;
case 'p':
include 'includes/main/entries.php';
break;
case 'filtrToken':
if (isset($seo[1]))
setcookie('filtr_token', $seo[1], time()+3600*24*31, '/');
redirect();
break;
default:
include 'includes/main/entries.php';
break;
}
// COLLECT OUTPUT
$output = ob_get_contents();
ob_end_clean();
// PLUGINS
$pluginsQuery = $_sql->query("SELECT pluginLib, pluginStatus FROM plugins WHERE pluginStatus = 1");
while ($data = $pluginsQuery->fetch_assoc())
{
$pinfo = 'plugins/'.$data['pluginLib'].'/info.json';
$pexec = 'plugins/'.$data['pluginLib'].'/_plugin.php';
if (file_exists($pinfo) && file_exists($pexec))
{
$pinfo = (array)json_decode(file_get_contents($pinfo));
$cpath = explode(',', $pinfo['paths']);
for ($a = 0; $a < sizeof($cpath); $a++)
{
$ppath = explode('/', ltrim($cpath[$a], '/'));
$load = true;
for ($i = 0; $i < sizeof($ppath); $i++)
if (isset($seo[$i]) && $seo[$i] == $ppath[$i] && $load)
$load = true;
else
$load = false;
if ($load)
include $pexec;
}
unset($i);
unset($a);
unset($pinfo);
unset($load);
unset($pexec);
unset($ppath);
unset($cpath);
}
}
// LOAD THEME
if (get_theme())
include get_theme();
else
nice_error('The theme is not complete.');
<?php
require_once 'core.php';
ob_start();
switch ($seo[0])
{
case 'rss':
include 'includes/rss.php';
exit;
break;
case $_set['subEntry']:
if (isset($_POST['read_entry_pin']) && is_numeric($_POST['read_entry_pin'])) set_pin($_POST['read_entry_pin']);
include 'includes/main/entry.php';
break;
case $_set['subPage']:
include 'includes/main/page.php';
break;
case $_set['subProfile']:
if (!isset($seo[1])) redirect();
include 'includes/main/profile.php';
break;
case 'tag':
include 'includes/main/tag.php';
break;
case 'login':
include 'includes/main/login.php';
break;
case 'admin':
if (LOGGEDIN && $user['userLevel'] > 1)
include 'includes/admin/main.php';
else
redirect();
break;
case 'p':
include 'includes/main/entries.php';
break;
case 'filtrToken':
if (isset($seo[1]))
setcookie('filtr_token', $seo[1], time()+3600*24*31, '/');
redirect();
break;
default:
include 'includes/main/entries.php';
break;
}
// COLLECT OUTPUT
$output = ob_get_contents();
ob_end_clean();
// PLUGINS
$pluginsQuery = $_sql->query("SELECT pluginLib, pluginStatus FROM plugins WHERE pluginStatus = 1");
while ($data = $pluginsQuery->fetch_assoc())
{
$pinfo = 'plugins/'.$data['pluginLib'].'/info.json';
$pexec = 'plugins/'.$data['pluginLib'].'/_plugin.php';
if (file_exists($pinfo) && file_exists($pexec))
{
$pinfo = (array)json_decode(file_get_contents($pinfo));
$paths = explode(',', $pinfo['paths']);
foreach ($paths AS $index => $path)
if (fnmatch($path, get_current_link()))
{
include $pexec;
break;
}
}
unset($pinfo);
unset($pexec);
}
// LOAD THEME
if (get_theme())
include get_theme();
else
nice_error('The theme is not complete.');

View File

@ -1,5 +1,5 @@
<?php
addHead('<script src="/plugins/ckeditor/ckeditor.js"></script>', 'ckeditor');
addHead('<script src="/plugins/ckeditor/adapters/jquery.js"></script>', 'ckeditor-adapter');
<?php
addHead('<script src="/plugins/ckeditor/ckeditor.js"></script>', 'ckeditor');
addHead('<script src="/plugins/ckeditor/adapters/jquery.js"></script>', 'ckeditor-adapter');
addHead('<script>$(document).ready(function() { $("#content textarea").ckeditor(); });</script>');

View File

@ -1,10 +1,10 @@
/*
Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved.
For licensing, see LICENSE.md or http://ckeditor.com/license
*/
(function(a){CKEDITOR.config.jqueryOverrideVal="undefined"==typeof CKEDITOR.config.jqueryOverrideVal?!0:CKEDITOR.config.jqueryOverrideVal;"undefined"!=typeof a&&(a.extend(a.fn,{ckeditorGet:function(){var a=this.eq(0).data("ckeditorInstance");if(!a)throw"CKEditor is not initialized yet, use ckeditor() with a callback.";return a},ckeditor:function(g,d){if(!CKEDITOR.env.isCompatible)throw Error("The environment is incompatible.");if(!a.isFunction(g))var k=d,d=g,g=k;var i=[],d=d||{};this.each(function(){var b=
a(this),c=b.data("ckeditorInstance"),f=b.data("_ckeditorInstanceLock"),h=this,j=new a.Deferred;i.push(j.promise());if(c&&!f)g&&g.apply(c,[this]),j.resolve();else if(f)c.once("instanceReady",function(){setTimeout(function(){c.element?(c.element.$==h&&g&&g.apply(c,[h]),j.resolve()):setTimeout(arguments.callee,100)},0)},null,null,9999);else{if(d.autoUpdateElement||"undefined"==typeof d.autoUpdateElement&&CKEDITOR.config.autoUpdateElement)d.autoUpdateElementJquery=!0;d.autoUpdateElement=!1;b.data("_ckeditorInstanceLock",
!0);c=a(this).is("textarea")?CKEDITOR.replace(h,d):CKEDITOR.inline(h,d);b.data("ckeditorInstance",c);c.on("instanceReady",function(d){var e=d.editor;setTimeout(function(){if(e.element){d.removeListener();e.on("dataReady",function(){b.trigger("dataReady.ckeditor",[e])});e.on("setData",function(a){b.trigger("setData.ckeditor",[e,a.data])});e.on("getData",function(a){b.trigger("getData.ckeditor",[e,a.data])},999);e.on("destroy",function(){b.trigger("destroy.ckeditor",[e])});e.on("save",function(){a(h.form).submit();
return!1},null,null,20);if(e.config.autoUpdateElementJquery&&b.is("textarea")&&a(h.form).length){var c=function(){b.ckeditor(function(){e.updateElement()})};a(h.form).submit(c);a(h.form).bind("form-pre-serialize",c);b.bind("destroy.ckeditor",function(){a(h.form).unbind("submit",c);a(h.form).unbind("form-pre-serialize",c)})}e.on("destroy",function(){b.removeData("ckeditorInstance")});b.removeData("_ckeditorInstanceLock");b.trigger("instanceReady.ckeditor",[e]);g&&g.apply(e,[h]);j.resolve()}else setTimeout(arguments.callee,
100)},0)},null,null,9999)}});var f=new a.Deferred;this.promise=f.promise();a.when.apply(this,i).then(function(){f.resolve()});this.editor=this.eq(0).data("ckeditorInstance");return this}}),CKEDITOR.config.jqueryOverrideVal&&(a.fn.val=CKEDITOR.tools.override(a.fn.val,function(g){return function(d){if(arguments.length){var k=this,i=[],f=this.each(function(){var b=a(this),c=b.data("ckeditorInstance");if(b.is("textarea")&&c){var f=new a.Deferred;c.setData(d,function(){f.resolve()});i.push(f.promise());
/*
Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved.
For licensing, see LICENSE.md or http://ckeditor.com/license
*/
(function(a){CKEDITOR.config.jqueryOverrideVal="undefined"==typeof CKEDITOR.config.jqueryOverrideVal?!0:CKEDITOR.config.jqueryOverrideVal;"undefined"!=typeof a&&(a.extend(a.fn,{ckeditorGet:function(){var a=this.eq(0).data("ckeditorInstance");if(!a)throw"CKEditor is not initialized yet, use ckeditor() with a callback.";return a},ckeditor:function(g,d){if(!CKEDITOR.env.isCompatible)throw Error("The environment is incompatible.");if(!a.isFunction(g))var k=d,d=g,g=k;var i=[],d=d||{};this.each(function(){var b=
a(this),c=b.data("ckeditorInstance"),f=b.data("_ckeditorInstanceLock"),h=this,j=new a.Deferred;i.push(j.promise());if(c&&!f)g&&g.apply(c,[this]),j.resolve();else if(f)c.once("instanceReady",function(){setTimeout(function(){c.element?(c.element.$==h&&g&&g.apply(c,[h]),j.resolve()):setTimeout(arguments.callee,100)},0)},null,null,9999);else{if(d.autoUpdateElement||"undefined"==typeof d.autoUpdateElement&&CKEDITOR.config.autoUpdateElement)d.autoUpdateElementJquery=!0;d.autoUpdateElement=!1;b.data("_ckeditorInstanceLock",
!0);c=a(this).is("textarea")?CKEDITOR.replace(h,d):CKEDITOR.inline(h,d);b.data("ckeditorInstance",c);c.on("instanceReady",function(d){var e=d.editor;setTimeout(function(){if(e.element){d.removeListener();e.on("dataReady",function(){b.trigger("dataReady.ckeditor",[e])});e.on("setData",function(a){b.trigger("setData.ckeditor",[e,a.data])});e.on("getData",function(a){b.trigger("getData.ckeditor",[e,a.data])},999);e.on("destroy",function(){b.trigger("destroy.ckeditor",[e])});e.on("save",function(){a(h.form).submit();
return!1},null,null,20);if(e.config.autoUpdateElementJquery&&b.is("textarea")&&a(h.form).length){var c=function(){b.ckeditor(function(){e.updateElement()})};a(h.form).submit(c);a(h.form).bind("form-pre-serialize",c);b.bind("destroy.ckeditor",function(){a(h.form).unbind("submit",c);a(h.form).unbind("form-pre-serialize",c)})}e.on("destroy",function(){b.removeData("ckeditorInstance")});b.removeData("_ckeditorInstanceLock");b.trigger("instanceReady.ckeditor",[e]);g&&g.apply(e,[h]);j.resolve()}else setTimeout(arguments.callee,
100)},0)},null,null,9999)}});var f=new a.Deferred;this.promise=f.promise();a.when.apply(this,i).then(function(){f.resolve()});this.editor=this.eq(0).data("ckeditorInstance");return this}}),CKEDITOR.config.jqueryOverrideVal&&(a.fn.val=CKEDITOR.tools.override(a.fn.val,function(g){return function(d){if(arguments.length){var k=this,i=[],f=this.each(function(){var b=a(this),c=b.data("ckeditorInstance");if(b.is("textarea")&&c){var f=new a.Deferred;c.setData(d,function(){f.resolve()});i.push(f.promise());
return!0}return g.call(b,d)});if(i.length){var b=new a.Deferred;a.when.apply(this,i).done(function(){b.resolveWith(k)});return b.promise()}return f}var f=a(this).eq(0),c=f.data("ckeditorInstance");return f.is("textarea")&&c?c.getData():g.call(f)}})))})(window.jQuery);

View File

@ -1,59 +1,59 @@
/**
* @license Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved.
* For licensing, see LICENSE.md or http://ckeditor.com/license
*/
/**
* This file was added automatically by CKEditor builder.
* You may re-use it at any time to build CKEditor again.
*
* If you would like to build CKEditor online again
* (for example to upgrade), visit one the following links:
*
* (1) http://ckeditor.com/builder
* Visit online builder to build CKEditor from scratch.
*
* (2) http://ckeditor.com/builder/0bef89aa099a8362a6a7ff84270ff668
* Visit online builder to build CKEditor, starting with the same setup as before.
*
* (3) http://ckeditor.com/builder/download/0bef89aa099a8362a6a7ff84270ff668
* Straight download link to the latest version of CKEditor (Optimized) with the same setup as before.
*
* NOTE:
* This file is not used by CKEditor, you may remove it.
* Changing this file will not change your CKEditor configuration.
*/
var CKBUILDER_CONFIG = {
skin: 'moono',
preset: 'basic',
ignore: [
'dev',
'.gitignore',
'.gitattributes',
'README.md',
'.mailmap'
],
plugins : {
'autogrow' : 1,
'autosave' : 1,
'basicstyles' : 1,
'blockquote' : 1,
'clipboard' : 1,
'enterkey' : 1,
'floatingspace' : 1,
'imagebrowser' : 1,
'indentlist' : 1,
'link' : 1,
'list' : 1,
'pastetext' : 1,
'removeformat' : 1,
'toolbar' : 1,
'undo' : 1,
'wysiwygarea' : 1
},
languages : {
'en' : 1,
'hu' : 1
}
/**
* @license Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved.
* For licensing, see LICENSE.md or http://ckeditor.com/license
*/
/**
* This file was added automatically by CKEditor builder.
* You may re-use it at any time to build CKEditor again.
*
* If you would like to build CKEditor online again
* (for example to upgrade), visit one the following links:
*
* (1) http://ckeditor.com/builder
* Visit online builder to build CKEditor from scratch.
*
* (2) http://ckeditor.com/builder/0bef89aa099a8362a6a7ff84270ff668
* Visit online builder to build CKEditor, starting with the same setup as before.
*
* (3) http://ckeditor.com/builder/download/0bef89aa099a8362a6a7ff84270ff668
* Straight download link to the latest version of CKEditor (Optimized) with the same setup as before.
*
* NOTE:
* This file is not used by CKEditor, you may remove it.
* Changing this file will not change your CKEditor configuration.
*/
var CKBUILDER_CONFIG = {
skin: 'moono',
preset: 'basic',
ignore: [
'dev',
'.gitignore',
'.gitattributes',
'README.md',
'.mailmap'
],
plugins : {
'autogrow' : 1,
'autosave' : 1,
'basicstyles' : 1,
'blockquote' : 1,
'clipboard' : 1,
'enterkey' : 1,
'floatingspace' : 1,
'imagebrowser' : 1,
'indentlist' : 1,
'link' : 1,
'list' : 1,
'pastetext' : 1,
'removeformat' : 1,
'toolbar' : 1,
'undo' : 1,
'wysiwygarea' : 1
},
languages : {
'en' : 1,
'hu' : 1
}
};

File diff suppressed because it is too large Load Diff

View File

@ -1,44 +1,44 @@
/**
* @license Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
* For licensing, see LICENSE.html or http://ckeditor.com/license
*/
CKEDITOR.editorConfig = function( config ) {
// Define changes to default configuration here.
// For complete reference see:
// http://docs.ckeditor.com/#!/api/CKEDITOR.config
// The toolbar groups arrangement, optimized for a single toolbar row.
config.toolbarGroups = [
{ name: 'document', groups: [ 'mode', 'document', 'doctools' ] },
{ name: 'clipboard', groups: [ 'clipboard', 'undo' ] },
{ name: 'editing', groups: [ 'find', 'selection', 'spellchecker' ] },
{ name: 'forms' },
{ name: 'basicstyles', groups: [ 'basicstyles', 'cleanup' ] },
{ name: 'paragraph', groups: [ 'list', 'indent', 'blocks', 'align', 'bidi' ] },
{ name: 'links' },
{ name: 'insert' },
{ name: 'styles' },
{ name: 'colors' },
{ name: 'tools' },
{ name: 'others' },
{ name: 'about' }
];
// The default plugins included in the basic setup define some buttons that
// are not needed in a basic editor. They are removed here.
//config.removeButtons = 'Cut,Copy,Paste,Undo,Redo,Anchor,Underline,Strike,Subscript,Superscript';
config.removeButtons = 'Anchor,Subscript,Superscript';
// Dialog windows are also simplified.
config.removeDialogTabs = 'link:advanced';
config.skin = 'office2013';
config.autoGrow_onStartup = true;
//config.extraPlugins = 'justify,autosave,imagebrowser,image,filebrowser,popup,readmorebtn,table';
config.extraPlugins = 'sourcedialog,panel,button,listblock,floatpanel,richcombo,format,justify,imagebrowser,image,filebrowser,popup,readmorebtn,table';
config.imageBrowser_listUrl = '/data/imglist.json.php';
config.filebrowserBrowseUrl = '/data/uploads';
config.filebrowserUploadUrl = '/admin/upload';
config.format_tags = 'p;h2;h3;h4;pre';
};
/**
* @license Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
* For licensing, see LICENSE.html or http://ckeditor.com/license
*/
CKEDITOR.editorConfig = function( config ) {
// Define changes to default configuration here.
// For complete reference see:
// http://docs.ckeditor.com/#!/api/CKEDITOR.config
// The toolbar groups arrangement, optimized for a single toolbar row.
config.toolbarGroups = [
{ name: 'document', groups: [ 'mode', 'document', 'doctools' ] },
{ name: 'clipboard', groups: [ 'clipboard', 'undo' ] },
{ name: 'editing', groups: [ 'find', 'selection', 'spellchecker' ] },
{ name: 'forms' },
{ name: 'basicstyles', groups: [ 'basicstyles', 'cleanup' ] },
{ name: 'paragraph', groups: [ 'list', 'indent', 'blocks', 'align', 'bidi' ] },
{ name: 'links' },
{ name: 'insert' },
{ name: 'styles' },
{ name: 'colors' },
{ name: 'tools' },
{ name: 'others' },
{ name: 'about' }
];
// The default plugins included in the basic setup define some buttons that
// are not needed in a basic editor. They are removed here.
//config.removeButtons = 'Cut,Copy,Paste,Undo,Redo,Anchor,Underline,Strike,Subscript,Superscript';
config.removeButtons = 'Anchor,Subscript,Superscript';
// Dialog windows are also simplified.
config.removeDialogTabs = 'link:advanced';
config.skin = 'office2013';
config.autoGrow_onStartup = true;
//config.extraPlugins = 'justify,autosave,imagebrowser,image,filebrowser,popup,readmorebtn,table';
config.extraPlugins = 'sourcedialog,panel,button,listblock,floatpanel,richcombo,format,justify,imagebrowser,image,filebrowser,popup,readmorebtn,table';
config.imageBrowser_listUrl = '/data/imglist.json.php';
config.filebrowserBrowseUrl = '/data/uploads';
config.filebrowserUploadUrl = '/admin/upload';
config.format_tags = 'p;h2;h3;h4;pre';
};

View File

@ -1,38 +1,38 @@
/**
* @license Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
* For licensing, see LICENSE.html or http://ckeditor.com/license
*/
CKEDITOR.editorConfig = function( config ) {
// Define changes to default configuration here.
// For complete reference see:
// http://docs.ckeditor.com/#!/api/CKEDITOR.config
// The toolbar groups arrangement, optimized for a single toolbar row.
config.toolbarGroups = [
{ name: 'document', groups: [ 'mode', 'document', 'doctools' ] },
{ name: 'clipboard', groups: [ 'clipboard', 'undo' ] },
{ name: 'editing', groups: [ 'find', 'selection', 'spellchecker' ] },
{ name: 'forms' },
{ name: 'basicstyles', groups: [ 'basicstyles', 'cleanup' ] },
{ name: 'paragraph', groups: [ 'list', 'indent', 'blocks', 'align', 'bidi' ] },
{ name: 'links' },
{ name: 'insert' },
{ name: 'styles' },
{ name: 'colors' },
{ name: 'tools' },
{ name: 'others' },
{ name: 'about' }
];
// The default plugins included in the basic setup define some buttons that
// are not needed in a basic editor. They are removed here.
config.removeButtons = 'Cut,Copy,Paste,Undo,Redo,Anchor,Underline,Strike,Subscript,Superscript';
// Dialog windows are also simplified.
config.removeDialogTabs = 'link:advanced';
config.autoGrow_onStartup = true;
config.extraPlugins = 'autosave,imagebrowser,imageresize';
config.imageBrowser_listUrl = '/data/imglist.json.php';
};
/**
* @license Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
* For licensing, see LICENSE.html or http://ckeditor.com/license
*/
CKEDITOR.editorConfig = function( config ) {
// Define changes to default configuration here.
// For complete reference see:
// http://docs.ckeditor.com/#!/api/CKEDITOR.config
// The toolbar groups arrangement, optimized for a single toolbar row.
config.toolbarGroups = [
{ name: 'document', groups: [ 'mode', 'document', 'doctools' ] },
{ name: 'clipboard', groups: [ 'clipboard', 'undo' ] },
{ name: 'editing', groups: [ 'find', 'selection', 'spellchecker' ] },
{ name: 'forms' },
{ name: 'basicstyles', groups: [ 'basicstyles', 'cleanup' ] },
{ name: 'paragraph', groups: [ 'list', 'indent', 'blocks', 'align', 'bidi' ] },
{ name: 'links' },
{ name: 'insert' },
{ name: 'styles' },
{ name: 'colors' },
{ name: 'tools' },
{ name: 'others' },
{ name: 'about' }
];
// The default plugins included in the basic setup define some buttons that
// are not needed in a basic editor. They are removed here.
config.removeButtons = 'Cut,Copy,Paste,Undo,Redo,Anchor,Underline,Strike,Subscript,Superscript';
// Dialog windows are also simplified.
config.removeDialogTabs = 'link:advanced';
config.autoGrow_onStartup = true;
config.extraPlugins = 'autosave,imagebrowser,imageresize';
config.imageBrowser_listUrl = '/data/imglist.json.php';
};

View File

@ -1,134 +1,134 @@
/*
Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved.
For licensing, see LICENSE.md or http://ckeditor.com/license
*/
body
{
/* Font */
font-family: sans-serif, Arial, Verdana, "Trebuchet MS";
font-size: 12px;
/* Text color */
color: #333;
/* Remove the background color to make it transparent */
background-color: #fff;
margin: 20px;
}
.cke_editable
{
font-size: 13px;
line-height: 1.6;
}
blockquote
{
font-style: italic;
font-family: Georgia, Times, "Times New Roman", serif;
padding: 2px 0;
border-style: solid;
border-color: #ccc;
border-width: 0;
}
.cke_contents_ltr blockquote
{
padding-left: 20px;
padding-right: 8px;
border-left-width: 5px;
}
.cke_contents_rtl blockquote
{
padding-left: 8px;
padding-right: 20px;
border-right-width: 5px;
}
a
{
color: #0782C1;
}
ol,ul,dl
{
/* IE7: reset rtl list margin. (#7334) */
*margin-right: 0px;
/* preserved spaces for list items with text direction other than the list. (#6249,#8049)*/
padding: 0 40px;
}
h1,h2,h3,h4,h5,h6
{
font-weight: normal;
line-height: 1.2;
}
hr
{
border: 0px;
border-top: 1px solid #ccc;
}
img.right
{
border: 1px solid #ccc;
float: right;
margin-left: 15px;
padding: 5px;
}
img.left
{
border: 1px solid #ccc;
float: left;
margin-right: 15px;
padding: 5px;
}
pre
{
white-space: pre-wrap; /* CSS 2.1 */
word-wrap: break-word; /* IE7 */
-moz-tab-size: 4;
-o-tab-size: 4;
-webkit-tab-size: 4;
tab-size: 4;
}
.marker
{
background-color: Yellow;
}
span[lang]
{
font-style: italic;
}
figure
{
text-align: center;
border: solid 1px #ccc;
border-radius: 2px;
background: rgba(0,0,0,0.05);
padding: 10px;
margin: 10px 20px;
display: inline-block;
}
figure > figcaption
{
text-align: center;
display: block; /* For IE8 */
}
a > img {
padding: 1px;
margin: 1px;
border: none;
outline: 1px solid #0782C1;
}
/*
Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved.
For licensing, see LICENSE.md or http://ckeditor.com/license
*/
body
{
/* Font */
font-family: sans-serif, Arial, Verdana, "Trebuchet MS";
font-size: 12px;
/* Text color */
color: #333;
/* Remove the background color to make it transparent */
background-color: #fff;
margin: 20px;
}
.cke_editable
{
font-size: 13px;
line-height: 1.6;
}
blockquote
{
font-style: italic;
font-family: Georgia, Times, "Times New Roman", serif;
padding: 2px 0;
border-style: solid;
border-color: #ccc;
border-width: 0;
}
.cke_contents_ltr blockquote
{
padding-left: 20px;
padding-right: 8px;
border-left-width: 5px;
}
.cke_contents_rtl blockquote
{
padding-left: 8px;
padding-right: 20px;
border-right-width: 5px;
}
a
{
color: #0782C1;
}
ol,ul,dl
{
/* IE7: reset rtl list margin. (#7334) */
*margin-right: 0px;
/* preserved spaces for list items with text direction other than the list. (#6249,#8049)*/
padding: 0 40px;
}
h1,h2,h3,h4,h5,h6
{
font-weight: normal;
line-height: 1.2;
}
hr
{
border: 0px;
border-top: 1px solid #ccc;
}
img.right
{
border: 1px solid #ccc;
float: right;
margin-left: 15px;
padding: 5px;
}
img.left
{
border: 1px solid #ccc;
float: left;
margin-right: 15px;
padding: 5px;
}
pre
{
white-space: pre-wrap; /* CSS 2.1 */
word-wrap: break-word; /* IE7 */
-moz-tab-size: 4;
-o-tab-size: 4;
-webkit-tab-size: 4;
tab-size: 4;
}
.marker
{
background-color: Yellow;
}
span[lang]
{
font-style: italic;
}
figure
{
text-align: center;
border: solid 1px #ccc;
border-radius: 2px;
background: rgba(0,0,0,0.05);
padding: 10px;
margin: 10px 20px;
display: inline-block;
}
figure > figcaption
{
text-align: center;
display: block; /* For IE8 */
}
a > img {
padding: 1px;
margin: 1px;
border: none;
outline: 1px solid #0782C1;
}

View File

@ -1,5 +1,5 @@
{
"name": "CKeditor",
"description": "A really good text editor.",
"paths": "/admin/entry,/admin/page"
"paths": "/admin/entry*,/admin/page*"
}

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -1 +1 @@
.diffContent{height:300px;overflow:auto}.diff *{white-space:pre-wrap !important}table.diff{border-collapse:collapse;border:1px solid darkgray}table.diff tbody{font-family:Courier,monospace}table.diff tbody th{font-family:verdana,arial,'Bitstream Vera Sans',helvetica,sans-serif;background:#EED;font-size:11px;font-weight:normal;border:1px solid #BBC;color:#886;padding:.3em .5em .1em 2em;text-align:right;vertical-align:top}table.diff thead{border-bottom:1px solid #BBC;background:#efefef;font-family:Verdana}table.diff thead th.texttitle{text-align:left}table.diff tbody td{padding:0 .4em;vertical-align:top}table.diff .empty{background-color:#DDD}table.diff .replace{background-color:#FFC}table.diff .delete{background-color:#FCC}table.diff .skip{background-color:#efefef;border:1px solid #AAA;border-right:1px solid #BBC}table.diff .insert{background-color:#CFC}table.diff th.author{text-align:right;border-top:1px solid #BBC;background:#efefef}del{background-color:#e99 !important;text-decoration:underline !important}ins{background-color:#9e9 !important;text-decoration:underline !important}div.autoSaveMessage div{left:42%;position:absolute;padding:2px;top:4px;font-weight:bold}.hidden{opacity:0;visibility:hidden}.show{opacity:1;visibility:visible;-webkit-transition:visibility .2s linear,opacity .2s linear;-moz-transition:visibility .2s linear,opacity .2s linear;-o-transition:visibility .2s linear,opacity .2s linear;transition:visibility .2s linear,opacity .2s linear}
.diffContent{height:300px;overflow:auto}.diff *{white-space:pre-wrap !important}table.diff{border-collapse:collapse;border:1px solid darkgray}table.diff tbody{font-family:Courier,monospace}table.diff tbody th{font-family:verdana,arial,'Bitstream Vera Sans',helvetica,sans-serif;background:#EED;font-size:11px;font-weight:normal;border:1px solid #BBC;color:#886;padding:.3em .5em .1em 2em;text-align:right;vertical-align:top}table.diff thead{border-bottom:1px solid #BBC;background:#efefef;font-family:Verdana}table.diff thead th.texttitle{text-align:left}table.diff tbody td{padding:0 .4em;vertical-align:top}table.diff .empty{background-color:#DDD}table.diff .replace{background-color:#FFC}table.diff .delete{background-color:#FCC}table.diff .skip{background-color:#efefef;border:1px solid #AAA;border-right:1px solid #BBC}table.diff .insert{background-color:#CFC}table.diff th.author{text-align:right;border-top:1px solid #BBC;background:#efefef}del{background-color:#e99 !important;text-decoration:underline !important}ins{background-color:#9e9 !important;text-decoration:underline !important}div.autoSaveMessage div{left:42%;position:absolute;padding:2px;top:4px;font-weight:bold}.hidden{opacity:0;visibility:hidden}.show{opacity:1;visibility:visible;-webkit-transition:visibility .2s linear,opacity .2s linear;-moz-transition:visibility .2s linear,opacity .2s linear;-o-transition:visibility .2s linear,opacity .2s linear;transition:visibility .2s linear,opacity .2s linear}

View File

@ -1,213 +1,213 @@
__whitespace={" ":!0,"\t":!0,"\n":!0," ":!0,"\r":!0};
difflib={defaultJunkFunction:function(e){return e in __whitespace},stripLinebreaks:function(e){return e.replace(/^[\n\r]*|[\n\r]*$/g,"")},stringAsLines:function(e){for(var b=e.indexOf("\n"),d=e.indexOf("\r"),e=e.split(-1<b&&-1<d||0>d?"\n":"\r"),b=0;b<e.length;b++)e[b]=difflib.stripLinebreaks(e[b]);return e},__reduce:function(e,b,d){if(null!=d)var h=0;else if(b)d=b[0],h=1;else return null;for(;h<b.length;h++)d=e(d,b[h]);return d},__ntuplecomp:function(e,b){for(var d=Math.max(e.length,b.length),h=0;h<
d;h++){if(e[h]<b[h])return-1;if(e[h]>b[h])return 1}return e.length==b.length?0:e.length<b.length?-1:1},__calculate_ratio:function(e,b){return b?2*e/b:1},__isindict:function(e){return function(b){return b in e}},__dictget:function(e,b,d){return b in e?e[b]:d},SequenceMatcher:function(e,b,d){this.set_seqs=function(b,f){this.set_seq1(b);this.set_seq2(f)};this.set_seq1=function(b){b!=this.a&&(this.a=b,this.matching_blocks=this.opcodes=null)};this.set_seq2=function(b){b!=this.b&&(this.b=b,this.matching_blocks=
this.opcodes=this.fullbcount=null,this.__chain_b())};this.__chain_b=function(){for(var b=this.b,f=b.length,d=this.b2j={},l={},e=0;e<b.length;e++){var j=b[e];if(j in d){var s=d[j];200<=f&&100*s.length>f?(l[j]=1,delete d[j]):s.push(e)}else d[j]=[e]}for(j in l)delete d[j];b=this.isjunk;f={};if(b){for(j in l)b(j)&&(f[j]=1,delete l[j]);for(j in d)b(j)&&(f[j]=1,delete d[j])}this.isbjunk=difflib.__isindict(f);this.isbpopular=difflib.__isindict(l)};this.find_longest_match=function(b,f,d,e){for(var p=this.a,
j=this.b,s=this.b2j,o=this.isbjunk,q=b,n=d,m=0,t=null,u={},z=[],v=b;v<f;v++){var y={},A=difflib.__dictget(s,p[v],z),B;for(B in A)if(t=A[B],!(t<d)){if(t>=e)break;y[t]=k=difflib.__dictget(u,t-1,0)+1;k>m&&(q=v-k+1,n=t-k+1,m=k)}u=y}for(;q>b&&n>d&&!o(j[n-1])&&p[q-1]==j[n-1];)q--,n--,m++;for(;q+m<f&&n+m<e&&!o(j[n+m])&&p[q+m]==j[n+m];)m++;for(;q>b&&n>d&&o(j[n-1])&&p[q-1]==j[n-1];)q--,n--,m++;for(;q+m<f&&n+m<e&&o(j[n+m])&&p[q+m]==j[n+m];)m++;return[q,n,m]};this.get_matching_blocks=function(){if(null!=this.matching_blocks)return this.matching_blocks;
for(var b=this.a.length,f=this.b.length,d=[[0,b,0,f]],e=[],p,j,s,o,q,n,m,t;d.length;)if(o=d.pop(),p=o[0],j=o[1],s=o[2],o=o[3],t=this.find_longest_match(p,j,s,o),q=t[0],n=t[1],m=t[2])e.push(t),p<q&&s<n&&d.push([p,q,s,n]),q+m<j&&n+m<o&&d.push([q+m,j,n+m,o]);e.sort(difflib.__ntuplecomp);d=j1=k1=block=0;p=[];for(var u in e)block=e[u],i2=block[0],j2=block[1],k2=block[2],d+k1==i2&&j1+k1==j2?k1+=k2:(k1&&p.push([d,j1,k1]),d=i2,j1=j2,k1=k2);k1&&p.push([d,j1,k1]);p.push([b,f,0]);return this.matching_blocks=
p};this.get_opcodes=function(){if(null!=this.opcodes)return this.opcodes;var b=0,f=0,d=[];this.opcodes=d;var e,p,j,s,o=this.get_matching_blocks(),q;for(q in o)e=o[q],p=e[0],j=e[1],e=e[2],s="",b<p&&f<j?s="replace":b<p?s="delete":f<j&&(s="insert"),s&&d.push([s,b,p,f,j]),b=p+e,f=j+e,e&&d.push(["equal",p,b,j,f]);return d};this.get_grouped_opcodes=function(b){b||(b=3);var f=this.get_opcodes();f||(f=[["equal",0,1,0,1]]);var d,e,p,j,s;"equal"==f[0][0]&&(d=f[0],e=d[0],p=d[1],j=d[2],s=d[3],d=d[4],f[0]=[e,
Math.max(p,j-b),j,Math.max(s,d-b),d]);"equal"==f[f.length-1][0]&&(d=f[f.length-1],e=d[0],p=d[1],j=d[2],s=d[3],d=d[4],f[f.length-1]=[e,p,Math.min(j,p+b),s,Math.min(d,s+b)]);var o=b+b,q=[],n;for(n in f)d=f[n],e=d[0],p=d[1],j=d[2],s=d[3],d=d[4],"equal"==e&&j-p>o&&(q.push([e,p,Math.min(j,p+b),s,Math.min(d,s+b)]),p=Math.max(p,j-b),s=Math.max(s,d-b)),q.push([e,p,j,s,d]);q&&"equal"==q[q.length-1][0]&&q.pop();return q};this.ratio=function(){matches=difflib.__reduce(function(b,d){return b+d[d.length-1]},this.get_matching_blocks(),
0);return difflib.__calculate_ratio(matches,this.a.length+this.b.length)};this.quick_ratio=function(){var b,d;if(null==this.fullbcount){this.fullbcount=b={};for(var e=0;e<this.b.length;e++)d=this.b[e],b[d]=difflib.__dictget(b,d,0)+1}b=this.fullbcount;for(var l={},p=difflib.__isindict(l),j=numb=0,e=0;e<this.a.length;e++)d=this.a[e],numb=p(d)?l[d]:difflib.__dictget(b,d,0),l[d]=numb-1,0<numb&&j++;return difflib.__calculate_ratio(j,this.a.length+this.b.length)};this.real_quick_ratio=function(){var b=
this.a.length,d=this.b.length;return _calculate_ratio(Math.min(b,d),b+d)};this.isjunk=d?d:difflib.defaultJunkFunction;this.a=this.b=null;this.set_seqs(e,b)}};
diffview={buildView:function(e){function b(b,d){var e=document.createElement(b);e.className=d;return e}function d(b,d){var e=document.createElement(b);e.appendChild(document.createTextNode(d));return e}function h(b,d,e){b=document.createElement(b);b.className=d;b.innerHTML=e;return b}function f(e,f,j,i,l){if(f<j)return e.appendChild(d("th",(f+1).toString())),e.appendChild(h("td",l,i[f].replace(/\t/g,"    "))),f+1;e.appendChild(document.createElement("th"));e.appendChild(b("td","empty"));return f}
function r(b,e,f,i,j){b.appendChild(d("th",null==e?"":(e+1).toString()));b.appendChild(d("th",null==f?"":(f+1).toString()));b.appendChild(h("td",j,i[null!=e?e:f].replace(/\t/g,"    ")))}var l=e.baseTextLines,p=e.newTextLines,j=e.opcodes,s=e.baseTextName?e.baseTextName:"Base Text",o=e.newTextName?e.newTextName:"New Text",q=e.contextSize,e=0==e.viewType||1==e.viewType?e.viewType:0;if(null==l)throw"Cannot build diff view; baseTextLines is not defined.";if(null==p)throw"Cannot build diff view; newTextLines is not defined.";
if(!j)throw"Canno build diff view; opcodes is not defined.";var n=document.createElement("thead"),m=document.createElement("tr");n.appendChild(m);e?(m.appendChild(document.createElement("th")),m.appendChild(document.createElement("th")),m.appendChild(h("th","texttitle",s+" vs. "+o))):(m.appendChild(document.createElement("th")),m.appendChild(h("th","texttitle",s)),m.appendChild(document.createElement("th")),m.appendChild(h("th","texttitle",o)));for(var n=[n],s=[],t,o=0;o<j.length;o++){code=j[o];change=
code[0];for(var u=code[1],z=code[2],v=code[3],y=code[4],A=Math.max(z-u,y-v),B=[],D=[],x=0;x<A;x++){if(q&&1<j.length&&(0<o&&x==q||0==o&&0==x)&&"equal"==change)if(t=A-(0==o?1:2)*q,1<t)if(B.push(m=document.createElement("tr")),u+=t,v+=t,x+=t-1,m.appendChild(d("th","...")),e||m.appendChild(h("td","skip","")),m.appendChild(d("th","...")),m.appendChild(h("td","skip","")),o+1==j.length)break;else continue;B.push(m=document.createElement("tr"));e?"insert"==change?r(m,null,v++,p,change):"replace"==change?
(D.push(t=document.createElement("tr")),u<z&&r(m,u++,null,l,"delete"),v<y&&r(t,null,v++,p,"insert")):"delete"==change?r(m,u++,null,l,change):r(m,u++,v++,l,change):(t=diffString2(u<z?l[u]:"",v<y?p[v]:""),u<z&&(l[u]=t.o),v<y&&(p[v]=t.n),u=f(m,u,z,l,"replace"==change?"delete":change),v=f(m,v,y,p,"replace"==change?"insert":change))}for(x=0;x<B.length;x++)s.push(B[x]);for(x=0;x<D.length;x++)s.push(D[x])}s.push(m=h("th","author","combined <a href='http://snowtide.com/jsdifflib'>jsdifflib</a> and John Resig's <a href='http://ejohn.org/projects/javascript-diff-algorithm/'>diff</a> by <a href='http://richardbondi.net'>Richard Bondi</a>"));
m.setAttribute("colspan",e?3:4);n.push(m=document.createElement("tbody"));for(o=0;o<s.length;o++)m.appendChild(s[o]);m=b("table","diff"+(e?" inlinediff":""));for(o=0;o<n.length;o++)m.appendChild(n[o]);return m}};function escape(e){e=e.replace(/&/g,"&amp;");e=e.replace(/</g,"&lt;");e=e.replace(/>/g,"&gt;");return e=e.replace(/"/g,"&quot;")}
function diffString(e,b){var e=e.replace(/\s+$/,""),b=b.replace(/\s+$/,""),d=diff(""==e?[]:e.split(/\s+/),""==b?[]:b.split(/\s+/)),h="",f=e.match(/\s+/g);null==f?f=["\n"]:f.push("\n");var r=b.match(/\s+/g);null==r?r=["\n"]:r.push("\n");if(0==d.n.length)for(var l=0;l<d.o.length;l++)h+="<del>"+escape(d.o[l])+f[l]+"</del>";else{if(null==d.n[0].text)for(b=0;b<d.o.length&&null==d.o[b].text;b++)h+="<del>"+escape(d.o[b])+f[b]+"</del>";for(l=0;l<d.n.length;l++)if(null==d.n[l].text)h+="<ins>"+escape(d.n[l])+
r[l]+"</ins>";else{for(var p="",b=d.n[l].row+1;b<d.o.length&&null==d.o[b].text;b++)p+="<del>"+escape(d.o[b])+f[b]+"</del>";h+=" "+d.n[l].text+r[l]+p}}return h}function randomColor(){return"rgb("+100*Math.random()+"%, "+100*Math.random()+"%, "+100*Math.random()+"%)"}
function diffString2(e,b){var e=e.replace(/\s+$/,""),b=b.replace(/\s+$/,""),d=diff(""==e?[]:e.split(/\s+/),""==b?[]:b.split(/\s+/)),h=e.match(/\s+/g);null==h?h=["\n"]:h.push("\n");var f=b.match(/\s+/g);null==f?f=["\n"]:f.push("\n");for(var r="",l=0;l<d.o.length;l++)randomColor(),r=null!=d.o[l].text?r+(escape(d.o[l].text)+h[l]):r+("<del>"+escape(d.o[l])+h[l]+"</del>");h="";for(l=0;l<d.n.length;l++)h=null!=d.n[l].text?h+(escape(d.n[l].text)+f[l]):h+("<ins>"+escape(d.n[l])+f[l]+"</ins>");return{o:r,
n:h}}
function diff(e,b){for(var d={},h={},f=0;f<b.length;f++)null==d[b[f]]&&(d[b[f]]={rows:[],o:null}),d[b[f]].rows.push(f);for(f=0;f<e.length;f++)null==h[e[f]]&&(h[e[f]]={rows:[],n:null}),h[e[f]].rows.push(f);for(f in d)1==d[f].rows.length&&("undefined"!=typeof h[f]&&1==h[f].rows.length)&&(b[d[f].rows[0]]={text:b[d[f].rows[0]],row:h[f].rows[0]},e[h[f].rows[0]]={text:e[h[f].rows[0]],row:d[f].rows[0]});for(f=0;f<b.length-1;f++)null!=b[f].text&&(null==b[f+1].text&&b[f].row+1<e.length&&null==e[b[f].row+1].text&&
b[f+1]==e[b[f].row+1])&&(b[f+1]={text:b[f+1],row:b[f].row+1},e[b[f].row+1]={text:e[b[f].row+1],row:f+1});for(f=b.length-1;0<f;f--)null!=b[f].text&&(null==b[f-1].text&&0<b[f].row&&null==e[b[f].row-1].text&&b[f-1]==e[b[f].row-1])&&(b[f-1]={text:b[f-1],row:b[f].row-1},e[b[f].row-1]={text:e[b[f].row-1],row:f-1});return{o:e,n:b}}
(function(e){function b(a,c){return function(g){return j(a.call(this,g),c)}}function d(a,c){return function(g){return this.lang().ordinal(a.call(this,g),c)}}function h(){}function f(a){l(this,a)}function r(a){var c=a.years||a.year||a.y||0,g=a.months||a.month||a.M||0,b=a.weeks||a.week||a.w||0,d=a.days||a.day||a.d||0,e=a.hours||a.hour||a.h||0,f=a.minutes||a.minute||a.m||0,h=a.seconds||a.second||a.s||0,i=a.milliseconds||a.millisecond||a.ms||0;this._input=a;this._milliseconds=+i+1E3*h+6E4*f+36E5*e;this._days=
+d+7*b;this._months=+g+12*c;this._data={};this._bubble()}function l(a,c){for(var g in c)c.hasOwnProperty(g)&&(a[g]=c[g]);return a}function p(a){return 0>a?Math.ceil(a):Math.floor(a)}function j(a,c){for(var g=a+"";g.length<c;)g="0"+g;return g}function s(a,c,g,b){var d=c._milliseconds,e=c._days,c=c._months,f,h;d&&a._d.setTime(+a._d+d*g);if(e||c)f=a.minute(),h=a.hour();e&&a.date(a.date()+e*g);c&&a.month(a.month()+c*g);d&&!b&&i.updateOffset(a);if(e||c)a.minute(f),a.hour(h)}function o(a,c){var g=Math.min(a.length,
c.length),b=Math.abs(a.length-c.length),d=0,e;for(e=0;e<g;e++)~~a[e]!==~~c[e]&&d++;return d+b}function q(a){return a?T[a]||a.toLowerCase().replace(/(.)s$/,"$1"):a}function n(a){if(!a)return i.fn._lang;if(!F[a]&&N)try{require("./lang/"+a)}catch(c){return i.fn._lang}return F[a]||i.fn._lang}function m(a){var c=a.match(O),g,b;g=0;for(b=c.length;g<b;g++)c[g]=C[c[g]]?C[c[g]]:c[g].match(/\[.*\]/)?c[g].replace(/^\[|\]$/g,""):c[g].replace(/\\/g,"");return function(d){var e="";for(g=0;g<b;g++)e+=c[g]instanceof
Function?c[g].call(d,a):c[g];return e}}function t(a,c){c=u(c,a.lang());G[c]||(G[c]=m(c));return G[c](a)}function u(a,c){function g(a){return c.longDateFormat(a)||a}for(var b=5;b--&&(H.lastIndex=0,H.test(a));)a=a.replace(H,g);return a}function z(a,c){switch(a){case "DDDD":return U;case "YYYY":return V;case "YYYYY":return W;case "S":case "SS":case "SSS":case "DDD":return X;case "MMM":case "MMMM":case "dd":case "ddd":case "dddd":return Y;case "a":case "A":return n(c._l)._meridiemParse;case "X":return Z;
case "Z":case "ZZ":return I;case "T":return $;case "MM":case "DD":case "YY":case "HH":case "hh":case "mm":case "ss":case "M":case "D":case "d":case "H":case "h":case "m":case "s":return aa;default:return RegExp(a.replace("\\",""))}}function v(a){var a=((I.exec(a)||[])[0]+"").match(ba)||["-",0,0],c=+(60*a[1])+~~a[2];return"+"===a[0]?-c:c}function y(a){var c,g=[],b;if(!a._d){c=new Date;b=a._useUTC?[c.getUTCFullYear(),c.getUTCMonth(),c.getUTCDate()]:[c.getFullYear(),c.getMonth(),c.getDate()];for(c=0;3>
c&&null==a._a[c];++c)a._a[c]=g[c]=b[c];for(;7>c;c++)a._a[c]=g[c]=null==a._a[c]?2===c?1:0:a._a[c];g[3]+=~~((a._tzm||0)/60);g[4]+=~~((a._tzm||0)%60);c=new Date(0);a._useUTC?(c.setUTCFullYear(g[0],g[1],g[2]),c.setUTCHours(g[3],g[4],g[5],g[6])):(c.setFullYear(g[0],g[1],g[2]),c.setHours(g[3],g[4],g[5],g[6]));a._d=c}}function A(a){var c=n(a._l),g=""+a._i,b,d;d=u(a._f,c).match(O);a._a=[];for(c=0;c<d.length;c++)if((b=(z(d[c],a).exec(g)||[])[0])&&(g=g.slice(g.indexOf(b)+b.length)),C[d[c]]){var e=a,f=void 0,
h=e._a;switch(d[c]){case "M":case "MM":null!=b&&(h[1]=~~b-1);break;case "MMM":case "MMMM":f=n(e._l).monthsParse(b);null!=f?h[1]=f:e._isValid=!1;break;case "D":case "DD":null!=b&&(h[2]=~~b);break;case "DDD":case "DDDD":null!=b&&(h[1]=0,h[2]=~~b);break;case "YY":h[0]=~~b+(68<~~b?1900:2E3);break;case "YYYY":case "YYYYY":h[0]=~~b;break;case "a":case "A":e._isPm=n(e._l).isPM(b);break;case "H":case "HH":case "h":case "hh":h[3]=~~b;break;case "m":case "mm":h[4]=~~b;break;case "s":case "ss":h[5]=~~b;break;
case "S":case "SS":case "SSS":h[6]=~~(1E3*("0."+b));break;case "X":e._d=new Date(1E3*parseFloat(b));break;case "Z":case "ZZ":e._useUTC=!0,e._tzm=v(b)}null==b&&(e._isValid=!1)}g&&(a._il=g);a._isPm&&12>a._a[3]&&(a._a[3]+=12);!1===a._isPm&&12===a._a[3]&&(a._a[3]=0);y(a)}function B(a,c,g,b,d){return d.relativeTime(c||1,!!g,a,b)}function D(a,c,g){c=g-c;g-=a.day();g>c&&(g-=7);g<c-7&&(g+=7);a=i(a).add("d",g);return{week:Math.ceil(a.dayOfYear()/7),year:a.year()}}function x(a){var c=a._i,g=a._f;if(null===
c||""===c)return null;"string"===typeof c&&(a._i=c=n().preparse(c));if(i.isMoment(c))a=l({},c),a._d=new Date(+c._d);else if(g)if("[object Array]"===Object.prototype.toString.call(g)){var c=a,b,d,h=99,j;for(j=0;j<c._f.length;j++)b=l({},c),b._f=c._f[j],A(b),g=new f(b),b=o(b._a,g.toArray()),g._il&&(b+=g._il.length),b<h&&(h=b,d=g);l(c,d)}else A(a);else if(d=a,c=d._i,g=ca.exec(c),c===e)d._d=new Date;else if(g)d._d=new Date(+g[1]);else if("string"===typeof c)if(c=d._i,g=da.exec(c)){d._f="YYYY-MM-DD"+(g[2]||
" ");for(g=0;4>g;g++)if(P[g][1].exec(c)){d._f+=P[g][0];break}I.exec(c)&&(d._f+=" Z");A(d)}else d._d=new Date(c);else"[object Array]"===Object.prototype.toString.call(c)?(d._a=c.slice(0),y(d)):c instanceof Date?d._d=new Date(+c):"object"===typeof c?(c=d._i,d._d||(d._a=[c.years||c.year||c.y,c.months||c.month||c.M,c.days||c.day||c.d,c.hours||c.hour||c.h,c.minutes||c.minute||c.m,c.seconds||c.second||c.s,c.milliseconds||c.millisecond||c.ms],y(d))):d._d=new Date(c);return new f(a)}function L(a,c){i.fn[a]=
i.fn[a+"s"]=function(a){var b=this._isUTC?"UTC":"";return null!=a?(this._d["set"+b+c](a),i.updateOffset(this),this):this._d["get"+b+c]()}}function S(a){i.duration.fn[a]=function(){return this._data[a]}}function M(a,c){i.duration.fn["as"+a]=function(){return+this/c}}for(var i,E=Math.round,w,F={},N="undefined"!==typeof module&&module.exports,ca=/^\/?Date\((\-?\d+)/i,ea=/(\-)?(?:(\d*)\.)?(\d+)\:(\d+)\:(\d+)\.?(\d{3})?/,O=/(\[[^\[]*\])|(\\)?(Mo|MM?M?M?|Do|DDDo|DD?D?D?|ddd?d?|do?|w[o|w]?|W[o|W]?|YYYYY|YYYY|YY|gg(ggg?)?|GG(GGG?)?|e|E|a|A|hh?|HH?|mm?|ss?|SS?S?|X|zz?|ZZ?|.)/g,
H=/(\[[^\[]*\])|(\\)?(LT|LL?L?L?|l{1,4})/g,aa=/\d\d?/,X=/\d{1,3}/,U=/\d{3}/,V=/\d{1,4}/,W=/[+\-]?\d{1,6}/,Y=/[0-9]*['a-z\u00A0-\u05FF\u0700-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]+|[\u0600-\u06FF\/]+(\s*?[\u0600-\u06FF]+){1,2}/i,I=/Z|[\+\-]\d\d:?\d\d/i,$=/T/i,Z=/[\+\-]?\d+(\.\d{1,3})?/,da=/^\s*\d{4}-\d\d-\d\d((T| )(\d\d(:\d\d(:\d\d(\.\d\d?\d?)?)?)?)?([\+\-]\d\d:?\d\d)?)?/,P=[["HH:mm:ss.S",/(T| )\d\d:\d\d:\d\d\.\d{1,3}/],["HH:mm:ss",/(T| )\d\d:\d\d:\d\d/],["HH:mm",/(T| )\d\d:\d\d/],["HH",/(T| )\d\d/]],ba=
/([\+\-]|\d\d)/gi,J=["Date","Hours","Minutes","Seconds","Milliseconds"],K={Milliseconds:1,Seconds:1E3,Minutes:6E4,Hours:36E5,Days:864E5,Months:2592E6,Years:31536E6},T={ms:"millisecond",s:"second",m:"minute",h:"hour",d:"day",w:"week",W:"isoweek",M:"month",y:"year"},G={},Q="DDD w W M D d".split(" "),R="MDHhmswW".split(""),C={M:function(){return this.month()+1},MMM:function(a){return this.lang().monthsShort(this,a)},MMMM:function(a){return this.lang().months(this,a)},D:function(){return this.date()},
DDD:function(){return this.dayOfYear()},d:function(){return this.day()},dd:function(a){return this.lang().weekdaysMin(this,a)},ddd:function(a){return this.lang().weekdaysShort(this,a)},dddd:function(a){return this.lang().weekdays(this,a)},w:function(){return this.week()},W:function(){return this.isoWeek()},YY:function(){return j(this.year()%100,2)},YYYY:function(){return j(this.year(),4)},YYYYY:function(){return j(this.year(),5)},gg:function(){return j(this.weekYear()%100,2)},gggg:function(){return this.weekYear()},
ggggg:function(){return j(this.weekYear(),5)},GG:function(){return j(this.isoWeekYear()%100,2)},GGGG:function(){return this.isoWeekYear()},GGGGG:function(){return j(this.isoWeekYear(),5)},e:function(){return this.weekday()},E:function(){return this.isoWeekday()},a:function(){return this.lang().meridiem(this.hours(),this.minutes(),!0)},A:function(){return this.lang().meridiem(this.hours(),this.minutes(),!1)},H:function(){return this.hours()},h:function(){return this.hours()%12||12},m:function(){return this.minutes()},
s:function(){return this.seconds()},S:function(){return~~(this.milliseconds()/100)},SS:function(){return j(~~(this.milliseconds()/10),2)},SSS:function(){return j(this.milliseconds(),3)},Z:function(){var a=-this.zone(),c="+";0>a&&(a=-a,c="-");return c+j(~~(a/60),2)+":"+j(~~a%60,2)},ZZ:function(){var a=-this.zone(),c="+";0>a&&(a=-a,c="-");return c+j(~~(10*a/6),4)},z:function(){return this.zoneAbbr()},zz:function(){return this.zoneName()},X:function(){return this.unix()}};Q.length;)w=Q.pop(),C[w+"o"]=
d(C[w],w);for(;R.length;)w=R.pop(),C[w+w]=b(C[w],2);C.DDDD=b(C.DDD,3);l(h.prototype,{set:function(a){var c,g;for(g in a)c=a[g],"function"===typeof c?this[g]=c:this["_"+g]=c},_months:"January February March April May June July August September October November December".split(" "),months:function(a){return this._months[a.month()]},_monthsShort:"Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec".split(" "),monthsShort:function(a){return this._monthsShort[a.month()]},monthsParse:function(a){var c,g;this._monthsParse||
(this._monthsParse=[]);for(c=0;12>c;c++)if(this._monthsParse[c]||(g=i.utc([2E3,c]),g="^"+this.months(g,"")+"|^"+this.monthsShort(g,""),this._monthsParse[c]=RegExp(g.replace(".",""),"i")),this._monthsParse[c].test(a))return c},_weekdays:"Sunday Monday Tuesday Wednesday Thursday Friday Saturday".split(" "),weekdays:function(a){return this._weekdays[a.day()]},_weekdaysShort:"Sun Mon Tue Wed Thu Fri Sat".split(" "),weekdaysShort:function(a){return this._weekdaysShort[a.day()]},_weekdaysMin:"Su Mo Tu We Th Fr Sa".split(" "),
weekdaysMin:function(a){return this._weekdaysMin[a.day()]},weekdaysParse:function(a){var c,g;this._weekdaysParse||(this._weekdaysParse=[]);for(c=0;7>c;c++)if(this._weekdaysParse[c]||(g=i([2E3,1]).day(c),g="^"+this.weekdays(g,"")+"|^"+this.weekdaysShort(g,"")+"|^"+this.weekdaysMin(g,""),this._weekdaysParse[c]=RegExp(g.replace(".",""),"i")),this._weekdaysParse[c].test(a))return c},_longDateFormat:{LT:"h:mm A",L:"MM/DD/YYYY",LL:"MMMM D YYYY",LLL:"MMMM D YYYY LT",LLLL:"dddd, MMMM D YYYY LT"},longDateFormat:function(a){var c=
this._longDateFormat[a];!c&&this._longDateFormat[a.toUpperCase()]&&(c=this._longDateFormat[a.toUpperCase()].replace(/MMMM|MM|DD|dddd/g,function(a){return a.slice(1)}),this._longDateFormat[a]=c);return c},isPM:function(a){return"p"===(a+"").toLowerCase().charAt(0)},_meridiemParse:/[ap]\.?m?\.?/i,meridiem:function(a,c,g){return 11<a?g?"pm":"PM":g?"am":"AM"},_calendar:{sameDay:"[Today at] LT",nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[Last] dddd [at] LT",
sameElse:"L"},calendar:function(a,c){var g=this._calendar[a];return"function"===typeof g?g.apply(c):g},_relativeTime:{future:"in %s",past:"%s ago",s:"a few seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",M:"a month",MM:"%d months",y:"a year",yy:"%d years"},relativeTime:function(a,c,g,b){var d=this._relativeTime[g];return"function"===typeof d?d(a,c,g,b):d.replace(/%d/i,a)},pastFuture:function(a,c){var g=this._relativeTime[0<a?"future":"past"];return"function"===
typeof g?g(c):g.replace(/%s/i,c)},ordinal:function(a){return this._ordinal.replace("%d",a)},_ordinal:"%d",preparse:function(a){return a},postformat:function(a){return a},week:function(a){return D(a,this._week.dow,this._week.doy).week},_week:{dow:0,doy:6}});i=function(a,c,g){return x({_i:a,_f:c,_l:g,_isUTC:!1})};i.utc=function(a,c,g){return x({_useUTC:!0,_isUTC:!0,_l:g,_i:a,_f:c}).utc()};i.unix=function(a){return i(1E3*a)};i.duration=function(a,c){var g=i.isDuration(a),b="number"===typeof a,d=g?a._input:
b?{}:a,e=ea.exec(a);b?c?d[c]=a:d.milliseconds=a:e&&(b="-"===e[1]?-1:1,d={y:0,d:~~e[2]*b,h:~~e[3]*b,m:~~e[4]*b,s:~~e[5]*b,ms:~~e[6]*b});e=new r(d);g&&a.hasOwnProperty("_lang")&&(e._lang=a._lang);return e};i.version="2.2.1";i.defaultFormat="YYYY-MM-DDTHH:mm:ssZ";i.updateOffset=function(){};i.lang=function(a,c){if(!a)return i.fn._lang._abbr;a=a.toLowerCase();a=a.replace("_","-");if(c){var g=a;c.abbr=g;F[g]||(F[g]=new h);F[g].set(c)}else null===c?(delete F[a],a="en"):F[a]||n(a);i.duration.fn._lang=i.fn._lang=
n(a)};i.langData=function(a){a&&(a._lang&&a._lang._abbr)&&(a=a._lang._abbr);return n(a)};i.isMoment=function(a){return a instanceof f};i.isDuration=function(a){return a instanceof r};l(i.fn=f.prototype,{clone:function(){return i(this)},valueOf:function(){return+this._d+6E4*(this._offset||0)},unix:function(){return Math.floor(+this/1E3)},toString:function(){return this.format("ddd MMM DD YYYY HH:mm:ss [GMT]ZZ")},toDate:function(){return this._offset?new Date(+this):this._d},toISOString:function(){return t(i(this).utc(),
"YYYY-MM-DD[T]HH:mm:ss.SSS[Z]")},toArray:function(){return[this.year(),this.month(),this.date(),this.hours(),this.minutes(),this.seconds(),this.milliseconds()]},isValid:function(){null==this._isValid&&(this._isValid=this._a?!o(this._a,(this._isUTC?i.utc(this._a):i(this._a)).toArray()):!isNaN(this._d.getTime()));return!!this._isValid},invalidAt:function(){var a,c=this._a,g=(this._isUTC?i.utc(this._a):i(this._a)).toArray();for(a=6;0<=a&&c[a]===g[a];--a);return a},utc:function(){return this.zone(0)},
local:function(){this.zone(0);this._isUTC=!1;return this},format:function(a){a=t(this,a||i.defaultFormat);return this.lang().postformat(a)},add:function(a,c){var g;g="string"===typeof a?i.duration(+c,a):i.duration(a,c);s(this,g,1);return this},subtract:function(a,c){var g;g="string"===typeof a?i.duration(+c,a):i.duration(a,c);s(this,g,-1);return this},diff:function(a,c,g){var a=this._isUTC?i(a).zone(this._offset||0):i(a).local(),b=6E4*(this.zone()-a.zone()),d,c=q(c);"year"===c||"month"===c?(d=432E5*
(this.daysInMonth()+a.daysInMonth()),b=12*(this.year()-a.year())+(this.month()-a.month()),b+=(this-i(this).startOf("month")-(a-i(a).startOf("month")))/d,b-=6E4*(this.zone()-i(this).startOf("month").zone()-(a.zone()-i(a).startOf("month").zone()))/d,"year"===c&&(b/=12)):(d=this-a,b="second"===c?d/1E3:"minute"===c?d/6E4:"hour"===c?d/36E5:"day"===c?(d-b)/864E5:"week"===c?(d-b)/6048E5:d);return g?b:p(b)},from:function(a,c){return i.duration(this.diff(a)).lang(this.lang()._abbr).humanize(!c)},fromNow:function(a){return this.from(i(),
a)},calendar:function(){var a=this.diff(i().zone(this.zone()).startOf("day"),"days",!0);return this.format(this.lang().calendar(-6>a?"sameElse":-1>a?"lastWeek":0>a?"lastDay":1>a?"sameDay":2>a?"nextDay":7>a?"nextWeek":"sameElse",this))},isLeapYear:function(){var a=this.year();return 0===a%4&&0!==a%100||0===a%400},isDST:function(){return this.zone()<this.clone().month(0).zone()||this.zone()<this.clone().month(5).zone()},day:function(a){var c=this._isUTC?this._d.getUTCDay():this._d.getDay();return null!=
a?"string"===typeof a&&(a=this.lang().weekdaysParse(a),"number"!==typeof a)?this:this.add({d:a-c}):c},month:function(a){var c=this._isUTC?"UTC":"",g;if(null!=a){if("string"===typeof a&&(a=this.lang().monthsParse(a),"number"!==typeof a))return this;g=this.date();this.date(1);this._d["set"+c+"Month"](a);this.date(Math.min(g,this.daysInMonth()));i.updateOffset(this);return this}return this._d["get"+c+"Month"]()},startOf:function(a){a=q(a);switch(a){case "year":this.month(0);case "month":this.date(1);
case "week":case "isoweek":case "day":this.hours(0);case "hour":this.minutes(0);case "minute":this.seconds(0);case "second":this.milliseconds(0)}"week"===a?this.weekday(0):"isoweek"===a&&this.isoWeekday(1);return this},endOf:function(a){a=q(a);return this.startOf(a).add("isoweek"===a?"week":a,1).subtract("ms",1)},isAfter:function(a,c){c="undefined"!==typeof c?c:"millisecond";return+this.clone().startOf(c)>+i(a).startOf(c)},isBefore:function(a,c){c="undefined"!==typeof c?c:"millisecond";return+this.clone().startOf(c)<
+i(a).startOf(c)},isSame:function(a,c){c="undefined"!==typeof c?c:"millisecond";return+this.clone().startOf(c)===+i(a).startOf(c)},min:function(a){a=i.apply(null,arguments);return a<this?this:a},max:function(a){a=i.apply(null,arguments);return a>this?this:a},zone:function(a){var c=this._offset||0;if(null!=a)"string"===typeof a&&(a=v(a)),16>Math.abs(a)&&(a*=60),this._offset=a,this._isUTC=!0,c!==a&&s(this,i.duration(c-a,"m"),1,!0);else return this._isUTC?c:this._d.getTimezoneOffset();return this},zoneAbbr:function(){return this._isUTC?
"UTC":""},zoneName:function(){return this._isUTC?"Coordinated Universal Time":""},hasAlignedHourOffset:function(a){a=a?i(a).zone():0;return 0===(this.zone()-a)%60},daysInMonth:function(){return i.utc([this.year(),this.month()+1,0]).date()},dayOfYear:function(a){var c=E((i(this).startOf("day")-i(this).startOf("year"))/864E5)+1;return null==a?c:this.add("d",a-c)},weekYear:function(a){var c=D(this,this.lang()._week.dow,this.lang()._week.doy).year;return null==a?c:this.add("y",a-c)},isoWeekYear:function(a){var c=
D(this,1,4).year;return null==a?c:this.add("y",a-c)},week:function(a){var c=this.lang().week(this);return null==a?c:this.add("d",7*(a-c))},isoWeek:function(a){var c=D(this,1,4).week;return null==a?c:this.add("d",7*(a-c))},weekday:function(a){var c=(this._d.getDay()+7-this.lang()._week.dow)%7;return null==a?c:this.add("d",a-c)},isoWeekday:function(a){return null==a?this.day()||7:this.day(this.day()%7?a:a-7)},get:function(a){a=q(a);return this[a.toLowerCase()]()},set:function(a,c){a=q(a);this[a.toLowerCase()](c)},
lang:function(a){if(a===e)return this._lang;this._lang=n(a);return this}});for(w=0;w<J.length;w++)L(J[w].toLowerCase().replace(/s$/,""),J[w]);L("year","FullYear");i.fn.days=i.fn.day;i.fn.months=i.fn.month;i.fn.weeks=i.fn.week;i.fn.isoWeeks=i.fn.isoWeek;i.fn.toJSON=i.fn.toISOString;l(i.duration.fn=r.prototype,{_bubble:function(){var a=this._milliseconds,c=this._days,g=this._months,b=this._data;b.milliseconds=a%1E3;a=p(a/1E3);b.seconds=a%60;a=p(a/60);b.minutes=a%60;a=p(a/60);b.hours=a%24;c+=p(a/24);
b.days=c%30;g+=p(c/30);b.months=g%12;c=p(g/12);b.years=c},weeks:function(){return p(this.days()/7)},valueOf:function(){return this._milliseconds+864E5*this._days+2592E6*(this._months%12)+31536E6*~~(this._months/12)},humanize:function(a){var c=+this,b;b=!a;var d=this.lang(),e=E(Math.abs(c)/1E3),f=E(e/60),h=E(f/60),i=E(h/24),j=E(i/365),e=45>e&&["s",e]||1===f&&["m"]||45>f&&["mm",f]||1===h&&["h"]||22>h&&["hh",h]||1===i&&["d"]||25>=i&&["dd",i]||45>=i&&["M"]||345>i&&["MM",E(i/30)]||1===j&&["y"]||["yy",
j];e[2]=b;e[3]=0<c;e[4]=d;b=B.apply({},e);a&&(b=this.lang().pastFuture(c,b));return this.lang().postformat(b)},add:function(a,c){var b=i.duration(a,c);this._milliseconds+=b._milliseconds;this._days+=b._days;this._months+=b._months;this._bubble();return this},subtract:function(a,c){var b=i.duration(a,c);this._milliseconds-=b._milliseconds;this._days-=b._days;this._months-=b._months;this._bubble();return this},get:function(a){a=q(a);return this[a.toLowerCase()+"s"]()},as:function(a){a=q(a);return this["as"+
a.charAt(0).toUpperCase()+a.slice(1)+"s"]()},lang:i.fn.lang});for(w in K)K.hasOwnProperty(w)&&(M(w,K[w]),S(w.toLowerCase()));M("Weeks",6048E5);i.duration.fn.asMonths=function(){return(+this-31536E6*this.years())/2592E6+12*this.years()};i.lang("en",{ordinal:function(a){var c=a%10;return a+(1===~~(a%100/10)?"th":1===c?"st":2===c?"nd":3===c?"rd":"th")}});(function(a){a(i)})(function(a){a.lang("ar-ma",{months:"يناير فبراير مارس أبريل ماي يونيو يوليوز غشت شتنبر أكتوبر نونبر دجنبر".split(" "),
monthsShort:"يناير فبراير مارس أبريل ماي يونيو يوليوز غشت شتنبر أكتوبر نونبر دجنبر".split(" "),weekdays:"الأØد الإتنين الثلاثاء الأربعاء الخميس الجمعة السبت".split(" "),weekdaysShort:"اØد اتنين ثلاثاء اربعاء خميس جمعة سبت".split(" "),weekdaysMin:"Ø Ù† Ø« ر Ø® ج س".split(" "),longDateFormat:{LT:"HH:mm",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY LT",LLLL:"dddd D MMMM YYYY LT"},
calendar:{sameDay:"[اليوم على الساعة] LT",nextDay:"[غدا على الساعة] LT",nextWeek:"dddd [على الساعة] LT",lastDay:"[أمس على الساعة] LT",lastWeek:"dddd [على الساعة] LT",sameElse:"L"},relativeTime:{future:"في %s",past:"منذ %s",s:"ثوان",m:"دقيقة",mm:"%d دقائق",h:"ساعة",hh:"%d ساعات",d:"يوم",dd:"%d أيام",M:"شهر",MM:"%d أشهر",y:"سنة",yy:"%d سنوات"},week:{dow:6,doy:12}})});(function(a){a(i)})(function(a){a.lang("ar",
{months:"يناير/ كانون الثاني;فبراير/ شباط;مارس/ آذار;أبريل/ نيسان;مايو/ أيار;يونيو/ Øزيران;يوليو/ تموز;أغسطس/ آب;سبتمبر/ أيلول;أكتوبر/ تشرين الأول;نوفمبر/ تشرين الثاني;ديسمبر/ كانون الأول".split(";"),monthsShort:"يناير/ كانون الثاني;فبراير/ شباط;مارس/ آذار;أبريل/ نيسان;مايو/ أيار;يونيو/ Øزيران;يوليو/ تموز;أغسطس/ آب;سبتمبر/ أيلول;أكتوبر/ تشرين الأول;نوفمبر/ تشرين الثاني;ديسمبر/ كانون الأول".split(";"),
weekdays:"الأØد الإثنين الثلاثاء الأربعاء الخميس الجمعة السبت".split(" "),weekdaysShort:"الأØد الإثنين الثلاثاء الأربعاء الخميس الجمعة السبت".split(" "),weekdaysMin:"Ø Ù† Ø« ر Ø® ج س".split(" "),longDateFormat:{LT:"HH:mm",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY LT",LLLL:"dddd D MMMM YYYY LT"},calendar:{sameDay:"[اليوم على الساعة] LT",nextDay:"[غدا على الساعة] LT",nextWeek:"dddd [على الساعة] LT",
lastDay:"[أمس على الساعة] LT",lastWeek:"dddd [على الساعة] LT",sameElse:"L"},relativeTime:{future:"في %s",past:"منذ %s",s:"ثوان",m:"دقيقة",mm:"%d دقائق",h:"ساعة",hh:"%d ساعات",d:"يوم",dd:"%d أيام",M:"شهر",MM:"%d أشهر",y:"سنة",yy:"%d سنوات"},week:{dow:6,doy:12}})});(function(a){a(i)})(function(a){a.lang("bg",{months:"януари февруари март април май юни юли август септември октомври ноември декември".split(" "),
monthsShort:"янр фев мар апр май юни юли авг сеп окт ное дек".split(" "),weekdays:"неделя понеделник вторник сряда четвъртък петък събота".split(" "),weekdaysShort:"нед пон вто сря чет пет съб".split(" "),weekdaysMin:"нд пн вт ср чт пт сб".split(" "),longDateFormat:{LT:"h:mm",L:"D.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY LT",LLLL:"dddd, D MMMM YYYY LT"},calendar:{sameDay:"[Днес в] LT",
nextDay:"[Утре в] LT",nextWeek:"dddd [в] LT",lastDay:"[Вчера в] LT",lastWeek:function(){switch(this.day()){case 0:case 3:case 6:return"[В изминалата] dddd [в] LT";case 1:case 2:case 4:case 5:return"[В изминалия] dddd [в] LT"}},sameElse:"L"},relativeTime:{future:"след %s",past:"преди %s",s:"няколко секунди",m:"минута",mm:"%d минути",h:"час",hh:"%d часа",d:"ден",dd:"%d дни",M:"месец",MM:"%d месеца",y:"година",
yy:"%d години"},ordinal:function(a){var b=a%10,d=a%100;return 0===a?a+"-ев":0===d?a+"-ен":10<d&&20>d?a+"-ти":1===b?a+"-ви":2===b?a+"-ри":7===b||8===b?a+"-ми":a+"-ти"},week:{dow:1,doy:7}})});(function(a){a(i)})(function(a){function c(a,c,b){c=a+" ";b={mm:"munutenn",MM:"miz",dd:"devezh"}[b];2===a?(a={m:"v",b:"v",d:"z"},a=a[b.charAt(0)]===e?b:a[b.charAt(0)]+b.substring(1)):a=b;return c+a}function b(a){return 9<a?b(a%10):a}a.lang("br",{months:"Genver C'hwevrer Meurzh Ebrel Mae Mezheven Gouere Eost Gwengolo Here Du Kerzu".split(" "),
monthsShort:"Gen C'hwe Meu Ebr Mae Eve Gou Eos Gwe Her Du Ker".split(" "),weekdays:"Sul Lun Meurzh Merc'her Yaou Gwener Sadorn".split(" "),weekdaysShort:"Sul Lun Meu Mer Yao Gwe Sad".split(" "),weekdaysMin:"Su Lu Me Mer Ya Gw Sa".split(" "),longDateFormat:{LT:"h[e]mm A",L:"DD/MM/YYYY",LL:"D [a viz] MMMM YYYY",LLL:"D [a viz] MMMM YYYY LT",LLLL:"dddd, D [a viz] MMMM YYYY LT"},calendar:{sameDay:"[Hiziv da] LT",nextDay:"[Warc'hoazh da] LT",nextWeek:"dddd [da] LT",lastDay:"[Dec'h da] LT",lastWeek:"dddd [paset da] LT",
sameElse:"L"},relativeTime:{future:"a-benn %s",past:"%s 'zo",s:"un nebeud segondennoù",m:"ur vunutenn",mm:c,h:"un eur",hh:"%d eur",d:"un devezh",dd:c,M:"ur miz",MM:c,y:"ur bloaz",yy:function(a){switch(b(a)){case 1:case 3:case 4:case 5:case 9:return a+" bloaz";default:return a+" vloaz"}}},ordinal:function(a){return a+(1===a?"añ":"vet")},week:{dow:1,doy:4}})});(function(a){a(i)})(function(a){a.lang("ca",{months:"Gener Febrer Març Abril Maig Juny Juliol Agost Setembre Octubre Novembre Desembre".split(" "),
monthsShort:"Gen. Febr. Mar. Abr. Mai. Jun. Jul. Ag. Set. Oct. Nov. Des.".split(" "),weekdays:"Diumenge Dilluns Dimarts Dimecres Dijous Divendres Dissabte".split(" "),weekdaysShort:"Dg. Dl. Dt. Dc. Dj. Dv. Ds.".split(" "),weekdaysMin:"Dg Dl Dt Dc Dj Dv Ds".split(" "),longDateFormat:{LT:"H:mm",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY LT",LLLL:"dddd D MMMM YYYY LT"},calendar:{sameDay:function(){return"[avui a "+(1!==this.hours()?"les":"la")+"] LT"},nextDay:function(){return"[demà a "+(1!==
this.hours()?"les":"la")+"] LT"},nextWeek:function(){return"dddd [a "+(1!==this.hours()?"les":"la")+"] LT"},lastDay:function(){return"[ahir a "+(1!==this.hours()?"les":"la")+"] LT"},lastWeek:function(){return"[el] dddd [passat a "+(1!==this.hours()?"les":"la")+"] LT"},sameElse:"L"},relativeTime:{future:"en %s",past:"fa %s",s:"uns segons",m:"un minut",mm:"%d minuts",h:"una hora",hh:"%d hores",d:"un dia",dd:"%d dies",M:"un mes",MM:"%d mesos",y:"un any",yy:"%d anys"},ordinal:"%dº",week:{dow:1,doy:4}})});
(function(a){a(i)})(function(a){function c(a){return 1<a&&5>a&&1!==~~(a/10)}function b(a,g,d,e){var f=a+" ";switch(d){case "s":return g||e?"pár vteÅ™in":"pár vteÅ™inami";case "m":return g?"minuta":e?"minutu":"minutou";case "mm":return g||e?f+(c(a)?"minuty":"minut"):f+"minutami";case "h":return g?"hodina":e?"hodinu":"hodinou";case "hh":return g||e?f+(c(a)?"hodiny":"hodin"):f+"hodinami";case "d":return g||e?"den":"dnem";case "dd":return g||e?f+(c(a)?"dny":"dnÃ"):f+"dny";case "M":return g||e?"mÄsÃc":
"mÄsÃcem";case "MM":return g||e?f+(c(a)?"mÄsÃce":"mÄsÃců"):f+"mÄsÃci";case "y":return g||e?"rok":"rokem";case "yy":return g||e?f+(c(a)?"roky":"let"):f+"lety"}}var d="leden únor bÅ™ezen duben kvÄten červen červenec srpen zářà řÃjen listopad prosinec".split(" "),e="led úno bÅ™e dub kvÄ Ävn čvc srp zář Å™Ãj lis pro".split(" ");a.lang("cs",{months:d,monthsShort:e,monthsParse:function(a,c){var b,g=[];for(b=0;12>b;b++)g[b]=RegExp("^"+a[b]+"$|^"+c[b]+"$","i");return g}(d,e),weekdays:"nedÄle pondÄlà úterý stÅ™eda čtvrtek pátek sobota".split(" "),
weekdaysShort:"ne po út st čt pá so".split(" "),weekdaysMin:"ne po út st čt pá so".split(" "),longDateFormat:{LT:"H:mm",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY LT",LLLL:"dddd D. MMMM YYYY LT"},calendar:{sameDay:"[dnes v] LT",nextDay:"[zÃtra v] LT",nextWeek:function(){switch(this.day()){case 0:return"[v nedÄli v] LT";case 1:case 2:return"[v] dddd [v] LT";case 3:return"[ve stÅ™edu v] LT";case 4:return"[ve čtvrtek v] LT";case 5:return"[v pátek v] LT";case 6:return"[v sobotu v] LT"}},
lastDay:"[včera v] LT",lastWeek:function(){switch(this.day()){case 0:return"[minulou nedÄli v] LT";case 1:case 2:return"[minulé] dddd [v] LT";case 3:return"[minulou stÅ™edu v] LT";case 4:case 5:return"[minulý] dddd [v] LT";case 6:return"[minulou sobotu v] LT"}},sameElse:"L"},relativeTime:{future:"za %s",past:"pÅ™ed %s",s:b,m:b,mm:b,h:b,hh:b,d:b,dd:b,M:b,MM:b,y:b,yy:b},ordinal:"%d.",week:{dow:1,doy:4}})});(function(a){a(i)})(function(a){a.lang("cv",{months:"кăрлач нарăс пуш ака май çĕртме утă çурла авăн юпа чӳк раштав".split(" "),
monthsShort:"кăр нар пуш ака май çĕр утă çур ав юпа чӳк раш".split(" "),weekdays:"вырсарникун тунтикун ытларикун юнкун кĕçнерникун эрнекун шăматкун".split(" "),weekdaysShort:"выр тун ытл юн кĕç эрн шăм".split(" "),weekdaysMin:"вр тн ыт юн кç эр шм".split(" "),longDateFormat:{LT:"HH:mm",L:"DD-MM-YYYY",LL:"YYYY [çулхи] MMMM [уйăхĕн] D[-мĕшĕ]",LLL:"YYYY [çулхи] MMMM [уйăхĕн] D[-мĕшĕ], LT",
LLLL:"dddd, YYYY [çулхи] MMMM [уйăхĕн] D[-мĕшĕ], LT"},calendar:{sameDay:"[Паян] LT [сехетре]",nextDay:"[Ыран] LT [сехетре]",lastDay:"[Ĕнер] LT [сехетре]",nextWeek:"[Çитес] dddd LT [сехетре]",lastWeek:"[Иртнĕ] dddd LT [сехетре]",sameElse:"L"},relativeTime:{future:function(a){var b=/сехет$/i.exec(a)?"рен":/çул$/i.exec(a)?"тан":"ран";return a+b},past:"%s каялла",s:"пĕр-ик çеккунт",m:"пĕр минут",
mm:"%d минут",h:"пĕр сехет",hh:"%d сехет",d:"пĕр кун",dd:"%d кун",M:"пĕр уйăх",MM:"%d уйăх",y:"пĕр çул",yy:"%d çул"},ordinal:"%d-мĕш",week:{dow:1,doy:7}})});(function(a){a(i)})(function(a){a.lang("da",{months:"januar februar marts april maj juni juli august september oktober november december".split(" "),monthsShort:"jan feb mar apr maj jun jul aug sep okt nov dec".split(" "),weekdays:"søndag mandag tirsdag onsdag torsdag fredag lørdag".split(" "),
weekdaysShort:"søn man tir ons tor fre lør".split(" "),weekdaysMin:"sø ma ti on to fr lø".split(" "),longDateFormat:{LT:"HH:mm",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY LT",LLLL:"dddd D. MMMM, YYYY LT"},calendar:{sameDay:"[I dag kl.] LT",nextDay:"[I morgen kl.] LT",nextWeek:"dddd [kl.] LT",lastDay:"[I går kl.] LT",lastWeek:"[sidste] dddd [kl] LT",sameElse:"L"},relativeTime:{future:"om %s",past:"%s siden",s:"få sekunder",m:"et minut",mm:"%d minutter",h:"en time",hh:"%d timer",d:"en dag",
dd:"%d dage",M:"en måned",MM:"%d måneder",y:"et år",yy:"%d år"},ordinal:"%d.",week:{dow:1,doy:4}})});(function(a){a(i)})(function(a){function c(a,c,b){a={m:["eine Minute","einer Minute"],h:["eine Stunde","einer Stunde"],d:["ein Tag","einem Tag"],dd:[a+" Tage",a+" Tagen"],M:["ein Monat","einem Monat"],MM:[a+" Monate",a+" Monaten"],y:["ein Jahr","einem Jahr"],yy:[a+" Jahre",a+" Jahren"]};return c?a[b][0]:a[b][1]}a.lang("de",{months:"Januar Februar März April Mai Juni Juli August September Oktober November Dezember".split(" "),
monthsShort:"Jan. Febr. Mrz. Apr. Mai Jun. Jul. Aug. Sept. Okt. Nov. Dez.".split(" "),weekdays:"Sonntag Montag Dienstag Mittwoch Donnerstag Freitag Samstag".split(" "),weekdaysShort:"So. Mo. Di. Mi. Do. Fr. Sa.".split(" "),weekdaysMin:"So Mo Di Mi Do Fr Sa".split(" "),longDateFormat:{LT:"H:mm [Uhr]",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY LT",LLLL:"dddd, D. MMMM YYYY LT"},calendar:{sameDay:"[Heute um] LT",sameElse:"L",nextDay:"[Morgen um] LT",nextWeek:"dddd [um] LT",lastDay:"[Gestern um] LT",
lastWeek:"[letzten] dddd [um] LT"},relativeTime:{future:"in %s",past:"vor %s",s:"ein paar Sekunden",m:c,mm:"%d Minuten",h:c,hh:"%d Stunden",d:c,dd:c,M:c,MM:c,y:c,yy:c},ordinal:"%d.",week:{dow:1,doy:4}})});(function(a){a(i)})(function(a){a.lang("el",{monthsNominativeEl:"Ιανουάριος Φεβρουάριος Μάρτιος Απρίλιος Μάιος Ιούνιος Ιούλιος Αύγουστος ΣεπτÎμβριος Οκτώβριος ΝοÎμβριος ΔεκÎμβριος".split(" "),monthsGenitiveEl:"Ιανουαρίου Φεβρουαρίου Μαρτίου Απριλίου Μαΐου Ιουνίου Ιουλίου Αυγούστου Σεπτεμβρίου Οκτωβρίου Νοεμβρίου Δεκεμβρίου".split(" "),
months:function(a,b){return/D/.test(b.substring(0,b.indexOf("MMMM")))?this._monthsGenitiveEl[a.month()]:this._monthsNominativeEl[a.month()]},monthsShort:"Ιαν Φεβ Μαρ Απρ Μαϊ Ιουν Ιουλ Αυγ Σεπ Οκτ Νοε Δεκ".split(" "),weekdays:"Κυριακή;ΔευτÎρα;Τρίτη;Τετάρτη;Î Îμπτη;Παρασκευή;Σάββατο".split(";"),weekdaysShort:"Κυρ;Δευ;Τρι;Τετ;Πεμ;Παρ;Σαβ".split(";"),weekdaysMin:"Κυ;Δε;Τρ;Τε;Πε;Πα;Σα".split(";"),
meridiem:function(a,b,d){return 11<a?d?"μμ":"ΜΜ":d?"πμ":"ΠΜ"},longDateFormat:{LT:"h:mm A",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY LT",LLLL:"dddd, D MMMM YYYY LT"},calendarEl:{sameDay:"[Σήμερα {}] LT",nextDay:"[Αύριο {}] LT",nextWeek:"dddd [{}] LT",lastDay:"[Χθες {}] LT",lastWeek:"[την προηγούμενη] dddd [{}] LT",sameElse:"L"},calendar:function(a,b){var d=this._calendarEl[a],e=b&&b.hours();return d.replace("{}",1===e%12?"στη":"στις")},relativeTime:{future:"σε %s",
past:"%s πριν",s:"δευτερόλεπτα",m:"Îνα λεπτό",mm:"%d λεπτά",h:"μία ώρα",hh:"%d ώρες",d:"μία μÎρα",dd:"%d μÎρες",M:"Îνας μήνας",MM:"%d μήνες",y:"Îνας χρόνος",yy:"%d χρόνια"},ordinal:function(a){return a+"η"},week:{dow:1,doy:4}})});(function(a){a(i)})(function(a){a.lang("en-ca",{months:"January February March April May June July August September October November December".split(" "),monthsShort:"Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec".split(" "),
weekdays:"Sunday Monday Tuesday Wednesday Thursday Friday Saturday".split(" "),weekdaysShort:"Sun Mon Tue Wed Thu Fri Sat".split(" "),weekdaysMin:"Su Mo Tu We Th Fr Sa".split(" "),longDateFormat:{LT:"h:mm A",L:"YYYY-MM-DD",LL:"D MMMM, YYYY",LLL:"D MMMM, YYYY LT",LLLL:"dddd, D MMMM, YYYY LT"},calendar:{sameDay:"[Today at] LT",nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[Last] dddd [at] LT",sameElse:"L"},relativeTime:{future:"in %s",past:"%s ago",s:"a few seconds",
m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",M:"a month",MM:"%d months",y:"a year",yy:"%d years"},ordinal:function(a){var b=a%10;return a+(1===~~(a%100/10)?"th":1===b?"st":2===b?"nd":3===b?"rd":"th")}})});(function(a){a(i)})(function(a){a.lang("en-gb",{months:"January February March April May June July August September October November December".split(" "),monthsShort:"Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec".split(" "),weekdays:"Sunday Monday Tuesday Wednesday Thursday Friday Saturday".split(" "),
weekdaysShort:"Sun Mon Tue Wed Thu Fri Sat".split(" "),weekdaysMin:"Su Mo Tu We Th Fr Sa".split(" "),longDateFormat:{LT:"HH:mm",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY LT",LLLL:"dddd, D MMMM YYYY LT"},calendar:{sameDay:"[Today at] LT",nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[Last] dddd [at] LT",sameElse:"L"},relativeTime:{future:"in %s",past:"%s ago",s:"a few seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",
M:"a month",MM:"%d months",y:"a year",yy:"%d years"},ordinal:function(a){var b=a%10;return a+(1===~~(a%100/10)?"th":1===b?"st":2===b?"nd":3===b?"rd":"th")},week:{dow:1,doy:4}})});(function(a){a(i)})(function(a){a.lang("eo",{months:"januaro februaro marto aprilo majo junio julio aÅgusto septembro oktobro novembro decembro".split(" "),monthsShort:"jan feb mar apr maj jun jul aÅg sep okt nov dec".split(" "),weekdays:"Dimanĉo Lundo Mardo Merkredo Ä´aÅdo Vendredo Sabato".split(" "),weekdaysShort:"Dim Lun Mard Merk Ä´aÅ Ven Sab".split(" "),
weekdaysMin:"Di Lu Ma Me Ä´a Ve Sa".split(" "),longDateFormat:{LT:"HH:mm",L:"YYYY-MM-DD",LL:"D[-an de] MMMM, YYYY",LLL:"D[-an de] MMMM, YYYY LT",LLLL:"dddd, [la] D[-an de] MMMM, YYYY LT"},meridiem:function(a,b,d){return 11<a?d?"p.t.m.":"P.T.M.":d?"a.t.m.":"A.T.M."},calendar:{sameDay:"[HodiaÅ je] LT",nextDay:"[MorgaÅ je] LT",nextWeek:"dddd [je] LT",lastDay:"[HieraÅ je] LT",lastWeek:"[pasinta] dddd [je] LT",sameElse:"L"},relativeTime:{future:"je %s",past:"antaÅ %s",s:"sekundoj",m:"minuto",mm:"%d minutoj",
h:"horo",hh:"%d horoj",d:"tago",dd:"%d tagoj",M:"monato",MM:"%d monatoj",y:"jaro",yy:"%d jaroj"},ordinal:"%da",week:{dow:1,doy:7}})});(function(a){a(i)})(function(a){a.lang("es",{months:"enero febrero marzo abril mayo junio julio agosto septiembre octubre noviembre diciembre".split(" "),monthsShort:"ene. feb. mar. abr. may. jun. jul. ago. sep. oct. nov. dic.".split(" "),weekdays:"domingo lunes martes miércoles jueves viernes sábado".split(" "),weekdaysShort:"dom. lun. mar. mié. jue. vie. sáb.".split(" "),
weekdaysMin:"Do Lu Ma Mi Ju Vi Sá".split(" "),longDateFormat:{LT:"H:mm",L:"DD/MM/YYYY",LL:"D [de] MMMM [de] YYYY",LLL:"D [de] MMMM [de] YYYY LT",LLLL:"dddd, D [de] MMMM [de] YYYY LT"},calendar:{sameDay:function(){return"[hoy a la"+(1!==this.hours()?"s":"")+"] LT"},nextDay:function(){return"[mañana a la"+(1!==this.hours()?"s":"")+"] LT"},nextWeek:function(){return"dddd [a la"+(1!==this.hours()?"s":"")+"] LT"},lastDay:function(){return"[ayer a la"+(1!==this.hours()?"s":"")+"] LT"},lastWeek:function(){return"[el] dddd [pasado a la"+
(1!==this.hours()?"s":"")+"] LT"},sameElse:"L"},relativeTime:{future:"en %s",past:"hace %s",s:"unos segundos",m:"un minuto",mm:"%d minutos",h:"una hora",hh:"%d horas",d:"un dÃa",dd:"%d dÃas",M:"un mes",MM:"%d meses",y:"un año",yy:"%d años"},ordinal:"%dº",week:{dow:1,doy:4}})});(function(a){a(i)})(function(a){a.lang("et",{months:"jaanuar veebruar märts aprill mai juuni juuli august september oktoober november detsember".split(" "),monthsShort:"jaan veebr märts apr mai juuni juuli aug sept okt nov dets".split(" "),
weekdays:"pühapäev esmaspäev teisipäev kolmapäev neljapäev reede laupäev".split(" "),weekdaysShort:"PETKNRL".split(""),weekdaysMin:"PETKNRL".split(""),longDateFormat:{LT:"H:mm",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY LT",LLLL:"dddd, D. MMMM YYYY LT"},calendar:{sameDay:"[Täna,] LT",nextDay:"[Homme,] LT",nextWeek:"[Järgmine] dddd LT",lastDay:"[Eile,] LT",lastWeek:"[Eelmine] dddd LT",sameElse:"L"},relativeTime:{future:"%s pärast",past:"%s tagasi",s:function(a,b,d,e){return e||b?
"paari sekundi":"paar sekundit"},m:"minut",mm:"%d minutit",h:"tund",hh:"%d tundi",d:"päev",dd:"%d päeva",M:"kuu",MM:"%d kuud",y:"aasta",yy:"%d aastat"},ordinal:"%d.",week:{dow:1,doy:4}})});(function(a){a(i)})(function(a){a.lang("eu",{months:"urtarrila otsaila martxoa apirila maiatza ekaina uztaila abuztua iraila urria azaroa abendua".split(" "),monthsShort:"urt. ots. mar. api. mai. eka. uzt. abu. ira. urr. aza. abe.".split(" "),weekdays:"igandea astelehena asteartea asteazkena osteguna ostirala larunbata".split(" "),
weekdaysShort:"ig. al. ar. az. og. ol. lr.".split(" "),weekdaysMin:"ig al ar az og ol lr".split(" "),longDateFormat:{LT:"HH:mm",L:"YYYY-MM-DD",LL:"YYYY[ko] MMMM[ren] D[a]",LLL:"YYYY[ko] MMMM[ren] D[a] LT",LLLL:"dddd, YYYY[ko] MMMM[ren] D[a] LT",l:"YYYY-M-D",ll:"YYYY[ko] MMM D[a]",lll:"YYYY[ko] MMM D[a] LT",llll:"ddd, YYYY[ko] MMM D[a] LT"},calendar:{sameDay:"[gaur] LT[etan]",nextDay:"[bihar] LT[etan]",nextWeek:"dddd LT[etan]",lastDay:"[atzo] LT[etan]",lastWeek:"[aurreko] dddd LT[etan]",sameElse:"L"},
relativeTime:{future:"%s barru",past:"duela %s",s:"segundo batzuk",m:"minutu bat",mm:"%d minutu",h:"ordu bat",hh:"%d ordu",d:"egun bat",dd:"%d egun",M:"hilabete bat",MM:"%d hilabete",y:"urte bat",yy:"%d urte"},ordinal:"%d.",week:{dow:1,doy:7}})});(function(a){a(i)})(function(a){var c={1:"۱",2:"۲",3:"۳",4:"۴",5:"۵",6:"۶",7:"۷",8:"۸",9:"۹","0":"۰"},b={"۱":"1","۲":"2","۳":"3","۴":"4","۵":"5","۶":"6","۷":"7","۸":"8","۹":"9","۰":"0"};a.lang("fa",{months:"ژانویه فوریه مارس آوریل مه ژوئن ژوئیه اوت سپتامبر اکتبر نوامبر دسامبر".split(" "),
monthsShort:"ژانویه فوریه مارس آوریل مه ژوئن ژوئیه اوت سپتامبر اکتبر نوامبر دسامبر".split(" "),weekdays:"یک‌شنبه دوشنبه سه‌شنبه چهارشنبه پنج‌شنبه جمعه شنبه".split(" "),weekdaysShort:"یک‌شنبه دوشنبه سه‌شنبه چهارشنبه پنج‌شنبه جمعه شنبه".split(" "),weekdaysMin:"ÛŒ د س Ú† Ù¾ ج Ø´".split(" "),longDateFormat:{LT:"HH:mm",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY LT",
LLLL:"dddd, D MMMM YYYY LT"},meridiem:function(a){return 12>a?"قبل از ظهر":"بعد از ظهر"},calendar:{sameDay:"[امروز ساعت] LT",nextDay:"[فردا ساعت] LT",nextWeek:"dddd [ساعت] LT",lastDay:"[دیروز ساعت] LT",lastWeek:"dddd [پیش] [ساعت] LT",sameElse:"L"},relativeTime:{future:"در %s",past:"%s پیش",s:"چندین ثانیه",m:"یک دقیقه",mm:"%d دقیقه",h:"یک ساعت",hh:"%d ساعت",d:"یک روز",dd:"%d روز",M:"یک ماه",MM:"%d ماه",
y:"یک سال",yy:"%d سال"},preparse:function(a){return a.replace(/[۰-۹]/g,function(a){return b[a]}).replace(/،/g,",")},postformat:function(a){return a.replace(/\d/g,function(a){return c[a]}).replace(/,/g,"،")},ordinal:"%dم",week:{dow:6,doy:12}})});(function(a){a(i)})(function(a){function c(a,c,e,f){c="";switch(e){case "s":return f?"muutaman sekunnin":"muutama sekunti";case "m":return f?"minuutin":"minuutti";case "mm":c=f?"minuutin":"minuuttia";break;case "h":return f?"tunnin":"tunti";case "hh":c=
f?"tunnin":"tuntia";break;case "d":return f?"päivän":"päivä";case "dd":c=f?"päivän":"päivää";break;case "M":return f?"kuukauden":"kuukausi";case "MM":c=f?"kuukauden":"kuukautta";break;case "y":return f?"vuoden":"vuosi";case "yy":c=f?"vuoden":"vuotta"}return c=(10>a?f?d[a]:b[a]:a)+" "+c}var b="nolla yksi kaksi kolme neljä viisi kuusi seitsemän kahdeksan yhdeksän".split(" "),d=["nolla","yhden","kahden","kolmen","neljän","viiden","kuuden",b[7],b[8],b[9]];a.lang("fi",{months:"tammikuu helmikuu maaliskuu huhtikuu toukokuu kesäkuu heinäkuu elokuu syyskuu lokakuu marraskuu joulukuu".split(" "),
monthsShort:"tammi helmi maalis huhti touko kesä heinä elo syys loka marras joulu".split(" "),weekdays:"sunnuntai maanantai tiistai keskiviikko torstai perjantai lauantai".split(" "),weekdaysShort:"su ma ti ke to pe la".split(" "),weekdaysMin:"su ma ti ke to pe la".split(" "),longDateFormat:{LT:"HH.mm",L:"DD.MM.YYYY",LL:"Do MMMM[ta] YYYY",LLL:"Do MMMM[ta] YYYY, [klo] LT",LLLL:"dddd, Do MMMM[ta] YYYY, [klo] LT",l:"D.M.YYYY",ll:"Do MMM YYYY",lll:"Do MMM YYYY, [klo] LT",llll:"ddd, Do MMM YYYY, [klo] LT"},
calendar:{sameDay:"[tänään] [klo] LT",nextDay:"[huomenna] [klo] LT",nextWeek:"dddd [klo] LT",lastDay:"[eilen] [klo] LT",lastWeek:"[viime] dddd[na] [klo] LT",sameElse:"L"},relativeTime:{future:"%s päästä",past:"%s sitten",s:c,m:c,mm:c,h:c,hh:c,d:c,dd:c,M:c,MM:c,y:c,yy:c},ordinal:"%d.",week:{dow:1,doy:4}})});(function(a){a(i)})(function(a){a.lang("fr-ca",{months:"janvier février mars avril mai juin juillet août septembre octobre novembre décembre".split(" "),monthsShort:"janv. févr. mars avr. mai juin juil. août sept. oct. nov. déc.".split(" "),
weekdays:"dimanche lundi mardi mercredi jeudi vendredi samedi".split(" "),weekdaysShort:"dim. lun. mar. mer. jeu. ven. sam.".split(" "),weekdaysMin:"Di Lu Ma Me Je Ve Sa".split(" "),longDateFormat:{LT:"HH:mm",L:"YYYY-MM-DD",LL:"D MMMM YYYY",LLL:"D MMMM YYYY LT",LLLL:"dddd D MMMM YYYY LT"},calendar:{sameDay:"[Aujourd'hui à ] LT",nextDay:"[Demain à ] LT",nextWeek:"dddd [à ] LT",lastDay:"[Hier à ] LT",lastWeek:"dddd [dernier à ] LT",sameElse:"L"},relativeTime:{future:"dans %s",past:"il y a %s",s:"quelques secondes",
m:"une minute",mm:"%d minutes",h:"une heure",hh:"%d heures",d:"un jour",dd:"%d jours",M:"un mois",MM:"%d mois",y:"un an",yy:"%d ans"},ordinal:function(a){return a+(1===a?"er":"")}})});(function(a){a(i)})(function(a){a.lang("fr",{months:"janvier février mars avril mai juin juillet août septembre octobre novembre décembre".split(" "),monthsShort:"janv. févr. mars avr. mai juin juil. août sept. oct. nov. déc.".split(" "),weekdays:"dimanche lundi mardi mercredi jeudi vendredi samedi".split(" "),
weekdaysShort:"dim. lun. mar. mer. jeu. ven. sam.".split(" "),weekdaysMin:"Di Lu Ma Me Je Ve Sa".split(" "),longDateFormat:{LT:"HH:mm",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY LT",LLLL:"dddd D MMMM YYYY LT"},calendar:{sameDay:"[Aujourd'hui à ] LT",nextDay:"[Demain à ] LT",nextWeek:"dddd [à ] LT",lastDay:"[Hier à ] LT",lastWeek:"dddd [dernier à ] LT",sameElse:"L"},relativeTime:{future:"dans %s",past:"il y a %s",s:"quelques secondes",m:"une minute",mm:"%d minutes",h:"une heure",hh:"%d heures",
d:"un jour",dd:"%d jours",M:"un mois",MM:"%d mois",y:"un an",yy:"%d ans"},ordinal:function(a){return a+(1===a?"er":"")},week:{dow:1,doy:4}})});(function(a){a(i)})(function(a){a.lang("gl",{months:"Xaneiro Febreiro Marzo Abril Maio Xuño Xullo Agosto Setembro Outubro Novembro Decembro".split(" "),monthsShort:"Xan. Feb. Mar. Abr. Mai. Xuñ. Xul. Ago. Set. Out. Nov. Dec.".split(" "),weekdays:"Domingo Luns Martes Mércores Xoves Venres Sábado".split(" "),weekdaysShort:"Dom. Lun. Mar. Mér. Xov. Ven. Sáb.".split(" "),
weekdaysMin:"Do Lu Ma Mé Xo Ve Sá".split(" "),longDateFormat:{LT:"H:mm",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY LT",LLLL:"dddd D MMMM YYYY LT"},calendar:{sameDay:function(){return"[hoxe "+(1!==this.hours()?"ás":"á")+"] LT"},nextDay:function(){return"[mañá "+(1!==this.hours()?"ás":"á")+"] LT"},nextWeek:function(){return"dddd ["+(1!==this.hours()?"ás":"a")+"] LT"},lastDay:function(){return"[onte "+(1!==this.hours()?"á":"a")+"] LT"},lastWeek:function(){return"[o] dddd [pasado "+(1!==
this.hours()?"ás":"a")+"] LT"},sameElse:"L"},relativeTime:{future:function(a){return"uns segundos"===a?"nuns segundos":"en "+a},past:"hai %s",s:"uns segundos",m:"un minuto",mm:"%d minutos",h:"unha hora",hh:"%d horas",d:"un dÃa",dd:"%d dÃas",M:"un mes",MM:"%d meses",y:"un ano",yy:"%d anos"},ordinal:"%dº",week:{dow:1,doy:7}})});(function(a){a(i)})(function(a){a.lang("he",{months:"×™× ×•××¨;פברואר;מרץ;אפריל;מאי;×™×•× ×™;יולי;אוגוסט;ספטמבר;אוקטובר;× ×•×‘×ž×‘×¨;דצמבר".split(";"),
monthsShort:"×™× ×•×³;פבר׳;מרץ;אפר׳;מאי;×™×•× ×™;יולי;אוג׳;ספט׳;אוק׳;× ×•×‘×³;דצמ׳".split(";"),weekdays:"ראשון;×©× ×™;שלישי;רביעי;חמישי;שישי;שבת".split(";"),weekdaysShort:"א׳ ב׳ ג׳ ד׳ ה׳ ו׳ ש׳".split(" "),weekdaysMin:"א × × ×“ ×” ו ש".split(" "),longDateFormat:{LT:"HH:mm",L:"DD/MM/YYYY",LL:"D [×]MMMM YYYY",LLL:"D [×]MMMM YYYY LT",LLLL:"dddd, D [×]MMMM YYYY LT",l:"D/M/YYYY",ll:"D MMM YYYY",lll:"D MMM YYYY LT",llll:"ddd, D MMM YYYY LT"},
calendar:{sameDay:"[היום ב־]LT",nextDay:"[מחר ב־]LT",nextWeek:"dddd [בשעה] LT",lastDay:"[אתמול ב־]LT",lastWeek:"[ביום] dddd [האחרון בשעה] LT",sameElse:"L"},relativeTime:{future:"בעוד %s",past:"×œ×¤× ×™ %s",s:"מספר ×©× ×™×•×ª",m:"דקה",mm:"%d דקות",h:"שעה",hh:function(a){return 2===a?"שעתיים":a+" שעות"},d:"יום",dd:function(a){return 2===a?"יומיים":a+" ימים"},M:"חודש",MM:function(a){return 2===a?"חודשיים":a+" חודשים"},
y:"×©× ×”",yy:function(a){return 2===a?"×©× ×ª×™×™×":a+" ×©× ×™×"}}})});(function(a){a(i)})(function(a){var c={1:"१",2:"२",3:"३",4:"४",5:"५",6:"६",7:"à¥",8:"८",9:"९","0":"०"},b={"१":"1","२":"2","३":"3","४":"4","५":"5","६":"6","à¥":"7","८":"8","९":"9","०":"0"};a.lang("hi",{months:"जनवरी फ़रवरी मार्च अप्रैल मई जून जुलाई अगस्त सितम्बर अक्टूबर नवम्बर दिसम्बर".split(" "),
monthsShort:"जन. फ़र. मार्च अप्रै. मई जून जुल. अग. सित. अक्टू. नव. दिस.".split(" "),weekdays:"रविवार सोमवार मंगलवार बुधवार गुरूवार शुक्रवार शनिवार".split(" "),weekdaysShort:"रवि सोम मंगल बुध गुरू शुक्र शनि".split(" "),weekdaysMin:"र सो मं बु गु शु श".split(" "),
longDateFormat:{LT:"A h:mm बजे",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, LT",LLLL:"dddd, D MMMM YYYY, LT"},calendar:{sameDay:"[आज] LT",nextDay:"[कल] LT",nextWeek:"dddd, LT",lastDay:"[कल] LT",lastWeek:"[पिछले] dddd, LT",sameElse:"L"},relativeTime:{future:"%s में",past:"%s पहले",s:"कुछ ही क्षण",m:"एक मिनट",mm:"%d मिनट",h:"एक घंटा",hh:"%d घंटे",d:"एक दिन",dd:"%d दिन",M:"एक महीने",
MM:"%d महीने",y:"एक वर्ष",yy:"%d वर्ष"},preparse:function(a){return a.replace(/[१२३४५६à¥à¥®à¥¯à¥¦]/g,function(a){return b[a]})},postformat:function(a){return a.replace(/\d/g,function(a){return c[a]})},meridiem:function(a){return 4>a?"रात":10>a?"सुबह":17>a?"दोपहर":20>a?"शाम":"रात"},week:{dow:0,doy:6}})});(function(a){a(i)})(function(a){function c(a,c,b){var d=a+" ";switch(b){case "m":return c?"jedna minuta":"jedne minute";
case "mm":return 1===a?d+"minuta":2===a||3===a||4===a?d+"minute":d+"minuta";case "h":return c?"jedan sat":"jednog sata";case "hh":return 1===a?d+"sat":2===a||3===a||4===a?d+"sata":d+"sati";case "dd":return 1===a?d+"dan":d+"dana";case "MM":return 1===a?d+"mjesec":2===a||3===a||4===a?d+"mjeseca":d+"mjeseci";case "yy":return 1===a?d+"godina":2===a||3===a||4===a?d+"godine":d+"godina"}}a.lang("hr",{months:"sječanj veljača ožujak travanj svibanj lipanj srpanj kolovoz rujan listopad studeni prosinac".split(" "),
monthsShort:"sje. vel. ožu. tra. svi. lip. srp. kol. ruj. lis. stu. pro.".split(" "),weekdays:"nedjelja ponedjeljak utorak srijeda četvrtak petak subota".split(" "),weekdaysShort:"ned. pon. uto. sri. čet. pet. sub.".split(" "),weekdaysMin:"ne po ut sr če pe su".split(" "),longDateFormat:{LT:"H:mm",L:"DD. MM. YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY LT",LLLL:"dddd, D. MMMM YYYY LT"},calendar:{sameDay:"[danas u] LT",nextDay:"[sutra u] LT",nextWeek:function(){switch(this.day()){case 0:return"[u] [nedjelju] [u] LT";
case 3:return"[u] [srijedu] [u] LT";case 6:return"[u] [subotu] [u] LT";case 1:case 2:case 4:case 5:return"[u] dddd [u] LT"}},lastDay:"[jučer u] LT",lastWeek:function(){switch(this.day()){case 0:case 3:return"[prošlu] dddd [u] LT";case 6:return"[prošle] [subote] [u] LT";case 1:case 2:case 4:case 5:return"[prošli] dddd [u] LT"}},sameElse:"L"},relativeTime:{future:"za %s",past:"prije %s",s:"par sekundi",m:c,mm:c,h:c,hh:c,d:"dan",dd:c,M:"mjesec",MM:c,y:"godinu",yy:c},ordinal:"%d.",week:{dow:1,doy:7}})});
(function(a){a(i)})(function(a){function c(a,c,b,d){switch(b){case "s":return d||c?"néhány másodperc":"néhány másodperce";case "m":return"egy"+(d||c?" perc":" perce");case "mm":return a+(d||c?" perc":" perce");case "h":return"egy"+(d||c?" óra":" órája");case "hh":return a+(d||c?" óra":" órája");case "d":return"egy"+(d||c?" nap":" napja");case "dd":return a+(d||c?" nap":" napja");case "M":return"egy"+(d||c?" hónap":" hónapja");case "MM":return a+(d||c?" hónap":" hónapja");case "y":return"egy"+
(d||c?" év":" éve");case "yy":return a+(d||c?" év":" éve")}return""}function b(a){return(a?"":"[múlt] ")+"["+d[this.day()]+"] LT[-kor]"}var d="vasárnap hétfÅn kedden szerdán csütörtökön pénteken szombaton".split(" ");a.lang("hu",{months:"január február március április május június július augusztus szeptember október november december".split(" "),monthsShort:"jan feb márc ápr máj jún júl aug szept okt nov dec".split(" "),weekdays:"vasárnap hétfÅ kedd szerda csütörtök péntek szombat".split(" "),
weekdaysShort:"v h k sze cs p szo".split(" "),longDateFormat:{LT:"H:mm",L:"YYYY.MM.DD.",LL:"YYYY. MMMM D.",LLL:"YYYY. MMMM D., LT",LLLL:"YYYY. MMMM D., dddd LT"},calendar:{sameDay:"[ma] LT[-kor]",nextDay:"[holnap] LT[-kor]",nextWeek:function(){return b.call(this,!0)},lastDay:"[tegnap] LT[-kor]",lastWeek:function(){return b.call(this,!1)},sameElse:"L"},relativeTime:{future:"%s múlva",past:"%s",s:c,m:c,mm:c,h:c,hh:c,d:c,dd:c,M:c,MM:c,y:c,yy:c},ordinal:"%d.",week:{dow:1,doy:7}})});(function(a){a(i)})(function(a){a.lang("id",
{months:"Januari Februari Maret April Mei Juni Juli Agustus September Oktober November Desember".split(" "),monthsShort:"Jan Feb Mar Apr Mei Jun Jul Ags Sep Okt Nov Des".split(" "),weekdays:"Minggu Senin Selasa Rabu Kamis Jumat Sabtu".split(" "),weekdaysShort:"Min Sen Sel Rab Kam Jum Sab".split(" "),weekdaysMin:"Mg Sn Sl Rb Km Jm Sb".split(" "),longDateFormat:{LT:"HH.mm",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY [pukul] LT",LLLL:"dddd, D MMMM YYYY [pukul] LT"},meridiem:function(a){return 11>
a?"pagi":15>a?"siang":19>a?"sore":"malam"},calendar:{sameDay:"[Hari ini pukul] LT",nextDay:"[Besok pukul] LT",nextWeek:"dddd [pukul] LT",lastDay:"[Kemarin pukul] LT",lastWeek:"dddd [lalu pukul] LT",sameElse:"L"},relativeTime:{future:"dalam %s",past:"%s yang lalu",s:"beberapa detik",m:"semenit",mm:"%d menit",h:"sejam",hh:"%d jam",d:"sehari",dd:"%d hari",M:"sebulan",MM:"%d bulan",y:"setahun",yy:"%d tahun"},week:{dow:1,doy:7}})});(function(a){a(i)})(function(a){function c(a){return 11!==a%100&&1===a%
10?!1:!0}function b(a,d,g,e){var f=a+" ";switch(g){case "s":return d||e?"nokkrar sekúndur":"nokkrum sekúndum";case "m":return d?"mÃnúta":"mÃnútu";case "mm":return c(a)?f+(d||e?"mÃnútur":"mÃnútum"):d?f+"mÃnúta":f+"mÃnútu";case "hh":return c(a)?f+(d||e?"klukkustundir":"klukkustundum"):f+"klukkustund";case "d":return d?"dagur":e?"dag":"degi";case "dd":return c(a)?d?f+"dagar":f+(e?"daga":"dögum"):d?f+"dagur":f+(e?"dag":"degi");case "M":return d?"mánuður":e?"mánuð":"mánuði";case "MM":return c(a)?
d?f+"mánuðir":f+(e?"mánuði":"mánuðum"):d?f+"mánuður":f+(e?"mánuð":"mánuði");case "y":return d||e?"ár":"ári";case "yy":return c(a)?f+(d||e?"ár":"árum"):f+(d||e?"ár":"ári")}}a.lang("is",{months:"janúar febrúar mars aprÃl maà júnà júlà ágúst september október nóvember desember".split(" "),monthsShort:"jan feb mar apr maà jún júl ágú sep okt nóv des".split(" "),weekdays:"sunnudagur mánudagur þriðjudagur miðvikudagur fimmtudagur föstudagur laugardagur".split(" "),weekdaysShort:"sun mán þri mið fim fös lau".split(" "),
weekdaysMin:"Su Má Þr Mi Fi Fö La".split(" "),longDateFormat:{LT:"H:mm",L:"DD/MM/YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY [kl.] LT",LLLL:"dddd, D. MMMM YYYY [kl.] LT"},calendar:{sameDay:"[à dag kl.] LT",nextDay:"[á morgun kl.] LT",nextWeek:"dddd [kl.] LT",lastDay:"[à gær kl.] LT",lastWeek:"[sÃðasta] dddd [kl.] LT",sameElse:"L"},relativeTime:{future:"eftir %s",past:"fyrir %s sÃðan",s:b,m:b,mm:b,h:"klukkustund",hh:b,d:b,dd:b,M:b,MM:b,y:b,yy:b},ordinal:"%d.",week:{dow:1,doy:4}})});(function(a){a(i)})(function(a){a.lang("it",
{months:"Gennaio Febbraio Marzo Aprile Maggio Giugno Luglio Agosto Settembre Ottobre Novembre Dicembre".split(" "),monthsShort:"Gen Feb Mar Apr Mag Giu Lug Ago Set Ott Nov Dic".split(" "),weekdays:"Domenica Lunedì Martedì Mercoledì Giovedì Venerdì Sabato".split(" "),weekdaysShort:"Dom Lun Mar Mer Gio Ven Sab".split(" "),weekdaysMin:"D L Ma Me G V S".split(" "),longDateFormat:{LT:"HH:mm",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY LT",LLLL:"dddd, D MMMM YYYY LT"},calendar:{sameDay:"[Oggi alle] LT",
nextDay:"[Domani alle] LT",nextWeek:"dddd [alle] LT",lastDay:"[Ieri alle] LT",lastWeek:"[lo scorso] dddd [alle] LT",sameElse:"L"},relativeTime:{future:function(a){return(/^[0-9].+$/.test(a)?"tra":"in")+" "+a},past:"%s fa",s:"secondi",m:"un minuto",mm:"%d minuti",h:"un'ora",hh:"%d ore",d:"un giorno",dd:"%d giorni",M:"un mese",MM:"%d mesi",y:"un anno",yy:"%d anni"},ordinal:"%dº",week:{dow:1,doy:4}})});(function(a){a(i)})(function(a){a.lang("ja",{months:"1月 2月 3月 4月 5月 6月 7月 8月 9月 10月 11月 12月".split(" "),
monthsShort:"1月 2月 3月 4月 5月 6月 7月 8月 9月 10月 11月 12月".split(" "),weekdays:"日曜日 月曜日 火曜日 水曜日 木曜日 金曜日 土曜日".split(" "),weekdaysShort:"æ—¥ 月 火 æ°´ 木 金 土".split(" "),weekdaysMin:"æ—¥ 月 火 æ°´ 木 金 土".split(" "),longDateFormat:{LT:"Ah晈†",L:"YYYY/MM/DD",LL:"YYYYå¹´M月Dæ—¥",LLL:"YYYYå¹´M月Dæ—¥LT",LLLL:"YYYYå¹´M月Dæ—¥LT dddd"},meridiem:function(a){return 12>a?"午前":"午後"},calendar:{sameDay:"[今日] LT",nextDay:"[明日] LT",
nextWeek:"[来週]dddd LT",lastDay:"[昨日] LT",lastWeek:"[前週]dddd LT",sameElse:"L"},relativeTime:{future:"%s後",past:"%s前",s:"数秒",m:"1分",mm:"%d分",h:"1æ™é“",hh:"%dæ™é“",d:"1æ—¥",dd:"%dæ—¥",M:"1ヶ月",MM:"%dヶ月",y:"1å¹´",yy:"%då¹´"}})});(function(a){a(i)})(function(a){a.lang("ka",{months:function(a,b){return{nominative:"იანვარი;თებერვალი;მარტი;აპრილი;მაისი;ივნისი;ივლისი;აგვისტო;სექტემბერი;ოქტომბერი;ნოემბერი;დეკემბერი".split(";"),
accusative:"იანვარს;თებერვალს;მარტს;აპრილის;მაისს;ივნისს;ივლისს;აგვისტს;სექტემბერს;ოქტომბერს;ნოემბერს;დეკემბერს".split(";")}[/D[oD] *MMMM?/.test(b)?"accusative":"nominative"][a.month()]},monthsShort:"იან;თებ;მარ;აპრ;მაი;ივნ;ივლ;აგვ;სექ;ოქტ;ნოე;დეკ".split(";"),
weekdays:function(a,b){return{nominative:"კვირა;ორშაბათი;სამშაბათი;ოთხშაბათი;ხუთშაბათი;პარასკევი;შაბათი".split(";"),accusative:"კვირას;ორშაბათს;სამშაბათს;ოთხშაბათს;ხუთშაბათს;პარასკევს;შაბათს".split(";")}[/(წინა|შემდეგ)/.test(b)?"accusative":"nominative"][a.day()]},
weekdaysShort:"კვი;ორშ;სამ;ოთხ;ხუთ;პარ;შაბ".split(";"),weekdaysMin:"კვ;ორ;სა;ოთ;ხუ;პა;შა".split(";"),longDateFormat:{LT:"h:mm A",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY LT",LLLL:"dddd, D MMMM YYYY LT"},calendar:{sameDay:"[დღეს] LT[-ზე]",nextDay:"[ხვალ] LT[-ზე]",lastDay:"[გუშინ] LT[-ზე]",nextWeek:"[შემდეგ] dddd LT[-ზე]",lastWeek:"[წინა] dddd LT-ზე",sameElse:"L"},
relativeTime:{future:function(a){return/(წამი|წუთი|საათი|წელი)/.test(a)?a.replace(/ი$/,"ში"):a+"ში"},past:function(a){if(/(წამი|წუთი|საათი|დღე|თვე)/.test(a))return a.replace(/(ი|ე)$/,"ის წინ");if(/წელი/.test(a))return a.replace(/წელი$/,"წლის წინ")},s:"რამდენიმე წამი",m:"წუთი",mm:"%d წუთი",h:"საათი",hh:"%d საათი",
d:"დღე",dd:"%d დღე",M:"თვე",MM:"%d თვე",y:"წელი",yy:"%d წელი"},ordinal:function(a){return 0===a?a:1===a?a+"-ლი":20>a||100>=a&&0===a%20||0===a%100?"მე-"+a:a+"-ე"},week:{dow:1,doy:7}})});(function(a){a(i)})(function(a){a.lang("ko",{months:"1ì” 2ì” 3ì” 4ì” 5ì” 6ì” 7ì” 8ì” 9ì” 10ì” 11ì” 12ì”".split(" "),monthsShort:"1ì” 2ì” 3ì” 4ì” 5ì” 6ì” 7ì” 8ì” 9ì” 10ì” 11ì” 12ì”".split(" "),weekdays:"일요일;월요일;화요일;수요일;목요일;금요일;í† ìš”ì¼".split(";"),
weekdaysShort:"일;ì›”;í™”;수;목;금;í† ".split(";"),weekdaysMin:"일;ì›”;í™”;수;목;금;í† ".split(";"),longDateFormat:{LT:"A hìœ mm분",L:"YYYY.MM.DD",LL:"YYYYë…„ MMMM D일",LLL:"YYYYë…„ MMMM D일 LT",LLLL:"YYYYë…„ MMMM D일 dddd LT"},meridiem:function(a){return 12>a?"ì˜¤ì „":"오후"},calendar:{sameDay:"오늘 LT",nextDay:"내일 LT",nextWeek:"dddd LT",lastDay:"ì–´ì œ LT",lastWeek:"지난주 dddd LT",sameElse:"L"},relativeTime:{future:"%s 후",past:"%s ì „",s:"몇초",ss:"%dì´ˆ",m:"일분",
mm:"%d분",h:"한시간",hh:"%dìœê°„",d:"하루",dd:"%d일",M:"한달",MM:"%dë¬",y:"일년",yy:"%dë…„"},ordinal:"%d일"})});(function(a){a(i)})(function(a){function c(a,c,d){var e=a+" ";d=b[d].split("_");a=c?1===a%10&&11!==a?d[2]:d[3]:1===a%10&&11!==a?d[0]:d[1];return e+a}var b={mm:"minÅ«ti_minÅ«tes_minÅ«te_minÅ«tes",hh:"stundu_stundas_stunda_stundas",dd:"dienu_dienas_diena_dienas",MM:"mÄ“nesi_mÄ“neÅ¡us_mÄ“nesis_mÄ“neÅ¡i",yy:"gadu_gadus_gads_gadi"};a.lang("lv",{months:"janvāris februāris marts aprÄ«lis maijs jÅ«nijs jÅ«lijs augusts septembris oktobris novembris decembris".split(" "),
monthsShort:"jan feb mar apr mai jūn jūl aug sep okt nov dec".split(" "),weekdays:"svētdiena pirmdiena otrdiena trešdiena ceturtdiena piektdiena sestdiena".split(" "),weekdaysShort:"Sv P O T C Pk S".split(" "),weekdaysMin:"Sv P O T C Pk S".split(" "),longDateFormat:{LT:"HH:mm",L:"DD.MM.YYYY",LL:"YYYY. [gada] D. MMMM",LLL:"YYYY. [gada] D. MMMM, LT",LLLL:"YYYY. [gada] D. MMMM, dddd, LT"},calendar:{sameDay:"[Šodien pulksten] LT",nextDay:"[Rīt pulksten] LT",nextWeek:"dddd [pulksten] LT",lastDay:"[Vakar pulksten] LT",
lastWeek:"[Pagājušā] dddd [pulksten] LT",sameElse:"L"},relativeTime:{future:"%s vēlāk",past:"%s agrāk",s:"dažas sekundes",m:"minūti",mm:c,h:"stundu",hh:c,d:"dienu",dd:c,M:"mēnesi",MM:c,y:"gadu",yy:c},ordinal:"%d.",week:{dow:1,doy:4}})});(function(a){a(i)})(function(a){a.lang("ml",{months:"ജനുവരി ഫെബ്രുവരി മാർച്ച് ഏപ്രിൽ മേയ് ജൂൺ ജൂലൈ ഓഗസ്റ്റ് സെപ്റ്റംബർ ഒക്ടോബർ നവംബർ ഡിസംബർ".split(" "),
monthsShort:"ജനു. ഫെബ്രു. മാർ. ഏപ്രി. മേയ് ജൂൺ ജൂലൈ. ഓഗ. സെപ്റ്റ. ഒക്ടോ. നവം. ഡിസം.".split(" "),weekdays:"ഞായറാഴ്ച തിങ്കളാഴ്ച ചൊവ്വാഴ്ച ബുധനാഴ്ച വ്യാഴാഴ്ച വെള്ളിയാഴ്ച ശനിയാഴ്ച".split(" "),weekdaysShort:"ഞായർ തിങ്കൾ ചൊവ്വ ബുധൻ വ്യാഴം വെള്ളി ശനി".split(" "),
weekdaysMin:"ഞാ തി ചൊ ബു വ്യാ വെ ശ".split(" "),longDateFormat:{LT:"A h:mm -നു",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, LT",LLLL:"dddd, D MMMM YYYY, LT"},calendar:{sameDay:"[ഇന്ന്] LT",nextDay:"[നാളെ] LT",nextWeek:"dddd, LT",lastDay:"[ഇന്നലെ] LT",lastWeek:"[കഴിഞ്ഞ] dddd, LT",sameElse:"L"},relativeTime:{future:"%s കഴിഞ്ഞ്",past:"%s മുൻപ്",s:"അൽപ നിമിഷങ്ങൾ",m:"ഒരു മിനിറ്റ്",
mm:"%d മിനിറ്റ്",h:"ഒരു മണിക്കൂർ",hh:"%d മണിക്കൂർ",d:"ഒരു ദിവസം",dd:"%d ദിവസം",M:"ഒരു മാസം",MM:"%d മാസം",y:"ഒരു വർഷം",yy:"%d വർഷം"},meridiem:function(a){return 4>a?"രാത്രി":12>a?"രാവിലെ":17>a?"ഉച്ച കഴിഞ്ഞ്":20>a?"വൈകുന്നേരം":"രാത്രി"}})});(function(a){a(i)})(function(a){var c={1:"१",2:"२",3:"३",
4:"४",5:"५",6:"६",7:"à¥",8:"८",9:"९","0":"०"},b={"१":"1","२":"2","३":"3","४":"4","५":"5","६":"6","à¥":"7","८":"8","९":"9","०":"0"};a.lang("mr",{months:"जानेवारी फेब्रुवारी मार्च एप्रिल मे जून जुलै ऑगस्ट सप्टेंबर ऑक्टोबर नोव्हेंबर डिसेंबर".split(" "),monthsShort:"जाने. फेब्रु. मार्च. एप्रि. मे. जून. जुलै. ऑग. सप्टें. ऑक्टो. नोव्हें. डिसें.".split(" "),
weekdays:"रविवार सोमवार मंगळवार बुधवार गुरूवार शुक्रवार शनिवार".split(" "),weekdaysShort:"रवि सोम मंगळ बुध गुरू शुक्र शनि".split(" "),weekdaysMin:"र सो मं बु गु शु श".split(" "),longDateFormat:{LT:"A h:mm वाजता",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, LT",LLLL:"dddd, D MMMM YYYY, LT"},calendar:{sameDay:"[आज] LT",
nextDay:"[उद्या] LT",nextWeek:"dddd, LT",lastDay:"[काल] LT",lastWeek:"[मागील] dddd, LT",sameElse:"L"},relativeTime:{future:"%s नंतर",past:"%s पूर्वी",s:"सेकंद",m:"एक मिनिट",mm:"%d मिनिटे",h:"एक तास",hh:"%d तास",d:"एक दिवस",dd:"%d दिवस",M:"एक महिना",MM:"%d महिने",y:"एक वर्ष",yy:"%d वर्षे"},preparse:function(a){return a.replace(/[१२३४५६à¥à¥®à¥¯à¥¦]/g,
function(a){return b[a]})},postformat:function(a){return a.replace(/\d/g,function(a){return c[a]})},meridiem:function(a){return 4>a?"रात्री":10>a?"सकाळी":17>a?"दुपारी":20>a?"सायंकाळी":"रात्री"},week:{dow:0,doy:6}})});(function(a){a(i)})(function(a){a.lang("ms-my",{months:"Januari Februari Mac April Mei Jun Julai Ogos September Oktober November Disember".split(" "),monthsShort:"Jan Feb Mac Apr Mei Jun Jul Ogs Sep Okt Nov Dis".split(" "),
weekdays:"Ahad Isnin Selasa Rabu Khamis Jumaat Sabtu".split(" "),weekdaysShort:"Ahd Isn Sel Rab Kha Jum Sab".split(" "),weekdaysMin:"Ah Is Sl Rb Km Jm Sb".split(" "),longDateFormat:{LT:"HH.mm",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY [pukul] LT",LLLL:"dddd, D MMMM YYYY [pukul] LT"},meridiem:function(a){return 11>a?"pagi":15>a?"tengahari":19>a?"petang":"malam"},calendar:{sameDay:"[Hari ini pukul] LT",nextDay:"[Esok pukul] LT",nextWeek:"dddd [pukul] LT",lastDay:"[Kelmarin pukul] LT",lastWeek:"dddd [lepas pukul] LT",
sameElse:"L"},relativeTime:{future:"dalam %s",past:"%s yang lepas",s:"beberapa saat",m:"seminit",mm:"%d minit",h:"sejam",hh:"%d jam",d:"sehari",dd:"%d hari",M:"sebulan",MM:"%d bulan",y:"setahun",yy:"%d tahun"},week:{dow:1,doy:7}})});(function(a){a(i)})(function(a){a.lang("nb",{months:"januar februar mars april mai juni juli august september oktober november desember".split(" "),monthsShort:"jan. feb. mars april mai juni juli aug. sep. okt. nov. des.".split(" "),weekdays:"søndag mandag tirsdag onsdag torsdag fredag lørdag".split(" "),
weekdaysShort:"sø. ma. ti. on. to. fr. lø.".split(" "),weekdaysMin:"sø ma ti on to fr lø".split(" "),longDateFormat:{LT:"H.mm",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY [kl.] LT",LLLL:"dddd D. MMMM YYYY [kl.] LT"},calendar:{sameDay:"[i dag kl.] LT",nextDay:"[i morgen kl.] LT",nextWeek:"dddd [kl.] LT",lastDay:"[i går kl.] LT",lastWeek:"[forrige] dddd [kl.] LT",sameElse:"L"},relativeTime:{future:"om %s",past:"for %s siden",s:"noen sekunder",m:"ett minutt",mm:"%d minutter",h:"en time",
hh:"%d timer",d:"en dag",dd:"%d dager",M:"en mÃ¥ned",MM:"%d mÃ¥neder",y:"ett Ã¥r",yy:"%d Ã¥r"},ordinal:"%d.",week:{dow:1,doy:4}})});(function(a){a(i)})(function(a){var b={1:"१",2:"२",3:"३",4:"४",5:"५",6:"६",7:"à¥",8:"८",9:"९","0":"०"},d={"१":"1","२":"2","३":"3","४":"4","५":"5","६":"6","à¥":"7","८":"8","९":"9","०":"0"};a.lang("ne",{months:"जनवरी फेब्रुवरी मार्च अप्रिल मई जुन जुलाई अगष्ट सेप्टेम्बर अक्टोबर नोà¤à¥‡à¤®à¥à¤¬à¤° डिसेम्बर".split(" "),
monthsShort:"जन. फेब्रु. मार्च अप्रि. मई जुन जुलाई. अग. सेप्ट. अक्टो. नोà¤à¥‡. डिसे.".split(" "),weekdays:"आइतबार सोमबार मङ्गलबार बुधबार बिहिबार शुक्रबार शनिबार".split(" "),weekdaysShort:"आइत. सोम. मङ्गल. बुध. बिहि. शुक्र. शनि.".split(" "),weekdaysMin:"आइ. सो. मङ् बु. बि. शु. श.".split(" "),
longDateFormat:{LT:"Aकॠh:mm बजे",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, LT",LLLL:"dddd, D MMMM YYYY, LT"},preparse:function(a){return a.replace(/[१२३४५६à¥à¥®à¥¯à¥¦]/g,function(a){return d[a]})},postformat:function(a){return a.replace(/\d/g,function(a){return b[a]})},meridiem:function(a){return 3>a?"राती":10>a?"बिहान":15>a?"दिउँसो":18>a?"बेलुका":20>a?"साँझ":"राती"},calendar:{sameDay:"[आज] LT",nextDay:"[à¤à¥‹à¤²à¥€] LT",
nextWeek:"[आउँदो] dddd[,] LT",lastDay:"[हिजो] LT",lastWeek:"[गएको] dddd[,] LT",sameElse:"L"},relativeTime:{future:"%sमा",past:"%s अगाडी",s:"केही समय",m:"एक मिनेट",mm:"%d मिनेट",h:"एक घण्टा",hh:"%d घण्टा",d:"एक दिन",dd:"%d दिन",M:"एक महिना",MM:"%d महिना",y:"एक बर्ष",yy:"%d बर्ष"},week:{dow:1,doy:7}})});(function(a){a(i)})(function(a){var b=
"jan. feb. mrt. apr. mei jun. jul. aug. sep. okt. nov. dec.".split(" "),d="jan feb mrt apr mei jun jul aug sep okt nov dec".split(" ");a.lang("nl",{months:"januari februari maart april mei juni juli augustus september oktober november december".split(" "),monthsShort:function(a,e){return/-MMM-/.test(e)?d[a.month()]:b[a.month()]},weekdays:"zondag maandag dinsdag woensdag donderdag vrijdag zaterdag".split(" "),weekdaysShort:"zo. ma. di. wo. do. vr. za.".split(" "),weekdaysMin:"Zo Ma Di Wo Do Vr Za".split(" "),
longDateFormat:{LT:"HH:mm",L:"DD-MM-YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY LT",LLLL:"dddd D MMMM YYYY LT"},calendar:{sameDay:"[Vandaag om] LT",nextDay:"[Morgen om] LT",nextWeek:"dddd [om] LT",lastDay:"[Gisteren om] LT",lastWeek:"[afgelopen] dddd [om] LT",sameElse:"L"},relativeTime:{future:"over %s",past:"%s geleden",s:"een paar seconden",m:"één minuut",mm:"%d minuten",h:"één uur",hh:"%d uur",d:"één dag",dd:"%d dagen",M:"één maand",MM:"%d maanden",y:"één jaar",yy:"%d jaar"},ordinal:function(a){return a+
(1===a||8===a||20<=a?"ste":"de")},week:{dow:1,doy:4}})});(function(a){a(i)})(function(a){a.lang("nn",{months:"januar februar mars april mai juni juli august september oktober november desember".split(" "),monthsShort:"jan feb mar apr mai jun jul aug sep okt nov des".split(" "),weekdays:"sundag måndag tysdag onsdag torsdag fredag laurdag".split(" "),weekdaysShort:"sun mån tys ons tor fre lau".split(" "),weekdaysMin:"su må ty on to fr lø".split(" "),longDateFormat:{LT:"HH:mm",L:"DD.MM.YYYY",LL:"D MMMM YYYY",
LLL:"D MMMM YYYY LT",LLLL:"dddd D MMMM YYYY LT"},calendar:{sameDay:"[I dag klokka] LT",nextDay:"[I morgon klokka] LT",nextWeek:"dddd [klokka] LT",lastDay:"[I går klokka] LT",lastWeek:"[Føregående] dddd [klokka] LT",sameElse:"L"},relativeTime:{future:"om %s",past:"for %s siden",s:"noen sekund",m:"ett minutt",mm:"%d minutt",h:"en time",hh:"%d timar",d:"en dag",dd:"%d dagar",M:"en månad",MM:"%d månader",y:"ett år",yy:"%d år"},ordinal:"%d.",week:{dow:1,doy:4}})});(function(a){a(i)})(function(a){function b(a){return 5>
a%10&&1<a%10&&1!==~~(a/10)}function d(a,e,g){var f=a+" ";switch(g){case "m":return e?"minuta":"minutÄ™";case "mm":return f+(b(a)?"minuty":"minut");case "h":return e?"godzina":"godzinÄ™";case "hh":return f+(b(a)?"godziny":"godzin");case "MM":return f+(b(a)?"miesiÄ…ce":"miesiÄ™cy");case "yy":return f+(b(a)?"lata":"lat")}}var e="styczeÅ„ luty marzec kwiecieÅ„ maj czerwiec lipiec sierpieÅ„ wrzesieÅ„ październik listopad grudzieÅ„".split(" "),f="stycznia lutego marca kwietnia maja czerwca lipca sierpnia wrzeÅnia października listopada grudnia".split(" ");
a.lang("pl",{months:function(a,b){return/D MMMM/.test(b)?f[a.month()]:e[a.month()]},monthsShort:"sty lut mar kwi maj cze lip sie wrz paź lis gru".split(" "),weekdays:"niedziela poniedziaÅek wtorek Åroda czwartek piÄ…tek sobota".split(" "),weekdaysShort:"nie pon wt År czw pt sb".split(" "),weekdaysMin:"N Pn Wt Åšr Cz Pt So".split(" "),longDateFormat:{LT:"HH:mm",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY LT",LLLL:"dddd, D MMMM YYYY LT"},calendar:{sameDay:"[DziÅ o] LT",nextDay:"[Jutro o] LT",
nextWeek:"[W] dddd [o] LT",lastDay:"[Wczoraj o] LT",lastWeek:function(){switch(this.day()){case 0:return"[W zeszÅÄ… niedzielÄ™ o] LT";case 3:return"[W zeszÅÄ… ÅrodÄ™ o] LT";case 6:return"[W zeszÅÄ… sobotÄ™ o] LT";default:return"[W zeszÅy] dddd [o] LT"}},sameElse:"L"},relativeTime:{future:"za %s",past:"%s temu",s:"kilka sekund",m:d,mm:d,h:d,hh:d,d:"1 dzieÅ„",dd:"%d dni",M:"miesiÄ…c",MM:d,y:"rok",yy:d},ordinal:"%d.",week:{dow:1,doy:4}})});(function(a){a(i)})(function(a){a.lang("pt-br",{months:"Janeiro Fevereiro Março Abril Maio Junho Julho Agosto Setembro Outubro Novembro Dezembro".split(" "),
monthsShort:"Jan Fev Mar Abr Mai Jun Jul Ago Set Out Nov Dez".split(" "),weekdays:"Domingo Segunda-feira Terça-feira Quarta-feira Quinta-feira Sexta-feira Sábado".split(" "),weekdaysShort:"Dom Seg Ter Qua Qui Sex Sáb".split(" "),weekdaysMin:"Dom 2ª 3ª 4ª 5ª 6ª Sáb".split(" "),longDateFormat:{LT:"HH:mm",L:"DD/MM/YYYY",LL:"D [de] MMMM [de] YYYY",LLL:"D [de] MMMM [de] YYYY LT",LLLL:"dddd, D [de] MMMM [de] YYYY LT"},calendar:{sameDay:"[Hoje à s] LT",nextDay:"[Amanhã à s] LT",nextWeek:"dddd [à s] LT",
lastDay:"[Ontem à s] LT",lastWeek:function(){return 0===this.day()||6===this.day()?"[Último] dddd [à s] LT":"[Última] dddd [à s] LT"},sameElse:"L"},relativeTime:{future:"em %s",past:"%s atrás",s:"segundos",m:"um minuto",mm:"%d minutos",h:"uma hora",hh:"%d horas",d:"um dia",dd:"%d dias",M:"um mês",MM:"%d meses",y:"um ano",yy:"%d anos"},ordinal:"%dº"})});(function(a){a(i)})(function(a){a.lang("pt",{months:"Janeiro Fevereiro Março Abril Maio Junho Julho Agosto Setembro Outubro Novembro Dezembro".split(" "),
monthsShort:"Jan Fev Mar Abr Mai Jun Jul Ago Set Out Nov Dez".split(" "),weekdays:"Domingo Segunda-feira Terça-feira Quarta-feira Quinta-feira Sexta-feira Sábado".split(" "),weekdaysShort:"Dom Seg Ter Qua Qui Sex Sáb".split(" "),weekdaysMin:"Dom 2ª 3ª 4ª 5ª 6ª Sáb".split(" "),longDateFormat:{LT:"HH:mm",L:"DD/MM/YYYY",LL:"D [de] MMMM [de] YYYY",LLL:"D [de] MMMM [de] YYYY LT",LLLL:"dddd, D [de] MMMM [de] YYYY LT"},calendar:{sameDay:"[Hoje à s] LT",nextDay:"[Amanhã à s] LT",nextWeek:"dddd [à s] LT",
lastDay:"[Ontem à s] LT",lastWeek:function(){return 0===this.day()||6===this.day()?"[Último] dddd [à s] LT":"[Última] dddd [à s] LT"},sameElse:"L"},relativeTime:{future:"em %s",past:"%s atrás",s:"segundos",m:"um minuto",mm:"%d minutos",h:"uma hora",hh:"%d horas",d:"um dia",dd:"%d dias",M:"um mês",MM:"%d meses",y:"um ano",yy:"%d anos"},ordinal:"%dº",week:{dow:1,doy:4}})});(function(a){a(i)})(function(a){a.lang("ro",{months:"Ianuarie Februarie Martie Aprilie Mai Iunie Iulie August Septembrie Octombrie Noiembrie Decembrie".split(" "),
monthsShort:"Ian Feb Mar Apr Mai Iun Iul Aug Sep Oct Noi Dec".split(" "),weekdays:"Duminică Luni Marţi Miercuri Joi Vineri Sâmbătă".split(" "),weekdaysShort:"Dum Lun Mar Mie Joi Vin Sâm".split(" "),weekdaysMin:"Du Lu Ma Mi Jo Vi Sâ".split(" "),longDateFormat:{LT:"H:mm",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY H:mm",LLLL:"dddd, D MMMM YYYY H:mm"},calendar:{sameDay:"[azi la] LT",nextDay:"[mâine la] LT",nextWeek:"dddd [la] LT",lastDay:"[ieri la] LT",lastWeek:"[fosta] dddd [la] LT",sameElse:"L"},
relativeTime:{future:"peste %s",past:"%s în urmă",s:"câteva secunde",m:"un minut",mm:"%d minute",h:"o oră",hh:"%d ore",d:"o zi",dd:"%d zile",M:"o lună",MM:"%d luni",y:"un an",yy:"%d ani"},week:{dow:1,doy:7}})});(function(a){a(i)})(function(a){function b(a,c,d){if("m"===d)return c?"минута":"минуту";c=a+" ";a=+a;d={mm:"минуÑа_минуÑÑ_минуÑ",hh:"час_часа_часов",dd:´ÐµÐ½ÑŒ_дня´Ð½ÐµÐ¹",MM:"месяц_месяца_месяцев",yy:"год_года_леÑ"}[d].split("_");
return c+(1===a%10&&11!==a%100?d[0]:2<=a%10&&4>=a%10&&(10>a%100||20<=a%100)?d[1]:d[2])}a.lang("ru",{months:function(a,b){return{nominative:"январь февраль март апрель май июнь июль август сентябрь октябрь ноябрь декабрь".split(" "),accusative:"января февраля марта апреля мая июня июля августа сентября октября ноября декабря".split(" ")}[/D[oD]? *MMMM?/.test(b)?
"accusative":"nominative"][a.month()]},monthsShort:function(a,b){return{nominative:"янв фев мар апр май июнь июль авг сен окт ноя дек".split(" "),accusative:"янв фев мар апр мая июня июля авг сен окт ноя дек".split(" ")}[/D[oD]? *MMMM?/.test(b)?"accusative":"nominative"][a.month()]},weekdays:function(a,b){return{nominative:"воскресенье понедельник вторник среда четверг пятница суббота".split(" "),
accusative:"воскресенье понедельник вторник среду четверг пятницу субботу".split(" ")}[/\[ ?[Вв] ?(?:прошлую|следующую)? ?\] ?dddd/.test(b)?"accusative":"nominative"][a.day()]},weekdaysShort:"вск пнд втр срд чтв птн сбт".split(" "),weekdaysMin:"вс пн вт ср чт пт сб".split(" "),longDateFormat:{LT:"HH:mm",L:"DD.MM.YYYY",LL:"D MMMM YYYY г.",LLL:"D MMMM YYYY г., LT",LLLL:"dddd, D MMMM YYYY г., LT"},
calendar:{sameDay:"[Сегодня в] LT",nextDay:"[Завтра в] LT",lastDay:"[Вчера в] LT",nextWeek:function(){return 2===this.day()?"[Во] dddd [в] LT":"[В] dddd [в] LT"},lastWeek:function(){switch(this.day()){case 0:return"[В прошлое] dddd [в] LT";case 1:case 2:case 4:return"[В прошлый] dddd [в] LT";case 3:case 5:case 6:return"[В прошлую] dddd [в] LT"}},sameElse:"L"},relativeTime:{future:"через %s",past:"%s назад",s:"несколько секунд",
m:b,mm:b,h:"час",hh:b,d:"день",dd:b,M:"месяц",MM:b,y:"год",yy:b},ordinal:function(a,b){switch(b){case "M":case "d":case "DDD":return a+"-й";case "D":return a+"-го";case "w":case "W":return a+"-я";default:return a}},week:{dow:1,doy:7}})});(function(a){a(i)})(function(a){function b(a,c,d,e){var f=a+" ";switch(d){case "s":return c||e?"pár sekúnd":"pár sekundami";case "m":return c?"minúta":e?"minútu":"minútou";case "mm":return c||e?f+(1<a&&5>a?"minúty":"minút"):f+"minútami";
case "h":return c?"hodina":e?"hodinu":"hodinou";case "hh":return c||e?f+(1<a&&5>a?"hodiny":"hodÃn"):f+"hodinami";case "d":return c||e?"deň":"dňom";case "dd":return c||e?f+(1<a&&5>a?"dni":"dnÃ"):f+"dňami";case "M":return c||e?"mesiac":"mesiacom";case "MM":return c||e?f+(1<a&&5>a?"mesiace":"mesiacov"):f+"mesiacmi";case "y":return c||e?"rok":"rokom";case "yy":return c||e?f+(1<a&&5>a?"roky":"rokov"):f+"rokmi"}}var d="január február marec aprÃl máj jún júl august september október november december".split(" "),
e="jan feb mar apr máj jún júl aug sep okt nov dec".split(" ");a.lang("sk",{months:d,monthsShort:e,monthsParse:function(a,b){var c,d=[];for(c=0;12>c;c++)d[c]=RegExp("^"+a[c]+"$|^"+b[c]+"$","i");return d}(d,e),weekdays:"nedeľa pondelok utorok streda štvrtok piatok sobota".split(" "),weekdaysShort:"ne po ut st št pi so".split(" "),weekdaysMin:"ne po ut st št pi so".split(" "),longDateFormat:{LT:"H:mm",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY LT",LLLL:"dddd D. MMMM YYYY LT"},calendar:{sameDay:"[dnes o] LT",
nextDay:"[zajtra o] LT",nextWeek:function(){switch(this.day()){case 0:return"[v nedeľu o] LT";case 1:case 2:return"[v] dddd [o] LT";case 3:return"[v stredu o] LT";case 4:return"[vo štvrtok o] LT";case 5:return"[v piatok o] LT";case 6:return"[v sobotu o] LT"}},lastDay:"[včera o] LT",lastWeek:function(){switch(this.day()){case 0:return"[minulú nedeľu o] LT";case 1:case 2:return"[minulý] dddd [o] LT";case 3:return"[minulú stredu o] LT";case 4:case 5:return"[minulý] dddd [o] LT";case 6:return"[minulú sobotu o] LT"}},
sameElse:"L"},relativeTime:{future:"za %s",past:"pred %s",s:b,m:b,mm:b,h:b,hh:b,d:b,dd:b,M:b,MM:b,y:b,yy:b},ordinal:"%d.",week:{dow:1,doy:4}})});(function(a){a(i)})(function(a){function b(a,c,d){var e=a+" ";switch(d){case "m":return c?"ena minuta":"eno minuto";case "mm":return 1===a?e+"minuta":2===a?e+"minuti":3===a||4===a?e+"minute":e+"minut";case "h":return c?"ena ura":"eno uro";case "hh":return 1===a?e+"ura":2===a?e+"uri":3===a||4===a?e+"ure":e+"ur";case "dd":return 1===a?e+"dan":e+"dni";case "MM":return 1===
a?e+"mesec":2===a?e+"meseca":3===a||4===a?e+"mesece":e+"mesecev";case "yy":return 1===a?e+"leto":2===a?e+"leti":3===a||4===a?e+"leta":e+"let"}}a.lang("sl",{months:"januar februar marec april maj junij julij avgust september oktober november december".split(" "),monthsShort:"jan. feb. mar. apr. maj. jun. jul. avg. sep. okt. nov. dec.".split(" "),weekdays:"nedelja ponedeljek torek sreda četrtek petek sobota".split(" "),weekdaysShort:"ned. pon. tor. sre. čet. pet. sob.".split(" "),weekdaysMin:"ne po to sr če pe so".split(" "),
longDateFormat:{LT:"H:mm",L:"DD. MM. YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY LT",LLLL:"dddd, D. MMMM YYYY LT"},calendar:{sameDay:"[danes ob] LT",nextDay:"[jutri ob] LT",nextWeek:function(){switch(this.day()){case 0:return"[v] [nedeljo] [ob] LT";case 3:return"[v] [sredo] [ob] LT";case 6:return"[v] [soboto] [ob] LT";case 1:case 2:case 4:case 5:return"[v] dddd [ob] LT"}},lastDay:"[včeraj ob] LT",lastWeek:function(){switch(this.day()){case 0:case 3:case 6:return"[prejšnja] dddd [ob] LT";case 1:case 2:case 4:case 5:return"[prejšnji] dddd [ob] LT"}},
sameElse:"L"},relativeTime:{future:ez %s",past:"%s nazaj",s:"nekaj sekund",m:b,mm:b,h:b,hh:b,d:"en dan",dd:b,M:"en mesec",MM:b,y:"eno leto",yy:b},ordinal:"%d.",week:{dow:1,doy:7}})});(function(a){a(i)})(function(a){a.lang("sq",{months:"Janar Shkurt Mars Prill Maj Qershor Korrik Gusht Shtator Tetor Nëntor Dhjetor".split(" "),monthsShort:"Jan Shk Mar Pri Maj Qer Kor Gus Sht Tet Nën Dhj".split(" "),weekdays:"E Diel;E Hënë;E Marte;E Mërkure;E Enjte;E Premte;E Shtunë".split(";"),weekdaysShort:"Die Hën Mar Mër Enj Pre Sht".split(" "),
weekdaysMin:"D H Ma Më E P Sh".split(" "),longDateFormat:{LT:"HH:mm",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY LT",LLLL:"dddd, D MMMM YYYY LT"},calendar:{sameDay:"[Sot në] LT",nextDay:"[Neser në] LT",nextWeek:"dddd [në] LT",lastDay:"[Dje në] LT",lastWeek:"dddd [e kaluar në] LT",sameElse:"L"},relativeTime:{future:"në %s",past:"%s me parë",s:"disa seconda",m:"një minut",mm:"%d minutea",h:"një orë",hh:"%d orë",d:"një ditë",dd:"%d ditë",M:"një muaj",MM:"%d muaj",y:"një vit",yy:"%d vite"},
ordinal:"%d.",week:{dow:1,doy:4}})});(function(a){a(i)})(function(a){a.lang("sv",{months:"januari februari mars april maj juni juli augusti september oktober november december".split(" "),monthsShort:"jan feb mar apr maj jun jul aug sep okt nov dec".split(" "),weekdays:"söndag måndag tisdag onsdag torsdag fredag lördag".split(" "),weekdaysShort:"sön mån tis ons tor fre lör".split(" "),weekdaysMin:"sö må ti on to fr lö".split(" "),longDateFormat:{LT:"HH:mm",L:"YYYY-MM-DD",LL:"D MMMM YYYY",
LLL:"D MMMM YYYY LT",LLLL:"dddd D MMMM YYYY LT"},calendar:{sameDay:"[Idag] LT",nextDay:"[Imorgon] LT",lastDay:"[Igår] LT",nextWeek:"dddd LT",lastWeek:"[Förra] dddd[en] LT",sameElse:"L"},relativeTime:{future:"om %s",past:"för %s sedan",s:"några sekunder",m:"en minut",mm:"%d minuter",h:"en timme",hh:"%d timmar",d:"en dag",dd:"%d dagar",M:"en månad",MM:"%d månader",y:"ett år",yy:"%d år"},ordinal:function(a){var b=a%10;return a+(1===~~(a%100/10)?"e":1===b?"a":2===b?"a":"e")},week:{dow:1,doy:4}})});
(function(a){a(i)})(function(a){a.lang("th",{months:"มกราคม;กุมภาพันธ์;มีนาคม;เมษายน;พฤษภาคม;มิถุนายน;กรกฎาคม;สิงหาคม;กันยายน;ตุลาคม;พฤศจิกายน;ธันวาคม".split(";"),monthsShort:"มกรา;กุมภา;มีนา;เมษา;พฤษภา;มิถุนา;กรกฎา;สิงหา;กันยา;ตุลา;พฤศจิกา;ธันวา".split(";"),
weekdays:"à¸à¸²à¸—ิตย์ จันทร์ à¸à¸±à¸‡à¸„าร พุธ พฤหัสบดี ศุกร์ เสาร์".split(" "),weekdaysShort:"à¸à¸²à¸—ิตย์ จันทร์ à¸à¸±à¸‡à¸„าร พุธ พฤหัส ศุกร์ เสาร์".split(" "),weekdaysMin:"à¸à¸². จ. à¸. พ. พฤ. ศ. ส.".split(" "),longDateFormat:{LT:"H นาฬิกา m นาที",L:"YYYY/MM/DD",LL:"D MMMM YYYY",LLL:"D MMMM YYYY เวลา LT",LLLL:¸§à¸±à¸™ddddที่ D MMMM YYYY เวลา LT"},
meridiem:function(a){return 12>a?"ก่à¸à¸™à¹€à¸—ี่ยง":"หลังเที่ยง"},calendar:{sameDay:"[วันนี้ เวลา] LT",nextDay:"[พรุ่งนี้ เวลา] LT",nextWeek:"dddd[หน้า เวลา] LT",lastDay:"[เมื่à¸à¸§à¸²à¸™à¸™à¸µà¹‰ เวลา] LT",lastWeek:"[วัน]dddd[ที่แล้ว เวลา] LT",sameElse:"L"},relativeTime:{future:"à¸à¸µà¸ %s",past:"%sที่แล้ว",s:"ไม่กี่วินาที",
m:"1 นาที",mm:"%d นาที",h:"1 ชั่วโมง",hh:"%d ชั่วโมง",d:"1 วัน",dd:"%d วัน",M:"1 เดืà¸à¸™",MM:"%d เดืà¸à¸™",y:"1 ปี",yy:"%d ปี"}})});(function(a){a(i)})(function(a){var b={1:"'inci",5:"'inci",8:"'inci",70:"'inci",80:"'inci",2:"'nci",7:"'nci",20:"'nci",50:"'nci",3:"'üncü",4:"'üncü",100:"'üncü",6:"'ncı",9:"'uncu",10:"'uncu",30:"'uncu",60:"'ıncı",90:"'ıncı"};a.lang("tr",{months:"Ocak Åžubat Mart Nisan Mayıs Haziran Temmuz AÄŸustos Eylül Ekim Kasım Aralık".split(" "),
monthsShort:"Oca Şub Mar Nis May Haz Tem Ağu Eyl Eki Kas Ara".split(" "),weekdays:"Pazar Pazartesi Salı Çarşamba Perşembe Cuma Cumartesi".split(" "),weekdaysShort:"Paz Pts Sal Çar Per Cum Cts".split(" "),weekdaysMin:"Pz Pt Sa Ça Pe Cu Ct".split(" "),longDateFormat:{LT:"HH:mm",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY LT",LLLL:"dddd, D MMMM YYYY LT"},calendar:{sameDay:"[bugün saat] LT",nextDay:"[yarın saat] LT",nextWeek:"[haftaya] dddd [saat] LT",lastDay:"[dün] LT",lastWeek:"[geçen hafta] dddd [saat] LT",
sameElse:"L"},relativeTime:{future:"%s sonra",past:"%s önce",s:"birkaç saniye",m:"bir dakika",mm:"%d dakika",h:"bir saat",hh:"%d saat",d:"bir gün",dd:"%d gün",M:"bir ay",MM:"%d ay",y:"bir yıl",yy:"%d yıl"},ordinal:function(a){if(0===a)return a+"'ıncı";var d=a%10;return a+(b[d]||b[a%100-d]||b[100<=a?100:null])},week:{dow:1,doy:7}})});(function(a){a(i)})(function(a){a.lang("tzm-la",{months:"innayr brˤayrˤ marˤsˤ ibrir mayyw ywnyw ywlywz ɣwšt šwtanbir ktˤwbrˤ nwwanbir dwjnbir".split(" "),
monthsShort:"innayr brˤayrˤ marˤsˤ ibrir mayyw ywnyw ywlywz ɣwšt šwtanbir ktˤwbrˤ nwwanbir dwjnbir".split(" "),weekdays:"asamas aynas asinas akras akwas asimwas asiḍyas".split(" "),weekdaysShort:"asamas aynas asinas akras akwas asimwas asiḍyas".split(" "),weekdaysMin:"asamas aynas asinas akras akwas asimwas asiḍyas".split(" "),longDateFormat:{LT:"HH:mm",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY LT",LLLL:"dddd D MMMM YYYY LT"},calendar:{sameDay:"[asdkh g] LT",nextDay:"[aska g] LT",
nextWeek:"dddd [g] LT",lastDay:"[assant g] LT",lastWeek:"dddd [g] LT",sameElse:"L"},relativeTime:{future:"dadkh s yan %s",past:"yan %s",s:"imik",m:"minuḍ",mm:"%d minuḍ",h:"saÉa",hh:"%d tassaÉin",d:"ass",dd:"%d ossan",M:"ayowr",MM:"%d iyyirn",y:"asgas",yy:"%d isgasn"},week:{dow:6,doy:12}})});(function(a){a(i)})(function(a){a.lang("tzm",{months:"ⵉⵏⵏⴰⵢⵔ ⴱⵕⴰⵢⵕ ⵎⴰⵕⵚ ⵉⴱⵔⵉⵔ ⵎⴰⵢⵢⵓ ⵢⵓⵏⵢⵓ ⵢⵓⵍⵢⵓⵣ ⵖⵓⵛⵜ ⵛⵓⵜⴰⵏⴱⵉⵔ ⴽⵟⵓⴱⵕ ⵏⵓⵡⴰⵏⴱⵉⵔ ⴷⵓⵊⵏⴱⵉⵔ".split(" "),
monthsShort:"ⵉⵏⵏⴰⵢⵔ ⴱⵕⴰⵢⵕ ⵎⴰⵕⵚ ⵉⴱⵔⵉⵔ ⵎⴰⵢⵢⵓ ⵢⵓⵏⵢⵓ ⵢⵓⵍⵢⵓⵣ ⵖⵓⵛⵜ ⵛⵓⵜⴰⵏⴱⵉⵔ ⴽⵟⵓⴱⵕ ⵏⵓⵡⴰⵏⴱⵉⵔ ⴷⵓⵊⵏⴱⵉⵔ".split(" "),weekdays:"ⴰⵙⴰⵎⴰⵙ ⴰⵢⵏⴰⵙ ⴰⵙⵉⵏⴰⵙ ⴰⴽⵔⴰⵙ ⴰⴽⵡⴰⵙ ⴰⵙⵉⵎⵡⴰⵙ ⴰⵙⵉⴹⵢⴰⵙ".split(" "),weekdaysShort:"ⴰⵙⴰⵎⴰⵙ ⴰⵢⵏⴰⵙ ⴰⵙⵉⵏⴰⵙ ⴰⴽⵔⴰⵙ ⴰⴽⵡⴰⵙ ⴰⵙⵉⵎⵡⴰⵙ ⴰⵙⵉⴹⵢⴰⵙ".split(" "),
weekdaysMin:"ⴰⵙⴰⵎⴰⵙ ⴰⵢⵏⴰⵙ ⴰⵙⵉⵏⴰⵙ ⴰⴽⵔⴰⵙ ⴰⴽⵡⴰⵙ ⴰⵙⵉⵎⵡⴰⵙ ⴰⵙⵉⴹⵢⴰⵙ".split(" "),longDateFormat:{LT:"HH:mm",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY LT",LLLL:"dddd D MMMM YYYY LT"},calendar:{sameDay:"[ⴰⵙⴷⵅ ⴴ] LT",nextDay:"[ⴰⵙⴽⴰ ⴴ] LT",nextWeek:"dddd [ⴴ] LT",lastDay:"[ⴰⵚⴰⵏⵜ ⴴ] LT",lastWeek:"dddd [ⴴ] LT",sameElse:"L"},relativeTime:{future:"ⴷⴰⴷⵅ ⵙ ⵢⴰⵏ %s",past:"ⵢⴰⵏ %s",
s:"ⵉⵎⵉⴽ",m:"ⵎⵉⵏⵓⴺ",mm:"%d ⵎⵉⵏⵓⴺ",h:"ⵙⴰⵄⴰ",hh:"%d ⵜⴰⵙⵙⴰⵄⵉⵏ",d:"ⴰⵙⵙ",dd:"%d oⵙⵙⴰⵏ",M:´°âµ¢oⵓⵔ",MM:"%d ⵉⵢⵢⵉⵔⵏ",y:"ⴰⵙⴳⴰⵙ",yy:"%d ⵉⵙⴳⴰⵙⵏ"},week:{dow:6,doy:12}})});(function(a){a(i)})(function(a){function b(a,c,d){if("m"===d)return c?"хвилина":"хвилину";if("h"===d)return c?"година":"годину";c=a+" ";a=+a;d={mm:"хвилина_хвилини_хвилин",hh:"година_години_годин",
dd:´ÐµÐ½ÑŒ_днѴнÑв",MM:"мÑсяць_мÑсяцÑ_мÑсяцÑв",yy:"Ñ€Ñк_роки_рокÑв"}[d].split("_");return c+(1===a%10&&11!==a%100?d[0]:2<=a%10&&4>=a%10&&(10>a%100||20<=a%100)?d[1]:d[2])}function d(a){return function(){return a+"о"+(11===this.hours()?"б":"")+"] LT"}}a.lang("uk",{months:function(a,b){return{nominative:"січень лютий березень квітень травень червень липень серпень вересень жовтень листопад грудень".split(" "),
accusative:"січня лютого березня квітня травня червня липня серпня вересня жовтня листопада грудня".split(" ")}[/D[oD]? *MMMM?/.test(b)?"accusative":"nominative"][a.month()]},monthsShort:"січ лют бер квіт трав черв лип серп вер жовт лист груд".split(" "),weekdays:function(a,b){return{nominative:"неділя понеділок вівторок середа четвер п’ятниця субота".split(" "),
accusative:"неділю понеділок вівторок середу четвер п’ятницю суботу".split(" "),genitive:"неділі понеділка вівторка середи четверга п’ятниці суботи".split(" ")}[/(\[[ВвУу]\]) ?dddd/.test(b)?"accusative":/\[?(?:минулої|наступної)? ?\] ?dddd/.test(b)?"genitive":"nominative"][a.day()]},weekdaysShort:"нед пон вів сер чет п’ят суб".split(" "),weekdaysMin:"нд пн вт ср чт пт сб".split(" "),
longDateFormat:{LT:"HH:mm",L:"DD.MM.YYYY",LL:"D MMMM YYYY р.",LLL:"D MMMM YYYY р., LT",LLLL:"dddd, D MMMM YYYY р., LT"},calendar:{sameDay:d("[Сьогодні "),nextDay:d("[Завтра "),lastDay:d("[Вчора "),nextWeek:d("[У] dddd ["),lastWeek:function(){switch(this.day()){case 0:case 3:case 5:case 6:return d("[Минулої] dddd [").call(this);case 1:case 2:case 4:return d("[Минулого] dddd [").call(this)}},sameElse:"L"},relativeTime:{future:"за %s",past:"%s тому",s:"декілька секунд",
m:b,mm:b,h:"годину",hh:b,d:"день",dd:b,M:"місяць",MM:b,y:"рік",yy:b},ordinal:function(a,b){switch(b){case "M":case "d":case "DDD":case "w":case "W":return a+"-й";case "D":return a+"-го";default:return a}},week:{dow:1,doy:7}})});(function(a){a(i)})(function(a){a.lang("zh-cn",{months:"一月 二月 三月 四月 五月 å…月 七月 八月 九月 十月 十一月 十二月".split(" "),monthsShort:"1月 2月 3月 4月 5月 6月 7月 8月 9月 10月 11月 12月".split(" "),weekdays:"星期日 星期一 星期二 星期三 星期四 星期五 星期å…".split(" "),
weekdaysShort:"周日 周一 周二 周三 周四 周五 周å…".split(" "),weekdaysMin:"æ—¥ 一 二 三 å›› 五 å…".split(" "),longDateFormat:{LT:"Ahç¹mm",L:"YYYYå¹´MMMDæ—¥",LL:"YYYYå¹´MMMDæ—¥",LLL:"YYYYå¹´MMMDæ—¥LT",LLLL:"YYYYå¹´MMMDæ—¥ddddLT",l:"YYYYå¹´MMMDæ—¥",ll:"YYYYå¹´MMMDæ—¥",lll:"YYYYå¹´MMMDæ—¥LT",llll:"YYYYå¹´MMMDæ—¥ddddLT"},meridiem:function(a,b){return 9>a?"早上":11>a&&30>b?"上午":13>a&&30>b?"ä¸åˆ":18>a?"下午":"晚上"},calendar:{sameDay:"[今天]LT",nextDay:"[明天]LT",nextWeek:"[下]ddddLT",
lastDay:"[昨天]LT",lastWeek:"[上]ddddLT",sameElse:"L"},ordinal:function(a,b){switch(b){case "d":case "D":case "DDD":return a+"æ—¥";case "M":return a+"月";case "w":case "W":return a+"周";default:return a}},relativeTime:{future:"%s内",past:"%s前",s:"å‡ ç§’",m:"1分éŸ",mm:"%d分éŸ",h:"1小时",hh:"%d小时",d:"1天",dd:"%d天",M:"1个月",MM:"%d个月",y:"1å¹´",yy:"%då¹´"}})});(function(a){a(i)})(function(a){a.lang("zh-tw",{months:"一月 二月 三月 四月 五月 å…月 七月 八月 九月 十月 十一月 十二月".split(" "),
monthsShort:"1月 2月 3月 4月 5月 6月 7月 8月 9月 10月 11月 12月".split(" "),weekdays:"星期日 星期一 星期二 星期三 星期四 星期五 星期å…".split(" "),weekdaysShort:"週日 週一 週二 週三 週四 週五 週å…".split(" "),weekdaysMin:"æ—¥ 一 二 三 å›› 五 å…".split(" "),longDateFormat:{LT:"Ah點mm",L:"YYYYå¹´MMMDæ—¥",LL:"YYYYå¹´MMMDæ—¥",LLL:"YYYYå¹´MMMDæ—¥LT",LLLL:"YYYYå¹´MMMDæ—¥ddddLT",l:"YYYYå¹´MMMDæ—¥",ll:"YYYYå¹´MMMDæ—¥",lll:"YYYYå¹´MMMDæ—¥LT",llll:"YYYYå¹´MMMDæ—¥ddddLT"},
meridiem:function(a,b){return 9>a?"早上":11>a&&30>b?"上午":13>a&&30>b?"ä¸åˆ":18>a?"下午":"晚上"},calendar:{sameDay:"[今天]LT",nextDay:"[明天]LT",nextWeek:"[下]ddddLT",lastDay:"[昨天]LT",lastWeek:"[上]ddddLT",sameElse:"L"},ordinal:function(a,b){switch(b){case "d":case "D":case "DDD":return a+"æ—¥";case "M":return a+"月";case "w":case "W":return a+"週";default:return a}},relativeTime:{future:"%så…§",past:"%s前",s:"幾秒",m:"一分鐘",mm:"%d分鐘",h:"一小時",hh:"%d小æ™",d:"一天",
dd:"%d天",M:"一個月",MM:"%då€æœˆ",y:"一年",yy:"%då¹´"}})});i.lang("en");N&&(module.exports=i);"undefined"===typeof ender&&(this.moment=i);"function"===typeof define&&define.amd&&define("moment",[],function(){return i})}).call(this);
var LZString={_keyStr:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",_f:String.fromCharCode,compressToBase64:function(e){if(null==e)return"";for(var b="",d,h,f,r,l,p,j=0,e=this.compress(e);j<2*e.length;)0==j%2?(d=e.charCodeAt(j/2)>>8,h=e.charCodeAt(j/2)&255,f=j/2+1<e.length?e.charCodeAt(j/2+1)>>8:NaN):(d=e.charCodeAt((j-1)/2)&255,(j+1)/2<e.length?(h=e.charCodeAt((j+1)/2)>>8,f=e.charCodeAt((j+1)/2)&255):h=f=NaN),j+=3,r=d>>2,d=(d&3)<<4|h>>4,l=(h&15)<<2|f>>6,p=f&63,isNaN(h)?l=p=
64:isNaN(f)&&(p=64),b=b+this._keyStr.charAt(r)+this._keyStr.charAt(d)+this._keyStr.charAt(l)+this._keyStr.charAt(p);return b},decompressFromBase64:function(e){if(null==e)return"";for(var b="",d=0,h,f,r,l,p,j,s=0,o=this._f,e=e.replace(/[^A-Za-z0-9\+\/\=]/g,"");s<e.length;)f=this._keyStr.indexOf(e.charAt(s++)),r=this._keyStr.indexOf(e.charAt(s++)),p=this._keyStr.indexOf(e.charAt(s++)),j=this._keyStr.indexOf(e.charAt(s++)),f=f<<2|r>>4,r=(r&15)<<4|p>>2,l=(p&3)<<6|j,0==d%2?(h=f<<8,64!=p&&(b+=o(h|r)),64!=
j&&(h=l<<8)):(b+=o(h|f),64!=p&&(h=r<<8),64!=j&&(b+=o(h|l))),d+=3;return this.decompress(b)},compressToUTF16:function(e){if(null==e)return"";var b="",d,h,f,r=0,l=this._f,e=this.compress(e);for(d=0;d<e.length;d++)switch(h=e.charCodeAt(d),r++){case 0:b+=l((h>>1)+32);f=(h&1)<<14;break;case 1:b+=l(f+(h>>2)+32);f=(h&3)<<13;break;case 2:b+=l(f+(h>>3)+32);f=(h&7)<<12;break;case 3:b+=l(f+(h>>4)+32);f=(h&15)<<11;break;case 4:b+=l(f+(h>>5)+32);f=(h&31)<<10;break;case 5:b+=l(f+(h>>6)+32);f=(h&63)<<9;break;case 6:b+=
l(f+(h>>7)+32);f=(h&127)<<8;break;case 7:b+=l(f+(h>>8)+32);f=(h&255)<<7;break;case 8:b+=l(f+(h>>9)+32);f=(h&511)<<6;break;case 9:b+=l(f+(h>>10)+32);f=(h&1023)<<5;break;case 10:b+=l(f+(h>>11)+32);f=(h&2047)<<4;break;case 11:b+=l(f+(h>>12)+32);f=(h&4095)<<3;break;case 12:b+=l(f+(h>>13)+32);f=(h&8191)<<2;break;case 13:b+=l(f+(h>>14)+32);f=(h&16383)<<1;break;case 14:b+=l(f+(h>>15)+32,(h&32767)+32),r=0}return b+l(f+32)},decompressFromUTF16:function(e){if(null==e)return"";for(var b="",d,h,f=0,r=0,l=this._f;r<
e.length;){h=e.charCodeAt(r)-32;switch(f++){case 0:d=h<<1;break;case 1:b+=l(d|h>>14);d=(h&16383)<<2;break;case 2:b+=l(d|h>>13);d=(h&8191)<<3;break;case 3:b+=l(d|h>>12);d=(h&4095)<<4;break;case 4:b+=l(d|h>>11);d=(h&2047)<<5;break;case 5:b+=l(d|h>>10);d=(h&1023)<<6;break;case 6:b+=l(d|h>>9);d=(h&511)<<7;break;case 7:b+=l(d|h>>8);d=(h&255)<<8;break;case 8:b+=l(d|h>>7);d=(h&127)<<9;break;case 9:b+=l(d|h>>6);d=(h&63)<<10;break;case 10:b+=l(d|h>>5);d=(h&31)<<11;break;case 11:b+=l(d|h>>4);d=(h&15)<<12;break;
case 12:b+=l(d|h>>3);d=(h&7)<<13;break;case 13:b+=l(d|h>>2);d=(h&3)<<14;break;case 14:b+=l(d|h>>1);d=(h&1)<<15;break;case 15:b+=l(d|h),f=0}r++}return this.decompress(b)},compress:function(e){if(null==e)return"";var b,d,h={},f={},r="",l="",p="",j=2,s=3,o=2,q="",n=0,m=0,t,u=this._f;for(t=0;t<e.length;t+=1)if(r=e.charAt(t),Object.prototype.hasOwnProperty.call(h,r)||(h[r]=s++,f[r]=!0),l=p+r,Object.prototype.hasOwnProperty.call(h,l))p=l;else{if(Object.prototype.hasOwnProperty.call(f,p)){if(256>p.charCodeAt(0)){for(b=
0;b<o;b++)n<<=1,15==m?(m=0,q+=u(n),n=0):m++;d=p.charCodeAt(0);for(b=0;8>b;b++)n=n<<1|d&1,15==m?(m=0,q+=u(n),n=0):m++,d>>=1}else{d=1;for(b=0;b<o;b++)n=n<<1|d,15==m?(m=0,q+=u(n),n=0):m++,d=0;d=p.charCodeAt(0);for(b=0;16>b;b++)n=n<<1|d&1,15==m?(m=0,q+=u(n),n=0):m++,d>>=1}j--;0==j&&(j=Math.pow(2,o),o++);delete f[p]}else{d=h[p];for(b=0;b<o;b++)n=n<<1|d&1,15==m?(m=0,q+=u(n),n=0):m++,d>>=1}j--;0==j&&(j=Math.pow(2,o),o++);h[l]=s++;p=""+r}if(""!==p){if(Object.prototype.hasOwnProperty.call(f,p)){if(256>p.charCodeAt(0)){for(b=
0;b<o;b++)n<<=1,15==m?(m=0,q+=u(n),n=0):m++;d=p.charCodeAt(0);for(b=0;8>b;b++)n=n<<1|d&1,15==m?(m=0,q+=u(n),n=0):m++,d>>=1}else{d=1;for(b=0;b<o;b++)n=n<<1|d,15==m?(m=0,q+=u(n),n=0):m++,d=0;d=p.charCodeAt(0);for(b=0;16>b;b++)n=n<<1|d&1,15==m?(m=0,q+=u(n),n=0):m++,d>>=1}j--;0==j&&(j=Math.pow(2,o),o++);delete f[p]}else{d=h[p];for(b=0;b<o;b++)n=n<<1|d&1,15==m?(m=0,q+=u(n),n=0):m++,d>>=1}j--;0==j&&(Math.pow(2,o),o++)}d=2;for(b=0;b<o;b++)n=n<<1|d&1,15==m?(m=0,q+=u(n),n=0):m++,d>>=1;for(;;)if(n<<=1,15==
m){q+=u(n);break}else m++;return q},decompress:function(e){if(null==e)return"";for(var b=[],d=4,h=4,f=3,r="",l="",p,j,s,o,q,n=this._f,m=e.charCodeAt(0),t=32768,u=1,l=0;3>l;l+=1)b[l]=l;r=0;s=Math.pow(2,2);for(o=1;o!=s;)j=m&t,t>>=1,0==t&&(t=32768,m=e.charCodeAt(u++)),r|=(0<j?1:0)*o,o<<=1;switch(r){case 0:r=0;s=Math.pow(2,8);for(o=1;o!=s;)j=m&t,t>>=1,0==t&&(t=32768,m=e.charCodeAt(u++)),r|=(0<j?1:0)*o,o<<=1;q=n(r);break;case 1:r=0;s=Math.pow(2,16);for(o=1;o!=s;)j=m&t,t>>=1,0==t&&(t=32768,m=e.charCodeAt(u++)),
r|=(0<j?1:0)*o,o<<=1;q=n(r);break;case 2:return""}for(p=l=b[3]=q;;){r=0;s=Math.pow(2,f);for(o=1;o!=s;)j=m&t,t>>=1,0==t&&(t=32768,m=e.charCodeAt(u++)),r|=(0<j?1:0)*o,o<<=1;switch(q=r){case 0:r=0;s=Math.pow(2,8);for(o=1;o!=s;)j=m&t,t>>=1,0==t&&(t=32768,m=e.charCodeAt(u++)),r|=(0<j?1:0)*o,o<<=1;b[h++]=n(r);q=h-1;d--;break;case 1:r=0;s=Math.pow(2,16);for(o=1;o!=s;)j=m&t,t>>=1,0==t&&(t=32768,m=e.charCodeAt(u++)),r|=(0<j?1:0)*o,o<<=1;b[h++]=n(r);q=h-1;d--;break;case 2:return l}0==d&&(d=Math.pow(2,f),f++);
__whitespace={" ":!0,"\t":!0,"\n":!0," ":!0,"\r":!0};
difflib={defaultJunkFunction:function(e){return e in __whitespace},stripLinebreaks:function(e){return e.replace(/^[\n\r]*|[\n\r]*$/g,"")},stringAsLines:function(e){for(var b=e.indexOf("\n"),d=e.indexOf("\r"),e=e.split(-1<b&&-1<d||0>d?"\n":"\r"),b=0;b<e.length;b++)e[b]=difflib.stripLinebreaks(e[b]);return e},__reduce:function(e,b,d){if(null!=d)var h=0;else if(b)d=b[0],h=1;else return null;for(;h<b.length;h++)d=e(d,b[h]);return d},__ntuplecomp:function(e,b){for(var d=Math.max(e.length,b.length),h=0;h<
d;h++){if(e[h]<b[h])return-1;if(e[h]>b[h])return 1}return e.length==b.length?0:e.length<b.length?-1:1},__calculate_ratio:function(e,b){return b?2*e/b:1},__isindict:function(e){return function(b){return b in e}},__dictget:function(e,b,d){return b in e?e[b]:d},SequenceMatcher:function(e,b,d){this.set_seqs=function(b,f){this.set_seq1(b);this.set_seq2(f)};this.set_seq1=function(b){b!=this.a&&(this.a=b,this.matching_blocks=this.opcodes=null)};this.set_seq2=function(b){b!=this.b&&(this.b=b,this.matching_blocks=
this.opcodes=this.fullbcount=null,this.__chain_b())};this.__chain_b=function(){for(var b=this.b,f=b.length,d=this.b2j={},l={},e=0;e<b.length;e++){var j=b[e];if(j in d){var s=d[j];200<=f&&100*s.length>f?(l[j]=1,delete d[j]):s.push(e)}else d[j]=[e]}for(j in l)delete d[j];b=this.isjunk;f={};if(b){for(j in l)b(j)&&(f[j]=1,delete l[j]);for(j in d)b(j)&&(f[j]=1,delete d[j])}this.isbjunk=difflib.__isindict(f);this.isbpopular=difflib.__isindict(l)};this.find_longest_match=function(b,f,d,e){for(var p=this.a,
j=this.b,s=this.b2j,o=this.isbjunk,q=b,n=d,m=0,t=null,u={},z=[],v=b;v<f;v++){var y={},A=difflib.__dictget(s,p[v],z),B;for(B in A)if(t=A[B],!(t<d)){if(t>=e)break;y[t]=k=difflib.__dictget(u,t-1,0)+1;k>m&&(q=v-k+1,n=t-k+1,m=k)}u=y}for(;q>b&&n>d&&!o(j[n-1])&&p[q-1]==j[n-1];)q--,n--,m++;for(;q+m<f&&n+m<e&&!o(j[n+m])&&p[q+m]==j[n+m];)m++;for(;q>b&&n>d&&o(j[n-1])&&p[q-1]==j[n-1];)q--,n--,m++;for(;q+m<f&&n+m<e&&o(j[n+m])&&p[q+m]==j[n+m];)m++;return[q,n,m]};this.get_matching_blocks=function(){if(null!=this.matching_blocks)return this.matching_blocks;
for(var b=this.a.length,f=this.b.length,d=[[0,b,0,f]],e=[],p,j,s,o,q,n,m,t;d.length;)if(o=d.pop(),p=o[0],j=o[1],s=o[2],o=o[3],t=this.find_longest_match(p,j,s,o),q=t[0],n=t[1],m=t[2])e.push(t),p<q&&s<n&&d.push([p,q,s,n]),q+m<j&&n+m<o&&d.push([q+m,j,n+m,o]);e.sort(difflib.__ntuplecomp);d=j1=k1=block=0;p=[];for(var u in e)block=e[u],i2=block[0],j2=block[1],k2=block[2],d+k1==i2&&j1+k1==j2?k1+=k2:(k1&&p.push([d,j1,k1]),d=i2,j1=j2,k1=k2);k1&&p.push([d,j1,k1]);p.push([b,f,0]);return this.matching_blocks=
p};this.get_opcodes=function(){if(null!=this.opcodes)return this.opcodes;var b=0,f=0,d=[];this.opcodes=d;var e,p,j,s,o=this.get_matching_blocks(),q;for(q in o)e=o[q],p=e[0],j=e[1],e=e[2],s="",b<p&&f<j?s="replace":b<p?s="delete":f<j&&(s="insert"),s&&d.push([s,b,p,f,j]),b=p+e,f=j+e,e&&d.push(["equal",p,b,j,f]);return d};this.get_grouped_opcodes=function(b){b||(b=3);var f=this.get_opcodes();f||(f=[["equal",0,1,0,1]]);var d,e,p,j,s;"equal"==f[0][0]&&(d=f[0],e=d[0],p=d[1],j=d[2],s=d[3],d=d[4],f[0]=[e,
Math.max(p,j-b),j,Math.max(s,d-b),d]);"equal"==f[f.length-1][0]&&(d=f[f.length-1],e=d[0],p=d[1],j=d[2],s=d[3],d=d[4],f[f.length-1]=[e,p,Math.min(j,p+b),s,Math.min(d,s+b)]);var o=b+b,q=[],n;for(n in f)d=f[n],e=d[0],p=d[1],j=d[2],s=d[3],d=d[4],"equal"==e&&j-p>o&&(q.push([e,p,Math.min(j,p+b),s,Math.min(d,s+b)]),p=Math.max(p,j-b),s=Math.max(s,d-b)),q.push([e,p,j,s,d]);q&&"equal"==q[q.length-1][0]&&q.pop();return q};this.ratio=function(){matches=difflib.__reduce(function(b,d){return b+d[d.length-1]},this.get_matching_blocks(),
0);return difflib.__calculate_ratio(matches,this.a.length+this.b.length)};this.quick_ratio=function(){var b,d;if(null==this.fullbcount){this.fullbcount=b={};for(var e=0;e<this.b.length;e++)d=this.b[e],b[d]=difflib.__dictget(b,d,0)+1}b=this.fullbcount;for(var l={},p=difflib.__isindict(l),j=numb=0,e=0;e<this.a.length;e++)d=this.a[e],numb=p(d)?l[d]:difflib.__dictget(b,d,0),l[d]=numb-1,0<numb&&j++;return difflib.__calculate_ratio(j,this.a.length+this.b.length)};this.real_quick_ratio=function(){var b=
this.a.length,d=this.b.length;return _calculate_ratio(Math.min(b,d),b+d)};this.isjunk=d?d:difflib.defaultJunkFunction;this.a=this.b=null;this.set_seqs(e,b)}};
diffview={buildView:function(e){function b(b,d){var e=document.createElement(b);e.className=d;return e}function d(b,d){var e=document.createElement(b);e.appendChild(document.createTextNode(d));return e}function h(b,d,e){b=document.createElement(b);b.className=d;b.innerHTML=e;return b}function f(e,f,j,i,l){if(f<j)return e.appendChild(d("th",(f+1).toString())),e.appendChild(h("td",l,i[f].replace(/\t/g,"    "))),f+1;e.appendChild(document.createElement("th"));e.appendChild(b("td","empty"));return f}
function r(b,e,f,i,j){b.appendChild(d("th",null==e?"":(e+1).toString()));b.appendChild(d("th",null==f?"":(f+1).toString()));b.appendChild(h("td",j,i[null!=e?e:f].replace(/\t/g,"    ")))}var l=e.baseTextLines,p=e.newTextLines,j=e.opcodes,s=e.baseTextName?e.baseTextName:"Base Text",o=e.newTextName?e.newTextName:"New Text",q=e.contextSize,e=0==e.viewType||1==e.viewType?e.viewType:0;if(null==l)throw"Cannot build diff view; baseTextLines is not defined.";if(null==p)throw"Cannot build diff view; newTextLines is not defined.";
if(!j)throw"Canno build diff view; opcodes is not defined.";var n=document.createElement("thead"),m=document.createElement("tr");n.appendChild(m);e?(m.appendChild(document.createElement("th")),m.appendChild(document.createElement("th")),m.appendChild(h("th","texttitle",s+" vs. "+o))):(m.appendChild(document.createElement("th")),m.appendChild(h("th","texttitle",s)),m.appendChild(document.createElement("th")),m.appendChild(h("th","texttitle",o)));for(var n=[n],s=[],t,o=0;o<j.length;o++){code=j[o];change=
code[0];for(var u=code[1],z=code[2],v=code[3],y=code[4],A=Math.max(z-u,y-v),B=[],D=[],x=0;x<A;x++){if(q&&1<j.length&&(0<o&&x==q||0==o&&0==x)&&"equal"==change)if(t=A-(0==o?1:2)*q,1<t)if(B.push(m=document.createElement("tr")),u+=t,v+=t,x+=t-1,m.appendChild(d("th","...")),e||m.appendChild(h("td","skip","")),m.appendChild(d("th","...")),m.appendChild(h("td","skip","")),o+1==j.length)break;else continue;B.push(m=document.createElement("tr"));e?"insert"==change?r(m,null,v++,p,change):"replace"==change?
(D.push(t=document.createElement("tr")),u<z&&r(m,u++,null,l,"delete"),v<y&&r(t,null,v++,p,"insert")):"delete"==change?r(m,u++,null,l,change):r(m,u++,v++,l,change):(t=diffString2(u<z?l[u]:"",v<y?p[v]:""),u<z&&(l[u]=t.o),v<y&&(p[v]=t.n),u=f(m,u,z,l,"replace"==change?"delete":change),v=f(m,v,y,p,"replace"==change?"insert":change))}for(x=0;x<B.length;x++)s.push(B[x]);for(x=0;x<D.length;x++)s.push(D[x])}s.push(m=h("th","author","combined <a href='http://snowtide.com/jsdifflib'>jsdifflib</a> and John Resig's <a href='http://ejohn.org/projects/javascript-diff-algorithm/'>diff</a> by <a href='http://richardbondi.net'>Richard Bondi</a>"));
m.setAttribute("colspan",e?3:4);n.push(m=document.createElement("tbody"));for(o=0;o<s.length;o++)m.appendChild(s[o]);m=b("table","diff"+(e?" inlinediff":""));for(o=0;o<n.length;o++)m.appendChild(n[o]);return m}};function escape(e){e=e.replace(/&/g,"&amp;");e=e.replace(/</g,"&lt;");e=e.replace(/>/g,"&gt;");return e=e.replace(/"/g,"&quot;")}
function diffString(e,b){var e=e.replace(/\s+$/,""),b=b.replace(/\s+$/,""),d=diff(""==e?[]:e.split(/\s+/),""==b?[]:b.split(/\s+/)),h="",f=e.match(/\s+/g);null==f?f=["\n"]:f.push("\n");var r=b.match(/\s+/g);null==r?r=["\n"]:r.push("\n");if(0==d.n.length)for(var l=0;l<d.o.length;l++)h+="<del>"+escape(d.o[l])+f[l]+"</del>";else{if(null==d.n[0].text)for(b=0;b<d.o.length&&null==d.o[b].text;b++)h+="<del>"+escape(d.o[b])+f[b]+"</del>";for(l=0;l<d.n.length;l++)if(null==d.n[l].text)h+="<ins>"+escape(d.n[l])+
r[l]+"</ins>";else{for(var p="",b=d.n[l].row+1;b<d.o.length&&null==d.o[b].text;b++)p+="<del>"+escape(d.o[b])+f[b]+"</del>";h+=" "+d.n[l].text+r[l]+p}}return h}function randomColor(){return"rgb("+100*Math.random()+"%, "+100*Math.random()+"%, "+100*Math.random()+"%)"}
function diffString2(e,b){var e=e.replace(/\s+$/,""),b=b.replace(/\s+$/,""),d=diff(""==e?[]:e.split(/\s+/),""==b?[]:b.split(/\s+/)),h=e.match(/\s+/g);null==h?h=["\n"]:h.push("\n");var f=b.match(/\s+/g);null==f?f=["\n"]:f.push("\n");for(var r="",l=0;l<d.o.length;l++)randomColor(),r=null!=d.o[l].text?r+(escape(d.o[l].text)+h[l]):r+("<del>"+escape(d.o[l])+h[l]+"</del>");h="";for(l=0;l<d.n.length;l++)h=null!=d.n[l].text?h+(escape(d.n[l].text)+f[l]):h+("<ins>"+escape(d.n[l])+f[l]+"</ins>");return{o:r,
n:h}}
function diff(e,b){for(var d={},h={},f=0;f<b.length;f++)null==d[b[f]]&&(d[b[f]]={rows:[],o:null}),d[b[f]].rows.push(f);for(f=0;f<e.length;f++)null==h[e[f]]&&(h[e[f]]={rows:[],n:null}),h[e[f]].rows.push(f);for(f in d)1==d[f].rows.length&&("undefined"!=typeof h[f]&&1==h[f].rows.length)&&(b[d[f].rows[0]]={text:b[d[f].rows[0]],row:h[f].rows[0]},e[h[f].rows[0]]={text:e[h[f].rows[0]],row:d[f].rows[0]});for(f=0;f<b.length-1;f++)null!=b[f].text&&(null==b[f+1].text&&b[f].row+1<e.length&&null==e[b[f].row+1].text&&
b[f+1]==e[b[f].row+1])&&(b[f+1]={text:b[f+1],row:b[f].row+1},e[b[f].row+1]={text:e[b[f].row+1],row:f+1});for(f=b.length-1;0<f;f--)null!=b[f].text&&(null==b[f-1].text&&0<b[f].row&&null==e[b[f].row-1].text&&b[f-1]==e[b[f].row-1])&&(b[f-1]={text:b[f-1],row:b[f].row-1},e[b[f].row-1]={text:e[b[f].row-1],row:f-1});return{o:e,n:b}}
(function(e){function b(a,c){return function(g){return j(a.call(this,g),c)}}function d(a,c){return function(g){return this.lang().ordinal(a.call(this,g),c)}}function h(){}function f(a){l(this,a)}function r(a){var c=a.years||a.year||a.y||0,g=a.months||a.month||a.M||0,b=a.weeks||a.week||a.w||0,d=a.days||a.day||a.d||0,e=a.hours||a.hour||a.h||0,f=a.minutes||a.minute||a.m||0,h=a.seconds||a.second||a.s||0,i=a.milliseconds||a.millisecond||a.ms||0;this._input=a;this._milliseconds=+i+1E3*h+6E4*f+36E5*e;this._days=
+d+7*b;this._months=+g+12*c;this._data={};this._bubble()}function l(a,c){for(var g in c)c.hasOwnProperty(g)&&(a[g]=c[g]);return a}function p(a){return 0>a?Math.ceil(a):Math.floor(a)}function j(a,c){for(var g=a+"";g.length<c;)g="0"+g;return g}function s(a,c,g,b){var d=c._milliseconds,e=c._days,c=c._months,f,h;d&&a._d.setTime(+a._d+d*g);if(e||c)f=a.minute(),h=a.hour();e&&a.date(a.date()+e*g);c&&a.month(a.month()+c*g);d&&!b&&i.updateOffset(a);if(e||c)a.minute(f),a.hour(h)}function o(a,c){var g=Math.min(a.length,
c.length),b=Math.abs(a.length-c.length),d=0,e;for(e=0;e<g;e++)~~a[e]!==~~c[e]&&d++;return d+b}function q(a){return a?T[a]||a.toLowerCase().replace(/(.)s$/,"$1"):a}function n(a){if(!a)return i.fn._lang;if(!F[a]&&N)try{require("./lang/"+a)}catch(c){return i.fn._lang}return F[a]||i.fn._lang}function m(a){var c=a.match(O),g,b;g=0;for(b=c.length;g<b;g++)c[g]=C[c[g]]?C[c[g]]:c[g].match(/\[.*\]/)?c[g].replace(/^\[|\]$/g,""):c[g].replace(/\\/g,"");return function(d){var e="";for(g=0;g<b;g++)e+=c[g]instanceof
Function?c[g].call(d,a):c[g];return e}}function t(a,c){c=u(c,a.lang());G[c]||(G[c]=m(c));return G[c](a)}function u(a,c){function g(a){return c.longDateFormat(a)||a}for(var b=5;b--&&(H.lastIndex=0,H.test(a));)a=a.replace(H,g);return a}function z(a,c){switch(a){case "DDDD":return U;case "YYYY":return V;case "YYYYY":return W;case "S":case "SS":case "SSS":case "DDD":return X;case "MMM":case "MMMM":case "dd":case "ddd":case "dddd":return Y;case "a":case "A":return n(c._l)._meridiemParse;case "X":return Z;
case "Z":case "ZZ":return I;case "T":return $;case "MM":case "DD":case "YY":case "HH":case "hh":case "mm":case "ss":case "M":case "D":case "d":case "H":case "h":case "m":case "s":return aa;default:return RegExp(a.replace("\\",""))}}function v(a){var a=((I.exec(a)||[])[0]+"").match(ba)||["-",0,0],c=+(60*a[1])+~~a[2];return"+"===a[0]?-c:c}function y(a){var c,g=[],b;if(!a._d){c=new Date;b=a._useUTC?[c.getUTCFullYear(),c.getUTCMonth(),c.getUTCDate()]:[c.getFullYear(),c.getMonth(),c.getDate()];for(c=0;3>
c&&null==a._a[c];++c)a._a[c]=g[c]=b[c];for(;7>c;c++)a._a[c]=g[c]=null==a._a[c]?2===c?1:0:a._a[c];g[3]+=~~((a._tzm||0)/60);g[4]+=~~((a._tzm||0)%60);c=new Date(0);a._useUTC?(c.setUTCFullYear(g[0],g[1],g[2]),c.setUTCHours(g[3],g[4],g[5],g[6])):(c.setFullYear(g[0],g[1],g[2]),c.setHours(g[3],g[4],g[5],g[6]));a._d=c}}function A(a){var c=n(a._l),g=""+a._i,b,d;d=u(a._f,c).match(O);a._a=[];for(c=0;c<d.length;c++)if((b=(z(d[c],a).exec(g)||[])[0])&&(g=g.slice(g.indexOf(b)+b.length)),C[d[c]]){var e=a,f=void 0,
h=e._a;switch(d[c]){case "M":case "MM":null!=b&&(h[1]=~~b-1);break;case "MMM":case "MMMM":f=n(e._l).monthsParse(b);null!=f?h[1]=f:e._isValid=!1;break;case "D":case "DD":null!=b&&(h[2]=~~b);break;case "DDD":case "DDDD":null!=b&&(h[1]=0,h[2]=~~b);break;case "YY":h[0]=~~b+(68<~~b?1900:2E3);break;case "YYYY":case "YYYYY":h[0]=~~b;break;case "a":case "A":e._isPm=n(e._l).isPM(b);break;case "H":case "HH":case "h":case "hh":h[3]=~~b;break;case "m":case "mm":h[4]=~~b;break;case "s":case "ss":h[5]=~~b;break;
case "S":case "SS":case "SSS":h[6]=~~(1E3*("0."+b));break;case "X":e._d=new Date(1E3*parseFloat(b));break;case "Z":case "ZZ":e._useUTC=!0,e._tzm=v(b)}null==b&&(e._isValid=!1)}g&&(a._il=g);a._isPm&&12>a._a[3]&&(a._a[3]+=12);!1===a._isPm&&12===a._a[3]&&(a._a[3]=0);y(a)}function B(a,c,g,b,d){return d.relativeTime(c||1,!!g,a,b)}function D(a,c,g){c=g-c;g-=a.day();g>c&&(g-=7);g<c-7&&(g+=7);a=i(a).add("d",g);return{week:Math.ceil(a.dayOfYear()/7),year:a.year()}}function x(a){var c=a._i,g=a._f;if(null===
c||""===c)return null;"string"===typeof c&&(a._i=c=n().preparse(c));if(i.isMoment(c))a=l({},c),a._d=new Date(+c._d);else if(g)if("[object Array]"===Object.prototype.toString.call(g)){var c=a,b,d,h=99,j;for(j=0;j<c._f.length;j++)b=l({},c),b._f=c._f[j],A(b),g=new f(b),b=o(b._a,g.toArray()),g._il&&(b+=g._il.length),b<h&&(h=b,d=g);l(c,d)}else A(a);else if(d=a,c=d._i,g=ca.exec(c),c===e)d._d=new Date;else if(g)d._d=new Date(+g[1]);else if("string"===typeof c)if(c=d._i,g=da.exec(c)){d._f="YYYY-MM-DD"+(g[2]||
" ");for(g=0;4>g;g++)if(P[g][1].exec(c)){d._f+=P[g][0];break}I.exec(c)&&(d._f+=" Z");A(d)}else d._d=new Date(c);else"[object Array]"===Object.prototype.toString.call(c)?(d._a=c.slice(0),y(d)):c instanceof Date?d._d=new Date(+c):"object"===typeof c?(c=d._i,d._d||(d._a=[c.years||c.year||c.y,c.months||c.month||c.M,c.days||c.day||c.d,c.hours||c.hour||c.h,c.minutes||c.minute||c.m,c.seconds||c.second||c.s,c.milliseconds||c.millisecond||c.ms],y(d))):d._d=new Date(c);return new f(a)}function L(a,c){i.fn[a]=
i.fn[a+"s"]=function(a){var b=this._isUTC?"UTC":"";return null!=a?(this._d["set"+b+c](a),i.updateOffset(this),this):this._d["get"+b+c]()}}function S(a){i.duration.fn[a]=function(){return this._data[a]}}function M(a,c){i.duration.fn["as"+a]=function(){return+this/c}}for(var i,E=Math.round,w,F={},N="undefined"!==typeof module&&module.exports,ca=/^\/?Date\((\-?\d+)/i,ea=/(\-)?(?:(\d*)\.)?(\d+)\:(\d+)\:(\d+)\.?(\d{3})?/,O=/(\[[^\[]*\])|(\\)?(Mo|MM?M?M?|Do|DDDo|DD?D?D?|ddd?d?|do?|w[o|w]?|W[o|W]?|YYYYY|YYYY|YY|gg(ggg?)?|GG(GGG?)?|e|E|a|A|hh?|HH?|mm?|ss?|SS?S?|X|zz?|ZZ?|.)/g,
H=/(\[[^\[]*\])|(\\)?(LT|LL?L?L?|l{1,4})/g,aa=/\d\d?/,X=/\d{1,3}/,U=/\d{3}/,V=/\d{1,4}/,W=/[+\-]?\d{1,6}/,Y=/[0-9]*['a-z\u00A0-\u05FF\u0700-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]+|[\u0600-\u06FF\/]+(\s*?[\u0600-\u06FF]+){1,2}/i,I=/Z|[\+\-]\d\d:?\d\d/i,$=/T/i,Z=/[\+\-]?\d+(\.\d{1,3})?/,da=/^\s*\d{4}-\d\d-\d\d((T| )(\d\d(:\d\d(:\d\d(\.\d\d?\d?)?)?)?)?([\+\-]\d\d:?\d\d)?)?/,P=[["HH:mm:ss.S",/(T| )\d\d:\d\d:\d\d\.\d{1,3}/],["HH:mm:ss",/(T| )\d\d:\d\d:\d\d/],["HH:mm",/(T| )\d\d:\d\d/],["HH",/(T| )\d\d/]],ba=
/([\+\-]|\d\d)/gi,J=["Date","Hours","Minutes","Seconds","Milliseconds"],K={Milliseconds:1,Seconds:1E3,Minutes:6E4,Hours:36E5,Days:864E5,Months:2592E6,Years:31536E6},T={ms:"millisecond",s:"second",m:"minute",h:"hour",d:"day",w:"week",W:"isoweek",M:"month",y:"year"},G={},Q="DDD w W M D d".split(" "),R="MDHhmswW".split(""),C={M:function(){return this.month()+1},MMM:function(a){return this.lang().monthsShort(this,a)},MMMM:function(a){return this.lang().months(this,a)},D:function(){return this.date()},
DDD:function(){return this.dayOfYear()},d:function(){return this.day()},dd:function(a){return this.lang().weekdaysMin(this,a)},ddd:function(a){return this.lang().weekdaysShort(this,a)},dddd:function(a){return this.lang().weekdays(this,a)},w:function(){return this.week()},W:function(){return this.isoWeek()},YY:function(){return j(this.year()%100,2)},YYYY:function(){return j(this.year(),4)},YYYYY:function(){return j(this.year(),5)},gg:function(){return j(this.weekYear()%100,2)},gggg:function(){return this.weekYear()},
ggggg:function(){return j(this.weekYear(),5)},GG:function(){return j(this.isoWeekYear()%100,2)},GGGG:function(){return this.isoWeekYear()},GGGGG:function(){return j(this.isoWeekYear(),5)},e:function(){return this.weekday()},E:function(){return this.isoWeekday()},a:function(){return this.lang().meridiem(this.hours(),this.minutes(),!0)},A:function(){return this.lang().meridiem(this.hours(),this.minutes(),!1)},H:function(){return this.hours()},h:function(){return this.hours()%12||12},m:function(){return this.minutes()},
s:function(){return this.seconds()},S:function(){return~~(this.milliseconds()/100)},SS:function(){return j(~~(this.milliseconds()/10),2)},SSS:function(){return j(this.milliseconds(),3)},Z:function(){var a=-this.zone(),c="+";0>a&&(a=-a,c="-");return c+j(~~(a/60),2)+":"+j(~~a%60,2)},ZZ:function(){var a=-this.zone(),c="+";0>a&&(a=-a,c="-");return c+j(~~(10*a/6),4)},z:function(){return this.zoneAbbr()},zz:function(){return this.zoneName()},X:function(){return this.unix()}};Q.length;)w=Q.pop(),C[w+"o"]=
d(C[w],w);for(;R.length;)w=R.pop(),C[w+w]=b(C[w],2);C.DDDD=b(C.DDD,3);l(h.prototype,{set:function(a){var c,g;for(g in a)c=a[g],"function"===typeof c?this[g]=c:this["_"+g]=c},_months:"January February March April May June July August September October November December".split(" "),months:function(a){return this._months[a.month()]},_monthsShort:"Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec".split(" "),monthsShort:function(a){return this._monthsShort[a.month()]},monthsParse:function(a){var c,g;this._monthsParse||
(this._monthsParse=[]);for(c=0;12>c;c++)if(this._monthsParse[c]||(g=i.utc([2E3,c]),g="^"+this.months(g,"")+"|^"+this.monthsShort(g,""),this._monthsParse[c]=RegExp(g.replace(".",""),"i")),this._monthsParse[c].test(a))return c},_weekdays:"Sunday Monday Tuesday Wednesday Thursday Friday Saturday".split(" "),weekdays:function(a){return this._weekdays[a.day()]},_weekdaysShort:"Sun Mon Tue Wed Thu Fri Sat".split(" "),weekdaysShort:function(a){return this._weekdaysShort[a.day()]},_weekdaysMin:"Su Mo Tu We Th Fr Sa".split(" "),
weekdaysMin:function(a){return this._weekdaysMin[a.day()]},weekdaysParse:function(a){var c,g;this._weekdaysParse||(this._weekdaysParse=[]);for(c=0;7>c;c++)if(this._weekdaysParse[c]||(g=i([2E3,1]).day(c),g="^"+this.weekdays(g,"")+"|^"+this.weekdaysShort(g,"")+"|^"+this.weekdaysMin(g,""),this._weekdaysParse[c]=RegExp(g.replace(".",""),"i")),this._weekdaysParse[c].test(a))return c},_longDateFormat:{LT:"h:mm A",L:"MM/DD/YYYY",LL:"MMMM D YYYY",LLL:"MMMM D YYYY LT",LLLL:"dddd, MMMM D YYYY LT"},longDateFormat:function(a){var c=
this._longDateFormat[a];!c&&this._longDateFormat[a.toUpperCase()]&&(c=this._longDateFormat[a.toUpperCase()].replace(/MMMM|MM|DD|dddd/g,function(a){return a.slice(1)}),this._longDateFormat[a]=c);return c},isPM:function(a){return"p"===(a+"").toLowerCase().charAt(0)},_meridiemParse:/[ap]\.?m?\.?/i,meridiem:function(a,c,g){return 11<a?g?"pm":"PM":g?"am":"AM"},_calendar:{sameDay:"[Today at] LT",nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[Last] dddd [at] LT",
sameElse:"L"},calendar:function(a,c){var g=this._calendar[a];return"function"===typeof g?g.apply(c):g},_relativeTime:{future:"in %s",past:"%s ago",s:"a few seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",M:"a month",MM:"%d months",y:"a year",yy:"%d years"},relativeTime:function(a,c,g,b){var d=this._relativeTime[g];return"function"===typeof d?d(a,c,g,b):d.replace(/%d/i,a)},pastFuture:function(a,c){var g=this._relativeTime[0<a?"future":"past"];return"function"===
typeof g?g(c):g.replace(/%s/i,c)},ordinal:function(a){return this._ordinal.replace("%d",a)},_ordinal:"%d",preparse:function(a){return a},postformat:function(a){return a},week:function(a){return D(a,this._week.dow,this._week.doy).week},_week:{dow:0,doy:6}});i=function(a,c,g){return x({_i:a,_f:c,_l:g,_isUTC:!1})};i.utc=function(a,c,g){return x({_useUTC:!0,_isUTC:!0,_l:g,_i:a,_f:c}).utc()};i.unix=function(a){return i(1E3*a)};i.duration=function(a,c){var g=i.isDuration(a),b="number"===typeof a,d=g?a._input:
b?{}:a,e=ea.exec(a);b?c?d[c]=a:d.milliseconds=a:e&&(b="-"===e[1]?-1:1,d={y:0,d:~~e[2]*b,h:~~e[3]*b,m:~~e[4]*b,s:~~e[5]*b,ms:~~e[6]*b});e=new r(d);g&&a.hasOwnProperty("_lang")&&(e._lang=a._lang);return e};i.version="2.2.1";i.defaultFormat="YYYY-MM-DDTHH:mm:ssZ";i.updateOffset=function(){};i.lang=function(a,c){if(!a)return i.fn._lang._abbr;a=a.toLowerCase();a=a.replace("_","-");if(c){var g=a;c.abbr=g;F[g]||(F[g]=new h);F[g].set(c)}else null===c?(delete F[a],a="en"):F[a]||n(a);i.duration.fn._lang=i.fn._lang=
n(a)};i.langData=function(a){a&&(a._lang&&a._lang._abbr)&&(a=a._lang._abbr);return n(a)};i.isMoment=function(a){return a instanceof f};i.isDuration=function(a){return a instanceof r};l(i.fn=f.prototype,{clone:function(){return i(this)},valueOf:function(){return+this._d+6E4*(this._offset||0)},unix:function(){return Math.floor(+this/1E3)},toString:function(){return this.format("ddd MMM DD YYYY HH:mm:ss [GMT]ZZ")},toDate:function(){return this._offset?new Date(+this):this._d},toISOString:function(){return t(i(this).utc(),
"YYYY-MM-DD[T]HH:mm:ss.SSS[Z]")},toArray:function(){return[this.year(),this.month(),this.date(),this.hours(),this.minutes(),this.seconds(),this.milliseconds()]},isValid:function(){null==this._isValid&&(this._isValid=this._a?!o(this._a,(this._isUTC?i.utc(this._a):i(this._a)).toArray()):!isNaN(this._d.getTime()));return!!this._isValid},invalidAt:function(){var a,c=this._a,g=(this._isUTC?i.utc(this._a):i(this._a)).toArray();for(a=6;0<=a&&c[a]===g[a];--a);return a},utc:function(){return this.zone(0)},
local:function(){this.zone(0);this._isUTC=!1;return this},format:function(a){a=t(this,a||i.defaultFormat);return this.lang().postformat(a)},add:function(a,c){var g;g="string"===typeof a?i.duration(+c,a):i.duration(a,c);s(this,g,1);return this},subtract:function(a,c){var g;g="string"===typeof a?i.duration(+c,a):i.duration(a,c);s(this,g,-1);return this},diff:function(a,c,g){var a=this._isUTC?i(a).zone(this._offset||0):i(a).local(),b=6E4*(this.zone()-a.zone()),d,c=q(c);"year"===c||"month"===c?(d=432E5*
(this.daysInMonth()+a.daysInMonth()),b=12*(this.year()-a.year())+(this.month()-a.month()),b+=(this-i(this).startOf("month")-(a-i(a).startOf("month")))/d,b-=6E4*(this.zone()-i(this).startOf("month").zone()-(a.zone()-i(a).startOf("month").zone()))/d,"year"===c&&(b/=12)):(d=this-a,b="second"===c?d/1E3:"minute"===c?d/6E4:"hour"===c?d/36E5:"day"===c?(d-b)/864E5:"week"===c?(d-b)/6048E5:d);return g?b:p(b)},from:function(a,c){return i.duration(this.diff(a)).lang(this.lang()._abbr).humanize(!c)},fromNow:function(a){return this.from(i(),
a)},calendar:function(){var a=this.diff(i().zone(this.zone()).startOf("day"),"days",!0);return this.format(this.lang().calendar(-6>a?"sameElse":-1>a?"lastWeek":0>a?"lastDay":1>a?"sameDay":2>a?"nextDay":7>a?"nextWeek":"sameElse",this))},isLeapYear:function(){var a=this.year();return 0===a%4&&0!==a%100||0===a%400},isDST:function(){return this.zone()<this.clone().month(0).zone()||this.zone()<this.clone().month(5).zone()},day:function(a){var c=this._isUTC?this._d.getUTCDay():this._d.getDay();return null!=
a?"string"===typeof a&&(a=this.lang().weekdaysParse(a),"number"!==typeof a)?this:this.add({d:a-c}):c},month:function(a){var c=this._isUTC?"UTC":"",g;if(null!=a){if("string"===typeof a&&(a=this.lang().monthsParse(a),"number"!==typeof a))return this;g=this.date();this.date(1);this._d["set"+c+"Month"](a);this.date(Math.min(g,this.daysInMonth()));i.updateOffset(this);return this}return this._d["get"+c+"Month"]()},startOf:function(a){a=q(a);switch(a){case "year":this.month(0);case "month":this.date(1);
case "week":case "isoweek":case "day":this.hours(0);case "hour":this.minutes(0);case "minute":this.seconds(0);case "second":this.milliseconds(0)}"week"===a?this.weekday(0):"isoweek"===a&&this.isoWeekday(1);return this},endOf:function(a){a=q(a);return this.startOf(a).add("isoweek"===a?"week":a,1).subtract("ms",1)},isAfter:function(a,c){c="undefined"!==typeof c?c:"millisecond";return+this.clone().startOf(c)>+i(a).startOf(c)},isBefore:function(a,c){c="undefined"!==typeof c?c:"millisecond";return+this.clone().startOf(c)<
+i(a).startOf(c)},isSame:function(a,c){c="undefined"!==typeof c?c:"millisecond";return+this.clone().startOf(c)===+i(a).startOf(c)},min:function(a){a=i.apply(null,arguments);return a<this?this:a},max:function(a){a=i.apply(null,arguments);return a>this?this:a},zone:function(a){var c=this._offset||0;if(null!=a)"string"===typeof a&&(a=v(a)),16>Math.abs(a)&&(a*=60),this._offset=a,this._isUTC=!0,c!==a&&s(this,i.duration(c-a,"m"),1,!0);else return this._isUTC?c:this._d.getTimezoneOffset();return this},zoneAbbr:function(){return this._isUTC?
"UTC":""},zoneName:function(){return this._isUTC?"Coordinated Universal Time":""},hasAlignedHourOffset:function(a){a=a?i(a).zone():0;return 0===(this.zone()-a)%60},daysInMonth:function(){return i.utc([this.year(),this.month()+1,0]).date()},dayOfYear:function(a){var c=E((i(this).startOf("day")-i(this).startOf("year"))/864E5)+1;return null==a?c:this.add("d",a-c)},weekYear:function(a){var c=D(this,this.lang()._week.dow,this.lang()._week.doy).year;return null==a?c:this.add("y",a-c)},isoWeekYear:function(a){var c=
D(this,1,4).year;return null==a?c:this.add("y",a-c)},week:function(a){var c=this.lang().week(this);return null==a?c:this.add("d",7*(a-c))},isoWeek:function(a){var c=D(this,1,4).week;return null==a?c:this.add("d",7*(a-c))},weekday:function(a){var c=(this._d.getDay()+7-this.lang()._week.dow)%7;return null==a?c:this.add("d",a-c)},isoWeekday:function(a){return null==a?this.day()||7:this.day(this.day()%7?a:a-7)},get:function(a){a=q(a);return this[a.toLowerCase()]()},set:function(a,c){a=q(a);this[a.toLowerCase()](c)},
lang:function(a){if(a===e)return this._lang;this._lang=n(a);return this}});for(w=0;w<J.length;w++)L(J[w].toLowerCase().replace(/s$/,""),J[w]);L("year","FullYear");i.fn.days=i.fn.day;i.fn.months=i.fn.month;i.fn.weeks=i.fn.week;i.fn.isoWeeks=i.fn.isoWeek;i.fn.toJSON=i.fn.toISOString;l(i.duration.fn=r.prototype,{_bubble:function(){var a=this._milliseconds,c=this._days,g=this._months,b=this._data;b.milliseconds=a%1E3;a=p(a/1E3);b.seconds=a%60;a=p(a/60);b.minutes=a%60;a=p(a/60);b.hours=a%24;c+=p(a/24);
b.days=c%30;g+=p(c/30);b.months=g%12;c=p(g/12);b.years=c},weeks:function(){return p(this.days()/7)},valueOf:function(){return this._milliseconds+864E5*this._days+2592E6*(this._months%12)+31536E6*~~(this._months/12)},humanize:function(a){var c=+this,b;b=!a;var d=this.lang(),e=E(Math.abs(c)/1E3),f=E(e/60),h=E(f/60),i=E(h/24),j=E(i/365),e=45>e&&["s",e]||1===f&&["m"]||45>f&&["mm",f]||1===h&&["h"]||22>h&&["hh",h]||1===i&&["d"]||25>=i&&["dd",i]||45>=i&&["M"]||345>i&&["MM",E(i/30)]||1===j&&["y"]||["yy",
j];e[2]=b;e[3]=0<c;e[4]=d;b=B.apply({},e);a&&(b=this.lang().pastFuture(c,b));return this.lang().postformat(b)},add:function(a,c){var b=i.duration(a,c);this._milliseconds+=b._milliseconds;this._days+=b._days;this._months+=b._months;this._bubble();return this},subtract:function(a,c){var b=i.duration(a,c);this._milliseconds-=b._milliseconds;this._days-=b._days;this._months-=b._months;this._bubble();return this},get:function(a){a=q(a);return this[a.toLowerCase()+"s"]()},as:function(a){a=q(a);return this["as"+
a.charAt(0).toUpperCase()+a.slice(1)+"s"]()},lang:i.fn.lang});for(w in K)K.hasOwnProperty(w)&&(M(w,K[w]),S(w.toLowerCase()));M("Weeks",6048E5);i.duration.fn.asMonths=function(){return(+this-31536E6*this.years())/2592E6+12*this.years()};i.lang("en",{ordinal:function(a){var c=a%10;return a+(1===~~(a%100/10)?"th":1===c?"st":2===c?"nd":3===c?"rd":"th")}});(function(a){a(i)})(function(a){a.lang("ar-ma",{months:"يناير فبراير مارس أبريل ماي يونيو يوليوز غشت شتنبر أكتوبر نونبر دجنبر".split(" "),
monthsShort:"يناير فبراير مارس أبريل ماي يونيو يوليوز غشت شتنبر أكتوبر نونبر دجنبر".split(" "),weekdays:"الأØد الإتنين الثلاثاء الأربعاء الخميس الجمعة السبت".split(" "),weekdaysShort:"اØد اتنين ثلاثاء اربعاء خميس جمعة سبت".split(" "),weekdaysMin:"Ø Ù† Ø« ر Ø® ج س".split(" "),longDateFormat:{LT:"HH:mm",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY LT",LLLL:"dddd D MMMM YYYY LT"},
calendar:{sameDay:"[اليوم على الساعة] LT",nextDay:"[غدا على الساعة] LT",nextWeek:"dddd [على الساعة] LT",lastDay:"[أمس على الساعة] LT",lastWeek:"dddd [على الساعة] LT",sameElse:"L"},relativeTime:{future:"في %s",past:"منذ %s",s:"ثوان",m:"دقيقة",mm:"%d دقائق",h:"ساعة",hh:"%d ساعات",d:"يوم",dd:"%d أيام",M:"شهر",MM:"%d أشهر",y:"سنة",yy:"%d سنوات"},week:{dow:6,doy:12}})});(function(a){a(i)})(function(a){a.lang("ar",
{months:"يناير/ كانون الثاني;فبراير/ شباط;مارس/ آذار;أبريل/ نيسان;مايو/ أيار;يونيو/ Øزيران;يوليو/ تموز;أغسطس/ آب;سبتمبر/ أيلول;أكتوبر/ تشرين الأول;نوفمبر/ تشرين الثاني;ديسمبر/ كانون الأول".split(";"),monthsShort:"يناير/ كانون الثاني;فبراير/ شباط;مارس/ آذار;أبريل/ نيسان;مايو/ أيار;يونيو/ Øزيران;يوليو/ تموز;أغسطس/ آب;سبتمبر/ أيلول;أكتوبر/ تشرين الأول;نوفمبر/ تشرين الثاني;ديسمبر/ كانون الأول".split(";"),
weekdays:"الأØد الإثنين الثلاثاء الأربعاء الخميس الجمعة السبت".split(" "),weekdaysShort:"الأØد الإثنين الثلاثاء الأربعاء الخميس الجمعة السبت".split(" "),weekdaysMin:"Ø Ù† Ø« ر Ø® ج س".split(" "),longDateFormat:{LT:"HH:mm",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY LT",LLLL:"dddd D MMMM YYYY LT"},calendar:{sameDay:"[اليوم على الساعة] LT",nextDay:"[غدا على الساعة] LT",nextWeek:"dddd [على الساعة] LT",
lastDay:"[أمس على الساعة] LT",lastWeek:"dddd [على الساعة] LT",sameElse:"L"},relativeTime:{future:"في %s",past:"منذ %s",s:"ثوان",m:"دقيقة",mm:"%d دقائق",h:"ساعة",hh:"%d ساعات",d:"يوم",dd:"%d أيام",M:"شهر",MM:"%d أشهر",y:"سنة",yy:"%d سنوات"},week:{dow:6,doy:12}})});(function(a){a(i)})(function(a){a.lang("bg",{months:"януари февруари март април май юни юли август септември октомври ноември декември".split(" "),
monthsShort:"янр фев мар апр май юни юли авг сеп окт ное дек".split(" "),weekdays:"неделя понеделник вторник сряда четвъртък петък събота".split(" "),weekdaysShort:"нед пон вто сря чет пет съб".split(" "),weekdaysMin:"нд пн вт ср чт пт сб".split(" "),longDateFormat:{LT:"h:mm",L:"D.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY LT",LLLL:"dddd, D MMMM YYYY LT"},calendar:{sameDay:"[Днес в] LT",
nextDay:"[Утре в] LT",nextWeek:"dddd [в] LT",lastDay:"[Вчера в] LT",lastWeek:function(){switch(this.day()){case 0:case 3:case 6:return"[В изминалата] dddd [в] LT";case 1:case 2:case 4:case 5:return"[В изминалия] dddd [в] LT"}},sameElse:"L"},relativeTime:{future:"след %s",past:"преди %s",s:"няколко секунди",m:"минута",mm:"%d минути",h:"час",hh:"%d часа",d:"ден",dd:"%d дни",M:"месец",MM:"%d месеца",y:"година",
yy:"%d години"},ordinal:function(a){var b=a%10,d=a%100;return 0===a?a+"-ев":0===d?a+"-ен":10<d&&20>d?a+"-ти":1===b?a+"-ви":2===b?a+"-ри":7===b||8===b?a+"-ми":a+"-ти"},week:{dow:1,doy:7}})});(function(a){a(i)})(function(a){function c(a,c,b){c=a+" ";b={mm:"munutenn",MM:"miz",dd:"devezh"}[b];2===a?(a={m:"v",b:"v",d:"z"},a=a[b.charAt(0)]===e?b:a[b.charAt(0)]+b.substring(1)):a=b;return c+a}function b(a){return 9<a?b(a%10):a}a.lang("br",{months:"Genver C'hwevrer Meurzh Ebrel Mae Mezheven Gouere Eost Gwengolo Here Du Kerzu".split(" "),
monthsShort:"Gen C'hwe Meu Ebr Mae Eve Gou Eos Gwe Her Du Ker".split(" "),weekdays:"Sul Lun Meurzh Merc'her Yaou Gwener Sadorn".split(" "),weekdaysShort:"Sul Lun Meu Mer Yao Gwe Sad".split(" "),weekdaysMin:"Su Lu Me Mer Ya Gw Sa".split(" "),longDateFormat:{LT:"h[e]mm A",L:"DD/MM/YYYY",LL:"D [a viz] MMMM YYYY",LLL:"D [a viz] MMMM YYYY LT",LLLL:"dddd, D [a viz] MMMM YYYY LT"},calendar:{sameDay:"[Hiziv da] LT",nextDay:"[Warc'hoazh da] LT",nextWeek:"dddd [da] LT",lastDay:"[Dec'h da] LT",lastWeek:"dddd [paset da] LT",
sameElse:"L"},relativeTime:{future:"a-benn %s",past:"%s 'zo",s:"un nebeud segondennoù",m:"ur vunutenn",mm:c,h:"un eur",hh:"%d eur",d:"un devezh",dd:c,M:"ur miz",MM:c,y:"ur bloaz",yy:function(a){switch(b(a)){case 1:case 3:case 4:case 5:case 9:return a+" bloaz";default:return a+" vloaz"}}},ordinal:function(a){return a+(1===a?"añ":"vet")},week:{dow:1,doy:4}})});(function(a){a(i)})(function(a){a.lang("ca",{months:"Gener Febrer Març Abril Maig Juny Juliol Agost Setembre Octubre Novembre Desembre".split(" "),
monthsShort:"Gen. Febr. Mar. Abr. Mai. Jun. Jul. Ag. Set. Oct. Nov. Des.".split(" "),weekdays:"Diumenge Dilluns Dimarts Dimecres Dijous Divendres Dissabte".split(" "),weekdaysShort:"Dg. Dl. Dt. Dc. Dj. Dv. Ds.".split(" "),weekdaysMin:"Dg Dl Dt Dc Dj Dv Ds".split(" "),longDateFormat:{LT:"H:mm",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY LT",LLLL:"dddd D MMMM YYYY LT"},calendar:{sameDay:function(){return"[avui a "+(1!==this.hours()?"les":"la")+"] LT"},nextDay:function(){return"[demà a "+(1!==
this.hours()?"les":"la")+"] LT"},nextWeek:function(){return"dddd [a "+(1!==this.hours()?"les":"la")+"] LT"},lastDay:function(){return"[ahir a "+(1!==this.hours()?"les":"la")+"] LT"},lastWeek:function(){return"[el] dddd [passat a "+(1!==this.hours()?"les":"la")+"] LT"},sameElse:"L"},relativeTime:{future:"en %s",past:"fa %s",s:"uns segons",m:"un minut",mm:"%d minuts",h:"una hora",hh:"%d hores",d:"un dia",dd:"%d dies",M:"un mes",MM:"%d mesos",y:"un any",yy:"%d anys"},ordinal:"%dº",week:{dow:1,doy:4}})});
(function(a){a(i)})(function(a){function c(a){return 1<a&&5>a&&1!==~~(a/10)}function b(a,g,d,e){var f=a+" ";switch(d){case "s":return g||e?"pár vteÅ™in":"pár vteÅ™inami";case "m":return g?"minuta":e?"minutu":"minutou";case "mm":return g||e?f+(c(a)?"minuty":"minut"):f+"minutami";case "h":return g?"hodina":e?"hodinu":"hodinou";case "hh":return g||e?f+(c(a)?"hodiny":"hodin"):f+"hodinami";case "d":return g||e?"den":"dnem";case "dd":return g||e?f+(c(a)?"dny":"dnÃ"):f+"dny";case "M":return g||e?"mÄsÃc":
"mÄsÃcem";case "MM":return g||e?f+(c(a)?"mÄsÃce":"mÄsÃců"):f+"mÄsÃci";case "y":return g||e?"rok":"rokem";case "yy":return g||e?f+(c(a)?"roky":"let"):f+"lety"}}var d="leden únor bÅ™ezen duben kvÄten červen červenec srpen zářà řÃjen listopad prosinec".split(" "),e="led úno bÅ™e dub kvÄ Ävn čvc srp zář Å™Ãj lis pro".split(" ");a.lang("cs",{months:d,monthsShort:e,monthsParse:function(a,c){var b,g=[];for(b=0;12>b;b++)g[b]=RegExp("^"+a[b]+"$|^"+c[b]+"$","i");return g}(d,e),weekdays:"nedÄle pondÄlà úterý stÅ™eda čtvrtek pátek sobota".split(" "),
weekdaysShort:"ne po út st čt pá so".split(" "),weekdaysMin:"ne po út st čt pá so".split(" "),longDateFormat:{LT:"H:mm",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY LT",LLLL:"dddd D. MMMM YYYY LT"},calendar:{sameDay:"[dnes v] LT",nextDay:"[zÃtra v] LT",nextWeek:function(){switch(this.day()){case 0:return"[v nedÄli v] LT";case 1:case 2:return"[v] dddd [v] LT";case 3:return"[ve stÅ™edu v] LT";case 4:return"[ve čtvrtek v] LT";case 5:return"[v pátek v] LT";case 6:return"[v sobotu v] LT"}},
lastDay:"[včera v] LT",lastWeek:function(){switch(this.day()){case 0:return"[minulou nedÄli v] LT";case 1:case 2:return"[minulé] dddd [v] LT";case 3:return"[minulou stÅ™edu v] LT";case 4:case 5:return"[minulý] dddd [v] LT";case 6:return"[minulou sobotu v] LT"}},sameElse:"L"},relativeTime:{future:"za %s",past:"pÅ™ed %s",s:b,m:b,mm:b,h:b,hh:b,d:b,dd:b,M:b,MM:b,y:b,yy:b},ordinal:"%d.",week:{dow:1,doy:4}})});(function(a){a(i)})(function(a){a.lang("cv",{months:"кăрлач нарăс пуш ака май çĕртме утă çурла авăн юпа чӳк раштав".split(" "),
monthsShort:"кăр нар пуш ака май çĕр утă çур ав юпа чӳк раш".split(" "),weekdays:"вырсарникун тунтикун ытларикун юнкун кĕçнерникун эрнекун шăматкун".split(" "),weekdaysShort:"выр тун ытл юн кĕç эрн шăм".split(" "),weekdaysMin:"вр тн ыт юн кç эр шм".split(" "),longDateFormat:{LT:"HH:mm",L:"DD-MM-YYYY",LL:"YYYY [çулхи] MMMM [уйăхĕн] D[-мĕшĕ]",LLL:"YYYY [çулхи] MMMM [уйăхĕн] D[-мĕшĕ], LT",
LLLL:"dddd, YYYY [çулхи] MMMM [уйăхĕн] D[-мĕшĕ], LT"},calendar:{sameDay:"[Паян] LT [сехетре]",nextDay:"[Ыран] LT [сехетре]",lastDay:"[Ĕнер] LT [сехетре]",nextWeek:"[Çитес] dddd LT [сехетре]",lastWeek:"[Иртнĕ] dddd LT [сехетре]",sameElse:"L"},relativeTime:{future:function(a){var b=/сехет$/i.exec(a)?"рен":/çул$/i.exec(a)?"тан":"ран";return a+b},past:"%s каялла",s:"пĕр-ик çеккунт",m:"пĕр минут",
mm:"%d минут",h:"пĕр сехет",hh:"%d сехет",d:"пĕр кун",dd:"%d кун",M:"пĕр уйăх",MM:"%d уйăх",y:"пĕр çул",yy:"%d çул"},ordinal:"%d-мĕш",week:{dow:1,doy:7}})});(function(a){a(i)})(function(a){a.lang("da",{months:"januar februar marts april maj juni juli august september oktober november december".split(" "),monthsShort:"jan feb mar apr maj jun jul aug sep okt nov dec".split(" "),weekdays:"søndag mandag tirsdag onsdag torsdag fredag lørdag".split(" "),
weekdaysShort:"søn man tir ons tor fre lør".split(" "),weekdaysMin:"sø ma ti on to fr lø".split(" "),longDateFormat:{LT:"HH:mm",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY LT",LLLL:"dddd D. MMMM, YYYY LT"},calendar:{sameDay:"[I dag kl.] LT",nextDay:"[I morgen kl.] LT",nextWeek:"dddd [kl.] LT",lastDay:"[I går kl.] LT",lastWeek:"[sidste] dddd [kl] LT",sameElse:"L"},relativeTime:{future:"om %s",past:"%s siden",s:"få sekunder",m:"et minut",mm:"%d minutter",h:"en time",hh:"%d timer",d:"en dag",
dd:"%d dage",M:"en måned",MM:"%d måneder",y:"et år",yy:"%d år"},ordinal:"%d.",week:{dow:1,doy:4}})});(function(a){a(i)})(function(a){function c(a,c,b){a={m:["eine Minute","einer Minute"],h:["eine Stunde","einer Stunde"],d:["ein Tag","einem Tag"],dd:[a+" Tage",a+" Tagen"],M:["ein Monat","einem Monat"],MM:[a+" Monate",a+" Monaten"],y:["ein Jahr","einem Jahr"],yy:[a+" Jahre",a+" Jahren"]};return c?a[b][0]:a[b][1]}a.lang("de",{months:"Januar Februar März April Mai Juni Juli August September Oktober November Dezember".split(" "),
monthsShort:"Jan. Febr. Mrz. Apr. Mai Jun. Jul. Aug. Sept. Okt. Nov. Dez.".split(" "),weekdays:"Sonntag Montag Dienstag Mittwoch Donnerstag Freitag Samstag".split(" "),weekdaysShort:"So. Mo. Di. Mi. Do. Fr. Sa.".split(" "),weekdaysMin:"So Mo Di Mi Do Fr Sa".split(" "),longDateFormat:{LT:"H:mm [Uhr]",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY LT",LLLL:"dddd, D. MMMM YYYY LT"},calendar:{sameDay:"[Heute um] LT",sameElse:"L",nextDay:"[Morgen um] LT",nextWeek:"dddd [um] LT",lastDay:"[Gestern um] LT",
lastWeek:"[letzten] dddd [um] LT"},relativeTime:{future:"in %s",past:"vor %s",s:"ein paar Sekunden",m:c,mm:"%d Minuten",h:c,hh:"%d Stunden",d:c,dd:c,M:c,MM:c,y:c,yy:c},ordinal:"%d.",week:{dow:1,doy:4}})});(function(a){a(i)})(function(a){a.lang("el",{monthsNominativeEl:"Ιανουάριος Φεβρουάριος Μάρτιος Απρίλιος Μάιος Ιούνιος Ιούλιος Αύγουστος ΣεπτÎμβριος Οκτώβριος ΝοÎμβριος ΔεκÎμβριος".split(" "),monthsGenitiveEl:"Ιανουαρίου Φεβρουαρίου Μαρτίου Απριλίου Μαΐου Ιουνίου Ιουλίου Αυγούστου Σεπτεμβρίου Οκτωβρίου Νοεμβρίου Δεκεμβρίου".split(" "),
months:function(a,b){return/D/.test(b.substring(0,b.indexOf("MMMM")))?this._monthsGenitiveEl[a.month()]:this._monthsNominativeEl[a.month()]},monthsShort:"Ιαν Φεβ Μαρ Απρ Μαϊ Ιουν Ιουλ Αυγ Σεπ Οκτ Νοε Δεκ".split(" "),weekdays:"Κυριακή;ΔευτÎρα;Τρίτη;Τετάρτη;Î Îμπτη;Παρασκευή;Σάββατο".split(";"),weekdaysShort:"Κυρ;Δευ;Τρι;Τετ;Πεμ;Παρ;Σαβ".split(";"),weekdaysMin:"Κυ;Δε;Τρ;Τε;Πε;Πα;Σα".split(";"),
meridiem:function(a,b,d){return 11<a?d?"μμ":"ΜΜ":d?"πμ":"ΠΜ"},longDateFormat:{LT:"h:mm A",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY LT",LLLL:"dddd, D MMMM YYYY LT"},calendarEl:{sameDay:"[Σήμερα {}] LT",nextDay:"[Αύριο {}] LT",nextWeek:"dddd [{}] LT",lastDay:"[Χθες {}] LT",lastWeek:"[την προηγούμενη] dddd [{}] LT",sameElse:"L"},calendar:function(a,b){var d=this._calendarEl[a],e=b&&b.hours();return d.replace("{}",1===e%12?"στη":"στις")},relativeTime:{future:"σε %s",
past:"%s πριν",s:"δευτερόλεπτα",m:"Îνα λεπτό",mm:"%d λεπτά",h:"μία ώρα",hh:"%d ώρες",d:"μία μÎρα",dd:"%d μÎρες",M:"Îνας μήνας",MM:"%d μήνες",y:"Îνας χρόνος",yy:"%d χρόνια"},ordinal:function(a){return a+"η"},week:{dow:1,doy:4}})});(function(a){a(i)})(function(a){a.lang("en-ca",{months:"January February March April May June July August September October November December".split(" "),monthsShort:"Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec".split(" "),
weekdays:"Sunday Monday Tuesday Wednesday Thursday Friday Saturday".split(" "),weekdaysShort:"Sun Mon Tue Wed Thu Fri Sat".split(" "),weekdaysMin:"Su Mo Tu We Th Fr Sa".split(" "),longDateFormat:{LT:"h:mm A",L:"YYYY-MM-DD",LL:"D MMMM, YYYY",LLL:"D MMMM, YYYY LT",LLLL:"dddd, D MMMM, YYYY LT"},calendar:{sameDay:"[Today at] LT",nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[Last] dddd [at] LT",sameElse:"L"},relativeTime:{future:"in %s",past:"%s ago",s:"a few seconds",
m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",M:"a month",MM:"%d months",y:"a year",yy:"%d years"},ordinal:function(a){var b=a%10;return a+(1===~~(a%100/10)?"th":1===b?"st":2===b?"nd":3===b?"rd":"th")}})});(function(a){a(i)})(function(a){a.lang("en-gb",{months:"January February March April May June July August September October November December".split(" "),monthsShort:"Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec".split(" "),weekdays:"Sunday Monday Tuesday Wednesday Thursday Friday Saturday".split(" "),
weekdaysShort:"Sun Mon Tue Wed Thu Fri Sat".split(" "),weekdaysMin:"Su Mo Tu We Th Fr Sa".split(" "),longDateFormat:{LT:"HH:mm",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY LT",LLLL:"dddd, D MMMM YYYY LT"},calendar:{sameDay:"[Today at] LT",nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[Last] dddd [at] LT",sameElse:"L"},relativeTime:{future:"in %s",past:"%s ago",s:"a few seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",
M:"a month",MM:"%d months",y:"a year",yy:"%d years"},ordinal:function(a){var b=a%10;return a+(1===~~(a%100/10)?"th":1===b?"st":2===b?"nd":3===b?"rd":"th")},week:{dow:1,doy:4}})});(function(a){a(i)})(function(a){a.lang("eo",{months:"januaro februaro marto aprilo majo junio julio aÅgusto septembro oktobro novembro decembro".split(" "),monthsShort:"jan feb mar apr maj jun jul aÅg sep okt nov dec".split(" "),weekdays:"Dimanĉo Lundo Mardo Merkredo Ä´aÅdo Vendredo Sabato".split(" "),weekdaysShort:"Dim Lun Mard Merk Ä´aÅ Ven Sab".split(" "),
weekdaysMin:"Di Lu Ma Me Ä´a Ve Sa".split(" "),longDateFormat:{LT:"HH:mm",L:"YYYY-MM-DD",LL:"D[-an de] MMMM, YYYY",LLL:"D[-an de] MMMM, YYYY LT",LLLL:"dddd, [la] D[-an de] MMMM, YYYY LT"},meridiem:function(a,b,d){return 11<a?d?"p.t.m.":"P.T.M.":d?"a.t.m.":"A.T.M."},calendar:{sameDay:"[HodiaÅ je] LT",nextDay:"[MorgaÅ je] LT",nextWeek:"dddd [je] LT",lastDay:"[HieraÅ je] LT",lastWeek:"[pasinta] dddd [je] LT",sameElse:"L"},relativeTime:{future:"je %s",past:"antaÅ %s",s:"sekundoj",m:"minuto",mm:"%d minutoj",
h:"horo",hh:"%d horoj",d:"tago",dd:"%d tagoj",M:"monato",MM:"%d monatoj",y:"jaro",yy:"%d jaroj"},ordinal:"%da",week:{dow:1,doy:7}})});(function(a){a(i)})(function(a){a.lang("es",{months:"enero febrero marzo abril mayo junio julio agosto septiembre octubre noviembre diciembre".split(" "),monthsShort:"ene. feb. mar. abr. may. jun. jul. ago. sep. oct. nov. dic.".split(" "),weekdays:"domingo lunes martes miércoles jueves viernes sábado".split(" "),weekdaysShort:"dom. lun. mar. mié. jue. vie. sáb.".split(" "),
weekdaysMin:"Do Lu Ma Mi Ju Vi Sá".split(" "),longDateFormat:{LT:"H:mm",L:"DD/MM/YYYY",LL:"D [de] MMMM [de] YYYY",LLL:"D [de] MMMM [de] YYYY LT",LLLL:"dddd, D [de] MMMM [de] YYYY LT"},calendar:{sameDay:function(){return"[hoy a la"+(1!==this.hours()?"s":"")+"] LT"},nextDay:function(){return"[mañana a la"+(1!==this.hours()?"s":"")+"] LT"},nextWeek:function(){return"dddd [a la"+(1!==this.hours()?"s":"")+"] LT"},lastDay:function(){return"[ayer a la"+(1!==this.hours()?"s":"")+"] LT"},lastWeek:function(){return"[el] dddd [pasado a la"+
(1!==this.hours()?"s":"")+"] LT"},sameElse:"L"},relativeTime:{future:"en %s",past:"hace %s",s:"unos segundos",m:"un minuto",mm:"%d minutos",h:"una hora",hh:"%d horas",d:"un dÃa",dd:"%d dÃas",M:"un mes",MM:"%d meses",y:"un año",yy:"%d años"},ordinal:"%dº",week:{dow:1,doy:4}})});(function(a){a(i)})(function(a){a.lang("et",{months:"jaanuar veebruar märts aprill mai juuni juuli august september oktoober november detsember".split(" "),monthsShort:"jaan veebr märts apr mai juuni juuli aug sept okt nov dets".split(" "),
weekdays:"pühapäev esmaspäev teisipäev kolmapäev neljapäev reede laupäev".split(" "),weekdaysShort:"PETKNRL".split(""),weekdaysMin:"PETKNRL".split(""),longDateFormat:{LT:"H:mm",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY LT",LLLL:"dddd, D. MMMM YYYY LT"},calendar:{sameDay:"[Täna,] LT",nextDay:"[Homme,] LT",nextWeek:"[Järgmine] dddd LT",lastDay:"[Eile,] LT",lastWeek:"[Eelmine] dddd LT",sameElse:"L"},relativeTime:{future:"%s pärast",past:"%s tagasi",s:function(a,b,d,e){return e||b?
"paari sekundi":"paar sekundit"},m:"minut",mm:"%d minutit",h:"tund",hh:"%d tundi",d:"päev",dd:"%d päeva",M:"kuu",MM:"%d kuud",y:"aasta",yy:"%d aastat"},ordinal:"%d.",week:{dow:1,doy:4}})});(function(a){a(i)})(function(a){a.lang("eu",{months:"urtarrila otsaila martxoa apirila maiatza ekaina uztaila abuztua iraila urria azaroa abendua".split(" "),monthsShort:"urt. ots. mar. api. mai. eka. uzt. abu. ira. urr. aza. abe.".split(" "),weekdays:"igandea astelehena asteartea asteazkena osteguna ostirala larunbata".split(" "),
weekdaysShort:"ig. al. ar. az. og. ol. lr.".split(" "),weekdaysMin:"ig al ar az og ol lr".split(" "),longDateFormat:{LT:"HH:mm",L:"YYYY-MM-DD",LL:"YYYY[ko] MMMM[ren] D[a]",LLL:"YYYY[ko] MMMM[ren] D[a] LT",LLLL:"dddd, YYYY[ko] MMMM[ren] D[a] LT",l:"YYYY-M-D",ll:"YYYY[ko] MMM D[a]",lll:"YYYY[ko] MMM D[a] LT",llll:"ddd, YYYY[ko] MMM D[a] LT"},calendar:{sameDay:"[gaur] LT[etan]",nextDay:"[bihar] LT[etan]",nextWeek:"dddd LT[etan]",lastDay:"[atzo] LT[etan]",lastWeek:"[aurreko] dddd LT[etan]",sameElse:"L"},
relativeTime:{future:"%s barru",past:"duela %s",s:"segundo batzuk",m:"minutu bat",mm:"%d minutu",h:"ordu bat",hh:"%d ordu",d:"egun bat",dd:"%d egun",M:"hilabete bat",MM:"%d hilabete",y:"urte bat",yy:"%d urte"},ordinal:"%d.",week:{dow:1,doy:7}})});(function(a){a(i)})(function(a){var c={1:"۱",2:"۲",3:"۳",4:"۴",5:"۵",6:"۶",7:"۷",8:"۸",9:"۹","0":"۰"},b={"۱":"1","۲":"2","۳":"3","۴":"4","۵":"5","۶":"6","۷":"7","۸":"8","۹":"9","۰":"0"};a.lang("fa",{months:"ژانویه فوریه مارس آوریل مه ژوئن ژوئیه اوت سپتامبر اکتبر نوامبر دسامبر".split(" "),
monthsShort:"ژانویه فوریه مارس آوریل مه ژوئن ژوئیه اوت سپتامبر اکتبر نوامبر دسامبر".split(" "),weekdays:"یک‌شنبه دوشنبه سه‌شنبه چهارشنبه پنج‌شنبه جمعه شنبه".split(" "),weekdaysShort:"یک‌شنبه دوشنبه سه‌شنبه چهارشنبه پنج‌شنبه جمعه شنبه".split(" "),weekdaysMin:"ÛŒ د س Ú† Ù¾ ج Ø´".split(" "),longDateFormat:{LT:"HH:mm",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY LT",
LLLL:"dddd, D MMMM YYYY LT"},meridiem:function(a){return 12>a?"قبل از ظهر":"بعد از ظهر"},calendar:{sameDay:"[امروز ساعت] LT",nextDay:"[فردا ساعت] LT",nextWeek:"dddd [ساعت] LT",lastDay:"[دیروز ساعت] LT",lastWeek:"dddd [پیش] [ساعت] LT",sameElse:"L"},relativeTime:{future:"در %s",past:"%s پیش",s:"چندین ثانیه",m:"یک دقیقه",mm:"%d دقیقه",h:"یک ساعت",hh:"%d ساعت",d:"یک روز",dd:"%d روز",M:"یک ماه",MM:"%d ماه",
y:"یک سال",yy:"%d سال"},preparse:function(a){return a.replace(/[۰-۹]/g,function(a){return b[a]}).replace(/،/g,",")},postformat:function(a){return a.replace(/\d/g,function(a){return c[a]}).replace(/,/g,"،")},ordinal:"%dم",week:{dow:6,doy:12}})});(function(a){a(i)})(function(a){function c(a,c,e,f){c="";switch(e){case "s":return f?"muutaman sekunnin":"muutama sekunti";case "m":return f?"minuutin":"minuutti";case "mm":c=f?"minuutin":"minuuttia";break;case "h":return f?"tunnin":"tunti";case "hh":c=
f?"tunnin":"tuntia";break;case "d":return f?"päivän":"päivä";case "dd":c=f?"päivän":"päivää";break;case "M":return f?"kuukauden":"kuukausi";case "MM":c=f?"kuukauden":"kuukautta";break;case "y":return f?"vuoden":"vuosi";case "yy":c=f?"vuoden":"vuotta"}return c=(10>a?f?d[a]:b[a]:a)+" "+c}var b="nolla yksi kaksi kolme neljä viisi kuusi seitsemän kahdeksan yhdeksän".split(" "),d=["nolla","yhden","kahden","kolmen","neljän","viiden","kuuden",b[7],b[8],b[9]];a.lang("fi",{months:"tammikuu helmikuu maaliskuu huhtikuu toukokuu kesäkuu heinäkuu elokuu syyskuu lokakuu marraskuu joulukuu".split(" "),
monthsShort:"tammi helmi maalis huhti touko kesä heinä elo syys loka marras joulu".split(" "),weekdays:"sunnuntai maanantai tiistai keskiviikko torstai perjantai lauantai".split(" "),weekdaysShort:"su ma ti ke to pe la".split(" "),weekdaysMin:"su ma ti ke to pe la".split(" "),longDateFormat:{LT:"HH.mm",L:"DD.MM.YYYY",LL:"Do MMMM[ta] YYYY",LLL:"Do MMMM[ta] YYYY, [klo] LT",LLLL:"dddd, Do MMMM[ta] YYYY, [klo] LT",l:"D.M.YYYY",ll:"Do MMM YYYY",lll:"Do MMM YYYY, [klo] LT",llll:"ddd, Do MMM YYYY, [klo] LT"},
calendar:{sameDay:"[tänään] [klo] LT",nextDay:"[huomenna] [klo] LT",nextWeek:"dddd [klo] LT",lastDay:"[eilen] [klo] LT",lastWeek:"[viime] dddd[na] [klo] LT",sameElse:"L"},relativeTime:{future:"%s päästä",past:"%s sitten",s:c,m:c,mm:c,h:c,hh:c,d:c,dd:c,M:c,MM:c,y:c,yy:c},ordinal:"%d.",week:{dow:1,doy:4}})});(function(a){a(i)})(function(a){a.lang("fr-ca",{months:"janvier février mars avril mai juin juillet août septembre octobre novembre décembre".split(" "),monthsShort:"janv. févr. mars avr. mai juin juil. août sept. oct. nov. déc.".split(" "),
weekdays:"dimanche lundi mardi mercredi jeudi vendredi samedi".split(" "),weekdaysShort:"dim. lun. mar. mer. jeu. ven. sam.".split(" "),weekdaysMin:"Di Lu Ma Me Je Ve Sa".split(" "),longDateFormat:{LT:"HH:mm",L:"YYYY-MM-DD",LL:"D MMMM YYYY",LLL:"D MMMM YYYY LT",LLLL:"dddd D MMMM YYYY LT"},calendar:{sameDay:"[Aujourd'hui à ] LT",nextDay:"[Demain à ] LT",nextWeek:"dddd [à ] LT",lastDay:"[Hier à ] LT",lastWeek:"dddd [dernier à ] LT",sameElse:"L"},relativeTime:{future:"dans %s",past:"il y a %s",s:"quelques secondes",
m:"une minute",mm:"%d minutes",h:"une heure",hh:"%d heures",d:"un jour",dd:"%d jours",M:"un mois",MM:"%d mois",y:"un an",yy:"%d ans"},ordinal:function(a){return a+(1===a?"er":"")}})});(function(a){a(i)})(function(a){a.lang("fr",{months:"janvier février mars avril mai juin juillet août septembre octobre novembre décembre".split(" "),monthsShort:"janv. févr. mars avr. mai juin juil. août sept. oct. nov. déc.".split(" "),weekdays:"dimanche lundi mardi mercredi jeudi vendredi samedi".split(" "),
weekdaysShort:"dim. lun. mar. mer. jeu. ven. sam.".split(" "),weekdaysMin:"Di Lu Ma Me Je Ve Sa".split(" "),longDateFormat:{LT:"HH:mm",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY LT",LLLL:"dddd D MMMM YYYY LT"},calendar:{sameDay:"[Aujourd'hui à ] LT",nextDay:"[Demain à ] LT",nextWeek:"dddd [à ] LT",lastDay:"[Hier à ] LT",lastWeek:"dddd [dernier à ] LT",sameElse:"L"},relativeTime:{future:"dans %s",past:"il y a %s",s:"quelques secondes",m:"une minute",mm:"%d minutes",h:"une heure",hh:"%d heures",
d:"un jour",dd:"%d jours",M:"un mois",MM:"%d mois",y:"un an",yy:"%d ans"},ordinal:function(a){return a+(1===a?"er":"")},week:{dow:1,doy:4}})});(function(a){a(i)})(function(a){a.lang("gl",{months:"Xaneiro Febreiro Marzo Abril Maio Xuño Xullo Agosto Setembro Outubro Novembro Decembro".split(" "),monthsShort:"Xan. Feb. Mar. Abr. Mai. Xuñ. Xul. Ago. Set. Out. Nov. Dec.".split(" "),weekdays:"Domingo Luns Martes Mércores Xoves Venres Sábado".split(" "),weekdaysShort:"Dom. Lun. Mar. Mér. Xov. Ven. Sáb.".split(" "),
weekdaysMin:"Do Lu Ma Mé Xo Ve Sá".split(" "),longDateFormat:{LT:"H:mm",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY LT",LLLL:"dddd D MMMM YYYY LT"},calendar:{sameDay:function(){return"[hoxe "+(1!==this.hours()?"ás":"á")+"] LT"},nextDay:function(){return"[mañá "+(1!==this.hours()?"ás":"á")+"] LT"},nextWeek:function(){return"dddd ["+(1!==this.hours()?"ás":"a")+"] LT"},lastDay:function(){return"[onte "+(1!==this.hours()?"á":"a")+"] LT"},lastWeek:function(){return"[o] dddd [pasado "+(1!==
this.hours()?"ás":"a")+"] LT"},sameElse:"L"},relativeTime:{future:function(a){return"uns segundos"===a?"nuns segundos":"en "+a},past:"hai %s",s:"uns segundos",m:"un minuto",mm:"%d minutos",h:"unha hora",hh:"%d horas",d:"un dÃa",dd:"%d dÃas",M:"un mes",MM:"%d meses",y:"un ano",yy:"%d anos"},ordinal:"%dº",week:{dow:1,doy:7}})});(function(a){a(i)})(function(a){a.lang("he",{months:"×™× ×•××¨;פברואר;מרץ;אפריל;מאי;×™×•× ×™;יולי;אוגוסט;ספטמבר;אוקטובר;× ×•×‘×ž×‘×¨;דצמבר".split(";"),
monthsShort:"×™× ×•×³;פבר׳;מרץ;אפר׳;מאי;×™×•× ×™;יולי;אוג׳;ספט׳;אוק׳;× ×•×‘×³;דצמ׳".split(";"),weekdays:"ראשון;×©× ×™;שלישי;רביעי;חמישי;שישי;שבת".split(";"),weekdaysShort:"א׳ ב׳ ג׳ ד׳ ה׳ ו׳ ש׳".split(" "),weekdaysMin:"א × × ×“ ×” ו ש".split(" "),longDateFormat:{LT:"HH:mm",L:"DD/MM/YYYY",LL:"D [×]MMMM YYYY",LLL:"D [×]MMMM YYYY LT",LLLL:"dddd, D [×]MMMM YYYY LT",l:"D/M/YYYY",ll:"D MMM YYYY",lll:"D MMM YYYY LT",llll:"ddd, D MMM YYYY LT"},
calendar:{sameDay:"[היום ב־]LT",nextDay:"[מחר ב־]LT",nextWeek:"dddd [בשעה] LT",lastDay:"[אתמול ב־]LT",lastWeek:"[ביום] dddd [האחרון בשעה] LT",sameElse:"L"},relativeTime:{future:"בעוד %s",past:"×œ×¤× ×™ %s",s:"מספר ×©× ×™×•×ª",m:"דקה",mm:"%d דקות",h:"שעה",hh:function(a){return 2===a?"שעתיים":a+" שעות"},d:"יום",dd:function(a){return 2===a?"יומיים":a+" ימים"},M:"חודש",MM:function(a){return 2===a?"חודשיים":a+" חודשים"},
y:"×©× ×”",yy:function(a){return 2===a?"×©× ×ª×™×™×":a+" ×©× ×™×"}}})});(function(a){a(i)})(function(a){var c={1:"१",2:"२",3:"३",4:"४",5:"५",6:"६",7:"à¥",8:"८",9:"९","0":"०"},b={"१":"1","२":"2","३":"3","४":"4","५":"5","६":"6","à¥":"7","८":"8","९":"9","०":"0"};a.lang("hi",{months:"जनवरी फ़रवरी मार्च अप्रैल मई जून जुलाई अगस्त सितम्बर अक्टूबर नवम्बर दिसम्बर".split(" "),
monthsShort:"जन. फ़र. मार्च अप्रै. मई जून जुल. अग. सित. अक्टू. नव. दिस.".split(" "),weekdays:"रविवार सोमवार मंगलवार बुधवार गुरूवार शुक्रवार शनिवार".split(" "),weekdaysShort:"रवि सोम मंगल बुध गुरू शुक्र शनि".split(" "),weekdaysMin:"र सो मं बु गु शु श".split(" "),
longDateFormat:{LT:"A h:mm बजे",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, LT",LLLL:"dddd, D MMMM YYYY, LT"},calendar:{sameDay:"[आज] LT",nextDay:"[कल] LT",nextWeek:"dddd, LT",lastDay:"[कल] LT",lastWeek:"[पिछले] dddd, LT",sameElse:"L"},relativeTime:{future:"%s में",past:"%s पहले",s:"कुछ ही क्षण",m:"एक मिनट",mm:"%d मिनट",h:"एक घंटा",hh:"%d घंटे",d:"एक दिन",dd:"%d दिन",M:"एक महीने",
MM:"%d महीने",y:"एक वर्ष",yy:"%d वर्ष"},preparse:function(a){return a.replace(/[१२३४५६à¥à¥®à¥¯à¥¦]/g,function(a){return b[a]})},postformat:function(a){return a.replace(/\d/g,function(a){return c[a]})},meridiem:function(a){return 4>a?"रात":10>a?"सुबह":17>a?"दोपहर":20>a?"शाम":"रात"},week:{dow:0,doy:6}})});(function(a){a(i)})(function(a){function c(a,c,b){var d=a+" ";switch(b){case "m":return c?"jedna minuta":"jedne minute";
case "mm":return 1===a?d+"minuta":2===a||3===a||4===a?d+"minute":d+"minuta";case "h":return c?"jedan sat":"jednog sata";case "hh":return 1===a?d+"sat":2===a||3===a||4===a?d+"sata":d+"sati";case "dd":return 1===a?d+"dan":d+"dana";case "MM":return 1===a?d+"mjesec":2===a||3===a||4===a?d+"mjeseca":d+"mjeseci";case "yy":return 1===a?d+"godina":2===a||3===a||4===a?d+"godine":d+"godina"}}a.lang("hr",{months:"sječanj veljača ožujak travanj svibanj lipanj srpanj kolovoz rujan listopad studeni prosinac".split(" "),
monthsShort:"sje. vel. ožu. tra. svi. lip. srp. kol. ruj. lis. stu. pro.".split(" "),weekdays:"nedjelja ponedjeljak utorak srijeda četvrtak petak subota".split(" "),weekdaysShort:"ned. pon. uto. sri. čet. pet. sub.".split(" "),weekdaysMin:"ne po ut sr če pe su".split(" "),longDateFormat:{LT:"H:mm",L:"DD. MM. YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY LT",LLLL:"dddd, D. MMMM YYYY LT"},calendar:{sameDay:"[danas u] LT",nextDay:"[sutra u] LT",nextWeek:function(){switch(this.day()){case 0:return"[u] [nedjelju] [u] LT";
case 3:return"[u] [srijedu] [u] LT";case 6:return"[u] [subotu] [u] LT";case 1:case 2:case 4:case 5:return"[u] dddd [u] LT"}},lastDay:"[jučer u] LT",lastWeek:function(){switch(this.day()){case 0:case 3:return"[prošlu] dddd [u] LT";case 6:return"[prošle] [subote] [u] LT";case 1:case 2:case 4:case 5:return"[prošli] dddd [u] LT"}},sameElse:"L"},relativeTime:{future:"za %s",past:"prije %s",s:"par sekundi",m:c,mm:c,h:c,hh:c,d:"dan",dd:c,M:"mjesec",MM:c,y:"godinu",yy:c},ordinal:"%d.",week:{dow:1,doy:7}})});
(function(a){a(i)})(function(a){function c(a,c,b,d){switch(b){case "s":return d||c?"néhány másodperc":"néhány másodperce";case "m":return"egy"+(d||c?" perc":" perce");case "mm":return a+(d||c?" perc":" perce");case "h":return"egy"+(d||c?" óra":" órája");case "hh":return a+(d||c?" óra":" órája");case "d":return"egy"+(d||c?" nap":" napja");case "dd":return a+(d||c?" nap":" napja");case "M":return"egy"+(d||c?" hónap":" hónapja");case "MM":return a+(d||c?" hónap":" hónapja");case "y":return"egy"+
(d||c?" év":" éve");case "yy":return a+(d||c?" év":" éve")}return""}function b(a){return(a?"":"[múlt] ")+"["+d[this.day()]+"] LT[-kor]"}var d="vasárnap hétfÅn kedden szerdán csütörtökön pénteken szombaton".split(" ");a.lang("hu",{months:"január február március április május június július augusztus szeptember október november december".split(" "),monthsShort:"jan feb márc ápr máj jún júl aug szept okt nov dec".split(" "),weekdays:"vasárnap hétfÅ kedd szerda csütörtök péntek szombat".split(" "),
weekdaysShort:"v h k sze cs p szo".split(" "),longDateFormat:{LT:"H:mm",L:"YYYY.MM.DD.",LL:"YYYY. MMMM D.",LLL:"YYYY. MMMM D., LT",LLLL:"YYYY. MMMM D., dddd LT"},calendar:{sameDay:"[ma] LT[-kor]",nextDay:"[holnap] LT[-kor]",nextWeek:function(){return b.call(this,!0)},lastDay:"[tegnap] LT[-kor]",lastWeek:function(){return b.call(this,!1)},sameElse:"L"},relativeTime:{future:"%s múlva",past:"%s",s:c,m:c,mm:c,h:c,hh:c,d:c,dd:c,M:c,MM:c,y:c,yy:c},ordinal:"%d.",week:{dow:1,doy:7}})});(function(a){a(i)})(function(a){a.lang("id",
{months:"Januari Februari Maret April Mei Juni Juli Agustus September Oktober November Desember".split(" "),monthsShort:"Jan Feb Mar Apr Mei Jun Jul Ags Sep Okt Nov Des".split(" "),weekdays:"Minggu Senin Selasa Rabu Kamis Jumat Sabtu".split(" "),weekdaysShort:"Min Sen Sel Rab Kam Jum Sab".split(" "),weekdaysMin:"Mg Sn Sl Rb Km Jm Sb".split(" "),longDateFormat:{LT:"HH.mm",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY [pukul] LT",LLLL:"dddd, D MMMM YYYY [pukul] LT"},meridiem:function(a){return 11>
a?"pagi":15>a?"siang":19>a?"sore":"malam"},calendar:{sameDay:"[Hari ini pukul] LT",nextDay:"[Besok pukul] LT",nextWeek:"dddd [pukul] LT",lastDay:"[Kemarin pukul] LT",lastWeek:"dddd [lalu pukul] LT",sameElse:"L"},relativeTime:{future:"dalam %s",past:"%s yang lalu",s:"beberapa detik",m:"semenit",mm:"%d menit",h:"sejam",hh:"%d jam",d:"sehari",dd:"%d hari",M:"sebulan",MM:"%d bulan",y:"setahun",yy:"%d tahun"},week:{dow:1,doy:7}})});(function(a){a(i)})(function(a){function c(a){return 11!==a%100&&1===a%
10?!1:!0}function b(a,d,g,e){var f=a+" ";switch(g){case "s":return d||e?"nokkrar sekúndur":"nokkrum sekúndum";case "m":return d?"mÃnúta":"mÃnútu";case "mm":return c(a)?f+(d||e?"mÃnútur":"mÃnútum"):d?f+"mÃnúta":f+"mÃnútu";case "hh":return c(a)?f+(d||e?"klukkustundir":"klukkustundum"):f+"klukkustund";case "d":return d?"dagur":e?"dag":"degi";case "dd":return c(a)?d?f+"dagar":f+(e?"daga":"dögum"):d?f+"dagur":f+(e?"dag":"degi");case "M":return d?"mánuður":e?"mánuð":"mánuði";case "MM":return c(a)?
d?f+"mánuðir":f+(e?"mánuði":"mánuðum"):d?f+"mánuður":f+(e?"mánuð":"mánuði");case "y":return d||e?"ár":"ári";case "yy":return c(a)?f+(d||e?"ár":"árum"):f+(d||e?"ár":"ári")}}a.lang("is",{months:"janúar febrúar mars aprÃl maà júnà júlà ágúst september október nóvember desember".split(" "),monthsShort:"jan feb mar apr maà jún júl ágú sep okt nóv des".split(" "),weekdays:"sunnudagur mánudagur þriðjudagur miðvikudagur fimmtudagur föstudagur laugardagur".split(" "),weekdaysShort:"sun mán þri mið fim fös lau".split(" "),
weekdaysMin:"Su Má Þr Mi Fi Fö La".split(" "),longDateFormat:{LT:"H:mm",L:"DD/MM/YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY [kl.] LT",LLLL:"dddd, D. MMMM YYYY [kl.] LT"},calendar:{sameDay:"[à dag kl.] LT",nextDay:"[á morgun kl.] LT",nextWeek:"dddd [kl.] LT",lastDay:"[à gær kl.] LT",lastWeek:"[sÃðasta] dddd [kl.] LT",sameElse:"L"},relativeTime:{future:"eftir %s",past:"fyrir %s sÃðan",s:b,m:b,mm:b,h:"klukkustund",hh:b,d:b,dd:b,M:b,MM:b,y:b,yy:b},ordinal:"%d.",week:{dow:1,doy:4}})});(function(a){a(i)})(function(a){a.lang("it",
{months:"Gennaio Febbraio Marzo Aprile Maggio Giugno Luglio Agosto Settembre Ottobre Novembre Dicembre".split(" "),monthsShort:"Gen Feb Mar Apr Mag Giu Lug Ago Set Ott Nov Dic".split(" "),weekdays:"Domenica Lunedì Martedì Mercoledì Giovedì Venerdì Sabato".split(" "),weekdaysShort:"Dom Lun Mar Mer Gio Ven Sab".split(" "),weekdaysMin:"D L Ma Me G V S".split(" "),longDateFormat:{LT:"HH:mm",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY LT",LLLL:"dddd, D MMMM YYYY LT"},calendar:{sameDay:"[Oggi alle] LT",
nextDay:"[Domani alle] LT",nextWeek:"dddd [alle] LT",lastDay:"[Ieri alle] LT",lastWeek:"[lo scorso] dddd [alle] LT",sameElse:"L"},relativeTime:{future:function(a){return(/^[0-9].+$/.test(a)?"tra":"in")+" "+a},past:"%s fa",s:"secondi",m:"un minuto",mm:"%d minuti",h:"un'ora",hh:"%d ore",d:"un giorno",dd:"%d giorni",M:"un mese",MM:"%d mesi",y:"un anno",yy:"%d anni"},ordinal:"%dº",week:{dow:1,doy:4}})});(function(a){a(i)})(function(a){a.lang("ja",{months:"1月 2月 3月 4月 5月 6月 7月 8月 9月 10月 11月 12月".split(" "),
monthsShort:"1月 2月 3月 4月 5月 6月 7月 8月 9月 10月 11月 12月".split(" "),weekdays:"日曜日 月曜日 火曜日 水曜日 木曜日 金曜日 土曜日".split(" "),weekdaysShort:"æ—¥ 月 火 æ°´ 木 金 土".split(" "),weekdaysMin:"æ—¥ 月 火 æ°´ 木 金 土".split(" "),longDateFormat:{LT:"Ah晈†",L:"YYYY/MM/DD",LL:"YYYYå¹´M月Dæ—¥",LLL:"YYYYå¹´M月Dæ—¥LT",LLLL:"YYYYå¹´M月Dæ—¥LT dddd"},meridiem:function(a){return 12>a?"午前":"午後"},calendar:{sameDay:"[今日] LT",nextDay:"[明日] LT",
nextWeek:"[来週]dddd LT",lastDay:"[昨日] LT",lastWeek:"[前週]dddd LT",sameElse:"L"},relativeTime:{future:"%s後",past:"%s前",s:"数秒",m:"1分",mm:"%d分",h:"1æ™é“",hh:"%dæ™é“",d:"1æ—¥",dd:"%dæ—¥",M:"1ヶ月",MM:"%dヶ月",y:"1å¹´",yy:"%då¹´"}})});(function(a){a(i)})(function(a){a.lang("ka",{months:function(a,b){return{nominative:"იანვარი;თებერვალი;მარტი;აპრილი;მაისი;ივნისი;ივლისი;აგვისტო;სექტემბერი;ოქტომბერი;ნოემბერი;დეკემბერი".split(";"),
accusative:"იანვარს;თებერვალს;მარტს;აპრილის;მაისს;ივნისს;ივლისს;აგვისტს;სექტემბერს;ოქტომბერს;ნოემბერს;დეკემბერს".split(";")}[/D[oD] *MMMM?/.test(b)?"accusative":"nominative"][a.month()]},monthsShort:"იან;თებ;მარ;აპრ;მაი;ივნ;ივლ;აგვ;სექ;ოქტ;ნოე;დეკ".split(";"),
weekdays:function(a,b){return{nominative:"კვირა;ორშაბათი;სამშაბათი;ოთხშაბათი;ხუთშაბათი;პარასკევი;შაბათი".split(";"),accusative:"კვირას;ორშაბათს;სამშაბათს;ოთხშაბათს;ხუთშაბათს;პარასკევს;შაბათს".split(";")}[/(წინა|შემდეგ)/.test(b)?"accusative":"nominative"][a.day()]},
weekdaysShort:"კვი;ორშ;სამ;ოთხ;ხუთ;პარ;შაბ".split(";"),weekdaysMin:"კვ;ორ;სა;ოთ;ხუ;პა;შა".split(";"),longDateFormat:{LT:"h:mm A",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY LT",LLLL:"dddd, D MMMM YYYY LT"},calendar:{sameDay:"[დღეს] LT[-ზე]",nextDay:"[ხვალ] LT[-ზე]",lastDay:"[გუშინ] LT[-ზე]",nextWeek:"[შემდეგ] dddd LT[-ზე]",lastWeek:"[წინა] dddd LT-ზე",sameElse:"L"},
relativeTime:{future:function(a){return/(წამი|წუთი|საათი|წელი)/.test(a)?a.replace(/ი$/,"ში"):a+"ში"},past:function(a){if(/(წამი|წუთი|საათი|დღე|თვე)/.test(a))return a.replace(/(ი|ე)$/,"ის წინ");if(/წელი/.test(a))return a.replace(/წელი$/,"წლის წინ")},s:"რამდენიმე წამი",m:"წუთი",mm:"%d წუთი",h:"საათი",hh:"%d საათი",
d:"დღე",dd:"%d დღე",M:"თვე",MM:"%d თვე",y:"წელი",yy:"%d წელი"},ordinal:function(a){return 0===a?a:1===a?a+"-ლი":20>a||100>=a&&0===a%20||0===a%100?"მე-"+a:a+"-ე"},week:{dow:1,doy:7}})});(function(a){a(i)})(function(a){a.lang("ko",{months:"1ì” 2ì” 3ì” 4ì” 5ì” 6ì” 7ì” 8ì” 9ì” 10ì” 11ì” 12ì”".split(" "),monthsShort:"1ì” 2ì” 3ì” 4ì” 5ì” 6ì” 7ì” 8ì” 9ì” 10ì” 11ì” 12ì”".split(" "),weekdays:"일요일;월요일;화요일;수요일;목요일;금요일;í† ìš”ì¼".split(";"),
weekdaysShort:"일;ì›”;í™”;수;목;금;í† ".split(";"),weekdaysMin:"일;ì›”;í™”;수;목;금;í† ".split(";"),longDateFormat:{LT:"A hìœ mm분",L:"YYYY.MM.DD",LL:"YYYYë…„ MMMM D일",LLL:"YYYYë…„ MMMM D일 LT",LLLL:"YYYYë…„ MMMM D일 dddd LT"},meridiem:function(a){return 12>a?"ì˜¤ì „":"오후"},calendar:{sameDay:"오늘 LT",nextDay:"내일 LT",nextWeek:"dddd LT",lastDay:"ì–´ì œ LT",lastWeek:"지난주 dddd LT",sameElse:"L"},relativeTime:{future:"%s 후",past:"%s ì „",s:"몇초",ss:"%dì´ˆ",m:"일분",
mm:"%d분",h:"한시간",hh:"%dìœê°„",d:"하루",dd:"%d일",M:"한달",MM:"%dë¬",y:"일년",yy:"%dë…„"},ordinal:"%d일"})});(function(a){a(i)})(function(a){function c(a,c,d){var e=a+" ";d=b[d].split("_");a=c?1===a%10&&11!==a?d[2]:d[3]:1===a%10&&11!==a?d[0]:d[1];return e+a}var b={mm:"minÅ«ti_minÅ«tes_minÅ«te_minÅ«tes",hh:"stundu_stundas_stunda_stundas",dd:"dienu_dienas_diena_dienas",MM:"mÄ“nesi_mÄ“neÅ¡us_mÄ“nesis_mÄ“neÅ¡i",yy:"gadu_gadus_gads_gadi"};a.lang("lv",{months:"janvāris februāris marts aprÄ«lis maijs jÅ«nijs jÅ«lijs augusts septembris oktobris novembris decembris".split(" "),
monthsShort:"jan feb mar apr mai jūn jūl aug sep okt nov dec".split(" "),weekdays:"svētdiena pirmdiena otrdiena trešdiena ceturtdiena piektdiena sestdiena".split(" "),weekdaysShort:"Sv P O T C Pk S".split(" "),weekdaysMin:"Sv P O T C Pk S".split(" "),longDateFormat:{LT:"HH:mm",L:"DD.MM.YYYY",LL:"YYYY. [gada] D. MMMM",LLL:"YYYY. [gada] D. MMMM, LT",LLLL:"YYYY. [gada] D. MMMM, dddd, LT"},calendar:{sameDay:"[Šodien pulksten] LT",nextDay:"[Rīt pulksten] LT",nextWeek:"dddd [pulksten] LT",lastDay:"[Vakar pulksten] LT",
lastWeek:"[Pagājušā] dddd [pulksten] LT",sameElse:"L"},relativeTime:{future:"%s vēlāk",past:"%s agrāk",s:"dažas sekundes",m:"minūti",mm:c,h:"stundu",hh:c,d:"dienu",dd:c,M:"mēnesi",MM:c,y:"gadu",yy:c},ordinal:"%d.",week:{dow:1,doy:4}})});(function(a){a(i)})(function(a){a.lang("ml",{months:"ജനുവരി ഫെബ്രുവരി മാർച്ച് ഏപ്രിൽ മേയ് ജൂൺ ജൂലൈ ഓഗസ്റ്റ് സെപ്റ്റംബർ ഒക്ടോബർ നവംബർ ഡിസംബർ".split(" "),
monthsShort:"ജനു. ഫെബ്രു. മാർ. ഏപ്രി. മേയ് ജൂൺ ജൂലൈ. ഓഗ. സെപ്റ്റ. ഒക്ടോ. നവം. ഡിസം.".split(" "),weekdays:"ഞായറാഴ്ച തിങ്കളാഴ്ച ചൊവ്വാഴ്ച ബുധനാഴ്ച വ്യാഴാഴ്ച വെള്ളിയാഴ്ച ശനിയാഴ്ച".split(" "),weekdaysShort:"ഞായർ തിങ്കൾ ചൊവ്വ ബുധൻ വ്യാഴം വെള്ളി ശനി".split(" "),
weekdaysMin:"ഞാ തി ചൊ ബു വ്യാ വെ ശ".split(" "),longDateFormat:{LT:"A h:mm -നു",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, LT",LLLL:"dddd, D MMMM YYYY, LT"},calendar:{sameDay:"[ഇന്ന്] LT",nextDay:"[നാളെ] LT",nextWeek:"dddd, LT",lastDay:"[ഇന്നലെ] LT",lastWeek:"[കഴിഞ്ഞ] dddd, LT",sameElse:"L"},relativeTime:{future:"%s കഴിഞ്ഞ്",past:"%s മുൻപ്",s:"അൽപ നിമിഷങ്ങൾ",m:"ഒരു മിനിറ്റ്",
mm:"%d മിനിറ്റ്",h:"ഒരു മണിക്കൂർ",hh:"%d മണിക്കൂർ",d:"ഒരു ദിവസം",dd:"%d ദിവസം",M:"ഒരു മാസം",MM:"%d മാസം",y:"ഒരു വർഷം",yy:"%d വർഷം"},meridiem:function(a){return 4>a?"രാത്രി":12>a?"രാവിലെ":17>a?"ഉച്ച കഴിഞ്ഞ്":20>a?"വൈകുന്നേരം":"രാത്രി"}})});(function(a){a(i)})(function(a){var c={1:"१",2:"२",3:"३",
4:"४",5:"५",6:"६",7:"à¥",8:"८",9:"९","0":"०"},b={"१":"1","२":"2","३":"3","४":"4","५":"5","६":"6","à¥":"7","८":"8","९":"9","०":"0"};a.lang("mr",{months:"जानेवारी फेब्रुवारी मार्च एप्रिल मे जून जुलै ऑगस्ट सप्टेंबर ऑक्टोबर नोव्हेंबर डिसेंबर".split(" "),monthsShort:"जाने. फेब्रु. मार्च. एप्रि. मे. जून. जुलै. ऑग. सप्टें. ऑक्टो. नोव्हें. डिसें.".split(" "),
weekdays:"रविवार सोमवार मंगळवार बुधवार गुरूवार शुक्रवार शनिवार".split(" "),weekdaysShort:"रवि सोम मंगळ बुध गुरू शुक्र शनि".split(" "),weekdaysMin:"र सो मं बु गु शु श".split(" "),longDateFormat:{LT:"A h:mm वाजता",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, LT",LLLL:"dddd, D MMMM YYYY, LT"},calendar:{sameDay:"[आज] LT",
nextDay:"[उद्या] LT",nextWeek:"dddd, LT",lastDay:"[काल] LT",lastWeek:"[मागील] dddd, LT",sameElse:"L"},relativeTime:{future:"%s नंतर",past:"%s पूर्वी",s:"सेकंद",m:"एक मिनिट",mm:"%d मिनिटे",h:"एक तास",hh:"%d तास",d:"एक दिवस",dd:"%d दिवस",M:"एक महिना",MM:"%d महिने",y:"एक वर्ष",yy:"%d वर्षे"},preparse:function(a){return a.replace(/[१२३४५६à¥à¥®à¥¯à¥¦]/g,
function(a){return b[a]})},postformat:function(a){return a.replace(/\d/g,function(a){return c[a]})},meridiem:function(a){return 4>a?"रात्री":10>a?"सकाळी":17>a?"दुपारी":20>a?"सायंकाळी":"रात्री"},week:{dow:0,doy:6}})});(function(a){a(i)})(function(a){a.lang("ms-my",{months:"Januari Februari Mac April Mei Jun Julai Ogos September Oktober November Disember".split(" "),monthsShort:"Jan Feb Mac Apr Mei Jun Jul Ogs Sep Okt Nov Dis".split(" "),
weekdays:"Ahad Isnin Selasa Rabu Khamis Jumaat Sabtu".split(" "),weekdaysShort:"Ahd Isn Sel Rab Kha Jum Sab".split(" "),weekdaysMin:"Ah Is Sl Rb Km Jm Sb".split(" "),longDateFormat:{LT:"HH.mm",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY [pukul] LT",LLLL:"dddd, D MMMM YYYY [pukul] LT"},meridiem:function(a){return 11>a?"pagi":15>a?"tengahari":19>a?"petang":"malam"},calendar:{sameDay:"[Hari ini pukul] LT",nextDay:"[Esok pukul] LT",nextWeek:"dddd [pukul] LT",lastDay:"[Kelmarin pukul] LT",lastWeek:"dddd [lepas pukul] LT",
sameElse:"L"},relativeTime:{future:"dalam %s",past:"%s yang lepas",s:"beberapa saat",m:"seminit",mm:"%d minit",h:"sejam",hh:"%d jam",d:"sehari",dd:"%d hari",M:"sebulan",MM:"%d bulan",y:"setahun",yy:"%d tahun"},week:{dow:1,doy:7}})});(function(a){a(i)})(function(a){a.lang("nb",{months:"januar februar mars april mai juni juli august september oktober november desember".split(" "),monthsShort:"jan. feb. mars april mai juni juli aug. sep. okt. nov. des.".split(" "),weekdays:"søndag mandag tirsdag onsdag torsdag fredag lørdag".split(" "),
weekdaysShort:"sø. ma. ti. on. to. fr. lø.".split(" "),weekdaysMin:"sø ma ti on to fr lø".split(" "),longDateFormat:{LT:"H.mm",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY [kl.] LT",LLLL:"dddd D. MMMM YYYY [kl.] LT"},calendar:{sameDay:"[i dag kl.] LT",nextDay:"[i morgen kl.] LT",nextWeek:"dddd [kl.] LT",lastDay:"[i går kl.] LT",lastWeek:"[forrige] dddd [kl.] LT",sameElse:"L"},relativeTime:{future:"om %s",past:"for %s siden",s:"noen sekunder",m:"ett minutt",mm:"%d minutter",h:"en time",
hh:"%d timer",d:"en dag",dd:"%d dager",M:"en mÃ¥ned",MM:"%d mÃ¥neder",y:"ett Ã¥r",yy:"%d Ã¥r"},ordinal:"%d.",week:{dow:1,doy:4}})});(function(a){a(i)})(function(a){var b={1:"१",2:"२",3:"३",4:"४",5:"५",6:"६",7:"à¥",8:"८",9:"९","0":"०"},d={"१":"1","२":"2","३":"3","४":"4","५":"5","६":"6","à¥":"7","८":"8","९":"9","०":"0"};a.lang("ne",{months:"जनवरी फेब्रुवरी मार्च अप्रिल मई जुन जुलाई अगष्ट सेप्टेम्बर अक्टोबर नोà¤à¥‡à¤®à¥à¤¬à¤° डिसेम्बर".split(" "),
monthsShort:"जन. फेब्रु. मार्च अप्रि. मई जुन जुलाई. अग. सेप्ट. अक्टो. नोà¤à¥‡. डिसे.".split(" "),weekdays:"आइतबार सोमबार मङ्गलबार बुधबार बिहिबार शुक्रबार शनिबार".split(" "),weekdaysShort:"आइत. सोम. मङ्गल. बुध. बिहि. शुक्र. शनि.".split(" "),weekdaysMin:"आइ. सो. मङ् बु. बि. शु. श.".split(" "),
longDateFormat:{LT:"Aकॠh:mm बजे",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, LT",LLLL:"dddd, D MMMM YYYY, LT"},preparse:function(a){return a.replace(/[१२३४५६à¥à¥®à¥¯à¥¦]/g,function(a){return d[a]})},postformat:function(a){return a.replace(/\d/g,function(a){return b[a]})},meridiem:function(a){return 3>a?"राती":10>a?"बिहान":15>a?"दिउँसो":18>a?"बेलुका":20>a?"साँझ":"राती"},calendar:{sameDay:"[आज] LT",nextDay:"[à¤à¥‹à¤²à¥€] LT",
nextWeek:"[आउँदो] dddd[,] LT",lastDay:"[हिजो] LT",lastWeek:"[गएको] dddd[,] LT",sameElse:"L"},relativeTime:{future:"%sमा",past:"%s अगाडी",s:"केही समय",m:"एक मिनेट",mm:"%d मिनेट",h:"एक घण्टा",hh:"%d घण्टा",d:"एक दिन",dd:"%d दिन",M:"एक महिना",MM:"%d महिना",y:"एक बर्ष",yy:"%d बर्ष"},week:{dow:1,doy:7}})});(function(a){a(i)})(function(a){var b=
"jan. feb. mrt. apr. mei jun. jul. aug. sep. okt. nov. dec.".split(" "),d="jan feb mrt apr mei jun jul aug sep okt nov dec".split(" ");a.lang("nl",{months:"januari februari maart april mei juni juli augustus september oktober november december".split(" "),monthsShort:function(a,e){return/-MMM-/.test(e)?d[a.month()]:b[a.month()]},weekdays:"zondag maandag dinsdag woensdag donderdag vrijdag zaterdag".split(" "),weekdaysShort:"zo. ma. di. wo. do. vr. za.".split(" "),weekdaysMin:"Zo Ma Di Wo Do Vr Za".split(" "),
longDateFormat:{LT:"HH:mm",L:"DD-MM-YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY LT",LLLL:"dddd D MMMM YYYY LT"},calendar:{sameDay:"[Vandaag om] LT",nextDay:"[Morgen om] LT",nextWeek:"dddd [om] LT",lastDay:"[Gisteren om] LT",lastWeek:"[afgelopen] dddd [om] LT",sameElse:"L"},relativeTime:{future:"over %s",past:"%s geleden",s:"een paar seconden",m:"één minuut",mm:"%d minuten",h:"één uur",hh:"%d uur",d:"één dag",dd:"%d dagen",M:"één maand",MM:"%d maanden",y:"één jaar",yy:"%d jaar"},ordinal:function(a){return a+
(1===a||8===a||20<=a?"ste":"de")},week:{dow:1,doy:4}})});(function(a){a(i)})(function(a){a.lang("nn",{months:"januar februar mars april mai juni juli august september oktober november desember".split(" "),monthsShort:"jan feb mar apr mai jun jul aug sep okt nov des".split(" "),weekdays:"sundag måndag tysdag onsdag torsdag fredag laurdag".split(" "),weekdaysShort:"sun mån tys ons tor fre lau".split(" "),weekdaysMin:"su må ty on to fr lø".split(" "),longDateFormat:{LT:"HH:mm",L:"DD.MM.YYYY",LL:"D MMMM YYYY",
LLL:"D MMMM YYYY LT",LLLL:"dddd D MMMM YYYY LT"},calendar:{sameDay:"[I dag klokka] LT",nextDay:"[I morgon klokka] LT",nextWeek:"dddd [klokka] LT",lastDay:"[I går klokka] LT",lastWeek:"[Føregående] dddd [klokka] LT",sameElse:"L"},relativeTime:{future:"om %s",past:"for %s siden",s:"noen sekund",m:"ett minutt",mm:"%d minutt",h:"en time",hh:"%d timar",d:"en dag",dd:"%d dagar",M:"en månad",MM:"%d månader",y:"ett år",yy:"%d år"},ordinal:"%d.",week:{dow:1,doy:4}})});(function(a){a(i)})(function(a){function b(a){return 5>
a%10&&1<a%10&&1!==~~(a/10)}function d(a,e,g){var f=a+" ";switch(g){case "m":return e?"minuta":"minutÄ™";case "mm":return f+(b(a)?"minuty":"minut");case "h":return e?"godzina":"godzinÄ™";case "hh":return f+(b(a)?"godziny":"godzin");case "MM":return f+(b(a)?"miesiÄ…ce":"miesiÄ™cy");case "yy":return f+(b(a)?"lata":"lat")}}var e="styczeÅ„ luty marzec kwiecieÅ„ maj czerwiec lipiec sierpieÅ„ wrzesieÅ„ październik listopad grudzieÅ„".split(" "),f="stycznia lutego marca kwietnia maja czerwca lipca sierpnia wrzeÅnia października listopada grudnia".split(" ");
a.lang("pl",{months:function(a,b){return/D MMMM/.test(b)?f[a.month()]:e[a.month()]},monthsShort:"sty lut mar kwi maj cze lip sie wrz paź lis gru".split(" "),weekdays:"niedziela poniedziaÅek wtorek Åroda czwartek piÄ…tek sobota".split(" "),weekdaysShort:"nie pon wt År czw pt sb".split(" "),weekdaysMin:"N Pn Wt Åšr Cz Pt So".split(" "),longDateFormat:{LT:"HH:mm",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY LT",LLLL:"dddd, D MMMM YYYY LT"},calendar:{sameDay:"[DziÅ o] LT",nextDay:"[Jutro o] LT",
nextWeek:"[W] dddd [o] LT",lastDay:"[Wczoraj o] LT",lastWeek:function(){switch(this.day()){case 0:return"[W zeszÅÄ… niedzielÄ™ o] LT";case 3:return"[W zeszÅÄ… ÅrodÄ™ o] LT";case 6:return"[W zeszÅÄ… sobotÄ™ o] LT";default:return"[W zeszÅy] dddd [o] LT"}},sameElse:"L"},relativeTime:{future:"za %s",past:"%s temu",s:"kilka sekund",m:d,mm:d,h:d,hh:d,d:"1 dzieÅ„",dd:"%d dni",M:"miesiÄ…c",MM:d,y:"rok",yy:d},ordinal:"%d.",week:{dow:1,doy:4}})});(function(a){a(i)})(function(a){a.lang("pt-br",{months:"Janeiro Fevereiro Março Abril Maio Junho Julho Agosto Setembro Outubro Novembro Dezembro".split(" "),
monthsShort:"Jan Fev Mar Abr Mai Jun Jul Ago Set Out Nov Dez".split(" "),weekdays:"Domingo Segunda-feira Terça-feira Quarta-feira Quinta-feira Sexta-feira Sábado".split(" "),weekdaysShort:"Dom Seg Ter Qua Qui Sex Sáb".split(" "),weekdaysMin:"Dom 2ª 3ª 4ª 5ª 6ª Sáb".split(" "),longDateFormat:{LT:"HH:mm",L:"DD/MM/YYYY",LL:"D [de] MMMM [de] YYYY",LLL:"D [de] MMMM [de] YYYY LT",LLLL:"dddd, D [de] MMMM [de] YYYY LT"},calendar:{sameDay:"[Hoje à s] LT",nextDay:"[Amanhã à s] LT",nextWeek:"dddd [à s] LT",
lastDay:"[Ontem à s] LT",lastWeek:function(){return 0===this.day()||6===this.day()?"[Último] dddd [à s] LT":"[Última] dddd [à s] LT"},sameElse:"L"},relativeTime:{future:"em %s",past:"%s atrás",s:"segundos",m:"um minuto",mm:"%d minutos",h:"uma hora",hh:"%d horas",d:"um dia",dd:"%d dias",M:"um mês",MM:"%d meses",y:"um ano",yy:"%d anos"},ordinal:"%dº"})});(function(a){a(i)})(function(a){a.lang("pt",{months:"Janeiro Fevereiro Março Abril Maio Junho Julho Agosto Setembro Outubro Novembro Dezembro".split(" "),
monthsShort:"Jan Fev Mar Abr Mai Jun Jul Ago Set Out Nov Dez".split(" "),weekdays:"Domingo Segunda-feira Terça-feira Quarta-feira Quinta-feira Sexta-feira Sábado".split(" "),weekdaysShort:"Dom Seg Ter Qua Qui Sex Sáb".split(" "),weekdaysMin:"Dom 2ª 3ª 4ª 5ª 6ª Sáb".split(" "),longDateFormat:{LT:"HH:mm",L:"DD/MM/YYYY",LL:"D [de] MMMM [de] YYYY",LLL:"D [de] MMMM [de] YYYY LT",LLLL:"dddd, D [de] MMMM [de] YYYY LT"},calendar:{sameDay:"[Hoje à s] LT",nextDay:"[Amanhã à s] LT",nextWeek:"dddd [à s] LT",
lastDay:"[Ontem à s] LT",lastWeek:function(){return 0===this.day()||6===this.day()?"[Último] dddd [à s] LT":"[Última] dddd [à s] LT"},sameElse:"L"},relativeTime:{future:"em %s",past:"%s atrás",s:"segundos",m:"um minuto",mm:"%d minutos",h:"uma hora",hh:"%d horas",d:"um dia",dd:"%d dias",M:"um mês",MM:"%d meses",y:"um ano",yy:"%d anos"},ordinal:"%dº",week:{dow:1,doy:4}})});(function(a){a(i)})(function(a){a.lang("ro",{months:"Ianuarie Februarie Martie Aprilie Mai Iunie Iulie August Septembrie Octombrie Noiembrie Decembrie".split(" "),
monthsShort:"Ian Feb Mar Apr Mai Iun Iul Aug Sep Oct Noi Dec".split(" "),weekdays:"Duminică Luni Marţi Miercuri Joi Vineri Sâmbătă".split(" "),weekdaysShort:"Dum Lun Mar Mie Joi Vin Sâm".split(" "),weekdaysMin:"Du Lu Ma Mi Jo Vi Sâ".split(" "),longDateFormat:{LT:"H:mm",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY H:mm",LLLL:"dddd, D MMMM YYYY H:mm"},calendar:{sameDay:"[azi la] LT",nextDay:"[mâine la] LT",nextWeek:"dddd [la] LT",lastDay:"[ieri la] LT",lastWeek:"[fosta] dddd [la] LT",sameElse:"L"},
relativeTime:{future:"peste %s",past:"%s în urmă",s:"câteva secunde",m:"un minut",mm:"%d minute",h:"o oră",hh:"%d ore",d:"o zi",dd:"%d zile",M:"o lună",MM:"%d luni",y:"un an",yy:"%d ani"},week:{dow:1,doy:7}})});(function(a){a(i)})(function(a){function b(a,c,d){if("m"===d)return c?"минута":"минуту";c=a+" ";a=+a;d={mm:"минуÑа_минуÑÑ_минуÑ",hh:"час_часа_часов",dd:´ÐµÐ½ÑŒ_дня´Ð½ÐµÐ¹",MM:"месяц_месяца_месяцев",yy:"год_года_леÑ"}[d].split("_");
return c+(1===a%10&&11!==a%100?d[0]:2<=a%10&&4>=a%10&&(10>a%100||20<=a%100)?d[1]:d[2])}a.lang("ru",{months:function(a,b){return{nominative:"январь февраль март апрель май июнь июль август сентябрь октябрь ноябрь декабрь".split(" "),accusative:"января февраля марта апреля мая июня июля августа сентября октября ноября декабря".split(" ")}[/D[oD]? *MMMM?/.test(b)?
"accusative":"nominative"][a.month()]},monthsShort:function(a,b){return{nominative:"янв фев мар апр май июнь июль авг сен окт ноя дек".split(" "),accusative:"янв фев мар апр мая июня июля авг сен окт ноя дек".split(" ")}[/D[oD]? *MMMM?/.test(b)?"accusative":"nominative"][a.month()]},weekdays:function(a,b){return{nominative:"воскресенье понедельник вторник среда четверг пятница суббота".split(" "),
accusative:"воскресенье понедельник вторник среду четверг пятницу субботу".split(" ")}[/\[ ?[Вв] ?(?:прошлую|следующую)? ?\] ?dddd/.test(b)?"accusative":"nominative"][a.day()]},weekdaysShort:"вск пнд втр срд чтв птн сбт".split(" "),weekdaysMin:"вс пн вт ср чт пт сб".split(" "),longDateFormat:{LT:"HH:mm",L:"DD.MM.YYYY",LL:"D MMMM YYYY г.",LLL:"D MMMM YYYY г., LT",LLLL:"dddd, D MMMM YYYY г., LT"},
calendar:{sameDay:"[Сегодня в] LT",nextDay:"[Завтра в] LT",lastDay:"[Вчера в] LT",nextWeek:function(){return 2===this.day()?"[Во] dddd [в] LT":"[В] dddd [в] LT"},lastWeek:function(){switch(this.day()){case 0:return"[В прошлое] dddd [в] LT";case 1:case 2:case 4:return"[В прошлый] dddd [в] LT";case 3:case 5:case 6:return"[В прошлую] dddd [в] LT"}},sameElse:"L"},relativeTime:{future:"через %s",past:"%s назад",s:"несколько секунд",
m:b,mm:b,h:"час",hh:b,d:"день",dd:b,M:"месяц",MM:b,y:"год",yy:b},ordinal:function(a,b){switch(b){case "M":case "d":case "DDD":return a+"-й";case "D":return a+"-го";case "w":case "W":return a+"-я";default:return a}},week:{dow:1,doy:7}})});(function(a){a(i)})(function(a){function b(a,c,d,e){var f=a+" ";switch(d){case "s":return c||e?"pár sekúnd":"pár sekundami";case "m":return c?"minúta":e?"minútu":"minútou";case "mm":return c||e?f+(1<a&&5>a?"minúty":"minút"):f+"minútami";
case "h":return c?"hodina":e?"hodinu":"hodinou";case "hh":return c||e?f+(1<a&&5>a?"hodiny":"hodÃn"):f+"hodinami";case "d":return c||e?"deň":"dňom";case "dd":return c||e?f+(1<a&&5>a?"dni":"dnÃ"):f+"dňami";case "M":return c||e?"mesiac":"mesiacom";case "MM":return c||e?f+(1<a&&5>a?"mesiace":"mesiacov"):f+"mesiacmi";case "y":return c||e?"rok":"rokom";case "yy":return c||e?f+(1<a&&5>a?"roky":"rokov"):f+"rokmi"}}var d="január február marec aprÃl máj jún júl august september október november december".split(" "),
e="jan feb mar apr máj jún júl aug sep okt nov dec".split(" ");a.lang("sk",{months:d,monthsShort:e,monthsParse:function(a,b){var c,d=[];for(c=0;12>c;c++)d[c]=RegExp("^"+a[c]+"$|^"+b[c]+"$","i");return d}(d,e),weekdays:"nedeľa pondelok utorok streda štvrtok piatok sobota".split(" "),weekdaysShort:"ne po ut st št pi so".split(" "),weekdaysMin:"ne po ut st št pi so".split(" "),longDateFormat:{LT:"H:mm",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY LT",LLLL:"dddd D. MMMM YYYY LT"},calendar:{sameDay:"[dnes o] LT",
nextDay:"[zajtra o] LT",nextWeek:function(){switch(this.day()){case 0:return"[v nedeľu o] LT";case 1:case 2:return"[v] dddd [o] LT";case 3:return"[v stredu o] LT";case 4:return"[vo štvrtok o] LT";case 5:return"[v piatok o] LT";case 6:return"[v sobotu o] LT"}},lastDay:"[včera o] LT",lastWeek:function(){switch(this.day()){case 0:return"[minulú nedeľu o] LT";case 1:case 2:return"[minulý] dddd [o] LT";case 3:return"[minulú stredu o] LT";case 4:case 5:return"[minulý] dddd [o] LT";case 6:return"[minulú sobotu o] LT"}},
sameElse:"L"},relativeTime:{future:"za %s",past:"pred %s",s:b,m:b,mm:b,h:b,hh:b,d:b,dd:b,M:b,MM:b,y:b,yy:b},ordinal:"%d.",week:{dow:1,doy:4}})});(function(a){a(i)})(function(a){function b(a,c,d){var e=a+" ";switch(d){case "m":return c?"ena minuta":"eno minuto";case "mm":return 1===a?e+"minuta":2===a?e+"minuti":3===a||4===a?e+"minute":e+"minut";case "h":return c?"ena ura":"eno uro";case "hh":return 1===a?e+"ura":2===a?e+"uri":3===a||4===a?e+"ure":e+"ur";case "dd":return 1===a?e+"dan":e+"dni";case "MM":return 1===
a?e+"mesec":2===a?e+"meseca":3===a||4===a?e+"mesece":e+"mesecev";case "yy":return 1===a?e+"leto":2===a?e+"leti":3===a||4===a?e+"leta":e+"let"}}a.lang("sl",{months:"januar februar marec april maj junij julij avgust september oktober november december".split(" "),monthsShort:"jan. feb. mar. apr. maj. jun. jul. avg. sep. okt. nov. dec.".split(" "),weekdays:"nedelja ponedeljek torek sreda četrtek petek sobota".split(" "),weekdaysShort:"ned. pon. tor. sre. čet. pet. sob.".split(" "),weekdaysMin:"ne po to sr če pe so".split(" "),
longDateFormat:{LT:"H:mm",L:"DD. MM. YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY LT",LLLL:"dddd, D. MMMM YYYY LT"},calendar:{sameDay:"[danes ob] LT",nextDay:"[jutri ob] LT",nextWeek:function(){switch(this.day()){case 0:return"[v] [nedeljo] [ob] LT";case 3:return"[v] [sredo] [ob] LT";case 6:return"[v] [soboto] [ob] LT";case 1:case 2:case 4:case 5:return"[v] dddd [ob] LT"}},lastDay:"[včeraj ob] LT",lastWeek:function(){switch(this.day()){case 0:case 3:case 6:return"[prejšnja] dddd [ob] LT";case 1:case 2:case 4:case 5:return"[prejšnji] dddd [ob] LT"}},
sameElse:"L"},relativeTime:{future:ez %s",past:"%s nazaj",s:"nekaj sekund",m:b,mm:b,h:b,hh:b,d:"en dan",dd:b,M:"en mesec",MM:b,y:"eno leto",yy:b},ordinal:"%d.",week:{dow:1,doy:7}})});(function(a){a(i)})(function(a){a.lang("sq",{months:"Janar Shkurt Mars Prill Maj Qershor Korrik Gusht Shtator Tetor Nëntor Dhjetor".split(" "),monthsShort:"Jan Shk Mar Pri Maj Qer Kor Gus Sht Tet Nën Dhj".split(" "),weekdays:"E Diel;E Hënë;E Marte;E Mërkure;E Enjte;E Premte;E Shtunë".split(";"),weekdaysShort:"Die Hën Mar Mër Enj Pre Sht".split(" "),
weekdaysMin:"D H Ma Më E P Sh".split(" "),longDateFormat:{LT:"HH:mm",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY LT",LLLL:"dddd, D MMMM YYYY LT"},calendar:{sameDay:"[Sot në] LT",nextDay:"[Neser në] LT",nextWeek:"dddd [në] LT",lastDay:"[Dje në] LT",lastWeek:"dddd [e kaluar në] LT",sameElse:"L"},relativeTime:{future:"në %s",past:"%s me parë",s:"disa seconda",m:"një minut",mm:"%d minutea",h:"një orë",hh:"%d orë",d:"një ditë",dd:"%d ditë",M:"një muaj",MM:"%d muaj",y:"një vit",yy:"%d vite"},
ordinal:"%d.",week:{dow:1,doy:4}})});(function(a){a(i)})(function(a){a.lang("sv",{months:"januari februari mars april maj juni juli augusti september oktober november december".split(" "),monthsShort:"jan feb mar apr maj jun jul aug sep okt nov dec".split(" "),weekdays:"söndag måndag tisdag onsdag torsdag fredag lördag".split(" "),weekdaysShort:"sön mån tis ons tor fre lör".split(" "),weekdaysMin:"sö må ti on to fr lö".split(" "),longDateFormat:{LT:"HH:mm",L:"YYYY-MM-DD",LL:"D MMMM YYYY",
LLL:"D MMMM YYYY LT",LLLL:"dddd D MMMM YYYY LT"},calendar:{sameDay:"[Idag] LT",nextDay:"[Imorgon] LT",lastDay:"[Igår] LT",nextWeek:"dddd LT",lastWeek:"[Förra] dddd[en] LT",sameElse:"L"},relativeTime:{future:"om %s",past:"för %s sedan",s:"några sekunder",m:"en minut",mm:"%d minuter",h:"en timme",hh:"%d timmar",d:"en dag",dd:"%d dagar",M:"en månad",MM:"%d månader",y:"ett år",yy:"%d år"},ordinal:function(a){var b=a%10;return a+(1===~~(a%100/10)?"e":1===b?"a":2===b?"a":"e")},week:{dow:1,doy:4}})});
(function(a){a(i)})(function(a){a.lang("th",{months:"มกราคม;กุมภาพันธ์;มีนาคม;เมษายน;พฤษภาคม;มิถุนายน;กรกฎาคม;สิงหาคม;กันยายน;ตุลาคม;พฤศจิกายน;ธันวาคม".split(";"),monthsShort:"มกรา;กุมภา;มีนา;เมษา;พฤษภา;มิถุนา;กรกฎา;สิงหา;กันยา;ตุลา;พฤศจิกา;ธันวา".split(";"),
weekdays:"à¸à¸²à¸—ิตย์ จันทร์ à¸à¸±à¸‡à¸„าร พุธ พฤหัสบดี ศุกร์ เสาร์".split(" "),weekdaysShort:"à¸à¸²à¸—ิตย์ จันทร์ à¸à¸±à¸‡à¸„าร พุธ พฤหัส ศุกร์ เสาร์".split(" "),weekdaysMin:"à¸à¸². จ. à¸. พ. พฤ. ศ. ส.".split(" "),longDateFormat:{LT:"H นาฬิกา m นาที",L:"YYYY/MM/DD",LL:"D MMMM YYYY",LLL:"D MMMM YYYY เวลา LT",LLLL:¸§à¸±à¸™ddddที่ D MMMM YYYY เวลา LT"},
meridiem:function(a){return 12>a?"ก่à¸à¸™à¹€à¸—ี่ยง":"หลังเที่ยง"},calendar:{sameDay:"[วันนี้ เวลา] LT",nextDay:"[พรุ่งนี้ เวลา] LT",nextWeek:"dddd[หน้า เวลา] LT",lastDay:"[เมื่à¸à¸§à¸²à¸™à¸™à¸µà¹‰ เวลา] LT",lastWeek:"[วัน]dddd[ที่แล้ว เวลา] LT",sameElse:"L"},relativeTime:{future:"à¸à¸µà¸ %s",past:"%sที่แล้ว",s:"ไม่กี่วินาที",
m:"1 นาที",mm:"%d นาที",h:"1 ชั่วโมง",hh:"%d ชั่วโมง",d:"1 วัน",dd:"%d วัน",M:"1 เดืà¸à¸™",MM:"%d เดืà¸à¸™",y:"1 ปี",yy:"%d ปี"}})});(function(a){a(i)})(function(a){var b={1:"'inci",5:"'inci",8:"'inci",70:"'inci",80:"'inci",2:"'nci",7:"'nci",20:"'nci",50:"'nci",3:"'üncü",4:"'üncü",100:"'üncü",6:"'ncı",9:"'uncu",10:"'uncu",30:"'uncu",60:"'ıncı",90:"'ıncı"};a.lang("tr",{months:"Ocak Åžubat Mart Nisan Mayıs Haziran Temmuz AÄŸustos Eylül Ekim Kasım Aralık".split(" "),
monthsShort:"Oca Şub Mar Nis May Haz Tem Ağu Eyl Eki Kas Ara".split(" "),weekdays:"Pazar Pazartesi Salı Çarşamba Perşembe Cuma Cumartesi".split(" "),weekdaysShort:"Paz Pts Sal Çar Per Cum Cts".split(" "),weekdaysMin:"Pz Pt Sa Ça Pe Cu Ct".split(" "),longDateFormat:{LT:"HH:mm",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY LT",LLLL:"dddd, D MMMM YYYY LT"},calendar:{sameDay:"[bugün saat] LT",nextDay:"[yarın saat] LT",nextWeek:"[haftaya] dddd [saat] LT",lastDay:"[dün] LT",lastWeek:"[geçen hafta] dddd [saat] LT",
sameElse:"L"},relativeTime:{future:"%s sonra",past:"%s önce",s:"birkaç saniye",m:"bir dakika",mm:"%d dakika",h:"bir saat",hh:"%d saat",d:"bir gün",dd:"%d gün",M:"bir ay",MM:"%d ay",y:"bir yıl",yy:"%d yıl"},ordinal:function(a){if(0===a)return a+"'ıncı";var d=a%10;return a+(b[d]||b[a%100-d]||b[100<=a?100:null])},week:{dow:1,doy:7}})});(function(a){a(i)})(function(a){a.lang("tzm-la",{months:"innayr brˤayrˤ marˤsˤ ibrir mayyw ywnyw ywlywz ɣwšt šwtanbir ktˤwbrˤ nwwanbir dwjnbir".split(" "),
monthsShort:"innayr brˤayrˤ marˤsˤ ibrir mayyw ywnyw ywlywz ɣwšt šwtanbir ktˤwbrˤ nwwanbir dwjnbir".split(" "),weekdays:"asamas aynas asinas akras akwas asimwas asiḍyas".split(" "),weekdaysShort:"asamas aynas asinas akras akwas asimwas asiḍyas".split(" "),weekdaysMin:"asamas aynas asinas akras akwas asimwas asiḍyas".split(" "),longDateFormat:{LT:"HH:mm",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY LT",LLLL:"dddd D MMMM YYYY LT"},calendar:{sameDay:"[asdkh g] LT",nextDay:"[aska g] LT",
nextWeek:"dddd [g] LT",lastDay:"[assant g] LT",lastWeek:"dddd [g] LT",sameElse:"L"},relativeTime:{future:"dadkh s yan %s",past:"yan %s",s:"imik",m:"minuḍ",mm:"%d minuḍ",h:"saÉa",hh:"%d tassaÉin",d:"ass",dd:"%d ossan",M:"ayowr",MM:"%d iyyirn",y:"asgas",yy:"%d isgasn"},week:{dow:6,doy:12}})});(function(a){a(i)})(function(a){a.lang("tzm",{months:"ⵉⵏⵏⴰⵢⵔ ⴱⵕⴰⵢⵕ ⵎⴰⵕⵚ ⵉⴱⵔⵉⵔ ⵎⴰⵢⵢⵓ ⵢⵓⵏⵢⵓ ⵢⵓⵍⵢⵓⵣ ⵖⵓⵛⵜ ⵛⵓⵜⴰⵏⴱⵉⵔ ⴽⵟⵓⴱⵕ ⵏⵓⵡⴰⵏⴱⵉⵔ ⴷⵓⵊⵏⴱⵉⵔ".split(" "),
monthsShort:"ⵉⵏⵏⴰⵢⵔ ⴱⵕⴰⵢⵕ ⵎⴰⵕⵚ ⵉⴱⵔⵉⵔ ⵎⴰⵢⵢⵓ ⵢⵓⵏⵢⵓ ⵢⵓⵍⵢⵓⵣ ⵖⵓⵛⵜ ⵛⵓⵜⴰⵏⴱⵉⵔ ⴽⵟⵓⴱⵕ ⵏⵓⵡⴰⵏⴱⵉⵔ ⴷⵓⵊⵏⴱⵉⵔ".split(" "),weekdays:"ⴰⵙⴰⵎⴰⵙ ⴰⵢⵏⴰⵙ ⴰⵙⵉⵏⴰⵙ ⴰⴽⵔⴰⵙ ⴰⴽⵡⴰⵙ ⴰⵙⵉⵎⵡⴰⵙ ⴰⵙⵉⴹⵢⴰⵙ".split(" "),weekdaysShort:"ⴰⵙⴰⵎⴰⵙ ⴰⵢⵏⴰⵙ ⴰⵙⵉⵏⴰⵙ ⴰⴽⵔⴰⵙ ⴰⴽⵡⴰⵙ ⴰⵙⵉⵎⵡⴰⵙ ⴰⵙⵉⴹⵢⴰⵙ".split(" "),
weekdaysMin:"ⴰⵙⴰⵎⴰⵙ ⴰⵢⵏⴰⵙ ⴰⵙⵉⵏⴰⵙ ⴰⴽⵔⴰⵙ ⴰⴽⵡⴰⵙ ⴰⵙⵉⵎⵡⴰⵙ ⴰⵙⵉⴹⵢⴰⵙ".split(" "),longDateFormat:{LT:"HH:mm",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY LT",LLLL:"dddd D MMMM YYYY LT"},calendar:{sameDay:"[ⴰⵙⴷⵅ ⴴ] LT",nextDay:"[ⴰⵙⴽⴰ ⴴ] LT",nextWeek:"dddd [ⴴ] LT",lastDay:"[ⴰⵚⴰⵏⵜ ⴴ] LT",lastWeek:"dddd [ⴴ] LT",sameElse:"L"},relativeTime:{future:"ⴷⴰⴷⵅ ⵙ ⵢⴰⵏ %s",past:"ⵢⴰⵏ %s",
s:"ⵉⵎⵉⴽ",m:"ⵎⵉⵏⵓⴺ",mm:"%d ⵎⵉⵏⵓⴺ",h:"ⵙⴰⵄⴰ",hh:"%d ⵜⴰⵙⵙⴰⵄⵉⵏ",d:"ⴰⵙⵙ",dd:"%d oⵙⵙⴰⵏ",M:´°âµ¢oⵓⵔ",MM:"%d ⵉⵢⵢⵉⵔⵏ",y:"ⴰⵙⴳⴰⵙ",yy:"%d ⵉⵙⴳⴰⵙⵏ"},week:{dow:6,doy:12}})});(function(a){a(i)})(function(a){function b(a,c,d){if("m"===d)return c?"хвилина":"хвилину";if("h"===d)return c?"година":"годину";c=a+" ";a=+a;d={mm:"хвилина_хвилини_хвилин",hh:"година_години_годин",
dd:´ÐµÐ½ÑŒ_днѴнÑв",MM:"мÑсяць_мÑсяцÑ_мÑсяцÑв",yy:"Ñ€Ñк_роки_рокÑв"}[d].split("_");return c+(1===a%10&&11!==a%100?d[0]:2<=a%10&&4>=a%10&&(10>a%100||20<=a%100)?d[1]:d[2])}function d(a){return function(){return a+"о"+(11===this.hours()?"б":"")+"] LT"}}a.lang("uk",{months:function(a,b){return{nominative:"січень лютий березень квітень травень червень липень серпень вересень жовтень листопад грудень".split(" "),
accusative:"січня лютого березня квітня травня червня липня серпня вересня жовтня листопада грудня".split(" ")}[/D[oD]? *MMMM?/.test(b)?"accusative":"nominative"][a.month()]},monthsShort:"січ лют бер квіт трав черв лип серп вер жовт лист груд".split(" "),weekdays:function(a,b){return{nominative:"неділя понеділок вівторок середа четвер п’ятниця субота".split(" "),
accusative:"неділю понеділок вівторок середу четвер п’ятницю суботу".split(" "),genitive:"неділі понеділка вівторка середи четверга п’ятниці суботи".split(" ")}[/(\[[ВвУу]\]) ?dddd/.test(b)?"accusative":/\[?(?:минулої|наступної)? ?\] ?dddd/.test(b)?"genitive":"nominative"][a.day()]},weekdaysShort:"нед пон вів сер чет п’ят суб".split(" "),weekdaysMin:"нд пн вт ср чт пт сб".split(" "),
longDateFormat:{LT:"HH:mm",L:"DD.MM.YYYY",LL:"D MMMM YYYY р.",LLL:"D MMMM YYYY р., LT",LLLL:"dddd, D MMMM YYYY р., LT"},calendar:{sameDay:d("[Сьогодні "),nextDay:d("[Завтра "),lastDay:d("[Вчора "),nextWeek:d("[У] dddd ["),lastWeek:function(){switch(this.day()){case 0:case 3:case 5:case 6:return d("[Минулої] dddd [").call(this);case 1:case 2:case 4:return d("[Минулого] dddd [").call(this)}},sameElse:"L"},relativeTime:{future:"за %s",past:"%s тому",s:"декілька секунд",
m:b,mm:b,h:"годину",hh:b,d:"день",dd:b,M:"місяць",MM:b,y:"рік",yy:b},ordinal:function(a,b){switch(b){case "M":case "d":case "DDD":case "w":case "W":return a+"-й";case "D":return a+"-го";default:return a}},week:{dow:1,doy:7}})});(function(a){a(i)})(function(a){a.lang("zh-cn",{months:"一月 二月 三月 四月 五月 å…月 七月 八月 九月 十月 十一月 十二月".split(" "),monthsShort:"1月 2月 3月 4月 5月 6月 7月 8月 9月 10月 11月 12月".split(" "),weekdays:"星期日 星期一 星期二 星期三 星期四 星期五 星期å…".split(" "),
weekdaysShort:"周日 周一 周二 周三 周四 周五 周å…".split(" "),weekdaysMin:"æ—¥ 一 二 三 å›› 五 å…".split(" "),longDateFormat:{LT:"Ahç¹mm",L:"YYYYå¹´MMMDæ—¥",LL:"YYYYå¹´MMMDæ—¥",LLL:"YYYYå¹´MMMDæ—¥LT",LLLL:"YYYYå¹´MMMDæ—¥ddddLT",l:"YYYYå¹´MMMDæ—¥",ll:"YYYYå¹´MMMDæ—¥",lll:"YYYYå¹´MMMDæ—¥LT",llll:"YYYYå¹´MMMDæ—¥ddddLT"},meridiem:function(a,b){return 9>a?"早上":11>a&&30>b?"上午":13>a&&30>b?"ä¸åˆ":18>a?"下午":"晚上"},calendar:{sameDay:"[今天]LT",nextDay:"[明天]LT",nextWeek:"[下]ddddLT",
lastDay:"[昨天]LT",lastWeek:"[上]ddddLT",sameElse:"L"},ordinal:function(a,b){switch(b){case "d":case "D":case "DDD":return a+"æ—¥";case "M":return a+"月";case "w":case "W":return a+"周";default:return a}},relativeTime:{future:"%s内",past:"%s前",s:"å‡ ç§’",m:"1分éŸ",mm:"%d分éŸ",h:"1小时",hh:"%d小时",d:"1天",dd:"%d天",M:"1个月",MM:"%d个月",y:"1å¹´",yy:"%då¹´"}})});(function(a){a(i)})(function(a){a.lang("zh-tw",{months:"一月 二月 三月 四月 五月 å…月 七月 八月 九月 十月 十一月 十二月".split(" "),
monthsShort:"1月 2月 3月 4月 5月 6月 7月 8月 9月 10月 11月 12月".split(" "),weekdays:"星期日 星期一 星期二 星期三 星期四 星期五 星期å…".split(" "),weekdaysShort:"週日 週一 週二 週三 週四 週五 週å…".split(" "),weekdaysMin:"æ—¥ 一 二 三 å›› 五 å…".split(" "),longDateFormat:{LT:"Ah點mm",L:"YYYYå¹´MMMDæ—¥",LL:"YYYYå¹´MMMDæ—¥",LLL:"YYYYå¹´MMMDæ—¥LT",LLLL:"YYYYå¹´MMMDæ—¥ddddLT",l:"YYYYå¹´MMMDæ—¥",ll:"YYYYå¹´MMMDæ—¥",lll:"YYYYå¹´MMMDæ—¥LT",llll:"YYYYå¹´MMMDæ—¥ddddLT"},
meridiem:function(a,b){return 9>a?"早上":11>a&&30>b?"上午":13>a&&30>b?"ä¸åˆ":18>a?"下午":"晚上"},calendar:{sameDay:"[今天]LT",nextDay:"[明天]LT",nextWeek:"[下]ddddLT",lastDay:"[昨天]LT",lastWeek:"[上]ddddLT",sameElse:"L"},ordinal:function(a,b){switch(b){case "d":case "D":case "DDD":return a+"æ—¥";case "M":return a+"月";case "w":case "W":return a+"週";default:return a}},relativeTime:{future:"%så…§",past:"%s前",s:"幾秒",m:"一分鐘",mm:"%d分鐘",h:"一小時",hh:"%d小æ™",d:"一天",
dd:"%d天",M:"一個月",MM:"%då€æœˆ",y:"一年",yy:"%då¹´"}})});i.lang("en");N&&(module.exports=i);"undefined"===typeof ender&&(this.moment=i);"function"===typeof define&&define.amd&&define("moment",[],function(){return i})}).call(this);
var LZString={_keyStr:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",_f:String.fromCharCode,compressToBase64:function(e){if(null==e)return"";for(var b="",d,h,f,r,l,p,j=0,e=this.compress(e);j<2*e.length;)0==j%2?(d=e.charCodeAt(j/2)>>8,h=e.charCodeAt(j/2)&255,f=j/2+1<e.length?e.charCodeAt(j/2+1)>>8:NaN):(d=e.charCodeAt((j-1)/2)&255,(j+1)/2<e.length?(h=e.charCodeAt((j+1)/2)>>8,f=e.charCodeAt((j+1)/2)&255):h=f=NaN),j+=3,r=d>>2,d=(d&3)<<4|h>>4,l=(h&15)<<2|f>>6,p=f&63,isNaN(h)?l=p=
64:isNaN(f)&&(p=64),b=b+this._keyStr.charAt(r)+this._keyStr.charAt(d)+this._keyStr.charAt(l)+this._keyStr.charAt(p);return b},decompressFromBase64:function(e){if(null==e)return"";for(var b="",d=0,h,f,r,l,p,j,s=0,o=this._f,e=e.replace(/[^A-Za-z0-9\+\/\=]/g,"");s<e.length;)f=this._keyStr.indexOf(e.charAt(s++)),r=this._keyStr.indexOf(e.charAt(s++)),p=this._keyStr.indexOf(e.charAt(s++)),j=this._keyStr.indexOf(e.charAt(s++)),f=f<<2|r>>4,r=(r&15)<<4|p>>2,l=(p&3)<<6|j,0==d%2?(h=f<<8,64!=p&&(b+=o(h|r)),64!=